tnx-shared 5.0.75 → 5.0.77

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 (38) hide show
  1. package/bundles/tnx-shared.umd.js +408 -104
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/classes/form-schema.d.ts +20 -0
  6. package/classes/form-schema.d.ts.map +1 -1
  7. package/classes/public-function.d.ts +1 -1
  8. package/components/address/address.component.d.ts.map +1 -1
  9. package/components/address-new/address-new.component.d.ts +37 -0
  10. package/components/address-new/address-new.component.d.ts.map +1 -0
  11. package/components/address-new/address-new.component.ngfactory.d.ts.map +1 -0
  12. package/components/address-new/address-new.component.scss.shim.ngstyle.d.ts.map +1 -0
  13. package/components/address-new/models/don-vi-hanh-chinh.d.ts +6 -0
  14. package/components/address-new/models/don-vi-hanh-chinh.d.ts.map +1 -0
  15. package/components/address-new/services/address.service.d.ts +8 -0
  16. package/components/address-new/services/address.service.d.ts.map +1 -0
  17. package/components/address-new/services/address.service.ngfactory.d.ts.map +1 -0
  18. package/components/crud/crud-form/crud-form.component.d.ts +2 -2
  19. package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
  20. package/esm2015/classes/form-schema.js +26 -1
  21. package/esm2015/components/address/address.component.js +10 -4
  22. package/esm2015/components/address-new/address-new.component.js +224 -0
  23. package/esm2015/components/address-new/models/don-vi-hanh-chinh.js +8 -0
  24. package/esm2015/components/address-new/services/address.service.js +25 -0
  25. package/esm2015/components/crud/crud-form/crud-form.component.js +11 -3
  26. package/esm2015/components/file-explorer/services/file-explorer.service.js +2 -2
  27. package/esm2015/components/file-explorer/signature-detail/signature-detail.component.js +2 -2
  28. package/esm2015/tnx-shared.js +98 -96
  29. package/esm2015/tnx-shared.module.js +3 -1
  30. package/fesm2015/tnx-shared.js +287 -9
  31. package/fesm2015/tnx-shared.js.map +1 -1
  32. package/package.json +2 -2
  33. package/tnx-shared.d.ts +97 -95
  34. package/tnx-shared.d.ts.map +1 -1
  35. package/tnx-shared.metadata.json +1 -1
  36. package/tnx-shared.module.d.ts +2 -1
  37. package/tnx-shared.module.d.ts.map +1 -1
  38. package/tnx-shared.module.ngfactory.d.ts.map +1 -1
@@ -752,6 +752,31 @@ export class AddressControlSchema extends FormControlBase {
752
752
  }
753
753
  }
754
754
  }
755
+ export class AddressNewControlSchema extends FormControlBase {
756
+ constructor(init) {
757
+ super();
758
+ this.hideNo = false;
759
+ this.hideStreet = false;
760
+ this.hideWard = false;
761
+ this.hideDistrict = false;
762
+ this.requiredNo = true;
763
+ this.requiredStreet = true;
764
+ this.requiredWard = true;
765
+ this.requiredDistrict = true;
766
+ this.requiredProvince = true;
767
+ this.wardToProvince = true;
768
+ this.noWidth = 1;
769
+ this.streetWidth = 3;
770
+ this.wardWidth = 3;
771
+ this.districtWidth = 2;
772
+ this.provinceWidth = 3;
773
+ this.showInBox = false;
774
+ this.hideHolder = true;
775
+ for (const key in init) {
776
+ this[key] = init[key];
777
+ }
778
+ }
779
+ }
755
780
  export class VanBanPickerControlSchema extends FormControlBase {
756
781
  constructor(init) {
757
782
  super();
@@ -1107,4 +1132,4 @@ export var ExportAllMode;
1107
1132
  ExportAllMode[ExportAllMode["ManualGetData"] = 0] = "ManualGetData";
1108
1133
  ExportAllMode[ExportAllMode["AutoGetData"] = 1] = "AutoGetData";
1109
1134
  })(ExportAllMode || (ExportAllMode = {}));
