@dev-tcloud/tcloud-ui 0.1.3 → 0.1.5
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/README.md +2 -0
- package/esm2020/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +4 -4
- package/esm2020/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.mjs +133 -0
- package/esm2020/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module.mjs +31 -0
- package/esm2020/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.mjs +3 -3
- package/esm2020/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.mjs +9 -3
- package/esm2020/lib/tcloud-ui.module.mjs +8 -1
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/dev-tcloud-tcloud-ui.mjs +259 -93
- package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/fesm2020/dev-tcloud-tcloud-ui.mjs +259 -93
- package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.d.ts +0 -1
- package/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.d.ts +33 -0
- package/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module.d.ts +9 -0
- package/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.d.ts +5 -1
- package/lib/tcloud-ui.module.d.ts +4 -3
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/scss/components/custom/table.scss +1 -1
- package/scss/tcloud/custom/buttons.scss +37 -43
- package/scss/tcloud/custom/card.scss +3 -3
- package/scss/tcloud/custom/colors.scss +4 -9
- package/scss/tcloud/custom/forms.scss +3 -3
- package/scss/tcloud/custom/mixins.scss +15 -11
- package/scss/tcloud/custom/tcloud-prime.scss +673 -738
- package/scss/tcloud/custom/tcloud-standard.scss +2 -2
- package/scss/tcloud/custom/variables.scss +0 -20
- package/scss/tcloud/styles.scss +3 -2
- package/scss/tcloud/custom/colors-prime.scss +0 -15
- package/scss/tcloud/custom/colors-standard.scss +0 -22
|
@@ -142,7 +142,7 @@ export class TCloudUiModalComponent {
|
|
|
142
142
|
TCloudUiModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiModalComponent, deps: [{ token: i1.TcloudModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
143
143
|
TCloudUiModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiModalComponent, selector: "tcloud-ui-modal", inputs: { confirm: "confirm", confirmText: "confirmText", autoClose: "autoClose", title: "title", maxWidth: "maxWidth", window: "window", open: "open", loading: "loading" }, outputs: { openChange: "openChange", toConfirm: "toConfirm", toCancel: "toCancel", toAction: "toAction" }, providers: [
|
|
144
144
|
TcloudModalService
|
|
145
|
-
], ngImport: i0, template: "<div class=\"tc-background-modal\" *ngIf=\"control_open\" >{{ checkIsOpen() }}</div>\r\n\r\n<div class=\"base-modal\" *ngIf=\"open\">\r\n <div class=\"sub-modal\" [@fade]=\"'visible'\">\r\n <div class=\"tc-modal tc-modal-shadow\" [attr.style]=\"'max-width: ' + maxWidth + 'px;'\">\r\n <div class=\"area-top-actions\">\r\n <button type=\"button\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\r\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\r\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\r\n </button>\r\n </div>\r\n\r\n <h4 *ngIf=\"title\" [innerHTML]=\"title\"></h4>\r\n\r\n <ng-content></ng-content>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Ex: Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open\">\r\n\r\n <tcloud-ui-modal-header title=\"T\u00EDtulo do Modal\" ></tcloud-ui-modal-header>\r\n\r\n <tcloud-ui-modal-body>\r\n Conte\u00FAdo do modal aqui\r\n </tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open = !open\">open modal {{ open }}</button>\r\n-->\r\n\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n\r\n<!-- Ex: Confirm Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open_confirm\" [title]=\"'Aten\u00E7\u00E3o'\" [confirmText]=\"'Aceito'\" [confirm]=\"true\" (toAction)=\"$event\" >\r\n\r\n <tcloud-ui-modal-body>Deseja realmente executar esta a\u00E7\u00E3o?</tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open_confirm = !open_confirm\">open_confirm modal {{ open_confirm }}</button>\r\n-->", styles: [".tc-background-modal{border:1px solid #ccc;position:fixed;width:100%;left:0;top:0;background-color:#000;z-index:4005;height:100%;opacity:.3}.base-modal{height:100%;overflow:scroll;position:fixed;width:100%;z-index:4005;left:0;top:0;text-align:left!important}.sub-modal{padding:30px;position:absolute;width:100%}.tc-modal{position:relative;background-color:#fff;padding:12px;border-radius:8px;margin:auto;width:100%}.tc-modal-shadow{box-shadow:2px 2px 10px #0000005e}.area-top-actions{position:absolute;top:2px;right:5px;z-index:1}.area-top-actions button{cursor:pointer;background-color:transparent;border:none;font-size:15px;padding:5px 7px}.area-top-actions button i{font-size:17px;color:#fff;transition:all .25s;opacity:.7}.area-top-actions button i:hover{opacity:1!important}h4{font-size:16px;margin:5px 30px 10px 0;font-weight:700}.no-use-header i{color:#999!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
145
|
+
], ngImport: i0, template: "<div class=\"tc-background-modal\" *ngIf=\"control_open\" >{{ checkIsOpen() }}</div>\r\n\r\n<div class=\"tcloud-ui-modal base-modal\" *ngIf=\"open\">\r\n <div class=\"sub-modal\" [@fade]=\"'visible'\">\r\n <div class=\"tc-modal tc-modal-shadow\" [attr.style]=\"'max-width: ' + maxWidth + 'px;'\">\r\n <div class=\"area-top-actions\">\r\n <button type=\"button\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\r\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\r\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\r\n </button>\r\n </div>\r\n\r\n <h4 *ngIf=\"title\" [innerHTML]=\"title\"></h4>\r\n\r\n <ng-content></ng-content>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Ex: Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open\">\r\n\r\n <tcloud-ui-modal-header title=\"T\u00EDtulo do Modal\" ></tcloud-ui-modal-header>\r\n\r\n <tcloud-ui-modal-body>\r\n Conte\u00FAdo do modal aqui\r\n </tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open = !open\">open modal {{ open }}</button>\r\n-->\r\n\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n\r\n<!-- Ex: Confirm Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open_confirm\" [title]=\"'Aten\u00E7\u00E3o'\" [confirmText]=\"'Aceito'\" [confirm]=\"true\" (toAction)=\"$event\" >\r\n\r\n <tcloud-ui-modal-body>Deseja realmente executar esta a\u00E7\u00E3o?</tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open_confirm = !open_confirm\">open_confirm modal {{ open_confirm }}</button>\r\n-->", styles: [".tc-background-modal{border:1px solid #ccc;position:fixed;width:100%;left:0;top:0;background-color:#000;z-index:4005;height:100%;opacity:.3}.base-modal{height:100%;overflow:scroll;position:fixed;width:100%;z-index:4005;left:0;top:0;text-align:left!important}.sub-modal{padding:30px;position:absolute;width:100%}.tc-modal{position:relative;background-color:#fff;padding:12px;border-radius:8px;margin:auto;width:100%}.tc-modal-shadow{box-shadow:2px 2px 10px #0000005e}.area-top-actions{position:absolute;top:2px;right:5px;z-index:1}.area-top-actions button{cursor:pointer;background-color:transparent;border:none;font-size:15px;padding:5px 7px}.area-top-actions button i{font-size:17px;color:#fff;transition:all .25s;opacity:.7}.area-top-actions button i:hover{opacity:1!important}h4{font-size:16px;margin:5px 30px 10px 0;font-weight:700}.no-use-header i{color:#999!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
146
146
|
trigger('fade', [
|
|
147
147
|
state('visible', style({ opacity: 1 })),
|
|
148
148
|
state('hide', style({ opacity: 0, top: '-38%' })),
|
|
@@ -167,7 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
167
167
|
]),
|
|
168
168
|
transition('visible => hide', animate('0.3s ease-out'))
|
|
169
169
|
])
|
|
170
|
-
], template: "<div class=\"tc-background-modal\" *ngIf=\"control_open\" >{{ checkIsOpen() }}</div>\r\n\r\n<div class=\"base-modal\" *ngIf=\"open\">\r\n <div class=\"sub-modal\" [@fade]=\"'visible'\">\r\n <div class=\"tc-modal tc-modal-shadow\" [attr.style]=\"'max-width: ' + maxWidth + 'px;'\">\r\n <div class=\"area-top-actions\">\r\n <button type=\"button\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\r\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\r\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\r\n </button>\r\n </div>\r\n\r\n <h4 *ngIf=\"title\" [innerHTML]=\"title\"></h4>\r\n\r\n <ng-content></ng-content>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Ex: Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open\">\r\n\r\n <tcloud-ui-modal-header title=\"T\u00EDtulo do Modal\" ></tcloud-ui-modal-header>\r\n\r\n <tcloud-ui-modal-body>\r\n Conte\u00FAdo do modal aqui\r\n </tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open = !open\">open modal {{ open }}</button>\r\n-->\r\n\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n\r\n<!-- Ex: Confirm Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open_confirm\" [title]=\"'Aten\u00E7\u00E3o'\" [confirmText]=\"'Aceito'\" [confirm]=\"true\" (toAction)=\"$event\" >\r\n\r\n <tcloud-ui-modal-body>Deseja realmente executar esta a\u00E7\u00E3o?</tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open_confirm = !open_confirm\">open_confirm modal {{ open_confirm }}</button>\r\n-->", styles: [".tc-background-modal{border:1px solid #ccc;position:fixed;width:100%;left:0;top:0;background-color:#000;z-index:4005;height:100%;opacity:.3}.base-modal{height:100%;overflow:scroll;position:fixed;width:100%;z-index:4005;left:0;top:0;text-align:left!important}.sub-modal{padding:30px;position:absolute;width:100%}.tc-modal{position:relative;background-color:#fff;padding:12px;border-radius:8px;margin:auto;width:100%}.tc-modal-shadow{box-shadow:2px 2px 10px #0000005e}.area-top-actions{position:absolute;top:2px;right:5px;z-index:1}.area-top-actions button{cursor:pointer;background-color:transparent;border:none;font-size:15px;padding:5px 7px}.area-top-actions button i{font-size:17px;color:#fff;transition:all .25s;opacity:.7}.area-top-actions button i:hover{opacity:1!important}h4{font-size:16px;margin:5px 30px 10px 0;font-weight:700}.no-use-header i{color:#999!important}\n"] }]
|
|
170
|
+
], template: "<div class=\"tc-background-modal\" *ngIf=\"control_open\" >{{ checkIsOpen() }}</div>\r\n\r\n<div class=\"tcloud-ui-modal base-modal\" *ngIf=\"open\">\r\n <div class=\"sub-modal\" [@fade]=\"'visible'\">\r\n <div class=\"tc-modal tc-modal-shadow\" [attr.style]=\"'max-width: ' + maxWidth + 'px;'\">\r\n <div class=\"area-top-actions\">\r\n <button type=\"button\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\r\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\r\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\r\n </button>\r\n </div>\r\n\r\n <h4 *ngIf=\"title\" [innerHTML]=\"title\"></h4>\r\n\r\n <ng-content></ng-content>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Ex: Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open\">\r\n\r\n <tcloud-ui-modal-header title=\"T\u00EDtulo do Modal\" ></tcloud-ui-modal-header>\r\n\r\n <tcloud-ui-modal-body>\r\n Conte\u00FAdo do modal aqui\r\n </tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open = !open\">open modal {{ open }}</button>\r\n-->\r\n\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n<!-- ****** -->\r\n\r\n<!-- Ex: Confirm Modal -->\r\n<!-- \r\n <tcloud-ui-modal [(open)]=\"open_confirm\" [title]=\"'Aten\u00E7\u00E3o'\" [confirmText]=\"'Aceito'\" [confirm]=\"true\" (toAction)=\"$event\" >\r\n\r\n <tcloud-ui-modal-body>Deseja realmente executar esta a\u00E7\u00E3o?</tcloud-ui-modal-body>\r\n\r\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\r\n\r\n </tcloud-ui-modal>\r\n\r\n <button type=\"button\" (click)=\"open_confirm = !open_confirm\">open_confirm modal {{ open_confirm }}</button>\r\n-->", styles: [".tc-background-modal{border:1px solid #ccc;position:fixed;width:100%;left:0;top:0;background-color:#000;z-index:4005;height:100%;opacity:.3}.base-modal{height:100%;overflow:scroll;position:fixed;width:100%;z-index:4005;left:0;top:0;text-align:left!important}.sub-modal{padding:30px;position:absolute;width:100%}.tc-modal{position:relative;background-color:#fff;padding:12px;border-radius:8px;margin:auto;width:100%}.tc-modal-shadow{box-shadow:2px 2px 10px #0000005e}.area-top-actions{position:absolute;top:2px;right:5px;z-index:1}.area-top-actions button{cursor:pointer;background-color:transparent;border:none;font-size:15px;padding:5px 7px}.area-top-actions button i{font-size:17px;color:#fff;transition:all .25s;opacity:.7}.area-top-actions button i:hover{opacity:1!important}h4{font-size:16px;margin:5px 30px 10px 0;font-weight:700}.no-use-header i{color:#999!important}\n"] }]
|
|
171
171
|
}], ctorParameters: function () { return [{ type: i1.TcloudModalService }]; }, propDecorators: { confirm: [{
|
|
172
172
|
type: Input
|
|
173
173
|
}], confirmText: [{
|
|
@@ -193,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
193
193
|
}], toAction: [{
|
|
194
194
|
type: Output
|
|
195
195
|
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1tb2RhbC90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW1vZGFsL3RjbG91ZC11aS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFzQmpGLE1BQU0sT0FBTyxzQkFBc0I7SUFrR2pDLFlBQ1Usa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFqRy9DOzs7Ozs7VUFNRTtRQUVILGtCQUFhLEdBQWEsRUFBYyxDQUFDO1FBQ3pDLDhDQUE4QztRQUN0QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsVUFBVSxDQUFDO1FBeUIxQzs7V0FFRztRQUNNLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFPbkM7O1dBRUc7UUFDTSxhQUFRLEdBQVcsR0FBRyxDQUFDO1FBaUJoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBYXZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFVeEIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFekMsY0FBUyxHQUFHLElB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Q0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQzFELENBQUM7cUJBQ0g7eUdBb0JZLE9BQU87c0JBQW5CLEtBQUs7Z0JBU08sV0FBVztzQkFBdkIsS0FBSztnQkFjRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1PLE1BQU07c0JBQWxCLEtBQUs7Z0JBZ0JPLElBQUk7c0JBQWhCLEtBQUs7Z0JBYU8sT0FBTztzQkFBbkIsS0FBSztnQkFNSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUY2xvdWRNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RjbG91ZC1tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IElDb25maXJtIH0gZnJvbSAnLi90Y2xvdWQtdWktbW9kYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVGNsb3VkTW9kYWxTZXJ2aWNlXHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdmYWRlJywgW1xyXG4gICAgICAgIHN0YXRlKCd2aXNpYmxlJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcclxuICAgICAgICBzdGF0ZSgnaGlkZScsIHN0eWxlKHsgb3BhY2l0eTogMCwgdG9wOiAnLTM4JScgfSkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFtcclxuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0b3A6ICctMzglJyB9KSxcclxuICAgICAgICAgICAgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcpXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA9PiBoaWRlJywgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgLyoqXHJcbiAgICogdGNsb3VkLXVpLW1vZGFsIC0gQ3JpYSBlIGV4aWJlIHVtIG1vZGFsXHJcbiAgICogXHJcbiAgICogdG9BY3Rpb24gLSAodG9BY3Rpb24pIC0gUmVzdWx0YWRvIGRvIGV2ZW50byAtICdjb25maXJtZWQnfCdjYW5jZWwnfCdjbG9zZSdcclxuICAgKiB0b0NvbmZpcm0gLSAodG9Db25maXJtKSAtIEluZGljYSBxdWUgYSBhw6fDo28gZm9pIGNvbmZpcm1hZGEgLSByZXN1bHRhZG8gdHJ1ZVxyXG4gICAqIHRvQ2FuY2VsIC0gKHRvQ2FuY2VsKCkgLSBJbmRpY2EgcXVlIGEgYcOnw6NvIGZvaSBjYW5jZWxhZGEgLSByZXN1bHRhZG8gZmFsc2VcclxuICAgKi9cclxuXHJcbiAgcGFyYW1fY29uZmlybTogSUNvbmZpcm0gPSB7fSBhcyBJQ29uZmlybTtcclxuICAvKiBCRUdJTiAtIFBhcmFtZXRyb3MgcGFyYSBtb2RvIGNvbmZpcm1hY2FvICovXHJcbiAgcHJpdmF0ZSBfY29uZmlybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2NvbmZpcm1UZXh0OiBzdHJpbmcgPSAnQ29uZmlybW8nO1xyXG5cclxuICAvKipcclxuICAgKiBjb25maXJtIGJvb2xlYW4gLSBJbmRpY2Egc2Ugc2Vyw6EgdW0gbW9kYWwgZG8gdGlwbyBjb25maXJtYcOnw6NvIC0gZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBjb25maXJtKHY6IGJvb2xlYW4pe1xyXG4gICAgdGhpcy5fY29uZmlybSA9IHY7XHJcbiAgICB0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybSA9IHRoaXMuX2NvbmZpcm07XHJcbiAgICB0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQgPSB0aGlzLl9jb25maXJtVGV4dDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbmZpcm1UZXh0IHN0cmluZyAtIFRleHRvIHF1ZSBkZXZlcsOhIHNlciBkaWdpdGFkbyAtIGRlZnVhbHQgQ29uZmlybW9cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgY29uZmlybVRleHQodjogc3RyaW5nKXtcclxuICAgIHRoaXMuX2NvbmZpcm1UZXh0ID0gdjtcclxuICAgIHRoaXMucGFyYW1fY29uZmlybS5jb25maXJtVGV4dCA9IHRoaXMuX2NvbmZpcm1UZXh0O1xyXG4gICAgdGhpcy5wYXJhbV9jb25maXJtLmNvbmZpcm0gPSB0aGlzLl9jb25maXJtOyAgICBcclxuICB9XHJcblxyXG4gIC8qIEVORCAtLS0gUGFyYW1ldHJvcyBwYXJhIG1vZG8gY29uZmlybWFjYW8gKi9cclxuXHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgc3Vic2NyaXB0aW9uSTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBhdXRvQ2xvc2UgYm9vbGVhbiAtIEluZGljYSBzZSBkZXZlcsOhIHNlciBmZWNoYWRvIHF1YW5kbyBjb25maXJtYXIgdW1hIGHDp8OjbyAtIGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGF1dG9DbG9zZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIHRpdGxlIC0gc3RyaW5nIC0gVMOtdHVsbyBhIHNlciBleGliaWRvIG5vIHRvcG8gZG8gbW9kYWxcclxuICAgKi9cclxuICBASW5wdXQoKSB0aXRsZTogYW55IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBtYXhXaWR0aCAtIG51bWJlciAtIExhcmd1cmEgbcOheGltYSBkbyBtb2RhbCAtIGRlZmF1bHQgNTAwcHhcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhXaWR0aDogbnVtYmVyID0gNTAwO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogd2luZG93IC0gc3RyaW5nIC0gbm9tZSByZWZlcmVudGUgYW8gdGFtYW5obyBkbyBtb2RhbCAtIG7Do28gdXRpbGl6YXIgbWF4V2lkdGggc2UgZm9yIHV0aWxpemFyIHdpbmRvdyAtIGRlZmF1bHQgNTAwIChtZWRpdW0pXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHdpbmRvdyggc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICdiaWcnIHwgJ2Z1bGwnICl7XHJcbiAgICBzd2l0Y2ggKHNpemUpIHtcclxuICAgICAgY2FzZSAnc21hbGwnOiB0aGlzLm1heFdpZHRoICAgPSAzMDA7IGJyZWFrO1xyXG4gICAgICBjYXNlICdtZWRpdW0nOiB0aGlzLm1heFdpZHRoICA9IDUwMDsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xhcmdlJzogdGhpcy5tYXhXaWR0aCAgID0gOTAwOyBicmVhaztcclxuICAgICAgY2FzZSAnYmlnJzogdGhpcy5tYXhXaWR0aCAgICAgPSAxMTAwOyBicmVhaztcclxuICAgICAgY2FzZSAnZnVsbCc6IHRoaXMubWF4V2lkdGggICAgID0gMTQwMDsgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuIFxyXG4gIGNvbnRyb2xfb3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBvcGVuIC0gYm9vbGVhbiAtIFZhcmnDoXZlbCBkZSBjb250cm9sZSBwYXJhIGV4aWJpw6fDo28gZG8gbW9kYWwgLSBvYnJpZ2F0w7NyaW9cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgb3BlbihvcGVuOiBib29sZWFuKXtcclxuICAgIHRoaXMuY29udHJvbF9vcGVuID0gb3BlbjtcclxuICAgIHRoaXMuY2hlY2tJc09wZW4oKTtcclxuXHJcbiAgICB0aGlzLl9vcGVuID0gb3BlbjtcclxuICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmZpeGVkX2JvZHkoKG9wZW4pID8gJ29uJyA6ICdvZmYnKTtcclxuICB9XHJcbiAgZ2V0IG9wZW4oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9vcGVuOyB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBsb2FkaW5nIC0gYm9vbGVhbiAtIENvbG9jYSBvIG1vZGFsIGVtIG1vZG8gZGUgY2FycmVnYW1lbnRvIC0gZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBsb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4peyBcclxuICAgIHRoaXMuX2xvYWRpbmcgPSBsb2FkaW5nO1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2Uuc2V0TG9hZGluZyhsb2FkaW5nKTtcclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9sb2FkaW5nOyB9XHJcbiAgXHJcbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSB0b0NvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIHRvQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSB0b0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8J2NvbmZpcm1lZCd8J2NhbmNlbCd8J2Nsb3NlJz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRjbG91ZE1vZGFsU2VydmljZTogVGNsb3VkTW9kYWxTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZUNsb3NlJC5zdWJzY3JpYmUoKG9wZW46IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCBvcGVuICl7XHJcbiAgICAgICAgLyogT1BFTiAqL1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggIW9wZW4gKXtcclxuICAgICAgICAvKiBDTE9TRSAqL1xyXG4gICAgICAgIHRoaXMudG9DbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbkkgPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZVJlc3BDb25maXJtJC5zdWJzY3JpYmUoKHJlc3A6IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCByZXNwICl7XHJcbiAgICAgICAgLyogQ09ORklSTUFETyAqL1xyXG4gICAgICAgIHRoaXMudG9Db25maXJtLmVtaXQocmVzcCk7XHJcbiAgICAgICAgdGhpcy50b0Nsb3NlKCdjb25maXJtZWQnKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCAhcmVzcCApe1xyXG4gICAgICAgIC8qIENBTkNFTEFETyAqL1xyXG4gICAgICAgIHRoaXMudG9DYW5jZWwuZW1pdChyZXNwKTtcclxuICAgICAgICB0aGlzLnRvQ2xvc2UoJ2NhbmNlbCcpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgXHJcbiAgICB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS50b0NvbmZpcm0oIHRoaXMucGFyYW1fY29uZmlybSApO1xyXG4gIH1cclxuXHJcbiAgdG9DbG9zZShhY3Rpb24/OiBhbnkgfCB1bmRlZmluZWQpe1xyXG4gICAgaWYoIHRoaXMuYXV0b0Nsb3NlICl7XHJcbiAgICAgIHRoaXMuY29udHJvbF9vcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGFjdGlvbiA9IChhY3Rpb24pID8gYWN0aW9uIDogJ2Nsb3NlJztcclxuICAgIHRoaXMudG9BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UuZml4ZWRfYm9keSgnb2ZmJyk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzT3Blbigpe1xyXG4gICAgaWYoIHRoaXMuY29udHJvbF9vcGVuICl7XHJcbiAgICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmZpeGVkX2JvZHkoJ29uJyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UuZml4ZWRfYm9keSgnb2ZmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpe1xyXG4gICAgdGhpcy5jaGVja0lzT3BlbigpO1xyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uICl7IHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH1cclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGMtYmFja2dyb3VuZC1tb2RhbFwiICpuZ0lmPVwiY29udHJvbF9vcGVuXCIgPnt7IGNoZWNrSXNPcGVuKCkgfX08L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJiYXNlLW1vZGFsXCIgKm5nSWY9XCJvcGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1Yi1tb2RhbFwiIFtAZmFkZV09XCIndmlzaWJsZSdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy1tb2RhbCB0Yy1tb2RhbC1zaGFkb3dcIiBbYXR0ci5zdHlsZV09XCInbWF4LXdpZHRoOiAnICsgbWF4V2lkdGggKyAncHg7J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJlYS10b3AtYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtjbGFzcy5uby11c2UtaGVhZGVyXT1cInRpdGxlXCIgKGNsaWNrKT1cInRvQ2xvc2UoKVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgICA8aSAqbmdJZj1cIiFsb2FkaW5nXCIgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICA8aSAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImZhcyBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGg0ICpuZ0lmPVwidGl0bGVcIiBbaW5uZXJIVE1MXT1cInRpdGxlXCI+PC9oND5cclxuXHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIEV4OiBNb2RhbCAtLT5cclxuPCEtLSBcclxuICA8dGNsb3VkLXVpLW1vZGFsIFsob3BlbildPVwib3BlblwiPlxyXG5cclxuICAgIDx0Y2xvdWQtdWktbW9kYWwtaGVhZGVyIHRpdGxlPVwiVMOtdHVsbyBkbyBNb2RhbFwiID48L3RjbG91ZC11aS1tb2RhbC1oZWFkZXI+XHJcblxyXG4gICAgPHRjbG91ZC11aS1tb2RhbC1ib2R5PlxyXG4gICAgICBDb250ZcO6ZG8gZG8gbW9kYWwgYXF1aVxyXG4gICAgPC90Y2xvdWQtdWktbW9kYWwtYm9keT5cclxuXHJcbiAgICA8dGNsb3VkLXVpLW1vZGFsLWZvb3Rlcj48L3RjbG91ZC11aS1tb2RhbC1mb290ZXI+XHJcblxyXG4gIDwvdGNsb3VkLXVpLW1vZGFsPlxyXG5cclxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbiA9ICFvcGVuXCI+b3BlbiBtb2RhbCB7eyBvcGVuIH19PC9idXR0b24+XHJcbi0tPlxyXG5cclxuPCEtLSAqKioqKiogLS0+XHJcbjwhLS0gKioqKioqIC0tPlxyXG48IS0tICoqKioqKiAtLT5cclxuPCEtLSAqKioqKiogLS0+XHJcblxyXG48IS0tIEV4OiBDb25maXJtIE1vZGFsIC0tPlxyXG48IS0tIFxyXG4gIDx0Y2xvdWQtdWktbW9kYWwgWyhvcGVuKV09XCJvcGVuX2NvbmZpcm1cIiBbdGl0bGVdPVwiJ0F0ZW7Dp8OjbydcIiBbY29uZmlybVRleHRdPVwiJ0FjZWl0bydcIiBbY29uZmlybV09XCJ0cnVlXCIgKHRvQWN0aW9uKT1cIiRldmVudFwiID5cclxuXHJcbiAgICA8dGNsb3VkLXVpLW1vZGFsLWJvZHk+RGVzZWphIHJlYWxtZW50ZSBleGVjdXRhciBlc3RhIGHDp8Ojbz88L3RjbG91ZC11aS1tb2RhbC1ib2R5PlxyXG5cclxuICAgIDx0Y2xvdWQtdWktbW9kYWwtZm9vdGVyPjwvdGNsb3VkLXVpLW1vZGFsLWZvb3Rlcj5cclxuXHJcbiAgPC90Y2xvdWQtdWktbW9kYWw+XHJcblxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuX2NvbmZpcm0gPSAhb3Blbl9jb25maXJtXCI+b3Blbl9jb25maXJtIG1vZGFsIHt7IG9wZW5fY29uZmlybSB9fTwvYnV0dG9uPlxyXG4tLT4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1tb2RhbC90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW1vZGFsL3RjbG91ZC11aS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFzQmpGLE1BQU0sT0FBTyxzQkFBc0I7SUFrR2pDLFlBQ1Usa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFqRy9DOzs7Ozs7VUFNRTtRQUVILGtCQUFhLEdBQWEsRUFBYyxDQUFDO1FBQ3pDLDhDQUE4QztRQUN0QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsVUFBVSxDQUFDO1FBeUIxQzs7V0FFRztRQUNNLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFPbkM7O1dBRUc7UUFDTSxhQUFRLEdBQVcsR0FBRyxDQUFDO1FBaUJoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBYXZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFVeEIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFekMsY0FBUyxHQUFHLElB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Q0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQzFELENBQUM7cUJBQ0g7eUdBb0JZLE9BQU87c0JBQW5CLEtBQUs7Z0JBU08sV0FBVztzQkFBdkIsS0FBSztnQkFjRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1PLE1BQU07c0JBQWxCLEtBQUs7Z0JBZ0JPLElBQUk7c0JBQWhCLEtBQUs7Z0JBYU8sT0FBTztzQkFBbkIsS0FBSztnQkFNSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUY2xvdWRNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RjbG91ZC1tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IElDb25maXJtIH0gZnJvbSAnLi90Y2xvdWQtdWktbW9kYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVGNsb3VkTW9kYWxTZXJ2aWNlXHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdmYWRlJywgW1xyXG4gICAgICAgIHN0YXRlKCd2aXNpYmxlJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcclxuICAgICAgICBzdGF0ZSgnaGlkZScsIHN0eWxlKHsgb3BhY2l0eTogMCwgdG9wOiAnLTM4JScgfSkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFtcclxuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0b3A6ICctMzglJyB9KSxcclxuICAgICAgICAgICAgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcpXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA9PiBoaWRlJywgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgLyoqXHJcbiAgICogdGNsb3VkLXVpLW1vZGFsIC0gQ3JpYSBlIGV4aWJlIHVtIG1vZGFsXHJcbiAgICogXHJcbiAgICogdG9BY3Rpb24gLSAodG9BY3Rpb24pIC0gUmVzdWx0YWRvIGRvIGV2ZW50byAtICdjb25maXJtZWQnfCdjYW5jZWwnfCdjbG9zZSdcclxuICAgKiB0b0NvbmZpcm0gLSAodG9Db25maXJtKSAtIEluZGljYSBxdWUgYSBhw6fDo28gZm9pIGNvbmZpcm1hZGEgLSByZXN1bHRhZG8gdHJ1ZVxyXG4gICAqIHRvQ2FuY2VsIC0gKHRvQ2FuY2VsKCkgLSBJbmRpY2EgcXVlIGEgYcOnw6NvIGZvaSBjYW5jZWxhZGEgLSByZXN1bHRhZG8gZmFsc2VcclxuICAgKi9cclxuXHJcbiAgcGFyYW1fY29uZmlybTogSUNvbmZpcm0gPSB7fSBhcyBJQ29uZmlybTtcclxuICAvKiBCRUdJTiAtIFBhcmFtZXRyb3MgcGFyYSBtb2RvIGNvbmZpcm1hY2FvICovXHJcbiAgcHJpdmF0ZSBfY29uZmlybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2NvbmZpcm1UZXh0OiBzdHJpbmcgPSAnQ29uZmlybW8nO1xyXG5cclxuICAvKipcclxuICAgKiBjb25maXJtIGJvb2xlYW4gLSBJbmRpY2Egc2Ugc2Vyw6EgdW0gbW9kYWwgZG8gdGlwbyBjb25maXJtYcOnw6NvIC0gZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBjb25maXJtKHY6IGJvb2xlYW4pe1xyXG4gICAgdGhpcy5fY29uZmlybSA9IHY7XHJcbiAgICB0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybSA9IHRoaXMuX2NvbmZpcm07XHJcbiAgICB0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQgPSB0aGlzLl9jb25maXJtVGV4dDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbmZpcm1UZXh0IHN0cmluZyAtIFRleHRvIHF1ZSBkZXZlcsOhIHNlciBkaWdpdGFkbyAtIGRlZnVhbHQgQ29uZmlybW9cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgY29uZmlybVRleHQodjogc3RyaW5nKXtcclxuICAgIHRoaXMuX2NvbmZpcm1UZXh0ID0gdjtcclxuICAgIHRoaXMucGFyYW1fY29uZmlybS5jb25maXJtVGV4dCA9IHRoaXMuX2NvbmZpcm1UZXh0O1xyXG4gICAgdGhpcy5wYXJhbV9jb25maXJtLmNvbmZpcm0gPSB0aGlzLl9jb25maXJtOyAgICBcclxuICB9XHJcblxyXG4gIC8qIEVORCAtLS0gUGFyYW1ldHJvcyBwYXJhIG1vZG8gY29uZmlybWFjYW8gKi9cclxuXHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgc3Vic2NyaXB0aW9uSTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBhdXRvQ2xvc2UgYm9vbGVhbiAtIEluZGljYSBzZSBkZXZlcsOhIHNlciBmZWNoYWRvIHF1YW5kbyBjb25maXJtYXIgdW1hIGHDp8OjbyAtIGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGF1dG9DbG9zZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIHRpdGxlIC0gc3RyaW5nIC0gVMOtdHVsbyBhIHNlciBleGliaWRvIG5vIHRvcG8gZG8gbW9kYWxcclxuICAgKi9cclxuICBASW5wdXQoKSB0aXRsZTogYW55IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBtYXhXaWR0aCAtIG51bWJlciAtIExhcmd1cmEgbcOheGltYSBkbyBtb2RhbCAtIGRlZmF1bHQgNTAwcHhcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhXaWR0aDogbnVtYmVyID0gNTAwO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogd2luZG93IC0gc3RyaW5nIC0gbm9tZSByZWZlcmVudGUgYW8gdGFtYW5obyBkbyBtb2RhbCAtIG7Do28gdXRpbGl6YXIgbWF4V2lkdGggc2UgZm9yIHV0aWxpemFyIHdpbmRvdyAtIGRlZmF1bHQgNTAwIChtZWRpdW0pXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHdpbmRvdyggc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICdiaWcnIHwgJ2Z1bGwnICl7XHJcbiAgICBzd2l0Y2ggKHNpemUpIHtcclxuICAgICAgY2FzZSAnc21hbGwnOiB0aGlzLm1heFdpZHRoICAgPSAzMDA7IGJyZWFrO1xyXG4gICAgICBjYXNlICdtZWRpdW0nOiB0aGlzLm1heFdpZHRoICA9IDUwMDsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xhcmdlJzogdGhpcy5tYXhXaWR0aCAgID0gOTAwOyBicmVhaztcclxuICAgICAgY2FzZSAnYmlnJzogdGhpcy5tYXhXaWR0aCAgICAgPSAxMTAwOyBicmVhaztcclxuICAgICAgY2FzZSAnZnVsbCc6IHRoaXMubWF4V2lkdGggICAgID0gMTQwMDsgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuIFxyXG4gIGNvbnRyb2xfb3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBvcGVuIC0gYm9vbGVhbiAtIFZhcmnDoXZlbCBkZSBjb250cm9sZSBwYXJhIGV4aWJpw6fDo28gZG8gbW9kYWwgLSBvYnJpZ2F0w7NyaW9cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgb3BlbihvcGVuOiBib29sZWFuKXtcclxuICAgIHRoaXMuY29udHJvbF9vcGVuID0gb3BlbjtcclxuICAgIHRoaXMuY2hlY2tJc09wZW4oKTtcclxuXHJcbiAgICB0aGlzLl9vcGVuID0gb3BlbjtcclxuICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmZpeGVkX2JvZHkoKG9wZW4pID8gJ29uJyA6ICdvZmYnKTtcclxuICB9XHJcbiAgZ2V0IG9wZW4oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9vcGVuOyB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBsb2FkaW5nIC0gYm9vbGVhbiAtIENvbG9jYSBvIG1vZGFsIGVtIG1vZG8gZGUgY2FycmVnYW1lbnRvIC0gZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBsb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4peyBcclxuICAgIHRoaXMuX2xvYWRpbmcgPSBsb2FkaW5nO1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2Uuc2V0TG9hZGluZyhsb2FkaW5nKTtcclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9sb2FkaW5nOyB9XHJcbiAgXHJcbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSB0b0NvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIHRvQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSB0b0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8J2NvbmZpcm1lZCd8J2NhbmNlbCd8J2Nsb3NlJz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRjbG91ZE1vZGFsU2VydmljZTogVGNsb3VkTW9kYWxTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZUNsb3NlJC5zdWJzY3JpYmUoKG9wZW46IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCBvcGVuICl7XHJcbiAgICAgICAgLyogT1BFTiAqL1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggIW9wZW4gKXtcclxuICAgICAgICAvKiBDTE9TRSAqL1xyXG4gICAgICAgIHRoaXMudG9DbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbkkgPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZVJlc3BDb25maXJtJC5zdWJzY3JpYmUoKHJlc3A6IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCByZXNwICl7XHJcbiAgICAgICAgLyogQ09ORklSTUFETyAqL1xyXG4gICAgICAgIHRoaXMudG9Db25maXJtLmVtaXQocmVzcCk7XHJcbiAgICAgICAgdGhpcy50b0Nsb3NlKCdjb25maXJtZWQnKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCAhcmVzcCApe1xyXG4gICAgICAgIC8qIENBTkNFTEFETyAqL1xyXG4gICAgICAgIHRoaXMudG9DYW5jZWwuZW1pdChyZXNwKTtcclxuICAgICAgICB0aGlzLnRvQ2xvc2UoJ2NhbmNlbCcpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgXHJcbiAgICB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS50b0NvbmZpcm0oIHRoaXMucGFyYW1fY29uZmlybSApO1xyXG4gIH1cclxuXHJcbiAgdG9DbG9zZShhY3Rpb24/OiBhbnkgfCB1bmRlZmluZWQpe1xyXG4gICAgaWYoIHRoaXMuYXV0b0Nsb3NlICl7XHJcbiAgICAgIHRoaXMuY29udHJvbF9vcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGFjdGlvbiA9IChhY3Rpb24pID8gYWN0aW9uIDogJ2Nsb3NlJztcclxuICAgIHRoaXMudG9BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UuZml4ZWRfYm9keSgnb2ZmJyk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzT3Blbigpe1xyXG4gICAgaWYoIHRoaXMuY29udHJvbF9vcGVuICl7XHJcbiAgICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmZpeGVkX2JvZHkoJ29uJyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UuZml4ZWRfYm9keSgnb2ZmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpe1xyXG4gICAgdGhpcy5jaGVja0lzT3BlbigpO1xyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uICl7IHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH1cclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGMtYmFja2dyb3VuZC1tb2RhbFwiICpuZ0lmPVwiY29udHJvbF9vcGVuXCIgPnt7IGNoZWNrSXNPcGVuKCkgfX08L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktbW9kYWwgYmFzZS1tb2RhbFwiICpuZ0lmPVwib3BlblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzdWItbW9kYWxcIiBbQGZhZGVdPVwiJ3Zpc2libGUnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGMtbW9kYWwgdGMtbW9kYWwtc2hhZG93XCIgW2F0dHIuc3R5bGVdPVwiJ21heC13aWR0aDogJyArIG1heFdpZHRoICsgJ3B4OydcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZWEtdG9wLWFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbY2xhc3Mubm8tdXNlLWhlYWRlcl09XCJ0aXRsZVwiIChjbGljayk9XCJ0b0Nsb3NlKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGkgKm5nSWY9XCIhbG9hZGluZ1wiIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgPGkgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJmYXMgZmEtc3Bpbm5lciBmYS1zcGluXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxoNCAqbmdJZj1cInRpdGxlXCIgW2lubmVySFRNTF09XCJ0aXRsZVwiPjwvaDQ+XHJcblxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBFeDogTW9kYWwgLS0+XHJcbjwhLS0gXHJcbiAgPHRjbG91ZC11aS1tb2RhbCBbKG9wZW4pXT1cIm9wZW5cIj5cclxuXHJcbiAgICA8dGNsb3VkLXVpLW1vZGFsLWhlYWRlciB0aXRsZT1cIlTDrXR1bG8gZG8gTW9kYWxcIiA+PC90Y2xvdWQtdWktbW9kYWwtaGVhZGVyPlxyXG5cclxuICAgIDx0Y2xvdWQtdWktbW9kYWwtYm9keT5cclxuICAgICAgQ29udGXDumRvIGRvIG1vZGFsIGFxdWlcclxuICAgIDwvdGNsb3VkLXVpLW1vZGFsLWJvZHk+XHJcblxyXG4gICAgPHRjbG91ZC11aS1tb2RhbC1mb290ZXI+PC90Y2xvdWQtdWktbW9kYWwtZm9vdGVyPlxyXG5cclxuICA8L3RjbG91ZC11aS1tb2RhbD5cclxuXHJcbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW4gPSAhb3BlblwiPm9wZW4gbW9kYWwge3sgb3BlbiB9fTwvYnV0dG9uPlxyXG4tLT5cclxuXHJcbjwhLS0gKioqKioqIC0tPlxyXG48IS0tICoqKioqKiAtLT5cclxuPCEtLSAqKioqKiogLS0+XHJcbjwhLS0gKioqKioqIC0tPlxyXG5cclxuPCEtLSBFeDogQ29uZmlybSBNb2RhbCAtLT5cclxuPCEtLSBcclxuICA8dGNsb3VkLXVpLW1vZGFsIFsob3BlbildPVwib3Blbl9jb25maXJtXCIgW3RpdGxlXT1cIidBdGVuw6fDo28nXCIgW2NvbmZpcm1UZXh0XT1cIidBY2VpdG8nXCIgW2NvbmZpcm1dPVwidHJ1ZVwiICh0b0FjdGlvbik9XCIkZXZlbnRcIiA+XHJcblxyXG4gICAgPHRjbG91ZC11aS1tb2RhbC1ib2R5PkRlc2VqYSByZWFsbWVudGUgZXhlY3V0YXIgZXN0YSBhw6fDo28/PC90Y2xvdWQtdWktbW9kYWwtYm9keT5cclxuXHJcbiAgICA8dGNsb3VkLXVpLW1vZGFsLWZvb3Rlcj48L3RjbG91ZC11aS1tb2RhbC1mb290ZXI+XHJcblxyXG4gIDwvdGNsb3VkLXVpLW1vZGFsPlxyXG5cclxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3Blbl9jb25maXJtID0gIW9wZW5fY29uZmlybVwiPm9wZW5fY29uZmlybSBtb2RhbCB7eyBvcGVuX2NvbmZpcm0gfX08L2J1dHRvbj5cclxuLS0+Il19
|
|
@@ -146,10 +146,10 @@ export class TCloudUiMultiInputComponent {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
TCloudUiMultiInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
-
TCloudUiMultiInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiMultiInputComponent, selector: "tcloud-ui-multi-input", inputs: { tcList: "tcList", placeholder: "placeholder", disabled: "disabled", loading: "loading", required: "required" }, outputs: { tcChange: "tcChange", onChange: "onChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "<div>\n\n <table>\n <tr>\n <td>\n <input class=\"tc-form-control\" (blur)=\"onChangeTouched()\" [(ngModel)]=\"item_value\" [class.tc-parent-validation]=\"use_validation_required\" type=\"text\" [(ngModel)]=\"input_value\" [disabled]=\"disabled || loading\" name=\"input_value\">\n </td>\n <td>\n <button\n [disabled]=\"!item_value || disabled || loading\"\n title=\"Adicionar\"\n class=\"btn-plus-select\"\n (click)=\"addItem(input_value);onChangeTouched()\"\n type=\"button\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n \n <div class=\"box-itens-selected\" *ngIf=\"(tcList && tcList.length > 0)\">\n <ng-container *ngFor=\"let item of tcList; let i = index\">\n \n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\n <div class=\"box-value\" [title]=\"item.value\" >\n {{ item.value }} \n </div>\n <div class=\"box-action\">\n <button\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item.value, i);onChangeTouched()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n \n</div>\n ", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}input{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;background-color:var(--tc-primary);
|
|
149
|
+
TCloudUiMultiInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiMultiInputComponent, selector: "tcloud-ui-multi-input", inputs: { tcList: "tcList", placeholder: "placeholder", disabled: "disabled", loading: "loading", required: "required" }, outputs: { tcChange: "tcChange", onChange: "onChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "<div class=\"tcloud-ui-multi-input\">\r\n\r\n <table>\r\n <tr>\r\n <td>\r\n <input class=\"tc-form-control\" (blur)=\"onChangeTouched()\" [(ngModel)]=\"item_value\" [class.tc-parent-validation]=\"use_validation_required\" type=\"text\" [(ngModel)]=\"input_value\" [disabled]=\"disabled || loading\" name=\"input_value\">\r\n </td>\r\n <td>\r\n <button\r\n [disabled]=\"!item_value || disabled || loading\"\r\n title=\"Adicionar\"\r\n class=\"btn-plus-select\"\r\n (click)=\"addItem(input_value);onChangeTouched()\"\r\n type=\"button\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n \r\n <div class=\"box-itens-selected\" *ngIf=\"(tcList && tcList.length > 0)\">\r\n <ng-container *ngFor=\"let item of tcList; let i = index\">\r\n \r\n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\r\n <div class=\"box-value\" [title]=\"item.value\" >\r\n {{ item.value }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item.value, i);onChangeTouched()\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n </div>\r\n \r\n</div>\r\n ", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}input{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;background-color:var(--white);color:var(--tc-primary);padding:8px 15px 10px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;width:100%}.box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-label .box-action{position:absolute;right:4px;top:7px}.box-label .box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-label .box-action button i{font-size:12px}.box-label .box-action button:hover{color:var(--red)}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
150
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiInputComponent, decorators: [{
|
|
151
151
|
type: Component,
|
|
152
|
-
args: [{ selector: 'tcloud-ui-multi-input', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], template: "<div>\n\n <table>\n <tr>\n <td>\n <input class=\"tc-form-control\" (blur)=\"onChangeTouched()\" [(ngModel)]=\"item_value\" [class.tc-parent-validation]=\"use_validation_required\" type=\"text\" [(ngModel)]=\"input_value\" [disabled]=\"disabled || loading\" name=\"input_value\">\n </td>\n <td>\n <button\n [disabled]=\"!item_value || disabled || loading\"\n title=\"Adicionar\"\n class=\"btn-plus-select\"\n (click)=\"addItem(input_value);onChangeTouched()\"\n type=\"button\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n \n <div class=\"box-itens-selected\" *ngIf=\"(tcList && tcList.length > 0)\">\n <ng-container *ngFor=\"let item of tcList; let i = index\">\n \n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\n <div class=\"box-value\" [title]=\"item.value\" >\n {{ item.value }} \n </div>\n <div class=\"box-action\">\n <button\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item.value, i);onChangeTouched()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n \n</div>\n ", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}input{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;background-color:var(--tc-primary);
|
|
152
|
+
args: [{ selector: 'tcloud-ui-multi-input', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], template: "<div class=\"tcloud-ui-multi-input\">\r\n\r\n <table>\r\n <tr>\r\n <td>\r\n <input class=\"tc-form-control\" (blur)=\"onChangeTouched()\" [(ngModel)]=\"item_value\" [class.tc-parent-validation]=\"use_validation_required\" type=\"text\" [(ngModel)]=\"input_value\" [disabled]=\"disabled || loading\" name=\"input_value\">\r\n </td>\r\n <td>\r\n <button\r\n [disabled]=\"!item_value || disabled || loading\"\r\n title=\"Adicionar\"\r\n class=\"btn-plus-select\"\r\n (click)=\"addItem(input_value);onChangeTouched()\"\r\n type=\"button\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n \r\n <div class=\"box-itens-selected\" *ngIf=\"(tcList && tcList.length > 0)\">\r\n <ng-container *ngFor=\"let item of tcList; let i = index\">\r\n \r\n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\r\n <div class=\"box-value\" [title]=\"item.value\" >\r\n {{ item.value }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item.value, i);onChangeTouched()\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n </div>\r\n \r\n</div>\r\n ", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}input{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;background-color:var(--white);color:var(--tc-primary);padding:8px 15px 10px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;width:100%}.box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-label .box-action{position:absolute;right:4px;top:7px}.box-label .box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-label .box-action button i{font-size:12px}.box-label .box-action button:hover{color:var(--red)}\n"] }]
|
|
153
153
|
}], ctorParameters: function () { return []; }, propDecorators: { tcList: [{
|
|
154
154
|
type: Input
|
|
155
155
|
}], placeholder: [{
|
|
@@ -165,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
165
165
|
}], onChange: [{
|
|
166
166
|
type: Output
|
|
167
167
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1tdWx0aS1pbnB1dC90Y2xvdWQtdWktbXVsdGktaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpLWlucHV0L3RjbG91ZC11aS1tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQWUsYUFBYSxFQUFFLGlCQUFpQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFMUYsTUFBTyx1QkFBdUIsR0FBUTtJQUNwQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQTtBQUVELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sMkJBQTJCO0lBbUJ0QztRQWJTLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUlsQyxrQkFBYSxHQUFX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cG9uZW50LCBPbkluaXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25EZXN0cm95LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuY29uc3QgIENVU1RPTV9JTlBVVF9WQUxJREFUT1JTOiBhbnkgPSB7IFxuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLCBcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aUlucHV0Q29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn1cblxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpTXVsdGlJbnB1dENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLW11bHRpLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tdWx0aS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiwgQ1VTVE9NX0lOUFVUX1ZBTElEQVRPUlNdXG59KVxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpTXVsdGlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBWYWxpZGF0b3Ige1xuXG4gIGlucHV0X3ZhbHVlOiBhbnk7XG5cbiAgQElucHV0KCkgdGNMaXN0OiBhbnlbXSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICB2YWx1ZXM6IGFueVtdIHwgdW5kZWZpbmVkO1xuICBjb3VudF9hY3RpdmVzOiBudW1iZXIgPSAwO1xuXG4gIHVzZV92YWxpZGF0aW9uX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGl0ZW1fdmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgdGNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XG4gICAgfSk7XG4gIH1cblxuICBhZGRJdGVtKGl0ZW06IGFueSk6IHZvaWR7XG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XG4gICAgaWYoICF0aGlzLnRjTGlzdCApe1xuICAgICAgdGhpcy50Y0xpc3QgPSBbXTtcbiAgICB9XG4gICAgKHRoaXMudGNMaXN0KS5wdXNoKHt2YWx1ZTogaXRlbX0pOyAgICBcbiAgICB0aGlzLnRvQ2hhbmdlKCk7ICAgXG4gICAgdGhpcy5pbnB1dF92YWx1ZSA9ICcnO1xuICB9XG5cblxuICByZW1vdmVJdGVtKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWR7XG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLnRjTGlzdCkubGVuZ3RoOyBpKysgKXtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50Y0xpc3RbaV07XG4gICAgICAgIGlmKCBpdGVtID09PSByb3cudmFsdWUgJiYgaSA9PT0gaW5kZXggKXtcbiAgICAgICAgICAodGhpcy50Y0xpc3QpLnNwbGljZShpbmRleCwxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9DaGFuZ2UoKTogdm9pZHtcbiAgICBsZXQgY291bnRfYWN0aXZlcyA9IDA7XG4gICAgbGV0IGl0ZW5zOiBhbnlbXSA9IFtdO1xuICAgIGlmKCB0aGlzLnRjTGlzdCApe1xuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy50Y0xpc3QpLmxlbmd0aDsgaSsrICl7XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMudGNMaXN0W2ldO1xuICAgICAgICAoaXRlbnMpLnB1c2gocm93KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pdGVtX3ZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmNvdW50X2FjdGl2ZXMgPSBjb3VudF9hY3RpdmVzO1xuICAgIHRoaXMudGNDaGFuZ2UuZW1pdChpdGVucyk7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudGNMaXN0KTtcbiAgfVxuXG4gIGNoZWNrX2lzX3ZhbGlkKCk6IGJvb2xlYW57XG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XG4gICAgICByZXR1cm4gKCh0aGlzLnRjTGlzdCkubGVuZ3RoID4gMCkgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uQ2hhbmdlVG91Y2hlZCgpeyAgXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpOyAgICAgXG4gIH1cblxuXG5cblxuXG5cblxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgLy8gQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBpbm5lclZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAvL2dldCBhY2Nlc3NvclxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH07XG5cbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAgICAgIFxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xuICAgIH1cbiAgfVxuXG4gIC8vU2V0IHRvdWNoZWQgb24gYmx1clxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnRvU2V0RGVmYXVsdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHRvU2V0RGVmYXVsdCh2YWx1ZTogYW55KXtcbiAgICB0aGlzLnRjTGlzdCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcbiAgICBpZiggYyAmJiAoIHR5cGVvZiB0aGlzLnJlcXVpcmVkICE9PSAndW5kZWZpbmVkJyApICl7XG4gICAgICB0aGlzLnVzZV92YWxpZGF0aW9uX3JlcXVpcmVkID0gdHJ1ZTtcbiAgICAgIHJldHVybiAodGhpcy5jaGVja19pc192YWxpZCgpKSA/IG51bGwgOiAncmVxdWlyZWQnO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGl0ZW1fd2lkdGgodGV4dDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBgJHt0ZXh0fWA7XG4gICAgY29uc3QgdmFsdWVfbGVuID0gKHZhbHVlKS5sZW5ndGg7XG4gICAgbGV0IG1heF93aWR0aCA9IDE1NTtcbiAgICBpZiggdmFsdWVfbGVuIDwgMTUgKXsgbWF4X3dpZHRoID0gMTM4OyB9XG4gICAgaWYoIHZhbHVlX2xlbiA8IDEwICl7IG1heF93aWR0aCA9IDEwNTsgfVxuICAgIGlmKCB2YWx1ZV9sZW4gPCA4ICl7IG1heF93aWR0aCA9IDg1OyB9XG4gICAgaWYoIHZhbHVlX2xlbiA8IDUgKXsgbWF4X3dpZHRoID0gNzA7IH1cbiAgICByZXR1cm4geyAnbWF4LXdpZHRoJzogbWF4X3dpZHRoICsgJ3B4J307XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBcbiAgfVxufVxuIiwiPGRpdj5cblxuICAgIDx0YWJsZT5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiIChibHVyKT1cIm9uQ2hhbmdlVG91Y2hlZCgpXCIgWyhuZ01vZGVsKV09XCJpdGVtX3ZhbHVlXCIgW2NsYXNzLnRjLXBhcmVudC12YWxpZGF0aW9uXT1cInVzZV92YWxpZGF0aW9uX3JlcXVpcmVkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImlucHV0X3ZhbHVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIiBuYW1lPVwiaW5wdXRfdmFsdWVcIj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXRlbV92YWx1ZSB8fCBkaXNhYmxlZCB8fCBsb2FkaW5nXCJcbiAgICAgICAgICAgIHRpdGxlPVwiQWRpY2lvbmFyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXBsdXMtc2VsZWN0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKGlucHV0X3ZhbHVlKTtvbkNoYW5nZVRvdWNoZWQoKVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3RhYmxlPlxuICBcbiAgICA8ZGl2IGNsYXNzPVwiYm94LWl0ZW5zLXNlbGVjdGVkXCIgKm5nSWY9XCIodGNMaXN0ICYmIHRjTGlzdC5sZW5ndGggPiAwKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0Y0xpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3gtbGFiZWxcIiBbbmdTdHlsZV09XCJpdGVtX3dpZHRoKGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJveC12YWx1ZVwiIFt0aXRsZV09XCJpdGVtLnZhbHVlXCIgID5cbiAgICAgICAgICAgIHt7IGl0ZW0udmFsdWUgfX0gICAgICAgICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb25cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRjTGlzdCA9PT0gdW5kZWZpbmVkIHx8ICh0Y0xpc3QgJiYgdGNMaXN0Lmxlbmd0aCA9PT0gMCkgfHwgZGlzYWJsZWQgfHwgbG9hZGluZ1wiXG4gICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlclwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtLnZhbHVlLCBpKTtvbkNoYW5nZVRvdWNoZWQoKVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gXG48L2Rpdj5cbiAgIl19
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1tdWx0aS1pbnB1dC90Y2xvdWQtdWktbXVsdGktaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpLWlucHV0L3RjbG91ZC11aS1tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQWUsYUFBYSxFQUFFLGlCQUFpQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFMUYsTUFBTyx1QkFBdUIsR0FBUTtJQUNwQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQTtBQUVELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sMkJBQTJCO0lBbUJ0QztRQWJTLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUlsQyxrQkFBYSxHQUFX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cG9uZW50LCBPbkluaXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25EZXN0cm95LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuY29uc3QgIENVU1RPTV9JTlBVVF9WQUxJREFUT1JTOiBhbnkgPSB7IFxuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLCBcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aUlucHV0Q29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn1cblxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpTXVsdGlJbnB1dENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLW11bHRpLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tdWx0aS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiwgQ1VTVE9NX0lOUFVUX1ZBTElEQVRPUlNdXG59KVxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpTXVsdGlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBWYWxpZGF0b3Ige1xuXG4gIGlucHV0X3ZhbHVlOiBhbnk7XG5cbiAgQElucHV0KCkgdGNMaXN0OiBhbnlbXSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICB2YWx1ZXM6IGFueVtdIHwgdW5kZWZpbmVkO1xuICBjb3VudF9hY3RpdmVzOiBudW1iZXIgPSAwO1xuXG4gIHVzZV92YWxpZGF0aW9uX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGl0ZW1fdmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgdGNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XG4gICAgfSk7XG4gIH1cblxuICBhZGRJdGVtKGl0ZW06IGFueSk6IHZvaWR7XG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XG4gICAgaWYoICF0aGlzLnRjTGlzdCApe1xuICAgICAgdGhpcy50Y0xpc3QgPSBbXTtcbiAgICB9XG4gICAgKHRoaXMudGNMaXN0KS5wdXNoKHt2YWx1ZTogaXRlbX0pOyAgICBcbiAgICB0aGlzLnRvQ2hhbmdlKCk7ICAgXG4gICAgdGhpcy5pbnB1dF92YWx1ZSA9ICcnO1xuICB9XG5cblxuICByZW1vdmVJdGVtKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWR7XG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLnRjTGlzdCkubGVuZ3RoOyBpKysgKXtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50Y0xpc3RbaV07XG4gICAgICAgIGlmKCBpdGVtID09PSByb3cudmFsdWUgJiYgaSA9PT0gaW5kZXggKXtcbiAgICAgICAgICAodGhpcy50Y0xpc3QpLnNwbGljZShpbmRleCwxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9DaGFuZ2UoKTogdm9pZHtcbiAgICBsZXQgY291bnRfYWN0aXZlcyA9IDA7XG4gICAgbGV0IGl0ZW5zOiBhbnlbXSA9IFtdO1xuICAgIGlmKCB0aGlzLnRjTGlzdCApe1xuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy50Y0xpc3QpLmxlbmd0aDsgaSsrICl7XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMudGNMaXN0W2ldO1xuICAgICAgICAoaXRlbnMpLnB1c2gocm93KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pdGVtX3ZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmNvdW50X2FjdGl2ZXMgPSBjb3VudF9hY3RpdmVzO1xuICAgIHRoaXMudGNDaGFuZ2UuZW1pdChpdGVucyk7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudGNMaXN0KTtcbiAgfVxuXG4gIGNoZWNrX2lzX3ZhbGlkKCk6IGJvb2xlYW57XG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XG4gICAgICByZXR1cm4gKCh0aGlzLnRjTGlzdCkubGVuZ3RoID4gMCkgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uQ2hhbmdlVG91Y2hlZCgpeyAgXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpOyAgICAgXG4gIH1cblxuXG5cblxuXG5cblxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgLy8gQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBpbm5lclZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAvL2dldCBhY2Nlc3NvclxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH07XG5cbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAgICAgIFxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xuICAgIH1cbiAgfVxuXG4gIC8vU2V0IHRvdWNoZWQgb24gYmx1clxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnRvU2V0RGVmYXVsdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHRvU2V0RGVmYXVsdCh2YWx1ZTogYW55KXtcbiAgICB0aGlzLnRjTGlzdCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcbiAgICBpZiggYyAmJiAoIHR5cGVvZiB0aGlzLnJlcXVpcmVkICE9PSAndW5kZWZpbmVkJyApICl7XG4gICAgICB0aGlzLnVzZV92YWxpZGF0aW9uX3JlcXVpcmVkID0gdHJ1ZTtcbiAgICAgIHJldHVybiAodGhpcy5jaGVja19pc192YWxpZCgpKSA/IG51bGwgOiAncmVxdWlyZWQnO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGl0ZW1fd2lkdGgodGV4dDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBgJHt0ZXh0fWA7XG4gICAgY29uc3QgdmFsdWVfbGVuID0gKHZhbHVlKS5sZW5ndGg7XG4gICAgbGV0IG1heF93aWR0aCA9IDE1NTtcbiAgICBpZiggdmFsdWVfbGVuIDwgMTUgKXsgbWF4X3dpZHRoID0gMTM4OyB9XG4gICAgaWYoIHZhbHVlX2xlbiA8IDEwICl7IG1heF93aWR0aCA9IDEwNTsgfVxuICAgIGlmKCB2YWx1ZV9sZW4gPCA4ICl7IG1heF93aWR0aCA9IDg1OyB9XG4gICAgaWYoIHZhbHVlX2xlbiA8IDUgKXsgbWF4X3dpZHRoID0gNzA7IH1cbiAgICByZXR1cm4geyAnbWF4LXdpZHRoJzogbWF4X3dpZHRoICsgJ3B4J307XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRjbG91ZC11aS1tdWx0aS1pbnB1dFwiPlxyXG5cclxuICAgIDx0YWJsZT5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0ZD5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiIChibHVyKT1cIm9uQ2hhbmdlVG91Y2hlZCgpXCIgWyhuZ01vZGVsKV09XCJpdGVtX3ZhbHVlXCIgW2NsYXNzLnRjLXBhcmVudC12YWxpZGF0aW9uXT1cInVzZV92YWxpZGF0aW9uX3JlcXVpcmVkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImlucHV0X3ZhbHVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIiBuYW1lPVwiaW5wdXRfdmFsdWVcIj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpdGVtX3ZhbHVlIHx8IGRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgICAgICAgICB0aXRsZT1cIkFkaWNpb25hclwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXBsdXMtc2VsZWN0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImFkZEl0ZW0oaW5wdXRfdmFsdWUpO29uQ2hhbmdlVG91Y2hlZCgpXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYm94LWl0ZW5zLXNlbGVjdGVkXCIgKm5nSWY9XCIodGNMaXN0ICYmIHRjTGlzdC5sZW5ndGggPiAwKVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRjTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3gtbGFiZWxcIiBbbmdTdHlsZV09XCJpdGVtX3dpZHRoKGl0ZW0udmFsdWUpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXZhbHVlXCIgW3RpdGxlXT1cIml0ZW0udmFsdWVcIiAgPlxyXG4gICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19ICAgICAgICAgIFxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWFjdGlvblwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRjTGlzdCA9PT0gdW5kZWZpbmVkIHx8ICh0Y0xpc3QgJiYgdGNMaXN0Lmxlbmd0aCA9PT0gMCkgfHwgZGlzYWJsZWQgfHwgbG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVyXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtLnZhbHVlLCBpKTtvbkNoYW5nZVRvdWNoZWQoKVwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuIFxyXG48L2Rpdj5cclxuICAiXX0=
|
|
@@ -158,10 +158,10 @@ export class TCloudUiMultiSelectComponent {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
TCloudUiMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
-
TCloudUiMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiMultiSelectComponent, selector: "tcloud-ui-multi-select", inputs: { tcList: "tcList", placeholder: "placeholder", disabled: "disabled", loading: "loading", required: "required" }, outputs: { tcChange: "tcChange", onChange: "onChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "\r\n <div>\r\n <table>\r\n <tr *ngIf=\"tcList\">\r\n <td>\r\n <select \r\n class=\"tc-form-control\"\r\n [(ngModel)]=\"item_value\"\r\n [class.tc-parent-validation]=\"use_validation_required\" \r\n #_select\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n [title]=\"tcList.length === 0 ? 'Nenhum item dispon\u00EDvel' : placeholder\">\r\n <option></option>\r\n <ng-container *ngFor=\"let item of tcList; let i = index\">\r\n <option [title]=\"item.description\" *ngIf=\"!item.active\" [value]=\"item.value\">{{ item.description }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td>\r\n <button\r\n [disabled]=\"!item_value || tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Adicionar\"\r\n class=\"btn-plus-select\"\r\n (click)=\"addItem(_select.value);onChangeTouched()\"\r\n type=\"button\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"box-itens-selected\" *ngIf=\"count_actives > 0 && (tcList && tcList.length > 0)\">\r\n <ng-container *ngFor=\"let item of tcList\">\r\n\r\n <ng-container *ngIf=\"item.active\">\r\n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\r\n <div class=\"box-value\" [title]=\"item.value\">\r\n {{ item.value }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item.value);onChangeTouched()\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </div>\r\n", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}select{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:flex;padding:9px;background-color:#ededed;border-radius:4px}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;
|
|
161
|
+
TCloudUiMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiMultiSelectComponent, selector: "tcloud-ui-multi-select", inputs: { tcList: "tcList", placeholder: "placeholder", disabled: "disabled", loading: "loading", required: "required" }, outputs: { tcChange: "tcChange", onChange: "onChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "\r\n <div class=\"tcloud-ui-multi-select\">\r\n <table>\r\n <tr *ngIf=\"tcList\">\r\n <td>\r\n <select \r\n class=\"tc-form-control\"\r\n [(ngModel)]=\"item_value\"\r\n [class.tc-parent-validation]=\"use_validation_required\" \r\n #_select\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n [title]=\"tcList.length === 0 ? 'Nenhum item dispon\u00EDvel' : placeholder\">\r\n <option></option>\r\n <ng-container *ngFor=\"let item of tcList; let i = index\">\r\n <option [title]=\"item.description\" *ngIf=\"!item.active\" [value]=\"item.value\">{{ item.description }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td>\r\n <button\r\n [disabled]=\"!item_value || tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Adicionar\"\r\n class=\"btn-plus-select\"\r\n (click)=\"addItem(_select.value);onChangeTouched()\"\r\n type=\"button\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"box-itens-selected\" *ngIf=\"count_actives > 0 && (tcList && tcList.length > 0)\">\r\n <ng-container *ngFor=\"let item of tcList\">\r\n\r\n <ng-container *ngIf=\"item.active\">\r\n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\r\n <div class=\"box-value\" [title]=\"item.value\">\r\n {{ item.value }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item.value);onChangeTouched()\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </div>\r\n", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}select{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:flex;padding:9px;background-color:#ededed;border-radius:4px}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;color:var(--tc-primary);padding:8px 15px 10px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;width:100%;background-color:var(--white)}.box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-label .box-action{position:absolute;right:4px;top:7px}.box-label .box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-label .box-action button i{font-size:12px}.box-label .box-action button:hover{color:var(--red)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
162
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiSelectComponent, decorators: [{
|
|
163
163
|
type: Component,
|
|
164
|
-
args: [{ selector: 'tcloud-ui-multi-select', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], template: "\r\n <div>\r\n <table>\r\n <tr *ngIf=\"tcList\">\r\n <td>\r\n <select \r\n class=\"tc-form-control\"\r\n [(ngModel)]=\"item_value\"\r\n [class.tc-parent-validation]=\"use_validation_required\" \r\n #_select\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n [title]=\"tcList.length === 0 ? 'Nenhum item dispon\u00EDvel' : placeholder\">\r\n <option></option>\r\n <ng-container *ngFor=\"let item of tcList; let i = index\">\r\n <option [title]=\"item.description\" *ngIf=\"!item.active\" [value]=\"item.value\">{{ item.description }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td>\r\n <button\r\n [disabled]=\"!item_value || tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Adicionar\"\r\n class=\"btn-plus-select\"\r\n (click)=\"addItem(_select.value);onChangeTouched()\"\r\n type=\"button\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"box-itens-selected\" *ngIf=\"count_actives > 0 && (tcList && tcList.length > 0)\">\r\n <ng-container *ngFor=\"let item of tcList\">\r\n\r\n <ng-container *ngIf=\"item.active\">\r\n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\r\n <div class=\"box-value\" [title]=\"item.value\">\r\n {{ item.value }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item.value);onChangeTouched()\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </div>\r\n", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}select{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:flex;padding:9px;background-color:#ededed;border-radius:4px}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;
|
|
164
|
+
args: [{ selector: 'tcloud-ui-multi-select', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], template: "\r\n <div class=\"tcloud-ui-multi-select\">\r\n <table>\r\n <tr *ngIf=\"tcList\">\r\n <td>\r\n <select \r\n class=\"tc-form-control\"\r\n [(ngModel)]=\"item_value\"\r\n [class.tc-parent-validation]=\"use_validation_required\" \r\n #_select\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n [title]=\"tcList.length === 0 ? 'Nenhum item dispon\u00EDvel' : placeholder\">\r\n <option></option>\r\n <ng-container *ngFor=\"let item of tcList; let i = index\">\r\n <option [title]=\"item.description\" *ngIf=\"!item.active\" [value]=\"item.value\">{{ item.description }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td>\r\n <button\r\n [disabled]=\"!item_value || tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Adicionar\"\r\n class=\"btn-plus-select\"\r\n (click)=\"addItem(_select.value);onChangeTouched()\"\r\n type=\"button\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"box-itens-selected\" *ngIf=\"count_actives > 0 && (tcList && tcList.length > 0)\">\r\n <ng-container *ngFor=\"let item of tcList\">\r\n\r\n <ng-container *ngIf=\"item.active\">\r\n <div class=\"box-label\" [ngStyle]=\"item_width(item.value)\">\r\n <div class=\"box-value\" [title]=\"item.value\">\r\n {{ item.value }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item.value);onChangeTouched()\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </div>\r\n", styles: ["table{width:100%;border-collapse:collapse;border:none}table td{vertical-align:top}table td:first-child{width:100%}select{font-size:.8rem;height:40px;border:1px solid #999;border-radius:4px 0 0 4px;padding:6px 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;background-color:#fff;color:#888}.btn-plus-select{width:30px;height:40px;border:none;color:#fff;background-color:var(--tc-primary);border-radius:0 4px 4px 0}.box-itens-selected{display:flex;padding:9px;background-color:#ededed;border-radius:4px}select:disabled{opacity:.8!important;cursor:not-allowed!important;background-color:#ededed}button:disabled{opacity:.5!important;cursor:not-allowed!important}.box-label{position:relative;display:inline-block;height:35px;min-width:60px;color:var(--tc-primary);padding:8px 15px 10px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;width:100%;background-color:var(--white)}.box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-label .box-action{position:absolute;right:4px;top:7px}.box-label .box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-label .box-action button i{font-size:12px}.box-label .box-action button:hover{color:var(--red)}\n"] }]
|
|
165
165
|
}], ctorParameters: function () { return []; }, propDecorators: { tcList: [{
|
|
166
166
|
type: Input
|
|
167
167
|
}], placeholder: [{
|
|
@@ -177,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
177
177
|
}], onChange: [{
|
|
178
178
|
type: Output
|
|
179
179
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktbXVsdGktc2VsZWN0L3RjbG91ZC11aS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpLXNlbGVjdC90Y2xvdWQtdWktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBZSxhQUFhLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUxRixNQUFPLHVCQUF1QixHQUFRO0lBQ3BDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFBO0FBRUQsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0sT0FBTyw0QkFBNEI7SUFnQnZDO1FBWFMsZ0JBQVcsR0FBVyxtQkFBbUIsQ0FBQztRQUMxQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFeEIsYUFB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U0FBUyxHQUFHLElBQUksRUFBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO0lBRVgsQ0FBQzs7MEhBbktVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLG9PQUY1QixDQUFDLG1DQUFtQyxFQUFFLHVCQUF1QixDQUFDLDBCQ3RCM0Usc3BFQXNEQTs0RkQ5QmEsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLHdCQUF3QixhQUd2QixDQUFDLG1DQUFtQyxFQUFFLHVCQUF1QixDQUFDOzBFQU1oRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBb0ZHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5jb25zdCAgQ1VTVE9NX0lOUFVUX1ZBTElEQVRPUlM6IGFueSA9IHsgXHJcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aVNlbGVjdENvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufVxyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaU11bHRpU2VsZWN0Q29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLW11bHRpLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiwgQ1VTVE9NX0lOUFVUX1ZBTElEQVRPUlNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaU11bHRpU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFZhbGlkYXRvciAge1xyXG5cclxuICBcclxuXHJcbiAgQElucHV0KCkgdGNMaXN0OiBhbnlbXSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjaW9uZSB1bSBpdGVtJztcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZXF1aXJlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSB0Y0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIHVzZV92YWxpZGF0aW9uX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsdWVzOiBhbnlbXSB8IHVuZGVmaW5lZDtcclxuICBjb3VudF9hY3RpdmVzOiBudW1iZXIgPSAwO1xyXG4gIGl0ZW1fdmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLnRvQ2hhbmdlKCk7IH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkSXRlbShpdGVtOiBhbnkpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XHJcbiAgICBpZiggdGhpcy50Y0xpc3QgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy50Y0xpc3QpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50Y0xpc3RbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0gPT09IHJvdy52YWx1ZSApe1xyXG4gICAgICAgICAgdGhpcy50Y0xpc3RbaV0uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtOiBhbnkpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XHJcbiAgICBpZiggdGhpcy50Y0xpc3QgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy50Y0xpc3QpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50Y0xpc3RbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0gPT09IHJvdy52YWx1ZSApe1xyXG4gICAgICAgICAgdGhpcy50Y0xpc3RbaV0uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b0NoYW5nZSgpOiB2b2lke1xyXG4gICAgbGV0IGNvdW50X2FjdGl2ZXMgPSAwO1xyXG4gICAgbGV0IGl0ZW5zOiBhbnlbXSA9IFtdO1xyXG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMudGNMaXN0KS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMudGNMaXN0W2ldO1xyXG4gICAgICAgIGlmKCByb3cuYWN0aXZlICl7XHJcbiAgICAgICAgICBjb3VudF9hY3RpdmVzKys7XHJcbiAgICAgICAgICAoaXRlbnMpLnB1c2gocm93KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaXRlbV92YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmNvdW50X2FjdGl2ZXMgPSBjb3VudF9hY3RpdmVzO1xyXG4gICAgdGhpcy50Y0NoYW5nZS5lbWl0KGl0ZW5zKTtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnRjTGlzdCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2hlY2tfaXNfdmFsaWQoKTogYm9vbGVhbntcclxuICAgIGxldCBhY3RpdmUgPSAwO1xyXG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMudGNMaXN0KS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnRjTGlzdFtpXTtcclxuICAgICAgICBpZiggaXRlbSAmJiBpdGVtLmFjdGl2ZSAmJiBpdGVtLmFjdGl2ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICBhY3RpdmUrKztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChhY3RpdmUgPiAwKSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlVG91Y2hlZCgpeyAgXHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7ICAgICBcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAgICAgIFxyXG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy50b1NldERlZmF1bHQodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgdG9TZXREZWZhdWx0KHZhbHVlOiBhbnkpe1xyXG4gICAgdGhpcy50Y0xpc3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCk6IGFueSB7XHJcbiAgICBpZiggYyAmJiAoIHR5cGVvZiB0aGlzLnJlcXVpcmVkICE9PSAndW5kZWZpbmVkJyApICl7XHJcbiAgICAgIHRoaXMudXNlX3ZhbGlkYXRpb25fcmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gKHRoaXMuY2hlY2tfaXNfdmFsaWQoKSkgPyBudWxsIDogJ3JlcXVpcmVkJztcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaXRlbV93aWR0aCh0ZXh0OiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gYCR7dGV4dH1gO1xyXG4gICAgY29uc3QgdmFsdWVfbGVuID0gKHZhbHVlKS5sZW5ndGg7XHJcbiAgICBsZXQgbWF4X3dpZHRoID0gMTU1O1xyXG4gICAgaWYoIHZhbHVlX2xlbiA8IDE1ICl7IG1heF93aWR0aCA9IDEzODsgfVxyXG4gICAgaWYoIHZhbHVlX2xlbiA8IDEwICl7IG1heF93aWR0aCA9IDEwNTsgfVxyXG4gICAgaWYoIHZhbHVlX2xlbiA8IDggKXsgbWF4X3dpZHRoID0gODU7IH1cclxuICAgIGlmKCB2YWx1ZV9sZW4gPCA1ICl7IG1heF93aWR0aCA9IDcwOyB9XHJcbiAgICByZXR1cm4geyAnbWF4LXdpZHRoJzogbWF4X3dpZHRoICsgJ3B4J307XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIFxyXG4gIH1cclxufVxyXG4iLCJcclxuICA8ZGl2PlxyXG4gICAgPHRhYmxlPlxyXG4gICAgICA8dHIgKm5nSWY9XCJ0Y0xpc3RcIj5cclxuICAgICAgICA8dGQ+XHJcbiAgICAgICAgICA8c2VsZWN0ICBcclxuICAgICAgICAgICAgY2xhc3M9XCJ0Yy1mb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW1fdmFsdWVcIlxyXG4gICAgICAgICAgICBbY2xhc3MudGMtcGFyZW50LXZhbGlkYXRpb25dPVwidXNlX3ZhbGlkYXRpb25fcmVxdWlyZWRcIiAgICAgXHJcbiAgICAgICAgICAgICNfc2VsZWN0XHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0Y0xpc3QgPT09IHVuZGVmaW5lZCB8fCAodGNMaXN0ICYmIHRjTGlzdC5sZW5ndGggPT09IDApIHx8IGRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgICAgICAgICBbdGl0bGVdPVwidGNMaXN0Lmxlbmd0aCA9PT0gMCA/ICdOZW5odW0gaXRlbSBkaXNwb27DrXZlbCcgOiBwbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRjTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gW3RpdGxlXT1cIml0ZW0uZGVzY3JpcHRpb25cIiAqbmdJZj1cIiFpdGVtLmFjdGl2ZVwiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3sgaXRlbS5kZXNjcmlwdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWl0ZW1fdmFsdWUgfHwgdGNMaXN0ID09PSB1bmRlZmluZWQgfHwgKHRjTGlzdCAmJiB0Y0xpc3QubGVuZ3RoID09PSAwKSB8fCBkaXNhYmxlZCB8fCBsb2FkaW5nXCJcclxuICAgICAgICAgICAgdGl0bGU9XCJBZGljaW9uYXJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1wbHVzLXNlbGVjdFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKF9zZWxlY3QudmFsdWUpO29uQ2hhbmdlVG91Y2hlZCgpXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJveC1pdGVucy1zZWxlY3RlZFwiICpuZ0lmPVwiY291bnRfYWN0aXZlcyA+IDAgJiYgKHRjTGlzdCAmJiB0Y0xpc3QubGVuZ3RoID4gMClcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0Y0xpc3RcIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uYWN0aXZlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWxhYmVsXCIgW25nU3R5bGVdPVwiaXRlbV93aWR0aChpdGVtLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXZhbHVlXCIgW3RpdGxlXT1cIml0ZW0udmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19ICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb25cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGNMaXN0ID09PSB1bmRlZmluZWQgfHwgKHRjTGlzdCAmJiB0Y0xpc3QubGVuZ3RoID09PSAwKSB8fCBkaXNhYmxlZCB8fCBsb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlclwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGl0ZW0udmFsdWUpO29uQ2hhbmdlVG91Y2hlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiJdfQ==
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktbXVsdGktc2VsZWN0L3RjbG91ZC11aS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpLXNlbGVjdC90Y2xvdWQtdWktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBZSxhQUFhLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUxRixNQUFPLHVCQUF1QixHQUFRO0lBQ3BDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFBO0FBRUQsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0sT0FBTyw0QkFBNEI7SUFnQnZDO1FBWFMsZ0JBQVcsR0FBVyxtQkFBbUIsQ0FBQztRQUMxQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFeEIsYUFB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U0FBUyxHQUFHLElBQUksRUFBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO0lBRVgsQ0FBQzs7MEhBbktVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLG9PQUY1QixDQUFDLG1DQUFtQyxFQUFFLHVCQUF1QixDQUFDLDBCQ3RCM0UsdXJFQXNEQTs0RkQ5QmEsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLHdCQUF3QixhQUd2QixDQUFDLG1DQUFtQyxFQUFFLHVCQUF1QixDQUFDOzBFQU1oRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBb0ZHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5jb25zdCAgQ1VTVE9NX0lOUFVUX1ZBTElEQVRPUlM6IGFueSA9IHsgXHJcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aVNlbGVjdENvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufVxyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaU11bHRpU2VsZWN0Q29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLW11bHRpLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiwgQ1VTVE9NX0lOUFVUX1ZBTElEQVRPUlNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaU11bHRpU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFZhbGlkYXRvciAge1xyXG5cclxuICBcclxuXHJcbiAgQElucHV0KCkgdGNMaXN0OiBhbnlbXSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjaW9uZSB1bSBpdGVtJztcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZXF1aXJlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSB0Y0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIHVzZV92YWxpZGF0aW9uX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsdWVzOiBhbnlbXSB8IHVuZGVmaW5lZDtcclxuICBjb3VudF9hY3RpdmVzOiBudW1iZXIgPSAwO1xyXG4gIGl0ZW1fdmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLnRvQ2hhbmdlKCk7IH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkSXRlbShpdGVtOiBhbnkpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XHJcbiAgICBpZiggdGhpcy50Y0xpc3QgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy50Y0xpc3QpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50Y0xpc3RbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0gPT09IHJvdy52YWx1ZSApe1xyXG4gICAgICAgICAgdGhpcy50Y0xpc3RbaV0uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtOiBhbnkpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XHJcbiAgICBpZiggdGhpcy50Y0xpc3QgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy50Y0xpc3QpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50Y0xpc3RbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0gPT09IHJvdy52YWx1ZSApe1xyXG4gICAgICAgICAgdGhpcy50Y0xpc3RbaV0uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b0NoYW5nZSgpOiB2b2lke1xyXG4gICAgbGV0IGNvdW50X2FjdGl2ZXMgPSAwO1xyXG4gICAgbGV0IGl0ZW5zOiBhbnlbXSA9IFtdO1xyXG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMudGNMaXN0KS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMudGNMaXN0W2ldO1xyXG4gICAgICAgIGlmKCByb3cuYWN0aXZlICl7XHJcbiAgICAgICAgICBjb3VudF9hY3RpdmVzKys7XHJcbiAgICAgICAgICAoaXRlbnMpLnB1c2gocm93KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaXRlbV92YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmNvdW50X2FjdGl2ZXMgPSBjb3VudF9hY3RpdmVzO1xyXG4gICAgdGhpcy50Y0NoYW5nZS5lbWl0KGl0ZW5zKTtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnRjTGlzdCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2hlY2tfaXNfdmFsaWQoKTogYm9vbGVhbntcclxuICAgIGxldCBhY3RpdmUgPSAwO1xyXG4gICAgaWYoIHRoaXMudGNMaXN0ICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMudGNMaXN0KS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnRjTGlzdFtpXTtcclxuICAgICAgICBpZiggaXRlbSAmJiBpdGVtLmFjdGl2ZSAmJiBpdGVtLmFjdGl2ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICBhY3RpdmUrKztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChhY3RpdmUgPiAwKSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlVG91Y2hlZCgpeyAgXHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7ICAgICBcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAgICAgIFxyXG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy50b1NldERlZmF1bHQodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgdG9TZXREZWZhdWx0KHZhbHVlOiBhbnkpe1xyXG4gICAgdGhpcy50Y0xpc3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCk6IGFueSB7XHJcbiAgICBpZiggYyAmJiAoIHR5cGVvZiB0aGlzLnJlcXVpcmVkICE9PSAndW5kZWZpbmVkJyApICl7XHJcbiAgICAgIHRoaXMudXNlX3ZhbGlkYXRpb25fcmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gKHRoaXMuY2hlY2tfaXNfdmFsaWQoKSkgPyBudWxsIDogJ3JlcXVpcmVkJztcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaXRlbV93aWR0aCh0ZXh0OiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gYCR7dGV4dH1gO1xyXG4gICAgY29uc3QgdmFsdWVfbGVuID0gKHZhbHVlKS5sZW5ndGg7XHJcbiAgICBsZXQgbWF4X3dpZHRoID0gMTU1O1xyXG4gICAgaWYoIHZhbHVlX2xlbiA8IDE1ICl7IG1heF93aWR0aCA9IDEzODsgfVxyXG4gICAgaWYoIHZhbHVlX2xlbiA8IDEwICl7IG1heF93aWR0aCA9IDEwNTsgfVxyXG4gICAgaWYoIHZhbHVlX2xlbiA8IDggKXsgbWF4X3dpZHRoID0gODU7IH1cclxuICAgIGlmKCB2YWx1ZV9sZW4gPCA1ICl7IG1heF93aWR0aCA9IDcwOyB9XHJcbiAgICByZXR1cm4geyAnbWF4LXdpZHRoJzogbWF4X3dpZHRoICsgJ3B4J307XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIFxyXG4gIH1cclxufVxyXG4iLCJcclxuICA8ZGl2IGNsYXNzPVwidGNsb3VkLXVpLW11bHRpLXNlbGVjdFwiPlxyXG4gICAgPHRhYmxlPlxyXG4gICAgICA8dHIgKm5nSWY9XCJ0Y0xpc3RcIj5cclxuICAgICAgICA8dGQ+XHJcbiAgICAgICAgICA8c2VsZWN0ICBcclxuICAgICAgICAgICAgY2xhc3M9XCJ0Yy1mb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW1fdmFsdWVcIlxyXG4gICAgICAgICAgICBbY2xhc3MudGMtcGFyZW50LXZhbGlkYXRpb25dPVwidXNlX3ZhbGlkYXRpb25fcmVxdWlyZWRcIiAgICAgXHJcbiAgICAgICAgICAgICNfc2VsZWN0XHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0Y0xpc3QgPT09IHVuZGVmaW5lZCB8fCAodGNMaXN0ICYmIHRjTGlzdC5sZW5ndGggPT09IDApIHx8IGRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgICAgICAgICBbdGl0bGVdPVwidGNMaXN0Lmxlbmd0aCA9PT0gMCA/ICdOZW5odW0gaXRlbSBkaXNwb27DrXZlbCcgOiBwbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRjTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gW3RpdGxlXT1cIml0ZW0uZGVzY3JpcHRpb25cIiAqbmdJZj1cIiFpdGVtLmFjdGl2ZVwiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3sgaXRlbS5kZXNjcmlwdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWl0ZW1fdmFsdWUgfHwgdGNMaXN0ID09PSB1bmRlZmluZWQgfHwgKHRjTGlzdCAmJiB0Y0xpc3QubGVuZ3RoID09PSAwKSB8fCBkaXNhYmxlZCB8fCBsb2FkaW5nXCJcclxuICAgICAgICAgICAgdGl0bGU9XCJBZGljaW9uYXJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1wbHVzLXNlbGVjdFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKF9zZWxlY3QudmFsdWUpO29uQ2hhbmdlVG91Y2hlZCgpXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJveC1pdGVucy1zZWxlY3RlZFwiICpuZ0lmPVwiY291bnRfYWN0aXZlcyA+IDAgJiYgKHRjTGlzdCAmJiB0Y0xpc3QubGVuZ3RoID4gMClcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0Y0xpc3RcIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uYWN0aXZlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWxhYmVsXCIgW25nU3R5bGVdPVwiaXRlbV93aWR0aChpdGVtLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXZhbHVlXCIgW3RpdGxlXT1cIml0ZW0udmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19ICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb25cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGNMaXN0ID09PSB1bmRlZmluZWQgfHwgKHRjTGlzdCAmJiB0Y0xpc3QubGVuZ3RoID09PSAwKSB8fCBkaXNhYmxlZCB8fCBsb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlclwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGl0ZW0udmFsdWUpO29uQ2hhbmdlVG91Y2hlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiJdfQ==
|