valtech-components 4.0.71 → 4.0.73

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 (46) hide show
  1. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +2 -4
  2. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +2 -4
  3. package/esm2022/lib/components/molecules/comment/comment.component.mjs +2 -4
  4. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +2 -4
  5. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +2 -4
  6. package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +2 -4
  7. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +2 -4
  8. package/esm2022/lib/components/molecules/font-size-selector/font-size-selector.component.mjs +2 -4
  9. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +2 -4
  10. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +2 -4
  11. package/esm2022/lib/components/molecules/permission-selector/permission-selector.component.mjs +2 -4
  12. package/esm2022/lib/components/molecules/rating/rating.component.mjs +2 -4
  13. package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +2 -4
  14. package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +2 -4
  15. package/esm2022/lib/components/organisms/account-view/account-view.component.mjs +14 -8
  16. package/esm2022/lib/components/organisms/api-key-create-modal/api-key-create-modal.component.mjs +3 -7
  17. package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +3 -7
  18. package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.component.mjs +2 -4
  19. package/esm2022/lib/components/organisms/auth-cta/auth-cta.component.mjs +2 -4
  20. package/esm2022/lib/components/organisms/create-org-modal/create-org-modal.component.mjs +2 -4
  21. package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +2 -4
  22. package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.component.mjs +2 -4
  23. package/esm2022/lib/components/organisms/field-list/field-list.component.mjs +2 -4
  24. package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +2 -4
  25. package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +3 -7
  26. package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +3 -7
  27. package/esm2022/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.mjs +2 -4
  28. package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +2 -4
  29. package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +2 -4
  30. package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +4 -6
  31. package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +2 -4
  32. package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +2 -4
  33. package/esm2022/lib/components/organisms/profile-view/profile-view.component.mjs +2 -4
  34. package/esm2022/lib/components/organisms/qr-scanner/qr-scanner.component.mjs +2 -4
  35. package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +2 -4
  36. package/esm2022/lib/components/organisms/settings-hub/settings-hub.component.mjs +3 -7
  37. package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs +2 -4
  38. package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +2 -4
  39. package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +3 -7
  40. package/esm2022/lib/services/i18n/i18n.service.mjs +21 -1
  41. package/esm2022/lib/version.mjs +2 -2
  42. package/fesm2022/valtech-components.mjs +80 -142
  43. package/fesm2022/valtech-components.mjs.map +1 -1
  44. package/lib/services/i18n/i18n.service.d.ts +7 -0
  45. package/lib/version.d.ts +1 -1
  46. package/package.json +1 -1
@@ -46,9 +46,7 @@ export class QrScannerComponent {
46
46
  this.lastValue = '';
47
47
  this.lastAt = 0;
48
48
  this.viewReady = false;
49
- if (!this.i18n.hasNamespace('QrScanner')) {
50
- this.i18n.registerContent('QrScanner', QR_SCANNER_I18N);
51
- }
49
+ this.i18n.registerDefaults('QrScanner', QR_SCANNER_I18N);
52
50
  }
53
51
  ngAfterViewInit() {
54
52
  this.viewReady = true;
@@ -307,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
307
305
  type: ViewChild,
308
306
  args: ['video']
309
307
  }] } });
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItc2Nhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3FyLXNjYW5uZXIvcXItc2Nhbm5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLHdCQUF3QixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELFFBQVEsQ0FBQztJQUNQLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGNBQWM7Q0FDZixDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUF1RUgsTUFBTSxPQUFPLGtCQUFrQjtJQXVCN0I7UUF0QlMsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFFdkMsMENBQTBDO1FBQ2hDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXZDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FB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bml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNlbGVjdCwgSW9uU2VsZWN0T3B0aW9uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNhbWVyYU91dGxpbmUsIHN0b3BDaXJjbGVPdXRsaW5lLCB2aWRlb2NhbU9mZk91dGxpbmUsIHdhcm5pbmdPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgQnJvd3Nlck11bHRpRm9ybWF0UmVhZGVyLCBJU2Nhbm5lckNvbnRyb2xzIH0gZnJvbSAnQHp4aW5nL2Jyb3dzZXInO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgUXJTY2FubmVyTWV0YWRhdGEsIFFyU2Nhbm5lclN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBRUl9TQ0FOTkVSX0kxOE4gfSBmcm9tICcuL3FyLXNjYW5uZXIuaTE4bic7XG5cbmFkZEljb25zKHtcbiAgY2FtZXJhT3V0bGluZSxcbiAgc3RvcENpcmNsZU91dGxpbmUsXG4gIHZpZGVvY2FtT2ZmT3V0bGluZSxcbiAgd2FybmluZ091dGxpbmUsXG59KTtcblxuLyoqXG4gKiB2YWwtcXItc2Nhbm5lclxuICpcbiAqIE9yZ2FuaXNtOiBzY2FubmVyIGRlIGPDs2RpZ29zIFFSIHBvciBjw6FtYXJhIChgQHp4aW5nL2Jyb3dzZXJgICtcbiAqIGBAenhpbmcvbGlicmFyeWApLiBFbWl0ZSBlbCB0ZXh0byBkZWNvZGlmaWNhZG8gcG9yIGAoc2Nhbm5lZClgLlxuICpcbiAqIE1hbmVqYTogcGVybWlzbyBkZSBjw6FtYXJhIGRlbmVnYWRvIChgZGVuaWVkYCksIGF1c2VuY2lhIGRlIGPDoW1hcmFcbiAqIChgbm8tY2FtZXJhYCksIHNlbGVjdG9yIGN1YW5kbyBoYXkgdmFyaWFzIGPDoW1hcmFzLCB5IGJvdMOzbiBzdGFydC9zdG9wLiBIYWNlXG4gKiBjbGVhbnVwIGRlbCBzdHJlYW0gZW4gYG5nT25EZXN0cm95YC4gaTE4biBhdXRvLXJlZ2lzdHJhZG8gKG5hbWVzcGFjZVxuICogYFFyU2Nhbm5lcmApLlxuICpcbiAqIE9iamVjdC1maXJzdCAoYEBJbnB1dCgpIHByb3BzYCkgKyB1biDDum5pY28gYEBPdXRwdXQoKSBzY2FubmVkYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1xci1zY2FubmVyIFtwcm9wc109XCJ7IGNvbnRpbnVvdXM6IHRydWUgfVwiIChzY2FubmVkKT1cIm9uU2NhbigkZXZlbnQpXCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcXItc2Nhbm5lcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgSW9uU2VsZWN0LCBJb25TZWxlY3RPcHRpb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicXItc2Nhbm5lcl9fdmlld3BvcnRcIiBbY2xhc3MuaXMtYWN0aXZlXT1cInN0YXRlKCkgPT09ICdzY2FubmluZydcIj5cbiAgICAgICAgPHZpZGVvICN2aWRlbyBjbGFzcz1cInFyLXNjYW5uZXJfX3ZpZGVvXCIgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz5cblxuICAgICAgICBAaWYgKHN0YXRlKCkgPT09ICdpZGxlJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19vdmVybGF5XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbWVyYS1vdXRsaW5lXCIgY2xhc3M9XCJxci1zY2FubmVyX19vdmVybGF5LWljb25cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzdGF0ZSgpID09PSAnc3RhcnRpbmcnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInFyLXNjYW5uZXJfX292ZXJsYXlcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAvPlxuICAgICAgICAgICAgPHA+e3sgdCgnc3RhcnRpbmcnKSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3NjYW5uaW5nJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19mcmFtZVwiPjwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChzdGF0ZSgpID09PSAnZGVuaWVkJyB8fCBzdGF0ZSgpID09PSAnbm8tY2FtZXJhJyB8fCBzdGF0ZSgpID09PSAnZXJyb3InKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19tZXNzYWdlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInN0YXRlKCkgPT09ICduby1jYW1lcmEnID8gJ3ZpZGVvY2FtLW9mZi1vdXRsaW5lJyA6ICd3YXJuaW5nLW91dGxpbmUnXCIgLz5cbiAgICAgICAgICA8c3Bhbj57eyBzdGF0ZU1lc3NhZ2UoKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3NjYW5uaW5nJyB8fCBzdGF0ZSgpID09PSAnc3RhcnRpbmcnKSB7XG4gICAgICAgIDxwIGNsYXNzPVwicXItc2Nhbm5lcl9faGludFwiPnt7IHQoJ2hpbnQnKSB9fTwvcD5cbiAgICAgIH1cblxuICAgICAgQGlmIChkZXZpY2VzKCkubGVuZ3RoID4gMSAmJiBzdGF0ZSgpID09PSAnc2Nhbm5pbmcnKSB7XG4gICAgICAgIDxpb24tc2VsZWN0XG4gICAgICAgICAgY2xhc3M9XCJxci1zY2FubmVyX19zZWxlY3RcIlxuICAgICAgICAgIFtsYWJlbF09XCJ0KCdjYW1lcmFMYWJlbCcpXCJcbiAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIlxuICAgICAgICAgIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAgICAgICAgIFt2YWx1ZV09XCJhY3RpdmVEZXZpY2VJZCgpXCJcbiAgICAgICAgICAoaW9uQ2hhbmdlKT1cIm9uU2VsZWN0RGV2aWNlKCRhbnkoJGV2ZW50KS5kZXRhaWwudmFsdWUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGQgb2YgZGV2aWNlcygpOyB0cmFjayBkLmRldmljZUlkKSB7XG4gICAgICAgICAgICA8aW9uLXNlbGVjdC1vcHRpb24gW3ZhbHVlXT1cImQuZGV2aWNlSWRcIj57eyBkZXZpY2VMYWJlbChkKSB9fTwvaW9uLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1zZWxlY3Q+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19hY3Rpb25zXCI+XG4gICAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3NjYW5uaW5nJyB8fCBzdGF0ZSgpID09PSAnc3RhcnRpbmcnKSB7XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwic3RvcCgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN0b3AtY2lyY2xlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAge3sgcHJvcHMuc3RvcExhYmVsIHx8IHQoJ3N0b3AnKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cInN0YXJ0KClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2FtZXJhLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAge3sgcHJvcHMuc3RhcnRMYWJlbCB8fCB0KCdzdGFydCcpIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcXItc2Nhbm5lci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBRclNjYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwcm9wczogUXJTY2FubmVyTWV0YWRhdGEgPSB7fTtcblxuICAvKiogRW1pdGUgZWwgdGV4dG8gZGVjb2RpZmljYWRvIGRlbCBRUi4gKi9cbiAgQE91dHB1dCgpIHNjYW5uZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAVmlld0NoaWxkKCd2aWRlbycpIHZpZGVvUmVmITogRWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50PjtcblxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsPFFyU2Nhbm5lclN0YXRlPignaWRsZScpO1xuICByZWFkb25seSBkZXZpY2VzID0gc2lnbmFsPE1lZGlhRGV2aWNlSW5mb1tdPihbXSk7XG4gIHJlYWRvbmx5IGFjdGl2ZURldmljZUlkID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIHJlYWRlcjogQnJvd3Nlck11bHRpRm9ybWF0UmVhZGVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29udHJvbHM6IElTY2FubmVyQ29udHJvbHMgfCBudWxsID0gbnVsbDtcblxuICAvLyBBbnRpLXJlYm90ZTogaWdub3JhIGxhIG1pc21hIGxlY3R1cmEgcmVwZXRpZGEgZGVudHJvIGRlIGBkZWR1cGVNc2AuXG4gIHByaXZhdGUgbGFzdFZhbHVlID0gJyc7XG4gIHByaXZhdGUgbGFzdEF0ID0gMDtcblxuICBwcml2YXRlIHZpZXdSZWFkeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSgnUXJTY2FubmVyJykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoJ1FyU2Nhbm5lcicsIFFSX1NDQU5ORVJfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld1JlYWR5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5wcm9wcy5hdXRvU3RhcnQpIHtcbiAgICAgIHZvaWQgdGhpcy5zdGFydCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGVhcmRvd24oKTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdRclNjYW5uZXInKTtcbiAgfVxuXG4gIHN0YXRlTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5zdGF0ZSgpKSB7XG4gICAgICBjYXNlICdkZW5pZWQnOlxuICAgICAgICByZXR1cm4gdGhpcy50KCdkZW5pZWQnKTtcbiAgICAgIGNhc2UgJ25vLWNhbWVyYSc6XG4gICAgICAgIHJldHVybiB0aGlzLnQoJ25vQ2FtZXJhJyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy50KCdlcnJvcicpO1xuICAgIH1cbiAgfVxuXG4gIGRldmljZUxhYmVsKGQ6IE1lZGlhRGV2aWNlSW5mbyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGQubGFiZWwgfHwgYCR7dGhpcy50KCdjYW1lcmFMYWJlbCcpfSAke3RoaXMuZGV2aWNlcygpLmluZGV4T2YoZCkgKyAxfWA7XG4gIH1cblxuICBhc3luYyBzdGFydChkZXZpY2VJZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy52aWV3UmVhZHkpIHJldHVybjtcbiAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ3N0YXJ0aW5nJyk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5yZWFkZXIgPSBuZXcgQnJvd3Nlck11bHRpRm9ybWF0UmVhZGVyKCk7XG5cbiAgICAgIC8vIEVudW1lcmFyIGPDoW1hcmFzLiBBbGd1bm9zIG5hdmVnYWRvcmVzIHNvbG8gZGFuIGxhYmVscyB0cmFzIGNvbmNlZGVyXG4gICAgICAvLyBwZXJtaXNvLCBhc8OtIHF1ZSBlc3RvIHB1ZWRlIGRldm9sdmVyIGxhYmVscyB2YWPDrW9zIGxhIDHCqiB2ZXouXG4gICAgICBsZXQgY2FtczogTWVkaWFEZXZpY2VJbmZvW10gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNhbXMgPSBhd2FpdCBCcm93c2VyTXVsdGlGb3JtYXRSZWFkZXIubGlzdFZpZGVvSW5wdXREZXZpY2VzKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgY2FtcyA9IFtdO1xuICAgICAgfVxuICAgICAgdGhpcy5kZXZpY2VzLnNldChjYW1zKTtcblxuICAgICAgLy8gUHJlZmVyaXIgbGEgdHJhc2VyYSAoZW52aXJvbm1lbnQpIHNpIGVsIGxhYmVsIGxvIHN1Z2llcmUuXG4gICAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgICBkZXZpY2VJZCB8fFxuICAgICAgICB0aGlzLmFjdGl2ZURldmljZUlkKCkgfHxcbiAgICAgICAgY2Ftcy5maW5kKGMgPT4gL2JhY2t8cmVhcnxlbnZpcm9ubWVudHx0cmFzZXJhL2kudGVzdChjLmxhYmVsKSk/LmRldmljZUlkIHx8XG4gICAgICAgIGNhbXNbMF0/LmRldmljZUlkO1xuXG4gICAgICB0aGlzLmFjdGl2ZURldmljZUlkLnNldCh0YXJnZXQpO1xuXG4gICAgICB0aGlzLmNvbnRyb2xzID0gYXdhaXQgdGhpcy5yZWFkZXIuZGVjb2RlRnJvbVZpZGVvRGV2aWNlKHRhcmdldCwgdGhpcy52aWRlb1JlZi5uYXRpdmVFbGVtZW50LCByZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXN1bHQocmVzdWx0LmdldFRleHQoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnN0YXRlLnNldCgnc2Nhbm5pbmcnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuaGFuZGxlU3RhcnRFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3AoKTogdm9pZCB7XG4gICAgdGhpcy50ZWFyZG93bigpO1xuICAgIHRoaXMuc3RhdGUuc2V0KCdpZGxlJyk7XG4gIH1cblxuICBhc3luYyBvblNlbGVjdERldmljZShkZXZpY2VJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGRldmljZUlkICYmIGRldmljZUlkICE9PSB0aGlzLmFjdGl2ZURldmljZUlkKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnQoZGV2aWNlSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVzdWx0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgZGVkdXBlID0gdGhpcy5wcm9wcy5kZWR1cGVNcyA/PyAxNTAwO1xuICAgIGlmICh0ZXh0ID09PSB0aGlzLmxhc3RWYWx1ZSAmJiBub3cgLSB0aGlzLmxhc3RBdCA8IGRlZHVwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxhc3RWYWx1ZSA9IHRleHQ7XG4gICAgdGhpcy5sYXN0QXQgPSBub3c7XG5cbiAgICB0aGlzLnNjYW5uZWQuZW1pdCh0ZXh0KTtcblxuICAgIC8vIE1vZG8gbm8gY29udGludW86IGRldGVuZXIgdHJhcyBlbCBwcmltZXIgbWF0Y2ggKGxhIHDDoWdpbmEgcmVhbnVkYSBzaVxuICAgIC8vIHF1aWVyZSkuIGBjb250aW51b3VzYCBkZWZhdWx0IHRydWUg4oaSIHNlZ3VpciBlc2NhbmVhbmRvLlxuICAgIGlmICh0aGlzLnByb3BzLmNvbnRpbnVvdXMgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0b3AoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN0YXJ0RXJyb3IoZXJyOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgbmFtZSA9IChlcnIgYXMgeyBuYW1lPzogc3RyaW5nIH0gfCBudWxsKT8ubmFtZSA/PyAnJztcbiAgICBpZiAobmFtZSA9PT0gJ05vdEFsbG93ZWRFcnJvcicgfHwgbmFtZSA9PT0gJ1NlY3VyaXR5RXJyb3InKSB7XG4gICAgICB0aGlzLnN0YXRlLnNldCgnZGVuaWVkJyk7XG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAnTm90Rm91bmRFcnJvcicgfHwgbmFtZSA9PT0gJ092ZXJjb25zdHJhaW5lZEVycm9yJykge1xuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ25vLWNhbWVyYScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlLnNldCgnZXJyb3InKTtcbiAgICB9XG4gICAgdGhpcy50ZWFyZG93bihmYWxzZSk7XG4gIH1cblxuICAvKiogRGV0aWVuZSBlbCBkZWNvZGUgKyBsaWJlcmEgZWwgc3RyZWFtIGRlIGxhIGPDoW1hcmEuICovXG4gIHByaXZhdGUgdGVhcmRvd24ocmVzZXRTdGF0ZSA9IHRydWUpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb250cm9scz8uc3RvcCgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gaWdub3JlXG4gICAgfVxuICAgIHRoaXMuY29udHJvbHMgPSBudWxsO1xuXG4gICAgY29uc3QgdmlkZW8gPSB0aGlzLnZpZGVvUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHN0cmVhbSA9IHZpZGVvPy5zcmNPYmplY3QgYXMgTWVkaWFTdHJlYW0gfCBudWxsO1xuICAgIGlmIChzdHJlYW0pIHtcbiAgICAgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSk7XG4gICAgICB2aWRlby5zcmNPYmplY3QgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnJlYWRlciA9IG51bGw7XG5cbiAgICBpZiAocmVzZXRTdGF0ZSkge1xuICAgICAgdGhpcy5sYXN0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMubGFzdEF0ID0gMDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItc2Nhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3FyLXNjYW5uZXIvcXItc2Nhbm5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLHdCQUF3QixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELFFBQVEsQ0FBQztJQUNQLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGNBQWM7Q0FDZixDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUF1RUgsTUFBTSxPQUFPLGtCQUFrQjtJQXVCN0I7UUF0QlMsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFFdkMsMENBQTBDO1FBQ2hDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXZDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUIsVUFBSyxHQUFHLE1BQU0sQ0FBaUIsTUFBTSxDQUFDLENBQUM7UUFDdkMsWUFBTyxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBRXhELFdBQU0sR0FBb0MsSUFBSSxDQUFDO1FBQy9DLGFBQVEsR0FBNEIsSUFBSSxDQUFDO1FBRWpELHNFQUFzRTtRQUM5RCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVYLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekIsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxDQUFDLENBQUMsR0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZO1FBQ1YsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNyQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFCLEtBQUssV0FBVztnQkFDZCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUI7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQWtCO1FBQzVCLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoRixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFpQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztZQUU3QyxzRUFBc0U7WUFDdEUsZ0VBQWdFO1lBQ2hFLElBQUksSUFBSSxHQUFzQixFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDO2dCQUNILElBQUksR0FBRyxNQUFNLHdCQUF3QixDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDaEUsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXZCLDREQUE0RDtZQUM1RCxNQUFNLE1BQU0sR0FDVixRQUFRO2dCQUNSLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUTtnQkFDeEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztZQUVwQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BHLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQWdCO1FBQ25DLElBQUksUUFBUSxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsSUFBWTtRQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO1FBQzNDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDMUQsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUVsQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4Qix1RUFBdUU7UUFDdkUsMERBQTBEO1FBQzFELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxHQUFZO1FBQ25DLE1BQU0sSUFBSSxHQUFJLEdBQWdDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMzRCxJQUFJLElBQUksS0FBSyxpQkFBaUIsSUFBSSxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLGVBQWUsSUFBSSxJQUFJLEtBQUssc0JBQXNCLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx5REFBeUQ7SUFDakQsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJO1FBQ2hDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLFNBQStCLENBQUM7UUFDdEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsRCxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDOytHQTlKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwwT0FsRW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErRFQsMDZDQWhFUyxZQUFZLCtCQUFFLFNBQVMsb1BBQUUsT0FBTywySkFBRSxVQUFVLHlHQUFFLFNBQVMsa1ZBQUUsZUFBZTs7NEZBbUV2RSxrQkFBa0I7a0JBdEU5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLFlBQ3pFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErRFQ7d0RBSVEsS0FBSztzQkFBYixLQUFLO2dCQUdJLE9BQU87c0JBQWhCLE1BQU07Z0JBRWEsUUFBUTtzQkFBM0IsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TZWxlY3QsIElvblNlbGVjdE9wdGlvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjYW1lcmFPdXRsaW5lLCBzdG9wQ2lyY2xlT3V0bGluZSwgdmlkZW9jYW1PZmZPdXRsaW5lLCB3YXJuaW5nT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEJyb3dzZXJNdWx0aUZvcm1hdFJlYWRlciwgSVNjYW5uZXJDb250cm9scyB9IGZyb20gJ0B6eGluZy9icm93c2VyJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFFyU2Nhbm5lck1ldGFkYXRhLCBRclNjYW5uZXJTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUVJfU0NBTk5FUl9JMThOIH0gZnJvbSAnLi9xci1zY2FubmVyLmkxOG4nO1xuXG5hZGRJY29ucyh7XG4gIGNhbWVyYU91dGxpbmUsXG4gIHN0b3BDaXJjbGVPdXRsaW5lLFxuICB2aWRlb2NhbU9mZk91dGxpbmUsXG4gIHdhcm5pbmdPdXRsaW5lLFxufSk7XG5cbi8qKlxuICogdmFsLXFyLXNjYW5uZXJcbiAqXG4gKiBPcmdhbmlzbTogc2Nhbm5lciBkZSBjw7NkaWdvcyBRUiBwb3IgY8OhbWFyYSAoYEB6eGluZy9icm93c2VyYCArXG4gKiBgQHp4aW5nL2xpYnJhcnlgKS4gRW1pdGUgZWwgdGV4dG8gZGVjb2RpZmljYWRvIHBvciBgKHNjYW5uZWQpYC5cbiAqXG4gKiBNYW5lamE6IHBlcm1pc28gZGUgY8OhbWFyYSBkZW5lZ2FkbyAoYGRlbmllZGApLCBhdXNlbmNpYSBkZSBjw6FtYXJhXG4gKiAoYG5vLWNhbWVyYWApLCBzZWxlY3RvciBjdWFuZG8gaGF5IHZhcmlhcyBjw6FtYXJhcywgeSBib3TDs24gc3RhcnQvc3RvcC4gSGFjZVxuICogY2xlYW51cCBkZWwgc3RyZWFtIGVuIGBuZ09uRGVzdHJveWAuIGkxOG4gYXV0by1yZWdpc3RyYWRvIChuYW1lc3BhY2VcbiAqIGBRclNjYW5uZXJgKS5cbiAqXG4gKiBPYmplY3QtZmlyc3QgKGBASW5wdXQoKSBwcm9wc2ApICsgdW4gw7puaWNvIGBAT3V0cHV0KCkgc2Nhbm5lZGAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcXItc2Nhbm5lciBbcHJvcHNdPVwieyBjb250aW51b3VzOiB0cnVlIH1cIiAoc2Nhbm5lZCk9XCJvblNjYW4oJGV2ZW50KVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXFyLXNjYW5uZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIsIElvblNlbGVjdCwgSW9uU2VsZWN0T3B0aW9uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicXItc2Nhbm5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInFyLXNjYW5uZXJfX3ZpZXdwb3J0XCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzdGF0ZSgpID09PSAnc2Nhbm5pbmcnXCI+XG4gICAgICAgIDx2aWRlbyAjdmlkZW8gY2xhc3M9XCJxci1zY2FubmVyX192aWRlb1wiIG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+XG5cbiAgICAgICAgQGlmIChzdGF0ZSgpID09PSAnaWRsZScpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicXItc2Nhbm5lcl9fb3ZlcmxheVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjYW1lcmEtb3V0bGluZVwiIGNsYXNzPVwicXItc2Nhbm5lcl9fb3ZlcmxheS1pY29uXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3N0YXJ0aW5nJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxci1zY2FubmVyX19vdmVybGF5XCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICAgIDxwPnt7IHQoJ3N0YXJ0aW5nJykgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHN0YXRlKCkgPT09ICdzY2FubmluZycpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicXItc2Nhbm5lcl9fZnJhbWVcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ2RlbmllZCcgfHwgc3RhdGUoKSA9PT0gJ25vLWNhbWVyYScgfHwgc3RhdGUoKSA9PT0gJ2Vycm9yJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicXItc2Nhbm5lcl9fbWVzc2FnZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzdGF0ZSgpID09PSAnbm8tY2FtZXJhJyA/ICd2aWRlb2NhbS1vZmYtb3V0bGluZScgOiAnd2FybmluZy1vdXRsaW5lJ1wiIC8+XG4gICAgICAgICAgPHNwYW4+e3sgc3RhdGVNZXNzYWdlKCkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKHN0YXRlKCkgPT09ICdzY2FubmluZycgfHwgc3RhdGUoKSA9PT0gJ3N0YXJ0aW5nJykge1xuICAgICAgICA8cCBjbGFzcz1cInFyLXNjYW5uZXJfX2hpbnRcIj57eyB0KCdoaW50JykgfX08L3A+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoZGV2aWNlcygpLmxlbmd0aCA+IDEgJiYgc3RhdGUoKSA9PT0gJ3NjYW5uaW5nJykge1xuICAgICAgICA8aW9uLXNlbGVjdFxuICAgICAgICAgIGNsYXNzPVwicXItc2Nhbm5lcl9fc2VsZWN0XCJcbiAgICAgICAgICBbbGFiZWxdPVwidCgnY2FtZXJhTGFiZWwnKVwiXG4gICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgICAgICBpbnRlcmZhY2U9XCJwb3BvdmVyXCJcbiAgICAgICAgICBbdmFsdWVdPVwiYWN0aXZlRGV2aWNlSWQoKVwiXG4gICAgICAgICAgKGlvbkNoYW5nZSk9XCJvblNlbGVjdERldmljZSgkYW55KCRldmVudCkuZGV0YWlsLnZhbHVlKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAZm9yIChkIG9mIGRldmljZXMoKTsgdHJhY2sgZC5kZXZpY2VJZCkge1xuICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIFt2YWx1ZV09XCJkLmRldmljZUlkXCI+e3sgZGV2aWNlTGFiZWwoZCkgfX08L2lvbi1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tc2VsZWN0PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwicXItc2Nhbm5lcl9fYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKHN0YXRlKCkgPT09ICdzY2FubmluZycgfHwgc3RhdGUoKSA9PT0gJ3N0YXJ0aW5nJykge1xuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cInN0b3AoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzdG9wLWNpcmNsZS1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICAgIHt7IHByb3BzLnN0b3BMYWJlbCB8fCB0KCdzdG9wJykgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJzdGFydCgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbWVyYS1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICAgIHt7IHByb3BzLnN0YXJ0TGFiZWwgfHwgdCgnc3RhcnQnKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3FyLXNjYW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUXJTY2FubmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHJvcHM6IFFyU2Nhbm5lck1ldGFkYXRhID0ge307XG5cbiAgLyoqIEVtaXRlIGVsIHRleHRvIGRlY29kaWZpY2FkbyBkZWwgUVIuICovXG4gIEBPdXRwdXQoKSBzY2FubmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgndmlkZW8nKSB2aWRlb1JlZiE6IEVsZW1lbnRSZWY8SFRNTFZpZGVvRWxlbWVudD47XG5cbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICByZWFkb25seSBzdGF0ZSA9IHNpZ25hbDxRclNjYW5uZXJTdGF0ZT4oJ2lkbGUnKTtcbiAgcmVhZG9ubHkgZGV2aWNlcyA9IHNpZ25hbDxNZWRpYURldmljZUluZm9bXT4oW10pO1xuICByZWFkb25seSBhY3RpdmVEZXZpY2VJZCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSByZWFkZXI6IEJyb3dzZXJNdWx0aUZvcm1hdFJlYWRlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbnRyb2xzOiBJU2Nhbm5lckNvbnRyb2xzIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gQW50aS1yZWJvdGU6IGlnbm9yYSBsYSBtaXNtYSBsZWN0dXJhIHJlcGV0aWRhIGRlbnRybyBkZSBgZGVkdXBlTXNgLlxuICBwcml2YXRlIGxhc3RWYWx1ZSA9ICcnO1xuICBwcml2YXRlIGxhc3RBdCA9IDA7XG5cbiAgcHJpdmF0ZSB2aWV3UmVhZHkgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnUXJTY2FubmVyJywgUVJfU0NBTk5FUl9JMThOKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdSZWFkeSA9IHRydWU7XG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b1N0YXJ0KSB7XG4gICAgICB2b2lkIHRoaXMuc3RhcnQoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRlYXJkb3duKCk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnUXJTY2FubmVyJyk7XG4gIH1cblxuICBzdGF0ZU1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RhdGUoKSkge1xuICAgICAgY2FzZSAnZGVuaWVkJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudCgnZGVuaWVkJyk7XG4gICAgICBjYXNlICduby1jYW1lcmEnOlxuICAgICAgICByZXR1cm4gdGhpcy50KCdub0NhbWVyYScpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMudCgnZXJyb3InKTtcbiAgICB9XG4gIH1cblxuICBkZXZpY2VMYWJlbChkOiBNZWRpYURldmljZUluZm8pOiBzdHJpbmcge1xuICAgIHJldHVybiBkLmxhYmVsIHx8IGAke3RoaXMudCgnY2FtZXJhTGFiZWwnKX0gJHt0aGlzLmRldmljZXMoKS5pbmRleE9mKGQpICsgMX1gO1xuICB9XG5cbiAgYXN5bmMgc3RhcnQoZGV2aWNlSWQ/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMudmlld1JlYWR5KSByZXR1cm47XG4gICAgdGhpcy50ZWFyZG93bigpO1xuICAgIHRoaXMuc3RhdGUuc2V0KCdzdGFydGluZycpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucmVhZGVyID0gbmV3IEJyb3dzZXJNdWx0aUZvcm1hdFJlYWRlcigpO1xuXG4gICAgICAvLyBFbnVtZXJhciBjw6FtYXJhcy4gQWxndW5vcyBuYXZlZ2Fkb3JlcyBzb2xvIGRhbiBsYWJlbHMgdHJhcyBjb25jZWRlclxuICAgICAgLy8gcGVybWlzbywgYXPDrSBxdWUgZXN0byBwdWVkZSBkZXZvbHZlciBsYWJlbHMgdmFjw61vcyBsYSAxwqogdmV6LlxuICAgICAgbGV0IGNhbXM6IE1lZGlhRGV2aWNlSW5mb1tdID0gW107XG4gICAgICB0cnkge1xuICAgICAgICBjYW1zID0gYXdhaXQgQnJvd3Nlck11bHRpRm9ybWF0UmVhZGVyLmxpc3RWaWRlb0lucHV0RGV2aWNlcygpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNhbXMgPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGV2aWNlcy5zZXQoY2Ftcyk7XG5cbiAgICAgIC8vIFByZWZlcmlyIGxhIHRyYXNlcmEgKGVudmlyb25tZW50KSBzaSBlbCBsYWJlbCBsbyBzdWdpZXJlLlxuICAgICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgICAgZGV2aWNlSWQgfHxcbiAgICAgICAgdGhpcy5hY3RpdmVEZXZpY2VJZCgpIHx8XG4gICAgICAgIGNhbXMuZmluZChjID0+IC9iYWNrfHJlYXJ8ZW52aXJvbm1lbnR8dHJhc2VyYS9pLnRlc3QoYy5sYWJlbCkpPy5kZXZpY2VJZCB8fFxuICAgICAgICBjYW1zWzBdPy5kZXZpY2VJZDtcblxuICAgICAgdGhpcy5hY3RpdmVEZXZpY2VJZC5zZXQodGFyZ2V0KTtcblxuICAgICAgdGhpcy5jb250cm9scyA9IGF3YWl0IHRoaXMucmVhZGVyLmRlY29kZUZyb21WaWRlb0RldmljZSh0YXJnZXQsIHRoaXMudmlkZW9SZWYubmF0aXZlRWxlbWVudCwgcmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzdWx0KHJlc3VsdC5nZXRUZXh0KCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ3NjYW5uaW5nJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmhhbmRsZVN0YXJ0RXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICBzdG9wKCk6IHZvaWQge1xuICAgIHRoaXMudGVhcmRvd24oKTtcbiAgICB0aGlzLnN0YXRlLnNldCgnaWRsZScpO1xuICB9XG5cbiAgYXN5bmMgb25TZWxlY3REZXZpY2UoZGV2aWNlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChkZXZpY2VJZCAmJiBkZXZpY2VJZCAhPT0gdGhpcy5hY3RpdmVEZXZpY2VJZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0KGRldmljZUlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc3VsdCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGRlZHVwZSA9IHRoaXMucHJvcHMuZGVkdXBlTXMgPz8gMTUwMDtcbiAgICBpZiAodGV4dCA9PT0gdGhpcy5sYXN0VmFsdWUgJiYgbm93IC0gdGhpcy5sYXN0QXQgPCBkZWR1cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYXN0VmFsdWUgPSB0ZXh0O1xuICAgIHRoaXMubGFzdEF0ID0gbm93O1xuXG4gICAgdGhpcy5zY2FubmVkLmVtaXQodGV4dCk7XG5cbiAgICAvLyBNb2RvIG5vIGNvbnRpbnVvOiBkZXRlbmVyIHRyYXMgZWwgcHJpbWVyIG1hdGNoIChsYSBww6FnaW5hIHJlYW51ZGEgc2lcbiAgICAvLyBxdWllcmUpLiBgY29udGludW91c2AgZGVmYXVsdCB0cnVlIOKGkiBzZWd1aXIgZXNjYW5lYW5kby5cbiAgICBpZiAodGhpcy5wcm9wcy5jb250aW51b3VzID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zdG9wKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGFydEVycm9yKGVycjogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IG5hbWUgPSAoZXJyIGFzIHsgbmFtZT86IHN0cmluZyB9IHwgbnVsbCk/Lm5hbWUgPz8gJyc7XG4gICAgaWYgKG5hbWUgPT09ICdOb3RBbGxvd2VkRXJyb3InIHx8IG5hbWUgPT09ICdTZWN1cml0eUVycm9yJykge1xuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ2RlbmllZCcpO1xuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ05vdEZvdW5kRXJyb3InIHx8IG5hbWUgPT09ICdPdmVyY29uc3RyYWluZWRFcnJvcicpIHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0KCduby1jYW1lcmEnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgfVxuICAgIHRoaXMudGVhcmRvd24oZmFsc2UpO1xuICB9XG5cbiAgLyoqIERldGllbmUgZWwgZGVjb2RlICsgbGliZXJhIGVsIHN0cmVhbSBkZSBsYSBjw6FtYXJhLiAqL1xuICBwcml2YXRlIHRlYXJkb3duKHJlc2V0U3RhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuY29udHJvbHM/LnN0b3AoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGlnbm9yZVxuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xzID0gbnVsbDtcblxuICAgIGNvbnN0IHZpZGVvID0gdGhpcy52aWRlb1JlZj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBzdHJlYW0gPSB2aWRlbz8uc3JjT2JqZWN0IGFzIE1lZGlhU3RyZWFtIHwgbnVsbDtcbiAgICBpZiAoc3RyZWFtKSB7XG4gICAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpO1xuICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5yZWFkZXIgPSBudWxsO1xuXG4gICAgaWYgKHJlc2V0U3RhdGUpIHtcbiAgICAgIHRoaXMubGFzdFZhbHVlID0gJyc7XG4gICAgICB0aGlzLmxhc3RBdCA9IDA7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -231,9 +231,7 @@ export class SecurityViewComponent {
231
231
  },
