@ruc-lib/dual-list-selector 2.0.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,198 @@
1
- # ruclib-dual-list-selector
1
+ # Dual List Selector
2
2
 
3
- "A dual list selector allows users to select and move items from one list of available items to another list of selected items. Unlike a select list, a dual list selector separates the available options and the selected options into two separate lists, which allows users to easily scan the items they selected. Additionally we'll provide the support for expandable list items and custom theme, title and labels."
3
+ The Dual List Selector is a highly configurable Angular component that allows users to move items between two lists: an "available" list and a "selected" list. It's ideal for scenarios where users need to make multiple selections from a large set of options.
4
4
 
5
+ ## Features
5
6
 
6
- ## Running unit tests
7
+ - **Two-List Layout**: Clearly separates available and selected items.
8
+ - **Drag and Drop**: Intuitively move items between lists using Angular CDK Drag and Drop.
9
+ - **Button Controls**: Move selected items, or all items, with button clicks.
10
+ - **Search**: Filter items within both lists to quickly find what you're looking for.
11
+ - **Sorting**: Sort items alphabetically in ascending or descending order.
12
+ - **Item Disabling**: Prevent specific items from being moved.
13
+ - **State Persistence**: Optionally persist the selected and available items in `sessionStorage` across page refreshes.
14
+ - **Customizable**: Control dimensions and apply custom themes.
7
15
 
8
- Run `nx test ruclib-dual-list-selector` to execute the unit tests.
16
+
17
+
18
+ ## Dependencies
19
+
20
+ This library has peer dependencies on `@angular/core`, `@angular/common`, and `@angular/material`.
21
+
22
+ ```bash
23
+ npm install @angular/material @angular/cdk
24
+
25
+ ```
26
+
27
+ ## Installation Guide
28
+
29
+ To use the Dual List Selector component, you can install the entire RUC library or just this specific component.
30
+
31
+ ### Install the Entire Library
32
+ ```bash
33
+ npm install @uxpractice/ruc-lib
34
+ ```
35
+
36
+ ### Install Individual Component
37
+ If you only need the Dual List Selector component:
38
+ ```bash
39
+ npm install @ruc-lib/dual-list-selector
40
+ ```
41
+
42
+
43
+ # Version Compatibility
44
+
45
+ Please ensure you install the correct version of `@ruc-lib/dual-list-selector` based on your Angular version.
46
+
47
+ | Angular Version | Compatible `@ruc-lib/dual-list-selector` Version |
48
+ |--------------------|------------------------------------------------------|
49
+ | 15.x.x | `npm install @ruc-lib/dual-list-selector@^3.0.0` |
50
+ | 16.x.x | `npm install @ruc-lib/dual-list-selector@^3.0.0` |
51
+
52
+
53
+ ## Usage
54
+
55
+ 1. Import the Module In your Angular module file (e.g., `app.module.ts`), import the `RuclibDualListSelectorModule`:**
56
+
57
+ ```typescript
58
+ import { RuclibDualListSelectorModule } from '@ruc-lib/dual-list-selector';
59
+ import { FormsModule } from '@angular/forms';
60
+ import { MatListModule } from '@angular/material/list';
61
+ import { MatChipsModule } from '@angular/material/chips';
62
+ import { DragDropModule } from '@angular/cdk/drag-drop';
63
+ import { MatFormFieldModule } from '@angular/material/form-field';
64
+ import { MatInputModule } from '@angular/material/input';
65
+ import { MatIconModule } from '@angular/material/icon';
66
+ import { MatSortModule } from '@angular/material/sort';
67
+ import { MatTableModule } from '@angular/material/table';
68
+
69
+ @NgModule({
70
+ imports: [
71
+ // ... other modules
72
+ RuclibDualListSelectorModule,
73
+ FormsModule,
74
+ MatListModule,
75
+ DragDropModule,
76
+ MatChipsModule,
77
+ MatFormFieldModule,
78
+ MatInputModule,
79
+ MatIconModule,
80
+ MatSortModule,
81
+ MatTableModule
82
+ ]
83
+ })
84
+ export class YourModule { }
85
+ ```
86
+
87
+ 2. **In your component's template:**
88
+
89
+ ```html
90
+ <uxp-ruclib-dual-list-selector
91
+ [dataSource]="items"
92
+ [rucInputData]="config"
93
+ (rucEvent)="onSubmit($event)">
94
+ </uxp-ruclib-dual-list-selector>
95
+ ```
96
+
97
+ 3. **In your component's TypeScript file:**
98
+
99
+ ```typescript
100
+ import { Component } from '@angular/core';
101
+
102
+ @Component({
103
+ selector: 'app-your-component',
104
+ templateUrl: './your-component.html',
105
+ })
106
+ export class YourComponent {
107
+ // Configuration for the dual list
108
+ config = {
109
+ height: 450,
110
+ width: 300,
111
+ persistOnRefresh: true,
112
+ enableSearch: true,
113
+ sorting: true,
114
+ };
115
+
116
+ // Data for the dual list
117
+ items = [
118
+ { id: 1, name: 'Item 1', disable: true },
119
+ { id: 2, name: 'Item 2', disable: true },
120
+ { id: 3, name: 'Item 3', disable: false }, // This item cannot be moved
121
+ { id: 4, name: 'Item 4', disable: true },
122
+ ];
123
+
124
+ onSubmit(selectedItems: any[]) {
125
+ console.log('Submitted Items:', selectedItems);
126
+ // Handle the submitted data
127
+ }
128
+ }
129
+ ```
130
+
131
+ ## API Reference
132
+
133
+ ### Component Selector
134
+
135
+ `<uxp-ruclib-dual-list-selector>`
136
+
137
+ ### Inputs
138
+
139
+ | Input | Type | Default | Description |
140
+ | :------------- | :--------------- | :------ | :--------------------------------------------------------------------------------------- |
141
+ | `dataSource` | `Item[]` | `[]` | An array of items to populate the lists. Each item should follow the `Item` interface. |
142
+ | `rucInputData` | `DualListConfig` | `{}` | A configuration object for the component's features. See `DualListConfig` interface below. |
143
+ | `customTheme` | `string` | `''` | A custom CSS class name to be applied to the root element for theming purposes. |
144
+
145
+ ### Outputs
146
+
147
+ | Output | Type | Description |
148
+ | :--------- | :-------------------- | :--------------------------------------------------------------------------------- |
149
+ | `rucEvent` | `EventEmitter<Item[]>` | Emits an array of the currently selected items when the "Submit" button is clicked. |
150
+
151
+ ### Interfaces
152
+
153
+ #### `DualListConfig`
154
+
155
+ ```typescript
156
+ interface DualListConfig {
157
+ height?: number;
158
+ width?: number;
159
+ persistOnRefresh?: boolean;
160
+ enableSearch?: boolean;
161
+ sorting?: boolean;
162
+ }
163
+ ```
164
+
165
+ #### `Item`
166
+
167
+ ```typescript
168
+ interface Item {
169
+ id: number | string;
170
+ name: string;
171
+ disable: boolean;
172
+ }
173
+ ```
174
+
175
+ > ⚠️ **IMPORTANT: Custom Theme Usage in Angular Material**
176
+
177
+ When implementing **custom themes**, such as:
178
+
179
+ ```scss
180
+ .custom-theme-1 {
181
+ @include angular-material-theme($custom-theme);
182
+ }
183
+
184
+ // You must also include the typography mixin to ensure text styles are applied correctly as shown below:
185
+ .custom-theme-1 {
186
+ @include angular-material-theme($custom-theme);
187
+ @include mat.typography-level($theme-custom-typography-name, body-1);
188
+ }
189
+ ```
190
+
191
+
192
+ ## Contribution
193
+
194
+ Contributions are welcome! Feel free to open issues or pull requests for any enhancements or fixes.
195
+
196
+ ## Acknowledgements
197
+
198
+ Thank you for choosing the Dual List Selector component. If you have any feedback or suggestions, please let us know!
package/esm2020/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from './lib/ruclib-dual-list-selector.module';
2
2
  export * from './lib/dual-list-selector/dual-list-selector.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3J1Y2xpYi9kdWFsLWxpc3Qtc2VsZWN0b3Ivc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx1REFBdUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3J1Y2xpYi1kdWFsLWxpc3Qtc2VsZWN0b3IubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZHVhbC1saXN0LXNlbGVjdG9yL2R1YWwtbGlzdC1zZWxlY3Rvci5jb21wb25lbnQnOyJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcnVjbGliLWR1YWwtbGlzdC1zZWxlY3Rvci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kdWFsLWxpc3Qtc2VsZWN0b3IvZHVhbC1saXN0LXNlbGVjdG9yLmNvbXBvbmVudCc7Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVuZGluZ1NlbGVjdGlvbkl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ydWNsaWIvZHVhbC1saXN0LXNlbGVjdG9yL3NyYy9pbnRlcmZhY2VzL1BlbmRpbmdTZWxlY3Rpb25JdGVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGVuZGluZ1NlbGVjdGlvbiB7ICBcclxuICBbIGtleTogbnVtYmVyIF06IGJvb2xlYW47XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVuZGluZ1NlbGVjdGlvbkl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvUGVuZGluZ1NlbGVjdGlvbkl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBQZW5kaW5nU2VsZWN0aW9uIHsgIFxyXG4gIFsga2V5OiBudW1iZXIgXTogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -11,6 +11,7 @@ import * as i5 from "@angular/cdk/drag-drop";
11
11
  import * as i6 from "@angular/material/form-field";
12
12
  import * as i7 from "@angular/material/input";
13
13
  import * as i8 from "@angular/material/icon";
14
+ import * as i9 from "@angular/material/button";
14
15
  export class DualListSelectorComponent {
15
16
  ;
16
17
  constructor(filterPipe) {
@@ -206,10 +207,10 @@ export class DualListSelectorComponent {
206
207
  }
207
208
  }
208
209
  DualListSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DualListSelectorComponent, deps: [{ token: i1.FilterPipe }], target: i0.ɵɵFactoryTarget.Component });
