@symphony-talent/component-library 4.210.0 → 4.213.1
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/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +44 -4
- package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +15 -3
- package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +1 -1
- package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +44 -4
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +15 -3
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +1 -1
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +57 -5
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2015/symphony-talent-component-library.mjs +57 -5
- package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +57 -5
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library.mjs +57 -5
- package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
- package/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +14 -1
- package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +5 -1
- package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +3 -0
- package/package.json +1 -1
- package/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +14 -1
- package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +5 -1
- package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +3 -0
|
@@ -17,10 +17,18 @@ export class InputTextareaWithSendComponent {
|
|
|
17
17
|
this.startOverDisabled = false;
|
|
18
18
|
this.startOverButtonIcon = 'si-start-over';
|
|
19
19
|
this.startOverButtonTitle = 'Start Over';
|
|
20
|
+
this.undoDisabled = false;
|
|
21
|
+
this.undoButtonIcon = 'si-menu-return';
|
|
22
|
+
this.undoButtonTitle = 'Undo';
|
|
23
|
+
this.redoDisabled = false;
|
|
24
|
+
this.redoButtonIcon = 'si-menu-return';
|
|
25
|
+
this.redoButtonTitle = 'Redo';
|
|
20
26
|
this.sendClicked = new EventEmitter();
|
|
21
27
|
this.enterPressed = new EventEmitter();
|
|
22
28
|
this.valueChanged = new EventEmitter();
|
|
23
29
|
this.startOverClicked = new EventEmitter();
|
|
30
|
+
this.undoClicked = new EventEmitter();
|
|
31
|
+
this.redoClicked = new EventEmitter();
|
|
24
32
|
this.value = '';
|
|
25
33
|
this.currentRows = 1;
|
|
26
34
|
this.characterCount = 0;
|
|
@@ -128,15 +136,25 @@ export class InputTextareaWithSendComponent {
|
|
|
128
136
|
this.startOverClicked.emit();
|
|
129
137
|
}
|
|
130
138
|
}
|
|
139
|
+
onUndoClick() {
|
|
140
|
+
if (!this.undoDisabled) {
|
|
141
|
+
this.undoClicked.emit();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
onRedoClick() {
|
|
145
|
+
if (!this.redoDisabled) {
|
|
146
|
+
this.redoClicked.emit();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
131
149
|
}
|
|
132
150
|
InputTextareaWithSendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
-
InputTextareaWithSendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: { placeholder: "placeholder", isDisabled: "isDisabled", maxCharacterLimit: "maxCharacterLimit", showCharacterCount: "showCharacterCount", minRows: "minRows", maxRows: "maxRows", sendButtonIcon: "sendButtonIcon", sendButtonAriaLabel: "sendButtonAriaLabel", autoResize: "autoResize", showStartOverButton: "showStartOverButton", startOverButtonId: "startOverButtonId", startOverDisabled: "startOverDisabled", startOverButtonIcon: "startOverButtonIcon", startOverButtonTitle: "startOverButtonTitle" }, outputs: { sendClicked: "sendClicked", enterPressed: "enterPressed", valueChanged: "valueChanged", startOverClicked: "startOverClicked" }, providers: [
|
|
151
|
+
InputTextareaWithSendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: { placeholder: "placeholder", isDisabled: "isDisabled", maxCharacterLimit: "maxCharacterLimit", showCharacterCount: "showCharacterCount", minRows: "minRows", maxRows: "maxRows", sendButtonIcon: "sendButtonIcon", sendButtonAriaLabel: "sendButtonAriaLabel", autoResize: "autoResize", showStartOverButton: "showStartOverButton", showUndoRedoButtons: "showUndoRedoButtons", startOverButtonId: "startOverButtonId", startOverDisabled: "startOverDisabled", startOverButtonIcon: "startOverButtonIcon", startOverButtonTitle: "startOverButtonTitle", undoButtonId: "undoButtonId", undoDisabled: "undoDisabled", undoButtonIcon: "undoButtonIcon", undoButtonTitle: "undoButtonTitle", redoButtonId: "redoButtonId", redoDisabled: "redoDisabled", redoButtonIcon: "redoButtonIcon", redoButtonTitle: "redoButtonTitle" }, outputs: { sendClicked: "sendClicked", enterPressed: "enterPressed", valueChanged: "valueChanged", startOverClicked: "startOverClicked", undoClicked: "undoClicked", redoClicked: "redoClicked" }, providers: [
|
|
134
152
|
{
|
|
135
153
|
provide: NG_VALUE_ACCESSOR,
|
|
136
154
|
useExisting: forwardRef(() => InputTextareaWithSendComponent),
|
|
137
155
|
multi: true
|
|
138
156
|
}
|
|
139
|
-
], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textareaElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-textarea-with-send-container\">\n <div\n class=\"composer-meta sfx-mb-10\">\n <button class=\"ai-start-over\"\n *ngIf=\"showStartOverButton\"\n type=\"button\"\n (click)=\"onStartOverClick()\"\n [disabled]=\"startOverDisabled\"\n [id]=\"startOverButtonId\">\n <symphony-icon\n [icon]=\"startOverButtonIcon\"\n [title]=\"startOverButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <div\n class=\"character-counter\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span\n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.composer-meta{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.composer-meta .ai-start-over{display:flex;justify-content:flex-start;cursor:pointer;align-items:center;margin-left:0;margin-right:
|
|
157
|
+
], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textareaElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-textarea-with-send-container\">\n <div\n class=\"composer-meta sfx-mb-10\">\n <button class=\"ai-start-over\"\n *ngIf=\"showStartOverButton\"\n type=\"button\"\n (click)=\"onStartOverClick()\"\n [disabled]=\"startOverDisabled\"\n [id]=\"startOverButtonId\">\n <symphony-icon\n [icon]=\"startOverButtonIcon\"\n [title]=\"startOverButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <button class=\"ai-undo\"\n *ngIf=\"showUndoRedoButtons\"\n type=\"button\"\n (click)=\"onUndoClick()\"\n [disabled]=\"undoDisabled\"\n [id]=\"undoButtonId\">\n <symphony-icon\n [icon]=\"undoButtonIcon\"\n [title]=\"undoButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <button class=\"ai-redo\"\n *ngIf=\"showUndoRedoButtons\"\n type=\"button\"\n (click)=\"onRedoClick()\"\n [disabled]=\"redoDisabled\"\n [id]=\"redoButtonId\">\n <symphony-icon\n [icon]=\"redoButtonIcon\"\n [title]=\"redoButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <div\n class=\"character-counter\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span\n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.composer-meta{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.composer-meta .ai-start-over,.composer-meta .ai-undo,.composer-meta .ai-redo{display:flex;justify-content:flex-start;cursor:pointer;align-items:center;margin-left:0;margin-right:0;text-align:left;background:transparent;border:none;outline:none}.composer-meta .ai-start-over:disabled,.composer-meta .ai-undo:disabled,.composer-meta .ai-redo:disabled{cursor:not-allowed;background:transparent!important}.composer-meta .ai-start-over:disabled i,.composer-meta .ai-undo:disabled i,.composer-meta .ai-redo:disabled i{color:#c3cbdc}.composer-meta .ai-start-over:disabled symphony-icon,.composer-meta .ai-undo:disabled symphony-icon,.composer-meta .ai-redo:disabled symphony-icon{color:#c3cbdc}.composer-meta .ai-start-over:disabled symphony-icon:hover,.composer-meta .ai-undo:disabled symphony-icon:hover,.composer-meta .ai-redo:disabled symphony-icon:hover{color:#c3cbdc!important}.composer-meta .ai-start-over symphony-icon,.composer-meta .ai-undo symphony-icon,.composer-meta .ai-redo symphony-icon{color:#5b6d80;transition:color .2s ease;font-weight:700}.composer-meta .ai-start-over symphony-icon:hover,.composer-meta .ai-undo symphony-icon:hover,.composer-meta .ai-redo symphony-icon:hover{color:#2b8ff3}.composer-meta .ai-redo symphony-icon{transform:scaleX(-1)}.composer-meta .character-counter{text-align:right;margin-left:auto}.composer-meta .character-counter .counter-text{font-size:.75rem;color:#5b6d80}.composer-meta .character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
140
158
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, decorators: [{
|
|
141
159
|
type: Component,
|
|
142
160
|
args: [{ selector: 'symphony-input-textarea-with-send', providers: [
|
|
@@ -145,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
145
163
|
useExisting: forwardRef(() => InputTextareaWithSendComponent),
|
|
146
164
|
multi: true
|
|
147
165
|
}
|
|
148
|
-
], template: "<div class=\"input-textarea-with-send-container\">\n <div\n class=\"composer-meta sfx-mb-10\">\n <button class=\"ai-start-over\"\n *ngIf=\"showStartOverButton\"\n type=\"button\"\n (click)=\"onStartOverClick()\"\n [disabled]=\"startOverDisabled\"\n [id]=\"startOverButtonId\">\n <symphony-icon\n [icon]=\"startOverButtonIcon\"\n [title]=\"startOverButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <div\n class=\"character-counter\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span\n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.composer-meta{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.composer-meta .ai-start-over{display:flex;justify-content:flex-start;cursor:pointer;align-items:center;margin-left:0;margin-right:
|
|
166
|
+
], template: "<div class=\"input-textarea-with-send-container\">\n <div\n class=\"composer-meta sfx-mb-10\">\n <button class=\"ai-start-over\"\n *ngIf=\"showStartOverButton\"\n type=\"button\"\n (click)=\"onStartOverClick()\"\n [disabled]=\"startOverDisabled\"\n [id]=\"startOverButtonId\">\n <symphony-icon\n [icon]=\"startOverButtonIcon\"\n [title]=\"startOverButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <button class=\"ai-undo\"\n *ngIf=\"showUndoRedoButtons\"\n type=\"button\"\n (click)=\"onUndoClick()\"\n [disabled]=\"undoDisabled\"\n [id]=\"undoButtonId\">\n <symphony-icon\n [icon]=\"undoButtonIcon\"\n [title]=\"undoButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <button class=\"ai-redo\"\n *ngIf=\"showUndoRedoButtons\"\n type=\"button\"\n (click)=\"onRedoClick()\"\n [disabled]=\"redoDisabled\"\n [id]=\"redoButtonId\">\n <symphony-icon\n [icon]=\"redoButtonIcon\"\n [title]=\"redoButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <div\n class=\"character-counter\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span\n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.composer-meta{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.composer-meta .ai-start-over,.composer-meta .ai-undo,.composer-meta .ai-redo{display:flex;justify-content:flex-start;cursor:pointer;align-items:center;margin-left:0;margin-right:0;text-align:left;background:transparent;border:none;outline:none}.composer-meta .ai-start-over:disabled,.composer-meta .ai-undo:disabled,.composer-meta .ai-redo:disabled{cursor:not-allowed;background:transparent!important}.composer-meta .ai-start-over:disabled i,.composer-meta .ai-undo:disabled i,.composer-meta .ai-redo:disabled i{color:#c3cbdc}.composer-meta .ai-start-over:disabled symphony-icon,.composer-meta .ai-undo:disabled symphony-icon,.composer-meta .ai-redo:disabled symphony-icon{color:#c3cbdc}.composer-meta .ai-start-over:disabled symphony-icon:hover,.composer-meta .ai-undo:disabled symphony-icon:hover,.composer-meta .ai-redo:disabled symphony-icon:hover{color:#c3cbdc!important}.composer-meta .ai-start-over symphony-icon,.composer-meta .ai-undo symphony-icon,.composer-meta .ai-redo symphony-icon{color:#5b6d80;transition:color .2s ease;font-weight:700}.composer-meta .ai-start-over symphony-icon:hover,.composer-meta .ai-undo symphony-icon:hover,.composer-meta .ai-redo symphony-icon:hover{color:#2b8ff3}.composer-meta .ai-redo symphony-icon{transform:scaleX(-1)}.composer-meta .character-counter{text-align:right;margin-left:auto}.composer-meta .character-counter .counter-text{font-size:.75rem;color:#5b6d80}.composer-meta .character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"] }]
|
|
149
167
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
|
|
150
168
|
type: Input
|
|
151
169
|
}], isDisabled: [{
|
|
@@ -166,6 +184,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
166
184
|
type: Input
|
|
167
185
|
}], showStartOverButton: [{
|
|
168
186
|
type: Input
|
|
187
|
+
}], showUndoRedoButtons: [{
|
|
188
|
+
type: Input
|
|
169
189
|
}], startOverButtonId: [{
|
|
170
190
|
type: Input
|
|
171
191
|
}], startOverDisabled: [{
|
|
@@ -174,6 +194,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
174
194
|
type: Input
|
|
175
195
|
}], startOverButtonTitle: [{
|
|
176
196
|
type: Input
|
|
197
|
+
}], undoButtonId: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], undoDisabled: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}], undoButtonIcon: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}], undoButtonTitle: [{
|
|
204
|
+
type: Input
|
|
205
|
+
}], redoButtonId: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], redoDisabled: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], redoButtonIcon: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], redoButtonTitle: [{
|
|
212
|
+
type: Input
|
|
177
213
|
}], sendClicked: [{
|
|
178
214
|
type: Output
|
|
179
215
|
}], enterPressed: [{
|
|
@@ -182,8 +218,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
182
218
|
type: Output
|
|
183
219
|
}], startOverClicked: [{
|
|
184
220
|
type: Output
|
|
221
|
+
}], undoClicked: [{
|
|
222
|
+
type: Output
|
|
223
|
+
}], redoClicked: [{
|
|
224
|
+
type: Output
|
|
185
225
|
}], textareaElement: [{
|
|
186
226
|
type: ViewChild,
|
|
187
227
|
args: ['textareaElement']
|
|
188
228
|
}] } });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFnRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjekUsTUFBTSxPQUFPLDhCQUE4QjtJQWdDekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQmpDLGdCQUFXLEdBQVcsc0JBQXNCLENBQUM7UUFDN0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVcsZUFBZSxDQUFDO1FBQ3pDLHdCQUFtQixHQUFXLGNBQWMsQ0FBQztRQUM3QyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyx3QkFBbUIsR0FBVyxlQUFlLENBQUM7UUFDOUMseUJBQW9CLEdBQVcsWUFBWSxDQUFDO1FBRTNDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFJdEQsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFeEIsYUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVpQixDQUFDO0lBRTlDLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7UUFDRCxpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHNDQUFzQztJQUN0QyxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUEyQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUE2QixDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixpRUFBaUU7UUFDakUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFvQjtRQUNsQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUM1QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLE9BQU87UUFFbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7UUFFcEQsZ0RBQWdEO1FBQ2hELFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUUvQixnQ0FBZ0M7UUFDaEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsNkJBQTZCO1FBQ3BELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtRQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBRXRELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMzRCxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV6QywyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBRTlDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUV2Ryx5QkFBeUI7UUFDekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRTdGLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFFBQVEsSUFBSSxXQUFXLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7OzJIQTFKVSw4QkFBOEI7K0dBQTlCLDhCQUE4Qixpc0JBUjlCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUM7WUFDN0QsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDhJQ2JILHVvREF1RE87MkZEeENNLDhCQUE4QjtrQkFaMUMsU0FBUzsrQkFDRSxtQ0FBbUMsYUFHbEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsK0JBQStCLENBQUM7NEJBQzdELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3dHQUdRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdUeXBlIHlvdXIgbWVzc2FnZS4uLic7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4Q2hhcmFjdGVyTGltaXQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW5Sb3dzOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBtYXhSb3dzOiBudW1iZXIgPSA2O1xuICBASW5wdXQoKSBzZW5kQnV0dG9uSWNvbjogc3RyaW5nID0gJ3NpLWFycm93LW5leHQnO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmcgPSAnU2VuZCBtZXNzYWdlJztcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dTdGFydE92ZXJCdXR0b246IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN0YXJ0T3ZlckJ1dHRvbklkPzogc3RyaW5nO1xuICBASW5wdXQoKSBzdGFydE92ZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGFydE92ZXJCdXR0b25JY29uOiBzdHJpbmcgPSAnc2ktc3RhcnQtb3Zlcic7XG4gIEBJbnB1dCgpIHN0YXJ0T3ZlckJ1dHRvblRpdGxlOiBzdHJpbmcgPSAnU3RhcnQgT3Zlcic7XG5cbiAgQE91dHB1dCgpIHNlbmRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBlbnRlclByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc3RhcnRPdmVyQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCd0ZXh0YXJlYUVsZW1lbnQnKSB0ZXh0YXJlYUVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgY3VycmVudFJvd3M6IG51bWJlciA9IDE7XG4gIGNoYXJhY3RlckNvdW50OiBudW1iZXIgPSAwO1xuICBjaGFyYWN0ZXJMaW1pdEV4Y2VlZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGNhblNlbmRNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBzdHJpbmcpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgfVxuICAgIC8vIEluaXRpYWxpemUgY29tcHV0ZWQgcHJvcGVydGllc1xuICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCksIDApO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICAvLyBVcGRhdGUgY29tcHV0ZWQgcHJvcGVydGllcyBmb3IgY2hhcmFjdGVyIGNvdW50IGFuZCBzZW5kIGJ1dHRvblxuICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIFxuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0S2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmICFldmVudC5zaGlmdEtleSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmICh0aGlzLmNhblNlbmRNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMub25TZW5kQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblNlbmRDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYW5TZW5kTWVzc2FnZSkge1xuICAgICAgdGhpcy5zZW5kQ2xpY2tlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lbnRlclByZXNzZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkanVzdFRleHRhcmVhSGVpZ2h0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0YXJlYUVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBcbiAgICAvLyBSZXNldCBoZWlnaHQgdG8gYXV0byB0byBnZXQgdGhlIHNjcm9sbCBoZWlnaHRcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgbGluZXNcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gMjQ7IC8vIEJhc2UgbGluZSBoZWlnaHQgaW4gcGl4ZWxzXG4gICAgY29uc3QgcGFkZGluZyA9IDE2OyAvLyBUb3AgKyBib3R0b20gcGFkZGluZ1xuICAgIGNvbnN0IG1pbkhlaWdodCA9IHRoaXMubWluUm93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMubWF4Um93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIFxuICAgIGxldCBuZXdIZWlnaHQgPSBNYXRoLm1heCh0ZXh0YXJlYS5zY3JvbGxIZWlnaHQsIG1pbkhlaWdodCk7XG4gICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4obmV3SGVpZ2h0LCBtYXhIZWlnaHQpO1xuICAgIFxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IG5ld0hlaWdodCArICdweCc7XG4gICAgXG4gICAgLy8gVXBkYXRlIGN1cnJlbnQgcm93cyBmb3Igc3R5bGluZyBwdXJwb3Nlc1xuICAgIHRoaXMuY3VycmVudFJvd3MgPSBNYXRoLmNlaWwoKG5ld0hlaWdodCAtIHBhZGRpbmcpIC8gbGluZUhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hJbnB1dFN0YXRlKCk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSBjaGFyYWN0ZXIgY291bnRcbiAgICB0aGlzLmNoYXJhY3RlckNvdW50ID0gdGhpcy52YWx1ZT8ubGVuZ3RoIHx8IDA7XG4gICAgXG4gICAgLy8gVXBkYXRlIGNoYXJhY3RlciBsaW1pdCBleGNlZWRlZCBzdGF0dXNcbiAgICB0aGlzLmNoYXJhY3RlckxpbWl0RXhjZWVkZWQgPSAhIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgJiYgdGhpcy5jaGFyYWN0ZXJDb3VudCA+IHRoaXMubWF4Q2hhcmFjdGVyTGltaXQ7XG4gICAgXG4gICAgLy8gVXBkYXRlIGNhbiBzZW5kIHN0YXR1c1xuICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHRoaXMudmFsdWU/LnRyaW0oKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9ICEhdHJpbW1lZFZhbHVlO1xuICAgIGNvbnN0IHdpdGhpbkxpbWl0ID0gIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgfHwgdGhpcy5jaGFyYWN0ZXJDb3VudCA8PSB0aGlzLm1heENoYXJhY3RlckxpbWl0O1xuICAgIFxuICAgIHRoaXMuY2FuU2VuZE1lc3NhZ2UgPSAhdGhpcy5pc0Rpc2FibGVkICYmIGhhc1ZhbHVlICYmIHdpdGhpbkxpbWl0O1xuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGV4dGFyZWFFbGVtZW50KSB7XG4gICAgICB0aGlzLnRleHRhcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQoJycpO1xuICAgIFxuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIG9uU3RhcnRPdmVyQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1N0YXJ0T3ZlckJ1dHRvbiAmJiAhdGhpcy5zdGFydE92ZXJEaXNhYmxlZCkge1xuICAgICAgdGhpcy5zdGFydE92ZXJDbGlja2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cbn0gIiwiPGRpdiBjbGFzcz1cImlucHV0LXRleHRhcmVhLXdpdGgtc2VuZC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29tcG9zZXItbWV0YSBzZngtbWItMTBcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYWktc3RhcnQtb3ZlclwiXG4gICAgICAqbmdJZj1cInNob3dTdGFydE92ZXJCdXR0b25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwib25TdGFydE92ZXJDbGljaygpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzdGFydE92ZXJEaXNhYmxlZFwiXG4gICAgICBbaWRdPVwic3RhcnRPdmVyQnV0dG9uSWRcIj5cbiAgICAgIDxzeW1waG9ueS1pY29uXG4gICAgICAgIFtpY29uXT1cInN0YXJ0T3ZlckJ1dHRvbkljb25cIlxuICAgICAgICBbdGl0bGVdPVwic3RhcnRPdmVyQnV0dG9uVGl0bGVcIlxuICAgICAgICBbc2l6ZV09XCInMjBweCdcIj5cbiAgICAgIDwvc3ltcGhvbnktaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2hhcmFjdGVyLWNvdW50ZXJcIlxuICAgICAgKm5nSWY9XCJzaG93Q2hhcmFjdGVyQ291bnQgJiYgbWF4Q2hhcmFjdGVyTGltaXRcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiY291bnRlci10ZXh0XCJcbiAgICAgICAgW2NsYXNzLmNvdW50ZXItZXhjZWVkZWRdPVwiY2hhcmFjdGVyTGltaXRFeGNlZWRlZFwiPlxuICAgICAgICB7eyBjaGFyYWN0ZXJDb3VudCB9fSAvIHt7IG1heENoYXJhY3RlckxpbWl0IH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSW5wdXQgd2l0aCBTZW5kIEJ1dHRvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICA8dGV4dGFyZWFcbiAgICAgICN0ZXh0YXJlYUVsZW1lbnRcbiAgICAgIGNsYXNzPVwidGV4dGFyZWEtaW5wdXRcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICBbbWF4TGVuZ3RoXT1cIm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwib25JbnB1dEtleVByZXNzKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgcm93cz1cIjFcIj5cbiAgICA8L3RleHRhcmVhPlxuICAgIFxuICAgIDwhLS0gU2VuZCBCdXR0b24gLS0+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNlbmQtYnV0dG9uXCJcbiAgICAgIFtjbGFzcy5lbmFibGVkXT1cImNhblNlbmRNZXNzYWdlXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhY2FuU2VuZE1lc3NhZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TZW5kTWVzc2FnZVwiXG4gICAgICAoY2xpY2spPVwib25TZW5kQ2xpY2soKVwiXG4gICAgICBpZD1cImJ1dHRvbi10ZXh0YXJlYS1zZW5kXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VuZEJ1dHRvbkFyaWFMYWJlbFwiPlxuICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwic2VuZEJ1dHRvbkljb25cIiBbc2l6ZV09XCInMTBweCdcIj48L3N5bXBob255LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+ICJdfQ==
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFnRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjekUsTUFBTSxPQUFPLDhCQUE4QjtJQTBDekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF6Q2pDLGdCQUFXLEdBQVcsc0JBQXNCLENBQUM7UUFDN0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVcsZUFBZSxDQUFDO1FBQ3pDLHdCQUFtQixHQUFXLGNBQWMsQ0FBQztRQUM3QyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBSTNCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyx3QkFBbUIsR0FBVyxlQUFlLENBQUM7UUFDOUMseUJBQW9CLEdBQVcsWUFBWSxDQUFDO1FBRTVDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLG1C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bUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFFdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdUeXBlIHlvdXIgbWVzc2FnZS4uLic7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4Q2hhcmFjdGVyTGltaXQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW5Sb3dzOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBtYXhSb3dzOiBudW1iZXIgPSA2O1xuICBASW5wdXQoKSBzZW5kQnV0dG9uSWNvbjogc3RyaW5nID0gJ3NpLWFycm93LW5leHQnO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmcgPSAnU2VuZCBtZXNzYWdlJztcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dTdGFydE92ZXJCdXR0b246IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dVbmRvUmVkb0J1dHRvbnM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN0YXJ0T3ZlckJ1dHRvbklkPzogc3RyaW5nO1xuICBASW5wdXQoKSBzdGFydE92ZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGFydE92ZXJCdXR0b25JY29uOiBzdHJpbmcgPSAnc2ktc3RhcnQtb3Zlcic7XG4gIEBJbnB1dCgpIHN0YXJ0T3ZlckJ1dHRvblRpdGxlOiBzdHJpbmcgPSAnU3RhcnQgT3Zlcic7XG4gIEBJbnB1dCgpIHVuZG9CdXR0b25JZD86IHN0cmluZztcbiAgQElucHV0KCkgdW5kb0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVuZG9CdXR0b25JY29uOiBzdHJpbmcgPSAnc2ktbWVudS1yZXR1cm4nO1xuICBASW5wdXQoKSB1bmRvQnV0dG9uVGl0bGU6IHN0cmluZyA9ICdVbmRvJztcbiAgQElucHV0KCkgcmVkb0J1dHRvbklkPzogc3RyaW5nO1xuICBASW5wdXQoKSByZWRvRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVkb0J1dHRvbkljb246IHN0cmluZyA9ICdzaS1tZW51LXJldHVybic7XG4gIEBJbnB1dCgpIHJlZG9CdXR0b25UaXRsZTogc3RyaW5nID0gJ1JlZG8nO1xuICBAT3V0cHV0KCkgc2VuZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGVudGVyUHJlc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzdGFydE92ZXJDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdW5kb0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWRvQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCd0ZXh0YXJlYUVsZW1lbnQnKSB0ZXh0YXJlYUVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgY3VycmVudFJvd3M6IG51bWJlciA9IDE7XG4gIGNoYXJhY3RlckNvdW50OiBudW1iZXIgPSAwO1xuICBjaGFyYWN0ZXJMaW1pdEV4Y2VlZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGNhblNlbmRNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBzdHJpbmcpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgfVxuICAgIC8vIEluaXRpYWxpemUgY29tcHV0ZWQgcHJvcGVydGllc1xuICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCksIDApO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICAvLyBVcGRhdGUgY29tcHV0ZWQgcHJvcGVydGllcyBmb3IgY2hhcmFjdGVyIGNvdW50IGFuZCBzZW5kIGJ1dHRvblxuICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIFxuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0S2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmICFldmVudC5zaGlmdEtleSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmICh0aGlzLmNhblNlbmRNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMub25TZW5kQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblNlbmRDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYW5TZW5kTWVzc2FnZSkge1xuICAgICAgdGhpcy5zZW5kQ2xpY2tlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lbnRlclByZXNzZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkanVzdFRleHRhcmVhSGVpZ2h0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0YXJlYUVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBcbiAgICAvLyBSZXNldCBoZWlnaHQgdG8gYXV0byB0byBnZXQgdGhlIHNjcm9sbCBoZWlnaHRcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgbGluZXNcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gMjQ7IC8vIEJhc2UgbGluZSBoZWlnaHQgaW4gcGl4ZWxzXG4gICAgY29uc3QgcGFkZGluZyA9IDE2OyAvLyBUb3AgKyBib3R0b20gcGFkZGluZ1xuICAgIGNvbnN0IG1pbkhlaWdodCA9IHRoaXMubWluUm93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMubWF4Um93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIFxuICAgIGxldCBuZXdIZWlnaHQgPSBNYXRoLm1heCh0ZXh0YXJlYS5zY3JvbGxIZWlnaHQsIG1pbkhlaWdodCk7XG4gICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4obmV3SGVpZ2h0LCBtYXhIZWlnaHQpO1xuICAgIFxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IG5ld0hlaWdodCArICdweCc7XG4gICAgXG4gICAgLy8gVXBkYXRlIGN1cnJlbnQgcm93cyBmb3Igc3R5bGluZyBwdXJwb3Nlc1xuICAgIHRoaXMuY3VycmVudFJvd3MgPSBNYXRoLmNlaWwoKG5ld0hlaWdodCAtIHBhZGRpbmcpIC8gbGluZUhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hJbnB1dFN0YXRlKCk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSBjaGFyYWN0ZXIgY291bnRcbiAgICB0aGlzLmNoYXJhY3RlckNvdW50ID0gdGhpcy52YWx1ZT8ubGVuZ3RoIHx8IDA7XG4gICAgXG4gICAgLy8gVXBkYXRlIGNoYXJhY3RlciBsaW1pdCBleGNlZWRlZCBzdGF0dXNcbiAgICB0aGlzLmNoYXJhY3RlckxpbWl0RXhjZWVkZWQgPSAhIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgJiYgdGhpcy5jaGFyYWN0ZXJDb3VudCA+IHRoaXMubWF4Q2hhcmFjdGVyTGltaXQ7XG4gICAgXG4gICAgLy8gVXBkYXRlIGNhbiBzZW5kIHN0YXR1c1xuICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHRoaXMudmFsdWU/LnRyaW0oKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9ICEhdHJpbW1lZFZhbHVlO1xuICAgIGNvbnN0IHdpdGhpbkxpbWl0ID0gIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgfHwgdGhpcy5jaGFyYWN0ZXJDb3VudCA8PSB0aGlzLm1heENoYXJhY3RlckxpbWl0O1xuICAgIFxuICAgIHRoaXMuY2FuU2VuZE1lc3NhZ2UgPSAhdGhpcy5pc0Rpc2FibGVkICYmIGhhc1ZhbHVlICYmIHdpdGhpbkxpbWl0O1xuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGV4dGFyZWFFbGVtZW50KSB7XG4gICAgICB0aGlzLnRleHRhcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQoJycpO1xuICAgIFxuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIG9uU3RhcnRPdmVyQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1N0YXJ0T3ZlckJ1dHRvbiAmJiAhdGhpcy5zdGFydE92ZXJEaXNhYmxlZCkge1xuICAgICAgdGhpcy5zdGFydE92ZXJDbGlja2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvblVuZG9DbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudW5kb0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLnVuZG9DbGlja2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvblJlZG9DbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVkb0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLnJlZG9DbGlja2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cbn0gXG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLWNvbnRhaW5lclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb21wb3Nlci1tZXRhIHNmeC1tYi0xMFwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJhaS1zdGFydC1vdmVyXCJcbiAgICAgICpuZ0lmPVwic2hvd1N0YXJ0T3ZlckJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvblN0YXJ0T3ZlckNsaWNrKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInN0YXJ0T3ZlckRpc2FibGVkXCJcbiAgICAgIFtpZF09XCJzdGFydE92ZXJCdXR0b25JZFwiPlxuICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgW2ljb25dPVwic3RhcnRPdmVyQnV0dG9uSWNvblwiXG4gICAgICAgIFt0aXRsZV09XCJzdGFydE92ZXJCdXR0b25UaXRsZVwiXG4gICAgICAgIFtzaXplXT1cIicyMHB4J1wiPlxuICAgICAgPC9zeW1waG9ueS1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImFpLXVuZG9cIlxuICAgICAgKm5nSWY9XCJzaG93VW5kb1JlZG9CdXR0b25zXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm9uVW5kb0NsaWNrKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInVuZG9EaXNhYmxlZFwiXG4gICAgICBbaWRdPVwidW5kb0J1dHRvbklkXCI+XG4gICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICBbaWNvbl09XCJ1bmRvQnV0dG9uSWNvblwiXG4gICAgICAgIFt0aXRsZV09XCJ1bmRvQnV0dG9uVGl0bGVcIlxuICAgICAgICBbc2l6ZV09XCInMjBweCdcIj5cbiAgICAgIDwvc3ltcGhvbnktaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJhaS1yZWRvXCJcbiAgICAgICpuZ0lmPVwic2hvd1VuZG9SZWRvQnV0dG9uc1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvblJlZG9DbGljaygpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJyZWRvRGlzYWJsZWRcIlxuICAgICAgW2lkXT1cInJlZG9CdXR0b25JZFwiPlxuICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgW2ljb25dPVwicmVkb0J1dHRvbkljb25cIlxuICAgICAgICBbdGl0bGVdPVwicmVkb0J1dHRvblRpdGxlXCJcbiAgICAgICAgW3NpemVdPVwiJzIwcHgnXCI+XG4gICAgICA8L3N5bXBob255LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNoYXJhY3Rlci1jb3VudGVyXCJcbiAgICAgICpuZ0lmPVwic2hvd0NoYXJhY3RlckNvdW50ICYmIG1heENoYXJhY3RlckxpbWl0XCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImNvdW50ZXItdGV4dFwiXG4gICAgICAgIFtjbGFzcy5jb3VudGVyLWV4Y2VlZGVkXT1cImNoYXJhY3RlckxpbWl0RXhjZWVkZWRcIj5cbiAgICAgICAge3sgY2hhcmFjdGVyQ291bnQgfX0gLyB7eyBtYXhDaGFyYWN0ZXJMaW1pdCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIElucHV0IHdpdGggU2VuZCBCdXR0b24gLS0+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgPHRleHRhcmVhXG4gICAgICAjdGV4dGFyZWFFbGVtZW50XG4gICAgICBjbGFzcz1cInRleHRhcmVhLWlucHV0XCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgW21heExlbmd0aF09XCJtYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uSW5wdXRLZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcbiAgICAgIHJvd3M9XCIxXCI+XG4gICAgPC90ZXh0YXJlYT5cbiAgICBcbiAgICA8IS0tIFNlbmQgQnV0dG9uIC0tPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJzZW5kLWJ1dHRvblwiXG4gICAgICBbY2xhc3MuZW5hYmxlZF09XCJjYW5TZW5kTWVzc2FnZVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWNhblNlbmRNZXNzYWdlXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY2FuU2VuZE1lc3NhZ2VcIlxuICAgICAgKGNsaWNrKT1cIm9uU2VuZENsaWNrKClcIlxuICAgICAgaWQ9XCJidXR0b24tdGV4dGFyZWEtc2VuZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlbmRCdXR0b25BcmlhTGFiZWxcIj5cbiAgICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cInNlbmRCdXR0b25JY29uXCIgW3NpemVdPVwiJzEwcHgnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PiAiXX0=
|