bways-report 0.1.7 → 0.1.9

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 (65) hide show
  1. package/esm2022/lib/core/config/bways-report-config.mjs +3 -1
  2. package/esm2022/lib/core/models/index.mjs +1 -1
  3. package/esm2022/lib/core/models/report-api-endpoint.model.mjs +8 -0
  4. package/esm2022/lib/core/models/report-component.model.mjs +1 -1
  5. package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
  6. package/esm2022/lib/core/services/index.mjs +2 -1
  7. package/esm2022/lib/core/services/report-api-execution.service.mjs +188 -0
  8. package/esm2022/lib/core/services/report-data-discovery.service.mjs +76 -4
  9. package/esm2022/lib/data-access/adapters/endpoint-datasource.adapter.mjs +24 -1
  10. package/esm2022/lib/data-access/adapters/endpoint-lookup.adapter.mjs +24 -2
  11. package/esm2022/lib/data-access/adapters/endpoint-tokens.mjs +1 -1
  12. package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +26 -3
  13. package/esm2022/lib/data-access/contracts/lookup.contract.mjs +1 -1
  14. package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +536 -6
  15. package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +31 -3
  16. package/esm2022/lib/features/designer/components/dialogs/report-saved-dialog.component.mjs +2 -2
  17. package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +3 -3
  18. package/esm2022/lib/features/designer/components/property-editor/property-editor-action.component.mjs +3 -3
  19. package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +131 -3
  20. package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +3 -3
  21. package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +128 -28
  22. package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +3 -3
  23. package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +3 -3
  24. package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +3 -3
  25. package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +19 -10
  26. package/esm2022/lib/features/designer/designer.component.mjs +248 -33
  27. package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +2 -1
  28. package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +2 -2
  29. package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +23 -4
  30. package/esm2022/lib/features/runtime/report-execution.service.mjs +21 -4
  31. package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +51 -10
  32. package/esm2022/lib/features/runtime/report-runtime.component.mjs +16 -2
  33. package/esm2022/lib/features/runtime/rpt-report.component.mjs +2 -2
  34. package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +16 -7
  35. package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +41 -1
  36. package/esm2022/lib/primitives/components/index.mjs +2 -1
  37. package/esm2022/lib/primitives/components/radio/rpt-radio.component.mjs +428 -0
  38. package/esm2022/lib/primitives/register-builtins.mjs +51 -2
  39. package/esm2022/lib/provide-reporting.mjs +3 -1
  40. package/fesm2022/bways-report.mjs +2171 -241
  41. package/fesm2022/bways-report.mjs.map +1 -1
  42. package/lib/core/config/bways-report-config.d.ts +13 -0
  43. package/lib/core/models/index.d.ts +2 -1
  44. package/lib/core/models/report-api-endpoint.model.d.ts +30 -0
  45. package/lib/core/models/report-component.model.d.ts +16 -4
  46. package/lib/core/models/report-datasource.model.d.ts +16 -2
  47. package/lib/core/services/index.d.ts +1 -0
  48. package/lib/core/services/report-api-execution.service.d.ts +41 -0
  49. package/lib/core/services/report-data-discovery.service.d.ts +23 -1
  50. package/lib/data-access/adapters/endpoint-datasource.adapter.d.ts +2 -0
  51. package/lib/data-access/adapters/endpoint-lookup.adapter.d.ts +1 -0
  52. package/lib/data-access/adapters/endpoint-tokens.d.ts +3 -0
  53. package/lib/data-access/adapters/http-lookup.adapter.d.ts +2 -1
  54. package/lib/data-access/contracts/lookup.contract.d.ts +3 -0
  55. package/lib/features/designer/components/component-palette/component-palette.component.d.ts +16 -0
  56. package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +17 -0
  57. package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +19 -7
  58. package/lib/features/designer/components/property-editor/property-editor.component.d.ts +1 -1
  59. package/lib/features/designer/designer.component.d.ts +12 -0
  60. package/lib/features/runtime/report-execution.service.d.ts +1 -0
  61. package/lib/features/runtime/report-grid-bridge.component.d.ts +3 -1
  62. package/lib/features/runtime/report-runtime.component.d.ts +13 -1
  63. package/lib/primitives/components/index.d.ts +2 -0
  64. package/lib/primitives/components/radio/rpt-radio.component.d.ts +77 -0
  65. package/package.json +1 -1