209
- DualListSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DualListSelectorComponent, selector: "uxp-dual-list-selector", inputs: { dataSource: "dataSource", rucInputData: "rucInputData", customTheme: "customTheme" }, outputs: { rucEvent: "rucEvent" }, providers: [FilterPipe], ngImport: i0, template: "<div class=\"{{customTheme}}\">\r\n <div class=\"dual-list-container\">\r\n <div class=\"dual-select\">\r\n <div class=\"leftContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchText, 'unselected')\" [(ngModel)]=\"searchText\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('unselected')\">{{ !direction_unselected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n <div class=\"dual-select__left\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n <mat-list role=\"list\" class=\"list_container\">\r\n\r\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"unselectedItems\"\r\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n\r\n\r\n <mat-list-item role=\"listitem\" *ngFor=\"let item of unselectedItems\" cdkDrag [disabled]=\"!item.disable\"\r\n (click)=\"togglePendingSelection( item )\" (dblclick)=\"addToSelectedItems( item )\"\r\n class=\"dual-select__item\" [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n\r\n </div>\r\n </div>\r\n <div class=\"dual-select__controls\">\r\n <button (click)=\"addToSelectedItems()\" class=\"dual-select__control\">\r\n &#10236;\r\n </button>\r\n <button (click)=\"removeFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10235;\r\n </button>\r\n <button (click)=\"addAllToSelectedItems()\" class=\"dual-select__control\">\r\n &#10503;\r\n </button>\r\n <button (click)=\"removeAllFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10502;\r\n </button>\r\n </div>\r\n <div class=\"rightContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchTextSelected, 'selected')\" [(ngModel)]=\"searchTextSelected\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('selected')\">{{ !direction_selected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n\r\n <div class=\"dual-select__right\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n\r\n\r\n\r\n <mat-list role=\"list\" class=\"list_container\">\r\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"selectedItems\"\r\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n <mat-list-item cdkDrag *ngFor=\"let item of selectedItems\" (click)=\"togglePendingSelection( item )\"\r\n (dblclick)=\"removeFromSelectedItems( item )\" class=\"dual-select__item dual-select__item--new\"\r\n [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"text-align-center\">\r\n <button (click)=\"selectedOutputItems()\" class=\"dual-list-btn\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".dual-list-container{display:flex;flex-direction:column}.list{border:1px solid #ccc;padding:10px;width:45%}:host{display:block;font-size:18px}.dual-select{display:flex;justify-content:center}.leftContainer,.rightContainer{flex:0 0 auto;margin:2%}.dual-select__left,.dual-select__right{border:1px solid lightgrey;height:400px;overflow-y:auto}.dual-select__controls{justify-content:center;display:flex;flex:0 0 auto;flex-direction:column;padding:0 10px}.dual-select__control{font-size:20px;height:37px;margin:10px 0}.dual-select__items{border:1px solid #cccccc;height:100%;list-style-type:none;margin:0;overflow:auto;overscroll-behavior:contain;padding:0}.dual-select__item{border-bottom:1px solid #cccccc;cursor:pointer;margin:0;padding:0 0 0 1em;user-select:none;-moz-user-select:none;-webkit-user-select:none}.dual-select__item:last-child{border-bottom-width:0px}.dual-select__item--selected{background-color:#bfd5ff}.dual-select__item--new{animation-duration:2s;animation-name:dual-select-item-new-fade-in;animation-timing-function:ease-out}@keyframes dual-select-item-new-fade-in{0%{background-color:#fff}25%{background-color:#bfd5ff}to{background-color:#fff}}.contact{font-family:monospace,sans-serif;padding:8px 10px}.contact__name{font-size:18px;font-weight:700;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact__email{font-size:15px;line-height:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note{font-family:monospace,sans-serif;font-size:16px}.search_Box{width:90%;height:67px}.list_container{padding:0}.btn_container{position:relative;top:30px;right:8%}.submit_Btn{position:absolute;bottom:0}@media screen and (max-width: 900px){.dual-select{display:inline-flex;height:400px;margin:6% 1% 1%}}.text-align-center{text-align:center}.dual-list-btn{font-size:14px;padding:.4em 1em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
210
+ DualListSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DualListSelectorComponent, selector: "uxp-ruclib-dual-list-selector", inputs: { dataSource: "dataSource", rucInputData: "rucInputData", customTheme: "customTheme" }, outputs: { rucEvent: "rucEvent" }, providers: [FilterPipe], ngImport: i0, template: "<div class=\"main\">\r\n<div class=\"{{customTheme}}\">\r\n <div class=\"dual-list-container\">\r\n <div class=\"dual-select\">\r\n <div class=\"leftContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchText, 'unselected')\" [(ngModel)]=\"searchText\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('unselected')\">{{ !direction_unselected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n <div class=\"dual-select__left\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n <mat-list role=\"list\" class=\"list_container\">\r\n\r\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"unselectedItems\"\r\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n\r\n\r\n <mat-list-item role=\"listitem\" *ngFor=\"let item of unselectedItems\" cdkDrag [disabled]=\"!item.disable\"\r\n (click)=\"togglePendingSelection( item )\" (dblclick)=\"addToSelectedItems( item )\"\r\n class=\"dual-select__item\" [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n\r\n </div>\r\n </div>\r\n <div class=\"dual-select__controls\">\r\n <button mat-raised-button color=\"primary\"(click)=\"addToSelectedItems()\" class=\"dual-select__control\">\r\n &#10236;\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"removeFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10235;\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"addAllToSelectedItems()\" class=\"dual-select__control\">\r\n &#10503;\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"removeAllFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10502;\r\n </button>\r\n </div>\r\n <div class=\"rightContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchTextSelected, 'selected')\" [(ngModel)]=\"searchTextSelected\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('selected')\">{{ !direction_selected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n\r\n <div class=\"dual-select__right\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n\r\n\r\n\r\n <mat-list role=\"list\" class=\"list_container\">\r\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"selectedItems\"\r\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n <mat-list-item cdkDrag *ngFor=\"let item of selectedItems\" (click)=\"togglePendingSelection( item )\"\r\n (dblclick)=\"removeFromSelectedItems( item )\" class=\"dual-select__item dual-select__item--new\"\r\n [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"text-align-center\">\r\n <button mat-raised-button color=\"primary\" (click)=\"selectedOutputItems()\" class=\"dual-list-btn\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n</div>", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.main{font-size:16px;font-weight:400;line-height:24px;font-family:Roboto,sans-serif;letter-spacing:.03125em}.ruc-custom-theme{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-option{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal)}.ruc-custom-theme .mat-mdc-card-title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-headline6-font-size, 20px);line-height:var(--mdc-typography-headline6-line-height, 32px);font-weight:var(--mdc-typography-headline6-font-weight, 500);letter-spacing:var(--mdc-typography-headline6-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-transform:var(--mdc-typography-headline6-text-transform, none)}.ruc-custom-theme .mat-mdc-card-subtitle{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-mdc-tooltip{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-form-field-infix{min-height:56px}.ruc-custom-theme .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:28px}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -34.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:24px;padding-bottom:8px}.ruc-custom-theme .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mdc-text-field__input,.ruc-custom-theme .mdc-text-field__affix{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mdc-text-field--textarea .mdc-text-field__input{line-height:1.5rem}.ruc-custom-theme .mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field-subscript-wrapper,.ruc-custom-theme .mat-mdc-form-field-bottom-align:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field,.ruc-custom-theme .mat-mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(15px * var(--mat-mdc-form-field-floating-label-scale, .75))}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:15px}.ruc-custom-theme .mat-mdc-select-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-select{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-autocomplete-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-dialog-container{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: normal;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 15px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-chip{height:32px}.ruc-custom-theme .mat-mdc-standard-chip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-slide-toggle{--mdc-switch-state-layer-size: 48px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio{padding:10px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{top:-10px;left:-10px;width:40px;height:40px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:0;right:0;left:0;width:40px;height:40px}.ruc-custom-theme .mat-mdc-slider{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 20px;--mdc-slider-label-label-text-line-height: 24px;--mdc-slider-label-label-text-tracking: normal;--mdc-slider-label-label-text-weight: 500}.ruc-custom-theme .mat-mdc-menu-content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-menu-content,.ruc-custom-theme .mat-mdc-menu-content .mat-mdc-menu-item .mdc-list-item__primary-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 15px;--mdc-list-list-item-label-text-tracking: normal;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: normal;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: normal;--mdc-list-list-item-trailing-supporting-text-weight: 400}.ruc-custom-theme .mdc-list-group__subheader{font-size:16px;font-weight:400;line-height:28px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-form-field-infix{min-height:40px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:20px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -26.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label{display:none}.ruc-custom-theme .mat-mdc-paginator-container{min-height:56px}.ruc-custom-theme .mat-mdc-paginator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-select-value{font-size:12px}.ruc-custom-theme .mat-mdc-tab-header .mdc-tab{height:48px}.ruc-custom-theme .mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:var(--mdc-checkbox-touch-target-size, 40px);height:var(--mdc-checkbox-touch-target-size, 40px)}@media all and (-ms-high-contrast: none){.ruc-custom-theme .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.ruc-custom-theme .mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-raised-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-unelevated-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-outlined-button.mat-mdc-button-base{height:36px}.ruc-custom-theme .mdc-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base{width:48px;height:48px;padding:12px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:4px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%,-50%)}.ruc-custom-theme .mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-snack-bar-container{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}.ruc-custom-theme .mat-mdc-table .mdc-data-table__row{height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__pagination{min-height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__header-row{height:56px}.ruc-custom-theme .mdc-data-table__content,.ruc-custom-theme .mdc-data-table__cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mdc-data-table__header-cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-badge{position:relative}.ruc-custom-theme .mat-badge.mat-badge{overflow:visible}.ruc-custom-theme .mat-badge-hidden .mat-badge-content{display:none}.ruc-custom-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ruc-custom-theme .ng-animate-disabled .mat-badge-content,.ruc-custom-theme .mat-badge-content._mat-animation-noopable{transition:none}.ruc-custom-theme .mat-badge-content.mat-badge-active{transform:none}.ruc-custom-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.ruc-custom-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.ruc-custom-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.ruc-custom-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.ruc-custom-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.ruc-custom-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.ruc-custom-theme .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,sans-serif}.ruc-custom-theme .mat-badge-small .mat-badge-content{font-size:9px}.ruc-custom-theme .mat-badge-large .mat-badge-content{font-size:24px}.ruc-custom-theme .mat-bottom-sheet-container{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.ruc-custom-theme .mat-button-toggle{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:0}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:40px;left:50%;width:40px;transform:translate(-50%,-50%)}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target{display:none}.ruc-custom-theme .mat-calendar{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-body{font-size:13px}.ruc-custom-theme .mat-calendar-body-label,.ruc-custom-theme .mat-calendar-period-button{font-size:20px;font-weight:500}.ruc-custom-theme .mat-calendar-table-header th{font-size:11px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-header{height:48px}.ruc-custom-theme .mat-expansion-panel-header.mat-expanded{height:64px}.ruc-custom-theme .mat-expansion-panel-header{font-family:Roboto,sans-serif;font-size:15px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-content{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-grid-tile-header,.ruc-custom-theme .mat-grid-tile-footer{font-size:14px}.ruc-custom-theme .mat-grid-tile-header .mat-line,.ruc-custom-theme .mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.ruc-custom-theme .mat-grid-tile-header .mat-line:nth-child(n+2),.ruc-custom-theme .mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}.ruc-custom-theme .mat-horizontal-stepper-header{height:72px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.ruc-custom-theme .mat-vertical-stepper-header{padding:24px}.ruc-custom-theme .mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.ruc-custom-theme .mat-stepper-vertical,.ruc-custom-theme .mat-stepper-horizontal{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-step-label{font-size:14px;font-weight:400}.ruc-custom-theme .mat-step-sub-label-error{font-weight:400}.ruc-custom-theme .mat-step-label-error{font-size:20px}.ruc-custom-theme .mat-step-label-selected{font-size:20px;font-weight:500}.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:64px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:64px}@media (max-width: 599px){.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:56px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:56px}}.ruc-custom-theme .mat-toolbar,.ruc-custom-theme .mat-toolbar h1,.ruc-custom-theme .mat-toolbar h2,.ruc-custom-theme .mat-toolbar h3,.ruc-custom-theme .mat-toolbar h4,.ruc-custom-theme .mat-toolbar h5,.ruc-custom-theme .mat-toolbar h6{font-size:20px;font-weight:500;line-height:32px;font-family:Roboto,sans-serif;letter-spacing:normal;margin:0}.ruc-custom-theme .mat-tree-node{min-height:48px}.ruc-custom-theme .mat-tree{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-tree-node,.ruc-custom-theme .mat-nested-tree-node{font-weight:400;font-size:14px}.dual-list-container{display:flex;flex-direction:column}.list{border:1px solid #ccc;padding:10px;width:45%}:host{display:block;font-size:18px}.dual-select{display:flex;justify-content:center}.leftContainer,.rightContainer{flex:0 0 auto;margin:2%}.dual-select__left,.dual-select__right{border:1px solid lightgrey;height:400px;overflow-y:auto}.dual-select__controls{justify-content:center;display:flex;flex:0 0 auto;flex-direction:column;padding:0 10px}.dual-select__control{font-size:20px;height:37px;margin:10px 0}.dual-select__items{border:1px solid #cccccc;height:100%;list-style-type:none;margin:0;overflow:auto;overscroll-behavior:contain;padding:0}.dual-select__item{border-bottom:1px solid #cccccc;cursor:pointer;margin:0;padding:0 0 0 1em;user-select:none;-moz-user-select:none;-webkit-user-select:none}.dual-select__item:last-child{border-bottom-width:0px}.dual-select__item--selected{background-color:#bfd5ff}.dual-select__item--new{animation-duration:2s;animation-name:dual-select-item-new-fade-in;animation-timing-function:ease-out}@keyframes dual-select-item-new-fade-in{0%{background-color:#fff}25%{background-color:#bfd5ff}to{background-color:#fff}}.contact{font-family:monospace,sans-serif;padding:8px 10px}.contact__name{font-size:18px;font-weight:700;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact__email{font-size:15px;line-height:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note{font-family:monospace,sans-serif;font-size:16px}.search_Box{width:90%;height:67px}.list_container{padding:0}.btn_container{position:relative;top:30px;right:8%}.submit_Btn{position:absolute;bottom:0}@media screen and (max-width: 900px){.dual-select{display:inline-flex;height:400px;margin:6% 1% 1%}}.text-align-center{text-align:center}.dual-list-btn{font-size:14px;padding:.4em 1em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
210
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DualListSelectorComponent, decorators: [{
211
212
  type: Component,
212
- args: [{ selector: 'uxp-dual-list-selector', providers: [FilterPipe], template: "<div class=\"{{customTheme}}\">\r\n <div class=\"dual-list-container\">\r\n <div class=\"dual-select\">\r\n <div class=\"leftContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchText, 'unselected')\" [(ngModel)]=\"searchText\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('unselected')\">{{ !direction_unselected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n <div class=\"dual-select__left\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n <mat-list role=\"list\" class=\"list_container\">\r\n\r\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"unselectedItems\"\r\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n\r\n\r\n <mat-list-item role=\"listitem\" *ngFor=\"let item of unselectedItems\" cdkDrag [disabled]=\"!item.disable\"\r\n (click)=\"togglePendingSelection( item )\" (dblclick)=\"addToSelectedItems( item )\"\r\n class=\"dual-select__item\" [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n\r\n </div>\r\n </div>\r\n <div class=\"dual-select__controls\">\r\n <button (click)=\"addToSelectedItems()\" class=\"dual-select__control\">\r\n &#10236;\r\n </button>\r\n <button (click)=\"removeFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10235;\r\n </button>\r\n <button (click)=\"addAllToSelectedItems()\" class=\"dual-select__control\">\r\n &#10503;\r\n </button>\r\n <button (click)=\"removeAllFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10502;\r\n </button>\r\n </div>\r\n <div class=\"rightContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchTextSelected, 'selected')\" [(ngModel)]=\"searchTextSelected\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('selected')\">{{ !direction_selected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n\r\n <div class=\"dual-select__right\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n\r\n\r\n\r\n <mat-list role=\"list\" class=\"list_container\">\r\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"selectedItems\"\r\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n <mat-list-item cdkDrag *ngFor=\"let item of selectedItems\" (click)=\"togglePendingSelection( item )\"\r\n (dblclick)=\"removeFromSelectedItems( item )\" class=\"dual-select__item dual-select__item--new\"\r\n [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"text-align-center\">\r\n <button (click)=\"selectedOutputItems()\" class=\"dual-list-btn\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".dual-list-container{display:flex;flex-direction:column}.list{border:1px solid #ccc;padding:10px;width:45%}:host{display:block;font-size:18px}.dual-select{display:flex;justify-content:center}.leftContainer,.rightContainer{flex:0 0 auto;margin:2%}.dual-select__left,.dual-select__right{border:1px solid lightgrey;height:400px;overflow-y:auto}.dual-select__controls{justify-content:center;display:flex;flex:0 0 auto;flex-direction:column;padding:0 10px}.dual-select__control{font-size:20px;height:37px;margin:10px 0}.dual-select__items{border:1px solid #cccccc;height:100%;list-style-type:none;margin:0;overflow:auto;overscroll-behavior:contain;padding:0}.dual-select__item{border-bottom:1px solid #cccccc;cursor:pointer;margin:0;padding:0 0 0 1em;user-select:none;-moz-user-select:none;-webkit-user-select:none}.dual-select__item:last-child{border-bottom-width:0px}.dual-select__item--selected{background-color:#bfd5ff}.dual-select__item--new{animation-duration:2s;animation-name:dual-select-item-new-fade-in;animation-timing-function:ease-out}@keyframes dual-select-item-new-fade-in{0%{background-color:#fff}25%{background-color:#bfd5ff}to{background-color:#fff}}.contact{font-family:monospace,sans-serif;padding:8px 10px}.contact__name{font-size:18px;font-weight:700;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact__email{font-size:15px;line-height:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note{font-family:monospace,sans-serif;font-size:16px}.search_Box{width:90%;height:67px}.list_container{padding:0}.btn_container{position:relative;top:30px;right:8%}.submit_Btn{position:absolute;bottom:0}@media screen and (max-width: 900px){.dual-select{display:inline-flex;height:400px;margin:6% 1% 1%}}.text-align-center{text-align:center}.dual-list-btn{font-size:14px;padding:.4em 1em}\n"] }]
213
+ args: [{ selector: 'uxp-ruclib-dual-list-selector', providers: [FilterPipe], template: "<div class=\"main\">\r\n<div class=\"{{customTheme}}\">\r\n <div class=\"dual-list-container\">\r\n <div class=\"dual-select\">\r\n <div class=\"leftContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchText, 'unselected')\" [(ngModel)]=\"searchText\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('unselected')\">{{ !direction_unselected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n <div class=\"dual-select__left\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n <mat-list role=\"list\" class=\"list_container\">\r\n\r\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"unselectedItems\"\r\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n\r\n\r\n <mat-list-item role=\"listitem\" *ngFor=\"let item of unselectedItems\" cdkDrag [disabled]=\"!item.disable\"\r\n (click)=\"togglePendingSelection( item )\" (dblclick)=\"addToSelectedItems( item )\"\r\n class=\"dual-select__item\" [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n\r\n </div>\r\n </div>\r\n <div class=\"dual-select__controls\">\r\n <button mat-raised-button color=\"primary\"(click)=\"addToSelectedItems()\" class=\"dual-select__control\">\r\n &#10236;\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"removeFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10235;\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"addAllToSelectedItems()\" class=\"dual-select__control\">\r\n &#10503;\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"removeAllFromSelectedItems()\" class=\"dual-select__control\">\r\n &#10502;\r\n </button>\r\n </div>\r\n <div class=\"rightContainer\">\r\n <mat-form-field class=\"example-full-width search_Box\" appearance=\"fill\" *ngIf=\"rucInputData.enableSearch\">\r\n <mat-label>Search</mat-label>\r\n <input matInput (keyup)=\"filterData(searchTextSelected, 'selected')\" [(ngModel)]=\"searchTextSelected\">\r\n </mat-form-field>\r\n <span class=\"flex\" *ngIf=\"rucInputData.sorting\"><mat-icon (click)=\"sortOnClick('selected')\">{{ !direction_selected ? 'arrow_drop_down' :\r\n 'arrow_drop_up' }}</mat-icon> </span>\r\n\r\n <div class=\"dual-select__right\" [ngStyle]=\"{'max-height.px': height, 'width.px': width}\">\r\n\r\n\r\n\r\n <mat-list role=\"list\" class=\"list_container\">\r\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"selectedItems\"\r\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\r\n <mat-list-item cdkDrag *ngFor=\"let item of selectedItems\" (click)=\"togglePendingSelection( item )\"\r\n (dblclick)=\"removeFromSelectedItems( item )\" class=\"dual-select__item dual-select__item--new\"\r\n [class.dual-select__item--selected]=\"pendingSelection[ item.id ]\">\r\n <span>{{ item.name }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-list>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"text-align-center\">\r\n <button mat-raised-button color=\"primary\" (click)=\"selectedOutputItems()\" class=\"dual-list-btn\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n</div>", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.main{font-size:16px;font-weight:400;line-height:24px;font-family:Roboto,sans-serif;letter-spacing:.03125em}.ruc-custom-theme{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-option{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal)}.ruc-custom-theme .mat-mdc-card-title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-headline6-font-size, 20px);line-height:var(--mdc-typography-headline6-line-height, 32px);font-weight:var(--mdc-typography-headline6-font-weight, 500);letter-spacing:var(--mdc-typography-headline6-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-transform:var(--mdc-typography-headline6-text-transform, none)}.ruc-custom-theme .mat-mdc-card-subtitle{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-mdc-tooltip{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-form-field-infix{min-height:56px}.ruc-custom-theme .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:28px}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -34.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:24px;padding-bottom:8px}.ruc-custom-theme .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mdc-text-field__input,.ruc-custom-theme .mdc-text-field__affix{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mdc-text-field--textarea .mdc-text-field__input{line-height:1.5rem}.ruc-custom-theme .mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field-subscript-wrapper,.ruc-custom-theme .mat-mdc-form-field-bottom-align:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field,.ruc-custom-theme .mat-mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(15px * var(--mat-mdc-form-field-floating-label-scale, .75))}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:15px}.ruc-custom-theme .mat-mdc-select-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-select{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-autocomplete-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-dialog-container{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: normal;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 15px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-chip{height:32px}.ruc-custom-theme .mat-mdc-standard-chip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-slide-toggle{--mdc-switch-state-layer-size: 48px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio{padding:10px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{top:-10px;left:-10px;width:40px;height:40px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:0;right:0;left:0;width:40px;height:40px}.ruc-custom-theme .mat-mdc-slider{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 20px;--mdc-slider-label-label-text-line-height: 24px;--mdc-slider-label-label-text-tracking: normal;--mdc-slider-label-label-text-weight: 500}.ruc-custom-theme .mat-mdc-menu-content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-menu-content,.ruc-custom-theme .mat-mdc-menu-content .mat-mdc-menu-item .mdc-list-item__primary-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 15px;--mdc-list-list-item-label-text-tracking: normal;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: normal;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: normal;--mdc-list-list-item-trailing-supporting-text-weight: 400}.ruc-custom-theme .mdc-list-group__subheader{font-size:16px;font-weight:400;line-height:28px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-form-field-infix{min-height:40px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:20px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -26.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label{display:none}.ruc-custom-theme .mat-mdc-paginator-container{min-height:56px}.ruc-custom-theme .mat-mdc-paginator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-select-value{font-size:12px}.ruc-custom-theme .mat-mdc-tab-header .mdc-tab{height:48px}.ruc-custom-theme .mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:var(--mdc-checkbox-touch-target-size, 40px);height:var(--mdc-checkbox-touch-target-size, 40px)}@media all and (-ms-high-contrast: none){.ruc-custom-theme .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.ruc-custom-theme .mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-raised-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-unelevated-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-outlined-button.mat-mdc-button-base{height:36px}.ruc-custom-theme .mdc-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base{width:48px;height:48px;padding:12px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:4px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%,-50%)}.ruc-custom-theme .mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-snack-bar-container{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}.ruc-custom-theme .mat-mdc-table .mdc-data-table__row{height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__pagination{min-height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__header-row{height:56px}.ruc-custom-theme .mdc-data-table__content,.ruc-custom-theme .mdc-data-table__cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mdc-data-table__header-cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-badge{position:relative}.ruc-custom-theme .mat-badge.mat-badge{overflow:visible}.ruc-custom-theme .mat-badge-hidden .mat-badge-content{display:none}.ruc-custom-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ruc-custom-theme .ng-animate-disabled .mat-badge-content,.ruc-custom-theme .mat-badge-content._mat-animation-noopable{transition:none}.ruc-custom-theme .mat-badge-content.mat-badge-active{transform:none}.ruc-custom-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.ruc-custom-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.ruc-custom-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.ruc-custom-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.ruc-custom-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.ruc-custom-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.ruc-custom-theme .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,sans-serif}.ruc-custom-theme .mat-badge-small .mat-badge-content{font-size:9px}.ruc-custom-theme .mat-badge-large .mat-badge-content{font-size:24px}.ruc-custom-theme .mat-bottom-sheet-container{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.ruc-custom-theme .mat-button-toggle{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:0}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:40px;left:50%;width:40px;transform:translate(-50%,-50%)}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target{display:none}.ruc-custom-theme .mat-calendar{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-body{font-size:13px}.ruc-custom-theme .mat-calendar-body-label,.ruc-custom-theme .mat-calendar-period-button{font-size:20px;font-weight:500}.ruc-custom-theme .mat-calendar-table-header th{font-size:11px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-header{height:48px}.ruc-custom-theme .mat-expansion-panel-header.mat-expanded{height:64px}.ruc-custom-theme .mat-expansion-panel-header{font-family:Roboto,sans-serif;font-size:15px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-content{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-grid-tile-header,.ruc-custom-theme .mat-grid-tile-footer{font-size:14px}.ruc-custom-theme .mat-grid-tile-header .mat-line,.ruc-custom-theme .mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.ruc-custom-theme .mat-grid-tile-header .mat-line:nth-child(n+2),.ruc-custom-theme .mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}.ruc-custom-theme .mat-horizontal-stepper-header{height:72px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.ruc-custom-theme .mat-vertical-stepper-header{padding:24px}.ruc-custom-theme .mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.ruc-custom-theme .mat-stepper-vertical,.ruc-custom-theme .mat-stepper-horizontal{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-step-label{font-size:14px;font-weight:400}.ruc-custom-theme .mat-step-sub-label-error{font-weight:400}.ruc-custom-theme .mat-step-label-error{font-size:20px}.ruc-custom-theme .mat-step-label-selected{font-size:20px;font-weight:500}.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:64px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:64px}@media (max-width: 599px){.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:56px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:56px}}.ruc-custom-theme .mat-toolbar,.ruc-custom-theme .mat-toolbar h1,.ruc-custom-theme .mat-toolbar h2,.ruc-custom-theme .mat-toolbar h3,.ruc-custom-theme .mat-toolbar h4,.ruc-custom-theme .mat-toolbar h5,.ruc-custom-theme .mat-toolbar h6{font-size:20px;font-weight:500;line-height:32px;font-family:Roboto,sans-serif;letter-spacing:normal;margin:0}.ruc-custom-theme .mat-tree-node{min-height:48px}.ruc-custom-theme .mat-tree{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-tree-node,.ruc-custom-theme .mat-nested-tree-node{font-weight:400;font-size:14px}.dual-list-container{display:flex;flex-direction:column}.list{border:1px solid #ccc;padding:10px;width:45%}:host{display:block;font-size:18px}.dual-select{display:flex;justify-content:center}.leftContainer,.rightContainer{flex:0 0 auto;margin:2%}.dual-select__left,.dual-select__right{border:1px solid lightgrey;height:400px;overflow-y:auto}.dual-select__controls{justify-content:center;display:flex;flex:0 0 auto;flex-direction:column;padding:0 10px}.dual-select__control{font-size:20px;height:37px;margin:10px 0}.dual-select__items{border:1px solid #cccccc;height:100%;list-style-type:none;margin:0;overflow:auto;overscroll-behavior:contain;padding:0}.dual-select__item{border-bottom:1px solid #cccccc;cursor:pointer;margin:0;padding:0 0 0 1em;user-select:none;-moz-user-select:none;-webkit-user-select:none}.dual-select__item:last-child{border-bottom-width:0px}.dual-select__item--selected{background-color:#bfd5ff}.dual-select__item--new{animation-duration:2s;animation-name:dual-select-item-new-fade-in;animation-timing-function:ease-out}@keyframes dual-select-item-new-fade-in{0%{background-color:#fff}25%{background-color:#bfd5ff}to{background-color:#fff}}.contact{font-family:monospace,sans-serif;padding:8px 10px}.contact__name{font-size:18px;font-weight:700;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact__email{font-size:15px;line-height:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note{font-family:monospace,sans-serif;font-size:16px}.search_Box{width:90%;height:67px}.list_container{padding:0}.btn_container{position:relative;top:30px;right:8%}.submit_Btn{position:absolute;bottom:0}@media screen and (max-width: 900px){.dual-select{display:inline-flex;height:400px;margin:6% 1% 1%}}.text-align-center{text-align:center}.dual-list-btn{font-size:14px;padding:.4em 1em}\n"] }]
213
214
  }], ctorParameters: function () { return [{ type: i1.FilterPipe }]; }, propDecorators: { dataSource: [{
214
215
  type: Input
215
216
  }], rucInputData: [{
@@ -219,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
219
220
  }], customTheme: [{
220
221
  type: Input
221
222
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1saXN0LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcnVjbGliL2R1YWwtbGlzdC1zZWxlY3Rvci9zcmMvbGliL2R1YWwtbGlzdC1zZWxlY3Rvci9kdWFsLWxpc3Qtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ydWNsaWIvZHVhbC1saXN0LXNlbGVjdG9yL3NyYy9saWIvZHVhbC1saXN0LXNlbGVjdG9yL2R1YWwtbGlzdC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFlLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7O0FBUXpGLE1BQU0sT0FBTyx5QkFBeUI7SUFlTSxDQUFDO0lBUTVDLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF0Qi9CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFdkIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFRakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFHMUIsOEJBQXlCLEdBQVUsRUFBRSxDQUFDO1FBR3BDLHVCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBVSxDQUFDO1FBR3RELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFLM0IsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMs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QUFNO1FBQ3RDLE9BQU0sQ0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBRSxDQUFDLENBQUMsSUFBSSxDQUFFLENBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDOzt1SEF0UFcseUJBQXlCOzJHQUF6Qix5QkFBeUIsb0xBRnpCLENBQUMsVUFBVSxDQUFDLDBCQ1Z6Qix1dUhBMEVNOzRGRDlETyx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usd0JBQXdCLGFBR3ZCLENBQUMsVUFBVSxDQUFDO2lHQUdkLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0UsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBlbmRpbmdTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1BlbmRpbmdTZWxlY3Rpb25JdGVtcyc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IEZpbHRlclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9maWx0ZXIucGlwZSc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3V4cC1kdWFsLWxpc3Qtc2VsZWN0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kdWFsLWxpc3Qtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R1YWwtbGlzdC1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0ZpbHRlclBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHVhbExpc3RTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKSBkYXRhU291cmNlOiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHJ1Y0lucHV0RGF0YTogYW55O1xyXG5cdEBPdXRwdXQoKSBydWNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRASW5wdXQoKSBjdXN0b21UaGVtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRwdWJsaWMgaGVpZ2h0OiBhbnk7XHJcblx0cHVibGljIHdpZHRoOiBhbnk7XHJcblx0cHVibGljIHBlcnNpc3RPblJlZnJlc2g6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcblxyXG5cdHB1YmxpYyBwZW5kaW5nU2VsZWN0aW9uITogUGVuZGluZ1NlbGVjdGlvbjtcclxuXHRwdWJsaWMgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcclxuXHRwdWJsaWMgdW5zZWxlY3RlZEl0ZW1zITogYW55W107XHJcblxyXG5cdHB1YmxpYyBzZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoOiBhbnlbXSA9IFtdO1xyXG5cdHB1YmxpYyB1bnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2ghOiBhbnlbXTs7XHJcblxyXG5cdHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUiwgQ09NTUFdIGFzIGNvbnN0O1xyXG5cdHB1YmxpYyBzZWFyY2hUZXh0ITogc3RyaW5nO1xyXG5cdHB1YmxpYyBzZWFyY2hUZXh0U2VsZWN0ZWQhOiBzdHJpbmc7XHJcblx0ZGlyZWN0aW9uX3Vuc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRkaXJlY3Rpb25fc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IocHVibGljIGZpbHRlclBpcGU6IEZpbHRlclBpcGUpIHtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmhlaWdodCA9IHRoaXMucnVjSW5wdXREYXRhLmhlaWdodDtcclxuXHRcdHRoaXMud2lkdGggPSB0aGlzLnJ1Y0lucHV0RGF0YS53aWR0aDtcclxuXHRcdHRoaXMucGVyc2lzdE9uUmVmcmVzaCA9IHRoaXMucnVjSW5wdXREYXRhLnBlcnNpc3RPblJlZnJlc2g7XHJcblxyXG5cdFx0Y29uc3Qgc3RvcmVkVW5zZWxlY3RlZEl0ZW1zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndW5zZWxlY3RlZEl0ZW1zJyk7XHJcblx0XHRjb25zdCBzdG9yZWRTZWxlY3RlZEl0ZW1zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnc2VsZWN0ZWRJdGVtcycpO1xyXG5cdFx0aWYoc3RvcmVkVW5zZWxlY3RlZEl0ZW1zICYmIHN0b3JlZFVuc2VsZWN0ZWRJdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgc3RvcmVkU2VsZWN0ZWRJdGVtcyAmJiBzdG9yZWRTZWxlY3RlZEl0ZW1zICE9PSAndW5kZWZpbmVkJyl7XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1bnNlbGVjdGVkSXRlbXMnKSBhcyBhbnkpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3NlbGVjdGVkSXRlbXMnKSBhcyBhbnkpO1xyXG5cdFx0fWVsc2V7XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy5kYXRhU291cmNlLnNsaWNlKCkuc29ydCggdGhpcy5zb3J0SXRlbU9wZXJhdG9yICk7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IHRoaXMudW5zZWxlY3RlZEl0ZW1zO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xyXG5cdFx0dGhpcy5wZW5kaW5nU2VsZWN0aW9uID0gT2JqZWN0LmNyZWF0ZSggbnVsbCApO1xyXG5cdH1cclxuXHJcbiAgXHQvKipcclxuXHQgKiBzYXZlIGxpc3RzIHRvIHN0b3JhZ2VcclxuXHQgKiBAcGFyYW0gIHNlbGVjdGVkIGFuZCB1bnNlbGVjdGVkIGxpc3RcclxuXHQgKiBAcmV0dXJuIG5vbmVcclxuXHQgKi9cclxuXHRwdWJsaWMgc2F2ZVRvU3RvcmFnZShzZWxlY3RlZDogYW55W10sIHVuc2VsZWN0ZWQ6IGFueVtdKXtcclxuXHRcdGlmKHRoaXMucGVyc2lzdE9uUmVmcmVzaCl7XHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3NlbGVjdGVkSXRlbXMnLCBKU09OLnN0cmluZ2lmeShzZWxlY3RlZCkpO1xyXG5cdFx0XHRzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd1bnNlbGVjdGVkSXRlbXMnLCBKU09OLnN0cmluZ2lmeSh1bnNlbGVjdGVkKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuICBcdC8qKlxyXG5cdCAqIGFkZCB0aGUgc2VsZWN0ZWQgaXRlbSBvciBkYXRhU291cmNlIHRvIHRoZSBzZWxlY3RlZCBkYXRhU291cmNlIGNvbGxlY3Rpb25cclxuXHQgKiBAcGFyYW0gIGl0ZW0gdG8gYmUgYWRkZWRcclxuXHQgKiBAcmV0dXJuIG5vbmVcclxuXHQgKi9cclxuXHRwdWJsaWMgYWRkVG9TZWxlY3RlZEl0ZW1zKCBpdGVtPzogYW55ICkgOiB2b2lkIHtcclxuY29uc29sZS5sb2coXCJpdGVtPVwiLGl0ZW0pO1xyXG5cdFx0Y29uc3QgY2hhbmdlSXRlbXMgPSAoIGl0ZW0gKVxyXG5cdFx0XHQ/IFsgaXRlbSBdXHJcblx0XHRcdDogdGhpcy5nZXRQZW5kaW5nU2VsZWN0aW9uRnJvbUNvbGxlY3Rpb24oIHRoaXMudW5zZWxlY3RlZEl0ZW1zICk7XHJcblxyXG5cdFx0dGhpcy5wZW5kaW5nU2VsZWN0aW9uID0gT2JqZWN0LmNyZWF0ZSggbnVsbCApO1xyXG5cdFx0dGhpcy51bnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlbW92ZUl0ZW1zRnJvbUNvbGxlY3Rpb24oIHRoaXMudW5zZWxlY3RlZEl0ZW1zLCBjaGFuZ2VJdGVtcyApO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gY2hhbmdlSXRlbXMuY29uY2F0KCB0aGlzLnNlbGVjdGVkSXRlbXMgKTtcclxuXHRcdHRoaXMuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IHRoaXMuc2VsZWN0ZWRJdGVtczsgXHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IHRoaXMudW5zZWxlY3RlZEl0ZW1zO1xyXG5cdFx0dGhpcy5zYXZlVG9TdG9yYWdlKHRoaXMuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCwgdGhpcy51bnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2gpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQWRkIGFsbCBpdGVtcyB0byBzZWxlY3RlZCBsaXN0XHJcblx0ICogQHBhcmFtICBub25lXHJcblx0ICogQHJldHVybiBub25lXHJcblx0ICovXHJcblx0cHVibGljIGFkZEFsbFRvU2VsZWN0ZWRJdGVtcygpIDogdm9pZCB7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmRhdGFTb3VyY2U7XHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG5cdFx0dGhpcy5zYXZlVG9TdG9yYWdlKHRoaXMuc2VsZWN0ZWRJdGVtcywgdGhpcy51bnNlbGVjdGVkSXRlbXMpO1xyXG5cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHJlbW92ZSBhbGwgaXRlbXMgZnJvbSBzZWxlY3RlZCBsaXN0XHJcblx0ICogQHBhcmFtICBub25lXHJcblx0ICogQHJldHVybiAgbm9uZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZW1vdmVBbGxGcm9tU2VsZWN0ZWRJdGVtcygpIDogdm9pZCB7XHJcbiAgICBcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy5kYXRhU291cmNlO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcblx0XHR0aGlzLnNhdmVUb1N0b3JhZ2UodGhpcy5zZWxlY3RlZEl0ZW1zLCB0aGlzLnVuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgXHR9XHJcblxyXG4gIFx0LyoqXHJcblx0ICogd2hlbiBkcmFnIGFuZCBkcm9wIGV2ZW50IG9jY3Vyc1xyXG5cdCAqIEBwYXJhbSAgZXZlbnRcclxuXHQgKiBAcmV0dXJuICBub25lXHJcblx0ICovXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4LFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIFNvcnQgb24gY2xpY2sgb2Ygc29ydGluZyBpY29uXHJcblx0ICogQHBhcmFtICB0eXBlIHdoZXRoZXIgaXQncyBpbmNyZWFzaW5nIG9yIGRlY3JlYXNpbmdcclxuXHQgKiBAcmV0dXJuICBub25lXHJcblx0ICovXHJcbiAgc29ydE9uQ2xpY2sodHlwZTpzdHJpbmcpIHtcclxuXHJcblx0XHRpZih0aGlzLmRpcmVjdGlvbl91bnNlbGVjdGVkICYmIHR5cGU9PSBcInVuc2VsZWN0ZWRcIil7XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy51bnNlbGVjdGVkSXRlbXMuc29ydCgoYSwgYikgPT4gYi5uYW1lLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShhLm5hbWUudG9Mb3dlckNhc2UoKSkpO1xyXG5cdFx0XHR0aGlzLmRpcmVjdGlvbl91bnNlbGVjdGVkID0gIXRoaXMuZGlyZWN0aW9uX3Vuc2VsZWN0ZWQ7XHJcblx0XHR9ZWxzZSBpZighdGhpcy5kaXJlY3Rpb25fdW5zZWxlY3RlZCAmJiB0eXBlPT0gXCJ1bnNlbGVjdGVkXCIpIHtcclxuXHRcdFx0dGhpcy51bnNlbGVjdGVkSXRlbXMgPSB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSlcclxuXHRcdFx0dGhpcy5kaXJlY3Rpb25fdW5zZWxlY3RlZCA9ICF0aGlzLmRpcmVjdGlvbl91bnNlbGVjdGVkO1xyXG5cdFx0fVxyXG5cdFx0aWYodGhpcy5kaXJlY3Rpb25fc2VsZWN0ZWQgJiYgdHlwZT09IFwic2VsZWN0ZWRcIil7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5zb3J0KChhLCBiKSA9PiBiLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGEubmFtZS50b0xvd2VyQ2FzZSgpKSk7XHJcblx0XHRcdHRoaXMuZGlyZWN0aW9uX3NlbGVjdGVkID0gIXRoaXMuZGlyZWN0aW9uX3NlbGVjdGVkO1xyXG5cdFx0fWVsc2UgaWYoIXRoaXMuZGlyZWN0aW9uX3NlbGVjdGVkICYmIHR5cGU9PSBcInNlbGVjdGVkXCIpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvcnQoKGEsIGIpID0+IGEubmFtZS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5uYW1lLnRvTG93ZXJDYXNlKCkpKVxyXG5cdFx0XHR0aGlzLmRpcmVjdGlvbl9zZWxlY3RlZCA9ICF0aGlzLmRpcmVjdGlvbl9zZWxlY3RlZDtcclxuXHRcdH1cclxuXHRcclxuICB9XHJcblxyXG4gIFx0LyoqXHJcblx0ICogcmVtb3ZlIHRoZSBzZWxlY3RlZCBpdGVtIG9yIGRhdGFTb3VyY2UgZnJvbSB0aGUgc2VsZWN0ZWQgZGF0YVNvdXJjZSBjb2xsZWN0aW9uXHJcblx0ICogQHBhcmFtICBpdGVtIHRvIGJlIHJlbW92ZWRcclxuXHQgKiBAcmV0dXJuICBcclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlRnJvbVNlbGVjdGVkSXRlbXMoIGl0ZW0/OiBhbnkgKSA6IHZvaWQge1xyXG5cclxuXHRcdGNvbnN0IGNoYW5nZUl0ZW1zID0gKCBpdGVtIClcclxuXHRcdFx0PyBbIGl0ZW0gXVxyXG5cdFx0XHQ6IHRoaXMuZ2V0UGVuZGluZ1NlbGVjdGlvbkZyb21Db2xsZWN0aW9uKCB0aGlzLnNlbGVjdGVkSXRlbXMgKTtcclxuXHJcblx0XHR0aGlzLnBlbmRpbmdTZWxlY3Rpb24gPSBPYmplY3QuY3JlYXRlKCBudWxsICk7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlbW92ZUl0ZW1zRnJvbUNvbGxlY3Rpb24oIHRoaXMuc2VsZWN0ZWRJdGVtcywgY2hhbmdlSXRlbXMgKTtcclxuXHRcdGNvbnN0IGNoYW5nZWREYXRhPSBjaGFuZ2VJdGVtc1xyXG5cdFx0XHQuY29uY2F0KCB0aGlzLnVuc2VsZWN0ZWRJdGVtcyApXHJcblx0XHRcdC5zb3J0KCB0aGlzLnNvcnRJdGVtT3BlcmF0b3IgKTtcclxuXHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gY2hhbmdlZERhdGE7XHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IGNoYW5nZWREYXRhO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoID0gdGhpcy5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoO1xyXG5cdFx0dGhpcy5zYXZlVG9TdG9yYWdlKHRoaXMuc2VsZWN0ZWRJdGVtcywgdGhpcy51bnNlbGVjdGVkSXRlbXMpO1xyXG5cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHRvZ2dsZSB0aGUgcGVuZGluZyBzZWxlY3Rpb24gZm9yIHRoZSBnaXZlbiBpdGVtXHJcblx0ICogQHBhcmFtICBpdGVtIHRvIHRvZ2dsZVxyXG5cdCAqIEByZXR1cm4gIG5vbmVcclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlUGVuZGluZ1NlbGVjdGlvbiggaXRlbTphbnkgKSA6IHZvaWQge1xyXG5cdFx0dGhpcy5wZW5kaW5nU2VsZWN0aW9uWyBpdGVtLmlkIF0gPSAhIHRoaXMucGVuZGluZ1NlbGVjdGlvblsgaXRlbS5pZCBdO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRmlsdGVyIHRoZSBkYXRhIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbnB1dFxyXG5cdCAqIEBwYXJhbSAgc2VhcmNodmFsdWUgaW5wdXQgbGFiZWwgcHJvdmlkZWQgaW4gc2VhcmNoIGJveFxyXG5cdCAqIEByZXR1cm4gIG5vbmVcclxuXHQgKi9cclxuXHRmaWx0ZXJEYXRhKHNlYXJjaHZhbHVlOiBhbnksIHR5cGU6IHN0cmluZyk6IGFueSB7XHJcblx0XHRpZih0eXBlID09PSAndW5zZWxlY3RlZCcpe1xyXG5cdFx0XHRpZihzZWFyY2h2YWx1ZSA9PT0gXCJcIil7XHJcblx0XHRcdFx0dGhpcy51bnNlbGVjdGVkSXRlbXM9IHRoaXMudW5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy5maWx0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCwgc2VhcmNodmFsdWUsICduYW1lJyk7XHJcblx0XHR9XHJcblx0XHRlbHNle1xyXG5cdFx0XHRpZihzZWFyY2h2YWx1ZSA9PT0gXCJcIil7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zPSB0aGlzLnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2g7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5maWx0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2gsIHNlYXJjaHZhbHVlLCAnbmFtZScpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQvKipcclxuXHQgKiBnYXRoZXIgdGhlIGRhdGFTb3VyY2UgaW4gdGhlIGdpdmVuIGNvbGxlY3Rpb24gdGhhdCBhcmUgcGFydCBvZiB0aGUgY3VycmVudCBwZW5kaW5nIHNlbGVjdGlvblxyXG5cdCAqIEBwYXJhbSAgY29sbGVjdGlvbiBpbnB1dCBsYWJlbCBwcm92aWRlZCBpbiBzZWFyY2ggYm94XHJcblx0ICogQHJldHVybiAgc2VsZWN0ZWQgaXRlbXNcclxuXHQgKi9cclxuXHJcblx0cHVibGljIGdldFBlbmRpbmdTZWxlY3Rpb25Gcm9tQ29sbGVjdGlvbiggY29sbGVjdGlvbjogYW55W10gKSA6IGFueVtdIHtcclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25Gcm9tQ29sbGVjdGlvbiA9IGNvbGxlY3Rpb24uZmlsdGVyKFxyXG5cdFx0XHQoIGl0ZW0gKSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuKCBpdGVtLmlkIGluIHRoaXMucGVuZGluZ1NlbGVjdGlvbiApO1xyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cclxuXHRcdHJldHVybiggc2VsZWN0aW9uRnJvbUNvbGxlY3Rpb24gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiByZW1vdmUgdGhlIGdpdmVuIGRhdGFTb3VyY2UgZnJvbSB0aGUgZ2l2ZW4gY29sbGVjdGlvblxyXG5cdCAqIEBwYXJhbSAgY29sbGVjdGlvbiBhbmQgSXRlbXNUb1JlbW92ZVxyXG5cdCAqIEByZXR1cm4gIGEgbmV3IGNvbGxlY3Rpb25cclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlSXRlbXNGcm9tQ29sbGVjdGlvbihcclxuXHRcdGNvbGxlY3Rpb246IGFueVtdLFxyXG5cdFx0SXRlbXNUb1JlbW92ZTogYW55W11cclxuXHRcdCkgOiBhbnlbXSB7XHJcblxyXG5cdFx0Y29uc3QgY29sbGVjdGlvbldpdGhvdXRJdGVtcyA9IGNvbGxlY3Rpb24uZmlsdGVyKFxyXG5cdFx0XHQoIGl0ZW0gKSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuKCAhIEl0ZW1zVG9SZW1vdmUuaW5jbHVkZXMoIGl0ZW0gKSApO1xyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cclxuXHRcdHJldHVybiggY29sbGVjdGlvbldpdGhvdXRJdGVtcyApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHByb3ZpZGUgdGhlIHNvcnQgb3BlcmF0b3IgZm9yIHRoZSBkYXRhU291cmNlIGNvbGxlY3Rpb25cclxuXHQgKiBAcGFyYW0gIHR3byB2YWx1ZXMgdG8gY29tcGFyZVxyXG5cdCAqIEByZXR1cm4gIGEgdmFsdWUgYmFzZWQgb24gdGhlIHNvcnRpbmdcclxuXHQgKi9cclxuXHRwdWJsaWMgc29ydEl0ZW1PcGVyYXRvciggYTogYW55LCBiOiBhbnkgKSA6IG51bWJlciB7XHJcblx0XHRyZXR1cm4oIGEubmFtZS5sb2NhbGVDb21wYXJlKCBiLm5hbWUgKSApO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0ZWRPdXRwdXRJdGVtcygpIHtcclxuXHRcdHRoaXMucnVjRXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG5cdH1cclxufVxyXG4gIiwiPGRpdiBjbGFzcz1cInt7Y3VzdG9tVGhlbWV9fVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkdWFsLWxpc3QtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHVhbC1zZWxlY3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxlZnRDb250YWluZXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGggc2VhcmNoX0JveFwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCJydWNJbnB1dERhdGEuZW5hYmxlU2VhcmNoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJmaWx0ZXJEYXRhKHNlYXJjaFRleHQsICd1bnNlbGVjdGVkJylcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleFwiICpuZ0lmPVwicnVjSW5wdXREYXRhLnNvcnRpbmdcIj48bWF0LWljb24gKGNsaWNrKT1cInNvcnRPbkNsaWNrKCd1bnNlbGVjdGVkJylcIj57eyAhZGlyZWN0aW9uX3Vuc2VsZWN0ZWQgPyAnYXJyb3dfZHJvcF9kb3duJyA6XHJcbiAgICAgICAgICAgICdhcnJvd19kcm9wX3VwJyB9fTwvbWF0LWljb24+IDwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHVhbC1zZWxlY3RfX2xlZnRcIiBbbmdTdHlsZV09XCJ7J21heC1oZWlnaHQucHgnOiBoZWlnaHQsICd3aWR0aC5weCc6IHdpZHRofVwiPlxyXG4gICAgICAgICAgPG1hdC1saXN0IHJvbGU9XCJsaXN0XCIgY2xhc3M9XCJsaXN0X2NvbnRhaW5lclwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAjdG9kb0xpc3Q9XCJjZGtEcm9wTGlzdFwiIFtjZGtEcm9wTGlzdERhdGFdPVwidW5zZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZG9uZUxpc3RdXCIgY2xhc3M9XCJleGFtcGxlLWxpc3RcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIHJvbGU9XCJsaXN0aXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVuc2VsZWN0ZWRJdGVtc1wiIGNka0RyYWcgW2Rpc2FibGVkXT1cIiFpdGVtLmRpc2FibGVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBlbmRpbmdTZWxlY3Rpb24oIGl0ZW0gKVwiIChkYmxjbGljayk9XCJhZGRUb1NlbGVjdGVkSXRlbXMoIGl0ZW0gKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImR1YWwtc2VsZWN0X19pdGVtXCIgW2NsYXNzLmR1YWwtc2VsZWN0X19pdGVtLS1zZWxlY3RlZF09XCJwZW5kaW5nU2VsZWN0aW9uWyBpdGVtLmlkIF1cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtbGlzdD5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHVhbC1zZWxlY3RfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkVG9TZWxlY3RlZEl0ZW1zKClcIiBjbGFzcz1cImR1YWwtc2VsZWN0X19jb250cm9sXCI+XHJcbiAgICAgICAgICAmIzEwMjM2O1xyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlbW92ZUZyb21TZWxlY3RlZEl0ZW1zKClcIiBjbGFzcz1cImR1YWwtc2VsZWN0X19jb250cm9sXCI+XHJcbiAgICAgICAgICAmIzEwMjM1O1xyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZEFsbFRvU2VsZWN0ZWRJdGVtcygpXCIgY2xhc3M9XCJkdWFsLXNlbGVjdF9fY29udHJvbFwiPlxyXG4gICAgICAgICAgJiMxMDUwMztcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJyZW1vdmVBbGxGcm9tU2VsZWN0ZWRJdGVtcygpXCIgY2xhc3M9XCJkdWFsLXNlbGVjdF9fY29udHJvbFwiPlxyXG4gICAgICAgICAgJiMxMDUwMjtcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodENvbnRhaW5lclwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aCBzZWFyY2hfQm94XCIgYXBwZWFyYW5jZT1cImZpbGxcIiAqbmdJZj1cInJ1Y0lucHV0RGF0YS5lbmFibGVTZWFyY2hcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgKGtleXVwKT1cImZpbHRlckRhdGEoc2VhcmNoVGV4dFNlbGVjdGVkLCAnc2VsZWN0ZWQnKVwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFNlbGVjdGVkXCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXhcIiAqbmdJZj1cInJ1Y0lucHV0RGF0YS5zb3J0aW5nXCI+PG1hdC1pY29uIChjbGljayk9XCJzb3J0T25DbGljaygnc2VsZWN0ZWQnKVwiPnt7ICFkaXJlY3Rpb25fc2VsZWN0ZWQgPyAnYXJyb3dfZHJvcF9kb3duJyA6XHJcbiAgICAgICAgICAgICdhcnJvd19kcm9wX3VwJyB9fTwvbWF0LWljb24+IDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImR1YWwtc2VsZWN0X19yaWdodFwiIFtuZ1N0eWxlXT1cInsnbWF4LWhlaWdodC5weCc6IGhlaWdodCwgJ3dpZHRoLnB4Jzogd2lkdGh9XCI+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICA8bWF0LWxpc3Qgcm9sZT1cImxpc3RcIiBjbGFzcz1cImxpc3RfY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgI2RvbmVMaXN0PVwiY2RrRHJvcExpc3RcIiBbY2RrRHJvcExpc3REYXRhXT1cInNlbGVjdGVkSXRlbXNcIlxyXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIlt0b2RvTGlzdF1cIiBjbGFzcz1cImV4YW1wbGUtbGlzdFwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIGNka0RyYWcgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtc1wiIChjbGljayk9XCJ0b2dnbGVQZW5kaW5nU2VsZWN0aW9uKCBpdGVtIClcIlxyXG4gICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cInJlbW92ZUZyb21TZWxlY3RlZEl0ZW1zKCBpdGVtIClcIiBjbGFzcz1cImR1YWwtc2VsZWN0X19pdGVtIGR1YWwtc2VsZWN0X19pdGVtLS1uZXdcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmR1YWwtc2VsZWN0X19pdGVtLS1zZWxlY3RlZF09XCJwZW5kaW5nU2VsZWN0aW9uWyBpdGVtLmlkIF1cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtbGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3RlZE91dHB1dEl0ZW1zKClcIiBjbGFzcz1cImR1YWwtbGlzdC1idG5cIj5cclxuICAgICAgICBTdWJtaXRcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1saXN0LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZHVhbC1saXN0LXNlbGVjdG9yL2R1YWwtbGlzdC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2R1YWwtbGlzdC1zZWxlY3Rvci9kdWFsLWxpc3Qtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBZSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFRekYsTUFBTSxPQUFPLHlCQUF5QjtJQWVNLENBQUM7SUFRNUMsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXRCL0IsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUV2QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVFqQyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUcxQiw4QkFBeUIsR0FBVSxFQUFFLENBQUM7UUFHcEMsdUJBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7UUFHdEQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztJQUszQixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztRQUUzRCxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RSxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEUsSUFBRyxxQkFBcUIsSUFBSSxxQkFBcUIsS0FBSyxXQUFXLElBQUksbUJBQW1CLElBQUksbUJBQW1CLEtBQUssV0FBVyxFQUFDO1lBQy9ILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFRLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQVEsQ0FBQyxDQUFDO1NBQ2hGO2FBQUk7WUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxDQUFDO1lBQzdFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDeEQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVDOzs7O09BSUM7SUFDSSxhQUFhLENBQUMsUUFBZSxFQUFFLFVBQWlCO1FBQ3RELElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO1lBQ3hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNsRSxjQUFjLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUN0RTtJQUNGLENBQUM7SUFFQzs7OztPQUlDO0lBQ0ksa0JBQWtCLENBQUUsSUFBVTtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxDQUFFLElBQUksQ0FBRTtZQUMzQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUU7WUFDVixDQUFDLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFFLElBQUksQ0FBQyxlQUFlLENBQUUsQ0FBQztRQUVsRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBRSxJQUFJLENBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBRSxDQUFDO1FBQzNGLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBRSxJQUFJLENBQUMsYUFBYSxDQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDcEQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFOUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSwwQkFBMEI7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUM7SUFDRixJQUFJLENBQUMsS0FBNEI7UUFDL0IsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUMvQyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEY7YUFBTTtZQUNMLGlCQUFpQixDQUNmLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQzVCLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNwQixLQUFLLENBQUMsYUFBYSxFQUNuQixLQUFLLENBQUMsWUFBWSxDQUNuQixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBR0Y7Ozs7T0FJRztJQUNGLFdBQVcsQ0FBQyxJQUFXO1FBRXZCLElBQUcsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksSUFBRyxZQUFZLEVBQUM7WUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUN2RDthQUFLLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxJQUFHLFlBQVksRUFBRTtZQUMzRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDcEgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1NBQ3ZEO1FBQ0QsSUFBRyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxJQUFHLFVBQVUsRUFBQztZQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakgsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ25EO2FBQUssSUFBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUcsVUFBVSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNoSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDbkQ7SUFFRCxDQUFDO0lBRUE7Ozs7T0FJQztJQUNJLHVCQUF1QixDQUFFLElBQVU7UUFFekMsTUFBTSxXQUFXLEdBQUcsQ0FBRSxJQUFJLENBQUU7WUFDM0IsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFFO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBRSxJQUFJLENBQUMsYUFBYSxDQUFFLENBQUM7UUFFaEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUUsQ0FBQztRQUN2RixNQUFNLFdBQVcsR0FBRSxXQUFXO2FBQzVCLE1BQU0sQ0FBRSxJQUFJLENBQUMsZUFBZSxDQUFFO2FBQzlCLElBQUksQ0FBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztRQUNuQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsV0FBVyxDQUFDO1FBQy9DLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU5RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFzQixDQUFFLElBQVE7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFFLElBQUksQ0FBQyxFQUFFLENBQUUsR0FBRyxDQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxJQUFJLENBQUMsRUFBRSxDQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsV0FBZ0IsRUFBRSxJQUFZO1FBQ3hDLElBQUcsSUFBSSxLQUFLLFlBQVksRUFBQztZQUN4QixJQUFHLFdBQVcsS0FBSyxFQUFFLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDO2FBQ3ZEO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3hHO2FBQ0c7WUFDSCxJQUFHLFdBQVcsS0FBSyxFQUFFLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDO2FBQ25EO1lBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3BHO0lBQ0YsQ0FBQztJQUVEOzs7O09BSUc7SUFFSSxpQ0FBaUMsQ0FBRSxVQUFpQjtRQUUxRCxNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQ2hELENBQUUsSUFBSSxFQUFHLEVBQUU7WUFDVixPQUFNLENBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUUsQ0FBQztRQUM1QyxDQUFDLENBQ0QsQ0FBQztRQUVGLE9BQU0sQ0FBRSx1QkFBdUIsQ0FBRSxDQUFDO0lBRW5DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQXlCLENBQy9CLFVBQWlCLEVBQ2pCLGFBQW9CO1FBR3BCLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDL0MsQ0FBRSxJQUFJLEVBQUcsRUFBRTtZQUNWLE9BQU0sQ0FBRSxDQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUUsSUFBSSxDQUFFLENBQUUsQ0FBQztRQUM1QyxDQUFDLENBQ0QsQ0FBQztRQUVGLE9BQU0sQ0FBRSxzQkFBc0IsQ0FBRSxDQUFDO0lBRWxDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUUsQ0FBTSxFQUFFLENBQU07UUFDdEMsT0FBTSxDQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFFLENBQUMsQ0FBQyxJQUFJLENBQUUsQ0FBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUI7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O3VIQXRQVyx5QkFBeUI7MkdBQXpCLHlCQUF5QiwyTEFGekIsQ0FBQyxVQUFVLENBQUMsMEJDVnpCLDg3SEE0RU07NEZEaEVPLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSwrQkFBK0IsYUFHOUIsQ0FBQyxVQUFVLENBQUM7aUdBR2QsVUFBVTtzQkFBbEIsS0FBSztnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGVuZGluZ1NlbGVjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUGVuZGluZ1NlbGVjdGlvbkl0ZW1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgRmlsdGVyUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2ZpbHRlci5waXBlJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndXhwLXJ1Y2xpYi1kdWFsLWxpc3Qtc2VsZWN0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kdWFsLWxpc3Qtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R1YWwtbGlzdC1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0ZpbHRlclBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHVhbExpc3RTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKSBkYXRhU291cmNlOiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHJ1Y0lucHV0RGF0YTogYW55O1xyXG5cdEBPdXRwdXQoKSBydWNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRASW5wdXQoKSBjdXN0b21UaGVtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRwdWJsaWMgaGVpZ2h0OiBhbnk7XHJcblx0cHVibGljIHdpZHRoOiBhbnk7XHJcblx0cHVibGljIHBlcnNpc3RPblJlZnJlc2g6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcblxyXG5cdHB1YmxpYyBwZW5kaW5nU2VsZWN0aW9uITogUGVuZGluZ1NlbGVjdGlvbjtcclxuXHRwdWJsaWMgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcclxuXHRwdWJsaWMgdW5zZWxlY3RlZEl0ZW1zITogYW55W107XHJcblxyXG5cdHB1YmxpYyBzZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoOiBhbnlbXSA9IFtdO1xyXG5cdHB1YmxpYyB1bnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2ghOiBhbnlbXTs7XHJcblxyXG5cdHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUiwgQ09NTUFdIGFzIGNvbnN0O1xyXG5cdHB1YmxpYyBzZWFyY2hUZXh0ITogc3RyaW5nO1xyXG5cdHB1YmxpYyBzZWFyY2hUZXh0U2VsZWN0ZWQhOiBzdHJpbmc7XHJcblx0ZGlyZWN0aW9uX3Vuc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRkaXJlY3Rpb25fc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IocHVibGljIGZpbHRlclBpcGU6IEZpbHRlclBpcGUpIHtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmhlaWdodCA9IHRoaXMucnVjSW5wdXREYXRhLmhlaWdodDtcclxuXHRcdHRoaXMud2lkdGggPSB0aGlzLnJ1Y0lucHV0RGF0YS53aWR0aDtcclxuXHRcdHRoaXMucGVyc2lzdE9uUmVmcmVzaCA9IHRoaXMucnVjSW5wdXREYXRhLnBlcnNpc3RPblJlZnJlc2g7XHJcblxyXG5cdFx0Y29uc3Qgc3RvcmVkVW5zZWxlY3RlZEl0ZW1zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndW5zZWxlY3RlZEl0ZW1zJyk7XHJcblx0XHRjb25zdCBzdG9yZWRTZWxlY3RlZEl0ZW1zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnc2VsZWN0ZWRJdGVtcycpO1xyXG5cdFx0aWYoc3RvcmVkVW5zZWxlY3RlZEl0ZW1zICYmIHN0b3JlZFVuc2VsZWN0ZWRJdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgc3RvcmVkU2VsZWN0ZWRJdGVtcyAmJiBzdG9yZWRTZWxlY3RlZEl0ZW1zICE9PSAndW5kZWZpbmVkJyl7XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1bnNlbGVjdGVkSXRlbXMnKSBhcyBhbnkpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3NlbGVjdGVkSXRlbXMnKSBhcyBhbnkpO1xyXG5cdFx0fWVsc2V7XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy5kYXRhU291cmNlLnNsaWNlKCkuc29ydCggdGhpcy5zb3J0SXRlbU9wZXJhdG9yICk7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IHRoaXMudW5zZWxlY3RlZEl0ZW1zO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xyXG5cdFx0dGhpcy5wZW5kaW5nU2VsZWN0aW9uID0gT2JqZWN0LmNyZWF0ZSggbnVsbCApO1xyXG5cdH1cclxuXHJcbiAgXHQvKipcclxuXHQgKiBzYXZlIGxpc3RzIHRvIHN0b3JhZ2VcclxuXHQgKiBAcGFyYW0gIHNlbGVjdGVkIGFuZCB1bnNlbGVjdGVkIGxpc3RcclxuXHQgKiBAcmV0dXJuIG5vbmVcclxuXHQgKi9cclxuXHRwdWJsaWMgc2F2ZVRvU3RvcmFnZShzZWxlY3RlZDogYW55W10sIHVuc2VsZWN0ZWQ6IGFueVtdKXtcclxuXHRcdGlmKHRoaXMucGVyc2lzdE9uUmVmcmVzaCl7XHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3NlbGVjdGVkSXRlbXMnLCBKU09OLnN0cmluZ2lmeShzZWxlY3RlZCkpO1xyXG5cdFx0XHRzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd1bnNlbGVjdGVkSXRlbXMnLCBKU09OLnN0cmluZ2lmeSh1bnNlbGVjdGVkKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuICBcdC8qKlxyXG5cdCAqIGFkZCB0aGUgc2VsZWN0ZWQgaXRlbSBvciBkYXRhU291cmNlIHRvIHRoZSBzZWxlY3RlZCBkYXRhU291cmNlIGNvbGxlY3Rpb25cclxuXHQgKiBAcGFyYW0gIGl0ZW0gdG8gYmUgYWRkZWRcclxuXHQgKiBAcmV0dXJuIG5vbmVcclxuXHQgKi9cclxuXHRwdWJsaWMgYWRkVG9TZWxlY3RlZEl0ZW1zKCBpdGVtPzogYW55ICkgOiB2b2lkIHtcclxuY29uc29sZS5sb2coXCJpdGVtPVwiLGl0ZW0pO1xyXG5cdFx0Y29uc3QgY2hhbmdlSXRlbXMgPSAoIGl0ZW0gKVxyXG5cdFx0XHQ/IFsgaXRlbSBdXHJcblx0XHRcdDogdGhpcy5nZXRQZW5kaW5nU2VsZWN0aW9uRnJvbUNvbGxlY3Rpb24oIHRoaXMudW5zZWxlY3RlZEl0ZW1zICk7XHJcblxyXG5cdFx0dGhpcy5wZW5kaW5nU2VsZWN0aW9uID0gT2JqZWN0LmNyZWF0ZSggbnVsbCApO1xyXG5cdFx0dGhpcy51bnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlbW92ZUl0ZW1zRnJvbUNvbGxlY3Rpb24oIHRoaXMudW5zZWxlY3RlZEl0ZW1zLCBjaGFuZ2VJdGVtcyApO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gY2hhbmdlSXRlbXMuY29uY2F0KCB0aGlzLnNlbGVjdGVkSXRlbXMgKTtcclxuXHRcdHRoaXMuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IHRoaXMuc2VsZWN0ZWRJdGVtczsgXHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IHRoaXMudW5zZWxlY3RlZEl0ZW1zO1xyXG5cdFx0dGhpcy5zYXZlVG9TdG9yYWdlKHRoaXMuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCwgdGhpcy51bnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2gpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQWRkIGFsbCBpdGVtcyB0byBzZWxlY3RlZCBsaXN0XHJcblx0ICogQHBhcmFtICBub25lXHJcblx0ICogQHJldHVybiBub25lXHJcblx0ICovXHJcblx0cHVibGljIGFkZEFsbFRvU2VsZWN0ZWRJdGVtcygpIDogdm9pZCB7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmRhdGFTb3VyY2U7XHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG5cdFx0dGhpcy5zYXZlVG9TdG9yYWdlKHRoaXMuc2VsZWN0ZWRJdGVtcywgdGhpcy51bnNlbGVjdGVkSXRlbXMpO1xyXG5cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHJlbW92ZSBhbGwgaXRlbXMgZnJvbSBzZWxlY3RlZCBsaXN0XHJcblx0ICogQHBhcmFtICBub25lXHJcblx0ICogQHJldHVybiAgbm9uZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZW1vdmVBbGxGcm9tU2VsZWN0ZWRJdGVtcygpIDogdm9pZCB7XHJcbiAgICBcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy5kYXRhU291cmNlO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcblx0XHR0aGlzLnNhdmVUb1N0b3JhZ2UodGhpcy5zZWxlY3RlZEl0ZW1zLCB0aGlzLnVuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgXHR9XHJcblxyXG4gIFx0LyoqXHJcblx0ICogd2hlbiBkcmFnIGFuZCBkcm9wIGV2ZW50IG9jY3Vyc1xyXG5cdCAqIEBwYXJhbSAgZXZlbnRcclxuXHQgKiBAcmV0dXJuICBub25lXHJcblx0ICovXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4LFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIFNvcnQgb24gY2xpY2sgb2Ygc29ydGluZyBpY29uXHJcblx0ICogQHBhcmFtICB0eXBlIHdoZXRoZXIgaXQncyBpbmNyZWFzaW5nIG9yIGRlY3JlYXNpbmdcclxuXHQgKiBAcmV0dXJuICBub25lXHJcblx0ICovXHJcbiAgc29ydE9uQ2xpY2sodHlwZTpzdHJpbmcpIHtcclxuXHJcblx0XHRpZih0aGlzLmRpcmVjdGlvbl91bnNlbGVjdGVkICYmIHR5cGU9PSBcInVuc2VsZWN0ZWRcIil7XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy51bnNlbGVjdGVkSXRlbXMuc29ydCgoYSwgYikgPT4gYi5uYW1lLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShhLm5hbWUudG9Mb3dlckNhc2UoKSkpO1xyXG5cdFx0XHR0aGlzLmRpcmVjdGlvbl91bnNlbGVjdGVkID0gIXRoaXMuZGlyZWN0aW9uX3Vuc2VsZWN0ZWQ7XHJcblx0XHR9ZWxzZSBpZighdGhpcy5kaXJlY3Rpb25fdW5zZWxlY3RlZCAmJiB0eXBlPT0gXCJ1bnNlbGVjdGVkXCIpIHtcclxuXHRcdFx0dGhpcy51bnNlbGVjdGVkSXRlbXMgPSB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSlcclxuXHRcdFx0dGhpcy5kaXJlY3Rpb25fdW5zZWxlY3RlZCA9ICF0aGlzLmRpcmVjdGlvbl91bnNlbGVjdGVkO1xyXG5cdFx0fVxyXG5cdFx0aWYodGhpcy5kaXJlY3Rpb25fc2VsZWN0ZWQgJiYgdHlwZT09IFwic2VsZWN0ZWRcIil7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5zb3J0KChhLCBiKSA9PiBiLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGEubmFtZS50b0xvd2VyQ2FzZSgpKSk7XHJcblx0XHRcdHRoaXMuZGlyZWN0aW9uX3NlbGVjdGVkID0gIXRoaXMuZGlyZWN0aW9uX3NlbGVjdGVkO1xyXG5cdFx0fWVsc2UgaWYoIXRoaXMuZGlyZWN0aW9uX3NlbGVjdGVkICYmIHR5cGU9PSBcInNlbGVjdGVkXCIpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvcnQoKGEsIGIpID0+IGEubmFtZS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5uYW1lLnRvTG93ZXJDYXNlKCkpKVxyXG5cdFx0XHR0aGlzLmRpcmVjdGlvbl9zZWxlY3RlZCA9ICF0aGlzLmRpcmVjdGlvbl9zZWxlY3RlZDtcclxuXHRcdH1cclxuXHRcclxuICB9XHJcblxyXG4gIFx0LyoqXHJcblx0ICogcmVtb3ZlIHRoZSBzZWxlY3RlZCBpdGVtIG9yIGRhdGFTb3VyY2UgZnJvbSB0aGUgc2VsZWN0ZWQgZGF0YVNvdXJjZSBjb2xsZWN0aW9uXHJcblx0ICogQHBhcmFtICBpdGVtIHRvIGJlIHJlbW92ZWRcclxuXHQgKiBAcmV0dXJuICBcclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlRnJvbVNlbGVjdGVkSXRlbXMoIGl0ZW0/OiBhbnkgKSA6IHZvaWQge1xyXG5cclxuXHRcdGNvbnN0IGNoYW5nZUl0ZW1zID0gKCBpdGVtIClcclxuXHRcdFx0PyBbIGl0ZW0gXVxyXG5cdFx0XHQ6IHRoaXMuZ2V0UGVuZGluZ1NlbGVjdGlvbkZyb21Db2xsZWN0aW9uKCB0aGlzLnNlbGVjdGVkSXRlbXMgKTtcclxuXHJcblx0XHR0aGlzLnBlbmRpbmdTZWxlY3Rpb24gPSBPYmplY3QuY3JlYXRlKCBudWxsICk7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlbW92ZUl0ZW1zRnJvbUNvbGxlY3Rpb24oIHRoaXMuc2VsZWN0ZWRJdGVtcywgY2hhbmdlSXRlbXMgKTtcclxuXHRcdGNvbnN0IGNoYW5nZWREYXRhPSBjaGFuZ2VJdGVtc1xyXG5cdFx0XHQuY29uY2F0KCB0aGlzLnVuc2VsZWN0ZWRJdGVtcyApXHJcblx0XHRcdC5zb3J0KCB0aGlzLnNvcnRJdGVtT3BlcmF0b3IgKTtcclxuXHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gY2hhbmdlZERhdGE7XHJcblx0XHR0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCA9IGNoYW5nZWREYXRhO1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoID0gdGhpcy5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoO1xyXG5cdFx0dGhpcy5zYXZlVG9TdG9yYWdlKHRoaXMuc2VsZWN0ZWRJdGVtcywgdGhpcy51bnNlbGVjdGVkSXRlbXMpO1xyXG5cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHRvZ2dsZSB0aGUgcGVuZGluZyBzZWxlY3Rpb24gZm9yIHRoZSBnaXZlbiBpdGVtXHJcblx0ICogQHBhcmFtICBpdGVtIHRvIHRvZ2dsZVxyXG5cdCAqIEByZXR1cm4gIG5vbmVcclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlUGVuZGluZ1NlbGVjdGlvbiggaXRlbTphbnkgKSA6IHZvaWQge1xyXG5cdFx0dGhpcy5wZW5kaW5nU2VsZWN0aW9uWyBpdGVtLmlkIF0gPSAhIHRoaXMucGVuZGluZ1NlbGVjdGlvblsgaXRlbS5pZCBdO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRmlsdGVyIHRoZSBkYXRhIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbnB1dFxyXG5cdCAqIEBwYXJhbSAgc2VhcmNodmFsdWUgaW5wdXQgbGFiZWwgcHJvdmlkZWQgaW4gc2VhcmNoIGJveFxyXG5cdCAqIEByZXR1cm4gIG5vbmVcclxuXHQgKi9cclxuXHRmaWx0ZXJEYXRhKHNlYXJjaHZhbHVlOiBhbnksIHR5cGU6IHN0cmluZyk6IGFueSB7XHJcblx0XHRpZih0eXBlID09PSAndW5zZWxlY3RlZCcpe1xyXG5cdFx0XHRpZihzZWFyY2h2YWx1ZSA9PT0gXCJcIil7XHJcblx0XHRcdFx0dGhpcy51bnNlbGVjdGVkSXRlbXM9IHRoaXMudW5zZWxlY3RlZEl0ZW1zQmVmb3JlU2VhcmNoO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gdGhpcy5maWx0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLnVuc2VsZWN0ZWRJdGVtc0JlZm9yZVNlYXJjaCwgc2VhcmNodmFsdWUsICduYW1lJyk7XHJcblx0XHR9XHJcblx0XHRlbHNle1xyXG5cdFx0XHRpZihzZWFyY2h2YWx1ZSA9PT0gXCJcIil7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zPSB0aGlzLnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2g7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5maWx0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLnNlbGVjdGVkSXRlbXNCZWZvcmVTZWFyY2gsIHNlYXJjaHZhbHVlLCAnbmFtZScpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQvKipcclxuXHQgKiBnYXRoZXIgdGhlIGRhdGFTb3VyY2UgaW4gdGhlIGdpdmVuIGNvbGxlY3Rpb24gdGhhdCBhcmUgcGFydCBvZiB0aGUgY3VycmVudCBwZW5kaW5nIHNlbGVjdGlvblxyXG5cdCAqIEBwYXJhbSAgY29sbGVjdGlvbiBpbnB1dCBsYWJlbCBwcm92aWRlZCBpbiBzZWFyY2ggYm94XHJcblx0ICogQHJldHVybiAgc2VsZWN0ZWQgaXRlbXNcclxuXHQgKi9cclxuXHJcblx0cHVibGljIGdldFBlbmRpbmdTZWxlY3Rpb25Gcm9tQ29sbGVjdGlvbiggY29sbGVjdGlvbjogYW55W10gKSA6IGFueVtdIHtcclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25Gcm9tQ29sbGVjdGlvbiA9IGNvbGxlY3Rpb24uZmlsdGVyKFxyXG5cdFx0XHQoIGl0ZW0gKSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuKCBpdGVtLmlkIGluIHRoaXMucGVuZGluZ1NlbGVjdGlvbiApO1xyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cclxuXHRcdHJldHVybiggc2VsZWN0aW9uRnJvbUNvbGxlY3Rpb24gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiByZW1vdmUgdGhlIGdpdmVuIGRhdGFTb3VyY2UgZnJvbSB0aGUgZ2l2ZW4gY29sbGVjdGlvblxyXG5cdCAqIEBwYXJhbSAgY29sbGVjdGlvbiBhbmQgSXRlbXNUb1JlbW92ZVxyXG5cdCAqIEByZXR1cm4gIGEgbmV3IGNvbGxlY3Rpb25cclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlSXRlbXNGcm9tQ29sbGVjdGlvbihcclxuXHRcdGNvbGxlY3Rpb246IGFueVtdLFxyXG5cdFx0SXRlbXNUb1JlbW92ZTogYW55W11cclxuXHRcdCkgOiBhbnlbXSB7XHJcblxyXG5cdFx0Y29uc3QgY29sbGVjdGlvbldpdGhvdXRJdGVtcyA9IGNvbGxlY3Rpb24uZmlsdGVyKFxyXG5cdFx0XHQoIGl0ZW0gKSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuKCAhIEl0ZW1zVG9SZW1vdmUuaW5jbHVkZXMoIGl0ZW0gKSApO1xyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cclxuXHRcdHJldHVybiggY29sbGVjdGlvbldpdGhvdXRJdGVtcyApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIHByb3ZpZGUgdGhlIHNvcnQgb3BlcmF0b3IgZm9yIHRoZSBkYXRhU291cmNlIGNvbGxlY3Rpb25cclxuXHQgKiBAcGFyYW0gIHR3byB2YWx1ZXMgdG8gY29tcGFyZVxyXG5cdCAqIEByZXR1cm4gIGEgdmFsdWUgYmFzZWQgb24gdGhlIHNvcnRpbmdcclxuXHQgKi9cclxuXHRwdWJsaWMgc29ydEl0ZW1PcGVyYXRvciggYTogYW55LCBiOiBhbnkgKSA6IG51bWJlciB7XHJcblx0XHRyZXR1cm4oIGEubmFtZS5sb2NhbGVDb21wYXJlKCBiLm5hbWUgKSApO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0ZWRPdXRwdXRJdGVtcygpIHtcclxuXHRcdHRoaXMucnVjRXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG5cdH1cclxufVxyXG4gIiwiPGRpdiBjbGFzcz1cIm1haW5cIj5cclxuPGRpdiBjbGFzcz1cInt7Y3VzdG9tVGhlbWV9fVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkdWFsLWxpc3QtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHVhbC1zZWxlY3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxlZnRDb250YWluZXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGggc2VhcmNoX0JveFwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCJydWNJbnB1dERhdGEuZW5hYmxlU2VhcmNoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJmaWx0ZXJEYXRhKHNlYXJjaFRleHQsICd1bnNlbGVjdGVkJylcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleFwiICpuZ0lmPVwicnVjSW5wdXREYXRhLnNvcnRpbmdcIj48bWF0LWljb24gKGNsaWNrKT1cInNvcnRPbkNsaWNrKCd1bnNlbGVjdGVkJylcIj57eyAhZGlyZWN0aW9uX3Vuc2VsZWN0ZWQgPyAnYXJyb3dfZHJvcF9kb3duJyA6XHJcbiAgICAgICAgICAgICdhcnJvd19kcm9wX3VwJyB9fTwvbWF0LWljb24+IDwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHVhbC1zZWxlY3RfX2xlZnRcIiBbbmdTdHlsZV09XCJ7J21heC1oZWlnaHQucHgnOiBoZWlnaHQsICd3aWR0aC5weCc6IHdpZHRofVwiPlxyXG4gICAgICAgICAgPG1hdC1saXN0IHJvbGU9XCJsaXN0XCIgY2xhc3M9XCJsaXN0X2NvbnRhaW5lclwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAjdG9kb0xpc3Q9XCJjZGtEcm9wTGlzdFwiIFtjZGtEcm9wTGlzdERhdGFdPVwidW5zZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZG9uZUxpc3RdXCIgY2xhc3M9XCJleGFtcGxlLWxpc3RcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIHJvbGU9XCJsaXN0aXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVuc2VsZWN0ZWRJdGVtc1wiIGNka0RyYWcgW2Rpc2FibGVkXT1cIiFpdGVtLmRpc2FibGVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBlbmRpbmdTZWxlY3Rpb24oIGl0ZW0gKVwiIChkYmxjbGljayk9XCJhZGRUb1NlbGVjdGVkSXRlbXMoIGl0ZW0gKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImR1YWwtc2VsZWN0X19pdGVtXCIgW2NsYXNzLmR1YWwtc2VsZWN0X19pdGVtLS1zZWxlY3RlZF09XCJwZW5kaW5nU2VsZWN0aW9uWyBpdGVtLmlkIF1cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtbGlzdD5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHVhbC1zZWxlY3RfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIoY2xpY2spPVwiYWRkVG9TZWxlY3RlZEl0ZW1zKClcIiBjbGFzcz1cImR1YWwtc2VsZWN0X19jb250cm9sXCI+XHJcbiAgICAgICAgICAmIzEwMjM2O1xyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRJdGVtcygpXCIgY2xhc3M9XCJkdWFsLXNlbGVjdF9fY29udHJvbFwiPlxyXG4gICAgICAgICAgJiMxMDIzNTtcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGRBbGxUb1NlbGVjdGVkSXRlbXMoKVwiIGNsYXNzPVwiZHVhbC1zZWxlY3RfX2NvbnRyb2xcIj5cclxuICAgICAgICAgICYjMTA1MDM7XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicmVtb3ZlQWxsRnJvbVNlbGVjdGVkSXRlbXMoKVwiIGNsYXNzPVwiZHVhbC1zZWxlY3RfX2NvbnRyb2xcIj5cclxuICAgICAgICAgICYjMTA1MDI7XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRDb250YWluZXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGggc2VhcmNoX0JveFwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCJydWNJbnB1dERhdGEuZW5hYmxlU2VhcmNoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJmaWx0ZXJEYXRhKHNlYXJjaFRleHRTZWxlY3RlZCwgJ3NlbGVjdGVkJylcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRTZWxlY3RlZFwiPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4XCIgKm5nSWY9XCJydWNJbnB1dERhdGEuc29ydGluZ1wiPjxtYXQtaWNvbiAoY2xpY2spPVwic29ydE9uQ2xpY2soJ3NlbGVjdGVkJylcIj57eyAhZGlyZWN0aW9uX3NlbGVjdGVkID8gJ2Fycm93X2Ryb3BfZG93bicgOlxyXG4gICAgICAgICAgICAnYXJyb3dfZHJvcF91cCcgfX08L21hdC1pY29uPiA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkdWFsLXNlbGVjdF9fcmlnaHRcIiBbbmdTdHlsZV09XCJ7J21heC1oZWlnaHQucHgnOiBoZWlnaHQsICd3aWR0aC5weCc6IHdpZHRofVwiPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgPG1hdC1saXN0IHJvbGU9XCJsaXN0XCIgY2xhc3M9XCJsaXN0X2NvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0ICNkb25lTGlzdD1cImNka0Ryb3BMaXN0XCIgW2Nka0Ryb3BMaXN0RGF0YV09XCJzZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbdG9kb0xpc3RdXCIgY2xhc3M9XCJleGFtcGxlLWxpc3RcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbSBjZGtEcmFnICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIiAoY2xpY2spPVwidG9nZ2xlUGVuZGluZ1NlbGVjdGlvbiggaXRlbSApXCJcclxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRJdGVtcyggaXRlbSApXCIgY2xhc3M9XCJkdWFsLXNlbGVjdF9faXRlbSBkdWFsLXNlbGVjdF9faXRlbS0tbmV3XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5kdWFsLXNlbGVjdF9faXRlbS0tc2VsZWN0ZWRdPVwicGVuZGluZ1NlbGVjdGlvblsgaXRlbS5pZCBdXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWF0LWxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2VsZWN0ZWRPdXRwdXRJdGVtcygpXCIgY2xhc3M9XCJkdWFsLWxpc3QtYnRuXCI+XHJcbiAgICAgICAgU3VibWl0XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48L2Rpdj4iXX0=