232
232
  }));
233
233
  const ns = this.ns;
234
- if (!this.i18n.hasNamespace(ns)) {
235
- this.i18n.registerContent(ns, SECURITY_VIEW_I18N);
236
- }
234
+ this.i18n.registerDefaults(ns, SECURITY_VIEW_I18N);
237
235
  this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
238
236
  // Carga inicial de sesiones - recarga reactiva a cambio de locale para
239
237
  // que los textos y metadatos se mantengan frescos. Los devices solo se
@@ -816,4 +814,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
816
814
  }], ctorParameters: () => [], propDecorators: { config: [{
817
815
  type: Input
818
816
  }] } });
819
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NlY3VyaXR5LXZpZXcvc2VjdXJpdHktdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUU5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFPLEVBQWtCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDOUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUUxRCxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0FBRWxELE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQWtRSCxNQUFNLE9BQU8scUJBQXFCO0lBc0NoQyxzRUFBc0U7SUFDdEUsSUFBWSxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFpS0Q7UUF6TVEsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0Isa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JDLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBU2pELG1CQUFjLEdBQUcsUUFBUSxDQUVoQyxHQUFHLEVBQUU7WUFDTCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBdUIsQ0FBQztZQUM1RixNQUFNLE1BQU0sR0FBdUIsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzVFLE9BQU87Z0JBQ0wsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtnQkFDekMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixJQUFJLElBQUk7Z0JBQ3JELGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7Z0JBQy9DLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUk7Z0JBQy9CLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUk7Z0JBQ3pDLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYSxJQUFJLGlCQUFpQjtnQkFDeEQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSTtnQkFDL0MsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksV0FBVztnQkFDMUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO2FBQ3RDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQU9IOzs7O1dBSUc7UUFDTyxZQUFPLEdBQUcsTUFBTSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLGFBQVEsR0FBRyxNQUFNLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9CLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2Qyw4QkFBeUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsK0VBQStFO1FBQ3RFLG1CQUFjLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUV2RCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNqRCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUU3RCxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDakUsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBRXpELG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFL0QsZ0JBQVcsR0FBRyxRQUFRLENBQXVCLEdBQUcsRUFBRTtZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNsQyxNQUFNLEtBQUssR0FBeUIsRUFBRSxDQUFDO1lBQ3ZDLElBQUksR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ1QsS0FBSyxFQUFFLHdCQUF3QjtvQkFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUMxQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRTtvQkFDekUsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDVCxLQUFLLEVBQUUscUJBQXFCO29CQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUN2QyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRTtvQkFDMUUsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDVCxLQUFLLEVBQUUsWUFBWTtvQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO29CQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQy9CLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUU7b0JBQ3RGLFdBQVcsRUFBRSxJQUFJO29CQUNqQixRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUVIOzs7O1dBSUc7UUFDTSxxQkFBZ0IsR0FBRyxRQUFRLENBQW9CLEdBQUcsRUFBRTtZQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUM5QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2FBQzFDLENBQUMsQ0FBQztZQUNILE9BQU87Z0JBQ0wsS0FBSyxFQUFFO29CQUNMLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO29CQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO29CQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO29CQUNyQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO29CQUMxQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUM7b0JBQzVDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDL0M7Z0JBQ0QsWUFBWSxFQUFFLElBQUk7YUFDbkIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsOEVBQThFO1FBQzlFLFdBQVc7UUFDWCw4RUFBOEU7UUFFckUsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3pELHVCQUFrQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDOUQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRXZELHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVwRixxRUFBcUU7UUFDNUQsbUJBQWMsR0FBRyxRQUFRLENBQWdCLEdBQUcsRUFBRTtZQUNyRCxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDakMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztvQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsU0FBUztvQkFBRSxPQUFPLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILG9GQUFvRjtRQUNuRSxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUUxQixvQkFBZSxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFcEcsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0Ysa0VBQWtFO1FBQ3pELDJCQUFzQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFFTSx5QkFBb0IsR0FBRyxRQUFRLENBQTBCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFDL0IsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsZ0JBQWdCO1NBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBRUssdUJBQWtCLEdBQUcsUUFBUSxDQUEwQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hDLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLGVBQWUsQ0FBQyxPQUFPO1NBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUosaUZBQWlGO1FBQ3hFLG1CQUFjLEdBQUcsUUFBUSxDQUF1QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzlELFdBQVcsRUFBRSxPQUFPO1lBQ3BCLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFO2FBQ3ZDO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsQyxLQUFLLEVBQUUsTUFBTTtnQkFDYixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsZUFBZSxDQUFDLE9BQU87Z0JBQzlCLEtBQUssRUFBRSxvQkFBb0I7Z0JBQzNCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2FBQ2xDO1NBQ0YsQ0FBQyxDQUFDLENBQUM7UUFHRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUQsdUVBQXVFO1FBQ3ZFLHVFQUF1RTtRQUN2RSx3RUFBd0U7UUFDeEUsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztZQUN4RCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksWUFBWTtvQkFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO1FBRUYseUVBQXlFO1FBQ3pFLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLDRFQUE0RTtRQUM1RSw4Q0FBOEM7UUFDOUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4RCx1RUFBdUU7WUFDdkUsNERBQTREO1lBQzVELEtBQUssSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDckMseURBQXlEO1lBQ3pELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyx3QkFBd0I7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsd0VBQXdFO1FBQ3hFLCtDQUErQztRQUMvQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUM3QixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTO1lBQ25DLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUMxQyxtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksVUFBa0MsQ0FBQztRQUN2QyxJQUFJLENBQUM7WUFDSCxVQUFVLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsT0FBTyxFQUFFLDhCQUE4QjtnQkFDdkMsV0FBVyxFQUFFLG1CQUFtQjtnQkFDaEMsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2FBQ3ZCLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLFFBQVEsS0FBSyxLQUFLLElBQUksTUFBTSxFQUFFLFFBQVEsS0FBSyxTQUFTLENBQUM7UUFFOUUsTUFBTSxPQUFPLEdBQUcsS0FBSyxJQUFtQixFQUFFO1lBQ3hDLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBNkI7WUFDdEUsU0FBUyxFQUFFLDBCQUEwQjtZQUNyQyxjQUFjLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ25DLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2dCQUNqQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUN4RixTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDM0QsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3RDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUN4QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDeEMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3RDLFFBQVE7Z0JBQ1IsT0FBTzthQUNSO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNyQyxRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsTUFBMEI7UUFDdEMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLHdCQUF3QixFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsQyxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLG9CQUFvQjtRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixnRUFBZ0U7UUFDaEUsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUztZQUNuQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQzlCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxDQUFhO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVTLFVBQVUsQ0FBQyxHQUFZO1FBQy9CLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVc7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDZCxPQUFPLEVBQUUsR0FBRztZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsOEVBQThFO0lBQzlFLHFCQUFxQjtJQUNyQiw4RUFBOEU7SUFFOUUsMkRBQTJEO0lBQzNELFVBQVUsQ0FBQyxDQUFjO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoRSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsQ0FBYztRQUM5QixNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLENBQUMsUUFBUTtZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2xDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsQ0FBQyxTQUFTO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNwRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBaUI7UUFDakMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDbkMsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLE9BQU8sRUFBRSx3QkFBd0I7Z0JBQ2pDLFdBQVcsRUFBRSxlQUFlO2dCQUM1QixhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUU7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNmLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztZQUN6RCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN2QyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztZQUMzQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3BELFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1NBQzFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RDLFFBQVEsRUFBRSxJQUFJO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUMsQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUN0QixPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxXQUFXLEVBQUUsZUFBZTtnQkFDNUIsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLFNBQWlCLEVBQTBCLEVBQUU7WUFDbkUsSUFBSSxDQUFDO2dCQUNILE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNkLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNuQyxRQUFRLEVBQUUsSUFBSTtvQkFDZCxLQUFLLEVBQUUsTUFBTTtvQkFDYixRQUFRLEVBQUUsS0FBSztpQkFDaEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO29CQUN0QixPQUFPLEVBQUUsOEJBQThCO29CQUN2QyxXQUFXLEVBQUUsZUFBZTtvQkFDNUIsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUN2QixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxHQUFHLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBNEI7WUFDM0QsU0FBUyxFQUFFLHlCQUF5QjtZQUNwQyxjQUFjLEVBQUU7Z0JBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNwQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDeEMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUN0QyxRQUFRO2FBQ1Q7WUFDRCxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkIsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEIsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDM0IsRUFBRSxDQUFDLEdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7K0dBeGdCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwyR0E1T3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdJVCxvaERBakpDLFlBQVksK0JBQ1osT0FBTyx3RUFDUCxNQUFNLG9EQUNOLE1BQU0sa1RBQ04sT0FBTywySkFDUCxnQkFBZ0IsMkVBQ2hCLGNBQWMseUVBQ2QsYUFBYSx3RUFDYixlQUFlLDBHQUNmLG1CQUFtQixxR0FDbkIscUJBQXFCLGlGQUNyQixrQkFBa0IsOEVBQ2xCLHVCQUF1QixtRkFDdkIseUJBQXlCLDBIQUN6Qiw0QkFBNEIsNkhBQzVCLGlCQUFpQjs7NEZBOE9SLHFCQUFxQjtrQkFqUWpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsTUFBTTt3QkFDTixNQUFNO3dCQUNOLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1QixpQkFBaUI7cUJBQ2xCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0lUO3dEQThIUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIElucHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25Db2wsIElvbkdyaWQsIElvbkljb24sIElvblJvdyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBsYXB0b3BPdXRsaW5lLCBwaG9uZVBvcnRyYWl0T3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFjdGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvYWN0aW9uLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9hY3Rpb24tY2FyZC90eXBlcyc7XG5pbXBvcnQgeyBBY3Rpb25IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWhlYWRlci9hY3Rpb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25IZWFkZXJNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9hY3Rpb24taGVhZGVyL3R5cGVzJztcbmltcG9ydCB7IFBhZ2VMaW5rc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9wYWdlLWxpbmtzL3BhZ2UtbGlua3MuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VMaW5rc01ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3BhZ2UtbGlua3MvdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi1sYXlvdXQvc2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFuZ2VFbWFpbE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hhbmdlLWVtYWlsLW1vZGFsL2NoYW5nZS1lbWFpbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NoYW5nZS1wYXNzd29yZC1tb2RhbC9jaGFuZ2UtcGFzc3dvcmQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1mYU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbWZhLW1vZGFsL21mYS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9naW5BdHRlbXB0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9sb2dpbi1hdHRlbXB0LW1vZGFsL2xvZ2luLWF0dGVtcHQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNlc3Npb25MaXN0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zZXNzaW9uLWxpc3QtbW9kYWwvc2Vzc2lvbi1saXN0LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvc2Vzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERldmljZUluZm8sIFNlc3Npb25JbmZvLCBWYWxpZGF0ZUFjdGlvblJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC90eXBlcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTGVnYWxMaW5rU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xlZ2FsLWxpbmsvbGVnYWwtbGluay5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29ubmVjdFBhZ2VSZWZyZXNoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1yZWZyZXNoL3BhZ2UtcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTZWN1cml0eVZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNFQ1VSSVRZX1ZJRVdfSTE4TiB9IGZyb20gJy4vc2VjdXJpdHktdmlldy5pMThuJztcblxuYWRkSWNvbnMoeyBsYXB0b3BPdXRsaW5lLCBwaG9uZVBvcnRyYWl0T3V0bGluZSB9KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuU2VjdXJpdHknO1xuXG4vKipcbiAqIGB2YWwtc2VjdXJpdHktdmlld2Ag4oCUIHZpc3RhIFNlZ3VyaWRhZCBmdWxsLWZlYXR1cmUgYXV0b2NvbnRlbmlkYSAob3JnYW5pc20pLlxuICpcbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZcO6bmUgZW4gdW5hIHNvbGEgdmlzdGE6XG4gKiAgLSAqKlNlc2lvbmVzIGFjdGl2YXMqKiDigJQgw7puaWNhIHZpc3RhIHVzZXItZmFjaW5nIGRlIFwiZMOzbmRlIHRlbmdvIHNlc2nDs25cIi5cbiAqICAgIExpc3RhIGlubGluZSAobGltaXQgMykgKyBtb2RhbCBcIlZlciB0b2Rhc1wiIChgdmFsLXNlc3Npb24tbGlzdC1tb2RhbGApICtcbiAqICAgIHJldm9rZSBpbmRpdmlkdWFsIC8gcmV2b2tlLWFsbCAoY29uIGNvbmZpcm1hY2nDs24pLlxuICogIC0gKipBY3Rpb24tY2FyZHMqKiDigJQgY2FtYmlhciBjb250cmFzZcOxYSwgY2FtYmlhciBlbWFpbCB5IE1GQSAoY2FkYSB1bmEgYWJyZVxuICogICAgZWwgbW9kYWwgY29ycmVzcG9uZGllbnRlIGRlIGxhIGxpYikuXG4gKiAgLSAqKlBvbMOtdGljYXMgbGVnYWxlcyoqIOKAlCBsaW5rcyByZXN1ZWx0b3MgdsOtYSBgTGVnYWxMaW5rU2VydmljZWAgKGFwcHNcbiAqICAgIHNhdMOpbGl0ZSBhcHVudGFuIGFsIG1haW4gc2l0ZSkuXG4gKlxuICogRGVlcC1saW5rcyBkZWwgZW1haWwgKGdhdGVhZG9zIHBvciBgY29uZmlnLmhhbmRsZURlZXBMaW5rc2AsIGRlZmF1bHQgYHRydWVgKTpcbiAqICAtIGA/dG9rZW49Li4uJmFjdGlvbj0uLi5gIOKGkiBtb2RhbCBgdmFsLWxvZ2luLWF0dGVtcHQtbW9kYWxgIChhdXRvcml6YXIvYmxvcXVlYXJcbiAqICAgIGVsIG51ZXZvIGFjY2VzbykuXG4gKiAgLSBgP21mYUNvZGU9Li4uYCDihpIgYWJyZSBlbCBtb2RhbCBNRkEgY29uIGVsIGPDs2RpZ28gcHJlLWNhcmdhZG8uXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5TZWN1cml0eWApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc2VjdXJpdHktdmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uR3JpZCxcbiAgICBJb25Sb3csXG4gICAgSW9uQ29sLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25DYXJkQ29tcG9uZW50LFxuICAgIEFjdGlvbkhlYWRlckNvbXBvbmVudCxcbiAgICBQYWdlTGlua3NDb21wb25lbnQsXG4gICAgU2tlbGV0b25MYXlvdXRDb21wb25lbnQsXG4gICAgQ2hhbmdlRW1haWxNb2RhbENvbXBvbmVudCxcbiAgICBDaGFuZ2VQYXNzd29yZE1vZGFsQ29tcG9uZW50LFxuICAgIE1mYU1vZGFsQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHBhZ2VUaXRsZSgpIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBwYWdlRGVzY3JpcHRpb24oKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd1Nlc3Npb25zKSB7XG4gICAgICAgIDwhLS0gMS4gQWN0aXZlIHNlc3Npb25zIC0gdW5pY2EgdmlzdGEgdXNlci1mYWNpbmcgZGUgZG9uZGUgdGVuZ28gc2VzaW9uLiAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgQGlmIChoYXNPdGhlclNlc3Npb25zKCkpIHtcbiAgICAgICAgICAgIDx2YWwtYWN0aW9uLWhlYWRlciBbcHJvcHNdPVwic2Vzc2lvbnNIZWFkZXIoKVwiIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHNlc3Npb25zVGl0bGVXaXRoQ291bnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIEBpZiAoc2Vzc2lvbnNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbi1sYXlvdXQgW3Byb3BzXT1cInsgcHJlc2V0OiAnbGlzdCcsIHJvd3M6IDMgfVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChzZXNzaW9ucygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udGVudDogc2Vzc2lvbnNFbXB0eUxhYmVsKCksXG4gICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic2Vzc2lvbnNcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChzIG9mIHZpc2libGVTZXNzaW9ucygpOyB0cmFjayBzLnNlc3Npb25JZCkge1xuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2Vzc2lvblwiIFtjbGFzcy5zZXNzaW9uLS1jdXJyZW50XT1cInMuaXNDdXJyZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cInNlc3Npb25fX2ljb25cIiBbbmFtZV09XCJkZXZpY2VJY29uKHMpXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlc3Npb25fX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHMuZGV2aWNlSW5mbyB8fCBzLmRldmljZUlkIHx8ICfigJQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBmb3JtYXRTZXNzaW9uTWV0YShzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vzc2lvbl9fZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChzLmlzQ3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXNzaW9uX19iYWRnZVwiPnt7IHNlc3Npb25zVGhpcygpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cInJldm9rZU9uZUJ1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25SZXZva2VPbmUocy5zZXNzaW9uSWQpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIEBpZiAoaGFzTW9yZVNlc3Npb25zKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWFjdGlvbnMgcm93LWFjdGlvbnMtLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cInZpZXdBbGxCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cIm9wZW5TZXNzaW9uc01vZGFsKClcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNBY3Rpb25DYXJkcygpKSB7XG4gICAgICAgIDwhLS0gMi4gUXVpY2sgYWN0aW9uczogY2hhbmdlIHBhc3N3b3JkLCBjaGFuZ2UgZW1haWwsIE1GQSAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPGgyPnt7IHF1aWNrQWN0aW9uc1RpdGxlKCkgfX08L2gyPlxuICAgICAgICAgIDxpb24tZ3JpZCBjbGFzcz1cImNhcmRzLWdyaWRcIj5cbiAgICAgICAgICAgIDxpb24tcm93PlxuICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9uQ2FyZHMoKTsgdHJhY2sgYWN0aW9uLnRva2VuKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZS1zbT1cIjZcIj5cbiAgICAgICAgICAgICAgICAgIDx2YWwtYWN0aW9uLWNhcmQgW3Byb3BzXT1cImFjdGlvblwiIChvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soYWN0aW9uKVwiIC8+XG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2lvbi1yb3c+XG4gICAgICAgICAgPC9pb24tZ3JpZD5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd1BvbGljaWVzKSB7XG4gICAgICAgIDwhLS0gMy4gUmVsYXRlZCBwb2xpY2llcyAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPGgyPnt7IHBvbGljaWVzVGl0bGUoKSB9fTwvaDI+XG4gICAgICAgICAgPHZhbC1wYWdlLWxpbmtzIFtwcm9wc109XCJwb2xpY3lMaW5rc1Byb3BzKClcIiAvPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDx2YWwtY2hhbmdlLWVtYWlsLW1vZGFsXG4gICAgICAgIFtpc09wZW5dPVwiaXNDaGFuZ2VFbWFpbE1vZGFsT3BlbigpXCJcbiAgICAgICAgKGNoYW5nZWQpPVwiaXNDaGFuZ2VFbWFpbE1vZGFsT3Blbi5zZXQoZmFsc2UpXCJcbiAgICAgICAgKGRpc21pc3NlZCk9XCJpc0NoYW5nZUVtYWlsTW9kYWxPcGVuLnNldChmYWxzZSlcIlxuICAgICAgLz5cblxuICAgICAgPHZhbC1jaGFuZ2UtcGFzc3dvcmQtbW9kYWxcbiAgICAgICAgW2lzT3Blbl09XCJpc0NoYW5nZVBhc3N3b3JkTW9kYWxPcGVuKClcIlxuICAgICAgICAoY2hhbmdlZCk9XCJpc0NoYW5nZVBhc3N3b3JkTW9kYWxPcGVuLnNldChmYWxzZSlcIlxuICAgICAgICAoZGlzbWlzc2VkKT1cImlzQ2hhbmdlUGFzc3dvcmRNb2RhbE9wZW4uc2V0KGZhbHNlKVwiXG4gICAgICAvPlxuXG4gICAgICA8dmFsLW1mYS1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cImlzTWZhTW9kYWxPcGVuKClcIlxuICAgICAgICBbcHJlZmlsbENvZGVdPVwibWZhUHJlZmlsbENvZGUoKVwiXG4gICAgICAgIChkaXNtaXNzZWQpPVwib25NZmFNb2RhbERpc21pc3NlZCgpXCJcbiAgICAgICAgKGVuYWJsZWRWaWFEZWVwbGluayk9XCJvbk1mYUVuYWJsZWRWaWFEZWVwbGluaygpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uICsgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgICAgfVxuICAgICAgLmNhcmRzLWdyaWQge1xuICAgICAgICBtYXJnaW46IDAgLTRweCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgICAgLmNhcmRzLWdyaWQgaW9uLWNvbCB7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICAgIC5jYXJkcy1ncmlkIGlvbi1jb2wgdmFsLWFjdGlvbi1jYXJkIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cblxuICAgICAgLyogLS0tIFNlc3Npb25zIHNlY3Rpb24gLS0tICovXG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnJvdy1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5yb3ctYWN0aW9ucy0tY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9ucyB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnNlc3Npb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMDQpKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYmFja2dyb3VuZCAwLjE1cyBlYXNlLFxuICAgICAgICAgIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xuICAgICAgfVxuICAgICAgLnNlc3Npb24tLWN1cnJlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ1LCAyMTEsIDExMSwgMC4xKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDQ1LCAyMTEsIDExMSwgMC4zKTtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9uX19pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICMxYTFhMWEpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9uLS1jdXJyZW50IC5zZXNzaW9uX19pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzLXNoYWRlLCAjMjhiYTYyKTtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9uX19ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9uX19lbmQge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9uX19iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzLXNoYWRlLCAjMjhiYTYyKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0NSwgMjExLCAxMTEsIDAuMTgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWN1cml0eVZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZGV2aWNlU2VydmljZSA9IGluamVjdChEZXZpY2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsZWdhbExpbmsgPSBpbmplY3QoTGVnYWxMaW5rU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IGluamVjdChTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG4gIHByaXZhdGUgY29uZmlybURpYWxvZyA9IGluamVjdChDb25maXJtYXRpb25EaWFsb2dTZXJ2aWNlKTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgc2VjdXJpdHlDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hTZWN1cml0eVJvdXRlc2ApLlxuICAgKiBgcmVzb2x2ZWRDb25maWdgIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBgQElucHV0YCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBTZWN1cml0eVZpZXdDb25maWc7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxcbiAgICBSZXF1aXJlZDxPbWl0PFNlY3VyaXR5Vmlld0NvbmZpZywgJ29uTWZhQ29tcGxldGVkJz4+ICYgUGljazxTZWN1cml0eVZpZXdDb25maWcsICdvbk1mYUNvbXBsZXRlZCc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydzZWN1cml0eUNvbmZpZyddID8/IHt9KSBhcyBTZWN1cml0eVZpZXdDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBTZWN1cml0eVZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93U2Vzc2lvbnM6IG1lcmdlZC5zaG93U2Vzc2lvbnMgPz8gdHJ1ZSxcbiAgICAgIHNob3dDaGFuZ2VQYXNzd29yZDogbWVyZ2VkLnNob3dDaGFuZ2VQYXNzd29yZCA/PyB0cnVlLFxuICAgICAgc2hvd0NoYW5nZUVtYWlsOiBtZXJnZWQuc2hvd0NoYW5nZUVtYWlsID8/IHRydWUsXG4gICAgICBzaG93TWZhOiBtZXJnZWQuc2hvd01mYSA/PyB0cnVlLFxuICAgICAgc2hvd1BvbGljaWVzOiBtZXJnZWQuc2hvd1BvbGljaWVzID8/IHRydWUsXG4gICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgIGhhbmRsZURlZXBMaW5rczogbWVyZ2VkLmhhbmRsZURlZXBMaW5rcyA/PyB0cnVlLFxuICAgICAgaG9tZVJvdXRlOiBtZXJnZWQuaG9tZVJvdXRlID8/ICcvYXBwL2hvbWUnLFxuICAgICAgb25NZmFDb21wbGV0ZWQ6IG1lcmdlZC5vbk1mYUNvbXBsZXRlZCxcbiAgICB9O1xuICB9KTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RhIGRlIGRpc3Bvc2l0aXZvcyBkZWwgdXNlci4gTm8gc2UgcmVuZGVyaXphIOKAlCBzb2xvIGFsaW1lbnRhIGVsIG1vZGFsXG4gICAqIGRlIGNvbmZpcm1hY2nDs24gZGUgaW5pY2lvIGRlIHNlc2nDs24gKGBoYW5kbGVBY3Rpb25Ub2tlbkZyb21VcmxgKSBwYXJhXG4gICAqIHJlc29sdmVyIHVuIGxhYmVsIGxlZ2libGUgZGVzZGUgZWwgYHRhcmdldElkYCBkZWwgdG9rZW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgZGV2aWNlcyA9IHNpZ25hbDxEZXZpY2VJbmZvW10+KFtdKTtcblxuICByZWFkb25seSBzZXNzaW9ucyA9IHNpZ25hbDxTZXNzaW9uSW5mb1tdPihbXSk7XG4gIHJlYWRvbmx5IHNlc3Npb25zTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcblxuICByZWFkb25seSBpc0NoYW5nZUVtYWlsTW9kYWxPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgaXNDaGFuZ2VQYXNzd29yZE1vZGFsT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGlzTWZhTW9kYWxPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIEPDs2RpZ28gTUZBIGRlbCBkZWVwLWxpbmsgYC92ZXJpZnlgIOKAlCBwcmUtY2FyZ2EgZWwgbW9kYWwgZW4gY29uZmlybWFjacOzbi4gKi9cbiAgcmVhZG9ubHkgbWZhUHJlZmlsbENvZGUgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IHBhZ2VUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3BhZ2VUaXRsZScpKTtcbiAgcmVhZG9ubHkgcGFnZURlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgncGFnZURlc2NyaXB0aW9uJykpO1xuXG4gIHJlYWRvbmx5IHF1aWNrQWN0aW9uc1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgncXVpY2tBY3Rpb25zVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHBvbGljaWVzVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdwb2xpY2llc1RpdGxlJykpO1xuXG4gIHJlYWRvbmx5IGhhc0FjdGlvbkNhcmRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hY3Rpb25DYXJkcygpLmxlbmd0aCA+IDApO1xuXG4gIHJlYWRvbmx5IGFjdGlvbkNhcmRzID0gY29tcHV0ZWQ8QWN0aW9uQ2FyZE1ldGFkYXRhW10+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGNmZyA9IHRoaXMucmVzb2x2ZWRDb25maWcoKTtcbiAgICBjb25zdCBjYXJkczogQWN0aW9uQ2FyZE1ldGFkYXRhW10gPSBbXTtcbiAgICBpZiAoY2ZnLnNob3dDaGFuZ2VQYXNzd29yZCkge1xuICAgICAgY2FyZHMucHVzaCh7XG4gICAgICAgIHRva2VuOiAnYWN0aW9uLWNoYW5nZS1wYXNzd29yZCcsXG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdjaGFuZ2VQYXNzd29yZCcpLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50dCgnY2hhbmdlUGFzc3dvcmREZXNjJyksXG4gICAgICAgIGljb246IHsgaW9uaWNvbjogJ2tleS1vdXRsaW5lJywgY29sb3I6ICdkYXJrJywgYmFja2dyb3VuZENvbG9yOiAnbGlnaHQnIH0sXG4gICAgICAgIHNob3dDaGV2cm9uOiB0cnVlLFxuICAgICAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY2ZnLnNob3dDaGFuZ2VFbWFpbCkge1xuICAgICAgY2FyZHMucHVzaCh7XG4gICAgICAgIHRva2VuOiAnYWN0aW9uLWNoYW5nZS1lbWFpbCcsXG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdjaGFuZ2VFbWFpbCcpLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50dCgnY2hhbmdlRW1haWxEZXNjJyksXG4gICAgICAgIGljb246IHsgaW9uaWNvbjogJ21haWwtb3V0bGluZScsIGNvbG9yOiAnZGFyaycsIGJhY2tncm91bmRDb2xvcjogJ2xpZ2h0JyB9LFxuICAgICAgICBzaG93Q2hldnJvbjogdHJ1ZSxcbiAgICAgICAgc2hhZG93ZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNmZy5zaG93TWZhKSB7XG4gICAgICBjYXJkcy5wdXNoKHtcbiAgICAgICAgdG9rZW46ICdhY3Rpb24tbWZhJyxcbiAgICAgICAgdGl0bGU6IHRoaXMudHQoJ21mYScpLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50dCgnbWZhRGVzYycpLFxuICAgICAgICBpY29uOiB7IGlvbmljb246ICdzaGllbGQtY2hlY2ttYXJrLW91dGxpbmUnLCBjb2xvcjogJ2RhcmsnLCBiYWNrZ3JvdW5kQ29sb3I6ICdsaWdodCcgfSxcbiAgICAgICAgc2hvd0NoZXZyb246IHRydWUsXG4gICAgICAgIHNoYWRvd2VkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjYXJkcztcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEZ1ZW50ZSDDum5pY2EgZGUgbGlua3MgbGVnYWxlcyBkZWwgcHJvZHVjdG8uIFNlIHJlc3VlbHZlbiB2w61hXG4gICAqIGBMZWdhbExpbmtTZXJ2aWNlYCDigJQgYXBwcyBzYXTDqWxpdGUgYXB1bnRhbiBhbCBtYWluIHNpdGUsIGVsIG1haW4gc2l0ZSBsb3NcbiAgICogZGVqYSByZWxhdGl2b3MuXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lMaW5rc1Byb3BzID0gY29tcHV0ZWQ8UGFnZUxpbmtzTWV0YWRhdGE+KCgpID0+IHtcbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGxpbmsgPSAocGF0aDogc3RyaW5nLCBsYWJlbEtleTogc3RyaW5nKSA9PiAoe1xuICAgICAgbGFiZWw6IHRoaXMudHQobGFiZWxLZXkpLFxuICAgICAgaHJlZjogdGhpcy5sZWdhbExpbmsucmVzb2x2ZShwYXRoLCB7IGxvY2FsZSB9KSxcbiAgICAgIGV4dGVybmFsOiB0aGlzLmxlZ2FsTGluay5pc0V4dGVybmFsKHBhdGgpLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBsaW5rczogW1xuICAgICAgICBsaW5rKCcvbGVnYWwvdGVybXMnLCAndGVybXNMaW5rJyksXG4gICAgICAgIGxpbmsoJy9sZWdhbC9wcml2YWN5JywgJ3ByaXZhY3lMaW5rJyksXG4gICAgICAgIGxpbmsoJy9sZWdhbC9jb29raWVzJywgJ2Nvb2tpZXNMaW5rJyksXG4gICAgICAgIGxpbmsoJy9sZWdhbC9kYXRhLXVzYWdlJywgJ2RhdGFVc2FnZUxpbmsnKSxcbiAgICAgICAgbGluaygnL2xlZ2FsL3RoaXJkLXBhcnR5JywgJ3RoaXJkUGFydHlMaW5rJyksXG4gICAgICAgIGxpbmsoJy9sZWdhbC9sZWdhbC1ub3RpY2UnLCAnbGVnYWxOb3RpY2VMaW5rJyksXG4gICAgICBdLFxuICAgICAgc2hvd0RpdmlkZXJzOiB0cnVlLFxuICAgIH07XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZXNzaW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICByZWFkb25seSBzZXNzaW9uc1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnc2Vzc2lvbnNUaXRsZScpKTtcbiAgcmVhZG9ubHkgc2Vzc2lvbnNFbXB0eUxhYmVsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnc2Vzc2lvbnNFbXB0eScpKTtcbiAgcmVhZG9ubHkgc2Vzc2lvbnNUaGlzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnc2Vzc2lvbnNUaGlzJykpO1xuXG4gIHJlYWRvbmx5IGhhc090aGVyU2Vzc2lvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlc3Npb25zKCkuc29tZShzID0+ICFzLmlzQ3VycmVudCkpO1xuXG4gIC8qKiBTZXNpb25lcyBvcmRlbmFkYXM6IGN1cnJlbnQgcHJpbWVybywgcmVzdG8gcG9yIGNyZWF0ZWRBdCBkZXNjLiAqL1xuICByZWFkb25seSBzb3J0ZWRTZXNzaW9ucyA9IGNvbXB1dGVkPFNlc3Npb25JbmZvW10+KCgpID0+IHtcbiAgICBjb25zdCBhbGwgPSBbLi4udGhpcy5zZXNzaW9ucygpXTtcbiAgICByZXR1cm4gYWxsLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLmlzQ3VycmVudCAmJiAhYi5pc0N1cnJlbnQpIHJldHVybiAtMTtcbiAgICAgIGlmICghYS5pc0N1cnJlbnQgJiYgYi5pc0N1cnJlbnQpIHJldHVybiAxO1xuICAgICAgcmV0dXJuIChiLmNyZWF0ZWRBdCB8fCAnJykubG9jYWxlQ29tcGFyZShhLmNyZWF0ZWRBdCB8fCAnJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8qKiBMaW1pdCBkZSBzZXNpb25lcyBtb3N0cmFkYXMgaW5saW5lLiBTaSB0b3RhbCA+IGxpbWl0LCBcIlZlciB0b2Rhc1wiIGFicmUgbW9kYWwuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgVklTSUJMRV9MSU1JVCA9IDM7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZVNlc3Npb25zID0gY29tcHV0ZWQ8U2Vzc2lvbkluZm9bXT4oKCkgPT4gdGhpcy5zb3J0ZWRTZXNzaW9ucygpLnNsaWNlKDAsIHRoaXMuVklTSUJMRV9MSU1JVCkpO1xuXG4gIHJlYWRvbmx5IGhhc01vcmVTZXNzaW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc29ydGVkU2Vzc2lvbnMoKS5sZW5ndGggPiB0aGlzLlZJU0lCTEVfTElNSVQpO1xuXG4gIC8qKiBUaXR1bG8gY29uIGNvdW50OiBcIlNlc2lvbmVzIGFjdGl2YXMgKDQpXCIuIFNpbiBjb3VudCBzaSBOPTAuICovXG4gIHJlYWRvbmx5IHNlc3Npb25zVGl0bGVXaXRoQ291bnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbiA9IHRoaXMuc29ydGVkU2Vzc2lvbnMoKS5sZW5ndGg7XG4gICAgaWYgKG4gPT09IDApIHJldHVybiB0aGlzLnNlc3Npb25zVGl0bGUoKTtcbiAgICByZXR1cm4gdGhpcy50dCgnc2Vzc2lvbnNUaXRsZUNvdW50JykucmVwbGFjZSgne259JywgU3RyaW5nKG4pKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmV2b2tlT25lQnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdzZXNzaW9uc1Jldm9rZScpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ2NsZWFyJyxcbiAgICBzaXplOiAnc21hbGwnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHRva2VuOiAnc2Vzc2lvbi1yZXZva2UnLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgdmlld0FsbEJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnc2Vzc2lvbnNWaWV3QWxsJyksXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBmaWxsOiAnY2xlYXInLFxuICAgIHNpemU6ICdzbWFsbCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICB9KSk7XG5cbiAgLyoqIEFjdGlvbi1oZWFkZXIgZGUgU2VzaW9uZXM6IHRpdGxlICsgY291bnQgKyBib3RvbiBcIkNlcnJhciB0b2RhcyBsYXMgZGVtYXNcIi4gKi9cbiAgcmVhZG9ubHkgc2Vzc2lvbnNIZWFkZXIgPSBjb21wdXRlZDxBY3Rpb25IZWFkZXJNZXRhZGF0YT4oKCkgPT4gKHtcbiAgICBoZWFkaW5nS2luZDogJ3RpdGxlJyxcbiAgICB0aXRsZToge1xuICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgIGNvbnRlbnQ6IHRoaXMuc2Vzc2lvbnNUaXRsZVdpdGhDb3VudCgpLFxuICAgIH0sXG4gICAgYWN0aW9uOiB7XG4gICAgICB0ZXh0OiB0aGlzLnR0KCdzZXNzaW9uc1Jldm9rZUFsbCcpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIHRva2VuOiAnc2Vzc2lvbi1yZXZva2UtYWxsJyxcbiAgICAgIGhhbmRsZXI6ICgpID0+IHRoaXMub25SZXZva2VBbGwoKSxcbiAgICB9LFxuICB9KSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgbnMgPSB0aGlzLm5zO1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShucykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQobnMsIFNFQ1VSSVRZX1ZJRVdfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuXG4gICAgLy8gQ2FyZ2EgaW5pY2lhbCBkZSBzZXNpb25lcyAtIHJlY2FyZ2EgcmVhY3RpdmEgYSBjYW1iaW8gZGUgbG9jYWxlIHBhcmFcbiAgICAvLyBxdWUgbG9zIHRleHRvcyB5IG1ldGFkYXRvcyBzZSBtYW50ZW5nYW4gZnJlc2Nvcy4gTG9zIGRldmljZXMgc29sbyBzZVxuICAgIC8vIGNhcmdhbiBvbi1kZW1hbmQgZGVzZGUgZWwgZmx1am8gZGVsIG1vZGFsIChoYW5kbGVBY3Rpb25Ub2tlbkZyb21VcmwpLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICAgICAgY29uc3Qgc2hvd1Nlc3Npb25zID0gdGhpcy5yZXNvbHZlZENvbmZpZygpLnNob3dTZXNzaW9ucztcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBpZiAoc2hvd1Nlc3Npb25zKSB2b2lkIHRoaXMubG9hZFNlc3Npb25zKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICAvLyBQdWxsLXRvLXJlZnJlc2ggZXN0YW5kYXIgKFJlZ2xhICMzKSAtIHJlLWZldGNoZWEgbGFzIHNlc2lvbmVzIGFjdGl2YXMuXG4gICAgY29ubmVjdFBhZ2VSZWZyZXNoKCgpID0+IHRoaXMubG9hZFNlc3Npb25zKCkpO1xuXG4gICAgLy8gRGVlcC1saW5rcyBkZWwgZW1haWwgLSBzb2xvIHNpIGVzdGFuIGhhYmlsaXRhZG9zIFkgaGF5IHJ1dGEgKG1vbnRhZGEgY29tb1xuICAgIC8vIHJvdXRlKS4gRW4gbW9kbyBlbWJlYmlkbyBzaW4gcnV0YSBlcyBuby1vcC5cbiAgICBpZiAodGhpcy5yZXNvbHZlZENvbmZpZygpLmhhbmRsZURlZXBMaW5rcyAmJiB0aGlzLnJvdXRlKSB7XG4gICAgICAvLyBTaSBlbCB1c2VyIGxsZWdvIHZpYSBsaW5rIGRlbCBlbWFpbCAoP3Rva2VuPS4uLiZhY3Rpb249Li4uKSwgYWJyZSBlbFxuICAgICAgLy8gbW9kYWwgZGUgY29uZmlybWFjaW9uIHBhcmEgYXV0b3JpemFyL3JlY2hhemFyIGVsIGludGVudG8uXG4gICAgICB2b2lkIHRoaXMuaGFuZGxlQWN0aW9uVG9rZW5Gcm9tVXJsKCk7XG4gICAgICAvLyBEZWVwLWxpbmsgZGVsIGVtYWlsIGRlIHNldHVwIE1GQS1lbWFpbCAoP21mYUNvZGU9Li4uKS5cbiAgICAgIHRoaXMuaGFuZGxlTWZhQ29kZUZyb21VcmwoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGxlZ2EgdsOtYSBsaW5rIGRlbCBlbWFpbCBkZSBcIm51ZXZvIGFjY2Vzb1wiIChgP3Rva2VuPS4uLmApLiBWYWxpZGEgZWwgdG9rZW5cbiAgICogKHNpbiBlamVjdXRhcikgeSBsZXZhbnRhIGVsIG1vZGFsIGRlIGNvbmZpcm1hY2nDs24uIEVsIGJsb3F1ZW8gc29sbyBzZVxuICAgKiBlamVjdXRhIHNpIGVsIHVzZXIgY29uZmlybWEgXCJubyBmdWkgeW9cIiBkZW50cm8gZGVsIG1vZGFsLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVBY3Rpb25Ub2tlbkZyb21VcmwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnJvdXRlPy5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgndG9rZW4nKTtcbiAgICBpZiAoIXRva2VuKSByZXR1cm47XG5cbiAgICAvLyBMaW1waWEgP3Rva2VuLz9hY3Rpb24gZGUgbGEgVVJMIHlhIC0gZWwgbW9kYWwgZXMgbGEgZnVlbnRlIGRlIHZlcmRhZDtcbiAgICAvLyB1biByZWZyZXNoIG5vIGRlYmUgcmUtYWJyaXJsbyBuaSByZS12YWxpZGFyLlxuICAgIHZvaWQgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlID8/IHVuZGVmaW5lZCxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHRva2VuOiBudWxsLCBhY3Rpb246IG51bGwgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICByZXBsYWNlVXJsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgbGV0IHZhbGlkYXRpb246IFZhbGlkYXRlQWN0aW9uUmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmRldmljZVNlcnZpY2UudmFsaWRhdGVBY3Rpb24odG9rZW4pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3NlY3VyaXR5LnZhbGlkYXRlQWN0aW9uVG9rZW4nLFxuICAgICAgICBmYWxsYmFja0tleTogJ3Rva2VuQWN0aW9uRmFpbGVkJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5ucyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIHRoaXMudG9hc3RUb2tlbkludmFsaWQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXN1ZWx2ZSBlbCBkaXNwb3NpdGl2byBvYmpldGl2byBkZXNkZSBsYSBsaXN0YSBjYXJnYWRhIHBhcmEgbW9zdHJhcmxvLlxuICAgIGF3YWl0IHRoaXMubG9hZERldmljZXMoKTtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmRldmljZXMoKS5maW5kKGQgPT4gZC5kZXZpY2VJZCA9PT0gdmFsaWRhdGlvbi50YXJnZXRJZCk7XG4gICAgY29uc3QgaXNNb2JpbGUgPSB0YXJnZXQ/LnBsYXRmb3JtID09PSAnaW9zJyB8fCB0YXJnZXQ/LnBsYXRmb3JtID09PSAnYW5kcm9pZCc7XG5cbiAgICBjb25zdCBvbkJsb2NrID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5kZXZpY2VTZXJ2aWNlLmV4ZWN1dGVBY3Rpb24odG9rZW4pKTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZERldmljZXMoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbjxMb2dpbkF0dGVtcHRNb2RhbENvbXBvbmVudD4oe1xuICAgICAgY29tcG9uZW50OiBMb2dpbkF0dGVtcHRNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdsb2dpbkF0dGVtcHRUaXRsZScpLFxuICAgICAgICBib2R5OiB0aGlzLnR0KCdsb2dpbkF0dGVtcHRCb2R5JyksXG4gICAgICAgIGRldmljZUxhYmVsOiB0YXJnZXQgPyB0aGlzLmRlc2NyaWJlRGV2aWNlKHRhcmdldCkgOiB0aGlzLnR0KCdsb2dpbkF0dGVtcHRVbmtub3duRGV2aWNlJyksXG4gICAgICAgIG1ldGFMYWJlbDogdGFyZ2V0ID8gdGhpcy5mb3JtYXREYXRlKHRhcmdldC5sYXN0QWN0aXZlKSA6ICcnLFxuICAgICAgICBtaW5lTGFiZWw6IHRoaXMudHQoJ2xvZ2luQXR0ZW1wdE1pbmUnKSxcbiAgICAgICAgYmxvY2tMYWJlbDogdGhpcy50dCgnbG9naW5BdHRlbXB0QmxvY2snKSxcbiAgICAgICAgY2xvc2VMYWJlbDogdGhpcy50dCgnbG9naW5BdHRlbXB0Q2xvc2UnKSxcbiAgICAgICAgZG9uZUxhYmVsOiB0aGlzLnR0KCdsb2dpbkF0dGVtcHREb25lJyksXG4gICAgICAgIGlzTW9iaWxlLFxuICAgICAgICBvbkJsb2NrLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChyZXN1bHQucm9sZSA9PT0gJ2Jsb2NrZWQnKSB7XG4gICAgICB0aGlzLnRvYXN0T2sodGhpcy50dCgnYmxvY2tlZCcpKTtcbiAgICB9IGVsc2UgaWYgKHJlc3VsdC5yb2xlID09PSAnZXJyb3InKSB7XG4gICAgICB0aGlzLnRvYXN0VG9rZW5JbnZhbGlkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2FzdFRva2VuSW52YWxpZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgbWVzc2FnZTogdGhpcy50dCgndG9rZW5BY3Rpb25GYWlsZWQnKSxcbiAgICAgIGR1cmF0aW9uOiAzNTAwLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvYWREZXZpY2VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsaXN0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5kZXZpY2VTZXJ2aWNlLmxpc3REZXZpY2VzKCkpO1xuICAgICAgdGhpcy5kZXZpY2VzLnNldChsaXN0IHx8IFtdKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZGV2aWNlcy5zZXQoW10pO1xuICAgIH1cbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soYWN0aW9uOiBBY3Rpb25DYXJkTWV0YWRhdGEpOiB2b2lkIHtcbiAgICBpZiAoYWN0aW9uLnRva2VuID09PSAnYWN0aW9uLWNoYW5nZS1wYXNzd29yZCcpIHtcbiAgICAgIHRoaXMuaXNDaGFuZ2VQYXNzd29yZE1vZGFsT3Blbi5zZXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChhY3Rpb24udG9rZW4gPT09ICdhY3Rpb24tY2hhbmdlLWVtYWlsJykge1xuICAgICAgdGhpcy5pc0NoYW5nZUVtYWlsTW9kYWxPcGVuLnNldCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGFjdGlvbi50b2tlbiA9PT0gJ2FjdGlvbi1tZmEnKSB7XG4gICAgICB0aGlzLm1mYVByZWZpbGxDb2RlLnNldCh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5pc01mYU1vZGFsT3Blbi5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25NZmFNb2RhbERpc21pc3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTWZhTW9kYWxPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5tZmFQcmVmaWxsQ29kZS5zZXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbCB1c2VyIGxsZWfDsyB2w61hIGxpbmsgZGVsIGVtYWlsLCBjb25maXJtw7MgTUZBIGVuIGVsIG1vZGFsLiBDZXJyYW1vcyBlbFxuICAgKiBtb2RhbCB5LCBzaSBoYXkgaG9vayBgb25NZmFDb21wbGV0ZWRgLCBsbyBpbnZvY2Ftb3M7IHNpIG5vLCBuYXZlZ2Ftb3MgYWxcbiAgICogYGhvbWVSb3V0ZWAgY29uZmlndXJhZG8g4oCUIHF1ZWRhcnNlIGVuIFNldHRpbmdzIOKGkiBTZWN1cml0eSBkYXLDrWEgbGFcbiAgICogc2Vuc2FjacOzbiBkZSBcInRhcmVhIGluY29uY2x1c2FcIiBjdWFuZG8gZWwgZmxvdyB5YSB0ZXJtaW7Dsy5cbiAgICovXG4gIG9uTWZhRW5hYmxlZFZpYURlZXBsaW5rKCk6IHZvaWQge1xuICAgIHRoaXMuaXNNZmFNb2RhbE9wZW4uc2V0KGZhbHNlKTtcbiAgICB0aGlzLm1mYVByZWZpbGxDb2RlLnNldCh1bmRlZmluZWQpO1xuICAgIGNvbnN0IGNmZyA9IHRoaXMucmVzb2x2ZWRDb25maWcoKTtcbiAgICBpZiAoY2ZnLm9uTWZhQ29tcGxldGVkKSB7XG4gICAgICBjZmcub25NZmFDb21wbGV0ZWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm9pZCB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybChjZmcuaG9tZVJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVlcC1saW5rIGAvdmVyaWZ5Py4uLiZ2ZXJpZnktY29kZT1gIOKGkiByZWRpcmlnZSBhIGVzdGEgdmlzdGEgY29uIGA/bWZhQ29kZT1gLlxuICAgKiBBYnJlIGVsIG1vZGFsIE1GQSBjb24gZWwgY8OzZGlnbyBwcmUtY2FyZ2FkbyBlbiBlbCBwYXNvIGRlIGNvbmZpcm1hY2nDs24uXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZU1mYUNvZGVGcm9tVXJsKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvZGUgPSB0aGlzLnJvdXRlPy5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnbWZhQ29kZScpO1xuICAgIGlmICghY29kZSkgcmV0dXJuO1xuICAgIC8vIExpbXBpYSBlbCBxdWVyeSBwYXJhbSAtIHVuIHJlZnJlc2ggbm8gZGViZSByZS1hYnJpciBlbCBtb2RhbC5cbiAgICB2b2lkIHRoaXMucm91dGVyPy5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSA/PyB1bmRlZmluZWQsXG4gICAgICBxdWVyeVBhcmFtczogeyBtZmFDb2RlOiBudWxsIH0sXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLm1mYVByZWZpbGxDb2RlLnNldChjb2RlKTtcbiAgICB0aGlzLmlzTWZhTW9kYWxPcGVuLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXNjcmliZURldmljZShkOiBEZXZpY2VJbmZvKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtkLnBsYXRmb3JtLCBkLmJyb3dzZXIsIGQubG9jYXRpb25dLmZpbHRlcihCb29sZWFuKTtcbiAgICByZXR1cm4gcGFydHMuam9pbignIMK3ICcpIHx8IGQuZGV2aWNlSWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0RGF0ZShpc28/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaXNvKSByZXR1cm4gJyc7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShpc28pLnRvTG9jYWxlU3RyaW5nKHRoaXMuaTE4bi5sYW5nKCkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGlzbztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvYXN0T2sobXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgZHVyYXRpb246IDIyMDAsXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNlc3Npb25zIC0gbcOpdG9kb3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqIEljb25vIHNlZ8O6biBkZXZpY2U6IHBob25lIHNpIFVBIG1vYmlsZSwgc2lubyBsYXB0b3AuICovXG4gIGRldmljZUljb24oczogU2Vzc2lvbkluZm8pOiBzdHJpbmcge1xuICAgIGNvbnN0IHVhID0gKHMuZGV2aWNlSW5mbyB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBpc01vYmlsZSA9IC9pcGhvbmV8aXBhZHxpcG9kfGFuZHJvaWR8bW9iaWxlLy50ZXN0KHVhKTtcbiAgICByZXR1cm4gaXNNb2JpbGUgPyAncGhvbmUtcG9ydHJhaXQtb3V0bGluZScgOiAnbGFwdG9wLW91dGxpbmUnO1xuICB9XG5cbiAgZm9ybWF0U2Vzc2lvbk1ldGEoczogU2Vzc2lvbkluZm8pOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChzLmxvY2F0aW9uKSBwYXJ0cy5wdXNoKHMubG9jYXRpb24pO1xuICAgIGVsc2UgaWYgKHMuaXApIHBhcnRzLnB1c2gocy5pcCk7XG4gICAgaWYgKHMuY3JlYXRlZEF0KSBwYXJ0cy5wdXNoKG5ldyBEYXRlKHMuY3JlYXRlZEF0KS50b0xvY2FsZVN0cmluZygpKTtcbiAgICByZXR1cm4gcGFydHMuam9pbignIMK3ICcpO1xuICB9XG5cbiAgYXN5bmMgb25SZXZva2VPbmUoc2Vzc2lvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5yZXZva2VTZXNzaW9uKHNlc3Npb25JZCkpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50dCgnc2Vzc2lvbnNSZXZva2VkJyksXG4gICAgICAgIGR1cmF0aW9uOiAyNTAwLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZFNlc3Npb25zKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzZWN1cml0eS5yZXZva2VTZXNzaW9uJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzZXNzaW9uc0Vycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uUmV2b2tlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybURpYWxvZy5jb25maXJtRGVzdHJ1Y3RpdmUoe1xuICAgICAgdGl0bGU6IHRoaXMudHQoJ3Jldm9rZUFsbENvbmZpcm1UaXRsZScpLFxuICAgICAgbWVzc2FnZTogdGhpcy50dCgncmV2b2tlQWxsQ29uZmlybU1lc3NhZ2UnKSxcbiAgICAgIGNvbmZpcm1CdXR0b246IHsgdGV4dDogdGhpcy50dCgncmV2b2tlQWxsQ29uZmlybScpIH0sXG4gICAgICBjYW5jZWxCdXR0b246IHsgdGV4dDogdGhpcy50dCgnY2FuY2VsJykgfSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3VsdC5jb25maXJtZWQpIHJldHVybjtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlc3Npb25TZXJ2aWNlLnJldm9rZUFsbFNlc3Npb25zKCkpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50dCgnc2Vzc2lvbnNBbGxSZXZva2VkJyksXG4gICAgICAgIGR1cmF0aW9uOiAyNTAwLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZFNlc3Npb25zKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzZWN1cml0eS5yZXZva2VBbGxTZXNzaW9ucycsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2Vzc2lvbnNFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQWJyZSBtb2RhbCBjb24gbGEgbGlzdGEgY29tcGxldGEuIENhZGEgcmV2b2tlIHBhc2EgcG9yIGBvblJldm9rZWAuICovXG4gIGFzeW5jIG9wZW5TZXNzaW9uc01vZGFsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9uUmV2b2tlID0gYXN5bmMgKHNlc3Npb25JZDogc3RyaW5nKTogUHJvbWlzZTxTZXNzaW9uSW5mb1tdPiA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlc3Npb25TZXJ2aWNlLnJldm9rZVNlc3Npb24oc2Vzc2lvbklkKSk7XG4gICAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgICAgbWVzc2FnZTogdGhpcy50dCgnc2Vzc2lvbnNSZXZva2VkJyksXG4gICAgICAgICAgZHVyYXRpb246IDI1MDAsXG4gICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgICBjb250ZXh0OiAnc2VjdXJpdHkucmV2b2tlU2Vzc2lvbi5tb2RhbCcsXG4gICAgICAgICAgZmFsbGJhY2tLZXk6ICdzZXNzaW9uc0Vycm9yJyxcbiAgICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5sb2FkU2Vzc2lvbnMoKTtcbiAgICAgIHJldHVybiB0aGlzLnNvcnRlZFNlc3Npb25zKCk7XG4gICAgfTtcblxuICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5TaGVldDxTZXNzaW9uTGlzdE1vZGFsQ29tcG9uZW50Pih7XG4gICAgICBjb21wb25lbnQ6IFNlc3Npb25MaXN0TW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICBzZXNzaW9uczogdGhpcy5zb3J0ZWRTZXNzaW9ucygpLFxuICAgICAgICB0aXRsZTogdGhpcy50dCgnc2Vzc2lvbnNNb2RhbFRpdGxlJyksXG4gICAgICAgIGNsb3NlTGFiZWw6IHRoaXMudHQoJ2xvZ2luQXR0ZW1wdENsb3NlJyksXG4gICAgICAgIHRoaXNMYWJlbDogdGhpcy5zZXNzaW9uc1RoaXMoKSxcbiAgICAgICAgcmV2b2tlTGFiZWw6IHRoaXMudHQoJ3Nlc3Npb25zUmV2b2tlJyksXG4gICAgICAgIG9uUmV2b2tlLFxuICAgICAgfSxcbiAgICAgIGluaXRpYWxCcmVha3BvaW50OiAxLFxuICAgICAgYnJlYWtwb2ludHM6IFswLCAxXSxcbiAgICAgIHNob3dIYW5kbGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2Vzc2lvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zZXNzaW9uc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsaXN0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5saXN0U2Vzc2lvbnMoKSk7XG4gICAgICB0aGlzLnNlc3Npb25zLnNldChsaXN0KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTZWN1cml0eV0gbGlzdFNlc3Npb25zIGZhaWxlZDonLCBlcnIpO1xuICAgICAgdGhpcy5zZXNzaW9ucy5zZXQoW10pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNlc3Npb25zTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBMZWUgZGVsIG5hbWVzcGFjZSBjb25maWd1cmFkby4gKi9cbiAgcHJvdGVjdGVkIHR0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxufVxuIl19
817
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NlY3VyaXR5LXZpZXcvc2VjdXJpdHktdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUU5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnSVQsb2hEQWpKQyxZQUFZLCtCQUNaLE9BQU8sd0VBQ1AsTUFBTSxvREFDTixNQUFNLGtUQUNOLE9BQU8sMkpBQ1AsZ0JBQWdCLDJFQUNoQixjQUFjLHlFQUNkLGFBQWEsd0VBQ2IsZUFBZSwwR0FDZixtQkFBbUIscUdBQ25CLHFCQUFxQixpRkFDckIsa0JBQWtCLDhFQUNsQix1QkFBdUIsbUZBQ3ZCLHlCQUF5QiwwSEFDekIsNEJBQTRCLDZIQUM1QixpQkFBaUI7OzRGQThPUixxQkFBcUI7a0JBalFqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixPQUFPO3dCQUNQLE1BQU07d0JBQ04sTUFBTTt3QkFDTixPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3FCQUNsQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdJVDt3REE4SFEsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQ29sLCBJb25HcmlkLCBJb25JY29uLCBJb25Sb3cgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgbGFwdG9wT3V0bGluZSwgcGhvbmVQb3J0cmFpdE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgQWN0aW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1oZWFkZXIvYWN0aW9uLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uSGVhZGVyTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWhlYWRlci90eXBlcyc7XG5pbXBvcnQgeyBQYWdlTGlua3NDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGFnZS1saW5rcy9wYWdlLWxpbmtzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlTGlua3NNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9wYWdlLWxpbmtzL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNrZWxldG9uTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2tlbGV0b24tbGF5b3V0L3NrZWxldG9uLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlRW1haWxNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NoYW5nZS1lbWFpbC1tb2RhbC9jaGFuZ2UtZW1haWwtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IENoYW5nZVBhc3N3b3JkTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9jaGFuZ2UtcGFzc3dvcmQtbW9kYWwvY2hhbmdlLXBhc3N3b3JkLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZmFNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL21mYS1tb2RhbC9tZmEtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IExvZ2luQXR0ZW1wdE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9naW4tYXR0ZW1wdC1tb2RhbC9sb2dpbi1hdHRlbXB0LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXNzaW9uTGlzdE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vc2Vzc2lvbi1saXN0LW1vZGFsL3Nlc3Npb24tbGlzdC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgRGV2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvZGV2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBEZXZpY2VJbmZvLCBTZXNzaW9uSW5mbywgVmFsaWRhdGVBY3Rpb25SZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IExlZ2FsTGlua1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sZWdhbC1saW5rL2xlZ2FsLWxpbmsuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbm5lY3RQYWdlUmVmcmVzaCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BhZ2UtcmVmcmVzaC9wYWdlLXJlZnJlc2guc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU2VjdXJpdHlWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTRUNVUklUWV9WSUVXX0kxOE4gfSBmcm9tICcuL3NlY3VyaXR5LXZpZXcuaTE4bic7XG5cbmFkZEljb25zKHsgbGFwdG9wT3V0bGluZSwgcGhvbmVQb3J0cmFpdE91dGxpbmUgfSk7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLlNlY3VyaXR5JztcblxuLyoqXG4gKiBgdmFsLXNlY3VyaXR5LXZpZXdgIOKAlCB2aXN0YSBTZWd1cmlkYWQgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqXG4gKiBQcm9tb3ZpZGEgZGVzZGUgYHNob3djYXNlYCBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS4gUmXDum5lIGVuIHVuYSBzb2xhIHZpc3RhOlxuICogIC0gKipTZXNpb25lcyBhY3RpdmFzKiog4oCUIMO6bmljYSB2aXN0YSB1c2VyLWZhY2luZyBkZSBcImTDs25kZSB0ZW5nbyBzZXNpw7NuXCIuXG4gKiAgICBMaXN0YSBpbmxpbmUgKGxpbWl0IDMpICsgbW9kYWwgXCJWZXIgdG9kYXNcIiAoYHZhbC1zZXNzaW9uLWxpc3QtbW9kYWxgKSArXG4gKiAgICByZXZva2UgaW5kaXZpZHVhbCAvIHJldm9rZS1hbGwgKGNvbiBjb25maXJtYWNpw7NuKS5cbiAqICAtICoqQWN0aW9uLWNhcmRzKiog4oCUIGNhbWJpYXIgY29udHJhc2XDsWEsIGNhbWJpYXIgZW1haWwgeSBNRkEgKGNhZGEgdW5hIGFicmVcbiAqICAgIGVsIG1vZGFsIGNvcnJlc3BvbmRpZW50ZSBkZSBsYSBsaWIpLlxuICogIC0gKipQb2zDrXRpY2FzIGxlZ2FsZXMqKiDigJQgbGlua3MgcmVzdWVsdG9zIHbDrWEgYExlZ2FsTGlua1NlcnZpY2VgIChhcHBzXG4gKiAgICBzYXTDqWxpdGUgYXB1bnRhbiBhbCBtYWluIHNpdGUpLlxuICpcbiAqIERlZXAtbGlua3MgZGVsIGVtYWlsIChnYXRlYWRvcyBwb3IgYGNvbmZpZy5oYW5kbGVEZWVwTGlua3NgLCBkZWZhdWx0IGB0cnVlYCk6XG4gKiAgLSBgP3Rva2VuPS4uLiZhY3Rpb249Li4uYCDihpIgbW9kYWwgYHZhbC1sb2dpbi1hdHRlbXB0LW1vZGFsYCAoYXV0b3JpemFyL2Jsb3F1ZWFyXG4gKiAgICBlbCBudWV2byBhY2Nlc28pLlxuICogIC0gYD9tZmFDb2RlPS4uLmAg4oaSIGFicmUgZWwgbW9kYWwgTUZBIGNvbiBlbCBjw7NkaWdvIHByZS1jYXJnYWRvLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBjb25maWd1cmFkbyAoZGVmYXVsdCBgU2V0dGluZ3MuU2VjdXJpdHlgKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNlY3VyaXR5LXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbkdyaWQsXG4gICAgSW9uUm93LFxuICAgIElvbkNvbCxcbiAgICBJb25JY29uLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQWN0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBBY3Rpb25IZWFkZXJDb21wb25lbnQsXG4gICAgUGFnZUxpbmtzQ29tcG9uZW50LFxuICAgIFNrZWxldG9uTGF5b3V0Q29tcG9uZW50LFxuICAgIENoYW5nZUVtYWlsTW9kYWxDb21wb25lbnQsXG4gICAgQ2hhbmdlUGFzc3dvcmRNb2RhbENvbXBvbmVudCxcbiAgICBNZmFNb2RhbENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicGFnZVwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnLCBjb250ZW50OiBwYWdlVGl0bGUoKSB9XCIgLz5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudDogcGFnZURlc2NyaXB0aW9uKCksXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICA8L2hlYWRlcj5cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dTZXNzaW9ucykge1xuICAgICAgICA8IS0tIDEuIEFjdGl2ZSBzZXNzaW9ucyAtIHVuaWNhIHZpc3RhIHVzZXItZmFjaW5nIGRlIGRvbmRlIHRlbmdvIHNlc2lvbi4gLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIEBpZiAoaGFzT3RoZXJTZXNzaW9ucygpKSB7XG4gICAgICAgICAgICA8dmFsLWFjdGlvbi1oZWFkZXIgW3Byb3BzXT1cInNlc3Npb25zSGVhZGVyKClcIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBzZXNzaW9uc1RpdGxlV2l0aENvdW50KCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICBAaWYgKHNlc3Npb25zTG9hZGluZygpKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24tbGF5b3V0IFtwcm9wc109XCJ7IHByZXNldDogJ2xpc3QnLCByb3dzOiAzIH1cIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoc2Vzc2lvbnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHNlc3Npb25zRW1wdHlMYWJlbCgpLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNlc3Npb25zXCI+XG4gICAgICAgICAgICAgICAgQGZvciAocyBvZiB2aXNpYmxlU2Vzc2lvbnMoKTsgdHJhY2sgcy5zZXNzaW9uSWQpIHtcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNlc3Npb25cIiBbY2xhc3Muc2Vzc2lvbi0tY3VycmVudF09XCJzLmlzQ3VycmVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJzZXNzaW9uX19pY29uXCIgW25hbWVdPVwiZGV2aWNlSWNvbihzKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXNzaW9uX19ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBzLmRldmljZUluZm8gfHwgcy5kZXZpY2VJZCB8fCAn4oCUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogZm9ybWF0U2Vzc2lvbk1ldGEocyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlc3Npb25fX2VuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAocy5pc0N1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vzc2lvbl9fYmFkZ2VcIj57eyBzZXNzaW9uc1RoaXMoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJyZXZva2VPbmVCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cIm9uUmV2b2tlT25lKHMuc2Vzc2lvbklkKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICBAaWYgKGhhc01vcmVTZXNzaW9ucygpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1hY3Rpb25zIHJvdy1hY3Rpb25zLS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJ2aWV3QWxsQnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvcGVuU2Vzc2lvbnNNb2RhbCgpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaGFzQWN0aW9uQ2FyZHMoKSkge1xuICAgICAgICA8IS0tIDIuIFF1aWNrIGFjdGlvbnM6IGNoYW5nZSBwYXNzd29yZCwgY2hhbmdlIGVtYWlsLCBNRkEgLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDxoMj57eyBxdWlja0FjdGlvbnNUaXRsZSgpIH19PC9oMj5cbiAgICAgICAgICA8aW9uLWdyaWQgY2xhc3M9XCJjYXJkcy1ncmlkXCI+XG4gICAgICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbkNhcmRzKCk7IHRyYWNrIGFjdGlvbi50b2tlbikge1xuICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtc209XCI2XCI+XG4gICAgICAgICAgICAgICAgICA8dmFsLWFjdGlvbi1jYXJkIFtwcm9wc109XCJhY3Rpb25cIiAob25DbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbilcIiAvPlxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pb24tcm93PlxuICAgICAgICAgIDwvaW9uLWdyaWQ+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dQb2xpY2llcykge1xuICAgICAgICA8IS0tIDMuIFJlbGF0ZWQgcG9saWNpZXMgLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDxoMj57eyBwb2xpY2llc1RpdGxlKCkgfX08L2gyPlxuICAgICAgICAgIDx2YWwtcGFnZS1saW5rcyBbcHJvcHNdPVwicG9saWN5TGlua3NQcm9wcygpXCIgLz5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICA8dmFsLWNoYW5nZS1lbWFpbC1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cImlzQ2hhbmdlRW1haWxNb2RhbE9wZW4oKVwiXG4gICAgICAgIChjaGFuZ2VkKT1cImlzQ2hhbmdlRW1haWxNb2RhbE9wZW4uc2V0KGZhbHNlKVwiXG4gICAgICAgIChkaXNtaXNzZWQpPVwiaXNDaGFuZ2VFbWFpbE1vZGFsT3Blbi5zZXQoZmFsc2UpXCJcbiAgICAgIC8+XG5cbiAgICAgIDx2YWwtY2hhbmdlLXBhc3N3b3JkLW1vZGFsXG4gICAgICAgIFtpc09wZW5dPVwiaXNDaGFuZ2VQYXNzd29yZE1vZGFsT3BlbigpXCJcbiAgICAgICAgKGNoYW5nZWQpPVwiaXNDaGFuZ2VQYXNzd29yZE1vZGFsT3Blbi5zZXQoZmFsc2UpXCJcbiAgICAgICAgKGRpc21pc3NlZCk9XCJpc0NoYW5nZVBhc3N3b3JkTW9kYWxPcGVuLnNldChmYWxzZSlcIlxuICAgICAgLz5cblxuICAgICAgPHZhbC1tZmEtbW9kYWxcbiAgICAgICAgW2lzT3Blbl09XCJpc01mYU1vZGFsT3BlbigpXCJcbiAgICAgICAgW3ByZWZpbGxDb2RlXT1cIm1mYVByZWZpbGxDb2RlKClcIlxuICAgICAgICAoZGlzbWlzc2VkKT1cIm9uTWZhTW9kYWxEaXNtaXNzZWQoKVwiXG4gICAgICAgIChlbmFibGVkVmlhRGVlcGxpbmspPVwib25NZmFFbmFibGVkVmlhRGVlcGxpbmsoKVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAucGFnZS1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiArIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXZhbC1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgfVxuICAgICAgaDIge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICAgIH1cbiAgICAgIC5jYXJkcy1ncmlkIHtcbiAgICAgICAgbWFyZ2luOiAwIC00cHggMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICAgIC5jYXJkcy1ncmlkIGlvbi1jb2wge1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgICAuY2FyZHMtZ3JpZCBpb24tY29sIHZhbC1hY3Rpb24tY2FyZCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgIC8qIC0tLSBTZXNzaW9ucyBzZWN0aW9uIC0tLSAqL1xuICAgICAgLnNlY3Rpb24tYm9keSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5yb3ctYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICB9XG4gICAgICAucm93LWFjdGlvbnMtLWNlbnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICB9XG4gICAgICAuc2Vzc2lvbnMge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjA0KSk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJhY2tncm91bmQgMC4xNXMgZWFzZSxcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIC5zZXNzaW9uLS1jdXJyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0NSwgMjExLCAxMTEsIDAuMSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg0NSwgMjExLCAxMTEsIDAuMyk7XG4gICAgICB9XG4gICAgICAuc2Vzc2lvbl9faWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjMWExYTFhKTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAuc2Vzc2lvbi0tY3VycmVudCAuc2Vzc2lvbl9faWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2Vzcy1zaGFkZSwgIzI4YmE2Mik7XG4gICAgICB9XG4gICAgICAuc2Vzc2lvbl9fYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgICAuc2Vzc2lvbl9fZW5kIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAuc2Vzc2lvbl9fYmFkZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2Vzcy1zaGFkZSwgIzI4YmE2Mik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDIxMSwgMTExLCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGRldmljZVNlcnZpY2UgPSBpbmplY3QoRGV2aWNlU2VydmljZSk7XG4gIHByaXZhdGUgbGVnYWxMaW5rID0gaW5qZWN0KExlZ2FsTGlua1NlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoU2Vzc2lvblNlcnZpY2UpO1xuICBwcml2YXRlIG1vZGFsU2VydmljZSA9IGluamVjdChNb2RhbFNlcnZpY2UpO1xuICBwcml2YXRlIGNvbmZpcm1EaWFsb2cgPSBpbmplY3QoQ29uZmlybWF0aW9uRGlhbG9nU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgc2UgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYHNlY3VyaXR5Q29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoU2VjdXJpdHlSb3V0ZXNgKS5cbiAgICogYHJlc29sdmVkQ29uZmlnYCBtZXJnZWEgY29uIGxvcyBkZWZhdWx0cyDigJQgYEBJbnB1dGAgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogU2VjdXJpdHlWaWV3Q29uZmlnO1xuXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxTZWN1cml0eVZpZXdDb25maWcsICdvbk1mYUNvbXBsZXRlZCc+PiAmIFBpY2s8U2VjdXJpdHlWaWV3Q29uZmlnLCAnb25NZmFDb21wbGV0ZWQnPlxuICA+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsnc2VjdXJpdHlDb25maWcnXSA/PyB7fSkgYXMgU2VjdXJpdHlWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogU2VjdXJpdHlWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvd1Nlc3Npb25zOiBtZXJnZWQuc2hvd1Nlc3Npb25zID8/IHRydWUsXG4gICAgICBzaG93Q2hhbmdlUGFzc3dvcmQ6IG1lcmdlZC5zaG93Q2hhbmdlUGFzc3dvcmQgPz8gdHJ1ZSxcbiAgICAgIHNob3dDaGFuZ2VFbWFpbDogbWVyZ2VkLnNob3dDaGFuZ2VFbWFpbCA/PyB0cnVlLFxuICAgICAgc2hvd01mYTogbWVyZ2VkLnNob3dNZmEgPz8gdHJ1ZSxcbiAgICAgIHNob3dQb2xpY2llczogbWVyZ2VkLnNob3dQb2xpY2llcyA/PyB0cnVlLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICBoYW5kbGVEZWVwTGlua3M6IG1lcmdlZC5oYW5kbGVEZWVwTGlua3MgPz8gdHJ1ZSxcbiAgICAgIGhvbWVSb3V0ZTogbWVyZ2VkLmhvbWVSb3V0ZSA/PyAnL2FwcC9ob21lJyxcbiAgICAgIG9uTWZhQ29tcGxldGVkOiBtZXJnZWQub25NZmFDb21wbGV0ZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0YSBkZSBkaXNwb3NpdGl2b3MgZGVsIHVzZXIuIE5vIHNlIHJlbmRlcml6YSDigJQgc29sbyBhbGltZW50YSBlbCBtb2RhbFxuICAgKiBkZSBjb25maXJtYWNpw7NuIGRlIGluaWNpbyBkZSBzZXNpw7NuIChgaGFuZGxlQWN0aW9uVG9rZW5Gcm9tVXJsYCkgcGFyYVxuICAgKiByZXNvbHZlciB1biBsYWJlbCBsZWdpYmxlIGRlc2RlIGVsIGB0YXJnZXRJZGAgZGVsIHRva2VuLlxuICAgKi9cbiAgcHJvdGVjdGVkIGRldmljZXMgPSBzaWduYWw8RGV2aWNlSW5mb1tdPihbXSk7XG5cbiAgcmVhZG9ubHkgc2Vzc2lvbnMgPSBzaWduYWw8U2Vzc2lvbkluZm9bXT4oW10pO1xuICByZWFkb25seSBzZXNzaW9uc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcmVhZG9ubHkgaXNDaGFuZ2VFbWFpbE1vZGFsT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGlzQ2hhbmdlUGFzc3dvcmRNb2RhbE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBpc01mYU1vZGFsT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBDw7NkaWdvIE1GQSBkZWwgZGVlcC1saW5rIGAvdmVyaWZ5YCDigJQgcHJlLWNhcmdhIGVsIG1vZGFsIGVuIGNvbmZpcm1hY2nDs24uICovXG4gIHJlYWRvbmx5IG1mYVByZWZpbGxDb2RlID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBwYWdlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdwYWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHBhZ2VEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3BhZ2VEZXNjcmlwdGlvbicpKTtcblxuICByZWFkb25seSBxdWlja0FjdGlvbnNUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3F1aWNrQWN0aW9uc1RpdGxlJykpO1xuICByZWFkb25seSBwb2xpY2llc1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgncG9saWNpZXNUaXRsZScpKTtcblxuICByZWFkb25seSBoYXNBY3Rpb25DYXJkcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWN0aW9uQ2FyZHMoKS5sZW5ndGggPiAwKTtcblxuICByZWFkb25seSBhY3Rpb25DYXJkcyA9IGNvbXB1dGVkPEFjdGlvbkNhcmRNZXRhZGF0YVtdPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnJlc29sdmVkQ29uZmlnKCk7XG4gICAgY29uc3QgY2FyZHM6IEFjdGlvbkNhcmRNZXRhZGF0YVtdID0gW107XG4gICAgaWYgKGNmZy5zaG93Q2hhbmdlUGFzc3dvcmQpIHtcbiAgICAgIGNhcmRzLnB1c2goe1xuICAgICAgICB0b2tlbjogJ2FjdGlvbi1jaGFuZ2UtcGFzc3dvcmQnLFxuICAgICAgICB0aXRsZTogdGhpcy50dCgnY2hhbmdlUGFzc3dvcmQnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudHQoJ2NoYW5nZVBhc3N3b3JkRGVzYycpLFxuICAgICAgICBpY29uOiB7IGlvbmljb246ICdrZXktb3V0bGluZScsIGNvbG9yOiAnZGFyaycsIGJhY2tncm91bmRDb2xvcjogJ2xpZ2h0JyB9LFxuICAgICAgICBzaG93Q2hldnJvbjogdHJ1ZSxcbiAgICAgICAgc2hhZG93ZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNmZy5zaG93Q2hhbmdlRW1haWwpIHtcbiAgICAgIGNhcmRzLnB1c2goe1xuICAgICAgICB0b2tlbjogJ2FjdGlvbi1jaGFuZ2UtZW1haWwnLFxuICAgICAgICB0aXRsZTogdGhpcy50dCgnY2hhbmdlRW1haWwnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudHQoJ2NoYW5nZUVtYWlsRGVzYycpLFxuICAgICAgICBpY29uOiB7IGlvbmljb246ICdtYWlsLW91dGxpbmUnLCBjb2xvcjogJ2RhcmsnLCBiYWNrZ3JvdW5kQ29sb3I6ICdsaWdodCcgfSxcbiAgICAgICAgc2hvd0NoZXZyb246IHRydWUsXG4gICAgICAgIHNoYWRvd2VkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjZmcuc2hvd01mYSkge1xuICAgICAgY2FyZHMucHVzaCh7XG4gICAgICAgIHRva2VuOiAnYWN0aW9uLW1mYScsXG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdtZmEnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudHQoJ21mYURlc2MnKSxcbiAgICAgICAgaWNvbjogeyBpb25pY29uOiAnc2hpZWxkLWNoZWNrbWFyay1vdXRsaW5lJywgY29sb3I6ICdkYXJrJywgYmFja2dyb3VuZENvbG9yOiAnbGlnaHQnIH0sXG4gICAgICAgIHNob3dDaGV2cm9uOiB0cnVlLFxuICAgICAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY2FyZHM7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBGdWVudGUgw7puaWNhIGRlIGxpbmtzIGxlZ2FsZXMgZGVsIHByb2R1Y3RvLiBTZSByZXN1ZWx2ZW4gdsOtYVxuICAgKiBgTGVnYWxMaW5rU2VydmljZWAg4oCUIGFwcHMgc2F0w6lsaXRlIGFwdW50YW4gYWwgbWFpbiBzaXRlLCBlbCBtYWluIHNpdGUgbG9zXG4gICAqIGRlamEgcmVsYXRpdm9zLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5TGlua3NQcm9wcyA9IGNvbXB1dGVkPFBhZ2VMaW5rc01ldGFkYXRhPigoKSA9PiB7XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBsaW5rID0gKHBhdGg6IHN0cmluZywgbGFiZWxLZXk6IHN0cmluZykgPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnR0KGxhYmVsS2V5KSxcbiAgICAgIGhyZWY6IHRoaXMubGVnYWxMaW5rLnJlc29sdmUocGF0aCwgeyBsb2NhbGUgfSksXG4gICAgICBleHRlcm5hbDogdGhpcy5sZWdhbExpbmsuaXNFeHRlcm5hbChwYXRoKSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbGlua3M6IFtcbiAgICAgICAgbGluaygnL2xlZ2FsL3Rlcm1zJywgJ3Rlcm1zTGluaycpLFxuICAgICAgICBsaW5rKCcvbGVnYWwvcHJpdmFjeScsICdwcml2YWN5TGluaycpLFxuICAgICAgICBsaW5rKCcvbGVnYWwvY29va2llcycsICdjb29raWVzTGluaycpLFxuICAgICAgICBsaW5rKCcvbGVnYWwvZGF0YS11c2FnZScsICdkYXRhVXNhZ2VMaW5rJyksXG4gICAgICAgIGxpbmsoJy9sZWdhbC90aGlyZC1wYXJ0eScsICd0aGlyZFBhcnR5TGluaycpLFxuICAgICAgICBsaW5rKCcvbGVnYWwvbGVnYWwtbm90aWNlJywgJ2xlZ2FsTm90aWNlTGluaycpLFxuICAgICAgXSxcbiAgICAgIHNob3dEaXZpZGVyczogdHJ1ZSxcbiAgICB9O1xuICB9KTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2Vzc2lvbnNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcmVhZG9ubHkgc2Vzc2lvbnNUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3Nlc3Npb25zVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHNlc3Npb25zRW1wdHlMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3Nlc3Npb25zRW1wdHknKSk7XG4gIHJlYWRvbmx5IHNlc3Npb25zVGhpcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3Nlc3Npb25zVGhpcycpKTtcblxuICByZWFkb25seSBoYXNPdGhlclNlc3Npb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZXNzaW9ucygpLnNvbWUocyA9PiAhcy5pc0N1cnJlbnQpKTtcblxuICAvKiogU2VzaW9uZXMgb3JkZW5hZGFzOiBjdXJyZW50IHByaW1lcm8sIHJlc3RvIHBvciBjcmVhdGVkQXQgZGVzYy4gKi9cbiAgcmVhZG9ubHkgc29ydGVkU2Vzc2lvbnMgPSBjb21wdXRlZDxTZXNzaW9uSW5mb1tdPigoKSA9PiB7XG4gICAgY29uc3QgYWxsID0gWy4uLnRoaXMuc2Vzc2lvbnMoKV07XG4gICAgcmV0dXJuIGFsbC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBpZiAoYS5pc0N1cnJlbnQgJiYgIWIuaXNDdXJyZW50KSByZXR1cm4gLTE7XG4gICAgICBpZiAoIWEuaXNDdXJyZW50ICYmIGIuaXNDdXJyZW50KSByZXR1cm4gMTtcbiAgICAgIHJldHVybiAoYi5jcmVhdGVkQXQgfHwgJycpLmxvY2FsZUNvbXBhcmUoYS5jcmVhdGVkQXQgfHwgJycpO1xuICAgIH0pO1xuICB9KTtcblxuICAvKiogTGltaXQgZGUgc2VzaW9uZXMgbW9zdHJhZGFzIGlubGluZS4gU2kgdG90YWwgPiBsaW1pdCwgXCJWZXIgdG9kYXNcIiBhYnJlIG1vZGFsLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IFZJU0lCTEVfTElNSVQgPSAzO1xuXG4gIHJlYWRvbmx5IHZpc2libGVTZXNzaW9ucyA9IGNvbXB1dGVkPFNlc3Npb25JbmZvW10+KCgpID0+IHRoaXMuc29ydGVkU2Vzc2lvbnMoKS5zbGljZSgwLCB0aGlzLlZJU0lCTEVfTElNSVQpKTtcblxuICByZWFkb25seSBoYXNNb3JlU2Vzc2lvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNvcnRlZFNlc3Npb25zKCkubGVuZ3RoID4gdGhpcy5WSVNJQkxFX0xJTUlUKTtcblxuICAvKiogVGl0dWxvIGNvbiBjb3VudDogXCJTZXNpb25lcyBhY3RpdmFzICg0KVwiLiBTaW4gY291bnQgc2kgTj0wLiAqL1xuICByZWFkb25seSBzZXNzaW9uc1RpdGxlV2l0aENvdW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG4gPSB0aGlzLnNvcnRlZFNlc3Npb25zKCkubGVuZ3RoO1xuICAgIGlmIChuID09PSAwKSByZXR1cm4gdGhpcy5zZXNzaW9uc1RpdGxlKCk7XG4gICAgcmV0dXJuIHRoaXMudHQoJ3Nlc3Npb25zVGl0bGVDb3VudCcpLnJlcGxhY2UoJ3tufScsIFN0cmluZyhuKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJldm9rZU9uZUJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnc2Vzc2lvbnNSZXZva2UnKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdjbGVhcicsXG4gICAgc2l6ZTogJ3NtYWxsJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICB0b2tlbjogJ3Nlc3Npb24tcmV2b2tlJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHZpZXdBbGxCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ3Nlc3Npb25zVmlld0FsbCcpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ2NsZWFyJyxcbiAgICBzaXplOiAnc21hbGwnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIC8qKiBBY3Rpb24taGVhZGVyIGRlIFNlc2lvbmVzOiB0aXRsZSArIGNvdW50ICsgYm90b24gXCJDZXJyYXIgdG9kYXMgbGFzIGRlbWFzXCIuICovXG4gIHJlYWRvbmx5IHNlc3Npb25zSGVhZGVyID0gY29tcHV0ZWQ8QWN0aW9uSGVhZGVyTWV0YWRhdGE+KCgpID0+ICh7XG4gICAgaGVhZGluZ0tpbmQ6ICd0aXRsZScsXG4gICAgdGl0bGU6IHtcbiAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIGJvbGQ6IHRydWUsXG4gICAgICBjb250ZW50OiB0aGlzLnNlc3Npb25zVGl0bGVXaXRoQ291bnQoKSxcbiAgICB9LFxuICAgIGFjdGlvbjoge1xuICAgICAgdGV4dDogdGhpcy50dCgnc2Vzc2lvbnNSZXZva2VBbGwnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICB0b2tlbjogJ3Nlc3Npb24tcmV2b2tlLWFsbCcsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB0aGlzLm9uUmV2b2tlQWxsKCksXG4gICAgfSxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhucywgU0VDVVJJVFlfVklFV19JMThOKTtcbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcblxuICAgIC8vIENhcmdhIGluaWNpYWwgZGUgc2VzaW9uZXMgLSByZWNhcmdhIHJlYWN0aXZhIGEgY2FtYmlvIGRlIGxvY2FsZSBwYXJhXG4gICAgLy8gcXVlIGxvcyB0ZXh0b3MgeSBtZXRhZGF0b3Mgc2UgbWFudGVuZ2FuIGZyZXNjb3MuIExvcyBkZXZpY2VzIHNvbG8gc2VcbiAgICAvLyBjYXJnYW4gb24tZGVtYW5kIGRlc2RlIGVsIGZsdWpvIGRlbCBtb2RhbCAoaGFuZGxlQWN0aW9uVG9rZW5Gcm9tVXJsKS5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgICAgIGNvbnN0IHNob3dTZXNzaW9ucyA9IHRoaXMucmVzb2x2ZWRDb25maWcoKS5zaG93U2Vzc2lvbnM7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHNob3dTZXNzaW9ucykgdm9pZCB0aGlzLmxvYWRTZXNzaW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuXG4gICAgLy8gUHVsbC10by1yZWZyZXNoIGVzdGFuZGFyIChSZWdsYSAjMykgLSByZS1mZXRjaGVhIGxhcyBzZXNpb25lcyBhY3RpdmFzLlxuICAgIGNvbm5lY3RQYWdlUmVmcmVzaCgoKSA9PiB0aGlzLmxvYWRTZXNzaW9ucygpKTtcblxuICAgIC8vIERlZXAtbGlua3MgZGVsIGVtYWlsIC0gc29sbyBzaSBlc3RhbiBoYWJpbGl0YWRvcyBZIGhheSBydXRhIChtb250YWRhIGNvbW9cbiAgICAvLyByb3V0ZSkuIEVuIG1vZG8gZW1iZWJpZG8gc2luIHJ1dGEgZXMgbm8tb3AuXG4gICAgaWYgKHRoaXMucmVzb2x2ZWRDb25maWcoKS5oYW5kbGVEZWVwTGlua3MgJiYgdGhpcy5yb3V0ZSkge1xuICAgICAgLy8gU2kgZWwgdXNlciBsbGVnbyB2aWEgbGluayBkZWwgZW1haWwgKD90b2tlbj0uLi4mYWN0aW9uPS4uLiksIGFicmUgZWxcbiAgICAgIC8vIG1vZGFsIGRlIGNvbmZpcm1hY2lvbiBwYXJhIGF1dG9yaXphci9yZWNoYXphciBlbCBpbnRlbnRvLlxuICAgICAgdm9pZCB0aGlzLmhhbmRsZUFjdGlvblRva2VuRnJvbVVybCgpO1xuICAgICAgLy8gRGVlcC1saW5rIGRlbCBlbWFpbCBkZSBzZXR1cCBNRkEtZW1haWwgKD9tZmFDb2RlPS4uLikuXG4gICAgICB0aGlzLmhhbmRsZU1mYUNvZGVGcm9tVXJsKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExsZWdhIHbDrWEgbGluayBkZWwgZW1haWwgZGUgXCJudWV2byBhY2Nlc29cIiAoYD90b2tlbj0uLi5gKS4gVmFsaWRhIGVsIHRva2VuXG4gICAqIChzaW4gZWplY3V0YXIpIHkgbGV2YW50YSBlbCBtb2RhbCBkZSBjb25maXJtYWNpw7NuLiBFbCBibG9xdWVvIHNvbG8gc2VcbiAgICogZWplY3V0YSBzaSBlbCB1c2VyIGNvbmZpcm1hIFwibm8gZnVpIHlvXCIgZGVudHJvIGRlbCBtb2RhbC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlQWN0aW9uVG9rZW5Gcm9tVXJsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5yb3V0ZT8uc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3Rva2VuJyk7XG4gICAgaWYgKCF0b2tlbikgcmV0dXJuO1xuXG4gICAgLy8gTGltcGlhID90b2tlbi8/YWN0aW9uIGRlIGxhIFVSTCB5YSAtIGVsIG1vZGFsIGVzIGxhIGZ1ZW50ZSBkZSB2ZXJkYWQ7XG4gICAgLy8gdW4gcmVmcmVzaCBubyBkZWJlIHJlLWFicmlybG8gbmkgcmUtdmFsaWRhci5cbiAgICB2b2lkIHRoaXMucm91dGVyPy5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSA/PyB1bmRlZmluZWQsXG4gICAgICBxdWVyeVBhcmFtczogeyB0b2tlbjogbnVsbCwgYWN0aW9uOiBudWxsIH0sXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGxldCB2YWxpZGF0aW9uOiBWYWxpZGF0ZUFjdGlvblJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5kZXZpY2VTZXJ2aWNlLnZhbGlkYXRlQWN0aW9uKHRva2VuKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzZWN1cml0eS52YWxpZGF0ZUFjdGlvblRva2VuJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICd0b2tlbkFjdGlvbkZhaWxlZCcsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICB0aGlzLnRvYXN0VG9rZW5JbnZhbGlkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzdWVsdmUgZWwgZGlzcG9zaXRpdm8gb2JqZXRpdm8gZGVzZGUgbGEgbGlzdGEgY2FyZ2FkYSBwYXJhIG1vc3RyYXJsby5cbiAgICBhd2FpdCB0aGlzLmxvYWREZXZpY2VzKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5kZXZpY2VzKCkuZmluZChkID0+IGQuZGV2aWNlSWQgPT09IHZhbGlkYXRpb24udGFyZ2V0SWQpO1xuICAgIGNvbnN0IGlzTW9iaWxlID0gdGFyZ2V0Py5wbGF0Zm9ybSA9PT0gJ2lvcycgfHwgdGFyZ2V0Py5wbGF0Zm9ybSA9PT0gJ2FuZHJvaWQnO1xuXG4gICAgY29uc3Qgb25CbG9jayA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZGV2aWNlU2VydmljZS5leGVjdXRlQWN0aW9uKHRva2VuKSk7XG4gICAgICBhd2FpdCB0aGlzLmxvYWREZXZpY2VzKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW48TG9naW5BdHRlbXB0TW9kYWxDb21wb25lbnQ+KHtcbiAgICAgIGNvbXBvbmVudDogTG9naW5BdHRlbXB0TW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICB0aXRsZTogdGhpcy50dCgnbG9naW5BdHRlbXB0VGl0bGUnKSxcbiAgICAgICAgYm9keTogdGhpcy50dCgnbG9naW5BdHRlbXB0Qm9keScpLFxuICAgICAgICBkZXZpY2VMYWJlbDogdGFyZ2V0ID8gdGhpcy5kZXNjcmliZURldmljZSh0YXJnZXQpIDogdGhpcy50dCgnbG9naW5BdHRlbXB0VW5rbm93bkRldmljZScpLFxuICAgICAgICBtZXRhTGFiZWw6IHRhcmdldCA/IHRoaXMuZm9ybWF0RGF0ZSh0YXJnZXQubGFzdEFjdGl2ZSkgOiAnJyxcbiAgICAgICAgbWluZUxhYmVsOiB0aGlzLnR0KCdsb2dpbkF0dGVtcHRNaW5lJyksXG4gICAgICAgIGJsb2NrTGFiZWw6IHRoaXMudHQoJ2xvZ2luQXR0ZW1wdEJsb2NrJyksXG4gICAgICAgIGNsb3NlTGFiZWw6IHRoaXMudHQoJ2xvZ2luQXR0ZW1wdENsb3NlJyksXG4gICAgICAgIGRvbmVMYWJlbDogdGhpcy50dCgnbG9naW5BdHRlbXB0RG9uZScpLFxuICAgICAgICBpc01vYmlsZSxcbiAgICAgICAgb25CbG9jayxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAocmVzdWx0LnJvbGUgPT09ICdibG9ja2VkJykge1xuICAgICAgdGhpcy50b2FzdE9rKHRoaXMudHQoJ2Jsb2NrZWQnKSk7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQucm9sZSA9PT0gJ2Vycm9yJykge1xuICAgICAgdGhpcy50b2FzdFRva2VuSW52YWxpZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9hc3RUb2tlbkludmFsaWQoKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3Rva2VuQWN0aW9uRmFpbGVkJyksXG4gICAgICBkdXJhdGlvbjogMzUwMCxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsb2FkRGV2aWNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbGlzdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZGV2aWNlU2VydmljZS5saXN0RGV2aWNlcygpKTtcbiAgICAgIHRoaXMuZGV2aWNlcy5zZXQobGlzdCB8fCBbXSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmRldmljZXMuc2V0KFtdKTtcbiAgICB9XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGFjdGlvbjogQWN0aW9uQ2FyZE1ldGFkYXRhKTogdm9pZCB7XG4gICAgaWYgKGFjdGlvbi50b2tlbiA9PT0gJ2FjdGlvbi1jaGFuZ2UtcGFzc3dvcmQnKSB7XG4gICAgICB0aGlzLmlzQ2hhbmdlUGFzc3dvcmRNb2RhbE9wZW4uc2V0KHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoYWN0aW9uLnRva2VuID09PSAnYWN0aW9uLWNoYW5nZS1lbWFpbCcpIHtcbiAgICAgIHRoaXMuaXNDaGFuZ2VFbWFpbE1vZGFsT3Blbi5zZXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChhY3Rpb24udG9rZW4gPT09ICdhY3Rpb24tbWZhJykge1xuICAgICAgdGhpcy5tZmFQcmVmaWxsQ29kZS5zZXQodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuaXNNZmFNb2RhbE9wZW4uc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uTWZhTW9kYWxEaXNtaXNzZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pc01mYU1vZGFsT3Blbi5zZXQoZmFsc2UpO1xuICAgIHRoaXMubWZhUHJlZmlsbENvZGUuc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRWwgdXNlciBsbGVnw7MgdsOtYSBsaW5rIGRlbCBlbWFpbCwgY29uZmlybcOzIE1GQSBlbiBlbCBtb2RhbC4gQ2VycmFtb3MgZWxcbiAgICogbW9kYWwgeSwgc2kgaGF5IGhvb2sgYG9uTWZhQ29tcGxldGVkYCwgbG8gaW52b2NhbW9zOyBzaSBubywgbmF2ZWdhbW9zIGFsXG4gICAqIGBob21lUm91dGVgIGNvbmZpZ3VyYWRvIOKAlCBxdWVkYXJzZSBlbiBTZXR0aW5ncyDihpIgU2VjdXJpdHkgZGFyw61hIGxhXG4gICAqIHNlbnNhY2nDs24gZGUgXCJ0YXJlYSBpbmNvbmNsdXNhXCIgY3VhbmRvIGVsIGZsb3cgeWEgdGVybWluw7MuXG4gICAqL1xuICBvbk1mYUVuYWJsZWRWaWFEZWVwbGluaygpOiB2b2lkIHtcbiAgICB0aGlzLmlzTWZhTW9kYWxPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5tZmFQcmVmaWxsQ29kZS5zZXQodW5kZWZpbmVkKTtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnJlc29sdmVkQ29uZmlnKCk7XG4gICAgaWYgKGNmZy5vbk1mYUNvbXBsZXRlZCkge1xuICAgICAgY2ZnLm9uTWZhQ29tcGxldGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZvaWQgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlQnlVcmwoY2ZnLmhvbWVSb3V0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZXAtbGluayBgL3ZlcmlmeT8uLi4mdmVyaWZ5LWNvZGU9YCDihpIgcmVkaXJpZ2UgYSBlc3RhIHZpc3RhIGNvbiBgP21mYUNvZGU9YC5cbiAgICogQWJyZSBlbCBtb2RhbCBNRkEgY29uIGVsIGPDs2RpZ28gcHJlLWNhcmdhZG8gZW4gZWwgcGFzbyBkZSBjb25maXJtYWNpw7NuLlxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVNZmFDb2RlRnJvbVVybCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb2RlID0gdGhpcy5yb3V0ZT8uc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ21mYUNvZGUnKTtcbiAgICBpZiAoIWNvZGUpIHJldHVybjtcbiAgICAvLyBMaW1waWEgZWwgcXVlcnkgcGFyYW0gLSB1biByZWZyZXNoIG5vIGRlYmUgcmUtYWJyaXIgZWwgbW9kYWwuXG4gICAgdm9pZCB0aGlzLnJvdXRlcj8ubmF2aWdhdGUoW10sIHtcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUgPz8gdW5kZWZpbmVkLFxuICAgICAgcXVlcnlQYXJhbXM6IHsgbWZhQ29kZTogbnVsbCB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5tZmFQcmVmaWxsQ29kZS5zZXQoY29kZSk7XG4gICAgdGhpcy5pc01mYU1vZGFsT3Blbi5zZXQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVzY3JpYmVEZXZpY2UoZDogRGV2aWNlSW5mbyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbZC5wbGF0Zm9ybSwgZC5icm93c2VyLCBkLmxvY2F0aW9uXS5maWx0ZXIoQm9vbGVhbik7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJyDCtyAnKSB8fCBkLmRldmljZUlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZvcm1hdERhdGUoaXNvPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzbykgcmV0dXJuICcnO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoaXNvKS50b0xvY2FsZVN0cmluZyh0aGlzLmkxOG4ubGFuZygpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBpc287XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2FzdE9rKG1zZzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgIG1lc3NhZ2U6IG1zZyxcbiAgICAgIGR1cmF0aW9uOiAyMjAwLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZXNzaW9ucyAtIG3DqXRvZG9zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKiBJY29ubyBzZWfDum4gZGV2aWNlOiBwaG9uZSBzaSBVQSBtb2JpbGUsIHNpbm8gbGFwdG9wLiAqL1xuICBkZXZpY2VJY29uKHM6IFNlc3Npb25JbmZvKTogc3RyaW5nIHtcbiAgICBjb25zdCB1YSA9IChzLmRldmljZUluZm8gfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNNb2JpbGUgPSAvaXBob25lfGlwYWR8aXBvZHxhbmRyb2lkfG1vYmlsZS8udGVzdCh1YSk7XG4gICAgcmV0dXJuIGlzTW9iaWxlID8gJ3Bob25lLXBvcnRyYWl0LW91dGxpbmUnIDogJ2xhcHRvcC1vdXRsaW5lJztcbiAgfVxuXG4gIGZvcm1hdFNlc3Npb25NZXRhKHM6IFNlc3Npb25JbmZvKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAocy5sb2NhdGlvbikgcGFydHMucHVzaChzLmxvY2F0aW9uKTtcbiAgICBlbHNlIGlmIChzLmlwKSBwYXJ0cy5wdXNoKHMuaXApO1xuICAgIGlmIChzLmNyZWF0ZWRBdCkgcGFydHMucHVzaChuZXcgRGF0ZShzLmNyZWF0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJyDCtyAnKTtcbiAgfVxuXG4gIGFzeW5jIG9uUmV2b2tlT25lKHNlc3Npb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2Vzc2lvblNlcnZpY2UucmV2b2tlU2Vzc2lvbihzZXNzaW9uSWQpKTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3Nlc3Npb25zUmV2b2tlZCcpLFxuICAgICAgICBkdXJhdGlvbjogMjUwMCxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRTZXNzaW9ucygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnc2VjdXJpdHkucmV2b2tlU2Vzc2lvbicsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2Vzc2lvbnNFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvblJldm9rZUFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbmZpcm1EaWFsb2cuY29uZmlybURlc3RydWN0aXZlKHtcbiAgICAgIHRpdGxlOiB0aGlzLnR0KCdyZXZva2VBbGxDb25maXJtVGl0bGUnKSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3Jldm9rZUFsbENvbmZpcm1NZXNzYWdlJyksXG4gICAgICBjb25maXJtQnV0dG9uOiB7IHRleHQ6IHRoaXMudHQoJ3Jldm9rZUFsbENvbmZpcm0nKSB9LFxuICAgICAgY2FuY2VsQnV0dG9uOiB7IHRleHQ6IHRoaXMudHQoJ2NhbmNlbCcpIH0sXG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHQuY29uZmlybWVkKSByZXR1cm47XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5yZXZva2VBbGxTZXNzaW9ucygpKTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3Nlc3Npb25zQWxsUmV2b2tlZCcpLFxuICAgICAgICBkdXJhdGlvbjogMjUwMCxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRTZXNzaW9ucygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnc2VjdXJpdHkucmV2b2tlQWxsU2Vzc2lvbnMnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3Nlc3Npb25zRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFicmUgbW9kYWwgY29uIGxhIGxpc3RhIGNvbXBsZXRhLiBDYWRhIHJldm9rZSBwYXNhIHBvciBgb25SZXZva2VgLiAqL1xuICBhc3luYyBvcGVuU2Vzc2lvbnNNb2RhbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvblJldm9rZSA9IGFzeW5jIChzZXNzaW9uSWQ6IHN0cmluZyk6IFByb21pc2U8U2Vzc2lvbkluZm9bXT4gPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5yZXZva2VTZXNzaW9uKHNlc3Npb25JZCkpO1xuICAgICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3Nlc3Npb25zUmV2b2tlZCcpLFxuICAgICAgICAgIGR1cmF0aW9uOiAyNTAwLFxuICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgICAgY29udGV4dDogJ3NlY3VyaXR5LnJldm9rZVNlc3Npb24ubW9kYWwnLFxuICAgICAgICAgIGZhbGxiYWNrS2V5OiAnc2Vzc2lvbnNFcnJvcicsXG4gICAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5ucyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMubG9hZFNlc3Npb25zKCk7XG4gICAgICByZXR1cm4gdGhpcy5zb3J0ZWRTZXNzaW9ucygpO1xuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5vcGVuU2hlZXQ8U2Vzc2lvbkxpc3RNb2RhbENvbXBvbmVudD4oe1xuICAgICAgY29tcG9uZW50OiBTZXNzaW9uTGlzdE1vZGFsQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgc2Vzc2lvbnM6IHRoaXMuc29ydGVkU2Vzc2lvbnMoKSxcbiAgICAgICAgdGl0bGU6IHRoaXMudHQoJ3Nlc3Npb25zTW9kYWxUaXRsZScpLFxuICAgICAgICBjbG9zZUxhYmVsOiB0aGlzLnR0KCdsb2dpbkF0dGVtcHRDbG9zZScpLFxuICAgICAgICB0aGlzTGFiZWw6IHRoaXMuc2Vzc2lvbnNUaGlzKCksXG4gICAgICAgIHJldm9rZUxhYmVsOiB0aGlzLnR0KCdzZXNzaW9uc1Jldm9rZScpLFxuICAgICAgICBvblJldm9rZSxcbiAgICAgIH0sXG4gICAgICBpbml0aWFsQnJlYWtwb2ludDogMSxcbiAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMV0sXG4gICAgICBzaG93SGFuZGxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNlc3Npb25zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2Vzc2lvbnNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbGlzdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2Vzc2lvblNlcnZpY2UubGlzdFNlc3Npb25zKCkpO1xuICAgICAgdGhpcy5zZXNzaW9ucy5zZXQobGlzdCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbU2VjdXJpdHldIGxpc3RTZXNzaW9ucyBmYWlsZWQ6JywgZXJyKTtcbiAgICAgIHRoaXMuc2Vzc2lvbnMuc2V0KFtdKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zZXNzaW9uc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiogTGVlIGRlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8uICovXG4gIHByb3RlY3RlZCB0dChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cbn1cbiJdfQ==
@@ -72,13 +72,9 @@ export class SettingsHubComponent {
72
72
  // Auto-registro i18n — respeta override del consumer. Los namespaces pueden
73
73
  // venir de @Input.config o del route data; los resolvemos acá.
74
74
  const labelsNs = this.labelsNs;
75
- if (!this.i18n.hasNamespace(labelsNs)) {
76
- this.i18n.registerContent(labelsNs, SETTINGS_HUB_LABELS_I18N);
77
- }
75
+ this.i18n.registerDefaults(labelsNs, SETTINGS_HUB_LABELS_I18N);
78
76
  const pageNs = this.pageNs;
79
- if (!this.i18n.hasNamespace(pageNs)) {
80
- this.i18n.registerContent(pageNs, SETTINGS_HUB_PAGE_I18N);
81
- }
77
+ this.i18n.registerDefaults(pageNs, SETTINGS_HUB_PAGE_I18N);
82
78
  this.nav.setBackHeader('pageTitle', pageNs, { withMenu: true });
83
79
  }
