@po-ui/ng-components 17.26.4 → 17.26.6

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.
Files changed (29) hide show
  1. package/esm2022/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.mjs +31 -13
  2. package/esm2022/lib/components/po-accordion/po-accordion-manager/po-accordion-manager.component.mjs +47 -12
  3. package/esm2022/lib/components/po-accordion/po-accordion.module.mjs +5 -4
  4. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.mjs +2 -2
  5. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +114 -3
  6. package/esm2022/lib/components/po-page/po-page-default/po-page-default-base.component.mjs +2 -2
  7. package/esm2022/lib/components/po-page/po-page-default/po-page-default.component.mjs +9 -1
  8. package/fesm2022/po-ui-ng-components.mjs +211 -41
  9. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  10. package/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.d.ts +2 -0
  11. package/lib/components/po-accordion/po-accordion-manager/po-accordion-manager.component.d.ts +8 -2
  12. package/lib/components/po-accordion/po-accordion.module.d.ts +2 -1
  13. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.d.ts +1 -1
  14. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.d.ts +7 -2
  15. package/lib/components/po-page/po-page-default/po-page-default-base.component.d.ts +1 -0
  16. package/lib/components/po-page/po-page-default/po-page-default.component.d.ts +2 -0
  17. package/package.json +4 -4
  18. package/po-ui-ng-components-17.26.6.tgz +0 -0
  19. package/schematics/ng-add/index.js +1 -1
  20. package/schematics/ng-update/v14/index.js +1 -1
  21. package/schematics/ng-update/v15/index.js +1 -1
  22. package/schematics/ng-update/v16/index.js +1 -1
  23. package/schematics/ng-update/v17/index.js +1 -1
  24. package/schematics/ng-update/v2/index.js +1 -1
  25. package/schematics/ng-update/v3/index.js +1 -1
  26. package/schematics/ng-update/v4/index.js +1 -1
  27. package/schematics/ng-update/v5/index.js +1 -1
  28. package/schematics/ng-update/v6/index.js +1 -1
  29. package/po-ui-ng-components-17.26.4.tgz +0 -0
@@ -1,7 +1,7 @@
1
1
  import { Component, ViewChildren } from '@angular/core';
2
2
  import { ControlContainer, NgForm } from '@angular/forms';
3
- import { PoDynamicFormFieldsBaseComponent } from './po-dynamic-form-fields-base.component';
4
3
  import { PoDynamicFormValidationService } from '../po-dynamic-form-validation/po-dynamic-form-validation.service';
4
+ import { PoDynamicFormFieldsBaseComponent } from './po-dynamic-form-fields-base.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  import * as i2 from "../po-dynamic-form-validation/po-dynamic-form-validation.service";
@@ -333,7 +333,12 @@ export class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseCompone
333
333
  ngOnChanges(changes) {
334
334
  if (changes.fields) {
335
335
  this.visibleFields = this.getVisibleFields();
336
- this.setContainerFields();
336
+ if (changes.fields.previousValue && this.hasContainer()) {
337
+ this.hasChangeContainer(changes.fields.previousValue, changes.fields.currentValue);
338
+ }
339
+ if (!changes.fields.previousValue || !changes.fields.currentValue) {
340
+ this.setContainerFields();
341
+ }
337
342
  }
338
343
  }
339
344
  focus(property) {
@@ -424,6 +429,112 @@ export class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseCompone
424
429
  visibleField.disabled = previousDisabled;
425
430
  }
426
431
  }
432
+ hasChangeContainer(previous, current) {
433
+ const prevArray = previous.map((item, index) => ({
434
+ container: item.container || null,
435
+ property: item.property,
436
+ index,
437
+ order: item.order
438
+ }));
439
+ const currArray = current.map((item, index) => ({
440
+ container: item.container || null,
441
+ property: item.property,
442
+ index,
443
+ order: item.order
444
+ }));
445
+ const prevContainers = prevArray.filter(item => item.container);
446
+ const currContainers = currArray.filter(item => item.container);
447
+ const prevOrder = prevArray.filter(item => item.order);
448
+ const currOrder = currArray.filter(item => item.order);
449
+ // Verifica mudança na quantidade de containers
450
+ if (prevContainers.length !== currContainers.length) {
451
+ this.setContainerFields();
452
+ return;
453
+ }
454
+ // Verifica mudança na quantidade de order
455
+ if (prevOrder.length !== currOrder.length) {
456
+ this.setContainerFields();
457
+ return;
458
+ }
459
+ if (currContainers.length) {
460
+ this.handleChangesContainer(prevContainers, currContainers, 'container');
461
+ }
462
+ if (currOrder.length) {
463
+ this.handleChangesContainer(prevOrder, currOrder, 'order');
464
+ }
465
+ //atualiza container sem mudança na estrutura da interface
466
+ const result = this.diffObjectsArray(previous, this.getVisibleFields());
467
+ this.containerFields = this.updateFieldContainer(result, this.containerFields);
468
+ }
469
+ updateFieldContainer(changes, containerFields) {
470
+ const mapchanges = new Map(changes.map(obj => [obj.property, obj]));
471
+ containerFields.forEach(subArray => {
472
+ subArray.forEach((subItem, index) => {
473
+ const item = mapchanges.get(subItem.property);
474
+ if (item) {
475
+ subArray[index] = { ...subItem, ...item };
476
+ }
477
+ });
478
+ });
479
+ return containerFields;
480
+ }
481
+ diffObjectsArray(oldArray, newArray) {
482
+ const differences = [];
483
+ newArray.forEach(newObj => {
484
+ const oldObj = oldArray.find(o => o.property === newObj.property);
485
+ if (!oldObj) {
486
+ // Se o objeto é novo, adiciona todo o objeto com a propriedade "property"
487
+ differences.push({ ...newObj });
488
+ }
489
+ else {
490
+ // Verificar se há diferenças nas propriedades
491
+ const diff = { property: newObj.property };
492
+ let hasDifferences = false;
493
+ for (const key in newObj) {
494
+ if (newObj[key] !== oldObj[key]) {
495
+ diff[key] = newObj[key];
496
+ hasDifferences = true;
497
+ }
498
+ }
499
+ if (hasDifferences) {
500
+ differences.push(diff);
501
+ }
502
+ }
503
+ });
504
+ //retorna mudanças nos fields para atualização do containerFields
505
+ return differences;
506
+ }
507
+ hasContainer() {
508
+ return this.visibleFields && this.visibleFields.some(field => field.container);
509
+ }
510
+ handleChangesContainer(prevContainers, currContainers, key) {
511
+ for (let i = 0; i < prevContainers.length; i++) {
512
+ const prev = prevContainers[i];
513
+ const curr = currContainers[i];
514
+ //Verifica se container mudou de posição
515
+ if (prev[key] === curr[key] && prev.index !== curr.index) {
516
+ this.setContainerFields();
517
+ return;
518
+ }
519
+ //Verifica se foi apenas mudança da string em caso do container ou valor no order
520
+ if (prev[key] !== curr[key] && prev.index === curr.index) {
521
+ if (key === 'order') {
522
+ this.setContainerFields();
523
+ return;
524
+ }
525
+ this.containerFields.forEach(subItem => subItem.forEach(item => {
526
+ if (item.property === curr.property) {
527
+ item[key] = curr[key];
528
+ }
529
+ }));
530
+ }
531
+ //verifica se manteve o mesmo número de container, mas alterou property do container
532
+ if (prev[key] !== curr[key] && prev.property !== curr.property) {
533
+ this.setContainerFields();
534
+ return;
535
+ }
536
+ }
537
+ }
427
538
  static ɵfac = function PoDynamicFormFieldsComponent_Factory(t) { return new (t || PoDynamicFormFieldsComponent)(i0.ɵɵdirectiveInject(i1.TitleCasePipe), i0.ɵɵdirectiveInject(i2.PoDynamicFormValidationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.NgForm)); };
428
539
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoDynamicFormFieldsComponent, selectors: [["po-dynamic-form-fields"]], viewQuery: function PoDynamicFormFieldsComponent_Query(rf, ctx) { if (rf & 1) {
429
540
  i0.ɵɵviewQuery(_c0, 5);
@@ -444,4 +555,4 @@ export class PoDynamicFormFieldsComponent extends PoDynamicFormFieldsBaseCompone
444
555
  args: ['component']
445
556
  }] }); })();