1110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHakgsTUFBTSxPQUFPLFdBQVc7SUFNcEIsWUFBWSxJQUFrQjtRQUQ5QixhQUFRLEdBQWlGLFFBQVEsQ0FBQztRQUU5RixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFHakIsWUFBWSxJQUFlO1FBRjNCLG9HQUFvRztRQUNwRyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBbUZ4QixZQUFZLElBQXNCO1FBakZsQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHakIsaUJBQVksR0FBbUIsRUFBRSxDQUFDO1FBQ2xDLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQW1CLElBQUksYUFBYSxFQUFFLENBQUM7UUFDcEQsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QyxlQUFVLEdBQWdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkcsMEJBQXFCLEdBQUksSUFBSSxDQUFDO1FB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QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDckIsbUVBQWlCLENBQUE7SUFDakIsK0RBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSFcsYUFBYSxLQUFiLGFBQWEsUUFHeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlVHJhbnNmb3JtLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcnVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWxpc3QvY3J1ZC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLWRhdGEvZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1zZWxlY3RlZC9lbnRpdHktcGlja2VyLXNlbGVjdGVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudGl0eVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVEYXRhU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9zZXJ2aWNlcy9maWxlLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlciwgU29ydCB9IGZyb20gJy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VudGl0eS1tZXRhZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFzdGVyRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFRyZWVOb2RlLCBDcnVkRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vLi4vY29tcG9uZW50cy9jcnVkL2NydWQtZm9ybS9jcnVkLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSUNvcnJlY3RvciB9IGZyb20gJy4vYmFzZS9jb3JyZWN0b3JzJztcclxuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4vYmFzZS92YWxpZGF0b3JzJztcclxuaW1wb3J0IHsgRW51bUNvbnRyb2xQaWNrZXJUeXBlLCBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXksIEZvcm1TdGF0ZSwgU2hhcmVkRm9sZGVyVHlwZSB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgV29ya2Zsb3dTZXR0aW5nLCBXb3JrZmxvd1NldHRpbmdOZXcgfSBmcm9tICcuL3dvcmtmbG93LXNjaGVtYSc7XHJcblxyXG5leHBvcnQgY2xhc3MgTW9kZWxTY2hlbWEge1xyXG4gICAgZmllbGQ6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGZ1bGxOYW1lOiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyB8ICdib29sZWFuJyB8ICd0aW1lc3BhbicgPSAnc3RyaW5nJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBNb2RlbFNjaGVtYSkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRCYXNlIHtcclxuICAgIC8vIENvbXBvbmVudCBzdWJzY3JpYmUgLSBLaGkgc3ViY3JpYmUgbeG7mXQgY29tcG9uZW50IHRow6wgYWRkIHbDoG8gYXJyYXkgxJHhu4Mga2hpIGRlc3Ryb3kgdGjDrCB1bnN1YnNjcmliZVxyXG4gICAgY29tcG9uZW50U3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkQmFzZSkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRMaXN0U2V0dGluZyB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgb2JqZWN0TmFtZSA9ICcnO1xyXG4gICAgZW50aXR5S2V5ID0gJ2lkJztcclxuICAgIHNldHRpbmdLZXk/OiBzdHJpbmc7XHJcbiAgICBlbnRpdHlNZXRhZGF0YVNlcnZpY2U/OiBFbnRpdHlNZXRhZGF0YVNlcnZpY2U7XHJcbiAgICBtb2RlbFNjaGVtYXM/OiBNb2RlbFNjaGVtYVtdID0gW107XHJcbiAgICBjb2xzPzogQ29sdW1uU2NoZW1hQmFzZVtdID0gW107XHJcbiAgICBjb2x1bW5TZXR0aW5nPzogQ29sdW1uU2V0dGluZyA9IG5ldyBDb2x1bW5TZXR0aW5nKCk7XHJcbiAgICBwYWdlU2V0dGluZz86IFBhZ2VTZXR0aW5nID0gbmV3IFBhZ2VTZXR0aW5nKCk7XHJcbiAgICBoZWlnaHRUeXBlPzogSGVpZ2h0VHlwZSA9IEhlaWdodFR5cGUuZGVmYXVsdDsgLy8gQ8OzIGN1c3RvbSBjaGnhu4F1IGNhbyBraMO0bmc6IFRoxrDhu51uZyBz4butIGThu6VuZyB0cm9uZyBkaWFsb2dcclxuICAgIGZpeEhlaWdodFR5cGVJbkRpYWxvZz8gPSB0cnVlO1xyXG4gICAgbXVsdGlwbGVDaGVja1doZW5DbGlja1JvdyA9IHRydWU7XHJcbiAgICBjdXN0b21Xb3JrZmxvd0NvZGVUcmluaEt5OiBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkgPSBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkuTUFDX0RJTkg7XHJcbiAgICBzdGlja3lDb2x1bW4gPSBmYWxzZTtcclxuICAgIHRhYmxlTmFtZT86IHN0cmluZztcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XHJcbiAgICByZVNlbGVjdExhc3RJdGVtPyA9IHRydWU7IC8vIFNlbGVjdCBs4bqhaSBpdGVtIGN14buRaSBjw7luZyDEkcOjIGNo4buNbiBj4bunYSBncmlkXHJcbiAgICBmaXJlRXZlbnRXaGVuUmVTZWxlY3Q/ID0gZmFsc2U7XHJcbiAgICBhZHZhbmNlRGF0YT86IGFueSA9IHt9O1xyXG4gICAgd29ya2Zsb3dTZXR0aW5nPzogV29ya2Zsb3dTZXR0aW5nO1xyXG4gICAgd29ya2Zsb3dDb25maWdBZHZhbmNlPzogV29ya2Zsb3dDb25maWdBZHZhbmNlO1xyXG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7IC8vIHRyxrDhu51uZyDEkeG6oWkgZGnhu4duIGNobyBi4bqjbiBnaGkgbMOgbSB0acOqdSDEkeG7gSBoaeG7g24gdGjhu4sgKHBo4bulYyB24bulIGNobyBjw6FjIGThu4tjaCB24bulIGtow6FjIGtoYWkgdGjDoWMpXHJcbiAgICBoYXNDdXN0b21IYW5kbGVDbGlja1JvdyA9IGZhbHNlO1xyXG4gICAgY2hlY2tBbGxvd1RyaW5oS3k6IChyb3dEYXRhKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xyXG4gICAgY2hlY2tQZXJtaXNpb25UcmluaEt5ID0gZmFsc2U7XHJcblxyXG4gICAgc2hvd0VkaXRMaW5rID0gdHJ1ZTtcclxuXHJcbiAgICBoaWRkZW5IZWFkZXIgPSBmYWxzZTtcclxuICAgIGhpZGRlblBhZ2VTZXR0aW5nID0gZmFsc2U7XHJcbiAgICBoaWRkZW5UZXh0UGFnZSA9IGZhbHNlO1xyXG4gICAgaGlkZGVuVG9vbGJhciA9IGZhbHNlO1xyXG4gICAgaGlkZGVuQnV0dG9ucyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuQWR2YW5jZVNlYXJjaCA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2F2ZVNldHRpbmcgPSBmYWxzZTtcclxuICAgIGhpZGRlblNldHRpbmcgPSBmYWxzZTtcclxuICAgIGhpZGRlblNldHRpbmdQZXJtaXNzaW9uID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSBmYWxzZTtcclxuICAgIGhpZGRlblNldHRpbmdXb3JrZmxvd05ldyA9IHRydWU7XHJcbiAgICBoaWRkZW5QYWdlVGl0bGUgPSBmYWxzZTtcclxuXHJcbiAgICBoaWRkZW5DaGVja2JveCA9IGZhbHNlO1xyXG4gICAgaGlkZGVuT3JkZXJDb2x1bW4gPSBmYWxzZTtcclxuICAgIGhpZGRlbldvcmtmbG93Q29sdW1uID0gZmFsc2U7XHJcbiAgICBoaWRkZW5GdW5jdGlvbkNvbHVtbiA9IGZhbHNlO1xyXG4gICAgaGlkZGVuUmVmcmVzaCA9IGZhbHNlO1xyXG4gICAgaGlkZGVuRmlsdGVyUm93ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcclxuICAgIHVzZUJhc2VUcmluaEt5ID0gdHJ1ZTtcclxuICAgIGhpZGRlbldvcmtmbG93Q29yZVN0YXR1cyA9IHRydWU7XHJcbiAgICByZXF1aXJlZFZhbkJhbkRpQWZ0ZXJUcmluaEt5ID0gZmFsc2U7XHJcblxyXG4gICAgZ3JvdXBDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xyXG5cclxuICAgIHNob3dFeHBvcnRBbGwgPSBmYWxzZTtcclxuICAgIGV4cG9ydEFsbE1vZGVsOiBFeHBvcnRBbGxNb2RlID0gRXhwb3J0QWxsTW9kZS5BdXRvR2V0RGF0YTtcclxuICAgIGV4cG9ydEl0ZW1zTW9kZTogRXhwb3J0SXRlbXNNb2RlID0gRXhwb3J0SXRlbXNNb2RlLkZyb21IdG1sO1xyXG5cclxuICAgIGVuYWJsZVZlcnNpb24gPSBmYWxzZTtcclxuICAgIHNob3dWZXJzaW9uQnV0dG9uID0gZmFsc2U7XHJcbiAgICB2ZXJzaW9uTW9kZWw/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICBzaG93SGlzdG9yeSA9IGZhbHNlO1xyXG4gICAgaGlzdG9yeT86IGFueTtcclxuXHJcbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XHJcbiAgICBjb2xvckZpbHRlclRhYmxlPzogUm93Q29sb3JPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZyA9IG5ldyBDcnVkRm9ybVNldHRpbmcoKTtcclxuXHJcbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZmlsdGVyVGVtcGxhdGVBZHZzPzogRmlsdGVyW107XHJcblxyXG4gICAgZnVuY3Rpb246IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24gPSBuZXcgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbigpO1xyXG5cclxuICAgIHBvcHVwSGVhZGVyPyA9ICcnO1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSgpO1xyXG4gICAgbWFza0NsYXNzPzogc3RyaW5nO1xyXG5cclxuICAgIGdldEN1c3RvbURhdGFUcmluaEt5OiAocm93RGF0YSkgPT4gYW55ID0gKHJvd0RhdGEpID0+ICh7fSk7XHJcbiAgICBnZXRMYWJlbEJ1dHRvblRyaW5oS3k6IChyb3dEYXRhKSA9PiBzdHJpbmcgPSAocm93RGF0YSkgPT4gJ1Ryw6xuaCBrw70nO1xyXG4gICAgY2hlY2tSZWFkeVRvVHJpbmhLeTogKCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0U2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93Q29uZmlnQWR2YW5jZSB7XHJcbiAgICBnZXRXb3JrZmxvd1NldHRpbmc6IChyb3dEYXRhKSA9PiBXb3JrZmxvd1NldHRpbmdOZXc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uIHtcclxuICAgIC8vIEN1c3RvbWl6ZVxyXG4gICAgZ2V0U2VhcmNoQ29udHJvbD86IChmaWVsZDogc3RyaW5nKSA9PiBGb3JtU2NoZW1hQmFzZVtdID0gKGZpZWxkOiBzdHJpbmcpID0+IG51bGw7XHJcbiAgICAvLyBBc3luYyBmdW5jdGlvblxyXG4gICAgbW9kaWZ5QWR2YW5jZVNlYWNoTW9kZWw/OiAoZGF0YTogQWR2YW5jZVNlYXJjaERhdGEsIHNldHRpbmc6IEFkdmFuY2VTZWFyY2hTZXR0aW5nKSA9PiBQcm9taXNlPHZvaWQ+ID0gYXN5bmMgKGRhdGEpID0+IG51bGw7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNvbmFsU2V0dGluZyB7XHJcbiAgICBjb2x1bW5TZXR0aW5nPzogQ29sdW1uU2V0dGluZyA9IG5ldyBDb2x1bW5TZXR0aW5nKCk7XHJcbiAgICBwYWdlU2V0dGluZz86IFBhZ2VTZXR0aW5nID0gbmV3IFBhZ2VTZXR0aW5nKCk7XHJcbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XHJcbiAgICBjb2xvckZpbHRlclRhYmxlPzogUm93Q29sb3JPcHRpb25bXSA9IFtdO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBlcnNvbmFsU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRMaXN0RGF0YSBleHRlbmRzIENydWRCYXNlIHtcclxuICAgIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHJlYWR5ID0gdHJ1ZTtcclxuICAgIGRhdGFTb3VyY2U/OiBhbnlbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRJdGVtcz86IGFueVtdID0gW107XHJcbiAgICBzZWxlY3RlZEl0ZW0/OiBhbnk7XHJcbiAgICBzZWxlY3RlZEl0ZW1MYXN0PzogYW55O1xyXG4gICAgc2VsZWN0ZWRJZD86IG51bWJlcjtcclxuICAgIHRvdGFsID0gMDtcclxuICAgIGl0ZW1EYXRhPzogYW55O1xyXG4gICAgYWR2YW5jZURhdGE6IGFueSA9IHt9O1xyXG5cclxuICAgIGV4cGFuZGVkUm93S2V5cz86IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0RGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5TWVkYXRhRGF0YVNldHRpbmcge1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eU1lZGF0YURhdGFTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm93Q29sb3JPcHRpb24ge1xyXG4gICAgZmlsdGVyVmFsdWUgPSAnJztcclxuICAgIGNvbXBhcmVUeXBlID0gJyc7XHJcbiAgICBjb2xvciA9ICcnO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJvd0NvbG9yT3B0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnZVNldHRpbmcge1xyXG4gICAgcGFnZSA9IDE7XHJcbiAgICBwYWdlU2l6ZSA9IDE1O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBhZ2VTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZyB7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gICAgc29ydERpcj86IC0xIHwgMCB8IDEgfCAyID0gLTE7XHJcbiAgICBncm91cEZpZWxkID0gJyc7XHJcbiAgICBkZXRhaWxzPzogQ29sdW1uU2V0dGluZ0RldGFpbFtdID0gW107XHJcbiAgICBjb2x1bW5SZW9yZGVyP1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nRGV0YWlsIHtcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgY29sdW1uQ29kZT86IHN0cmluZztcclxuICAgIGNvbHVtbk5hbWU/OiBzdHJpbmc7XHJcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcclxuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1EYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgc3VibWl0dGluZz8gPSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogVHLhuqFuZyB0aMOhaSBj4bunYSBmb3JtIMSRYW5nIMSRxrDhu6NjIG3hu586IEzDoCBmb3JtIHRow6ptIG3hu5tpLCBoYXkgZm9ybSBz4butYSwgaGF5IGZvcm0geMOzYVxyXG4gICAgICovXHJcbiAgICBmb3JtU3RhdGU/OiBGb3JtU3RhdGUgPSBGb3JtU3RhdGUuQUREO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtRGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XHJcbiAgICAvLyBDdXN0b21pemVcclxuICAgIG1vZGlmeURhdGFBZnRlckdldENhY2hlPzogKGRhdGE6IGFueSkgPT4gdm9pZCA9IChkYXRhOiBhbnkpID0+IG51bGw7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XHJcbiAgICBkaXNhYmxlQ2FjaGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuVHJpbmhLeSA9IHRydWU7XHJcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgYnVpbGRJblNjaGVtYT86IEZvcm1Db250cm9sQmFzZVtdID0gW107XHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xyXG4gICAgZmllbGREcm9wZG93bj86IHsgW2tleTogc3RyaW5nXTogRHJvcGRvd25Db250cm9sU2NoZW1hIH0gPSB7fTtcclxuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWEgfSA9IHt9O1xyXG4gICAgZGlzcGxheUZpZWxkPzogc3RyaW5nIHwgKChpdGVtKSA9PiBzdHJpbmcpO1xyXG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XHJcbiAgICBmaWx0ZXJDaGVja0V4aXN0QnlWZXJzaW9uPzogRmlsdGVyW107XHJcbiAgICBkZWZhdWx0RmlsdGVyQ2hlY2tFeGlzdD86IEZpbHRlcltdIHwgKCgpID0+IEZpbHRlcltdKTtcclxuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcclxuICAgIGVudGl0eU1ldGFkYXRhRGF0YT86IENydWRGb3JtRGF0YTtcclxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZztcclxuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XHJcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VTZWFyY2hEYXRhIGV4dGVuZHMgQ3J1ZEZvcm1EYXRhIHtcclxuICAgIGluaXREYXRhPzogYW55ID0ge307XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaERhdGEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VTZWFyY2hTZXR0aW5nIGV4dGVuZHMgQ3J1ZEZvcm1TZXR0aW5nIHtcclxuICAgIGZpZWxkS2V5ID0gJ19rJztcclxuICAgIGVudGl0eVBlcm1pc3Npb25TY2hlbWE/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xyXG4gICAga2VlcEluaXRTZWFyY2hEYXRhTm90TnVsbCA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaFNldHRpbmcpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjaGVtYUJhc2Uge1xyXG4gICAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZztcclxuICAgIHR5cGU/OiAnYm9vbGVhbicgfCAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyA9ICdzdHJpbmcnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTY2hlbWFCYXNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUJhc2UgZXh0ZW5kcyBTY2hlbWFCYXNlIHtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgZnVsbExhYmVsPzogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgICBzaG93TGFiZWw/ID0gdHJ1ZTtcclxuICAgIGdXaWR0aD8gPSAxMjtcclxuICAgIG1kV2lkdGg/ID0gNjtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG4gICAgY2xhc3M/ID0gJyc7XHJcbiAgICBzdHlsZT86IGFueSA9IHt9O1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgaGlkZGVuPyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuQ2hlY2s/OiAocm9vdE1vZGVsOiBhbnksIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGUpID0+IGJvb2xlYW47XHJcbiAgICBoaWRkZW5PblZpZXc/ID0gZmFsc2U7XHJcbiAgICB2aXNpYmxlSW5MaXN0PyA9IHRydWU7XHJcbiAgICBvcGVyYXRvcj86IE9wZXJhdG9yO1xyXG4gICAgZ3JvdXBDb2RlPyA9ICcnO1xyXG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gICAgZmllbGRBbGlhcz8gPSAnJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtU2NoZW1hQmFzZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgY29udHJvbHM6IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBzaG93SW5Cb3g/ID0gdHJ1ZTtcclxuICAgIGJveFN0eWxlPzogYW55O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbnRhaW5lclNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcclxuICAgIC8vIFVybCDEkeG7gyBs4bqleSBk4buvIGxp4buHdSAqKiogS0jDlE5HIFPhu6wgROG7pE5HIFRST05HIEPDgUMgQ0FTRSBQSOG7lCBCSeG6vk4sIENI4buIIFPhu6wgROG7pE5HIMSQ4buQSSBW4buaSSBGT1JNIEtI4bqiTyBTw4FUICoqKlxyXG4gICAgc2VydmljZVVyaT8gPSAnJztcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcclxuICAgIGRhdGFTb3VyY2U/OiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGlzU2VydmVyTG9hZD8gPSBmYWxzZTtcclxuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XHJcblxyXG4gICAgaXNUcmVlPyA9IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/ID0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuXHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD8gPSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPyA9ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxyXG4gICAgYWZ0ZXJHZXREYXRhPzogRnVuY3Rpb247XHJcblxyXG4gICAgZnVuY1NldERlZmF1bHRWYWx1ZT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/ID0gJ3ZhbHVlJzsgLy8gVHLGsOG7nW5nIHPhu60gZOG7pW5nIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IGzDoG0ga2jDs2EgdOG7qyBi4bqjbmcgY2hhIGPhu6dhIGl0ZW0gZHJvcCBkb3duIMSRxrDhu6NjIGNo4buNblxyXG5cclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMYWJlbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcclxuICAgIGZvcj8gPSAnJztcclxuICAgIGlzSHRtbD8gPSBmYWxzZTtcclxuICAgIG1kV2lkdGg/ID0gMTI7XHJcbiAgICBpbmRleExhYmVsPzogbnVtYmVyO1xyXG4gICAgdGV4dD8gPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRpdGxlU2NoZW1hIGV4dGVuZHMgTGFiZWxTY2hlbWEge1xyXG4gICAgY2xhc3M/ID0gJ3RpdGxlLWdyb3VwIHRleHQtYm9sZCc7XHJcbiAgICBtZFdpZHRoPyA9IDEyO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRpdGxlU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbEJhc2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBfY29tcG9uZW50PzogYW55OyAvLyBDb21wb25lbnQgY+G7p2Egc2NoZW1hIGtoaSBraOG7n2kgdOG6oW9cclxuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWFcclxuICAgIGF1dG9mb2N1cz8gPSBmYWxzZTtcclxuICAgIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10gPSBbXTtcclxuICAgIGNvcnJlY3RvcnM/OiBJQ29ycmVjdG9yW10gPSBbXTtcclxuICAgIHJlcXVpcmVkPyA9IGZhbHNlO1xyXG4gICAgZW5hYmxlQ2FjaGluZz8gPSBmYWxzZTtcclxuICAgIG9uQ2hhbmdlZD86IEZ1bmN0aW9uO1xyXG4gICAgdHJpZ2dlckxvYWRDaGlsZD86IEZ1bmN0aW9uO1xyXG4gICAgaGFzT3BlcmF0b3JDYW5Cbz8gPSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtQ29udHJvbEJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIC8qKiBDb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xyXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXHJcbiAgICBzZXJ2aWNlVXJpPyA9ICcnO1xyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xyXG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xyXG4gICAgZ3JvdXBDb2RlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xyXG5cclxuICAgIGlzU2VydmVyTG9hZD8gPSBmYWxzZTtcclxuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XHJcblxyXG4gICAgaXNUcmVlPyA9IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/ID0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuXHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD8gPSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPyA9ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxyXG4gICAgYmluZGluZ0ZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBwYXJlbnRGaWVsZD86IHN0cmluZzsgLy8gQ29sdW1uIHTGsMahbmcg4bupbmcgdHJvbmcgdGFibGUgc3FsIHNlcnZlci5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/ID0gJ3ZhbHVlJzsgLy8gVHLGsOG7nW5nIHPhu60gZOG7pW5nIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IGzDoG0ga2jDs2EgdOG7qyBi4bqjbmcgY2hhIGPhu6dhIGl0ZW0gZHJvcCBkb3duIMSRxrDhu6NjIGNo4buNblxyXG5cclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZpcmVDYWxsQmFja0luc2lkZT8gPSB0cnVlO1xyXG4gICAgbW9kaWZ5RmlsdGVyPzogRnVuY3Rpb247XHJcblxyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIC8qKiBFbmQgY29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHNlbGVjdEFsbFRleHQ/ID0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXHJcblxyXG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XHJcbiAgICBkYXRhRm9ybWF0PzogJ3RleHQnIHwgJ3Bhc3N3b3JkJyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgICBtaW4/ID0gMDtcclxuICAgIG1heD8gPSA5OTk5OTk5OTtcclxuXHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/ID0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz8gPSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGV4dENvbnRyb2xTY2hlbWFXaXRoU2VydmljZSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcclxuICAgIHBsYWNlaG9sZGVyPyA9ICcnO1xyXG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hc2tDb250cm9sU2NoZW1hIGV4dGVuZHMgVGV4dENvbnRyb2xTY2hlbWEge1xyXG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JyA9ICdpbnQnO1xyXG4gICAgbWluPyA9IDA7XHJcbiAgICBtYXg/ID0gOTk5OTk5OTk5OTtcclxuICAgIHByZWZpeD8gPSAnJztcclxuICAgIHN1ZmZpeD8gPSAnJztcclxuICAgIGRlY2ltYWxQbGFjZXM/ID0gMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBNYXNrQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTnVtYmVyUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgVGV4dENvbnRyb2xTY2hlbWEge1xyXG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JztcclxuICAgIG1pbj8gPSAwO1xyXG4gICAgbWF4PyA9IDk5OTk5OTk5OTk7XHJcbiAgICBwcmVmaXg/ID0gJyc7XHJcbiAgICBzdWZmaXg/ID0gJyc7XHJcbiAgICBkZWNpbWFsUGxhY2VzPyA9IDI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTnVtYmVyUmFuZ2VDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xyXG4gICAgcGFuZWxDbGFzcz8gPSAnJztcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgc2hvd1RpbWU/ID0gZmFsc2U7XHJcbiAgICBzaG93SWNvbj8gPSB0cnVlO1xyXG4gICAgZm9ybWF0PzogJ25vcm1hbCcgfCAnZnJvbU5vdycgPSAnZnJvbU5vdyc7XHJcbiAgICBzaG93T25Gb2N1cz8gPSB0cnVlO1xyXG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xyXG4gICAgbWF4RGF0ZT86IERhdGUgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0ZVRpbWVDb250cm9sU2NoZW1hIHtcclxuICAgIHNob3dJY29uPyA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGVUaW1lQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcclxuXHJcbiAgICAvLyAjUHJvcGVydHkgb3ZlcnJpZGVcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XHJcbiAgICAvLyAjRW5kIHByb3BlcnR5IG92ZXJyaWRlXHJcblxyXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XHJcblxyXG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcclxuICAgIGxpbWl0PyA9IDEwMDA7XHJcbiAgICB0aXRsZT8gPSAnICc7XHJcbiAgICBjb2x1bW5zPzogRW50aXR5UGlja2VyQ29sdW1uW107XHJcbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZGF0YUluaXQ/OiBhbnkgPSB7fTtcclxuICAgIGFkdmFuY2VTZWFyY2hNb2RlbD86IGFueSA9IHt9O1xyXG4gICAgb25TZWFyY2hGb3JtSW5pdGlhbGl6ZWQ/OiBGdW5jdGlvbjtcclxuICAgIG9uRm9ybUV2ZW50PzogRnVuY3Rpb247XHJcbiAgICBvblNlbGVjdEVudGl0eT86IEZ1bmN0aW9uOyAvLyBu4bq/dSBmdW5jdGlvbiBraMOhYyBudWxsIHbDoCByZXR1cm4gdHJ1ZSBz4bq9IGNobyBwaMOpcCBt4bufIGRpYWxvZ1xyXG4gICAgYWZ0ZXJDb250ZW50TGVmdEluaXQ/OiAoY3J1ZExpc3Q6IENydWRMaXN0Q29tcG9uZW50KSA9PiB2b2lkOyAvLyBTYXUga2hpIGPDoWMgdGVtcGxhdGUgY29udGVudCBpbml0XHJcbiAgICBhZnRlckNvbnRlbnRSaWdodEluaXQ/OiAoY3J1ZExpc3Q6IENydWRMaXN0Q29tcG9uZW50KSA9PiB2b2lkOyAvLyBTYXUga2hpIGPDoWMgdGVtcGxhdGUgY29udGVudCBpbml0XHJcbiAgICBhZnRlckdldERhdGE/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcclxuICAgIGFmdGVyR2V0RGF0YVVuUGlja2VkPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJEYXRhQ29tcG9uZW50KSA9PiB2b2lkO1xyXG4gICAgYWZ0ZXJHZXREYXRhUGlja2VkPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJTZWxlY3RlZENvbXBvbmVudCkgPT4gdm9pZDtcclxuXHJcbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgcGx1c1VybCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyIGhheSBraMO0bmcuXHJcbiAgICB1c2VEZWZhdWx0UGx1c2xVcmxJbkxpc3Q/ID0gZmFsc2U7XHJcblxyXG4gICAgLy8gQ8OzIHPhu60gZOG7pW5nIGRlZmF1bHRGaWx0ZXIga2hpIHTDrG0ga2nhur9tIGRhbmggc8OhY2gg4bufIG3DoG4gaMOsbmggY2jDrW5oIEVudGl0eVBpY2tlci5cclxuICAgIHVzZURlZmF1bHRGaWx0ZXJJbkxpc3Q/ID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcclxuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcclxuICAgIG1vZGlmeUluaXRTZWFyY2hEYXRhPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBkYXRhIGPhu6dhIHBo4bqnbiBzZWFyY2gsIHRoxrDhu51uZyDEkeG7gyBzZXQgaW5pdCBkYXRhIGR5bmFtaWMgdGhlbyBuaHUgY+G6p3VcclxuICAgIGNhbGxCYWNrPzogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbiB9O1xyXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIG1vZGlmeUNvbnRyb2w/OiBGdW5jdGlvbjsgLy8gU+G7rSBk4bulbmcgxJHhu4MgbW9kaWZ5IHNjaGVtYSBiYXNlXHJcbiAgICBuZWVkQ2xvbmU/ID0gZmFsc2U7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYSwga2hpIGRhdGFzb3VyY2UgY+G7p2EgbeG7mXQgY+G7mXQgdHLDqm4gbeG7l2kgZMOybmcgbMOgIGtow6FjIG5oYXUgY+G6p24gc2V0IG5lZWRDbG9uZSA9IHRydWVcXFxyXG4gICAgYWZ0ZXJHZXREYXRhRHJvcGRvd24/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEF1dG9Db21wbGV0ZVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXcmFwUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBXcmFwUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDdXN0b21Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFNwYW5Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xyXG4gICAgaXNodG1sPyA9IGZhbHNlO1xyXG4gICAgZWRpdGFibGU/ID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogU3BhbkNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBzb3VyY2VGaWVsZD86IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2xvckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEtleVZhbHVlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogS2V5VmFsdWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD8gPSAxMjtcclxuICAgIGFjY2VwdD86IHN0cmluZztcclxuICAgIG1heEZpbGVTaXplPyA9IDEwMDAwMDAwMDtcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWw/ID0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWw/ID0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeT8gPSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/ID0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xyXG4gICAgbW9kZT86IEZpbGVNYW5hZ2VyTW9kZSB8IEZpbGVVcGxvYWRNb2RlID0gRmlsZU1hbmFnZXJNb2RlLm11bHRpcGxlO1xyXG4gICAgbGF5b3V0PzogRW51bUZpbGVMYXlvdXQgPSBFbnVtRmlsZUxheW91dC5MSVNUO1xyXG4gICAgcmVhZG9ubHk/ID0gZmFsc2U7XHJcbiAgICBzaWdub25seT8gPSBmYWxzZTtcclxuICAgIHVwbG9hZE9ubHk/ID0gZmFsc2U7XHJcbiAgICAvLyBTZXJ2aWNlIGTDuW5nIMSR4buDIGzhuqV5IGRhdGFzb3VyY2UgY+G7p2Egbmhp4buBdSBjb250cm9sIG3hu5l0IGzhuqduLlxyXG4gICAgZmlsZURhdGFTZXJ2aWNlPzogRmlsZURhdGFTZXJ2aWNlO1xyXG5cclxuICAgIC8vIELhu5kgMyBrZXkgxJHhu4MgbOG6pXkgdGjGsCBt4bulYyBn4buRYy5cclxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xyXG4gICAgZW50aXR5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xyXG5cclxuICAgIC8vIFTDqm4gdGjGsCBt4bulYyBn4buRYyBraGkgaGnhu4NuIHRo4buLIHRyw6puIGJyZWFkY3J1bWJzLlxyXG4gICAgcm9vdEZvbGRlck5hbWU/OiBzdHJpbmc7XHJcblxyXG4gICAgLy8gVHLGsOG7nW5nIGjhu6NwIOG7nyB0cm9uZyBmb3JtLCBkw7luZyB0csaw4budbmcgbsOgeSDEkeG7gyBs4bqleVxyXG4gICAgLy8gZW50aXR5S2V5IHThu6sgbW9kZWwuZGF0YSB0aGF5IHbDrCB0cnV54buBbiB2w6BvIGVudGl0eUtleVxyXG4gICAgZW50aXR5S2V5RmllbGQ/ID0gJ2lkJztcclxuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sU2NoZW1hIGV4dGVuZHMgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIHtcclxuICAgIG1vZGU/ID0gRmlsZVVwbG9hZE1vZGUudXNpbmdTZXJ2aWNlRmlsZTtcclxuICAgIG1kV2lkdGg/ID0gNjtcclxuICAgIHNoYXJlZEZvbGRlclR5cGU/OiBTaGFyZWRGb2xkZXJUeXBlID0gU2hhcmVkRm9sZGVyVHlwZS5UZW1wdDtcclxuXHJcbiAgICBoaWRkZW5CdXR0b25zPyA9IGZhbHNlO1xyXG4gICAgZGlzYWJsZWQ/ID0gZmFsc2U7XHJcbiAgICByZWFkb25seT8gPSBmYWxzZTtcclxuICAgIGF1dG9TYXZlZD8gPSB0cnVlO1xyXG5cclxuICAgIGVuYWJsZVNjYW4/ID0gZmFsc2U7XHJcbiAgICBleHRyYWN0WmlwRmlsZT8gPSBmYWxzZTtcclxuICAgIGVuYWJsZURyaXZlRmlsZT8gPSBmYWxzZTtcclxuXHJcbiAgICBzaG93RG93bmxvYWRGaWxlPyA9IHRydWU7XHJcbiAgICBzaG93RGVsZXRlRmlsZT8gPSB0cnVlO1xyXG4gICAgc2hvd1ByaW50RmlsZT8gPSB0cnVlO1xyXG4gICAgbWF4RmlsZVNpemU/ID0gMTAwMDAwMDAwOyAvLyAxMDAgTUJcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWw/ID0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWw/ID0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeT8gPSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/ID0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogU3dpdGNoQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIGhpZGRlbkxhYmVsPyA9IGZhbHNlOyAvLyBTZXQgPSB0cnVlIGNo4bunIHnhur91IGtoaSBkw7luZyB0cm9uZyB0YWJsZSBzY2hlbWEgxJHhu4Mg4bqpbiBsYWJlbCDEkWksIHbDrCBsYWJlbCDEkcOjIGPDsyB0csOqbiB0acOqdSDEkeG7gSBj4buZdFxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrYm94Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcclxuICAgIHNob3dMYWJlbD8gPSBmYWxzZTtcclxuICAgIGJ0Q2xhc3M/ID0gJ3AtYnV0dG9uLXRleHQnO1xyXG4gICAgaWNvbj87XHJcbiAgICBidFN0eWxlPyA9IHsgd2lkdGg6ICdhdXRvJyB9O1xyXG4gICAgb25DbGljaz86IEZ1bmN0aW9uO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEJ1dHRvbkNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcclxuICAgIHRlbXBsYXRlOiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGVtcGxhdGVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcm93cz8gPSA1O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRBcmVhQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xyXG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcclxuICAgIGxpbWl0PyA9IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBuZ8aw4budaSBkw7luZyB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xyXG4gICAgdGl0bGU/ID0gJ0No4buNbiBuZ8aw4budaSBkw7luZyc7XHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XHJcbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcclxuICAgIGxhenlMb2FkT3JnYW5pemF0aW9uPyA9IGZhbHNlO1xyXG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPyA9ICdmdWxsTmFtZU5ldyc7XHJcbiAgICBmaWVsZFBsdXM/ID0gJyc7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XHJcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcclxuICAgIG11bHRpcGxlPyA9IHRydWU7XHJcbiAgICBsaW1pdD8gPSAyMDsgLy8gR2nhu5tpIGjhuqFuIHPhu5EgYuG6o24gZ2hpIHThu5FpIMSRYSDEkcaw4bujYyBwaWNrXHJcbiAgICB0aXRsZT8gPSAnQ2jhu41uIMSRxqFuIHbhu4snO1xyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XHJcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XHJcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XHJcbiAgICBmaWVsZFBsdXM/ID0gJyc7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVXNlclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZmlsdGVyPyA9IHRydWU7XHJcbiAgICBtdWx0aXBsZT8gPSB0cnVlO1xyXG4gICAgcGFyZW50T3JnSWQ/OiBudW1iZXI7XHJcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xyXG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xyXG4gICAgaXNVc2luZ0lkPyA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogT3JnYW5pemF0aW9uUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGZpbHRlcj8gPSB0cnVlO1xyXG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIGlzVXNpbmdJZD8gPSB0cnVlO1xyXG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPyA9IHRydWU7XHJcbiAgICByb290UGFyZW50SWQ/OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgZGlzYWJsZWQ/ID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29DYXVUb0NodWNDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1vZGU/OiAnYmFzaWMnIHwgJ21lZGl1bScgfCAnZnVsbCcgfCAnc2ltcGxlJyA9ICdiYXNpYyc7XHJcbiAgICBoZWlnaHQ/ID0gMjUwO1xyXG4gICAgaW5pdD86IGFueTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFZGl0b3JDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcclxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xyXG4gICAgZGF0YVNvdXJjZT86IGFueSB8IEZ1bmN0aW9uO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGFTb3VyY2VDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XHJcbiAgICBhcHBlbmRUbz8gPSAnYm9keSc7XHJcbiAgICBwYW5lbENsYXNzPyA9ICcnO1xyXG4gICAgcGxhY2Vob2xkZXI/ID0gJ0No4buNbic7XHJcbiAgICBzZWxlY3RlZEl0ZW1zTGFiZWw/ID0gJ8SQw6MgY2jhu41uIHswfSBt4bulYyc7XHJcbiAgICBzZWxlY3RlZEFsbEl0ZW1MYWJlbD8gPSAnxJDDoyBjaOG7jW4gdOG6pXQgY+G6oyc7XHJcbiAgICBzaG93Q2xlYXI/ID0gdHJ1ZTtcclxuICAgIGZpbHRlcj8gPSB0cnVlO1xyXG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XHJcbiAgICBnZW5lcmF0ZVRvb2x0aXA/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/ID0gNTtcclxuICAgIG1heEl0ZW1EaXNwbGF5PyA9IDUwO1xyXG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xyXG4gICAgbmVlZENsb25lPyA9IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXHJcbiAgICB0ZW1wbGF0ZUl0ZW0/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgdGVtcGxhdGVTZWxlY3RlZEl0ZW0/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgcXVpY2tBZGQ/ID0gZmFsc2U7XHJcbiAgICBjb2xzPzogRm9ybVNjaGVtYUJhc2VbXTtcclxuICAgIGluaXREYXRhPzogYW55ID0ge307XHJcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHsgd2lkdGg6IDc1MCwgaGVpZ2h0OiA0MDAgfSk7XHJcblxyXG4gICAgbG9hZEluRmlyc3REaXNwbGF5PyA9IHRydWU7XHJcblxyXG4gICAgYXV0b0dldERhdGE/ID0gdHJ1ZTtcclxuXHJcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XHJcblxyXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD8gPSBmYWxzZTtcclxuICAgIG5vdEluQ3J1ZEZvcm0/ID0gZmFsc2U7XHJcbiAgICBzZWFyY2hNdWx0aXBsZT8gPSB0cnVlO1xyXG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD8gPSBmYWxzZTtcclxuXHJcbiAgICBsb2FkT25Jbml0PyA9IGZhbHNlO1xyXG4gICAgYWxsb3dMb2FkRGF0YVdoZW5QYXJlbnROdWxsPyA9IGZhbHNlO1xyXG5cclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT8gPSB0cnVlO1xyXG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERyb3Bkb3duQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWRkcmVzc0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgaGlkZU5vPyA9IGZhbHNlO1xyXG4gICAgaGlkZVN0cmVldD8gPSBmYWxzZTtcclxuICAgIGhpZGVXYXJkPyA9IGZhbHNlO1xyXG4gICAgaGlkZURpc3RyaWN0PyA9IGZhbHNlO1xyXG4gICAgcmVxdWlyZWRObz8gPSB0cnVlO1xyXG4gICAgcmVxdWlyZWRTdHJlZXQ/ID0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkV2FyZD8gPSB0cnVlO1xyXG4gICAgcmVxdWlyZWREaXN0cmljdD8gPSB0cnVlO1xyXG4gICAgcmVxdWlyZWRQcm92aW5jZT8gPSB0cnVlO1xyXG4gICAgd2FyZFRvUHJvdmluY2U/ID0gdHJ1ZTtcclxuICAgIG5vV2lkdGg/ID0gMTtcclxuICAgIHN0cmVldFdpZHRoPyA9IDM7XHJcbiAgICB3YXJkV2lkdGg/ID0gMztcclxuICAgIGRpc3RyaWN0V2lkdGg/ID0gMjtcclxuICAgIHByb3ZpbmNlV2lkdGg/ID0gMztcclxuICAgIHNob3dJbkJveD8gPSBmYWxzZTtcclxuXHJcbiAgICBoaWRlSG9sZGVyPyA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD8gPSAxMjtcclxuICAgIHVzZVZiRGVuPyA9IHRydWU7XHJcbiAgICB1c2VWYkRpPyA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/ID0gMTI7XHJcbiAgICBzZXJ2aWNlQ29kZT86IHN0cmluZztcclxuICAgIGVudGl0eT86IHN0cmluZztcclxuICAgIGVudGl0eUtleT86IHN0cmluZztcclxuICAgIHN0YXRlPzogYW55ID0ge307XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XHJcbiAgICBtdWx0aXBsZT8gPSBmYWxzZTtcclxuICAgIG1pbkxlbmd0aEZpbHRlcj8gPSAxO1xyXG4gICAgYXBwZW5kVG8/OiBzdHJpbmcgPSAnYm9keSc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIGxheW91dD86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XHJcbiAgICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcclxuICAgIG9uQWRqdXN0ZWRWYWx1ZT86IEZ1bmN0aW9uO1xyXG4gICAgZGlzYWJsZUNoZWNrPzogKCkgPT4gYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIGxheW91dD86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XHJcbiAgICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcclxuICAgIGNsYXNzUGx1cz8gPSAnJztcclxuICAgIGZyZWVUZXh0PyA9ICcnO1xyXG4gICAgcENvbENsYXNzPzogbnVtYmVyO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHJvd1RlbXBsYXRlOiBGb3JtU2NoZW1hQmFzZVtdO1xyXG4gICAgcm93QnV0dG9ucz86IChyb3dEYXRhKSA9PiBNZW51SXRlbVtdO1xyXG4gICAgZm9vdGVyQnV0dG9ucz86IHtcclxuICAgICAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgICAgIGNsYXNzPzogc3RyaW5nO1xyXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgIH1bXTtcclxuICAgIHNob3dOdW1iZXI/ID0gdHJ1ZTtcclxuICAgIHNob3dGdW5jdGlvbj8gPSB0cnVlO1xyXG4gICAgc2hvd0Zvb3Rlcj8gPSB0cnVlO1xyXG4gICAgc2hvd1NhdmU/ID0gZmFsc2U7XHJcbiAgICBzaG93RWRpdD8gPSBmYWxzZTtcclxuICAgIHNob3dEZWxldGU/ID0gdHJ1ZTtcclxuICAgIHNob3dBZGQ/ID0gdHJ1ZTtcclxuICAgIGVuYWJsZVJlb3JkZXJSb3c/ID0gZmFsc2U7XHJcbiAgICBvblJlb3JkZXJlZD86IEZ1bmN0aW9uO1xyXG4gICAgZW5hYmxlQWRkTXVsdGk/ID0gZmFsc2U7XHJcbiAgICBwaWNrZXJDb250cm9sRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBpc1VuaXF1ZT8gPSB0cnVlO1xyXG4gICAgZW5hYmxlUGFnaW5nPyA9IGZhbHNlO1xyXG4gICAgbGltaXQ/ID0gNTA7XHJcbiAgICBpbml0Um93Q291bnQ/ID0gMTtcclxuICAgIG1kV2lkdGg/ID0gMTI7XHJcblxyXG4gICAgb25BZGRpbmc/OiBGdW5jdGlvbjtcclxuICAgIG9uQWRkZWQ/OiBGdW5jdGlvbjtcclxuICAgIG9uU2F2ZT86IEZ1bmN0aW9uO1xyXG4gICAgb25NZXNzYWdlPzogRnVuY3Rpb247XHJcbiAgICBvbkRlbGV0aW5nPzogRnVuY3Rpb247XHJcbiAgICBvbkRlbGV0ZWQ/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtblNjaGVtYUJhc2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIHtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG4gICAgc2hvd0VkaXRMaW5rPyA9IGZhbHNlO1xyXG4gICAgY29sU3Bhbj86IG51bWJlcjtcclxuICAgIGdyb3VwPyA9IGZhbHNlO1xyXG4gICAgdmlzaWJsZT8gPSB0cnVlO1xyXG4gICAgcmVtb3ZlT25Jbml0PyA9IGZhbHNlO1xyXG4gICAgYWxsb3dGaWx0ZXI/ID0gdHJ1ZTtcclxuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcclxuICAgIGNlbGxDbGFzcz86IHN0cmluZztcclxuICAgIGZ1bGxUZXh0U2VhcmNoPyA9IGZhbHNlO1xyXG4gICAgcmF3Q29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcclxuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xyXG5cclxuICAgIGRhdGFUeXBlUmVmRmllbGQ/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIGZvcmNlR2V0RGF0YT8gPSBmYWxzZTtcclxuICAgIGZ1bmNHZXRSZWZEYXRhUm93PzogKHJlZkl0ZW1zKSA9PiB7fTtcclxuICAgIGZ1bmNTZXRWYWx1ZVJvdz86IChyb3dJdGVtLCBkYXRhKSA9PiB2b2lkO1xyXG4gICAgcm93U3Bhbj8gPSAxO1xyXG4gICAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIGNvbnRyb2xUeXBlPzogQ29udHJvbFR5cGUgPSBDb250cm9sVHlwZS50ZXh0Ym94O1xyXG4gICAgdGVtcGxhdGVGaWx0ZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgZmllbGRGaWx0ZXI/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlQ2hlY2tCb3g/ID0gdHJ1ZTtcclxuICAgIC8vIFRo4bupIHThu7EgxrB1IHRpw6puIGdldCByZWYgZGF0YSBj4bunYSBjcnVkLWxpc3RcclxuICAgIC8vIE7hur91IGPDsyB2YWx1ZSBuZ2jEqWEgbMOgIG5o4buvbmcgY+G7mXQgbsOgeSBj4bqnbiBwaOG6o2kgbOG6pXkgZOG7ryBsaeG7h3UgeG9uZyBy4buTaSBt4bubaSDEkeG6v24gY+G7mXQga2jDoWNcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgbWF4V29yZERpc3BsYXk/OiBudW1iZXI7XHJcbiAgICBtYXhMZW5ndGhEaXNwbGF5PzogbnVtYmVyO1xyXG5cclxuICAgIG1kV2lkdGhJblNlYXJjaD8gPSAxMjtcclxuXHJcbiAgICBtaW4/ID0gMDtcclxuICAgIG1heD8gPSA5OTk5OTk7XHJcblxyXG4gICAgc2hvd0NsZWFyPyA9IHRydWU7XHJcbiAgICBtdWx0aXBsZT8gPSBmYWxzZTtcclxuXHJcbiAgICBwaXBlPzogUGlwZVRyYW5zZm9ybTtcclxuICAgIGFzeW5jUGlwZT8gPSB0cnVlO1xyXG4gICAgc29ydD8gPSB0cnVlO1xyXG4gICAgZXh0ZW5kRGF0YT86IGFueSA9IHt9O1xyXG5cclxuICAgIGdlbmVyYXRlZFJlZkNvbHVtbj86IGFueTsgLy8gVE9ETzogTmFtTkggdGjDqm0gdOG6oW0gdGhlbyB5w6p1IGPhuqd1IGPhu6dhIExpbmgsIExpbmggY2hlY2sgbOG6oWkgc2F1XHJcbiAgICBoYXNPcGVyYXRvckNhbkJvPyA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNjaGVtYUJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duT3B0aW9ucyB7XHJcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XHJcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XHJcbiAgICBmaWVsZFRyZWU/ID0gJyc7XHJcbiAgICBzZWxlY3RDaGlsZEl0ZW0/ID0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT8gPSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPyA9ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBmaWVsZFBsdXM/ID0gJyc7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgcGFnZVNpemU/ID0gOTk5OTtcclxuICAgIGlzU2VydmVyTG9hZD8gPSBmYWxzZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25PcHRpb25zKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBSZWZGaWVsZCB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XHJcbiAgICBzZXBhcmF0b3I/ID0gJywgJztcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGZpZWxkUGx1cz8gPSAnJztcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIGRhdGFTb3VyY2U/OiBhbnlbXTtcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG5cclxuICAgIGlzVHJlZT8gPSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/ID0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRSZWZEYXRhUm93PzogKHJlZkl0ZW1zKSA9PiB7fTtcclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmVmRmllbGQpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFByb3BGb3JEcm9wZG93biB7XHJcbiAgICBzZXJ2ZXJGaWx0ZXJVcmk/OiBzdHJpbmc7XHJcbiAgICBsb2FkSW5GaXJzdERpc3BsYXk/ID0gdHJ1ZTtcclxuICAgIGRpc3BsYXlGaWVsZFNlcnZlcj8gPSAndGVuJztcclxuICAgIHZhbHVlRmllbGRTZXJ2ZXI/ID0gJ2lkJztcclxuXHJcbiAgICBkYXRhU291cmNlPzogYW55O1xyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uO1xyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgbW9kaWZ5RmlsdGVyPzogRnVuY3Rpb247XHJcbiAgICBtdWx0aXBsZT8gPSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xyXG4gICAgc2VhcmNoTXVsdGlwbGU/ID0gdHJ1ZTtcclxuICAgIGlzVHJlZT8gPSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHNlbGVjdENoaWxkSXRlbT8gPSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxyXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT8gPSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XHJcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdID0gW107XHJcbiAgICBmaWVsZFBsdXM/ID0gJyc7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPyA9ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/ID0gJ3ZhbHVlJzsgLy8gVHLGsOG7nW5nIHPhu60gZOG7pW5nIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IGzDoG0ga2jDs2EgdOG7qyBi4bqjbmcgY2hhIGPhu6dhIGl0ZW0gZHJvcCBkb3duIMSRxrDhu6NjIGNo4buNblxyXG5cclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFByb3BGb3JEcm9wZG93bikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbHVtbiBleHRlbmRzIENvbHVtblNjaGVtYUJhc2Uge1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZWQ/ID0gZmFsc2U7XHJcbiAgICBpc1NlYXJjaGFibGU/ID0gdHJ1ZTtcclxuICAgIGlzRGlzcGxheT8gPSB0cnVlO1xyXG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XHJcbiAgICB3aWR0aD8gPSAnJztcclxuICAgIG5vdEluRmllbGRzPyA9IGZhbHNlOyAvLyBDw6FjIHRyxrDhu51uZyBk4buvIGxp4buHdSDEkcaw4bujYyB04buVbmcgaOG7o3AgbOG6oWkgaGnhu4NuIHRo4buLIGzDqm4gZ3JpZCBtw6Aga2jDtG5nIHBo4bqjaSBs4bqleSB04burIHRyb25nIHRhYmxlIHJhLlxyXG5cclxuICAgIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5UGlja2VyQ29sdW1uKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRSZWZEYXRhU2NoZW1hIGV4dGVuZHMgUHJvcEZvckRyb3Bkb3duIHtcclxuICAgIGZpZWxkPzogc3RyaW5nO1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogR2V0UmVmRGF0YVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDb25maWcge1xyXG4gICAgdG9vbHRpcFZpZXc/OiBzdHJpbmc7XHJcbiAgICBvblZpZXc/OiBGdW5jdGlvbjtcclxuICAgIGRpc2FibGVSb3dTZWxlY3RXaGVuQ2xpY2tBY3Rpb24/ID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdENvbmZpZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhT3B0aW9uIHtcclxuICAgIGRpc3BsYXlGaWVsZCA9ICd0ZW4nO1xyXG4gICAgc2hvcnREaXNwbGF5RmllbGQgPSAndGVuJztcclxuICAgIGV4cGFuZGVkSWNvbiA9ICdwaSBwaS1mb2xkZXItb3Blbic7XHJcbiAgICBjb2xsYXBzZWRJY29uID0gJ3BpIHBpLWZvbGRlcic7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVHJlZURhdGFPcHRpb24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlbCB7XHJcbiAgICBzaG93RWRpdEZvcm0/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBoZWFkZXI/OiBzdHJpbmcgPSAnJztcclxuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyBtYXhpbWl6ZTogdHJ1ZSB9KVxyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERpYWxvZ01vZGVsKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUG9wdXBTaXplIHtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gICAgbWF4aW1pemU/ID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUG9wdXBTaXplKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhIHtcclxuICAgIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGU7XHJcbiAgICBzb3VyY2VOb2RlPzogQ29udHJvbFRyZWVOb2RlO1xyXG4gICAgc291cmNlRXZlbnQ/OiBhbnk7XHJcbiAgICBldmVudFR5cGU/OiBhbnk7XHJcbiAgICBkYXRhPzogYW55O1xyXG4gICAgcHJpdmF0ZSBfY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgaW5pdD86IHtcclxuICAgICAgICAgICAgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZSxcclxuICAgICAgICAgICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZSxcclxuICAgICAgICAgICAgc291cmNlRXZlbnQ/OiBhbnksXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZT86IGFueSxcclxuICAgICAgICAgICAgZGF0YT86IGFueSxcclxuICAgICAgICAgICAgY3J1ZEZvcm0/OiBDcnVkRm9ybUNvbXBvbmVudFxyXG4gICAgICAgIH1cclxuICAgICkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbW9kZWwoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50TW9kZWwoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50UGF0aCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudE1vZGVsUGF0aDtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJvb3RNb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnJvb3ROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250cm9sKCk6IEZvcm1TY2hlbWFCYXNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5jb250cm9sXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudENvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZvcm1Db250cm9scygpOiBGb3JtU2NoZW1hQmFzZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5mb3JtQ29udHJvbHM7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuICAgIGRhdGUgPSAnZGF0ZScsXHJcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXHJcbiAgICBodG1sID0gJ2h0bWwnLFxyXG4gICAgc3RyaW5nID0gJ3N0cmluZycsXHJcbiAgICBpbnQgPSAnaW50JyxcclxuICAgIGRlY2ltYWwgPSAnZGVjaW1hbCcsXHJcbiAgICBib29sZWFuID0gJ2Jvb2xlYW4nLFxyXG4gICAgZW51bSA9ICdlbnVtJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDb250cm9sVHlwZSB7XHJcbiAgICBkcm9wZG93biA9ICdkcm9wZG93bicsXHJcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXHJcbiAgICBkYXRlID0gJ2RhdGUnLFxyXG4gICAgdGltZSA9ICd0aW1lJyxcclxuICAgIG51bWJlciA9ICdudW1iZXInLFxyXG4gICAgdGV4dGJveCA9ICd0ZXh0Ym94JyxcclxuICAgIGNoZWNrYm94ID0gJ2NoZWNrYm94JyxcclxuICAgIHN3aXRjaCA9ICdzd2l0Y2gnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE9wZXJhdG9yIHtcclxuICAgIGVxdWFsID0gJ2VxJyxcclxuICAgIG5vdEVxdWFsID0gJ25lcScsXHJcbiAgICBncmVhdGVyID0gJ2d0JyxcclxuICAgIGdyZWF0ZXJUaGFuRXF1YWwgPSAnZ3RlJyxcclxuICAgIGxvd2VyID0gJ2x0JyxcclxuICAgIGxvd2VyVGhhbkVxdWFsID0gJ2x0ZScsXHJcblxyXG4gICAgY29udGFpbiA9ICdjb250YWlucycsXHJcbiAgICBub3RDb250YWluID0gJ25jb250YWlucycsXHJcbiAgICBzdGFydFdpdGggPSAnc3RhcnRzd2l0aCcsXHJcbiAgICBub3RTdGFydFdpdGggPSAnbnN0YXJ0c3dpdGgnLFxyXG4gICAgZW5kV2l0aCA9ICdlbmRzd2l0aCcsXHJcbiAgICBub3RFbmRXaXRoID0gJ25lbmRzd2l0aCcsXHJcblxyXG4gICAgaW4gPSAnaW4nLFxyXG4gICAgbm90SW4gPSAnbmluJyxcclxuXHJcbiAgICBpc051bGwgPSAnaXNudWxsJyxcclxuICAgIGlzTm90TnVsbCA9ICdpc25vdG51bGwnLFxyXG5cclxuICAgIGluUm9sZSA9ICdoYXNSb2xlJyxcclxuICAgIG5vdEluUm9sZSA9ICdub3RIYXNSb2xlJyxcclxuICAgIGluQ2F0ZWdvcnkgPSAnaW5DYXRlZ29yeScsXHJcbiAgICBub3RJbkNhdGVnb3J5ID0gJ25vdEluQ2F0ZWdvcnknLFxyXG4gICAgaW5Qb3NpdGlvbiA9ICdpblBvc2l0aW9uJyxcclxuICAgIG5vdEluUG9zaXRpb24gPSAnbm90SW5Qb3NpdGlvbicsXHJcbiAgICBpbkxpc3RVc2VyID0gJ2luTGlzdFVzZXInLFxyXG4gICAgbm90SW5MaXN0VXNlciA9ICdub3RJbkxpc3RVc2VyJyxcclxuICAgIGluTGlzdEdyb3VwID0gJ2luTGlzdEdyb3VwJyxcclxuICAgIG5vdEluTGlzdEdyb3VwID0gJ25vdEluTGlzdEdyb3VwJyxcclxuICAgIGlzQ3VycmVudFVzZXIgPSAnaXNDdXJyZW50VXNlcicsXHJcbiAgICBpc0N1cnJlbnRDYW5CbyA9ICdpc0N1cnJlbnRDYW5CbydcclxufVxyXG5cclxuZXhwb3J0IGVudW0gSGVpZ2h0VHlwZSB7XHJcbiAgICBkZWZhdWx0ID0gMCxcclxuICAgIGR5bmFtaWMgPSAtMSxcclxuICAgIGN1c3RvbSA9IDFcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZU1hbmFnZXJNb2RlIHtcclxuICAgIHNpbmdsZSA9ICdzaW5nbGUnLFxyXG4gICAgbXVsdGlwbGUgPSAnbXVsdGlwbGUnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVVcGxvYWRNb2RlIHtcclxuICAgIHVzaW5nRmlsZUluc3RhbmNlSWQgPSAndXNpbmdGaWxlSW5zdGFuY2VJZCcsXHJcbiAgICB1c2luZ1NlcnZpY2VGaWxlID0gJ3VzaW5nU2VydmljZUZpbGUnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEVudW1GaWxlTGF5b3V0IHtcclxuICAgIFNJTVBMRSA9ICdTSU1QTEUnLFxyXG4gICAgTElTVCA9ICdMSVNUJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBUZXh0QWxpZ24ge1xyXG4gICAgTGVmdCA9IDAsXHJcbiAgICBDZW50ZXIgPSAxLFxyXG4gICAgUmlnaHQgPSAtMVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHBvcnRJdGVtc01vZGUge1xyXG4gICAgRnJvbUh0bWwgPSAwLFxyXG4gICAgTWFudWFsR2V0RGF0YSA9IDEsXHJcbiAgICBBdXRvR2V0RGF0YSA9IDJcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRXhwb3J0QWxsTW9kZSB7XHJcbiAgICBNYW51YWxHZXREYXRhID0gMCxcclxuICAgIEF1dG9HZXREYXRhID0gMVxyXG59XHJcbiJdfQ==
1135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHakgsTUFBTSxPQUFPLFdBQVc7SUFNcEIsWUFBWSxJQUFrQjtRQUQ5QixhQUFRLEdBQWlGLFFBQVEsQ0FBQztRQUU5RixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFHakIsWUFBWSxJQUFlO1FBRjNCLG9HQUFvRztRQUNwRyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBbUZ4QixZQUFZLElBQXNCO1FBakZsQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHakIsaUJBQVksR0FBbUIsRUFBRSxDQUFDO1FBQ2xDLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQW1CLElBQUksYUFBYSxFQUFFLENBQUM7UUFDcEQsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QyxlQUFVLEdBQWdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkcsMEJBQXFCLEdBQUksSUFBSSxDQUFDO1FB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QUFVLENBQUE7QUFDZCxDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLHdDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsNkRBQTJDLENBQUE7SUFDM0MsdURBQXFDLENBQUE7QUFDekMsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN0QixtQ0FBaUIsQ0FBQTtJQUNqQiwrQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIseUNBQVEsQ0FBQTtJQUNSLDZDQUFVLENBQUE7SUFDViw0Q0FBVSxDQUFBO0FBQ2QsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2Qiw2REFBWSxDQUFBO0lBQ1osdUVBQWlCLENBQUE7SUFDakIsbUVBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLG1FQUFpQixDQUFBO0lBQ2pCLCtEQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdXRvY29tcGxldGUtcGlja2VyL2F1dG9jb21wbGV0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3J1ZExpc3RDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NydWQvY3J1ZC1saXN0L2NydWQtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnRpdHlQaWNrZXJEYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1kYXRhL2VudGl0eS1waWNrZXItZGF0YS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnRpdHlQaWNrZXJTZWxlY3RlZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnRpdHlQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXIsIFNvcnQgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1pbmZvJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbnRpdHktbWV0YWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hc3RlckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFzdGVyLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xUcmVlTm9kZSwgQ3J1ZEZvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDb3JyZWN0b3IgfSBmcm9tICcuL2Jhc2UvY29ycmVjdG9ycyc7XHJcbmltcG9ydCB7IElWYWxpZGF0b3IgfSBmcm9tICcuL2Jhc2UvdmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IEVudW1Db250cm9sUGlja2VyVHlwZSwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFdvcmtmbG93U2V0dGluZywgV29ya2Zsb3dTZXR0aW5nTmV3IH0gZnJvbSAnLi93b3JrZmxvdy1zY2hlbWEnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGVsU2NoZW1hIHtcclxuICAgIGZpZWxkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBmdWxsTmFtZTogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGRhdGFUeXBlPzogJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgfCAnYm9vbGVhbicgfCAndGltZXNwYW4nID0gJ3N0cmluZyc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTW9kZWxTY2hlbWEpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkQmFzZSB7XHJcbiAgICAvLyBDb21wb25lbnQgc3Vic2NyaWJlIC0gS2hpIHN1YmNyaWJlIG3hu5l0IGNvbXBvbmVudCB0aMOsIGFkZCB2w6BvIGFycmF5IMSR4buDIGtoaSBkZXN0cm95IHRow6wgdW5zdWJzY3JpYmVcclxuICAgIGNvbXBvbmVudFN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEJhc2UpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkTGlzdFNldHRpbmcge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIG9iamVjdE5hbWUgPSAnJztcclxuICAgIGVudGl0eUtleSA9ICdpZCc7XHJcbiAgICBzZXR0aW5nS2V5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5TWV0YWRhdGFTZXJ2aWNlPzogRW50aXR5TWV0YWRhdGFTZXJ2aWNlO1xyXG4gICAgbW9kZWxTY2hlbWFzPzogTW9kZWxTY2hlbWFbXSA9IFtdO1xyXG4gICAgY29scz86IENvbHVtblNjaGVtYUJhc2VbXSA9IFtdO1xyXG4gICAgY29sdW1uU2V0dGluZz86IENvbHVtblNldHRpbmcgPSBuZXcgQ29sdW1uU2V0dGluZygpO1xyXG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xyXG4gICAgaGVpZ2h0VHlwZT86IEhlaWdodFR5cGUgPSBIZWlnaHRUeXBlLmRlZmF1bHQ7IC8vIEPDsyBjdXN0b20gY2hp4buBdSBjYW8ga2jDtG5nOiBUaMaw4budbmcgc+G7rSBk4bulbmcgdHJvbmcgZGlhbG9nXHJcbiAgICBmaXhIZWlnaHRUeXBlSW5EaWFsb2c/ID0gdHJ1ZTtcclxuICAgIG11bHRpcGxlQ2hlY2tXaGVuQ2xpY2tSb3cgPSB0cnVlO1xyXG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xyXG4gICAgc3RpY2t5Q29sdW1uID0gZmFsc2U7XHJcbiAgICB0YWJsZU5hbWU/OiBzdHJpbmc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgcmVTZWxlY3RMYXN0SXRlbT8gPSB0cnVlOyAvLyBTZWxlY3QgbOG6oWkgaXRlbSBjdeG7kWkgY8O5bmcgxJHDoyBjaOG7jW4gY+G7p2EgZ3JpZFxyXG4gICAgZmlyZUV2ZW50V2hlblJlU2VsZWN0PyA9IGZhbHNlO1xyXG4gICAgYWR2YW5jZURhdGE/OiBhbnkgPSB7fTtcclxuICAgIHdvcmtmbG93U2V0dGluZz86IFdvcmtmbG93U2V0dGluZztcclxuICAgIHdvcmtmbG93Q29uZmlnQWR2YW5jZT86IFdvcmtmbG93Q29uZmlnQWR2YW5jZTtcclxuICAgIGRpc3BsYXlGaWVsZDogc3RyaW5nIHwgKChpdGVtKSA9PiBzdHJpbmcpOyAvLyB0csaw4budbmcgxJHhuqFpIGRp4buHbiBjaG8gYuG6o24gZ2hpIGzDoG0gdGnDqnUgxJHhu4EgaGnhu4NuIHRo4buLIChwaOG7pWMgduG7pSBjaG8gY8OhYyBk4buLY2ggduG7pSBraMOhYyBraGFpIHRow6FjKVxyXG4gICAgaGFzQ3VzdG9tSGFuZGxlQ2xpY2tSb3cgPSBmYWxzZTtcclxuICAgIGNoZWNrQWxsb3dUcmluaEt5OiAocm93RGF0YSkgPT4gUHJvbWlzZTxib29sZWFuPjtcclxuICAgIGNoZWNrUGVybWlzaW9uVHJpbmhLeSA9IGZhbHNlO1xyXG5cclxuICAgIHNob3dFZGl0TGluayA9IHRydWU7XHJcblxyXG4gICAgaGlkZGVuSGVhZGVyID0gZmFsc2U7XHJcbiAgICBoaWRkZW5QYWdlU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuVGV4dFBhZ2UgPSBmYWxzZTtcclxuICAgIGhpZGRlblRvb2xiYXIgPSBmYWxzZTtcclxuICAgIGhpZGRlbkJ1dHRvbnMgPSBmYWxzZTtcclxuICAgIGhpZGRlbkFkdmFuY2VTZWFyY2ggPSBmYWxzZTtcclxuICAgIGhpZGRlblNhdmVTZXR0aW5nID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TZXR0aW5nID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1dvcmtmbG93ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TZXR0aW5nV29ya2Zsb3dOZXcgPSB0cnVlO1xyXG4gICAgaGlkZGVuUGFnZVRpdGxlID0gZmFsc2U7XHJcblxyXG4gICAgaGlkZGVuQ2hlY2tib3ggPSBmYWxzZTtcclxuICAgIGhpZGRlbk9yZGVyQ29sdW1uID0gZmFsc2U7XHJcbiAgICBoaWRkZW5Xb3JrZmxvd0NvbHVtbiA9IGZhbHNlO1xyXG4gICAgaGlkZGVuRnVuY3Rpb25Db2x1bW4gPSBmYWxzZTtcclxuICAgIGhpZGRlblJlZnJlc2ggPSBmYWxzZTtcclxuICAgIGhpZGRlbkZpbHRlclJvdyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuVHJpbmhLeSA9IHRydWU7XHJcbiAgICB1c2VCYXNlVHJpbmhLeSA9IHRydWU7XHJcbiAgICBoaWRkZW5Xb3JrZmxvd0NvcmVTdGF0dXMgPSB0cnVlO1xyXG4gICAgcmVxdWlyZWRWYW5CYW5EaUFmdGVyVHJpbmhLeSA9IGZhbHNlO1xyXG5cclxuICAgIGdyb3VwQ29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcclxuXHJcbiAgICBzaG93RXhwb3J0QWxsID0gZmFsc2U7XHJcbiAgICBleHBvcnRBbGxNb2RlbDogRXhwb3J0QWxsTW9kZSA9IEV4cG9ydEFsbE1vZGUuQXV0b0dldERhdGE7XHJcbiAgICBleHBvcnRJdGVtc01vZGU6IEV4cG9ydEl0ZW1zTW9kZSA9IEV4cG9ydEl0ZW1zTW9kZS5Gcm9tSHRtbDtcclxuXHJcbiAgICBlbmFibGVWZXJzaW9uID0gZmFsc2U7XHJcbiAgICBzaG93VmVyc2lvbkJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgdmVyc2lvbk1vZGVsPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgc2hvd0hpc3RvcnkgPSBmYWxzZTtcclxuICAgIGhpc3Rvcnk/OiBhbnk7XHJcblxyXG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xyXG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcclxuXHJcbiAgICBlbnRpdHlNZXRhZGF0YVNldHRpbmc/OiBDcnVkRm9ybVNldHRpbmcgPSBuZXcgQ3J1ZEZvcm1TZXR0aW5nKCk7XHJcblxyXG4gICAgZmllbGRTZWFyY2hUZXh0Pzogc3RyaW5nW10gPSBbXTtcclxuICAgIGZpbHRlclRlbXBsYXRlQWR2cz86IEZpbHRlcltdO1xyXG5cclxuICAgIGZ1bmN0aW9uOiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uID0gbmV3IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24oKTtcclxuXHJcbiAgICBwb3B1cEhlYWRlcj8gPSAnJztcclxuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoKTtcclxuICAgIG1hc2tDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xyXG4gICAgZ2V0TGFiZWxCdXR0b25UcmluaEt5OiAocm93RGF0YSkgPT4gc3RyaW5nID0gKHJvd0RhdGEpID0+ICdUcsOsbmgga8O9JztcclxuICAgIGNoZWNrUmVhZHlUb1RyaW5oS3k6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdFNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NvbmZpZ0FkdmFuY2Uge1xyXG4gICAgZ2V0V29ya2Zsb3dTZXR0aW5nOiAocm93RGF0YSkgPT4gV29ya2Zsb3dTZXR0aW5nTmV3O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiB7XHJcbiAgICAvLyBDdXN0b21pemVcclxuICAgIGdldFNlYXJjaENvbnRyb2w/OiAoZmllbGQ6IHN0cmluZykgPT4gRm9ybVNjaGVtYUJhc2VbXSA9IChmaWVsZDogc3RyaW5nKSA9PiBudWxsO1xyXG4gICAgLy8gQXN5bmMgZnVuY3Rpb25cclxuICAgIG1vZGlmeUFkdmFuY2VTZWFjaE1vZGVsPzogKGRhdGE6IEFkdmFuY2VTZWFyY2hEYXRhLCBzZXR0aW5nOiBBZHZhbmNlU2VhcmNoU2V0dGluZykgPT4gUHJvbWlzZTx2b2lkPiA9IGFzeW5jIChkYXRhKSA9PiBudWxsO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXJzb25hbFNldHRpbmcge1xyXG4gICAgY29sdW1uU2V0dGluZz86IENvbHVtblNldHRpbmcgPSBuZXcgQ29sdW1uU2V0dGluZygpO1xyXG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xyXG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xyXG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQZXJzb25hbFNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkTGlzdERhdGEgZXh0ZW5kcyBDcnVkQmFzZSB7XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICByZWFkeSA9IHRydWU7XHJcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcclxuICAgIHNlbGVjdGVkSXRlbXM/OiBhbnlbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRJdGVtPzogYW55O1xyXG4gICAgc2VsZWN0ZWRJdGVtTGFzdD86IGFueTtcclxuICAgIHNlbGVjdGVkSWQ/OiBudW1iZXI7XHJcbiAgICB0b3RhbCA9IDA7XHJcbiAgICBpdGVtRGF0YT86IGFueTtcclxuICAgIGFkdmFuY2VEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBleHBhbmRlZFJvd0tleXM/OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdERhdGEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eU1lZGF0YURhdGFTZXR0aW5nIHtcclxuICAgIGRhdGE/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlNZWRhdGFEYXRhU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvd0NvbG9yT3B0aW9uIHtcclxuICAgIGZpbHRlclZhbHVlID0gJyc7XHJcbiAgICBjb21wYXJlVHlwZSA9ICcnO1xyXG4gICAgY29sb3IgPSAnJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSb3dDb2xvck9wdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VTZXR0aW5nIHtcclxuICAgIHBhZ2UgPSAxO1xyXG4gICAgcGFnZVNpemUgPSAxNTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQYWdlU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmcge1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD86IHN0cmluZztcclxuICAgIHNvcnREaXI/OiAtMSB8IDAgfCAxIHwgMiA9IC0xO1xyXG4gICAgZ3JvdXBGaWVsZCA9ICcnO1xyXG4gICAgZGV0YWlscz86IENvbHVtblNldHRpbmdEZXRhaWxbXSA9IFtdO1xyXG4gICAgY29sdW1uUmVvcmRlcj9cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2x1bW5TZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ0RldGFpbCB7XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxuICAgIGNvbHVtbkNvZGU/OiBzdHJpbmc7XHJcbiAgICBjb2x1bW5OYW1lPzogc3RyaW5nO1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRGb3JtRGF0YSBleHRlbmRzIENydWRCYXNlIHtcclxuICAgIGRhdGE/OiBhbnkgPSB7fTtcclxuICAgIHN1Ym1pdHRpbmc/ID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIFRy4bqhbmcgdGjDoWkgY+G7p2EgZm9ybSDEkWFuZyDEkcaw4bujYyBt4bufOiBMw6AgZm9ybSB0aMOqbSBt4bubaSwgaGF5IGZvcm0gc+G7rWEsIGhheSBmb3JtIHjDs2FcclxuICAgICAqL1xyXG4gICAgZm9ybVN0YXRlPzogRm9ybVN0YXRlID0gRm9ybVN0YXRlLkFERDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybURhdGEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRGb3JtQ3VzdG9tRnVuY3Rpb24ge1xyXG4gICAgLy8gQ3VzdG9taXplXHJcbiAgICBtb2RpZnlEYXRhQWZ0ZXJHZXRDYWNoZT86IChkYXRhOiBhbnkpID0+IHZvaWQgPSAoZGF0YTogYW55KSA9PiBudWxsO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkRm9ybVNldHRpbmcge1xyXG4gICAgZGlzYWJsZUNhY2hpbmcgPSBmYWxzZTtcclxuICAgIGhpZGRlblRyaW5oS3kgPSB0cnVlO1xyXG4gICAgc2NoZW1hPzogRm9ybVNjaGVtYUJhc2VbXSA9IFtdO1xyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcclxuICAgIGJ1aWxkSW5TY2hlbWE/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xyXG4gICAgdW5pcXVlRmllbGQ/OiBzdHJpbmdbXSB8IHN0cmluZ1tdW10gPSBbXTtcclxuICAgIGZpZWxkRHJvcGRvd24/OiB7IFtrZXk6IHN0cmluZ106IERyb3Bkb3duQ29udHJvbFNjaGVtYSB9ID0ge307XHJcbiAgICBmaWVsZE5lZWRHZXRSZWY/OiB7IFtrZXk6IHN0cmluZ106IFRleHRDb250cm9sU2NoZW1hIH0gPSB7fTtcclxuICAgIGRpc3BsYXlGaWVsZD86IHN0cmluZyB8ICgoaXRlbSkgPT4gc3RyaW5nKTtcclxuICAgIGZpcnN0Rm9jdXNDb250cm9sPzogc3RyaW5nO1xyXG4gICAgZmlsdGVyQ2hlY2tFeGlzdEJ5VmVyc2lvbj86IEZpbHRlcltdO1xyXG4gICAgZGVmYXVsdEZpbHRlckNoZWNrRXhpc3Q/OiBGaWx0ZXJbXSB8ICgoKSA9PiBGaWx0ZXJbXSk7XHJcbiAgICBjdXN0b21Xb3JrZmxvd0NvZGVUcmluaEt5OiBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkgPSBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkuTUFDX0RJTkg7XHJcbiAgICBlbnRpdHlNZXRhZGF0YURhdGE/OiBDcnVkRm9ybURhdGE7XHJcbiAgICBlbnRpdHlNZXRhZGF0YVNldHRpbmc/OiBDcnVkRm9ybVNldHRpbmc7XHJcbiAgICBmdW5jdGlvbj86IENydWRGb3JtQ3VzdG9tRnVuY3Rpb24gPSBuZXcgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbigpO1xyXG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybVNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBZHZhbmNlU2VhcmNoRGF0YSBleHRlbmRzIENydWRGb3JtRGF0YSB7XHJcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkdmFuY2VTZWFyY2hEYXRhKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBZHZhbmNlU2VhcmNoU2V0dGluZyBleHRlbmRzIENydWRGb3JtU2V0dGluZyB7XHJcbiAgICBmaWVsZEtleSA9ICdfayc7XHJcbiAgICBlbnRpdHlQZXJtaXNzaW9uU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcclxuICAgIGtlZXBJbml0U2VhcmNoRGF0YU5vdE51bGwgPSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkdmFuY2VTZWFyY2hTZXR0aW5nKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFCYXNlIHtcclxuICAgIGZpZWxkPzogc3RyaW5nO1xyXG4gICAgdW5pcXVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgICB0eXBlPzogJ2Jvb2xlYW4nIHwgJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgPSAnc3RyaW5nJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogU2NoZW1hQmFzZSkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlIGV4dGVuZHMgU2NoZW1hQmFzZSB7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGZ1bGxMYWJlbD86IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gICAgc2hvd0xhYmVsPyA9IHRydWU7XHJcbiAgICBnV2lkdGg/ID0gMTI7XHJcbiAgICBtZFdpZHRoPyA9IDY7XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxuICAgIGNsYXNzPyA9ICcnO1xyXG4gICAgc3R5bGU/OiBhbnkgPSB7fTtcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgIGhpZGRlbj8gPSBmYWxzZTtcclxuICAgIGhpZGRlbkNoZWNrPzogKHJvb3RNb2RlbDogYW55LCBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlKSA9PiBib29sZWFuO1xyXG4gICAgaGlkZGVuT25WaWV3PyA9IGZhbHNlO1xyXG4gICAgdmlzaWJsZUluTGlzdD8gPSB0cnVlO1xyXG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcclxuICAgIGdyb3VwQ29kZT8gPSAnJztcclxuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcclxuICAgIGZpZWxkQWxpYXM/ID0gJyc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcclxuICAgIGNvbnRyb2xzOiBGb3JtU2NoZW1hQmFzZVtdO1xyXG4gICAgc2hvd0luQm94PyA9IHRydWU7XHJcbiAgICBib3hTdHlsZT86IGFueTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb250YWluZXJTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICAvLyBVcmwgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgKioqIEtIw5RORyBT4busIEThu6RORyBUUk9ORyBDw4FDIENBU0UgUEjhu5QgQknhur5OLCBDSOG7iCBT4busIEThu6RORyDEkOG7kEkgVuG7mkkgRk9STSBLSOG6ok8gU8OBVCAqKipcclxuICAgIHNlcnZpY2VVcmk/ID0gJyc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XHJcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcclxuXHJcbiAgICBpc1NlcnZlckxvYWQ/ID0gZmFsc2U7XHJcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdO1xyXG5cclxuICAgIGlzVHJlZT8gPSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIHNlbGVjdENoaWxkSXRlbT8gPSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/ID0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz8gPSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBmaWVsZFZhbHVlUGFyZW50PyA9ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cclxuXHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGFiZWxTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBmb3I/ID0gJyc7XHJcbiAgICBpc0h0bWw/ID0gZmFsc2U7XHJcbiAgICBtZFdpZHRoPyA9IDEyO1xyXG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcclxuICAgIHRleHQ/ID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IExhYmVsU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUaXRsZVNjaGVtYSBleHRlbmRzIExhYmVsU2NoZW1hIHtcclxuICAgIGNsYXNzPyA9ICd0aXRsZS1ncm91cCB0ZXh0LWJvbGQnO1xyXG4gICAgbWRXaWR0aD8gPSAxMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUaXRsZVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgX2NvbXBvbmVudD86IGFueTsgLy8gQ29tcG9uZW50IGPhu6dhIHNjaGVtYSBraGkga2jhu59pIHThuqFvXHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZzsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hXHJcbiAgICBhdXRvZm9jdXM/ID0gZmFsc2U7XHJcbiAgICB2YWxpZGF0b3JzPzogSVZhbGlkYXRvcltdID0gW107XHJcbiAgICBjb3JyZWN0b3JzPzogSUNvcnJlY3RvcltdID0gW107XHJcbiAgICByZXF1aXJlZD8gPSBmYWxzZTtcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gZmFsc2U7XHJcbiAgICBvbkNoYW5nZWQ/OiBGdW5jdGlvbjtcclxuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/ID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICAvKiogQ29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cclxuICAgIC8vIFVybCDEkeG7gyBs4bqleSBk4buvIGxp4buHdSAqKiogS0jDlE5HIFPhu6wgROG7pE5HIFRST05HIEPDgUMgQ0FTRSBQSOG7lCBCSeG6vk4sIENI4buIIFPhu6wgROG7pE5HIMSQ4buQSSBW4buaSSBGT1JNIEtI4bqiTyBTw4FUICoqKlxyXG4gICAgc2VydmljZVVyaT8gPSAnJztcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcclxuXHJcbiAgICBpc1NlcnZlckxvYWQ/ID0gZmFsc2U7XHJcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdO1xyXG5cclxuICAgIGlzVHJlZT8gPSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIHNlbGVjdENoaWxkSXRlbT8gPSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/ID0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz8gPSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGJpbmRpbmdGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXHJcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XHJcblxyXG4gICAgcGFyZW50RmllbGQ/OiBzdHJpbmc7IC8vIENvbHVtbiB0xrDGoW5nIOG7qW5nIHRyb25nIHRhYmxlIHNxbCBzZXJ2ZXIuXHJcbiAgICBmaWVsZFZhbHVlUGFyZW50PyA9ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cclxuXHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmaXJlQ2FsbEJhY2tJbnNpZGU/ID0gdHJ1ZTtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICAvKiogRW5kIGNvcHkgdOG7qyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlICovXHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBzZWxlY3RBbGxUZXh0PyA9IGZhbHNlOyAvLyBDaOG7jW4gdOG6pXQgY+G6oyB0ZXh0IGtoaSBmb2N1c1xyXG5cclxuICAgIHBsYWNlaG9sZGVyPyA9ICcnO1xyXG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAncGhvbmUnIHwgJ2ZheCcgfCAnbW9uZXknIHwgJ21vbmV5aW50JyB8ICdhbW91bnQnID0gJ3RleHQnO1xyXG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gICAgbWluPyA9IDA7XHJcbiAgICBtYXg/ID0gOTk5OTk5OTk7XHJcblxyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xyXG4gICAgZ3JvdXBDb2RlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xyXG5cclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPyA9ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBmaWVsZFBsdXM/ID0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGV4dENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcclxuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAncGhvbmUnIHwgJ2ZheCcgfCAnbW9uZXknIHwgJ21vbmV5aW50JyB8ICdhbW91bnQnID0gJ3RleHQnO1xyXG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNYXNrQ29udHJvbFNjaGVtYSBleHRlbmRzIFRleHRDb250cm9sU2NoZW1hIHtcclxuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCcgPSAnaW50JztcclxuICAgIG1pbj8gPSAwO1xyXG4gICAgbWF4PyA9IDk5OTk5OTk5OTk7XHJcbiAgICBwcmVmaXg/ID0gJyc7XHJcbiAgICBzdWZmaXg/ID0gJyc7XHJcbiAgICBkZWNpbWFsUGxhY2VzPyA9IDI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTWFza0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSBleHRlbmRzIFRleHRDb250cm9sU2NoZW1hIHtcclxuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCc7XHJcbiAgICBtaW4/ID0gMDtcclxuICAgIG1heD8gPSA5OTk5OTk5OTk5O1xyXG4gICAgcHJlZml4PyA9ICcnO1xyXG4gICAgc3VmZml4PyA9ICcnO1xyXG4gICAgZGVjaW1hbFBsYWNlcz8gPSAyO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcclxuICAgIHBhbmVsQ2xhc3M/ID0gJyc7XHJcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIHNob3dUaW1lPyA9IGZhbHNlO1xyXG4gICAgc2hvd0ljb24/ID0gdHJ1ZTtcclxuICAgIGZvcm1hdD86ICdub3JtYWwnIHwgJ2Zyb21Ob3cnID0gJ2Zyb21Ob3cnO1xyXG4gICAgc2hvd09uRm9jdXM/ID0gdHJ1ZTtcclxuICAgIG1pbkRhdGU/OiBEYXRlID0gbnVsbDtcclxuICAgIG1heERhdGU/OiBEYXRlID0gbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5zaG93VGltZSA/ICdkZC9NTS95eXl5IGhoOm1tJyA6ICdkZC9NTS95eXl5JztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVJhbmdlQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGVUaW1lQ29udHJvbFNjaGVtYSB7XHJcbiAgICBzaG93SWNvbj8gPSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcblxyXG4gICAgLy8gI1Byb3BlcnR5IG92ZXJyaWRlXHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgLy8gI0VuZCBwcm9wZXJ0eSBvdmVycmlkZVxyXG5cclxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xyXG5cclxuICAgIG11bHRpcGxlPyA9IHRydWU7XHJcbiAgICBsaW1pdD8gPSAxMDAwO1xyXG4gICAgdGl0bGU/ID0gJyAnO1xyXG4gICAgY29sdW1ucz86IEVudGl0eVBpY2tlckNvbHVtbltdO1xyXG4gICAgZmllbGRTZWFyY2hUZXh0Pzogc3RyaW5nW10gPSBbXTtcclxuICAgIGRhdGFJbml0PzogYW55ID0ge307XHJcbiAgICBhZHZhbmNlU2VhcmNoTW9kZWw/OiBhbnkgPSB7fTtcclxuICAgIG9uU2VhcmNoRm9ybUluaXRpYWxpemVkPzogRnVuY3Rpb247XHJcbiAgICBvbkZvcm1FdmVudD86IEZ1bmN0aW9uO1xyXG4gICAgb25TZWxlY3RFbnRpdHk/OiBGdW5jdGlvbjsgLy8gbuG6v3UgZnVuY3Rpb24ga2jDoWMgbnVsbCB2w6AgcmV0dXJuIHRydWUgc+G6vSBjaG8gcGjDqXAgbeG7nyBkaWFsb2dcclxuICAgIGFmdGVyQ29udGVudExlZnRJbml0PzogKGNydWRMaXN0OiBDcnVkTGlzdENvbXBvbmVudCkgPT4gdm9pZDsgLy8gU2F1IGtoaSBjw6FjIHRlbXBsYXRlIGNvbnRlbnQgaW5pdFxyXG4gICAgYWZ0ZXJDb250ZW50UmlnaHRJbml0PzogKGNydWRMaXN0OiBDcnVkTGlzdENvbXBvbmVudCkgPT4gdm9pZDsgLy8gU2F1IGtoaSBjw6FjIHRlbXBsYXRlIGNvbnRlbnQgaW5pdFxyXG4gICAgYWZ0ZXJHZXREYXRhPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBhZnRlckdldERhdGFVblBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCkgPT4gdm9pZDtcclxuICAgIGFmdGVyR2V0RGF0YVBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQpID0+IHZvaWQ7XHJcblxyXG4gICAgLy8gQ8OzIHPhu60gZOG7pW5nIHBsdXNVcmwg4bufIG3DoG4gaMOsbmggY2jDrW5oIEVudGl0eVBpY2tlciBoYXkga2jDtG5nLlxyXG4gICAgdXNlRGVmYXVsdFBsdXNsVXJsSW5MaXN0PyA9IGZhbHNlO1xyXG5cclxuICAgIC8vIEPDsyBz4butIGThu6VuZyBkZWZhdWx0RmlsdGVyIGtoaSB0w6xtIGtp4bq/bSBkYW5oIHPDoWNoIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIuXHJcbiAgICB1c2VEZWZhdWx0RmlsdGVySW5MaXN0PyA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XHJcbiAgICBhcHBlbmRUbz8gPSAnYm9keSc7XHJcbiAgICBtb2RpZnlJbml0U2VhcmNoRGF0YT86IEZ1bmN0aW9uOyAvLyBT4butIGThu6VuZyDEkeG7gyBtb2RpZnkgZGF0YSBj4bunYSBwaOG6p24gc2VhcmNoLCB0aMaw4budbmcgxJHhu4Mgc2V0IGluaXQgZGF0YSBkeW5hbWljIHRoZW8gbmh1IGPhuqd1XHJcbiAgICBjYWxsQmFjaz86IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfTtcclxuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBtb2RpZnlDb250cm9sPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBzY2hlbWEgYmFzZVxyXG4gICAgbmVlZENsb25lPyA9IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXFxcclxuICAgIGFmdGVyR2V0RGF0YURyb3Bkb3duPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3VzdG9tQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTcGFuQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBzb3VyY2VGaWVsZD86IHN0cmluZztcclxuICAgIGlzaHRtbD8gPSBmYWxzZTtcclxuICAgIGVkaXRhYmxlPyA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNwYW5Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEtleVZhbHVlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/ID0gMTI7XHJcbiAgICBhY2NlcHQ/OiBzdHJpbmc7XHJcbiAgICBtYXhGaWxlU2l6ZT8gPSAxMDAwMDAwMDA7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPyA9ICdkdW5nIGzGsOG7o25nIHThu5FpIMSRYSBsw6AgezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBLaMO0bmcgxJHDum5nIMSR4buLbmggZOG6oW5nIGZpbGUsICc7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPyA9ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/ID0gJ1F1w6Egc+G7kSBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPyA9ICd04buRaSDEkWEgezB9IGZpbGUuJztcclxuICAgIG1vZGU/OiBGaWxlTWFuYWdlck1vZGUgfCBGaWxlVXBsb2FkTW9kZSA9IEZpbGVNYW5hZ2VyTW9kZS5tdWx0aXBsZTtcclxuICAgIGxheW91dD86IEVudW1GaWxlTGF5b3V0ID0gRW51bUZpbGVMYXlvdXQuTElTVDtcclxuICAgIHJlYWRvbmx5PyA9IGZhbHNlO1xyXG4gICAgc2lnbm9ubHk/ID0gZmFsc2U7XHJcbiAgICB1cGxvYWRPbmx5PyA9IGZhbHNlO1xyXG4gICAgLy8gU2VydmljZSBkw7luZyDEkeG7gyBs4bqleSBkYXRhc291cmNlIGPhu6dhIG5oaeG7gXUgY29udHJvbCBt4buZdCBs4bqnbi5cclxuICAgIGZpbGVEYXRhU2VydmljZT86IEZpbGVEYXRhU2VydmljZTtcclxuXHJcbiAgICAvLyBC4buZIDMga2V5IMSR4buDIGzhuqV5IHRoxrAgbeG7pWMgZ+G7kWMuXHJcbiAgICBzZXJ2aWNlQ29kZT86IHN0cmluZztcclxuICAgIGVudGl0eT86IHN0cmluZztcclxuICAgIGVudGl0eUtleT86IHN0cmluZztcclxuXHJcbiAgICAvLyBUw6puIHRoxrAgbeG7pWMgZ+G7kWMga2hpIGhp4buDbiB0aOG7iyB0csOqbiBicmVhZGNydW1icy5cclxuICAgIHJvb3RGb2xkZXJOYW1lPzogc3RyaW5nO1xyXG5cclxuICAgIC8vIFRyxrDhu51uZyBo4bujcCDhu58gdHJvbmcgZm9ybSwgZMO5bmcgdHLGsOG7nW5nIG7DoHkgxJHhu4MgbOG6pXlcclxuICAgIC8vIGVudGl0eUtleSB04burIG1vZGVsLmRhdGEgdGhheSB2w6wgdHJ1eeG7gW4gdsOgbyBlbnRpdHlLZXlcclxuICAgIGVudGl0eUtleUZpZWxkPyA9ICdpZCc7XHJcbiAgICBtdWx0aXBsZT8gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSBleHRlbmRzIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICBtb2RlPyA9IEZpbGVVcGxvYWRNb2RlLnVzaW5nU2VydmljZUZpbGU7XHJcbiAgICBtZFdpZHRoPyA9IDY7XHJcbiAgICBzaGFyZWRGb2xkZXJUeXBlPzogU2hhcmVkRm9sZGVyVHlwZSA9IFNoYXJlZEZvbGRlclR5cGUuVGVtcHQ7XHJcblxyXG4gICAgaGlkZGVuQnV0dG9ucz8gPSBmYWxzZTtcclxuICAgIGRpc2FibGVkPyA9IGZhbHNlO1xyXG4gICAgcmVhZG9ubHk/ID0gZmFsc2U7XHJcbiAgICBhdXRvU2F2ZWQ/ID0gdHJ1ZTtcclxuXHJcbiAgICBlbmFibGVTY2FuPyA9IGZhbHNlO1xyXG4gICAgZXh0cmFjdFppcEZpbGU/ID0gZmFsc2U7XHJcbiAgICBlbmFibGVEcml2ZUZpbGU/ID0gZmFsc2U7XHJcblxyXG4gICAgc2hvd0Rvd25sb2FkRmlsZT8gPSB0cnVlO1xyXG4gICAgc2hvd0RlbGV0ZUZpbGU/ID0gdHJ1ZTtcclxuICAgIHNob3dQcmludEZpbGU/ID0gdHJ1ZTtcclxuICAgIG1heEZpbGVTaXplPyA9IDEwMDAwMDAwMDsgLy8gMTAwIE1CXHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPyA9ICdkdW5nIGzGsOG7o25nIHThu5FpIMSRYSBsw6AgezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBLaMO0bmcgxJHDum5nIMSR4buLbmggZOG6oW5nIGZpbGUsICc7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPyA9ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/ID0gJ1F1w6Egc+G7kSBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPyA9ICd04buRaSDEkWEgezB9IGZpbGUuJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmlsZVVwbG9hZENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFN3aXRjaENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XHJcbiAgICBoaWRkZW5MYWJlbD8gPSBmYWxzZTsgLy8gU2V0ID0gdHJ1ZSBjaOG7pyB54bq/dSBraGkgZMO5bmcgdHJvbmcgdGFibGUgc2NoZW1hIMSR4buDIOG6qW4gbGFiZWwgxJFpLCB2w6wgbGFiZWwgxJHDoyBjw7MgdHLDqm4gdGnDqnUgxJHhu4EgY+G7mXRcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja2JveENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBzaG93TGFiZWw/ID0gZmFsc2U7XHJcbiAgICBidENsYXNzPyA9ICdwLWJ1dHRvbi10ZXh0JztcclxuICAgIGljb24/O1xyXG4gICAgYnRTdHlsZT8gPSB7IHdpZHRoOiAnYXV0bycgfTtcclxuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBCdXR0b25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICB0ZW1wbGF0ZTogYW55O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRlbXBsYXRlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHJvd3M/ID0gNTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0QXJlYUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcclxuICAgIG11bHRpcGxlPyA9IHRydWU7XHJcbiAgICBsaW1pdD8gPSAyMDsgLy8gR2nhu5tpIGjhuqFuIHPhu5EgbmfGsOG7nWkgZMO5bmcgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcclxuICAgIHRpdGxlPyA9ICdDaOG7jW4gbmfGsOG7nWkgZMO5bmcnO1xyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XHJcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XHJcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xyXG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XHJcbiAgICBsYXp5TG9hZE9yZ2FuaXphdGlvbj8gPSBmYWxzZTtcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAnZnVsbE5hbWVOZXcnO1xyXG4gICAgZmllbGRQbHVzPyA9ICcnO1xyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xyXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVXNlclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBhcHBlbmRUbz8gPSAnYm9keSc7XHJcbiAgICBtdWx0aXBsZT8gPSB0cnVlO1xyXG4gICAgbGltaXQ/ID0gMjA7IC8vIEdp4bubaSBo4bqhbiBz4buRIGLhuqNuIGdoaSB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xyXG4gICAgdGl0bGU/ID0gJ0No4buNbiDEkcahbiB24buLJztcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xyXG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xyXG4gICAgZmllbGRQbHVzPyA9ICcnO1xyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGZpbHRlcj8gPSB0cnVlO1xyXG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIGlzVXNpbmdJZD8gPSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvQ2F1VG9DaHVjQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBmaWx0ZXI/ID0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPyA9IHRydWU7XHJcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcclxuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XHJcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XHJcbiAgICBpc1VzaW5nSWQ/ID0gdHJ1ZTtcclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT8gPSB0cnVlO1xyXG4gICAgcm9vdFBhcmVudElkPzogc3RyaW5nID0gbnVsbDtcclxuICAgIGRpc2FibGVkPyA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvQ2F1VG9DaHVjQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBtb2RlPzogJ2Jhc2ljJyB8ICdtZWRpdW0nIHwgJ2Z1bGwnIHwgJ3NpbXBsZScgPSAnYmFzaWMnO1xyXG4gICAgaGVpZ2h0PyA9IDI1MDtcclxuICAgIGluaXQ/OiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRWRpdG9yQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XHJcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcclxuICAgIGRhdGFTb3VyY2U/OiBhbnkgfCBGdW5jdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRhU291cmNlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xyXG4gICAgcGFuZWxDbGFzcz8gPSAnJztcclxuICAgIHBsYWNlaG9sZGVyPyA9ICdDaOG7jW4nO1xyXG4gICAgc2VsZWN0ZWRJdGVtc0xhYmVsPyA9ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xyXG4gICAgc2VsZWN0ZWRBbGxJdGVtTGFiZWw/ID0gJ8SQw6MgY2jhu41uIHThuqV0IGPhuqMnO1xyXG4gICAgc2hvd0NsZWFyPyA9IHRydWU7XHJcbiAgICBmaWx0ZXI/ID0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xyXG4gICAgZ2VuZXJhdGVUb29sdGlwPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIG1heFNlbGVjdGVkTGFiZWxzPyA9IDU7XHJcbiAgICBtYXhJdGVtRGlzcGxheT8gPSA1MDtcclxuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcclxuICAgIG5lZWRDbG9uZT8gPSBmYWxzZTsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hLCBraGkgZGF0YXNvdXJjZSBj4bunYSBt4buZdCBj4buZdCB0csOqbiBt4buXaSBkw7JuZyBsw6Aga2jDoWMgbmhhdSBj4bqnbiBzZXQgbmVlZENsb25lID0gdHJ1ZVxyXG4gICAgdGVtcGxhdGVJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIHRlbXBsYXRlU2VsZWN0ZWRJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIHF1aWNrQWRkPyA9IGZhbHNlO1xyXG4gICAgY29scz86IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA3NTAsIGhlaWdodDogNDAwIH0pO1xyXG5cclxuICAgIGxvYWRJbkZpcnN0RGlzcGxheT8gPSB0cnVlO1xyXG5cclxuICAgIGF1dG9HZXREYXRhPyA9IHRydWU7XHJcblxyXG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xyXG5cclxuICAgIGF1dG9EaXNwbGF5Rmlyc3Q/ID0gZmFsc2U7XHJcbiAgICBub3RJbkNydWRGb3JtPyA9IGZhbHNlO1xyXG4gICAgc2VhcmNoTXVsdGlwbGU/ID0gdHJ1ZTtcclxuICAgIGRpc2FibGVEaXNwbGF5RmllbGRTZXJ2ZXJTZWFyY2g/ID0gZmFsc2U7XHJcblxyXG4gICAgbG9hZE9uSW5pdD8gPSBmYWxzZTtcclxuICAgIGFsbG93TG9hZERhdGFXaGVuUGFyZW50TnVsbD8gPSBmYWxzZTtcclxuXHJcbiAgICBkaXNhYmxlZFBhcmVudEl0ZW0/ID0gdHJ1ZTtcclxuICAgIG9uQWRqdXN0ZWRWYWx1ZT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bkNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkZHJlc3NDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGhpZGVObz8gPSBmYWxzZTtcclxuICAgIGhpZGVTdHJlZXQ/ID0gZmFsc2U7XHJcbiAgICBoaWRlV2FyZD8gPSBmYWxzZTtcclxuICAgIGhpZGVEaXN0cmljdD8gPSBmYWxzZTtcclxuICAgIHJlcXVpcmVkTm8/ID0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkU3RyZWV0PyA9IHRydWU7XHJcbiAgICByZXF1aXJlZFdhcmQ/ID0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkRGlzdHJpY3Q/ID0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkUHJvdmluY2U/ID0gdHJ1ZTtcclxuICAgIHdhcmRUb1Byb3ZpbmNlPyA9IHRydWU7XHJcbiAgICBub1dpZHRoPyA9IDE7XHJcbiAgICBzdHJlZXRXaWR0aD8gPSAzO1xyXG4gICAgd2FyZFdpZHRoPyA9IDM7XHJcbiAgICBkaXN0cmljdFdpZHRoPyA9IDI7XHJcbiAgICBwcm92aW5jZVdpZHRoPyA9IDM7XHJcbiAgICBzaG93SW5Cb3g/ID0gZmFsc2U7XHJcblxyXG4gICAgaGlkZUhvbGRlcj8gPSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkZHJlc3NDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzTmV3Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBoaWRlTm8/ID0gZmFsc2U7XHJcbiAgICBoaWRlU3RyZWV0PyA9IGZhbHNlO1xyXG4gICAgaGlkZVdhcmQ/ID0gZmFsc2U7XHJcbiAgICBoaWRlRGlzdHJpY3Q/ID0gZmFsc2U7XHJcbiAgICByZXF1aXJlZE5vPyA9IHRydWU7XHJcbiAgICByZXF1aXJlZFN0cmVldD8gPSB0cnVlO1xyXG4gICAgcmVxdWlyZWRXYXJkPyA9IHRydWU7XHJcbiAgICByZXF1aXJlZERpc3RyaWN0PyA9IHRydWU7XHJcbiAgICByZXF1aXJlZFByb3ZpbmNlPyA9IHRydWU7XHJcbiAgICB3YXJkVG9Qcm92aW5jZT8gPSB0cnVlO1xyXG4gICAgbm9XaWR0aD8gPSAxO1xyXG4gICAgc3RyZWV0V2lkdGg/ID0gMztcclxuICAgIHdhcmRXaWR0aD8gPSAzO1xyXG4gICAgZGlzdHJpY3RXaWR0aD8gPSAyO1xyXG4gICAgcHJvdmluY2VXaWR0aD8gPSAzO1xyXG4gICAgc2hvd0luQm94PyA9IGZhbHNlO1xyXG5cclxuICAgIGhpZGVIb2xkZXI/ID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZGRyZXNzTmV3Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBtZFdpZHRoPyA9IDEyO1xyXG4gICAgdXNlVmJEZW4/ID0gdHJ1ZTtcclxuICAgIHVzZVZiRGk/ID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBWYW5CYW5QaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD8gPSAxMjtcclxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xyXG4gICAgZW50aXR5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xyXG4gICAgc3RhdGU/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XHJcbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcclxuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xyXG4gICAgbWluTGVuZ3RoRmlsdGVyPyA9IDE7XHJcbiAgICBhcHBlbmRUbz86IHN0cmluZyA9ICdib2R5JztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBdXRvQ29tcGxldGVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xyXG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xyXG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcclxuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xyXG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XHJcbiAgICBkaXNhYmxlQ2hlY2s/OiAoKSA9PiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGVja0JveExpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xyXG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcclxuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xyXG4gICAgY2xhc3NQbHVzPyA9ICcnO1xyXG4gICAgZnJlZVRleHQ/ID0gJyc7XHJcbiAgICBwQ29sQ2xhc3M/OiBudW1iZXI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcm93VGVtcGxhdGU6IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICByb3dCdXR0b25zPzogKHJvd0RhdGEpID0+IE1lbnVJdGVtW107XHJcbiAgICBmb290ZXJCdXR0b25zPzoge1xyXG4gICAgICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICAgICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICAgICAgY2xhc3M/OiBzdHJpbmc7XHJcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgfVtdO1xyXG4gICAgc2hvd051bWJlcj8gPSB0cnVlO1xyXG4gICAgc2hvd0Z1bmN0aW9uPyA9IHRydWU7XHJcbiAgICBzaG93Rm9vdGVyPyA9IHRydWU7XHJcbiAgICBzaG93U2F2ZT8gPSBmYWxzZTtcclxuICAgIHNob3dFZGl0PyA9IGZhbHNlO1xyXG4gICAgc2hvd0RlbGV0ZT8gPSB0cnVlO1xyXG4gICAgc2hvd0FkZD8gPSB0cnVlO1xyXG4gICAgZW5hYmxlUmVvcmRlclJvdz8gPSBmYWxzZTtcclxuICAgIG9uUmVvcmRlcmVkPzogRnVuY3Rpb247XHJcbiAgICBlbmFibGVBZGRNdWx0aT8gPSBmYWxzZTtcclxuICAgIHBpY2tlckNvbnRyb2xGaWVsZD86IHN0cmluZztcclxuICAgIGlzVW5pcXVlPyA9IHRydWU7XHJcbiAgICBlbmFibGVQYWdpbmc/ID0gZmFsc2U7XHJcbiAgICBsaW1pdD8gPSA1MDtcclxuICAgIGluaXRSb3dDb3VudD8gPSAxO1xyXG4gICAgbWRXaWR0aD8gPSAxMjtcclxuXHJcbiAgICBvbkFkZGluZz86IEZ1bmN0aW9uO1xyXG4gICAgb25BZGRlZD86IEZ1bmN0aW9uO1xyXG4gICAgb25TYXZlPzogRnVuY3Rpb247XHJcbiAgICBvbk1lc3NhZ2U/OiBGdW5jdGlvbjtcclxuICAgIG9uRGVsZXRpbmc/OiBGdW5jdGlvbjtcclxuICAgIG9uRGVsZXRlZD86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUYWJsZVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2NoZW1hQmFzZSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2Uge1xyXG4gICAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgICBzaG93RWRpdExpbms/ID0gZmFsc2U7XHJcbiAgICBjb2xTcGFuPzogbnVtYmVyO1xyXG4gICAgZ3JvdXA/ID0gZmFsc2U7XHJcbiAgICB2aXNpYmxlPyA9IHRydWU7XHJcbiAgICByZW1vdmVPbkluaXQ/ID0gZmFsc2U7XHJcbiAgICBhbGxvd0ZpbHRlcj8gPSB0cnVlO1xyXG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xyXG4gICAgY2VsbENsYXNzPzogc3RyaW5nO1xyXG4gICAgZnVsbFRleHRTZWFyY2g/ID0gZmFsc2U7XHJcbiAgICByYXdDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xyXG4gICAgc2VwYXJhdG9yPyA9ICcsICc7XHJcblxyXG4gICAgZGF0YVR5cGVSZWZGaWVsZD86IERhdGFUeXBlIHwgc3RyaW5nO1xyXG4gICAgZm9yY2VHZXREYXRhPyA9IGZhbHNlO1xyXG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICByb3dTcGFuPyA9IDE7XHJcbiAgICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xyXG4gICAgY29udHJvbFR5cGU/OiBDb250cm9sVHlwZSA9IENvbnRyb2xUeXBlLnRleHRib3g7XHJcbiAgICB0ZW1wbGF0ZUZpbHRlcj86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBmaWVsZEZpbHRlcj86IHN0cmluZztcclxuICAgIGRpc2FibGVDaGVja0JveD8gPSB0cnVlO1xyXG4gICAgLy8gVGjhu6kgdOG7sSDGsHUgdGnDqm4gZ2V0IHJlZiBkYXRhIGPhu6dhIGNydWQtbGlzdFxyXG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xyXG4gICAgb3JkZXI/OiBudW1iZXI7XHJcbiAgICBtYXhXb3JkRGlzcGxheT86IG51bWJlcjtcclxuICAgIG1heExlbmd0aERpc3BsYXk/OiBudW1iZXI7XHJcblxyXG4gICAgbWRXaWR0aEluU2VhcmNoPyA9IDEyO1xyXG5cclxuICAgIG1pbj8gPSAwO1xyXG4gICAgbWF4PyA9IDk5OTk5OTtcclxuXHJcbiAgICBzaG93Q2xlYXI/ID0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xyXG5cclxuICAgIHBpcGU/OiBQaXBlVHJhbnNmb3JtO1xyXG4gICAgYXN5bmNQaXBlPyA9IHRydWU7XHJcbiAgICBzb3J0PyA9IHRydWU7XHJcbiAgICBleHRlbmREYXRhPzogYW55ID0ge307XHJcblxyXG4gICAgZ2VuZXJhdGVkUmVmQ29sdW1uPzogYW55OyAvLyBUT0RPOiBOYW1OSCB0aMOqbSB04bqhbSB0aGVvIHnDqnUgY+G6p3UgY+G7p2EgTGluaCwgTGluaCBjaGVjayBs4bqhaSBzYXVcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/ID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sdW1uU2NoZW1hQmFzZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25PcHRpb25zIHtcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGZpZWxkVHJlZT8gPSAnJztcclxuICAgIHNlbGVjdENoaWxkSXRlbT8gPSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/ID0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz8gPSAnJztcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBwYWdlU2l6ZT8gPSA5OTk5O1xyXG4gICAgaXNTZXJ2ZXJMb2FkPyA9IGZhbHNlO1xyXG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bk9wdGlvbnMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlZkZpZWxkIHtcclxuICAgIGZpZWxkOiBzdHJpbmc7XHJcbiAgICBtdWx0aXBsZT8gPSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xyXG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xyXG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xyXG4gICAgZmllbGRQbHVzPyA9ICcnO1xyXG4gICAgZ3JvdXBDb2RlPzogc3RyaW5nO1xyXG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xyXG4gICAgb3JkZXI/OiBudW1iZXI7XHJcblxyXG4gICAgaXNUcmVlPyA9IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/ID0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD8gPSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIGZ1bmNTZXRWYWx1ZVJvdz86IChyb3dJdGVtLCBkYXRhKSA9PiB2b2lkO1xyXG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZGaWVsZCkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgUHJvcEZvckRyb3Bkb3duIHtcclxuICAgIHNlcnZlckZpbHRlclVyaT86IHN0cmluZztcclxuICAgIGxvYWRJbkZpcnN0RGlzcGxheT8gPSB0cnVlO1xyXG4gICAgZGlzcGxheUZpZWxkU2VydmVyPyA9ICd0ZW4nO1xyXG4gICAgdmFsdWVGaWVsZFNlcnZlcj8gPSAnaWQnO1xyXG5cclxuICAgIGRhdGFTb3VyY2U/OiBhbnk7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb247XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcclxuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xyXG4gICAgc2VwYXJhdG9yPyA9ICcsICc7XHJcbiAgICBzZWFyY2hNdWx0aXBsZT8gPSB0cnVlO1xyXG4gICAgaXNUcmVlPyA9IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcclxuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW10gPSBbXTtcclxuICAgIGZpZWxkUGx1cz8gPSAnJztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/ID0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcblxyXG4gICAgZmllbGRWYWx1ZVBhcmVudD8gPSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXHJcblxyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUHJvcEZvckRyb3Bkb3duKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyQ29sdW1uIGV4dGVuZHMgQ29sdW1uU2NoZW1hQmFzZSB7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlZD8gPSBmYWxzZTtcclxuICAgIGlzU2VhcmNoYWJsZT8gPSB0cnVlO1xyXG4gICAgaXNEaXNwbGF5PyA9IHRydWU7XHJcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xyXG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcclxuICAgIHdpZHRoPyA9ICcnO1xyXG4gICAgbm90SW5GaWVsZHM/ID0gZmFsc2U7IC8vIEPDoWMgdHLGsOG7nW5nIGThu68gbGnhu4d1IMSRxrDhu6NjIHThu5VuZyBo4bujcCBs4bqhaSBoaeG7g24gdGjhu4sgbMOqbiBncmlkIG3DoCBraMO0bmcgcGjhuqNpIGzhuqV5IHThu6sgdHJvbmcgdGFibGUgcmEuXHJcblxyXG4gICAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlQaWNrZXJDb2x1bW4pIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdldFJlZkRhdGFTY2hlbWEgZXh0ZW5kcyBQcm9wRm9yRHJvcGRvd24ge1xyXG4gICAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBHZXRSZWZEYXRhU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkTGlzdENvbmZpZyB7XHJcbiAgICB0b29sdGlwVmlldz86IHN0cmluZztcclxuICAgIG9uVmlldz86IEZ1bmN0aW9uO1xyXG4gICAgZGlzYWJsZVJvd1NlbGVjdFdoZW5DbGlja0FjdGlvbj8gPSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q29uZmlnKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJlZURhdGFPcHRpb24ge1xyXG4gICAgZGlzcGxheUZpZWxkID0gJ3Rlbic7XHJcbiAgICBzaG9ydERpc3BsYXlGaWVsZCA9ICd0ZW4nO1xyXG4gICAgZXhwYW5kZWRJY29uID0gJ3BpIHBpLWZvbGRlci1vcGVuJztcclxuICAgIGNvbGxhcHNlZEljb24gPSAncGkgcGktZm9sZGVyJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUcmVlRGF0YU9wdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZGVsIHtcclxuICAgIHNob3dFZGl0Rm9ybT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGhlYWRlcj86IHN0cmluZyA9ICcnO1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IG1heGltaXplOiB0cnVlIH0pXHJcbiAgICBkYXRhPzogYW55ID0ge307XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGlhbG9nTW9kZWwpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQb3B1cFNpemUge1xyXG4gICAgd2lkdGg/OiBudW1iZXI7XHJcbiAgICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgICBtYXhpbWl6ZT8gPSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFdmVudERhdGEge1xyXG4gICAgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZTtcclxuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XHJcbiAgICBzb3VyY2VFdmVudD86IGFueTtcclxuICAgIGV2ZW50VHlwZT86IGFueTtcclxuICAgIGRhdGE/OiBhbnk7XHJcbiAgICBwcml2YXRlIF9jcnVkRm9ybTogQ3J1ZEZvcm1Db21wb25lbnQ7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbml0Pzoge1xyXG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxyXG4gICAgICAgICAgICBzb3VyY2VOb2RlPzogQ29udHJvbFRyZWVOb2RlLFxyXG4gICAgICAgICAgICBzb3VyY2VFdmVudD86IGFueSxcclxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxyXG4gICAgICAgICAgICBkYXRhPzogYW55LFxyXG4gICAgICAgICAgICBjcnVkRm9ybT86IENydWRGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgfVxyXG4gICAgKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRNb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudE1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRQYXRoKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm9vdE1vZGVsKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucm9vdE5vZGUubW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2xcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50Q29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50Q29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZm9ybUNvbnRyb2xzKCk6IEZvcm1TY2hlbWFCYXNlW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGF0YVR5cGUge1xyXG4gICAgZGF0ZSA9ICdkYXRlJyxcclxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICAgIGh0bWwgPSAnaHRtbCcsXHJcbiAgICBzdHJpbmcgPSAnc3RyaW5nJyxcclxuICAgIGludCA9ICdpbnQnLFxyXG4gICAgZGVjaW1hbCA9ICdkZWNpbWFsJyxcclxuICAgIGJvb2xlYW4gPSAnYm9vbGVhbicsXHJcbiAgICBlbnVtID0gJ2VudW0nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENvbnRyb2xUeXBlIHtcclxuICAgIGRyb3Bkb3duID0gJ2Ryb3Bkb3duJyxcclxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICAgIGRhdGUgPSAnZGF0ZScsXHJcbiAgICB0aW1lID0gJ3RpbWUnLFxyXG4gICAgbnVtYmVyID0gJ251bWJlcicsXHJcbiAgICB0ZXh0Ym94ID0gJ3RleHRib3gnLFxyXG4gICAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxyXG4gICAgc3dpdGNoID0gJ3N3aXRjaCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xyXG4gICAgZXF1YWwgPSAnZXEnLFxyXG4gICAgbm90RXF1YWwgPSAnbmVxJyxcclxuICAgIGdyZWF0ZXIgPSAnZ3QnLFxyXG4gICAgZ3JlYXRlclRoYW5FcXVhbCA9ICdndGUnLFxyXG4gICAgbG93ZXIgPSAnbHQnLFxyXG4gICAgbG93ZXJUaGFuRXF1YWwgPSAnbHRlJyxcclxuXHJcbiAgICBjb250YWluID0gJ2NvbnRhaW5zJyxcclxuICAgIG5vdENvbnRhaW4gPSAnbmNvbnRhaW5zJyxcclxuICAgIHN0YXJ0V2l0aCA9ICdzdGFydHN3aXRoJyxcclxuICAgIG5vdFN0YXJ0V2l0aCA9ICduc3RhcnRzd2l0aCcsXHJcbiAgICBlbmRXaXRoID0gJ2VuZHN3aXRoJyxcclxuICAgIG5vdEVuZFdpdGggPSAnbmVuZHN3aXRoJyxcclxuXHJcbiAgICBpbiA9ICdpbicsXHJcbiAgICBub3RJbiA9ICduaW4nLFxyXG5cclxuICAgIGlzTnVsbCA9ICdpc251bGwnLFxyXG4gICAgaXNOb3ROdWxsID0gJ2lzbm90bnVsbCcsXHJcblxyXG4gICAgaW5Sb2xlID0gJ2hhc1JvbGUnLFxyXG4gICAgbm90SW5Sb2xlID0gJ25vdEhhc1JvbGUnLFxyXG4gICAgaW5DYXRlZ29yeSA9ICdpbkNhdGVnb3J5JyxcclxuICAgIG5vdEluQ2F0ZWdvcnkgPSAnbm90SW5DYXRlZ29yeScsXHJcbiAgICBpblBvc2l0aW9uID0gJ2luUG9zaXRpb24nLFxyXG4gICAgbm90SW5Qb3NpdGlvbiA9ICdub3RJblBvc2l0aW9uJyxcclxuICAgIGluTGlzdFVzZXIgPSAnaW5MaXN0VXNlcicsXHJcbiAgICBub3RJbkxpc3RVc2VyID0gJ25vdEluTGlzdFVzZXInLFxyXG4gICAgaW5MaXN0R3JvdXAgPSAnaW5MaXN0R3JvdXAnLFxyXG4gICAgbm90SW5MaXN0R3JvdXAgPSAnbm90SW5MaXN0R3JvdXAnLFxyXG4gICAgaXNDdXJyZW50VXNlciA9ICdpc0N1cnJlbnRVc2VyJyxcclxuICAgIGlzQ3VycmVudENhbkJvID0gJ2lzQ3VycmVudENhbkJvJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBIZWlnaHRUeXBlIHtcclxuICAgIGRlZmF1bHQgPSAwLFxyXG4gICAgZHluYW1pYyA9IC0xLFxyXG4gICAgY3VzdG9tID0gMVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlTWFuYWdlck1vZGUge1xyXG4gICAgc2luZ2xlID0gJ3NpbmdsZScsXHJcbiAgICBtdWx0aXBsZSA9ICdtdWx0aXBsZSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZVVwbG9hZE1vZGUge1xyXG4gICAgdXNpbmdGaWxlSW5zdGFuY2VJZCA9ICd1c2luZ0ZpbGVJbnN0YW5jZUlkJyxcclxuICAgIHVzaW5nU2VydmljZUZpbGUgPSAndXNpbmdTZXJ2aWNlRmlsZSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRW51bUZpbGVMYXlvdXQge1xyXG4gICAgU0lNUExFID0gJ1NJTVBMRScsXHJcbiAgICBMSVNUID0gJ0xJU1QnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRleHRBbGlnbiB7XHJcbiAgICBMZWZ0ID0gMCxcclxuICAgIENlbnRlciA9IDEsXHJcbiAgICBSaWdodCA9IC0xXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEV4cG9ydEl0ZW1zTW9kZSB7XHJcbiAgICBGcm9tSHRtbCA9IDAsXHJcbiAgICBNYW51YWxHZXREYXRhID0gMSxcclxuICAgIEF1dG9HZXREYXRhID0gMlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHBvcnRBbGxNb2RlIHtcclxuICAgIE1hbnVhbEdldERhdGEgPSAwLFxyXG4gICAgQXV0b0dldERhdGEgPSAxXHJcbn1cclxuIl19