84
80
  onActionClick(action) {
@@ -149,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
149
145
  }], ctorParameters: () => [], propDecorators: { config: [{
150
146
  type: Input
151
147
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtaHViLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc2V0dGluZ3MtaHViL3NldHRpbmdzLWh1Yi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZGLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBa0RILE1BQU0sT0FBTyxvQkFBb0I7SUF5Qi9CLElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQVks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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25Db2wsIElvbkdyaWQsIElvblJvdyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5cbmltcG9ydCB7IFNldHRpbmdzSHViQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBidWlsZFNldHRpbmdzQ2FyZHMgfSBmcm9tICcuL3NldHRpbmdzLXNlY3Rpb25zJztcbmltcG9ydCB7IFNFVFRJTkdTX0hVQl9MQUJFTFNfSTE4TiwgU0VUVElOR1NfSFVCX1BBR0VfSTE4TiB9IGZyb20gJy4vc2V0dGluZ3MtaHViLmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX0xBQkVMU19OUyA9ICdEYXNoYm9hcmQnO1xuY29uc3QgREVGQVVMVF9QQUdFX05TID0gJ1NldHRpbmdzLlByZWZlcmVuY2VzJztcblxuLyoqXG4gKiBgdmFsLXNldHRpbmdzLWh1YmAg4oCUIHBvcnRhZGEgZGUgbGEgc2VjY2nDs24gU2V0dGluZ3MgKG9yZ2FuaXNtKS4gUmVuZGVyaXphIHVuXG4gKiBoZWFkZXIgKHTDrXR1bG8gKyBkZXNjcmlwY2nDs24pICsgdW4gZ3JpZCBkZSBgdmFsLWFjdGlvbi1jYXJkYCBxdWUgbmF2ZWdhIGEgbGFzXG4gKiBzdWItdmlzdGFzLiBQcm9tb3ZpZG8gZGVzZGUgYHNob3djYXNlYCAoYHBhZ2VzL3NldHRpbmdzL3BhZ2VzL3ByZWZlcmVuY2VzYClcbiAqIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqIExhcyBjYXJkcyBzYWxlbiBkZSBgYnVpbGRTZXR0aW5nc0NhcmRzYCBzb2JyZSBlbCBjYXTDoWxvZ28gZGVmYXVsdFxuICogKGBTRVRUSU5HU19TRUNUSU9OU19DQVRBTE9HYCksIGZpbHRyYWRvL2V4dGVuZGlkby9yZW9yZGVuYWRvIHBvciBsYSBjb25maWcuXG4gKlxuICogTmF2ZWdhY2nDs246IGNhcmRzIGNvbiBgcm91dGVyTGlua2AgbmF2ZWdhbiB2w61hIGBSb3V0ZXJgOyBsYSBjYXJkIGRlIGxvZ291dFxuICogKHNpbiBydXRhKSBpbnZvY2EgYGNvbmZpZy5vbkxvZ291dGAuIENhZGEgY2xpY2sgZW1pdGUgYGNvbmZpZy5vblNlY3Rpb25DbGlja2AuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRvcyBzZXRzIGRlIGRlZmF1bHRzIGkxOG4gKGxhYmVscyArIGhlYWRlcikgZW4gc3VzXG4gKiByZXNwZWN0aXZvcyBuYW1lc3BhY2VzIHNpIGVsIGNvbnN1bWVyIG5vIGxvcyBwcm92ZXnDsy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNldHRpbmdzLWh1YicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25HcmlkLCBJb25Sb3csIElvbkNvbCwgQWN0aW9uQ2FyZENvbXBvbmVudCwgRGlzcGxheUNvbXBvbmVudCwgVGl0bGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHBhZ2VUaXRsZSgpIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBwYWdlRGVzY3JpcHRpb24oKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8aW9uLWdyaWQgY2xhc3M9XCJjYXJkcy1ncmlkXCI+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25DYXJkcygpOyB0cmFjayBhY3Rpb24udG9rZW4pIHtcbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtc209XCI2XCI+XG4gICAgICAgICAgICAgIDx2YWwtYWN0aW9uLWNhcmQgW3Byb3BzXT1cImFjdGlvblwiIChvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soYWN0aW9uKVwiIC8+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAucGFnZS1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgICAgLmNhcmRzLWdyaWQge1xuICAgICAgICBtYXJnaW46IDAgLTRweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICAgIC5jYXJkcy1ncmlkIGlvbi1jb2wge1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NIdWJDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYHNldHRpbmdzSHViQ29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoU2V0dGluZ3NSb3V0ZXNgKS5cbiAgICogYHJlc29sdmVkQ29uZmlnYCBtZXJnZWEgY29uIGRlZmF1bHRzIOKAlCBASW5wdXQgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogU2V0dGluZ3NIdWJDb25maWc7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxcbiAgICBSZXF1aXJlZDxQaWNrPFNldHRpbmdzSHViQ29uZmlnLCAnaTE4bk5hbWVzcGFjZScgfCAncGFnZUkxOG5OYW1lc3BhY2UnPj4gJiBTZXR0aW5nc0h1YkNvbmZpZ1xuICA+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsnc2V0dGluZ3NIdWJDb25maWcnXSA/PyB7fSkgYXMgU2V0dGluZ3NIdWJDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBTZXR0aW5nc0h1YkNvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcgPz8ge30pIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm1lcmdlZCxcbiAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTEFCRUxTX05TLFxuICAgICAgcGFnZUkxOG5OYW1lc3BhY2U6IG1lcmdlZC5wYWdlSTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX1BBR0VfTlMsXG4gICAgfTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBnZXQgbGFiZWxzTnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgcGFnZU5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5wYWdlSTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IHBhZ2VUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgncGFnZVRpdGxlJywgdGhpcy5wYWdlTnMpO1xuICB9KTtcbiAgcmVhZG9ubHkgcGFnZURlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdwYWdlRGVzY3JpcHRpb24nLCB0aGlzLnBhZ2VOcyk7XG4gIH0pO1xuXG4gIC8qKiBDYXJkcyBkZWwgSFVCLCByZXN1ZWx0YXMgZGVzZGUgbGEgY29uZmlnLiAqL1xuICByZWFkb25seSBhY3Rpb25DYXJkcyA9IGNvbXB1dGVkPEFjdGlvbkNhcmRNZXRhZGF0YVtdPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnJlc29sdmVkQ29uZmlnKCk7XG4gICAgcmV0dXJuIGJ1aWxkU2V0dGluZ3NDYXJkcyhrID0+IHRoaXMuaTE4bi50KGssIGNmZy5pMThuTmFtZXNwYWNlKSwge1xuICAgICAgZXhjbHVkZTogY2ZnLmV4Y2x1ZGUsXG4gICAgICBpbmNsdWRlOiBjZmcuaW5jbHVkZSxcbiAgICAgIG9yZGVyOiBjZmcub3JkZXIsXG4gICAgICBpbmNsdWRlTG9nb3V0OiBjZmcuaW5jbHVkZUxvZ291dCxcbiAgICAgIGJhc2VQYXRoOiBjZmcuYmFzZVBhdGgsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEF1dG8tcmVnaXN0cm8gaTE4biDigJQgcmVzcGV0YSBvdmVycmlkZSBkZWwgY29uc3VtZXIuIExvcyBuYW1lc3BhY2VzIHB1ZWRlblxuICAgIC8vIHZlbmlyIGRlIEBJbnB1dC5jb25maWcgbyBkZWwgcm91dGUgZGF0YTsgbG9zIHJlc29sdmVtb3MgYWPDoS5cbiAgICBjb25zdCBsYWJlbHNOcyA9IHRoaXMubGFiZWxzTnM7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKGxhYmVsc05zKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudChsYWJlbHNOcywgU0VUVElOR1NfSFVCX0xBQkVMU19JMThOKTtcbiAgICB9XG4gICAgY29uc3QgcGFnZU5zID0gdGhpcy5wYWdlTnM7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKHBhZ2VOcykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQocGFnZU5zLCBTRVRUSU5HU19IVUJfUEFHRV9JMThOKTtcbiAgICB9XG5cbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBwYWdlTnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGFjdGlvbjogQWN0aW9uQ2FyZE1ldGFkYXRhKTogdm9pZCB7XG4gICAgY29uc3QgdG9rZW4gPSBhY3Rpb24udG9rZW47XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uU2VjdGlvbkNsaWNrPy4odG9rZW4gPz8gJycpO1xuICAgIGlmICh0b2tlbiA9PT0gJ2FjdGlvbi1sb2dvdXQnKSB7XG4gICAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Mb2dvdXQ/LigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoYWN0aW9uLnJvdXRlckxpbmspIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKEFycmF5LmlzQXJyYXkoYWN0aW9uLnJvdXRlckxpbmspID8gYWN0aW9uLnJvdXRlckxpbmsgOiBbYWN0aW9uLnJvdXRlckxpbmtdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtaHViLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc2V0dGluZ3MtaHViL3NldHRpbmdzLWh1Yi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZGLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBa0RILE1BQU0sT0FBTyxvQkFBb0I7SUF5Qi9CLElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQVks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TSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELElBQUksS0FBSyxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbkcsQ0FBQztJQUNILENBQUM7K0dBM0VVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDBHQTdDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVCxtT0F6QlMsT0FBTyx3RUFBRSxNQUFNLG9EQUFFLE1BQU0sa1RBQUUsbUJBQW1CLHFHQUFFLGdCQUFnQiwyRUFBRSxjQUFjOzs0RkE4QzdFLG9CQUFvQjtrQkFqRGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxZQUMvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JUO3dEQWdDUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkNvbCwgSW9uR3JpZCwgSW9uUm93IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IEFjdGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvYWN0aW9uLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9hY3Rpb24tY2FyZC90eXBlcyc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU2V0dGluZ3NIdWJDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGJ1aWxkU2V0dGluZ3NDYXJkcyB9IGZyb20gJy4vc2V0dGluZ3Mtc2VjdGlvbnMnO1xuaW1wb3J0IHsgU0VUVElOR1NfSFVCX0xBQkVMU19JMThOLCBTRVRUSU5HU19IVUJfUEFHRV9JMThOIH0gZnJvbSAnLi9zZXR0aW5ncy1odWIuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTEFCRUxTX05TID0gJ0Rhc2hib2FyZCc7XG5jb25zdCBERUZBVUxUX1BBR0VfTlMgPSAnU2V0dGluZ3MuUHJlZmVyZW5jZXMnO1xuXG4vKipcbiAqIGB2YWwtc2V0dGluZ3MtaHViYCDigJQgcG9ydGFkYSBkZSBsYSBzZWNjacOzbiBTZXR0aW5ncyAob3JnYW5pc20pLiBSZW5kZXJpemEgdW5cbiAqIGhlYWRlciAodMOtdHVsbyArIGRlc2NyaXBjacOzbikgKyB1biBncmlkIGRlIGB2YWwtYWN0aW9uLWNhcmRgIHF1ZSBuYXZlZ2EgYSBsYXNcbiAqIHN1Yi12aXN0YXMuIFByb21vdmlkbyBkZXNkZSBgc2hvd2Nhc2VgIChgcGFnZXMvc2V0dGluZ3MvcGFnZXMvcHJlZmVyZW5jZXNgKVxuICogYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuXG4gKlxuICogTGFzIGNhcmRzIHNhbGVuIGRlIGBidWlsZFNldHRpbmdzQ2FyZHNgIHNvYnJlIGVsIGNhdMOhbG9nbyBkZWZhdWx0XG4gKiAoYFNFVFRJTkdTX1NFQ1RJT05TX0NBVEFMT0dgKSwgZmlsdHJhZG8vZXh0ZW5kaWRvL3Jlb3JkZW5hZG8gcG9yIGxhIGNvbmZpZy5cbiAqXG4gKiBOYXZlZ2FjacOzbjogY2FyZHMgY29uIGByb3V0ZXJMaW5rYCBuYXZlZ2FuIHbDrWEgYFJvdXRlcmA7IGxhIGNhcmQgZGUgbG9nb3V0XG4gKiAoc2luIHJ1dGEpIGludm9jYSBgY29uZmlnLm9uTG9nb3V0YC4gQ2FkYSBjbGljayBlbWl0ZSBgY29uZmlnLm9uU2VjdGlvbkNsaWNrYC5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIHZhbC1wYWdlLXdyYXBwZXIuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZG9zIHNldHMgZGUgZGVmYXVsdHMgaTE4biAobGFiZWxzICsgaGVhZGVyKSBlbiBzdXNcbiAqIHJlc3BlY3Rpdm9zIG5hbWVzcGFjZXMgc2kgZWwgY29uc3VtZXIgbm8gbG9zIHByb3ZlecOzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc2V0dGluZ3MtaHViJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvbkdyaWQsIElvblJvdywgSW9uQ29sLCBBY3Rpb25DYXJkQ29tcG9uZW50LCBEaXNwbGF5Q29tcG9uZW50LCBUaXRsZUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgY29udGVudDogcGFnZVRpdGxlKCkgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHBhZ2VEZXNjcmlwdGlvbigpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIDxpb24tZ3JpZCBjbGFzcz1cImNhcmRzLWdyaWRcIj5cbiAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbkNhcmRzKCk7IHRyYWNrIGFjdGlvbi50b2tlbikge1xuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZS1zbT1cIjZcIj5cbiAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwiYWN0aW9uXCIgKG9uQ2xpY2spPVwib25BY3Rpb25DbGljayhhY3Rpb24pXCIgLz5cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLWdyaWQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuY2FyZHMtZ3JpZCB7XG4gICAgICAgIG1hcmdpbjogMCAtNHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgICAgLmNhcmRzLWdyaWQgaW9uLWNvbCB7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0h1YkNvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgc2V0dGluZ3NIdWJDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hTZXR0aW5nc1JvdXRlc2ApLlxuICAgKiBgcmVzb2x2ZWRDb25maWdgIG1lcmdlYSBjb24gZGVmYXVsdHMg4oCUIEBJbnB1dCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBTZXR0aW5nc0h1YkNvbmZpZztcblxuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFxuICAgIFJlcXVpcmVkPFBpY2s8U2V0dGluZ3NIdWJDb25maWcsICdpMThuTmFtZXNwYWNlJyB8ICdwYWdlSTE4bk5hbWVzcGFjZSc+PiAmIFNldHRpbmdzSHViQ29uZmlnXG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydzZXR0aW5nc0h1YkNvbmZpZyddID8/IHt9KSBhcyBTZXR0aW5nc0h1YkNvbmZpZztcbiAgICBjb25zdCBtZXJnZWQ6IFNldHRpbmdzSHViQ29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWVyZ2VkLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9MQUJFTFNfTlMsXG4gICAgICBwYWdlSTE4bk5hbWVzcGFjZTogbWVyZ2VkLnBhZ2VJMThuTmFtZXNwYWNlID8/IERFRkFVTFRfUEFHRV9OUyxcbiAgICB9O1xuICB9KTtcblxuICBwcml2YXRlIGdldCBsYWJlbHNOcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuICBwcml2YXRlIGdldCBwYWdlTnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLnBhZ2VJMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgcGFnZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdwYWdlVGl0bGUnLCB0aGlzLnBhZ2VOcyk7XG4gIH0pO1xuICByZWFkb25seSBwYWdlRGVzY3JpcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ3BhZ2VEZXNjcmlwdGlvbicsIHRoaXMucGFnZU5zKTtcbiAgfSk7XG5cbiAgLyoqIENhcmRzIGRlbCBIVUIsIHJlc3VlbHRhcyBkZXNkZSBsYSBjb25maWcuICovXG4gIHJlYWRvbmx5IGFjdGlvbkNhcmRzID0gY29tcHV0ZWQ8QWN0aW9uQ2FyZE1ldGFkYXRhW10+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGNmZyA9IHRoaXMucmVzb2x2ZWRDb25maWcoKTtcbiAgICByZXR1cm4gYnVpbGRTZXR0aW5nc0NhcmRzKGsgPT4gdGhpcy5pMThuLnQoaywgY2ZnLmkxOG5OYW1lc3BhY2UpLCB7XG4gICAgICBleGNsdWRlOiBjZmcuZXhjbHVkZSxcbiAgICAgIGluY2x1ZGU6IGNmZy5pbmNsdWRlLFxuICAgICAgb3JkZXI6IGNmZy5vcmRlcixcbiAgICAgIGluY2x1ZGVMb2dvdXQ6IGNmZy5pbmNsdWRlTG9nb3V0LFxuICAgICAgYmFzZVBhdGg6IGNmZy5iYXNlUGF0aCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gQXV0by1yZWdpc3RybyBpMThuIOKAlCByZXNwZXRhIG92ZXJyaWRlIGRlbCBjb25zdW1lci4gTG9zIG5hbWVzcGFjZXMgcHVlZGVuXG4gICAgLy8gdmVuaXIgZGUgQElucHV0LmNvbmZpZyBvIGRlbCByb3V0ZSBkYXRhOyBsb3MgcmVzb2x2ZW1vcyBhY8OhLlxuICAgIGNvbnN0IGxhYmVsc05zID0gdGhpcy5sYWJlbHNOcztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhsYWJlbHNOcywgU0VUVElOR1NfSFVCX0xBQkVMU19JMThOKTtcbiAgICBjb25zdCBwYWdlTnMgPSB0aGlzLnBhZ2VOcztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhwYWdlTnMsIFNFVFRJTkdTX0hVQl9QQUdFX0kxOE4pO1xuXG4gICAgdGhpcy5uYXYuc2V0QmFja0hlYWRlcigncGFnZVRpdGxlJywgcGFnZU5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IEFjdGlvbkNhcmRNZXRhZGF0YSk6IHZvaWQge1xuICAgIGNvbnN0IHRva2VuID0gYWN0aW9uLnRva2VuO1xuICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vblNlY3Rpb25DbGljaz8uKHRva2VuID8/ICcnKTtcbiAgICBpZiAodG9rZW4gPT09ICdhY3Rpb24tbG9nb3V0Jykge1xuICAgICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uTG9nb3V0Py4oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGFjdGlvbi5yb3V0ZXJMaW5rKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShBcnJheS5pc0FycmF5KGFjdGlvbi5yb3V0ZXJMaW5rKSA/IGFjdGlvbi5yb3V0ZXJMaW5rIDogW2FjdGlvbi5yb3V0ZXJMaW5rXSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -74,9 +74,7 @@ export class ShareProfileModalComponent {
74
74
  }));
75
75
  this.displayName = computed(() => this.config().title || this.config().name || this.t('title'));
76
76
  this.caption = computed(() => this.config().caption || this.t('caption'));
77
- if (!this.i18n.hasNamespace('ShareProfileModal')) {
78
- this.i18n.registerContent('ShareProfileModal', SHARE_PROFILE_MODAL_I18N);
79
- }
77
+ this.i18n.registerDefaults('ShareProfileModal', SHARE_PROFILE_MODAL_I18N);
80
78
  }