446
557
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoDynamicFormFieldsComponent, { className: "PoDynamicFormFieldsComponent", filePath: "lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.ts", lineNumber: 23 }); })();
447
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy1mb3JtLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZHluYW1pYy9wby1keW5hbWljLWZvcm0vcG8tZHluYW1pYy1mb3JtLWZpZWxkcy9wby1keW5hbWljLWZvcm0tZmllbGRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1keW5hbWljL3BvLWR5bmFtaWMtZm9ybS9wby1keW5hbWljLWZvcm0tZmllbGRzL3BvLWR5bmFtaWMtZm9ybS1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEQsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUzRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ05oSCx3QkFLZ0I7Ozs7SUFObEIsOEJBQXlHO0lBQ3ZHLHFHQUtnQjtJQUNsQixpQkFBTTs7Ozs7SUFQYyxrREFBa0M7SUFFakQsY0FFUTtJQUZSLG1FQUVRLDZIQUFBOzs7SUFPVCxpQ0FBb0c7OztJQUF4QywwQ0FBeUI7Ozs7SUFFckYsNkNBd0JDO0lBcEJDLCthQUFtQztJQWtCbkMsK1FBQVksZUFBQSwrQkFBb0IsQ0FBQSxJQUFDO0lBR25DLGlCQUFnQjs7OztJQXRCZCx3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQywyQkFBQSw0Q0FBQSwwQ0FBQSxnQ0FBQSw2QkFBQSx5QkFBQSxvQ0FBQSwyQkFBQSw2QkFBQSxpQ0FBQSxpQ0FBQSw4Q0FBQSxpQ0FBQSxpQ0FBQSxpQ0FBQSwwQ0FBQSx1Q0FBQTs7OztJQXNCbEMsbURBb0JDO0lBaEJDLDJiQUFtQztJQWVuQywyUkFBWSxlQUFBLCtCQUFvQixDQUFBLElBQUM7SUFFbkMsaUJBQXNCOzs7O0lBbEJwQix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQywyQkFBQSw0Q0FBQSxnQ0FBQSx5QkFBQSwyQkFBQSxpQ0FBQSxpQ0FBQSxpQ0FBQSw4Q0FBQSxpQ0FBQSxpQ0FBQSxpQ0FBQSwwQ0FBQTs7OztJQWtCbEMsd0NBMEJDO0lBdEJDLHFhQUFtQztJQWlCbkMscVFBQVksZUFBQSwrQkFBb0IsQ0FBQSxJQUFDLG9RQUNmLGVBQUEsb0NBQXlCLENBQUEsSUFEVjtJQU1uQyxpQkFBVzs7OztJQXhCVCx3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQywyQkFBQSw0Q0FBQSwwQ0FBQSxnQ0FBQSx5QkFBQSwyQkFBQSxpREFBQSx5QkFBQSxtQ0FBQSxtQ0FBQSw4Q0FBQSxpQ0FBQSwrQkFBQSxpQ0FBQSwwQ0FBQSx5QkFBQSx1Q0FBQSxpQ0FBQTs7OztJQXdCbEMseUNBMEJDO0lBdEJDLHVhQUFtQztJQWtCbkMsdVFBQVksZUFBQSwrQkFBb0IsQ0FBQSxJQUFDLHNRQUNmLGVBQUEsb0NBQXlCLENBQUEsSUFEVjtJQUtuQyxpQkFBWTs7OztJQXhCVix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQywyQkFBQSw0Q0FBQSwwQ0FBQSxnQ0FBQSx5QkFBQSwyQkFBQSw0QkFBQSw0QkFBQSxtQ0FBQSxtQ0FBQSw4Q0FBQSxpQ0FBQSx5QkFBQSxpQ0FBQSxpQ0FBQSwwQ0FBQSx5QkFBQSx1Q0FBQTs7OztJQXdCbEMsMENBNEJDO0lBeEJDLHlhQUFtQztJQXFCbkMseVFBQVksZUFBQSwrQkFBb0IsQ0FBQSxJQUFDLHdRQUNmLGVBQUEsb0NBQXlCLENBQUEsSUFEVjtJQUluQyxpQkFBYTs7OztJQTFCWCx3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQywyQkFBQSwwQ0FBQSw0Q0FBQSw4Q0FBQSxvREFBQSx5QkFBQSxnQ0FBQSx5QkFBQSwyQkFBQSw2QkFBQSw0QkFBQSw0QkFBQSxtQ0FBQSxtQ0FBQSw4Q0FBQSxpQ0FBQSxpQ0FBQSxpQ0FBQSwwQ0FBQSx1Q0FBQTs7OztJQTBCbEMseUNBa0JDO0lBZEMsdWFBQW1DO0lBV25DLHVRQUFZLGVBQUEsK0JBQW9CLENBQUEsSUFBQztJQUluQyxpQkFBWTs7OztJQWhCVix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQyxzQ0FBQSxzQ0FBQSw0Q0FBQSx5QkFBQSwyQkFBQSxpQ0FBQSwrQkFBQSxpQ0FBQSwwQ0FBQSx1Q0FBQSxpQ0FBQTs7OztJQWdCbEMsOENBZ0JDO0lBWkMsaWJBQW1DO0lBV25DLGlSQUFZLGVBQUEsK0JBQW9CLENBQUEsSUFBQztJQUVuQyxpQkFBaUI7Ozs7SUFkZix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQyxvQ0FBQSxnQ0FBQSw0Q0FBQSx5QkFBQSwyQkFBQSxpQ0FBQSwrQkFBQSxpQ0FBQSwwQ0FBQTs7OztJQWNsQyx5Q0FlQztJQVhDLHVhQUFtQztJQVVuQyx1UUFBWSxlQUFBLCtCQUFvQixDQUFBLElBQUM7SUFFbkMsaUJBQVk7Ozs7SUFiVix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQyw0Q0FBQSx3Q0FBQSx5QkFBQSwyQkFBQSxzQ0FBQSxvQ0FBQSw0Q0FBQSxpREFBQTs7OztJQWFsQywyQ0FXQztJQVBDLDRhQUFtQztJQU1uQyw0UUFBWSxlQUFBLCtCQUFvQixDQUFBLElBQUM7SUFFbkMsaUJBQWM7Ozs7SUFUWix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQyxnQ0FBQSw0Q0FBQSwyQkFBQSx5QkFBQTs7OztJQVNsQyx3Q0FpQ0M7SUE3QkMsc2FBQW1DO0lBb0JuQyw2UUFBWSxlQUFBLHdDQUE0QixDQUFBLElBQUM7SUFVM0MsaUJBQVc7Ozs7SUEvQlQsd0NBQXVCO0lBQ3ZCLGdFQUFtQztJQUNuQyxpREFBZ0MsZ0NBQUEsMkJBQUEsNENBQUEsc0NBQUEsc0NBQUEsb0NBQUEsNkNBQUEseUJBQUEsOENBQUEsc0VBQUEsMkJBQUEsaUNBQUEsK0JBQUEsaUNBQUEseUJBQUEsaUNBQUEsMENBQUEseUJBQUEsdUNBQUEsZ0RBQUEsc0NBQUEsdURBQUEscURBQUEsMENBQUEsNkNBQUE7Ozs7SUErQmxDLHlDQWdDQztJQTVCQyw0YUFBbUM7SUF1Qm5DLDBRQUFZLGVBQUEsZ0NBQW9CLENBQUEsSUFBQywyVEFHTCxxQ0FBb0MsS0FIL0IsMlRBSUwscUNBQW9DLEtBSi9CO0lBTW5DLGlCQUFZOzs7O0lBOUJWLHdDQUF1QjtJQUN2QixnRUFBbUM7SUFHbkMsaURBQWdDLDJCQUFBLCtCQUFBLDRDQUFBLGlEQUFBLGlEQUFBLG9DQUFBLDRDQUFBLGdDQUFBLHNDQUFBLHlCQUFBLG1DQUFBLDhDQUFBLDJCQUFBLGlDQUFBLGlDQUFBLDhDQUFBLGlDQUFBLGlDQUFBLDBDQUFBLHVDQUFBLGdEQUFBOzs7O0lBNEJsQyxpREFnQkM7SUFaQyw0YkFBbUM7SUFXbkMsMFJBQVksZUFBQSxnQ0FBb0IsQ0FBQSxJQUFDO0lBRW5DLGlCQUFvQjs7OztJQWRsQix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQyxvQ0FBQSxnQ0FBQSw0Q0FBQSx5QkFBQSwyQkFBQSxpQ0FBQSwrQkFBQSxpQ0FBQSwwQ0FBQTs7OztJQWNsQyw4Q0EyQkM7SUF2QkMsc2JBQW1DO0lBWW5DLG9SQUFZLGVBQUEsZ0NBQW9CLENBQUEsSUFBQztJQVluQyxpQkFBaUI7Ozs7SUF6QmYsd0NBQXVCO0lBQ3ZCLGdFQUFtQztJQUNuQyxpREFBZ0MsNENBQUEsZ0NBQUEsc0NBQUEseUJBQUEsMkJBQUEsaUNBQUEsaUNBQUEsK0JBQUEsaUNBQUEsMENBQUEsdUNBQUEsc0NBQUEsc0NBQUEsNkNBQUEsc0NBQUEsMENBQUEseUJBQUEsb0RBQUEsc0NBQUEsNkNBQUE7Ozs7SUF5QmxDLDJDQW9CQztJQWhCQyxnYkFBbUM7SUFhbkMsOFFBQVksZUFBQSxnQ0FBb0IsQ0FBQSxJQUFDLDZRQUNmLGVBQUEscUNBQXlCLENBQUEsSUFEVjtJQUluQyxpQkFBYzs7OztJQWxCWix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQyw0Q0FBQSxnQ0FBQSx5QkFBQSwyQkFBQSxtQ0FBQSxtQ0FBQSxpQ0FBQSxpQ0FBQSxpQ0FBQSwwQ0FBQSx5QkFBQSx1Q0FBQTs7OztJQWtCbEMsMkNBeUJDO0lBckJDLGdiQUFtQztJQWtCbkMsOFFBQVksZUFBQSxnQ0FBb0IsQ0FBQSxJQUFDLDZRQUNmLGVBQUEscUNBQXlCLENBQUEsSUFEVjtJQUluQyxpQkFBYzs7OztJQXZCWix3Q0FBdUI7SUFDdkIsZ0VBQW1DO0lBQ25DLGlEQUFnQywyQkFBQSw0Q0FBQSwwQ0FBQSxnQ0FBQSx5QkFBQSxtREFBQSx5QkFBQSwyQkFBQSxtQ0FBQSxtQ0FBQSw4Q0FBQSxpQ0FBQSwrQkFBQSxpQ0FBQSxpQ0FBQSwwQ0FBQSx1Q0FBQTs7OztJQXVCbEMseUNBOEJDO0lBM0JDLDRhQUFtQztJQWtCbkMsd09BQVcsZUFBQSx3QkFBcUIsQ0FBQSxJQUFDLCtOQUNwQixlQUFBLDBCQUF1QixDQUFBLElBREgsNk5BRXJCLGVBQUEseUJBQXNCLENBQUEsSUFGRCw2UEFNckIsZUFBQSxnQ0FBb0IsQ0FBQSxJQU5DLHlRQU9mLGVBQUEscUNBQXlCLENBQUEsSUFQVjtJQVVuQyxpQkFBWTs7OztJQTVCVixnRUFBbUM7SUFDbkMsaURBQWdDLHNDQUFBLG1DQUFBLDRDQUFBLGtDQUFBLCtDQUFBLHlDQUFBLG9DQUFBLCtCQUFBLHlCQUFBLDJEQUFBLG1EQUFBLCtDQUFBLGlDQUFBLDJCQUFBLGlDQUFBLDJCQUFBLGlDQUFBLGlDQUFBLDBDQUFBLHVCQUFBOzs7SUFyWXBDLDZCQUE2RDtJQUMzRCx3SEFBb0csa0hBQUEsOEhBQUEsd0dBQUEsMkdBQUEsNkdBQUEsMkdBQUEscUhBQUEsMkdBQUEsZ0hBQUEsMkdBQUEsNkdBQUEsNkhBQUEsdUhBQUEsaUhBQUEsaUhBQUEsNkdBQUE7SUFnYXRHLDBCQUFlOzs7O0lBaGFBLGNBQTRCO0lBQTVCLDBHQUE0QjtJQUl0QyxjQUE0QztJQUE1Qyx1RUFBNEM7SUEyQjVDLGNBQWlEO0lBQWpELDRFQUFpRDtJQXVCakQsY0FBdUM7SUFBdkMsa0VBQXVDO0lBNkJ2QyxjQUF3QztJQUF4QyxtRUFBd0M7SUE2QnhDLGNBQXlDO0lBQXpDLG9FQUF5QztJQStCekMsY0FBd0M7SUFBeEMsbUVBQXdDO0lBcUJ4QyxjQUE0QztJQUE1Qyx1RUFBNEM7SUFtQjVDLGNBQXdDO0lBQXhDLG1FQUF3QztJQWtCeEMsY0FBMEM7SUFBMUMscUVBQTBDO0lBYzFDLGNBQXVDO0lBQXZDLGtFQUF1QztJQW9DdkMsY0FBd0M7SUFBeEMsbUVBQXdDO0lBbUN4QyxjQUErQztJQUEvQywwRUFBK0M7SUFtQi9DLGNBQTZDO0lBQTdDLHdFQUE2QztJQThCN0MsY0FBMEM7SUFBMUMscUVBQTBDO0lBdUIxQyxjQUEwQztJQUExQyxxRUFBMEM7SUE0QjFDLGNBQXdDO0lBQXhDLG1FQUF3Qzs7O0lBblk3QywrR0FpYWU7Ozs7SUFqYWlCLG1DQUFXLGdDQUFBOzs7SUFxYTNDLDJDQUF5Rjs7Ozs7SUFBbkUsc0NBQW1CLGtCQUFBOztBRHRhM0M7Ozs7OztHQU1HO0FBT0gsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdDQUFnQztJQU90RTtJQUNBO0lBQ0E7SUFSaUIsVUFBVSxDQUFpRDtJQUU5RSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBRTNCLFlBQ0UsYUFBNEIsRUFDcEIsaUJBQWlELEVBQ2pELE9BQTBCLEVBQzFCLElBQVk7UUFFcEIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBSmIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFnQztRQUNqRCxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFRO0lBR3RCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWdCO1FBQ3BCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztRQUN0RixJQUFJLGNBQWMsRUFBRTtZQUNsQixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXlCO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQWdDLEVBQUUsV0FBaUI7UUFDckUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFlBQVksQ0FBQztRQUNsQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztRQUN0RCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsRixJQUFJLFlBQVksQ0FBQyxjQUFjLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEM7UUFFRCx5RkFBeUY7UUFDekYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLG1CQUFtQixFQUFFO1lBQy9ELE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBFLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQzthQUN6RTtZQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxrQkFBa0IsQ0FBQyxZQUFnQztRQUNqRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFlBQVksQ0FBQztZQUNsQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUs7UUFDWCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsY0FBNEM7UUFDdEYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU3QixJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQWdCO1FBQy9CLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVPLHVCQUF1QixDQUFDLGlCQUF5QjtRQUN2RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTTtZQUNwRCxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUMxRixDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUVwRyxJQUFJLGlCQUFpQixFQUFFO1lBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxjQUE2QixFQUFFLGFBQTZDO1FBQ3hHLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEtBQUssYUFBYSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBeUIsRUFBRSxVQUFrQixFQUFFLFlBQWdDO1FBQ3pHLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUMvQyxZQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTdCLElBQUk7WUFDRixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDdkQ7UUFBQyxNQUFNO1lBQ04sWUFBWSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztTQUMxQztJQUNILENBQUM7c0ZBbklVLDRCQUE0Qjs2REFBNUIsNEJBQTRCOzs7Ozs4Q0FGNUIsQ0FBQyw4QkFBOEIsQ0FBQyxFQUQ1QixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQ25CckUsNkVBT00saUhBQUEsaUhBQUE7O1lBUGtELHdFQUErQzs7O2lGRHNCMUYsNEJBQTRCO2NBTnhDLFNBQVM7MkJBQ0Usd0JBQXdCLGlCQUVuQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxhQUN4RCxDQUFDLDhCQUE4QixDQUFDO2dKQUdoQixVQUFVO2tCQUFwQyxZQUFZO21CQUFDLFdBQVc7O2tGQURkLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBQb0R5bmFtaWNGb3JtRmllbGQgfSBmcm9tICcuLi9wby1keW5hbWljLWZvcm0tZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1GaWVsZHNCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1keW5hbWljLWZvcm0tZmllbGRzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1GaWVsZFZhbGlkYXRpb24gfSBmcm9tICcuLi9wby1keW5hbWljLWZvcm0tdmFsaWRhdGlvbi9wby1keW5hbWljLWZvcm0tZmllbGQtdmFsaWRhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9EeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcG8tZHluYW1pYy1mb3JtLXZhbGlkYXRpb24vcG8tZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ29tcG9uZW50ZSBkZSBjcmlhw6fDo28gZG9zIGNhbXBvcyBkaW7Dom1pY29zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1keW5hbWljLWZvcm0tZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICdwby1keW5hbWljLWZvcm0tZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XSxcbiAgcHJvdmlkZXJzOiBbUG9EeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQb0R5bmFtaWNGb3JtRmllbGRzQ29tcG9uZW50IGV4dGVuZHMgUG9EeW5hbWljRm9ybUZpZWxkc0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkcmVuKCdjb21wb25lbnQnKSBjb21wb25lbnRzOiBRdWVyeUxpc3Q8eyBuYW1lOiBzdHJpbmc7IGZvY3VzOiAoKSA9PiB2b2lkIH0+O1xuXG4gIHByaXZhdGUgcHJldmlvdXNWYWx1ZSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRpdGxlQ2FzZVBpcGU6IFRpdGxlQ2FzZVBpcGUsXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogUG9EeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlczogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBmb3JtOiBOZ0Zvcm1cbiAgKSB7XG4gICAgc3VwZXIodGl0bGVDYXNlUGlwZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuZmllbGRzKSB7XG4gICAgICB0aGlzLnZpc2libGVGaWVsZHMgPSB0aGlzLmdldFZpc2libGVGaWVsZHMoKTtcbiAgICAgIHRoaXMuc2V0Q29udGFpbmVyRmllbGRzKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXMocHJvcGVydHk6IHN0cmluZykge1xuICAgIGNvbnN0IGZvdW5kQ29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRzLmZpbmQoY29tcG9uZW50ID0+IGNvbXBvbmVudC5uYW1lID09PSBwcm9wZXJ0eSk7XG4gICAgaWYgKGZvdW5kQ29tcG9uZW50KSB7XG4gICAgICBmb3VuZENvbXBvbmVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGlzRGlzYWJsZWQoZmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmaWVsZC5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRm9ybTtcbiAgfVxuXG4gIGFzeW5jIG9uQ2hhbmdlRmllbGQodmlzaWJsZUZpZWxkOiBQb0R5bmFtaWNGb3JtRmllbGQsIG9iamVjdFZhbHVlPzogYW55KSB7XG4gICAgY29uc3QgeyBwcm9wZXJ0eSB9ID0gdmlzaWJsZUZpZWxkO1xuICAgIGNvbnN0IGlzQm9vbGVhblR5cGUgPSB2aXNpYmxlRmllbGQudHlwZSA9PT0gJ2Jvb2xlYW4nO1xuICAgIGNvbnN0IGlzQ2hhbmdlZFZhbHVlRmllbGQgPSB0aGlzLnByZXZpb3VzVmFsdWVbcHJvcGVydHldICE9PSB0aGlzLnZhbHVlW3Byb3BlcnR5XTtcblxuICAgIGlmICh2aXNpYmxlRmllbGQub3B0aW9uc1NlcnZpY2UpIHtcbiAgICAgIHRoaXMub2JqZWN0VmFsdWUuZW1pdChvYmplY3RWYWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZpY2Egc2UgbyBmb3JtdWxhcmlvIGVzdGEgdG91Y2hlZCBwYXJhIG7Do28gZGlzcGFyYXIgbyB2YWxpZGF0ZSBhbyBjYXJyZWdhciBhIHRlbGEuXG4gICAgaWYgKCh0aGlzLmZvcm0udG91Y2hlZCB8fCBpc0Jvb2xlYW5UeXBlKSAmJiBpc0NoYW5nZWRWYWx1ZUZpZWxkKSB7XG4gICAgICBjb25zdCB7IGNoYW5nZWRGaWVsZCwgY2hhbmdlZEZpZWxkSW5kZXggfSA9IHRoaXMuZ2V0RmllbGQocHJvcGVydHkpO1xuXG4gICAgICBpZiAoY2hhbmdlZEZpZWxkLnZhbGlkYXRlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVGaWVsZChjaGFuZ2VkRmllbGQsIGNoYW5nZWRGaWVsZEluZGV4LCB2aXNpYmxlRmllbGQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRyaWdnZXJWYWxpZGF0aW9uT25Gb3JtKGNoYW5nZWRGaWVsZEluZGV4KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVByZXZpb3VzVmFsdWUoKTtcbiAgfVxuXG4gIC8vZW1pdGUgbyB2YWxvciBhIGNhZGEgY2FyYWN0ZXJlIGRpZ2l0YWRvIG5vIGlucHV0XG4gIG9uQ2hhbmdlRmllbGRNb2RlbCh2aXNpYmxlRmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZCkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRlT25JbnB1dCkge1xuICAgICAgY29uc3QgeyBwcm9wZXJ0eSB9ID0gdmlzaWJsZUZpZWxkO1xuICAgICAgY29uc3QgeyBjaGFuZ2VkRmllbGRJbmRleCB9ID0gdGhpcy5nZXRGaWVsZChwcm9wZXJ0eSk7XG4gICAgICB0aGlzLnRyaWdnZXJWYWxpZGF0aW9uT25Gb3JtKGNoYW5nZWRGaWVsZEluZGV4KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcmV2aW91c1ZhbHVlKCkge1xuICAgIHRoaXMucHJldmlvdXNWYWx1ZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkpO1xuICB9XG5cbiAgdHJhY2tCeShpbmRleCkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWVsZFZhbGlkYXRpb24oaW5kZXg6IG51bWJlciwgdmFsaWRhdGVkRmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZFZhbGlkYXRpb24pIHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGRzW2luZGV4XTtcblxuICAgIHRoaXMuZmllbGRzW2luZGV4XSA9IHsgLi4uZmllbGQsIC4uLnZhbGlkYXRlZEZpZWxkLmZpZWxkIH07XG4gICAgdGhpcy51cGRhdGVGaWVsZHMoKTtcblxuICAgIGlmICh2YWxpZGF0ZWRGaWVsZC5oYXNPd25Qcm9wZXJ0eSgndmFsdWUnKSkge1xuICAgICAgdGhpcy52YWx1ZVtmaWVsZC5wcm9wZXJ0eV0gPSB2YWxpZGF0ZWRGaWVsZC52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZXMuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHZhbGlkYXRlZEZpZWxkLmZvY3VzKSB7XG4gICAgICB0aGlzLmZvY3VzKGZpZWxkLnByb3BlcnR5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEZpZWxkKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjaGFuZ2VkRmllbGRJbmRleCA9IHRoaXMuZmllbGRzLmZpbmRJbmRleChmaWVsZCA9PiBmaWVsZC5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpO1xuICAgIGNvbnN0IGNoYW5nZWRGaWVsZCA9IHRoaXMuZmllbGRzW2NoYW5nZWRGaWVsZEluZGV4XTtcblxuICAgIHJldHVybiB7IGNoYW5nZWRGaWVsZCwgY2hhbmdlZEZpZWxkSW5kZXggfTtcbiAgfVxuXG4gIHByaXZhdGUgdHJpZ2dlclZhbGlkYXRpb25PbkZvcm0oY2hhbmdlZEZpZWxkSW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGlzVmFsaWRhdGFibGVGaWVsZCA9IHRoaXMudmFsaWRhdGVGaWVsZHM/Lmxlbmd0aFxuICAgICAgPyB0aGlzLnZhbGlkYXRlRmllbGRzQ2hlY2tlcih0aGlzLnZhbGlkYXRlRmllbGRzLCB0aGlzLmZpZWxkc1tjaGFuZ2VkRmllbGRJbmRleF0ucHJvcGVydHkpXG4gICAgICA6IHRydWU7XG4gICAgY29uc3QgaGFzVmFsaWRhdGlvbkZvcm0gPSB0aGlzLnZhbGlkYXRlICYmIGlzVmFsaWRhdGFibGVGaWVsZCAmJiB0aGlzLmZvcm1WYWxpZGF0ZS5vYnNlcnZlcnMubGVuZ3RoO1xuXG4gICAgaWYgKGhhc1ZhbGlkYXRpb25Gb3JtKSB7XG4gICAgICBjb25zdCB1cGRhdGVkRmllbGQgPSB0aGlzLmZpZWxkc1tjaGFuZ2VkRmllbGRJbmRleF07XG4gICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5lbWl0KHVwZGF0ZWRGaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGaWVsZHMoKSB7XG4gICAgdGhpcy5maWVsZHNDaGFuZ2UuZW1pdCh0aGlzLmZpZWxkcyk7XG4gICAgdGhpcy52aXNpYmxlRmllbGRzID0gdGhpcy5nZXRWaXNpYmxlRmllbGRzKCk7XG4gICAgdGhpcy5zZXRDb250YWluZXJGaWVsZHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHNDaGVja2VyKHZhbGlkYXRlRmllbGRzOiBBcnJheTxzdHJpbmc+LCBwcm9wZXJ0eUZpZWxkOiBQb0R5bmFtaWNGb3JtRmllbGRbJ3Byb3BlcnR5J10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsaWRhdGVGaWVsZHMuc29tZSh2YWxpZGF0ZUZpZWxkSXRlbSA9PiB2YWxpZGF0ZUZpZWxkSXRlbSA9PT0gcHJvcGVydHlGaWVsZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlRmllbGQoZmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZCwgZmllbGRJbmRleDogbnVtYmVyLCB2aXNpYmxlRmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZVtmaWVsZC5wcm9wZXJ0eV07XG5cbiAgICBjb25zdCBwcmV2aW91c0Rpc2FibGVkID0gdmlzaWJsZUZpZWxkLmRpc2FibGVkO1xuICAgIHZpc2libGVGaWVsZC5kaXNhYmxlZCA9IHRydWU7XG4gICAgdGhpcy5jaGFuZ2VzLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWxpZGF0ZWRGaWVsZCA9IGF3YWl0IHRoaXMudmFsaWRhdGlvblNlcnZpY2Uuc2VuZEZpZWxkQ2hhbmdlKGZpZWxkLCB2YWx1ZSkudG9Qcm9taXNlKCk7XG4gICAgICB0aGlzLmFwcGx5RmllbGRWYWxpZGF0aW9uKGZpZWxkSW5kZXgsIHZhbGlkYXRlZEZpZWxkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHZpc2libGVGaWVsZC5kaXNhYmxlZCA9IHByZXZpb3VzRGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicG8tcm93XCIgW2NsYXNzLnBvLWR5bmFtaWNdPVwiaGFzQ29udGFpbmVyc1wiICpuZ0lmPVwidmlzaWJsZUZpZWxkcyAmJiB2aXNpYmxlRmllbGRzLmxlbmd0aCA+IDBcIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICBoYXNDb250YWluZXJzID8gcG9Db250ZW50Q29udGFpbmVyIDogcG9Db250ZW50O1xuICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGhhc0NvbnRhaW5lcnMgPyBjb250YWluZXJGaWVsZHMgOiB2aXNpYmxlRmllbGRzIH1cbiAgICBcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwb0NvbnRlbnQgbGV0LWZpZWxkcz5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgPHBvLWRpdmlkZXIgKm5nSWY9XCJmaWVsZD8uZGl2aWRlcj8udHJpbSgpXCIgY2xhc3M9XCJwby1zbS0xMlwiIFtwLWxhYmVsXT1cImZpZWxkLmRpdmlkZXJcIj4gPC9wby1kaXZpZGVyPlxuXG4gICAgPHBvLWRhdGVwaWNrZXJcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdkYXRlcGlja2VyJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY2xlYW5dPVwiZmllbGQuY2xlYW5cIlxuICAgICAgW3AtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChmaWVsZClcIlxuICAgICAgW3AtZXJyb3ItcGF0dGVybl09XCJmaWVsZC5lcnJvck1lc3NhZ2VcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1mb3JtYXRdPVwiZmllbGQuZm9ybWF0XCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1pc28tZm9ybWF0XT1cImZpZWxkLmlzb0Zvcm1hdFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1sb2NhbGVdPVwiZmllbGQubG9jYWxlXCJcbiAgICAgIFtwLW1heC1kYXRlXT1cImZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtwLW1pbi1kYXRlXT1cImZpZWxkLm1pblZhbHVlXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICA8L3BvLWRhdGVwaWNrZXI+XG5cbiAgICA8cG8tZGF0ZXBpY2tlci1yYW5nZVxuICAgICAgI2NvbXBvbmVudFxuICAgICAgKm5nSWY9XCJjb21wYXJlVG8oZmllbGQuY29udHJvbCwgJ2RhdGVwaWNrZXJyYW5nZScpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtaGVscF09XCJmaWVsZC5oZWxwXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLWxpdGVyYWxzXT1cImZpZWxkLmxpdGVyYWxzXCJcbiAgICAgIFtwLW1heC1kYXRlXT1cImZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtwLW1pbi1kYXRlXT1cImZpZWxkLm1pblZhbHVlXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgID5cbiAgICA8L3BvLWRhdGVwaWNrZXItcmFuZ2U+XG5cbiAgICA8cG8taW5wdXRcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdpbnB1dCcpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWVycm9yLXBhdHRlcm5dPVwiZmllbGQuZXJyb3JNZXNzYWdlXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtaGVscF09XCJmaWVsZC5oZWxwXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLW1hc2stZm9ybWF0LW1vZGVsXT1cImZpZWxkLm1hc2tGb3JtYXRNb2RlbFwiXG4gICAgICBbcC1tYXNrXT1cImZpZWxkLm1hc2tcIlxuICAgICAgW3AtbWF4bGVuZ3RoXT1cImZpZWxkLm1heExlbmd0aFwiXG4gICAgICBbcC1taW5sZW5ndGhdPVwiZmllbGQubWluTGVuZ3RoXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1wYXR0ZXJuXT1cImZpZWxkLnBhdHRlcm5cIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoZmllbGQpXCJcbiAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJvbkNoYW5nZUZpZWxkTW9kZWwoZmllbGQpXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgPlxuICAgIDwvcG8taW5wdXQ+XG5cbiAgICA8cG8tbnVtYmVyXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnbnVtYmVyJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY2xlYW5dPVwiZmllbGQuY2xlYW5cIlxuICAgICAgW3AtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChmaWVsZClcIlxuICAgICAgW3AtZXJyb3ItcGF0dGVybl09XCJmaWVsZC5lcnJvck1lc3NhZ2VcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3AtbWluXT1cImZpZWxkLm1pblZhbHVlXCJcbiAgICAgIFtwLW1heF09XCJmaWVsZC5tYXhWYWx1ZVwiXG4gICAgICBbcC1tYXhsZW5ndGhdPVwiZmllbGQubWF4TGVuZ3RoXCJcbiAgICAgIFtwLW1pbmxlbmd0aF09XCJmaWVsZC5taW5MZW5ndGhcIlxuICAgICAgW3Atbm8tYXV0b2NvbXBsZXRlXT1cImZpZWxkLm5vQXV0b2NvbXBsZXRlXCJcbiAgICAgIFtwLW9wdGlvbmFsXT1cImZpZWxkLm9wdGlvbmFsXCJcbiAgICAgIFtwLXN0ZXBdPVwiZmllbGQuc3RlcFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cIm9uQ2hhbmdlRmllbGRNb2RlbChmaWVsZClcIlxuICAgICAgW3AtaWNvbl09XCJmaWVsZC5pY29uXCJcbiAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgPC9wby1udW1iZXI+XG5cbiAgICA8cG8tZGVjaW1hbFxuICAgICAgI2NvbXBvbmVudFxuICAgICAgKm5nSWY9XCJjb21wYXJlVG8oZmllbGQuY29udHJvbCwgJ2RlY2ltYWwnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBbcC1jbGVhbl09XCJmaWVsZC5jbGVhblwiXG4gICAgICBbcC1lcnJvci1wYXR0ZXJuXT1cImZpZWxkLmVycm9yTWVzc2FnZVwiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1kZWNpbWFscy1sZW5ndGhdPVwiZmllbGQuZGVjaW1hbHNMZW5ndGhcIlxuICAgICAgW3AtdGhvdXNhbmQtbWF4bGVuZ3RoXT1cImZpZWxkLnRob3VzYW5kTWF4bGVuZ3RoXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1sb2NhbGVdPVwiZmllbGQubG9jYWxlXCJcbiAgICAgIFtwLW1pbl09XCJmaWVsZC5taW5WYWx1ZVwiXG4gICAgICBbcC1tYXhdPVwiZmllbGQubWF4VmFsdWVcIlxuICAgICAgW3AtbWF4bGVuZ3RoXT1cImZpZWxkLm1heExlbmd0aFwiXG4gICAgICBbcC1taW5sZW5ndGhdPVwiZmllbGQubWluTGVuZ3RoXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cIm9uQ2hhbmdlRmllbGRNb2RlbChmaWVsZClcIlxuICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICA8L3BvLWRlY2ltYWw+XG5cbiAgICA8cG8tc2VsZWN0XG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnc2VsZWN0JylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtZmllbGQtbGFiZWxdPVwiZmllbGQuZmllbGRMYWJlbFwiXG4gICAgICBbcC1maWVsZC12YWx1ZV09XCJmaWVsZC5maWVsZFZhbHVlXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1vcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoZmllbGQpXCJcbiAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgIFtwLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRvbmx5XCJcbiAgICA+XG4gICAgPC9wby1zZWxlY3Q+XG5cbiAgICA8cG8tcmFkaW8tZ3JvdXBcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdyYWRpb0dyb3VwJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY29sdW1uc109XCJmaWVsZC5jb2x1bW5zIHx8IDNcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgPlxuICAgIDwvcG8tcmFkaW8tZ3JvdXA+XG5cbiAgICA8cG8tc3dpdGNoXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnc3dpdGNoJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChmaWVsZClcIlxuICAgICAgW3AtZm9ybWF0LW1vZGVsXT1cImZpZWxkLmZvcm1hdE1vZGVsXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1sYWJlbC1vZmZdPVwiZmllbGQuYm9vbGVhbkZhbHNlXCJcbiAgICAgIFtwLWxhYmVsLW9uXT1cImZpZWxkLmJvb2xlYW5UcnVlXCJcbiAgICAgIFtwLWxhYmVsLXBvc2l0aW9uXT1cImZpZWxkLmxhYmVsUG9zaXRpb25cIlxuICAgICAgW3AtaGlkZS1sYWJlbC1zdGF0dXNdPVwiZmllbGQuaGlkZUxhYmVsU3RhdHVzXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgPlxuICAgIDwvcG8tc3dpdGNoPlxuXG4gICAgPHBvLWNoZWNrYm94XG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnY2hlY2tib3gnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLXNpemVdPVwiZmllbGQuc2l6ZVwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgID5cbiAgICA8L3BvLWNoZWNrYm94PlxuXG4gICAgPHBvLWNvbWJvXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnY29tYm8nKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBwLWVtaXQtb2JqZWN0LXZhbHVlXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWZpZWxkLWxhYmVsXT1cImZpZWxkLmZpZWxkTGFiZWxcIlxuICAgICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGQuZmllbGRWYWx1ZVwiXG4gICAgICBbcC1maWx0ZXItcGFyYW1zXT1cImZpZWxkLnBhcmFtc1wiXG4gICAgICBbcC1maWx0ZXItc2VydmljZV09XCJmaWVsZC5vcHRpb25zU2VydmljZVwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtaW5maW5pdGUtc2Nyb2xsXT1cImZpZWxkLmluZmluaXRlU2Nyb2xsXCJcbiAgICAgIFtwLWluZmluaXRlLXNjcm9sbC1kaXN0YW5jZV09XCJmaWVsZC5pbmZpbml0ZVNjcm9sbERpc3RhbmNlIHx8IDEwMFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1saXRlcmFsc109XCJmaWVsZC5saXRlcmFsc1wiXG4gICAgICBbcC1vcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atc29ydF09XCJmaWVsZC5zb3J0XCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkLCAkZXZlbnQpXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICBbcC1maWx0ZXItbWlubGVuZ3RoXT1cImZpZWxkLmZpbHRlck1pbmxlbmd0aFwiXG4gICAgICBbcC1maWx0ZXItbW9kZV09XCJmaWVsZC5maWx0ZXJNb2RlXCJcbiAgICAgIFtwLWRpc2FibGVkLWluaXQtZmlsdGVyXT1cImZpZWxkLmRpc2FibGVkSW5pdEZpbHRlclwiXG4gICAgICBbcC1kaXNhYmxlZC10YWItZmlsdGVyXT1cImZpZWxkLmRpc2FibGVkVGFiRmlsdGVyXCJcbiAgICAgIFtwLWRlYm91bmNlLXRpbWVdPVwiZmllbGQuZGVib3VuY2VUaW1lXCJcbiAgICAgIFtwLWNoYW5nZS1vbi1lbnRlcl09XCJmaWVsZC5jaGFuZ2VPbkVudGVyXCJcbiAgICA+XG4gICAgPC9wby1jb21ibz5cblxuICAgIDxwby1sb29rdXBcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdsb29rdXAnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBwLWZpZWxkLWxhYmVsPVwibGFiZWxcIlxuICAgICAgcC1maWVsZC12YWx1ZT1cInZhbHVlXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWNvbHVtbnNdPVwiZmllbGQuY29sdW1uc1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1maWVsZC1sYWJlbF09XCJmaWVsZC5maWVsZExhYmVsIHx8ICdsYWJlbCdcIlxuICAgICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGQuZmllbGRWYWx1ZSB8fCAndmFsdWUnXCJcbiAgICAgIFtwLWZpbHRlci1wYXJhbXNdPVwiZmllbGQucGFyYW1zXCJcbiAgICAgIFtwLWZpbHRlci1zZXJ2aWNlXT1cImZpZWxkLnNlYXJjaFNlcnZpY2VcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1hdXRvLWhlaWdodF09XCJmaWVsZC5hdXRvSGVpZ2h0XCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1maWVsZC1mb3JtYXRdPVwiZmllbGQuZm9ybWF0XCJcbiAgICAgIFtwLWluZmluaXRlLXNjcm9sbF09XCJmaWVsZC5pbmZpbml0ZVNjcm9sbFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1saXRlcmFsc109XCJmaWVsZC5saXRlcmFsc1wiXG4gICAgICBbcC1tdWx0aXBsZV09XCJmaWVsZC5tdWx0aXBsZVwiXG4gICAgICBbcC1uby1hdXRvY29tcGxldGVdPVwiZmllbGQubm9BdXRvY29tcGxldGVcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoZmllbGQpXCJcbiAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgIFtwLWFkdmFuY2VkLWZpbHRlcnNdPVwiZmllbGQuYWR2YW5jZWRGaWx0ZXJzXCJcbiAgICAgIChwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMpPVwiZmllbGQuY2hhbmdlVmlzaWJsZUNvbHVtbnM/LigkZXZlbnQpXCJcbiAgICAgIChwLXJlc3RvcmUtY29sdW1uLW1hbmFnZXIpPVwiZmllbGQuY29sdW1uUmVzdG9yZU1hbmFnZXI/LigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9wby1sb29rdXA+XG5cbiAgICA8cG8tY2hlY2tib3gtZ3JvdXBcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdjaGVja2JveEdyb3VwJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY29sdW1uc109XCJmaWVsZC5jb2x1bW5zIHx8IDNcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgPlxuICAgIDwvcG8tY2hlY2tib3gtZ3JvdXA+XG5cbiAgICA8cG8tbXVsdGlzZWxlY3RcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdtdWx0aXNlbGVjdCcpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtYXV0by1oZWlnaHRdPVwiZmllbGQuYXV0b0hlaWdodFwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3AtbGl0ZXJhbHNdPVwiZmllbGQubGl0ZXJhbHNcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICBbcC1maWVsZC1sYWJlbF09XCJmaWVsZC5maWVsZExhYmVsXCJcbiAgICAgIFtwLWZpZWxkLXZhbHVlXT1cImZpZWxkLmZpZWxkVmFsdWVcIlxuICAgICAgW3AtZmlsdGVyLXNlcnZpY2VdPVwiZmllbGQub3B0aW9uc1NlcnZpY2VcIlxuICAgICAgW3AtZmlsdGVyLW1vZGVdPVwiZmllbGQuZmlsdGVyTW9kZVwiXG4gICAgICBbcC1kZWJvdW5jZS10aW1lXT1cImZpZWxkLmRlYm91bmNlVGltZVwiXG4gICAgICBbcC1zb3J0XT1cImZpZWxkLnNvcnRcIlxuICAgICAgW3AtcGxhY2Vob2xkZXItc2VhcmNoXT1cImZpZWxkLnBsYWNlaG9sZGVyU2VhcmNoXCJcbiAgICAgIFtwLWhpZGUtc2VhcmNoXT1cImZpZWxkLmhpZGVTZWFyY2hcIlxuICAgICAgW3AtaGlkZS1zZWxlY3QtYWxsXT1cImZpZWxkLmhpZGVTZWxlY3RBbGxcIlxuICAgID5cbiAgICA8L3BvLW11bHRpc2VsZWN0PlxuXG4gICAgPHBvLXRleHRhcmVhXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAndGV4dGFyZWEnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1tYXhsZW5ndGhdPVwiZmllbGQubWF4TGVuZ3RoXCJcbiAgICAgIFtwLW1pbmxlbmd0aF09XCJmaWVsZC5taW5MZW5ndGhcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3AtcmVhZG9ubHldPVwiZmllbGQucmVhZG9ubHlcIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgW3Atcm93c109XCJmaWVsZC5yb3dzXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgICAocC1jaGFuZ2UtbW9kZWwpPVwib25DaGFuZ2VGaWVsZE1vZGVsKGZpZWxkKVwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgPlxuICAgIDwvcG8tdGV4dGFyZWE+XG5cbiAgICA8cG8tcGFzc3dvcmRcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdwYXNzd29yZCcpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWVycm9yLXBhdHRlcm5dPVwiZmllbGQuZXJyb3JNZXNzYWdlXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtaGVscF09XCJmaWVsZC5oZWxwXCJcbiAgICAgIFtwLWhpZGUtcGFzc3dvcmQtcGVla109XCJmaWVsZC5oaWRlUGFzc3dvcmRQZWVrXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1tYXhsZW5ndGhdPVwiZmllbGQubWF4TGVuZ3RoXCJcbiAgICAgIFtwLW1pbmxlbmd0aF09XCJmaWVsZC5taW5MZW5ndGhcIlxuICAgICAgW3Atbm8tYXV0b2NvbXBsZXRlXT1cImZpZWxkLm5vQXV0b2NvbXBsZXRlXCJcbiAgICAgIFtwLW9wdGlvbmFsXT1cImZpZWxkLm9wdGlvbmFsXCJcbiAgICAgIFtwLXBhdHRlcm5dPVwiZmllbGQucGF0dGVyblwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cIm9uQ2hhbmdlRmllbGRNb2RlbChmaWVsZClcIlxuICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICA8L3BvLXBhc3N3b3JkPlxuXG4gICAgPHBvLXVwbG9hZFxuICAgICAgI2NvbXBvbmVudFxuICAgICAgKm5nSWY9XCJjb21wYXJlVG8oZmllbGQuY29udHJvbCwgJ3VwbG9hZCcpXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWF1dG8tdXBsb2FkXT1cImZpZWxkLmF1dG9VcGxvYWRcIlxuICAgICAgW3AtZGlyZWN0b3J5XT1cImZpZWxkLmRpcmVjdG9yeVwiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1kcmFnLWRyb3BdPVwiZmllbGQuZHJhZ0Ryb3BcIlxuICAgICAgW3AtZHJhZy1kcm9wLWhlaWdodF09XCJmaWVsZC5kcmFnRHJvcEhlaWdodFwiXG4gICAgICBbcC1yZXN0cmljdGlvbnNdPVwiZmllbGQucmVzdHJpY3Rpb25zXCJcbiAgICAgIFtwLWZvcm0tZmllbGRdPVwiZmllbGQuZm9ybUZpZWxkXCJcbiAgICAgIFtwLWhlYWRlcnNdPVwiZmllbGQuaGVhZGVyc1wiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtaGlkZS1yZXN0cmljdGlvbnMtaW5mb109XCJmaWVsZC5oaWRlUmVzdHJpY3Rpb25zSW5mb1wiXG4gICAgICBbcC1oaWRlLXNlbGVjdC1idXR0b25dPVwiZmllbGQuaGlkZVNlbGVjdEJ1dHRvblwiXG4gICAgICBbcC1oaWRlLXNlbmQtYnV0dG9uXT1cImZpZWxkLmhpZGVTZW5kQnV0dG9uXCJcbiAgICAgIFtwLW11bHRpcGxlXT1cImZpZWxkLm11bHRpcGxlXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLWxpdGVyYWxzXT1cImZpZWxkLmxpdGVyYWxzXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIChwLWVycm9yKT1cImZpZWxkLm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgICAocC1zdWNjZXNzKT1cImZpZWxkLm9uU3VjY2VzcygkZXZlbnQpXCJcbiAgICAgIChwLXVwbG9hZCk9XCJmaWVsZC5vblVwbG9hZCgkZXZlbnQpXCJcbiAgICAgIFtwLW9wdGlvbmFsXT1cImZpZWxkLm9wdGlvbmFsXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgICAocC1jaGFuZ2UtbW9kZWwpPVwib25DaGFuZ2VGaWVsZE1vZGVsKGZpZWxkKVwiXG4gICAgICBbcC11cmxdPVwiZmllbGQudXJsXCJcbiAgICA+XG4gICAgPC9wby11cGxvYWQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwb0NvbnRlbnRDb250YWluZXIgbGV0LWZpZWxkcz5cbiAgPHBvLWR5bmFtaWMtY29udGFpbmVyIFtwLWZpZWxkc109XCJmaWVsZHNcIiBbcC1jb250ZW50XT1cInBvQ29udGVudFwiPjwvcG8tZHluYW1pYy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
558
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy1mb3JtLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZHluYW1pYy9wby1keW5hbWljLWZvcm0vcG8tZHluYW1pYy1mb3JtLWZpZWxkcy9wby1keW5hbWljLWZvcm0tZmllbGRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1keW5hbWljL3BvLWR5bmFtaWMtZm9ybS9wby1keW5hbWljLWZvcm0tZmllbGRzL3BvLWR5bmFtaWMtZm9ybS1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFxQixTQUFTLEVBQXVDLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNOekYsd0JBS2dCOzs7O0lBTmxCLDhCQUF5RztJQUN2RyxxR0FLZ0I7SUFDbEIsaUJBQU07Ozs7O0lBUGMsa0RBQWtDO0lBRWpELGNBRVE7SUFGUixtRUFFUSw2SEFBQTs7O0lBT1QsaUNBQW9HOzs7SUFBeEMsMENBQXlCOzs7O0lBRXJGLDZDQXdCQztJQXBCQywrYUFBbUM7SUFrQm5DLCtRQUFZLGVBQUEsK0JBQW9CLENBQUEsSUFBQztJQUduQyxpQkFBZ0I7Ozs7SUF0QmQsd0NBQXVCO0lBQ3ZCLGdFQUFtQztJQUNuQyxpREFBZ0MsMkJBQUEsNENBQUEsMENBQUEsZ0NBQUEsNkJBQUEseUJBQUEs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QUNILENBQUM7YUFDSDtZQUNELG9GQUFvRjtZQUNwRixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM5RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUIsT0FBTzthQUNSO1NBQ0Y7SUFDSCxDQUFDO3NGQTFRVSw0QkFBNEI7NkRBQTVCLDRCQUE0Qjs7Ozs7OENBRjVCLENBQUMsOEJBQThCLENBQUMsRUFENUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7WUNuQnJFLDZFQU9NLGlIQUFBLGlIQUFBOztZQVBrRCx3RUFBK0M7OztpRkRzQjFGLDRCQUE0QjtjQU54QyxTQUFTOzJCQUNFLHdCQUF3QixpQkFFbkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsYUFDeEQsQ0FBQyw4QkFBOEIsQ0FBQztnSkFHaEIsVUFBVTtrQkFBcEMsWUFBWTttQkFBQyxXQUFXOztrRkFEZCw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUG9EeW5hbWljRm9ybUZpZWxkIH0gZnJvbSAnLi4vcG8tZHluYW1pYy1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0R5bmFtaWNGb3JtRmllbGRWYWxpZGF0aW9uIH0gZnJvbSAnLi4vcG8tZHluYW1pYy1mb3JtLXZhbGlkYXRpb24vcG8tZHluYW1pYy1mb3JtLWZpZWxkLXZhbGlkYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3BvLWR5bmFtaWMtZm9ybS12YWxpZGF0aW9uL3BvLWR5bmFtaWMtZm9ybS12YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9EeW5hbWljRm9ybUZpZWxkc0Jhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLWR5bmFtaWMtZm9ybS1maWVsZHMtYmFzZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIENvbXBvbmVudGUgZGUgY3JpYcOnw6NvIGRvcyBjYW1wb3MgZGluw6JtaWNvcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tZHluYW1pYy1mb3JtLWZpZWxkcycsXG4gIHRlbXBsYXRlVXJsOiAncG8tZHluYW1pYy1mb3JtLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfV0sXG4gIHByb3ZpZGVyczogW1BvRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgUG9EeW5hbWljRm9ybUZpZWxkc0NvbXBvbmVudCBleHRlbmRzIFBvRHluYW1pY0Zvcm1GaWVsZHNCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZHJlbignY29tcG9uZW50JykgY29tcG9uZW50czogUXVlcnlMaXN0PHsgbmFtZTogc3RyaW5nOyBmb2N1czogKCkgPT4gdm9pZCB9PjtcblxuICBwcml2YXRlIHByZXZpb3VzVmFsdWUgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0aXRsZUNhc2VQaXBlOiBUaXRsZUNhc2VQaXBlLFxuICAgIHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IFBvRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZXM6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZm9ybTogTmdGb3JtXG4gICkge1xuICAgIHN1cGVyKHRpdGxlQ2FzZVBpcGUpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmZpZWxkcykge1xuICAgICAgdGhpcy52aXNpYmxlRmllbGRzID0gdGhpcy5nZXRWaXNpYmxlRmllbGRzKCk7XG5cbiAgICAgIGlmIChjaGFuZ2VzLmZpZWxkcy5wcmV2aW91c1ZhbHVlICYmIHRoaXMuaGFzQ29udGFpbmVyKCkpIHtcbiAgICAgICAgdGhpcy5oYXNDaGFuZ2VDb250YWluZXIoY2hhbmdlcy5maWVsZHMucHJldmlvdXNWYWx1ZSwgY2hhbmdlcy5maWVsZHMuY3VycmVudFZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjaGFuZ2VzLmZpZWxkcy5wcmV2aW91c1ZhbHVlIHx8ICFjaGFuZ2VzLmZpZWxkcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJGaWVsZHMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb2N1cyhwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgY29uc3QgZm91bmRDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudHMuZmluZChjb21wb25lbnQgPT4gY29tcG9uZW50Lm5hbWUgPT09IHByb3BlcnR5KTtcbiAgICBpZiAoZm91bmRDb21wb25lbnQpIHtcbiAgICAgIGZvdW5kQ29tcG9uZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgaXNEaXNhYmxlZChmaWVsZDogUG9EeW5hbWljRm9ybUZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZpZWxkLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGb3JtO1xuICB9XG5cbiAgYXN5bmMgb25DaGFuZ2VGaWVsZCh2aXNpYmxlRmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZCwgb2JqZWN0VmFsdWU/OiBhbnkpIHtcbiAgICBjb25zdCB7IHByb3BlcnR5IH0gPSB2aXNpYmxlRmllbGQ7XG4gICAgY29uc3QgaXNCb29sZWFuVHlwZSA9IHZpc2libGVGaWVsZC50eXBlID09PSAnYm9vbGVhbic7XG4gICAgY29uc3QgaXNDaGFuZ2VkVmFsdWVGaWVsZCA9IHRoaXMucHJldmlvdXNWYWx1ZVtwcm9wZXJ0eV0gIT09IHRoaXMudmFsdWVbcHJvcGVydHldO1xuXG4gICAgaWYgKHZpc2libGVGaWVsZC5vcHRpb25zU2VydmljZSkge1xuICAgICAgdGhpcy5vYmplY3RWYWx1ZS5lbWl0KG9iamVjdFZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZmljYSBzZSBvIGZvcm11bGFyaW8gZXN0YSB0b3VjaGVkIHBhcmEgbsOjbyBkaXNwYXJhciBvIHZhbGlkYXRlIGFvIGNhcnJlZ2FyIGEgdGVsYS5cbiAgICBpZiAoKHRoaXMuZm9ybS50b3VjaGVkIHx8IGlzQm9vbGVhblR5cGUpICYmIGlzQ2hhbmdlZFZhbHVlRmllbGQpIHtcbiAgICAgIGNvbnN0IHsgY2hhbmdlZEZpZWxkLCBjaGFuZ2VkRmllbGRJbmRleCB9ID0gdGhpcy5nZXRGaWVsZChwcm9wZXJ0eSk7XG5cbiAgICAgIGlmIChjaGFuZ2VkRmllbGQudmFsaWRhdGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy52YWxpZGF0ZUZpZWxkKGNoYW5nZWRGaWVsZCwgY2hhbmdlZEZpZWxkSW5kZXgsIHZpc2libGVGaWVsZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudHJpZ2dlclZhbGlkYXRpb25PbkZvcm0oY2hhbmdlZEZpZWxkSW5kZXgpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlUHJldmlvdXNWYWx1ZSgpO1xuICB9XG5cbiAgLy9lbWl0ZSBvIHZhbG9yIGEgY2FkYSBjYXJhY3RlcmUgZGlnaXRhZG8gbm8gaW5wdXRcbiAgb25DaGFuZ2VGaWVsZE1vZGVsKHZpc2libGVGaWVsZDogUG9EeW5hbWljRm9ybUZpZWxkKSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGVPbklucHV0KSB7XG4gICAgICBjb25zdCB7IHByb3BlcnR5IH0gPSB2aXNpYmxlRmllbGQ7XG4gICAgICBjb25zdCB7IGNoYW5nZWRGaWVsZEluZGV4IH0gPSB0aGlzLmdldEZpZWxkKHByb3BlcnR5KTtcbiAgICAgIHRoaXMudHJpZ2dlclZhbGlkYXRpb25PbkZvcm0oY2hhbmdlZEZpZWxkSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVByZXZpb3VzVmFsdWUoKSB7XG4gICAgdGhpcy5wcmV2aW91c1ZhbHVlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSk7XG4gIH1cblxuICB0cmFja0J5KGluZGV4KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpZWxkVmFsaWRhdGlvbihpbmRleDogbnVtYmVyLCB2YWxpZGF0ZWRGaWVsZDogUG9EeW5hbWljRm9ybUZpZWxkVmFsaWRhdGlvbikge1xuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZHNbaW5kZXhdO1xuXG4gICAgdGhpcy5maWVsZHNbaW5kZXhdID0geyAuLi5maWVsZCwgLi4udmFsaWRhdGVkRmllbGQuZmllbGQgfTtcbiAgICB0aGlzLnVwZGF0ZUZpZWxkcygpO1xuXG4gICAgaWYgKHZhbGlkYXRlZEZpZWxkLmhhc093blByb3BlcnR5KCd2YWx1ZScpKSB7XG4gICAgICB0aGlzLnZhbHVlW2ZpZWxkLnByb3BlcnR5XSA9IHZhbGlkYXRlZEZpZWxkLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlcy5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodmFsaWRhdGVkRmllbGQuZm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoZmllbGQucHJvcGVydHkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmllbGQocHJvcGVydHk6IHN0cmluZykge1xuICAgIGNvbnN0IGNoYW5nZWRGaWVsZEluZGV4ID0gdGhpcy5maWVsZHMuZmluZEluZGV4KGZpZWxkID0+IGZpZWxkLnByb3BlcnR5ID09PSBwcm9wZXJ0eSk7XG4gICAgY29uc3QgY2hhbmdlZEZpZWxkID0gdGhpcy5maWVsZHNbY2hhbmdlZEZpZWxkSW5kZXhdO1xuXG4gICAgcmV0dXJuIHsgY2hhbmdlZEZpZWxkLCBjaGFuZ2VkRmllbGRJbmRleCB9O1xuICB9XG5cbiAgcHJpdmF0ZSB0cmlnZ2VyVmFsaWRhdGlvbk9uRm9ybShjaGFuZ2VkRmllbGRJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXNWYWxpZGF0YWJsZUZpZWxkID0gdGhpcy52YWxpZGF0ZUZpZWxkcz8ubGVuZ3RoXG4gICAgICA/IHRoaXMudmFsaWRhdGVGaWVsZHNDaGVja2VyKHRoaXMudmFsaWRhdGVGaWVsZHMsIHRoaXMuZmllbGRzW2NoYW5nZWRGaWVsZEluZGV4XS5wcm9wZXJ0eSlcbiAgICAgIDogdHJ1ZTtcbiAgICBjb25zdCBoYXNWYWxpZGF0aW9uRm9ybSA9IHRoaXMudmFsaWRhdGUgJiYgaXNWYWxpZGF0YWJsZUZpZWxkICYmIHRoaXMuZm9ybVZhbGlkYXRlLm9ic2VydmVycy5sZW5ndGg7XG5cbiAgICBpZiAoaGFzVmFsaWRhdGlvbkZvcm0pIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZCA9IHRoaXMuZmllbGRzW2NoYW5nZWRGaWVsZEluZGV4XTtcbiAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLmVtaXQodXBkYXRlZEZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZpZWxkcygpIHtcbiAgICB0aGlzLmZpZWxkc0NoYW5nZS5lbWl0KHRoaXMuZmllbGRzKTtcbiAgICB0aGlzLnZpc2libGVGaWVsZHMgPSB0aGlzLmdldFZpc2libGVGaWVsZHMoKTtcbiAgICB0aGlzLnNldENvbnRhaW5lckZpZWxkcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkc0NoZWNrZXIodmFsaWRhdGVGaWVsZHM6IEFycmF5PHN0cmluZz4sIHByb3BlcnR5RmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZFsncHJvcGVydHknXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWxpZGF0ZUZpZWxkcy5zb21lKHZhbGlkYXRlRmllbGRJdGVtID0+IHZhbGlkYXRlRmllbGRJdGVtID09PSBwcm9wZXJ0eUZpZWxkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVGaWVsZChmaWVsZDogUG9EeW5hbWljRm9ybUZpZWxkLCBmaWVsZEluZGV4OiBudW1iZXIsIHZpc2libGVGaWVsZDogUG9EeW5hbWljRm9ybUZpZWxkKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlW2ZpZWxkLnByb3BlcnR5XTtcblxuICAgIGNvbnN0IHByZXZpb3VzRGlzYWJsZWQgPSB2aXNpYmxlRmllbGQuZGlzYWJsZWQ7XG4gICAgdmlzaWJsZUZpZWxkLmRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNoYW5nZXMuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlZEZpZWxkID0gYXdhaXQgdGhpcy52YWxpZGF0aW9uU2VydmljZS5zZW5kRmllbGRDaGFuZ2UoZmllbGQsIHZhbHVlKS50b1Byb21pc2UoKTtcbiAgICAgIHRoaXMuYXBwbHlGaWVsZFZhbGlkYXRpb24oZmllbGRJbmRleCwgdmFsaWRhdGVkRmllbGQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdmlzaWJsZUZpZWxkLmRpc2FibGVkID0gcHJldmlvdXNEaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc0NoYW5nZUNvbnRhaW5lcihwcmV2aW91czogQXJyYXk8UG9EeW5hbWljRm9ybUZpZWxkPiwgY3VycmVudDogQXJyYXk8UG9EeW5hbWljRm9ybUZpZWxkPik6IHZvaWQge1xuICAgIGNvbnN0IHByZXZBcnJheSA9IHByZXZpb3VzLm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7XG4gICAgICBjb250YWluZXI6IGl0ZW0uY29udGFpbmVyIHx8IG51bGwsXG4gICAgICBwcm9wZXJ0eTogaXRlbS5wcm9wZXJ0eSxcbiAgICAgIGluZGV4LFxuICAgICAgb3JkZXI6IGl0ZW0ub3JkZXJcbiAgICB9KSk7XG5cbiAgICBjb25zdCBjdXJyQXJyYXkgPSBjdXJyZW50Lm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7XG4gICAgICBjb250YWluZXI6IGl0ZW0uY29udGFpbmVyIHx8IG51bGwsXG4gICAgICBwcm9wZXJ0eTogaXRlbS5wcm9wZXJ0eSxcbiAgICAgIGluZGV4LFxuICAgICAgb3JkZXI6IGl0ZW0ub3JkZXJcbiAgICB9KSk7XG5cbiAgICBjb25zdCBwcmV2Q29udGFpbmVycyA9IHByZXZBcnJheS5maWx0ZXIoaXRlbSA9PiBpdGVtLmNvbnRhaW5lcik7XG4gICAgY29uc3QgY3VyckNvbnRhaW5lcnMgPSBjdXJyQXJyYXkuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jb250YWluZXIpO1xuXG4gICAgY29uc3QgcHJldk9yZGVyID0gcHJldkFycmF5LmZpbHRlcihpdGVtID0+IGl0ZW0ub3JkZXIpO1xuICAgIGNvbnN0IGN1cnJPcmRlciA9IGN1cnJBcnJheS5maWx0ZXIoaXRlbSA9PiBpdGVtLm9yZGVyKTtcblxuICAgIC8vIFZlcmlmaWNhIG11ZGFuw6dhIG5hIHF1YW50aWRhZGUgZGUgY29udGFpbmVyc1xuICAgIGlmIChwcmV2Q29udGFpbmVycy5sZW5ndGggIT09IGN1cnJDb250YWluZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRDb250YWluZXJGaWVsZHMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWZXJpZmljYSBtdWRhbsOnYSBuYSBxdWFudGlkYWRlIGRlIG9yZGVyXG4gICAgaWYgKHByZXZPcmRlci5sZW5ndGggIT09IGN1cnJPcmRlci5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2V0Q29udGFpbmVyRmllbGRzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGN1cnJDb250YWluZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VzQ29udGFpbmVyKHByZXZDb250YWluZXJzLCBjdXJyQ29udGFpbmVycywgJ2NvbnRhaW5lcicpO1xuICAgIH1cblxuICAgIGlmIChjdXJyT3JkZXIubGVuZ3RoKSB7XG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZXNDb250YWluZXIocHJldk9yZGVyLCBjdXJyT3JkZXIsICdvcmRlcicpO1xuICAgIH1cblxuICAgIC8vYXR1YWxpemEgY29udGFpbmVyIHNlbSBtdWRhbsOnYSBuYSBlc3RydXR1cmEgZGEgaW50ZXJmYWNlXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5kaWZmT2JqZWN0c0FycmF5KHByZXZpb3VzLCB0aGlzLmdldFZpc2libGVGaWVsZHMoKSk7XG4gICAgdGhpcy5jb250YWluZXJGaWVsZHMgPSB0aGlzLnVwZGF0ZUZpZWxkQ29udGFpbmVyKHJlc3VsdCwgdGhpcy5jb250YWluZXJGaWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGaWVsZENvbnRhaW5lcihjaGFuZ2VzLCBjb250YWluZXJGaWVsZHMpIHtcbiAgICBjb25zdCBtYXBjaGFuZ2VzID0gbmV3IE1hcChjaGFuZ2VzLm1hcChvYmogPT4gW29iai5wcm9wZXJ0eSwgb2JqXSkpO1xuXG4gICAgY29udGFpbmVyRmllbGRzLmZvckVhY2goc3ViQXJyYXkgPT4ge1xuICAgICAgc3ViQXJyYXkuZm9yRWFjaCgoc3ViSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbTogYW55ID0gbWFwY2hhbmdlcy5nZXQoc3ViSXRlbS5wcm9wZXJ0eSk7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgc3ViQXJyYXlbaW5kZXhdID0geyAuLi5zdWJJdGVtLCAuLi5pdGVtIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lckZpZWxkcztcbiAgfVxuXG4gIHByaXZhdGUgZGlmZk9iamVjdHNBcnJheShvbGRBcnJheSwgbmV3QXJyYXkpIHtcbiAgICBjb25zdCBkaWZmZXJlbmNlcyA9IFtdO1xuXG4gICAgbmV3QXJyYXkuZm9yRWFjaChuZXdPYmogPT4ge1xuICAgICAgY29uc3Qgb2xkT2JqID0gb2xkQXJyYXkuZmluZChvID0+IG8ucHJvcGVydHkgPT09IG5ld09iai5wcm9wZXJ0eSk7XG5cbiAgICAgIGlmICghb2xkT2JqKSB7XG4gICAgICAgIC8vIFNlIG8gb2JqZXRvIMOpIG5vdm8sIGFkaWNpb25hIHRvZG8gbyBvYmpldG8gY29tIGEgcHJvcHJpZWRhZGUgXCJwcm9wZXJ0eVwiXG4gICAgICAgIGRpZmZlcmVuY2VzLnB1c2goeyAuLi5uZXdPYmogfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2UgaMOhIGRpZmVyZW7Dp2FzIG5hcyBwcm9wcmllZGFkZXNcbiAgICAgICAgY29uc3QgZGlmZiA9IHsgcHJvcGVydHk6IG5ld09iai5wcm9wZXJ0eSB9O1xuICAgICAgICBsZXQgaGFzRGlmZmVyZW5jZXMgPSBmYWxzZTtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdPYmopIHtcbiAgICAgICAgICBpZiAobmV3T2JqW2tleV0gIT09IG9sZE9ialtrZXldKSB7XG4gICAgICAgICAgICBkaWZmW2tleV0gPSBuZXdPYmpba2V5XTtcbiAgICAgICAgICAgIGhhc0RpZmZlcmVuY2VzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzRGlmZmVyZW5jZXMpIHtcbiAgICAgICAgICBkaWZmZXJlbmNlcy5wdXNoKGRpZmYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvL3JldG9ybmEgbXVkYW7Dp2FzIG5vcyBmaWVsZHMgcGFyYSBhdHVhbGl6YcOnw6NvIGRvIGNvbnRhaW5lckZpZWxkc1xuICAgIHJldHVybiBkaWZmZXJlbmNlcztcbiAgfVxuXG4gIHByaXZhdGUgaGFzQ29udGFpbmVyKCkge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVGaWVsZHMgJiYgdGhpcy52aXNpYmxlRmllbGRzLnNvbWUoZmllbGQgPT4gZmllbGQuY29udGFpbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2hhbmdlc0NvbnRhaW5lcihwcmV2Q29udGFpbmVycywgY3VyckNvbnRhaW5lcnMsIGtleSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldkNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHByZXYgPSBwcmV2Q29udGFpbmVyc1tpXTtcbiAgICAgIGNvbnN0IGN1cnIgPSBjdXJyQ29udGFpbmVyc1tpXTtcblxuICAgICAgLy9WZXJpZmljYSBzZSBjb250YWluZXIgbXVkb3UgZGUgcG9zacOnw6NvXG4gICAgICBpZiAocHJldltrZXldID09PSBjdXJyW2tleV0gJiYgcHJldi5pbmRleCAhPT0gY3Vyci5pbmRleCkge1xuICAgICAgICB0aGlzLnNldENvbnRhaW5lckZpZWxkcygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvL1ZlcmlmaWNhIHNlIGZvaSBhcGVuYXMgbXVkYW7Dp2EgZGEgc3RyaW5nIGVtIGNhc28gZG8gY29udGFpbmVyIG91IHZhbG9yIG5vIG9yZGVyXG4gICAgICBpZiAocHJldltrZXldICE9PSBjdXJyW2tleV0gJiYgcHJldi5pbmRleCA9PT0gY3Vyci5pbmRleCkge1xuICAgICAgICBpZiAoa2V5ID09PSAnb3JkZXInKSB7XG4gICAgICAgICAgdGhpcy5zZXRDb250YWluZXJGaWVsZHMoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250YWluZXJGaWVsZHMuZm9yRWFjaChzdWJJdGVtID0+XG4gICAgICAgICAgc3ViSXRlbS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHkgPT09IGN1cnIucHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgaXRlbVtrZXldID0gY3VycltrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICAvL3ZlcmlmaWNhIHNlIG1hbnRldmUgbyBtZXNtbyBuw7ptZXJvIGRlIGNvbnRhaW5lciwgbWFzIGFsdGVyb3UgcHJvcGVydHkgZG8gY29udGFpbmVyXG4gICAgICBpZiAocHJldltrZXldICE9PSBjdXJyW2tleV0gJiYgcHJldi5wcm9wZXJ0eSAhPT0gY3Vyci5wcm9wZXJ0eSkge1xuICAgICAgICB0aGlzLnNldENvbnRhaW5lckZpZWxkcygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicG8tcm93XCIgW2NsYXNzLnBvLWR5bmFtaWNdPVwiaGFzQ29udGFpbmVyc1wiICpuZ0lmPVwidmlzaWJsZUZpZWxkcyAmJiB2aXNpYmxlRmllbGRzLmxlbmd0aCA+IDBcIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICBoYXNDb250YWluZXJzID8gcG9Db250ZW50Q29udGFpbmVyIDogcG9Db250ZW50O1xuICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGhhc0NvbnRhaW5lcnMgPyBjb250YWluZXJGaWVsZHMgOiB2aXNpYmxlRmllbGRzIH1cbiAgICBcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwb0NvbnRlbnQgbGV0LWZpZWxkcz5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgPHBvLWRpdmlkZXIgKm5nSWY9XCJmaWVsZD8uZGl2aWRlcj8udHJpbSgpXCIgY2xhc3M9XCJwby1zbS0xMlwiIFtwLWxhYmVsXT1cImZpZWxkLmRpdmlkZXJcIj4gPC9wby1kaXZpZGVyPlxuXG4gICAgPHBvLWRhdGVwaWNrZXJcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdkYXRlcGlja2VyJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY2xlYW5dPVwiZmllbGQuY2xlYW5cIlxuICAgICAgW3AtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChmaWVsZClcIlxuICAgICAgW3AtZXJyb3ItcGF0dGVybl09XCJmaWVsZC5lcnJvck1lc3NhZ2VcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1mb3JtYXRdPVwiZmllbGQuZm9ybWF0XCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1pc28tZm9ybWF0XT1cImZpZWxkLmlzb0Zvcm1hdFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1sb2NhbGVdPVwiZmllbGQubG9jYWxlXCJcbiAgICAgIFtwLW1heC1kYXRlXT1cImZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtwLW1pbi1kYXRlXT1cImZpZWxkLm1pblZhbHVlXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICA8L3BvLWRhdGVwaWNrZXI+XG5cbiAgICA8cG8tZGF0ZXBpY2tlci1yYW5nZVxuICAgICAgI2NvbXBvbmVudFxuICAgICAgKm5nSWY9XCJjb21wYXJlVG8oZmllbGQuY29udHJvbCwgJ2RhdGVwaWNrZXJyYW5nZScpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtaGVscF09XCJmaWVsZC5oZWxwXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLWxpdGVyYWxzXT1cImZpZWxkLmxpdGVyYWxzXCJcbiAgICAgIFtwLW1heC1kYXRlXT1cImZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtwLW1pbi1kYXRlXT1cImZpZWxkLm1pblZhbHVlXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgID5cbiAgICA8L3BvLWRhdGVwaWNrZXItcmFuZ2U+XG5cbiAgICA8cG8taW5wdXRcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdpbnB1dCcpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWVycm9yLXBhdHRlcm5dPVwiZmllbGQuZXJyb3JNZXNzYWdlXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtaGVscF09XCJmaWVsZC5oZWxwXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLW1hc2stZm9ybWF0LW1vZGVsXT1cImZpZWxkLm1hc2tGb3JtYXRNb2RlbFwiXG4gICAgICBbcC1tYXNrXT1cImZpZWxkLm1hc2tcIlxuICAgICAgW3AtbWF4bGVuZ3RoXT1cImZpZWxkLm1heExlbmd0aFwiXG4gICAgICBbcC1taW5sZW5ndGhdPVwiZmllbGQubWluTGVuZ3RoXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1wYXR0ZXJuXT1cImZpZWxkLnBhdHRlcm5cIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoZmllbGQpXCJcbiAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJvbkNoYW5nZUZpZWxkTW9kZWwoZmllbGQpXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgPlxuICAgIDwvcG8taW5wdXQ+XG5cbiAgICA8cG8tbnVtYmVyXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnbnVtYmVyJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY2xlYW5dPVwiZmllbGQuY2xlYW5cIlxuICAgICAgW3AtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChmaWVsZClcIlxuICAgICAgW3AtZXJyb3ItcGF0dGVybl09XCJmaWVsZC5lcnJvck1lc3NhZ2VcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3AtbWluXT1cImZpZWxkLm1pblZhbHVlXCJcbiAgICAgIFtwLW1heF09XCJmaWVsZC5tYXhWYWx1ZVwiXG4gICAgICBbcC1tYXhsZW5ndGhdPVwiZmllbGQubWF4TGVuZ3RoXCJcbiAgICAgIFtwLW1pbmxlbmd0aF09XCJmaWVsZC5taW5MZW5ndGhcIlxuICAgICAgW3Atbm8tYXV0b2NvbXBsZXRlXT1cImZpZWxkLm5vQXV0b2NvbXBsZXRlXCJcbiAgICAgIFtwLW9wdGlvbmFsXT1cImZpZWxkLm9wdGlvbmFsXCJcbiAgICAgIFtwLXN0ZXBdPVwiZmllbGQuc3RlcFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cIm9uQ2hhbmdlRmllbGRNb2RlbChmaWVsZClcIlxuICAgICAgW3AtaWNvbl09XCJmaWVsZC5pY29uXCJcbiAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgPC9wby1udW1iZXI+XG5cbiAgICA8cG8tZGVjaW1hbFxuICAgICAgI2NvbXBvbmVudFxuICAgICAgKm5nSWY9XCJjb21wYXJlVG8oZmllbGQuY29udHJvbCwgJ2RlY2ltYWwnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBbcC1jbGVhbl09XCJmaWVsZC5jbGVhblwiXG4gICAgICBbcC1lcnJvci1wYXR0ZXJuXT1cImZpZWxkLmVycm9yTWVzc2FnZVwiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1kZWNpbWFscy1sZW5ndGhdPVwiZmllbGQuZGVjaW1hbHNMZW5ndGhcIlxuICAgICAgW3AtdGhvdXNhbmQtbWF4bGVuZ3RoXT1cImZpZWxkLnRob3VzYW5kTWF4bGVuZ3RoXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1sb2NhbGVdPVwiZmllbGQubG9jYWxlXCJcbiAgICAgIFtwLW1pbl09XCJmaWVsZC5taW5WYWx1ZVwiXG4gICAgICBbcC1tYXhdPVwiZmllbGQubWF4VmFsdWVcIlxuICAgICAgW3AtbWF4bGVuZ3RoXT1cImZpZWxkLm1heExlbmd0aFwiXG4gICAgICBbcC1taW5sZW5ndGhdPVwiZmllbGQubWluTGVuZ3RoXCJcbiAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJmaWVsZC5ub0F1dG9jb21wbGV0ZVwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cIm9uQ2hhbmdlRmllbGRNb2RlbChmaWVsZClcIlxuICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICA8L3BvLWRlY2ltYWw+XG5cbiAgICA8cG8tc2VsZWN0XG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnc2VsZWN0JylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtZmllbGQtbGFiZWxdPVwiZmllbGQuZmllbGRMYWJlbFwiXG4gICAgICBbcC1maWVsZC12YWx1ZV09XCJmaWVsZC5maWVsZFZhbHVlXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1vcHRpb25hbF09XCJmaWVsZC5vcHRpb25hbFwiXG4gICAgICBbcC1vcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoZmllbGQpXCJcbiAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgIFtwLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRvbmx5XCJcbiAgICA+XG4gICAgPC9wby1zZWxlY3Q+XG5cbiAgICA8cG8tcmFkaW8tZ3JvdXBcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdyYWRpb0dyb3VwJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY29sdW1uc109XCJmaWVsZC5jb2x1bW5zIHx8IDNcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgPlxuICAgIDwvcG8tcmFkaW8tZ3JvdXA+XG5cbiAgICA8cG8tc3dpdGNoXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnc3dpdGNoJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChmaWVsZClcIlxuICAgICAgW3AtZm9ybWF0LW1vZGVsXT1cImZpZWxkLmZvcm1hdE1vZGVsXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1sYWJlbC1vZmZdPVwiZmllbGQuYm9vbGVhbkZhbHNlXCJcbiAgICAgIFtwLWxhYmVsLW9uXT1cImZpZWxkLmJvb2xlYW5UcnVlXCJcbiAgICAgIFtwLWxhYmVsLXBvc2l0aW9uXT1cImZpZWxkLmxhYmVsUG9zaXRpb25cIlxuICAgICAgW3AtaGlkZS1sYWJlbC1zdGF0dXNdPVwiZmllbGQuaGlkZUxhYmVsU3RhdHVzXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgPlxuICAgIDwvcG8tc3dpdGNoPlxuXG4gICAgPHBvLWNoZWNrYm94XG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnY2hlY2tib3gnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLXNpemVdPVwiZmllbGQuc2l6ZVwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgID5cbiAgICA8L3BvLWNoZWNrYm94PlxuXG4gICAgPHBvLWNvbWJvXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAnY29tYm8nKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBwLWVtaXQtb2JqZWN0LXZhbHVlXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWZpZWxkLWxhYmVsXT1cImZpZWxkLmZpZWxkTGFiZWxcIlxuICAgICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGQuZmllbGRWYWx1ZVwiXG4gICAgICBbcC1maWx0ZXItcGFyYW1zXT1cImZpZWxkLnBhcmFtc1wiXG4gICAgICBbcC1maWx0ZXItc2VydmljZV09XCJmaWVsZC5vcHRpb25zU2VydmljZVwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtaW5maW5pdGUtc2Nyb2xsXT1cImZpZWxkLmluZmluaXRlU2Nyb2xsXCJcbiAgICAgIFtwLWluZmluaXRlLXNjcm9sbC1kaXN0YW5jZV09XCJmaWVsZC5pbmZpbml0ZVNjcm9sbERpc3RhbmNlIHx8IDEwMFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1saXRlcmFsc109XCJmaWVsZC5saXRlcmFsc1wiXG4gICAgICBbcC1vcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atc29ydF09XCJmaWVsZC5zb3J0XCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkLCAkZXZlbnQpXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICBbcC1maWx0ZXItbWlubGVuZ3RoXT1cImZpZWxkLmZpbHRlck1pbmxlbmd0aFwiXG4gICAgICBbcC1maWx0ZXItbW9kZV09XCJmaWVsZC5maWx0ZXJNb2RlXCJcbiAgICAgIFtwLWRpc2FibGVkLWluaXQtZmlsdGVyXT1cImZpZWxkLmRpc2FibGVkSW5pdEZpbHRlclwiXG4gICAgICBbcC1kaXNhYmxlZC10YWItZmlsdGVyXT1cImZpZWxkLmRpc2FibGVkVGFiRmlsdGVyXCJcbiAgICAgIFtwLWRlYm91bmNlLXRpbWVdPVwiZmllbGQuZGVib3VuY2VUaW1lXCJcbiAgICAgIFtwLWNoYW5nZS1vbi1lbnRlcl09XCJmaWVsZC5jaGFuZ2VPbkVudGVyXCJcbiAgICA+XG4gICAgPC9wby1jb21ibz5cblxuICAgIDxwby1sb29rdXBcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdsb29rdXAnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBwLWZpZWxkLWxhYmVsPVwibGFiZWxcIlxuICAgICAgcC1maWVsZC12YWx1ZT1cInZhbHVlXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWNvbHVtbnNdPVwiZmllbGQuY29sdW1uc1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1maWVsZC1sYWJlbF09XCJmaWVsZC5maWVsZExhYmVsIHx8ICdsYWJlbCdcIlxuICAgICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGQuZmllbGRWYWx1ZSB8fCAndmFsdWUnXCJcbiAgICAgIFtwLWZpbHRlci1wYXJhbXNdPVwiZmllbGQucGFyYW1zXCJcbiAgICAgIFtwLWZpbHRlci1zZXJ2aWNlXT1cImZpZWxkLnNlYXJjaFNlcnZpY2VcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1hdXRvLWhlaWdodF09XCJmaWVsZC5hdXRvSGVpZ2h0XCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1maWVsZC1mb3JtYXRdPVwiZmllbGQuZm9ybWF0XCJcbiAgICAgIFtwLWluZmluaXRlLXNjcm9sbF09XCJmaWVsZC5pbmZpbml0ZVNjcm9sbFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1saXRlcmFsc109XCJmaWVsZC5saXRlcmFsc1wiXG4gICAgICBbcC1tdWx0aXBsZV09XCJmaWVsZC5tdWx0aXBsZVwiXG4gICAgICBbcC1uby1hdXRvY29tcGxldGVdPVwiZmllbGQubm9BdXRvY29tcGxldGVcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoZmllbGQpXCJcbiAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgIFtwLWFkdmFuY2VkLWZpbHRlcnNdPVwiZmllbGQuYWR2YW5jZWRGaWx0ZXJzXCJcbiAgICAgIChwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMpPVwiZmllbGQuY2hhbmdlVmlzaWJsZUNvbHVtbnM/LigkZXZlbnQpXCJcbiAgICAgIChwLXJlc3RvcmUtY29sdW1uLW1hbmFnZXIpPVwiZmllbGQuY29sdW1uUmVzdG9yZU1hbmFnZXI/LigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9wby1sb29rdXA+XG5cbiAgICA8cG8tY2hlY2tib3gtZ3JvdXBcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdjaGVja2JveEdyb3VwJylcIlxuICAgICAgW25hbWVdPVwiZmllbGQucHJvcGVydHlcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVtmaWVsZC5wcm9wZXJ0eV1cIlxuICAgICAgW25nQ2xhc3NdPVwiZmllbGQuY29tcG9uZW50Q2xhc3NcIlxuICAgICAgW3AtY29sdW1uc109XCJmaWVsZC5jb2x1bW5zIHx8IDNcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJmaWVsZC5mb2N1c1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgPlxuICAgIDwvcG8tY2hlY2tib3gtZ3JvdXA+XG5cbiAgICA8cG8tbXVsdGlzZWxlY3RcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdtdWx0aXNlbGVjdCcpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtYXV0by1oZWlnaHRdPVwiZmllbGQuYXV0b0hlaWdodFwiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgW3AtbGl0ZXJhbHNdPVwiZmllbGQubGl0ZXJhbHNcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3Atb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICBbcC1maWVsZC1sYWJlbF09XCJmaWVsZC5maWVsZExhYmVsXCJcbiAgICAgIFtwLWZpZWxkLXZhbHVlXT1cImZpZWxkLmZpZWxkVmFsdWVcIlxuICAgICAgW3AtZmlsdGVyLXNlcnZpY2VdPVwiZmllbGQub3B0aW9uc1NlcnZpY2VcIlxuICAgICAgW3AtZmlsdGVyLW1vZGVdPVwiZmllbGQuZmlsdGVyTW9kZVwiXG4gICAgICBbcC1kZWJvdW5jZS10aW1lXT1cImZpZWxkLmRlYm91bmNlVGltZVwiXG4gICAgICBbcC1zb3J0XT1cImZpZWxkLnNvcnRcIlxuICAgICAgW3AtcGxhY2Vob2xkZXItc2VhcmNoXT1cImZpZWxkLnBsYWNlaG9sZGVyU2VhcmNoXCJcbiAgICAgIFtwLWhpZGUtc2VhcmNoXT1cImZpZWxkLmhpZGVTZWFyY2hcIlxuICAgICAgW3AtaGlkZS1zZWxlY3QtYWxsXT1cImZpZWxkLmhpZGVTZWxlY3RBbGxcIlxuICAgID5cbiAgICA8L3BvLW11bHRpc2VsZWN0PlxuXG4gICAgPHBvLXRleHRhcmVhXG4gICAgICAjY29tcG9uZW50XG4gICAgICAqbmdJZj1cImNvbXBhcmVUbyhmaWVsZC5jb250cm9sLCAndGV4dGFyZWEnKVwiXG4gICAgICBbbmFtZV09XCJmaWVsZC5wcm9wZXJ0eVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW2ZpZWxkLnByb3BlcnR5XVwiXG4gICAgICBbbmdDbGFzc109XCJmaWVsZC5jb21wb25lbnRDbGFzc1wiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImZpZWxkLmZvY3VzXCJcbiAgICAgIFtwLWhlbHBdPVwiZmllbGQuaGVscFwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1tYXhsZW5ndGhdPVwiZmllbGQubWF4TGVuZ3RoXCJcbiAgICAgIFtwLW1pbmxlbmd0aF09XCJmaWVsZC5taW5MZW5ndGhcIlxuICAgICAgW3Atb3B0aW9uYWxdPVwiZmllbGQub3B0aW9uYWxcIlxuICAgICAgW3AtcmVhZG9ubHldPVwiZmllbGQucmVhZG9ubHlcIlxuICAgICAgW3AtcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW3Atc2hvdy1yZXF1aXJlZF09XCJmaWVsZC5zaG93UmVxdWlyZWRcIlxuICAgICAgW3Atcm93c109XCJmaWVsZC5yb3dzXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgICAocC1jaGFuZ2UtbW9kZWwpPVwib25DaGFuZ2VGaWVsZE1vZGVsKGZpZWxkKVwiXG4gICAgICBbcC1wbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgPlxuICAgIDwvcG8tdGV4dGFyZWE+XG5cbiAgICA8cG8tcGFzc3dvcmRcbiAgICAgICNjb21wb25lbnRcbiAgICAgICpuZ0lmPVwiY29tcGFyZVRvKGZpZWxkLmNvbnRyb2wsICdwYXNzd29yZCcpXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWNsZWFuXT1cImZpZWxkLmNsZWFuXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoZmllbGQpXCJcbiAgICAgIFtwLWVycm9yLXBhdHRlcm5dPVwiZmllbGQuZXJyb3JNZXNzYWdlXCJcbiAgICAgIFtwLWF1dG8tZm9jdXNdPVwiZmllbGQuZm9jdXNcIlxuICAgICAgW3AtaGVscF09XCJmaWVsZC5oZWxwXCJcbiAgICAgIFtwLWhpZGUtcGFzc3dvcmQtcGVla109XCJmaWVsZC5oaWRlUGFzc3dvcmRQZWVrXCJcbiAgICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICBbcC1tYXhsZW5ndGhdPVwiZmllbGQubWF4TGVuZ3RoXCJcbiAgICAgIFtwLW1pbmxlbmd0aF09XCJmaWVsZC5taW5MZW5ndGhcIlxuICAgICAgW3Atbm8tYXV0b2NvbXBsZXRlXT1cImZpZWxkLm5vQXV0b2NvbXBsZXRlXCJcbiAgICAgIFtwLW9wdGlvbmFsXT1cImZpZWxkLm9wdGlvbmFsXCJcbiAgICAgIFtwLXBhdHRlcm5dPVwiZmllbGQucGF0dGVyblwiXG4gICAgICBbcC1yZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICBbcC1yZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICBbcC1zaG93LXJlcXVpcmVkXT1cImZpZWxkLnNob3dSZXF1aXJlZFwiXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VGaWVsZChmaWVsZClcIlxuICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cIm9uQ2hhbmdlRmllbGRNb2RlbChmaWVsZClcIlxuICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICA8L3BvLXBhc3N3b3JkPlxuXG4gICAgPHBvLXVwbG9hZFxuICAgICAgI2NvbXBvbmVudFxuICAgICAgKm5nSWY9XCJjb21wYXJlVG8oZmllbGQuY29udHJvbCwgJ3VwbG9hZCcpXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVbZmllbGQucHJvcGVydHldXCJcbiAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNvbXBvbmVudENsYXNzXCJcbiAgICAgIFtwLWF1dG8tdXBsb2FkXT1cImZpZWxkLmF1dG9VcGxvYWRcIlxuICAgICAgW3AtZGlyZWN0b3J5XT1cImZpZWxkLmRpcmVjdG9yeVwiXG4gICAgICBbcC1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGZpZWxkKVwiXG4gICAgICBbcC1kcmFnLWRyb3BdPVwiZmllbGQuZHJhZ0Ryb3BcIlxuICAgICAgW3AtZHJhZy1kcm9wLWhlaWdodF09XCJmaWVsZC5kcmFnRHJvcEhlaWdodFwiXG4gICAgICBbcC1yZXN0cmljdGlvbnNdPVwiZmllbGQucmVzdHJpY3Rpb25zXCJcbiAgICAgIFtwLWZvcm0tZmllbGRdPVwiZmllbGQuZm9ybUZpZWxkXCJcbiAgICAgIFtwLWhlYWRlcnNdPVwiZmllbGQuaGVhZGVyc1wiXG4gICAgICBbcC1oZWxwXT1cImZpZWxkLmhlbHBcIlxuICAgICAgW3AtaGlkZS1yZXN0cmljdGlvbnMtaW5mb109XCJmaWVsZC5oaWRlUmVzdHJpY3Rpb25zSW5mb1wiXG4gICAgICBbcC1oaWRlLXNlbGVjdC1idXR0b25dPVwiZmllbGQuaGlkZVNlbGVjdEJ1dHRvblwiXG4gICAgICBbcC1oaWRlLXNlbmQtYnV0dG9uXT1cImZpZWxkLmhpZGVTZW5kQnV0dG9uXCJcbiAgICAgIFtwLW11bHRpcGxlXT1cImZpZWxkLm11bHRpcGxlXCJcbiAgICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgIFtwLWxpdGVyYWxzXT1cImZpZWxkLmxpdGVyYWxzXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkLnByb3BlcnR5XCJcbiAgICAgIChwLWVycm9yKT1cImZpZWxkLm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgICAocC1zdWNjZXNzKT1cImZpZWxkLm9uU3VjY2VzcygkZXZlbnQpXCJcbiAgICAgIChwLXVwbG9hZCk9XCJmaWVsZC5vblVwbG9hZCgkZXZlbnQpXCJcbiAgICAgIFtwLW9wdGlvbmFsXT1cImZpZWxkLm9wdGlvbmFsXCJcbiAgICAgIFtwLXJlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtwLXNob3ctcmVxdWlyZWRdPVwiZmllbGQuc2hvd1JlcXVpcmVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKGZpZWxkKVwiXG4gICAgICAocC1jaGFuZ2UtbW9kZWwpPVwib25DaGFuZ2VGaWVsZE1vZGVsKGZpZWxkKVwiXG4gICAgICBbcC11cmxdPVwiZmllbGQudXJsXCJcbiAgICA+XG4gICAgPC9wby11cGxvYWQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwb0NvbnRlbnRDb250YWluZXIgbGV0LWZpZWxkcz5cbiAgPHBvLWR5bmFtaWMtY29udGFpbmVyIFtwLWZpZWxkc109XCJmaWVsZHNcIiBbcC1jb250ZW50XT1cInBvQ29udGVudFwiPjwvcG8tZHluYW1pYy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -40,7 +40,7 @@ export class PoPageDefaultBaseComponent {
40
40
  */
41
41
  set actions(actions) {
42
42
  this._actions = Array.isArray(actions) ? actions : [];
43
- this.visibleActions = this.actions.filter(action => action.visible !== false);
43
+ this.visibleActions = this.getVisibleActions();
44
44
  this.setDropdownActions();
45
45
  }
46
46
  get actions() {
@@ -142,4 +142,4 @@ export class PoPageDefaultBaseComponent {
142
142
  type: Input,
143
143
  args: ['p-subtitle']
144
144
  }] }); })();
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1kZWZhdWx0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UvcG8tcGFnZS1kZWZhdWx0L3BvLXBhZ2UtZGVmYXVsdC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBS3ZGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFFdEYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUc7SUFDMUMsRUFBRSxFQUF5QjtRQUN6QixZQUFZLEVBQUUsZUFBZTtLQUM5QjtJQUNELEVBQUUsRUFBeUI7UUFDekIsWUFBWSxFQUFFLGdCQUFnQjtLQUMvQjtJQUNELEVBQUUsRUFBeUI7UUFDekIsWUFBWSxFQUFFLGNBQWM7S0FDN0I7SUFDRCxFQUFFLEVBQXlCO1FBQ3pCLFlBQVksRUFBRSxpQkFBaUI7S0FDaEM7Q0FDRixDQUFDO0FBRUY7Ozs7R0FJRztBQUVILE1BQU0sT0FBZ0IsMEJBQTBCO0lBQ08sYUFBYSxDQUF5QjtJQUUzRiw2Q0FBNkM7SUFDdEIsVUFBVSxDQUFnQjtJQUVqRCxjQUFjLEdBQXdCLEVBQUUsQ0FBQztJQUUvQixRQUFRLENBQVM7SUFFbkIsUUFBUSxHQUF5QixFQUFFLENBQUM7SUFDcEMsU0FBUyxDQUF3QjtJQUNqQyxNQUFNLENBQVM7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsSUFBd0IsT0FBTyxDQUFDLE9BQTRCO1FBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BZ0NHO0lBQ0gsSUFBeUIsUUFBUSxDQUFDLEtBQTRCO1FBQzVELElBQUksS0FBSyxZQUFZLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUc7Z0JBQ2YsR0FBRyw0QkFBNEIsQ0FBQyxlQUFlLENBQUM7Z0JBQ2hELEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDOUMsR0FBRyxLQUFLO2FBQ1QsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsSUFBc0IsS0FBSyxDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNrQixRQUFRLENBQVM7SUFFdEMsWUFBWSxlQUFrQztRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JELENBQUM7b0ZBckdtQiwwQkFBMEI7NkRBQTFCLDBCQUEwQjsyQkFDbkMsc0JBQXNCOzs7Ozs7aUZBRGIsMEJBQTBCO2NBRC9DLFNBQVM7a0RBRTZDLGFBQWE7a0JBQWpFLFNBQVM7bUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBRzVCLFVBQVU7a0JBQWhDLEtBQUs7bUJBQUMsY0FBYztZQWlCRyxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUEyQ08sUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBaUJHLEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUztZQWdCSyxRQUFRO2tCQUE1QixLQUFLO21CQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgVmlld0NoaWxkLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5jb25zdGFudCc7XG5cbmltcG9ydCB7IFBvQnJlYWRjcnVtYiB9IGZyb20gJy4uLy4uL3BvLWJyZWFkY3J1bWIvcG8tYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlQWN0aW9uIH0gZnJvbSAnLi4vcG8tcGFnZS1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZURlZmF1bHRMaXRlcmFscyB9IGZyb20gJy4vcG8tcGFnZS1kZWZhdWx0LWxpdGVyYWxzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcG8tcGFnZS1jb250ZW50L3BvLXBhZ2UtY29udGVudC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgcG9QYWdlRGVmYXVsdExpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb1BhZ2VEZWZhdWx0TGl0ZXJhbHM+e1xuICAgIG90aGVyQWN0aW9uczogJ090aGVyIGFjdGlvbnMnXG4gIH0sXG4gIGVzOiA8UG9QYWdlRGVmYXVsdExpdGVyYWxzPntcbiAgICBvdGhlckFjdGlvbnM6ICdPdHJhcyBhY2Npb25lcydcbiAgfSxcbiAgcHQ6IDxQb1BhZ2VEZWZhdWx0TGl0ZXJhbHM+e1xuICAgIG90aGVyQWN0aW9uczogJ091dHJhcyBhw6fDtWVzJ1xuICB9LFxuICBydTogPFBvUGFnZURlZmF1bHRMaXRlcmFscz57XG4gICAgb3RoZXJBY3Rpb25zOiAn0JTRgNGD0LPQuNC1INC00LXQudGB0YLQstC40Y8nXG4gIH1cbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIGBwby1wYWdlLWRlZmF1bHRgIMOpIHV0aWxpemFkbyBjb21vIG8gY29udGFpbmVyIHByaW5jaXBhbCBwYXJhIGFzIHRlbGFzIHNlbSB1bSB0ZW1wbGF0ZSBkZWZpbmlkby5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9QYWdlRGVmYXVsdEJhc2VDb21wb25lbnQge1xuICBAVmlld0NoaWxkKFBvUGFnZUNvbnRlbnRDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHBvUGFnZUNvbnRlbnQ6IFBvUGFnZUNvbnRlbnRDb21wb25lbnQ7XG5cbiAgLyoqIE9iamV0byBjb20gcHJvcHJpZWRhZGVzIGRvIGJyZWFkY3J1bWIuICovXG4gIEBJbnB1dCgncC1icmVhZGNydW1iJykgYnJlYWRjcnVtYj86IFBvQnJlYWRjcnVtYjtcblxuICB2aXNpYmxlQWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPiA9IFtdO1xuXG4gIHByb3RlY3RlZCBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2FjdGlvbnM/OiBBcnJheTxQb1BhZ2VBY3Rpb24+ID0gW107XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1BhZ2VEZWZhdWx0TGl0ZXJhbHM7XG4gIHByaXZhdGUgX3RpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTmVzdGEgcHJvcHJpZWRhZGUgZGV2ZSBzZXIgZGVmaW5pZG8gdW0gYXJyYXkgZGUgb2JqZXRvcyBxdWUgaW1wbGVtZW50YW0gYSBpbnRlcmZhY2UgYFBvUGFnZUFjdGlvbmAuXG4gICAqL1xuICBASW5wdXQoJ3AtYWN0aW9ucycpIHNldCBhY3Rpb25zKGFjdGlvbnM6IEFycmF5PFBvUGFnZUFjdGlvbj4pIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gQXJyYXkuaXNBcnJheShhY3Rpb25zKSA/IGFjdGlvbnMgOiBbXTtcbiAgICB0aGlzLnZpc2libGVBY3Rpb25zID0gdGhpcy5hY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4gYWN0aW9uLnZpc2libGUgIT09IGZhbHNlKTtcbiAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICB9XG5cbiAgZ2V0IGFjdGlvbnMoKTogQXJyYXk8UG9QYWdlQWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tcGFnZS1kZWZhdWx0YC5cbiAgICpcbiAgICogRXhpc3RlbSBkdWFzIG1hbmVpcmFzIGRlIGN1c3RvbWl6YXIgbyBjb21wb25lbnRlLCBwYXNzYW5kbyB1bSBvYmpldG8gY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpczpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlRGVmYXVsdExpdGVyYWxzID0ge1xuICAgKiAgICBvdGhlckFjdGlvbnM6ICdNYWlzIGHDp8O1ZXMnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogT3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlRGVmYXVsdExpdGVyYWxzID0ge1xuICAgKiAgICBvdGhlckFjdGlvbnM6ICdBw6fDtWVzIGRhIHDDoWdpbmEnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1wYWdlLWRlZmF1bHRcbiAgICogICBbcC1saXRlcmFsc109XCJjdXN0b21MaXRlcmFsc1wiPlxuICAgKiA8L3BvLXBhZ2UtZGVmYXVsdD5cbiAgICogYGBgXG4gICAqXG4gICAqID4gTyB2YWxvciBwYWRyw6NvIHNlcsOhIHRyYWR1emlkbyBkZSBhY29yZG8gY29tIG8gaWRpb21hIGNvbmZpZ3VyYWRvIG5vIFtgUG9JMThuU2VydmljZWBdKC9kb2N1bWVudGF0aW9uL3BvLWkxOG4pIG91ICpicm93c2VyKi5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9QYWdlRGVmYXVsdExpdGVyYWxzKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICEodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0ge1xuICAgICAgICAuLi5wb1BhZ2VEZWZhdWx0TGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvUGFnZURlZmF1bHRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0sXG4gICAgICAgIC4uLnZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvUGFnZURlZmF1bHRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1BhZ2VEZWZhdWx0TGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqIFTDrXR1bG8gZGEgcMOhZ2luYS4gKi9cbiAgQElucHV0KCdwLXRpdGxlJykgc2V0IHRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90aXRsZSA9IHRpdGxlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wb1BhZ2VDb250ZW50LnJlY2FsY3VsYXRlSGVhZGVyU2l6ZSgpKTtcbiAgfVxuXG4gIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTdWJ0aXR1bG8gZG8gSGVhZGVyIGRhIHDDoWdpbmFcbiAgICovXG4gIEBJbnB1dCgncC1zdWJ0aXRsZScpIHN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLy8gU2V0YSBhIGxpc3RhIGRlIGHDp8O1ZXMgbm8gZHJvcGRvd24uXG4gIGFic3RyYWN0IHNldERyb3Bkb3duQWN0aW9ucygpO1xufVxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1kZWZhdWx0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UvcG8tcGFnZS1kZWZhdWx0L3BvLXBhZ2UtZGVmYXVsdC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBS3ZGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFFdEYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUc7SUFDMUMsRUFBRSxFQUF5QjtRQUN6QixZQUFZLEVBQUUsZUFBZTtLQUM5QjtJQUNELEVBQUUsRUFBeUI7UUFDekIsWUFBWSxFQUFFLGdCQUFnQjtLQUMvQjtJQUNELEVBQUUsRUFBeUI7UUFDekIsWUFBWSxFQUFFLGNBQWM7S0FDN0I7SUFDRCxFQUFFLEVBQXlCO1FBQ3pCLFlBQVksRUFBRSxpQkFBaUI7S0FDaEM7Q0FDRixDQUFDO0FBRUY7Ozs7R0FJRztBQUVILE1BQU0sT0FBZ0IsMEJBQTBCO0lBQ08sYUFBYSxDQUF5QjtJQUUzRiw2Q0FBNkM7SUFDdEIsVUFBVSxDQUFnQjtJQUVqRCxjQUFjLEdBQXdCLEVBQUUsQ0FBQztJQUUvQixRQUFRLENBQVM7SUFFbkIsUUFBUSxHQUF5QixFQUFFLENBQUM7SUFDcEMsU0FBUyxDQUF3QjtJQUNqQyxNQUFNLENBQVM7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsSUFBd0IsT0FBTyxDQUFDLE9BQTRCO1FBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQ0c7SUFDSCxJQUF5QixRQUFRLENBQUMsS0FBNEI7UUFDNUQsSUFBSSxLQUFLLFlBQVksTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRztnQkFDZixHQUFHLDRCQUE0QixDQUFDLGVBQWUsQ0FBQztnQkFDaEQsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUM5QyxHQUFHLEtBQUs7YUFDVCxDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUFzQixLQUFLLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ2tCLFFBQVEsQ0FBUztJQUV0QyxZQUFZLGVBQWtDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDckQsQ0FBQztvRkF0R21CLDBCQUEwQjs2REFBMUIsMEJBQTBCOzJCQUNuQyxzQkFBc0I7Ozs7OztpRkFEYiwwQkFBMEI7Y0FEL0MsU0FBUztrREFFNkMsYUFBYTtrQkFBakUsU0FBUzttQkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFHNUIsVUFBVTtrQkFBaEMsS0FBSzttQkFBQyxjQUFjO1lBaUJHLE9BQU87a0JBQTlCLEtBQUs7bUJBQUMsV0FBVztZQTRDTyxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUFpQkcsS0FBSztrQkFBMUIsS0FBSzttQkFBQyxTQUFTO1lBZ0JLLFFBQVE7a0JBQTVCLEtBQUs7bUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBWaWV3Q2hpbGQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBwb0xvY2FsZURlZmF1bHQgfSBmcm9tICcuLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLmNvbnN0YW50JztcblxuaW1wb3J0IHsgUG9CcmVhZGNydW1iIH0gZnJvbSAnLi4vLi4vcG8tYnJlYWRjcnVtYi9wby1icmVhZGNydW1iLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VBY3Rpb24gfSBmcm9tICcuLi9wby1wYWdlLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlRGVmYXVsdExpdGVyYWxzIH0gZnJvbSAnLi9wby1wYWdlLWRlZmF1bHQtbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9wby1wYWdlLWNvbnRlbnQvcG8tcGFnZS1jb250ZW50LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBwb1BhZ2VEZWZhdWx0TGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjogPFBvUGFnZURlZmF1bHRMaXRlcmFscz57XG4gICAgb3RoZXJBY3Rpb25zOiAnT3RoZXIgYWN0aW9ucydcbiAgfSxcbiAgZXM6IDxQb1BhZ2VEZWZhdWx0TGl0ZXJhbHM+e1xuICAgIG90aGVyQWN0aW9uczogJ090cmFzIGFjY2lvbmVzJ1xuICB9LFxuICBwdDogPFBvUGFnZURlZmF1bHRMaXRlcmFscz57XG4gICAgb3RoZXJBY3Rpb25zOiAnT3V0cmFzIGHDp8O1ZXMnXG4gIH0sXG4gIHJ1OiA8UG9QYWdlRGVmYXVsdExpdGVyYWxzPntcbiAgICBvdGhlckFjdGlvbnM6ICfQlNGA0YPQs9C40LUg0LTQtdC50YHRgtCy0LjRjydcbiAgfVxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgYHBvLXBhZ2UtZGVmYXVsdGAgw6kgdXRpbGl6YWRvIGNvbW8gbyBjb250YWluZXIgcHJpbmNpcGFsIHBhcmEgYXMgdGVsYXMgc2VtIHVtIHRlbXBsYXRlIGRlZmluaWRvLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1BhZ2VEZWZhdWx0QmFzZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoUG9QYWdlQ29udGVudENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcG9QYWdlQ29udGVudDogUG9QYWdlQ29udGVudENvbXBvbmVudDtcblxuICAvKiogT2JqZXRvIGNvbSBwcm9wcmllZGFkZXMgZG8gYnJlYWRjcnVtYi4gKi9cbiAgQElucHV0KCdwLWJyZWFkY3J1bWInKSBicmVhZGNydW1iPzogUG9CcmVhZGNydW1iO1xuXG4gIHZpc2libGVBY3Rpb25zOiBBcnJheTxQb1BhZ2VBY3Rpb24+ID0gW107XG5cbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfYWN0aW9ucz86IEFycmF5PFBvUGFnZUFjdGlvbj4gPSBbXTtcbiAgcHJpdmF0ZSBfbGl0ZXJhbHM6IFBvUGFnZURlZmF1bHRMaXRlcmFscztcbiAgcHJpdmF0ZSBfdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBOZXN0YSBwcm9wcmllZGFkZSBkZXZlIHNlciBkZWZpbmlkbyB1bSBhcnJheSBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBgUG9QYWdlQWN0aW9uYC5cbiAgICovXG4gIEBJbnB1dCgncC1hY3Rpb25zJykgc2V0IGFjdGlvbnMoYWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPikge1xuICAgIHRoaXMuX2FjdGlvbnMgPSBBcnJheS5pc0FycmF5KGFjdGlvbnMpID8gYWN0aW9ucyA6IFtdO1xuXG4gICAgdGhpcy52aXNpYmxlQWN0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZUFjdGlvbnMoKTtcbiAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICB9XG5cbiAgZ2V0IGFjdGlvbnMoKTogQXJyYXk8UG9QYWdlQWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tcGFnZS1kZWZhdWx0YC5cbiAgICpcbiAgICogRXhpc3RlbSBkdWFzIG1hbmVpcmFzIGRlIGN1c3RvbWl6YXIgbyBjb21wb25lbnRlLCBwYXNzYW5kbyB1bSBvYmpldG8gY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpczpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlRGVmYXVsdExpdGVyYWxzID0ge1xuICAgKiAgICBvdGhlckFjdGlvbnM6ICdNYWlzIGHDp8O1ZXMnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogT3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlRGVmYXVsdExpdGVyYWxzID0ge1xuICAgKiAgICBvdGhlckFjdGlvbnM6ICdBw6fDtWVzIGRhIHDDoWdpbmEnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1wYWdlLWRlZmF1bHRcbiAgICogICBbcC1saXRlcmFsc109XCJjdXN0b21MaXRlcmFsc1wiPlxuICAgKiA8L3BvLXBhZ2UtZGVmYXVsdD5cbiAgICogYGBgXG4gICAqXG4gICAqID4gTyB2YWxvciBwYWRyw6NvIHNlcsOhIHRyYWR1emlkbyBkZSBhY29yZG8gY29tIG8gaWRpb21hIGNvbmZpZ3VyYWRvIG5vIFtgUG9JMThuU2VydmljZWBdKC9kb2N1bWVudGF0aW9uL3BvLWkxOG4pIG91ICpicm93c2VyKi5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9QYWdlRGVmYXVsdExpdGVyYWxzKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICEodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0ge1xuICAgICAgICAuLi5wb1BhZ2VEZWZhdWx0TGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvUGFnZURlZmF1bHRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0sXG4gICAgICAgIC4uLnZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvUGFnZURlZmF1bHRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1BhZ2VEZWZhdWx0TGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqIFTDrXR1bG8gZGEgcMOhZ2luYS4gKi9cbiAgQElucHV0KCdwLXRpdGxlJykgc2V0IHRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90aXRsZSA9IHRpdGxlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wb1BhZ2VDb250ZW50LnJlY2FsY3VsYXRlSGVhZGVyU2l6ZSgpKTtcbiAgfVxuXG4gIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTdWJ0aXR1bG8gZG8gSGVhZGVyIGRhIHDDoWdpbmFcbiAgICovXG4gIEBJbnB1dCgncC1zdWJ0aXRsZScpIHN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLy8gU2V0YSBhIGxpc3RhIGRlIGHDp8O1ZXMgbm8gZHJvcGRvd24uXG4gIGFic3RyYWN0IHNldERyb3Bkb3duQWN0aW9ucygpO1xuXG4gIGFic3RyYWN0IGdldFZpc2libGVBY3Rpb25zKCk7XG59XG4iXX0=
@@ -106,6 +106,9 @@ export class PoPageDefaultComponent extends PoPageDefaultBaseComponent {
106
106
  actionIsDisabled(action) {
107
107
  return isTypeof(action.disabled, 'function') ? action.disabled(action) : action.disabled;
108
108
  }
109
+ actionIsVisible(action) {
110
+ return isTypeof(action.visible, 'function') ? action.visible(action) : action.visible;
111
+ }
109
112
  callAction(item) {
110
113
  if (item.url) {
111
114
  isExternalLink(item.url) ? openExternalLink(item.url) : this.router.navigate([item.url]);
@@ -115,6 +118,8 @@ export class PoPageDefaultComponent extends PoPageDefaultBaseComponent {
115
118
  }
116
119
  }
117
120
  hasPageHeader() {
121
+ this.visibleActions = this.getVisibleActions();
122
+ this.setDropdownActions();
118
123
  return !!(this.title ||
119
124
  (this.visibleActions && this.visibleActions.length) ||
120
125
  (this.breadcrumb && this.breadcrumb.items.length));
@@ -124,6 +129,9 @@ export class PoPageDefaultComponent extends PoPageDefaultBaseComponent {
124
129
  this.dropdownActions = this.visibleActions.slice(this.limitPrimaryActions - 1);
125
130
  }
126
131
  }
132
+ getVisibleActions() {
133
+ return this.actions.filter(action => this.actionIsVisible(action) !== false);
134
+ }
127
135
  onResize(event) {
128
136
  const width = event.target.innerWidth;
129
137
  if (width < this.maxWidthMobile) {
@@ -161,4 +169,4 @@ export class PoPageDefaultComponent extends PoPageDefaultBaseComponent {
161
169
  args: [{ selector: 'po-page-default', template: "<po-page>\n <!-- HEADER -->\n <po-page-header *ngIf=\"hasPageHeader()\" [p-breadcrumb]=\"breadcrumb\" [p-title]=\"title\" [p-subtitle]=\"subtitle\">\n <!-- OPERATIONS -->\n <div class=\"po-page-header-actions\">\n <po-dropdown\n *ngIf=\"visibleActions.length > limitPrimaryActions\"\n [p-label]=\"literals.otherActions\"\n [p-actions]=\"dropdownActions\"\n >\n </po-dropdown>\n\n <po-button\n *ngIf=\"visibleActions.length === 3 && visibleActions[2] && !isMobile\"\n [p-danger]=\"visibleActions[2].type === 'danger'\"\n [p-disabled]=\"actionIsDisabled(visibleActions[2])\"\n [p-label]=\"visibleActions[2].label\"\n (p-click)=\"callAction(visibleActions[2])\"\n >\n </po-button>\n\n <po-button\n *ngIf=\"visibleActions[1] && (visibleActions.length === 2 || !isMobile)\"\n [p-disabled]=\"actionIsDisabled(visibleActions[1])\"\n [p-label]=\"visibleActions[1].label\"\n [p-danger]=\"visibleActions[1].type === 'danger'\"\n (p-click)=\"callAction(visibleActions[1])\"\n >\n </po-button>\n\n <po-button\n *ngIf=\"visibleActions[0]\"\n p-kind=\"primary\"\n [p-danger]=\"visibleActions[0].type === 'danger'\"\n [p-disabled]=\"actionIsDisabled(visibleActions[0])\"\n [p-icon]=\"visibleActions[0].icon\"\n [p-label]=\"visibleActions[0].label\"\n (p-click)=\"callAction(visibleActions[0])\"\n >\n </po-button>\n </div>\n </po-page-header>\n\n <!-- CONTENT -->\n <po-page-content>\n <ng-content></ng-content>\n </po-page-content>\n</po-page>\n" }]
162
170
  }], () => [{ type: i0.ViewContainerRef }, { type: i1.PoLanguageService }, { type: i0.Renderer2 }, { type: i2.Router }], null); })();
