@stackline/angular-multiselect-dropdown 14.0.0 → 15.0.0

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.
@@ -338,9 +338,9 @@ export class AngularMultiSelect {
338
338
  }
339
339
  }
340
340
  }
341
- AngularMultiSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AngularMultiSelect, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
342
- AngularMultiSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AngularMultiSelect, selector: "angular-multiselect, angular2-multiselect", inputs: { data: "data", settings: "settings" }, outputs: { onSelect: "onSelect", onDeSelect: "onDeSelect", onSelectAll: "onSelectAll", onDeSelectAll: "onDeSelectAll", onOpen: "onOpen", onClose: "onClose" }, host: { properties: { "class": "defaultSettings.classes" } }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], queries: [{ propertyName: "itemTempl", first: true, predicate: Item, descendants: true }, { propertyName: "badgeTempl", first: true, predicate: Badge, descendants: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"stackline-dropdown\" [ngClass]=\"getDropdownClasses()\" (clickOutside)=\"closeDropdown()\">\n <div class=\"selected-list\">\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\">\n <span *ngIf=\"selectedItems?.length == 0\">{{settings.text}}</span>\n <span *ngIf=\"settings.singleSelection\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn;\">\n {{item[settings.labelKey]}}\n </span>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn;let k = index\" [hidden]=\"k > settings.badgeShowLimit-1\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{item[settings.labelKey]}}</span>\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"fa fa-remove\" (click)=\"onItemClick(item,k,$event)\"></span>\n </div>\n </div> \n <span class=\"countplaceholder\" *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"fa\" [ngClass]=\"{'fa-angle-down': !isActive,'fa-angle-up':isActive}\"></span>\n </div> \n </div>\n <div class=\"dropdown-list\" [hidden]=\"!isActive\">\n <div class=\"arrow-up arrow-2\"></div>\n <div class=\"arrow-up\"></div>\n <div class=\"list-area\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection\" (click)=\"toggleSelectAll()\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\" [disabled]=\"settings.limitSelection == selectedItems?.length\"/>\n <label>\n <span [hidden]=\"isSelectAll\">{{settings.selectAllText}}</span>\n <span [hidden]=\"!isSelectAll\">{{settings.unSelectAllText}}</span>\n </label>\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && !settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" [(ngModel)]=\"filter\">\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" (keyup)=\"filterInfiniteList($event)\">\n </div>\n <ul *ngIf=\"!settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" class=\"lazyContainer\" >\n <span *ngIf=\"itemTempl\">\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && !settings.lazyLoading\" >\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && settings.lazyLoading\" >\n <div [ngStyle]=\"{'height':totalHeight+'px'}\" style=\"position: relative;\">\n\n \n <li *ngFor=\"let item of chunkArray | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" style=\"position: absolute;width: 100%;\" class=\"pure-checkbox\" [styleProp]=\"chunkIndex[i]\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </div>\n </span>\n </ul>\n <div *ngIf=\"settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" style=\"overflow: auto;\">\n <ul *ngFor=\"let obj of groupedData ; let i = index;\" class=\"list-grp\">\n <h4 *ngIf=\"(obj.value | listFilter:filter ).length > 0\">{{obj.key}}</h4>\n <span *ngIf=\"itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{settings.noDataLabel}}</h5>\n </div>\n </div>\n</div>\n", isInline: true, styles: [".stackline-dropdown{position:relative}.c-btn{display:inline-block;background:#fff;border:1px solid #ccc;border-radius:3px;font-size:14px;color:#333}.c-btn.disabled{background:#ccc}.c-btn:focus{outline:none}.selected-list .c-list{display:flex;flex:1 1 auto;align-items:center;flex-wrap:wrap;min-width:0;float:none;padding:0;margin:0;width:auto}.selected-list .c-list .c-token{list-style:none;padding:0 5px;background:#0079FE;color:#fff;border-radius:2px;margin-right:4px;margin-top:2px;float:left}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .fa-remove{margin-left:1px;font-size:12px}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0 0 0 6px;line-height:1}.selected-list .c-btn{box-sizing:border-box;width:100%;box-shadow:0 1px 5px #959595;padding:10px 36px 10px 10px;cursor:pointer;display:flex;align-items:center;flex-wrap:nowrap;position:relative}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:9999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ul li:hover{background:#f5f5f5}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#cccccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0;box-shadow:0 1px 5px #959595}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative}.list-filter input{border:0px;width:100%;height:35px;padding:0 0 0 35px}.list-filter input:focus{outline:none}.list-filter .fa{position:absolute;top:10px;left:13px;color:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#0079fe;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";color:#0079fe;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #0079FE;text-align:center;transition:all .4s ease}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";background-color:#0079fe;position:absolute;top:50%;left:4px;width:10px;height:10px;margin-top:-5px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:before{background:#0079FE}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.stackline-dropdown.theme-material,.stackline-dropdown.theme-dark,.stackline-dropdown.theme-custom{--ms-primary: #3f51b5;--ms-primary-soft: rgba(63, 81, 181, .12);--ms-surface: #ffffff;--ms-surface-soft: #f5f7fb;--ms-surface-muted: #e8eaf6;--ms-outline: #c5cae9;--ms-outline-strong: #7986cb;--ms-on-surface: #212121;--ms-on-surface-muted: #5f6368;--ms-chip-bg: #e8eaf6;--ms-chip-text: #303f9f;--ms-chip-remove: #303f9f;--ms-divider: rgba(125, 119, 134, .16);--ms-section-bg: rgba(247, 242, 250, .76);--ms-selected-text: var(--ms-primary);--ms-shadow: 0 1px 2px rgba(33, 33, 33, .16), 0 12px 32px rgba(63, 81, 181, .12);--ms-shadow-soft: 0 1px 2px rgba(33, 33, 33, .12), 0 4px 12px rgba(33, 33, 33, .08);display:block;width:100%;color:var(--ms-on-surface);font:inherit}.stackline-dropdown.theme-dark{--ms-primary: #8ab4f8;--ms-primary-soft: rgba(138, 180, 248, .18);--ms-surface: #151a23;--ms-surface-soft: #202736;--ms-surface-muted: #111722;--ms-outline: #384456;--ms-outline-strong: #8ab4f8;--ms-on-surface: #edf2f7;--ms-on-surface-muted: #aab6c5;--ms-chip-bg: #263247;--ms-chip-text: #d7e6ff;--ms-chip-remove: #d7e6ff;--ms-divider: rgba(170, 182, 197, .18);--ms-section-bg: #101620;--ms-selected-text: #d7e6ff;--ms-shadow: 0 20px 50px rgba(0, 0, 0, .42);--ms-shadow-soft: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 24px rgba(0, 0, 0, .28)}.stackline-dropdown.theme-custom{--ms-primary: var(--stackline-ms-primary, #0f766e);--ms-primary-soft: var(--stackline-ms-primary-soft, rgba(15, 118, 110, .14));--ms-surface: var(--stackline-ms-surface, #ffffff);--ms-surface-soft: var(--stackline-ms-surface-soft, #ecfdf5);--ms-surface-muted: var(--stackline-ms-surface-muted, #d1fae5);--ms-outline: var(--stackline-ms-outline, #99f6e4);--ms-outline-strong: var(--stackline-ms-outline-strong, #0f766e);--ms-on-surface: var(--stackline-ms-on-surface, #102a2a);--ms-on-surface-muted: var(--stackline-ms-on-surface-muted, #47615f);--ms-chip-bg: var(--stackline-ms-chip-bg, #ccfbf1);--ms-chip-text: var(--stackline-ms-chip-text, #115e59);--ms-chip-remove: var(--stackline-ms-chip-remove, #115e59);--ms-divider: var(--stackline-ms-divider, rgba(15, 118, 110, .16));--ms-section-bg: var(--stackline-ms-section-bg, #f0fdfa);--ms-selected-text: var(--stackline-ms-selected-text, var(--ms-primary));--ms-shadow: var(--stackline-ms-shadow, 0 18px 42px rgba(15, 118, 110, .15));--ms-shadow-soft: var(--stackline-ms-shadow-soft, 0 1px 2px rgba(15, 118, 110, .16), 0 8px 18px rgba(15, 118, 110, .09))}.stackline-dropdown.theme-material .selected-list,.stackline-dropdown.theme-dark .selected-list,.stackline-dropdown.theme-custom .selected-list{width:100%}.stackline-dropdown.theme-material .selected-list .c-btn,.stackline-dropdown.theme-dark .selected-list .c-btn,.stackline-dropdown.theme-custom .selected-list .c-btn{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;min-height:56px;padding:11px 54px 11px 16px;border-radius:18px;border:1px solid var(--ms-outline);background:var(--ms-surface);box-shadow:var(--ms-shadow-soft);color:var(--ms-on-surface);cursor:pointer;font-size:inherit;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}.stackline-dropdown.theme-material .selected-list .c-btn:hover,.stackline-dropdown.theme-dark .selected-list .c-btn:hover,.stackline-dropdown.theme-custom .selected-list .c-btn:hover{border-color:var(--ms-outline-strong)}.stackline-dropdown.theme-material .selected-list .c-btn.disabled,.stackline-dropdown.theme-dark .selected-list .c-btn.disabled,.stackline-dropdown.theme-custom .selected-list .c-btn.disabled{background:var(--ms-surface);cursor:not-allowed;opacity:.72}.stackline-dropdown.theme-material .selected-list .c-list,.stackline-dropdown.theme-dark .selected-list .c-list,.stackline-dropdown.theme-custom .selected-list .c-list{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;width:auto;min-width:0;margin:0;padding:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token,.stackline-dropdown.theme-dark .selected-list .c-list .c-token,.stackline-dropdown.theme-custom .selected-list .c-list .c-token{position:relative;display:inline-block;vertical-align:middle;min-height:32px;max-width:100%;padding:6px 30px 6px 12px;background:var(--ms-chip-bg);color:var(--ms-chip-text);border-radius:999px;box-shadow:inset 0 0 0 1px #6750a414;line-height:1.35;white-space:normal;overflow-wrap:anywhere;margin:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .c-label{display:inline-flex;align-items:center;float:none;min-width:0;max-width:100%;line-height:1.3;font-weight:500;white-space:normal;overflow-wrap:anywhere}.stackline-dropdown.theme-material .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .fa-remove{position:absolute;right:10px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:0;transform:translateY(-50%);color:var(--ms-chip-remove);cursor:pointer}.stackline-dropdown.theme-material .selected-list .countplaceholder,.stackline-dropdown.theme-dark .selected-list .countplaceholder,.stackline-dropdown.theme-custom .selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0;line-height:1;color:var(--ms-on-surface-muted);font-size:.8rem;font-weight:600}.stackline-dropdown.theme-material .selected-list .fa-angle-down,.stackline-dropdown.theme-dark .selected-list .fa-angle-down,.stackline-dropdown.theme-custom .selected-list .fa-angle-down,.stackline-dropdown.theme-material .selected-list .fa-angle-up,.stackline-dropdown.theme-dark .selected-list .fa-angle-up,.stackline-dropdown.theme-custom .selected-list .fa-angle-up{position:absolute;top:50%;right:16px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;transform:translateY(-50%);color:var(--ms-on-surface-muted);font-size:15pt;pointer-events:none}.stackline-dropdown.theme-material .dropdown-list,.stackline-dropdown.theme-dark .dropdown-list,.stackline-dropdown.theme-custom .dropdown-list{position:absolute;width:100%;padding-top:8px;z-index:99999}.stackline-dropdown.theme-material .arrow-up,.stackline-dropdown.theme-dark .arrow-up,.stackline-dropdown.theme-custom .arrow-up,.stackline-dropdown.theme-material .arrow-down,.stackline-dropdown.theme-dark .arrow-down,.stackline-dropdown.theme-custom .arrow-down,.stackline-dropdown.theme-material .arrow-2,.stackline-dropdown.theme-dark .arrow-2,.stackline-dropdown.theme-custom .arrow-2{display:none}.stackline-dropdown.theme-material .list-area,.stackline-dropdown.theme-dark .list-area,.stackline-dropdown.theme-custom .list-area{overflow:hidden;border-radius:22px;background:var(--ms-surface);border:1px solid var(--ms-outline);box-shadow:var(--ms-shadow);margin:0}.stackline-dropdown.theme-material .select-all,.stackline-dropdown.theme-dark .select-all,.stackline-dropdown.theme-custom .select-all{padding:10px 14px;border-bottom:1px solid var(--ms-divider);background:var(--ms-section-bg);text-align:left}.stackline-dropdown.theme-material .list-filter,.stackline-dropdown.theme-dark .list-filter,.stackline-dropdown.theme-custom .list-filter{position:relative;display:flex;align-items:center;min-height:52px;padding-left:48px;padding-right:44px;border-bottom:1px solid var(--ms-divider);background:var(--ms-surface)}.stackline-dropdown.theme-material .list-filter input,.stackline-dropdown.theme-dark .list-filter input,.stackline-dropdown.theme-custom .list-filter input{width:100%;height:100%;border:0;background:transparent;color:var(--ms-on-surface);font:inherit;padding:0}.stackline-dropdown.theme-material .list-filter input::placeholder,.stackline-dropdown.theme-dark .list-filter input::placeholder,.stackline-dropdown.theme-custom .list-filter input::placeholder{color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .list-filter input:focus,.stackline-dropdown.theme-dark .list-filter input:focus,.stackline-dropdown.theme-custom .list-filter input:focus{outline:none}.stackline-dropdown.theme-material .list-filter .fa,.stackline-dropdown.theme-dark .list-filter .fa,.stackline-dropdown.theme-custom .list-filter .fa{position:absolute;top:50%;left:16px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transform:translateY(-50%);color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .dropdown-list ul,.stackline-dropdown.theme-dark .dropdown-list ul,.stackline-dropdown.theme-custom .dropdown-list ul{list-style:none;margin:0;padding:8px;overflow:auto}.stackline-dropdown.theme-material .dropdown-list ul li,.stackline-dropdown.theme-dark .dropdown-list ul li,.stackline-dropdown.theme-custom .dropdown-list ul li{align-items:center;min-height:0;margin:4px;padding:12px 14px;border-radius:14px;cursor:pointer;text-align:left;line-height:1.35;transition:background-color .16s ease,color .16s ease}.stackline-dropdown.theme-material .dropdown-list ul li:first-child,.stackline-dropdown.theme-dark .dropdown-list ul li:first-child,.stackline-dropdown.theme-custom .dropdown-list ul li:first-child{padding-top:12px}.stackline-dropdown.theme-material .dropdown-list ul li:last-child,.stackline-dropdown.theme-dark .dropdown-list ul li:last-child,.stackline-dropdown.theme-custom .dropdown-list ul li:last-child{padding-bottom:12px}.stackline-dropdown.theme-material .dropdown-list ul li:hover,.stackline-dropdown.theme-dark .dropdown-list ul li:hover,.stackline-dropdown.theme-custom .dropdown-list ul li:hover{background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox,.stackline-dropdown.theme-dark .pure-checkbox,.stackline-dropdown.theme-custom .pure-checkbox{position:relative}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label{position:relative;display:block;width:100%;margin:0;padding-left:32px;color:inherit;cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:16px;height:16px;margin-top:-10px;border:2px solid var(--ms-outline-strong);border-radius:5px;background:var(--ms-surface);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:5px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;background:transparent;transform:rotate(-45deg) scale(0);transform-origin:50%;transition:transform .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:hover+label:before{border-color:var(--ms-primary);background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:before{border-color:var(--ms-primary);background:var(--ms-primary)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.stackline-dropdown.theme-material .list-message,.stackline-dropdown.theme-dark .list-message,.stackline-dropdown.theme-custom .list-message{margin:0;padding:20px 14px;color:var(--ms-on-surface-muted);text-align:center}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.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: i0.forwardRef(function () { return i2.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return ClickOutsideDirective; }), selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "directive", type: i0.forwardRef(function () { return styleDirective; }), selector: "[styleProp]", inputs: ["styleProp"] }, { kind: "component", type: i0.forwardRef(function () { return TemplateRenderer; }), selector: "c-templateRenderer", inputs: ["data", "item"] }, { kind: "pipe", type: i0.forwardRef(function () { return ListFilterPipe; }), name: "listFilter" }] });
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AngularMultiSelect, decorators: [{
341
+ AngularMultiSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularMultiSelect, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
342
+ AngularMultiSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AngularMultiSelect, selector: "angular-multiselect, angular2-multiselect", inputs: { data: "data", settings: "settings" }, outputs: { onSelect: "onSelect", onDeSelect: "onDeSelect", onSelectAll: "onSelectAll", onDeSelectAll: "onDeSelectAll", onOpen: "onOpen", onClose: "onClose" }, host: { properties: { "class": "defaultSettings.classes" } }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], queries: [{ propertyName: "itemTempl", first: true, predicate: Item, descendants: true }, { propertyName: "badgeTempl", first: true, predicate: Badge, descendants: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"stackline-dropdown\" [ngClass]=\"getDropdownClasses()\" (clickOutside)=\"closeDropdown()\">\n <div class=\"selected-list\">\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\">\n <span *ngIf=\"selectedItems?.length == 0\">{{settings.text}}</span>\n <span *ngIf=\"settings.singleSelection\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn;\">\n {{item[settings.labelKey]}}\n </span>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn;let k = index\" [hidden]=\"k > settings.badgeShowLimit-1\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{item[settings.labelKey]}}</span>\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"fa fa-remove\" (click)=\"onItemClick(item,k,$event)\"></span>\n </div>\n </div> \n <span class=\"countplaceholder\" *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"fa\" [ngClass]=\"{'fa-angle-down': !isActive,'fa-angle-up':isActive}\"></span>\n </div> \n </div>\n <div class=\"dropdown-list\" [hidden]=\"!isActive\">\n <div class=\"arrow-up arrow-2\"></div>\n <div class=\"arrow-up\"></div>\n <div class=\"list-area\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection\" (click)=\"toggleSelectAll()\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\" [disabled]=\"settings.limitSelection == selectedItems?.length\"/>\n <label>\n <span [hidden]=\"isSelectAll\">{{settings.selectAllText}}</span>\n <span [hidden]=\"!isSelectAll\">{{settings.unSelectAllText}}</span>\n </label>\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && !settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" [(ngModel)]=\"filter\">\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" (keyup)=\"filterInfiniteList($event)\">\n </div>\n <ul *ngIf=\"!settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" class=\"lazyContainer\" >\n <span *ngIf=\"itemTempl\">\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && !settings.lazyLoading\" >\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && settings.lazyLoading\" >\n <div [ngStyle]=\"{'height':totalHeight+'px'}\" style=\"position: relative;\">\n\n \n <li *ngFor=\"let item of chunkArray | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" style=\"position: absolute;width: 100%;\" class=\"pure-checkbox\" [styleProp]=\"chunkIndex[i]\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </div>\n </span>\n </ul>\n <div *ngIf=\"settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" style=\"overflow: auto;\">\n <ul *ngFor=\"let obj of groupedData ; let i = index;\" class=\"list-grp\">\n <h4 *ngIf=\"(obj.value | listFilter:filter ).length > 0\">{{obj.key}}</h4>\n <span *ngIf=\"itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{settings.noDataLabel}}</h5>\n </div>\n </div>\n</div>\n", isInline: true, styles: [".stackline-dropdown{position:relative}.c-btn{display:inline-block;background:#fff;border:1px solid #ccc;border-radius:3px;font-size:14px;color:#333}.c-btn.disabled{background:#ccc}.c-btn:focus{outline:none}.selected-list .c-list{display:flex;flex:1 1 auto;align-items:center;flex-wrap:wrap;min-width:0;float:none;padding:0;margin:0;width:auto}.selected-list .c-list .c-token{list-style:none;padding:0 5px;background:#0079FE;color:#fff;border-radius:2px;margin-right:4px;margin-top:2px;float:left}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .fa-remove{margin-left:1px;font-size:12px}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0 0 0 6px;line-height:1}.selected-list .c-btn{box-sizing:border-box;width:100%;box-shadow:0 1px 5px #959595;padding:10px 36px 10px 10px;cursor:pointer;display:flex;align-items:center;flex-wrap:nowrap;position:relative}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:9999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ul li:hover{background:#f5f5f5}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#cccccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0;box-shadow:0 1px 5px #959595}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative}.list-filter input{border:0px;width:100%;height:35px;padding:0 0 0 35px}.list-filter input:focus{outline:none}.list-filter .fa{position:absolute;top:10px;left:13px;color:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#0079fe;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";color:#0079fe;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #0079FE;text-align:center;transition:all .4s ease}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";background-color:#0079fe;position:absolute;top:50%;left:4px;width:10px;height:10px;margin-top:-5px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:before{background:#0079FE}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.stackline-dropdown.theme-material,.stackline-dropdown.theme-dark,.stackline-dropdown.theme-custom{--ms-primary: #3f51b5;--ms-primary-soft: rgba(63, 81, 181, .12);--ms-surface: #ffffff;--ms-surface-soft: #f5f7fb;--ms-surface-muted: #e8eaf6;--ms-outline: #c5cae9;--ms-outline-strong: #7986cb;--ms-on-surface: #212121;--ms-on-surface-muted: #5f6368;--ms-chip-bg: #e8eaf6;--ms-chip-text: #303f9f;--ms-chip-remove: #303f9f;--ms-divider: rgba(125, 119, 134, .16);--ms-section-bg: rgba(247, 242, 250, .76);--ms-selected-text: var(--ms-primary);--ms-shadow: 0 1px 2px rgba(33, 33, 33, .16), 0 12px 32px rgba(63, 81, 181, .12);--ms-shadow-soft: 0 1px 2px rgba(33, 33, 33, .12), 0 4px 12px rgba(33, 33, 33, .08);display:block;width:100%;color:var(--ms-on-surface);font:inherit}.stackline-dropdown.theme-dark{--ms-primary: #8ab4f8;--ms-primary-soft: rgba(138, 180, 248, .18);--ms-surface: #151a23;--ms-surface-soft: #202736;--ms-surface-muted: #111722;--ms-outline: #384456;--ms-outline-strong: #8ab4f8;--ms-on-surface: #edf2f7;--ms-on-surface-muted: #aab6c5;--ms-chip-bg: #263247;--ms-chip-text: #d7e6ff;--ms-chip-remove: #d7e6ff;--ms-divider: rgba(170, 182, 197, .18);--ms-section-bg: #101620;--ms-selected-text: #d7e6ff;--ms-shadow: 0 20px 50px rgba(0, 0, 0, .42);--ms-shadow-soft: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 24px rgba(0, 0, 0, .28)}.stackline-dropdown.theme-custom{--ms-primary: var(--stackline-ms-primary, #0f766e);--ms-primary-soft: var(--stackline-ms-primary-soft, rgba(15, 118, 110, .14));--ms-surface: var(--stackline-ms-surface, #ffffff);--ms-surface-soft: var(--stackline-ms-surface-soft, #ecfdf5);--ms-surface-muted: var(--stackline-ms-surface-muted, #d1fae5);--ms-outline: var(--stackline-ms-outline, #99f6e4);--ms-outline-strong: var(--stackline-ms-outline-strong, #0f766e);--ms-on-surface: var(--stackline-ms-on-surface, #102a2a);--ms-on-surface-muted: var(--stackline-ms-on-surface-muted, #47615f);--ms-chip-bg: var(--stackline-ms-chip-bg, #ccfbf1);--ms-chip-text: var(--stackline-ms-chip-text, #115e59);--ms-chip-remove: var(--stackline-ms-chip-remove, #115e59);--ms-divider: var(--stackline-ms-divider, rgba(15, 118, 110, .16));--ms-section-bg: var(--stackline-ms-section-bg, #f0fdfa);--ms-selected-text: var(--stackline-ms-selected-text, var(--ms-primary));--ms-shadow: var(--stackline-ms-shadow, 0 18px 42px rgba(15, 118, 110, .15));--ms-shadow-soft: var(--stackline-ms-shadow-soft, 0 1px 2px rgba(15, 118, 110, .16), 0 8px 18px rgba(15, 118, 110, .09))}.stackline-dropdown.theme-material .selected-list,.stackline-dropdown.theme-dark .selected-list,.stackline-dropdown.theme-custom .selected-list{width:100%}.stackline-dropdown.theme-material .selected-list .c-btn,.stackline-dropdown.theme-dark .selected-list .c-btn,.stackline-dropdown.theme-custom .selected-list .c-btn{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;min-height:56px;padding:11px 54px 11px 16px;border-radius:18px;border:1px solid var(--ms-outline);background:var(--ms-surface);box-shadow:var(--ms-shadow-soft);color:var(--ms-on-surface);cursor:pointer;font-size:inherit;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}.stackline-dropdown.theme-material .selected-list .c-btn:hover,.stackline-dropdown.theme-dark .selected-list .c-btn:hover,.stackline-dropdown.theme-custom .selected-list .c-btn:hover{border-color:var(--ms-outline-strong)}.stackline-dropdown.theme-material .selected-list .c-btn.disabled,.stackline-dropdown.theme-dark .selected-list .c-btn.disabled,.stackline-dropdown.theme-custom .selected-list .c-btn.disabled{background:var(--ms-surface);cursor:not-allowed;opacity:.72}.stackline-dropdown.theme-material .selected-list .c-list,.stackline-dropdown.theme-dark .selected-list .c-list,.stackline-dropdown.theme-custom .selected-list .c-list{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;width:auto;min-width:0;margin:0;padding:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token,.stackline-dropdown.theme-dark .selected-list .c-list .c-token,.stackline-dropdown.theme-custom .selected-list .c-list .c-token{position:relative;display:inline-block;vertical-align:middle;min-height:32px;max-width:100%;padding:6px 30px 6px 12px;background:var(--ms-chip-bg);color:var(--ms-chip-text);border-radius:999px;box-shadow:inset 0 0 0 1px #6750a414;line-height:1.35;white-space:normal;overflow-wrap:anywhere;margin:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .c-label{display:inline-flex;align-items:center;float:none;min-width:0;max-width:100%;line-height:1.3;font-weight:500;white-space:normal;overflow-wrap:anywhere}.stackline-dropdown.theme-material .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .fa-remove{position:absolute;right:10px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:0;transform:translateY(-50%);color:var(--ms-chip-remove);cursor:pointer}.stackline-dropdown.theme-material .selected-list .countplaceholder,.stackline-dropdown.theme-dark .selected-list .countplaceholder,.stackline-dropdown.theme-custom .selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0;line-height:1;color:var(--ms-on-surface-muted);font-size:.8rem;font-weight:600}.stackline-dropdown.theme-material .selected-list .fa-angle-down,.stackline-dropdown.theme-dark .selected-list .fa-angle-down,.stackline-dropdown.theme-custom .selected-list .fa-angle-down,.stackline-dropdown.theme-material .selected-list .fa-angle-up,.stackline-dropdown.theme-dark .selected-list .fa-angle-up,.stackline-dropdown.theme-custom .selected-list .fa-angle-up{position:absolute;top:50%;right:16px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;transform:translateY(-50%);color:var(--ms-on-surface-muted);font-size:15pt;pointer-events:none}.stackline-dropdown.theme-material .dropdown-list,.stackline-dropdown.theme-dark .dropdown-list,.stackline-dropdown.theme-custom .dropdown-list{position:absolute;width:100%;padding-top:8px;z-index:99999}.stackline-dropdown.theme-material .arrow-up,.stackline-dropdown.theme-dark .arrow-up,.stackline-dropdown.theme-custom .arrow-up,.stackline-dropdown.theme-material .arrow-down,.stackline-dropdown.theme-dark .arrow-down,.stackline-dropdown.theme-custom .arrow-down,.stackline-dropdown.theme-material .arrow-2,.stackline-dropdown.theme-dark .arrow-2,.stackline-dropdown.theme-custom .arrow-2{display:none}.stackline-dropdown.theme-material .list-area,.stackline-dropdown.theme-dark .list-area,.stackline-dropdown.theme-custom .list-area{overflow:hidden;border-radius:22px;background:var(--ms-surface);border:1px solid var(--ms-outline);box-shadow:var(--ms-shadow);margin:0}.stackline-dropdown.theme-material .select-all,.stackline-dropdown.theme-dark .select-all,.stackline-dropdown.theme-custom .select-all{padding:10px 14px;border-bottom:1px solid var(--ms-divider);background:var(--ms-section-bg);text-align:left}.stackline-dropdown.theme-material .list-filter,.stackline-dropdown.theme-dark .list-filter,.stackline-dropdown.theme-custom .list-filter{position:relative;display:flex;align-items:center;min-height:52px;padding-left:48px;padding-right:44px;border-bottom:1px solid var(--ms-divider);background:var(--ms-surface)}.stackline-dropdown.theme-material .list-filter input,.stackline-dropdown.theme-dark .list-filter input,.stackline-dropdown.theme-custom .list-filter input{width:100%;height:100%;border:0;background:transparent;color:var(--ms-on-surface);font:inherit;padding:0}.stackline-dropdown.theme-material .list-filter input::placeholder,.stackline-dropdown.theme-dark .list-filter input::placeholder,.stackline-dropdown.theme-custom .list-filter input::placeholder{color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .list-filter input:focus,.stackline-dropdown.theme-dark .list-filter input:focus,.stackline-dropdown.theme-custom .list-filter input:focus{outline:none}.stackline-dropdown.theme-material .list-filter .fa,.stackline-dropdown.theme-dark .list-filter .fa,.stackline-dropdown.theme-custom .list-filter .fa{position:absolute;top:50%;left:16px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transform:translateY(-50%);color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .dropdown-list ul,.stackline-dropdown.theme-dark .dropdown-list ul,.stackline-dropdown.theme-custom .dropdown-list ul{list-style:none;margin:0;padding:8px;overflow:auto}.stackline-dropdown.theme-material .dropdown-list ul li,.stackline-dropdown.theme-dark .dropdown-list ul li,.stackline-dropdown.theme-custom .dropdown-list ul li{align-items:center;min-height:0;margin:4px;padding:12px 14px;border-radius:14px;cursor:pointer;text-align:left;line-height:1.35;transition:background-color .16s ease,color .16s ease}.stackline-dropdown.theme-material .dropdown-list ul li:first-child,.stackline-dropdown.theme-dark .dropdown-list ul li:first-child,.stackline-dropdown.theme-custom .dropdown-list ul li:first-child{padding-top:12px}.stackline-dropdown.theme-material .dropdown-list ul li:last-child,.stackline-dropdown.theme-dark .dropdown-list ul li:last-child,.stackline-dropdown.theme-custom .dropdown-list ul li:last-child{padding-bottom:12px}.stackline-dropdown.theme-material .dropdown-list ul li:hover,.stackline-dropdown.theme-dark .dropdown-list ul li:hover,.stackline-dropdown.theme-custom .dropdown-list ul li:hover{background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox,.stackline-dropdown.theme-dark .pure-checkbox,.stackline-dropdown.theme-custom .pure-checkbox{position:relative}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label{position:relative;display:block;width:100%;margin:0;padding-left:32px;color:inherit;cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:16px;height:16px;margin-top:-10px;border:2px solid var(--ms-outline-strong);border-radius:5px;background:var(--ms-surface);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:5px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;background:transparent;transform:rotate(-45deg) scale(0);transform-origin:50%;transition:transform .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:hover+label:before{border-color:var(--ms-primary);background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:before{border-color:var(--ms-primary);background:var(--ms-primary)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.stackline-dropdown.theme-material .list-message,.stackline-dropdown.theme-dark .list-message,.stackline-dropdown.theme-custom .list-message{margin:0;padding:20px 14px;color:var(--ms-on-surface-muted);text-align:center}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.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: i0.forwardRef(function () { return i2.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return ClickOutsideDirective; }), selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "directive", type: i0.forwardRef(function () { return styleDirective; }), selector: "[styleProp]", inputs: ["styleProp"] }, { kind: "component", type: i0.forwardRef(function () { return TemplateRenderer; }), selector: "c-templateRenderer", inputs: ["data", "item"] }, { kind: "pipe", type: i0.forwardRef(function () { return ListFilterPipe; }), name: "listFilter" }] });
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularMultiSelect, decorators: [{
344
344
  type: Component,
345
345
  args: [{ selector: 'angular-multiselect, angular2-multiselect', template: "<div class=\"stackline-dropdown\" [ngClass]=\"getDropdownClasses()\" (clickOutside)=\"closeDropdown()\">\n <div class=\"selected-list\">\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\">\n <span *ngIf=\"selectedItems?.length == 0\">{{settings.text}}</span>\n <span *ngIf=\"settings.singleSelection\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn;\">\n {{item[settings.labelKey]}}\n </span>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn;let k = index\" [hidden]=\"k > settings.badgeShowLimit-1\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{item[settings.labelKey]}}</span>\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"fa fa-remove\" (click)=\"onItemClick(item,k,$event)\"></span>\n </div>\n </div> \n <span class=\"countplaceholder\" *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"fa\" [ngClass]=\"{'fa-angle-down': !isActive,'fa-angle-up':isActive}\"></span>\n </div> \n </div>\n <div class=\"dropdown-list\" [hidden]=\"!isActive\">\n <div class=\"arrow-up arrow-2\"></div>\n <div class=\"arrow-up\"></div>\n <div class=\"list-area\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection\" (click)=\"toggleSelectAll()\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\" [disabled]=\"settings.limitSelection == selectedItems?.length\"/>\n <label>\n <span [hidden]=\"isSelectAll\">{{settings.selectAllText}}</span>\n <span [hidden]=\"!isSelectAll\">{{settings.unSelectAllText}}</span>\n </label>\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && !settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" [(ngModel)]=\"filter\">\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" (keyup)=\"filterInfiniteList($event)\">\n </div>\n <ul *ngIf=\"!settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" class=\"lazyContainer\" >\n <span *ngIf=\"itemTempl\">\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && !settings.lazyLoading\" >\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && settings.lazyLoading\" >\n <div [ngStyle]=\"{'height':totalHeight+'px'}\" style=\"position: relative;\">\n\n \n <li *ngFor=\"let item of chunkArray | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" style=\"position: absolute;width: 100%;\" class=\"pure-checkbox\" [styleProp]=\"chunkIndex[i]\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </div>\n </span>\n </ul>\n <div *ngIf=\"settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" style=\"overflow: auto;\">\n <ul *ngFor=\"let obj of groupedData ; let i = index;\" class=\"list-grp\">\n <h4 *ngIf=\"(obj.value | listFilter:filter ).length > 0\">{{obj.key}}</h4>\n <span *ngIf=\"itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{settings.noDataLabel}}</h5>\n </div>\n </div>\n</div>\n", host: { '[class]': 'defaultSettings.classes' }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], styles: [".stackline-dropdown{position:relative}.c-btn{display:inline-block;background:#fff;border:1px solid #ccc;border-radius:3px;font-size:14px;color:#333}.c-btn.disabled{background:#ccc}.c-btn:focus{outline:none}.selected-list .c-list{display:flex;flex:1 1 auto;align-items:center;flex-wrap:wrap;min-width:0;float:none;padding:0;margin:0;width:auto}.selected-list .c-list .c-token{list-style:none;padding:0 5px;background:#0079FE;color:#fff;border-radius:2px;margin-right:4px;margin-top:2px;float:left}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .fa-remove{margin-left:1px;font-size:12px}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0 0 0 6px;line-height:1}.selected-list .c-btn{box-sizing:border-box;width:100%;box-shadow:0 1px 5px #959595;padding:10px 36px 10px 10px;cursor:pointer;display:flex;align-items:center;flex-wrap:nowrap;position:relative}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:9999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ul li:hover{background:#f5f5f5}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#cccccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0;box-shadow:0 1px 5px #959595}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative}.list-filter input{border:0px;width:100%;height:35px;padding:0 0 0 35px}.list-filter input:focus{outline:none}.list-filter .fa{position:absolute;top:10px;left:13px;color:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#0079fe;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";color:#0079fe;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #0079FE;text-align:center;transition:all .4s ease}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";background-color:#0079fe;position:absolute;top:50%;left:4px;width:10px;height:10px;margin-top:-5px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:before{background:#0079FE}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.stackline-dropdown.theme-material,.stackline-dropdown.theme-dark,.stackline-dropdown.theme-custom{--ms-primary: #3f51b5;--ms-primary-soft: rgba(63, 81, 181, .12);--ms-surface: #ffffff;--ms-surface-soft: #f5f7fb;--ms-surface-muted: #e8eaf6;--ms-outline: #c5cae9;--ms-outline-strong: #7986cb;--ms-on-surface: #212121;--ms-on-surface-muted: #5f6368;--ms-chip-bg: #e8eaf6;--ms-chip-text: #303f9f;--ms-chip-remove: #303f9f;--ms-divider: rgba(125, 119, 134, .16);--ms-section-bg: rgba(247, 242, 250, .76);--ms-selected-text: var(--ms-primary);--ms-shadow: 0 1px 2px rgba(33, 33, 33, .16), 0 12px 32px rgba(63, 81, 181, .12);--ms-shadow-soft: 0 1px 2px rgba(33, 33, 33, .12), 0 4px 12px rgba(33, 33, 33, .08);display:block;width:100%;color:var(--ms-on-surface);font:inherit}.stackline-dropdown.theme-dark{--ms-primary: #8ab4f8;--ms-primary-soft: rgba(138, 180, 248, .18);--ms-surface: #151a23;--ms-surface-soft: #202736;--ms-surface-muted: #111722;--ms-outline: #384456;--ms-outline-strong: #8ab4f8;--ms-on-surface: #edf2f7;--ms-on-surface-muted: #aab6c5;--ms-chip-bg: #263247;--ms-chip-text: #d7e6ff;--ms-chip-remove: #d7e6ff;--ms-divider: rgba(170, 182, 197, .18);--ms-section-bg: #101620;--ms-selected-text: #d7e6ff;--ms-shadow: 0 20px 50px rgba(0, 0, 0, .42);--ms-shadow-soft: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 24px rgba(0, 0, 0, .28)}.stackline-dropdown.theme-custom{--ms-primary: var(--stackline-ms-primary, #0f766e);--ms-primary-soft: var(--stackline-ms-primary-soft, rgba(15, 118, 110, .14));--ms-surface: var(--stackline-ms-surface, #ffffff);--ms-surface-soft: var(--stackline-ms-surface-soft, #ecfdf5);--ms-surface-muted: var(--stackline-ms-surface-muted, #d1fae5);--ms-outline: var(--stackline-ms-outline, #99f6e4);--ms-outline-strong: var(--stackline-ms-outline-strong, #0f766e);--ms-on-surface: var(--stackline-ms-on-surface, #102a2a);--ms-on-surface-muted: var(--stackline-ms-on-surface-muted, #47615f);--ms-chip-bg: var(--stackline-ms-chip-bg, #ccfbf1);--ms-chip-text: var(--stackline-ms-chip-text, #115e59);--ms-chip-remove: var(--stackline-ms-chip-remove, #115e59);--ms-divider: var(--stackline-ms-divider, rgba(15, 118, 110, .16));--ms-section-bg: var(--stackline-ms-section-bg, #f0fdfa);--ms-selected-text: var(--stackline-ms-selected-text, var(--ms-primary));--ms-shadow: var(--stackline-ms-shadow, 0 18px 42px rgba(15, 118, 110, .15));--ms-shadow-soft: var(--stackline-ms-shadow-soft, 0 1px 2px rgba(15, 118, 110, .16), 0 8px 18px rgba(15, 118, 110, .09))}.stackline-dropdown.theme-material .selected-list,.stackline-dropdown.theme-dark .selected-list,.stackline-dropdown.theme-custom .selected-list{width:100%}.stackline-dropdown.theme-material .selected-list .c-btn,.stackline-dropdown.theme-dark .selected-list .c-btn,.stackline-dropdown.theme-custom .selected-list .c-btn{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;min-height:56px;padding:11px 54px 11px 16px;border-radius:18px;border:1px solid var(--ms-outline);background:var(--ms-surface);box-shadow:var(--ms-shadow-soft);color:var(--ms-on-surface);cursor:pointer;font-size:inherit;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}.stackline-dropdown.theme-material .selected-list .c-btn:hover,.stackline-dropdown.theme-dark .selected-list .c-btn:hover,.stackline-dropdown.theme-custom .selected-list .c-btn:hover{border-color:var(--ms-outline-strong)}.stackline-dropdown.theme-material .selected-list .c-btn.disabled,.stackline-dropdown.theme-dark .selected-list .c-btn.disabled,.stackline-dropdown.theme-custom .selected-list .c-btn.disabled{background:var(--ms-surface);cursor:not-allowed;opacity:.72}.stackline-dropdown.theme-material .selected-list .c-list,.stackline-dropdown.theme-dark .selected-list .c-list,.stackline-dropdown.theme-custom .selected-list .c-list{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;width:auto;min-width:0;margin:0;padding:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token,.stackline-dropdown.theme-dark .selected-list .c-list .c-token,.stackline-dropdown.theme-custom .selected-list .c-list .c-token{position:relative;display:inline-block;vertical-align:middle;min-height:32px;max-width:100%;padding:6px 30px 6px 12px;background:var(--ms-chip-bg);color:var(--ms-chip-text);border-radius:999px;box-shadow:inset 0 0 0 1px #6750a414;line-height:1.35;white-space:normal;overflow-wrap:anywhere;margin:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .c-label{display:inline-flex;align-items:center;float:none;min-width:0;max-width:100%;line-height:1.3;font-weight:500;white-space:normal;overflow-wrap:anywhere}.stackline-dropdown.theme-material .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .fa-remove{position:absolute;right:10px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:0;transform:translateY(-50%);color:var(--ms-chip-remove);cursor:pointer}.stackline-dropdown.theme-material .selected-list .countplaceholder,.stackline-dropdown.theme-dark .selected-list .countplaceholder,.stackline-dropdown.theme-custom .selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0;line-height:1;color:var(--ms-on-surface-muted);font-size:.8rem;font-weight:600}.stackline-dropdown.theme-material .selected-list .fa-angle-down,.stackline-dropdown.theme-dark .selected-list .fa-angle-down,.stackline-dropdown.theme-custom .selected-list .fa-angle-down,.stackline-dropdown.theme-material .selected-list .fa-angle-up,.stackline-dropdown.theme-dark .selected-list .fa-angle-up,.stackline-dropdown.theme-custom .selected-list .fa-angle-up{position:absolute;top:50%;right:16px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;transform:translateY(-50%);color:var(--ms-on-surface-muted);font-size:15pt;pointer-events:none}.stackline-dropdown.theme-material .dropdown-list,.stackline-dropdown.theme-dark .dropdown-list,.stackline-dropdown.theme-custom .dropdown-list{position:absolute;width:100%;padding-top:8px;z-index:99999}.stackline-dropdown.theme-material .arrow-up,.stackline-dropdown.theme-dark .arrow-up,.stackline-dropdown.theme-custom .arrow-up,.stackline-dropdown.theme-material .arrow-down,.stackline-dropdown.theme-dark .arrow-down,.stackline-dropdown.theme-custom .arrow-down,.stackline-dropdown.theme-material .arrow-2,.stackline-dropdown.theme-dark .arrow-2,.stackline-dropdown.theme-custom .arrow-2{display:none}.stackline-dropdown.theme-material .list-area,.stackline-dropdown.theme-dark .list-area,.stackline-dropdown.theme-custom .list-area{overflow:hidden;border-radius:22px;background:var(--ms-surface);border:1px solid var(--ms-outline);box-shadow:var(--ms-shadow);margin:0}.stackline-dropdown.theme-material .select-all,.stackline-dropdown.theme-dark .select-all,.stackline-dropdown.theme-custom .select-all{padding:10px 14px;border-bottom:1px solid var(--ms-divider);background:var(--ms-section-bg);text-align:left}.stackline-dropdown.theme-material .list-filter,.stackline-dropdown.theme-dark .list-filter,.stackline-dropdown.theme-custom .list-filter{position:relative;display:flex;align-items:center;min-height:52px;padding-left:48px;padding-right:44px;border-bottom:1px solid var(--ms-divider);background:var(--ms-surface)}.stackline-dropdown.theme-material .list-filter input,.stackline-dropdown.theme-dark .list-filter input,.stackline-dropdown.theme-custom .list-filter input{width:100%;height:100%;border:0;background:transparent;color:var(--ms-on-surface);font:inherit;padding:0}.stackline-dropdown.theme-material .list-filter input::placeholder,.stackline-dropdown.theme-dark .list-filter input::placeholder,.stackline-dropdown.theme-custom .list-filter input::placeholder{color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .list-filter input:focus,.stackline-dropdown.theme-dark .list-filter input:focus,.stackline-dropdown.theme-custom .list-filter input:focus{outline:none}.stackline-dropdown.theme-material .list-filter .fa,.stackline-dropdown.theme-dark .list-filter .fa,.stackline-dropdown.theme-custom .list-filter .fa{position:absolute;top:50%;left:16px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transform:translateY(-50%);color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .dropdown-list ul,.stackline-dropdown.theme-dark .dropdown-list ul,.stackline-dropdown.theme-custom .dropdown-list ul{list-style:none;margin:0;padding:8px;overflow:auto}.stackline-dropdown.theme-material .dropdown-list ul li,.stackline-dropdown.theme-dark .dropdown-list ul li,.stackline-dropdown.theme-custom .dropdown-list ul li{align-items:center;min-height:0;margin:4px;padding:12px 14px;border-radius:14px;cursor:pointer;text-align:left;line-height:1.35;transition:background-color .16s ease,color .16s ease}.stackline-dropdown.theme-material .dropdown-list ul li:first-child,.stackline-dropdown.theme-dark .dropdown-list ul li:first-child,.stackline-dropdown.theme-custom .dropdown-list ul li:first-child{padding-top:12px}.stackline-dropdown.theme-material .dropdown-list ul li:last-child,.stackline-dropdown.theme-dark .dropdown-list ul li:last-child,.stackline-dropdown.theme-custom .dropdown-list ul li:last-child{padding-bottom:12px}.stackline-dropdown.theme-material .dropdown-list ul li:hover,.stackline-dropdown.theme-dark .dropdown-list ul li:hover,.stackline-dropdown.theme-custom .dropdown-list ul li:hover{background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox,.stackline-dropdown.theme-dark .pure-checkbox,.stackline-dropdown.theme-custom .pure-checkbox{position:relative}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label{position:relative;display:block;width:100%;margin:0;padding-left:32px;color:inherit;cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:16px;height:16px;margin-top:-10px;border:2px solid var(--ms-outline-strong);border-radius:5px;background:var(--ms-surface);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:5px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;background:transparent;transform:rotate(-45deg) scale(0);transform-origin:50%;transition:transform .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:hover+label:before{border-color:var(--ms-primary);background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:before{border-color:var(--ms-primary);background:var(--ms-primary)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.stackline-dropdown.theme-material .list-message,.stackline-dropdown.theme-dark .list-message,.stackline-dropdown.theme-custom .list-message{margin:0;padding:20px 14px;color:var(--ms-on-surface-muted);text-align:center}\n"] }]
346
346
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { data: [{
@@ -377,10 +377,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
377
377
  }] } });
378
378
  export class AngularMultiSelectModule {
379
379
  }
380
- AngularMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AngularMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
381
- AngularMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge], imports: [CommonModule, FormsModule], exports: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge] });
382
- AngularMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AngularMultiSelectModule, imports: [CommonModule, FormsModule] });
383
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AngularMultiSelectModule, decorators: [{
380
+ AngularMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
381
+ AngularMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge], imports: [CommonModule, FormsModule], exports: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge] });
382
+ AngularMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularMultiSelectModule, imports: [CommonModule, FormsModule] });
383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularMultiSelectModule, decorators: [{
384
384
  type: NgModule,
385
385
  args: [{
386
386
  imports: [CommonModule, FormsModule],
@@ -388,4 +388,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
388
388
  exports: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge]
389
389
  }]
390
390
  }] });
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQStDLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUMzTixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUF3QixhQUFhLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBWSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFFNUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDaEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFRO0lBQzVDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFBO0FBQ0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FB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d0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBdFh4QixrQkFBa0IsRUFtWFEscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssYUFEOUgsWUFBWSxFQUFFLFdBQVcsYUFsWDFCLGtCQUFrQixFQW9YRyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSztzSEFFMUgsd0JBQXdCLFlBSnZCLFlBQVksRUFBRSxXQUFXOzJGQUkxQix3QkFBd0I7a0JBTHBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQztvQkFDekksT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQztpQkFDdkkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgTmdNb2R1bGUsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24sIENvbnRlbnRDaGlsZCwgVmlld0NoaWxkLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTGlzdEl0ZW0sIE15RXhjZXB0aW9uIH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBEcm9wZG93blNldHRpbmdzIH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBTY3JvbGxEaXJlY3RpdmUsIHN0eWxlRGlyZWN0aXZlIH0gZnJvbSAnLi9jbGlja091dHNpZGUnO1xuaW1wb3J0IHsgTGlzdEZpbHRlclBpcGUgfSBmcm9tICcuL2xpc3QtZmlsdGVyJztcbmltcG9ydCB7IEl0ZW0sIEJhZGdlLCBUZW1wbGF0ZVJlbmRlcmVyIH0gZnJvbSAnLi9tZW51LWl0ZW0nO1xuXG5leHBvcnQgY29uc3QgRFJPUERPV05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFuZ3VsYXJNdWx0aVNlbGVjdCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5leHBvcnQgY29uc3QgRFJPUERPV05fQ09OVFJPTF9WQUxJREFUSU9OOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTXVsdGlTZWxlY3QpLFxuICAgIG11bHRpOiB0cnVlLFxufVxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYW5ndWxhci1tdWx0aXNlbGVjdCwgYW5ndWxhcjItbXVsdGlzZWxlY3QnLFxuICAgIHRlbXBsYXRlOiBcIjxkaXYgY2xhc3M9XFxcInN0YWNrbGluZS1kcm9wZG93blxcXCIgW25nQ2xhc3NdPVxcXCJnZXREcm9wZG93bkNsYXNzZXMoKVxcXCIgKGNsaWNrT3V0c2lkZSk9XFxcImNsb3NlRHJvcGRvd24oKVxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInNlbGVjdGVkLWxpc3RcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiYy1idG5cXFwiIChjbGljayk9XFxcInRvZ2dsZURyb3Bkb3duKCRldmVudClcXFwiIFtuZ0NsYXNzXT1cXFwieydkaXNhYmxlZCc6IHNldHRpbmdzLmRpc2FibGVkfVxcXCI+XFxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XFxcInNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA9PSAwXFxcIj57e3NldHRpbmdzLnRleHR9fTwvc3Bhbj5cXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cXFwic2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uXFxcIj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zO3RyYWNrQnk6IHRyYWNrQnlGbjtcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtW3NldHRpbmdzLmxhYmVsS2V5XX19XFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYy1saXN0XFxcIiAqbmdJZj1cXFwic2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID4gMCAmJiAhc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uXFxcIj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYy10b2tlblxcXCIgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zO3RyYWNrQnk6IHRyYWNrQnlGbjtsZXQgayA9IGluZGV4XFxcIiBbaGlkZGVuXT1cXFwiayA+IHNldHRpbmdzLmJhZGdlU2hvd0xpbWl0LTFcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XFxcIiFiYWRnZVRlbXBsXFxcIiBjbGFzcz1cXFwiYy1sYWJlbFxcXCI+e3tpdGVtW3NldHRpbmdzLmxhYmVsS2V5XX19PC9zcGFuPlxcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XFxcImJhZGdlVGVtcGxcXFwiIGNsYXNzPVxcXCJjLWxhYmVsXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yy10ZW1wbGF0ZVJlbmRlcmVyIFtkYXRhXT1cXFwiYmFkZ2VUZW1wbFxcXCIgW2l0ZW1dPVxcXCJpdGVtXFxcIj48L2MtdGVtcGxhdGVSZW5kZXJlcj5cXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmYSBmYS1yZW1vdmVcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saywkZXZlbnQpXFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PiBcXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiY291bnRwbGFjZWhvbGRlclxcXCIgKm5nSWY9XFxcInNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA+IHNldHRpbmdzLmJhZGdlU2hvd0xpbWl0XFxcIj4re3tzZWxlY3RlZEl0ZW1zPy5sZW5ndGggLSBzZXR0aW5ncy5iYWRnZVNob3dMaW1pdCB9fTwvc3Bhbj5cXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZmFcXFwiIFtuZ0NsYXNzXT1cXFwieydmYS1hbmdsZS1kb3duJzogIWlzQWN0aXZlLCdmYS1hbmdsZS11cCc6aXNBY3RpdmV9XFxcIj48L3NwYW4+XFxuICAgICAgICA8L2Rpdj4gICAgICBcXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImRyb3Bkb3duLWxpc3RcXFwiIFtoaWRkZW5dPVxcXCIhaXNBY3RpdmVcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJhcnJvdy11cCBhcnJvdy0yXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYXJyb3ctdXBcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJsaXN0LWFyZWFcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwicHVyZS1jaGVja2JveCBzZWxlY3QtYWxsXFxcIiAqbmdJZj1cXFwic2V0dGluZ3MuZW5hYmxlQ2hlY2tBbGwgJiYgIXNldHRpbmdzLnNpbmdsZVNlbGVjdGlvbiAmJiAhc2V0dGluZ3MubGltaXRTZWxlY3Rpb25cXFwiIChjbGljayk9XFxcInRvZ2dsZVNlbGVjdEFsbCgpXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RBbGxcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aFxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD5cXG4gICAgICAgICAgICAgICAgPHNwYW4gW2hpZGRlbl09XFxcImlzU2VsZWN0QWxsXFxcIj57e3NldHRpbmdzLnNlbGVjdEFsbFRleHR9fTwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gW2hpZGRlbl09XFxcIiFpc1NlbGVjdEFsbFxcXCI+e3tzZXR0aW5ncy51blNlbGVjdEFsbFRleHR9fTwvc3Bhbj5cXG4gICAgICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPC9kaXY+ICAgXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJsaXN0LWZpbHRlclxcXCIgKm5nSWY9XFxcInNldHRpbmdzLmVuYWJsZVNlYXJjaEZpbHRlciAmJiAhc2V0dGluZ3MubGF6eUxvYWRpbmdcXFwiPlxcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmYSBmYS1zZWFyY2hcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XFxcInRleHRcXFwiIFtwbGFjZWhvbGRlcl09XFxcInNldHRpbmdzLnNlYXJjaFBsYWNlaG9sZGVyVGV4dFxcXCIgWyhuZ01vZGVsKV09XFxcImZpbHRlclxcXCI+XFxuICAgICAgICA8L2Rpdj4gXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJsaXN0LWZpbHRlclxcXCIgKm5nSWY9XFxcInNldHRpbmdzLmVuYWJsZVNlYXJjaEZpbHRlciAmJiBzZXR0aW5ncy5sYXp5TG9hZGluZ1xcXCI+XFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZhIGZhLXNlYXJjaFxcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgIDxpbnB1dCAjc2VhcmNoSW5wdXQgdHlwZT1cXFwidGV4dFxcXCIgW3BsYWNlaG9sZGVyXT1cXFwic2V0dGluZ3Muc2VhcmNoUGxhY2Vob2xkZXJUZXh0XFxcIiAoa2V5dXApPVxcXCJmaWx0ZXJJbmZpbml0ZUxpc3QoJGV2ZW50KVxcXCI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPHVsICpuZ0lmPVxcXCIhc2V0dGluZ3MuZ3JvdXBCeVxcXCIgW3N0eWxlLm1heEhlaWdodF0gPSBcXFwic2V0dGluZ3MubWF4SGVpZ2h0KydweCdcXFwiIGNsYXNzPVxcXCJsYXp5Q29udGFpbmVyXFxcIiA+XFxuICAgICAgICA8c3BhbiAqbmdJZj1cXFwiaXRlbVRlbXBsXFxcIj5cXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBkYXRhIHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgY2xhc3M9XFxcInB1cmUtY2hlY2tib3hcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdGVkKGl0ZW0pXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWlzU2VsZWN0ZWQoaXRlbSlcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+PC9sYWJlbD5cXG4gICAgICAgICAgICA8Yy10ZW1wbGF0ZVJlbmRlcmVyIFtkYXRhXT1cXFwiaXRlbVRlbXBsXFxcIiBbaXRlbV09XFxcIml0ZW1cXFwiPjwvYy10ZW1wbGF0ZVJlbmRlcmVyPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDxzcGFuICpuZ0lmPVxcXCIhaXRlbVRlbXBsICYmICFzZXR0aW5ncy5sYXp5TG9hZGluZ1xcXCIgPlxcbiAgICAgICAgPGxpICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2YgZGF0YSB8IGxpc3RGaWx0ZXI6ZmlsdGVyOyBsZXQgaSA9IGluZGV4O1xcXCIgKGNsaWNrKT1cXFwib25JdGVtQ2xpY2soaXRlbSxpLCRldmVudClcXFwiIGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94XFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RlZChpdGVtKVxcXCIgW2Rpc2FibGVkXT1cXFwic2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT0gc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFpc1NlbGVjdGVkKGl0ZW0pXFxcIi8+XFxuICAgICAgICAgICAgPGxhYmVsPnt7aXRlbVtzZXR0aW5ncy5sYWJlbEtleV19fTwvbGFiZWw+XFxuICAgICAgICA8L2xpPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgPHNwYW4gKm5nSWY9XFxcIiFpdGVtVGVtcGwgJiYgc2V0dGluZ3MubGF6eUxvYWRpbmdcXFwiID5cXG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cXFwieydoZWlnaHQnOnRvdGFsSGVpZ2h0KydweCd9XFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+XFxuXFxuICAgICAgICAgICAgXFxuICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBjaHVua0FycmF5IHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDogMTAwJTtcXFwiIGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94XFxcIiBbc3R5bGVQcm9wXT1cXFwiY2h1bmtJbmRleFtpXVxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0ZWQoaXRlbSlcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhaXNTZWxlY3RlZChpdGVtKVxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD57e2l0ZW1bc2V0dGluZ3MubGFiZWxLZXldfX08L2xhYmVsPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICA8L3VsPlxcbiAgICA8ZGl2ICpuZ0lmPVxcXCJzZXR0aW5ncy5ncm91cEJ5XFxcIiBbc3R5bGUubWF4SGVpZ2h0XSA9IFxcXCJzZXR0aW5ncy5tYXhIZWlnaHQrJ3B4J1xcXCIgc3R5bGU9XFxcIm92ZXJmbG93OiBhdXRvO1xcXCI+XFxuICAgIDx1bCAqbmdGb3I9XFxcImxldCBvYmogb2YgZ3JvdXBlZERhdGEgOyBsZXQgaSA9IGluZGV4O1xcXCIgY2xhc3M9XFxcImxpc3QtZ3JwXFxcIj5cXG4gICAgICAgIDxoNCAqbmdJZj1cXFwiKG9iai52YWx1ZSB8IGxpc3RGaWx0ZXI6ZmlsdGVyICkubGVuZ3RoID4gMFxcXCI+e3tvYmoua2V5fX08L2g0PlxcbiAgICAgICAgPHNwYW4gKm5nSWY9XFxcIml0ZW1UZW1wbFxcXCIgPlxcbiAgICAgICAgPGxpICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2Ygb2JqLnZhbHVlIHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgY2xhc3M9XFxcInB1cmUtY2hlY2tib3hcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdGVkKGl0ZW0pXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWlzU2VsZWN0ZWQoaXRlbSlcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+PC9sYWJlbD5cXG4gICAgICAgICAgICA8Yy10ZW1wbGF0ZVJlbmRlcmVyIFtkYXRhXT1cXFwiaXRlbVRlbXBsXFxcIiBbaXRlbV09XFxcIml0ZW1cXFwiPjwvYy10ZW1wbGF0ZVJlbmRlcmVyPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDxzcGFuICpuZ0lmPVxcXCIhaXRlbVRlbXBsXFxcIiA+XFxuICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBvYmoudmFsdWUgfCBsaXN0RmlsdGVyOmZpbHRlcjsgbGV0IGkgPSBpbmRleDtcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saSwkZXZlbnQpXFxcIiBjbGFzcz1cXFwicHVyZS1jaGVja2JveFxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0ZWQoaXRlbSlcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhaXNTZWxlY3RlZChpdGVtKVxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD57e2l0ZW1bc2V0dGluZ3MubGFiZWxLZXldfX08L2xhYmVsPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgPC91bD5cXG4gICAgPC9kaXY+XFxuICAgIDxoNSBjbGFzcz1cXFwibGlzdC1tZXNzYWdlXFxcIiAqbmdJZj1cXFwiZGF0YT8ubGVuZ3RoID09IDBcXFwiPnt7c2V0dGluZ3Mubm9EYXRhTGFiZWx9fTwvaDU+XFxuICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG5cIixcbiAgICBob3N0OiB7ICdbY2xhc3NdJzogJ2RlZmF1bHRTZXR0aW5ncy5jbGFzc2VzJyB9LFxuICAgIHN0eWxlczogW1wiLnN0YWNrbGluZS1kcm9wZG93biB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbi5jLWJ0biB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGNvbG9yOiAjMzMzO1xcbn1cXG5cXG4uYy1idG4uZGlzYWJsZWQge1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuXFxuLmMtYnRuOmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcblxcbi5zZWxlY3RlZC1saXN0IC5jLWxpc3Qge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXg6IDEgMSBhdXRvO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZsZXgtd3JhcDogd3JhcDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIGZsb2F0OiBub25lO1xcbiAgcGFkZGluZzogMHB4O1xcbiAgbWFyZ2luOiAwcHg7XFxuICB3aWR0aDogYXV0bztcXG59XFxuLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiB7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgcGFkZGluZzogMHB4IDVweDtcXG4gIGJhY2tncm91bmQ6ICMwMDc5RkU7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgbWFyZ2luLXRvcDogMnB4O1xcbiAgZmxvYXQ6IGxlZnQ7XFxufVxcbi5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmMtbGFiZWwge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmbG9hdDogbGVmdDtcXG4gIC8qd2lkdGg6IDUwcHg7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICBvdmVyZmxvdzogaGlkZGVuOyovXFxufVxcbi5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmZhLXJlbW92ZSB7XFxuICBtYXJnaW4tbGVmdDogMXB4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtZG93biwgLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLXVwIHtcXG4gIGZvbnQtc2l6ZTogMTVwdDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAxMHB4O1xcbiAgdG9wOiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcbi5zZWxlY3RlZC1saXN0IC5jb3VudHBsYWNlaG9sZGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgZmxleDogMCAwIGF1dG87XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XFxuICBtYXJnaW46IDAgMCAwIDZweDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuYy1idG4ge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYm94LXNoYWRvdzogMHB4IDFweCA1cHggIzk1OTU5NTtcXG4gIHBhZGRpbmc6IDEwcHggMzZweCAxMHB4IDEwcHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uZHJvcGRvd24tbGlzdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBwYWRkaW5nLXRvcDogMTRweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgei1pbmRleDogOTk5OTtcXG59XFxuLmRyb3Bkb3duLWxpc3QgdWwge1xcbiAgcGFkZGluZzogMHB4O1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgbWFyZ2luOiAwcHg7XFxufVxcbi5kcm9wZG93bi1saXN0IHVsIGxpIHtcXG4gIHBhZGRpbmc6IDEwcHggMTBweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi5kcm9wZG93bi1saXN0IHVsIGxpOmZpcnN0LWNoaWxkIHtcXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xcbn1cXG4uZHJvcGRvd24tbGlzdCB1bCBsaTpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbn1cXG4uZHJvcGRvd24tbGlzdCB1bCBsaTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xcbn1cXG4uZHJvcGRvd24tbGlzdCA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXG4gIHdpZHRoOiA4cHg7XFxufVxcbi5kcm9wZG93bi1saXN0IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgYmFja2dyb3VuZDogI2NjY2NjYztcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG59XFxuLmRyb3Bkb3duLWxpc3QgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XFxuICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xcbn1cXG5cXG4uYXJyb3ctdXAge1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXItbGVmdDogMTNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yaWdodDogMTNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgI2ZmZjtcXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbn1cXG5cXG4uYXJyb3ctMiB7XFxuICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICNjY2M7XFxuICB0b3A6IC0xcHg7XFxufVxcblxcbi5saXN0LWFyZWEge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBtYXJnaW46IDBweDtcXG4gIGJveC1zaGFkb3c6IDBweCAxcHggNXB4ICM5NTk1OTU7XFxufVxcblxcbi5zZWxlY3QtYWxsIHtcXG4gIHBhZGRpbmc6IDEwcHg7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcblxcbi5saXN0LWZpbHRlciB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmxpc3QtZmlsdGVyIGlucHV0IHtcXG4gIGJvcmRlcjogMHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDM1cHg7XFxuICBwYWRkaW5nOiAwcHggMHB4IDBweCAzNXB4O1xcbn1cXG4ubGlzdC1maWx0ZXIgaW5wdXQ6Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZTtcXG59XFxuLmxpc3QtZmlsdGVyIC5mYSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDEwcHg7XFxuICBsZWZ0OiAxM3B4O1xcbiAgY29sb3I6ICM4ODg7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcXG4gIGJvcmRlcjogMDtcXG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XFxuICBoZWlnaHQ6IDFweDtcXG4gIG1hcmdpbjogLTFweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwYWRkaW5nOiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDFweDtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgKyBsYWJlbDpiZWZvcmUsXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIgKyBsYWJlbDpiZWZvcmUge1xcbiAgYm9yZGVyLWNvbG9yOiAjMDA3OUZFO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06YWN0aXZlICsgbGFiZWw6YmVmb3JlIHtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctbGVmdDogMmVtO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgbWFyZ2luOiAwcHg7XFxuICBjb2xvcjogIzAwMDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBjb2xvcjogIzAwNzlGRTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgaGVpZ2h0OiAxNHB4O1xcbiAgbWFyZ2luLXRvcDogLTlweDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDc5RkU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmFmdGVyIHtcXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OUZFO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA0cHg7XFxuICB3aWR0aDogMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIG1hcmdpbi10b3A6IC01cHg7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0O1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBib3JkZXItY29sb3I6ICNjY2NjY2M7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmZvY3VzICsgbGFiZWw6YmVmb3JlIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmhvdmVyICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogNHB4O1xcbiAgd2lkdGg6IDhweDtcXG4gIGhlaWdodDogM3B4O1xcbiAgbWFyZ2luLXRvcDogLTRweDtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItY29sb3I6ICNmZmZmZmY7XFxuICBib3JkZXItd2lkdGg6IDAgMCAzcHggM3B4O1xcbiAgYm9yZGVyLWltYWdlOiBub25lO1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9cmFkaW9dICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kOiAjMDA3OUZFO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcXG59XFxuXFxuLmxpc3QtbWVzc2FnZSB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcblxcbi5saXN0LWdycCB7XFxuICBwYWRkaW5nOiAwIDE1cHggIWltcG9ydGFudDtcXG59XFxuXFxuLmxpc3QtZ3JwIGg0IHtcXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xcbiAgbWFyZ2luOiAxNXB4IDBweCAwcHggMHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuXFxuLmxpc3QtZ3JwID4gbGkge1xcbiAgcGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIHtcXG4gIC0tbXMtcHJpbWFyeTogIzNmNTFiNTtcXG4gIC0tbXMtcHJpbWFyeS1zb2Z0OiByZ2JhKDYzLCA4MSwgMTgxLCAwLjEyKTtcXG4gIC0tbXMtc3VyZmFjZTogI2ZmZmZmZjtcXG4gIC0tbXMtc3VyZmFjZS1zb2Z0OiAjZjVmN2ZiO1xcbiAgLS1tcy1zdXJmYWNlLW11dGVkOiAjZThlYWY2O1xcbiAgLS1tcy1vdXRsaW5lOiAjYzVjYWU5O1xcbiAgLS1tcy1vdXRsaW5lLXN0cm9uZzogIzc5ODZjYjtcXG4gIC0tbXMtb24tc3VyZmFjZTogIzIxMjEyMTtcXG4gIC0tbXMtb24tc3VyZmFjZS1tdXRlZDogIzVmNjM2ODtcXG4gIC0tbXMtY2hpcC1iZzogI2U4ZWFmNjtcXG4gIC0tbXMtY2hpcC10ZXh0OiAjMzAzZjlmO1xcbiAgLS1tcy1jaGlwLXJlbW92ZTogIzMwM2Y5ZjtcXG4gIC0tbXMtZGl2aWRlcjogcmdiYSgxMjUsIDExOSwgMTM0LCAwLjE2KTtcXG4gIC0tbXMtc2VjdGlvbi1iZzogcmdiYSgyNDcsIDI0MiwgMjUwLCAwLjc2KTtcXG4gIC0tbXMtc2VsZWN0ZWQtdGV4dDogdmFyKC0tbXMtcHJpbWFyeSk7XFxuICAtLW1zLXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMzMsIDMzLCAzMywgMC4xNiksIDAgMTJweCAzMnB4IHJnYmEoNjMsIDgxLCAxODEsIDAuMTIpO1xcbiAgLS1tcy1zaGFkb3ctc29mdDogMCAxcHggMnB4IHJnYmEoMzMsIDMzLCAzMywgMC4xMiksIDAgNHB4IDEycHggcmdiYSgzMywgMzMsIDMzLCAwLjA4KTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZSk7XFxuICBmb250OiBpbmhlcml0O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsge1xcbiAgLS1tcy1wcmltYXJ5OiAjOGFiNGY4O1xcbiAgLS1tcy1wcmltYXJ5LXNvZnQ6IHJnYmEoMTM4LCAxODAsIDI0OCwgMC4xOCk7XFxuICAtLW1zLXN1cmZhY2U6ICMxNTFhMjM7XFxuICAtLW1zLXN1cmZhY2Utc29mdDogIzIwMjczNjtcXG4gIC0tbXMtc3VyZmFjZS1tdXRlZDogIzExMTcyMjtcXG4gIC0tbXMtb3V0bGluZTogIzM4NDQ1NjtcXG4gIC0tbXMtb3V0bGluZS1zdHJvbmc6ICM4YWI0Zjg7XFxuICAtLW1zLW9uLXN1cmZhY2U6ICNlZGYyZjc7XFxuICAtLW1zLW9uLXN1cmZhY2UtbXV0ZWQ6ICNhYWI2YzU7XFxuICAtLW1zLWNoaXAtYmc6ICMyNjMyNDc7XFxuICAtLW1zLWNoaXAtdGV4dDogI2Q3ZTZmZjtcXG4gIC0tbXMtY2hpcC1yZW1vdmU6ICNkN2U2ZmY7XFxuICAtLW1zLWRpdmlkZXI6IHJnYmEoMTcwLCAxODIsIDE5NywgMC4xOCk7XFxuICAtLW1zLXNlY3Rpb24tYmc6ICMxMDE2MjA7XFxuICAtLW1zLXNlbGVjdGVkLXRleHQ6ICNkN2U2ZmY7XFxuICAtLW1zLXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjQyKTtcXG4gIC0tbXMtc2hhZG93LXNvZnQ6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNDUpLCAwIDEwcHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMjgpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSB7XFxuICAtLW1zLXByaW1hcnk6IHZhcigtLXN0YWNrbGluZS1tcy1wcmltYXJ5LCAjMGY3NjZlKTtcXG4gIC0tbXMtcHJpbWFyeS1zb2Z0OiB2YXIoLS1zdGFja2xpbmUtbXMtcHJpbWFyeS1zb2Z0LCByZ2JhKDE1LCAxMTgsIDExMCwgMC4xNCkpO1xcbiAgLS1tcy1zdXJmYWNlOiB2YXIoLS1zdGFja2xpbmUtbXMtc3VyZmFjZSwgI2ZmZmZmZik7XFxuICAtLW1zLXN1cmZhY2Utc29mdDogdmFyKC0tc3RhY2tsaW5lLW1zLXN1cmZhY2Utc29mdCwgI2VjZmRmNSk7XFxuICAtLW1zLXN1cmZhY2UtbXV0ZWQ6IHZhcigtLXN0YWNrbGluZS1tcy1zdXJmYWNlLW11dGVkLCAjZDFmYWU1KTtcXG4gIC0tbXMtb3V0bGluZTogdmFyKC0tc3RhY2tsaW5lLW1zLW91dGxpbmUsICM5OWY2ZTQpO1xcbiAgLS1tcy1vdXRsaW5lLXN0cm9uZzogdmFyKC0tc3RhY2tsaW5lLW1zLW91dGxpbmUtc3Ryb25nLCAjMGY3NjZlKTtcXG4gIC0tbXMtb24tc3VyZmFjZTogdmFyKC0tc3RhY2tsaW5lLW1zLW9uLXN1cmZhY2UsICMxMDJhMmEpO1xcbiAgLS1tcy1vbi1zdXJmYWNlLW11dGVkOiB2YXIoLS1zdGFja2xpbmUtbXMtb24tc3VyZmFjZS1tdXRlZCwgIzQ3NjE1Zik7XFxuICAtLW1zLWNoaXAtYmc6IHZhcigtLXN0YWNrbGluZS1tcy1jaGlwLWJnLCAjY2NmYmYxKTtcXG4gIC0tbXMtY2hpcC10ZXh0OiB2YXIoLS1zdGFja2xpbmUtbXMtY2hpcC10ZXh0LCAjMTE1ZTU5KTtcXG4gIC0tbXMtY2hpcC1yZW1vdmU6IHZhcigtLXN0YWNrbGluZS1tcy1jaGlwLXJlbW92ZSwgIzExNWU1OSk7XFxuICAtLW1zLWRpdmlkZXI6IHZhcigtLXN0YWNrbGluZS1tcy1kaXZpZGVyLCByZ2JhKDE1LCAxMTgsIDExMCwgMC4xNikpO1xcbiAgLS1tcy1zZWN0aW9uLWJnOiB2YXIoLS1zdGFja2xpbmUtbXMtc2VjdGlvbi1iZywgI2YwZmRmYSk7XFxuICAtLW1zLXNlbGVjdGVkLXRleHQ6IHZhcigtLXN0YWNrbGluZS1tcy1zZWxlY3RlZC10ZXh0LCB2YXIoLS1tcy1wcmltYXJ5KSk7XFxuICAtLW1zLXNoYWRvdzogdmFyKC0tc3RhY2tsaW5lLW1zLXNoYWRvdywgMCAxOHB4IDQycHggcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTUpKTtcXG4gIC0tbXMtc2hhZG93LXNvZnQ6IHZhcigtLXN0YWNrbGluZS1tcy1zaGFkb3ctc29mdCwgMCAxcHggMnB4IHJnYmEoMTUsIDExOCwgMTEwLCAwLjE2KSwgMCA4cHggMThweCByZ2JhKDE1LCAxMTgsIDExMCwgMC4wOSkpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1idG4sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWJ0bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1idG4ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gIGdhcDogOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbiAgcGFkZGluZzogMTFweCA1NHB4IDExcHggMTZweDtcXG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tcy1vdXRsaW5lKTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2UpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tbXMtc2hhZG93LXNvZnQpO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UpO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNnMgZWFzZSwgYm94LXNoYWRvdyAwLjE2cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTZzIGVhc2UsIHRyYW5zZm9ybSAwLjE2cyBlYXNlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWJ0bjpob3ZlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtYnRuOmhvdmVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWJ0bjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW1zLW91dGxpbmUtc3Ryb25nKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1idG4uZGlzYWJsZWQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWJ0bi5kaXNhYmxlZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1idG4uZGlzYWJsZWQge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZSk7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgb3BhY2l0eTogMC43MjtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWxpc3Qge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXg6IDEgMSBhdXRvO1xcbiAgZmxleC13cmFwOiB3cmFwO1xcbiAgZ2FwOiA4cHg7XFxuICB3aWR0aDogYXV0bztcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBmbG9hdDogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIG1pbi1oZWlnaHQ6IDMycHg7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiA2cHggMzBweCA2cHggMTJweDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLWNoaXAtYmcpO1xcbiAgY29sb3I6IHZhcigtLW1zLWNoaXAtdGV4dCk7XFxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEwMywgODAsIDE2NCwgMC4wOCk7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcXG4gIG1hcmdpbjogMDtcXG4gIGZsb2F0OiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmMtbGFiZWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmMtbGFiZWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuYy1sYWJlbCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbG9hdDogbm9uZTtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmZhLXJlbW92ZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuZmEtcmVtb3ZlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmZhLXJlbW92ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMTBweDtcXG4gIHRvcDogNTAlO1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgY29sb3I6IHZhcigtLW1zLWNoaXAtcmVtb3ZlKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuY291bnRwbGFjZWhvbGRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmNvdW50cGxhY2Vob2xkZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmNvdW50cGxhY2Vob2xkZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBmbGV4OiAwIDAgYXV0bztcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcXG4gIG1hcmdpbjogMDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICBmb250LXdlaWdodDogNjAwO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS1kb3duLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS11cCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLXVwLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS11cCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIHJpZ2h0OiAxNnB4O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlLW11dGVkKTtcXG4gIGZvbnQtc2l6ZTogMTVwdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxuICB6LWluZGV4OiA5OTk5OTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuYXJyb3ctdXAsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5hcnJvdy11cCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuYXJyb3ctdXAsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuYXJyb3ctZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmFycm93LWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmFycm93LWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuYXJyb3ctMixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmFycm93LTIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmFycm93LTIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1hcmVhLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1hcmVhLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWFyZWEge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IDIycHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlKTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zLW91dGxpbmUpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tbXMtc2hhZG93KTtcXG4gIG1hcmdpbjogMDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0LWFsbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdC1hbGwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdC1hbGwge1xcbiAgcGFkZGluZzogMTBweCAxNHB4O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zLWRpdmlkZXIpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc2VjdGlvbi1iZyk7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtZmlsdGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIG1pbi1oZWlnaHQ6IDUycHg7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NHB4O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zLWRpdmlkZXIpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZSk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtZmlsdGVyIGlucHV0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1maWx0ZXIgaW5wdXQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtZmlsdGVyIGlucHV0IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZSk7XFxuICBmb250OiBpbmhlcml0O1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1maWx0ZXIgaW5wdXQ6OnBsYWNlaG9sZGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1maWx0ZXIgaW5wdXQ6OnBsYWNlaG9sZGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciBpbnB1dDo6cGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlciBpbnB1dDpmb2N1cyxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtZmlsdGVyIGlucHV0OmZvY3VzLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciBpbnB1dDpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlciAuZmEsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LWZpbHRlciAuZmEsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtZmlsdGVyIC5mYSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDE2cHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHdpZHRoOiAxOHB4O1xcbiAgaGVpZ2h0OiAxOHB4O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0IHVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB1bCB7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QgdWwgbGksXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0IHVsIGxpLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIGxpIHtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgbWFyZ2luOiA0cHg7XFxuICBwYWRkaW5nOiAxMnB4IDE0cHg7XFxuICBib3JkZXItcmFkaXVzOiAxNHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE2cyBlYXNlLCBjb2xvciAwLjE2cyBlYXNlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0IHVsIGxpOmZpcnN0LWNoaWxkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCBsaTpmaXJzdC1jaGlsZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB1bCBsaTpmaXJzdC1jaGlsZCB7XFxuICBwYWRkaW5nLXRvcDogMTJweDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuZHJvcGRvd24tbGlzdCB1bCBsaTpsYXN0LWNoaWxkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCBsaTpsYXN0LWNoaWxkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIGxpOmxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QgdWwgbGk6aG92ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0IHVsIGxpOmhvdmVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIGxpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2Utc29mdCk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3gsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmctbGVmdDogMzJweDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmJlZm9yZSB7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDE2cHg7XFxuICBoZWlnaHQ6IDE2cHg7XFxuICBtYXJnaW4tdG9wOiAtMTBweDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLW1zLW91dGxpbmUtc3Ryb25nKTtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2UpO1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTZzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xNnMgZWFzZSwgYm94LXNoYWRvdyAwLjE2cyBlYXNlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YWZ0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YWZ0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDphZnRlciB7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1cHg7XFxuICB3aWR0aDogOHB4O1xcbiAgaGVpZ2h0OiAzcHg7XFxuICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcXG4gIGJvcmRlci13aWR0aDogMCAwIDNweCAzcHg7XFxuICBib3JkZXItaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNnMgZWFzZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpob3ZlciArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIgKyBsYWJlbDpiZWZvcmUge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tcy1wcmltYXJ5KTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2Utc29mdCk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbXMtcHJpbWFyeSk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1wcmltYXJ5KTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1tZXNzYWdlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1tZXNzYWdlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LW1lc3NhZ2Uge1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMjBweCAxNHB4O1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cIl0sXG4gICAgcHJvdmlkZXJzOiBbRFJPUERPV05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiwgRFJPUERPV05fQ09OVFJPTF9WQUxJREFUSU9OXVxufSlcblxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNdWx0aVNlbGVjdCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgVmFsaWRhdG9yIHtcblxuICAgIEBJbnB1dCgpXG4gICAgZGF0YTogQXJyYXk8TGlzdEl0ZW0+O1xuXG4gICAgQElucHV0KClcbiAgICBzZXR0aW5nczogRHJvcGRvd25TZXR0aW5ncztcblxuICAgIEBPdXRwdXQoJ29uU2VsZWN0JylcbiAgICBvblNlbGVjdDogRXZlbnRFbWl0dGVyPExpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+KCk7XG5cbiAgICBAT3V0cHV0KCdvbkRlU2VsZWN0JylcbiAgICBvbkRlU2VsZWN0OiBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcblxuICAgIEBPdXRwdXQoJ29uU2VsZWN0QWxsJylcbiAgICBvblNlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4oKTtcblxuICAgIEBPdXRwdXQoJ29uRGVTZWxlY3RBbGwnKVxuICAgIG9uRGVTZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+KCk7XG5cbiAgICBAT3V0cHV0KCdvbk9wZW4nKVxuICAgIG9uT3BlbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoJ29uQ2xvc2UnKVxuICAgIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKEl0ZW0sIHsgc3RhdGljOiBmYWxzZSB9KSBpdGVtVGVtcGw6IEl0ZW07XG4gICAgQENvbnRlbnRDaGlsZChCYWRnZSwgeyBzdGF0aWM6IGZhbHNlIH0pIGJhZGdlVGVtcGw6IEJhZGdlO1xuXG5cbiAgICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBBcnJheTxMaXN0SXRlbT47XG4gICAgcHVibGljIGlzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzU2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGdyb3VwZWREYXRhOiBBcnJheTxMaXN0SXRlbT47XG4gICAgZmlsdGVyOiBhbnk7XG4gICAgcHVibGljIGNodW5rQXJyYXk6YW55W107XG4gICAgcHVibGljIHNjcm9sbFRvcDphbnk7XG4gICAgcHVibGljIGNodW5rSW5kZXg6YW55W10gPSBbXTtcbiAgICBwdWJsaWMgY2FjaGVkSXRlbXM6YW55W10gPSBbXTtcbiAgICBwdWJsaWMgdG90YWxSb3dzOmFueTtcbiAgICBwdWJsaWMgaXRlbUhlaWdodDphbnkgPSA0MS42O1xuICAgIHB1YmxpYyBzY3JlZW5JdGVtc0xlbjphbnk7XG4gICAgcHVibGljIGNhY2hlZEl0ZW1zTGVuOmFueTtcbiAgICBwdWJsaWMgdG90YWxIZWlnaHQ6IGFueTtcbiAgICBwdWJsaWMgc2Nyb2xsZXI6YW55O1xuICAgIHB1YmxpYyBtYXhCdWZmZXI6YW55O1xuICAgIHB1YmxpYyBsYXN0U2Nyb2xsZWQ6YW55O1xuICAgIHB1YmxpYyBsYXN0UmVwYWludFk6IGFueTtcblxuICAgIGRlZmF1bHRTZXR0aW5nczogRHJvcGRvd25TZXR0aW5ncyA9IHtcbiAgICAgICAgc2luZ2xlU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgdGV4dDogJ1NlbGVjdCcsXG4gICAgICAgIGVuYWJsZUNoZWNrQWxsOiB0cnVlLFxuICAgICAgICBzZWxlY3RBbGxUZXh0OiAnU2VsZWN0IEFsbCcsXG4gICAgICAgIHVuU2VsZWN0QWxsVGV4dDogJ1VuU2VsZWN0IEFsbCcsXG4gICAgICAgIGVuYWJsZVNlYXJjaEZpbHRlcjogZmFsc2UsXG4gICAgICAgIG1heEhlaWdodDogMzAwLFxuICAgICAgICBiYWRnZVNob3dMaW1pdDogOTk5OTk5OTk5OTk5LFxuICAgICAgICBjbGFzc2VzOiAnJyxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlclRleHQ6ICdTZWFyY2gnLFxuICAgICAgICBzaG93Q2hlY2tib3g6IHRydWUsXG4gICAgICAgIG5vRGF0YUxhYmVsOiAnTm8gRGF0YSBBdmFpbGFibGUnLFxuICAgICAgICBzZWFyY2hBdXRvZm9jdXM6IHRydWUsXG4gICAgICAgIGxhenlMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgbGFiZWxLZXk6ICdpdGVtTmFtZScsXG4gICAgICAgIHRoZW1lOiAnY2xhc3NpYycsXG4gICAgICAgIHNraW46ICdjbGFzc2ljJ1xuICAgIH1cbiAgICBwdWJsaWMgcGFyc2VFcnJvcjogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX2VsZW1lbnRSZWYgOiBFbGVtZW50UmVmKSB7XG5cbiAgICB9XG4gICAgZ2V0VGhlbWVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCByYXdUaGVtZTogYW55ID0gJ2NsYXNzaWMnO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncykge1xuICAgICAgICAgICAgcmF3VGhlbWUgPSB0aGlzLnNldHRpbmdzLnNraW4gfHwgdGhpcy5zZXR0aW5ncy50aGVtZSB8fCAnY2xhc3NpYyc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHRoZW1lID0gU3RyaW5nKHJhd1RoZW1lKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05Xy1dKy9nLCAnLScpO1xuICAgICAgICB0aGVtZSA9IHRoZW1lLnJlcGxhY2UoL14tK3wtKyQvZywgJycpO1xuICAgICAgICByZXR1cm4gdGhlbWUgfHwgJ2NsYXNzaWMnO1xuICAgIH1cbiAgICBnZXREcm9wZG93bkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHRoZW1lID0gdGhpcy5nZXRUaGVtZU5hbWUoKTtcbiAgICAgICAgbGV0IGNsYXNzTmFtZSA9ICd0aGVtZS0nICsgdGhlbWU7XG4gICAgICAgIGlmICh0aGVtZSAhPT0gJ2NsYXNzaWMnICYmIHRoZW1lICE9PSAnbWF0ZXJpYWwnICYmIHRoZW1lICE9PSAnZGFyaycgJiYgdGhlbWUgIT09ICdjdXN0b20nKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyB0aGVtZS1jdXN0b20nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBpcy1vcGVuJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBpcy1kaXNhYmxlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICB9XG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHRoaXMuZGVmYXVsdFNldHRpbmdzLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZ3JvdXBCeSkge1xuICAgICAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMudHJhbnNmb3JtRGF0YSh0aGlzLmRhdGEsIHRoaXMuc2V0dGluZ3MuZ3JvdXBCeSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b3RhbFJvd3MgPSAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5sZW5ndGgpO1xuICAgICAgICB0aGlzLmNhY2hlZEl0ZW1zID0gdGhpcy5kYXRhO1xuICAgICAgICB0aGlzLnNjcmVlbkl0ZW1zTGVuID0gTWF0aC5jZWlsKHRoaXMuc2V0dGluZ3MubWF4SGVpZ2h0IC8gdGhpcy5pdGVtSGVpZ2h0KTtcbiAgICAgICAgdGhpcy5jYWNoZWRJdGVtc0xlbiA9IHRoaXMuc2NyZWVuSXRlbXNMZW4gKiAzO1xuICAgICAgICB0aGlzLnRvdGFsSGVpZ2h0ID0gdGhpcy5pdGVtSGVpZ2h0ICogdGhpcy50b3RhbFJvd3M7XG4gICAgICAgIHRoaXMubWF4QnVmZmVyID0gdGhpcy5zY3JlZW5JdGVtc0xlbiAqIHRoaXMuaXRlbUhlaWdodDtcbiAgICAgICAgdGhpcy5sYXN0U2Nyb2xsZWQgPSAwO1xuICAgICAgICB0aGlzLnJlbmRlckNodW5rKDAsIHRoaXMuY2FjaGVkSXRlbXNMZW4gLyAyKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5kYXRhICYmICFjaGFuZ2VzLmRhdGEuaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5ncm91cEJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMudHJhbnNmb3JtRGF0YSh0aGlzLmRhdGEsIHRoaXMuc2V0dGluZ3MuZ3JvdXBCeSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMuc2V0dGluZ3MgJiYgIWNoYW5nZXMuc2V0dGluZ3MuaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih0aGlzLmRlZmF1bHRTZXR0aW5ncywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PSAwIHx8IHRoaXMuZGF0YS5sZW5ndGggPT0gMCB8fCB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoIDwgdGhpcy5kYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmKHRoaXMuc2V0dGluZ3MubGF6eUxvYWRpbmcpe1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJsYXp5Q29udGFpbmVyXCIpWzBdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25JdGVtQ2xpY2soaXRlbTogTGlzdEl0ZW0sIGluZGV4OiBudW1iZXIsIGV2dDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmb3VuZCA9IHRoaXMuaXNTZWxlY3RlZChpdGVtKTtcbiAgICAgICAgbGV0IGxpbWl0ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA8IHRoaXMuc2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MubGltaXRTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAobGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTZWxlY3RlZChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkU2VsZWN0ZWQoaXRlbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGl0ZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5vbkRlU2VsZWN0LmVtaXQoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RBbGwgfHwgdGhpcy5kYXRhLmxlbmd0aCA+IHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA9PSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpOiBhbnkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW3ZhbHVlWzBdXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBNeUV4Y2VwdGlvbig0MDQsIHsgXCJtc2dcIjogXCJTaW5nbGUgU2VsZWN0aW9uIE1vZGUsIFNlbGVjdGVkIEl0ZW1zIGNhbm5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgaXRlbS5cIiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5ib2R5Lm1zZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5saW1pdFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZS5zcGxpY2UoMCwgdGhpcy5zZXR0aW5ncy5saW1pdFNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IHRoaXMuZGF0YS5sZW5ndGggJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cbiAgICBpc1NlbGVjdGVkKGNsaWNrZWRJdGVtOiBMaXN0SXRlbSkge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGNsaWNrZWRJdGVtLmlkID09PSBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH1cbiAgICBhZGRTZWxlY3RlZChpdGVtOiBMaXN0SXRlbSkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG4gICAgcmVtb3ZlU2VsZWN0ZWQoY2xpY2tlZEl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChjbGlja2VkSXRlbS5pZCA9PT0gaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG4gICAgdG9nZ2xlRHJvcGRvd24oZXZ0OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzQWN0aXZlID0gIXRoaXMuaXNBY3RpdmU7XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZWFyY2hBdXRvZm9jdXMgJiYgdGhpcy5zZXR0aW5ncy5lbmFibGVTZWFyY2hGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9uT3Blbi5lbWl0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBjbG9zZURyb3Bkb3duKCkge1xuICAgICAgICBpZih0aGlzLnNlYXJjaElucHV0KXtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY2FjaGVkSXRlbXM7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSGVpZ2h0ID0gdGhpcy5pdGVtSGVpZ2h0ICogdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMudG90YWxSb3dzID0gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlldyh0aGlzLnNjcm9sbFRvcCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXIgPSBcIlwiO1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25DbG9zZS5lbWl0KGZhbHNlKTtcbiAgICB9XG4gICAgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RBbGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5kYXRhLnNsaWNlKCk7XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0QWxsLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICAgICAgICAgIHRoaXMub25EZVNlbGVjdEFsbC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJhbnNmb3JtRGF0YShhcnI6IEFycmF5PExpc3RJdGVtPiwgZmllbGQ6IGFueSk6IEFycmF5PExpc3RJdGVtPiB7XG4gICAgICAgIGNvbnN0IGdyb3VwZWRPYmo6IGFueSA9IGFyci5yZWR1Y2UoKHByZXY6IGFueSwgY3VyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICghcHJldltjdXJbZmllbGRdXSkge1xuICAgICAgICAgICAgICAgIHByZXZbY3VyW2ZpZWxkXV0gPSBbY3VyXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJldltjdXJbZmllbGRdXS5wdXNoKGN1cik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgfSwge30pO1xuICAgICAgICBjb25zdCB0ZW1wQXJyOiBhbnkgPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXMoZ3JvdXBlZE9iaikubWFwKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICB0ZW1wQXJyLnB1c2goeyBrZXk6IHgsIHZhbHVlOiBncm91cGVkT2JqW3hdIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRlbXBBcnI7XG4gICAgfVxuICAgIHJlbmRlckNodW5rKGZyb21Qb3M6YW55LCBob3dNYW55OmFueSkge1xuICAgICAgICB0aGlzLmNodW5rQXJyYXkgPSBbXTtcbiAgICAgICAgdGhpcy5jaHVua0luZGV4ID0gW107XG4gICAgICAgIHZhciBmaW5hbEl0ZW0gPSBmcm9tUG9zICsgaG93TWFueTtcbiAgICAgICAgaWYgKGZpbmFsSXRlbSA+IHRoaXMudG90YWxSb3dzKVxuICAgICAgICAgICAgZmluYWxJdGVtID0gdGhpcy50b3RhbFJvd3M7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IGZyb21Qb3M7IGkgPCBmaW5hbEl0ZW07IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2h1bmtJbmRleC5wdXNoKChpICogdGhpcy5pdGVtSGVpZ2h0KSArICdweCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2h1bmtBcnJheS5wdXNoKHRoaXMuZGF0YVtpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIG9uU2Nyb2xsKGU6YW55KSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wID0gZS50YXJnZXQuc2Nyb2xsVG9wO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcodGhpcy5zY3JvbGxUb3ApO1xuXG4gICAgfVxuICAgIHB1YmxpYyB1cGRhdGVWaWV3KHNjcm9sbFRvcDphbnkpe1xuICAgICAgICB2YXIgc2Nyb2xsUG9zID0gc2Nyb2xsVG9wID8gc2Nyb2xsVG9wOiAwO1xuICAgICAgICAgdmFyIGZpcnN0ID0gKHNjcm9sbFBvcyAvIHRoaXMuaXRlbUhlaWdodCkgLSB0aGlzLnNjcmVlbkl0ZW1zTGVuO1xuICAgICAgICB2YXIgZmlyc3RUZW1wID0gXCJcIitmaXJzdDtcbiAgICAgICAgZmlyc3QgPSBwYXJzZUludChmaXJzdFRlbXApIDwgMCA/IDAgOiBwYXJzZUludChmaXJzdFRlbXApO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJDaHVuayhmaXJzdCwgdGhpcy5jYWNoZWRJdGVtc0xlbik7XG4gICAgICAgICAgICB0aGlzLmxhc3RSZXBhaW50WSA9IHNjcm9sbFBvcztcbiAgICB9XG4gICAgcHVibGljIGZpbHRlckluZmluaXRlTGlzdChldnQ6IGFueSl7XG4gICAgICAgIHZhciBmaWx0ZXJlZEVsZW1zOkFycmF5PGFueT4gPSBbXTtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5jYWNoZWRJdGVtcy5zbGljZSgpO1xuICAgICAgICBpZihldnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkgIT0gJycpe1xuICAgICAgICAgIHRoaXMuZGF0YS5maWx0ZXIoZnVuY3Rpb24oZWw6YW55KXtcbiAgICAgICAgICAgICAgZm9yKHZhciBwcm9wIGluIGVsKXtcbiAgICAgICAgICAgICAgICAgIGlmKGVsW3Byb3BdLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGV2dC50YXJnZXQudmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSA+PTAgKXtcbiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZEVsZW1zLnB1c2goZWwpO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgICAvL3RoaXMuY2FjaGVkSXRlbXMgPSB0aGlzLmRhdGE7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSGVpZ2h0ID0gdGhpcy5pdGVtSGVpZ2h0ICogZmlsdGVyZWRFbGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnRvdGFsUm93cyA9IGZpbHRlcmVkRWxlbXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBmaWx0ZXJlZEVsZW1zO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3KHRoaXMuc2Nyb2xsVG9wKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKGV2dC50YXJnZXQudmFsdWUudG9TdHJpbmcoKSA9PSAnJyAmJiB0aGlzLmNhY2hlZEl0ZW1zLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmNhY2hlZEl0ZW1zO1xuICAgICAgICAgICAgdGhpcy50b3RhbEhlaWdodCA9IHRoaXMuaXRlbUhlaWdodCAqIHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnRvdGFsUm93cyA9IHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcodGhpcy5zY3JvbGxUb3ApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtBbmd1bGFyTXVsdGlTZWxlY3QsIENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgU2Nyb2xsRGlyZWN0aXZlLCBzdHlsZURpcmVjdGl2ZSwgTGlzdEZpbHRlclBpcGUsIEl0ZW0sIFRlbXBsYXRlUmVuZGVyZXIsIEJhZGdlXSxcbiAgICBleHBvcnRzOiBbQW5ndWxhck11bHRpU2VsZWN0LCBDbGlja091dHNpZGVEaXJlY3RpdmUsIFNjcm9sbERpcmVjdGl2ZSwgc3R5bGVEaXJlY3RpdmUsIExpc3RGaWx0ZXJQaXBlLCBJdGVtLCBUZW1wbGF0ZVJlbmRlcmVyLCBCYWRnZV1cbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhck11bHRpU2VsZWN0TW9kdWxlIHsgfVxuIl19
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQStDLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUMzTixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUF3QixhQUFhLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBWSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFFNUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDaEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFRO0lBQzVDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFBO0FBQ0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FB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d0JBQXdCO3VIQUF4Qix3QkFBd0IsaUJBdFh4QixrQkFBa0IsRUFtWFEscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssYUFEOUgsWUFBWSxFQUFFLFdBQVcsYUFsWDFCLGtCQUFrQixFQW9YRyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSzt1SEFFMUgsd0JBQXdCLFlBSnZCLFlBQVksRUFBRSxXQUFXOzRGQUkxQix3QkFBd0I7a0JBTHBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQztvQkFDekksT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQztpQkFDdkkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgTmdNb2R1bGUsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24sIENvbnRlbnRDaGlsZCwgVmlld0NoaWxkLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTGlzdEl0ZW0sIE15RXhjZXB0aW9uIH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBEcm9wZG93blNldHRpbmdzIH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBTY3JvbGxEaXJlY3RpdmUsIHN0eWxlRGlyZWN0aXZlIH0gZnJvbSAnLi9jbGlja091dHNpZGUnO1xuaW1wb3J0IHsgTGlzdEZpbHRlclBpcGUgfSBmcm9tICcuL2xpc3QtZmlsdGVyJztcbmltcG9ydCB7IEl0ZW0sIEJhZGdlLCBUZW1wbGF0ZVJlbmRlcmVyIH0gZnJvbSAnLi9tZW51LWl0ZW0nO1xuXG5leHBvcnQgY29uc3QgRFJPUERPV05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFuZ3VsYXJNdWx0aVNlbGVjdCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5leHBvcnQgY29uc3QgRFJPUERPV05fQ09OVFJPTF9WQUxJREFUSU9OOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTXVsdGlTZWxlY3QpLFxuICAgIG11bHRpOiB0cnVlLFxufVxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYW5ndWxhci1tdWx0aXNlbGVjdCwgYW5ndWxhcjItbXVsdGlzZWxlY3QnLFxuICAgIHRlbXBsYXRlOiBcIjxkaXYgY2xhc3M9XFxcInN0YWNrbGluZS1kcm9wZG93blxcXCIgW25nQ2xhc3NdPVxcXCJnZXREcm9wZG93bkNsYXNzZXMoKVxcXCIgKGNsaWNrT3V0c2lkZSk9XFxcImNsb3NlRHJvcGRvd24oKVxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInNlbGVjdGVkLWxpc3RcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiYy1idG5cXFwiIChjbGljayk9XFxcInRvZ2dsZURyb3Bkb3duKCRldmVudClcXFwiIFtuZ0NsYXNzXT1cXFwieydkaXNhYmxlZCc6IHNldHRpbmdzLmRpc2FibGVkfVxcXCI+XFxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XFxcInNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA9PSAwXFxcIj57e3NldHRpbmdzLnRleHR9fTwvc3Bhbj5cXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cXFwic2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uXFxcIj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zO3RyYWNrQnk6IHRyYWNrQnlGbjtcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtW3NldHRpbmdzLmxhYmVsS2V5XX19XFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYy1saXN0XFxcIiAqbmdJZj1cXFwic2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID4gMCAmJiAhc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uXFxcIj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYy10b2tlblxcXCIgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zO3RyYWNrQnk6IHRyYWNrQnlGbjtsZXQgayA9IGluZGV4XFxcIiBbaGlkZGVuXT1cXFwiayA+IHNldHRpbmdzLmJhZGdlU2hvd0xpbWl0LTFcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XFxcIiFiYWRnZVRlbXBsXFxcIiBjbGFzcz1cXFwiYy1sYWJlbFxcXCI+e3tpdGVtW3NldHRpbmdzLmxhYmVsS2V5XX19PC9zcGFuPlxcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XFxcImJhZGdlVGVtcGxcXFwiIGNsYXNzPVxcXCJjLWxhYmVsXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yy10ZW1wbGF0ZVJlbmRlcmVyIFtkYXRhXT1cXFwiYmFkZ2VUZW1wbFxcXCIgW2l0ZW1dPVxcXCJpdGVtXFxcIj48L2MtdGVtcGxhdGVSZW5kZXJlcj5cXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmYSBmYS1yZW1vdmVcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saywkZXZlbnQpXFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PiBcXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiY291bnRwbGFjZWhvbGRlclxcXCIgKm5nSWY9XFxcInNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA+IHNldHRpbmdzLmJhZGdlU2hvd0xpbWl0XFxcIj4re3tzZWxlY3RlZEl0ZW1zPy5sZW5ndGggLSBzZXR0aW5ncy5iYWRnZVNob3dMaW1pdCB9fTwvc3Bhbj5cXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZmFcXFwiIFtuZ0NsYXNzXT1cXFwieydmYS1hbmdsZS1kb3duJzogIWlzQWN0aXZlLCdmYS1hbmdsZS11cCc6aXNBY3RpdmV9XFxcIj48L3NwYW4+XFxuICAgICAgICA8L2Rpdj4gICAgICBcXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImRyb3Bkb3duLWxpc3RcXFwiIFtoaWRkZW5dPVxcXCIhaXNBY3RpdmVcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJhcnJvdy11cCBhcnJvdy0yXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYXJyb3ctdXBcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJsaXN0LWFyZWFcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwicHVyZS1jaGVja2JveCBzZWxlY3QtYWxsXFxcIiAqbmdJZj1cXFwic2V0dGluZ3MuZW5hYmxlQ2hlY2tBbGwgJiYgIXNldHRpbmdzLnNpbmdsZVNlbGVjdGlvbiAmJiAhc2V0dGluZ3MubGltaXRTZWxlY3Rpb25cXFwiIChjbGljayk9XFxcInRvZ2dsZVNlbGVjdEFsbCgpXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RBbGxcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aFxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD5cXG4gICAgICAgICAgICAgICAgPHNwYW4gW2hpZGRlbl09XFxcImlzU2VsZWN0QWxsXFxcIj57e3NldHRpbmdzLnNlbGVjdEFsbFRleHR9fTwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gW2hpZGRlbl09XFxcIiFpc1NlbGVjdEFsbFxcXCI+e3tzZXR0aW5ncy51blNlbGVjdEFsbFRleHR9fTwvc3Bhbj5cXG4gICAgICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPC9kaXY+ICAgXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJsaXN0LWZpbHRlclxcXCIgKm5nSWY9XFxcInNldHRpbmdzLmVuYWJsZVNlYXJjaEZpbHRlciAmJiAhc2V0dGluZ3MubGF6eUxvYWRpbmdcXFwiPlxcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmYSBmYS1zZWFyY2hcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XFxcInRleHRcXFwiIFtwbGFjZWhvbGRlcl09XFxcInNldHRpbmdzLnNlYXJjaFBsYWNlaG9sZGVyVGV4dFxcXCIgWyhuZ01vZGVsKV09XFxcImZpbHRlclxcXCI+XFxuICAgICAgICA8L2Rpdj4gXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJsaXN0LWZpbHRlclxcXCIgKm5nSWY9XFxcInNldHRpbmdzLmVuYWJsZVNlYXJjaEZpbHRlciAmJiBzZXR0aW5ncy5sYXp5TG9hZGluZ1xcXCI+XFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZhIGZhLXNlYXJjaFxcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgIDxpbnB1dCAjc2VhcmNoSW5wdXQgdHlwZT1cXFwidGV4dFxcXCIgW3BsYWNlaG9sZGVyXT1cXFwic2V0dGluZ3Muc2VhcmNoUGxhY2Vob2xkZXJUZXh0XFxcIiAoa2V5dXApPVxcXCJmaWx0ZXJJbmZpbml0ZUxpc3QoJGV2ZW50KVxcXCI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPHVsICpuZ0lmPVxcXCIhc2V0dGluZ3MuZ3JvdXBCeVxcXCIgW3N0eWxlLm1heEhlaWdodF0gPSBcXFwic2V0dGluZ3MubWF4SGVpZ2h0KydweCdcXFwiIGNsYXNzPVxcXCJsYXp5Q29udGFpbmVyXFxcIiA+XFxuICAgICAgICA8c3BhbiAqbmdJZj1cXFwiaXRlbVRlbXBsXFxcIj5cXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBkYXRhIHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgY2xhc3M9XFxcInB1cmUtY2hlY2tib3hcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdGVkKGl0ZW0pXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWlzU2VsZWN0ZWQoaXRlbSlcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+PC9sYWJlbD5cXG4gICAgICAgICAgICA8Yy10ZW1wbGF0ZVJlbmRlcmVyIFtkYXRhXT1cXFwiaXRlbVRlbXBsXFxcIiBbaXRlbV09XFxcIml0ZW1cXFwiPjwvYy10ZW1wbGF0ZVJlbmRlcmVyPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDxzcGFuICpuZ0lmPVxcXCIhaXRlbVRlbXBsICYmICFzZXR0aW5ncy5sYXp5TG9hZGluZ1xcXCIgPlxcbiAgICAgICAgPGxpICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2YgZGF0YSB8IGxpc3RGaWx0ZXI6ZmlsdGVyOyBsZXQgaSA9IGluZGV4O1xcXCIgKGNsaWNrKT1cXFwib25JdGVtQ2xpY2soaXRlbSxpLCRldmVudClcXFwiIGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94XFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RlZChpdGVtKVxcXCIgW2Rpc2FibGVkXT1cXFwic2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT0gc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFpc1NlbGVjdGVkKGl0ZW0pXFxcIi8+XFxuICAgICAgICAgICAgPGxhYmVsPnt7aXRlbVtzZXR0aW5ncy5sYWJlbEtleV19fTwvbGFiZWw+XFxuICAgICAgICA8L2xpPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgPHNwYW4gKm5nSWY9XFxcIiFpdGVtVGVtcGwgJiYgc2V0dGluZ3MubGF6eUxvYWRpbmdcXFwiID5cXG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cXFwieydoZWlnaHQnOnRvdGFsSGVpZ2h0KydweCd9XFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+XFxuXFxuICAgICAgICAgICAgXFxuICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBjaHVua0FycmF5IHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDogMTAwJTtcXFwiIGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94XFxcIiBbc3R5bGVQcm9wXT1cXFwiY2h1bmtJbmRleFtpXVxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0ZWQoaXRlbSlcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhaXNTZWxlY3RlZChpdGVtKVxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD57e2l0ZW1bc2V0dGluZ3MubGFiZWxLZXldfX08L2xhYmVsPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICA8L3VsPlxcbiAgICA8ZGl2ICpuZ0lmPVxcXCJzZXR0aW5ncy5ncm91cEJ5XFxcIiBbc3R5bGUubWF4SGVpZ2h0XSA9IFxcXCJzZXR0aW5ncy5tYXhIZWlnaHQrJ3B4J1xcXCIgc3R5bGU9XFxcIm92ZXJmbG93OiBhdXRvO1xcXCI+XFxuICAgIDx1bCAqbmdGb3I9XFxcImxldCBvYmogb2YgZ3JvdXBlZERhdGEgOyBsZXQgaSA9IGluZGV4O1xcXCIgY2xhc3M9XFxcImxpc3QtZ3JwXFxcIj5cXG4gICAgICAgIDxoNCAqbmdJZj1cXFwiKG9iai52YWx1ZSB8IGxpc3RGaWx0ZXI6ZmlsdGVyICkubGVuZ3RoID4gMFxcXCI+e3tvYmoua2V5fX08L2g0PlxcbiAgICAgICAgPHNwYW4gKm5nSWY9XFxcIml0ZW1UZW1wbFxcXCIgPlxcbiAgICAgICAgPGxpICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2Ygb2JqLnZhbHVlIHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgY2xhc3M9XFxcInB1cmUtY2hlY2tib3hcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdGVkKGl0ZW0pXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWlzU2VsZWN0ZWQoaXRlbSlcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+PC9sYWJlbD5cXG4gICAgICAgICAgICA8Yy10ZW1wbGF0ZVJlbmRlcmVyIFtkYXRhXT1cXFwiaXRlbVRlbXBsXFxcIiBbaXRlbV09XFxcIml0ZW1cXFwiPjwvYy10ZW1wbGF0ZVJlbmRlcmVyPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDxzcGFuICpuZ0lmPVxcXCIhaXRlbVRlbXBsXFxcIiA+XFxuICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBvYmoudmFsdWUgfCBsaXN0RmlsdGVyOmZpbHRlcjsgbGV0IGkgPSBpbmRleDtcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saSwkZXZlbnQpXFxcIiBjbGFzcz1cXFwicHVyZS1jaGVja2JveFxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0ZWQoaXRlbSlcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhaXNTZWxlY3RlZChpdGVtKVxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD57e2l0ZW1bc2V0dGluZ3MubGFiZWxLZXldfX08L2xhYmVsPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgPC91bD5cXG4gICAgPC9kaXY+XFxuICAgIDxoNSBjbGFzcz1cXFwibGlzdC1tZXNzYWdlXFxcIiAqbmdJZj1cXFwiZGF0YT8ubGVuZ3RoID09IDBcXFwiPnt7c2V0dGluZ3Mubm9EYXRhTGFiZWx9fTwvaDU+XFxuICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG5cIixcbiAgICBob3N0OiB7ICdbY2xhc3NdJzogJ2RlZmF1bHRTZXR0aW5ncy5jbGFzc2VzJyB9LFxuICAgIHN0eWxlczogW1wiLnN0YWNrbGluZS1kcm9wZG93biB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbi5jLWJ0biB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGNvbG9yOiAjMzMzO1xcbn1cXG5cXG4uYy1idG4uZGlzYWJsZWQge1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuXFxuLmMtYnRuOmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcblxcbi5zZWxlY3RlZC1saXN0IC5jLWxpc3Qge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXg6IDEgMSBhdXRvO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZsZXgtd3JhcDogd3JhcDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIGZsb2F0OiBub25lO1xcbiAgcGFkZGluZzogMHB4O1xcbiAgbWFyZ2luOiAwcHg7XFxuICB3aWR0aDogYXV0bztcXG59XFxuLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiB7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgcGFkZGluZzogMHB4IDVweDtcXG4gIGJhY2tncm91bmQ6ICMwMDc5RkU7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgbWFyZ2luLXRvcDogMnB4O1xcbiAgZmxvYXQ6IGxlZnQ7XFxufVxcbi5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmMtbGFiZWwge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmbG9hdDogbGVmdDtcXG4gIC8qd2lkdGg6IDUwcHg7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICBvdmVyZmxvdzogaGlkZGVuOyovXFxufVxcbi5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmZhLXJlbW92ZSB7XFxuICBtYXJnaW4tbGVmdDogMXB4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtZG93biwgLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLXVwIHtcXG4gIGZvbnQtc2l6ZTogMTVwdDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAxMHB4O1xcbiAgdG9wOiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcbi5zZWxlY3RlZC1saXN0IC5jb3VudHBsYWNlaG9sZGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgZmxleDogMCAwIGF1dG87XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XFxuICBtYXJnaW46IDAgMCAwIDZweDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuYy1idG4ge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYm94LXNoYWRvdzogMHB4IDFweCA1cHggIzk1OTU5NTtcXG4gIHBhZGRpbmc6IDEwcHggMzZweCAxMHB4IDEwcHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uZHJvcGRvd24tbGlzdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBwYWRkaW5nLXRvcDogMTRweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgei1pbmRleDogOTk5OTtcXG59XFxuLmRyb3Bkb3duLWxpc3QgdWwge1xcbiAgcGFkZGluZzogMHB4O1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgbWFyZ2luOiAwcHg7XFxufVxcbi5kcm9wZG93bi1saXN0IHVsIGxpIHtcXG4gIHBhZGRpbmc6IDEwcHggMTBweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi5kcm9wZG93bi1saXN0IHVsIGxpOmZpcnN0LWNoaWxkIHtcXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xcbn1cXG4uZHJvcGRvd24tbGlzdCB1bCBsaTpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbn1cXG4uZHJvcGRvd24tbGlzdCB1bCBsaTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xcbn1cXG4uZHJvcGRvd24tbGlzdCA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXG4gIHdpZHRoOiA4cHg7XFxufVxcbi5kcm9wZG93bi1saXN0IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgYmFja2dyb3VuZDogI2NjY2NjYztcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG59XFxuLmRyb3Bkb3duLWxpc3QgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XFxuICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xcbn1cXG5cXG4uYXJyb3ctdXAge1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXItbGVmdDogMTNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yaWdodDogMTNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgI2ZmZjtcXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbn1cXG5cXG4uYXJyb3ctMiB7XFxuICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICNjY2M7XFxuICB0b3A6IC0xcHg7XFxufVxcblxcbi5saXN0LWFyZWEge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBtYXJnaW46IDBweDtcXG4gIGJveC1zaGFkb3c6IDBweCAxcHggNXB4ICM5NTk1OTU7XFxufVxcblxcbi5zZWxlY3QtYWxsIHtcXG4gIHBhZGRpbmc6IDEwcHg7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcblxcbi5saXN0LWZpbHRlciB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmxpc3QtZmlsdGVyIGlucHV0IHtcXG4gIGJvcmRlcjogMHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDM1cHg7XFxuICBwYWRkaW5nOiAwcHggMHB4IDBweCAzNXB4O1xcbn1cXG4ubGlzdC1maWx0ZXIgaW5wdXQ6Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZTtcXG59XFxuLmxpc3QtZmlsdGVyIC5mYSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDEwcHg7XFxuICBsZWZ0OiAxM3B4O1xcbiAgY29sb3I6ICM4ODg7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcXG4gIGJvcmRlcjogMDtcXG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XFxuICBoZWlnaHQ6IDFweDtcXG4gIG1hcmdpbjogLTFweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwYWRkaW5nOiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDFweDtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgKyBsYWJlbDpiZWZvcmUsXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIgKyBsYWJlbDpiZWZvcmUge1xcbiAgYm9yZGVyLWNvbG9yOiAjMDA3OUZFO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06YWN0aXZlICsgbGFiZWw6YmVmb3JlIHtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctbGVmdDogMmVtO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgbWFyZ2luOiAwcHg7XFxuICBjb2xvcjogIzAwMDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBjb2xvcjogIzAwNzlGRTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgaGVpZ2h0OiAxNHB4O1xcbiAgbWFyZ2luLXRvcDogLTlweDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDc5RkU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmFmdGVyIHtcXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OUZFO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA0cHg7XFxuICB3aWR0aDogMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIG1hcmdpbi10b3A6IC01cHg7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0O1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBib3JkZXItY29sb3I6ICNjY2NjY2M7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmZvY3VzICsgbGFiZWw6YmVmb3JlIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmhvdmVyICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogNHB4O1xcbiAgd2lkdGg6IDhweDtcXG4gIGhlaWdodDogM3B4O1xcbiAgbWFyZ2luLXRvcDogLTRweDtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItY29sb3I6ICNmZmZmZmY7XFxuICBib3JkZXItd2lkdGg6IDAgMCAzcHggM3B4O1xcbiAgYm9yZGVyLWltYWdlOiBub25lO1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9cmFkaW9dICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kOiAjMDA3OUZFO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcXG59XFxuXFxuLmxpc3QtbWVzc2FnZSB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcblxcbi5saXN0LWdycCB7XFxuICBwYWRkaW5nOiAwIDE1cHggIWltcG9ydGFudDtcXG59XFxuXFxuLmxpc3QtZ3JwIGg0IHtcXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xcbiAgbWFyZ2luOiAxNXB4IDBweCAwcHggMHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuXFxuLmxpc3QtZ3JwID4gbGkge1xcbiAgcGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIHtcXG4gIC0tbXMtcHJpbWFyeTogIzNmNTFiNTtcXG4gIC0tbXMtcHJpbWFyeS1zb2Z0OiByZ2JhKDYzLCA4MSwgMTgxLCAwLjEyKTtcXG4gIC0tbXMtc3VyZmFjZTogI2ZmZmZmZjtcXG4gIC0tbXMtc3VyZmFjZS1zb2Z0OiAjZjVmN2ZiO1xcbiAgLS1tcy1zdXJmYWNlLW11dGVkOiAjZThlYWY2O1xcbiAgLS1tcy1vdXRsaW5lOiAjYzVjYWU5O1xcbiAgLS1tcy1vdXRsaW5lLXN0cm9uZzogIzc5ODZjYjtcXG4gIC0tbXMtb24tc3VyZmFjZTogIzIxMjEyMTtcXG4gIC0tbXMtb24tc3VyZmFjZS1tdXRlZDogIzVmNjM2ODtcXG4gIC0tbXMtY2hpcC1iZzogI2U4ZWFmNjtcXG4gIC0tbXMtY2hpcC10ZXh0OiAjMzAzZjlmO1xcbiAgLS1tcy1jaGlwLXJlbW92ZTogIzMwM2Y5ZjtcXG4gIC0tbXMtZGl2aWRlcjogcmdiYSgxMjUsIDExOSwgMTM0LCAwLjE2KTtcXG4gIC0tbXMtc2VjdGlvbi1iZzogcmdiYSgyNDcsIDI0MiwgMjUwLCAwLjc2KTtcXG4gIC0tbXMtc2VsZWN0ZWQtdGV4dDogdmFyKC0tbXMtcHJpbWFyeSk7XFxuICAtLW1zLXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMzMsIDMzLCAzMywgMC4xNiksIDAgMTJweCAzMnB4IHJnYmEoNjMsIDgxLCAxODEsIDAuMTIpO1xcbiAgLS1tcy1zaGFkb3ctc29mdDogMCAxcHggMnB4IHJnYmEoMzMsIDMzLCAzMywgMC4xMiksIDAgNHB4IDEycHggcmdiYSgzMywgMzMsIDMzLCAwLjA4KTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZSk7XFxuICBmb250OiBpbmhlcml0O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsge1xcbiAgLS1tcy1wcmltYXJ5OiAjOGFiNGY4O1xcbiAgLS1tcy1wcmltYXJ5LXNvZnQ6IHJnYmEoMTM4LCAxODAsIDI0OCwgMC4xOCk7XFxuICAtLW1zLXN1cmZhY2U6ICMxNTFhMjM7XFxuICAtLW1zLXN1cmZhY2Utc29mdDogIzIwMjczNjtcXG4gIC0tbXMtc3VyZmFjZS1tdXRlZDogIzExMTcyMjtcXG4gIC0tbXMtb3V0bGluZTogIzM4NDQ1NjtcXG4gIC0tbXMtb3V0bGluZS1zdHJvbmc6ICM4YWI0Zjg7XFxuICAtLW1zLW9uLXN1cmZhY2U6ICNlZGYyZjc7XFxuICAtLW1zLW9uLXN1cmZhY2UtbXV0ZWQ6ICNhYWI2YzU7XFxuICAtLW1zLWNoaXAtYmc6ICMyNjMyNDc7XFxuICAtLW1zLWNoaXAtdGV4dDogI2Q3ZTZmZjtcXG4gIC0tbXMtY2hpcC1yZW1vdmU6ICNkN2U2ZmY7XFxuICAtLW1zLWRpdmlkZXI6IHJnYmEoMTcwLCAxODIsIDE5NywgMC4xOCk7XFxuICAtLW1zLXNlY3Rpb24tYmc6ICMxMDE2MjA7XFxuICAtLW1zLXNlbGVjdGVkLXRleHQ6ICNkN2U2ZmY7XFxuICAtLW1zLXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjQyKTtcXG4gIC0tbXMtc2hhZG93LXNvZnQ6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNDUpLCAwIDEwcHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMjgpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSB7XFxuICAtLW1zLXByaW1hcnk6IHZhcigtLXN0YWNrbGluZS1tcy1wcmltYXJ5LCAjMGY3NjZlKTtcXG4gIC0tbXMtcHJpbWFyeS1zb2Z0OiB2YXIoLS1zdGFja2xpbmUtbXMtcHJpbWFyeS1zb2Z0LCByZ2JhKDE1LCAxMTgsIDExMCwgMC4xNCkpO1xcbiAgLS1tcy1zdXJmYWNlOiB2YXIoLS1zdGFja2xpbmUtbXMtc3VyZmFjZSwgI2ZmZmZmZik7XFxuICAtLW1zLXN1cmZhY2Utc29mdDogdmFyKC0tc3RhY2tsaW5lLW1zLXN1cmZhY2Utc29mdCwgI2VjZmRmNSk7XFxuICAtLW1zLXN1cmZhY2UtbXV0ZWQ6IHZhcigtLXN0YWNrbGluZS1tcy1zdXJmYWNlLW11dGVkLCAjZDFmYWU1KTtcXG4gIC0tbXMtb3V0bGluZTogdmFyKC0tc3RhY2tsaW5lLW1zLW91dGxpbmUsICM5OWY2ZTQpO1xcbiAgLS1tcy1vdXRsaW5lLXN0cm9uZzogdmFyKC0tc3RhY2tsaW5lLW1zLW91dGxpbmUtc3Ryb25nLCAjMGY3NjZlKTtcXG4gIC0tbXMtb24tc3VyZmFjZTogdmFyKC0tc3RhY2tsaW5lLW1zLW9uLXN1cmZhY2UsICMxMDJhMmEpO1xcbiAgLS1tcy1vbi1zdXJmYWNlLW11dGVkOiB2YXIoLS1zdGFja2xpbmUtbXMtb24tc3VyZmFjZS1tdXRlZCwgIzQ3NjE1Zik7XFxuICAtLW1zLWNoaXAtYmc6IHZhcigtLXN0YWNrbGluZS1tcy1jaGlwLWJnLCAjY2NmYmYxKTtcXG4gIC0tbXMtY2hpcC10ZXh0OiB2YXIoLS1zdGFja2xpbmUtbXMtY2hpcC10ZXh0LCAjMTE1ZTU5KTtcXG4gIC0tbXMtY2hpcC1yZW1vdmU6IHZhcigtLXN0YWNrbGluZS1tcy1jaGlwLXJlbW92ZSwgIzExNWU1OSk7XFxuICAtLW1zLWRpdmlkZXI6IHZhcigtLXN0YWNrbGluZS1tcy1kaXZpZGVyLCByZ2JhKDE1LCAxMTgsIDExMCwgMC4xNikpO1xcbiAgLS1tcy1zZWN0aW9uLWJnOiB2YXIoLS1zdGFja2xpbmUtbXMtc2VjdGlvbi1iZywgI2YwZmRmYSk7XFxuICAtLW1zLXNlbGVjdGVkLXRleHQ6IHZhcigtLXN0YWNrbGluZS1tcy1zZWxlY3RlZC10ZXh0LCB2YXIoLS1tcy1wcmltYXJ5KSk7XFxuICAtLW1zLXNoYWRvdzogdmFyKC0tc3RhY2tsaW5lLW1zLXNoYWRvdywgMCAxOHB4IDQycHggcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTUpKTtcXG4gIC0tbXMtc2hhZG93LXNvZnQ6IHZhcigtLXN0YWNrbGluZS1tcy1zaGFkb3ctc29mdCwgMCAxcHggMnB4IHJnYmEoMTUsIDExOCwgMTEwLCAwLjE2KSwgMCA4cHggMThweCByZ2JhKDE1LCAxMTgsIDExMCwgMC4wOSkpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1idG4sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWJ0bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1idG4ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gIGdhcDogOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbiAgcGFkZGluZzogMTFweCA1NHB4IDExcHggMTZweDtcXG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tcy1vdXRsaW5lKTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2UpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tbXMtc2hhZG93LXNvZnQpO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UpO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNnMgZWFzZSwgYm94LXNoYWRvdyAwLjE2cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTZzIGVhc2UsIHRyYW5zZm9ybSAwLjE2cyBlYXNlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWJ0bjpob3ZlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtYnRuOmhvdmVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWJ0bjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW1zLW91dGxpbmUtc3Ryb25nKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1idG4uZGlzYWJsZWQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWJ0bi5kaXNhYmxlZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1idG4uZGlzYWJsZWQge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZSk7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgb3BhY2l0eTogMC43MjtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWxpc3Qge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXg6IDEgMSBhdXRvO1xcbiAgZmxleC13cmFwOiB3cmFwO1xcbiAgZ2FwOiA4cHg7XFxuICB3aWR0aDogYXV0bztcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBmbG9hdDogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIG1pbi1oZWlnaHQ6IDMycHg7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiA2cHggMzBweCA2cHggMTJweDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLWNoaXAtYmcpO1xcbiAgY29sb3I6IHZhcigtLW1zLWNoaXAtdGV4dCk7XFxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEwMywgODAsIDE2NCwgMC4wOCk7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcXG4gIG1hcmdpbjogMDtcXG4gIGZsb2F0OiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmMtbGFiZWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmMtbGFiZWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuYy1sYWJlbCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbG9hdDogbm9uZTtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmZhLXJlbW92ZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuZmEtcmVtb3ZlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmZhLXJlbW92ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMTBweDtcXG4gIHRvcDogNTAlO1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgY29sb3I6IHZhcigtLW1zLWNoaXAtcmVtb3ZlKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuY291bnRwbGFjZWhvbGRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmNvdW50cGxhY2Vob2xkZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmNvdW50cGxhY2Vob2xkZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBmbGV4OiAwIDAgYXV0bztcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcXG4gIG1hcmdpbjogMDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICBmb250LXdlaWdodDogNjAwO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS1kb3duLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS11cCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLXVwLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS11cCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIHJpZ2h0OiAxNnB4O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlLW11dGVkKTtcXG4gIGZvbnQtc2l6ZTogMTVwdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxuICB6LWluZGV4OiA5OTk5OTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuYXJyb3ctdXAsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5hcnJvdy11cCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuYXJyb3ctdXAsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuYXJyb3ctZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmFycm93LWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmFycm93LWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuYXJyb3ctMixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmFycm93LTIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmFycm93LTIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1hcmVhLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1hcmVhLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWFyZWEge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IDIycHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlKTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zLW91dGxpbmUpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tbXMtc2hhZG93KTtcXG4gIG1hcmdpbjogMDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0LWFsbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdC1hbGwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdC1hbGwge1xcbiAgcGFkZGluZzogMTBweCAxNHB4O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zLWRpdmlkZXIpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc2VjdGlvbi1iZyk7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtZmlsdGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIG1pbi1oZWlnaHQ6IDUycHg7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NHB4O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zLWRpdmlkZXIpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZSk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtZmlsdGVyIGlucHV0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1maWx0ZXIgaW5wdXQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtZmlsdGVyIGlucHV0IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZSk7XFxuICBmb250OiBpbmhlcml0O1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1maWx0ZXIgaW5wdXQ6OnBsYWNlaG9sZGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1maWx0ZXIgaW5wdXQ6OnBsYWNlaG9sZGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciBpbnB1dDo6cGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlciBpbnB1dDpmb2N1cyxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtZmlsdGVyIGlucHV0OmZvY3VzLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciBpbnB1dDpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlciAuZmEsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LWZpbHRlciAuZmEsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtZmlsdGVyIC5mYSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDE2cHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHdpZHRoOiAxOHB4O1xcbiAgaGVpZ2h0OiAxOHB4O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0IHVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB1bCB7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QgdWwgbGksXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0IHVsIGxpLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIGxpIHtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgbWFyZ2luOiA0cHg7XFxuICBwYWRkaW5nOiAxMnB4IDE0cHg7XFxuICBib3JkZXItcmFkaXVzOiAxNHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE2cyBlYXNlLCBjb2xvciAwLjE2cyBlYXNlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0IHVsIGxpOmZpcnN0LWNoaWxkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCBsaTpmaXJzdC1jaGlsZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB1bCBsaTpmaXJzdC1jaGlsZCB7XFxuICBwYWRkaW5nLXRvcDogMTJweDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuZHJvcGRvd24tbGlzdCB1bCBsaTpsYXN0LWNoaWxkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCBsaTpsYXN0LWNoaWxkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIGxpOmxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QgdWwgbGk6aG92ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0IHVsIGxpOmhvdmVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIGxpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2Utc29mdCk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3gsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmctbGVmdDogMzJweDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmJlZm9yZSB7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDE2cHg7XFxuICBoZWlnaHQ6IDE2cHg7XFxuICBtYXJnaW4tdG9wOiAtMTBweDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLW1zLW91dGxpbmUtc3Ryb25nKTtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2UpO1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTZzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xNnMgZWFzZSwgYm94LXNoYWRvdyAwLjE2cyBlYXNlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YWZ0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YWZ0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDphZnRlciB7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1cHg7XFxuICB3aWR0aDogOHB4O1xcbiAgaGVpZ2h0OiAzcHg7XFxuICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcXG4gIGJvcmRlci13aWR0aDogMCAwIDNweCAzcHg7XFxuICBib3JkZXItaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNnMgZWFzZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpob3ZlciArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIgKyBsYWJlbDpiZWZvcmUge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tcy1wcmltYXJ5KTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2Utc29mdCk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbXMtcHJpbWFyeSk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1wcmltYXJ5KTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1tZXNzYWdlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1tZXNzYWdlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LW1lc3NhZ2Uge1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMjBweCAxNHB4O1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cIl0sXG4gICAgcHJvdmlkZXJzOiBbRFJPUERPV05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiwgRFJPUERPV05fQ09OVFJPTF9WQUxJREFUSU9OXVxufSlcblxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNdWx0aVNlbGVjdCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgVmFsaWRhdG9yIHtcblxuICAgIEBJbnB1dCgpXG4gICAgZGF0YTogQXJyYXk8TGlzdEl0ZW0+O1xuXG4gICAgQElucHV0KClcbiAgICBzZXR0aW5nczogRHJvcGRvd25TZXR0aW5ncztcblxuICAgIEBPdXRwdXQoJ29uU2VsZWN0JylcbiAgICBvblNlbGVjdDogRXZlbnRFbWl0dGVyPExpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+KCk7XG5cbiAgICBAT3V0cHV0KCdvbkRlU2VsZWN0JylcbiAgICBvbkRlU2VsZWN0OiBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcblxuICAgIEBPdXRwdXQoJ29uU2VsZWN0QWxsJylcbiAgICBvblNlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4oKTtcblxuICAgIEBPdXRwdXQoJ29uRGVTZWxlY3RBbGwnKVxuICAgIG9uRGVTZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+KCk7XG5cbiAgICBAT3V0cHV0KCdvbk9wZW4nKVxuICAgIG9uT3BlbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoJ29uQ2xvc2UnKVxuICAgIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKEl0ZW0sIHsgc3RhdGljOiBmYWxzZSB9KSBpdGVtVGVtcGw6IEl0ZW07XG4gICAgQENvbnRlbnRDaGlsZChCYWRnZSwgeyBzdGF0aWM6IGZhbHNlIH0pIGJhZGdlVGVtcGw6IEJhZGdlO1xuXG5cbiAgICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBBcnJheTxMaXN0SXRlbT47XG4gICAgcHVibGljIGlzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzU2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGdyb3VwZWREYXRhOiBBcnJheTxMaXN0SXRlbT47XG4gICAgZmlsdGVyOiBhbnk7XG4gICAgcHVibGljIGNodW5rQXJyYXk6YW55W107XG4gICAgcHVibGljIHNjcm9sbFRvcDphbnk7XG4gICAgcHVibGljIGNodW5rSW5kZXg6YW55W10gPSBbXTtcbiAgICBwdWJsaWMgY2FjaGVkSXRlbXM6YW55W10gPSBbXTtcbiAgICBwdWJsaWMgdG90YWxSb3dzOmFueTtcbiAgICBwdWJsaWMgaXRlbUhlaWdodDphbnkgPSA0MS42O1xuICAgIHB1YmxpYyBzY3JlZW5JdGVtc0xlbjphbnk7XG4gICAgcHVibGljIGNhY2hlZEl0ZW1zTGVuOmFueTtcbiAgICBwdWJsaWMgdG90YWxIZWlnaHQ6IGFueTtcbiAgICBwdWJsaWMgc2Nyb2xsZXI6YW55O1xuICAgIHB1YmxpYyBtYXhCdWZmZXI6YW55O1xuICAgIHB1YmxpYyBsYXN0U2Nyb2xsZWQ6YW55O1xuICAgIHB1YmxpYyBsYXN0UmVwYWludFk6IGFueTtcblxuICAgIGRlZmF1bHRTZXR0aW5nczogRHJvcGRvd25TZXR0aW5ncyA9IHtcbiAgICAgICAgc2luZ2xlU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgdGV4dDogJ1NlbGVjdCcsXG4gICAgICAgIGVuYWJsZUNoZWNrQWxsOiB0cnVlLFxuICAgICAgICBzZWxlY3RBbGxUZXh0OiAnU2VsZWN0IEFsbCcsXG4gICAgICAgIHVuU2VsZWN0QWxsVGV4dDogJ1VuU2VsZWN0IEFsbCcsXG4gICAgICAgIGVuYWJsZVNlYXJjaEZpbHRlcjogZmFsc2UsXG4gICAgICAgIG1heEhlaWdodDogMzAwLFxuICAgICAgICBiYWRnZVNob3dMaW1pdDogOTk5OTk5OTk5OTk5LFxuICAgICAgICBjbGFzc2VzOiAnJyxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlclRleHQ6ICdTZWFyY2gnLFxuICAgICAgICBzaG93Q2hlY2tib3g6IHRydWUsXG4gICAgICAgIG5vRGF0YUxhYmVsOiAnTm8gRGF0YSBBdmFpbGFibGUnLFxuICAgICAgICBzZWFyY2hBdXRvZm9jdXM6IHRydWUsXG4gICAgICAgIGxhenlMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgbGFiZWxLZXk6ICdpdGVtTmFtZScsXG4gICAgICAgIHRoZW1lOiAnY2xhc3NpYycsXG4gICAgICAgIHNraW46ICdjbGFzc2ljJ1xuICAgIH1cbiAgICBwdWJsaWMgcGFyc2VFcnJvcjogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX2VsZW1lbnRSZWYgOiBFbGVtZW50UmVmKSB7XG5cbiAgICB9XG4gICAgZ2V0VGhlbWVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCByYXdUaGVtZTogYW55ID0gJ2NsYXNzaWMnO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncykge1xuICAgICAgICAgICAgcmF3VGhlbWUgPSB0aGlzLnNldHRpbmdzLnNraW4gfHwgdGhpcy5zZXR0aW5ncy50aGVtZSB8fCAnY2xhc3NpYyc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHRoZW1lID0gU3RyaW5nKHJhd1RoZW1lKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05Xy1dKy9nLCAnLScpO1xuICAgICAgICB0aGVtZSA9IHRoZW1lLnJlcGxhY2UoL14tK3wtKyQvZywgJycpO1xuICAgICAgICByZXR1cm4gdGhlbWUgfHwgJ2NsYXNzaWMnO1xuICAgIH1cbiAgICBnZXREcm9wZG93bkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHRoZW1lID0gdGhpcy5nZXRUaGVtZU5hbWUoKTtcbiAgICAgICAgbGV0IGNsYXNzTmFtZSA9ICd0aGVtZS0nICsgdGhlbWU7XG4gICAgICAgIGlmICh0aGVtZSAhPT0gJ2NsYXNzaWMnICYmIHRoZW1lICE9PSAnbWF0ZXJpYWwnICYmIHRoZW1lICE9PSAnZGFyaycgJiYgdGhlbWUgIT09ICdjdXN0b20nKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyB0aGVtZS1jdXN0b20nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBpcy1vcGVuJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBpcy1kaXNhYmxlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICB9XG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHRoaXMuZGVmYXVsdFNldHRpbmdzLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZ3JvdXBCeSkge1xuICAgICAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMudHJhbnNmb3JtRGF0YSh0aGlzLmRhdGEsIHRoaXMuc2V0dGluZ3MuZ3JvdXBCeSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b3RhbFJvd3MgPSAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5sZW5ndGgpO1xuICAgICAgICB0aGlzLmNhY2hlZEl0ZW1zID0gdGhpcy5kYXRhO1xuICAgICAgICB0aGlzLnNjcmVlbkl0ZW1zTGVuID0gTWF0aC5jZWlsKHRoaXMuc2V0dGluZ3MubWF4SGVpZ2h0IC8gdGhpcy5pdGVtSGVpZ2h0KTtcbiAgICAgICAgdGhpcy5jYWNoZWRJdGVtc0xlbiA9IHRoaXMuc2NyZWVuSXRlbXNMZW4gKiAzO1xuICAgICAgICB0aGlzLnRvdGFsSGVpZ2h0ID0gdGhpcy5pdGVtSGVpZ2h0ICogdGhpcy50b3RhbFJvd3M7XG4gICAgICAgIHRoaXMubWF4QnVmZmVyID0gdGhpcy5zY3JlZW5JdGVtc0xlbiAqIHRoaXMuaXRlbUhlaWdodDtcbiAgICAgICAgdGhpcy5sYXN0U2Nyb2xsZWQgPSAwO1xuICAgICAgICB0aGlzLnJlbmRlckNodW5rKDAsIHRoaXMuY2FjaGVkSXRlbXNMZW4gLyAyKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5kYXRhICYmICFjaGFuZ2VzLmRhdGEuaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5ncm91cEJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMudHJhbnNmb3JtRGF0YSh0aGlzLmRhdGEsIHRoaXMuc2V0dGluZ3MuZ3JvdXBCeSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMuc2V0dGluZ3MgJiYgIWNoYW5nZXMuc2V0dGluZ3MuaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih0aGlzLmRlZmF1bHRTZXR0aW5ncywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PSAwIHx8IHRoaXMuZGF0YS5sZW5ndGggPT0gMCB8fCB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoIDwgdGhpcy5kYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmKHRoaXMuc2V0dGluZ3MubGF6eUxvYWRpbmcpe1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJsYXp5Q29udGFpbmVyXCIpWzBdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25JdGVtQ2xpY2soaXRlbTogTGlzdEl0ZW0sIGluZGV4OiBudW1iZXIsIGV2dDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmb3VuZCA9IHRoaXMuaXNTZWxlY3RlZChpdGVtKTtcbiAgICAgICAgbGV0IGxpbWl0ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA8IHRoaXMuc2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MubGltaXRTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAobGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTZWxlY3RlZChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkU2VsZWN0ZWQoaXRlbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGl0ZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5vbkRlU2VsZWN0LmVtaXQoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RBbGwgfHwgdGhpcy5kYXRhLmxlbmd0aCA+IHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA9PSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpOiBhbnkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW3ZhbHVlWzBdXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBNeUV4Y2VwdGlvbig0MDQsIHsgXCJtc2dcIjogXCJTaW5nbGUgU2VsZWN0aW9uIE1vZGUsIFNlbGVjdGVkIEl0ZW1zIGNhbm5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgaXRlbS5cIiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5ib2R5Lm1zZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5saW1pdFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZS5zcGxpY2UoMCwgdGhpcy5zZXR0aW5ncy5saW1pdFNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IHRoaXMuZGF0YS5sZW5ndGggJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cbiAgICBpc1NlbGVjdGVkKGNsaWNrZWRJdGVtOiBMaXN0SXRlbSkge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGNsaWNrZWRJdGVtLmlkID09PSBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH1cbiAgICBhZGRTZWxlY3RlZChpdGVtOiBMaXN0SXRlbSkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG4gICAgcmVtb3ZlU2VsZWN0ZWQoY2xpY2tlZEl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChjbGlja2VkSXRlbS5pZCA9PT0gaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG4gICAgdG9nZ2xlRHJvcGRvd24oZXZ0OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzQWN0aXZlID0gIXRoaXMuaXNBY3RpdmU7XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZWFyY2hBdXRvZm9jdXMgJiYgdGhpcy5zZXR0aW5ncy5lbmFibGVTZWFyY2hGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9uT3Blbi5lbWl0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBjbG9zZURyb3Bkb3duKCkge1xuICAgICAgICBpZih0aGlzLnNlYXJjaElucHV0KXtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY2FjaGVkSXRlbXM7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSGVpZ2h0ID0gdGhpcy5pdGVtSGVpZ2h0ICogdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMudG90YWxSb3dzID0gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlldyh0aGlzLnNjcm9sbFRvcCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXIgPSBcIlwiO1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25DbG9zZS5lbWl0KGZhbHNlKTtcbiAgICB9XG4gICAgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RBbGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5kYXRhLnNsaWNlKCk7XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0QWxsLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICAgICAgICAgIHRoaXMub25EZVNlbGVjdEFsbC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJhbnNmb3JtRGF0YShhcnI6IEFycmF5PExpc3RJdGVtPiwgZmllbGQ6IGFueSk6IEFycmF5PExpc3RJdGVtPiB7XG4gICAgICAgIGNvbnN0IGdyb3VwZWRPYmo6IGFueSA9IGFyci5yZWR1Y2UoKHByZXY6IGFueSwgY3VyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICghcHJldltjdXJbZmllbGRdXSkge1xuICAgICAgICAgICAgICAgIHByZXZbY3VyW2ZpZWxkXV0gPSBbY3VyXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJldltjdXJbZmllbGRdXS5wdXNoKGN1cik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgfSwge30pO1xuICAgICAgICBjb25zdCB0ZW1wQXJyOiBhbnkgPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXMoZ3JvdXBlZE9iaikubWFwKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICB0ZW1wQXJyLnB1c2goeyBrZXk6IHgsIHZhbHVlOiBncm91cGVkT2JqW3hdIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRlbXBBcnI7XG4gICAgfVxuICAgIHJlbmRlckNodW5rKGZyb21Qb3M6YW55LCBob3dNYW55OmFueSkge1xuICAgICAgICB0aGlzLmNodW5rQXJyYXkgPSBbXTtcbiAgICAgICAgdGhpcy5jaHVua0luZGV4ID0gW107XG4gICAgICAgIHZhciBmaW5hbEl0ZW0gPSBmcm9tUG9zICsgaG93TWFueTtcbiAgICAgICAgaWYgKGZpbmFsSXRlbSA+IHRoaXMudG90YWxSb3dzKVxuICAgICAgICAgICAgZmluYWxJdGVtID0gdGhpcy50b3RhbFJvd3M7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IGZyb21Qb3M7IGkgPCBmaW5hbEl0ZW07IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2h1bmtJbmRleC5wdXNoKChpICogdGhpcy5pdGVtSGVpZ2h0KSArICdweCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2h1bmtBcnJheS5wdXNoKHRoaXMuZGF0YVtpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIG9uU2Nyb2xsKGU6YW55KSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wID0gZS50YXJnZXQuc2Nyb2xsVG9wO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcodGhpcy5zY3JvbGxUb3ApO1xuXG4gICAgfVxuICAgIHB1YmxpYyB1cGRhdGVWaWV3KHNjcm9sbFRvcDphbnkpe1xuICAgICAgICB2YXIgc2Nyb2xsUG9zID0gc2Nyb2xsVG9wID8gc2Nyb2xsVG9wOiAwO1xuICAgICAgICAgdmFyIGZpcnN0ID0gKHNjcm9sbFBvcyAvIHRoaXMuaXRlbUhlaWdodCkgLSB0aGlzLnNjcmVlbkl0ZW1zTGVuO1xuICAgICAgICB2YXIgZmlyc3RUZW1wID0gXCJcIitmaXJzdDtcbiAgICAgICAgZmlyc3QgPSBwYXJzZUludChmaXJzdFRlbXApIDwgMCA/IDAgOiBwYXJzZUludChmaXJzdFRlbXApO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJDaHVuayhmaXJzdCwgdGhpcy5jYWNoZWRJdGVtc0xlbik7XG4gICAgICAgICAgICB0aGlzLmxhc3RSZXBhaW50WSA9IHNjcm9sbFBvcztcbiAgICB9XG4gICAgcHVibGljIGZpbHRlckluZmluaXRlTGlzdChldnQ6IGFueSl7XG4gICAgICAgIHZhciBmaWx0ZXJlZEVsZW1zOkFycmF5PGFueT4gPSBbXTtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5jYWNoZWRJdGVtcy5zbGljZSgpO1xuICAgICAgICBpZihldnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkgIT0gJycpe1xuICAgICAgICAgIHRoaXMuZGF0YS5maWx0ZXIoZnVuY3Rpb24oZWw6YW55KXtcbiAgICAgICAgICAgICAgZm9yKHZhciBwcm9wIGluIGVsKXtcbiAgICAgICAgICAgICAgICAgIGlmKGVsW3Byb3BdLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGV2dC50YXJnZXQudmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSA+PTAgKXtcbiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZEVsZW1zLnB1c2goZWwpO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgICAvL3RoaXMuY2FjaGVkSXRlbXMgPSB0aGlzLmRhdGE7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSGVpZ2h0ID0gdGhpcy5pdGVtSGVpZ2h0ICogZmlsdGVyZWRFbGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnRvdGFsUm93cyA9IGZpbHRlcmVkRWxlbXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBmaWx0ZXJlZEVsZW1zO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3KHRoaXMuc2Nyb2xsVG9wKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKGV2dC50YXJnZXQudmFsdWUudG9TdHJpbmcoKSA9PSAnJyAmJiB0aGlzLmNhY2hlZEl0ZW1zLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmNhY2hlZEl0ZW1zO1xuICAgICAgICAgICAgdGhpcy50b3RhbEhlaWdodCA9IHRoaXMuaXRlbUhlaWdodCAqIHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnRvdGFsUm93cyA9IHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcodGhpcy5zY3JvbGxUb3ApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtBbmd1bGFyTXVsdGlTZWxlY3QsIENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgU2Nyb2xsRGlyZWN0aXZlLCBzdHlsZURpcmVjdGl2ZSwgTGlzdEZpbHRlclBpcGUsIEl0ZW0sIFRlbXBsYXRlUmVuZGVyZXIsIEJhZGdlXSxcbiAgICBleHBvcnRzOiBbQW5ndWxhck11bHRpU2VsZWN0LCBDbGlja091dHNpZGVEaXJlY3RpdmUsIFNjcm9sbERpcmVjdGl2ZSwgc3R5bGVEaXJlY3RpdmUsIExpc3RGaWx0ZXJQaXBlLCBJdGVtLCBUZW1wbGF0ZVJlbmRlcmVyLCBCYWRnZV1cbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhck11bHRpU2VsZWN0TW9kdWxlIHsgfVxuIl19