81
79
  t(key) {
82
80
  this.i18n.lang();
@@ -226,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
226
224
  }], shared: [{
227
225
  type: Output
228
226
  }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NoYXJlLXByb2ZpbGUtbW9kYWwvc2hhcmUtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFHekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBNkIsNEJBQTRCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRWxGOzs7O0dBSUc7QUFDSCxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsT0FBTyxFQUFFLGtEQUFrRDtLQUM1RDtJQUNELEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxlQUFl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WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uTW9kYWwsIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcblxuaW1wb3J0IHsgTW9kYWxTaGVsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tb2RhbC1zaGVsbC9tb2RhbC1zaGVsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlckF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRckNvZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNoYXJlQnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zaGFyZS1idXR0b25zL3NoYXJlLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFFyR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci9xci1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci90eXBlcyc7XG5pbXBvcnQgeyBTaGFyZUV2ZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NoYXJlLWJ1dHRvbnMvdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFNoYXJlUHJvZmlsZU1vZGFsTWV0YWRhdGEsIFNIQVJFX1BST0ZJTEVfTU9EQUxfREVGQVVMVFMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikuIEF1dG8tcmVnaXN0cmFkb3MgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBgU2hhcmVQcm9maWxlTW9kYWxgLiBHYXJhbnRpemEgcXVlIG51bmNhIGhheWEgdW5hIGtleVxuICogZmFsdGFudGUgKHZlciBub3RhIGVuIHZhbHRlY2gtY29tcG9uZW50cy9DTEFVREUubWQgc29icmUgZWwgc3Rvcm0gZGUgQ0QpLlxuICovXG5jb25zdCBTSEFSRV9QUk9GSUxFX01PREFMX0kxOE4gPSB7XG4gIGVzOiB7XG4gICAgdGl0bGU6ICdDb21wYXJ0aXIgcGVyZmlsJyxcbiAgICBjYXB0aW9uOiAnRXNjYW5lYSBlbCBjw7NkaWdvIFFSIHBhcmEgYcOxYWRpcm1lIGNvbW8gY29udGFjdG8nLFxuICB9LFxuICBlbjoge1xuICAgIHRpdGxlOiAnU2hhcmUgcHJvZmlsZScsXG4gICAgY2FwdGlvbjogJ1NjYW4gdGhlIFFSIGNvZGUgdG8gYWRkIG1lIGFzIGEgY29udGFjdCcsXG4gIH0sXG59O1xuXG4vKipcbiAqIGB2YWwtc2hhcmUtcHJvZmlsZS1tb2RhbGAg4oCUIG1vZGFsIHJldXRpbGl6YWJsZSBwYXJhIGNvbXBhcnRpciB1biBwZXJmaWwgKG9cbiAqIGN1YWxxdWllciBlbnRpZGFkKSB2w61hIFFSICsgVVJMLiBTaWd1ZSBsYSBSZWdsYSAjNSAoaGVhZGVyIGNhbsOzbmljbyB2w61hXG4gKiBgdmFsLW1vZGFsLXNoZWxsYCkuXG4gKlxuICogU2VsZi1jb250YWluZWQ6IGdlbmVyYSBlbCBRUiBjb24gYFFyR2VuZXJhdG9yU2VydmljZWAgYSBwYXJ0aXIgZGUgYHVybGAgYWxcbiAqIGFicmlyc2UuIEVsIHBhZHJlIHNvbG8gY29udHJvbGEgYFtpc09wZW5dYCB5IHJlYWNjaW9uYSBhIGAoZGlzbWlzc2VkKWAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtc2hhcmUtcHJvZmlsZS1tb2RhbFxuICogICBbaXNPcGVuXT1cImlzT3BlbigpXCJcbiAqICAgW3Byb3BzXT1cInsgbmFtZTogJ1bDrWN0b3IgVmFsZW56dWVsYScsIHVybDogJ2h0dHBzOi8vYXBwLm15dmFsdGVjaC5jb20vdS92aWN0b3InLCBhdmF0YXJVcmw6ICcvbWUuanBnJyB9XCJcbiAqICAgKGRpc21pc3NlZCk9XCJpc09wZW4uc2V0KGZhbHNlKVwiXG4gKiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zaGFyZS1wcm9maWxlLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25Nb2RhbCxcbiAgICBJb25TcGlubmVyLFxuICAgIE1vZGFsU2hlbGxDb21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBVc2VyQXZhdGFyQ29tcG9uZW50LFxuICAgIFFyQ29kZUNvbXBvbmVudCxcbiAgICBTaGFyZUJ1dHRvbnNDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzT3BlblwiIChkaWREaXNtaXNzKT1cImNsb3NlKClcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPHZhbC1tb2RhbC1zaGVsbCBbdGl0bGVdPVwiJydcIiBbY2xvc2VMYWJlbF09XCJjb25maWcoKS5jbG9zZUxhYmVsIHx8ICcnXCIgKGNsb3NlKT1cImNsb3NlKClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhcmUtcHJvZmlsZVwiPlxuICAgICAgICAgICAgPHZhbC11c2VyLWF2YXRhclxuICAgICAgICAgICAgICBbcHJvcHNdPVwieyBuYW1lOiBjb25maWcoKS5uYW1lLCBhdmF0YXJVcmw6IGNvbmZpZygpLmF2YXRhclVybCwgZW1haWw6IGNvbmZpZygpLmVtYWlsLCBzaXplOiAneGxhcmdlJyB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogZGlzcGxheU5hbWUoKSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnKCkuaGFuZGxlKSB7XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwic2hhcmUtcHJvZmlsZV9faGFuZGxlXCI+e3sgJ0AnICsgY29uZmlnKCkuaGFuZGxlIH19PC9wPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhcmUtcHJvZmlsZV9fcXJcIj5cbiAgICAgICAgICAgICAgQGlmIChxcigpOyBhcyBxclJlc3VsdCkge1xuICAgICAgICAgICAgICAgIDx2YWwtcXItY29kZVxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgcXI6IHFyUmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICB0aGVtZTogY29uZmlnKCkucXJUaGVtZSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVNpemU6IGNvbmZpZygpLnFyU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgYWx0OiBjb25maWcoKS5uYW1lLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAocXJFcnJvcigpKSB7XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzaGFyZS1wcm9maWxlX19xci1lcnJvclwiPnt7IGNvbmZpZygpLnVybCB9fTwvcD5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoYXJlLXByb2ZpbGVfX3FyLWxvYWRpbmdcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImNvbmZpZygpLnFyU2l6ZVwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8cCBjbGFzcz1cInNoYXJlLXByb2ZpbGVfX2NhcHRpb25cIj57eyBjYXB0aW9uKCkgfX08L3A+XG5cbiAgICAgICAgICAgIDx2YWwtc2hhcmUtYnV0dG9uc1xuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNoYXJlRGF0YTogeyB0aXRsZTogY29uZmlnKCkuc2hhcmVUaXRsZSB8fCBjb25maWcoKS5uYW1lLCB0ZXh0OiBjb25maWcoKS5zaGFyZVRleHQsIHVybDogY29uZmlnKCkudXJsIH0sXG4gICAgICAgICAgICAgICAgcGxhdGZvcm1zOiBjb25maWcoKS5wbGF0Zm9ybXMsXG4gICAgICAgICAgICAgICAgbGF5b3V0OiAnaG9yaXpvbnRhbCcsXG4gICAgICAgICAgICAgICAgdmFyaWFudDogJ291dGxpbmUnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgdXNlUGxhdGZvcm1Db2xvcnM6IGZhbHNlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKHNoYXJlQ29tcGxldGUpPVwic2hhcmVkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3ZhbC1tb2RhbC1zaGVsbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLXByb2ZpbGUtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVQcm9maWxlTW9kYWxDb21wb25lbnQge1xuICBwcml2YXRlIHFyR2VuZXJhdG9yID0gaW5qZWN0KFFyR2VuZXJhdG9yU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfaXNPcGVuID0gZmFsc2U7XG5cbiAgLyoqIENvbnRyb2xhIGxhIHZpc2liaWxpZGFkLiBBbCBwYXNhciBkZSBjZXJyYWRvIGEgYWJpZXJ0byBnZW5lcmEgZWwgUVIuICovXG4gIEBJbnB1dCgpXG4gIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBvcGVuaW5nID0gdmFsdWUgJiYgIXRoaXMuX2lzT3BlbjtcbiAgICB0aGlzLl9pc09wZW4gPSB2YWx1ZTtcbiAgICBpZiAob3BlbmluZykge1xuICAgICAgdGhpcy5nZW5lcmF0ZVFyKCk7XG4gICAgfVxuICB9XG4gIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgfVxuXG4gIC8qKiBDb25maWd1cmFjacOzbiBkZWwgbW9kYWwuICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPFNoYXJlUHJvZmlsZU1vZGFsTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqIEVtaXRlIGN1YW5kbyBlbCB1c2VyIGNpZXJyYSBlbCBtb2RhbCAoYm90w7NuIENlcnJhciBvIGJhY2tkcm9wKS4gKi9cbiAgQE91dHB1dCgpIGRpc21pc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRlIGFsIGNvbXBsZXRhciB1bmEgYWNjacOzbiBkZSBjb21wYXJ0aXIuICovXG4gIEBPdXRwdXQoKSBzaGFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNoYXJlRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcXIgPSBzaWduYWw8UXJSZXN1bHQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgcXIgPSB0aGlzLl9xci5hc1JlYWRvbmx5KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcXJFcnJvciA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHFyRXJyb3IgPSB0aGlzLl9xckVycm9yLmFzUmVhZG9ubHkoKTtcblxuICBjb25maWcgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgKHtcbiAgICAgICAgLi4uU0hBUkVfUFJPRklMRV9NT0RBTF9ERUZBVUxUUyxcbiAgICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIH0pIGFzIFNoYXJlUHJvZmlsZU1vZGFsTWV0YWRhdGEgJiB0eXBlb2YgU0hBUkVfUFJPRklMRV9NT0RBTF9ERUZBVUxUU1xuICApO1xuXG4gIGRpc3BsYXlOYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50aXRsZSB8fCB0aGlzLmNvbmZpZygpLm5hbWUgfHwgdGhpcy50KCd0aXRsZScpKTtcbiAgY2FwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuY2FwdGlvbiB8fCB0aGlzLnQoJ2NhcHRpb24nKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKCdTaGFyZVByb2ZpbGVNb2RhbCcpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KCdTaGFyZVByb2ZpbGVNb2RhbCcsIFNIQVJFX1BST0ZJTEVfTU9EQUxfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdTaGFyZVByb2ZpbGVNb2RhbCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZVFyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnKCkudXJsO1xuICAgIGlmICghdXJsKSByZXR1cm47XG4gICAgdGhpcy5fcXIuc2V0KG51bGwpO1xuICAgIHRoaXMuX3FyRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB0cnkge1xuICAgICAgLy8gRm9ybWF0byBTVkc6IGxvIGdlbmVyYSBxci1jb2RlLXN0eWxpbmcgc2luIGNhbnZhcy50b0Jsb2IgKHF1ZSBjdWVsZ2EgZW5cbiAgICAgIC8vIGFsZ3Vub3MgY29udGV4dG9zIGRlIGJ1bmRsZXIvU3Rvcnlib29rKS4gUmVuZGVyaXphIGlndWFsIGRlIG7DrXRpZG8uXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnFyR2VuZXJhdG9yLmdlbmVyYXRlKHsgZGF0YTogdXJsLCB3aWR0aDogdGhpcy5jb25maWcoKS5xclNpemUsIGZvcm1hdDogJ3N2ZycgfSk7XG4gICAgICB0aGlzLl9xci5zZXQocmVzdWx0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIFFSIG9wY2lvbmFsIOKAlCBzaSBmYWxsYSwgbW9zdHJhbW9zIGxhIFVSTCBjb21vIGZhbGxiYWNrIChubyBzcGlubmVyIGV0ZXJubykuXG4gICAgICB0aGlzLl9xci5zZXQobnVsbCk7XG4gICAgICB0aGlzLl9xckVycm9yLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmRpc21pc3NlZC5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NoYXJlLXByb2ZpbGUtbW9kYWwvc2hhcmUtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFHekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBNkIsNEJBQTRCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRWxGOzs7O0dBSUc7QUFDSCxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsT0FBTyxFQUFFLGtEQUFrRDtLQUM1RDtJQUNELEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxlQUFl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LElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXpFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3TEFwRDNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaURULHExQkExREMsWUFBWSwrQkFDWixRQUFRLHNEQUNSLFVBQVUseUdBQ1YsbUJBQW1CLDBJQUNuQixnQkFBZ0IsMkVBQ2hCLG1CQUFtQixxR0FDbkIsZUFBZSxtSUFDZixxQkFBcUI7OzRGQXNEWiwwQkFBMEI7a0JBakV0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFVBQVU7d0JBQ1YsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixxQkFBcUI7cUJBQ3RCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRFQ7d0RBV0csTUFBTTtzQkFEVCxLQUFLO2dCQWFHLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25Nb2RhbCwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBNb2RhbFNoZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21vZGFsLXNoZWxsL21vZGFsLXNoZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFFyQ29kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2hhcmVCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NoYXJlLWJ1dHRvbnMvc2hhcmUtYnV0dG9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFFyUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3R5cGVzJztcbmltcG9ydCB7IFNoYXJlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2hhcmUtYnV0dG9ucy90eXBlcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgU2hhcmVQcm9maWxlTW9kYWxNZXRhZGF0YSwgU0hBUkVfUFJPRklMRV9NT0RBTF9ERUZBVUxUUyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKS4gQXV0by1yZWdpc3RyYWRvcyBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGBTaGFyZVByb2ZpbGVNb2RhbGAuIEdhcmFudGl6YSBxdWUgbnVuY2EgaGF5YSB1bmEga2V5XG4gKiBmYWx0YW50ZSAodmVyIG5vdGEgZW4gdmFsdGVjaC1jb21wb25lbnRzL0NMQVVERS5tZCBzb2JyZSBlbCBzdG9ybSBkZSBDRCkuXG4gKi9cbmNvbnN0IFNIQVJFX1BST0ZJTEVfTU9EQUxfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICB0aXRsZTogJ0NvbXBhcnRpciBwZXJmaWwnLFxuICAgIGNhcHRpb246ICdFc2NhbmVhIGVsIGPDs2RpZ28gUVIgcGFyYSBhw7FhZGlybWUgY29tbyBjb250YWN0bycsXG4gIH0sXG4gIGVuOiB7XG4gICAgdGl0bGU6ICdTaGFyZSBwcm9maWxlJyxcbiAgICBjYXB0aW9uOiAnU2NhbiB0aGUgUVIgY29kZSB0byBhZGQgbWUgYXMgYSBjb250YWN0JyxcbiAgfSxcbn07XG5cbi8qKlxuICogYHZhbC1zaGFyZS1wcm9maWxlLW1vZGFsYCDigJQgbW9kYWwgcmV1dGlsaXphYmxlIHBhcmEgY29tcGFydGlyIHVuIHBlcmZpbCAob1xuICogY3VhbHF1aWVyIGVudGlkYWQpIHbDrWEgUVIgKyBVUkwuIFNpZ3VlIGxhIFJlZ2xhICM1IChoZWFkZXIgY2Fuw7NuaWNvIHbDrWFcbiAqIGB2YWwtbW9kYWwtc2hlbGxgKS5cbiAqXG4gKiBTZWxmLWNvbnRhaW5lZDogZ2VuZXJhIGVsIFFSIGNvbiBgUXJHZW5lcmF0b3JTZXJ2aWNlYCBhIHBhcnRpciBkZSBgdXJsYCBhbFxuICogYWJyaXJzZS4gRWwgcGFkcmUgc29sbyBjb250cm9sYSBgW2lzT3Blbl1gIHkgcmVhY2Npb25hIGEgYChkaXNtaXNzZWQpYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1zaGFyZS1wcm9maWxlLW1vZGFsXG4gKiAgIFtpc09wZW5dPVwiaXNPcGVuKClcIlxuICogICBbcHJvcHNdPVwieyBuYW1lOiAnVsOtY3RvciBWYWxlbnp1ZWxhJywgdXJsOiAnaHR0cHM6Ly9hcHAubXl2YWx0ZWNoLmNvbS91L3ZpY3RvcicsIGF2YXRhclVybDogJy9tZS5qcGcnIH1cIlxuICogICAoZGlzbWlzc2VkKT1cImlzT3Blbi5zZXQoZmFsc2UpXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNoYXJlLXByb2ZpbGUtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbk1vZGFsLFxuICAgIElvblNwaW5uZXIsXG4gICAgTW9kYWxTaGVsbENvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFVzZXJBdmF0YXJDb21wb25lbnQsXG4gICAgUXJDb2RlQ29tcG9uZW50LFxuICAgIFNoYXJlQnV0dG9uc0NvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLW1vZGFsIFtpc09wZW5dPVwiaXNPcGVuXCIgKGRpZERpc21pc3MpPVwiY2xvc2UoKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8dmFsLW1vZGFsLXNoZWxsIFt0aXRsZV09XCInJ1wiIFtjbG9zZUxhYmVsXT1cImNvbmZpZygpLmNsb3NlTGFiZWwgfHwgJydcIiAoY2xvc2UpPVwiY2xvc2UoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1wcm9maWxlXCI+XG4gICAgICAgICAgICA8dmFsLXVzZXItYXZhdGFyXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IG5hbWU6IGNvbmZpZygpLm5hbWUsIGF2YXRhclVybDogY29uZmlnKCkuYXZhdGFyVXJsLCBlbWFpbDogY29uZmlnKCkuZW1haWwsIHNpemU6ICd4bGFyZ2UnIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiBkaXNwbGF5TmFtZSgpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICAgICAgQGlmIChjb25maWcoKS5oYW5kbGUpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzaGFyZS1wcm9maWxlX19oYW5kbGVcIj57eyAnQCcgKyBjb25maWcoKS5oYW5kbGUgfX08L3A+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1wcm9maWxlX19xclwiPlxuICAgICAgICAgICAgICBAaWYgKHFyKCk7IGFzIHFyUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgPHZhbC1xci1jb2RlXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICBxcjogcXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lOiBjb25maWcoKS5xclRoZW1lLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U2l6ZTogY29uZmlnKCkucXJTaXplLFxuICAgICAgICAgICAgICAgICAgICBhbHQ6IGNvbmZpZygpLm5hbWUsXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChxckVycm9yKCkpIHtcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNoYXJlLXByb2ZpbGVfX3FyLWVycm9yXCI+e3sgY29uZmlnKCkudXJsIH19PC9wPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhcmUtcHJvZmlsZV9fcXItbG9hZGluZ1wiIFtzdHlsZS5oZWlnaHQucHhdPVwiY29uZmlnKCkucXJTaXplXCI+XG4gICAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwic2hhcmUtcHJvZmlsZV9fY2FwdGlvblwiPnt7IGNhcHRpb24oKSB9fTwvcD5cblxuICAgICAgICAgICAgPHZhbC1zaGFyZS1idXR0b25zXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2hhcmVEYXRhOiB7IHRpdGxlOiBjb25maWcoKS5zaGFyZVRpdGxlIHx8IGNvbmZpZygpLm5hbWUsIHRleHQ6IGNvbmZpZygpLnNoYXJlVGV4dCwgdXJsOiBjb25maWcoKS51cmwgfSxcbiAgICAgICAgICAgICAgICBwbGF0Zm9ybXM6IGNvbmZpZygpLnBsYXRmb3JtcyxcbiAgICAgICAgICAgICAgICBsYXlvdXQ6ICdob3Jpem9udGFsJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50OiAnb3V0bGluZScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICB1c2VQbGF0Zm9ybUNvbG9yczogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAoc2hhcmVDb21wbGV0ZSk9XCJzaGFyZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdmFsLW1vZGFsLXNoZWxsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1tb2RhbD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc2hhcmUtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZVByb2ZpbGVNb2RhbENvbXBvbmVudCB7XG4gIHByaXZhdGUgcXJHZW5lcmF0b3IgPSBpbmplY3QoUXJHZW5lcmF0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBwcml2YXRlIF9pc09wZW4gPSBmYWxzZTtcblxuICAvKiogQ29udHJvbGEgbGEgdmlzaWJpbGlkYWQuIEFsIHBhc2FyIGRlIGNlcnJhZG8gYSBhYmllcnRvIGdlbmVyYSBlbCBRUi4gKi9cbiAgQElucHV0KClcbiAgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG9wZW5pbmcgPSB2YWx1ZSAmJiAhdGhpcy5faXNPcGVuO1xuICAgIHRoaXMuX2lzT3BlbiA9IHZhbHVlO1xuICAgIGlmIChvcGVuaW5nKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlUXIoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xuICB9XG5cbiAgLyoqIENvbmZpZ3VyYWNpw7NuIGRlbCBtb2RhbC4gKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8U2hhcmVQcm9maWxlTW9kYWxNZXRhZGF0YT4gPSB7fTtcblxuICAvKiogRW1pdGUgY3VhbmRvIGVsIHVzZXIgY2llcnJhIGVsIG1vZGFsIChib3TDs24gQ2VycmFyIG8gYmFja2Ryb3ApLiAqL1xuICBAT3V0cHV0KCkgZGlzbWlzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKiogRW1pdGUgYWwgY29tcGxldGFyIHVuYSBhY2Npw7NuIGRlIGNvbXBhcnRpci4gKi9cbiAgQE91dHB1dCgpIHNoYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcmVFdmVudD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9xciA9IHNpZ25hbDxRclJlc3VsdCB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBxciA9IHRoaXMuX3FyLmFzUmVhZG9ubHkoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9xckVycm9yID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgcXJFcnJvciA9IHRoaXMuX3FyRXJyb3IuYXNSZWFkb25seSgpO1xuXG4gIGNvbmZpZyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICAuLi5TSEFSRV9QUk9GSUxFX01PREFMX0RFRkFVTFRTLFxuICAgICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgfSkgYXMgU2hhcmVQcm9maWxlTW9kYWxNZXRhZGF0YSAmIHR5cGVvZiBTSEFSRV9QUk9GSUxFX01PREFMX0RFRkFVTFRTXG4gICk7XG5cbiAgZGlzcGxheU5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLnRpdGxlIHx8IHRoaXMuY29uZmlnKCkubmFtZSB8fCB0aGlzLnQoJ3RpdGxlJykpO1xuICBjYXB0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5jYXB0aW9uIHx8IHRoaXMudCgnY2FwdGlvbicpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnU2hhcmVQcm9maWxlTW9kYWwnLCBTSEFSRV9QUk9GSUxFX01PREFMX0kxOE4pO1xuICB9XG5cbiAgcHJpdmF0ZSB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdTaGFyZVByb2ZpbGVNb2RhbCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZVFyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnKCkudXJsO1xuICAgIGlmICghdXJsKSByZXR1cm47XG4gICAgdGhpcy5fcXIuc2V0KG51bGwpO1xuICAgIHRoaXMuX3FyRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB0cnkge1xuICAgICAgLy8gRm9ybWF0byBTVkc6IGxvIGdlbmVyYSBxci1jb2RlLXN0eWxpbmcgc2luIGNhbnZhcy50b0Jsb2IgKHF1ZSBjdWVsZ2EgZW5cbiAgICAgIC8vIGFsZ3Vub3MgY29udGV4dG9zIGRlIGJ1bmRsZXIvU3Rvcnlib29rKS4gUmVuZGVyaXphIGlndWFsIGRlIG7DrXRpZG8uXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnFyR2VuZXJhdG9yLmdlbmVyYXRlKHsgZGF0YTogdXJsLCB3aWR0aDogdGhpcy5jb25maWcoKS5xclNpemUsIGZvcm1hdDogJ3N2ZycgfSk7XG4gICAgICB0aGlzLl9xci5zZXQocmVzdWx0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIFFSIG9wY2lvbmFsIOKAlCBzaSBmYWxsYSwgbW9zdHJhbW9zIGxhIFVSTCBjb21vIGZhbGxiYWNrIChubyBzcGlubmVyIGV0ZXJubykuXG4gICAgICB0aGlzLl9xci5zZXQobnVsbCk7XG4gICAgICB0aGlzLl9xckVycm9yLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmRpc21pc3NlZC5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==