163
171
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoPageDefaultComponent, { className: "PoPageDefaultComponent", filePath: "lib/components/po-page/po-page-default/po-page-default.component.ts", lineNumber: 36 }); })();
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1kZWZhdWx0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlL3BvLXBhZ2UtZGVmYXVsdC9wby1wYWdlLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UvcG8tcGFnZS1kZWZhdWx0L3BvLXBhZ2UtZGVmYXVsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBd0QsTUFBTSxlQUFlLENBQUM7QUFLbEgsT0FBTyxFQUFnQixjQUFjLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0lDSHhFLGlDQUtjOzs7SUFIWixzREFBaUMscUNBQUE7Ozs7SUFLbkMsb0NBTUM7SUFEQyxrTUFBVyxlQUFBLHdDQUEwQixDQUFDLEVBQUUsQ0FBQSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFMVixxRUFBZ0QsaUVBQUEsMkNBQUE7Ozs7SUFPbEQsb0NBTUM7SUFEQyxrTUFBVyxlQUFBLHdDQUEwQixDQUFDLEVBQUUsQ0FBQSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFMViw4RUFBa0QsMkNBQUEsd0RBQUE7Ozs7SUFPcEQscUNBUUM7SUFEQyxtTUFBVyxlQUFBLHdDQUEwQixDQUFDLEVBQUUsQ0FBQSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFOVixxRUFBZ0QsaUVBQUEseUNBQUEsMkNBQUE7OztJQS9CdEQseUNBQThHLGFBQUE7SUFHMUcsd0dBS2MsdUZBQUEsdUZBQUEsdUZBQUE7SUE4QmhCLGlCQUFNLEVBQUE7OztJQXRDZ0MsZ0RBQTJCLHlCQUFBLCtC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QUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7Z0ZBMUVVLHNCQUFzQjs2REFBdEIsc0JBQXNCOztZQ25DbkMsK0JBQVM7WUFFUCw2RkF1Q2lCO1lBR2pCLHVDQUFpQjtZQUNmLGtCQUF5QjtZQUMzQixpQkFBa0IsRUFBQTs7WUE1Q0QsY0FBcUI7WUFBckIsMENBQXFCOzs7aUZEaUMzQixzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxpQkFBaUI7O2tGQUdoQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIE9uQ2hhbmdlcywgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2UsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgY2FsbEZ1bmN0aW9uLCBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YsIG9wZW5FeHRlcm5hbExpbmsgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvUGFnZUFjdGlvbiB9IGZyb20gJy4uL3BvLXBhZ2UtYWN0aW9uLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IFBvUGFnZURlZmF1bHRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1wYWdlLWRlZmF1bHQtYmFzZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1BhZ2VEZWZhdWx0QmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtZGVmYXVsdC1iYXNpY1wiIHRpdGxlPVwiUE8gUGFnZSBEZWZhdWx0IEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtYmFzaWMvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtYmFzaWMvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWRlZmF1bHQtbGFic1wiIHRpdGxlPVwiUE8gUGFnZSBEZWZhdWx0IExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1sYWJzL3NhbXBsZS1wby1wYWdlLWRlZmF1bHQtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtbGFicy9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZFwiIHRpdGxlPVwiUE8gUGFnZSBEZWZhdWx0IC0gRGFzaGJvYXJkXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtZGFzaGJvYXJkL3NhbXBsZS1wby1wYWdlLWRlZmF1bHQtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXBhZ2UtZGVmYXVsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1wYWdlLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZURlZmF1bHRDb21wb25lbnQgZXh0ZW5kcyBQb1BhZ2VEZWZhdWx0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG4gIGxpbWl0UHJpbWFyeUFjdGlvbnM6IG51bWJlciA9IDM7XG4gIGRyb3Bkb3duQWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPjtcbiAgaXNNb2JpbGU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBtYXhXaWR0aE1vYmlsZTogbnVtYmVyID0gNDgwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHZpZXdSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcihsYW5ndWFnZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldElzTW9iaWxlKCk7XG4gICAgdGhpcy5zZXREcm9wZG93bkFjdGlvbnMoKTtcblxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy5vblJlc2l6ZShldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wTmFtZTogc3RyaW5nXTogU2ltcGxlQ2hhbmdlIH0pIHtcbiAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICB9XG5cbiAgYWN0aW9uSXNEaXNhYmxlZChhY3Rpb246IGFueSkge1xuICAgIHJldHVybiBpc1R5cGVvZihhY3Rpb24uZGlzYWJsZWQsICdmdW5jdGlvbicpID8gYWN0aW9uLmRpc2FibGVkKGFjdGlvbikgOiBhY3Rpb24uZGlzYWJsZWQ7XG4gIH1cblxuICBjYWxsQWN0aW9uKGl0ZW06IFBvUGFnZUFjdGlvbik6IHZvaWQge1xuICAgIGlmIChpdGVtLnVybCkge1xuICAgICAgaXNFeHRlcm5hbExpbmsoaXRlbS51cmwpID8gb3BlbkV4dGVybmFsTGluayhpdGVtLnVybCkgOiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbS51cmxdKTtcbiAgICB9IGVsc2UgaWYgKGl0ZW0uYWN0aW9uKSB7XG4gICAgICBpdGVtLmFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGhhc1BhZ2VIZWFkZXIoKSB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy50aXRsZSB8fFxuICAgICAgKHRoaXMudmlzaWJsZUFjdGlvbnMgJiYgdGhpcy52aXNpYmxlQWN0aW9ucy5sZW5ndGgpIHx8XG4gICAgICAodGhpcy5icmVhZGNydW1iICYmIHRoaXMuYnJlYWRjcnVtYi5pdGVtcy5sZW5ndGgpXG4gICAgKTtcbiAgfVxuXG4gIHNldERyb3Bkb3duQWN0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aXNpYmxlQWN0aW9ucy5sZW5ndGggPiB0aGlzLmxpbWl0UHJpbWFyeUFjdGlvbnMpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25BY3Rpb25zID0gdGhpcy52aXNpYmxlQWN0aW9ucy5zbGljZSh0aGlzLmxpbWl0UHJpbWFyeUFjdGlvbnMgLSAxKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uUmVzaXplKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHdpZHRoID0gKGV2ZW50LnRhcmdldCBhcyBXaW5kb3cpLmlubmVyV2lkdGg7XG5cbiAgICBpZiAod2lkdGggPCB0aGlzLm1heFdpZHRoTW9iaWxlKSB7XG4gICAgICB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgICAgIHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucyA9IDI7XG4gICAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTW9iaWxlID0gZmFsc2U7XG4gICAgICB0aGlzLmxpbWl0UHJpbWFyeUFjdGlvbnMgPSAzO1xuICAgICAgdGhpcy5zZXREcm9wZG93bkFjdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldElzTW9iaWxlKCk6IHZvaWQge1xuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IHRoaXMubWF4V2lkdGhNb2JpbGUpIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSB0cnVlO1xuICAgICAgdGhpcy5saW1pdFByaW1hcnlBY3Rpb25zID0gMjtcbiAgICB9XG4gIH1cbn1cbiIsIjxwby1wYWdlPlxuICA8IS0tIEhFQURFUiAtLT5cbiAgPHBvLXBhZ2UtaGVhZGVyICpuZ0lmPVwiaGFzUGFnZUhlYWRlcigpXCIgW3AtYnJlYWRjcnVtYl09XCJicmVhZGNydW1iXCIgW3AtdGl0bGVdPVwidGl0bGVcIiBbcC1zdWJ0aXRsZV09XCJzdWJ0aXRsZVwiPlxuICAgIDwhLS0gT1BFUkFUSU9OUyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgPHBvLWRyb3Bkb3duXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gbGltaXRQcmltYXJ5QWN0aW9uc1wiXG4gICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLm90aGVyQWN0aW9uc1wiXG4gICAgICAgIFtwLWFjdGlvbnNdPVwiZHJvcGRvd25BY3Rpb25zXCJcbiAgICAgID5cbiAgICAgIDwvcG8tZHJvcGRvd24+XG5cbiAgICAgIDxwby1idXR0b25cbiAgICAgICAgKm5nSWY9XCJ2aXNpYmxlQWN0aW9ucy5sZW5ndGggPT09IDMgJiYgdmlzaWJsZUFjdGlvbnNbMl0gJiYgIWlzTW9iaWxlXCJcbiAgICAgICAgW3AtZGFuZ2VyXT1cInZpc2libGVBY3Rpb25zWzJdLnR5cGUgPT09ICdkYW5nZXInXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1syXSlcIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1syXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMl0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnNbMV0gJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA9PT0gMiB8fCAhaXNNb2JpbGUpXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1sxXSlcIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1sxXS5sYWJlbFwiXG4gICAgICAgIFtwLWRhbmdlcl09XCJ2aXNpYmxlQWN0aW9uc1sxXS50eXBlID09PSAnZGFuZ2VyJ1wiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMV0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnNbMF1cIlxuICAgICAgICBwLWtpbmQ9XCJwcmltYXJ5XCJcbiAgICAgICAgW3AtZGFuZ2VyXT1cInZpc2libGVBY3Rpb25zWzBdLnR5cGUgPT09ICdkYW5nZXInXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1swXSlcIlxuICAgICAgICBbcC1pY29uXT1cInZpc2libGVBY3Rpb25zWzBdLmljb25cIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1swXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMF0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3BvLXBhZ2UtaGVhZGVyPlxuXG4gIDwhLS0gQ09OVEVOVCAtLT5cbiAgPHBvLXBhZ2UtY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvcG8tcGFnZS1jb250ZW50PlxuPC9wby1wYWdlPlxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1kZWZhdWx0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlL3BvLXBhZ2UtZGVmYXVsdC9wby1wYWdlLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UvcG8tcGFnZS1kZWZhdWx0L3BvLXBhZ2UtZGVmYXVsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBd0QsTUFBTSxlQUFlLENBQUM7QUFLbEgsT0FBTyxFQUFnQixjQUFjLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0lDSHhFLGlDQUtjOzs7SUFIWixzREFBaUMscUNBQUE7Ozs7SUFLbkMsb0NBTUM7SUFEQyxrTUFBVyxlQUFBLHdDQUEwQixDQUFDLEVBQUUsQ0FBQSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFMVixxRUFBZ0QsaUVBQUEsMkNBQUE7Ozs7SUFPbEQsb0NBTUM7SUFEQyxrTUFBVyxlQUFBLHdDQUEwQixDQUFDLEVBQUUsQ0FBQSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFMViw4RUFBa0QsMkNBQUEsd0RBQUE7Ozs7SUFPcEQscUNBUUM7SUFEQyxtTUFBVyxlQUFBLHdDQUEwQixDQUFDLEVBQUUsQ0FBQSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFOVixxRUFBZ0QsaUVBQUEseUNBQUEsMkNBQUE7OztJQS9CdEQseUNBQThHLGFBQUE7SUFHMUcsd0dBS2MsdUZBQUEsdUZBQUEsdUZBQUE7SUE4QmhCLGlCQUFNLEVBQUE7OztJQXRDZ0MsZ0RBQTJCLHlCQUFBLCtC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LGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBWTtRQUMzQixNQUFNLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBaUIsQ0FBQyxVQUFVLENBQUM7UUFFbEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7Z0ZBckZVLHNCQUFzQjs2REFBdEIsc0JBQXNCOztZQ25DbkMsK0JBQVM7WUFFUCw2RkF1Q2lCO1lBR2pCLHVDQUFpQjtZQUNmLGtCQUF5QjtZQUMzQixpQkFBa0IsRUFBQTs7WUE1Q0QsY0FBcUI7WUFBckIsMENBQXFCOzs7aUZEaUMzQixzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxpQkFBaUI7O2tGQUdoQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIE9uQ2hhbmdlcywgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2UsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgY2FsbEZ1bmN0aW9uLCBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YsIG9wZW5FeHRlcm5hbExpbmsgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvUGFnZUFjdGlvbiB9IGZyb20gJy4uL3BvLXBhZ2UtYWN0aW9uLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IFBvUGFnZURlZmF1bHRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1wYWdlLWRlZmF1bHQtYmFzZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1BhZ2VEZWZhdWx0QmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtZGVmYXVsdC1iYXNpY1wiIHRpdGxlPVwiUE8gUGFnZSBEZWZhdWx0IEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtYmFzaWMvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtYmFzaWMvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWRlZmF1bHQtbGFic1wiIHRpdGxlPVwiUE8gUGFnZSBEZWZhdWx0IExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1sYWJzL3NhbXBsZS1wby1wYWdlLWRlZmF1bHQtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtbGFicy9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZFwiIHRpdGxlPVwiUE8gUGFnZSBEZWZhdWx0IC0gRGFzaGJvYXJkXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWRlZmF1bHQtZGFzaGJvYXJkL3NhbXBsZS1wby1wYWdlLWRlZmF1bHQtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXBhZ2UtZGVmYXVsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1wYWdlLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZURlZmF1bHRDb21wb25lbnQgZXh0ZW5kcyBQb1BhZ2VEZWZhdWx0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG4gIGxpbWl0UHJpbWFyeUFjdGlvbnM6IG51bWJlciA9IDM7XG4gIGRyb3Bkb3duQWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPjtcbiAgaXNNb2JpbGU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBtYXhXaWR0aE1vYmlsZTogbnVtYmVyID0gNDgwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHZpZXdSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcihsYW5ndWFnZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldElzTW9iaWxlKCk7XG4gICAgdGhpcy5zZXREcm9wZG93bkFjdGlvbnMoKTtcblxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy5vblJlc2l6ZShldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wTmFtZTogc3RyaW5nXTogU2ltcGxlQ2hhbmdlIH0pIHtcbiAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICB9XG5cbiAgYWN0aW9uSXNEaXNhYmxlZChhY3Rpb246IGFueSkge1xuICAgIHJldHVybiBpc1R5cGVvZihhY3Rpb24uZGlzYWJsZWQsICdmdW5jdGlvbicpID8gYWN0aW9uLmRpc2FibGVkKGFjdGlvbikgOiBhY3Rpb24uZGlzYWJsZWQ7XG4gIH1cblxuICBhY3Rpb25Jc1Zpc2libGUoYWN0aW9uOiBhbnkpIHtcbiAgICByZXR1cm4gaXNUeXBlb2YoYWN0aW9uLnZpc2libGUsICdmdW5jdGlvbicpID8gYWN0aW9uLnZpc2libGUoYWN0aW9uKSA6IGFjdGlvbi52aXNpYmxlO1xuICB9XG5cbiAgY2FsbEFjdGlvbihpdGVtOiBQb1BhZ2VBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoaXRlbS51cmwpIHtcbiAgICAgIGlzRXh0ZXJuYWxMaW5rKGl0ZW0udXJsKSA/IG9wZW5FeHRlcm5hbExpbmsoaXRlbS51cmwpIDogdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0udXJsXSk7XG4gICAgfSBlbHNlIGlmIChpdGVtLmFjdGlvbikge1xuICAgICAgaXRlbS5hY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBoYXNQYWdlSGVhZGVyKCkge1xuICAgIHRoaXMudmlzaWJsZUFjdGlvbnMgPSB0aGlzLmdldFZpc2libGVBY3Rpb25zKCk7XG4gICAgdGhpcy5zZXREcm9wZG93bkFjdGlvbnMoKTtcblxuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMudGl0bGUgfHxcbiAgICAgICh0aGlzLnZpc2libGVBY3Rpb25zICYmIHRoaXMudmlzaWJsZUFjdGlvbnMubGVuZ3RoKSB8fFxuICAgICAgKHRoaXMuYnJlYWRjcnVtYiAmJiB0aGlzLmJyZWFkY3J1bWIuaXRlbXMubGVuZ3RoKVxuICAgICk7XG4gIH1cblxuICBzZXREcm9wZG93bkFjdGlvbnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gdGhpcy5saW1pdFByaW1hcnlBY3Rpb25zKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duQWN0aW9ucyA9IHRoaXMudmlzaWJsZUFjdGlvbnMuc2xpY2UodGhpcy5saW1pdFByaW1hcnlBY3Rpb25zIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VmlzaWJsZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IHRoaXMuYWN0aW9uSXNWaXNpYmxlKGFjdGlvbikgIT09IGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25SZXNpemUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgd2lkdGggPSAoZXZlbnQudGFyZ2V0IGFzIFdpbmRvdykuaW5uZXJXaWR0aDtcblxuICAgIGlmICh3aWR0aCA8IHRoaXMubWF4V2lkdGhNb2JpbGUpIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSB0cnVlO1xuICAgICAgdGhpcy5saW1pdFByaW1hcnlBY3Rpb25zID0gMjtcbiAgICAgIHRoaXMuc2V0RHJvcGRvd25BY3Rpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICAgIHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucyA9IDM7XG4gICAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SXNNb2JpbGUoKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgdGhpcy5tYXhXaWR0aE1vYmlsZSkge1xuICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICB0aGlzLmxpbWl0UHJpbWFyeUFjdGlvbnMgPSAyO1xuICAgIH1cbiAgfVxufVxuIiwiPHBvLXBhZ2U+XG4gIDwhLS0gSEVBREVSIC0tPlxuICA8cG8tcGFnZS1oZWFkZXIgKm5nSWY9XCJoYXNQYWdlSGVhZGVyKClcIiBbcC1icmVhZGNydW1iXT1cImJyZWFkY3J1bWJcIiBbcC10aXRsZV09XCJ0aXRsZVwiIFtwLXN1YnRpdGxlXT1cInN1YnRpdGxlXCI+XG4gICAgPCEtLSBPUEVSQVRJT05TIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWhlYWRlci1hY3Rpb25zXCI+XG4gICAgICA8cG8tZHJvcGRvd25cbiAgICAgICAgKm5nSWY9XCJ2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiBsaW1pdFByaW1hcnlBY3Rpb25zXCJcbiAgICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMub3RoZXJBY3Rpb25zXCJcbiAgICAgICAgW3AtYWN0aW9uc109XCJkcm9wZG93bkFjdGlvbnNcIlxuICAgICAgPlxuICAgICAgPC9wby1kcm9wZG93bj5cblxuICAgICAgPHBvLWJ1dHRvblxuICAgICAgICAqbmdJZj1cInZpc2libGVBY3Rpb25zLmxlbmd0aCA9PT0gMyAmJiB2aXNpYmxlQWN0aW9uc1syXSAmJiAhaXNNb2JpbGVcIlxuICAgICAgICBbcC1kYW5nZXJdPVwidmlzaWJsZUFjdGlvbnNbMl0udHlwZSA9PT0gJ2RhbmdlcidcIlxuICAgICAgICBbcC1kaXNhYmxlZF09XCJhY3Rpb25Jc0Rpc2FibGVkKHZpc2libGVBY3Rpb25zWzJdKVwiXG4gICAgICAgIFtwLWxhYmVsXT1cInZpc2libGVBY3Rpb25zWzJdLmxhYmVsXCJcbiAgICAgICAgKHAtY2xpY2spPVwiY2FsbEFjdGlvbih2aXNpYmxlQWN0aW9uc1syXSlcIlxuICAgICAgPlxuICAgICAgPC9wby1idXR0b24+XG5cbiAgICAgIDxwby1idXR0b25cbiAgICAgICAgKm5nSWY9XCJ2aXNpYmxlQWN0aW9uc1sxXSAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID09PSAyIHx8ICFpc01vYmlsZSlcIlxuICAgICAgICBbcC1kaXNhYmxlZF09XCJhY3Rpb25Jc0Rpc2FibGVkKHZpc2libGVBY3Rpb25zWzFdKVwiXG4gICAgICAgIFtwLWxhYmVsXT1cInZpc2libGVBY3Rpb25zWzFdLmxhYmVsXCJcbiAgICAgICAgW3AtZGFuZ2VyXT1cInZpc2libGVBY3Rpb25zWzFdLnR5cGUgPT09ICdkYW5nZXInXCJcbiAgICAgICAgKHAtY2xpY2spPVwiY2FsbEFjdGlvbih2aXNpYmxlQWN0aW9uc1sxXSlcIlxuICAgICAgPlxuICAgICAgPC9wby1idXR0b24+XG5cbiAgICAgIDxwby1idXR0b25cbiAgICAgICAgKm5nSWY9XCJ2aXNpYmxlQWN0aW9uc1swXVwiXG4gICAgICAgIHAta2luZD1cInByaW1hcnlcIlxuICAgICAgICBbcC1kYW5nZXJdPVwidmlzaWJsZUFjdGlvbnNbMF0udHlwZSA9PT0gJ2RhbmdlcidcIlxuICAgICAgICBbcC1kaXNhYmxlZF09XCJhY3Rpb25Jc0Rpc2FibGVkKHZpc2libGVBY3Rpb25zWzBdKVwiXG4gICAgICAgIFtwLWljb25dPVwidmlzaWJsZUFjdGlvbnNbMF0uaWNvblwiXG4gICAgICAgIFtwLWxhYmVsXT1cInZpc2libGVBY3Rpb25zWzBdLmxhYmVsXCJcbiAgICAgICAgKHAtY2xpY2spPVwiY2FsbEFjdGlvbih2aXNpYmxlQWN0aW9uc1swXSlcIlxuICAgICAgPlxuICAgICAgPC9wby1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvcG8tcGFnZS1oZWFkZXI+XG5cbiAgPCEtLSBDT05URU5UIC0tPlxuICA8cG8tcGFnZS1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9wby1wYWdlLWNvbnRlbnQ+XG48L3BvLXBhZ2U+XG4iXX0=