@norwegian/core-components 5.3.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/icons/icon-negative--light.svg +11 -0
- package/assets/icons/icon-positive--light.svg +98 -0
- package/bundles/norwegian-core-components.umd.js +104 -63
- package/bundles/norwegian-core-components.umd.js.map +1 -1
- package/esm2015/lib/components/accordion/accordion.component.js +9 -4
- package/esm2015/lib/components/icon/icon.component.js +1 -1
- package/esm2015/lib/components/select/select.component.js +4 -2
- package/esm2015/lib/components/slider/slider.component.js +90 -60
- package/fesm2015/norwegian-core-components.js +101 -64
- package/fesm2015/norwegian-core-components.js.map +1 -1
- package/lib/components/accordion/accordion.component.d.ts +25 -0
- package/lib/components/select/select.component.d.ts +5 -0
- package/lib/components/slider/slider.component.d.ts +20 -7
- package/norwegian-core-components.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ import { NasComponentBase } from '../../core/base/nas-component.base';
|
|
|
7
7
|
let nextId = 0;
|
|
8
8
|
/**
|
|
9
9
|
* @description
|
|
10
|
-
* Norwegian Slider Component | Form Controls
|
|
10
|
+
* Norwegian Slider Component | Form Controls
|
|
11
11
|
*/
|
|
12
12
|
export class SliderComponent extends NasComponentBase {
|
|
13
13
|
constructor(cdr) {
|
|
@@ -50,11 +50,6 @@ export class SliderComponent extends NasComponentBase {
|
|
|
50
50
|
this.valueValue = value;
|
|
51
51
|
this.cdr.detectChanges();
|
|
52
52
|
this.valueChange.emit(value);
|
|
53
|
-
if (this.isViewInit) {
|
|
54
|
-
this.isBubbleActive = true;
|
|
55
|
-
this.setBubbleStyle('slider');
|
|
56
|
-
this.isBubbleActive = false;
|
|
57
|
-
}
|
|
58
53
|
}
|
|
59
54
|
/**
|
|
60
55
|
* @description
|
|
@@ -70,11 +65,6 @@ export class SliderComponent extends NasComponentBase {
|
|
|
70
65
|
this.rangeMinValue = value;
|
|
71
66
|
this.cdr.detectChanges();
|
|
72
67
|
this.selectedMinValueChange.emit(value);
|
|
73
|
-
if (this.isViewInit) {
|
|
74
|
-
this.isBubbleActive = true;
|
|
75
|
-
this.setBubbleStyle('range-slider-min');
|
|
76
|
-
this.isBubbleActive = false;
|
|
77
|
-
}
|
|
78
68
|
}
|
|
79
69
|
/**
|
|
80
70
|
* @description
|
|
@@ -90,11 +80,6 @@ export class SliderComponent extends NasComponentBase {
|
|
|
90
80
|
this.rangeMaxValue = value;
|
|
91
81
|
this.cdr.detectChanges();
|
|
92
82
|
this.selectedMaxValueChange.emit(value);
|
|
93
|
-
if (this.isViewInit) {
|
|
94
|
-
this.isBubbleActive = true;
|
|
95
|
-
this.setBubbleStyle('range-slider-max');
|
|
96
|
-
this.isBubbleActive = false;
|
|
97
|
-
}
|
|
98
83
|
}
|
|
99
84
|
/**
|
|
100
85
|
* @description
|
|
@@ -107,7 +92,7 @@ export class SliderComponent extends NasComponentBase {
|
|
|
107
92
|
if (!value || value === this.minDifferenceRange) {
|
|
108
93
|
return;
|
|
109
94
|
}
|
|
110
|
-
this.minDifferenceRange = value;
|
|
95
|
+
this.minDifferenceRange = Number(value);
|
|
111
96
|
}
|
|
112
97
|
/**
|
|
113
98
|
* @description
|
|
@@ -142,12 +127,11 @@ export class SliderComponent extends NasComponentBase {
|
|
|
142
127
|
* A custom label for the minimum value. The actual value is still specified by min input.
|
|
143
128
|
*/
|
|
144
129
|
get minLabel() {
|
|
145
|
-
var _a;
|
|
146
130
|
if (this.minLabelValue) {
|
|
147
131
|
return this.minLabelValue;
|
|
148
132
|
}
|
|
149
133
|
else {
|
|
150
|
-
return
|
|
134
|
+
return this.min;
|
|
151
135
|
}
|
|
152
136
|
}
|
|
153
137
|
set minLabel(value) {
|
|
@@ -171,12 +155,11 @@ export class SliderComponent extends NasComponentBase {
|
|
|
171
155
|
* A custom label for the maximum value. The actual value is still specified by max input.
|
|
172
156
|
*/
|
|
173
157
|
get maxLabel() {
|
|
174
|
-
var _a;
|
|
175
158
|
if (this.maxLabelValue) {
|
|
176
159
|
return this.maxLabelValue;
|
|
177
160
|
}
|
|
178
161
|
else {
|
|
179
|
-
return
|
|
162
|
+
return this.max;
|
|
180
163
|
}
|
|
181
164
|
}
|
|
182
165
|
set maxLabel(value) {
|
|
@@ -193,7 +176,7 @@ export class SliderComponent extends NasComponentBase {
|
|
|
193
176
|
if (value === this.stepValue) {
|
|
194
177
|
return;
|
|
195
178
|
}
|
|
196
|
-
this.stepValue = value;
|
|
179
|
+
this.stepValue = Number(value);
|
|
197
180
|
}
|
|
198
181
|
/**
|
|
199
182
|
* @description
|
|
@@ -227,27 +210,24 @@ export class SliderComponent extends NasComponentBase {
|
|
|
227
210
|
}, 250);
|
|
228
211
|
}
|
|
229
212
|
else {
|
|
230
|
-
|
|
213
|
+
setTimeout(() => {
|
|
214
|
+
this.isBubbleActiveValue = true;
|
|
215
|
+
}, 100);
|
|
231
216
|
}
|
|
232
217
|
}
|
|
233
|
-
get
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
else if (this.value === this.max) {
|
|
238
|
-
return this.maxLabelValue;
|
|
239
|
-
}
|
|
240
|
-
else if (!this.value) {
|
|
218
|
+
get middleLabel() {
|
|
219
|
+
const sum = this.min + this.max;
|
|
220
|
+
const middleSum = sum / 2;
|
|
221
|
+
if (sum % 2 === 1) {
|
|
241
222
|
return null;
|
|
242
223
|
}
|
|
243
|
-
|
|
244
|
-
return this.value.toString();
|
|
245
|
-
}
|
|
224
|
+
return middleSum.toString();
|
|
246
225
|
}
|
|
247
|
-
get
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
226
|
+
get showMinLabelSuffix() {
|
|
227
|
+
return typeof (this.minLabel) === 'number';
|
|
228
|
+
}
|
|
229
|
+
get showMaxLabelSuffix() {
|
|
230
|
+
return typeof (this.maxLabel) === 'number';
|
|
251
231
|
}
|
|
252
232
|
ngOnInit() {
|
|
253
233
|
if (this.nasFormGroup && this.nasFormControlName) {
|
|
@@ -267,6 +247,7 @@ export class SliderComponent extends NasComponentBase {
|
|
|
267
247
|
if (!this.exists(this.disabled)) {
|
|
268
248
|
this.value = value;
|
|
269
249
|
}
|
|
250
|
+
this.activateBubble(value, 'slider');
|
|
270
251
|
});
|
|
271
252
|
}
|
|
272
253
|
if (this.nasFormGroup && this.nasFormControlMin && this.nasFormControlMax) {
|
|
@@ -291,12 +272,16 @@ export class SliderComponent extends NasComponentBase {
|
|
|
291
272
|
sliderMinControl.setValue(this.selectedMinValue);
|
|
292
273
|
return;
|
|
293
274
|
}
|
|
275
|
+
this.bubbleValue = this.setBubbleValue(value);
|
|
276
|
+
this.activateBubble(value, 'range-slider-min');
|
|
294
277
|
});
|
|
295
278
|
sliderMaxControl.valueChanges.subscribe((value) => {
|
|
296
279
|
if (!this.exists(this.disabled) && value < this.selectedMinValue + this.minDiffRange) {
|
|
297
280
|
sliderMaxControl.setValue(this.selectedMaxValue);
|
|
298
281
|
return;
|
|
299
282
|
}
|
|
283
|
+
this.bubbleValue = this.setBubbleValue(value);
|
|
284
|
+
this.activateBubble(value, 'range-slider-max');
|
|
300
285
|
});
|
|
301
286
|
}
|
|
302
287
|
this.isRange = this.exists(this.range) ? true : false;
|
|
@@ -349,28 +334,16 @@ export class SliderComponent extends NasComponentBase {
|
|
|
349
334
|
event.stopPropagation();
|
|
350
335
|
event.preventDefault();
|
|
351
336
|
this.showBubble = true;
|
|
352
|
-
|
|
353
|
-
const mathMin = Math.min(eventValue, this.selectedMaxValue - this.minDiffRange);
|
|
354
|
-
const mathMax = Math.max(eventValue, this.selectedMinValue + this.minDiffRange);
|
|
337
|
+
const eventValue = Number(event.target.value);
|
|
355
338
|
switch (type) {
|
|
356
339
|
case 'slider':
|
|
357
340
|
this.value = eventValue;
|
|
358
341
|
break;
|
|
359
342
|
case 'range-slider-min':
|
|
360
|
-
this.
|
|
361
|
-
eventValue = mathMin;
|
|
362
|
-
this.selectedMinValue = eventValue;
|
|
363
|
-
if (eventValue >= this.selectedMaxValue - this.minDiffRange) {
|
|
364
|
-
this.rangeMin.nativeElement.value = this.selectedMinValue.toString();
|
|
365
|
-
}
|
|
343
|
+
this.selectedMinValue = this.minSelected ? this.minSelected : eventValue;
|
|
366
344
|
break;
|
|
367
345
|
case 'range-slider-max':
|
|
368
|
-
this.
|
|
369
|
-
eventValue = mathMax;
|
|
370
|
-
this.selectedMaxValue = eventValue;
|
|
371
|
-
if (eventValue <= this.selectedMinValue + this.minDiffRange) {
|
|
372
|
-
this.rangeMax.nativeElement.value = this.selectedMaxValue.toString();
|
|
373
|
-
}
|
|
346
|
+
this.selectedMaxValue = this.maxSelected ? this.maxSelected : eventValue;
|
|
374
347
|
break;
|
|
375
348
|
default:
|
|
376
349
|
return;
|
|
@@ -380,21 +353,23 @@ export class SliderComponent extends NasComponentBase {
|
|
|
380
353
|
this.onSliderInput(event, type);
|
|
381
354
|
this.isBubbleActive = false;
|
|
382
355
|
}
|
|
383
|
-
setBubbleStyle(type) {
|
|
356
|
+
setBubbleStyle(value, type) {
|
|
384
357
|
var _a, _b;
|
|
358
|
+
if (!this.bubble) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
385
361
|
const inputWidth = (_b = (_a = this.slider) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.offsetWidth;
|
|
386
362
|
const minValue = Number(this.min);
|
|
387
363
|
const maxValue = Number(this.max);
|
|
388
364
|
let valueType;
|
|
389
365
|
switch (type) {
|
|
390
366
|
case 'slider':
|
|
391
|
-
|
|
367
|
+
this.bubbleValue = this.setBubbleValue(value);
|
|
368
|
+
valueType = value;
|
|
392
369
|
break;
|
|
393
370
|
case 'range-slider-min':
|
|
394
|
-
valueType = this.selectedMinValue;
|
|
395
|
-
break;
|
|
396
371
|
case 'range-slider-max':
|
|
397
|
-
valueType =
|
|
372
|
+
valueType = value;
|
|
398
373
|
break;
|
|
399
374
|
default:
|
|
400
375
|
return;
|
|
@@ -405,11 +380,65 @@ export class SliderComponent extends NasComponentBase {
|
|
|
405
380
|
const left = (((ratio) * ((inputWidth - thumbHalfWidth) - thumbHalfWidth)) + thumbHalfWidth) - 45;
|
|
406
381
|
this.bubble.nativeElement.style.left = `${left}px`;
|
|
407
382
|
}
|
|
383
|
+
onDisplayBubble(event, type) {
|
|
384
|
+
if (!(event === null || event === void 0 ? void 0 : event.target)) {
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
if (this.isViewInit) {
|
|
388
|
+
this.validateRangerSlider(Number(event.target.value), type);
|
|
389
|
+
this.activateBubble(Number(event.target.value), type);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
validateRangerSlider(value, type) {
|
|
393
|
+
let eventValue = value;
|
|
394
|
+
const mathMin = Math.min(value, this.selectedMaxValue - this.minDiffRange);
|
|
395
|
+
const mathMax = Math.max(value, this.selectedMinValue + this.minDiffRange);
|
|
396
|
+
switch (type) {
|
|
397
|
+
case 'range-slider-min':
|
|
398
|
+
this.bubbleValue = this.setBubbleValue(mathMin);
|
|
399
|
+
eventValue = mathMin;
|
|
400
|
+
this.minSelected = eventValue;
|
|
401
|
+
if (eventValue >= (this.selectedMaxValue - this.minDiffRange)) {
|
|
402
|
+
this.rangeMin.nativeElement.value = mathMin.toString();
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
break;
|
|
406
|
+
case 'range-slider-max':
|
|
407
|
+
this.bubbleValue = this.setBubbleValue(mathMax);
|
|
408
|
+
eventValue = mathMax;
|
|
409
|
+
this.maxSelected = eventValue;
|
|
410
|
+
if (eventValue <= (this.selectedMinValue + this.minDiffRange)) {
|
|
411
|
+
this.rangeMax.nativeElement.value = mathMax.toString();
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
break;
|
|
415
|
+
default:
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
activateBubble(value, type) {
|
|
420
|
+
this.showBubble = true;
|
|
421
|
+
this.isBubbleActive = true;
|
|
422
|
+
this.setBubbleStyle(value, type);
|
|
423
|
+
this.isBubbleActive = false;
|
|
424
|
+
}
|
|
425
|
+
setBubbleValue(value) {
|
|
426
|
+
if (value === this.min && typeof (this.minLabel) === 'string') {
|
|
427
|
+
this.showBubbleSuffix = false;
|
|
428
|
+
return this.minLabel;
|
|
429
|
+
}
|
|
430
|
+
else if (value === this.max && typeof (this.maxLabel) === 'string') {
|
|
431
|
+
this.showBubbleSuffix = false;
|
|
432
|
+
return this.maxLabel;
|
|
433
|
+
}
|
|
434
|
+
this.showBubbleSuffix = true;
|
|
435
|
+
return value;
|
|
436
|
+
}
|
|
408
437
|
}
|
|
409
438
|
SliderComponent.decorators = [
|
|
410
439
|
{ type: Component, args: [{
|
|
411
440
|
selector: 'nas-slider',
|
|
412
|
-
template: "<div [nasClass]=\"getClass('wrapper')\" *ngIf=\"!isRange\">\n <div #bubble [nasClass]=\"getClass('bubble', isBubbleActive ? 'active' : '')\">\n <span [nasClass]=\"getClass('bubble-value')\" *ngIf=\"bubbleValue != null\">{{
|
|
441
|
+
template: "<div [nasClass]=\"getClass('wrapper')\" *ngIf=\"!isRange\">\n <div #bubble [nasClass]=\"getClass('bubble', isBubbleActive ? 'active' : '')\">\n <span [nasClass]=\"getClass('bubble-value')\" *ngIf=\"bubbleValue != null\">\n <span *ngIf=\"showBubbleSuffix && exists(isPrefix)\">{{suffix}}</span>{{bubbleValue}}<span \n *ngIf=\"showBubbleSuffix && !exists(isPrefix)\">{{suffix}}</span>\n </span>\n </div>\n <ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label>\n <span [nasClass]=\"getClass('title')\"\n *ngIf=\"title\">{{title}}</span>\n <input #slider\n [nasClass]=\"getClass('slider', exists(disabled) ? 'disabled' : '')\"\n type=\"range\"\n [id]=\"sliderId\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.suffix]=\"suffix\"\n [attr.step]=\"step\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"value\"\n [disabled]=\"disabled\"\n (input)=\"onDisplayBubble($event,'slider')\"\n (mouseup)=\"onSliderChange($event, 'slider')\"\n (keyup)=\"onSliderChange($event, 'slider')\" />\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </label>\n </ng-container>\n <ng-template #reactiveForm>\n <label [formGroup]=\"nasFormGroup\">\n <p [nasClass]=\"getClass('title')\"\n *ngIf=\"title\">{{title}}</p>\n <input #slider\n [formControlName]=\"nasFormControlName\"\n [nasClass]=\"getClass('slider', nasFormGroup?.get(nasFormControlName)?.disabled ? 'disabled' : '')\"\n type=\"range\"\n [id]=\"sliderId\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.suffix]=\"suffix\"\n [attr.step]=\"step\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"value\"\n [attr.disabled]=\"disabled\"\n (input)=\"onSliderInput($event, 'slider')\"\n (change)=\"onSliderChange($event, 'slider')\" \n />\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </label>\n </ng-template>\n <ng-template #label>\n <div [nasClass]=\"getClass('label-wrapper')\">\n <span [nasClass]=\"getClass('label')\">\n <span *ngIf=\"showMinLabelSuffix && exists(isPrefix)\">{{suffix}}</span>{{minLabel}}<span \n *ngIf=\"showMinLabelSuffix && !exists(isPrefix)\">{{suffix}}</span>\n </span>\n <span [nasClass]=\"getClass('label', 'middle')\" *ngIf=\"middleLabel\">\n <span *ngIf=\"exists(isPrefix)\">{{suffix}}</span>{{middleLabel}}<span \n *ngIf=\"!exists(isPrefix)\">{{suffix}}</span>\n </span>\n <span [nasClass]=\"getClass('label', 'max')\">\n <span *ngIf=\"showMaxLabelSuffix && exists(isPrefix)\">{{suffix}}</span>{{maxLabel}}<span \n *ngIf=\"showMaxLabelSuffix && !exists(isPrefix)\">{{suffix}}</span>\n </span>\n </div>\n </ng-template>\n</div>\n\n<div [nasClass]=\"getClass('wrapper-range')\" *ngIf=\"isRange && !isIEOrEdge\">\n <div #bubble [nasClass]=\"getClass('bubble', isBubbleActive ? 'active' : '')\" *ngIf=\"showBubble\">\n <span [nasClass]=\"getClass('bubble-value')\" *ngIf=\"bubbleValue != null\">\n <span *ngIf=\"showBubbleSuffix && exists(isPrefix)\">{{suffix}}</span>{{bubbleValue}}<span \n *ngIf=\"showBubbleSuffix && !exists(isPrefix)\">{{suffix}}</span></span>\n </div>\n <ng-container *ngIf=\"!nasFormControlMin && !nasFormControlMax; else reactiveForm\">\n <label >\n <span [nasClass]=\"getClass('title')\"\n *ngIf=\"title\">{{title}}</span>\n <div [nasClass]=\"getClass('range-slider')\">\n <input #slider #rangeMin\n [nasClass]=\"getClass('range-slider-min', exists(disabled) ? 'disabled' : '')\" \n type=\"range\"\n [id]=\"sliderId\"\n [attr.name]=\"name\"\n [attr.value]=\"selectedMinValue\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [attr.suffix]=\"suffix\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"selectedMinValue\"\n [disabled]=\"disabled\"\n (input)=\"onDisplayBubble($event,'range-slider-min')\"\n (mouseup)=\"onSliderChange($event, 'range-slider-min')\"\n (keyup)=\"onSliderChange($event, 'range-slider-min')\"\n />\n\n <input #slider #rangeMax\n [nasClass]=\"getClass('range-slider-max', exists(disabled) ? 'disabled' : '')\" \n type=\"range\"\n [id]=\"sliderId\"\n [attr.name]=\"name\" \n [attr.value]=\"selectedMaxValue\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [attr.suffix]=\"suffix\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"selectedMaxValue\"\n [disabled]=\"disabled\"\n (input)=\"onDisplayBubble($event,'range-slider-max')\"\n (mouseup)=\"onSliderChange($event, 'range-slider-max')\"\n (keyup)=\"onSliderChange($event, 'range-slider-max')\"\n />\n </div>\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </label>\n </ng-container>\n \n <ng-template #reactiveForm>\n <label [formGroup]=\"nasFormGroup\">\n <p [nasClass]=\"getClass('title')\" *ngIf=\"title\">{{title}}</p>\n <div [nasClass]=\"getClass('range-slider')\">\n <input #slider #rangeMin\n [nasClass]=\"getClass('range-slider-min', exists(disabled) ? 'disabled' : '')\" \n [formControlName]=\"nasFormControlMin\"\n type=\"range\"\n [id]=\"sliderId\"\n [attr.name]=\"name\"\n [attr.value]=\"selectedMinValue\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [attr.suffix]=\"suffix\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"selectedMinValue\"\n [attr.disabled]=\"disabledValue ? '' : null\"\n (input)=\"onSliderInput($event, 'range-slider-min')\" \n (change)=\"onSliderChange($event, 'range-slider-min')\"\n />\n \n <input #slider #rangeMax\n [nasClass]=\"getClass('range-slider-max', exists(disabled) ? 'disabled' : '')\" \n [formControlName]=\"nasFormControlMax\"\n type=\"range\"\n [attr.name]=\"name\" \n [attr.value]=\"selectedMaxValue\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [attr.suffix]=\"suffix\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"selectedMaxValue\"\n [attr.disabled]=\"disabledValue ? '' : null\"\n (input)=\"onSliderInput($event, 'range-slider-max')\" \n (change)=\"onSliderChange($event, 'range-slider-max')\"\n />\n </div>\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n</label>\n</ng-template>\n <ng-template #label>\n <div [nasClass]=\"getClass('label-wrapper')\">\n <span [nasClass]=\"getClass('label')\">\n <span *ngIf=\"showMinLabelSuffix && exists(isPrefix)\">{{suffix}}</span>{{minLabel}}<span \n *ngIf=\"showMinLabelSuffix && !exists(isPrefix)\">{{suffix}}</span>\n </span>\n <span [nasClass]=\"getClass('label', 'middle')\" *ngIf=\"middleLabel\">\n <span *ngIf=\"exists(isPrefix)\">{{suffix}}</span>{{middleLabel}}<span \n *ngIf=\"!exists(isPrefix)\">{{suffix}}</span>\n </span>\n <span [nasClass]=\"getClass('label', 'max')\">\n <span *ngIf=\"showMaxLabelSuffix && exists(isPrefix)\">{{suffix}}</span>{{maxLabel}}<span \n *ngIf=\"showMaxLabelSuffix && !exists(isPrefix)\">{{suffix}}</span>\n </span>\n </div>\n </ng-template>\n \n</div>",
|
|
413
442
|
styles: ["@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@-webkit-keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@-webkit-keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@-webkit-keyframes fade-out{to{opacity:0}}@keyframes fade-out{to{opacity:0}}@-webkit-keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@-webkit-keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@-webkit-keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}:host{position:relative;width:100%;display:inline-block;box-sizing:border-box;border-radius:0;padding:9px;outline:none;vertical-align:middle}.nas-slider{width:100%}.nas-slider__wrapper{position:relative}.nas-slider__wrapper-range{position:relative}.nas-slider__track-wrapper{position:absolute;top:0;left:0;overflow:hidden;height:7px;width:100%}.nas-slider__track-background{outline:none;height:7px;width:100%;border-radius:5px;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");background-color:#d8d8d8}.nas-slider__track-fill{height:7px;width:100%}.nas-slider__title{font-family:\"Apercu\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-weight:bold;height:30px;display:block;margin-bottom:16px}@media (min-width: 640px){.nas-slider__title{letter-spacing:inherit;word-spacing:inherit}}.nas-slider__container{position:relative}.nas-slider__bubble{position:absolute;background-color:#d81939;width:96px;height:96px;border-radius:50%;text-align:center;top:-88px;color:#fff;opacity:0;visibility:hidden;transition:visibility 0s 1s,opacity 1s linear}.nas-slider__bubble--active{display:inline-block;visibility:visible;opacity:1;transition:opacity 0s linear}.nas-slider__bubble-value{display:block;position:relative;font-size:18px;font-weight:700;top:50%;transform:translateY(-50%)}.nas-slider__slider{-webkit-appearance:none;outline:none;border-radius:5px;width:100%;background-color:transparent;color:transparent}.nas-slider__slider::-moz-range-track{width:100%;height:7px;background-color:#d8d8d8;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");border-radius:5px}.nas-slider__slider::-webkit-slider-runnable-track{width:100%;height:7px;background-color:#d8d8d8;cursor:-webkit-grab;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");border-radius:5px}.nas-slider__slider::-ms-track{width:100%;height:7px;background-color:#d8d8d8;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");border-radius:5px;background:transparent;border-color:transparent;color:transparent;margin:14.5px 0;padding-top:10px}.nas-slider__slider::-ms-thumb{height:36px;width:36px;border-radius:50%;background-color:#003251;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcBAMAAAB4lt9%2BAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEX%2F%2F%2F%2Bywcqywcqywcqywcqywcqywcqywcqywcqywcqywcr%2F%2F%2F9FcflzAAAACnRSTlMAAE2%2B80yE8k70vyb3CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBTIC%2FLF8AAAA3ElEQVRo3u2Yqw7CQBBF2xIewYFCtsGhgIAABcGhwKLQKLC1fAIOBaWBMF9J99Fk7SZNijhH3cnNnKzdCQIAAAAAAACAGgn7M9nse3YabvN52URFsfPWnUTkbXWtIsvRNrrw1TWVQRIzHFTO3CL21DX01sQMS5VfbjH21LX11sUMqcoftzh76rp662kGncUtHujQoUOHDh06dOjQoUOHDh26mnXmy782Q6py7hYrT13Fl4pIb9k7ykjlzC1iT13FV55wsJBbUt6grvfvtGw6ReH7OAAAAAAAAIC%2F5gcmyb5xhztVmwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMi0xNVQxODowNTo1MCswMzowMOmPSkMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDItMTVUMTg6MDU6NTArMDM6MDCY0vL%2FAAAAAElFTkSuQmCC%22 %2F%3E%3C%2Fsvg%3E\");background-size:cover;cursor:grab}.nas-slider__slider::-webkit-slider-thumb{height:36px;width:36px;border-radius:50%;background-color:#003251;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcBAMAAAB4lt9%2BAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEX%2F%2F%2F%2Bywcqywcqywcqywcqywcqywcqywcqywcqywcqywcr%2F%2F%2F9FcflzAAAACnRSTlMAAE2%2B80yE8k70vyb3CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBTIC%2FLF8AAAA3ElEQVRo3u2Yqw7CQBBF2xIewYFCtsGhgIAABcGhwKLQKLC1fAIOBaWBMF9J99Fk7SZNijhH3cnNnKzdCQIAAAAAAACAGgn7M9nse3YabvN52URFsfPWnUTkbXWtIsvRNrrw1TWVQRIzHFTO3CL21DX01sQMS5VfbjH21LX11sUMqcoftzh76rp662kGncUtHujQoUOHDh06dOjQoUOHDh26mnXmy782Q6py7hYrT13Fl4pIb9k7ykjlzC1iT13FV55wsJBbUt6grvfvtGw6ReH7OAAAAAAAAIC%2F5gcmyb5xhztVmwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMi0xNVQxODowNTo1MCswMzowMOmPSkMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDItMTVUMTg6MDU6NTArMDM6MDCY0vL%2FAAAAAElFTkSuQmCC%22 %2F%3E%3C%2Fsvg%3E\");background-size:cover;cursor:-webkit-grab;cursor:grab;-webkit-appearance:none;margin-top:-17px}.nas-slider__slider::-moz-range-thumb{height:36px;width:36px;border-radius:50%;background-color:#003251;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcBAMAAAB4lt9%2BAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEX%2F%2F%2F%2Bywcqywcqywcqywcqywcqywcqywcqywcqywcqywcr%2F%2F%2F9FcflzAAAACnRSTlMAAE2%2B80yE8k70vyb3CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBTIC%2FLF8AAAA3ElEQVRo3u2Yqw7CQBBF2xIewYFCtsGhgIAABcGhwKLQKLC1fAIOBaWBMF9J99Fk7SZNijhH3cnNnKzdCQIAAAAAAACAGgn7M9nse3YabvN52URFsfPWnUTkbXWtIsvRNrrw1TWVQRIzHFTO3CL21DX01sQMS5VfbjH21LX11sUMqcoftzh76rp662kGncUtHujQoUOHDh06dOjQoUOHDh26mnXmy782Q6py7hYrT13Fl4pIb9k7ykjlzC1iT13FV55wsJBbUt6grvfvtGw6ReH7OAAAAAAAAIC%2F5gcmyb5xhztVmwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMi0xNVQxODowNTo1MCswMzowMOmPSkMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDItMTVUMTg6MDU6NTArMDM6MDCY0vL%2FAAAAAElFTkSuQmCC%22 %2F%3E%3C%2Fsvg%3E\");background-size:cover;cursor:grab}.nas-slider__slider::-ms-fill-lower,.nas-slider__slider::-ms-fill-upper{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");background-color:#d8d8d8}.nas-slider__slider::-ms-tooltip{display:none}.nas-slider__slider--disabled::-webkit-slider-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__slider--disabled::-moz-range-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__slider--disabled::-ms-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__slider:focus{outline:none}.nas-slider__slider:focus::-ms-fill-lower,.nas-slider__slider:focus::-ms-fill-upper{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");background-color:#d8d8d8}.nas-slider__range-slider{position:relative;width:98%;margin:0 auto 13px;height:7px;border-radius:5px;background-color:#d8d8d8;cursor:-webkit-grab;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\")}.nas-slider__range-slider-min{position:absolute;width:100%;height:0px;-webkit-appearance:none;outline:none;background-color:transparent;color:transparent}.nas-slider__range-slider-min::-webkit-slider-runnable-track{width:100%;height:7px;background-color:#d8d8d8;cursor:-webkit-grab;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");border-radius:5px;height:0}.nas-slider__range-slider-min::-webkit-slider-thumb{height:36px;width:36px;border-radius:50%;background-color:#003251;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcBAMAAAB4lt9%2BAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEX%2F%2F%2F%2Bywcqywcqywcqywcqywcqywcqywcqywcqywcqywcr%2F%2F%2F9FcflzAAAACnRSTlMAAE2%2B80yE8k70vyb3CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBTIC%2FLF8AAAA3ElEQVRo3u2Yqw7CQBBF2xIewYFCtsGhgIAABcGhwKLQKLC1fAIOBaWBMF9J99Fk7SZNijhH3cnNnKzdCQIAAAAAAACAGgn7M9nse3YabvN52URFsfPWnUTkbXWtIsvRNrrw1TWVQRIzHFTO3CL21DX01sQMS5VfbjH21LX11sUMqcoftzh76rp662kGncUtHujQoUOHDh06dOjQoUOHDh26mnXmy782Q6py7hYrT13Fl4pIb9k7ykjlzC1iT13FV55wsJBbUt6grvfvtGw6ReH7OAAAAAAAAIC%2F5gcmyb5xhztVmwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMi0xNVQxODowNTo1MCswMzowMOmPSkMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDItMTVUMTg6MDU6NTArMDM6MDCY0vL%2FAAAAAElFTkSuQmCC%22 %2F%3E%3C%2Fsvg%3E\");background-size:cover;cursor:-webkit-grab;cursor:grab;margin-top:-17px;margin-left:-7px;-webkit-appearance:none}.nas-slider__range-slider-min::-moz-range-track{width:100%;height:7px;background-color:#d8d8d8;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");border-radius:5px;height:0px}.nas-slider__range-slider-min::-moz-range-thumb{height:36px;width:36px;border-radius:50%;background-color:#003251;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcBAMAAAB4lt9%2BAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEX%2F%2F%2F%2Bywcqywcqywcqywcqywcqywcqywcqywcqywcqywcr%2F%2F%2F9FcflzAAAACnRSTlMAAE2%2B80yE8k70vyb3CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBTIC%2FLF8AAAA3ElEQVRo3u2Yqw7CQBBF2xIewYFCtsGhgIAABcGhwKLQKLC1fAIOBaWBMF9J99Fk7SZNijhH3cnNnKzdCQIAAAAAAACAGgn7M9nse3YabvN52URFsfPWnUTkbXWtIsvRNrrw1TWVQRIzHFTO3CL21DX01sQMS5VfbjH21LX11sUMqcoftzh76rp662kGncUtHujQoUOHDh06dOjQoUOHDh26mnXmy782Q6py7hYrT13Fl4pIb9k7ykjlzC1iT13FV55wsJBbUt6grvfvtGw6ReH7OAAAAAAAAIC%2F5gcmyb5xhztVmwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMi0xNVQxODowNTo1MCswMzowMOmPSkMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDItMTVUMTg6MDU6NTArMDM6MDCY0vL%2FAAAAAElFTkSuQmCC%22 %2F%3E%3C%2Fsvg%3E\");background-size:cover;cursor:grab}.nas-slider__range-slider-min--disabled::-webkit-slider-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__range-slider-min--disabled::-moz-range-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__range-slider-min--disabled::-ms-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__range-slider-min:focus{outline:none}.nas-slider__range-slider-max{position:absolute;width:101%;height:0px;-webkit-appearance:none;outline:none;background-color:transparent;color:transparent}.nas-slider__range-slider-max::-webkit-slider-runnable-track{width:100%;height:7px;background-color:#d8d8d8;cursor:-webkit-grab;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");border-radius:5px;height:0}.nas-slider__range-slider-max::-webkit-slider-thumb{height:36px;width:36px;border-radius:50%;background-color:#003251;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcBAMAAAB4lt9%2BAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEX%2F%2F%2F%2Bywcqywcqywcqywcqywcqywcqywcqywcqywcqywcr%2F%2F%2F9FcflzAAAACnRSTlMAAE2%2B80yE8k70vyb3CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBTIC%2FLF8AAAA3ElEQVRo3u2Yqw7CQBBF2xIewYFCtsGhgIAABcGhwKLQKLC1fAIOBaWBMF9J99Fk7SZNijhH3cnNnKzdCQIAAAAAAACAGgn7M9nse3YabvN52URFsfPWnUTkbXWtIsvRNrrw1TWVQRIzHFTO3CL21DX01sQMS5VfbjH21LX11sUMqcoftzh76rp662kGncUtHujQoUOHDh06dOjQoUOHDh26mnXmy782Q6py7hYrT13Fl4pIb9k7ykjlzC1iT13FV55wsJBbUt6grvfvtGw6ReH7OAAAAAAAAIC%2F5gcmyb5xhztVmwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMi0xNVQxODowNTo1MCswMzowMOmPSkMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDItMTVUMTg6MDU6NTArMDM6MDCY0vL%2FAAAAAElFTkSuQmCC%22 %2F%3E%3C%2Fsvg%3E\");background-size:cover;cursor:-webkit-grab;cursor:grab;margin-top:-17px;margin-left:-7px;-webkit-appearance:none}.nas-slider__range-slider-max::-moz-range-track{width:100%;height:7px;background-color:#d8d8d8;cursor:grab;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%226px%22 height%3D%226px%22 viewBox%3D%220 0 6 6%22 enable-background%3D%22new 0 0 6 6%22 xml%3Aspace%3D%22preserve%22%3E%3Crect x%3D%223%22 opacity%3D%220.5%22 fill%3D%22%23FFFFFF%22 width%3D%223%22 height%3D%226%22%2F%3E%3C%2Fsvg%3E\");border-radius:5px;height:0}.nas-slider__range-slider-max::-moz-range-thumb{height:36px;width:36px;border-radius:50%;background-color:#003251;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcBAMAAAB4lt9%2BAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEX%2F%2F%2F%2Bywcqywcqywcqywcqywcqywcqywcqywcqywcqywcr%2F%2F%2F9FcflzAAAACnRSTlMAAE2%2B80yE8k70vyb3CgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBTIC%2FLF8AAAA3ElEQVRo3u2Yqw7CQBBF2xIewYFCtsGhgIAABcGhwKLQKLC1fAIOBaWBMF9J99Fk7SZNijhH3cnNnKzdCQIAAAAAAACAGgn7M9nse3YabvN52URFsfPWnUTkbXWtIsvRNrrw1TWVQRIzHFTO3CL21DX01sQMS5VfbjH21LX11sUMqcoftzh76rp662kGncUtHujQoUOHDh06dOjQoUOHDh26mnXmy782Q6py7hYrT13Fl4pIb9k7ykjlzC1iT13FV55wsJBbUt6grvfvtGw6ReH7OAAAAAAAAIC%2F5gcmyb5xhztVmwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMi0xNVQxODowNTo1MCswMzowMOmPSkMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDItMTVUMTg6MDU6NTArMDM6MDCY0vL%2FAAAAAElFTkSuQmCC%22 %2F%3E%3C%2Fsvg%3E\");background-size:cover;cursor:grab}.nas-slider__range-slider-max--disabled::-webkit-slider-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__range-slider-max--disabled::-moz-range-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__range-slider-max--disabled::-ms-thumb{background-color:#909090;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22 width%3D%22156px%22 height%3D%22156px%22 viewBox%3D%220 0 156 156%22 enable-background%3D%22new 0 0 156 156%22 xml%3Aspace%3D%22preserve%22%3E %3Cimage id%3D%22image0%22 width%3D%22156%22 height%3D%22156%22 x%3D%220%22 y%3D%220%22 xlink%3Ahref%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAQAAAAgsQrGAAAABGdBTUEAALGPC%2FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA%2F4ePzL8AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQflAg8SBw2GrP7DAAACRklEQVR42u3cMU5bQRhF4etESWPZ5VNWwwogW4mgDUUKXNN6H%2B7dpSJSepYwZYxr01vvEeZ4Bgt0vvKXLs86siw3eHaIiE%2FnfgHvleEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkO6hyupKRclW3ZlUM5lF3ZlsuSkvLy6mjxiudUL0416%2Fv%2FqiW5y8%2Bj4yq3yTC9GVkMty8%2BpXpxut7hLrMZOX%2FPZqhcDJs0W7TQ%2BzPuZvR6feZFA73fcf%2ByGDnvshwqF8Oy9hnTixZ6v%2BMWFde3WzTg1xHIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcFDvcLvR69OZFw30Dvdn9Ppw5kUDvcPdV1zfbtHA519d%2F%2Fz%2BMV9ycXRcZZ3MJxbzx%2F3IYlhPP6N%2B0ULvcMk2f%2FMtQ74m2ed3fmSdTIdL5tv90eJ%2FEeoXp%2Bv8gy0fl19HIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjIcJDhIMNBhoMMBxkOMhxkOMhwkOEgw0GGgwwHGQ4yHGQ4yHCQ4SDDQYaDDAcZDjIcZDjoGTgYefVY5oRqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTE1VDE4OjA3OjEzKzAzOjAwWNiOGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMi0xNVQxODowNzoxMyswMzowMCmFNqUAAAAASUVORK5CYII%3D%22 %2F%3E%3C%2Fsvg%3E\");cursor:default}.nas-slider__range-slider-max:focus{outline:none}.nas-slider__label{display:flex;margin-top:15px;color:#626363;width:70px;justify-content:center;font-family:\"Apercu\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-weight:bold}.nas-slider__label-wrapper{display:flex;justify-content:space-between}.nas-slider__label--max{padding-left:5px}.nas-slider__label--middle{text-align:center}\n"]
|
|
414
443
|
},] }
|
|
415
444
|
];
|
|
@@ -430,6 +459,7 @@ SliderComponent.propDecorators = {
|
|
|
430
459
|
selectedMaxValue: [{ type: Input }],
|
|
431
460
|
minDiffRange: [{ type: Input }],
|
|
432
461
|
suffix: [{ type: Input }],
|
|
462
|
+
isPrefix: [{ type: Input }],
|
|
433
463
|
min: [{ type: Input }],
|
|
434
464
|
minLabel: [{ type: Input }],
|
|
435
465
|
max: [{ type: Input }],
|
|
@@ -444,4 +474,4 @@ SliderComponent.propDecorators = {
|
|
|
444
474
|
selectedMinValueChange: [{ type: Output }],
|
|
445
475
|
selectedMaxValueChange: [{ type: Output }]
|
|
446
476
|
};
|
|
447
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFtQyxpQkFBaUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQUVmOzs7RUFHRTtBQU1GLE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQXVWbkQsWUFBb0IsR0FBc0I7UUFDeEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBREYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE1RTFDOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFMUQ7OztXQUdHO1FBQ08sMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFckU7OztVQUdFO1FBQ1EsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFLckUsZUFBVSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBd0NqRSx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFHZix1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFJdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU96QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUE1VEQ7OztPQUdHO0lBQ0gsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFQTs7O01BR0U7SUFDSCxJQUNJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFHeEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBYTtRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVBOzs7TUFHRTtJQUNILElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMvQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLE1BQU07UUFDUixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUM5QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksUUFBUTs7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzNCO2FBQU07WUFDTCxPQUFPLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsUUFBUSxFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksUUFBUTs7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzNCO2FBQU07WUFDTCxPQUFPLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsUUFBUSxFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUFvQjtRQUMzQixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7O1FBQ3pCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsYUFBYSxLQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBeURELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxPQUFZLENBQUM7WUFFakIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXRCLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN4QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ25DLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNUO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUMzQjthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUMzQjthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7O1FBQ2IsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEYsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBc0JELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ2hELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRXJFLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2xCLE9BQU87YUFDUjtZQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzlCLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsT0FBTzthQUNSO2lCQUFNO2dCQUNMLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN4QjtZQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUVqQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDekUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2RSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBRXZFLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQyxPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM5QixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNCLE9BQU87YUFDUjtpQkFBTTtnQkFDTCxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDM0I7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFFL0MsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDcEYsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNqRCxPQUFPO2lCQUNSO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNwRixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQ2pELE9BQU87aUJBQ1I7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7O1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVSLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBRUQsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkQsYUFBYSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5RCxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlELGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pELGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pELGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM1RixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdkU7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVUsRUFBRSxJQUFZO1FBQ3BDLElBQUksQ0FBQyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoRixRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssa0JBQWtCO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsT0FBTyxDQUFDO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO2dCQUNuQyxJQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDdEU7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssa0JBQWtCO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsT0FBTyxDQUFDO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO2dCQUNuQyxJQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDdEU7Z0JBQ0QsTUFBTTtZQUNSO2dCQUNFLE9BQU87U0FDVjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVSxFQUFFLElBQWE7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFhOztRQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsYUFBYSwwQ0FBRSxXQUFXLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksU0FBUyxDQUFDO1FBRWQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLGtCQUFrQjtnQkFDckIsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbEMsTUFBTTtZQUNSLEtBQUssa0JBQWtCO2dCQUNyQixTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUNsQyxNQUFNO1lBQ1I7Z0JBQ0UsT0FBTztTQUNWO1FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDN0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVsRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7SUFDckQsQ0FBQzs7O1lBdGhCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLDI5TkFBc0M7O2FBRXZDOzs7WUFkeUMsaUJBQWlCOzs7cUJBZ0J4RCxTQUFTLFNBQUMsUUFBUTt1QkFDbEIsU0FBUyxTQUFDLFVBQVU7dUJBQ3BCLFNBQVMsU0FBQyxVQUFVO3FCQUNwQixTQUFTLFNBQUMsUUFBUTtpQkFNbEIsS0FBSztvQkFNTCxLQUFLO21CQU1MLEtBQUs7b0JBTUwsS0FBSztvQkFNTCxLQUFLOytCQXdCTCxLQUFLOytCQXdCTCxLQUFLOzJCQXVCTCxLQUFLO3FCQWlCTCxLQUFLO2tCQWlCTCxLQUFLO3VCQWdCTCxLQUFLO2tCQWdCTCxLQUFLO3VCQWdCTCxLQUFLO21CQWdCTCxLQUFLO3VCQWdCTCxLQUFLO2lDQXNCTCxLQUFLO2dDQVFMLEtBQUs7Z0NBUUwsS0FBSzsyQkFRTCxLQUFLOzBCQU1MLE1BQU07cUNBTU4sTUFBTTtxQ0FNTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL25hcy1jb21wb25lbnQuYmFzZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIFNsaWRlciBDb21wb25lbnQgfCBGb3JtIENvbnRyb2xzIHwgQmV0YVxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBWaWV3Q2hpbGQoJ3NsaWRlcicpIHNsaWRlcj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3JhbmdlTWluJykgcmFuZ2VNaW4/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdyYW5nZU1heCcpIHJhbmdlTWF4PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnYnViYmxlJykgYnViYmxlPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBJRCBvZiB0aGUgc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIElEIG9mIHRoZSBzbGlkZXJcbiAgICovXG4gIEBJbnB1dCgpIHJhbmdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE5hbWUgYXR0cmlidXRlIG9mIHRoZSBzbGlkZXJcbiAgICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHRpdGxlIG9mIHRoZSBzbGlkZXJcbiAgICovXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIHZhbHVlIG9mIHRoZSBzbGlkZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlVmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMudmFsdWVWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWVWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuaXNWaWV3SW5pdCkge1xuICAgICAgdGhpcy5pc0J1YmJsZUFjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLnNldEJ1YmJsZVN0eWxlKCdzbGlkZXInKTtcbiAgICAgIHRoaXMuaXNCdWJibGVBY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgc2VsZWN0ZWQgbWluaW11bSB2YWx1ZSBvZiB0aGUgcmFuZ2Utc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRNaW5WYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZU1pblZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZE1pblZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLnJhbmdlTWluVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yYW5nZU1pblZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcblxuXG4gICAgaWYgKHRoaXMuaXNWaWV3SW5pdCkge1xuICAgICAgdGhpcy5pc0J1YmJsZUFjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLnNldEJ1YmJsZVN0eWxlKCdyYW5nZS1zbGlkZXItbWluJyk7XG4gICAgICB0aGlzLmlzQnViYmxlQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgc2VsZWN0ZWQgbWF4aW11bSB2YWx1ZSBvZiB0aGUgcmFuZ2Utc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRNYXhWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJhbmdlTWF4VmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkTWF4VmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5yYW5nZU1heFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmFuZ2VNYXhWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNlbGVjdGVkTWF4VmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5pc1ZpZXdJbml0KSB7XG4gICAgICB0aGlzLmlzQnViYmxlQWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0QnViYmxlU3R5bGUoJ3JhbmdlLXNsaWRlci1tYXgnKTtcbiAgICAgIHRoaXMuaXNCdWJibGVBY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbWluaW11bSBkaWZmZXJlbmNlIG9mIG1pbiBhbmQgbWF4IHJhbmdlLXNsaWRlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBtaW5EaWZmUmFuZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5taW5EaWZmZXJlbmNlUmFuZ2U7XG4gIH1cblxuICBzZXQgbWluRGlmZlJhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSB0aGlzLm1pbkRpZmZlcmVuY2VSYW5nZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubWluRGlmZmVyZW5jZVJhbmdlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBzdWZmaXgvZW5kaW5nIG9mIHRoZSB2YWx1ZSB0aGF0IHRoZSBzbGlkZXIgY2FuIGhhdmUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc3VmZml4KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc3VmZml4TGFiZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3VmZml4TGFiZWxWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc3VmZml4TGFiZWxWYWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHNldCBzdWZmaXgodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc3VmZml4TGFiZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbWluaW11bSB2YWx1ZSB0aGF0IHRoZSBzbGlkZXIgY2FuIGhhdmUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubWluVmFsdWU7XG4gIH1cbiAgc2V0IG1pbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5taW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubWluVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBjdXN0b20gbGFiZWwgZm9yIHRoZSBtaW5pbXVtIHZhbHVlLiBUaGUgYWN0dWFsIHZhbHVlIGlzIHN0aWxsIHNwZWNpZmllZCBieSBtaW4gaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbWluTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5taW5MYWJlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5taW5MYWJlbFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5taW4/LnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG4gIHNldCBtaW5MYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5taW5MYWJlbFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBtYXhpbXVtIHZhbHVlIHRoYXQgdGhlIHNsaWRlciBjYW4gaGF2ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTAwLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1heFZhbHVlO1xuICB9XG4gIHNldCBtYXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMubWF4VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1heFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgY3VzdG9tIGxhYmVsIGZvciB0aGUgbWF4aW11bSB2YWx1ZS4gVGhlIGFjdHVhbCB2YWx1ZSBpcyBzdGlsbCBzcGVjaWZpZWQgYnkgbWF4IGlucHV0LlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG1heExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubWF4TGFiZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMubWF4TGFiZWxWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMubWF4Py50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuICBzZXQgbWF4TGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubWF4TGFiZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdmFsdWVzIGF0IHdoaWNoIHRoZSB0aHVtYiB3aWxsIHNuYXBcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnN0ZXBWYWx1ZTtcbiAgfVxuICBzZXQgc3RlcCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5zdGVwVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0ZXBWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZFZhbHVlO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5kaXNhYmxlZFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2xpZGVyPy5uYXRpdmVFbGVtZW50ICYmICF0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgdGhpcy5zbGlkZXIubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZGlzYWJsZWRWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dCBvZiByYW5nZS1zbGlkZXIgbWluaW11bSB2YWx1ZS5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTWluOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQgb2YgcmFuZ2Utc2xpZGVyIG1heGltdW0gdmFsdWUuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE1heDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgc2lsZGVyIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVsbD4oKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgc2lsZGVyIG1pbmltdW0gdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkTWluVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlciB8IG51bGw+KCk7XG5cbiAgLyoqXG4gICogQGRlc2NyaXB0aW9uXG4gICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIHRoZSBzaWxkZXIgbWF4aW11bSB2YWx1ZSBjaGFuZ2VzXG4gICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZE1heFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudWxsPigpO1xuXG4gIGlzUmFuZ2U6IGJvb2xlYW47XG4gIHNob3dCdWJibGU6IGJvb2xlYW47XG4gIGJ1YmJsZVJhbmdlVmFsdWU6IG51bWJlcjtcbiAgaXNJRU9yRWRnZSA9IC9tc2llXFxzfHRyaWRlbnRcXC98ZWRnZVxcLy9pLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG4gIGdldCBzbGlkZXJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtc2xpZGVyLSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0IGlzQnViYmxlQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQnViYmxlQWN0aXZlVmFsdWU7XG4gIH1cbiAgc2V0IGlzQnViYmxlQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgbGV0IHRpbWVvdXQ6IGFueTtcblxuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuXG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNCdWJibGVBY3RpdmVWYWx1ZSA9IGZhbHNlO1xuICAgICAgfSwgMjUwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0J1YmJsZUFjdGl2ZVZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgYnViYmxlVmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdGhpcy5taW4pIHtcbiAgICAgIHJldHVybiB0aGlzLm1pbkxhYmVsVmFsdWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlID09PSB0aGlzLm1heCkge1xuICAgICAgcmV0dXJuIHRoaXMubWF4TGFiZWxWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbWlkZGxlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdW0gPSBwYXJzZUludCh0aGlzLm1pbj8udG9TdHJpbmcoKSwgMTApICsgcGFyc2VJbnQodGhpcy5tYXg/LnRvU3RyaW5nKCksIDEwKTtcbiAgICByZXR1cm4gKHN1bSAvIDIpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGlzQnViYmxlQWN0aXZlVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSB2YWx1ZVZhbHVlOiBudW1iZXIgfCBudWxsO1xuICBwcml2YXRlIG1pblZhbHVlID0gMDtcbiAgcHJpdmF0ZSBtYXhWYWx1ZSA9IDEwMDtcbiAgcHJpdmF0ZSByYW5nZU1heFZhbHVlOiBudW1iZXIgfCBudWxsO1xuICBwcml2YXRlIHJhbmdlTWluVmFsdWU6IG51bWJlciB8IG51bGw7XG4gIHByaXZhdGUgbWluRGlmZmVyZW5jZVJhbmdlID0gMjtcbiAgcHJpdmF0ZSBzdGVwVmFsdWU6IG51bWJlciB8IG51bGw7XG4gIHByaXZhdGUgZGlzYWJsZWRWYWx1ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuICBwcml2YXRlIGlzVmlld0luaXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBtaW5MYWJlbFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgbWF4TGFiZWxWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHN1ZmZpeExhYmVsVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcignbmFzLXNsaWRlcicpO1xuICAgIHRoaXMuY29tcG9uZW50SWQgPSBuZXh0SWQrKztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgY29uc3Qgc2xpZGVyQ29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSk7XG5cbiAgICAgIGlmICghc2xpZGVyQ29udHJvbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgICBzbGlkZXJDb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2xpZGVyQ29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy52YWx1ZSA9IHNsaWRlckNvbnRyb2wudmFsdWU7XG5cbiAgICAgIHNsaWRlckNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IG51bWJlciB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xNaW4gJiYgdGhpcy5uYXNGb3JtQ29udHJvbE1heCkge1xuICAgICAgY29uc3Qgc2xpZGVyTWluQ29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTWluKTtcbiAgICAgIGNvbnN0IHNsaWRlck1heENvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE1heCk7XG5cbiAgICAgIGlmICghc2xpZGVyTWluQ29udHJvbCB8fCAhc2xpZGVyTWF4Q29udHJvbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgICBzbGlkZXJNaW5Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgc2xpZGVyTWF4Q29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNsaWRlck1pbkNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIHNsaWRlck1heENvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZSA9IHNsaWRlck1pbkNvbnRyb2wudmFsdWU7XG4gICAgICB0aGlzLnNlbGVjdGVkTWF4VmFsdWUgPSBzbGlkZXJNYXhDb250cm9sLnZhbHVlO1xuXG4gICAgICBzbGlkZXJNaW5Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkgJiYgdmFsdWUgPiB0aGlzLnNlbGVjdGVkTWF4VmFsdWUgLSB0aGlzLm1pbkRpZmZSYW5nZSkge1xuICAgICAgICAgIHNsaWRlck1pbkNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZE1pblZhbHVlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzbGlkZXJNYXhDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkgJiYgdmFsdWUgPCB0aGlzLnNlbGVjdGVkTWluVmFsdWUgKyB0aGlzLm1pbkRpZmZSYW5nZSkge1xuICAgICAgICAgIHNsaWRlck1heENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZE1heFZhbHVlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmlzUmFuZ2UgPSB0aGlzLmV4aXN0cyh0aGlzLnJhbmdlKSA/IHRydWUgOiBmYWxzZTtcbiAgICB0aGlzLnNob3dCdWJibGUgPSBmYWxzZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNWaWV3SW5pdCA9IHRydWU7XG4gICAgfSwgMTAwKTtcblxuICAgIGlmICghdGhpcy5zbGlkZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZGV0ZWN0Q2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gTnVtYmVyKHRoaXMuc2xpZGVyLm5hdGl2ZUVsZW1lbnQubWluKTtcbiAgICAgIGRldGVjdENoYW5nZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zZWxlY3RlZE1pblZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTWluVmFsdWUgPSBOdW1iZXIodGhpcy5zbGlkZXIubmF0aXZlRWxlbWVudC5taW4pO1xuICAgICAgZGV0ZWN0Q2hhbmdlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkTWF4VmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNYXhWYWx1ZSA9IE51bWJlcih0aGlzLnNsaWRlci5uYXRpdmVFbGVtZW50Lm1heCk7XG4gICAgICBkZXRlY3RDaGFuZ2VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubWluKSB7XG4gICAgICB0aGlzLm1pbiA9IE51bWJlcih0aGlzLnNsaWRlci5uYXRpdmVFbGVtZW50Lm1pbik7XG4gICAgICBkZXRlY3RDaGFuZ2VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubWF4KSB7XG4gICAgICB0aGlzLm1heCA9IE51bWJlcih0aGlzLnNsaWRlci5uYXRpdmVFbGVtZW50Lm1heCk7XG4gICAgICBkZXRlY3RDaGFuZ2VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGV0ZWN0Q2hhbmdlcykge1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzUmFuZ2UgJiYgIXRoaXMubmFzRm9ybUNvbnRyb2xNaW4gJiYgIXRoaXMubmFzRm9ybUNvbnRyb2xNYXggJiYgIXRoaXMubmFzRm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLnJhbmdlTWluLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnNlbGVjdGVkTWluVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIHRoaXMucmFuZ2VNYXgubmF0aXZlRWxlbWVudC52YWx1ZSA9ICB0aGlzLnNlbGVjdGVkTWF4VmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRCdWJibGVTdHlsZSgpO1xuICB9XG5cbiAgb25TbGlkZXJJbnB1dChldmVudDogYW55LCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50Py50YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2hvd0J1YmJsZSA9IHRydWU7XG5cbiAgICBsZXQgZXZlbnRWYWx1ZSA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIGNvbnN0IG1hdGhNaW4gPSBNYXRoLm1pbihldmVudFZhbHVlLCB0aGlzLnNlbGVjdGVkTWF4VmFsdWUgLSB0aGlzLm1pbkRpZmZSYW5nZSk7XG4gICAgY29uc3QgbWF0aE1heCA9IE1hdGgubWF4KGV2ZW50VmFsdWUsIHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZSArIHRoaXMubWluRGlmZlJhbmdlKTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc2xpZGVyJyA6XG4gICAgICAgIHRoaXMudmFsdWUgPSBldmVudFZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JhbmdlLXNsaWRlci1taW4nIDpcbiAgICAgICAgdGhpcy5idWJibGVSYW5nZVZhbHVlID0gbWF0aE1pbjtcbiAgICAgICAgZXZlbnRWYWx1ZSA9IG1hdGhNaW47XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZSA9IGV2ZW50VmFsdWU7XG4gICAgICAgIGlmICggZXZlbnRWYWx1ZSA+PSB0aGlzLnNlbGVjdGVkTWF4VmFsdWUgLSB0aGlzLm1pbkRpZmZSYW5nZSkge1xuICAgICAgICAgIHRoaXMucmFuZ2VNaW4ubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZ2Utc2xpZGVyLW1heCcgOlxuICAgICAgICB0aGlzLmJ1YmJsZVJhbmdlVmFsdWUgPSBtYXRoTWF4O1xuICAgICAgICBldmVudFZhbHVlID0gbWF0aE1heDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1heFZhbHVlID0gZXZlbnRWYWx1ZTtcbiAgICAgICAgaWYgKCBldmVudFZhbHVlIDw9IHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZSArIHRoaXMubWluRGlmZlJhbmdlKSB7XG4gICAgICAgICAgdGhpcy5yYW5nZU1heC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5zZWxlY3RlZE1heFZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0IDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIG9uU2xpZGVyQ2hhbmdlKGV2ZW50OiBhbnksIHR5cGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2xpZGVySW5wdXQoZXZlbnQsIHR5cGUpO1xuICAgIHRoaXMuaXNCdWJibGVBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QnViYmxlU3R5bGUodHlwZT86IHN0cmluZykge1xuICAgIGNvbnN0IGlucHV0V2lkdGggPSB0aGlzLnNsaWRlcj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgbWluVmFsdWUgPSBOdW1iZXIodGhpcy5taW4pO1xuICAgIGNvbnN0IG1heFZhbHVlID0gTnVtYmVyKHRoaXMubWF4KTtcbiAgICBsZXQgdmFsdWVUeXBlO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzbGlkZXInOlxuICAgICAgICB2YWx1ZVR5cGUgPSB0aGlzLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JhbmdlLXNsaWRlci1taW4nOlxuICAgICAgICB2YWx1ZVR5cGUgPSB0aGlzLnNlbGVjdGVkTWluVmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZ2Utc2xpZGVyLW1heCc6XG4gICAgICAgIHZhbHVlVHlwZSA9IHRoaXMuc2VsZWN0ZWRNYXhWYWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmF0aW8gPSAodmFsdWVUeXBlIC0gbWluVmFsdWUpIC8gKG1heFZhbHVlIC0gbWluVmFsdWUpO1xuICAgIGNvbnN0IHRodW1iV2lkdGggPSAzNjtcbiAgICBjb25zdCB0aHVtYkhhbGZXaWR0aCA9IHRodW1iV2lkdGggLyAyO1xuICAgIGNvbnN0IGxlZnQgPSAoKChyYXRpbykgKiAoKGlucHV0V2lkdGggLSB0aHVtYkhhbGZXaWR0aCkgLSB0aHVtYkhhbGZXaWR0aCkpICsgdGh1bWJIYWxmV2lkdGgpIC0gNDU7XG5cbiAgICB0aGlzLmJ1YmJsZS5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YDtcbiAgfVxufVxuIl19
|
|
477
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFtQyxpQkFBaUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQUVmOzs7RUFHRTtBQU1GLE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQStVbkQsWUFBb0IsR0FBc0I7UUFDeEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBREYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqRjFDOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFMUQ7OztXQUdHO1FBQ08sMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFckU7OztVQUdFO1FBQ1EsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFLckUsZUFBVSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBMkNqRSx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFHZix1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFJdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVN6QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFw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RXZDOzs7WUFkeUMsaUJBQWlCOzs7cUJBZ0J4RCxTQUFTLFNBQUMsUUFBUTt1QkFDbEIsU0FBUyxTQUFDLFVBQVU7dUJBQ3BCLFNBQVMsU0FBQyxVQUFVO3FCQUNwQixTQUFTLFNBQUMsUUFBUTtpQkFNbEIsS0FBSztvQkFNTCxLQUFLO21CQU1MLEtBQUs7b0JBTUwsS0FBSztvQkFNTCxLQUFLOytCQWtCTCxLQUFLOytCQWlCTCxLQUFLOzJCQWlCTCxLQUFLO3FCQWlCTCxLQUFLO3VCQWlCTCxLQUFLO2tCQU1MLEtBQUs7dUJBZ0JMLEtBQUs7a0JBZ0JMLEtBQUs7dUJBZ0JMLEtBQUs7bUJBZ0JMLEtBQUs7dUJBZ0JMLEtBQUs7aUNBc0JMLEtBQUs7Z0NBUUwsS0FBSztnQ0FRTCxLQUFLOzJCQVFMLEtBQUs7MEJBTUwsTUFBTTtxQ0FNTixNQUFNO3FDQU1OLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvbmFzLWNvbXBvbmVudC5iYXNlJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gU2xpZGVyIENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHNcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtc2xpZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NsaWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlckNvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBAVmlld0NoaWxkKCdzbGlkZXInKSBzbGlkZXI/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdyYW5nZU1pbicpIHJhbmdlTWluPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgncmFuZ2VNYXgnKSByYW5nZU1heD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2J1YmJsZScpIGJ1YmJsZT86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIHNsaWRlclxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBJRCBvZiB0aGUgc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKSByYW5nZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBOYW1lIGF0dHJpYnV0ZSBvZiB0aGUgc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSB0aXRsZSBvZiB0aGUgc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLnZhbHVlVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBzZWxlY3RlZCBtaW5pbXVtIHZhbHVlIG9mIHRoZSByYW5nZS1zbGlkZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZE1pblZhbHVlKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJhbmdlTWluVmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkTWluVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMucmFuZ2VNaW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJhbmdlTWluVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZWxlY3RlZE1pblZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgc2VsZWN0ZWQgbWF4aW11bSB2YWx1ZSBvZiB0aGUgcmFuZ2Utc2xpZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRNYXhWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJhbmdlTWF4VmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkTWF4VmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5yYW5nZU1heFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmFuZ2VNYXhWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNlbGVjdGVkTWF4VmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbWluaW11bSBkaWZmZXJlbmNlIG9mIG1pbiBhbmQgbWF4IHJhbmdlLXNsaWRlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBtaW5EaWZmUmFuZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5taW5EaWZmZXJlbmNlUmFuZ2U7XG4gIH1cblxuICBzZXQgbWluRGlmZlJhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSB0aGlzLm1pbkRpZmZlcmVuY2VSYW5nZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubWluRGlmZmVyZW5jZVJhbmdlID0gTnVtYmVyKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIHN1ZmZpeC9lbmRpbmcgb2YgdGhlIHZhbHVlIHRoYXQgdGhlIHNsaWRlciBjYW4gaGF2ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBzdWZmaXgoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdWZmaXhMYWJlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdWZmaXhMYWJlbFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5zdWZmaXhMYWJlbFZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgc2V0IHN1ZmZpeCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdWZmaXhMYWJlbFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE92ZXJ3cml0ZXMgdGhlIHN1ZmZpeCBhbmQgYWRkcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB2YWx1ZSB0aGF0IHRoZSBzbGlkZXIgY2FuIGhhdmUuXG4gICAqL1xuICBASW5wdXQoKSBpc1ByZWZpeD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbWluaW11bSB2YWx1ZSB0aGF0IHRoZSBzbGlkZXIgY2FuIGhhdmUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubWluVmFsdWU7XG4gIH1cbiAgc2V0IG1pbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5taW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubWluVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBjdXN0b20gbGFiZWwgZm9yIHRoZSBtaW5pbXVtIHZhbHVlLiBUaGUgYWN0dWFsIHZhbHVlIGlzIHN0aWxsIHNwZWNpZmllZCBieSBtaW4gaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbWluTGFiZWwoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICBpZiAodGhpcy5taW5MYWJlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5taW5MYWJlbFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5taW47XG4gICAgfVxuICB9XG4gIHNldCBtaW5MYWJlbCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgdGhpcy5taW5MYWJlbFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBtYXhpbXVtIHZhbHVlIHRoYXQgdGhlIHNsaWRlciBjYW4gaGF2ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTAwLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1heFZhbHVlO1xuICB9XG4gIHNldCBtYXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMubWF4VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1heFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgY3VzdG9tIGxhYmVsIGZvciB0aGUgbWF4aW11bSB2YWx1ZS4gVGhlIGFjdHVhbCB2YWx1ZSBpcyBzdGlsbCBzcGVjaWZpZWQgYnkgbWF4IGlucHV0LlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG1heExhYmVsKCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgaWYgKHRoaXMubWF4TGFiZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMubWF4TGFiZWxWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMubWF4O1xuICAgIH1cbiAgfVxuICBzZXQgbWF4TGFiZWwodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHRoaXMubWF4TGFiZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdmFsdWVzIGF0IHdoaWNoIHRoZSB0aHVtYiB3aWxsIHNuYXBcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnN0ZXBWYWx1ZTtcbiAgfVxuICBzZXQgc3RlcCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5zdGVwVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0ZXBWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZFxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkVmFsdWU7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLmRpc2FibGVkVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zbGlkZXI/Lm5hdGl2ZUVsZW1lbnQgJiYgIXRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICB0aGlzLnNsaWRlci5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5kaXNhYmxlZFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIGlucHV0IG9mIHJhbmdlLXNsaWRlciBtaW5pbXVtIHZhbHVlLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCByZXF1aWVycyB0aGF0IHRoZSBuYXNGb3JtR3JvdXAgaW5wdXQgaXMgZmlsbGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xNaW46IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dCBvZiByYW5nZS1zbGlkZXIgbWF4aW11bSB2YWx1ZS5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTWF4OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIHRoZSBzaWxkZXIgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudWxsPigpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIHRoZSBzaWxkZXIgbWluaW11bSB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRNaW5WYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVsbD4oKTtcblxuICAvKipcbiAgKiBAZGVzY3JpcHRpb25cbiAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgdGhlIHNpbGRlciBtYXhpbXVtIHZhbHVlIGNoYW5nZXNcbiAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkTWF4VmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlciB8IG51bGw+KCk7XG5cbiAgaXNSYW5nZTogYm9vbGVhbjtcbiAgc2hvd0J1YmJsZTogYm9vbGVhbjtcbiAgYnViYmxlVmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgaXNJRU9yRWRnZSA9IC9tc2llXFxzfHRyaWRlbnRcXC98ZWRnZVxcLy9pLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO1xuICBzaG93QnViYmxlU3VmZml4OiBib29sZWFuO1xuXG4gIGdldCBzbGlkZXJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtc2xpZGVyLSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0IGlzQnViYmxlQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQnViYmxlQWN0aXZlVmFsdWU7XG4gIH1cbiAgc2V0IGlzQnViYmxlQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgbGV0IHRpbWVvdXQ6IGFueTtcblxuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuXG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNCdWJibGVBY3RpdmVWYWx1ZSA9IGZhbHNlO1xuICAgICAgfSwgMjUwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNCdWJibGVBY3RpdmVWYWx1ZSA9IHRydWU7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtaWRkbGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN1bSA9IHRoaXMubWluICsgdGhpcy5tYXg7XG4gICAgY29uc3QgbWlkZGxlU3VtID0gc3VtIC8gMjtcbiAgICBpZiAoc3VtICUgMiA9PT0gMSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBtaWRkbGVTdW0udG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldCBzaG93TWluTGFiZWxTdWZmaXgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZih0aGlzLm1pbkxhYmVsKSA9PT0gJ251bWJlcic7XG4gIH1cblxuICBnZXQgc2hvd01heExhYmVsU3VmZml4KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YodGhpcy5tYXhMYWJlbCkgPT09ICdudW1iZXInO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0J1YmJsZUFjdGl2ZVZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgdmFsdWVWYWx1ZTogbnVtYmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSBtaW5WYWx1ZSA9IDA7XG4gIHByaXZhdGUgbWF4VmFsdWUgPSAxMDA7XG4gIHByaXZhdGUgcmFuZ2VNYXhWYWx1ZTogbnVtYmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSByYW5nZU1pblZhbHVlOiBudW1iZXIgfCBudWxsO1xuICBwcml2YXRlIG1pbkRpZmZlcmVuY2VSYW5nZSA9IDI7XG4gIHByaXZhdGUgc3RlcFZhbHVlOiBudW1iZXIgfCBudWxsO1xuICBwcml2YXRlIGRpc2FibGVkVmFsdWU6IGJvb2xlYW47XG4gIHByaXZhdGUgY29tcG9uZW50SWQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBpc1ZpZXdJbml0ID0gZmFsc2U7XG4gIHByaXZhdGUgbWluTGFiZWxWYWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBwcml2YXRlIG1heExhYmVsVmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgcHJpdmF0ZSBzdWZmaXhMYWJlbFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgbWF4U2VsZWN0ZWQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBtaW5TZWxlY3RlZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCduYXMtc2xpZGVyJyk7XG4gICAgdGhpcy5jb21wb25lbnRJZCA9IG5leHRJZCsrO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICBjb25zdCBzbGlkZXJDb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgaWYgKCFzbGlkZXJDb250cm9sKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZWQpKSB7XG4gICAgICAgIHNsaWRlckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGlkZXJDb250cm9sLmVuYWJsZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnZhbHVlID0gc2xpZGVyQ29udHJvbC52YWx1ZTtcblxuICAgICAgc2xpZGVyQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZhdGVCdWJibGUodmFsdWUsICdzbGlkZXInKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTWluICYmIHRoaXMubmFzRm9ybUNvbnRyb2xNYXgpIHtcbiAgICAgIGNvbnN0IHNsaWRlck1pbkNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE1pbik7XG4gICAgICBjb25zdCBzbGlkZXJNYXhDb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xNYXgpO1xuXG4gICAgICBpZiAoIXNsaWRlck1pbkNvbnRyb2wgfHwgIXNsaWRlck1heENvbnRyb2wpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkpIHtcbiAgICAgICAgc2xpZGVyTWluQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIHNsaWRlck1heENvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGlkZXJNaW5Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICBzbGlkZXJNYXhDb250cm9sLmVuYWJsZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkTWluVmFsdWUgPSBzbGlkZXJNaW5Db250cm9sLnZhbHVlO1xuICAgICAgdGhpcy5zZWxlY3RlZE1heFZhbHVlID0gc2xpZGVyTWF4Q29udHJvbC52YWx1ZTtcblxuICAgICAgc2xpZGVyTWluQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZWQpICYmIHZhbHVlID4gdGhpcy5zZWxlY3RlZE1heFZhbHVlIC0gdGhpcy5taW5EaWZmUmFuZ2UpIHtcbiAgICAgICAgICBzbGlkZXJNaW5Db250cm9sLnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnViYmxlVmFsdWUgPSB0aGlzLnNldEJ1YmJsZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUJ1YmJsZSh2YWx1ZSwgJ3JhbmdlLXNsaWRlci1taW4nKTtcbiAgICAgIH0pO1xuXG4gICAgICBzbGlkZXJNYXhDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkgJiYgdmFsdWUgPCB0aGlzLnNlbGVjdGVkTWluVmFsdWUgKyB0aGlzLm1pbkRpZmZSYW5nZSkge1xuICAgICAgICAgIHNsaWRlck1heENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZE1heFZhbHVlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5idWJibGVWYWx1ZSA9IHRoaXMuc2V0QnViYmxlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmFjdGl2YXRlQnViYmxlKHZhbHVlLCAncmFuZ2Utc2xpZGVyLW1heCcpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNSYW5nZSA9IHRoaXMuZXhpc3RzKHRoaXMucmFuZ2UpID8gdHJ1ZSA6IGZhbHNlO1xuICAgIHRoaXMuc2hvd0J1YmJsZSA9IGZhbHNlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc1ZpZXdJbml0ID0gdHJ1ZTtcbiAgICB9LCAxMDApO1xuXG4gICAgaWYgKCF0aGlzLnNsaWRlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBkZXRlY3RDaGFuZ2VzID0gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBOdW1iZXIodGhpcy5zbGlkZXIubmF0aXZlRWxlbWVudC5taW4pO1xuICAgICAgZGV0ZWN0Q2hhbmdlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkTWluVmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZSA9IE51bWJlcih0aGlzLnNsaWRlci5uYXRpdmVFbGVtZW50Lm1pbik7XG4gICAgICBkZXRlY3RDaGFuZ2VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRNYXhWYWx1ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE1heFZhbHVlID0gTnVtYmVyKHRoaXMuc2xpZGVyLm5hdGl2ZUVsZW1lbnQubWF4KTtcbiAgICAgIGRldGVjdENoYW5nZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5taW4pIHtcbiAgICAgIHRoaXMubWluID0gTnVtYmVyKHRoaXMuc2xpZGVyLm5hdGl2ZUVsZW1lbnQubWluKTtcbiAgICAgIGRldGVjdENoYW5nZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5tYXgpIHtcbiAgICAgIHRoaXMubWF4ID0gTnVtYmVyKHRoaXMuc2xpZGVyLm5hdGl2ZUVsZW1lbnQubWF4KTtcbiAgICAgIGRldGVjdENoYW5nZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChkZXRlY3RDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNSYW5nZSAmJiAhdGhpcy5uYXNGb3JtQ29udHJvbE1pbiAmJiAhdGhpcy5uYXNGb3JtQ29udHJvbE1heCAmJiAhdGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgIHRoaXMucmFuZ2VNaW4ubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZS50b1N0cmluZygpO1xuICAgICAgdGhpcy5yYW5nZU1heC5uYXRpdmVFbGVtZW50LnZhbHVlID0gIHRoaXMuc2VsZWN0ZWRNYXhWYWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEJ1YmJsZVN0eWxlKCk7XG4gIH1cblxuICBvblNsaWRlcklucHV0KGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghZXZlbnQ/LnRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2hvd0J1YmJsZSA9IHRydWU7XG4gICAgY29uc3QgZXZlbnRWYWx1ZSA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzbGlkZXInIDpcbiAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50VmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZ2Utc2xpZGVyLW1pbicgOlxuICAgICAgICB0aGlzLnNlbGVjdGVkTWluVmFsdWUgPSB0aGlzLm1pblNlbGVjdGVkID8gdGhpcy5taW5TZWxlY3RlZCA6IGV2ZW50VmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZ2Utc2xpZGVyLW1heCcgOlxuICAgICAgICB0aGlzLnNlbGVjdGVkTWF4VmFsdWUgPSB0aGlzLm1heFNlbGVjdGVkID8gdGhpcy5tYXhTZWxlY3RlZCA6IGV2ZW50VmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdCA6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBvblNsaWRlckNoYW5nZShldmVudDogYW55LCB0eXBlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vblNsaWRlcklucHV0KGV2ZW50LCB0eXBlKTtcbiAgICB0aGlzLmlzQnViYmxlQWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNldEJ1YmJsZVN0eWxlKHZhbHVlPzogbnVtYmVyLCB0eXBlPzogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmJ1YmJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0V2lkdGggPSB0aGlzLnNsaWRlcj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgbWluVmFsdWUgPSBOdW1iZXIodGhpcy5taW4pO1xuICAgIGNvbnN0IG1heFZhbHVlID0gTnVtYmVyKHRoaXMubWF4KTtcbiAgICBsZXQgdmFsdWVUeXBlO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzbGlkZXInOlxuICAgICAgICB0aGlzLmJ1YmJsZVZhbHVlID0gdGhpcy5zZXRCdWJibGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JhbmdlLXNsaWRlci1taW4nOlxuICAgICAgY2FzZSAncmFuZ2Utc2xpZGVyLW1heCc6XG4gICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYXRpbyA9ICh2YWx1ZVR5cGUgLSBtaW5WYWx1ZSkgLyAobWF4VmFsdWUgLSBtaW5WYWx1ZSk7XG4gICAgY29uc3QgdGh1bWJXaWR0aCA9IDM2O1xuICAgIGNvbnN0IHRodW1iSGFsZldpZHRoID0gdGh1bWJXaWR0aCAvIDI7XG4gICAgY29uc3QgbGVmdCA9ICgoKHJhdGlvKSAqICgoaW5wdXRXaWR0aCAtIHRodW1iSGFsZldpZHRoKSAtIHRodW1iSGFsZldpZHRoKSkgKyB0aHVtYkhhbGZXaWR0aCkgLSA0NTtcblxuICAgIHRoaXMuYnViYmxlLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICB9XG5cbiAgcHVibGljIG9uRGlzcGxheUJ1YmJsZShldmVudD86IGFueSwgdHlwZT86IHN0cmluZykge1xuICAgIGlmICghZXZlbnQ/LnRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzVmlld0luaXQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVSYW5nZXJTbGlkZXIoTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSksIHR5cGUpO1xuICAgICAgdGhpcy5hY3RpdmF0ZUJ1YmJsZShOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVJhbmdlclNsaWRlcih2YWx1ZTogbnVtYmVyLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgZXZlbnRWYWx1ZSA9IHZhbHVlO1xuICAgIGNvbnN0IG1hdGhNaW4gPSBNYXRoLm1pbih2YWx1ZSwgdGhpcy5zZWxlY3RlZE1heFZhbHVlIC0gdGhpcy5taW5EaWZmUmFuZ2UpO1xuICAgIGNvbnN0IG1hdGhNYXggPSBNYXRoLm1heCh2YWx1ZSwgdGhpcy5zZWxlY3RlZE1pblZhbHVlICsgdGhpcy5taW5EaWZmUmFuZ2UpO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdyYW5nZS1zbGlkZXItbWluJzpcbiAgICAgICAgdGhpcy5idWJibGVWYWx1ZSA9IHRoaXMuc2V0QnViYmxlVmFsdWUobWF0aE1pbik7XG4gICAgICAgIGV2ZW50VmFsdWUgPSBtYXRoTWluO1xuICAgICAgICB0aGlzLm1pblNlbGVjdGVkID0gZXZlbnRWYWx1ZTtcbiAgICAgICAgaWYgKGV2ZW50VmFsdWUgPj0gKHRoaXMuc2VsZWN0ZWRNYXhWYWx1ZSAtIHRoaXMubWluRGlmZlJhbmdlKSkge1xuICAgICAgICAgIHRoaXMucmFuZ2VNaW4ubmF0aXZlRWxlbWVudC52YWx1ZSA9IG1hdGhNaW4udG9TdHJpbmcoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyYW5nZS1zbGlkZXItbWF4JzpcbiAgICAgICAgdGhpcy5idWJibGVWYWx1ZSA9IHRoaXMuc2V0QnViYmxlVmFsdWUobWF0aE1heCk7XG4gICAgICAgIGV2ZW50VmFsdWUgPSBtYXRoTWF4O1xuICAgICAgICB0aGlzLm1heFNlbGVjdGVkID0gZXZlbnRWYWx1ZTtcbiAgICAgICAgaWYgKGV2ZW50VmFsdWUgPD0gKHRoaXMuc2VsZWN0ZWRNaW5WYWx1ZSArIHRoaXMubWluRGlmZlJhbmdlKSkge1xuICAgICAgICAgIHRoaXMucmFuZ2VNYXgubmF0aXZlRWxlbWVudC52YWx1ZSA9IG1hdGhNYXgudG9TdHJpbmcoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZUJ1YmJsZSh2YWx1ZTogbnVtYmVyLCB0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dCdWJibGUgPSB0cnVlO1xuICAgIHRoaXMuaXNCdWJibGVBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuc2V0QnViYmxlU3R5bGUodmFsdWUsIHR5cGUpO1xuICAgIHRoaXMuaXNCdWJibGVBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QnViYmxlVmFsdWUodmFsdWU6IG51bWJlcik6IHN0cmluZyB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLm1pbiAmJiB0eXBlb2YodGhpcy5taW5MYWJlbCkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNob3dCdWJibGVTdWZmaXggPSBmYWxzZTtcbiAgICAgIHJldHVybiB0aGlzLm1pbkxhYmVsO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHRoaXMubWF4ICYmIHR5cGVvZih0aGlzLm1heExhYmVsKSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuc2hvd0J1YmJsZVN1ZmZpeCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRoaXMubWF4TGFiZWw7XG4gICAgfVxuICAgIHRoaXMuc2hvd0J1YmJsZVN1ZmZpeCA9IHRydWU7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cblxufVxuIl19
|