@@ -64,6 +64,8 @@ export function normalizeBwaysConfig(config) {
64
64
  executeEndpoint: cleanUrl(config.executeEndpoint),
65
65
  lookupEndpoint,
66
66
  reportsEndpoint: reportsEndpoint ? cleanUrl(reportsEndpoint) : null,
67
+ apisEndpoint: config.apisEndpoint?.trim() ? cleanUrl(config.apisEndpoint) : null,
68
+ apiEndpoints: Array.isArray(config.apiEndpoints) ? config.apiEndpoints : [],
67
69
  allowedCategories,
68
70
  autoParameter: config.autoParameter !== false, // default true
69
71
  routeBase: config.routeBase?.trim() || 'reports',
@@ -80,4 +82,4 @@ export function normalizeBwaysConfig(config) {
80
82
  function cleanUrl(url) {
81
83
  return url.trim().replace(/\/+$/, '');
82
84
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYndheXMtcmVwb3J0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvY29uZmlnL2J3YXlzLXJlcG9ydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQXVCSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFvQztJQUNuRSxVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsUUFBUTtJQUN2QixhQUFhLEVBQUUsU0FBUztJQUN4QixXQUFXLEVBQUUsTUFBTTtJQUNuQixNQUFNLEVBQUUsUUFBUTtDQUNqQixDQUFDO0FBbUtGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUF5QjtJQUM1RCw4QkFBOEI7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksT0FBTyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ25HLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFO1lBQ2hFLDBGQUEwRixDQUMzRixDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLE9BQU8sTUFBTSxDQUFDLGNBQWMsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvRyxNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRTtZQUNwRSxpRkFBaUYsQ0FDbEYsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFB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bnRlbnQiOlsiLyoqXG4gKiBTaW1wbGlmaWVkIGNvbmZpZ3VyYXRpb24gZm9yIGJ3YXlzLXJlcG9ydC5cbiAqXG4gKiBUaGlzIGlzIHRoZSBkZXZlbG9wZXItZmFjaW5nIGNvbmZpZyBvYmplY3QgdGhhdCBtYWtlcyBpbnRlZ3JhdGlvblxuICogYXMgc2ltcGxlIGFzIDPigJM0IGVuZHBvaW50IFVSTHMgKyBvcHRpb25hbCBvdmVycmlkZXMuXG4gKiBUaGUgbm9ybWFsaXplciBjb252ZXJ0cyB0aGlzIGludG8gdGhlIGludGVybmFsIGBSZXBvcnRpbmdDb25maWdgXG4gKiBwbHVzIGFkYXB0ZXIgd2lyaW5nIGRlY2lzaW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXNzaW9uQ29udGV4dFByb3ZpZGVyLCBTZXNzaW9uQ29udGV4dFNvdXJjZSB9IGZyb20gJy4uL3Rva2Vucy9zZXNzaW9uLWNvbnRleHQudG9rZW4nO1xuXG4vKipcbiAqIFBhbGV0dGUgY29tcG9uZW50IGNhdGVnb3J5IG5hbWVzIHRoZSBkZXZlbG9wZXIgY2FuIHVzZVxuICogd2hlbiByZXN0cmljdGluZyB0aGUgZGVzaWduZXIgY29tcG9uZW50IHBhbGV0dGUuXG4gKlxuICogTWFwcyB0byBpbnRlcm5hbCByZWdpc3RyeSBjYXRlZ29yeSBJRHM6XG4gKiAtIGBmb3JtSW5wdXRzYCAgICDihpIgYGlucHV0YFxuICogLSBgYWN0aW9uQnV0dG9uc2Ag4oaSIGBhY3Rpb25gXG4gKiAtIGBkaXNwbGF5TGFiZWxzYCDihpIgYGRpc3BsYXlgXG4gKiAtIGBkYXRhTG9va3Vwc2AgICDihpIgYGRhdGFgXG4gKiAtIGBsYXlvdXRgICAgICAgICDihpIgYGxheW91dGBcbiAqL1xuZXhwb3J0IHR5cGUgUGFsZXR0ZUNhdGVnb3J5ID1cbiAgfCAnZm9ybUlucHV0cydcbiAgfCAnYWN0aW9uQnV0dG9ucydcbiAgfCAnZGlzcGxheUxhYmVscydcbiAgfCAnZGF0YUxvb2t1cHMnXG4gIHwgJ2xheW91dCc7XG5cbi8qKlxuICogTWFwcGluZyBmcm9tIGZyaWVuZGx5IHBhbGV0dGUgY2F0ZWdvcnkgbmFtZXMgdG8gaW50ZXJuYWwgY2F0ZWdvcnkgSURzLlxuICovXG5leHBvcnQgY29uc3QgUEFMRVRURV9DQVRFR09SWV9NQVA6IFJlY29yZDxQYWxldHRlQ2F0ZWdvcnksIHN0cmluZz4gPSB7XG4gIGZvcm1JbnB1dHM6ICdpbnB1dCcsXG4gIGFjdGlvbkJ1dHRvbnM6ICdhY3Rpb24nLFxuICBkaXNwbGF5TGFiZWxzOiAnZGlzcGxheScsXG4gIGRhdGFMb29rdXBzOiAnZGF0YScsXG4gIGxheW91dDogJ2xheW91dCcsXG59O1xuXG4vKipcbiAqIFNpbXBsaWZpZWQsIGRldmVsb3Blci1mYWNpbmcgY29uZmlndXJhdGlvbiBmb3IgYndheXMtcmVwb3J0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXBvcnRDb25maWc6IEJ3YXlzUmVwb3J0Q29uZmlnID0ge1xuICogICBzcEVuZHBvaW50OiAgICAgICcvYXBpL3JlcG9ydGluZy9wcm9jZWR1cmVzJyxcbiAqICAgdGFibGVzRW5kcG9pbnQ6ICAnL2FwaS9yZXBvcnRpbmcvdGFibGVzJyxcbiAqICAgZXhlY3V0ZUVuZHBvaW50OiAnL2FwaS9yZXBvcnRpbmcvZXhlY3V0ZScsXG4gKiAgIHJlcG9ydHNFbmRwb2ludDogJy9hcGkvcmVwb3J0aW5nL3JlcG9ydHMnLFxuICogICBjb21wb25lbnRzOiBbJ2Zvcm1JbnB1dHMnLCAnYWN0aW9uQnV0dG9ucycsICdkaXNwbGF5TGFiZWxzJ10sXG4gKiAgIGF1dG9QYXJhbWV0ZXI6IHRydWUsXG4gKiAgIHNlc3Npb246ICgpID0+IGluamVjdChBdXRoU2VydmljZSkuc2Vzc2lvbigpLFxuICogICByb3V0ZUJhc2U6ICdyZXBvcnRzJyxcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCd2F5c1JlcG9ydENvbmZpZyB7XG4gIC8vIOKUgOKUgOKUgCBCYWNrZW5kIGVuZHBvaW50cyAodGhlIDPigJM0IGVuZHBvaW50IGNvbnRyYWN0KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogR0VUIGVuZHBvaW50IHJldHVybmluZyB0aGUgbGlzdCBvZiBzdG9yZWQgcHJvY2VkdXJlcyB3aXRoIHRoZWlyIHBhcmFtZXRlcnMuXG4gICAqIFJlc3BvbnNlOiBgW3sgbmFtZSwgc2NoZW1hLCBwYXJhbWV0ZXJzOiBbeyBuYW1lLCBzcWxUeXBlLCByZXF1aXJlZCwgZGVmYXVsdFZhbHVlPyB9XSB9XWBcbiAgICovXG4gIHNwRW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogR0VUIGVuZHBvaW50IHJldHVybmluZyB0aGUgbGlzdCBvZiB0YWJsZXMvdmlld3Mgd2l0aCB0aGVpciBjb2x1bW5zLlxuICAgKiBSZXNwb25zZTogYFt7IG5hbWUsIHNjaGVtYSwgdHlwZTogJ3RhYmxlJ3wndmlldycsIGNvbHVtbnM6IFt7IG5hbWUsIHNxbFR5cGUgfV0gfV1gXG4gICAqL1xuICB0YWJsZXNFbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQT1NUIGVuZHBvaW50IHRoYXQgcnVucyBhIHN0b3JlZCBwcm9jZWR1cmUgb3IgdGFibGUgcXVlcnkgYW5kIHJldHVybnMgcm93cy5cbiAgICogQm9keTogYHsga2luZDogJ3Byb2NlZHVyZSd8J3RhYmxlJywgbmFtZSwgc2NoZW1hLCBwYXJhbWV0ZXJzLCBjb2x1bW5zPywgdG9wPyB9YFxuICAgKiBSZXNwb25zZTogYHJvd3NbXWBcbiAgICovXG4gIGV4ZWN1dGVFbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBQT1NUIGVuZHBvaW50IGZvciBmZXRjaGluZyBkcm9wZG93biBtYXN0ZXIgZGF0YSBhbmQgbG9va3VwIG9wdGlvbnMuXG4gICAqIERlZmF1bHRzIHRvIHJlcGxhY2luZyBgL2V4ZWN1dGVgIHdpdGggYC9sb29rdXBgIGlmIG9taXR0ZWQuXG4gICAqL1xuICBsb29rdXBFbmRwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgQ1JVRCBlbmRwb2ludCBmb3Igc2F2aW5nL2xvYWRpbmcgcmVwb3J0IHBhZ2UgZGVmaW5pdGlvbnMuXG4gICAqIFdoZW4gb21pdHRlZCwgcmVwb3J0cyBhcmUgc2F2ZWQgdG8gYnJvd3NlciBsb2NhbFN0b3JhZ2Ugd2l0aCBhIGNvbnNvbGUgd2FybmluZy5cbiAgICogLSBHRVQgICAg4oaSIGxpc3Qgc2F2ZWQgcmVwb3J0c1xuICAgKiAtIEdFVCAvOmlkIOKGkiBsb2FkIGEgc3BlY2lmaWMgcmVwb3J0XG4gICAqIC0gUE9TVCAgIOKGkiBzYXZlIGEgbmV3IG9yIHVwZGF0ZWQgcmVwb3J0XG4gICAqIC0gREVMRVRFIC86aWQg4oaSIGRlbGV0ZSBhIHJlcG9ydFxuICAgKi9cbiAgcmVwb3J0c0VuZHBvaW50Pzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgOKUgCBEZXNpZ25lciBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgcGFsZXR0ZSBncm91cHMgdG8gc2hvdyBpbiB0aGUgZGVzaWduZXIuXG4gICAqIERlZmF1bHRzIHRvIGFsbCBncm91cHMgd2hlbiBub3Qgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBAZXhhbXBsZSBbJ2Zvcm1JbnB1dHMnLCAnYWN0aW9uQnV0dG9ucycsICdkaXNwbGF5TGFiZWxzJ11cbiAgICovXG4gIGNvbXBvbmVudHM/OiBQYWxldHRlQ2F0ZWdvcnlbXTtcblxuICAvKipcbiAgICogV2hlbiB0cnVlLCBzdG9yZWQgcHJvY2VkdXJlIHBhcmFtZXRlcnMgbGlrZSBgQEJyYW5jaElkYCwgYEBDb21wYW55SWRgXG4gICAqIGFyZSBhdXRvbWF0aWNhbGx5IGJvdW5kIGZyb20gdGhlIHNlc3Npb24gY29udGV4dC5cbiAgICogUmVxdWlyZXMgYHNlc3Npb25gIHRvIGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhdXRvUGFyYW1ldGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2Vzc2lvbiBjb250ZXh0IHByb3ZpZGVyIGZvciBhdXRvLXBhcmFtZXRlciBiaW5kaW5nLlxuICAgKiBDYW4gYmUgYSBzZXJ2aWNlIGNsYXNzIGltcGxlbWVudGluZyBgU2Vzc2lvbkNvbnRleHRQcm92aWRlcmAsXG4gICAqIGEgcGxhaW4gb2JqZWN0LCBhIGZhY3RvcnkgZnVuY3Rpb24sIGFuIE9ic2VydmFibGUsIG9yIGEgU2lnbmFsLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBzZXNzaW9uOiBQbGF5Z3JvdW5kU2Vzc2lvblNlcnZpY2VcbiAgICogc2Vzc2lvbjogKCkgPT4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5zZXNzaW9uKClcbiAgICogc2Vzc2lvbjogeyBicmFuY2hJZDogMSwgY29tcGFueUlkOiAxMCB9XG4gICAqL1xuICBzZXNzaW9uPzogVHlwZTxTZXNzaW9uQ29udGV4dFByb3ZpZGVyPiB8IFNlc3Npb25Db250ZXh0U291cmNlIHwgKCgpID0+IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgc2VydmljZSBjbGFzcyBpbXBsZW1lbnRpbmcgYFNlc3Npb25Db250ZXh0UHJvdmlkZXJgLlxuICAgKiBFcXVpdmFsZW50IHRvIGBzZXNzaW9uOiBNeVNlc3Npb25TZXJ2aWNlYC5cbiAgICovXG4gIHNlc3Npb25Qcm92aWRlcj86IFR5cGU8U2Vzc2lvbkNvbnRleHRQcm92aWRlcj47XG5cbiAgLy8g4pSA4pSA4pSAIExpdmUgcGFnZSBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGxpdmUgcmVwb3J0IHBhZ2VzLlxuICAgKiBHZW5lcmF0ZWQgcmVwb3J0IHBhZ2VzIG9wZW4gYXQgYC88cm91dGVCYXNlPi88c2x1Zz5gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAncmVwb3J0cydcbiAgICovXG4gIHJvdXRlQmFzZT86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgQW5ndWxhciBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBkYXRhIGdyaWRzLlxuICAgKiBQYXNzIHlvdXIgZ3JpZCBjb21wb25lbnQgKEJXYXlzLWdyaWQsIEFHIEdyaWQgd3JhcHBlciwgZXRjLikuXG4gICAqL1xuICBncmlkPzogVHlwZTx1bmtub3duPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgQW5ndWxhciBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBjaGFydHMuXG4gICAqL1xuICBjaGFydD86IFR5cGU8dW5rbm93bj47XG5cbiAgLy8g4pSA4pSA4pSAIEdlbmVyYWwgb3B0aW9ucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogRGVmYXVsdCBwYWdlIHNpemUgZm9yIGdyaWQgcmVzdWx0cy4gQGRlZmF1bHQgMjUgKi9cbiAgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyO1xuXG4gIC8qKiBEYXRlIGZvcm1hdCBzdHJpbmcgdXNlZCBhY3Jvc3MgdGhlIGxpYnJhcnkuIEBkZWZhdWx0ICdkZC9NTS95eXl5JyAqL1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKiBUaW1lb3V0IGluIG1zIGZvciBsb29rdXAvZXhlY3V0ZSBxdWVyaWVzLiBAZGVmYXVsdCAzMDAwMDAgKi9cbiAgbG9va3VwVGltZW91dE1zPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBub3JtYWxpemluZyBhIGBCd2F5c1JlcG9ydENvbmZpZ2AgZm9yIGludGVybmFsIHVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3JtYWxpemVkQndheXNDb25maWcge1xuICAvKiogRW5kcG9pbnQgVVJMcyAqL1xuICBzcEVuZHBvaW50OiBzdHJpbmc7XG4gIHRhYmxlc0VuZHBvaW50OiBzdHJpbmc7XG4gIGV4ZWN1dGVFbmRwb2ludDogc3RyaW5nO1xuICBsb29rdXBFbmRwb2ludDogc3RyaW5nIHwgbnVsbDtcbiAgcmVwb3J0c0VuZHBvaW50OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBSZXNvbHZlZCBpbnRlcm5hbCBjYXRlZ29yeSBJRHMgKGUuZy4gWydpbnB1dCcsICdhY3Rpb24nLCAnZGlzcGxheSddKSAqL1xuICBhbGxvd2VkQ2F0ZWdvcmllczogc3RyaW5nW10gfCBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIGF1dG8tcGFyYW1ldGVyIGJpbmRpbmcgaXMgZW5hYmxlZCAqL1xuICBhdXRvUGFyYW1ldGVyOiBib29sZWFuO1xuXG4gIC8qKiBSb3V0ZSBiYXNlIHBhdGggKi9cbiAgcm91dGVCYXNlOiBzdHJpbmc7XG5cbiAgLyoqIFNlc3Npb24gc291cmNlICovXG4gIHNlc3Npb246IFR5cGU8U2Vzc2lvbkNvbnRleHRQcm92aWRlcj4gfCBTZXNzaW9uQ29udGV4dFNvdXJjZSB8ICgoKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgfCBudWxsO1xuICBzZXNzaW9uUHJvdmlkZXI6IFR5cGU8U2Vzc2lvbkNvbnRleHRQcm92aWRlcj4gfCBudWxsO1xuXG4gIC8qKiBHcmlkIGNvbXBvbmVudCAqL1xuICBncmlkQ29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgbnVsbDtcblxuICAvKiogQ2hhcnQgY29tcG9uZW50ICovXG4gIGNoYXJ0Q29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgbnVsbDtcblxuICAvKiogR2VuZXJhbCBjb25maWcgdmFsdWVzICovXG4gIGRlZmF1bHRQYWdlU2l6ZTogbnVtYmVyO1xuICBkYXRlRm9ybWF0OiBzdHJpbmc7XG4gIGxvb2t1cFRpbWVvdXRNczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBgQndheXNSZXBvcnRDb25maWdgIGludG8gdGhlIGludGVybmFsIGZvcm1hdC5cbiAqIFZhbGlkYXRlcyByZXF1aXJlZCBmaWVsZHMgYW5kIG1hcHMgZnJpZW5kbHkgbmFtZXMgdG8gaW50ZXJuYWwgSURzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQndheXNDb25maWcoY29uZmlnOiBCd2F5c1JlcG9ydENvbmZpZyk6IE5vcm1hbGl6ZWRCd2F5c0NvbmZpZyB7XG4gIC8vIFZhbGlkYXRlIHJlcXVpcmVkIGVuZHBvaW50c1xuICBpZiAoIWNvbmZpZy5zcEVuZHBvaW50IHx8IHR5cGVvZiBjb25maWcuc3BFbmRwb2ludCAhPT0gJ3N0cmluZycgfHwgY29uZmlnLnNwRW5kcG9pbnQudHJpbSgpID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBcInNwRW5kcG9pbnRcIiBpcyByZXF1aXJlZCBpbiBCd2F5c1JlcG9ydENvbmZpZy4gYCArXG4gICAgICBgUGxlYXNlIHByb3ZpZGUgdGhlIFVSTCBmb3IgZmV0Y2hpbmcgc3RvcmVkIHByb2NlZHVyZXMsIGUuZy4gJy9hcGkvcmVwb3J0aW5nL3Byb2NlZHVyZXMnLmBcbiAgICApO1xuICB9XG4gIGlmICghY29uZmlnLnRhYmxlc0VuZHBvaW50IHx8IHR5cGVvZiBjb25maWcudGFibGVzRW5kcG9pbnQgIT09ICdzdHJpbmcnIHx8IGNvbmZpZy50YWJsZXNFbmRwb2ludC50cmltKCkgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFtid2F5cy1yZXBvcnRdIFwidGFibGVzRW5kcG9pbnRcIiBpcyByZXF1aXJlZCBpbiBCd2F5c1JlcG9ydENvbmZpZy4gYCArXG4gICAgICBgUGxlYXNlIHByb3ZpZGUgdGhlIFVSTCBmb3IgZmV0Y2hpbmcgdGFibGVzL3ZpZXdzLCBlLmcuICcvYXBpL3JlcG9ydGluZy90YWJsZXMnLmBcbiAgICApO1xuICB9XG4gIGlmICghY29uZmlnLmV4ZWN1dGVFbmRwb2ludCB8fCB0eXBlb2YgY29uZmlnLmV4ZWN1dGVFbmRwb2ludCAhPT0gJ3N0cmluZycgfHwgY29uZmlnLmV4ZWN1dGVFbmRwb2ludC50cmltKCkgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFtid2F5cy1yZXBvcnRdIFwiZXhlY3V0ZUVuZHBvaW50XCIgaXMgcmVxdWlyZWQgaW4gQndheXNSZXBvcnRDb25maWcuIGAgK1xuICAgICAgYFBsZWFzZSBwcm92aWRlIHRoZSBVUkwgZm9yIGV4ZWN1dGluZyBxdWVyaWVzLCBlLmcuICcvYXBpL3JlcG9ydGluZy9leGVjdXRlJy5gXG4gICAgKTtcbiAgfVxuXG4gIC8vIE1hcCBjb21wb25lbnQgcGFsZXR0ZSBjYXRlZ29yaWVzXG4gIGxldCBhbGxvd2VkQ2F0ZWdvcmllczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcbiAgaWYgKGNvbmZpZy5jb21wb25lbnRzICYmIGNvbmZpZy5jb21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICBhbGxvd2VkQ2F0ZWdvcmllcyA9IGNvbmZpZy5jb21wb25lbnRzLm1hcCgoZnJpZW5kbHkpID0+IHtcbiAgICAgIGNvbnN0IGludGVybmFsID0gUEFMRVRURV9DQVRFR09SWV9NQVBbZnJpZW5kbHldO1xuICAgICAgaWYgKCFpbnRlcm5hbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFtid2F5cy1yZXBvcnRdIFVua25vd24gY29tcG9uZW50IGNhdGVnb3J5IFwiJHtmcmllbmRseX1cIi4gYCArXG4gICAgICAgICAgYFZhbGlkIG9wdGlvbnM6ICR7T2JqZWN0LmtleXMoUEFMRVRURV9DQVRFR09SWV9NQVApLmpvaW4oJywgJyl9LmBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZyaWVuZGx5OyAvLyBQYXNzIHRocm91Z2ggdW5rbm93biBjYXRlZ29yaWVzIGFzLWlzXG4gICAgICB9XG4gICAgICByZXR1cm4gaW50ZXJuYWw7XG4gICAgfSk7XG4gIH1cblxuICAvLyBXYXJuIGlmIHJlcG9ydHNFbmRwb2ludCBpcyBtaXNzaW5nXG4gIGNvbnN0IHJlcG9ydHNFbmRwb2ludCA9IGNvbmZpZy5yZXBvcnRzRW5kcG9pbnQ/LnRyaW0oKSB8fCBudWxsO1xuICBpZiAoIXJlcG9ydHNFbmRwb2ludCkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBObyBcInJlcG9ydHNFbmRwb2ludFwiIHByb3ZpZGVkLiBSZXBvcnRzIHdpbGwgYmUgc2F2ZWQgdG8gYnJvd3NlciBsb2NhbFN0b3JhZ2UuIGAgK1xuICAgICAgYEZvciBzaGFyZWQgcmVwb3J0IG1lbnVzIGFjcm9zcyB1c2VycywgcHJvdmlkZSBhIHJlcG9ydHNFbmRwb2ludCwgZS5nLiAnL2FwaS9yZXBvcnRpbmcvcmVwb3J0cycuYFxuICAgICk7XG4gIH1cblxuICBjb25zdCBsb29rdXBFbmRwb2ludCA9IGNvbmZpZy5sb29rdXBFbmRwb2ludD8udHJpbSgpXG4gICAgPyBjbGVhblVybChjb25maWcubG9va3VwRW5kcG9pbnQpXG4gICAgOiBjb25maWcuZXhlY3V0ZUVuZHBvaW50LmluY2x1ZGVzKCcvZXhlY3V0ZScpXG4gICAgPyBjbGVhblVybChjb25maWcuZXhlY3V0ZUVuZHBvaW50LnJlcGxhY2UoL1xcL2V4ZWN1dGVcXC8/JC8sICcvbG9va3VwJykpXG4gICAgOiBudWxsO1xuXG4gIHJldHVybiB7XG4gICAgc3BFbmRwb2ludDogY2xlYW5VcmwoY29uZmlnLnNwRW5kcG9pbnQpLFxuICAgIHRhYmxlc0VuZHBvaW50OiBjbGVhblVybChjb25maWcudGFibGVzRW5kcG9pbnQpLFxuICAgIGV4ZWN1dGVFbmRwb2ludDogY2xlYW5VcmwoY29uZmlnLmV4ZWN1dGVFbmRwb2ludCksXG4gICAgbG9va3VwRW5kcG9pbnQsXG4gICAgcmVwb3J0c0VuZHBvaW50OiByZXBvcnRzRW5kcG9pbnQgPyBjbGVhblVybChyZXBvcnRzRW5kcG9pbnQpIDogbnVsbCxcblxuICAgIGFsbG93ZWRDYXRlZ29yaWVzLFxuICAgIGF1dG9QYXJhbWV0ZXI6IGNvbmZpZy5hdXRvUGFyYW1ldGVyICE9PSBmYWxzZSwgLy8gZGVmYXVsdCB0cnVlXG4gICAgcm91dGVCYXNlOiBjb25maWcucm91dGVCYXNlPy50cmltKCkgfHwgJ3JlcG9ydHMnLFxuICAgIHNlc3Npb246IGNvbmZpZy5zZXNzaW9uID8/IG51bGwsXG4gICAgc2Vzc2lvblByb3ZpZGVyOiBjb25maWcuc2Vzc2lvblByb3ZpZGVyID8/IG51bGwsXG5cbiAgICBncmlkQ29tcG9uZW50OiBjb25maWcuZ3JpZCA/PyBudWxsLFxuICAgIGNoYXJ0Q29tcG9uZW50OiBjb25maWcuY2hhcnQgPz8gbnVsbCxcblxuICAgIGRlZmF1bHRQYWdlU2l6ZTogY29uZmlnLmRlZmF1bHRQYWdlU2l6ZSA/PyAyNSxcbiAgICBkYXRlRm9ybWF0OiBjb25maWcuZGF0ZUZvcm1hdCA/PyAnZGQvTU0veXl5eScsXG4gICAgbG9va3VwVGltZW91dE1zOiBjb25maWcubG9va3VwVGltZW91dE1zID8/IDMwMDAwMCxcbiAgfTtcbn1cblxuLyoqIFJlbW92ZSB0cmFpbGluZyBzbGFzaGVzIGZyb20gYSBVUkwgKi9cbmZ1bmN0aW9uIGNsZWFuVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHVybC50cmltKCkucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG59XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYndheXMtcmVwb3J0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvY29uZmlnL2J3YXlzLXJlcG9ydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQXdCSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFvQztJQUNuRSxVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsUUFBUTtJQUN2QixhQUFhLEVBQUUsU0FBUztJQUN4QixXQUFXLEVBQUUsTUFBTTtJQUNuQixNQUFNLEVBQUUsUUFBUTtDQUNqQixDQUFDO0FBaUxGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUF5QjtJQUM1RCw4QkFBOEI7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksT0FBTyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ25HLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFO1lBQ2hFLDBGQUEwRixDQUMzRixDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLE9BQU8sTUFBTSxDQUFDLGNBQWMsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvRyxNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRTtZQUNwRSxpRkFBaUYsQ0FDbEYsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFB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QUFNLENBQUMsVUFBVSxJQUFJLFlBQVk7UUFDN0MsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksTUFBTTtLQUNsRCxDQUFDO0FBQ0osQ0FBQztBQUVELHlDQUF5QztBQUN6QyxTQUFTLFFBQVEsQ0FBQyxHQUFXO0lBQzNCLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2ltcGxpZmllZCBjb25maWd1cmF0aW9uIGZvciBid2F5cy1yZXBvcnQuXG4gKlxuICogVGhpcyBpcyB0aGUgZGV2ZWxvcGVyLWZhY2luZyBjb25maWcgb2JqZWN0IHRoYXQgbWFrZXMgaW50ZWdyYXRpb25cbiAqIGFzIHNpbXBsZSBhcyAz4oCTNCBlbmRwb2ludCBVUkxzICsgb3B0aW9uYWwgb3ZlcnJpZGVzLlxuICogVGhlIG5vcm1hbGl6ZXIgY29udmVydHMgdGhpcyBpbnRvIHRoZSBpbnRlcm5hbCBgUmVwb3J0aW5nQ29uZmlnYFxuICogcGx1cyBhZGFwdGVyIHdpcmluZyBkZWNpc2lvbnMuXG4gKi9cblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2Vzc2lvbkNvbnRleHRQcm92aWRlciwgU2Vzc2lvbkNvbnRleHRTb3VyY2UgfSBmcm9tICcuLi90b2tlbnMvc2Vzc2lvbi1jb250ZXh0LnRva2VuJztcbmltcG9ydCB7IFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9yZXBvcnQtYXBpLWVuZHBvaW50Lm1vZGVsJztcblxuLyoqXG4gKiBQYWxldHRlIGNvbXBvbmVudCBjYXRlZ29yeSBuYW1lcyB0aGUgZGV2ZWxvcGVyIGNhbiB1c2VcbiAqIHdoZW4gcmVzdHJpY3RpbmcgdGhlIGRlc2lnbmVyIGNvbXBvbmVudCBwYWxldHRlLlxuICpcbiAqIE1hcHMgdG8gaW50ZXJuYWwgcmVnaXN0cnkgY2F0ZWdvcnkgSURzOlxuICogLSBgZm9ybUlucHV0c2AgICAg4oaSIGBpbnB1dGBcbiAqIC0gYGFjdGlvbkJ1dHRvbnNgIOKGkiBgYWN0aW9uYFxuICogLSBgZGlzcGxheUxhYmVsc2Ag4oaSIGBkaXNwbGF5YFxuICogLSBgZGF0YUxvb2t1cHNgICAg4oaSIGBkYXRhYFxuICogLSBgbGF5b3V0YCAgICAgICAg4oaSIGBsYXlvdXRgXG4gKi9cbmV4cG9ydCB0eXBlIFBhbGV0dGVDYXRlZ29yeSA9XG4gIHwgJ2Zvcm1JbnB1dHMnXG4gIHwgJ2FjdGlvbkJ1dHRvbnMnXG4gIHwgJ2Rpc3BsYXlMYWJlbHMnXG4gIHwgJ2RhdGFMb29rdXBzJ1xuICB8ICdsYXlvdXQnO1xuXG4vKipcbiAqIE1hcHBpbmcgZnJvbSBmcmllbmRseSBwYWxldHRlIGNhdGVnb3J5IG5hbWVzIHRvIGludGVybmFsIGNhdGVnb3J5IElEcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBTEVUVEVfQ0FURUdPUllfTUFQOiBSZWNvcmQ8UGFsZXR0ZUNhdGVnb3J5LCBzdHJpbmc+ID0ge1xuICBmb3JtSW5wdXRzOiAnaW5wdXQnLFxuICBhY3Rpb25CdXR0b25zOiAnYWN0aW9uJyxcbiAgZGlzcGxheUxhYmVsczogJ2Rpc3BsYXknLFxuICBkYXRhTG9va3VwczogJ2RhdGEnLFxuICBsYXlvdXQ6ICdsYXlvdXQnLFxufTtcblxuLyoqXG4gKiBTaW1wbGlmaWVkLCBkZXZlbG9wZXItZmFjaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGJ3YXlzLXJlcG9ydC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVwb3J0Q29uZmlnOiBCd2F5c1JlcG9ydENvbmZpZyA9IHtcbiAqICAgc3BFbmRwb2ludDogICAgICAnL2FwaS9yZXBvcnRpbmcvcHJvY2VkdXJlcycsXG4gKiAgIHRhYmxlc0VuZHBvaW50OiAgJy9hcGkvcmVwb3J0aW5nL3RhYmxlcycsXG4gKiAgIGV4ZWN1dGVFbmRwb2ludDogJy9hcGkvcmVwb3J0aW5nL2V4ZWN1dGUnLFxuICogICByZXBvcnRzRW5kcG9pbnQ6ICcvYXBpL3JlcG9ydGluZy9yZXBvcnRzJyxcbiAqICAgY29tcG9uZW50czogWydmb3JtSW5wdXRzJywgJ2FjdGlvbkJ1dHRvbnMnLCAnZGlzcGxheUxhYmVscyddLFxuICogICBhdXRvUGFyYW1ldGVyOiB0cnVlLFxuICogICBzZXNzaW9uOiAoKSA9PiBpbmplY3QoQXV0aFNlcnZpY2UpLnNlc3Npb24oKSxcbiAqICAgcm91dGVCYXNlOiAncmVwb3J0cycsXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQndheXNSZXBvcnRDb25maWcge1xuICAvLyDilIDilIDilIAgQmFja2VuZCBlbmRwb2ludHMgKHRoZSAz4oCTNCBlbmRwb2ludCBjb250cmFjdCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIEdFVCBlbmRwb2ludCByZXR1cm5pbmcgdGhlIGxpc3Qgb2Ygc3RvcmVkIHByb2NlZHVyZXMgd2l0aCB0aGVpciBwYXJhbWV0ZXJzLlxuICAgKiBSZXNwb25zZTogYFt7IG5hbWUsIHNjaGVtYSwgcGFyYW1ldGVyczogW3sgbmFtZSwgc3FsVHlwZSwgcmVxdWlyZWQsIGRlZmF1bHRWYWx1ZT8gfV0gfV1gXG4gICAqL1xuICBzcEVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdFVCBlbmRwb2ludCByZXR1cm5pbmcgdGhlIGxpc3Qgb2YgdGFibGVzL3ZpZXdzIHdpdGggdGhlaXIgY29sdW1ucy5cbiAgICogUmVzcG9uc2U6IGBbeyBuYW1lLCBzY2hlbWEsIHR5cGU6ICd0YWJsZSd8J3ZpZXcnLCBjb2x1bW5zOiBbeyBuYW1lLCBzcWxUeXBlIH1dIH1dYFxuICAgKi9cbiAgdGFibGVzRW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogUE9TVCBlbmRwb2ludCB0aGF0IHJ1bnMgYSBzdG9yZWQgcHJvY2VkdXJlIG9yIHRhYmxlIHF1ZXJ5IGFuZCByZXR1cm5zIHJvd3MuXG4gICAqIEJvZHk6IGB7IGtpbmQ6ICdwcm9jZWR1cmUnfCd0YWJsZScsIG5hbWUsIHNjaGVtYSwgcGFyYW1ldGVycywgY29sdW1ucz8sIHRvcD8gfWBcbiAgICogUmVzcG9uc2U6IGByb3dzW11gXG4gICAqL1xuICBleGVjdXRlRW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgUE9TVCBlbmRwb2ludCBmb3IgZmV0Y2hpbmcgZHJvcGRvd24gbWFzdGVyIGRhdGEgYW5kIGxvb2t1cCBvcHRpb25zLlxuICAgKiBEZWZhdWx0cyB0byByZXBsYWNpbmcgYC9leGVjdXRlYCB3aXRoIGAvbG9va3VwYCBpZiBvbWl0dGVkLlxuICAgKi9cbiAgbG9va3VwRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIENSVUQgZW5kcG9pbnQgZm9yIHNhdmluZy9sb2FkaW5nIHJlcG9ydCBwYWdlIGRlZmluaXRpb25zLlxuICAgKiBXaGVuIG9taXR0ZWQsIHJlcG9ydHMgYXJlIHNhdmVkIHRvIGJyb3dzZXIgbG9jYWxTdG9yYWdlIHdpdGggYSBjb25zb2xlIHdhcm5pbmcuXG4gICAqIC0gR0VUICAgIOKGkiBsaXN0IHNhdmVkIHJlcG9ydHNcbiAgICogLSBHRVQgLzppZCDihpIgbG9hZCBhIHNwZWNpZmljIHJlcG9ydFxuICAgKiAtIFBPU1QgICDihpIgc2F2ZSBhIG5ldyBvciB1cGRhdGVkIHJlcG9ydFxuICAgKiAtIERFTEVURSAvOmlkIOKGkiBkZWxldGUgYSByZXBvcnRcbiAgICovXG4gIHJlcG9ydHNFbmRwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgR0VUIGVuZHBvaW50IHJldHVybmluZyB0aGUgY2F0YWxvZyBvZiByZWdpc3RlcmVkIFJFU1QgQVBJcy5cbiAgICogUmVzcG9uc2U6IFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbltdXG4gICAqL1xuICBhcGlzRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YXRpYy9pbi1tZW1vcnkgQVBJIGVuZHBvaW50cyByZWdpc3RlcmVkIGRpcmVjdGx5IGluIHRoZSBob3N0IGFwcGxpY2F0aW9uLlxuICAgKiBNZXJnZWQgd2l0aCBiYWNrZW5kLWRpc2NvdmVyZWQgQVBJcyBpbiB0aGUgVmlzdWFsIERlc2lnbmVyLlxuICAgKi9cbiAgYXBpRW5kcG9pbnRzPzogUmVwb3J0QXBpRW5kcG9pbnREZWZpbml0aW9uW107XG5cbiAgLy8g4pSA4pSA4pSAIERlc2lnbmVyIG9wdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBwYWxldHRlIGdyb3VwcyB0byBzaG93IGluIHRoZSBkZXNpZ25lci5cbiAgICogRGVmYXVsdHMgdG8gYWxsIGdyb3VwcyB3aGVuIG5vdCBzcGVjaWZpZWQuXG4gICAqXG4gICAqIEBleGFtcGxlIFsnZm9ybUlucHV0cycsICdhY3Rpb25CdXR0b25zJywgJ2Rpc3BsYXlMYWJlbHMnXVxuICAgKi9cbiAgY29tcG9uZW50cz86IFBhbGV0dGVDYXRlZ29yeVtdO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHN0b3JlZCBwcm9jZWR1cmUgcGFyYW1ldGVycyBsaWtlIGBAQnJhbmNoSWRgLCBgQENvbXBhbnlJZGBcbiAgICogYXJlIGF1dG9tYXRpY2FsbHkgYm91bmQgZnJvbSB0aGUgc2Vzc2lvbiBjb250ZXh0LlxuICAgKiBSZXF1aXJlcyBgc2Vzc2lvbmAgdG8gYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGF1dG9QYXJhbWV0ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXNzaW9uIGNvbnRleHQgcHJvdmlkZXIgZm9yIGF1dG8tcGFyYW1ldGVyIGJpbmRpbmcuXG4gICAqIENhbiBiZSBhIHNlcnZpY2UgY2xhc3MgaW1wbGVtZW50aW5nIGBTZXNzaW9uQ29udGV4dFByb3ZpZGVyYCxcbiAgICogYSBwbGFpbiBvYmplY3QsIGEgZmFjdG9yeSBmdW5jdGlvbiwgYW4gT2JzZXJ2YWJsZSwgb3IgYSBTaWduYWwuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHNlc3Npb246IFBsYXlncm91bmRTZXNzaW9uU2VydmljZVxuICAgKiBzZXNzaW9uOiAoKSA9PiBpbmplY3QoQXV0aFNlcnZpY2UpLnNlc3Npb24oKVxuICAgKiBzZXNzaW9uOiB7IGJyYW5jaElkOiAxLCBjb21wYW55SWQ6IDEwIH1cbiAgICovXG4gIHNlc3Npb24/OiBUeXBlPFNlc3Npb25Db250ZXh0UHJvdmlkZXI+IHwgU2Vzc2lvbkNvbnRleHRTb3VyY2UgfCAoKCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzZXJ2aWNlIGNsYXNzIGltcGxlbWVudGluZyBgU2Vzc2lvbkNvbnRleHRQcm92aWRlcmAuXG4gICAqIEVxdWl2YWxlbnQgdG8gYHNlc3Npb246IE15U2Vzc2lvblNlcnZpY2VgLlxuICAgKi9cbiAgc2Vzc2lvblByb3ZpZGVyPzogVHlwZTxTZXNzaW9uQ29udGV4dFByb3ZpZGVyPjtcblxuICAvLyDilIDilIDilIAgTGl2ZSBwYWdlIG9wdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIEJhc2UgcGF0aCBmb3IgbGl2ZSByZXBvcnQgcGFnZXMuXG4gICAqIEdlbmVyYXRlZCByZXBvcnQgcGFnZXMgb3BlbiBhdCBgLzxyb3V0ZUJhc2U+LzxzbHVnPmAuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdyZXBvcnRzJ1xuICAgKi9cbiAgcm91dGVCYXNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBBbmd1bGFyIGNvbXBvbmVudCBmb3IgcmVuZGVyaW5nIGRhdGEgZ3JpZHMuXG4gICAqIFBhc3MgeW91ciBncmlkIGNvbXBvbmVudCAoQldheXMtZ3JpZCwgQUcgR3JpZCB3cmFwcGVyLCBldGMuKS5cbiAgICovXG4gIGdyaWQ/OiBUeXBlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBBbmd1bGFyIGNvbXBvbmVudCBmb3IgcmVuZGVyaW5nIGNoYXJ0cy5cbiAgICovXG4gIGNoYXJ0PzogVHlwZTx1bmtub3duPjtcblxuICAvLyDilIDilIDilIAgR2VuZXJhbCBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBEZWZhdWx0IHBhZ2Ugc2l6ZSBmb3IgZ3JpZCByZXN1bHRzLiBAZGVmYXVsdCAyNSAqL1xuICBkZWZhdWx0UGFnZVNpemU/OiBudW1iZXI7XG5cbiAgLyoqIERhdGUgZm9ybWF0IHN0cmluZyB1c2VkIGFjcm9zcyB0aGUgbGlicmFyeS4gQGRlZmF1bHQgJ2RkL01NL3l5eXknICovXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgLyoqIFRpbWVvdXQgaW4gbXMgZm9yIGxvb2t1cC9leGVjdXRlIHF1ZXJpZXMuIEBkZWZhdWx0IDMwMDAwMCAqL1xuICBsb29rdXBUaW1lb3V0TXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIG5vcm1hbGl6aW5nIGEgYEJ3YXlzUmVwb3J0Q29uZmlnYCBmb3IgaW50ZXJuYWwgdXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6ZWRCd2F5c0NvbmZpZyB7XG4gIC8qKiBFbmRwb2ludCBVUkxzICovXG4gIHNwRW5kcG9pbnQ6IHN0cmluZztcbiAgdGFibGVzRW5kcG9pbnQ6IHN0cmluZztcbiAgZXhlY3V0ZUVuZHBvaW50OiBzdHJpbmc7XG4gIGxvb2t1cEVuZHBvaW50OiBzdHJpbmcgfCBudWxsO1xuICByZXBvcnRzRW5kcG9pbnQ6IHN0cmluZyB8IG51bGw7XG4gIGFwaXNFbmRwb2ludDogc3RyaW5nIHwgbnVsbDtcbiAgYXBpRW5kcG9pbnRzOiBSZXBvcnRBcGlFbmRwb2ludERlZmluaXRpb25bXTtcblxuICAvKiogUmVzb2x2ZWQgaW50ZXJuYWwgY2F0ZWdvcnkgSURzIChlLmcuIFsnaW5wdXQnLCAnYWN0aW9uJywgJ2Rpc3BsYXknXSkgKi9cbiAgYWxsb3dlZENhdGVnb3JpZXM6IHN0cmluZ1tdIHwgbnVsbDtcblxuICAvKiogV2hldGhlciBhdXRvLXBhcmFtZXRlciBiaW5kaW5nIGlzIGVuYWJsZWQgKi9cbiAgYXV0b1BhcmFtZXRlcjogYm9vbGVhbjtcblxuICAvKiogUm91dGUgYmFzZSBwYXRoICovXG4gIHJvdXRlQmFzZTogc3RyaW5nO1xuXG4gIC8qKiBTZXNzaW9uIHNvdXJjZSAqL1xuICBzZXNzaW9uOiBUeXBlPFNlc3Npb25Db250ZXh0UHJvdmlkZXI+IHwgU2Vzc2lvbkNvbnRleHRTb3VyY2UgfCAoKCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHwgbnVsbDtcbiAgc2Vzc2lvblByb3ZpZGVyOiBUeXBlPFNlc3Npb25Db250ZXh0UHJvdmlkZXI+IHwgbnVsbDtcblxuICAvKiogR3JpZCBjb21wb25lbnQgKi9cbiAgZ3JpZENvbXBvbmVudDogVHlwZTx1bmtub3duPiB8IG51bGw7XG5cbiAgLyoqIENoYXJ0IGNvbXBvbmVudCAqL1xuICBjaGFydENvbXBvbmVudDogVHlwZTx1bmtub3duPiB8IG51bGw7XG5cbiAgLyoqIEdlbmVyYWwgY29uZmlnIHZhbHVlcyAqL1xuICBkZWZhdWx0UGFnZVNpemU6IG51bWJlcjtcbiAgZGF0ZUZvcm1hdDogc3RyaW5nO1xuICBsb29rdXBUaW1lb3V0TXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgYEJ3YXlzUmVwb3J0Q29uZmlnYCBpbnRvIHRoZSBpbnRlcm5hbCBmb3JtYXQuXG4gKiBWYWxpZGF0ZXMgcmVxdWlyZWQgZmllbGRzIGFuZCBtYXBzIGZyaWVuZGx5IG5hbWVzIHRvIGludGVybmFsIElEcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUJ3YXlzQ29uZmlnKGNvbmZpZzogQndheXNSZXBvcnRDb25maWcpOiBOb3JtYWxpemVkQndheXNDb25maWcge1xuICAvLyBWYWxpZGF0ZSByZXF1aXJlZCBlbmRwb2ludHNcbiAgaWYgKCFjb25maWcuc3BFbmRwb2ludCB8fCB0eXBlb2YgY29uZmlnLnNwRW5kcG9pbnQgIT09ICdzdHJpbmcnIHx8IGNvbmZpZy5zcEVuZHBvaW50LnRyaW0oKSA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgW2J3YXlzLXJlcG9ydF0gXCJzcEVuZHBvaW50XCIgaXMgcmVxdWlyZWQgaW4gQndheXNSZXBvcnRDb25maWcuIGAgK1xuICAgICAgYFBsZWFzZSBwcm92aWRlIHRoZSBVUkwgZm9yIGZldGNoaW5nIHN0b3JlZCBwcm9jZWR1cmVzLCBlLmcuICcvYXBpL3JlcG9ydGluZy9wcm9jZWR1cmVzJy5gXG4gICAgKTtcbiAgfVxuICBpZiAoIWNvbmZpZy50YWJsZXNFbmRwb2ludCB8fCB0eXBlb2YgY29uZmlnLnRhYmxlc0VuZHBvaW50ICE9PSAnc3RyaW5nJyB8fCBjb25maWcudGFibGVzRW5kcG9pbnQudHJpbSgpID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBcInRhYmxlc0VuZHBvaW50XCIgaXMgcmVxdWlyZWQgaW4gQndheXNSZXBvcnRDb25maWcuIGAgK1xuICAgICAgYFBsZWFzZSBwcm92aWRlIHRoZSBVUkwgZm9yIGZldGNoaW5nIHRhYmxlcy92aWV3cywgZS5nLiAnL2FwaS9yZXBvcnRpbmcvdGFibGVzJy5gXG4gICAgKTtcbiAgfVxuICBpZiAoIWNvbmZpZy5leGVjdXRlRW5kcG9pbnQgfHwgdHlwZW9mIGNvbmZpZy5leGVjdXRlRW5kcG9pbnQgIT09ICdzdHJpbmcnIHx8IGNvbmZpZy5leGVjdXRlRW5kcG9pbnQudHJpbSgpID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBcImV4ZWN1dGVFbmRwb2ludFwiIGlzIHJlcXVpcmVkIGluIEJ3YXlzUmVwb3J0Q29uZmlnLiBgICtcbiAgICAgIGBQbGVhc2UgcHJvdmlkZSB0aGUgVVJMIGZvciBleGVjdXRpbmcgcXVlcmllcywgZS5nLiAnL2FwaS9yZXBvcnRpbmcvZXhlY3V0ZScuYFxuICAgICk7XG4gIH1cblxuICAvLyBNYXAgY29tcG9uZW50IHBhbGV0dGUgY2F0ZWdvcmllc1xuICBsZXQgYWxsb3dlZENhdGVnb3JpZXM6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG4gIGlmIChjb25maWcuY29tcG9uZW50cyAmJiBjb25maWcuY29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgYWxsb3dlZENhdGVnb3JpZXMgPSBjb25maWcuY29tcG9uZW50cy5tYXAoKGZyaWVuZGx5KSA9PiB7XG4gICAgICBjb25zdCBpbnRlcm5hbCA9IFBBTEVUVEVfQ0FURUdPUllfTUFQW2ZyaWVuZGx5XTtcbiAgICAgIGlmICghaW50ZXJuYWwpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbYndheXMtcmVwb3J0XSBVbmtub3duIGNvbXBvbmVudCBjYXRlZ29yeSBcIiR7ZnJpZW5kbHl9XCIuIGAgK1xuICAgICAgICAgIGBWYWxpZCBvcHRpb25zOiAke09iamVjdC5rZXlzKFBBTEVUVEVfQ0FURUdPUllfTUFQKS5qb2luKCcsICcpfS5gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmcmllbmRseTsgLy8gUGFzcyB0aHJvdWdoIHVua25vd24gY2F0ZWdvcmllcyBhcy1pc1xuICAgICAgfVxuICAgICAgcmV0dXJuIGludGVybmFsO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gV2FybiBpZiByZXBvcnRzRW5kcG9pbnQgaXMgbWlzc2luZ1xuICBjb25zdCByZXBvcnRzRW5kcG9pbnQgPSBjb25maWcucmVwb3J0c0VuZHBvaW50Py50cmltKCkgfHwgbnVsbDtcbiAgaWYgKCFyZXBvcnRzRW5kcG9pbnQpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgW2J3YXlzLXJlcG9ydF0gTm8gXCJyZXBvcnRzRW5kcG9pbnRcIiBwcm92aWRlZC4gUmVwb3J0cyB3aWxsIGJlIHNhdmVkIHRvIGJyb3dzZXIgbG9jYWxTdG9yYWdlLiBgICtcbiAgICAgIGBGb3Igc2hhcmVkIHJlcG9ydCBtZW51cyBhY3Jvc3MgdXNlcnMsIHByb3ZpZGUgYSByZXBvcnRzRW5kcG9pbnQsIGUuZy4gJy9hcGkvcmVwb3J0aW5nL3JlcG9ydHMnLmBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbG9va3VwRW5kcG9pbnQgPSBjb25maWcubG9va3VwRW5kcG9pbnQ/LnRyaW0oKVxuICAgID8gY2xlYW5VcmwoY29uZmlnLmxvb2t1cEVuZHBvaW50KVxuICAgIDogY29uZmlnLmV4ZWN1dGVFbmRwb2ludC5pbmNsdWRlcygnL2V4ZWN1dGUnKVxuICAgID8gY2xlYW5VcmwoY29uZmlnLmV4ZWN1dGVFbmRwb2ludC5yZXBsYWNlKC9cXC9leGVjdXRlXFwvPyQvLCAnL2xvb2t1cCcpKVxuICAgIDogbnVsbDtcblxuICByZXR1cm4ge1xuICAgIHNwRW5kcG9pbnQ6IGNsZWFuVXJsKGNvbmZpZy5zcEVuZHBvaW50KSxcbiAgICB0YWJsZXNFbmRwb2ludDogY2xlYW5VcmwoY29uZmlnLnRhYmxlc0VuZHBvaW50KSxcbiAgICBleGVjdXRlRW5kcG9pbnQ6IGNsZWFuVXJsKGNvbmZpZy5leGVjdXRlRW5kcG9pbnQpLFxuICAgIGxvb2t1cEVuZHBvaW50LFxuICAgIHJlcG9ydHNFbmRwb2ludDogcmVwb3J0c0VuZHBvaW50ID8gY2xlYW5VcmwocmVwb3J0c0VuZHBvaW50KSA6IG51bGwsXG4gICAgYXBpc0VuZHBvaW50OiBjb25maWcuYXBpc0VuZHBvaW50Py50cmltKCkgPyBjbGVhblVybChjb25maWcuYXBpc0VuZHBvaW50KSA6IG51bGwsXG4gICAgYXBpRW5kcG9pbnRzOiBBcnJheS5pc0FycmF5KGNvbmZpZy5hcGlFbmRwb2ludHMpID8gY29uZmlnLmFwaUVuZHBvaW50cyA6IFtdLFxuXG4gICAgYWxsb3dlZENhdGVnb3JpZXMsXG4gICAgYXV0b1BhcmFtZXRlcjogY29uZmlnLmF1dG9QYXJhbWV0ZXIgIT09IGZhbHNlLCAvLyBkZWZhdWx0IHRydWVcbiAgICByb3V0ZUJhc2U6IGNvbmZpZy5yb3V0ZUJhc2U/LnRyaW0oKSB8fCAncmVwb3J0cycsXG4gICAgc2Vzc2lvbjogY29uZmlnLnNlc3Npb24gPz8gbnVsbCxcbiAgICBzZXNzaW9uUHJvdmlkZXI6IGNvbmZpZy5zZXNzaW9uUHJvdmlkZXIgPz8gbnVsbCxcblxuICAgIGdyaWRDb21wb25lbnQ6IGNvbmZpZy5ncmlkID8/IG51bGwsXG4gICAgY2hhcnRDb21wb25lbnQ6IGNvbmZpZy5jaGFydCA/PyBudWxsLFxuXG4gICAgZGVmYXVsdFBhZ2VTaXplOiBjb25maWcuZGVmYXVsdFBhZ2VTaXplID8/IDI1LFxuICAgIGRhdGVGb3JtYXQ6IGNvbmZpZy5kYXRlRm9ybWF0ID8/ICdkZC9NTS95eXl5JyxcbiAgICBsb29rdXBUaW1lb3V0TXM6IGNvbmZpZy5sb29rdXBUaW1lb3V0TXMgPz8gMzAwMDAwLFxuICB9O1xufVxuXG4vKiogUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXMgZnJvbSBhIFVSTCAqL1xuZnVuY3Rpb24gY2xlYW5VcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdXJsLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbn1cbiJdfQ==
@@ -2,4 +2,4 @@
2
2
  * Barrel export for all core domain models.
3
3
  */
4
4
  export {};
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFycmVsIGV4cG9ydCBmb3IgYWxsIGNvcmUgZG9tYWluIG1vZGVscy5cbiAqL1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydERlZmluaXRpb24sXG4gIFJlcG9ydFN1bW1hcnksXG4gIFJlcG9ydFBlcm1pc3Npb25EZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1kZWZpbml0aW9uLm1vZGVsJztcblxuZXhwb3J0IHR5cGUge1xuICBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uLFxuICBDb21wb25lbnRCaW5kaW5nRGVmaW5pdGlvbixcbiAgQ29tcG9uZW50RGF0YVNvdXJjZURlZmluaXRpb24sXG4gIFZpc2liaWxpdHlEZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydFBhcmFtZXRlckRlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LXBhcmFtZXRlci5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24sXG4gIERhdGFTb3VyY2VDYWNoZURlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LWRhdGFzb3VyY2UubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydEdyaWREZWZpbml0aW9uLFxuICBHcmlkQ29sdW1uRGVmaW5pdGlvbixcbiAgR3JpZE9wdGlvbnNEZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1ncmlkLm1vZGVsJztcblxuZXhwb3J0IHR5cGUge1xuICBSZXBvcnRMYXlvdXREZWZpbml0aW9uLFxuICBDb21wb25lbnRMYXlvdXREZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1sYXlvdXQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFZhbGlkYXRpb25EZWZpbml0aW9uLFxufSBmcm9tICcuL3ZhbGlkYXRpb24ubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIENvbXBvbmVudEV2ZW50RGVmaW5pdGlvbixcbiAgQ29tcG9uZW50QWN0aW9uRGVmaW5pdGlvbixcbn0gZnJvbSAnLi9jb21wb25lbnQtZXZlbnQubW9kZWwnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFycmVsIGV4cG9ydCBmb3IgYWxsIGNvcmUgZG9tYWluIG1vZGVscy5cbiAqL1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydERlZmluaXRpb24sXG4gIFJlcG9ydFN1bW1hcnksXG4gIFJlcG9ydFBlcm1pc3Npb25EZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1kZWZpbml0aW9uLm1vZGVsJztcblxuZXhwb3J0IHR5cGUge1xuICBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uLFxuICBDb21wb25lbnRCaW5kaW5nRGVmaW5pdGlvbixcbiAgQ29tcG9uZW50RGF0YVNvdXJjZURlZmluaXRpb24sXG4gIERyb3Bkb3duU291cmNlVHlwZSxcbiAgVmlzaWJpbGl0eURlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LWNvbXBvbmVudC5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgUmVwb3J0QXBpRW5kcG9pbnREZWZpbml0aW9uLFxuICBSZXBvcnRBcGlQYXJhbWV0ZXJEZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1hcGktZW5kcG9pbnQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydFBhcmFtZXRlckRlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LXBhcmFtZXRlci5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24sXG4gIERhdGFTb3VyY2VDYWNoZURlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LWRhdGFzb3VyY2UubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydEdyaWREZWZpbml0aW9uLFxuICBHcmlkQ29sdW1uRGVmaW5pdGlvbixcbiAgR3JpZE9wdGlvbnNEZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1ncmlkLm1vZGVsJztcblxuZXhwb3J0IHR5cGUge1xuICBSZXBvcnRMYXlvdXREZWZpbml0aW9uLFxuICBDb21wb25lbnRMYXlvdXREZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1sYXlvdXQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFZhbGlkYXRpb25EZWZpbml0aW9uLFxufSBmcm9tICcuL3ZhbGlkYXRpb24ubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIENvbXBvbmVudEV2ZW50RGVmaW5pdGlvbixcbiAgQ29tcG9uZW50QWN0aW9uRGVmaW5pdGlvbixcbn0gZnJvbSAnLi9jb21wb25lbnQtZXZlbnQubW9kZWwnO1xuIl19
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Definitions for API-based data retrieval endpoints.
3
+ *
4
+ * Enables reports and form components to consume REST / HTTP APIs
5
+ * with parameter interpolation, custom headers, and data path resolution.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWFwaS1lbmRwb2ludC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1hcGktZW5kcG9pbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluaXRpb25zIGZvciBBUEktYmFzZWQgZGF0YSByZXRyaWV2YWwgZW5kcG9pbnRzLlxuICpcbiAqIEVuYWJsZXMgcmVwb3J0cyBhbmQgZm9ybSBjb21wb25lbnRzIHRvIGNvbnN1bWUgUkVTVCAvIEhUVFAgQVBJc1xuICogd2l0aCBwYXJhbWV0ZXIgaW50ZXJwb2xhdGlvbiwgY3VzdG9tIGhlYWRlcnMsIGFuZCBkYXRhIHBhdGggcmVzb2x1dGlvbi5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEFwaVBhcmFtZXRlckRlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2xlYW4nIHwgJ2RhdGUnIHwgJ2FycmF5JztcbiAgaW46ICdxdWVyeScgfCAncGF0aCcgfCAnYm9keScgfCAnaGVhZGVyJztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkZWZhdWx0VmFsdWU/OiB1bmtub3duO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRBcGlFbmRwb2ludERlZmluaXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIG1ldGhvZD86ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gIHRvdGFsUGF0aD86IHN0cmluZztcbiAgcGFyYW1ldGVycz86IFJlcG9ydEFwaVBhcmFtZXRlckRlZmluaXRpb25bXTtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlc3BvbnNlU2FtcGxlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXTtcbiAgdXNlUHJveHk/OiBib29sZWFuO1xufVxuIl19
@@ -7,4 +7,4 @@
7
7
  * in the renderer.
8
8
  */
9
9
  export {};
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNvbXBvbmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwb3J0IGNvbXBvbmVudCBkZWZpbml0aW9uIOKAlCB0aGUgbWV0YWRhdGEgZm9yIGEgc2luZ2xlIFVJIGVsZW1lbnRcbiAqIHRoYXQgYXBwZWFycyBvbiBhIHJlcG9ydCBwYWdlLlxuICpcbiAqIFRoZSBgdHlwZWAgZmllbGQgaXMgdGhlIHJlZ2lzdHJ5IGtleSB1c2VkIHRvIHJlc29sdmUgdGhlIEFuZ3VsYXIgY29tcG9uZW50XG4gKiBhdCBydW50aW1lIHZpYSBgQ29tcG9uZW50UmVnaXN0cnlgLiBUaGlzIGF2b2lkcyBoYXJkLWNvZGluZyBjb21wb25lbnQgdHlwZXNcbiAqIGluIHRoZSByZW5kZXJlci5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnRMYXlvdXREZWZpbml0aW9uIH0gZnJvbSAnLi9yZXBvcnQtbGF5b3V0Lm1vZGVsJztcbmltcG9ydCB7IFZhbGlkYXRpb25EZWZpbml0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudEV2ZW50RGVmaW5pdGlvbiB9IGZyb20gJy4vY29tcG9uZW50LWV2ZW50Lm1vZGVsJztcblxuLyoqXG4gKiBCaW5kaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3RpbmcgYSBjb21wb25lbnQgdG8gYSBkYXRhIHNvdXJjZSBvciBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50QmluZGluZ0RlZmluaXRpb24ge1xuICAvKiogVGhlIGRhdGEgc291cmNlIElEIHRoaXMgY29tcG9uZW50IHJlYWRzIGZyb20uICovXG4gIGRhdGFTb3VyY2VJZD86IHN0cmluZztcblxuICAvKiogVGhlIGZpZWxkIHdpdGhpbiB0aGUgZGF0YSBzb3VyY2UgdG8gYmluZCB0byAoZm9yIGRpc3BsYXkgY29tcG9uZW50cykuICovXG4gIGZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcGFyYW1ldGVyIGtleSB0aGlzIGNvbXBvbmVudCB3cml0ZXMgdG8gKGZvciBpbnB1dCBjb21wb25lbnRzKS4gKi9cbiAgcGFyYW1ldGVyS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEcm9wZG93blNvdXJjZVR5cGUgPSAnc3RhdGljJyB8ICd0YWJsZScgfCAncHJvY2VkdXJlJyB8ICdtYXN0ZXInO1xuXG4vKipcbiAqIERhdGEgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGNvbXBvbmVudHMgdGhhdCBsb2FkIHRoZWlyIG93biBkYXRhXG4gKiAoZS5nLiwgZHJvcGRvd25zIGxvYWRpbmcgb3B0aW9ucyBmcm9tIGRhdGFiYXNlIHRhYmxlcywgc3RvcmVkIHByb2NlZHVyZXMsIG9yIG1hc3RlciBkYXRhKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnREYXRhU291cmNlRGVmaW5pdGlvbiB7XG4gIC8qKiBTb3VyY2UgdHlwZTogJ3N0YXRpYycgfCAndGFibGUnIHwgJ3Byb2NlZHVyZScgfCAnbWFzdGVyJyAqL1xuICBzb3VyY2VUeXBlPzogRHJvcGRvd25Tb3VyY2VUeXBlO1xuXG4gIC8qKiBEYXRhYmFzZSBzY2hlbWEsIGUuZy4gJ2RibycgKGRlZmF1bHRzIHRvICdkYm8nKS4gKi9cbiAgc2NoZW1hPzogc3RyaW5nO1xuXG4gIC8qKiBEYXRhYmFzZSB0YWJsZSwgdmlldywgb3Igc3RvcmVkIHByb2NlZHVyZSBuYW1lIChlLmcuICdDdXN0b21lcnMnIG9yICd1c3BfR2V0QnJhbmNoZXMnKS4gKi9cbiAgZW50aXR5TmFtZT86IHN0cmluZztcblxuICAvKiogTWFzdGVyIGRhdGEgbmFtZSBmb3IgbGVnYWN5IG1hc3RlciBkYXRhIHByb3ZpZGVyIHJlc29sdXRpb24uICovXG4gIG1hc3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIERpc3BsYXkgZmllbGQgbmFtZSBpbiB0aGUgcmV0dXJuZWQgZGF0YSBpdGVtcyAoZS5nLiAnQ3VzdG9tZXJOYW1lJykuICovXG4gIGRpc3BsYXlGaWVsZD86IHN0cmluZztcblxuICAvKiogVmFsdWUgZmllbGQgbmFtZSBpbiB0aGUgcmV0dXJuZWQgZGF0YSBpdGVtcyAoZS5nLiAnQ3VzdG9tZXJJRCcpLiAqL1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKiBPcHRpb25hbCBzdGF0aWMgZmlsdGVyIHBhcmFtZXRlcnMgKGUuZy4geyBpc0FjdGl2ZTogMSB9KS4gKi9cbiAgZmlsdGVyPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIFN0b3JlZCBwcm9jZWR1cmUgcGFyYW1ldGVyIG1hcHBpbmdzIChlLmcuIHsgJ0BCcmFuY2hJZCc6ICd7e2JyYW5jaFNlbGVjdH19JywgJ0BBY3RpdmVPbmx5JzogdHJ1ZSB9KS4gKi9cbiAgcGFyYW1ldGVyTWFwcGluZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcblxuICAvKiogS2V5cyBvZiBvdGhlciBmb3JtIGNvbXBvbmVudHMgd2hvc2UgdmFsdWVzIHRoaXMgZGF0YSBzb3VyY2UgZGVwZW5kcyBvbiAoZm9yIENhc2NhZGluZyBEcm9wZG93bnMpLiAqL1xuICBkZXBlbmRzT24/OiBzdHJpbmdbXTtcblxuICAvKiogQ2FjaGUgdGltZS10by1saXZlIGluIHNlY29uZHMgKGRlZmF1bHQgMzAwcykuICovXG4gIGNhY2hlVHRsPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbnRyb2xzIHdoZW4gYSBjb21wb25lbnQgaXMgdmlzaWJsZSBiYXNlZCBvbiBvdGhlciBjb21wb25lbnQgdmFsdWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpc2liaWxpdHlEZWZpbml0aW9uIHtcbiAgLyoqIFRoZSBjb21wb25lbnQga2V5IHdob3NlIHZhbHVlIGRldGVybWluZXMgdmlzaWJpbGl0eS4gKi9cbiAgZGVwZW5kc09uOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBvcGVyYXRvciBmb3IgdGhlIGNvbmRpdGlvbi4gKi9cbiAgb3BlcmF0b3I6ICdlcXVhbHMnIHwgJ25vdEVxdWFscycgfCAnY29udGFpbnMnIHwgJ2dyZWF0ZXJUaGFuJyB8ICdsZXNzVGhhbicgfCAnaXNOb3RFbXB0eScgfCAnaXNFbXB0eSc7XG5cbiAgLyoqIFRoZSB2YWx1ZSB0byBjb21wYXJlIGFnYWluc3QuICovXG4gIHZhbHVlPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBGdWxsIG1ldGFkYXRhIGRlZmluaXRpb24gZm9yIGEgc2luZ2xlIGNvbXBvbmVudCBvbiBhIHJlcG9ydCBwYWdlLlxuICpcbiAqIFRoaXMgaXMgdGhlIGNvcmUgYnVpbGRpbmcgYmxvY2sgb2YgYSBgUmVwb3J0RGVmaW5pdGlvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBjb21wb25lbnQgaW5zdGFuY2UuICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqIFJlZ2lzdHJ5IGtleSDigJQgbWFwcyB0byBhbiBBbmd1bGFyIGNvbXBvbmVudCB2aWEgYENvbXBvbmVudFJlZ2lzdHJ5YC4gKi9cbiAgdHlwZTogc3RyaW5nO1xuXG4gIC8qKiBGb3JtIGNvbnRyb2wga2V5IC8gcGFyYW1ldGVyIGJpbmRpbmcgbmFtZS4gKi9cbiAga2V5Pzogc3RyaW5nO1xuXG4gIC8qKiBEaXNwbGF5IGxhYmVsIChvciB0cmFuc2xhdGlvbiBrZXkpLiAqL1xuICBsYWJlbD86IHN0cmluZztcblxuICAvKiogUmVuZGVyIG9yZGVyIChsb3dlciA9IGZpcnN0KS4gKi9cbiAgb3JkZXI/OiBudW1iZXI7XG5cbiAgLyoqIFBvc2l0aW9uIHdpdGhpbiB0aGUgcmVwb3J0IGxheW91dCBncmlkLiAqL1xuICBsYXlvdXQ/OiBDb21wb25lbnRMYXlvdXREZWZpbml0aW9uO1xuXG4gIC8qKiBDb21wb25lbnQtc3BlY2lmaWMgY29uZmlndXJhdGlvbiAoZS5nLiwgcGxhY2Vob2xkZXIsIGZvcm1hdCwgb3B0aW9ucykuICovXG4gIHByb3BlcnRpZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogRGF0YSBiaW5kaW5nIGNvbmZpZ3VyYXRpb24uICovXG4gIGJpbmRpbmc/OiBDb21wb25lbnRCaW5kaW5nRGVmaW5pdGlvbjtcblxuICAvKiogVmFsaWRhdGlvbiBydWxlcy4gKi9cbiAgdmFsaWRhdGlvbj86IFZhbGlkYXRpb25EZWZpbml0aW9uO1xuXG4gIC8qKiBEYXRhIHNvdXJjZSBmb3IgdGhpcyBjb21wb25lbnQncyBvcHRpb25zL2RhdGEuICovXG4gIGRhdGFTb3VyY2U/OiBDb21wb25lbnREYXRhU291cmNlRGVmaW5pdGlvbjtcblxuICAvKiogRXZlbnQg4oaSIGFjdGlvbiBiaW5kaW5ncy4gKi9cbiAgZXZlbnRzPzogQ29tcG9uZW50RXZlbnREZWZpbml0aW9uW107XG5cbiAgLyoqIENvbmRpdGlvbmFsIHZpc2liaWxpdHkgcnVsZXMuICovXG4gIHZpc2liaWxpdHk/OiBWaXNpYmlsaXR5RGVmaW5pdGlvbjtcblxuICAvKiogV2hldGhlciB0aGlzIGNvbXBvbmVudCBpcyBlbmFibGVkLiBEZWZhdWx0cyB0byBgdHJ1ZWAuICovXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBDU1MgY2xhc3MgbmFtZXMgdG8gYWRkIHRvIHRoZSBjb21wb25lbnQgd3JhcHBlci4gKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG59XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNvbXBvbmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwb3J0IGNvbXBvbmVudCBkZWZpbml0aW9uIOKAlCB0aGUgbWV0YWRhdGEgZm9yIGEgc2luZ2xlIFVJIGVsZW1lbnRcbiAqIHRoYXQgYXBwZWFycyBvbiBhIHJlcG9ydCBwYWdlLlxuICpcbiAqIFRoZSBgdHlwZWAgZmllbGQgaXMgdGhlIHJlZ2lzdHJ5IGtleSB1c2VkIHRvIHJlc29sdmUgdGhlIEFuZ3VsYXIgY29tcG9uZW50XG4gKiBhdCBydW50aW1lIHZpYSBgQ29tcG9uZW50UmVnaXN0cnlgLiBUaGlzIGF2b2lkcyBoYXJkLWNvZGluZyBjb21wb25lbnQgdHlwZXNcbiAqIGluIHRoZSByZW5kZXJlci5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnRMYXlvdXREZWZpbml0aW9uIH0gZnJvbSAnLi9yZXBvcnQtbGF5b3V0Lm1vZGVsJztcbmltcG9ydCB7IFZhbGlkYXRpb25EZWZpbml0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudEV2ZW50RGVmaW5pdGlvbiB9IGZyb20gJy4vY29tcG9uZW50LWV2ZW50Lm1vZGVsJztcblxuLyoqXG4gKiBCaW5kaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3RpbmcgYSBjb21wb25lbnQgdG8gYSBkYXRhIHNvdXJjZSBvciBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50QmluZGluZ0RlZmluaXRpb24ge1xuICAvKiogVGhlIGRhdGEgc291cmNlIElEIHRoaXMgY29tcG9uZW50IHJlYWRzIGZyb20uICovXG4gIGRhdGFTb3VyY2VJZD86IHN0cmluZztcblxuICAvKiogVGhlIGZpZWxkIHdpdGhpbiB0aGUgZGF0YSBzb3VyY2UgdG8gYmluZCB0byAoZm9yIGRpc3BsYXkgY29tcG9uZW50cykuICovXG4gIGZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcGFyYW1ldGVyIGtleSB0aGlzIGNvbXBvbmVudCB3cml0ZXMgdG8gKGZvciBpbnB1dCBjb21wb25lbnRzKS4gKi9cbiAgcGFyYW1ldGVyS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEcm9wZG93blNvdXJjZVR5cGUgPSAnc3RhdGljJyB8ICd0YWJsZScgfCAncHJvY2VkdXJlJyB8ICdtYXN0ZXInIHwgJ2FwaSc7XG5cbi8qKlxuICogRGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgY29tcG9uZW50cyB0aGF0IGxvYWQgdGhlaXIgb3duIGRhdGFcbiAqIChlLmcuLCBkcm9wZG93bnMgbG9hZGluZyBvcHRpb25zIGZyb20gZGF0YWJhc2UgdGFibGVzLCBzdG9yZWQgcHJvY2VkdXJlcywgbWFzdGVyIGRhdGEsIG9yIFJFU1QgQVBJcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RGF0YVNvdXJjZURlZmluaXRpb24ge1xuICAvKiogU291cmNlIHR5cGU6ICdzdGF0aWMnIHwgJ3RhYmxlJyB8ICdwcm9jZWR1cmUnIHwgJ21hc3RlcicgfCAnYXBpJyAqL1xuICBzb3VyY2VUeXBlPzogRHJvcGRvd25Tb3VyY2VUeXBlO1xuXG4gIC8qKiBEYXRhYmFzZSBzY2hlbWEsIGUuZy4gJ2RibycgKGRlZmF1bHRzIHRvICdkYm8nKS4gKi9cbiAgc2NoZW1hPzogc3RyaW5nO1xuXG4gIC8qKiBEYXRhYmFzZSB0YWJsZSwgdmlldywgb3Igc3RvcmVkIHByb2NlZHVyZSBuYW1lIChlLmcuICdDdXN0b21lcnMnIG9yICd1c3BfR2V0QnJhbmNoZXMnKS4gKi9cbiAgZW50aXR5TmFtZT86IHN0cmluZztcblxuICAvKiogTWFzdGVyIGRhdGEgbmFtZSBmb3IgbGVnYWN5IG1hc3RlciBkYXRhIHByb3ZpZGVyIHJlc29sdXRpb24uICovXG4gIG1hc3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIERpc3BsYXkgZmllbGQgbmFtZSBpbiB0aGUgcmV0dXJuZWQgZGF0YSBpdGVtcyAoZS5nLiAnQ3VzdG9tZXJOYW1lJykuICovXG4gIGRpc3BsYXlGaWVsZD86IHN0cmluZztcblxuICAvKiogVmFsdWUgZmllbGQgbmFtZSBpbiB0aGUgcmV0dXJuZWQgZGF0YSBpdGVtcyAoZS5nLiAnQ3VzdG9tZXJJRCcpLiAqL1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKiBPcHRpb25hbCBzdGF0aWMgZmlsdGVyIHBhcmFtZXRlcnMgKGUuZy4geyBpc0FjdGl2ZTogMSB9KS4gKi9cbiAgZmlsdGVyPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIFBhcmFtZXRlciBtYXBwaW5ncyAoZS5nLiB7ICdAQnJhbmNoSWQnOiAne3ticmFuY2hTZWxlY3R9fScsICdAQWN0aXZlT25seSc6IHRydWUgfSkuICovXG4gIHBhcmFtZXRlck1hcHBpbmdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbiAgLyoqIEtleXMgb2Ygb3RoZXIgZm9ybSBjb21wb25lbnRzIHdob3NlIHZhbHVlcyB0aGlzIGRhdGEgc291cmNlIGRlcGVuZHMgb24gKGZvciBDYXNjYWRpbmcgRHJvcGRvd25zKS4gKi9cbiAgZGVwZW5kc09uPzogc3RyaW5nW107XG5cbiAgLyoqIENhY2hlIHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIChkZWZhdWx0IDMwMHMpLiAqL1xuICBjYWNoZVR0bD86IG51bWJlcjtcblxuICAvLyDilIDilIDilIAgQVBJIERhdGEgU291cmNlIFByb3BlcnRpZXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBSZWdpc3RlcmVkIEFQSSBlbmRwb2ludCBJRCBvciByYXcgVVJMIHBhdGggKGUuZy4gJ2FwaS1jdXN0b21lcnMnIG9yICcvYXBpL3YxL2N1c3RvbWVycycpICovXG4gIGFwaUVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIC8qKiBIVFRQIG1ldGhvZCB0byB1c2UgKGRlZmF1bHRzIHRvICdHRVQnKSAqL1xuICBhcGlNZXRob2Q/OiAnR0VUJyB8ICdQT1NUJztcblxuICAvKiogRG90LW5vdGF0aW9uIHBhdGggdG8gdGhlIGFycmF5IG9mIGl0ZW1zIGluIHRoZSByZXNwb25zZSBKU09OIChlLmcuICdkYXRhLml0ZW1zJyBvciAncm93cycpICovXG4gIGRhdGFQYXRoPzogc3RyaW5nO1xuXG4gIC8qKiBDdXN0b20gcXVlcnkgcGFyYW1ldGVycyBvciBwYXlsb2FkIG1hcHBpbmdzIGZvciB0aGUgQVBJIHJlcXVlc3QgKi9cbiAgYXBpUGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBoZWFkZXJzIChlLmcuIHsgJ1gtQ3VzdG9tLVRlbmFudCc6ICd7e3Nlc3Npb24udGVuYW50SWR9fScgfSkgKi9cbiAgYXBpSGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqIFdoZXRoZXIgcmVxdWVzdCBzaG91bGQgYmUgcHJveGllZCB2aWEgYmFja2VuZCByZXBvcnRpbmcgZ2F0ZXdheSAqL1xuICB1c2VQcm94eT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hlbiBhIGNvbXBvbmVudCBpcyB2aXNpYmxlIGJhc2VkIG9uIG90aGVyIGNvbXBvbmVudCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlzaWJpbGl0eURlZmluaXRpb24ge1xuICAvKiogVGhlIGNvbXBvbmVudCBrZXkgd2hvc2UgdmFsdWUgZGV0ZXJtaW5lcyB2aXNpYmlsaXR5LiAqL1xuICBkZXBlbmRzT246IHN0cmluZztcblxuICAvKiogVGhlIG9wZXJhdG9yIGZvciB0aGUgY29uZGl0aW9uLiAqL1xuICBvcGVyYXRvcjogJ2VxdWFscycgfCAnbm90RXF1YWxzJyB8ICdjb250YWlucycgfCAnZ3JlYXRlclRoYW4nIHwgJ2xlc3NUaGFuJyB8ICdpc05vdEVtcHR5JyB8ICdpc0VtcHR5JztcblxuICAvKiogVGhlIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdC4gKi9cbiAgdmFsdWU/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEZ1bGwgbWV0YWRhdGEgZGVmaW5pdGlvbiBmb3IgYSBzaW5nbGUgY29tcG9uZW50IG9uIGEgcmVwb3J0IHBhZ2UuXG4gKlxuICogVGhpcyBpcyB0aGUgY29yZSBidWlsZGluZyBibG9jayBvZiBhIGBSZXBvcnREZWZpbml0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uIHtcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGNvbXBvbmVudCBpbnN0YW5jZS4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogUmVnaXN0cnkga2V5IOKAlCBtYXBzIHRvIGFuIEFuZ3VsYXIgY29tcG9uZW50IHZpYSBgQ29tcG9uZW50UmVnaXN0cnlgLiAqL1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqIEZvcm0gY29udHJvbCBrZXkgLyBwYXJhbWV0ZXIgYmluZGluZyBuYW1lLiAqL1xuICBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqIERpc3BsYXkgbGFiZWwgKG9yIHRyYW5zbGF0aW9uIGtleSkuICovXG4gIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBSZW5kZXIgb3JkZXIgKGxvd2VyID0gZmlyc3QpLiAqL1xuICBvcmRlcj86IG51bWJlcjtcblxuICAvKiogUG9zaXRpb24gd2l0aGluIHRoZSByZXBvcnQgbGF5b3V0IGdyaWQuICovXG4gIGxheW91dD86IENvbXBvbmVudExheW91dERlZmluaXRpb247XG5cbiAgLyoqIENvbXBvbmVudC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIChlLmcuLCBwbGFjZWhvbGRlciwgZm9ybWF0LCBvcHRpb25zKS4gKi9cbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKiBEYXRhIGJpbmRpbmcgY29uZmlndXJhdGlvbi4gKi9cbiAgYmluZGluZz86IENvbXBvbmVudEJpbmRpbmdEZWZpbml0aW9uO1xuXG4gIC8qKiBWYWxpZGF0aW9uIHJ1bGVzLiAqL1xuICB2YWxpZGF0aW9uPzogVmFsaWRhdGlvbkRlZmluaXRpb247XG5cbiAgLyoqIERhdGEgc291cmNlIGZvciB0aGlzIGNvbXBvbmVudCdzIG9wdGlvbnMvZGF0YS4gKi9cbiAgZGF0YVNvdXJjZT86IENvbXBvbmVudERhdGFTb3VyY2VEZWZpbml0aW9uO1xuXG4gIC8qKiBFdmVudCDihpIgYWN0aW9uIGJpbmRpbmdzLiAqL1xuICBldmVudHM/OiBDb21wb25lbnRFdmVudERlZmluaXRpb25bXTtcblxuICAvKiogQ29uZGl0aW9uYWwgdmlzaWJpbGl0eSBydWxlcy4gKi9cbiAgdmlzaWJpbGl0eT86IFZpc2liaWxpdHlEZWZpbml0aW9uO1xuXG4gIC8qKiBXaGV0aGVyIHRoaXMgY29tcG9uZW50IGlzIGVuYWJsZWQuIERlZmF1bHRzIHRvIGB0cnVlYC4gKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqIENTUyBjbGFzcyBuYW1lcyB0byBhZGQgdG8gdGhlIGNvbXBvbmVudCB3cmFwcGVyLiAqL1xuICBjc3NDbGFzcz86IHN0cmluZztcbn1cbiJdfQ==
@@ -6,4 +6,4 @@
6
6
  * `ReportDataSourceAdapter` contract.
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGFzb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZGF0YXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9ydCBkYXRhIHNvdXJjZSBkZWZpbml0aW9ucy5cbiAqXG4gKiBBIGRhdGEgc291cmNlIGRlc2NyaWJlcyBob3cgdG8gZmV0Y2ggZGF0YSBmb3IgdGhlIHJlcG9ydCdzIHJlc3VsdCBncmlkLlxuICogVGhlIGFjdHVhbCBmZXRjaGluZyBpcyBkb25lIGJ5IHRoZSBob3N0IGFwcGxpY2F0aW9uIHRocm91Z2ggdGhlXG4gKiBgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXJgIGNvbnRyYWN0LlxuICovXG5cbi8qKlxuICogRGVmaW5lcyBhIHNpbmdsZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBkYXRhIHNvdXJjZS4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGRhdGEgc291cmNlLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEVuZHBvaW50IGlkZW50aWZpZXIsIHN0b3JlZCBwcm9jZWR1cmUgbmFtZSwgb3IgcXVlcnkgcmVmZXJlbmNlLiAqL1xuICBlbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKiBIVFRQIG1ldGhvZCBvciBleGVjdXRpb24gbWV0aG9kIGhpbnQuICovXG4gIG1ldGhvZD86ICdHRVQnIHwgJ1BPU1QnIHwgJ1NUT1JFRF9QUk9DRURVUkUnIHwgJ0NVU1RPTSc7XG5cbiAgLyoqIERhdGFiYXNlIHNjaGVtYSAoZGVmYXVsdHMgdG8gJ2RibycpLiAqL1xuICBzY2hlbWE/OiBzdHJpbmc7XG5cbiAgLyoqIEJhY2tlbmQgZXhlY3V0aW9uIHR5cGUuICovXG4gIHR5cGU/OiAnc3RvcmVkX3Byb2NlZHVyZScgfCAndGFibGUnIHwgJ3ZpZXcnIHwgJ3NxbCcgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3JlZCBwcm9jZWR1cmUgcGFyYW1ldGVyIG1hcHBpbmdzLiBWYWx1ZXMgbWF5IGJlIGZpeGVkLCBvciB0b2tlbnM6XG4gICAqIGB7e3Nlc3Npb24uYnJhbmNoSWR9fWAsIGB7e2NvbnRleHQudG9kYXl9fWAsIGB7e2ZpZWxkS2V5fX1gIChjYW52YXMgZmllbGQpLlxuICAgKi9cbiAgcGFyYW1ldGVyTWFwcGluZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcblxuICAvKipcbiAgICogUGFyYW1ldGVyIGtleXMgdGhhdCB0aGlzIGRhdGEgc291cmNlIHJlcXVpcmVzLlxuICAgKiBUaGVzZSBhcmUgcmVzb2x2ZWQgZnJvbSB0aGUgcmVwb3J0J3MgY3VycmVudCBwYXJhbWV0ZXIgdmFsdWVzXG4gICAqIGJlZm9yZSBjYWxsaW5nIHRoZSBgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXJgLlxuICAgKi9cbiAgcGFyYW1ldGVyS2V5cz86IHN0cmluZ1tdO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgZXhlY3V0ZSB0aGlzIGRhdGEgc291cmNlIG9uIHJlcG9ydCBsb2FkLiAqL1xuICBhdXRvRXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqIENhY2hpbmcgc3RyYXRlZ3kuICovXG4gIGNhY2hlPzogRGF0YVNvdXJjZUNhY2hlRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBDYWNoaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGEgZGF0YSBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNvdXJjZUNhY2hlRGVmaW5pdGlvbiB7XG4gIC8qKiBXaGV0aGVyIGNhY2hpbmcgaXMgZW5hYmxlZCBmb3IgdGhpcyBkYXRhIHNvdXJjZS4gKi9cbiAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKiogQ2FjaGUgZHVyYXRpb24gaW4gc2Vjb25kcy4gKi9cbiAgdHRsU2Vjb25kcz86IG51bWJlcjtcbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGFzb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZGF0YXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9ydCBkYXRhIHNvdXJjZSBkZWZpbml0aW9ucy5cbiAqXG4gKiBBIGRhdGEgc291cmNlIGRlc2NyaWJlcyBob3cgdG8gZmV0Y2ggZGF0YSBmb3IgdGhlIHJlcG9ydCdzIHJlc3VsdCBncmlkLlxuICogVGhlIGFjdHVhbCBmZXRjaGluZyBpcyBkb25lIGJ5IHRoZSBob3N0IGFwcGxpY2F0aW9uIHRocm91Z2ggdGhlXG4gKiBgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXJgIGNvbnRyYWN0LlxuICovXG5cbi8qKlxuICogRGVmaW5lcyBhIHNpbmdsZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBkYXRhIHNvdXJjZS4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGRhdGEgc291cmNlLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEVuZHBvaW50IGlkZW50aWZpZXIsIHN0b3JlZCBwcm9jZWR1cmUgbmFtZSwgb3IgcXVlcnkgcmVmZXJlbmNlLiAqL1xuICBlbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKiBIVFRQIG1ldGhvZCBvciBleGVjdXRpb24gbWV0aG9kIGhpbnQuICovXG4gIG1ldGhvZD86ICdHRVQnIHwgJ1BPU1QnIHwgJ1NUT1JFRF9QUk9DRURVUkUnIHwgJ0NVU1RPTSc7XG5cbiAgLyoqIERhdGFiYXNlIHNjaGVtYSAoZGVmYXVsdHMgdG8gJ2RibycpLiAqL1xuICBzY2hlbWE/OiBzdHJpbmc7XG5cbiAgLyoqIEJhY2tlbmQgZXhlY3V0aW9uIHR5cGUuICovXG4gIHR5cGU/OiAnc3RvcmVkX3Byb2NlZHVyZScgfCAndGFibGUnIHwgJ3ZpZXcnIHwgJ3NxbCcgfCAnYXBpJyB8IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVyIG1hcHBpbmdzLiBWYWx1ZXMgbWF5IGJlIGZpeGVkLCBvciB0b2tlbnM6XG4gICAqIGB7e3Nlc3Npb24uYnJhbmNoSWR9fWAsIGB7e2NvbnRleHQudG9kYXl9fWAsIGB7e2ZpZWxkS2V5fX1gIChjYW52YXMgZmllbGQpLlxuICAgKi9cbiAgcGFyYW1ldGVyTWFwcGluZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcblxuICAvKipcbiAgICogUGFyYW1ldGVyIGtleXMgdGhhdCB0aGlzIGRhdGEgc291cmNlIHJlcXVpcmVzLlxuICAgKiBUaGVzZSBhcmUgcmVzb2x2ZWQgZnJvbSB0aGUgcmVwb3J0J3MgY3VycmVudCBwYXJhbWV0ZXIgdmFsdWVzXG4gICAqIGJlZm9yZSBjYWxsaW5nIHRoZSBgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXJgLlxuICAgKi9cbiAgcGFyYW1ldGVyS2V5cz86IHN0cmluZ1tdO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgZXhlY3V0ZSB0aGlzIGRhdGEgc291cmNlIG9uIHJlcG9ydCBsb2FkLiAqL1xuICBhdXRvRXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqIENhY2hpbmcgc3RyYXRlZ3kuICovXG4gIGNhY2hlPzogRGF0YVNvdXJjZUNhY2hlRGVmaW5pdGlvbjtcblxuICAvLyDilIDilIDilIAgQVBJIEVuZHBvaW50IEV4ZWN1dGlvbiBNZXRhZGF0YSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLyoqIEJhc2UgVVJMIG92ZXJyaWRlIChpZiBjYWxsaW5nIGFuIGV4dGVybmFsIHNlcnZpY2Ugb3V0c2lkZSBhcGlCYXNlVXJsKSAqL1xuICBiYXNlVXJsPzogc3RyaW5nO1xuXG4gIC8qKiBEb3Qtbm90YXRpb24gcGF0aCB0byB0aGUgYXJyYXkgb2YgcmVjb3JkcyBpbiB0aGUgcmVzcG9uc2UgKGUuZy4gJ2RhdGEuaXRlbXMnIG9yICdyb3dzJykgKi9cbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqIERvdC1ub3RhdGlvbiBwYXRoIHRvIHRvdGFsIGNvdW50IGZvciBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uIChlLmcuICdyZXN1bHQudG90YWwnKSAqL1xuICB0b3RhbFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqIFBhcmFtZXRlciBwbGFjZW1lbnQ6ICdxdWVyeScgfCAnYm9keScgfCAnYXV0bycgKi9cbiAgcGFyYW1QbGFjZW1lbnQ/OiAncXVlcnknIHwgJ2JvZHknIHwgJ2F1dG8nO1xuXG4gIC8qKiBSZXF1ZXN0IGJvZHkgdGVtcGxhdGUgZm9yIFBPU1QgcmVxdWVzdHMgKi9cbiAgYm9keVRlbXBsYXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIEN1c3RvbSBIVFRQIGhlYWRlcnMgdG8gaW5jbHVkZSB3aXRoIHRoZSBBUEkgcmVxdWVzdCAqL1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKiogV2hldGhlciB0byByb3V0ZSB0aHJvdWdoIHRoZSBiYWNrZW5kIHByb3h5IGdhdGV3YXkgKi9cbiAgdXNlUHJveHk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENhY2hpbmcgY29uZmlndXJhdGlvbiBmb3IgYSBkYXRhIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU291cmNlQ2FjaGVEZWZpbml0aW9uIHtcbiAgLyoqIFdoZXRoZXIgY2FjaGluZyBpcyBlbmFibGVkIGZvciB0aGlzIGRhdGEgc291cmNlLiAqL1xuICBlbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKiBDYWNoZSBkdXJhdGlvbiBpbiBzZWNvbmRzLiAqL1xuICB0dGxTZWNvbmRzPzogbnVtYmVyO1xufVxuIl19
@@ -2,4 +2,5 @@ export { DynamicFormBuilder } from './dynamic-form-builder.service';
2
2
  export { ReportSessionContextService } from './report-session-context.service';
3
3
  export { ReportStorageService } from './report-storage.service';
4
4
  export { ReportDataDiscoveryService } from './report-data-discovery.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRHluYW1pY0Zvcm1CdWlsZGVyIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tYnVpbGRlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU2Vzc2lvblBhcmFtTWF0Y2gsXG4gIERlcml2ZWRQYXJhbWV0ZXJzUmVzdWx0LFxufSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnRTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnREYXRhRGlzY292ZXJ5U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LWRhdGEtZGlzY292ZXJ5LnNlcnZpY2UnO1xuIl19
5
+ export { ReportApiExecutionService } from './report-api-execution.service';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRHluYW1pY0Zvcm1CdWlsZGVyIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tYnVpbGRlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU2Vzc2lvblBhcmFtTWF0Y2gsXG4gIERlcml2ZWRQYXJhbWV0ZXJzUmVzdWx0LFxufSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnRTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnREYXRhRGlzY292ZXJ5U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LWRhdGEtZGlzY292ZXJ5LnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4vcmVwb3J0LWFwaS1leGVjdXRpb24uc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,188 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { throwError } from 'rxjs';
4
+ import { catchError, map } from 'rxjs/operators';
5
+ import { ReportSessionContextService } from './report-session-context.service';
6
+ import { REPORTING_CONFIG } from '../tokens/reporting-config.token';
7
+ import { BWAYS_REPORT_ENDPOINTS } from '../../data-access/adapters/endpoint-tokens';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Service responsible for executing API-based data retrieval requests.
11
+ *
12
+ * Supports URL path parameter interpolation (:id, {{id}}), query string parameter
13
+ * placement, JSON payload mapping, session header substitution, proxy routing,
14
+ * and dot-path response data extraction.
15
+ */
16
+ export class ReportApiExecutionService {
17
+ http = inject(HttpClient, { optional: true });
18
+ session = inject(ReportSessionContextService, { optional: true });
19
+ reportingConfig = inject(REPORTING_CONFIG, { optional: true });
20
+ endpoints = inject(BWAYS_REPORT_ENDPOINTS, { optional: true });
21
+ getRegisteredEndpoints() {
22
+ return this.endpoints?.apiEndpoints || [];
23
+ }
24
+ /**
25
+ * Executes a parameterized REST API request and extracts the result array.
26
+ *
27
+ * @param options Target endpoint configuration, URL, method, and data path.
28
+ * @param formValues Active parameter and filter values from the form/context.
29
+ * @param customMappings Additional fixed or mapped parameter values.
30
+ */
31
+ executeApi(options, formValues = {}, customMappings = {}) {
32
+ if (!this.http) {
33
+ return throwError(() => new Error('[ReportApiExecutionService] HttpClient is not provided in injector.'));
34
+ }
35
+ const rawUrl = options.url || options.endpoint;
36
+ if (!rawUrl || typeof rawUrl !== 'string' || rawUrl.trim() === '') {
37
+ return throwError(() => new Error('[ReportApiExecutionService] No valid URL or endpoint provided for API execution.'));
38
+ }
39
+ const sessionContext = this.session?.getCurrentSessionContext() ?? {};
40
+ const allValuesForPath = {
41
+ ...sessionContext,
42
+ ...formValues,
43
+ ...customMappings,
44
+ };
45
+ // 1. Interpolate Path Variables: /api/orders/:orderId or /api/orders/{{orderId}}
46
+ const pathKeys = new Set();
47
+ let resolvedUrl = rawUrl.replace(/:([a-zA-Z0-9_]+)|\{\{([a-zA-Z0-9_]+)\}\}/g, (_, k1, k2) => {
48
+ const key = k1 || k2;
49
+ pathKeys.add(key);
50
+ const val = allValuesForPath[key];
51
+ return val !== undefined && val !== null ? encodeURIComponent(String(val)) : '';
52
+ });
53
+ const method = (options.method || 'GET').toUpperCase();
54
+ const queryParams = {};
55
+ const bodyPayload = { ...(options.bodyTemplate || {}) };
56
+ const payloadValues = {
57
+ ...formValues,
58
+ ...customMappings,
59
+ };
60
+ // 2. Separate remaining params into Query params and Body payload
61
+ for (const [k, v] of Object.entries(payloadValues)) {
62
+ if (pathKeys.has(k) || v === undefined || v === null || v === '')
63
+ continue;
64
+ if (method === 'GET') {
65
+ if (typeof v === 'object') {
66
+ queryParams[k] = JSON.stringify(v);
67
+ }
68
+ else {
69
+ queryParams[k] = String(v);
70
+ }
71
+ }
72
+ else {
73
+ bodyPayload[k] = v;
74
+ }
75
+ }
76
+ // 3. Resolve Headers with Token Interpolation & Standard Session Context
77
+ const headers = {};
78
+ if (sessionContext['companyId'] !== undefined && sessionContext['companyId'] !== null) {
79
+ headers['X-Company-Id'] = String(sessionContext['companyId']);
80
+ }
81
+ if (sessionContext['branchId'] !== undefined && sessionContext['branchId'] !== null) {
82
+ headers['X-Branch-Id'] = String(sessionContext['branchId']);
83
+ }
84
+ if (sessionContext['userId'] !== undefined && sessionContext['userId'] !== null) {
85
+ headers['X-User-Id'] = String(sessionContext['userId']);
86
+ }
87
+ if (sessionContext['token'] !== undefined && sessionContext['token'] !== null) {
88
+ headers['Authorization'] = `Bearer ${sessionContext['token']}`;
89
+ }
90
+ if (options.headers) {
91
+ for (const [hk, hv] of Object.entries(options.headers)) {
92
+ if (typeof hv === 'string') {
93
+ headers[hk] = hv.replace(/\{\{session\.([a-zA-Z0-9_]+)\}\}|\{\{([a-zA-Z0-9_]+)\}\}/g, (_, sk1, sk2) => {
94
+ const key = sk1 || sk2;
95
+ return sessionContext[key] !== undefined ? String(sessionContext[key]) : '';
96
+ });
97
+ }
98
+ else {
99
+ headers[hk] = String(hv);
100
+ }
101
+ }
102
+ }
103
+ // 4. Determine Request: Direct vs. Backend Proxy Gateway
104
+ const useProxy = options.useProxy === true;
105
+ let request$;
106
+ if (useProxy) {
107
+ const proxyBase = this.endpoints?.apisEndpoint ||
108
+ (this.reportingConfig?.apiBaseUrl ? `${this.reportingConfig.apiBaseUrl}/apis` : '/api/reporting/apis');
109
+ const proxyUrl = `${proxyBase.replace(/\/+$/, '')}/proxy`;
110
+ request$ = this.http.post(proxyUrl, {
111
+ endpoint: resolvedUrl,
112
+ url: resolvedUrl,
113
+ method,
114
+ parameters: queryParams,
115
+ queryParams,
116
+ body: Object.keys(bodyPayload).length > 0 ? bodyPayload : undefined,
117
+ headers,
118
+ });
119
+ }
120
+ else {
121
+ if (method === 'GET') {
122
+ request$ = this.http.get(resolvedUrl, { params: queryParams, headers });
123
+ }
124
+ else if (method === 'POST') {
125
+ request$ = this.http.post(resolvedUrl, bodyPayload, { params: queryParams, headers });
126
+ }
127
+ else if (method === 'PUT') {
128
+ request$ = this.http.put(resolvedUrl, bodyPayload, { params: queryParams, headers });
129
+ }
130
+ else {
131
+ request$ = this.http.request(method, resolvedUrl, {
132
+ body: bodyPayload,
133
+ params: queryParams,
134
+ headers,
135
+ });
136
+ }
137
+ }
138
+ // 5. Extract & Normalize Target Data Array
139
+ return request$.pipe(map((response) => this.extractDataArray(response, options.dataPath)), catchError((err) => {
140
+ console.error(`[ReportApiExecutionService] API execution error [${method} ${resolvedUrl}]:`, err);
141
+ const message = err?.error?.message ||
142
+ err?.message ||
143
+ `API request failed with status ${err?.status || 'unknown'}`;
144
+ return throwError(() => new Error(message));
145
+ }));
146
+ }
147
+ /**
148
+ * Dot-notation extractor: 'data.items' -> response.data.items
149
+ */
150
+ extractDataArray(response, dataPath) {
151
+ if (!response)
152
+ return [];
153
+ if (Array.isArray(response))
154
+ return response;
155
+ if (dataPath && typeof dataPath === 'string' && dataPath.trim() !== '') {
156
+ const parts = dataPath.trim().split('.');
157
+ let current = response;
158
+ for (const part of parts) {
159
+ if (current && typeof current === 'object' && part in current) {
160
+ current = current[part];
161
+ }
162
+ else {
163
+ current = null;
164
+ break;
165
+ }
166
+ }
167
+ if (Array.isArray(current))
168
+ return current;
169
+ }
170
+ // Auto-detect common response collection containers
171
+ for (const key of ['data', 'items', 'rows', 'records', 'results', 'result']) {
172
+ if (Array.isArray(response[key]))
173
+ return response[key];
174
+ }
175
+ // If single object returned, wrap in array for grid display
176
+ if (typeof response === 'object' && response !== null) {
177
+ return [response];
178
+ }
179
+ return [];
180
+ }
181
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportApiExecutionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
182
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportApiExecutionService, providedIn: 'root' });
183
+ }
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportApiExecutionService, decorators: [{
185
+ type: Injectable,
186
+ args: [{ providedIn: 'root' }]
187
+ }] });
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWFwaS1leGVjdXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvc2VydmljZXMvcmVwb3J0LWFwaS1leGVjdXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQXdCLE1BQU0sNENBQTRDLENBQUM7O0FBYzFHOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFDbkIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxPQUFPLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEUsZUFBZSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBMkIsQ0FBQztJQUN6RixTQUFTLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFnQyxDQUFDO0lBRS9HLHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUs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Q0FBQztZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQUUsT0FBTyxPQUFPLENBQUM7UUFDN0MsQ0FBQztRQUVELG9EQUFvRDtRQUNwRCxLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7d0dBcExVLHlCQUF5Qjs0R0FBekIseUJBQXlCLGNBRFosTUFBTTs7NEZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXBvcnRTZXNzaW9uQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBSRVBPUlRJTkdfQ09ORklHLCBSZXBvcnRpbmdDb25maWcgfSBmcm9tICcuLi90b2tlbnMvcmVwb3J0aW5nLWNvbmZpZy50b2tlbic7XG5pbXBvcnQgeyBCV0FZU19SRVBPUlRfRU5EUE9JTlRTLCBCd2F5c1JlcG9ydEVuZHBvaW50cyB9IGZyb20gJy4uLy4uL2RhdGEtYWNjZXNzL2FkYXB0ZXJzL2VuZHBvaW50LXRva2Vucyc7XG5pbXBvcnQgeyBSZXBvcnRBcGlFbmRwb2ludERlZmluaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvcmVwb3J0LWFwaS1lbmRwb2ludC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpRXhlY3V0aW9uT3B0aW9ucyB7XG4gIHVybD86IHN0cmluZztcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIG1ldGhvZD86IHN0cmluZztcbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gIHRvdGFsUGF0aD86IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHVzZVByb3h5PzogYm9vbGVhbjtcbiAgYm9keVRlbXBsYXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogU2VydmljZSByZXNwb25zaWJsZSBmb3IgZXhlY3V0aW5nIEFQSS1iYXNlZCBkYXRhIHJldHJpZXZhbCByZXF1ZXN0cy5cbiAqXG4gKiBTdXBwb3J0cyBVUkwgcGF0aCBwYXJhbWV0ZXIgaW50ZXJwb2xhdGlvbiAoOmlkLCB7e2lkfX0pLCBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyXG4gKiBwbGFjZW1lbnQsIEpTT04gcGF5bG9hZCBtYXBwaW5nLCBzZXNzaW9uIGhlYWRlciBzdWJzdGl0dXRpb24sIHByb3h5IHJvdXRpbmcsXG4gKiBhbmQgZG90LXBhdGggcmVzcG9uc2UgZGF0YSBleHRyYWN0aW9uLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlcG9ydEFwaUV4ZWN1dGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uID0gaW5qZWN0KFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvcnRpbmdDb25maWcgPSBpbmplY3QoUkVQT1JUSU5HX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KSBhcyBSZXBvcnRpbmdDb25maWcgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50cyA9IGluamVjdChCV0FZU19SRVBPUlRfRU5EUE9JTlRTLCB7IG9wdGlvbmFsOiB0cnVlIH0pIGFzIEJ3YXlzUmVwb3J0RW5kcG9pbnRzIHwgbnVsbDtcblxuICBnZXRSZWdpc3RlcmVkRW5kcG9pbnRzKCk6IFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludHM/LmFwaUVuZHBvaW50cyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHBhcmFtZXRlcml6ZWQgUkVTVCBBUEkgcmVxdWVzdCBhbmQgZXh0cmFjdHMgdGhlIHJlc3VsdCBhcnJheS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgVGFyZ2V0IGVuZHBvaW50IGNvbmZpZ3VyYXRpb24sIFVSTCwgbWV0aG9kLCBhbmQgZGF0YSBwYXRoLlxuICAgKiBAcGFyYW0gZm9ybVZhbHVlcyBBY3RpdmUgcGFyYW1ldGVyIGFuZCBmaWx0ZXIgdmFsdWVzIGZyb20gdGhlIGZvcm0vY29udGV4dC5cbiAgICogQHBhcmFtIGN1c3RvbU1hcHBpbmdzIEFkZGl0aW9uYWwgZml4ZWQgb3IgbWFwcGVkIHBhcmFtZXRlciB2YWx1ZXMuXG4gICAqL1xuICBleGVjdXRlQXBpKFxuICAgIG9wdGlvbnM6IEFwaUV4ZWN1dGlvbk9wdGlvbnMgfCBQYXJ0aWFsPFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbj4sXG4gICAgZm9ybVZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgICBjdXN0b21NYXBwaW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fVxuICApOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xuICAgIGlmICghdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ1tSZXBvcnRBcGlFeGVjdXRpb25TZXJ2aWNlXSBIdHRwQ2xpZW50IGlzIG5vdCBwcm92aWRlZCBpbiBpbmplY3Rvci4nKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmF3VXJsID0gb3B0aW9ucy51cmwgfHwgb3B0aW9ucy5lbmRwb2ludDtcbiAgICBpZiAoIXJhd1VybCB8fCB0eXBlb2YgcmF3VXJsICE9PSAnc3RyaW5nJyB8fCByYXdVcmwudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdbUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZV0gTm8gdmFsaWQgVVJMIG9yIGVuZHBvaW50IHByb3ZpZGVkIGZvciBBUEkgZXhlY3V0aW9uLicpKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXNzaW9uQ29udGV4dCA9IHRoaXMuc2Vzc2lvbj8uZ2V0Q3VycmVudFNlc3Npb25Db250ZXh0KCkgPz8ge307XG4gICAgY29uc3QgYWxsVmFsdWVzRm9yUGF0aDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICAuLi5zZXNzaW9uQ29udGV4dCxcbiAgICAgIC4uLmZvcm1WYWx1ZXMsXG4gICAgICAuLi5jdXN0b21NYXBwaW5ncyxcbiAgICB9O1xuXG4gICAgLy8gMS4gSW50ZXJwb2xhdGUgUGF0aCBWYXJpYWJsZXM6IC9hcGkvb3JkZXJzLzpvcmRlcklkIG9yIC9hcGkvb3JkZXJzL3t7b3JkZXJJZH19XG4gICAgY29uc3QgcGF0aEtleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBsZXQgcmVzb2x2ZWRVcmwgPSByYXdVcmwucmVwbGFjZSgvOihbYS16QS1aMC05X10rKXxcXHtcXHsoW2EtekEtWjAtOV9dKylcXH1cXH0vZywgKF8sIGsxLCBrMikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gazEgfHwgazI7XG4gICAgICBwYXRoS2V5cy5hZGQoa2V5KTtcbiAgICAgIGNvbnN0IHZhbCA9IGFsbFZhbHVlc0ZvclBhdGhba2V5XTtcbiAgICAgIHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgPyBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHZhbCkpIDogJyc7XG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXRob2QgPSAob3B0aW9ucy5tZXRob2QgfHwgJ0dFVCcpLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBjb25zdCBib2R5UGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLigob3B0aW9ucyBhcyBhbnkpLmJvZHlUZW1wbGF0ZSB8fCB7fSkgfTtcblxuICAgIGNvbnN0IHBheWxvYWRWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgLi4uZm9ybVZhbHVlcyxcbiAgICAgIC4uLmN1c3RvbU1hcHBpbmdzLFxuICAgIH07XG5cbiAgICAvLyAyLiBTZXBhcmF0ZSByZW1haW5pbmcgcGFyYW1zIGludG8gUXVlcnkgcGFyYW1zIGFuZCBCb2R5IHBheWxvYWRcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXlsb2FkVmFsdWVzKSkge1xuICAgICAgaWYgKHBhdGhLZXlzLmhhcyhrKSB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gbnVsbCB8fCB2ID09PSAnJykgY29udGludWU7XG5cbiAgICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBxdWVyeVBhcmFtc1trXSA9IEpTT04uc3RyaW5naWZ5KHYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHF1ZXJ5UGFyYW1zW2tdID0gU3RyaW5nKHYpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBib2R5UGF5bG9hZFtrXSA9IHY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMy4gUmVzb2x2ZSBIZWFkZXJzIHdpdGggVG9rZW4gSW50ZXJwb2xhdGlvbiAmIFN0YW5kYXJkIFNlc3Npb24gQ29udGV4dFxuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBpZiAoc2Vzc2lvbkNvbnRleHRbJ2NvbXBhbnlJZCddICE9PSB1bmRlZmluZWQgJiYgc2Vzc2lvbkNvbnRleHRbJ2NvbXBhbnlJZCddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzWydYLUNvbXBhbnktSWQnXSA9IFN0cmluZyhzZXNzaW9uQ29udGV4dFsnY29tcGFueUlkJ10pO1xuICAgIH1cbiAgICBpZiAoc2Vzc2lvbkNvbnRleHRbJ2JyYW5jaElkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uQ29udGV4dFsnYnJhbmNoSWQnXSAhPT0gbnVsbCkge1xuICAgICAgaGVhZGVyc1snWC1CcmFuY2gtSWQnXSA9IFN0cmluZyhzZXNzaW9uQ29udGV4dFsnYnJhbmNoSWQnXSk7XG4gICAgfVxuICAgIGlmIChzZXNzaW9uQ29udGV4dFsndXNlcklkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uQ29udGV4dFsndXNlcklkJ10gIT09IG51bGwpIHtcbiAgICAgIGhlYWRlcnNbJ1gtVXNlci1JZCddID0gU3RyaW5nKHNlc3Npb25Db250ZXh0Wyd1c2VySWQnXSk7XG4gICAgfVxuICAgIGlmIChzZXNzaW9uQ29udGV4dFsndG9rZW4nXSAhPT0gdW5kZWZpbmVkICYmIHNlc3Npb25Db250ZXh0Wyd0b2tlbiddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSBgQmVhcmVyICR7c2Vzc2lvbkNvbnRleHRbJ3Rva2VuJ119YDtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IFtoaywgaHZdIG9mIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuaGVhZGVycykpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBodiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBoZWFkZXJzW2hrXSA9IGh2LnJlcGxhY2UoL1xce1xce3Nlc3Npb25cXC4oW2EtekEtWjAtOV9dKylcXH1cXH18XFx7XFx7KFthLXpBLVowLTlfXSspXFx9XFx9L2csIChfLCBzazEsIHNrMikgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gc2sxIHx8IHNrMjtcbiAgICAgICAgICAgIHJldHVybiBzZXNzaW9uQ29udGV4dFtrZXldICE9PSB1bmRlZmluZWQgPyBTdHJpbmcoc2Vzc2lvbkNvbnRleHRba2V5XSkgOiAnJztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoZWFkZXJzW2hrXSA9IFN0cmluZyhodik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA0LiBEZXRlcm1pbmUgUmVxdWVzdDogRGlyZWN0IHZzLiBCYWNrZW5kIFByb3h5IEdhdGV3YXlcbiAgICBjb25zdCB1c2VQcm94eSA9IG9wdGlvbnMudXNlUHJveHkgPT09IHRydWU7XG4gICAgbGV0IHJlcXVlc3QkOiBPYnNlcnZhYmxlPHVua25vd24+O1xuXG4gICAgaWYgKHVzZVByb3h5KSB7XG4gICAgICBjb25zdCBwcm94eUJhc2UgPVxuICAgICAgICB0aGlzLmVuZHBvaW50cz8uYXBpc0VuZHBvaW50IHx8XG4gICAgICAgICh0aGlzLnJlcG9ydGluZ0NvbmZpZz8uYXBpQmFzZVVybCA/IGAke3RoaXMucmVwb3J0aW5nQ29uZmlnLmFwaUJhc2VVcmx9L2FwaXNgIDogJy9hcGkvcmVwb3J0aW5nL2FwaXMnKTtcbiAgICAgIGNvbnN0IHByb3h5VXJsID0gYCR7cHJveHlCYXNlLnJlcGxhY2UoL1xcLyskLywgJycpfS9wcm94eWA7XG5cbiAgICAgIHJlcXVlc3QkID0gdGhpcy5odHRwLnBvc3Q8dW5rbm93bj4ocHJveHlVcmwsIHtcbiAgICAgICAgZW5kcG9pbnQ6IHJlc29sdmVkVXJsLFxuICAgICAgICB1cmw6IHJlc29sdmVkVXJsLFxuICAgICAgICBtZXRob2QsXG4gICAgICAgIHBhcmFtZXRlcnM6IHF1ZXJ5UGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgYm9keTogT2JqZWN0LmtleXMoYm9keVBheWxvYWQpLmxlbmd0aCA+IDAgPyBib2R5UGF5bG9hZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobWV0aG9kID09PSAnR0VUJykge1xuICAgICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5nZXQ8dW5rbm93bj4ocmVzb2x2ZWRVcmwsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcywgaGVhZGVycyB9KTtcbiAgICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSAnUE9TVCcpIHtcbiAgICAgICAgcmVxdWVzdCQgPSB0aGlzLmh0dHAucG9zdDx1bmtub3duPihyZXNvbHZlZFVybCwgYm9keVBheWxvYWQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcywgaGVhZGVycyB9KTtcbiAgICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSAnUFVUJykge1xuICAgICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wdXQ8dW5rbm93bj4ocmVzb2x2ZWRVcmwsIGJvZHlQYXlsb2FkLCB7IHBhcmFtczogcXVlcnlQYXJhbXMsIGhlYWRlcnMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5yZXF1ZXN0PHVua25vd24+KG1ldGhvZCwgcmVzb2x2ZWRVcmwsIHtcbiAgICAgICAgICBib2R5OiBib2R5UGF5bG9hZCxcbiAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDUuIEV4dHJhY3QgJiBOb3JtYWxpemUgVGFyZ2V0IERhdGEgQXJyYXlcbiAgICByZXR1cm4gcmVxdWVzdCQucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuZXh0cmFjdERhdGFBcnJheShyZXNwb25zZSwgb3B0aW9ucy5kYXRhUGF0aCkpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFtSZXBvcnRBcGlFeGVjdXRpb25TZXJ2aWNlXSBBUEkgZXhlY3V0aW9uIGVycm9yIFske21ldGhvZH0gJHtyZXNvbHZlZFVybH1dOmAsIGVycik7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICAgIGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHxcbiAgICAgICAgICBlcnI/Lm1lc3NhZ2UgfHxcbiAgICAgICAgICBgQVBJIHJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzICR7ZXJyPy5zdGF0dXMgfHwgJ3Vua25vd24nfWA7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRG90LW5vdGF0aW9uIGV4dHJhY3RvcjogJ2RhdGEuaXRlbXMnIC0+IHJlc3BvbnNlLmRhdGEuaXRlbXNcbiAgICovXG4gIGV4dHJhY3REYXRhQXJyYXkocmVzcG9uc2U6IGFueSwgZGF0YVBhdGg/OiBzdHJpbmcpOiB1bmtub3duW10ge1xuICAgIGlmICghcmVzcG9uc2UpIHJldHVybiBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNwb25zZSkpIHJldHVybiByZXNwb25zZTtcblxuICAgIGlmIChkYXRhUGF0aCAmJiB0eXBlb2YgZGF0YVBhdGggPT09ICdzdHJpbmcnICYmIGRhdGFQYXRoLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gZGF0YVBhdGgudHJpbSgpLnNwbGl0KCcuJyk7XG4gICAgICBsZXQgY3VycmVudDogYW55ID0gcmVzcG9uc2U7XG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgJiYgdHlwZW9mIGN1cnJlbnQgPT09ICdvYmplY3QnICYmIHBhcnQgaW4gY3VycmVudCkge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQXV0by1kZXRlY3QgY29tbW9uIHJlc3BvbnNlIGNvbGxlY3Rpb24gY29udGFpbmVyc1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFsnZGF0YScsICdpdGVtcycsICdyb3dzJywgJ3JlY29yZHMnLCAncmVzdWx0cycsICdyZXN1bHQnXSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2Vba2V5XSkpIHJldHVybiByZXNwb25zZVtrZXldO1xuICAgIH1cblxuICAgIC8vIElmIHNpbmdsZSBvYmplY3QgcmV0dXJuZWQsIHdyYXAgaW4gYXJyYXkgZm9yIGdyaWQgZGlzcGxheVxuICAgIGlmICh0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnICYmIHJlc3BvbnNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gW3Jlc3BvbnNlXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiJdfQ==