@experteam-mx/ngx-services 18.8.14 → 18.8.15

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 (86) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/apis/api-billing-do.service.mjs +1 -1
  3. package/esm2022/lib/apis/api-billing-gt.service.mjs +1 -1
  4. package/esm2022/lib/apis/api-billing-mx.service.mjs +1 -1
  5. package/esm2022/lib/apis/api-billing-pa.service.mjs +1 -1
  6. package/esm2022/lib/apis/api-billing-sv.service.mjs +1 -1
  7. package/esm2022/lib/apis/api-cash-operations.service.mjs +1 -1
  8. package/esm2022/lib/apis/api-catalogs.service.mjs +1 -1
  9. package/esm2022/lib/apis/api-companies.service.mjs +1 -1
  10. package/esm2022/lib/apis/api-composition.service.mjs +1 -1
  11. package/esm2022/lib/apis/api-customs.service.mjs +1 -1
  12. package/esm2022/lib/apis/api-discounts.service.mjs +1 -1
  13. package/esm2022/lib/apis/api-e-tools-auto-billing.service.mjs +1 -1
  14. package/esm2022/lib/apis/api-events.service.mjs +1 -1
  15. package/esm2022/lib/apis/api-external-pickups.service.mjs +1 -1
  16. package/esm2022/lib/apis/api-inventories.service.mjs +1 -1
  17. package/esm2022/lib/apis/api-invoices.service.mjs +1 -1
  18. package/esm2022/lib/apis/api-notifications.service.mjs +1 -1
  19. package/esm2022/lib/apis/api-open-items.service.mjs +1 -1
  20. package/esm2022/lib/apis/api-reports.service.mjs +1 -1
  21. package/esm2022/lib/apis/api-security.service.mjs +1 -1
  22. package/esm2022/lib/apis/api-services.service.mjs +1 -1
  23. package/esm2022/lib/apis/api-shipments.service.mjs +1 -1
  24. package/esm2022/lib/apis/api-supplies.service.mjs +1 -1
  25. package/esm2022/lib/apis/models/api-billing-do.interfaces.mjs +1 -1
  26. package/esm2022/lib/apis/models/api-billing-do.types.mjs +1 -1
  27. package/esm2022/lib/apis/models/api-billing-mx.interfaces.mjs +1 -1
  28. package/esm2022/lib/apis/models/api-billing-mx.types.mjs +1 -1
  29. package/esm2022/lib/apis/models/api-billing-pa.interfaces.mjs +1 -1
  30. package/esm2022/lib/apis/models/api-billing-pa.types.mjs +1 -1
  31. package/esm2022/lib/apis/models/api-billing-sv.interfaces.mjs +1 -1
  32. package/esm2022/lib/apis/models/api-billing-sv.types.mjs +1 -1
  33. package/esm2022/lib/apis/models/api-billing.models.mjs +1 -1
  34. package/esm2022/lib/apis/models/api-cash-operations.interfaces.mjs +1 -1
  35. package/esm2022/lib/apis/models/api-cash-operations.types.mjs +1 -1
  36. package/esm2022/lib/apis/models/api-catalog.enum.mjs +1 -1
  37. package/esm2022/lib/apis/models/api-catalog.interfaces.mjs +1 -1
  38. package/esm2022/lib/apis/models/api-catalog.types.mjs +1 -1
  39. package/esm2022/lib/apis/models/api-companies.interfaces.mjs +1 -1
  40. package/esm2022/lib/apis/models/api-companies.types.mjs +1 -1
  41. package/esm2022/lib/apis/models/api-composition.interfaces.mjs +1 -1
  42. package/esm2022/lib/apis/models/api-composition.types.mjs +1 -1
  43. package/esm2022/lib/apis/models/api-customs.interfaces.mjs +1 -1
  44. package/esm2022/lib/apis/models/api-customs.types.mjs +1 -1
  45. package/esm2022/lib/apis/models/api-discounts.interfaces.mjs +1 -1
  46. package/esm2022/lib/apis/models/api-discounts.types.mjs +1 -1
  47. package/esm2022/lib/apis/models/api-e-tools-auto-billing.interfaces.mjs +1 -1
  48. package/esm2022/lib/apis/models/api-e-tools-auto-billing.types.mjs +1 -1
  49. package/esm2022/lib/apis/models/api-events.enum.mjs +1 -1
  50. package/esm2022/lib/apis/models/api-events.interfaces.mjs +1 -1
  51. package/esm2022/lib/apis/models/api-events.types.mjs +1 -1
  52. package/esm2022/lib/apis/models/api-external-pickups.types.mjs +1 -1
  53. package/esm2022/lib/apis/models/api-inventories.enum.mjs +1 -1
  54. package/esm2022/lib/apis/models/api-inventories.interfaces.mjs +1 -1
  55. package/esm2022/lib/apis/models/api-inventories.types.mjs +1 -1
  56. package/esm2022/lib/apis/models/api-invoices.interfaces.mjs +1 -1
  57. package/esm2022/lib/apis/models/api-invoices.types.mjs +1 -1
  58. package/esm2022/lib/apis/models/api-notifications.interfaces.mjs +1 -1
  59. package/esm2022/lib/apis/models/api-notifications.types.mjs +1 -1
  60. package/esm2022/lib/apis/models/api-open-items.interfaces.mjs +1 -1
  61. package/esm2022/lib/apis/models/api-open-items.types.mjs +1 -1
  62. package/esm2022/lib/apis/models/api-reports.interfaces.mjs +1 -1
  63. package/esm2022/lib/apis/models/api-reports.types.mjs +1 -1
  64. package/esm2022/lib/apis/models/api-security.interfaces.mjs +1 -1
  65. package/esm2022/lib/apis/models/api-security.types.mjs +1 -1
  66. package/esm2022/lib/apis/models/api-services.interfaces.mjs +1 -1
  67. package/esm2022/lib/apis/models/api-services.types.mjs +1 -1
  68. package/esm2022/lib/apis/models/api-shipments.enums.mjs +1 -1
  69. package/esm2022/lib/apis/models/api-shipments.interfaces.mjs +1 -1
  70. package/esm2022/lib/apis/models/api-shipments.types.mjs +1 -1
  71. package/esm2022/lib/apis/models/api-supplies.interfaces.mjs +1 -1
  72. package/esm2022/lib/apis/models/api-supplies.types.mjs +1 -1
  73. package/esm2022/lib/apis/models/api.models.mjs +1 -1
  74. package/esm2022/lib/cypher/crypto.service.mjs +1 -1
  75. package/esm2022/lib/helpers/files.mjs +1 -1
  76. package/esm2022/lib/helpers/http.mjs +1 -1
  77. package/esm2022/lib/interceptors/api-headers.interceptor.mjs +1 -1
  78. package/esm2022/lib/interceptors/api-token.interceptor.mjs +1 -1
  79. package/esm2022/lib/interceptors/http-caching.interceptor.mjs +1 -1
  80. package/esm2022/lib/ngx-services.models.mjs +1 -1
  81. package/esm2022/lib/ngx-services.module.mjs +1 -1
  82. package/esm2022/lib/websockets/web-sockets.service.mjs +1 -1
  83. package/esm2022/public-api.mjs +1 -1
  84. package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
  85. package/lib/apis/models/api-reports.interfaces.d.ts +24 -16
  86. package/package.json +1 -1
@@ -240,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
240
240
  type: Inject,
241
241
  args: ['env']
242
242
  }] }, { type: i1.HttpClient }] });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWRpc2NvdW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWRpc2NvdW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQXVCdEMsTUFBTSxPQUFPLG1CQUFtQjtJQUVMO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUUsSUFBZ0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMEIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsSUFBSSxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJ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SSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO2FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLElBQTZCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLEVBQUUsSUFBSSxDQUFDO2FBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx3QkFBd0IsQ0FBRSxFQUFVLEVBQUUsSUFBNkI7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUMsR0FBRyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ3pHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBclBVLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQge1xuICBDdXN0b21lclJlc3RyaWN0aW9uSW4sXG4gIEN1c3RvbWVyUmVzdHJpY3Rpb25JblYyLFxuICBDdXN0b21lclJlc3RyaWN0aW9uT3V0LFxuICBDdXN0b21lclJlc3RyaWN0aW9uc091dCxcbiAgRGlzY291bnRJbixcbiAgRGlzY291bnRPdXQsXG4gIERpc2NvdW50c091dCxcbiAgTG95YWx0eVBlcmlvZEluLFxuICBMb3lhbHR5UGVyaW9kT3V0LFxuICBMb3lhbHR5UGVyaW9kc091dCxcbiAgTG95YWx0eVJ1bGVJbixcbiAgTG95YWx0eVJ1bGVPdXQsXG4gIExveWFsdHlSdWxlc091dCxcbiAgT3BlcmF0aW9uc0xvYWRUb3BDdXN0b21lclYySW4sXG4gIFRvcEN1c3RvbWVyc091dFxufSBmcm9tICcuL21vZGVscy9hcGktZGlzY291bnRzLnR5cGVzJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcGlEaXNjb3VudHNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IgKFxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7IH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIGVuZHBvaW50IFVSTCBmb3IgZGlzY291bnRzIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgZm9yIHRoZSBkaXNjb3VudHMgQVBJLiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgZGVmaW5lZC5cbiAgICovXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaURpc2NvdW50c1VybCA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYXZhaWxhYmxlIGRpc2NvdW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgYW5kIHJldHJpZXZlIGRpc2NvdW50cy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudHNPdXQ+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBkaXNjb3VudHMgZGF0YS5cbiAgICovXG4gIGdldERpc2NvdW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RGlzY291bnRzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxEaXNjb3VudHNPdXQ+PihgJHt0aGlzLnVybH0vZGlzY291bnRzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgcmVxdWVzdCB0byBjcmVhdGUgb3IgdXBkYXRlIGRpc2NvdW50cyBvbiB0aGUgc2VydmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0Rpc2NvdW50SW59IGJvZHkgLSBUaGUgZGlzY291bnQgaW5mb3JtYXRpb24gdG8gYmUgc3VibWl0dGVkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERpc2NvdW50T3V0Pn0gQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgc2VydmVyJ3MgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgY3JlYXRlZCBvciB1cGRhdGVkIGRpc2NvdW50IGRldGFpbHMuXG4gICAqL1xuICBwb3N0RGlzY291bnRzIChib2R5OiBEaXNjb3VudEluKTogT2JzZXJ2YWJsZTxEaXNjb3VudE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPERpc2NvdW50T3V0Pj4oYCR7dGhpcy51cmx9L2Rpc2NvdW50c2AsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkaXNjb3VudCBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgZGlzY291bnQgaXMgdG8gYmUgdXBkYXRlZC5cbiAgICogQHBhcmFtIHtEaXNjb3VudElufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgdXBkYXRlZCBkaXNjb3VudCBkZXRhaWxzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERpc2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBkaXNjb3VudCBkZXRhaWxzLlxuICAgKi9cbiAgcHV0RGlzY291bnRzIChpZDogbnVtYmVyLCBib2R5OiBEaXNjb3VudEluKTogT2JzZXJ2YWJsZTxEaXNjb3VudE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8RGlzY291bnRPdXQ+PihgJHt0aGlzLnVybH0vZGlzY291bnRzLyR7aWR9YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdG9wIGN1c3RvbWVycyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIGFuZCBzb3J0IHRoZSB0b3AgY3VzdG9tZXJzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvcEN1c3RvbWVyc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGxpc3Qgb2YgdG9wIGN1c3RvbWVycy5cbiAgICovXG4gIGdldFRvcEN1c3RvbWVycyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VG9wQ3VzdG9tZXJzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxUb3BDdXN0b21lcnNPdXQ+PihgJHt0aGlzLnVybH0vdG9wLWN1c3RvbWVyc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBsb2FkIHRoZSB0b3AgY3VzdG9tZXIgZGF0YSBpbiB0aGUgc3lzdGVtLCB1c2luZyB0aGUgcHJvdmlkZWQgaW5wdXQuXG4gICAqIFRyYW5zZm9ybXMgdGhlIEFQSSByZXNwb25zZSB0byBleHRyYWN0IHRoZSBkYXRhIGZpZWxkIGNvbnRhaW5pbmcgdGhlIGRpc2NvdW50IGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge09wZXJhdGlvbnNMb2FkVG9wQ3VzdG9tZXJWMklufSBib2R5IC0gVGhlIGlucHV0IHBheWxvYWQgY29udGFpbmluZyB0aGUgY29tcGFueSBjb3VudHJ5IElEIGFuZCB0aGUgZmlsZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGJvZHkuY29tcGFueV9jb3VudHJ5X2lkIC0gVGhlIElEIG9mIHRoZSBjb21wYW55J3MgY291bnRyeS5cbiAgICogQHBhcmFtIHtGaWxlfSBib2R5LmZpbGUgLSBUaGUgZmlsZSBjb250YWluaW5nIGRhdGEgdG8gYmUgcHJvY2Vzc2VkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERpc2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBkaXNjb3VudCBvdXRwdXQgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwb3N0T3BlcmF0aW9uc0xvYWRUb3BDdXN0b21lclYyIChib2R5OiBPcGVyYXRpb25zTG9hZFRvcEN1c3RvbWVyVjJJbik6IE9ic2VydmFibGU8e30+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb21wYW55X2NvdW50cnlfaWQnLCBTdHJpbmcoYm9keS5jb21wYW55X2NvdW50cnlfaWQpKVxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGJvZHkuZmlsZSlcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbnMvbG9hZC10b3AtY3VzdG9tZXIvVjJgLCBmb3JtRGF0YSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGxveWFsdHkgcGVyaW9kcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHBlcmlvZHMuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgbG95YWx0eSBwZXJpb2RzLlxuICAgKi9cbiAgZ2V0TG95YWx0eVBlcmlvZHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kc091dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHNgLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBsb3lhbHR5IHBlcmlvZCBkZXRhaWxzIGZvciB0aGUgZ2l2ZW4gSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG95YWx0eSBwZXJpb2QgdG8gcmV0cmlldmUuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGxveWFsdHkgcGVyaW9kIGRldGFpbHMuXG4gICAqL1xuICBnZXRMb3lhbHR5UGVyaW9kIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxMb3lhbHR5UGVyaW9kT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcGVyaW9kcy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBVVCByZXF1ZXN0IHRvIHVwZGF0ZSB0aGUgbG95YWx0eSBwZXJpb2Qgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtMb3lhbHR5UGVyaW9kSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIGxveWFsdHkgcGVyaW9kIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBsb3lhbHR5IHBlcmlvZCBkYXRhLlxuICAgKi9cbiAgcG9zdExveWFsdHlQZXJpb2QgKGJvZHk6IExveWFsdHlQZXJpb2RJbik6IE9ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVBlcmlvZE91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgbG95YWx0eSBwZXJpb2QgZm9yIGEgc3BlY2lmaWVkIElEIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG95YWx0eSBwZXJpb2QgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge0xveWFsdHlQZXJpb2RJbn0gYm9keSAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSB1cGRhdGVkIGRldGFpbHMgb2YgdGhlIGxveWFsdHkgcGVyaW9kLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgbG95YWx0eSBwZXJpb2QgZGV0YWlscy5cbiAgICovXG4gIHB1dExveWFsdHlQZXJpb2QgKGlkOiBudW1iZXIsIGJvZHk6IExveWFsdHlQZXJpb2RJbik6IE9ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVBlcmlvZE91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHMvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBsb3lhbHR5IHJ1bGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIGxveWFsdHkgcnVsZXMuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVJ1bGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsb3lhbHR5IHJ1bGVzIG91dHB1dC5cbiAgICovXG4gIGdldExveWFsdHlSdWxlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TG95YWx0eVJ1bGVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UnVsZXNPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBzcGVjaWZpYyBsb3lhbHR5IHJ1bGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGxveWFsdHkgcnVsZSB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGV0YWlscyBvZiB0aGUgc3BlY2lmaWVkIGxveWFsdHkgcnVsZS5cbiAgICovXG4gIGdldExveWFsdHlSdWxlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TG95YWx0eVJ1bGVPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlcy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gYWRkIG9yIHVwZGF0ZSBhIGxveWFsdHkgcnVsZS5cbiAgICpcbiAgICogQHBhcmFtIHtMb3lhbHR5UnVsZUlufSBib2R5IC0gVGhlIGxveWFsdHkgcnVsZSBkYXRhIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlci5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBsb3lhbHR5IHJ1bGUgZGV0YWlscy5cbiAgICovXG4gIHBvc3RMb3lhbHR5UnVsZSAoYm9keTogTG95YWx0eVJ1bGVJbik6IE9ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPExveWFsdHlSdWxlT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcnVsZXNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBsb3lhbHR5IHJ1bGUgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBsb3lhbHR5IHJ1bGUgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge0xveWFsdHlSdWxlSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGxveWFsdHkgcnVsZSB3aXRoLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGxveWFsdHkgcnVsZS5cbiAgICovXG4gIHB1dExveWFsdHlSdWxlIChpZDogbnVtYmVyLCBib2R5OiBMb3lhbHR5UnVsZUluKTogT2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVJ1bGVPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlcy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGN1c3RvbWVyIHJlc3RyaWN0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIGN1c3RvbWVyIHJlc3RyaWN0aW9ucy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb25zIGRhdGEuXG4gICAqL1xuICBnZXRDdXN0b21lclJlc3RyaWN0aW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbnNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyUmVzdHJpY3Rpb25zT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9uc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgY3VzdG9tZXIgcmVzdHJpY3Rpb24gZGV0YWlscyBmb3IgYSBnaXZlbiBjdXN0b21lciBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXN0b21lci5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzLlxuICAgKi9cbiAgZ2V0Q3VzdG9tZXJSZXN0cmljdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnMvJHtpZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIGFwcGx5IGEgcmVzdHJpY3Rpb24gdG8gYSBjdXN0b21lci5cbiAgICpcbiAgICogQHBhcmFtIHtDdXN0b21lclJlc3RyaWN0aW9uSW59IGJvZHkgLSBUaGUgcmVzdHJpY3Rpb24gZGV0YWlscyB0byBiZSBhcHBsaWVkIHRvIHRoZSBjdXN0b21lci5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSByZXNwb25zZSB3aXRoIHRoZSBhcHBsaWVkIGN1c3RvbWVyIHJlc3RyaWN0aW9uLlxuICAgKi9cbiAgcG9zdEN1c3RvbWVyUmVzdHJpY3Rpb24gKGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25Jbik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBjdXN0b21lciByZXN0cmljdGlvbnMgdXNpbmcgdGhlIHByb3ZpZGVkIElEIGFuZCBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1c3RvbWVyIHJlc3RyaWN0aW9uIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7TG95YWx0eVJ1bGVJbn0gYm9keSAtIFRoZSBkYXRhIG9iamVjdCBjb250YWluaW5nIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgY3VzdG9tZXIgcmVzdHJpY3Rpb24gZGV0YWlscy5cbiAgICovXG4gIHB1dEN1c3RvbWVyUmVzdHJpY3Rpb24gKGlkOiBudW1iZXIsIGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25Jbik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnMvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhIGN1c3RvbWVyIHJlc3RyaWN0aW9uIGJ5IGl0cyBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiB0byBkZWxldGUuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRpb24gb3BlcmF0aW9uLlxuICAgKi9cbiAgZGVsZXRlQ3VzdG9tZXJSZXN0cmljdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9ucy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gYXBwbHkgYSByZXN0cmljdGlvbiB0byBhIGN1c3RvbWVyIChWZXJzaW9uIDIpLlxuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbWVyUmVzdHJpY3Rpb25JblYyfSBib2R5IC0gVGhlIHJlc3RyaWN0aW9uIGRldGFpbHMgdG8gYmUgYXBwbGllZCB0byB0aGUgY3VzdG9tZXIuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcmVzcG9uc2Ugd2l0aCB0aGUgYXBwbGllZCBjdXN0b21lciByZXN0cmljdGlvbi5cbiAgICovXG4gIHBvc3RDdXN0b21lclJlc3RyaWN0aW9uVjIgKGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25JblYyKTogT2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnMvVjJgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBjdXN0b21lciByZXN0cmljdGlvbnMgdXNpbmcgdGhlIHByb3ZpZGVkIElEIGFuZCBkYXRhIChWZXJzaW9uIDIpLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1c3RvbWVyIHJlc3RyaWN0aW9uIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7Q3VzdG9tZXJSZXN0cmljdGlvbkluVjJ9IGJvZHkgLSBUaGUgZGF0YSBvYmplY3QgY29udGFpbmluZyB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb24gZGV0YWlscyB0byBiZSB1cGRhdGVkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIGN1c3RvbWVyIHJlc3RyaWN0aW9uIGRldGFpbHMuXG4gICAqL1xuICBwdXRDdXN0b21lclJlc3RyaWN0aW9uVjIgKGlkOiBudW1iZXIsIGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25JblYyKTogT2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9ucy9WMi8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxufVxuIl19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWRpc2NvdW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWRpc2NvdW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQXVCdEMsTUFBTSxPQUFPLG1CQUFtQjtJQUVMO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUUsSUFBZ0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMEIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsSUFBSSxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJ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SSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO2FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLElBQTZCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLEVBQUUsSUFBSSxDQUFDO2FBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx3QkFBd0IsQ0FBRSxFQUFVLEVBQUUsSUFBNkI7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUMsR0FBRyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ3pHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBclBVLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBDdXN0b21lclJlc3RyaWN0aW9uSW4sXHJcbiAgQ3VzdG9tZXJSZXN0cmljdGlvbkluVjIsXHJcbiAgQ3VzdG9tZXJSZXN0cmljdGlvbk91dCxcclxuICBDdXN0b21lclJlc3RyaWN0aW9uc091dCxcclxuICBEaXNjb3VudEluLFxyXG4gIERpc2NvdW50T3V0LFxyXG4gIERpc2NvdW50c091dCxcclxuICBMb3lhbHR5UGVyaW9kSW4sXHJcbiAgTG95YWx0eVBlcmlvZE91dCxcclxuICBMb3lhbHR5UGVyaW9kc091dCxcclxuICBMb3lhbHR5UnVsZUluLFxyXG4gIExveWFsdHlSdWxlT3V0LFxyXG4gIExveWFsdHlSdWxlc091dCxcclxuICBPcGVyYXRpb25zTG9hZFRvcEN1c3RvbWVyVjJJbixcclxuICBUb3BDdXN0b21lcnNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktZGlzY291bnRzLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpRGlzY291bnRzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgQVBJIGVuZHBvaW50IFVSTCBmb3IgZGlzY291bnRzIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIGZvciB0aGUgZGlzY291bnRzIEFQSS4gUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IGRlZmluZWQuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlEaXNjb3VudHNVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYXZhaWxhYmxlIGRpc2NvdW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIGFuZCByZXRyaWV2ZSBkaXNjb3VudHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudHNPdXQ+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBkaXNjb3VudHMgZGF0YS5cclxuICAgKi9cclxuICBnZXREaXNjb3VudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPERpc2NvdW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxEaXNjb3VudHNPdXQ+PihgJHt0aGlzLnVybH0vZGlzY291bnRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gY3JlYXRlIG9yIHVwZGF0ZSBkaXNjb3VudHMgb24gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RGlzY291bnRJbn0gYm9keSAtIFRoZSBkaXNjb3VudCBpbmZvcm1hdGlvbiB0byBiZSBzdWJtaXR0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudE91dD59IEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHNlcnZlcidzIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIGNyZWF0ZWQgb3IgdXBkYXRlZCBkaXNjb3VudCBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHBvc3REaXNjb3VudHMgKGJvZHk6IERpc2NvdW50SW4pOiBPYnNlcnZhYmxlPERpc2NvdW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxEaXNjb3VudE91dD4+KGAke3RoaXMudXJsfS9kaXNjb3VudHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGRpc2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGl0ZW0uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgZGlzY291bnQgaXMgdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge0Rpc2NvdW50SW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSB1cGRhdGVkIGRpc2NvdW50IGRldGFpbHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgZGlzY291bnQgZGV0YWlscy5cclxuICAgKi9cclxuICBwdXREaXNjb3VudHMgKGlkOiBudW1iZXIsIGJvZHk6IERpc2NvdW50SW4pOiBPYnNlcnZhYmxlPERpc2NvdW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPERpc2NvdW50T3V0Pj4oYCR7dGhpcy51cmx9L2Rpc2NvdW50cy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSB0b3AgY3VzdG9tZXJzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIGFuZCBzb3J0IHRoZSB0b3AgY3VzdG9tZXJzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9wQ3VzdG9tZXJzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgbGlzdCBvZiB0b3AgY3VzdG9tZXJzLlxyXG4gICAqL1xyXG4gIGdldFRvcEN1c3RvbWVycyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VG9wQ3VzdG9tZXJzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFRvcEN1c3RvbWVyc091dD4+KGAke3RoaXMudXJsfS90b3AtY3VzdG9tZXJzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBsb2FkIHRoZSB0b3AgY3VzdG9tZXIgZGF0YSBpbiB0aGUgc3lzdGVtLCB1c2luZyB0aGUgcHJvdmlkZWQgaW5wdXQuXHJcbiAgICogVHJhbnNmb3JtcyB0aGUgQVBJIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIGRhdGEgZmllbGQgY29udGFpbmluZyB0aGUgZGlzY291bnQgaW5mb3JtYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvbnNMb2FkVG9wQ3VzdG9tZXJWMklufSBib2R5IC0gVGhlIGlucHV0IHBheWxvYWQgY29udGFpbmluZyB0aGUgY29tcGFueSBjb3VudHJ5IElEIGFuZCB0aGUgZmlsZS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gYm9keS5jb21wYW55X2NvdW50cnlfaWQgLSBUaGUgSUQgb2YgdGhlIGNvbXBhbnkncyBjb3VudHJ5LlxyXG4gICAqIEBwYXJhbSB7RmlsZX0gYm9keS5maWxlIC0gVGhlIGZpbGUgY29udGFpbmluZyBkYXRhIHRvIGJlIHByb2Nlc3NlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERpc2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBkaXNjb3VudCBvdXRwdXQgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbnNMb2FkVG9wQ3VzdG9tZXJWMiAoYm9keTogT3BlcmF0aW9uc0xvYWRUb3BDdXN0b21lclYySW4pOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpXHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2NvbXBhbnlfY291bnRyeV9pZCcsIFN0cmluZyhib2R5LmNvbXBhbnlfY291bnRyeV9pZCkpXHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBib2R5LmZpbGUpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9ucy9sb2FkLXRvcC1jdXN0b21lci9WMmAsIGZvcm1EYXRhKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGxveWFsdHkgcGVyaW9kcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIEFuIG9iamVjdCBjb250YWluaW5nIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBwZXJpb2RzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgbG95YWx0eSBwZXJpb2RzLlxyXG4gICAqL1xyXG4gIGdldExveWFsdHlQZXJpb2RzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxMb3lhbHR5UGVyaW9kc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kc091dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbG95YWx0eSBwZXJpb2QgZGV0YWlscyBmb3IgdGhlIGdpdmVuIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBsb3lhbHR5IHBlcmlvZCB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBsb3lhbHR5IHBlcmlvZCBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIGdldExveWFsdHlQZXJpb2QgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TG95YWx0eVBlcmlvZE91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIHRoZSBsb3lhbHR5IHBlcmlvZCB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtMb3lhbHR5UGVyaW9kSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIGxveWFsdHkgcGVyaW9kIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMb3lhbHR5UGVyaW9kT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGxveWFsdHkgcGVyaW9kIGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdExveWFsdHlQZXJpb2QgKGJvZHk6IExveWFsdHlQZXJpb2RJbik6IE9ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcGVyaW9kc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgbG95YWx0eSBwZXJpb2QgZm9yIGEgc3BlY2lmaWVkIElEIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGxveWFsdHkgcGVyaW9kIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0xveWFsdHlQZXJpb2RJbn0gYm9keSAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSB1cGRhdGVkIGRldGFpbHMgb2YgdGhlIGxveWFsdHkgcGVyaW9kLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBsb3lhbHR5IHBlcmlvZCBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHB1dExveWFsdHlQZXJpb2QgKGlkOiBudW1iZXIsIGJvZHk6IExveWFsdHlQZXJpb2RJbik6IE9ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcGVyaW9kcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsb3lhbHR5IHJ1bGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBsb3lhbHR5IHJ1bGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVJ1bGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsb3lhbHR5IHJ1bGVzIG91dHB1dC5cclxuICAgKi9cclxuICBnZXRMb3lhbHR5UnVsZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPExveWFsdHlSdWxlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UnVsZXNPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgc3BlY2lmaWMgbG95YWx0eSBydWxlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG95YWx0eSBydWxlIHRvIHJldHJpZXZlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRldGFpbHMgb2YgdGhlIHNwZWNpZmllZCBsb3lhbHR5IHJ1bGUuXHJcbiAgICovXHJcbiAgZ2V0TG95YWx0eVJ1bGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExveWFsdHlSdWxlT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcnVsZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgcmVxdWVzdCB0byBhZGQgb3IgdXBkYXRlIGEgbG95YWx0eSBydWxlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtMb3lhbHR5UnVsZUlufSBib2R5IC0gVGhlIGxveWFsdHkgcnVsZSBkYXRhIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGxveWFsdHkgcnVsZSBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHBvc3RMb3lhbHR5UnVsZSAoYm9keTogTG95YWx0eVJ1bGVJbik6IE9ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVJ1bGVPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBsb3lhbHR5IHJ1bGUgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG95YWx0eSBydWxlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0xveWFsdHlSdWxlSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGxveWFsdHkgcnVsZSB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgbG95YWx0eSBydWxlLlxyXG4gICAqL1xyXG4gIHB1dExveWFsdHlSdWxlIChpZDogbnVtYmVyLCBib2R5OiBMb3lhbHR5UnVsZUluKTogT2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxMb3lhbHR5UnVsZU91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXJ1bGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGN1c3RvbWVyIHJlc3RyaWN0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBjdXN0b21lciByZXN0cmljdGlvbnMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb25zIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJSZXN0cmljdGlvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyUmVzdHJpY3Rpb25zT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGN1c3RvbWVyIHJlc3RyaWN0aW9uIGRldGFpbHMgZm9yIGEgZ2l2ZW4gY3VzdG9tZXIgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1c3RvbWVyLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb24gZGV0YWlscy5cclxuICAgKi9cclxuICBnZXRDdXN0b21lclJlc3RyaWN0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXItcmVzdHJpY3Rpb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gYXBwbHkgYSByZXN0cmljdGlvbiB0byBhIGN1c3RvbWVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDdXN0b21lclJlc3RyaWN0aW9uSW59IGJvZHkgLSBUaGUgcmVzdHJpY3Rpb24gZGV0YWlscyB0byBiZSBhcHBsaWVkIHRvIHRoZSBjdXN0b21lci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIHdpdGggdGhlIGFwcGxpZWQgY3VzdG9tZXIgcmVzdHJpY3Rpb24uXHJcbiAgICovXHJcbiAgcG9zdEN1c3RvbWVyUmVzdHJpY3Rpb24gKGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25Jbik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9uc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBjdXN0b21lciByZXN0cmljdGlvbnMgdXNpbmcgdGhlIHByb3ZpZGVkIElEIGFuZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSB7TG95YWx0eVJ1bGVJbn0gYm9keSAtIFRoZSBkYXRhIG9iamVjdCBjb250YWluaW5nIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHB1dEN1c3RvbWVyUmVzdHJpY3Rpb24gKGlkOiBudW1iZXIsIGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25Jbik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9ucy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhIGN1c3RvbWVyIHJlc3RyaWN0aW9uIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb24gdG8gZGVsZXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRpb24gb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUN1c3RvbWVyUmVzdHJpY3Rpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIGFwcGx5IGEgcmVzdHJpY3Rpb24gdG8gYSBjdXN0b21lciAoVmVyc2lvbiAyKS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tZXJSZXN0cmljdGlvbkluVjJ9IGJvZHkgLSBUaGUgcmVzdHJpY3Rpb24gZGV0YWlscyB0byBiZSBhcHBsaWVkIHRvIHRoZSBjdXN0b21lci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIHdpdGggdGhlIGFwcGxpZWQgY3VzdG9tZXIgcmVzdHJpY3Rpb24uXHJcbiAgICovXHJcbiAgcG9zdEN1c3RvbWVyUmVzdHJpY3Rpb25WMiAoYm9keTogQ3VzdG9tZXJSZXN0cmljdGlvbkluVjIpOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXItcmVzdHJpY3Rpb25zL1YyYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGN1c3RvbWVyIHJlc3RyaWN0aW9ucyB1c2luZyB0aGUgcHJvdmlkZWQgSUQgYW5kIGRhdGEgKFZlcnNpb24gMikuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1c3RvbWVyIHJlc3RyaWN0aW9uIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtDdXN0b21lclJlc3RyaWN0aW9uSW5WMn0gYm9keSAtIFRoZSBkYXRhIG9iamVjdCBjb250YWluaW5nIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHB1dEN1c3RvbWVyUmVzdHJpY3Rpb25WMiAoaWQ6IG51bWJlciwgYm9keTogQ3VzdG9tZXJSZXN0cmljdGlvbkluVjIpOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnMvVjIvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
72
72
  type: Inject,
73
73
  args: ['env']
74
74
  }] }, { type: i1.HttpClient }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWUtdG9vbHMtYXV0by1iaWxsaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktZS10b29scy1hdXRvLWJpbGxpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFjdEMsTUFBTSxPQUFPLDJCQUEyQjtJQUViO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFBO0lBQ3JELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsOEJBQThCLENBQUUsRUFDOUIsRUFBRSxFQUNGLEdBQUcsSUFBSSxFQUNxQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUEyQyxHQUFHLElBQUksQ0FBQyxHQUFHLGdDQUFnQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDcEgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUJBQXVCLENBQUUsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzQyxHQUFHLElBQUksQ0FBQyxHQUFHLDRCQUE0QixNQUFNLEVBQUUsQ0FBQzthQUN2RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBRSxFQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUUsOEJBQThCLENBQUM7YUFDL0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsMkJBQTJCLENBQUUsTUFBbUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0MsR0FBRyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsRUFBRTtZQUNwRyxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBL0RVLDJCQUEyQixrQkFFNUIsS0FBSzs0R0FGSiwyQkFBMkIsY0FGMUIsTUFBTTs7NEZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQge1xuICBFeHRlcm5hbFNoaXBtZW50QWRkcmVzc2VzSW4sXG4gIEV4dGVybmFsU2hpcG1lbnRBZGRyZXNzZXNPdXQsXG4gIEV4dGVybmFsU2hpcG1lbnRGaWxlT3V0LFxuICBFeHRlcm5hbFNoaXBtZW50SGlzdG9yaWVzT3V0LFxuICBFeHRlcm5hbFNoaXBtZW50U3RhdHVzT3V0XG59IGZyb20gJy4vbW9kZWxzL2FwaS1lLXRvb2xzLWF1dG8tYmlsbGluZy50eXBlcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpRVRvb2xzQXV0b0JpbGxpbmdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IgKFxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7IH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSBzaGlwbWVudHMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHNoaXBtZW50cyBBUEkuXG4gICAqL1xuICBnZXQgdXJsICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlFVG9vbHNBdXRvQmlsbGluZyA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgZXh0ZXJuYWwgc2hpcG1lbnQgYWRkcmVzcyBkZXRhaWxzIGZvciB0aGUgZ2l2ZW4gYWRkcmVzcyBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgQVBJIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMuaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFkZHJlc3MgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zLmJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHVwZGF0ZWQgYWRkcmVzcyBkZXRhaWxzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRBZGRyZXNzZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgZXh0ZXJuYWwgc2hpcG1lbnQgYWRkcmVzcyBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHBhdGNoRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3NlcyAoe1xuICAgIGlkLFxuICAgIC4uLmJvZHlcbiAgfTogRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc0luKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50QWRkcmVzc2VzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxBcGlTdWNjZXNzPEV4dGVybmFsU2hpcG1lbnRBZGRyZXNzZXNPdXQ+PihgJHt0aGlzLnVybH0vZXh0ZXJuYWwtc2hpcG1lbnQtYWRkcmVzc2VzLyR7aWR9YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGV4dGVybmFsIHNoaXBtZW50IGZpbGUgYnkgaXRzIGlkZW50aWZpZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmaWxlSWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGV4dGVybmFsIHNoaXBtZW50IGZpbGUgdG8gYmUgcmV0cmlldmVkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRGaWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBleHRlcm5hbCBzaGlwbWVudCBmaWxlIGRhdGEuXG4gICAqL1xuICBnZXRFeHRlcm5hbFNoaXBtZW50RmlsZSAoZmlsZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRGaWxlT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeHRlcm5hbFNoaXBtZW50RmlsZU91dD4+KGAke3RoaXMudXJsfS9leHRlcm5hbC1zaGlwbWVudC1maWxlcy8ke2ZpbGVJZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBoaXN0b3J5IGVudHJpZXMgZm9yIGEgc3BlY2lmaWMgZXh0ZXJuYWwgc2hpcG1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgZXh0ZXJuYWwgc2hpcG1lbnQgdG8gcmV0cmlldmUgaGlzdG9yeSBmb3IuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0ZXJuYWxTaGlwbWVudEhpc3Rvcmllc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZXh0ZXJuYWwgc2hpcG1lbnQgaGlzdG9yeSBlbnRyaWVzLlxuICAgKi9cbiAgZ2V0RXh0ZXJuYWxTaGlwbWVudEhpc3RvcmllcyAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXh0ZXJuYWxTaGlwbWVudEhpc3Rvcmllc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RXh0ZXJuYWxTaGlwbWVudEhpc3Rvcmllc091dD4+KGAke3RoaXMudXJsfS9leHRlcm5hbC1zaGlwbWVudHMvJHtpZH0vZXh0ZXJuYWwtc2hpcG1lbnQtaGlzdG9yaWVzYClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBleHRlcm5hbCBzaGlwbWVudCBzdGF0dXNlc1xuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBleHRlcm5hbCBzaGlwbWVudCBzdGF0dXNlcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50U3RhdHVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBleHRlcm5hbCBzaGlwbWVudCBzdGF0dXNlcyBkYXRhLlxuICAgKi9cbiAgZ2V0RXh0ZXJuYWxTaGlwbWVudFN0YXR1c2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50U3RhdHVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeHRlcm5hbFNoaXBtZW50U3RhdHVzT3V0Pj4oYCR7dGhpcy51cmx9L2V4dGVybmFsLXNoaXBtZW50LXN0YXR1c2VzYCwge1xuICAgICAgcGFyYW1zXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWUtdG9vbHMtYXV0by1iaWxsaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktZS10b29scy1hdXRvLWJpbGxpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFjdEMsTUFBTSxPQUFPLDJCQUEyQjtJQUViO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFBO0lBQ3JELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsOEJBQThCLENBQUUsRUFDOUIsRUFBRSxFQUNGLEdBQUcsSUFBSSxFQUNxQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUEyQyxHQUFHLElBQUksQ0FBQyxHQUFHLGdDQUFnQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDcEgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUJBQXVCLENBQUUsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzQyxHQUFHLElBQUksQ0FBQyxHQUFHLDRCQUE0QixNQUFNLEVBQUUsQ0FBQzthQUN2RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBRSxFQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUUsOEJBQThCLENBQUM7YUFDL0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsMkJBQTJCLENBQUUsTUFBbUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0MsR0FBRyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsRUFBRTtZQUNwRyxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBL0RVLDJCQUEyQixrQkFFNUIsS0FBSzs0R0FGSiwyQkFBMkIsY0FGMUIsTUFBTTs7NEZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBFeHRlcm5hbFNoaXBtZW50QWRkcmVzc2VzSW4sXHJcbiAgRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc091dCxcclxuICBFeHRlcm5hbFNoaXBtZW50RmlsZU91dCxcclxuICBFeHRlcm5hbFNoaXBtZW50SGlzdG9yaWVzT3V0LFxyXG4gIEV4dGVybmFsU2hpcG1lbnRTdGF0dXNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktZS10b29scy1hdXRvLWJpbGxpbmcudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlFVG9vbHNBdXRvQmlsbGluZ1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgc2hpcG1lbnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgc2hpcG1lbnRzIEFQSS5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUVUb29sc0F1dG9CaWxsaW5nID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGV4dGVybmFsIHNoaXBtZW50IGFkZHJlc3MgZGV0YWlscyBmb3IgdGhlIGdpdmVuIGFkZHJlc3MgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBBUEkgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBhZGRyZXNzIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zLmJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHVwZGF0ZWQgYWRkcmVzcyBkZXRhaWxzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBleHRlcm5hbCBzaGlwbWVudCBhZGRyZXNzIGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIHBhdGNoRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3NlcyAoe1xyXG4gICAgaWQsXHJcbiAgICAuLi5ib2R5XHJcbiAgfTogRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc0luKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50QWRkcmVzc2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPEFwaVN1Y2Nlc3M8RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc091dD4+KGAke3RoaXMudXJsfS9leHRlcm5hbC1zaGlwbWVudC1hZGRyZXNzZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGV4dGVybmFsIHNoaXBtZW50IGZpbGUgYnkgaXRzIGlkZW50aWZpZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gZmlsZUlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCBmaWxlIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRGaWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBleHRlcm5hbCBzaGlwbWVudCBmaWxlIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RXh0ZXJuYWxTaGlwbWVudEZpbGUgKGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50RmlsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeHRlcm5hbFNoaXBtZW50RmlsZU91dD4+KGAke3RoaXMudXJsfS9leHRlcm5hbC1zaGlwbWVudC1maWxlcy8ke2ZpbGVJZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgaGlzdG9yeSBlbnRyaWVzIGZvciBhIHNwZWNpZmljIGV4dGVybmFsIHNoaXBtZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCB0byByZXRyaWV2ZSBoaXN0b3J5IGZvci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRIaXN0b3JpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGV4dGVybmFsIHNoaXBtZW50IGhpc3RvcnkgZW50cmllcy5cclxuICAgKi9cclxuICBnZXRFeHRlcm5hbFNoaXBtZW50SGlzdG9yaWVzIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50SGlzdG9yaWVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEV4dGVybmFsU2hpcG1lbnRIaXN0b3JpZXNPdXQ+PihgJHt0aGlzLnVybH0vZXh0ZXJuYWwtc2hpcG1lbnRzLyR7aWR9L2V4dGVybmFsLXNoaXBtZW50LWhpc3Rvcmllc2ApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGV4dGVybmFsIHNoaXBtZW50IHN0YXR1c2VzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBleHRlcm5hbCBzaGlwbWVudCBzdGF0dXNlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRTdGF0dXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGV4dGVybmFsIHNoaXBtZW50IHN0YXR1c2VzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RXh0ZXJuYWxTaGlwbWVudFN0YXR1c2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50U3RhdHVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEV4dGVybmFsU2hpcG1lbnRTdGF0dXNPdXQ+PihgJHt0aGlzLnVybH0vZXh0ZXJuYWwtc2hpcG1lbnQtc3RhdHVzZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
50
50
  type: Inject,
51
51
  args: ['env']
52
52
  }] }, { type: i1.HttpClient }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWV2ZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQU90QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRUY7SUFDZjtJQUZWLFlBQ3lCLFlBQXlCLEVBQ3hDLElBQWdCO1FBREQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN0QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFBO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLElBQTRCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsSUFBSSxDQUFDO2FBQy9GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxzQkFBc0IsQ0FBRSxFQUFVLEVBQUUsSUFBMEI7UUFDNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUMsR0FBRyxJQUFJLENBQUMsR0FBRyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO2FBQ2xHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBcENVLGdCQUFnQixrQkFFakIsS0FBSzs0R0FGSixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEFwaVN1Y2Nlc3MgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xuaW1wb3J0IHsgT3BlcmF0aW9uTW9kdWxlRW5kSW4sIE9wZXJhdGlvbk1vZHVsZU91dCwgT3BlcmF0aW9uTW9kdWxlU3RhcnRJbiB9IGZyb20gJy4vbW9kZWxzL2FwaS1ldmVudHMudHlwZXMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaUV2ZW50c1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvciAoXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHsgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgZW5kcG9pbnQgVVJMIGZvciBFdmVudHMgZnJvbSB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBmb3IgdGhlIEV2ZW50cyBBUEkuIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIGlmIG5vdCBkZWZpbmVkLlxuICAgKi9cbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpRXZlbnRzVXJsID8/ICcnXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIHN0YXJ0IGFuIGV2ZW50XG4gICAqXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uTW9kdWxlU3RhcnRJbn0gYm9keSAtIFRoZSBldmVudCBpbmZvcm1hdGlvbiB0byBiZSBzdWJtaXR0ZWQuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uTW9kdWxlT3V0Pn0gQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgc2VydmVyJ3MgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgY3JlYXRlZCBldmVudCBkZXRhaWxzLlxuICAgKi9cbiAgcG9zdE9wZXJhdGlvbk1vZHVsZXNTdGFydCAoYm9keTogT3BlcmF0aW9uTW9kdWxlU3RhcnRJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uTW9kdWxlT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uTW9kdWxlT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi1tb2R1bGVzL3N0YXJ0YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGRpc2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBldmVudCBpcyB0byBiZSB1cGRhdGVkLlxuICAgKiBAcGFyYW0ge09wZXJhdGlvbk1vZHVsZUVuZElufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgdXBkYXRlZCBldmVudCBkZXRhaWxzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbk1vZHVsZU91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgZXZlbnQgZGV0YWlscy5cbiAgICovXG4gIHB1dE9wZXJhdGlvbk1vZHVsZXNFbmQgKGlkOiBudW1iZXIsIGJvZHk6IE9wZXJhdGlvbk1vZHVsZUVuZEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25Nb2R1bGVPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPE9wZXJhdGlvbk1vZHVsZU91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24tbW9kdWxlcy8ke2lkfS9lbmRgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWV2ZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQU90QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRUY7SUFDZjtJQUZWLFlBQ3lCLFlBQXlCLEVBQ3hDLElBQWdCO1FBREQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN0QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFBO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLElBQTRCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsSUFBSSxDQUFDO2FBQy9GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxzQkFBc0IsQ0FBRSxFQUFVLEVBQUUsSUFBMEI7UUFDNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUMsR0FBRyxJQUFJLENBQUMsR0FBRyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO2FBQ2xHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBcENVLGdCQUFnQixrQkFFakIsS0FBSzs0R0FGSixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7IE9wZXJhdGlvbk1vZHVsZUVuZEluLCBPcGVyYXRpb25Nb2R1bGVPdXQsIE9wZXJhdGlvbk1vZHVsZVN0YXJ0SW4gfSBmcm9tICcuL21vZGVscy9hcGktZXZlbnRzLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpRXZlbnRzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgQVBJIGVuZHBvaW50IFVSTCBmb3IgRXZlbnRzIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIGZvciB0aGUgRXZlbnRzIEFQSS4gUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IGRlZmluZWQuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlFdmVudHNVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgcmVxdWVzdCB0byBzdGFydCBhbiBldmVudFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25Nb2R1bGVTdGFydElufSBib2R5IC0gVGhlIGV2ZW50IGluZm9ybWF0aW9uIHRvIGJlIHN1Ym1pdHRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbk1vZHVsZU91dD59IEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHNlcnZlcidzIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIGNyZWF0ZWQgZXZlbnQgZGV0YWlscy5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uTW9kdWxlc1N0YXJ0IChib2R5OiBPcGVyYXRpb25Nb2R1bGVTdGFydEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25Nb2R1bGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE9wZXJhdGlvbk1vZHVsZU91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24tbW9kdWxlcy9zdGFydGAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgZGlzY291bnQgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgaXRlbS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBldmVudCBpcyB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uTW9kdWxlRW5kSW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSB1cGRhdGVkIGV2ZW50IGRldGFpbHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25Nb2R1bGVPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIGV2ZW50IGRldGFpbHMuXHJcbiAgICovXHJcbiAgcHV0T3BlcmF0aW9uTW9kdWxlc0VuZCAoaWQ6IG51bWJlciwgYm9keTogT3BlcmF0aW9uTW9kdWxlRW5kSW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbk1vZHVsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxPcGVyYXRpb25Nb2R1bGVPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uLW1vZHVsZXMvJHtpZH0vZW5kYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
71
71
  type: Inject,
72
72
  args: ['env']
73
73
  }] }] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV4dGVybmFsLXBpY2t1cHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1leHRlcm5hbC1waWNrdXBzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFVbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFNcEMsTUFBTSxPQUFPLHlCQUF5QjtJQUkxQjtJQUNlO0lBSmpCLE1BQU0sQ0FBUTtJQUV0QixZQUNVLFVBQXNCLEVBQ1AsV0FBd0I7UUFEdkMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNQLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRS9DLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQTtJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQTtJQUN4RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxnQ0FBZ0MsQ0FBRSxPQUF1QztRQUM5RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLElBQUksQ0FBQyxHQUFHLGlDQUFpQyxFQUM1QyxPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxpQ0FBaUMsQ0FBRSxFQUN4QyxNQUFNLEVBQ04sV0FBVyxHQUNvQjtRQUMvQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUMxQixHQUFHLElBQUksQ0FBQyxHQUFHLG9DQUFvQyxNQUFNLEVBQUUsRUFDdkQsSUFBSSxFQUFFO1lBQ0osT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRTtTQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSx1QkFBdUIsQ0FBRSxFQUM5QixHQUFHLEVBQ0gsR0FBRyxJQUFJLEVBQ2dCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUNBQXVDLEdBQUcsRUFBRSxFQUN2RCxJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQzt3R0F4RVUseUJBQXlCLDRDQUsxQixLQUFLOzRHQUxKLHlCQUF5QixjQUZ4QixNQUFNOzs0RkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xuaW1wb3J0IHtcbiAgRGVsaXZlcnlDb25maXJtYXRpb25Db21wbGV0ZUluLFxuICBEZWxpdmVyeUNvbmZpcm1hdGlvbkdlbmVyYXRlSW4sXG4gIERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVPdXQsXG4gIERlbGl2ZXJ5Q29uZmlybWF0aW9uSW5cbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWV4dGVybmFsLXBpY2t1cHMudHlwZXMnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgQXBpU3VjY2VzcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaUV4dGVybmFsUGlja3Vwc1NlcnZpY2Uge1xuICBwcml2YXRlIGFwcEtleTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IgKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFxuICApIHtcbiAgICB0aGlzLmFwcEtleSA9IGVudmlyb25tZW50LmFwaUV4dGVybmFsT3BlcmF0aW9uc0tleSA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBtZXRob2QgdG8gcmV0cmlldmUgdGhlIEFQSSdzIGV4dGVybmFsIG9wZXJhdGlvbnMgVVJMLlxuICAgKiBGZXRjaGVzIHRoZSBVUkwgZnJvbSB0aGUgYGFwaUV4dGVybmFsT3BlcmF0aW9uc1VybGAgcHJvcGVydHkgb2YgdGhlIGVudmlyb25tZW50IG9iamVjdC5cbiAgICogRGVmYXVsdHMgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBwcm9wZXJ0eSBpcyB1bmRlZmluZWQgb3IgbnVsbC5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZXh0ZXJuYWwgb3BlcmF0aW9ucyBVUkwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHVuYXZhaWxhYmxlLlxuICAgKi9cbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcGlFeHRlcm5hbE9wZXJhdGlvbnNVcmwgPz8gJydcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBkZWxpdmVyeSBjb25maXJtYXRpb24gYnkgc2VuZGluZyB0aGUgcHJvdmlkZWQgcGF5bG9hZCB0byB0aGUgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0ge0RlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVJbn0gcGF5bG9hZCAtIFRoZSBpbnB1dCBwYXlsb2FkIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoZSBkZWxpdmVyeSBjb25maXJtYXRpb24uXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZ2VuZXJhdGVkIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBkYXRhLlxuICAgKi9cbiAgcHVibGljIHBvc3REZWxpdmVyeUNvbmZpcm1hdGlvbkdlbmVyYXRlIChwYXlsb2FkOiBEZWxpdmVyeUNvbmZpcm1hdGlvbkdlbmVyYXRlSW4pOiBPYnNlcnZhYmxlPERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpU3VjY2VzczxEZWxpdmVyeUNvbmZpcm1hdGlvbkdlbmVyYXRlT3V0Pj4oXG4gICAgICBgJHt0aGlzLnVybH0vZGVsaXZlcnktY29uZmlybWF0aW9uL2dlbmVyYXRlYCxcbiAgICAgIHBheWxvYWQsIHtcbiAgICAgICAgaGVhZGVyczogeyBhcHBrZXk6IHRoaXMuYXBwS2V5IH1cbiAgICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogQ29uZmlybXMgdGhlIGNvbXBsZXRpb24gb2YgYSBkZWxpdmVyeSBvcGVyYXRpb24gYnkgbWFraW5nIGEgUEFUQ0ggcmVxdWVzdC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGlucHV0IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgZm9yIHRoZSBtZXRob2QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dC5vcGVyYXRpb25JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZGVsaXZlcnkgb3BlcmF0aW9uIHRvIGJlIGNvbmZpcm1lZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0LmtleU9UUCAtIFRoZSBvbmUtdGltZSBwYXNzd29yZCAoT1RQKSBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWxpdmVyeSBjb25maXJtYXRpb24uXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T2JqZWN0Pn0gLSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGUgQVBJLlxuICAgKi9cbiAgcHVibGljIHBhdGNoRGVsaXZlcnlDb25maXJtYXRpb25Db21wbGV0ZSAoe1xuICAgIGtleU9UUCxcbiAgICBvcGVyYXRpb25JZCxcbiAgfTogRGVsaXZlcnlDb25maXJtYXRpb25Db21wbGV0ZUluKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucGF0Y2g8QXBpU3VjY2Vzczx7fT4+KFxuICAgICAgYCR7dGhpcy51cmx9L2RlbGl2ZXJ5LWNvbmZpcm1hdGlvbi9jb21wbGV0ZWQvJHtrZXlPVFB9YCxcbiAgICAgIG51bGwsIHtcbiAgICAgICAgaGVhZGVyczogeyBhcHBrZXk6IHRoaXMuYXBwS2V5IH0sXG4gICAgICAgIHBhcmFtczogeyBvcGVyYXRpb25faWQ6IG9wZXJhdGlvbklkIH1cbiAgICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyBhIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBieSBzZW5kaW5nIGFuIE9UUCBhbmQgYWRkaXRpb25hbCBkYXRhIHRvIHRoZSBzZXJ2ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbTAgLSBUaGUgcGFyYW1ldGVyIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW0wLm90cCAtIFRoZSBvbmUtdGltZSBwYXNzd29yZCB0byBhdXRoZW50aWNhdGUgdGhlIGNhbmNlbGxhdGlvbiByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW0wLmJvZHkgLSBBZGRpdGlvbmFsIGJvZHkgZGF0YSByZXF1aXJlZCBmb3IgY2FuY2VsbGF0aW9uLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9iamVjdD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2VydmVyJ3MgcmVzcG9uc2Ugd2hlbiB0aGUgY2FuY2VsbGF0aW9uIGlzIHByb2Nlc3NlZC5cbiAgICovXG4gIHB1YmxpYyBwdXREZWxpdmVyeUNvbmZpcm1hdGlvbiAoe1xuICAgIG90cCxcbiAgICAuLi5ib2R5XG4gIH06IERlbGl2ZXJ5Q29uZmlybWF0aW9uSW4pOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQ8QXBpU3VjY2Vzczx7fT4+KFxuICAgICAgYCR7dGhpcy51cmx9L2RlbGl2ZXJ5LWNvbmZpcm1hdGlvbi9jb25maXJtYXRpb24vJHtvdHB9YCxcbiAgICAgIGJvZHksIHtcbiAgICAgICAgaGVhZGVyczogeyBhcHBrZXk6IHRoaXMuYXBwS2V5IH0sXG4gICAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV4dGVybmFsLXBpY2t1cHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1leHRlcm5hbC1waWNrdXBzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFVbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFNcEMsTUFBTSxPQUFPLHlCQUF5QjtJQUkxQjtJQUNlO0lBSmpCLE1BQU0sQ0FBUTtJQUV0QixZQUNVLFVBQXNCLEVBQ1AsV0FBd0I7UUFEdkMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNQLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRS9DLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQTtJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQTtJQUN4RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxnQ0FBZ0MsQ0FBRSxPQUF1QztRQUM5RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLElBQUksQ0FBQyxHQUFHLGlDQUFpQyxFQUM1QyxPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxpQ0FBaUMsQ0FBRSxFQUN4QyxNQUFNLEVBQ04sV0FBVyxHQUNvQjtRQUMvQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUMxQixHQUFHLElBQUksQ0FBQyxHQUFHLG9DQUFvQyxNQUFNLEVBQUUsRUFDdkQsSUFBSSxFQUFFO1lBQ0osT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRTtTQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSx1QkFBdUIsQ0FBRSxFQUM5QixHQUFHLEVBQ0gsR0FBRyxJQUFJLEVBQ2dCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUNBQXVDLEdBQUcsRUFBRSxFQUN2RCxJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQzt3R0F4RVUseUJBQXlCLDRDQUsxQixLQUFLOzRHQUxKLHlCQUF5QixjQUZ4QixNQUFNOzs0RkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBEZWxpdmVyeUNvbmZpcm1hdGlvbkNvbXBsZXRlSW4sXHJcbiAgRGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZUluLFxyXG4gIERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVPdXQsXHJcbiAgRGVsaXZlcnlDb25maXJtYXRpb25JblxyXG59IGZyb20gJy4vbW9kZWxzL2FwaS1leHRlcm5hbC1waWNrdXBzLnR5cGVzJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpRXh0ZXJuYWxQaWNrdXBzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBhcHBLZXk6IHN0cmluZ1xyXG5cclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFxyXG4gICkge1xyXG4gICAgdGhpcy5hcHBLZXkgPSBlbnZpcm9ubWVudC5hcGlFeHRlcm5hbE9wZXJhdGlvbnNLZXkgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBtZXRob2QgdG8gcmV0cmlldmUgdGhlIEFQSSdzIGV4dGVybmFsIG9wZXJhdGlvbnMgVVJMLlxyXG4gICAqIEZldGNoZXMgdGhlIFVSTCBmcm9tIHRoZSBgYXBpRXh0ZXJuYWxPcGVyYXRpb25zVXJsYCBwcm9wZXJ0eSBvZiB0aGUgZW52aXJvbm1lbnQgb2JqZWN0LlxyXG4gICAqIERlZmF1bHRzIHRvIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgcHJvcGVydHkgaXMgdW5kZWZpbmVkIG9yIG51bGwuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBleHRlcm5hbCBvcGVyYXRpb25zIFVSTCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdW5hdmFpbGFibGUuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaUV4dGVybmFsT3BlcmF0aW9uc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGEgZGVsaXZlcnkgY29uZmlybWF0aW9uIGJ5IHNlbmRpbmcgdGhlIHByb3ZpZGVkIHBheWxvYWQgdG8gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZUlufSBwYXlsb2FkIC0gVGhlIGlucHV0IHBheWxvYWQgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhlIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGdlbmVyYXRlZCBkZWxpdmVyeSBjb25maXJtYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBwdWJsaWMgcG9zdERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGUgKHBheWxvYWQ6IERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVJbik6IE9ic2VydmFibGU8RGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVN1Y2Nlc3M8RGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZU91dD4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vZGVsaXZlcnktY29uZmlybWF0aW9uL2dlbmVyYXRlYCxcclxuICAgICAgcGF5bG9hZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHsgYXBwa2V5OiB0aGlzLmFwcEtleSB9XHJcbiAgICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25maXJtcyB0aGUgY29tcGxldGlvbiBvZiBhIGRlbGl2ZXJ5IG9wZXJhdGlvbiBieSBtYWtpbmcgYSBQQVRDSCByZXF1ZXN0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGlucHV0IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgZm9yIHRoZSBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0Lm9wZXJhdGlvbklkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBkZWxpdmVyeSBvcGVyYXRpb24gdG8gYmUgY29uZmlybWVkLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dC5rZXlPVFAgLSBUaGUgb25lLXRpbWUgcGFzc3dvcmQgKE9UUCkga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVsaXZlcnkgY29uZmlybWF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T2JqZWN0Pn0gLSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGUgQVBJLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYXRjaERlbGl2ZXJ5Q29uZmlybWF0aW9uQ29tcGxldGUgKHtcclxuICAgIGtleU9UUCxcclxuICAgIG9wZXJhdGlvbklkLFxyXG4gIH06IERlbGl2ZXJ5Q29uZmlybWF0aW9uQ29tcGxldGVJbik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucGF0Y2g8QXBpU3VjY2Vzczx7fT4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vZGVsaXZlcnktY29uZmlybWF0aW9uL2NvbXBsZXRlZC8ke2tleU9UUH1gLFxyXG4gICAgICBudWxsLCB7XHJcbiAgICAgICAgaGVhZGVyczogeyBhcHBrZXk6IHRoaXMuYXBwS2V5IH0sXHJcbiAgICAgICAgcGFyYW1zOiB7IG9wZXJhdGlvbl9pZDogb3BlcmF0aW9uSWQgfVxyXG4gICAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VscyBhIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBieSBzZW5kaW5nIGFuIE9UUCBhbmQgYWRkaXRpb25hbCBkYXRhIHRvIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW0wIC0gVGhlIHBhcmFtZXRlciBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWlyZWQgcHJvcGVydGllcy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW0wLm90cCAtIFRoZSBvbmUtdGltZSBwYXNzd29yZCB0byBhdXRoZW50aWNhdGUgdGhlIGNhbmNlbGxhdGlvbiByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbTAuYm9keSAtIEFkZGl0aW9uYWwgYm9keSBkYXRhIHJlcXVpcmVkIGZvciBjYW5jZWxsYXRpb24uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPYmplY3Q+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNlcnZlcidzIHJlc3BvbnNlIHdoZW4gdGhlIGNhbmNlbGxhdGlvbiBpcyBwcm9jZXNzZWQuXHJcbiAgICovXHJcbiAgcHVibGljIHB1dERlbGl2ZXJ5Q29uZmlybWF0aW9uICh7XHJcbiAgICBvdHAsXHJcbiAgICAuLi5ib2R5XHJcbiAgfTogRGVsaXZlcnlDb25maXJtYXRpb25Jbik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PEFwaVN1Y2Nlc3M8e30+PihcclxuICAgICAgYCR7dGhpcy51cmx9L2RlbGl2ZXJ5LWNvbmZpcm1hdGlvbi9jb25maXJtYXRpb24vJHtvdHB9YCxcclxuICAgICAgYm9keSwge1xyXG4gICAgICAgIGhlYWRlcnM6IHsgYXBwa2V5OiB0aGlzLmFwcEtleSB9LFxyXG4gICAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
205
205
  type: Inject,
206
206
  args: ['env']
207
207
  }] }, { type: i1.HttpClient }] });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludmVudG9yaWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52ZW50b3JpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUlsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFNdEMsTUFBTSxPQUFPLHFCQUFxQjtJQUVQO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFBO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBRSxNQUFtQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRTtZQUMxRSxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLE1BQW1CO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLEVBQUU7WUFDbEcsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUs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Q3ZFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxFQUMzRyxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw4QkFBOEIsQ0FBRSxFQUFVO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxDQUFDO2FBQzlHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxtQkFBbUIsQ0FBRSxJQUF1QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFpQyxHQUFHLElBQUksQ0FBQyxHQUFHLG9CQUFvQixFQUFFLElBQUksQ0FBQzthQUN6RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTFOVSxxQkFBcUIsa0JBRXRCLEtBQUs7NEdBRkoscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ2hlY2twb2ludEV2ZW50UmVhc29uc091dCwgQ2hlY2twb2ludHNPdXQsIEluY2lkZW50SW4sIEluY2lkZW50T3V0LCBJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRJbiwgSW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0LCBJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRzT3V0LCBJbmNpZGVudFJlYXNvbkluLCBJbmNpZGVudFJlYXNvbk91dCwgSW5jaWRlbnRSZWFzb25zT3V0LCBJbmNpZGVudHNPdXQsIFBhY2thZ2VzSW5TdG9ja0luLCBQYWNrYWdlc0luU3RvY2tPdXQgfSBmcm9tICcuL21vZGVscy9hcGktaW52ZW50b3JpZXMudHlwZXMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaUludmVudG9yaWVzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yIChcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgSW52ZW50b3JpZXMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIEludmVudG9yaWVzIEFQSS5cbiAgICovXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUludmVudG9yaWVzVXJsID8/ICcnXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjaGVja3BvaW50cyBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGNoZWNrcG9pbnRzLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDaGVja3BvaW50c091dD59IFRoZSBsaXN0IG9mIGNoZWNrcG9pbnRzLlxuICAgKi9cbiAgZ2V0Q2hlY2twb2ludHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENoZWNrcG9pbnRzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDaGVja3BvaW50c091dD4+KGAke3RoaXMudXJsfS9jaGVja3BvaW50c2AsIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjaGVja3BvaW50IGV2ZW50IHJlYXNvbnMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBjaGVja3BvaW50IGV2ZW50IHJlYXNvbnMuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENoZWNrcG9pbnRFdmVudFJlYXNvbnNPdXQ+fSBUaGUgbGlzdCBvZiBjaGVja3BvaW50IGV2ZW50IHJlYXNvbnMuXG4gICAqL1xuICBnZXRDaGVja3BvaW50RXZlbnRSZWFzb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDaGVja3BvaW50RXZlbnRSZWFzb25zT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDaGVja3BvaW50RXZlbnRSZWFzb25zT3V0Pj4oYCR7dGhpcy51cmx9L2NoZWNrcG9pbnQtZXZlbnQtcmVhc29uc2AsIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBpbmNpZGVudHMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBpbmNpZGVudHMuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBpbmNpZGVudHMuXG4gICAqL1xuICBnZXRJbmNpZGVudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEluY2lkZW50c091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRzT3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50c2AsIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgaW5jaWRlbnQgZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgaW5jaWRlbnQgSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpbmNpZGVudCByZWNvcmQgdG8gZ2V0IGRldGFpbC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbmNpZGVudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGV0YWlsIGluY2lkZW50IGRhdGEuXG4gICAqL1xuICBnZXRJbmNpZGVudCAoaWQ6IE51bWJlcik6IE9ic2VydmFibGU8SW5jaWRlbnRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluY2lkZW50T3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50cy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluY2lkZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0luY2lkZW50SW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIG5ldyBpbmNpZGVudC5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoZSBjcmVhdGVkIGluY2lkZW50IGRldGFpbC5cbiAgICovXG4gIHBvc3RJbmNpZGVudCAoYm9keTogSW5jaWRlbnRJbik6IE9ic2VydmFibGU8SW5jaWRlbnRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJbmNpZGVudE91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudHNgLFxuICAgICAgYm9keVxuICAgICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGluY2lkZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVjb3JkIHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIHtJbmNpZGVudElufSBib2R5IC0gVGhlIGluY2lkZW50IGRhdGEgdG8gYmUgdXBkYXRlZC5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGRldGFpbCBvZiB0aGUgdXBkYXRlZCBpbmNpZGVudC5cbiAgICovXG4gIHB1dEluY2lkZW50IChpZDogTnVtYmVyLCBib2R5OiBJbmNpZGVudEluKTogT2JzZXJ2YWJsZTxJbmNpZGVudE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnRzLyR7aWR9YCxcbiAgICAgIGJvZHlcbiAgICApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGluY2lkZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGluY2lkZW50IHRvIGJlIGRlbGV0ZWQuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBpbmNpZGVudC5cbiAgICovXG4gIGRlbGV0ZUluY2lkZW50IChpZDogTnVtYmVyKTogT2JzZXJ2YWJsZTxJbmNpZGVudE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8SW5jaWRlbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnRzLyR7aWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgaW5jaWRlbnQgcmVhc29ucyBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGluY2lkZW50IHJlYXNvbnMuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBpbmNpZGVudCByZWFzb25zLlxuICAgKi9cbiAgZ2V0SW5jaWRlbnRSZWFzb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbnNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluY2lkZW50UmVhc29uc091dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb25zYCwge1xuICAgICAgcGFyYW1zXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBpbmNpZGVudCByZWFzb24gZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgaW5jaWRlbnQgcmVhc29uIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVhc29uIHJlY29yZCB0byBnZXQgZGV0YWlsLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZXRhaWwgaW5jaWRlbnQgcmVhc29uIGRhdGEuXG4gICAqL1xuICBnZXRJbmNpZGVudFJlYXNvbiAoaWQ6IE51bWJlcik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluY2lkZW50UmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50LXJlYXNvbnMvJHtpZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbmNpZGVudCByZWFzb24uXG4gICAqXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRSZWFzb25Jbn0gYm9keSAtIFRoZSBkYXRhIGZvciB0aGUgbmV3IGluY2lkZW50IHJlYXNvbi5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoZSBjcmVhdGVkIGluY2lkZW50IHJlYXNvbiBkZXRhaWwuXG4gICAqL1xuICBwb3N0SW5jaWRlbnRSZWFzb24gKGJvZHk6IEluY2lkZW50UmVhc29uSW4pOiBPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29uc2AsXG4gICAgICBib2R5XG4gICAgKS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgaW5jaWRlbnQgcmVhc29uLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVhc29uIHJlY29yZCB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRJbn0gYm9keSAtIFRoZSBpbmNpZGVudCByZWFzb24gZGF0YSB0byBiZSB1cGRhdGVkLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgZGV0YWlsIG9mIHRoZSB1cGRhdGVkIGluY2lkZW50IHJlYXNvbi5cbiAgICovXG4gIHB1dEluY2lkZW50UmVhc29uIChpZDogTnVtYmVyLCBib2R5OiBJbmNpZGVudFJlYXNvbkluKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29ucy8ke2lkfWAsXG4gICAgICBib2R5XG4gICAgKS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyBpbmNpZGVudCByZWFzb24uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVhc29uIHRvIGJlIGRlbGV0ZWQuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBpbmNpZGVudCByZWFzb24uXG4gICAqL1xuICBkZWxldGVJbmNpZGVudFJlYXNvbiAoaWQ6IE51bWJlcik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPEluY2lkZW50UmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50LXJlYXNvbnMvJHtpZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudHMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudHMuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnRzLlxuICAgKi9cbiAgZ2V0SW5jaWRlbnRSZWFzb25Db21wbGVtZW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50c091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50c091dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb24tY29tcGxlbWVudHNgLCB7XG4gICAgICBwYXJhbXNcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRSZWFzb25Jbn0gYm9keSAtIFRoZSBkYXRhIGZvciB0aGUgbmV3IGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50LlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoZSBjcmVhdGVkIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50IGRldGFpbC5cbiAgICovXG4gIHBvc3RJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnQgKGJvZHk6IEluY2lkZW50UmVhc29uQ29tcGxlbWVudEluKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29uLWNvbXBsZW1lbnRzYCxcbiAgICAgIGJvZHlcbiAgICApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50IHJlY29yZCB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRJbn0gYm9keSAtIFRoZSBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudCBkYXRhIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD59IEFuIG9ic2VydmFibGUgZGV0YWlsIG9mIHRoZSB1cGRhdGVkIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50LlxuICAgKi9cbiAgcHV0SW5jaWRlbnRSZWFzb25Db21wbGVtZW50IChpZDogTnVtYmVyLCBib2R5OiBJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRJbik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29uLWNvbXBsZW1lbnRzLyR7aWR9YCxcbiAgICAgIGJvZHlcbiAgICApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50IHRvIGJlIGRlbGV0ZWQuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBkZWxldGUgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnQuXG4gICAqL1xuICBkZWxldGVJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnQgKGlkOiBOdW1iZXIpOiBPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50LXJlYXNvbi1jb21wbGVtZW50cy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3N0cyBwYWNrYWdlcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gc3RvY2suXG4gICAqXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIGlucHV0IGRhdGEgY29udGFpbmluZyBwYWNrYWdlIHN0b2NrIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFBhY2thZ2VzSW5TdG9ja091dD59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcGFja2FnZXMgaW4gc3RvY2sgb3V0cHV0IGRhdGFcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyBtZXRob2Qgc2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIGAvcGFja2FnZXMvaW4tc3RvY2tgIGVuZHBvaW50IGFuZFxuICAgKiBleHRyYWN0cyB0aGUgZGF0YSBwcm9wZXJ0eSBmcm9tIHRoZSBBUEkgc3VjY2VzcyByZXNwb25zZS5cbiAgICovXG4gIHBvc3RQYWNrYWdlc0luU3RvY2sgKGJvZHk6IFBhY2thZ2VzSW5TdG9ja0luKTogT2JzZXJ2YWJsZTxQYWNrYWdlc0luU3RvY2tPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxQYWNrYWdlc0luU3RvY2tPdXQ+PihgJHt0aGlzLnVybH0vcGFja2FnZXMvaW4tc3RvY2tgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cbn1cbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludmVudG9yaWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52ZW50b3JpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUlsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFNdEMsTUFBTSxPQUFPLHFCQUFxQjtJQUVQO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFBO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBRSxNQUFtQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRTtZQUMxRSxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLE1BQW1CO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLEVBQUU7WUFDbEcsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUU7WUFDdEUsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUUsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEwQixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLENBQUM7YUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLElBQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTBCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUNwRSxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsV0FBVyxDQUFFLEVBQVUsRUFBRSxJQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEwQixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLEVBQ3pFLElBQUksQ0FDTCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBRSxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBCLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQzthQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBRSxNQUFtQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQyxHQUFHLElBQUksQ0FBQyxHQUFHLG1CQUFtQixFQUFFO1lBQ25GLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsRUFBVTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQyxHQUFHLElBQUksQ0FBQyxHQUFHLHFCQUFxQixFQUFFLEVBQUUsQ0FBQzthQUN0RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBRSxJQUFzQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFnQyxHQUFHLElBQUksQ0FBQyxHQUFHLG1CQUFtQixFQUNqRixJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQUUsRUFBVSxFQUFFLElBQXNCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcscUJBQXFCLEVBQUUsRUFBRSxFQUN0RixJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxvQkFBb0IsQ0FBRSxFQUFVO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcscUJBQXFCLEVBQUUsRUFBRSxDQUFDO2FBQ3pGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDRCQUE0QixDQUFFLE1BQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsOEJBQThCLEVBQUU7WUFDeEcsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBRSxJQUFnQztRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEwQyxHQUFHLElBQUksQ0FBQyxHQUFHLDhCQUE4QixFQUN0RyxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsMkJBQTJCLENBQUUsRUFBVSxFQUFFLElBQWdDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxFQUMzRyxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw4QkFBOEIsQ0FBRSxFQUFVO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxDQUFDO2FBQzlHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxtQkFBbUIsQ0FBRSxJQUF1QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFpQyxHQUFHLElBQUksQ0FBQyxHQUFHLG9CQUFvQixFQUFFLElBQUksQ0FBQzthQUN6RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTFOVSxxQkFBcUIsa0JBRXRCLEtBQUs7NEdBRkoscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IENoZWNrcG9pbnRFdmVudFJlYXNvbnNPdXQsIENoZWNrcG9pbnRzT3V0LCBJbmNpZGVudEluLCBJbmNpZGVudE91dCwgSW5jaWRlbnRSZWFzb25Db21wbGVtZW50SW4sIEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dCwgSW5jaWRlbnRSZWFzb25Db21wbGVtZW50c091dCwgSW5jaWRlbnRSZWFzb25JbiwgSW5jaWRlbnRSZWFzb25PdXQsIEluY2lkZW50UmVhc29uc091dCwgSW5jaWRlbnRzT3V0LCBQYWNrYWdlc0luU3RvY2tJbiwgUGFja2FnZXNJblN0b2NrT3V0IH0gZnJvbSAnLi9tb2RlbHMvYXBpLWludmVudG9yaWVzLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpSW52ZW50b3JpZXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIEludmVudG9yaWVzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgSW52ZW50b3JpZXMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpSW52ZW50b3JpZXNVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgY2hlY2twb2ludHMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgY2hlY2twb2ludHMuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Q2hlY2twb2ludHNPdXQ+fSBUaGUgbGlzdCBvZiBjaGVja3BvaW50cy5cclxuICAgKi9cclxuICBnZXRDaGVja3BvaW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q2hlY2twb2ludHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q2hlY2twb2ludHNPdXQ+PihgJHt0aGlzLnVybH0vY2hlY2twb2ludHNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgY2hlY2twb2ludCBldmVudCByZWFzb25zIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGNoZWNrcG9pbnQgZXZlbnQgcmVhc29ucy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDaGVja3BvaW50RXZlbnRSZWFzb25zT3V0Pn0gVGhlIGxpc3Qgb2YgY2hlY2twb2ludCBldmVudCByZWFzb25zLlxyXG4gICAqL1xyXG4gIGdldENoZWNrcG9pbnRFdmVudFJlYXNvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENoZWNrcG9pbnRFdmVudFJlYXNvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q2hlY2twb2ludEV2ZW50UmVhc29uc091dD4+KGAke3RoaXMudXJsfS9jaGVja3BvaW50LWV2ZW50LXJlYXNvbnNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgaW5jaWRlbnRzIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGluY2lkZW50cy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgaW5jaWRlbnRzLlxyXG4gICAqL1xyXG4gIGdldEluY2lkZW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SW5jaWRlbnRzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluY2lkZW50c091dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudHNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGluY2lkZW50IGRldGFpbHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluY2lkZW50IElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGluY2lkZW50IHJlY29yZCB0byBnZXQgZGV0YWlsLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW5jaWRlbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRldGFpbCBpbmNpZGVudCBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEluY2lkZW50IChpZDogTnVtYmVyKTogT2JzZXJ2YWJsZTxJbmNpZGVudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJbmNpZGVudE91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudHMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5jaWRlbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0luY2lkZW50SW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIG5ldyBpbmNpZGVudC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudE91dD59IEFuIG9ic2VydmFibGUgdGhlIGNyZWF0ZWQgaW5jaWRlbnQgZGV0YWlsLlxyXG4gICAqL1xyXG4gIHBvc3RJbmNpZGVudCAoYm9keTogSW5jaWRlbnRJbik6IE9ic2VydmFibGU8SW5jaWRlbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEluY2lkZW50T3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50c2AsXHJcbiAgICAgIGJvZHlcclxuICAgICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgaW5jaWRlbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVjb3JkIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0luY2lkZW50SW59IGJvZHkgLSBUaGUgaW5jaWRlbnQgZGF0YSB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBkZXRhaWwgb2YgdGhlIHVwZGF0ZWQgaW5jaWRlbnQuXHJcbiAgICovXHJcbiAgcHV0SW5jaWRlbnQgKGlkOiBOdW1iZXIsIGJvZHk6IEluY2lkZW50SW4pOiBPYnNlcnZhYmxlPEluY2lkZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEluY2lkZW50T3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50cy8ke2lkfWAsXHJcbiAgICAgIGJvZHlcclxuICAgICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyBpbmNpZGVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBkZWxldGUgaW5jaWRlbnQuXHJcbiAgICovXHJcbiAgZGVsZXRlSW5jaWRlbnQgKGlkOiBOdW1iZXIpOiBPYnNlcnZhYmxlPEluY2lkZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPEluY2lkZW50T3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50cy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBpbmNpZGVudCByZWFzb25zIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGluY2lkZW50IHJlYXNvbnMuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIGluY2lkZW50IHJlYXNvbnMuXHJcbiAgICovXHJcbiAgZ2V0SW5jaWRlbnRSZWFzb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25zT3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50LXJlYXNvbnNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGluY2lkZW50IHJlYXNvbiBkZXRhaWxzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbmNpZGVudCByZWFzb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVhc29uIHJlY29yZCB0byBnZXQgZGV0YWlsLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRldGFpbCBpbmNpZGVudCByZWFzb24gZGF0YS5cclxuICAgKi9cclxuICBnZXRJbmNpZGVudFJlYXNvbiAoaWQ6IE51bWJlcik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBpbmNpZGVudCByZWFzb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0luY2lkZW50UmVhc29uSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIG5ldyBpbmNpZGVudCByZWFzb24uXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoZSBjcmVhdGVkIGluY2lkZW50IHJlYXNvbiBkZXRhaWwuXHJcbiAgICovXHJcbiAgcG9zdEluY2lkZW50UmVhc29uIChib2R5OiBJbmNpZGVudFJlYXNvbkluKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29uc2AsXHJcbiAgICAgIGJvZHlcclxuICAgICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgaW5jaWRlbnQgcmVhc29uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGluY2lkZW50IHJlYXNvbiByZWNvcmQgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRJbn0gYm9keSAtIFRoZSBpbmNpZGVudCByZWFzb24gZGF0YSB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBkZXRhaWwgb2YgdGhlIHVwZGF0ZWQgaW5jaWRlbnQgcmVhc29uLlxyXG4gICAqL1xyXG4gIHB1dEluY2lkZW50UmVhc29uIChpZDogTnVtYmVyLCBib2R5OiBJbmNpZGVudFJlYXNvbkluKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb25zLyR7aWR9YCxcclxuICAgICAgYm9keVxyXG4gICAgKS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGluY2lkZW50IHJlYXNvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVhc29uIHRvIGJlIGRlbGV0ZWQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRlIGluY2lkZW50IHJlYXNvbi5cclxuICAgKi9cclxuICBkZWxldGVJbmNpZGVudFJlYXNvbiAoaWQ6IE51bWJlcik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudHMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnRzLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnRzLlxyXG4gICAqL1xyXG4gIGdldEluY2lkZW50UmVhc29uQ29tcGxlbWVudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50c091dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb24tY29tcGxlbWVudHNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0luY2lkZW50UmVhc29uSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIG5ldyBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoZSBjcmVhdGVkIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50IGRldGFpbC5cclxuICAgKi9cclxuICBwb3N0SW5jaWRlbnRSZWFzb25Db21wbGVtZW50IChib2R5OiBJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRJbik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29uLWNvbXBsZW1lbnRzYCxcclxuICAgICAgYm9keVxyXG4gICAgKS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudCByZWNvcmQgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRJbn0gYm9keSAtIFRoZSBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudCBkYXRhIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBkZXRhaWwgb2YgdGhlIHVwZGF0ZWQgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnQuXHJcbiAgICovXHJcbiAgcHV0SW5jaWRlbnRSZWFzb25Db21wbGVtZW50IChpZDogTnVtYmVyLCBib2R5OiBJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRJbik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb24tY29tcGxlbWVudHMvJHtpZH1gLFxyXG4gICAgICBib2R5XHJcbiAgICApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50IHRvIGJlIGRlbGV0ZWQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudC5cclxuICAgKi9cclxuICBkZWxldGVJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnQgKGlkOiBOdW1iZXIpOiBPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29uLWNvbXBsZW1lbnRzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQb3N0cyBwYWNrYWdlcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gc3RvY2suXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBpbnB1dCBkYXRhIGNvbnRhaW5pbmcgcGFja2FnZSBzdG9jayBpbmZvcm1hdGlvblxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFBhY2thZ2VzSW5TdG9ja091dD59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcGFja2FnZXMgaW4gc3RvY2sgb3V0cHV0IGRhdGFcclxuICAgKlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogVGhpcyBtZXRob2Qgc2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIGAvcGFja2FnZXMvaW4tc3RvY2tgIGVuZHBvaW50IGFuZFxyXG4gICAqIGV4dHJhY3RzIHRoZSBkYXRhIHByb3BlcnR5IGZyb20gdGhlIEFQSSBzdWNjZXNzIHJlc3BvbnNlLlxyXG4gICAqL1xyXG4gIHBvc3RQYWNrYWdlc0luU3RvY2sgKGJvZHk6IFBhY2thZ2VzSW5TdG9ja0luKTogT2JzZXJ2YWJsZTxQYWNrYWdlc0luU3RvY2tPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFBhY2thZ2VzSW5TdG9ja091dD4+KGAke3RoaXMudXJsfS9wYWNrYWdlcy9pbi1zdG9ja2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -395,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
395
395
  type: Inject,
396
396
  args: ['env']
397
397
  }] }, { type: i1.HttpClient }] });
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52b2ljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUEyQ3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsSUFBeUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseUJBQXlCLENBQUUsRUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxHQUFHLElBQUksQ0FBQyxHQUFHLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQzthQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFD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LEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0E5WlUsa0JBQWtCLGtCQUVuQixLQUFLOzRHQUZKLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcbmltcG9ydCB7XG4gIENhbmNlbFBheW1lbnRSZWNlaXB0SW4sXG4gIENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4sXG4gIENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0LFxuICBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQsXG4gIENvdW50cnlQYXltZW50VHlwZUluLFxuICBDb3VudHJ5UGF5bWVudFR5cGVPdXQsXG4gIENvdW50cnlQYXltZW50VHlwZXNPdXQsXG4gIEN1c3RvbWVyRG9jdW1lbnRUeXBlc091dCxcbiAgQ3VzdG9tZXJzT3V0LFxuICBDdXN0b21lclR5cGVzT3V0LFxuICBEb2N1bWVudFN0YXR1c2VzT3V0LFxuICBHZXREb2N1bWVudHNPdXQsXG4gIE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4sXG4gIE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0LFxuICBPcGVyYXRpb25DYW5jZWxCaWxsaW5nSW4sXG4gIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQsXG4gIE9wZXJhdGlvbkRvY3VtZW50SW4sXG4gIE9wZXJhdGlvbkRvY3VtZW50T3V0LFxuICBPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0LFxuICBPcGVyYXRpb25QcmludERvY3VtZW50T3V0LFxuICBPcGVyYXRpb25QcmludFhtbE91dCxcbiAgT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluLFxuICBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0LFxuICBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluLFxuICBQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dCxcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0LFxuICBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbixcbiAgUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0LFxuICBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0LFxuICBQYXltZW50VHlwZXNPdXQsXG4gIFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQsXG4gIFRvbGVyYW5jZUluLFxuICBUb2xlcmFuY2VPdXQsXG4gIFRvbGVyYW5jZXNPdXQsXG59IGZyb20gJy4vbW9kZWxzL2FwaS1pbnZvaWNlcy50eXBlcydcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpSW52b2ljZXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IgKFxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7IH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBBUEkgVVJMIGZvciBpbnZvaWNlcyBmcm9tIHRoZSBlbnZpcm9ubWVudHMgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgQVBJIFVSTCBmb3IgaW52b2ljZXMuXG4gICAqL1xuICBnZXQgdXJsICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlJbnZvaWNlc1VybCA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGFuIG9wZXJhdGlvbiBkb2N1bWVudCB0byB0aGUgc2VydmVyIGFuZCBwcm9jZXNzZXMgdGhlIHJlc3BvbnNlLlxuICAgKlxuICAgKiBAcGFyYW0ge09wZXJhdGlvbkRvY3VtZW50SW59IGJvZHkgLSBUaGUgaW5wdXQgZGF0YSBmb3IgdGhlIG9wZXJhdGlvbiBkb2N1bWVudC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25Eb2N1bWVudE91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcHJvY2Vzc2VkIG9wZXJhdGlvbiBkb2N1bWVudCBvdXRwdXQuXG4gICAqL1xuICBwb3N0T3BlcmF0aW9uRG9jdW1lbnQgKGJvZHk6IE9wZXJhdGlvbkRvY3VtZW50SW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50T3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uRG9jdW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2RvY3VtZW50YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYW5kIHJldHVybnMgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhIGZvciBhIGdpdmVuIGNvbGxlY3Rpb24gSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiBmb3Igd2hpY2ggdGhlIHJlY2VpcHQgbmVlZHMgdG8gYmUgcmV0cmlldmVkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhLlxuICAgKi9cbiAgZ2V0UHJpbnRDb2xsZWN0aW9uUmVjZWlwdCAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQvY29sbGVjdGlvbi1yZWNlaXB0LyR7aWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGFjY291bnQgcGF5bWVudCBvcGVyYXRpb24gYnkgc2VuZGluZyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBQcm9jZXNzZXMgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm5zIHRoZSBvcGVyYXRpb24gZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtPcGVyYXRpb25BY2NvdW50UGF5bWVudElufSBib2R5IFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSBhY2NvdW50IHBheW1lbnQgb3BlcmF0aW9uLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcHJvY2Vzc2VkIGFjY291bnQgcGF5bWVudCBvcGVyYXRpb24gZGF0YS5cbiAgICovXG4gIHBvc3RPcGVyYXRpb25BY2NvdW50UGF5bWVudCAoYm9keTogT3BlcmF0aW9uQWNjb3VudFBheW1lbnRJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vYWNjb3VudC1wYXltZW50YCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgYSBwYXltZW50IHJlY2VpcHQgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGlucHV0LlxuICAgKiBUaGlzIG1ldGhvZCBzZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjYW5jZWwgYSBkb2N1bWVudC5cbiAgICpcbiAgICogQHBhcmFtIGJvZHkgVGhlIGRhdGEgcmVxdWlyZWQgdG8gY2FuY2VsIHRoZSBwYXltZW50IHJlY2VpcHQsIGVuY2Fwc3VsYXRlZCBpbiBhIENhbmNlbFBheW1lbnRSZWNlaXB0SW4gb2JqZWN0LlxuICAgKiBAcmV0dXJuIEFuIE9ic2VydmFibGUgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhbmNlbGxhdGlvbi4gRW1pdHMgYW4gZW1wdHkgb2JqZWN0IG9uIHN1Y2Nlc3MuXG4gICAqL1xuICBwb3N0T3BlcmF0aW9uQ2FuY2VsRG9jdW1lbnQgKGJvZHk6IENhbmNlbFBheW1lbnRSZWNlaXB0SW4pOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2NhbmNlbC1kb2N1bWVudGAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjYW5jZWwgYmlsbGluZyBmb3IgYSBzcGVjaWZpYyBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNhbmNlbGxhdGlvbiByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmludm9pY2VJZCAtIFRoZSBJRCBvZiB0aGUgaW52b2ljZSB0byBiZSBjYW5jZWxlZC5cbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcy5ib2R5IC0gQWRkaXRpb25hbCBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keS5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25DYW5jZWxCaWxsaW5nT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzdWx0IG9mIHRoZSBjYW5jZWxsYXRpb24gb3BlcmF0aW9uLlxuICAgKi9cbiAgcG9zdE9wZXJhdGlvbkNhbmNlbEJpbGxpbmcgKHsgaW52b2ljZUlkLCAuLi5ib2R5IH06IE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2NhbmNlbC1iaWxsaW5nLyR7aW52b2ljZUlkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBjdXN0b21lciB0eXBlcyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VzdG9tZXIgdHlwZXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBnZXRDdXN0b21lclR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXN0b21lclR5cGVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lclR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXR5cGVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBkb2N1bWVudCB0eXBlcyBzcGVjaWZpYyB0byBhIGdpdmVuIGNvdW50cnkuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGNvbnRhaW5pbmcgY291bnRyeS1zcGVjaWZpYyBpbmZvcm1hdGlvbi5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lckRvY3VtZW50VHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBkb2N1bWVudCB0eXBlcyBhdmFpbGFibGUgZm9yIHRoZSBzcGVjaWZpZWQgY291bnRyeS5cbiAgICovXG4gIGdldEN1c3RvbWVyRG9jdW1lbnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lckRvY3VtZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXItY291bnRyeS1kb2N1bWVudC10eXBlc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGN1c3RvbWVyIGludm9pY2UgZGV0YWlscyBmaWx0ZXJlZCBieSBhIGN1c3RvbSBpbnZvaWNlIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7SW52b2ljZVR5cGVDdXN0b21QYXJhbXNJbn0gcGFyYW1zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpbHRlciBwYXJhbWV0ZXJzIGZvciB0aGUgY3VzdG9tIGludm9pY2UgdHlwZS5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lcnNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgY3VzdG9tZXIgaW52b2ljZSBkZXRhaWxzIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS5cbiAgICovXG4gIGdldEN1c3RvbWVycyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lcnNPdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXJzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBvciB1cGRhdGUgYW4gZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge09wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbn0gcGFyYW1zIC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgZm9yIHRoZSBleHRlcm5hbCBzaGlwbWVudCBvcGVyYXRpb24uXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCBvcGVyYXRpb24uXG4gICAqL1xuICBwb3N0T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbCAocGFyYW1zOiBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9zaGlwbWVudC9leHRlcm5hbGAsIHBhcmFtcylcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3NlcyBhbiBleHRlcm5hbCBwYXltZW50IG9wZXJhdGlvbiBmb3IgYSBzaGlwbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW59IHBhcmFtcyAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciB0aGUgZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24uXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBleHRlcm5hbCBwYXltZW50IG9wZXJhdGlvbiBmb3IgYSBzaGlwbWVudC5cbiAgICovXG4gIHBvc3RPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsUGF5bWVudCAocGFyYW1zOiBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9zaGlwbWVudC9leHRlcm5hbC9wYXltZW50YCwgcGFyYW1zKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGJpbGxpbmcgb3BlcmF0aW9uIHByaW50IGRldGFpbHMgZm9yIGEgZ2l2ZW4gZG9jdW1lbnQgSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkb2N1bWVudElkIC0gVGhlIElEIG9mIHRoZSBkb2N1bWVudCBmb3Igd2hpY2ggdG8gZmV0Y2ggdGhlIHByaW50IGJpbGxpbmcgb3BlcmF0aW9uIGRldGFpbHMuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uUHJpbnREb2N1bWVudE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHByaW50IGJpbGxpbmcgb3BlcmF0aW9uIGRldGFpbHMgZm9yIHRoZSBzcGVjaWZpZWQgZG9jdW1lbnQuXG4gICAqL1xuICBnZXRPcGVyYXRpb25QcmludERvY3VtZW50IChkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL3ByaW50L2RvY3VtZW50LyR7ZG9jdW1lbnRJZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBhbGwgY291bnRyeSBwYXltZW50IHR5cGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cbiAgICovXG4gIGdldENvdW50cnlQYXltZW50VHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUlufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cbiAgICovXG4gIHB1dENvdW50cnlQYXltZW50VHlwZSAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeVBheW1lbnRUeXBlSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlcy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgdG8gYmUgZGVsZXRlZC5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBvcGVyYXRpb24uXG4gICAqL1xuICBkZWxldGVDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlcy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgY291bnRyeSBwYXltZW50IHR5cGUgcmVzb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7Q291bnRyeVBheW1lbnRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGNyZWF0ZSBvcGVyYXRpb24uXG4gICAqL1xuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlIChib2R5OiBDb3VudHJ5UGF5bWVudFR5cGVJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlc2AsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmb3IgYSBnaXZlbiBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZS5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBzaG93IG9wZXJhdGlvbi5cbiAgICovXG4gIGdldENvdW50cnlQYXltZW50VHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzLyR7aWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYWxsIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkcy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cbiAgICovXG4gIGdldENvdW50cnlQYXltZW50VHlwZUZpZWxkcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGUtZmllbGRzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZCByZXNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVGaWVsZElufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGNyZWF0ZSBvcGVyYXRpb24uXG4gICAqL1xuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGQgKGJvZHk6IENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGUtZmllbGRzYCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUZpZWxkSW59IGJvZHkgLSBUaGUgdXBkYXRlZCBkYXRhIGZvciB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXG4gICAqL1xuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZCAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeVBheW1lbnRUeXBlRmllbGRJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlLWZpZWxkcy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGFsbCBwYXltZW50IHR5cGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cbiAgICovXG4gIGdldFBheW1lbnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UGF5bWVudFR5cGVzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGFsbCBwYXltZW50IHR5cGUgZmllbGRzIGNhcmQuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcGF5bWVudCB0eXBlIGZpZWxkcyBjYXJkIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLlxuICAgKi9cbiAgZ2V0UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtY2FyZC10eXBlc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgcGF5bWVudCB0eXBlIGZpZWxkIGNhcmQgcmVzb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGNyZWF0ZSBvcGVyYXRpb24uXG4gICAqL1xuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSAoYm9keTogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW4pOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtY2FyZC10eXBlc2AsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkIHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBwYXltZW50IHR5cGUgZmllbGQgY2FyZC5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXG4gICAqL1xuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlIChpZDogbnVtYmVyLCBib2R5OiBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWNhcmQtdHlwZXMvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlIGZpZWxkcyBhY2NvdW50cy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZSBmaWVsZHMgYWNjb3VudHMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBnZXRQYXltZW50VHlwZUZpZWxkQWNjb3VudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1hY2NvdW50c2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgcGF5bWVudCB0eXBlIGZpZWxkIGFjY291bnQgcmVzb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZEFjY291bnRJbn0gYm9keSAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciBjcmVhdGUgYSBuZXcgcGF5bWVudCB0eXBlIGZpZWxkIGFjY291bnQuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBjcmVhdGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcG9zdENvdW50cnlQYXltZW50VHlwZUZpZWxkQWNjb3VudCAoYm9keTogUGF5bWVudFR5cGVGaWVsZEFjY291bnRJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtYWNjb3VudHNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudCB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZEFjY291bnRJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudC5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cbiAgICovXG4gIHB1dENvdW50cnlQYXltZW50VHlwZUZpZWxkQWNjb3VudCAoaWQ6IG51bWJlciwgYm9keTogUGF5bWVudFR5cGVGaWVsZEFjY291bnRJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1hY2NvdW50cy8ke2lkfWAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRvbGVyYW5jZSBkYXRhIGZyb20gdGhlIHNlcnZlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gdXNlIGZvciBxdWVyeWluZyB0b2xlcmFuY2VzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB0b2xlcmFuY2UgZGF0YS5cbiAgICovXG4gIGdldFRvbGVyYW5jZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFRvbGVyYW5jZXNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFRvbGVyYW5jZXNPdXQ+PihgJHt0aGlzLnVybH0vdG9sZXJhbmNlc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHRvbGVyYW5jZSBkZXRhaWwgZm9yIGEgZ2l2ZW4gaWRlbnRpZmllci5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdG9sZXJhbmNlIHRvIHJldHJpZXZlLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdG9sZXJhbmNlIGRhdGEuXG4gICAqL1xuICBnZXRUb2xlcmFuY2UgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlT3V0Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXMvJHtpZH1gKVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIHVwZGF0ZSBvciBjcmVhdGUgYSB0b2xlcmFuY2UgcmVjb3JkIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0ge1RvbGVyYW5jZUlufSBib2R5IC0gVGhlIHRvbGVyYW5jZSBpbnB1dCBvYmplY3QgY29udGFpbmluZyB0aGUgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBvciBjcmVhdGVkIHRvbGVyYW5jZSBvdXRwdXQgb2JqZWN0LlxuICAgKi9cbiAgcG9zdFRvbGVyYW5jZSAoYm9keTogVG9sZXJhbmNlSW4pOiBPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFRvbGVyYW5jZU91dD4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzYCwgYm9keSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHRvbGVyYW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgdXNpbmcgdGhlIHByb3ZpZGVkIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdG9sZXJhbmNlIHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIHtUb2xlcmFuY2VJbn0gYm9keSAtIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgdG9sZXJhbmNlIHdpdGguXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9sZXJhbmNlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIHRvbGVyYW5jZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHB1dFRvbGVyYW5jZSAoaWQ6IG51bWJlciwgYm9keTogVG9sZXJhbmNlSW4pOiBPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlT3V0Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXMvJHtpZH1gLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyB0aGUgdG9sZXJhbmNlIGVudHJ5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRvbGVyYW5jZSB0byBiZSBkZWxldGVkLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHt9Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBvcGVyYXRpb24uXG4gICAqL1xuICBkZWxldGVUb2xlcmFuY2UgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzLyR7aWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgZG9jdW1lbnQgcmVxdWVzdHMgYXNzb2NpYXRlZCB3aXRoIGEgZG9jdW1lbnQgSUQuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRvY3VtZW50LlxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRvY3VtZW50IHJlcXVlc3RzIGRhdGEuXG4gICAqL1xuICBnZXRPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9kb2N1bWVudC9yZXF1ZXN0cy8ke2lkfWApXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGRvY3VtZW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBhbmQgcGFnaW5hdGUgdGhlIGRvY3VtZW50c1xuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRvY3VtZW50cyBkYXRhIHdoZW4gdGhlIEhUVFAgcmVxdWVzdCBjb21wbGV0ZXNcbiAgICovXG4gIGdldERvY3VtZW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8R2V0RG9jdW1lbnRzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxHZXREb2N1bWVudHNPdXQ+PihgJHt0aGlzLnVybH0vZG9jdW1lbnRzYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgZG9jdW1lbnQgc3RhdHVzIHZhbHVlcyBmcm9tIHRoZSBBUEkuXG4gICAqXG4gICAqIFNlbmRzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gdGhlIHNlcnZpY2UncyBgL2RvY3VtZW50LXN0YXR1c2AgZW5kcG9pbnQgdXNpbmcgdGhlIHN1cHBsaWVkIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogYW5kIHJldHVybnMgdGhlIGRlY29kZWQgYGRhdGFgIHBheWxvYWQgZnJvbSB0aGUgQVBJIHN1Y2Nlc3MgZW52ZWxvcGUuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGFwcGx5IHRvIHRoZSByZXF1ZXN0IChlLmcuIGZpbHRlcmluZywgcGFnaW5hdGlvbiwgc2VhcmNoKS5cbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgRG9jdW1lbnRTdGF0dXNlc091dCBvYmplY3QgY29udGFpbmluZyB0aGUgZG9jdW1lbnQgc3RhdHVzIGRhdGEuXG4gICAqL1xuICBnZXREb2N1bWVudFN0YXR1c2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxEb2N1bWVudFN0YXR1c2VzT3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxEb2N1bWVudFN0YXR1c2VzT3V0Pj4oYCR7dGhpcy51cmx9L2RvY3VtZW50LXN0YXR1c2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIFhNTCBwcmludCByZXByZXNlbnRhdGlvbiBmb3IgYSBnaXZlbiBvcGVyYXRpb24gKGludm9pY2UpLlxuICAgKlxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBiYWNrZW5kIGVuZHBvaW50IGAvb3BlcmF0aW9uL3ByaW50L3htbC97ZG9jdW1lbnRJZH1gIGFuZFxuICAgKiB1bndyYXBzIHRoZSBgZGF0YWAgZmllbGQgZnJvbSB0aGUgQVBJIHN1Y2Nlc3MgcmVzcG9uc2UgYmVmb3JlIGVtaXR0aW5nIGl0LlxuICAgKlxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIGRvY3VtZW50IHRvIGZldGNoLlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIE9wZXJhdGlvblByaW50WG1sT3V0IHBheWxvYWQgb24gc3VjY2VzcyBhbmQgY29tcGxldGVzLlxuICAgKiAgICAgICAgICBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVycm9yIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMgb3IgdGhlIHJlc3BvbnNlIGRvZXMgbm90IGNvbnRhaW4gdGhlIGV4cGVjdGVkIGRhdGEuXG4gICAqL1xuICBnZXRPcGVyYXRpb25QcmludFhtbCAoZG9jdW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25QcmludFhtbE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uUHJpbnRYbWxPdXQ+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL3ByaW50L3htbC8ke2RvY3VtZW50SWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG59XG4iXX0=
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52b2ljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUEyQ3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsSUFBeUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseUJBQXlCLENBQUUsRUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxHQUFHLElBQUksQ0FBQyxHQUFHLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQzthQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFD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LEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0E5WlUsa0JBQWtCLGtCQUVuQixLQUFLOzRHQUZKLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBDYW5jZWxQYXltZW50UmVjZWlwdEluLFxyXG4gIENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4sXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0LFxyXG4gIENvdW50cnlQYXltZW50VHlwZUluLFxyXG4gIENvdW50cnlQYXltZW50VHlwZU91dCxcclxuICBDb3VudHJ5UGF5bWVudFR5cGVzT3V0LFxyXG4gIEN1c3RvbWVyRG9jdW1lbnRUeXBlc091dCxcclxuICBDdXN0b21lcnNPdXQsXHJcbiAgQ3VzdG9tZXJUeXBlc091dCxcclxuICBEb2N1bWVudFN0YXR1c2VzT3V0LFxyXG4gIEdldERvY3VtZW50c091dCxcclxuICBPcGVyYXRpb25BY2NvdW50UGF5bWVudEluLFxyXG4gIE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0LFxyXG4gIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdJbixcclxuICBPcGVyYXRpb25DYW5jZWxCaWxsaW5nT3V0LFxyXG4gIE9wZXJhdGlvbkRvY3VtZW50SW4sXHJcbiAgT3BlcmF0aW9uRG9jdW1lbnRPdXQsXHJcbiAgT3BlcmF0aW9uRG9jdW1lbnRSZXF1ZXN0c091dCxcclxuICBPcGVyYXRpb25QcmludERvY3VtZW50T3V0LFxyXG4gIE9wZXJhdGlvblByaW50WG1sT3V0LFxyXG4gIE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbixcclxuICBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50SW4sXHJcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQsXHJcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZUluLFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dCxcclxuICBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0LFxyXG4gIFBheW1lbnRUeXBlc091dCxcclxuICBQcmludENvbGxlY3Rpb25SZWNlaXB0T3V0LFxyXG4gIFRvbGVyYW5jZUluLFxyXG4gIFRvbGVyYW5jZU91dCxcclxuICBUb2xlcmFuY2VzT3V0LFxyXG59IGZyb20gJy4vbW9kZWxzL2FwaS1pbnZvaWNlcy50eXBlcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpSW52b2ljZXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIEFQSSBVUkwgZm9yIGludm9pY2VzIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgQVBJIFVSTCBmb3IgaW52b2ljZXMuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlJbnZvaWNlc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYW4gb3BlcmF0aW9uIGRvY3VtZW50IHRvIHRoZSBzZXJ2ZXIgYW5kIHByb2Nlc3NlcyB0aGUgcmVzcG9uc2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvbkRvY3VtZW50SW59IGJvZHkgLSBUaGUgaW5wdXQgZGF0YSBmb3IgdGhlIG9wZXJhdGlvbiBkb2N1bWVudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBwcm9jZXNzZWQgb3BlcmF0aW9uIGRvY3VtZW50IG91dHB1dC5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uRG9jdW1lbnQgKGJvZHk6IE9wZXJhdGlvbkRvY3VtZW50SW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25Eb2N1bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vZG9jdW1lbnRgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYW5kIHJldHVybnMgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhIGZvciBhIGdpdmVuIGNvbGxlY3Rpb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gZm9yIHdoaWNoIHRoZSByZWNlaXB0IG5lZWRzIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFByaW50Q29sbGVjdGlvblJlY2VpcHQgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQvY29sbGVjdGlvbi1yZWNlaXB0LyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBhY2NvdW50IHBheW1lbnQgb3BlcmF0aW9uIGJ5IHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludC5cclxuICAgKiBQcm9jZXNzZXMgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm5zIHRoZSBvcGVyYXRpb24gZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uQWNjb3VudFBheW1lbnRJbn0gYm9keSBUaGUgcGF5bG9hZCBjb250YWluaW5nIGluZm9ybWF0aW9uIGZvciB0aGUgYWNjb3VudCBwYXltZW50IG9wZXJhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcHJvY2Vzc2VkIGFjY291bnQgcGF5bWVudCBvcGVyYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uQWNjb3VudFBheW1lbnQgKGJvZHk6IE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vYWNjb3VudC1wYXltZW50YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWxzIGEgcGF5bWVudCByZWNlaXB0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbnB1dC5cclxuICAgKiBUaGlzIG1ldGhvZCBzZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjYW5jZWwgYSBkb2N1bWVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib2R5IFRoZSBkYXRhIHJlcXVpcmVkIHRvIGNhbmNlbCB0aGUgcGF5bWVudCByZWNlaXB0LCBlbmNhcHN1bGF0ZWQgaW4gYSBDYW5jZWxQYXltZW50UmVjZWlwdEluIG9iamVjdC5cclxuICAgKiBAcmV0dXJuIEFuIE9ic2VydmFibGUgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhbmNlbGxhdGlvbi4gRW1pdHMgYW4gZW1wdHkgb2JqZWN0IG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkNhbmNlbERvY3VtZW50IChib2R5OiBDYW5jZWxQYXltZW50UmVjZWlwdEluKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2NhbmNlbC1kb2N1bWVudGAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY2FuY2VsIGJpbGxpbmcgZm9yIGEgc3BlY2lmaWMgb3BlcmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2FuY2VsbGF0aW9uIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5pbnZvaWNlSWQgLSBUaGUgSUQgb2YgdGhlIGludm9pY2UgdG8gYmUgY2FuY2VsZWQuXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcy5ib2R5IC0gQWRkaXRpb25hbCBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhbmNlbGxhdGlvbiBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkNhbmNlbEJpbGxpbmcgKHsgaW52b2ljZUlkLCAuLi5ib2R5IH06IE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vY2FuY2VsLWJpbGxpbmcvJHtpbnZvaWNlSWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBjdXN0b21lciB0eXBlcyBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VzdG9tZXIgdHlwZXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lclR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgZG9jdW1lbnQgdHlwZXMgc3BlY2lmaWMgdG8gYSBnaXZlbiBjb3VudHJ5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgY29udGFpbmluZyBjb3VudHJ5LXNwZWNpZmljIGluZm9ybWF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgZG9jdW1lbnQgdHlwZXMgYXZhaWxhYmxlIGZvciB0aGUgc3BlY2lmaWVkIGNvdW50cnkuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJEb2N1bWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXN0b21lckRvY3VtZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLWNvdW50cnktZG9jdW1lbnQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgY3VzdG9tZXIgaW52b2ljZSBkZXRhaWxzIGZpbHRlcmVkIGJ5IGEgY3VzdG9tIGludm9pY2UgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SW52b2ljZVR5cGVDdXN0b21QYXJhbXNJbn0gcGFyYW1zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpbHRlciBwYXJhbWV0ZXJzIGZvciB0aGUgY3VzdG9tIGludm9pY2UgdHlwZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyBjdXN0b21lciBpbnZvaWNlIGRldGFpbHMgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxyXG4gICAqL1xyXG4gIGdldEN1c3RvbWVycyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyc091dD4+KGAke3RoaXMudXJsfS9jdXN0b21lcnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBvciB1cGRhdGUgYW4gZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW59IHBhcmFtcyAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIGZvciB0aGUgZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWwgKHBhcmFtczogT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9zaGlwbWVudC9leHRlcm5hbGAsIHBhcmFtcylcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9jZXNzZXMgYW4gZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24gZm9yIGEgc2hpcG1lbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbn0gcGFyYW1zIC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHRoZSBleHRlcm5hbCBwYXltZW50IG9wZXJhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24gZm9yIGEgc2hpcG1lbnQuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxQYXltZW50IChwYXJhbXM6IE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vc2hpcG1lbnQvZXh0ZXJuYWwvcGF5bWVudGAsIHBhcmFtcylcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYmlsbGluZyBvcGVyYXRpb24gcHJpbnQgZGV0YWlscyBmb3IgYSBnaXZlbiBkb2N1bWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkb2N1bWVudElkIC0gVGhlIElEIG9mIHRoZSBkb2N1bWVudCBmb3Igd2hpY2ggdG8gZmV0Y2ggdGhlIHByaW50IGJpbGxpbmcgb3BlcmF0aW9uIGRldGFpbHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25QcmludERvY3VtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcHJpbnQgYmlsbGluZyBvcGVyYXRpb24gZGV0YWlscyBmb3IgdGhlIHNwZWNpZmllZCBkb2N1bWVudC5cclxuICAgKi9cclxuICBnZXRPcGVyYXRpb25QcmludERvY3VtZW50IChkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uUHJpbnREb2N1bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQvZG9jdW1lbnQvJHtkb2N1bWVudElkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgY291bnRyeSBwYXltZW50IHR5cGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UGF5bWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZS5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IENvdW50cnlQYXltZW50VHlwZUluKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSB0byBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUNvdW50cnlQYXltZW50VHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeVBheW1lbnRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlIChib2R5OiBDb3VudHJ5UGF5bWVudFR5cGVJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmb3IgYSBnaXZlbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBzaG93IG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZHMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeVBheW1lbnRUeXBlRmllbGRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlLWZpZWxkc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVGaWVsZElufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGQgKGJvZHk6IENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZS1maWVsZHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUZpZWxkSW59IGJvZHkgLSBUaGUgdXBkYXRlZCBkYXRhIGZvciB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZCAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeVBheW1lbnRUeXBlRmllbGRJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGUtZmllbGRzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBwYXltZW50IHR5cGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRQYXltZW50VHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlIGZpZWxkcyBjYXJkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZSBmaWVsZHMgY2FyZCBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWNhcmQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgY2FyZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSAoYm9keTogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW4pOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1jYXJkLXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBwYXltZW50IHR5cGUgZmllbGQgY2FyZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBwYXltZW50IHR5cGUgZmllbGQgY2FyZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlIChpZDogbnVtYmVyLCBib2R5OiBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtY2FyZC10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlIGZpZWxkcyBhY2NvdW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZSBmaWVsZHMgYWNjb3VudHMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0UGF5bWVudFR5cGVGaWVsZEFjY291bnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1hY2NvdW50c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50IHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQWNjb3VudElufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGRBY2NvdW50IChib2R5OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWFjY291bnRzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQWNjb3VudElufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50LlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeVBheW1lbnRUeXBlRmllbGRBY2NvdW50IChpZDogbnVtYmVyLCBib2R5OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtYWNjb3VudHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdG9sZXJhbmNlIGRhdGEgZnJvbSB0aGUgc2VydmVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gdXNlIGZvciBxdWVyeWluZyB0b2xlcmFuY2VzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9sZXJhbmNlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHRvbGVyYW5jZSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFRvbGVyYW5jZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFRvbGVyYW5jZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlc091dD4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHRvbGVyYW5jZSBkZXRhaWwgZm9yIGEgZ2l2ZW4gaWRlbnRpZmllci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRvbGVyYW5jZSB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdG9sZXJhbmNlIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0VG9sZXJhbmNlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlT3V0Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgcmVxdWVzdCB0byB1cGRhdGUgb3IgY3JlYXRlIGEgdG9sZXJhbmNlIHJlY29yZCB1c2luZyB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VG9sZXJhbmNlSW59IGJvZHkgLSBUaGUgdG9sZXJhbmNlIGlucHV0IG9iamVjdCBjb250YWluaW5nIHRoZSBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgb3IgY3JlYXRlZCB0b2xlcmFuY2Ugb3V0cHV0IG9iamVjdC5cclxuICAgKi9cclxuICBwb3N0VG9sZXJhbmNlIChib2R5OiBUb2xlcmFuY2VJbik6IE9ic2VydmFibGU8VG9sZXJhbmNlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxUb2xlcmFuY2VPdXQ+PihgJHt0aGlzLnVybH0vdG9sZXJhbmNlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgdG9sZXJhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBJRCB1c2luZyB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdG9sZXJhbmNlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1RvbGVyYW5jZUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSB0b2xlcmFuY2Ugd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCB0b2xlcmFuY2UgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgcHV0VG9sZXJhbmNlIChpZDogbnVtYmVyLCBib2R5OiBUb2xlcmFuY2VJbik6IE9ic2VydmFibGU8VG9sZXJhbmNlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFRvbGVyYW5jZU91dD4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIHRoZSB0b2xlcmFuY2UgZW50cnkgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRvbGVyYW5jZSB0byBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGVUb2xlcmFuY2UgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZG9jdW1lbnQgcmVxdWVzdHMgYXNzb2NpYXRlZCB3aXRoIGEgZG9jdW1lbnQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkb2N1bWVudC5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRvY3VtZW50IHJlcXVlc3RzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0T3BlcmF0aW9uRG9jdW1lbnRSZXF1ZXN0cyAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8T3BlcmF0aW9uRG9jdW1lbnRSZXF1ZXN0c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25Eb2N1bWVudFJlcXVlc3RzT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9kb2N1bWVudC9yZXF1ZXN0cy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBkb2N1bWVudHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIGFuZCBwYWdpbmF0ZSB0aGUgZG9jdW1lbnRzXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkb2N1bWVudHMgZGF0YSB3aGVuIHRoZSBIVFRQIHJlcXVlc3QgY29tcGxldGVzXHJcbiAgICovXHJcbiAgZ2V0RG9jdW1lbnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxHZXREb2N1bWVudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8R2V0RG9jdW1lbnRzT3V0Pj4oYCR7dGhpcy51cmx9L2RvY3VtZW50c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBkb2N1bWVudCBzdGF0dXMgdmFsdWVzIGZyb20gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gdGhlIHNlcnZpY2UncyBgL2RvY3VtZW50LXN0YXR1c2AgZW5kcG9pbnQgdXNpbmcgdGhlIHN1cHBsaWVkIHF1ZXJ5IHBhcmFtZXRlcnNcclxuICAgKiBhbmQgcmV0dXJucyB0aGUgZGVjb2RlZCBgZGF0YWAgcGF5bG9hZCBmcm9tIHRoZSBBUEkgc3VjY2VzcyBlbnZlbG9wZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGFwcGx5IHRvIHRoZSByZXF1ZXN0IChlLmcuIGZpbHRlcmluZywgcGFnaW5hdGlvbiwgc2VhcmNoKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgYSBEb2N1bWVudFN0YXR1c2VzT3V0IG9iamVjdCBjb250YWluaW5nIHRoZSBkb2N1bWVudCBzdGF0dXMgZGF0YS5cclxuICAgKi9cclxuICBnZXREb2N1bWVudFN0YXR1c2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxEb2N1bWVudFN0YXR1c2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPERvY3VtZW50U3RhdHVzZXNPdXQ+PihgJHt0aGlzLnVybH0vZG9jdW1lbnQtc3RhdHVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFhNTCBwcmludCByZXByZXNlbnRhdGlvbiBmb3IgYSBnaXZlbiBvcGVyYXRpb24gKGludm9pY2UpLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byB0aGUgYmFja2VuZCBlbmRwb2ludCBgL29wZXJhdGlvbi9wcmludC94bWwve2RvY3VtZW50SWR9YCBhbmRcclxuICAgKiB1bndyYXBzIHRoZSBgZGF0YWAgZmllbGQgZnJvbSB0aGUgQVBJIHN1Y2Nlc3MgcmVzcG9uc2UgYmVmb3JlIGVtaXR0aW5nIGl0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWQgLSBUaGUgbnVtZXJpYyBpZGVudGlmaWVyIG9mIHRoZSBkb2N1bWVudCB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIE9wZXJhdGlvblByaW50WG1sT3V0IHBheWxvYWQgb24gc3VjY2VzcyBhbmQgY29tcGxldGVzLlxyXG4gICAqICAgICAgICAgIFRoZSBPYnNlcnZhYmxlIHdpbGwgZXJyb3IgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscyBvciB0aGUgcmVzcG9uc2UgZG9lcyBub3QgY29udGFpbiB0aGUgZXhwZWN0ZWQgZGF0YS5cclxuICAgKi9cclxuICBnZXRPcGVyYXRpb25QcmludFhtbCAoZG9jdW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25QcmludFhtbE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25QcmludFhtbE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQveG1sLyR7ZG9jdW1lbnRJZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
101
101
  type: Inject,
102
102
  args: ['env']
103
103
  }] }, { type: i1.HttpClient }] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW5vdGlmaWNhdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFXbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBS3RDLE1BQU0sT0FBTyx1QkFBdUI7SUFFVDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7Ozs7T0FLRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUE7SUFDcEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUUsTUFBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBK0IsR0FBRyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFFLElBQW9CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN0RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZUFBZSxDQUFFLEVBQVUsRUFBRSxJQUFvQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzNGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFFLEVBQVU7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7YUFDdkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsRUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLHlCQUF5QixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsOEJBQThCLENBQUUsSUFBaUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMkMsR0FBRyxJQUFJLENBQUMsR0FBRyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ2pILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFFLE1BQW1CO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW1DLEdBQUcsSUFBSSxDQUFDLEdBQUcscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNqRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTVGVSx1QkFBdUIsa0JBRXhCLEtBQUs7NEdBRkosdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQge1xuICBOb3RpZmljYXRpb25Db25maWd1cmF0aW9uSW4sXG4gIE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25PdXQsXG4gIE5vdGlmaWNhdGlvbkluLFxuICBOb3RpZmljYXRpb25PdXQsXG4gIE5vdGlmaWNhdGlvbnNPdXQsXG4gIE5vdGlmaWNhdGlvbnNUeXBlT3V0XG59IGZyb20gJy4vbW9kZWxzL2FwaS1ub3RpZmljYXRpb25zLnR5cGVzJ1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpTm90aWZpY2F0aW9uc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvciAoXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHsgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIG5vdGlmaWNhdGlvbnMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IHNldHRpbmdzLlxuICAgKiBJZiB0aGUgVVJMIGlzIG5vdCBkZWZpbmVkLCBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIEFQSSBOb3RpZmljYXRpb25zIFVSTCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IGRlZmluZWQuXG4gICAqL1xuICBnZXQgdXJsICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlOb3RpZmljYXRpb25zVXJsID8/ICcnXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIG5vdGlmaWNhdGlvbnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIGFuZCByZXRyaWV2ZSBub3RpZmljYXRpb25zLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgbm90aWZpY2F0aW9ucy5cbiAgICovXG4gIGdldE5vdGlmaWNhdGlvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbnNPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE5vdGlmaWNhdGlvbnNPdXQ+PihgJHt0aGlzLnVybH0vbm90aWZpY2F0aW9uc2AsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIG5vdGlmaWNhdGlvbiByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdXNpbmcgdGhlIHByb3ZpZGVkIGJvZHkuXG4gICAqXG4gICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uSW59IGJvZHkgLSBUaGUgbm90aWZpY2F0aW9uIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdCBib2R5LlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIG5vdGlmaWNhdGlvbiBvdXRwdXQgZGF0YS5cbiAgICovXG4gIHBvc3ROb3RpZmljYXRpb24gKGJvZHk6IE5vdGlmaWNhdGlvbkluKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxOb3RpZmljYXRpb25PdXQ+PihgJHt0aGlzLnVybH0vbm90aWZpY2F0aW9uc2AsIHsgYm9keSB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBQVVQgcmVxdWVzdCB0byB1cGRhdGUgYSBub3RpZmljYXRpb24gd2l0aCB0aGUgcHJvdmlkZWQgSUQgYW5kIGJvZHkuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm90aWZpY2F0aW9uIHRvIGJlIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIG5vdGlmaWNhdGlvbiB3aXRoLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBub3RpZmljYXRpb24gZGF0YS5cbiAgICovXG4gIHB1dE5vdGlmaWNhdGlvbiAoaWQ6IG51bWJlciwgYm9keTogTm90aWZpY2F0aW9uSW4pOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Tm90aWZpY2F0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L25vdGlmaWNhdGlvbnMvJHtpZH1gLCB7IGJvZHkgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBub3RpZmljYXRpb24gYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBkZWxldGUuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlIGFmdGVyIGRlbGV0aW5nIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBkZWxldGVOb3RpZmljYXRpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9ub3RpZmljYXRpb25zLyR7aWR9YClcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHRoZSBub3RpZmljYXRpb24gYXMgZmluaXNoZWQgZm9yIHRoZSBzcGVjaWZpZWQgbm90aWZpY2F0aW9uIElELlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBiZSBtYXJrZWQgYXMgZmluaXNoZWQuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Tm90aWZpY2F0aW9uT3V0Pn0gQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBub3RpZmljYXRpb24gb2JqZWN0LlxuICAgKi9cbiAgcHV0Tm90aWZpY2F0aW9uRmluaXNoIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPE5vdGlmaWNhdGlvbk91dD4+KGAke3RoaXMudXJsfS9ub3RpZmljYXRpb25zL2ZpbmlzaC8ke2lkfWAsIHt9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIG9yIHVwZGF0ZSBub3RpZmljYXRpb24gY29uZmlndXJhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbklufSBib2R5IC0gVGhlIG5vdGlmaWNhdGlvbiBjb25maWd1cmF0aW9uIHBheWxvYWQgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Db25maWd1cmF0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgY3JlYXRlZCBvciB1cGRhdGVkIG5vdGlmaWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcG9zdE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25zIChib2R5OiBOb3RpZmljYXRpb25Db25maWd1cmF0aW9uSW4pOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25PdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxOb3RpZmljYXRpb25Db25maWd1cmF0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L25vdGlmaWNhdGlvbi1jb25maWd1cmF0aW9uc2AsIHsgYm9keSB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBub3RpZmljYXRpb24gdHlwZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciBmZXRjaGluZyB0aGUgbm90aWZpY2F0aW9uIHR5cGVzLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbnNUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBmZXRjaGVkIG5vdGlmaWNhdGlvbiB0eXBlcy5cbiAgICovXG4gIGdldE5vdGlmaWNhdGlvbnNUeXBlIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25zVHlwZU91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Tm90aWZpY2F0aW9uc1R5cGVPdXQ+PihgJHt0aGlzLnVybH0vbm90aWZpY2F0aW9ucy10eXBlYCwgeyBwYXJhbXMgfSlcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxuICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW5vdGlmaWNhdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFXbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBS3RDLE1BQU0sT0FBTyx1QkFBdUI7SUFFVDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7Ozs7T0FLRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUE7SUFDcEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUUsTUFBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBK0IsR0FBRyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFFLElBQW9CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN0RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZUFBZSxDQUFFLEVBQVUsRUFBRSxJQUFvQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzNGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFFLEVBQVU7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7YUFDdkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsRUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLHlCQUF5QixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsOEJBQThCLENBQUUsSUFBaUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMkMsR0FBRyxJQUFJLENBQUMsR0FBRyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ2pILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFFLE1BQW1CO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW1DLEdBQUcsSUFBSSxDQUFDLEdBQUcscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNqRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTVGVSx1QkFBdUIsa0JBRXhCLEtBQUs7NEdBRkosdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7XHJcbiAgTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkluLFxyXG4gIE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25PdXQsXHJcbiAgTm90aWZpY2F0aW9uSW4sXHJcbiAgTm90aWZpY2F0aW9uT3V0LFxyXG4gIE5vdGlmaWNhdGlvbnNPdXQsXHJcbiAgTm90aWZpY2F0aW9uc1R5cGVPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktbm90aWZpY2F0aW9ucy50eXBlcydcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaU5vdGlmaWNhdGlvbnNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIG5vdGlmaWNhdGlvbnMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IHNldHRpbmdzLlxyXG4gICAqIElmIHRoZSBVUkwgaXMgbm90IGRlZmluZWQsIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIEFQSSBOb3RpZmljYXRpb25zIFVSTCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IGRlZmluZWQuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlOb3RpZmljYXRpb25zVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgbm90aWZpY2F0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIGFuZCByZXRyaWV2ZSBub3RpZmljYXRpb25zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Tm90aWZpY2F0aW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmV0Y2hlZCBub3RpZmljYXRpb25zLlxyXG4gICAqL1xyXG4gIGdldE5vdGlmaWNhdGlvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Tm90aWZpY2F0aW9uc091dD4+KGAke3RoaXMudXJsfS9ub3RpZmljYXRpb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIG5vdGlmaWNhdGlvbiByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdXNpbmcgdGhlIHByb3ZpZGVkIGJvZHkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvbklufSBib2R5IC0gVGhlIG5vdGlmaWNhdGlvbiBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIG5vdGlmaWNhdGlvbiBvdXRwdXQgZGF0YS5cclxuICAgKi9cclxuICBwb3N0Tm90aWZpY2F0aW9uIChib2R5OiBOb3RpZmljYXRpb25Jbik6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxOb3RpZmljYXRpb25PdXQ+PihgJHt0aGlzLnVybH0vbm90aWZpY2F0aW9uc2AsIHsgYm9keSB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIGEgbm90aWZpY2F0aW9uIHdpdGggdGhlIHByb3ZpZGVkIElEIGFuZCBib2R5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvbklufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBub3RpZmljYXRpb24gd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBub3RpZmljYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBwdXROb3RpZmljYXRpb24gKGlkOiBudW1iZXIsIGJvZHk6IE5vdGlmaWNhdGlvbkluKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Tm90aWZpY2F0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L25vdGlmaWNhdGlvbnMvJHtpZH1gLCB7IGJvZHkgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGEgbm90aWZpY2F0aW9uIGJ5IGl0cyB1bmlxdWUgaWRlbnRpZmllci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm90aWZpY2F0aW9uIHRvIGRlbGV0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHt9Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZSBhZnRlciBkZWxldGluZyB0aGUgbm90aWZpY2F0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZU5vdGlmaWNhdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vbm90aWZpY2F0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFya3MgdGhlIG5vdGlmaWNhdGlvbiBhcyBmaW5pc2hlZCBmb3IgdGhlIHNwZWNpZmllZCBub3RpZmljYXRpb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBiZSBtYXJrZWQgYXMgZmluaXNoZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxOb3RpZmljYXRpb25PdXQ+fSBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIG5vdGlmaWNhdGlvbiBvYmplY3QuXHJcbiAgICovXHJcbiAgcHV0Tm90aWZpY2F0aW9uRmluaXNoIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Tm90aWZpY2F0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L25vdGlmaWNhdGlvbnMvZmluaXNoLyR7aWR9YCwge30pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIG9yIHVwZGF0ZSBub3RpZmljYXRpb24gY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Jbn0gYm9keSAtIFRoZSBub3RpZmljYXRpb24gY29uZmlndXJhdGlvbiBwYXlsb2FkIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Db25maWd1cmF0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgY3JlYXRlZCBvciB1cGRhdGVkIG5vdGlmaWNhdGlvbiBjb25maWd1cmF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3ROb3RpZmljYXRpb25Db25maWd1cmF0aW9ucyAoYm9keTogTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkluKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Db25maWd1cmF0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxOb3RpZmljYXRpb25Db25maWd1cmF0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L25vdGlmaWNhdGlvbi1jb25maWd1cmF0aW9uc2AsIHsgYm9keSB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbm90aWZpY2F0aW9uIHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZldGNoaW5nIHRoZSBub3RpZmljYXRpb24gdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxOb3RpZmljYXRpb25zVHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmV0Y2hlZCBub3RpZmljYXRpb24gdHlwZXMuXHJcbiAgICovXHJcbiAgZ2V0Tm90aWZpY2F0aW9uc1R5cGUgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbnNUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE5vdGlmaWNhdGlvbnNUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L25vdGlmaWNhdGlvbnMtdHlwZWAsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
59
59
  type: Inject,
60
60
  args: ['env']
61
61
  }] }, { type: i1.HttpClient }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW9wZW4taXRlbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1vcGVuLWl0ZW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFLbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBTXRDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3ZCLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUE7SUFDaEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDakYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLElBQXVCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLElBQUksQ0FBQzthQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBRSxJQUFvQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLGlCQUFpQixFQUFFLElBQUksQ0FBQzthQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTlDVSxtQkFBbUIsa0JBRXBCLEtBQUs7NEdBRkosbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXG5pbXBvcnQgeyBPcGVuSXRlbXNPdXQsIE90aGVySW52b2ljZU91dCwgUGF5bWVudE91dCB9IGZyb20gJy4vbW9kZWxzL2FwaS1vcGVuLWl0ZW1zLnR5cGVzJ1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE90aGVySW52b2ljZUluLCBQYXltZW50T3Blbkl0ZW1JbiB9IGZyb20gJy4vbW9kZWxzL2FwaS1vcGVuLWl0ZW1zLmludGVyZmFjZXMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaU9wZW5JdGVtc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvciAoXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgQVBJIFVSTCBmb3Igb3Blbi1pdGVtcyBmcm9tIHRoZSBlbnZpcm9ubWVudHMnIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIEFQSSBVUkwgZm9yIG9wZW4taXRlbXMuXG4gICAqL1xuICBnZXQgdXJsICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlPcGVuSXRlbXNVcmwgPz8gJydcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIG9wZW4taXRlbXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHRvIHVzZSBmb3IgcXVlcnlpbmcgb3Blbi1pdGVtcy5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVuSXRlbXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIG9wZW4taXRlbSdzIGRhdGEuXG4gICAqL1xuICBnZXRPcGVuSXRlbXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE9wZW5JdGVtc091dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3Blbkl0ZW1zT3V0Pj4oYCR7dGhpcy51cmx9L29wZW4taXRlbXNgLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cblxuICAvKipcbiAgICogUHJvY2Vzc2VzIGEgcGF5bWVudCBmb3IgYW4gb3BlbiBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0ge1BheW1lbnRPcGVuSXRlbUlufSBib2R5IC0gVGhlIHBheW1lbnQgZGV0YWlscyBmb3IgdGhlIG9wZW4gaXRlbS5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXltZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHBheW1lbnQgcHJvY2Vzc2luZy5cbiAgICovXG4gIHBvc3RQYXltZW50IChib2R5OiBQYXltZW50T3Blbkl0ZW1Jbik6IE9ic2VydmFibGU8UGF5bWVudE91dD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFBheW1lbnRPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudGAsIGJvZHkpXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzZXMgYSBwYXltZW50IGZvciBvdGhlciBpbnZvaWNlLlxuICAgKlxuICAgKiBAcGFyYW0ge090aGVySW52b2ljZUlufSBib2R5IC0gVGhlIHBheW1lbnQgZGV0YWlscyBmb3IgdGhlIG90aGVyIGludm9pY2UuXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3RoZXJJbnZvaWNlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHBheW1lbnQgcHJvY2Vzc2luZy5cbiAgICovXG4gIHBvc3RPdGhlckludm9pY2UgKGJvZHk6IE90aGVySW52b2ljZUluKTogT2JzZXJ2YWJsZTxPdGhlckludm9pY2VPdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPdGhlckludm9pY2VPdXQ+PihgJHt0aGlzLnVybH0vb3RoZXItaW52b2ljZXNgLCBib2R5KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXG4gIH1cbn1cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW9wZW4taXRlbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1vcGVuLWl0ZW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFLbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBTXRDLE1BQU0sT0FBTyxtQkFBbUI7SUFFTDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3ZCLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUE7SUFDaEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDakYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLElBQXVCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLElBQUksQ0FBQzthQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBRSxJQUFvQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE4QixHQUFHLElBQUksQ0FBQyxHQUFHLGlCQUFpQixFQUFFLElBQUksQ0FBQzthQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTlDVSxtQkFBbUIsa0JBRXBCLEtBQUs7NEdBRkosbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7IE9wZW5JdGVtc091dCwgT3RoZXJJbnZvaWNlT3V0LCBQYXltZW50T3V0IH0gZnJvbSAnLi9tb2RlbHMvYXBpLW9wZW4taXRlbXMudHlwZXMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IE90aGVySW52b2ljZUluLCBQYXltZW50T3Blbkl0ZW1JbiB9IGZyb20gJy4vbW9kZWxzL2FwaS1vcGVuLWl0ZW1zLmludGVyZmFjZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlPcGVuSXRlbXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgQVBJIFVSTCBmb3Igb3Blbi1pdGVtcyBmcm9tIHRoZSBlbnZpcm9ubWVudHMnIGNvbmZpZ3VyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBBUEkgVVJMIGZvciBvcGVuLWl0ZW1zLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpT3Blbkl0ZW1zVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIG9wZW4taXRlbXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byB1c2UgZm9yIHF1ZXJ5aW5nIG9wZW4taXRlbXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVuSXRlbXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIG9wZW4taXRlbSdzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0T3Blbkl0ZW1zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxPcGVuSXRlbXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3Blbkl0ZW1zT3V0Pj4oYCR7dGhpcy51cmx9L29wZW4taXRlbXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb2Nlc3NlcyBhIHBheW1lbnQgZm9yIGFuIG9wZW4gaXRlbS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UGF5bWVudE9wZW5JdGVtSW59IGJvZHkgLSBUaGUgcGF5bWVudCBkZXRhaWxzIGZvciB0aGUgb3BlbiBpdGVtLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBwYXltZW50IHByb2Nlc3NpbmcuXHJcbiAgICovXHJcbiAgcG9zdFBheW1lbnQgKGJvZHk6IFBheW1lbnRPcGVuSXRlbUluKTogT2JzZXJ2YWJsZTxQYXltZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxQYXltZW50T3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnRgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb2Nlc3NlcyBhIHBheW1lbnQgZm9yIG90aGVyIGludm9pY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge090aGVySW52b2ljZUlufSBib2R5IC0gVGhlIHBheW1lbnQgZGV0YWlscyBmb3IgdGhlIG90aGVyIGludm9pY2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPdGhlckludm9pY2VPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgcGF5bWVudCBwcm9jZXNzaW5nLlxyXG4gICAqL1xyXG4gIHBvc3RPdGhlckludm9pY2UgKGJvZHk6IE90aGVySW52b2ljZUluKTogT2JzZXJ2YWJsZTxPdGhlckludm9pY2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPE90aGVySW52b2ljZU91dD4+KGAke3RoaXMudXJsfS9vdGhlci1pbnZvaWNlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=