@decaf-ts/for-nest 0.11.1 → 0.11.2-refactor.2
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.
- package/README.md +1 -1
- package/dist/for-nest.cjs +2654 -2
- package/dist/for-nest.js +2756 -2
- package/lib/cjs/auth/AuthInterceptor.cjs +90 -0
- package/lib/cjs/auth/DecafAuthHandler.cjs +37 -0
- package/lib/cjs/auth/DecafAuthModule.cjs +56 -0
- package/lib/cjs/auth/constants.cjs +10 -0
- package/lib/cjs/auth/decorators.cjs +28 -0
- package/lib/cjs/auth/index.cjs +23 -0
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/cli-module.cjs +64 -7
- package/lib/cjs/constants.cjs +5 -6
- package/lib/cjs/controllers.cjs +13 -109
- package/lib/cjs/core-module.cjs +8 -8
- package/lib/cjs/decaf-model/DecafModelModule.cjs +23 -4
- package/lib/cjs/decaf-model/FromModelController.cjs +751 -789
- package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs +53 -16
- package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/DecafBody.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/DecafParams.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/controller-config.cjs +29 -0
- package/lib/cjs/decaf-model/decorators/decorators.cjs +5 -45
- package/lib/cjs/decaf-model/decorators/expose.cjs +13 -0
- package/lib/cjs/decaf-model/decorators/index.cjs +3 -2
- package/lib/cjs/decaf-model/decorators/types.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/utils.cjs +2 -2
- package/lib/cjs/decaf-model/index.cjs +28 -19
- package/lib/cjs/decaf-model/types.cjs +2 -2
- package/lib/cjs/decaf-model/utils.cjs +2 -2
- package/lib/cjs/decoration.cjs +2 -2
- package/lib/cjs/decorators.cjs +85 -0
- package/lib/cjs/events-module/DecafStreamModule.cjs +2 -2
- package/lib/cjs/events-module/EventsController.cjs +2 -2
- package/lib/cjs/events-module/constant.cjs +2 -2
- package/lib/cjs/events-module/index.cjs +2 -2
- package/lib/cjs/events-module/utils.cjs +2 -2
- package/lib/cjs/factory/NestBootstraper.cjs +2 -2
- package/lib/cjs/factory/errors/cors.cjs +2 -2
- package/lib/cjs/factory/errors/index.cjs +2 -2
- package/lib/cjs/factory/errors/throttling.cjs +2 -2
- package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs +2 -2
- package/lib/cjs/factory/exceptions/decorators.cjs +2 -2
- package/lib/cjs/factory/exceptions/index.cjs +2 -2
- package/lib/cjs/factory/index.cjs +2 -2
- package/lib/cjs/factory/openapi/DtoBuilder.cjs +37 -6
- package/lib/cjs/factory/openapi/SwaggerBuilder.cjs +2 -2
- package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs +2 -2
- package/lib/cjs/factory/openapi/constants.cjs +2 -2
- package/lib/cjs/factory/openapi/index.cjs +2 -2
- package/lib/cjs/index.cjs +8 -7
- package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +25 -21
- package/lib/cjs/interceptors/index.cjs +3 -4
- package/lib/cjs/module.cjs +5 -2
- package/lib/cjs/overrides/Adapter.cjs +2 -2
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
- package/lib/cjs/overrides/constants.cjs +2 -2
- package/lib/cjs/overrides/decoration.cjs +2 -2
- package/lib/cjs/overrides/helpers.cjs +2 -2
- package/lib/cjs/overrides/index.cjs +3 -2
- package/lib/cjs/overrides/logging.cjs +5 -0
- package/lib/cjs/overrides/overrides.cjs +2 -2
- package/lib/cjs/request/DecafAuthHandler.cjs +5 -39
- package/lib/cjs/request/DecafHandlerExecutor.cjs +2 -2
- package/lib/cjs/request/DecafRequestContext.cjs +11 -20
- package/lib/cjs/request/DecafResponseInterceptor.cjs +3 -3
- package/lib/cjs/request/index.cjs +2 -2
- package/lib/cjs/swagger-types.cjs +2 -2
- package/lib/cjs/types.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/webhooks/DecafWebhookModule.cjs +11 -12
- package/lib/cjs/webhooks/controllers.cjs +10 -10
- package/lib/cjs/webhooks/index.cjs +2 -15
- package/lib/cjs/webhooks/types.cjs +2 -2
- package/lib/esm/auth/AuthInterceptor.js +81 -0
- package/lib/esm/auth/DecafAuthHandler.js +31 -0
- package/lib/esm/auth/DecafAuthModule.js +48 -0
- package/lib/esm/auth/constants.js +6 -0
- package/lib/esm/auth/decorators.js +22 -0
- package/lib/esm/auth/index.js +6 -0
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/cli-module.js +63 -6
- package/lib/esm/constants.js +3 -4
- package/lib/esm/controllers.js +13 -109
- package/lib/esm/core-module.js +7 -7
- package/lib/esm/decaf-model/DecafModelModule.js +22 -3
- package/lib/esm/decaf-model/FromModelController.js +753 -791
- package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js +53 -15
- package/lib/esm/decaf-model/decorators/ApiParamsFromModel.js +1 -1
- package/lib/esm/decaf-model/decorators/DecafBody.js +1 -1
- package/lib/esm/decaf-model/decorators/DecafParams.js +1 -1
- package/lib/esm/decaf-model/decorators/controller-config.js +25 -0
- package/lib/esm/decaf-model/decorators/decorators.js +2 -43
- package/lib/esm/decaf-model/decorators/expose.js +9 -0
- package/lib/esm/decaf-model/decorators/index.js +2 -1
- package/lib/esm/decaf-model/decorators/types.js +1 -1
- package/lib/esm/decaf-model/decorators/utils.js +1 -1
- package/lib/esm/decaf-model/index.js +11 -4
- package/lib/esm/decaf-model/types.js +1 -1
- package/lib/esm/decaf-model/utils.js +1 -1
- package/lib/esm/decoration.js +1 -1
- package/lib/esm/decorators.js +79 -0
- package/lib/esm/events-module/DecafStreamModule.js +1 -1
- package/lib/esm/events-module/EventsController.js +1 -1
- package/lib/esm/events-module/constant.js +1 -1
- package/lib/esm/events-module/index.js +1 -1
- package/lib/esm/events-module/utils.js +1 -1
- package/lib/esm/factory/NestBootstraper.js +1 -1
- package/lib/esm/factory/errors/cors.js +1 -1
- package/lib/esm/factory/errors/index.js +1 -1
- package/lib/esm/factory/errors/throttling.js +1 -1
- package/lib/esm/factory/exceptions/DecafErrorFilter.js +1 -1
- package/lib/esm/factory/exceptions/decorators.js +1 -1
- package/lib/esm/factory/exceptions/index.js +1 -1
- package/lib/esm/factory/index.js +1 -1
- package/lib/esm/factory/openapi/DtoBuilder.js +36 -5
- package/lib/esm/factory/openapi/SwaggerBuilder.js +1 -1
- package/lib/esm/factory/openapi/SwaggerCustomUI.js +1 -1
- package/lib/esm/factory/openapi/constants.js +1 -1
- package/lib/esm/factory/openapi/index.js +1 -1
- package/lib/esm/index.js +7 -6
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +25 -21
- package/lib/esm/interceptors/index.js +2 -3
- package/lib/esm/module.js +4 -1
- package/lib/esm/overrides/Adapter.js +1 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
- package/lib/esm/overrides/constants.js +1 -1
- package/lib/esm/overrides/decoration.js +1 -1
- package/lib/esm/overrides/helpers.js +1 -1
- package/lib/esm/overrides/index.js +2 -1
- package/lib/esm/overrides/logging.js +2 -0
- package/lib/esm/overrides/overrides.js +1 -1
- package/lib/esm/request/DecafAuthHandler.js +2 -36
- package/lib/esm/request/DecafHandlerExecutor.js +1 -1
- package/lib/esm/request/DecafRequestContext.js +10 -19
- package/lib/esm/request/DecafResponseInterceptor.js +2 -2
- package/lib/esm/request/index.js +1 -1
- package/lib/esm/swagger-types.js +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/esm/webhooks/DecafWebhookModule.js +5 -6
- package/lib/esm/webhooks/controllers.js +2 -2
- package/lib/esm/webhooks/index.js +1 -2
- package/lib/esm/webhooks/types.js +1 -1
- package/lib/types/{interceptors → auth}/AuthInterceptor.d.cts +4 -1
- package/lib/types/{interceptors → auth}/AuthInterceptor.d.mts +4 -1
- package/lib/types/auth/DecafAuthHandler.d.cts +22 -0
- package/lib/types/auth/DecafAuthHandler.d.mts +22 -0
- package/lib/types/auth/DecafAuthModule.d.cts +9 -0
- package/lib/types/auth/DecafAuthModule.d.mts +9 -0
- package/lib/types/auth/constants.d.cts +5 -0
- package/lib/types/auth/constants.d.mts +5 -0
- package/lib/types/auth/decorators.d.cts +4 -0
- package/lib/types/auth/decorators.d.mts +4 -0
- package/lib/types/auth/index.d.cts +6 -0
- package/lib/types/auth/index.d.mts +6 -0
- package/lib/types/cli-module.d.cts +1 -4
- package/lib/types/cli-module.d.mts +1 -4
- package/lib/types/constants.d.cts +2 -3
- package/lib/types/constants.d.mts +2 -3
- package/lib/types/controllers.d.cts +7 -12
- package/lib/types/controllers.d.mts +7 -12
- package/lib/types/decaf-model/DecafModelModule.d.cts +1 -0
- package/lib/types/decaf-model/DecafModelModule.d.mts +1 -0
- package/lib/types/decaf-model/FromModelController.d.cts +40 -52
- package/lib/types/decaf-model/FromModelController.d.mts +40 -52
- package/lib/types/decaf-model/decorators/ApiOperationFromModel.d.cts +0 -2
- package/lib/types/decaf-model/decorators/ApiOperationFromModel.d.mts +0 -2
- package/lib/types/decaf-model/decorators/controller-config.d.cts +18 -0
- package/lib/types/decaf-model/decorators/controller-config.d.mts +18 -0
- package/lib/types/decaf-model/decorators/decorators.d.cts +1 -29
- package/lib/types/decaf-model/decorators/decorators.d.mts +1 -29
- package/lib/types/decaf-model/decorators/expose.d.cts +1 -0
- package/lib/types/decaf-model/decorators/expose.d.mts +1 -0
- package/lib/types/decaf-model/decorators/index.d.cts +1 -0
- package/lib/types/decaf-model/decorators/index.d.mts +1 -0
- package/lib/types/decaf-model/decorators/types.d.cts +8 -21
- package/lib/types/decaf-model/decorators/types.d.mts +8 -21
- package/lib/types/decaf-model/index.d.cts +11 -3
- package/lib/types/decaf-model/index.d.mts +11 -3
- package/lib/types/decaf-model/utils.d.cts +2 -1
- package/lib/types/decaf-model/utils.d.mts +2 -1
- package/lib/types/decorators.d.cts +34 -0
- package/lib/types/decorators.d.mts +34 -0
- package/lib/types/factory/openapi/DtoBuilder.d.cts +7 -3
- package/lib/types/factory/openapi/DtoBuilder.d.mts +7 -3
- package/lib/types/index.d.cts +5 -5
- package/lib/types/index.d.mts +5 -5
- package/lib/types/interceptors/DecafRequestHandlerInterceptor.d.cts +1 -2
- package/lib/types/interceptors/DecafRequestHandlerInterceptor.d.mts +1 -2
- package/lib/types/interceptors/index.d.cts +1 -2
- package/lib/types/interceptors/index.d.mts +1 -2
- package/lib/types/overrides/Adapter.d.cts +1 -1
- package/lib/types/overrides/Adapter.d.mts +1 -1
- package/lib/types/overrides/index.d.cts +1 -0
- package/lib/types/overrides/index.d.mts +1 -0
- package/lib/types/overrides/logging.d.cts +1 -0
- package/lib/types/overrides/logging.d.mts +1 -0
- package/lib/types/request/DecafAuthHandler.d.cts +1 -10
- package/lib/types/request/DecafAuthHandler.d.mts +1 -10
- package/lib/types/request/DecafRequestContext.d.cts +4 -5
- package/lib/types/request/DecafRequestContext.d.mts +4 -5
- package/lib/types/types.d.cts +12 -24
- package/lib/types/types.d.mts +12 -24
- package/lib/types/webhooks/controllers.d.cts +1 -1
- package/lib/types/webhooks/controllers.d.mts +1 -1
- package/lib/types/webhooks/index.d.cts +0 -1
- package/lib/types/webhooks/index.d.mts +0 -1
- package/package.json +5 -13
- package/dist/for-nest.cjs.map +0 -1
- package/dist/for-nest.js.map +0 -1
- package/lib/cjs/bin/cli.cjs.map +0 -1
- package/lib/cjs/cli-module.cjs.map +0 -1
- package/lib/cjs/constants.cjs.map +0 -1
- package/lib/cjs/controllers.cjs.map +0 -1
- package/lib/cjs/core-module.cjs.map +0 -1
- package/lib/cjs/decaf-model/DecafModelModule.cjs.map +0 -1
- package/lib/cjs/decaf-model/FromModelController.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/DecafBody.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/DecafParams.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/decorators.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/index.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/types.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/utils.cjs.map +0 -1
- package/lib/cjs/decaf-model/index.cjs.map +0 -1
- package/lib/cjs/decaf-model/types.cjs.map +0 -1
- package/lib/cjs/decaf-model/utils.cjs.map +0 -1
- package/lib/cjs/decoration.cjs.map +0 -1
- package/lib/cjs/events-module/DecafStreamModule.cjs.map +0 -1
- package/lib/cjs/events-module/EventsController.cjs.map +0 -1
- package/lib/cjs/events-module/constant.cjs.map +0 -1
- package/lib/cjs/events-module/index.cjs.map +0 -1
- package/lib/cjs/events-module/utils.cjs.map +0 -1
- package/lib/cjs/factory/NestBootstraper.cjs.map +0 -1
- package/lib/cjs/factory/errors/cors.cjs.map +0 -1
- package/lib/cjs/factory/errors/index.cjs.map +0 -1
- package/lib/cjs/factory/errors/throttling.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/decorators.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/index.cjs.map +0 -1
- package/lib/cjs/factory/index.cjs.map +0 -1
- package/lib/cjs/factory/openapi/DtoBuilder.cjs.map +0 -1
- package/lib/cjs/factory/openapi/SwaggerBuilder.cjs.map +0 -1
- package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs.map +0 -1
- package/lib/cjs/factory/openapi/constants.cjs.map +0 -1
- package/lib/cjs/factory/openapi/index.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/interceptors/AuthInterceptor.cjs +0 -52
- package/lib/cjs/interceptors/AuthInterceptor.cjs.map +0 -1
- package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs.map +0 -1
- package/lib/cjs/interceptors/context.cjs +0 -18
- package/lib/cjs/interceptors/context.cjs.map +0 -1
- package/lib/cjs/interceptors/index.cjs.map +0 -1
- package/lib/cjs/migrations/index.cjs +0 -35
- package/lib/cjs/migrations/index.cjs.map +0 -1
- package/lib/cjs/migrations/migration-module.cjs +0 -60
- package/lib/cjs/migrations/migration-module.cjs.map +0 -1
- package/lib/cjs/migrations/migration-options.cjs +0 -4
- package/lib/cjs/migrations/migration-options.cjs.map +0 -1
- package/lib/cjs/module.cjs.map +0 -1
- package/lib/cjs/overrides/Adapter.cjs.map +0 -1
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +0 -1
- package/lib/cjs/overrides/constants.cjs.map +0 -1
- package/lib/cjs/overrides/decoration.cjs.map +0 -1
- package/lib/cjs/overrides/helpers.cjs.map +0 -1
- package/lib/cjs/overrides/index.cjs.map +0 -1
- package/lib/cjs/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/ram/RamRequestTransformer.cjs +0 -26
- package/lib/cjs/ram/RamRequestTransformer.cjs.map +0 -1
- package/lib/cjs/ram/index.cjs +0 -19
- package/lib/cjs/ram/index.cjs.map +0 -1
- package/lib/cjs/request/DecafAuthHandler.cjs.map +0 -1
- package/lib/cjs/request/DecafHandlerExecutor.cjs.map +0 -1
- package/lib/cjs/request/DecafRequestContext.cjs.map +0 -1
- package/lib/cjs/request/DecafResponseInterceptor.cjs.map +0 -1
- package/lib/cjs/request/index.cjs.map +0 -1
- package/lib/cjs/swagger-types.cjs.map +0 -1
- package/lib/cjs/types.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/cjs/webhooks/DecafWebhookModule.cjs.map +0 -1
- package/lib/cjs/webhooks/controllers.cjs.map +0 -1
- package/lib/cjs/webhooks/index.cjs.map +0 -1
- package/lib/cjs/webhooks/types.cjs.map +0 -1
- package/lib/esm/bin/cli.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/controllers.js.map +0 -1
- package/lib/esm/core-module.js.map +0 -1
- package/lib/esm/decaf-model/DecafModelModule.js.map +0 -1
- package/lib/esm/decaf-model/FromModelController.js.map +0 -1
- package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js.map +0 -1
- package/lib/esm/decaf-model/decorators/ApiParamsFromModel.js.map +0 -1
- package/lib/esm/decaf-model/decorators/DecafBody.js.map +0 -1
- package/lib/esm/decaf-model/decorators/DecafParams.js.map +0 -1
- package/lib/esm/decaf-model/decorators/decorators.js.map +0 -1
- package/lib/esm/decaf-model/decorators/index.js.map +0 -1
- package/lib/esm/decaf-model/decorators/types.js.map +0 -1
- package/lib/esm/decaf-model/decorators/utils.js.map +0 -1
- package/lib/esm/decaf-model/index.js.map +0 -1
- package/lib/esm/decaf-model/types.js.map +0 -1
- package/lib/esm/decaf-model/utils.js.map +0 -1
- package/lib/esm/decoration.js.map +0 -1
- package/lib/esm/events-module/DecafStreamModule.js.map +0 -1
- package/lib/esm/events-module/EventsController.js.map +0 -1
- package/lib/esm/events-module/constant.js.map +0 -1
- package/lib/esm/events-module/index.js.map +0 -1
- package/lib/esm/events-module/utils.js.map +0 -1
- package/lib/esm/factory/NestBootstraper.js.map +0 -1
- package/lib/esm/factory/errors/cors.js.map +0 -1
- package/lib/esm/factory/errors/index.js.map +0 -1
- package/lib/esm/factory/errors/throttling.js.map +0 -1
- package/lib/esm/factory/exceptions/DecafErrorFilter.js.map +0 -1
- package/lib/esm/factory/exceptions/decorators.js.map +0 -1
- package/lib/esm/factory/exceptions/index.js.map +0 -1
- package/lib/esm/factory/index.js.map +0 -1
- package/lib/esm/factory/openapi/DtoBuilder.js.map +0 -1
- package/lib/esm/factory/openapi/SwaggerBuilder.js.map +0 -1
- package/lib/esm/factory/openapi/SwaggerCustomUI.js.map +0 -1
- package/lib/esm/factory/openapi/constants.js.map +0 -1
- package/lib/esm/factory/openapi/index.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/interceptors/AuthInterceptor.js +0 -43
- package/lib/esm/interceptors/AuthInterceptor.js.map +0 -1
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js.map +0 -1
- package/lib/esm/interceptors/context.js +0 -12
- package/lib/esm/interceptors/context.js.map +0 -1
- package/lib/esm/interceptors/index.js.map +0 -1
- package/lib/esm/migrations/index.js +0 -18
- package/lib/esm/migrations/index.js.map +0 -1
- package/lib/esm/migrations/migration-module.js +0 -52
- package/lib/esm/migrations/migration-module.js.map +0 -1
- package/lib/esm/migrations/migration-options.js +0 -7
- package/lib/esm/migrations/migration-options.js.map +0 -1
- package/lib/esm/module.js.map +0 -1
- package/lib/esm/overrides/Adapter.js.map +0 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js.map +0 -1
- package/lib/esm/overrides/constants.js.map +0 -1
- package/lib/esm/overrides/decoration.js.map +0 -1
- package/lib/esm/overrides/helpers.js.map +0 -1
- package/lib/esm/overrides/index.js.map +0 -1
- package/lib/esm/overrides/overrides.js.map +0 -1
- package/lib/esm/ram/RamRequestTransformer.js +0 -21
- package/lib/esm/ram/RamRequestTransformer.js.map +0 -1
- package/lib/esm/ram/index.js +0 -2
- package/lib/esm/ram/index.js.map +0 -1
- package/lib/esm/request/DecafAuthHandler.js.map +0 -1
- package/lib/esm/request/DecafHandlerExecutor.js.map +0 -1
- package/lib/esm/request/DecafRequestContext.js.map +0 -1
- package/lib/esm/request/DecafResponseInterceptor.js.map +0 -1
- package/lib/esm/request/index.js.map +0 -1
- package/lib/esm/swagger-types.js.map +0 -1
- package/lib/esm/types.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/esm/webhooks/DecafWebhookModule.js.map +0 -1
- package/lib/esm/webhooks/controllers.js.map +0 -1
- package/lib/esm/webhooks/index.js.map +0 -1
- package/lib/esm/webhooks/types.js.map +0 -1
- package/lib/types/interceptors/context.d.cts +0 -6
- package/lib/types/interceptors/context.d.mts +0 -6
- package/lib/types/migrations/index.d.cts +0 -17
- package/lib/types/migrations/index.d.mts +0 -17
- package/lib/types/migrations/migration-module.d.cts +0 -15
- package/lib/types/migrations/migration-module.d.mts +0 -15
- package/lib/types/migrations/migration-options.d.cts +0 -11
- package/lib/types/migrations/migration-options.d.mts +0 -11
- package/lib/types/ram/RamRequestTransformer.d.cts +0 -5
- package/lib/types/ram/RamRequestTransformer.d.mts +0 -5
- package/lib/types/ram/index.d.cts +0 -1
- package/lib/types/ram/index.d.mts +0 -1
|
@@ -264,5 +264,5 @@ class NestBootstraper {
|
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
266
|
exports.NestBootstraper = NestBootstraper;
|
|
267
|
-
//# sourceMappingURL=NestBootstraper.js.map
|
|
268
|
-
//# sourceMappingURL=NestBootstraper.js.map
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdEJvb3RzdHJhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZhY3RvcnkvTmVzdEJvb3RzdHJhcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxNQUFNLEdBR1AsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsOEJBQXFCO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsMkJBQWtCO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQWlCO0FBNENyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUkxQjs7Ozs7Ozs7O09BU0c7SUFDSyxNQUFNLEtBQUssTUFBTTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLFdBQVc7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQXFCO1FBQ3JDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQXFCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxJQUFJLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFH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QkFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSU5lc3RBcHBsaWNhdGlvbixcbiAgTG9nZ2VyLFxuICBOZXN0SW50ZXJjZXB0b3IsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZFeGNlcHRpb25GaWx0ZXIgfSBmcm9tIFwiLi9leGNlcHRpb25zXCI7XG5pbXBvcnQgeyBTd2FnZ2VyQnVpbGRlciB9IGZyb20gXCIuL29wZW5hcGlcIjtcbmltcG9ydCB7IENvcnNPcHRpb25zIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uL2ludGVyZmFjZXMvZXh0ZXJuYWwvY29ycy1vcHRpb25zLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQ29yc0Vycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBEZWZpbmVzIGFsbCBjdXN0b21pemFibGUgcGFyYW1ldGVycyBmb3IgU3dhZ2dlciBzZXR1cC5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhpcyBpbnRlcmZhY2UgYWxsb3dzIGRldmVsb3BlcnMgdG8gY3VzdG9taXplIGhvdyBTd2FnZ2VyIFVJIGlzIGNvbmZpZ3VyZWRcbiAqIHdpdGhpbiB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLiBJdCBpbmNsdWRlcyBwYXJhbWV0ZXJzIGZvciB0aXRsZXMsIHBhdGhzLFxuICogY29sb3Igc2NoZW1lcywgYW5kIGFzc2V0IHBhdGhzIHRvIHRhaWxvciB0aGUgQVBJIGRvY3VtZW50YXRpb24gZXhwZXJpZW5jZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSBUaXRsZSBkaXNwbGF5ZWQgaW4gU3dhZ2dlciBVSS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbiAtIERlc2NyaXB0aW9uIHNob3duIGJlbG93IHRoZSB0aXRsZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIC0gQVBJIHZlcnNpb24gZGlzcGxheWVkIGluIHRoZSBkb2N1bWVudGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHBhdGggd2hlcmUgU3dhZ2dlciB3aWxsIGJlIGF2YWlsYWJsZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3BlcnNpc3RBdXRob3JpemF0aW9uXSAtIFdoZXRoZXIgYXV0aG9yaXphdGlvbiB0b2tlbnMgcGVyc2lzdCBhY3Jvc3MgcmVsb2Fkcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXNzZXRzUGF0aF0gLSBQYXRoIHRvIGN1c3RvbSBhc3NldHMgZm9yIFN3YWdnZXIgVUkuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RvcGJhckJnQ29sb3JdIC0gQ3VzdG9tIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBTd2FnZ2VyIHRvcCBiYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RvcGJhckljb25QYXRoXSAtIFBhdGggdG8gYSBjdXN0b20gaWNvbiBkaXNwbGF5ZWQgaW4gdGhlIHRvcCBiYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2Zhdmljb25QYXRoXSAtIFBhdGggdG8gYSBjdXN0b20gZmF2aWNvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2FnZ2VyU2V0dXBPcHRpb25zIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBwZXJzaXN0QXV0aG9yaXphdGlvbj86IGJvb2xlYW47XG4gIGFzc2V0c1BhdGg/OiBzdHJpbmc7XG4gIHRvcGJhckJnQ29sb3I/OiBzdHJpbmc7XG4gIHRvcGJhckljb25QYXRoPzogc3RyaW5nO1xuICBmYXZpY29uUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gZXhwb3NlIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gaW4gSlNPTiBmb3JtYXQuXG4gICAqIEV4YW1wbGU6IC9hcGkvb3BlbmFwaS5qc29uXG4gICAqL1xuICBvcGVuQXBpSnNvblBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGV4cG9zZSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIFlBTUwgZm9ybWF0LlxuICAgKiBSZXF1aXJlcyAneWFtbCcgcGFja2FnZSBhcyBwZWVyIGRlcGVuZGVuY3kuXG4gICAqIEV4YW1wbGU6IC9hcGkvb3BlbmFwaS55YW1sXG4gICAqL1xuICBvcGVuQXBpWWFtbFBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBIGZsdWVudCwgc3RhdGljIGJvb3RzdHJhcCBjbGFzcyBmb3IgaW5pdGlhbGl6aW5nIGFuZCBjb25maWd1cmluZyBhIE5lc3RKUyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBOZXN0Qm9vdHN0cmFwZXJgIGNsYXNzIHByb3ZpZGVzIGEgY2hhaW5hYmxlIEFQSSBmb3IgY29uZmlndXJpbmdcbiAqIGEgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlLiBJdCBpbmNsdWRlcyBidWlsdC1pbiBtZXRob2RzIGZvciBlbmFibGluZ1xuICogQ09SUywgSGVsbWV0IHNlY3VyaXR5LCBTd2FnZ2VyIGRvY3VtZW50YXRpb24sIGdsb2JhbCBwaXBlcywgZmlsdGVycyxcbiAqIGludGVyY2VwdG9ycywgYW5kIHN0YXJ0aW5nIHRoZSBzZXJ2ZXIuXG4gKlxuICogVGhpcyBjbGFzcyBwcm9tb3RlcyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNlcyByZXBldGl0aXZlIHNldHVwIGNvZGVcbiAqIGFjcm9zcyBtdWx0aXBsZSBOZXN0SlMgcHJvamVjdHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBOZXN0RmFjdG9yeSB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbiAqIGltcG9ydCB7IEFwcE1vZHVsZSB9IGZyb20gXCIuL2FwcC5tb2R1bGVcIjtcbiAqIGltcG9ydCB7IE15TG9nZ2VyIH0gZnJvbSBcIi4vTXlMb2dnZXJcIjtcbiAqIGltcG9ydCB7IE5lc3RCb290c3RyYXBlciB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLW5lc3RcIjtcbiAqXG4gKiBhc3luYyBmdW5jdGlvbiBib290c3RyYXAoKSB7XG4gKiAgIGNvbnN0IGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShBcHBNb2R1bGUpO1xuICpcbiAqICAgYXdhaXQgTmVzdEJvb3RzdHJhcGVyXG4gKiAgICAgLmluaXRpYWxpemUoYXBwKVxuICogICAgIC5lbmFibGVMb2dnZXIobmV3IE15TG9nZ2VyKCkpXG4gKiAgICAgLmVuYWJsZUNvcnMoW1wiaHR0cDovL2xvY2FsaG9zdDo0MjAwXCJdKVxuICogICAgIC51c2VIZWxtZXQoKVxuICogICAgIC5zZXR1cFN3YWdnZXIoe1xuICogICAgICAgdGl0bGU6IFwiT3BlbkFQSSBieSBUcmFkZU1hcmvihKJcIixcbiAqICAgICAgIGRlc2NyaXB0aW9uOiBcIlRyYWRlTWFya+KEoiBBUEkgZG9jdW1lbnRhdGlvblwiLFxuICogICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICogICAgICAgcGF0aDogXCJhcGlcIixcbiAqICAgICAgIHBlcnNpc3RBdXRob3JpemF0aW9uOiB0cnVlLFxuICogICAgICAgdG9wYmFyQmdDb2xvcjogXCIjMkMzRTUwXCIsXG4gKiAgICAgICB0b3BiYXJJY29uUGF0aDogXCIvYXNzZXRzL2xvZ28uc3ZnXCIsXG4gKiAgICAgICBmYXZpY29uUGF0aDogXCIvYXNzZXRzL2Zhdmljb24uaWNvXCJcbiAqICAgICB9KVxuICogICAgIC51c2VHbG9iYWxGaWx0ZXJzKClcbiAqICAgICAudXNlR2xvYmFsUGlwZXMoLi4uKVxuICogICAgIC51c2VHbG9iYWxJbnRlcmNlcHRvcnMoLi4uKVxuICogICAgIC5zdGFydCgzMDAwKTtcbiAqIH1cbiAqXG4gKiBib290c3RyYXAoKTtcbiAqIGBgYFxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXN0Qm9vdHN0cmFwZXIge1xuICBwcml2YXRlIHN0YXRpYyBhcHA6IElOZXN0QXBwbGljYXRpb247XG4gIHByaXZhdGUgc3RhdGljIF9sb2dnZXI6IExvZ2dlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9nZ2VyIGluc3RhbmNlLCBjcmVhdGluZyBhIGRlZmF1bHQgb25lIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIEVuc3VyZXMgdGhhdCBhIHZhbGlkIGBMb2dnZXJgIGluc3RhbmNlIGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICogZm9yIGxvZ2dpbmcgYm9vdHN0cmFwLXJlbGF0ZWQgbWVzc2FnZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge0xvZ2dlcn0gVGhlIGFjdGl2ZSBsb2dnZXIgaW5zdGFuY2UuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXQgbG9nZ2VyKCk6IExvZ2dlciB7XG4gICAgaWYgKCF0aGlzLl9sb2dnZXIpIHtcbiAgICAgIC8vIGZhbGxiYWNrXG4gICAgICB0aGlzLl9sb2dnZXIgPSBuZXcgTG9nZ2VyKFwiTmVzdEJvb3RzdHJhcFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJvb3RzdHJhcHBlciB3aXRoIGEgZ2l2ZW4gTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBCaW5kcyB0aGUgcHJvdmlkZWQgTmVzdEpTIGFwcCBpbnN0YW5jZSB0byB0aGUgYm9vdHN0cmFwcGVyLCBlbmFibGluZ1xuICAgKiBjaGFpbmVkIGNvbmZpZ3VyYXRpb24gbWV0aG9kcy5cbiAgICpcbiAgICogQHBhcmFtIHtJTmVzdEFwcGxpY2F0aW9ufSBhcHAgLSBUaGUgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlIHRvIGluaXRpYWxpemUuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24gbWV0aG9kcy5cbiAgICovXG4gIHN0YXRpYyBpbml0aWFsaXplKGFwcDogSU5lc3RBcHBsaWNhdGlvbikge1xuICAgIHRoaXMuYXBwID0gYXBwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbmFibGVzIG9yIHJlcGxhY2VzIHRoZSBnbG9iYWwgbG9nZ2VyIGZvciB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBJZiBhIGN1c3RvbSBsb2dnZXIgaXMgcHJvdmlkZWQsIGl0IHJlcGxhY2VzIHRoZSBkZWZhdWx0IGxvZ2dlci4gT3RoZXJ3aXNlLFxuICAgKiBhIG5ldyBsb2dnZXIgbmFtZWQgYFwiTmVzdEJvb3RzdHJhcFwiYCBpcyB1c2VkLiBUaGlzIGxvZ2dlciBpcyBhbHNvIHJlZ2lzdGVyZWRcbiAgICogd2l0aCB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0xvZ2dlcn0gW2N1c3RvbUxvZ2dlcl0gLSBPcHRpb25hbCBjdXN0b20gbG9nZ2VyIGluc3RhbmNlLlxuICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZy5cbiAgICovXG4gIHN0YXRpYyBlbmFibGVMb2dnZXIoY3VzdG9tTG9nZ2VyPzogTG9nZ2VyKSB7XG4gICAgdGhpcy5fbG9nZ2VyID0gY3VzdG9tTG9nZ2VyIHx8IG5ldyBMb2dnZXIoXCJOZXN0Qm9vdHN0cmFwXCIpO1xuICAgIHRoaXMuYXBwLnVzZUxvZ2dlcih0aGlzLl9sb2dnZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbmFibGVzIENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIChDT1JTKSBmb3IgdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBBbGxvd3MgZGVmaW5pbmcgZWl0aGVyIGEgd2lsZGNhcmQgb3JpZ2luIChgXCIqXCJgKSBvciBhIGxpc3Qgb2YgYWxsb3dlZCBvcmlnaW5zLlxuICAgKiBBdXRvbWF0aWNhbGx5IGFjY2VwdHMgbG9jYWwgZGV2ZWxvcG1lbnQgcmVxdWVzdHMgYW5kIHRob3NlIHdpdGhvdXQgb3JpZ2luIGhlYWRlcnMuXG4gICAqIFRocm93cyBhIGBDb3JzRXJyb3JgIGZvciB1bmF1dGhvcml6ZWQgb3JpZ2lucy5cbiAgICpcbiAgICogQHBhcmFtIHsnKicgfCBzdHJpbmdbXX0gW29yaWdpbnM9W11dIC0gTGlzdCBvZiBhbGxvd2VkIG9yaWdpbnMgb3IgYFwiKlwiYCB0byBhbGxvdyBhbGwuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthbGxvd01ldGhvZHM9WydHRVQnLCAnUE9TVCcsICdQVVQnLCAnREVMRVRFJ11dIC0gQWxsb3dlZCBIVFRQIG1ldGhvZHMuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqL1xuICBzdGF0aWMgZW5hYmxlQ29ycyhcbiAgICBvcmlnaW5zOiBcIipcIiB8IHN0cmluZ1tdID0gW10sXG4gICAgYWxsb3dNZXRob2RzOiBzdHJpbmdbXSA9IFtcIkdFVFwiLCBcIlBPU1RcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl1cbiAgKSB7XG4gICAgY29uc3QgYWxsb3dlZE9yaWdpbnMgPVxuICAgICAgb3JpZ2lucyA9PT0gXCIqXCIgPyBcIipcIiA6IG9yaWdpbnMubWFwKChvKSA9PiBvLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGNvbnN0IGNvcnNPcHRpb25zOiBDb3JzT3B0aW9ucyA9IHtcbiAgICAgIG9yaWdpbjogKG9yaWdpbiwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgLy8gQWxsb3cgcmVxdWVzdCB3aXRob3V0IG9yaWdpbi4uLlxuICAgICAgICBpZiAoIW9yaWdpbikgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBhbGxvd2VkT3JpZ2lucyA9PT0gXCIqXCIgfHxcbiAgICAgICAgICAoQXJyYXkuaXNBcnJheShhbGxvd2VkT3JpZ2lucykgJiZcbiAgICAgICAgICAgIGFsbG93ZWRPcmlnaW5zLmluY2x1ZGVzKG9yaWdpbi50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2sobmV3IENvcnNFcnJvcihgT3JpZ2luICR7b3JpZ2lufSBub3QgYWxsb3dlZGApKTtcbiAgICAgIH0sXG4gICAgICBjcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIG1ldGhvZHM6IGFsbG93TWV0aG9kcy5qb2luKFwiLFwiKSxcbiAgICB9O1xuXG4gICAgdGhpcy5hcHAuZW5hYmxlQ29ycyhjb3JzT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFwcGxpZXMgdGhlIEhlbG1ldCBtaWRkbGV3YXJlIGZvciBlbmhhbmNlZCBzZWN1cml0eS5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRHluYW1pY2FsbHkgbG9hZHMgdGhlIGBoZWxtZXRgIHBhY2thZ2UgaWYgYXZhaWxhYmxlIGFuZCByZWdpc3RlcnMgaXRcbiAgICogYXMgbWlkZGxld2FyZSB0byBpbXByb3ZlIEhUVFAgaGVhZGVyIHNlY3VyaXR5LiBJZiBub3QgaW5zdGFsbGVkLCBsb2dzIGEgd2FybmluZ1xuICAgKiBhbmQgY29udGludWVzIGV4ZWN1dGlvbiB3aXRob3V0IHRocm93aW5nIGVycm9ycy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbb3B0aW9uc10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIHBhc3NlZCB0byBIZWxtZXQuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgdXNlSGVsbWV0KG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBjb25zdCBoZWxtZXQgPSByZXF1aXJlKFwiaGVsbWV0XCIpOyAvLyBEeW5hbWljIGltcG9ydCB0byBhdm9pZCBoYXJkIGRlcGVuZGVuY3lcbiAgICAgIHRoaXMuYXBwLnVzZShoZWxtZXQob3B0aW9ucykpO1xuICAgICAgdGhpcy5sb2dnZXIubG9nKFwiSGVsbWV0IG1pZGRsZXdhcmUgZW5hYmxlZCBzdWNjZXNzZnVsbHkuXCIpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcIkhlbG1ldCBub3QgaW5zdGFsbGVkLiBTa2lwcGluZyBtaWRkbGV3YXJlLlwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ29uZmlndXJlcyBhbmQgaW5pdGlhbGl6ZXMgU3dhZ2dlciBVSSBmb3IgQVBJIGRvY3VtZW50YXRpb24uXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIFVzZXMgdGhlIGBTd2FnZ2VyQnVpbGRlcmAgdXRpbGl0eSB0byBjb25maWd1cmUgQVBJIGRvY3VtZW50YXRpb25cbiAgICogd2l0aCBkZXRhaWxlZCBjdXN0b21pemF0aW9uIGZvciB0aXRsZSwgdmVyc2lvbiwgcGF0aHMsIGFuZCBjb2xvcnMuXG4gICAqIFN3YWdnZXIgaXMgYXV0b21hdGljYWxseSBleHBvc2VkIGF0IHRoZSBjb25maWd1cmVkIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSB7U3dhZ2dlclNldHVwT3B0aW9uc30gb3B0aW9ucyAtIFN3YWdnZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgc3RhdGljIHNldHVwU3dhZ2dlcihvcHRpb25zOiBTd2FnZ2VyU2V0dXBPcHRpb25zKSB7XG4gICAgY29uc3Qgc3dhZ2dlciA9IG5ldyBTd2FnZ2VyQnVpbGRlcih0aGlzLmFwcCwge1xuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgIHBhdGg6IG9wdGlvbnMucGF0aCB8fCBcImFwaVwiLFxuICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IG9wdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb24gPz8gdHJ1ZSxcbiAgICAgIGFzc2V0c1BhdGg6IG9wdGlvbnMuYXNzZXRzUGF0aCxcbiAgICAgIGZhdmljb25GaWxlUGF0aDogb3B0aW9ucy5mYXZpY29uUGF0aCxcbiAgICAgIHRvcGJhckljb25GaWxlUGF0aDogb3B0aW9ucy50b3BiYXJJY29uUGF0aCxcbiAgICAgIHRvcGJhckJnQ29sb3I6IG9wdGlvbnMudG9wYmFyQmdDb2xvcixcbiAgICAgIG9wZW5BcGlKc29uUGF0aDogb3B0aW9ucy5vcGVuQXBpSnNvblBhdGgsXG4gICAgICBvcGVuQXBpWWFtbFBhdGg6IG9wdGlvbnMub3BlbkFwaVlhbWxQYXRoLFxuICAgIH0pO1xuICAgIHN3YWdnZXIuc2V0dXBTd2FnZ2VyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgdmFsaWRhdGlvbiBwaXBlcy5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRW5hYmxlcyByZXF1ZXN0IHBheWxvYWQgdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb24gZ2xvYmFsbHkgYWNyb3NzXG4gICAqIHRoZSBlbnRpcmUgTmVzdEpTIGFwcGxpY2F0aW9uLiBNdWx0aXBsZSBwaXBlcyBjYW4gYmUgY2hhaW5lZCB0b2dldGhlclxuICAgKiBmb3IgbW9kdWxhciBpbnB1dCB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLlBpcGVUcmFuc2Zvcm1bXX0gcGlwZXMgLSBQaXBlIGluc3RhbmNlcyB0byByZWdpc3RlciBnbG9iYWxseS5cbiAgICogQHJldHVybiB7TmVzdEJvb3RzdHJhcGVyfSBSZXR1cm5zIHRoZSBjbGFzcyBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsUGlwZXMoLi4ucGlwZXM6IFBpcGVUcmFuc2Zvcm1bXSkge1xuICAgIGlmIChwaXBlcy5sZW5ndGggPiAwKSB0aGlzLmFwcC51c2VHbG9iYWxQaXBlcyguLi5waXBlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgZXhjZXB0aW9uIGZpbHRlcnMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIElmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkLCBpdCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVycyBhIGRlZmF1bHRcbiAgICogc2V0IG9mIHN0YW5kYXJkIGV4Y2VwdGlvbiBmaWx0ZXJzIGZvciBjb21tb24gZXJyb3IgdHlwZXMgbGlrZVxuICAgKiBgSHR0cEV4Y2VwdGlvbmAsIGBWYWxpZGF0aW9uRXhjZXB0aW9uYCwgYENvbmZsaWN0RXhjZXB0aW9uYCwgYW5kIG90aGVycy5cbiAgICpcbiAgICogQHBhcmFtIHsuLi5FeGNlcHRpb25GaWx0ZXJbXX0gZmlsdGVycyAtIE9wdGlvbmFsIGZpbHRlcnMgdG8gYXBwbHkgZ2xvYmFsbHkuXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsRmlsdGVycyguLi5maWx0ZXJzOiBhbnlbXSkge1xuICAgIHRoaXMuYXBwLnVzZUdsb2JhbEZpbHRlcnMoXG4gICAgICAuLi4oZmlsdGVycy5sZW5ndGggPiAwID8gZmlsdGVycyA6IFtuZXcgRGVjYWZFeGNlcHRpb25GaWx0ZXIoKV0pXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBpbnRlcmNlcHRvcnMgZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHRyYW5zZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBJbnRlcmNlcHRvcnMgYWxsb3cgYWR2YW5jZWQgcmVxdWVzdC9yZXNwb25zZSBtYW5pcHVsYXRpb24gc3VjaCBhc1xuICAgKiBzZXJpYWxpemF0aW9uLCBsb2dnaW5nLCBvciB0cmFuc2Zvcm1hdGlvbi4gTXVsdGlwbGUgaW50ZXJjZXB0b3JzXG4gICAqIGNhbiBiZSBhZGRlZCBmb3IgbW9kdWxhciBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLk5lc3RJbnRlcmNlcHRvcltdfSBpbnRlcmNlcHRvcnMgLSBJbnRlcmNlcHRvciBpbnN0YW5jZXMgdG8gcmVnaXN0ZXIuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsSW50ZXJjZXB0b3JzKC4uLmludGVyY2VwdG9yczogTmVzdEludGVyY2VwdG9yW10pIHtcbiAgICBpZiAoaW50ZXJjZXB0b3JzLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLmFwcC51c2VHbG9iYWxJbnRlcmNlcHRvcnMoLi4uaW50ZXJjZXB0b3JzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU3RhcnRzIHRoZSBOZXN0SlMgYXBwbGljYXRpb24gYW5kIGJpbmRzIGl0IHRvIHRoZSBnaXZlbiBwb3J0IGFuZCBob3N0LlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBMaXN0ZW5zIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCBhbmQgb3B0aW9uYWxseSBhIGhvc3QuIE9uY2Ugc3RhcnRlZCxcbiAgICogbG9ncyB0aGUgYXBwbGljYXRpb24gVVJMIGZvciBlYXN5IGFjY2Vzcy4gVGhlIHN0YXJ0dXAgcHJvY2VzcyByZXNvbHZlc1xuICAgKiBvbmNlIHRoZSBhcHBsaWNhdGlvbiBpcyBzdWNjZXNzZnVsbHkgcnVubmluZy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3J0PTMwMDBdIC0gUG9ydCBudW1iZXIgdG8gbGlzdGVuIG9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2hvc3RdIC0gT3B0aW9uYWwgaG9zdCBvciBJUCBhZGRyZXNzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2xvZz10cnVlXSAtIFdoZXRoZXIgdG8gbG9nIHRoZSBhcHBsaWNhdGlvbiBVUkwgdXBvbiBzdGFydHVwLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyBvbmNlIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN0YXJ0KFxuICAgIHBvcnQ6IG51bWJlciA9IE51bWJlcihwcm9jZXNzLmVudi5QT1JUKSB8fCAzMDAwLFxuICAgIGhvc3Q6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBsb2c6IGJvb2xlYW4gPSB0cnVlXG4gICkge1xuICAgIHRoaXMuYXBwLmxpc3Rlbihwb3J0LCBob3N0IGFzIGFueSkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuYXBwLmdldFVybCgpO1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coYPCfmoAgQXBwbGljYXRpb24gaXMgcnVubmluZyBhdDogJHt1cmx9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdEJvb3RzdHJhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTmVzdEJvb3RzdHJhcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5QztBQUN6QyxvREFBNkQ7QUFDN0QsaURBQW9EO0FBQ3BELGdEQUE4QztBQUM5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFhLGVBQWU7SUFDeEI7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxLQUFLLE1BQU07UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLFdBQVc7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0Q7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVk7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLElBQUksSUFBSSxlQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLFlBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztRQUMzRSxNQUFNLGNBQWMs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LENBQUM7Q0FDSjtBQWpORCwwQ0FpTkM7QUFDRCxzdm9CQUFzdm9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyLCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZFeGNlcHRpb25GaWx0ZXIgfSBmcm9tIFwiLi9leGNlcHRpb25zL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBTd2FnZ2VyQnVpbGRlciB9IGZyb20gXCIuL29wZW5hcGkvaW5kZXguanNcIjtcbmltcG9ydCB7IENvcnNFcnJvciB9IGZyb20gXCIuL2Vycm9ycy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEEgZmx1ZW50LCBzdGF0aWMgYm9vdHN0cmFwIGNsYXNzIGZvciBpbml0aWFsaXppbmcgYW5kIGNvbmZpZ3VyaW5nIGEgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBzdW1tYXJ5XG4gKiBUaGUgYE5lc3RCb290c3RyYXBlcmAgY2xhc3MgcHJvdmlkZXMgYSBjaGFpbmFibGUgQVBJIGZvciBjb25maWd1cmluZ1xuICogYSBOZXN0SlMgYXBwbGljYXRpb24gaW5zdGFuY2UuIEl0IGluY2x1ZGVzIGJ1aWx0LWluIG1ldGhvZHMgZm9yIGVuYWJsaW5nXG4gKiBDT1JTLCBIZWxtZXQgc2VjdXJpdHksIFN3YWdnZXIgZG9jdW1lbnRhdGlvbiwgZ2xvYmFsIHBpcGVzLCBmaWx0ZXJzLFxuICogaW50ZXJjZXB0b3JzLCBhbmQgc3RhcnRpbmcgdGhlIHNlcnZlci5cbiAqXG4gKiBUaGlzIGNsYXNzIHByb21vdGVzIGNvbnNpc3RlbmN5IGFuZCByZWR1Y2VzIHJlcGV0aXRpdmUgc2V0dXAgY29kZVxuICogYWNyb3NzIG11bHRpcGxlIE5lc3RKUyBwcm9qZWN0cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IE5lc3RGYWN0b3J5IH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuICogaW1wb3J0IHsgQXBwTW9kdWxlIH0gZnJvbSBcIi4vYXBwLm1vZHVsZVwiO1xuICogaW1wb3J0IHsgTXlMb2dnZXIgfSBmcm9tIFwiLi9NeUxvZ2dlclwiO1xuICogaW1wb3J0IHsgTmVzdEJvb3RzdHJhcGVyIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItbmVzdFwiO1xuICpcbiAqIGFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcCgpIHtcbiAqICAgY29uc3QgYXBwID0gYXdhaXQgTmVzdEZhY3RvcnkuY3JlYXRlKEFwcE1vZHVsZSk7XG4gKlxuICogICBhd2FpdCBOZXN0Qm9vdHN0cmFwZXJcbiAqICAgICAuaW5pdGlhbGl6ZShhcHApXG4gKiAgICAgLmVuYWJsZUxvZ2dlcihuZXcgTXlMb2dnZXIoKSlcbiAqICAgICAuZW5hYmxlQ29ycyhbXCJodHRwOi8vbG9jYWxob3N0OjQyMDBcIl0pXG4gKiAgICAgLnVzZUhlbG1ldCgpXG4gKiAgICAgLnNldHVwU3dhZ2dlcih7XG4gKiAgICAgICB0aXRsZTogXCJPcGVuQVBJIGJ5IFRyYWRlTWFya+KEolwiLFxuICogICAgICAgZGVzY3JpcHRpb246IFwiVHJhZGVNYXJr4oSiIEFQSSBkb2N1bWVudGF0aW9uXCIsXG4gKiAgICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gKiAgICAgICBwYXRoOiBcImFwaVwiLFxuICogICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IHRydWUsXG4gKiAgICAgICB0b3BiYXJCZ0NvbG9yOiBcIiMyQzNFNTBcIixcbiAqICAgICAgIHRvcGJhckljb25QYXRoOiBcIi9hc3NldHMvbG9nby5zdmdcIixcbiAqICAgICAgIGZhdmljb25QYXRoOiBcIi9hc3NldHMvZmF2aWNvbi5pY29cIlxuICogICAgIH0pXG4gKiAgICAgLnVzZUdsb2JhbEZpbHRlcnMoKVxuICogICAgIC51c2VHbG9iYWxQaXBlcyguLi4pXG4gKiAgICAgLnVzZUdsb2JhbEludGVyY2VwdG9ycyguLi4pXG4gKiAgICAgLnN0YXJ0KDMwMDApO1xuICogfVxuICpcbiAqIGJvb3RzdHJhcCgpO1xuICogYGBgXG4gKiBAY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIE5lc3RCb290c3RyYXBlciB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBsb2dnZXIgaW5zdGFuY2UsIGNyZWF0aW5nIGEgZGVmYXVsdCBvbmUgaWYgbm90IHNldC5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogRW5zdXJlcyB0aGF0IGEgdmFsaWQgYExvZ2dlcmAgaW5zdGFuY2UgaXMgYWx3YXlzIGF2YWlsYWJsZVxuICAgICAqIGZvciBsb2dnaW5nIGJvb3RzdHJhcC1yZWxhdGVkIG1lc3NhZ2VzLlxuICAgICAqXG4gICAgICogQHJldHVybiB7TG9nZ2VyfSBUaGUgYWN0aXZlIGxvZ2dlciBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0IGxvZ2dlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9sb2dnZXIpIHtcbiAgICAgICAgICAgIC8vIGZhbGxiYWNrXG4gICAgICAgICAgICB0aGlzLl9sb2dnZXIgPSBuZXcgTG9nZ2VyKFwiTmVzdEJvb3RzdHJhcFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fbG9nZ2VyO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJbml0aWFsaXplcyB0aGUgYm9vdHN0cmFwcGVyIHdpdGggYSBnaXZlbiBOZXN0SlMgYXBwbGljYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIEJpbmRzIHRoZSBwcm92aWRlZCBOZXN0SlMgYXBwIGluc3RhbmNlIHRvIHRoZSBib290c3RyYXBwZXIsIGVuYWJsaW5nXG4gICAgICogY2hhaW5lZCBjb25maWd1cmF0aW9uIG1ldGhvZHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0lOZXN0QXBwbGljYXRpb259IGFwcCAtIFRoZSBOZXN0SlMgYXBwbGljYXRpb24gaW5zdGFuY2UgdG8gaW5pdGlhbGl6ZS5cbiAgICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZyBjb25maWd1cmF0aW9uIG1ldGhvZHMuXG4gICAgICovXG4gICAgc3RhdGljIGluaXRpYWxpemUoYXBwKSB7XG4gICAgICAgIHRoaXMuYXBwID0gYXBwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRW5hYmxlcyBvciByZXBsYWNlcyB0aGUgZ2xvYmFsIGxvZ2dlciBmb3IgdGhlIE5lc3RKUyBhcHBsaWNhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogSWYgYSBjdXN0b20gbG9nZ2VyIGlzIHByb3ZpZGVkLCBpdCByZXBsYWNlcyB0aGUgZGVmYXVsdCBsb2dnZXIuIE90aGVyd2lzZSxcbiAgICAgKiBhIG5ldyBsb2dnZXIgbmFtZWQgYFwiTmVzdEJvb3RzdHJhcFwiYCBpcyB1c2VkLiBUaGlzIGxvZ2dlciBpcyBhbHNvIHJlZ2lzdGVyZWRcbiAgICAgKiB3aXRoIHRoZSBOZXN0SlMgYXBwbGljYXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0xvZ2dlcn0gW2N1c3RvbUxvZ2dlcl0gLSBPcHRpb25hbCBjdXN0b20gbG9nZ2VyIGluc3RhbmNlLlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nLlxuICAgICAqL1xuICAgIHN0YXRpYyBlbmFibGVMb2dnZXIoY3VzdG9tTG9nZ2VyKSB7XG4gICAgICAgIHRoaXMuX2xvZ2dlciA9IGN1c3RvbUxvZ2dlciB8fCBuZXcgTG9nZ2VyKFwiTmVzdEJvb3RzdHJhcFwiKTtcbiAgICAgICAgdGhpcy5hcHAudXNlTG9nZ2VyKHRoaXMuX2xvZ2dlcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBFbmFibGVzIENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIChDT1JTKSBmb3IgdGhlIGFwcGxpY2F0aW9uLlxuICAgICAqXG4gICAgICogQHN1bW1hcnlcbiAgICAgKiBBbGxvd3MgZGVmaW5pbmcgZWl0aGVyIGEgd2lsZGNhcmQgb3JpZ2luIChgXCIqXCJgKSBvciBhIGxpc3Qgb2YgYWxsb3dlZCBvcmlnaW5zLlxuICAgICAqIEF1dG9tYXRpY2FsbHkgYWNjZXB0cyBsb2NhbCBkZXZlbG9wbWVudCByZXF1ZXN0cyBhbmQgdGhvc2Ugd2l0aG91dCBvcmlnaW4gaGVhZGVycy5cbiAgICAgKiBUaHJvd3MgYSBgQ29yc0Vycm9yYCBmb3IgdW5hdXRob3JpemVkIG9yaWdpbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0geycqJyB8IHN0cmluZ1tdfSBbb3JpZ2lucz1bXV0gLSBMaXN0IG9mIGFsbG93ZWQgb3JpZ2lucyBvciBgXCIqXCJgIHRvIGFsbG93IGFsbC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbYWxsb3dNZXRob2RzPVsnR0VUJywgJ1BPU1QnLCAnUFVUJywgJ0RFTEVURSddXSAtIEFsbG93ZWQgSFRUUCBtZXRob2RzLlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKi9cbiAgICBzdGF0aWMgZW5hYmxlQ29ycyhvcmlnaW5zID0gW10sIGFsbG93TWV0aG9kcyA9IFtcIkdFVFwiLCBcIlBPU1RcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl0pIHtcbiAgICAgICAgY29uc3QgYWxsb3dlZE9yaWdpbnMgPSBvcmlnaW5zID09PSBcIipcIiA/IFwiKlwiIDogb3JpZ2lucy5tYXAoKG8pID0+IG8udHJpbSgpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICBjb25zdCBjb3JzT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG9yaWdpbjogKG9yaWdpbiwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgICAgICAvLyBBbGxvdyByZXF1ZXN0IHdpdGhvdXQgb3JpZ2luLi4uXG4gICAgICAgICAgICAgICAgaWYgKCFvcmlnaW4pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAoYWxsb3dlZE9yaWdpbnMgPT09IFwiKlwiIHx8XG4gICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KGFsbG93ZWRPcmlnaW5zKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZE9yaWdpbnMuaW5jbHVkZXMob3JpZ2luLnRvTG93ZXJDYXNlKCkpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBDb3JzRXJyb3IoYE9yaWdpbiAke29yaWdpbn0gbm90IGFsbG93ZWRgKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBtZXRob2RzOiBhbGxvd01ldGhvZHMuam9pbihcIixcIiksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYXBwLmVuYWJsZUNvcnMoY29yc09wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQXBwbGllcyB0aGUgSGVsbWV0IG1pZGRsZXdhcmUgZm9yIGVuaGFuY2VkIHNlY3VyaXR5LlxuICAgICAqXG4gICAgICogQHN1bW1hcnlcbiAgICAgKiBEeW5hbWljYWxseSBsb2FkcyB0aGUgYGhlbG1ldGAgcGFja2FnZSBpZiBhdmFpbGFibGUgYW5kIHJlZ2lzdGVycyBpdFxuICAgICAqIGFzIG1pZGRsZXdhcmUgdG8gaW1wcm92ZSBIVFRQIGhlYWRlciBzZWN1cml0eS4gSWYgbm90IGluc3RhbGxlZCwgbG9ncyBhIHdhcm5pbmdcbiAgICAgKiBhbmQgY29udGludWVzIGV4ZWN1dGlvbiB3aXRob3V0IHRocm93aW5nIGVycm9ycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW29wdGlvbnNdIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBwYXNzZWQgdG8gSGVsbWV0LlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIHVzZUhlbG1ldChvcHRpb25zKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgICAgICAgICAgY29uc3QgaGVsbWV0ID0gcmVxdWlyZShcImhlbG1ldFwiKTsgLy8gRHluYW1pYyBpbXBvcnQgdG8gYXZvaWQgaGFyZCBkZXBlbmRlbmN5XG4gICAgICAgICAgICB0aGlzLmFwcC51c2UoaGVsbWV0KG9wdGlvbnMpKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhcIkhlbG1ldCBtaWRkbGV3YXJlIGVuYWJsZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcIkhlbG1ldCBub3QgaW5zdGFsbGVkLiBTa2lwcGluZyBtaWRkbGV3YXJlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQ29uZmlndXJlcyBhbmQgaW5pdGlhbGl6ZXMgU3dhZ2dlciBVSSBmb3IgQVBJIGRvY3VtZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIFVzZXMgdGhlIGBTd2FnZ2VyQnVpbGRlcmAgdXRpbGl0eSB0byBjb25maWd1cmUgQVBJIGRvY3VtZW50YXRpb25cbiAgICAgKiB3aXRoIGRldGFpbGVkIGN1c3RvbWl6YXRpb24gZm9yIHRpdGxlLCB2ZXJzaW9uLCBwYXRocywgYW5kIGNvbG9ycy5cbiAgICAgKiBTd2FnZ2VyIGlzIGF1dG9tYXRpY2FsbHkgZXhwb3NlZCBhdCB0aGUgY29uZmlndXJlZCBwYXRoLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTd2FnZ2VyU2V0dXBPcHRpb25zfSBvcHRpb25zIC0gU3dhZ2dlciBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICogQHJldHVybiB7TmVzdEJvb3RzdHJhcGVyfSBSZXR1cm5zIHRoZSBjbGFzcyBmb3IgY2hhaW5pbmcgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzdGF0aWMgc2V0dXBTd2FnZ2VyKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc3dhZ2dlciA9IG5ldyBTd2FnZ2VyQnVpbGRlcih0aGlzLmFwcCwge1xuICAgICAgICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aCB8fCBcImFwaVwiLFxuICAgICAgICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IG9wdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb24gPz8gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2V0c1BhdGg6IG9wdGlvbnMuYXNzZXRzUGF0aCxcbiAgICAgICAgICAgIGZhdmljb25GaWxlUGF0aDogb3B0aW9ucy5mYXZpY29uUGF0aCxcbiAgICAgICAgICAgIHRvcGJhckljb25GaWxlUGF0aDogb3B0aW9ucy50b3BiYXJJY29uUGF0aCxcbiAgICAgICAgICAgIHRvcGJhckJnQ29sb3I6IG9wdGlvbnMudG9wYmFyQmdDb2xvcixcbiAgICAgICAgICAgIG9wZW5BcGlKc29uUGF0aDogb3B0aW9ucy5vcGVuQXBpSnNvblBhdGgsXG4gICAgICAgICAgICBvcGVuQXBpWWFtbFBhdGg6IG9wdGlvbnMub3BlbkFwaVlhbWxQYXRoLFxuICAgICAgICB9KTtcbiAgICAgICAgc3dhZ2dlci5zZXR1cFN3YWdnZXIoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgdmFsaWRhdGlvbiBwaXBlcy5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogRW5hYmxlcyByZXF1ZXN0IHBheWxvYWQgdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb24gZ2xvYmFsbHkgYWNyb3NzXG4gICAgICogdGhlIGVudGlyZSBOZXN0SlMgYXBwbGljYXRpb24uIE11bHRpcGxlIHBpcGVzIGNhbiBiZSBjaGFpbmVkIHRvZ2V0aGVyXG4gICAgICogZm9yIG1vZHVsYXIgaW5wdXQgdmFsaWRhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Li4uUGlwZVRyYW5zZm9ybVtdfSBwaXBlcyAtIFBpcGUgaW5zdGFuY2VzIHRvIHJlZ2lzdGVyIGdsb2JhbGx5LlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nLlxuICAgICAqL1xuICAgIHN0YXRpYyB1c2VHbG9iYWxQaXBlcyguLi5waXBlcykge1xuICAgICAgICBpZiAocGlwZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHRoaXMuYXBwLnVzZUdsb2JhbFBpcGVzKC4uLnBpcGVzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgZXhjZXB0aW9uIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIElmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkLCBpdCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVycyBhIGRlZmF1bHRcbiAgICAgKiBzZXQgb2Ygc3RhbmRhcmQgZXhjZXB0aW9uIGZpbHRlcnMgZm9yIGNvbW1vbiBlcnJvciB0eXBlcyBsaWtlXG4gICAgICogYEh0dHBFeGNlcHRpb25gLCBgVmFsaWRhdGlvbkV4Y2VwdGlvbmAsIGBDb25mbGljdEV4Y2VwdGlvbmAsIGFuZCBvdGhlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gey4uLkV4Y2VwdGlvbkZpbHRlcltdfSBmaWx0ZXJzIC0gT3B0aW9uYWwgZmlsdGVycyB0byBhcHBseSBnbG9iYWxseS5cbiAgICAgKi9cbiAgICBzdGF0aWMgdXNlR2xvYmFsRmlsdGVycyguLi5maWx0ZXJzKSB7XG4gICAgICAgIHRoaXMuYXBwLnVzZUdsb2JhbEZpbHRlcnMoLi4uKGZpbHRlcnMubGVuZ3RoID4gMCA/IGZpbHRlcnMgOiBbbmV3IERlY2FmRXhjZXB0aW9uRmlsdGVyKCldKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBSZWdpc3RlcnMgZ2xvYmFsIGludGVyY2VwdG9ycyBmb3IgcmVxdWVzdCBhbmQgcmVzcG9uc2UgdHJhbnNmb3JtYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIEludGVyY2VwdG9ycyBhbGxvdyBhZHZhbmNlZCByZXF1ZXN0L3Jlc3BvbnNlIG1hbmlwdWxhdGlvbiBzdWNoIGFzXG4gICAgICogc2VyaWFsaXphdGlvbiwgbG9nZ2luZywgb3IgdHJhbnNmb3JtYXRpb24uIE11bHRpcGxlIGludGVyY2VwdG9yc1xuICAgICAqIGNhbiBiZSBhZGRlZCBmb3IgbW9kdWxhciBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsuLi5OZXN0SW50ZXJjZXB0b3JbXX0gaW50ZXJjZXB0b3JzIC0gSW50ZXJjZXB0b3IgaW5zdGFuY2VzIHRvIHJlZ2lzdGVyLlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIHVzZUdsb2JhbEludGVyY2VwdG9ycyguLi5pbnRlcmNlcHRvcnMpIHtcbiAgICAgICAgaWYgKGludGVyY2VwdG9ycy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgdGhpcy5hcHAudXNlR2xvYmFsSW50ZXJjZXB0b3JzKC4uLmludGVyY2VwdG9ycyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBTdGFydHMgdGhlIE5lc3RKUyBhcHBsaWNhdGlvbiBhbmQgYmluZHMgaXQgdG8gdGhlIGdpdmVuIHBvcnQgYW5kIGhvc3QuXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIExpc3RlbnMgb24gdGhlIHNwZWNpZmllZCBwb3J0IGFuZCBvcHRpb25hbGx5IGEgaG9zdC4gT25jZSBzdGFydGVkLFxuICAgICAqIGxvZ3MgdGhlIGFwcGxpY2F0aW9uIFVSTCBmb3IgZWFzeSBhY2Nlc3MuIFRoZSBzdGFydHVwIHByb2Nlc3MgcmVzb2x2ZXNcbiAgICAgKiBvbmNlIHRoZSBhcHBsaWNhdGlvbiBpcyBzdWNjZXNzZnVsbHkgcnVubmluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9ydD0zMDAwXSAtIFBvcnQgbnVtYmVyIHRvIGxpc3RlbiBvbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2hvc3RdIC0gT3B0aW9uYWwgaG9zdCBvciBJUCBhZGRyZXNzIHRvIGJpbmQgdG8uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbbG9nPXRydWVdIC0gV2hldGhlciB0byBsb2cgdGhlIGFwcGxpY2F0aW9uIFVSTCB1cG9uIHN0YXJ0dXAuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgb25jZSB0aGUgYXBwbGljYXRpb24gc3RhcnRzIHN1Y2Nlc3NmdWxseS5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgc3RhcnQocG9ydCA9IE51bWJlcihwcm9jZXNzLmVudi5QT1JUKSB8fCAzMDAwLCBob3N0ID0gdW5kZWZpbmVkLCBsb2cgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuYXBwLmxpc3Rlbihwb3J0LCBob3N0KS50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLmFwcC5nZXRVcmwoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYPCfmoAgQXBwbGljYXRpb24gaXMgcnVubmluZyBhdDogJHt1cmx9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVRtVnpkRUp2YjNSemRISmhjR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJaaFkzUnZjbmt2VG1WemRFSnZiM1J6ZEhKaGNHVnlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRlRDeE5RVUZOTEVkQlIxQXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNPRUpCUVhGQ08wRkJRM0JFTEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc01rSkJRV3RDTzBGQlJUTkRMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzTUVKQlFXbENPMEZCTkVOeVF6czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSMEVyUTBjN1FVRkRTQ3hOUVVGTkxFOUJRVThzWlVGQlpUdEpRVWt4UWpzN096czdPenM3TzA5QlUwYzdTVUZEU3l4TlFVRk5MRXRCUVVzc1RVRkJUVHRSUVVOMlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8xbEJRMnhDTEZkQlFWYzdXVUZEV0N4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUXpkRExFTkJRVU03VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNN1NVRkRkRUlzUTBGQlF6dEpRVVZFT3pzN096czdPenM3TzA5QlZVYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRWEZDTzFGQlEzSkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlEyWXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3TzA5QlYwYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExGbEJRWEZDTzFGQlEzWkRMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzV1VGQldTeEpRVUZKTEVsQlFVa3NUVUZCVFN4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRek5FTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnFReXhQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN096dFBRV0ZITzBsQlEwZ3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkRaaXhWUVVFd1FpeEZRVUZGTEVWQlF6VkNMR1ZCUVhsQ0xFTkJRVU1zUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRE8xRkJSWHBFTEUxQlFVMHNZMEZCWXl4SFFVTnNRaXhQUVVGUExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWEpGTEUxQlFVMHNWMEZCVnl4SFFVRm5RanRaUVVNdlFpeE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVU3WjBKQlF6TkNMR3REUVVGclF6dG5Ra0ZEYkVNc1NVRkJTU3hEUVVGRExFMUJRVTA3YjBKQlFVVXNUMEZCVHl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVVjZReXhKUVVORkxHTkJRV01zUzBGQlN5eEhRVUZITzI5Q1FVTjBRaXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRPM2RDUVVNMVFpeGpRVUZqTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlEyaEVMRU5CUVVNN2IwSkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU01UWl4RFFVRkRPMmRDUVVWRUxGRkJRVkVzUTBGQlF5eEpRVUZKTEZOQlFWTXNRMEZCUXl4VlFVRlZMRTFCUVUwc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14UkN4RFFVRkRPMWxCUTBRc1YwRkJWeXhGUVVGRkxFbEJRVWs3V1VGRGFrSXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzFOQlEyaERMRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXp0SlFVTmtMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3VDBGWFJ6dEpRVU5JTEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJOa0k3VVVGRE5VTXNTVUZCU1N4RFFVRkRPMWxCUTBnc2FVVkJRV2xGTzFsQlEycEZMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMREJEUVVFd1F6dFpRVU0xUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNNVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXg1UTBGQmVVTXNRMEZCUXl4RFFVRkRPMWxCUXpORUxEWkVRVUUyUkR0UlFVTXZSQ3hEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZOTEVWQlFVVXNRMEZCUXp0WlFVTm9RaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl3MFEwRkJORU1zUTBGQlF5eERRVUZETzFGQlEycEZMRU5CUVVNN1VVRkZSQ3hQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN1QwRlhSenRKUVVOSUxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCTkVJN1VVRkRPVU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU16UXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXM3V1VGRGNFSXNWMEZCVnl4RlFVRkZMRTlCUVU4c1EwRkJReXhYUVVGWE8xbEJRMmhETEU5QlFVOHNSVUZCUlN4UFFVRlBMRU5CUVVNc1QwRkJUenRaUVVONFFpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1NVRkJTU3hMUVVGTE8xbEJRek5DTEc5Q1FVRnZRaXhGUVVGRkxFOUJRVThzUTBGQlF5eHZRa0ZCYjBJc1NVRkJTU3hKUVVGSk8xbEJRekZFTEZWQlFWVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1ZVRkJWVHRaUVVNNVFpeGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMRmRCUVZjN1dVRkRjRU1zYTBKQlFXdENMRVZCUVVVc1QwRkJUeXhEUVVGRExHTkJRV003V1VGRE1VTXNZVUZCWVN4RlFVRkZMRTlCUVU4c1EwRkJReXhoUVVGaE8xbEJRM0JETEdWQlFXVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1pVRkJaVHRaUVVONFF5eGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMR1ZCUVdVN1UwRkRla01zUTBGQlF5eERRVUZETzFGQlEwZ3NUMEZCVHl4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xRkJRM1pDTEU5QlFVOHNTVUZCU1N4RFFVRkRPMGxCUTJRc1EwRkJRenRKUVVWRU96czdPenM3T3pzN096dFBRVmRITzBsQlEwZ3NUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFdEJRWE5DTzFGQlF6ZERMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETzFsQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3p0UFFWVkhPMGxCUTBnc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1QwRkJZenRSUVVOMlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVU4yUWl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEc5Q1FVRnZRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVU5xUlN4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU03U1VGRFpDeERRVUZETzBsQlJVUTdPenM3T3pzN096czdPMDlCVjBjN1NVRkRTQ3hOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1IwRkJSeXhaUVVFclFqdFJRVU0zUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF6dFpRVU42UWl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRGJFUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3T3pzN1QwRmhSenRKUVVOSUxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVTm9RaXhQUVVGbExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFbEJRVWtzUlVGREwwTXNUMEZCTWtJc1UwRkJVeXhGUVVOd1F5eE5RVUZsTEVsQlFVazdVVUZGYmtJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVZjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVsQlFVa3NSVUZCUlR0WlFVTnFSQ3hKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTlNMRTFCUVUwc1IwRkJSeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGNFTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zYVVOQlFXbERMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRE1VUXNRMEZCUXp0UlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdTVTVsYzNSQmNIQnNhV05oZEdsdmJpeGNiaUFnVEc5bloyVnlMRnh1SUNCT1pYTjBTVzUwWlhKalpYQjBiM0lzWEc0Z0lGQnBjR1ZVY21GdWMyWnZjbTBzWEc1OUlHWnliMjBnWENKQWJtVnpkR3B6TDJOdmJXMXZibHdpTzF4dWFXMXdiM0owSUhzZ1JHVmpZV1pGZUdObGNIUnBiMjVHYVd4MFpYSWdmU0JtY205dElGd2lMaTlsZUdObGNIUnBiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QlRkMkZuWjJWeVFuVnBiR1JsY2lCOUlHWnliMjBnWENJdUwyOXdaVzVoY0dsY0lqdGNibWx0Y0c5eWRDQjdJRU52Y25OUGNIUnBiMjV6SUgwZ1puSnZiU0JjSWtCdVpYTjBhbk12WTI5dGJXOXVMMmx1ZEdWeVptRmpaWE12WlhoMFpYSnVZV3d2WTI5eWN5MXZjSFJwYjI1ekxtbHVkR1Z5Wm1GalpWd2lPMXh1YVcxd2IzSjBJSHNnUTI5eWMwVnljbTl5SUgwZ1puSnZiU0JjSWk0dlpYSnliM0p6WENJN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1WEc0Z0tpQkVaV1pwYm1WeklHRnNiQ0JqZFhOMGIyMXBlbUZpYkdVZ2NHRnlZVzFsZEdWeWN5Qm1iM0lnVTNkaFoyZGxjaUJ6WlhSMWNDNWNiaUFxWEc0Z0tpQkFjM1Z0YldGeWVWeHVJQ29nVkdocGN5QnBiblJsY21aaFkyVWdZV3hzYjNkeklHUmxkbVZzYjNCbGNuTWdkRzhnWTNWemRHOXRhWHBsSUdodmR5QlRkMkZuWjJWeUlGVkpJR2x6SUdOdmJtWnBaM1Z5WldSY2JpQXFJSGRwZEdocGJpQjBhR1VnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1TGlCSmRDQnBibU5zZFdSbGN5QndZWEpoYldWMFpYSnpJR1p2Y2lCMGFYUnNaWE1zSUhCaGRHaHpMRnh1SUNvZ1kyOXNiM0lnYzJOb1pXMWxjeXdnWVc1a0lHRnpjMlYwSUhCaGRHaHpJSFJ2SUhSaGFXeHZjaUIwYUdVZ1FWQkpJR1J2WTNWdFpXNTBZWFJwYjI0Z1pYaHdaWEpwWlc1alpTNWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHbDBiR1VnTFNCVWFYUnNaU0JrYVhOd2JHRjVaV1FnYVc0Z1UzZGhaMmRsY2lCVlNTNWNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JrWlhOamNtbHdkR2x2YmlBdElFUmxjMk55YVhCMGFXOXVJSE5vYjNkdUlHSmxiRzkzSUhSb1pTQjBhWFJzWlM1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjJaWEp6YVc5dUlDMGdRVkJKSUhabGNuTnBiMjRnWkdsemNHeGhlV1ZrSUdsdUlIUm9aU0JrYjJOMWJXVnVkR0YwYVc5dUxseHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR3WVhSb1hTQXRJRTl3ZEdsdmJtRnNJSEJoZEdnZ2QyaGxjbVVnVTNkaFoyZGxjaUIzYVd4c0lHSmxJR0YyWVdsc1lXSnNaUzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1czQmxjbk5wYzNSQmRYUm9iM0pwZW1GMGFXOXVYU0F0SUZkb1pYUm9aWElnWVhWMGFHOXlhWHBoZEdsdmJpQjBiMnRsYm5NZ2NHVnljMmx6ZENCaFkzSnZjM01nY21Wc2IyRmtjeTVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYllYTnpaWFJ6VUdGMGFGMGdMU0JRWVhSb0lIUnZJR04xYzNSdmJTQmhjM05sZEhNZ1ptOXlJRk4zWVdkblpYSWdWVWt1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czUnZjR0poY2tKblEyOXNiM0pkSUMwZ1EzVnpkRzl0SUdKaFkydG5jbTkxYm1RZ1kyOXNiM0lnWm05eUlIUm9aU0JUZDJGbloyVnlJSFJ2Y0NCaVlYSXVYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzNSdmNHSmhja2xqYjI1UVlYUm9YU0F0SUZCaGRHZ2dkRzhnWVNCamRYTjBiMjBnYVdOdmJpQmthWE53YkdGNVpXUWdhVzRnZEdobElIUnZjQ0JpWVhJdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMlpoZG1samIyNVFZWFJvWFNBdElGQmhkR2dnZEc4Z1lTQmpkWE4wYjIwZ1ptRjJhV052Ymk1Y2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JUZDJGbloyVnlVMlYwZFhCUGNIUnBiMjV6SUh0Y2JpQWdkR2wwYkdVNklITjBjbWx1Wnp0Y2JpQWdaR1Z6WTNKcGNIUnBiMjQ2SUhOMGNtbHVaenRjYmlBZ2RtVnljMmx2YmpvZ2MzUnlhVzVuTzF4dUlDQndZWFJvUHpvZ2MzUnlhVzVuTzF4dUlDQndaWEp6YVhOMFFYVjBhRzl5YVhwaGRHbHZiajg2SUdKdmIyeGxZVzQ3WEc0Z0lHRnpjMlYwYzFCaGRHZy9PaUJ6ZEhKcGJtYzdYRzRnSUhSdmNHSmhja0puUTI5c2IzSS9PaUJ6ZEhKcGJtYzdYRzRnSUhSdmNHSmhja2xqYjI1UVlYUm9Qem9nYzNSeWFXNW5PMXh1SUNCbVlYWnBZMjl1VUdGMGFEODZJSE4wY21sdVp6dGNiaUFnTHlvcVhHNGdJQ0FxSUZCaGRHZ2dkRzhnWlhod2IzTmxJSFJvWlNCUGNHVnVRVkJKSUhOd1pXTnBabWxqWVhScGIyNGdhVzRnU2xOUFRpQm1iM0p0WVhRdVhHNGdJQ0FxSUVWNFlXMXdiR1U2SUM5aGNHa3ZiM0JsYm1Gd2FTNXFjMjl1WEc0Z0lDQXFMMXh1SUNCdmNHVnVRWEJwU25OdmJsQmhkR2cvT2lCemRISnBibWM3WEc0Z0lDOHFLbHh1SUNBZ0tpQlFZWFJvSUhSdklHVjRjRzl6WlNCMGFHVWdUM0JsYmtGUVNTQnpjR1ZqYVdacFkyRjBhVzl1SUdsdUlGbEJUVXdnWm05eWJXRjBMbHh1SUNBZ0tpQlNaWEYxYVhKbGN5QW5lV0Z0YkNjZ2NHRmphMkZuWlNCaGN5QndaV1Z5SUdSbGNHVnVaR1Z1WTNrdVhHNGdJQ0FxSUVWNFlXMXdiR1U2SUM5aGNHa3ZiM0JsYm1Gd2FTNTVZVzFzWEc0Z0lDQXFMMXh1SUNCdmNHVnVRWEJwV1dGdGJGQmhkR2cvT2lCemRISnBibWM3WEc1OVhHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1WEc0Z0tpQkJJR1pzZFdWdWRDd2djM1JoZEdsaklHSnZiM1J6ZEhKaGNDQmpiR0Z6Y3lCbWIzSWdhVzVwZEdsaGJHbDZhVzVuSUdGdVpDQmpiMjVtYVdkMWNtbHVaeUJoSUU1bGMzUktVeUJoY0hCc2FXTmhkR2x2Ymk1Y2JpQXFYRzRnS2lCQWMzVnRiV0Z5ZVZ4dUlDb2dWR2hsSUdCT1pYTjBRbTl2ZEhOMGNtRndaWEpnSUdOc1lYTnpJSEJ5YjNacFpHVnpJR0VnWTJoaGFXNWhZbXhsSUVGUVNTQm1iM0lnWTI5dVptbG5kWEpwYm1kY2JpQXFJR0VnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1SUdsdWMzUmhibU5sTGlCSmRDQnBibU5zZFdSbGN5QmlkV2xzZEMxcGJpQnRaWFJvYjJSeklHWnZjaUJsYm1GaWJHbHVaMXh1SUNvZ1EwOVNVeXdnU0dWc2JXVjBJSE5sWTNWeWFYUjVMQ0JUZDJGbloyVnlJR1J2WTNWdFpXNTBZWFJwYjI0c0lHZHNiMkpoYkNCd2FYQmxjeXdnWm1sc2RHVnljeXhjYmlBcUlHbHVkR1Z5WTJWd2RHOXljeXdnWVc1a0lITjBZWEowYVc1bklIUm9aU0J6WlhKMlpYSXVYRzRnS2x4dUlDb2dWR2hwY3lCamJHRnpjeUJ3Y205dGIzUmxjeUJqYjI1emFYTjBaVzVqZVNCaGJtUWdjbVZrZFdObGN5QnlaWEJsZEdsMGFYWmxJSE5sZEhWd0lHTnZaR1ZjYmlBcUlHRmpjbTl6Y3lCdGRXeDBhWEJzWlNCT1pYTjBTbE1nY0hKdmFtVmpkSE11WEc0Z0tseHVJQ29nUUdWNFlXMXdiR1ZjYmlBcUlHQmdZSFJ6WEc0Z0tpQnBiWEJ2Y25RZ2V5Qk9aWE4wUm1GamRHOXllU0I5SUdaeWIyMGdYQ0pBYm1WemRHcHpMMk52Y21WY0lqdGNiaUFxSUdsdGNHOXlkQ0I3SUVGd2NFMXZaSFZzWlNCOUlHWnliMjBnWENJdUwyRndjQzV0YjJSMWJHVmNJanRjYmlBcUlHbHRjRzl5ZENCN0lFMTVURzluWjJWeUlIMGdabkp2YlNCY0lpNHZUWGxNYjJkblpYSmNJanRjYmlBcUlHbHRjRzl5ZENCN0lFNWxjM1JDYjI5MGMzUnlZWEJsY2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMVzVsYzNSY0lqdGNiaUFxWEc0Z0tpQmhjM2x1WXlCbWRXNWpkR2x2YmlCaWIyOTBjM1J5WVhBb0tTQjdYRzRnS2lBZ0lHTnZibk4wSUdGd2NDQTlJR0YzWVdsMElFNWxjM1JHWVdOMGIzSjVMbU55WldGMFpTaEJjSEJOYjJSMWJHVXBPMXh1SUNwY2JpQXFJQ0FnWVhkaGFYUWdUbVZ6ZEVKdmIzUnpkSEpoY0dWeVhHNGdLaUFnSUNBZ0xtbHVhWFJwWVd4cGVtVW9ZWEJ3S1Z4dUlDb2dJQ0FnSUM1bGJtRmliR1ZNYjJkblpYSW9ibVYzSUUxNVRHOW5aMlZ5S0NrcFhHNGdLaUFnSUNBZ0xtVnVZV0pzWlVOdmNuTW9XMXdpYUhSMGNEb3ZMMnh2WTJGc2FHOXpkRG8wTWpBd1hDSmRLVnh1SUNvZ0lDQWdJQzUxYzJWSVpXeHRaWFFvS1Z4dUlDb2dJQ0FnSUM1elpYUjFjRk4zWVdkblpYSW9lMXh1SUNvZ0lDQWdJQ0FnZEdsMGJHVTZJRndpVDNCbGJrRlFTU0JpZVNCVWNtRmtaVTFoY212aWhLSmNJaXhjYmlBcUlDQWdJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQmNJbFJ5WVdSbFRXRnlhK0tFb2lCQlVFa2daRzlqZFcxbGJuUmhkR2x2Ymx3aUxGeHVJQ29nSUNBZ0lDQWdkbVZ5YzJsdmJqb2dYQ0l4TGpBdU1Gd2lMRnh1SUNvZ0lDQWdJQ0FnY0dGMGFEb2dYQ0poY0dsY0lpeGNiaUFxSUNBZ0lDQWdJSEJsY25OcGMzUkJkWFJvYjNKcGVtRjBhVzl1T2lCMGNuVmxMRnh1SUNvZ0lDQWdJQ0FnZEc5d1ltRnlRbWREYjJ4dmNqb2dYQ0lqTWtNelJUVXdYQ0lzWEc0Z0tpQWdJQ0FnSUNCMGIzQmlZWEpKWTI5dVVHRjBhRG9nWENJdllYTnpaWFJ6TDJ4dloyOHVjM1puWENJc1hHNGdLaUFnSUNBZ0lDQm1ZWFpwWTI5dVVHRjBhRG9nWENJdllYTnpaWFJ6TDJaaGRtbGpiMjR1YVdOdlhDSmNiaUFxSUNBZ0lDQjlLVnh1SUNvZ0lDQWdJQzUxYzJWSGJHOWlZV3hHYVd4MFpYSnpLQ2xjYmlBcUlDQWdJQ0F1ZFhObFIyeHZZbUZzVUdsd1pYTW9MaTR1S1Z4dUlDb2dJQ0FnSUM1MWMyVkhiRzlpWVd4SmJuUmxjbU5sY0hSdmNuTW9MaTR1S1Z4dUlDb2dJQ0FnSUM1emRHRnlkQ2d6TURBd0tUdGNiaUFxSUgxY2JpQXFYRzRnS2lCaWIyOTBjM1J5WVhBb0tUdGNiaUFxSUdCZ1lGeHVJQ29nUUdOc1lYTnpYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJPWlhOMFFtOXZkSE4wY21Gd1pYSWdlMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJoY0hBNklFbE9aWE4wUVhCd2JHbGpZWFJwYjI0N1hHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklGOXNiMmRuWlhJNklFeHZaMmRsY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdJQ0FxSUZKbGRIVnlibk1nZEdobElHTjFjbkpsYm5RZ2JHOW5aMlZ5SUdsdWMzUmhibU5sTENCamNtVmhkR2x1WnlCaElHUmxabUYxYkhRZ2IyNWxJR2xtSUc1dmRDQnpaWFF1WEc0Z0lDQXFYRzRnSUNBcUlFQnpkVzF0WVhKNVhHNGdJQ0FxSUVWdWMzVnlaWE1nZEdoaGRDQmhJSFpoYkdsa0lHQk1iMmRuWlhKZ0lHbHVjM1JoYm1ObElHbHpJR0ZzZDJGNWN5QmhkbUZwYkdGaWJHVmNiaUFnSUNvZ1ptOXlJR3h2WjJkcGJtY2dZbTl2ZEhOMGNtRndMWEpsYkdGMFpXUWdiV1Z6YzJGblpYTXVYRzRnSUNBcVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTB4dloyZGxjbjBnVkdobElHRmpkR2wyWlNCc2IyZG5aWElnYVc1emRHRnVZMlV1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJuWlhRZ2JHOW5aMlZ5S0NrNklFeHZaMmRsY2lCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TGw5c2IyZG5aWElwSUh0Y2JpQWdJQ0FnSUM4dklHWmhiR3hpWVdOclhHNGdJQ0FnSUNCMGFHbHpMbDlzYjJkblpYSWdQU0J1WlhjZ1RHOW5aMlZ5S0Z3aVRtVnpkRUp2YjNSemRISmhjRndpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDJ4dloyZGxjanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNWNiaUFnSUNvZ1NXNXBkR2xoYkdsNlpYTWdkR2hsSUdKdmIzUnpkSEpoY0hCbGNpQjNhWFJvSUdFZ1oybDJaVzRnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjM1Z0YldGeWVWeHVJQ0FnS2lCQ2FXNWtjeUIwYUdVZ2NISnZkbWxrWldRZ1RtVnpkRXBUSUdGd2NDQnBibk4wWVc1alpTQjBieUIwYUdVZ1ltOXZkSE4wY21Gd2NHVnlMQ0JsYm1GaWJHbHVaMXh1SUNBZ0tpQmphR0ZwYm1Wa0lHTnZibVpwWjNWeVlYUnBiMjRnYldWMGFHOWtjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0SlRtVnpkRUZ3Y0d4cFkyRjBhVzl1ZlNCaGNIQWdMU0JVYUdVZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUlHbHVjM1JoYm1ObElIUnZJR2x1YVhScFlXeHBlbVV1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDVsYzNSQ2IyOTBjM1J5WVhCbGNuMGdVbVYwZFhKdWN5QjBhR1VnWTJ4aGMzTWdabTl5SUdOb1lXbHVhVzVuSUdOdmJtWnBaM1Z5WVhScGIyNGdiV1YwYUc5a2N5NWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QnBibWwwYVdGc2FYcGxLR0Z3Y0RvZ1NVNWxjM1JCY0hCc2FXTmhkR2x2YmlrZ2UxeHVJQ0FnSUhSb2FYTXVZWEJ3SUQwZ1lYQndPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJseHVJQ0FnS2lCRmJtRmliR1Z6SUc5eUlISmxjR3hoWTJWeklIUm9aU0JuYkc5aVlXd2diRzluWjJWeUlHWnZjaUIwYUdVZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBYzNWdGJXRnllVnh1SUNBZ0tpQkpaaUJoSUdOMWMzUnZiU0JzYjJkblpYSWdhWE1nY0hKdmRtbGtaV1FzSUdsMElISmxjR3hoWTJWeklIUm9aU0JrWldaaGRXeDBJR3h2WjJkbGNpNGdUM1JvWlhKM2FYTmxMRnh1SUNBZ0tpQmhJRzVsZHlCc2IyZG5aWElnYm1GdFpXUWdZRndpVG1WemRFSnZiM1J6ZEhKaGNGd2lZQ0JwY3lCMWMyVmtMaUJVYUdseklHeHZaMmRsY2lCcGN5QmhiSE52SUhKbFoybHpkR1Z5WldSY2JpQWdJQ29nZDJsMGFDQjBhR1VnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UweHZaMmRsY24wZ1cyTjFjM1J2YlV4dloyZGxjbDBnTFNCUGNIUnBiMjVoYkNCamRYTjBiMjBnYkc5bloyVnlJR2x1YzNSaGJtTmxMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdE9aWE4wUW05dmRITjBjbUZ3WlhKOUlGSmxkSFZ5Ym5NZ2RHaGxJR05zWVhOeklHWnZjaUJqYUdGcGJtbHVaeTVjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJsYm1GaWJHVk1iMmRuWlhJb1kzVnpkRzl0VEc5bloyVnlQem9nVEc5bloyVnlLU0I3WEc0Z0lDQWdkR2hwY3k1ZmJHOW5aMlZ5SUQwZ1kzVnpkRzl0VEc5bloyVnlJSHg4SUc1bGR5Qk1iMmRuWlhJb1hDSk9aWE4wUW05dmRITjBjbUZ3WENJcE8xeHVJQ0FnSUhSb2FYTXVZWEJ3TG5WelpVeHZaMmRsY2loMGFHbHpMbDlzYjJkblpYSXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJseHVJQ0FnS2lCRmJtRmliR1Z6SUVOeWIzTnpMVTl5YVdkcGJpQlNaWE52ZFhKalpTQlRhR0Z5YVc1bklDaERUMUpUS1NCbWIzSWdkR2hsSUdGd2NHeHBZMkYwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBYzNWdGJXRnllVnh1SUNBZ0tpQkJiR3h2ZDNNZ1pHVm1hVzVwYm1jZ1pXbDBhR1Z5SUdFZ2QybHNaR05oY21RZ2IzSnBaMmx1SUNoZ1hDSXFYQ0pnS1NCdmNpQmhJR3hwYzNRZ2IyWWdZV3hzYjNkbFpDQnZjbWxuYVc1ekxseHVJQ0FnS2lCQmRYUnZiV0YwYVdOaGJHeDVJR0ZqWTJWd2RITWdiRzlqWVd3Z1pHVjJaV3h2Y0cxbGJuUWdjbVZ4ZFdWemRITWdZVzVrSUhSb2IzTmxJSGRwZEdodmRYUWdiM0pwWjJsdUlHaGxZV1JsY25NdVhHNGdJQ0FxSUZSb2NtOTNjeUJoSUdCRGIzSnpSWEp5YjNKZ0lHWnZjaUIxYm1GMWRHaHZjbWw2WldRZ2IzSnBaMmx1Y3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIc25LaWNnZkNCemRISnBibWRiWFgwZ1cyOXlhV2RwYm5NOVcxMWRJQzBnVEdsemRDQnZaaUJoYkd4dmQyVmtJRzl5YVdkcGJuTWdiM0lnWUZ3aUtsd2lZQ0IwYnlCaGJHeHZkeUJoYkd3dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5XMTE5SUZ0aGJHeHZkMDFsZEdodlpITTlXeWRIUlZRbkxDQW5VRTlUVkNjc0lDZFFWVlFuTENBblJFVk1SVlJGSjExZElDMGdRV3hzYjNkbFpDQklWRlJRSUcxbGRHaHZaSE11WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDVsYzNSQ2IyOTBjM1J5WVhCbGNuMGdVbVYwZFhKdWN5QjBhR1VnWTJ4aGMzTWdabTl5SUdOb1lXbHVhVzVuSUdOdmJtWnBaM1Z5WVhScGIyNHVYRzRnSUNBcVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1pXNWhZbXhsUTI5eWN5aGNiaUFnSUNCdmNtbG5hVzV6T2lCY0lpcGNJaUI4SUhOMGNtbHVaMXRkSUQwZ1cxMHNYRzRnSUNBZ1lXeHNiM2ROWlhSb2IyUnpPaUJ6ZEhKcGJtZGJYU0E5SUZ0Y0lrZEZWRndpTENCY0lsQlBVMVJjSWl3Z1hDSlFWVlJjSWl3Z1hDSkVSVXhGVkVWY0lsMWNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdZV3hzYjNkbFpFOXlhV2RwYm5NZ1BWeHVJQ0FnSUNBZ2IzSnBaMmx1Y3lBOVBUMGdYQ0lxWENJZ1B5QmNJaXBjSWlBNklHOXlhV2RwYm5NdWJXRndLQ2h2S1NBOVBpQnZMblJ5YVcwb0tTNTBiMHh2ZDJWeVEyRnpaU2dwS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR052Y25OUGNIUnBiMjV6T2lCRGIzSnpUM0IwYVc5dWN5QTlJSHRjYmlBZ0lDQWdJRzl5YVdkcGJqb2dLRzl5YVdkcGJpd2dZMkZzYkdKaFkyc3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdRV3hzYjNjZ2NtVnhkV1Z6ZENCM2FYUm9iM1YwSUc5eWFXZHBiaTR1TGx4dUlDQWdJQ0FnSUNCcFppQW9JVzl5YVdkcGJpa2djbVYwZFhKdUlHTmhiR3hpWVdOcktHNTFiR3dzSUhSeWRXVXBPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJQ0JoYkd4dmQyVmtUM0pwWjJsdWN5QTlQVDBnWENJcVhDSWdmSHhjYmlBZ0lDQWdJQ0FnSUNBb1FYSnlZWGt1YVhOQmNuSmhlU2hoYkd4dmQyVmtUM0pwWjJsdWN5a2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnNiRzkzWldSUGNtbG5hVzV6TG1sdVkyeDFaR1Z6S0c5eWFXZHBiaTUwYjB4dmQyVnlRMkZ6WlNncEtTbGNiaUFnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOaGJHeGlZV05yS0c1MWJHd3NJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnWTJGc2JHSmhZMnNvYm1WM0lFTnZjbk5GY25KdmNpaGdUM0pwWjJsdUlDUjdiM0pwWjJsdWZTQnViM1FnWVd4c2IzZGxaR0FwS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamNtVmtaVzUwYVdGc2N6b2dkSEoxWlN4Y2JpQWdJQ0FnSUcxbGRHaHZaSE02SUdGc2JHOTNUV1YwYUc5a2N5NXFiMmx1S0Z3aUxGd2lLU3hjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdkR2hwY3k1aGNIQXVaVzVoWW14bFEyOXljeWhqYjNKelQzQjBhVzl1Y3lrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1WEc0Z0lDQXFJRUZ3Y0d4cFpYTWdkR2hsSUVobGJHMWxkQ0J0YVdSa2JHVjNZWEpsSUdadmNpQmxibWhoYm1ObFpDQnpaV04xY21sMGVTNWNiaUFnSUNwY2JpQWdJQ29nUUhOMWJXMWhjbmxjYmlBZ0lDb2dSSGx1WVcxcFkyRnNiSGtnYkc5aFpITWdkR2hsSUdCb1pXeHRaWFJnSUhCaFkydGhaMlVnYVdZZ1lYWmhhV3hoWW14bElHRnVaQ0J5WldkcGMzUmxjbk1nYVhSY2JpQWdJQ29nWVhNZ2JXbGtaR3hsZDJGeVpTQjBieUJwYlhCeWIzWmxJRWhVVkZBZ2FHVmhaR1Z5SUhObFkzVnlhWFI1TGlCSlppQnViM1FnYVc1emRHRnNiR1ZrTENCc2IyZHpJR0VnZDJGeWJtbHVaMXh1SUNBZ0tpQmhibVFnWTI5dWRHbHVkV1Z6SUdWNFpXTjFkR2x2YmlCM2FYUm9iM1YwSUhSb2NtOTNhVzVuSUdWeWNtOXljeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK2ZTQmJiM0IwYVc5dWMxMGdMU0JQY0hScGIyNWhiQ0JqYjI1bWFXZDFjbUYwYVc5dUlIQmhjM05sWkNCMGJ5QklaV3h0WlhRdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA1bGMzUkNiMjkwYzNSeVlYQmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyeGhjM01nWm05eUlHTm9ZV2x1YVc1bklHTnZibVpwWjNWeVlYUnBiMjR1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nZFhObFNHVnNiV1YwS0c5d2RHbHZibk0vT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0tTQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym04dGNtVnhkV2x5WlMxcGJYQnZjblJ6WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h0WlhRZ1BTQnlaWEYxYVhKbEtGd2lhR1ZzYldWMFhDSXBPeUF2THlCRWVXNWhiV2xqSUdsdGNHOXlkQ0IwYnlCaGRtOXBaQ0JvWVhKa0lHUmxjR1Z1WkdWdVkzbGNiaUFnSUNBZ0lIUm9hWE11WVhCd0xuVnpaU2hvWld4dFpYUW9iM0IwYVc5dWN5a3BPMXh1SUNBZ0lDQWdkR2hwY3k1c2IyZG5aWEl1Ykc5bktGd2lTR1ZzYldWMElHMXBaR1JzWlhkaGNtVWdaVzVoWW14bFpDQnpkV05qWlhOelpuVnNiSGt1WENJcE8xeHVJQ0FnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUdGdWVTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1c2IyZG5aWEl1ZDJGeWJpaGNJa2hsYkcxbGRDQnViM1FnYVc1emRHRnNiR1ZrTGlCVGEybHdjR2x1WnlCdGFXUmtiR1YzWVhKbExsd2lLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNWNiaUFnSUNvZ1EyOXVabWxuZFhKbGN5QmhibVFnYVc1cGRHbGhiR2w2WlhNZ1UzZGhaMmRsY2lCVlNTQm1iM0lnUVZCSklHUnZZM1Z0Wlc1MFlYUnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUlFQnpkVzF0WVhKNVhHNGdJQ0FxSUZWelpYTWdkR2hsSUdCVGQyRm5aMlZ5UW5WcGJHUmxjbUFnZFhScGJHbDBlU0IwYnlCamIyNW1hV2QxY21VZ1FWQkpJR1J2WTNWdFpXNTBZWFJwYjI1Y2JpQWdJQ29nZDJsMGFDQmtaWFJoYVd4bFpDQmpkWE4wYjIxcGVtRjBhVzl1SUdadmNpQjBhWFJzWlN3Z2RtVnljMmx2Yml3Z2NHRjBhSE1zSUdGdVpDQmpiMnh2Y25NdVhHNGdJQ0FxSUZOM1lXZG5aWElnYVhNZ1lYVjBiMjFoZEdsallXeHNlU0JsZUhCdmMyVmtJR0YwSUhSb1pTQmpiMjVtYVdkMWNtVmtJSEJoZEdndVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdVM2RoWjJkbGNsTmxkSFZ3VDNCMGFXOXVjMzBnYjNCMGFXOXVjeUF0SUZOM1lXZG5aWElnWTI5dVptbG5kWEpoZEdsdmJpQnZjSFJwYjI1ekxseHVJQ0FnS2lCQWNtVjBkWEp1SUh0T1pYTjBRbTl2ZEhOMGNtRndaWEo5SUZKbGRIVnlibk1nZEdobElHTnNZWE56SUdadmNpQmphR0ZwYm1sdVp5QmpiMjVtYVdkMWNtRjBhVzl1TGx4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUhObGRIVndVM2RoWjJkbGNpaHZjSFJwYjI1ek9pQlRkMkZuWjJWeVUyVjBkWEJQY0hScGIyNXpLU0I3WEc0Z0lDQWdZMjl1YzNRZ2MzZGhaMmRsY2lBOUlHNWxkeUJUZDJGbloyVnlRblZwYkdSbGNpaDBhR2x6TG1Gd2NDd2dlMXh1SUNBZ0lDQWdkR2wwYkdVNklHOXdkR2x2Ym5NdWRHbDBiR1VzWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ2IzQjBhVzl1Y3k1a1pYTmpjbWx3ZEdsdmJpeGNiaUFnSUNBZ0lIWmxjbk5wYjI0NklHOXdkR2x2Ym5NdWRtVnljMmx2Yml4Y2JpQWdJQ0FnSUhCaGRHZzZJRzl3ZEdsdmJuTXVjR0YwYUNCOGZDQmNJbUZ3YVZ3aUxGeHVJQ0FnSUNBZ2NHVnljMmx6ZEVGMWRHaHZjbWw2WVhScGIyNDZJRzl3ZEdsdmJuTXVjR1Z5YzJsemRFRjFkR2h2Y21sNllYUnBiMjRnUHo4Z2RISjFaU3hjYmlBZ0lDQWdJR0Z6YzJWMGMxQmhkR2c2SUc5d2RHbHZibk11WVhOelpYUnpVR0YwYUN4Y2JpQWdJQ0FnSUdaaGRtbGpiMjVHYVd4bFVHRjBhRG9nYjNCMGFXOXVjeTVtWVhacFkyOXVVR0YwYUN4Y2JpQWdJQ0FnSUhSdmNHSmhja2xqYjI1R2FXeGxVR0YwYURvZ2IzQjBhVzl1Y3k1MGIzQmlZWEpKWTI5dVVHRjBhQ3hjYmlBZ0lDQWdJSFJ2Y0dKaGNrSm5RMjlzYjNJNklHOXdkR2x2Ym5NdWRHOXdZbUZ5UW1kRGIyeHZjaXhjYmlBZ0lDQWdJRzl3Wlc1QmNHbEtjMjl1VUdGMGFEb2diM0IwYVc5dWN5NXZjR1Z1UVhCcFNuTnZibEJoZEdnc1hHNGdJQ0FnSUNCdmNHVnVRWEJwV1dGdGJGQmhkR2c2SUc5d2RHbHZibk11YjNCbGJrRndhVmxoYld4UVlYUm9MRnh1SUNBZ0lIMHBPMXh1SUNBZ0lITjNZV2RuWlhJdWMyVjBkWEJUZDJGbloyVnlLQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVYRzRnSUNBcUlGSmxaMmx6ZEdWeWN5QnZibVVnYjNJZ2JXOXlaU0JuYkc5aVlXd2dkbUZzYVdSaGRHbHZiaUJ3YVhCbGN5NWNiaUFnSUNwY2JpQWdJQ29nUUhOMWJXMWhjbmxjYmlBZ0lDb2dSVzVoWW14bGN5QnlaWEYxWlhOMElIQmhlV3h2WVdRZ2RtRnNhV1JoZEdsdmJpQmhibVFnZEhKaGJuTm1iM0p0WVhScGIyNGdaMnh2WW1Gc2JIa2dZV055YjNOelhHNGdJQ0FxSUhSb1pTQmxiblJwY21VZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUxpQk5kV3gwYVhCc1pTQndhWEJsY3lCallXNGdZbVVnWTJoaGFXNWxaQ0IwYjJkbGRHaGxjbHh1SUNBZ0tpQm1iM0lnYlc5a2RXeGhjaUJwYm5CMWRDQjJZV3hwWkdGMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZXk0dUxsQnBjR1ZVY21GdWMyWnZjbTFiWFgwZ2NHbHdaWE1nTFNCUWFYQmxJR2x1YzNSaGJtTmxjeUIwYnlCeVpXZHBjM1JsY2lCbmJHOWlZV3hzZVM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3VG1WemRFSnZiM1J6ZEhKaGNHVnlmU0JTWlhSMWNtNXpJSFJvWlNCamJHRnpjeUJtYjNJZ1kyaGhhVzVwYm1jdVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2RYTmxSMnh2WW1Gc1VHbHdaWE1vTGk0dWNHbHdaWE02SUZCcGNHVlVjbUZ1YzJadmNtMWJYU2tnZTF4dUlDQWdJR2xtSUNod2FYQmxjeTVzWlc1bmRHZ2dQaUF3S1NCMGFHbHpMbUZ3Y0M1MWMyVkhiRzlpWVd4UWFYQmxjeWd1TGk1d2FYQmxjeWs3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVYRzRnSUNBcUlGSmxaMmx6ZEdWeWN5QnZibVVnYjNJZ2JXOXlaU0JuYkc5aVlXd2daWGhqWlhCMGFXOXVJR1pwYkhSbGNuTXVYRzRnSUNBcVhHNGdJQ0FxSUVCemRXMXRZWEo1WEc0Z0lDQXFJRWxtSUc1dklHWnBiSFJsY25NZ1lYSmxJSEJ5YjNacFpHVmtMQ0JwZENCaGRYUnZiV0YwYVdOaGJHeDVJSEpsWjJsemRHVnljeUJoSUdSbFptRjFiSFJjYmlBZ0lDb2djMlYwSUc5bUlITjBZVzVrWVhKa0lHVjRZMlZ3ZEdsdmJpQm1hV3gwWlhKeklHWnZjaUJqYjIxdGIyNGdaWEp5YjNJZ2RIbHdaWE1nYkdsclpWeHVJQ0FnS2lCZ1NIUjBjRVY0WTJWd2RHbHZibUFzSUdCV1lXeHBaR0YwYVc5dVJYaGpaWEIwYVc5dVlDd2dZRU52Ym1ac2FXTjBSWGhqWlhCMGFXOXVZQ3dnWVc1a0lHOTBhR1Z5Y3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVGZUdObGNIUnBiMjVHYVd4MFpYSmJYWDBnWm1sc2RHVnljeUF0SUU5d2RHbHZibUZzSUdacGJIUmxjbk1nZEc4Z1lYQndiSGtnWjJ4dlltRnNiSGt1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nZFhObFIyeHZZbUZzUm1sc2RHVnljeWd1TGk1bWFXeDBaWEp6T2lCaGJubGJYU2tnZTF4dUlDQWdJSFJvYVhNdVlYQndMblZ6WlVkc2IySmhiRVpwYkhSbGNuTW9YRzRnSUNBZ0lDQXVMaTRvWm1sc2RHVnljeTVzWlc1bmRHZ2dQaUF3SUQ4Z1ptbHNkR1Z5Y3lBNklGdHVaWGNnUkdWallXWkZlR05sY0hScGIyNUdhV3gwWlhJb0tWMHBYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI1Y2JpQWdJQ29nVW1WbmFYTjBaWEp6SUdkc2IySmhiQ0JwYm5SbGNtTmxjSFJ2Y25NZ1ptOXlJSEpsY1hWbGMzUWdZVzVrSUhKbGMzQnZibk5sSUhSeVlXNXpabTl5YldGMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWMzVnRiV0Z5ZVZ4dUlDQWdLaUJKYm5SbGNtTmxjSFJ2Y25NZ1lXeHNiM2NnWVdSMllXNWpaV1FnY21WeGRXVnpkQzl5WlhOd2IyNXpaU0J0WVc1cGNIVnNZWFJwYjI0Z2MzVmphQ0JoYzF4dUlDQWdLaUJ6WlhKcFlXeHBlbUYwYVc5dUxDQnNiMmRuYVc1bkxDQnZjaUIwY21GdWMyWnZjbTFoZEdsdmJpNGdUWFZzZEdsd2JHVWdhVzUwWlhKalpYQjBiM0p6WEc0Z0lDQXFJR05oYmlCaVpTQmhaR1JsWkNCbWIzSWdiVzlrZFd4aGNpQmpiMjVtYVdkMWNtRjBhVzl1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMazVsYzNSSmJuUmxjbU5sY0hSdmNsdGRmU0JwYm5SbGNtTmxjSFJ2Y25NZ0xTQkpiblJsY21ObGNIUnZjaUJwYm5OMFlXNWpaWE1nZEc4Z2NtVm5hWE4wWlhJdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA1bGMzUkNiMjkwYzNSeVlYQmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyeGhjM01nWm05eUlHTm9ZV2x1YVc1bklHTnZibVpwWjNWeVlYUnBiMjR1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nZFhObFIyeHZZbUZzU1c1MFpYSmpaWEIwYjNKektDNHVMbWx1ZEdWeVkyVndkRzl5Y3pvZ1RtVnpkRWx1ZEdWeVkyVndkRzl5VzEwcElIdGNiaUFnSUNCcFppQW9hVzUwWlhKalpYQjBiM0p6TG14bGJtZDBhQ0ErSURBcFhHNGdJQ0FnSUNCMGFHbHpMbUZ3Y0M1MWMyVkhiRzlpWVd4SmJuUmxjbU5sY0hSdmNuTW9MaTR1YVc1MFpYSmpaWEIwYjNKektUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI1Y2JpQWdJQ29nVTNSaGNuUnpJSFJvWlNCT1pYTjBTbE1nWVhCd2JHbGpZWFJwYjI0Z1lXNWtJR0pwYm1SeklHbDBJSFJ2SUhSb1pTQm5hWFpsYmlCd2IzSjBJR0Z1WkNCb2IzTjBMbHh1SUNBZ0tseHVJQ0FnS2lCQWMzVnRiV0Z5ZVZ4dUlDQWdLaUJNYVhOMFpXNXpJRzl1SUhSb1pTQnpjR1ZqYVdacFpXUWdjRzl5ZENCaGJtUWdiM0IwYVc5dVlXeHNlU0JoSUdodmMzUXVJRTl1WTJVZ2MzUmhjblJsWkN4Y2JpQWdJQ29nYkc5bmN5QjBhR1VnWVhCd2JHbGpZWFJwYjI0Z1ZWSk1JR1p2Y2lCbFlYTjVJR0ZqWTJWemN5NGdWR2hsSUhOMFlYSjBkWEFnY0hKdlkyVnpjeUJ5WlhOdmJIWmxjMXh1SUNBZ0tpQnZibU5sSUhSb1pTQmhjSEJzYVdOaGRHbHZiaUJwY3lCemRXTmpaWE56Wm5Wc2JIa2djblZ1Ym1sdVp5NWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR3YjNKMFBUTXdNREJkSUMwZ1VHOXlkQ0J1ZFcxaVpYSWdkRzhnYkdsemRHVnVJRzl1TGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMmh2YzNSZElDMGdUM0IwYVc5dVlXd2dhRzl6ZENCdmNpQkpVQ0JoWkdSeVpYTnpJSFJ2SUdKcGJtUWdkRzh1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMnh2WnoxMGNuVmxYU0F0SUZkb1pYUm9aWElnZEc4Z2JHOW5JSFJvWlNCaGNIQnNhV05oZEdsdmJpQlZVa3dnZFhCdmJpQnpkR0Z5ZEhWd0xseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEhadmFXUStmU0JTWlhOdmJIWmxjeUJ2Ym1ObElIUm9aU0JoY0hCc2FXTmhkR2x2YmlCemRHRnlkSE1nYzNWalkyVnpjMloxYkd4NUxseHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHRnplVzVqSUhOMFlYSjBLRnh1SUNBZ0lIQnZjblE2SUc1MWJXSmxjaUE5SUU1MWJXSmxjaWh3Y205alpYTnpMbVZ1ZGk1UVQxSlVLU0I4ZkNBek1EQXdMRnh1SUNBZ0lHaHZjM1E2SUhOMGNtbHVaeUI4SUhWdVpHVm1hVzVsWkNBOUlIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCc2IyYzZJR0p2YjJ4bFlXNGdQU0IwY25WbFhHNGdJQ2tnZTF4dUlDQWdJSFJvYVhNdVlYQndMbXhwYzNSbGJpaHdiM0owTENCb2IzTjBJR0Z6SUdGdWVTa3VkR2hsYmloaGMzbHVZeUFvS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvYkc5bktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIVnliQ0E5SUdGM1lXbDBJSFJvYVhNdVlYQndMbWRsZEZWeWJDZ3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxteHZaMmRsY2k1c2IyY29ZUENmbW9BZ1FYQndiR2xqWVhScGIyNGdhWE1nY25WdWJtbHVaeUJoZERvZ0pIdDFjbXg5WUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJSDFjYm4xY2JpSmRmUT09Il19
|
|
@@ -8,5 +8,5 @@ class CorsError extends core_1.ForbiddenError {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
exports.CorsError = CorsError;
|
|
11
|
-
//# sourceMappingURL=
|
|
12
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mYWN0b3J5L2Vycm9ycy9jb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sU0FBVSxTQUFRLGNBQWM7SUFDM0MsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JiaWRkZW5FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuXG5leHBvcnQgY2xhc3MgQ29yc0Vycm9yIGV4dGVuZHMgRm9yYmlkZGVuRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBDb3JzRXJyb3IubmFtZSk7XG4gIH1cbn1cbiJdfQ==
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQWdEO0FBQ2hELE1BQWEsU0FBVSxTQUFRLHFCQUFjO0lBQ3pDLFlBQVksR0FBRztRQUNYLEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDSjtBQUpELDhCQUlDO0FBQ0QsMHJCQUEwckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JiaWRkZW5FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuZXhwb3J0IGNsYXNzIENvcnNFcnJvciBleHRlbmRzIEZvcmJpZGRlbkVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcihtc2cpIHtcbiAgICAgICAgc3VwZXIobXNnLCBDb3JzRXJyb3IubmFtZSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTI5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTltWVdOMGIzSjVMMlZ5Y205eWN5OWpiM0p6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hqUVVGakxFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVWb1JDeE5RVUZOTEU5QlFVOHNVMEZCVlN4VFFVRlJMR05CUVdNN1NVRkRNME1zV1VGQldTeEhRVUZ0UWp0UlFVTTNRaXhMUVVGTExFTkJRVU1zUjBGQlJ5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNM1FpeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJHYjNKaWFXUmtaVzVGY25KdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1EyOXljMFZ5Y205eUlHVjRkR1Z1WkhNZ1JtOXlZbWxrWkdWdVJYSnliM0lnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWh0YzJjNklITjBjbWx1WnlCOElFVnljbTl5S1NCN1hHNGdJQ0FnYzNWd1pYSW9iWE5uTENCRGIzSnpSWEp5YjNJdWJtRnRaU2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
|
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./cors.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmFjdG9yeS9lcnJvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29yc1wiO1xuIl19
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDBTQUEwUyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvcnMuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlptRmpkRzl5ZVM5bGNuSnZjbk12YVc1a1pYZ3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc01FSkJRWFZDSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlkyOXljMXdpTzF4dUlsMTkiXX0=
|
|
@@ -8,5 +8,5 @@ class ToManyRequestsError extends db_decorators_1.BaseError {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
exports.ToManyRequestsError = ToManyRequestsError;
|
|
11
|
-
//# sourceMappingURL=
|
|
12
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mYWN0b3J5L2Vycm9ycy90aHJvdHRsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUztJQUNoRCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgY2xhc3MgVG9NYW55UmVxdWVzdHNFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IgKSB7XG4gICAgc3VwZXIoVG9NYW55UmVxdWVzdHNFcnJvci5uYW1lLCBtc2cgLCA0MjkpO1xuICB9XG59Il19
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRocm90dGxpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQW9EO0FBQ3BELE1BQWEsbUJBQW9CLFNBQVEseUJBQVM7SUFDOUMsWUFBWSxHQUFHO1FBQ1gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBSkQsa0RBSUM7QUFDRCwwdkJBQTB2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuZXhwb3J0IGNsYXNzIFRvTWFueVJlcXVlc3RzRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1zZykge1xuICAgICAgICBzdXBlcihUb01hbnlSZXF1ZXN0c0Vycm9yLm5hbWUsIG1zZywgNDI5KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkR2h5YjNSMGJHbHVaeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5bVlXTjBiM0o1TDJWeWNtOXljeTkwYUhKdmRIUnNhVzVuTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzVFVGQlRTeDVRa0ZCZVVJc1EwRkJRenRCUVVWd1JDeE5RVUZOTEU5QlFVOHNiVUpCUVc5Q0xGTkJRVkVzVTBGQlV6dEpRVU5vUkN4WlFVRlpMRWRCUVcxQ08xRkJRemRDTEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNSMEZCUnl4RlFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRemRETEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFSmhjMlZGY25KdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZHOU5ZVzU1VW1WeGRXVnpkSE5GY25KdmNpQmxlSFJsYm1SeklFSmhjMlZGY25KdmNpQjdYRzRnSUdOdmJuTjBjblZqZEc5eUtHMXpaem9nYzNSeWFXNW5JSHdnUlhKeWIzSWdLU0I3WEc0Z0lDQWdjM1Z3WlhJb1ZHOU5ZVzU1VW1WeGRXVnpkSE5GY25KdmNpNXVZVzFsTENCdGMyY2dMQ0EwTWprcE8xeHVJQ0I5WEc1OUlsMTkiXX0=
|
|
@@ -49,5 +49,5 @@ exports.DecafExceptionFilter = DecafExceptionFilter;
|
|
|
49
49
|
exports.DecafExceptionFilter = DecafExceptionFilter = __decorate([
|
|
50
50
|
(0, common_1.Catch)()
|
|
51
51
|
], DecafExceptionFilter);
|
|
52
|
-
//# sourceMappingURL=
|
|
53
|
-
//# sourceMappingURL=DecafErrorFilter.js.map
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZFcnJvckZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mYWN0b3J5L2V4Y2VwdGlvbnMvRGVjYWZFcnJvckZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBRUwsS0FBSyxFQUVMLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQ0FBNkI7QUFHcEQsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFDL0IsS0FBSyxDQUFDLFNBQWdCLEVBQUUsSUFBbUI7UUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFakMsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQztRQUM1RCxJQUFJLFVBQVUsQ0FBQztRQUVmLElBQ0UsU0FBUyxZQUFZLGlCQUFpQjtZQUN0QyxTQUFTLFlBQVksZ0JBQWdCLEVBQ3JDLENBQUM7WUFDRCxTQUFTLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUQsVUFBVSxHQUFJLFNBQW9DLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakUsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLFNBQVMsWUFBWSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksU0FBaUIsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFDLENBQUM7Z0JBQ3BDLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6RCxDQUFDO2lCQUFJLENBQUM7Z0JBQ0osU0FBUyxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQztRQUVELFFBQVEsQ0FBQyxNQUFNLENBQUUsU0FBdUIsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hFLE1BQU0sRUFBRyxTQUF1QixDQUFDLElBQUksSUFBSSxVQUFVO1lBQ25ELEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQ3hELFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUNuQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDakIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBL0JZLG9CQUFvQjtJQURoQyxLQUFLLEVBQUU7R0FDSyxvQkFBb0IsQ0ErQmhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJndW1lbnRzSG9zdCxcbiAgQ2F0Y2gsXG4gIEV4Y2VwdGlvbkZpbHRlcixcbiAgTm90QWNjZXB0YWJsZUV4Y2VwdGlvbixcbiAgTm90Rm91bmRFeGNlcHRpb24sXG59IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgQmFzZUVycm9yLCBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBMb2dnZWRFbnZpcm9ubWVudCB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgVG9NYW55UmVxdWVzdHNFcnJvciB9IGZyb20gXCIuLi9lcnJvcnMvdGhyb3R0bGluZ1wiO1xuXG5AQ2F0Y2goKVxuZXhwb3J0IGNsYXNzIERlY2FmRXhjZXB0aW9uRmlsdGVyIGltcGxlbWVudHMgRXhjZXB0aW9uRmlsdGVyIHtcbiAgY2F0Y2goZXhjZXB0aW9uOiBFcnJvciwgaG9zdDogQXJndW1lbnRzSG9zdCkge1xuICAgIGNvbnN0IGN0eCA9IGhvc3Quc3dpdGNoVG9IdHRwKCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBjdHguZ2V0UmVzcG9uc2UoKTtcbiAgICBjb25zdCByZXF1ZXN0ID0gY3R4LmdldFJlcXVlc3QoKTtcblxuICAgIGNvbnN0IGlzUHJvZHVjdGlvbiA9IExvZ2dlZEVudmlyb25tZW50LmVudiA9PT0gXCJwcm9kdWN0aW9uXCI7XG4gICAgbGV0IHN0YXR1c0NvZGU7XG5cbiAgICBpZiAoXG4gICAgICBleGNlcHRpb24gaW5zdGFuY2VvZiBOb3RGb3VuZEV4Y2VwdGlvbiB8fFxuICAgICAgZXhjZXB0aW9uIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRFcnJvclxuICAgICkge1xuICAgICAgZXhjZXB0aW9uID0gbmV3IE5vdEFjY2VwdGFibGVFeGNlcHRpb24oZXhjZXB0aW9uLm1lc3NhZ2UpO1xuICAgICAgc3RhdHVzQ29kZSA9IChleGNlcHRpb24gYXMgTm90QWNjZXB0YWJsZUV4Y2VwdGlvbikuZ2V0U3RhdHVzKCk7XG4gICAgfSBlbHNlIGlmICghKGV4Y2VwdGlvbiBpbnN0YW5jZW9mIEJhc2VFcnJvcikpIHtcbiAgICAgIGlmKChleGNlcHRpb24gYXMgYW55KS5zdGF0dXMgPT09IDQyOSl7XG4gICAgICAgIGV4Y2VwdGlvbiA9IG5ldyBUb01hbnlSZXF1ZXN0c0Vycm9yKGV4Y2VwdGlvbi5tZXNzYWdlKTtcbiAgICAgIH1lbHNle1xuICAgICAgICBleGNlcHRpb24gPSBuZXcgSW50ZXJuYWxFcnJvcihleGNlcHRpb24ubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVzcG9uc2Uuc3RhdHVzKChleGNlcHRpb24gYXMgQmFzZUVycm9yKS5jb2RlIHx8IHN0YXR1c0NvZGUpLmpzb24oe1xuICAgICAgc3RhdHVzOiAoZXhjZXB0aW9uIGFzIEJhc2VFcnJvcikuY29kZSB8fCBzdGF0dXNDb2RlLFxuICAgICAgZXJyb3I6IGlzUHJvZHVjdGlvbiA/IGV4Y2VwdGlvbi5uYW1lIDogZXhjZXB0aW9uLm1lc3NhZ2UsXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHBhdGg6IHJlcXVlc3QudXJsLFxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZFcnJvckZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlY2FmRXJyb3JGaWx0ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUNGLDJDQUFtRjtBQUNuRiwyREFBbUU7QUFDbkUsK0NBQXNEO0FBQ3RELHlDQUFrRDtBQUNsRCw2REFBZ0U7QUFDaEUsSUFBSSxvQkFBb0IsR0FBRyxNQUFNLG9CQUFvQjtJQUNqRCxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUk7UUFDakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakMsTUFBTSxZQUFZLEdBQUcsMkJBQWlCLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQztRQUM1RCxJQUFJLFVBQVUsQ0FBQztRQUNmLElBQUksU0FBUyxZQUFZLDBCQUFpQjtZQUN0QyxTQUFTLFlBQVksdUJBQWdCLEVBQUUsQ0FBQztZQUN4QyxTQUFTLEdBQUcsSUFBSSwrQkFBc0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUQsVUFBVSxHQUFHLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQ0ksSUFBSSxDQUFDLENBQUMsU0FBUyxZQUFZLHlCQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsU0FBUyxHQUFHLElBQUksbUNBQW1CLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNELENBQUM7aUJBQ0ksQ0FBQztnQkFDRixTQUFTLEdBQUcsSUFBSSw2QkFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0wsQ0FBQztRQUNELFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDL0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksVUFBVTtZQUNwQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTztZQUN4RCxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ2pCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtTQUN6QixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQztBQUlPLG9EQUFvQjtBQUg3QiwrQkFBQSxvQkFBb0IsR0FBRyxVQUFVLENBQUM7SUFDOUIsSUFBQSxjQUFLLEdBQUU7Q0FDVixFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFFekIsOGhJQUE4aEkiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG5pbXBvcnQgeyBDYXRjaCwgTm90QWNjZXB0YWJsZUV4Y2VwdGlvbiwgTm90Rm91bmRFeGNlcHRpb24sIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBCYXNlRXJyb3IsIEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IExvZ2dlZEVudmlyb25tZW50IH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBUb01hbnlSZXF1ZXN0c0Vycm9yIH0gZnJvbSBcIi4vLi4vZXJyb3JzL3Rocm90dGxpbmcuanNcIjtcbmxldCBEZWNhZkV4Y2VwdGlvbkZpbHRlciA9IGNsYXNzIERlY2FmRXhjZXB0aW9uRmlsdGVyIHtcbiAgICBjYXRjaChleGNlcHRpb24sIGhvc3QpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gaG9zdC5zd2l0Y2hUb0h0dHAoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBjdHguZ2V0UmVzcG9uc2UoKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGN0eC5nZXRSZXF1ZXN0KCk7XG4gICAgICAgIGNvbnN0IGlzUHJvZHVjdGlvbiA9IExvZ2dlZEVudmlyb25tZW50LmVudiA9PT0gXCJwcm9kdWN0aW9uXCI7XG4gICAgICAgIGxldCBzdGF0dXNDb2RlO1xuICAgICAgICBpZiAoZXhjZXB0aW9uIGluc3RhbmNlb2YgTm90Rm91bmRFeGNlcHRpb24gfHxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiBpbnN0YW5jZW9mIFVuc3VwcG9ydGVkRXJyb3IpIHtcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG5ldyBOb3RBY2NlcHRhYmxlRXhjZXB0aW9uKGV4Y2VwdGlvbi5tZXNzYWdlKTtcbiAgICAgICAgICAgIHN0YXR1c0NvZGUgPSBleGNlcHRpb24uZ2V0U3RhdHVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIShleGNlcHRpb24gaW5zdGFuY2VvZiBCYXNlRXJyb3IpKSB7XG4gICAgICAgICAgICBpZiAoZXhjZXB0aW9uLnN0YXR1cyA9PT0gNDI5KSB7XG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbmV3IFRvTWFueVJlcXVlc3RzRXJyb3IoZXhjZXB0aW9uLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbmV3IEludGVybmFsRXJyb3IoZXhjZXB0aW9uLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc3BvbnNlLnN0YXR1cyhleGNlcHRpb24uY29kZSB8fCBzdGF0dXNDb2RlKS5qc29uKHtcbiAgICAgICAgICAgIHN0YXR1czogZXhjZXB0aW9uLmNvZGUgfHwgc3RhdHVzQ29kZSxcbiAgICAgICAgICAgIGVycm9yOiBpc1Byb2R1Y3Rpb24gPyBleGNlcHRpb24ubmFtZSA6IGV4Y2VwdGlvbi5tZXNzYWdlLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICBwYXRoOiByZXF1ZXN0LnVybCxcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5EZWNhZkV4Y2VwdGlvbkZpbHRlciA9IF9fZGVjb3JhdGUoW1xuICAgIENhdGNoKClcbl0sIERlY2FmRXhjZXB0aW9uRmlsdGVyKTtcbmV4cG9ydCB7IERlY2FmRXhjZXB0aW9uRmlsdGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSR1ZqWVdaRmNuSnZja1pwYkhSbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTltWVdOMGIzSjVMMlY0WTJWd2RHbHZibk12UkdWallXWkZjbkp2Y2tacGJIUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdRVUZCUVN4UFFVRlBMRVZCUlV3c1MwRkJTeXhGUVVWTUxITkNRVUZ6UWl4RlFVTjBRaXhwUWtGQmFVSXNSMEZEYkVJc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTjRRaXhQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEdGQlFXRXNSVUZCUlN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlEyNUZMRTlCUVU4c1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4TlFVRk5MRzFDUVVGdFFpeERRVUZETzBGQlEzUkVMRTlCUVU4c1JVRkJSU3huUWtGQlowSXNSVUZCUlN4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlEyeEVMRTlCUVU4c1JVRkJSU3h0UWtGQmJVSXNSVUZCUlN4clEwRkJOa0k3UVVGSGNFUXNTVUZCVFN4dlFrRkJiMElzUjBGQk1VSXNUVUZCVFN4dlFrRkJiMEk3U1VGREwwSXNTMEZCU3l4RFFVRkRMRk5CUVdkQ0xFVkJRVVVzU1VGQmJVSTdVVUZEZWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMUZCUTJoRExFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOdVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03VVVGRmFrTXNUVUZCVFN4WlFVRlpMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTXNSMEZCUnl4TFFVRkxMRmxCUVZrc1EwRkJRenRSUVVNMVJDeEpRVUZKTEZWQlFWVXNRMEZCUXp0UlFVVm1MRWxCUTBVc1UwRkJVeXhaUVVGWkxHbENRVUZwUWp0WlFVTjBReXhUUVVGVExGbEJRVmtzWjBKQlFXZENMRVZCUTNKRExFTkJRVU03V1VGRFJDeFRRVUZUTEVkQlFVY3NTVUZCU1N4elFrRkJjMElzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRNVVFzVlVGQlZTeEhRVUZKTEZOQlFXOURMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03VVVGRGFrVXNRMEZCUXp0aFFVRk5MRWxCUVVrc1EwRkJReXhEUVVGRExGTkJRVk1zV1VGQldTeFRRVUZUTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpkRExFbEJRVWtzVTBGQmFVSXNRMEZCUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhGUVVGRExFTkJRVU03WjBKQlEzQkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU42UkN4RFFVRkRPMmxDUVVGSkxFTkJRVU03WjBKQlEwb3NVMEZCVXl4SFFVRkhMRWxCUVVrc1lVRkJZU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTnVSQ3hEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVVZFTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVVc1UwRkJkVUlzUTBGQlF5eEpRVUZKTEVsQlFVa3NWVUZCVlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRMmhGTEUxQlFVMHNSVUZCUnl4VFFVRjFRaXhEUVVGRExFbEJRVWtzU1VGQlNTeFZRVUZWTzFsQlEyNUVMRXRCUVVzc1JVRkJSU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTzFsQlEzaEVMRk5CUVZNc1JVRkJSU3hKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETEZkQlFWY3NSVUZCUlR0WlFVTnVReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVYzdXVUZEYWtJc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eE5RVUZOTzFOQlEzWkNMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03UTBGRFJpeERRVUZCTzBGQkwwSlpMRzlDUVVGdlFqdEpRVVJvUXl4TFFVRkxMRVZCUVVVN1IwRkRTeXh2UWtGQmIwSXNRMEVyUW1oRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGNiaUFnUVhKbmRXMWxiblJ6U0c5emRDeGNiaUFnUTJGMFkyZ3NYRzRnSUVWNFkyVndkR2x2YmtacGJIUmxjaXhjYmlBZ1RtOTBRV05qWlhCMFlXSnNaVVY0WTJWd2RHbHZiaXhjYmlBZ1RtOTBSbTkxYm1SRmVHTmxjSFJwYjI0c1hHNTlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dRbUZ6WlVWeWNtOXlMQ0JKYm5SbGNtNWhiRVZ5Y205eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5Qk1iMmRuWldSRmJuWnBjbTl1YldWdWRDQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZiRzluWjJsdVoxd2lPMXh1YVcxd2IzSjBJSHNnVlc1emRYQndiM0owWldSRmNuSnZjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSHNnVkc5TllXNTVVbVZ4ZFdWemRITkZjbkp2Y2lCOUlHWnliMjBnWENJdUxpOWxjbkp2Y25NdmRHaHliM1IwYkdsdVoxd2lPMXh1WEc1QVEyRjBZMmdvS1Z4dVpYaHdiM0owSUdOc1lYTnpJRVJsWTJGbVJYaGpaWEIwYVc5dVJtbHNkR1Z5SUdsdGNHeGxiV1Z1ZEhNZ1JYaGpaWEIwYVc5dVJtbHNkR1Z5SUh0Y2JpQWdZMkYwWTJnb1pYaGpaWEIwYVc5dU9pQkZjbkp2Y2l3Z2FHOXpkRG9nUVhKbmRXMWxiblJ6U0c5emRDa2dlMXh1SUNBZ0lHTnZibk4wSUdOMGVDQTlJR2h2YzNRdWMzZHBkR05vVkc5SWRIUndLQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmpkSGd1WjJWMFVtVnpjRzl1YzJVb0tUdGNiaUFnSUNCamIyNXpkQ0J5WlhGMVpYTjBJRDBnWTNSNExtZGxkRkpsY1hWbGMzUW9LVHRjYmx4dUlDQWdJR052Ym5OMElHbHpVSEp2WkhWamRHbHZiaUE5SUV4dloyZGxaRVZ1ZG1seWIyNXRaVzUwTG1WdWRpQTlQVDBnWENKd2NtOWtkV04wYVc5dVhDSTdYRzRnSUNBZ2JHVjBJSE4wWVhSMWMwTnZaR1U3WEc1Y2JpQWdJQ0JwWmlBb1hHNGdJQ0FnSUNCbGVHTmxjSFJwYjI0Z2FXNXpkR0Z1WTJWdlppQk9iM1JHYjNWdVpFVjRZMlZ3ZEdsdmJpQjhmRnh1SUNBZ0lDQWdaWGhqWlhCMGFXOXVJR2x1YzNSaGJtTmxiMllnVlc1emRYQndiM0owWldSRmNuSnZjbHh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdaWGhqWlhCMGFXOXVJRDBnYm1WM0lFNXZkRUZqWTJWd2RHRmliR1ZGZUdObGNIUnBiMjRvWlhoalpYQjBhVzl1TG0xbGMzTmhaMlVwTzF4dUlDQWdJQ0FnYzNSaGRIVnpRMjlrWlNBOUlDaGxlR05sY0hScGIyNGdZWE1nVG05MFFXTmpaWEIwWVdKc1pVVjRZMlZ3ZEdsdmJpa3VaMlYwVTNSaGRIVnpLQ2s3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2doS0dWNFkyVndkR2x2YmlCcGJuTjBZVzVqWlc5bUlFSmhjMlZGY25KdmNpa3BJSHRjYmlBZ0lDQWdJR2xtS0NobGVHTmxjSFJwYjI0Z1lYTWdZVzU1S1M1emRHRjBkWE1nUFQwOUlEUXlPU2w3WEc0Z0lDQWdJQ0FnSUdWNFkyVndkR2x2YmlBOUlHNWxkeUJVYjAxaGJubFNaWEYxWlhOMGMwVnljbTl5S0dWNFkyVndkR2x2Ymk1dFpYTnpZV2RsS1R0Y2JpQWdJQ0FnSUgxbGJITmxlMXh1SUNBZ0lDQWdJQ0JsZUdObGNIUnBiMjRnUFNCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2lobGVHTmxjSFJwYjI0dWJXVnpjMkZuWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WemNHOXVjMlV1YzNSaGRIVnpLQ2hsZUdObGNIUnBiMjRnWVhNZ1FtRnpaVVZ5Y205eUtTNWpiMlJsSUh4OElITjBZWFIxYzBOdlpHVXBMbXB6YjI0b2UxeHVJQ0FnSUNBZ2MzUmhkSFZ6T2lBb1pYaGpaWEIwYVc5dUlHRnpJRUpoYzJWRmNuSnZjaWt1WTI5a1pTQjhmQ0J6ZEdGMGRYTkRiMlJsTEZ4dUlDQWdJQ0FnWlhKeWIzSTZJR2x6VUhKdlpIVmpkR2x2YmlBL0lHVjRZMlZ3ZEdsdmJpNXVZVzFsSURvZ1pYaGpaWEIwYVc5dUxtMWxjM05oWjJVc1hHNGdJQ0FnSUNCMGFXMWxjM1JoYlhBNklHNWxkeUJFWVhSbEtDa3VkRzlKVTA5VGRISnBibWNvS1N4Y2JpQWdJQ0FnSUhCaGRHZzZJSEpsY1hWbGMzUXVkWEpzTEZ4dUlDQWdJQ0FnYldWMGFHOWtPaUJ5WlhGMVpYTjBMbTFsZEdodlpDeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dWZWeHVJbDE5Il19
|
|
@@ -11,5 +11,5 @@ function UseDecafFilter() {
|
|
|
11
11
|
function UseDecafHeaders() {
|
|
12
12
|
return (0, common_1.UseInterceptors)(index_js_1.DecafResponseInterceptor);
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=
|
|
15
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mYWN0b3J5L2V4Y2VwdGlvbnMvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSw4QkFBMkI7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGlDQUE0QjtBQUUvRCxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPLFVBQVUsQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWU7SUFDN0IsT0FBTyxlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlRmlsdGVycywgVXNlSW50ZXJjZXB0b3JzIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBEZWNhZkV4Y2VwdGlvbkZpbHRlciB9IGZyb20gXCIuL0RlY2FmRXJyb3JGaWx0ZXJcIjtcbmltcG9ydCB7IERlY2FmUmVzcG9uc2VJbnRlcmNlcHRvciB9IGZyb20gXCIuLi8uLi9yZXF1ZXN0L2luZGV4XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBVc2VEZWNhZkZpbHRlcigpIHtcbiAgcmV0dXJuIFVzZUZpbHRlcnMobmV3IERlY2FmRXhjZXB0aW9uRmlsdGVyKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVXNlRGVjYWZIZWFkZXJzKCkge1xuICByZXR1cm4gVXNlSW50ZXJjZXB0b3JzKERlY2FmUmVzcG9uc2VJbnRlcmNlcHRvcik7XG59XG4iXX0=
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSx3Q0FFQztBQUNELDBDQUVDO0FBUkQsMkNBQTZEO0FBQzdELCtEQUE2RDtBQUM3RCx1REFBb0U7QUFDcEUsU0FBZ0IsY0FBYztJQUMxQixPQUFPLElBQUEsbUJBQVUsRUFBQyxJQUFJLDBDQUFvQixFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBQ0QsU0FBZ0IsZUFBZTtJQUMzQixPQUFPLElBQUEsd0JBQWUsRUFBQyxtQ0FBd0IsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFDRCw4bUNBQThtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZUZpbHRlcnMsIFVzZUludGVyY2VwdG9ycyB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZFeGNlcHRpb25GaWx0ZXIgfSBmcm9tIFwiLi9EZWNhZkVycm9yRmlsdGVyLmpzXCI7XG5pbXBvcnQgeyBEZWNhZlJlc3BvbnNlSW50ZXJjZXB0b3IgfSBmcm9tIFwiLi8uLi8uLi9yZXF1ZXN0L2luZGV4LmpzXCI7XG5leHBvcnQgZnVuY3Rpb24gVXNlRGVjYWZGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIFVzZUZpbHRlcnMobmV3IERlY2FmRXhjZXB0aW9uRmlsdGVyKCkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIFVzZURlY2FmSGVhZGVycygpIHtcbiAgICByZXR1cm4gVXNlSW50ZXJjZXB0b3JzKERlY2FmUmVzcG9uc2VJbnRlcmNlcHRvcik7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR1ZqYjNKaGRHOXljeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5bVlXTjBiM0o1TDJWNFkyVndkR2x2Ym5NdlpHVmpiM0poZEc5eWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxHVkJRV1VzUlVGQlJTeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJRemRFTEU5QlFVOHNSVUZCUlN4dlFrRkJiMElzUlVGQlJTdzRRa0ZCTWtJN1FVRkRNVVFzVDBGQlR5eEZRVUZGTEhkQ1FVRjNRaXhGUVVGRkxHbERRVUUwUWp0QlFVVXZSQ3hOUVVGTkxGVkJRVlVzWTBGQll6dEpRVU0xUWl4UFFVRlBMRlZCUVZVc1EwRkJReXhKUVVGSkxHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOb1JDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR1ZCUVdVN1NVRkROMElzVDBGQlR5eGxRVUZsTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zUTBGQlF6dEJRVU51UkN4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnVlhObFJtbHNkR1Z5Y3l3Z1ZYTmxTVzUwWlhKalpYQjBiM0p6SUgwZ1puSnZiU0JjSWtCdVpYTjBhbk12WTI5dGJXOXVYQ0k3WEc1cGJYQnZjblFnZXlCRVpXTmhaa1Y0WTJWd2RHbHZia1pwYkhSbGNpQjlJR1p5YjIwZ1hDSXVMMFJsWTJGbVJYSnliM0pHYVd4MFpYSmNJanRjYm1sdGNHOXlkQ0I3SUVSbFkyRm1VbVZ6Y0c5dWMyVkpiblJsY21ObGNIUnZjaUI5SUdaeWIyMGdYQ0l1TGk4dUxpOXlaWEYxWlhOMEwybHVaR1Y0WENJN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQlZjMlZFWldOaFprWnBiSFJsY2lncElIdGNiaUFnY21WMGRYSnVJRlZ6WlVacGJIUmxjbk1vYm1WM0lFUmxZMkZtUlhoalpYQjBhVzl1Um1sc2RHVnlLQ2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdWWE5sUkdWallXWklaV0ZrWlhKektDa2dlMXh1SUNCeVpYUjFjbTRnVlhObFNXNTBaWEpqWlhCMGIzSnpLRVJsWTJGbVVtVnpjRzl1YzJWSmJuUmxjbU5sY0hSdmNpazdYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -16,5 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./DecafErrorFilter.cjs"), exports);
|
|
18
18
|
__exportStar(require("./decorators.cjs"), exports);
|
|
19
|
-
//# sourceMappingURL=
|
|
20
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmFjdG9yeS9leGNlcHRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFtQztBQUNuQyxnQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9EZWNhZkVycm9yRmlsdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG4iXX0=
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQXNDO0FBQ3RDLGtEQUFnQztBQUNoQyw4WEFBOFgiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9EZWNhZkVycm9yRmlsdGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZabUZqZEc5eWVTOWxlR05sY0hScGIyNXpMMmx1WkdWNExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEhORFFVRnRRenRCUVVOdVF5eG5RMEZCTmtJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SmxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOUVaV05oWmtWeWNtOXlSbWxzZEdWeVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlrWldOdmNtRjBiM0p6WENJN1hHNGlYWDA9Il19
|
|
@@ -18,5 +18,5 @@ __exportStar(require("./errors/index.cjs"), exports);
|
|
|
18
18
|
__exportStar(require("./exceptions/index.cjs"), exports);
|
|
19
19
|
__exportStar(require("./openapi/index.cjs"), exports);
|
|
20
20
|
__exportStar(require("./NestBootstraper.cjs"), exports);
|
|
21
|
-
//# sourceMappingURL=
|
|
22
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQ0FBeUI7QUFDekIsc0NBQTZCO0FBQzdCLG1DQUEwQjtBQUMxQixxQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4Y2VwdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL29wZW5hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05lc3RCb290c3RyYXBlclwiO1xuIl19
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQWtDO0FBQ2xDLHdEQUFzQztBQUN0QyxxREFBbUM7QUFDbkMsdURBQXFDO0FBQ3JDLDBkQUEwZCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2Vycm9ycy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhjZXB0aW9ucy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3BlbmFwaS9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vTmVzdEJvb3RzdHJhcGVyLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdlptRmpkRzl5ZVM5cGJtUmxlQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeHJRMEZCZVVJN1FVRkRla0lzYzBOQlFUWkNPMEZCUXpkQ0xHMURRVUV3UWp0QlFVTXhRaXh4UTBGQmEwTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpsZUhCdmNuUWdLaUJtY205dElGd2lMaTlsY25KdmNuTmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDJWNFkyVndkR2x2Ym5OY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMjl3Wlc1aGNHbGNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDA1bGMzUkNiMjkwYzNSeVlYQmxjbHdpTzF4dUlsMTkiXX0=
|
|
@@ -22,15 +22,19 @@ const dtoCache = new Map();
|
|
|
22
22
|
* • CREATE – included only when the pk is NOT auto-generated
|
|
23
23
|
* (checked via Model.pkProps().generated AND Model.generated()).
|
|
24
24
|
* - Relation properties (@oneToOne, @oneToMany, …):
|
|
25
|
-
* • CREATE – nested as DtoFor(CREATE, RelatedModel).
|
|
25
|
+
* • CREATE – nested as DtoFor(CREATE, RelatedModel). When the relation
|
|
26
|
+
* creates a circular reference (model A → model B → model A),
|
|
27
|
+
* the back-reference uses the related model's PK type
|
|
28
|
+
* (string/integer) instead of the full DTO to break the cycle.
|
|
26
29
|
* • UPDATE – union of DtoFor(UPDATE, RelatedModel) **or** the
|
|
27
30
|
* related model's primary-key type (string / integer),
|
|
28
|
-
* expressed as a Swagger oneOf.
|
|
31
|
+
* expressed as a Swagger oneOf. Circular back-references
|
|
32
|
+
* omit the DTO $ref and only include the PK type.
|
|
29
33
|
*
|
|
30
34
|
* Metadata.properties() now returns ALL properties across the prototype chain,
|
|
31
35
|
* so DTO inheritance is no longer needed; every DTO is a flat class.
|
|
32
36
|
*/
|
|
33
|
-
function DtoFor(op, model) {
|
|
37
|
+
function DtoFor(op, model, stack = new Set()) {
|
|
34
38
|
if (!core_1.TransactionOperationKeys.includes(op)) {
|
|
35
39
|
return model;
|
|
36
40
|
}
|
|
@@ -121,7 +125,17 @@ function DtoFor(op, model) {
|
|
|
121
125
|
const meta = decoration_1.Metadata.validationFor(model, relation);
|
|
122
126
|
const isArray = !!meta?.[decorator_validation_1.ValidationKeys.LIST];
|
|
123
127
|
const isRequired = !!meta?.[decorator_validation_1.ValidationKeys.REQUIRED];
|
|
124
|
-
|
|
128
|
+
// Detect circular reference: if the related model is already in the
|
|
129
|
+
// recursion stack, use the PK type instead of the full DTO to break
|
|
130
|
+
// the cycle. This prevents @nestjs/swagger's SchemaObjectFactory from
|
|
131
|
+
// infinitely recursing when exploring the schemas.
|
|
132
|
+
const isCircular = stack.has(relationType);
|
|
133
|
+
if (isCircular) {
|
|
134
|
+
const pkTypeName = getPkOpenApiType(relationType);
|
|
135
|
+
addRelationPkRef(DynamicDTO, relation, pkTypeName, isArray, isRequired);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const relationDto = DtoFor(op, relationType, new Set(stack).add(model));
|
|
125
139
|
if (isUpdateOp) {
|
|
126
140
|
addRelationUpdate(DynamicDTO, relation, relationType, relationDto, isArray, isRequired);
|
|
127
141
|
}
|
|
@@ -146,6 +160,23 @@ function addRelation(DtoClass, relation, relationDto, isArray, isRequired) {
|
|
|
146
160
|
configurable: true,
|
|
147
161
|
});
|
|
148
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Adds a relation property that uses the PK type (string/integer) instead of
|
|
165
|
+
* a full DTO class. Used to break circular references (e.g. Customer → Order → Customer).
|
|
166
|
+
*/
|
|
167
|
+
function addRelationPkRef(DtoClass, relation, pkTypeName, isArray, isRequired) {
|
|
168
|
+
const apiOptions = isArray
|
|
169
|
+
? { type: "array", items: { type: pkTypeName }, required: isRequired }
|
|
170
|
+
: { type: pkTypeName === "integer" ? Number : String, required: isRequired };
|
|
171
|
+
(0, decoration_js_1.ApiProperty)(apiOptions)(DtoClass.prototype, relation);
|
|
172
|
+
Reflect.defineMetadata("design:type", isArray ? Array : (pkTypeName === "integer" ? Number : String), DtoClass.prototype, relation);
|
|
173
|
+
Object.defineProperty(DtoClass.prototype, relation, {
|
|
174
|
+
value: undefined,
|
|
175
|
+
writable: true,
|
|
176
|
+
enumerable: true,
|
|
177
|
+
configurable: true,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
149
180
|
function addRelationUpdate(DtoClass, relation, relationType, relationDto, isArray, isRequired) {
|
|
150
181
|
const extraModels = Reflect.getMetadata(constants_js_1.DECORATORS.API_EXTRA_MODELS, DtoClass) || [];
|
|
151
182
|
if (!extraModels.includes(relationDto)) {
|
|
@@ -213,5 +244,5 @@ function getDtoCache(op) {
|
|
|
213
244
|
}
|
|
214
245
|
return dtoCache.get(op);
|
|
215
246
|
}
|
|
216
|
-
//# sourceMappingURL=DtoBuilder.js.map
|
|
217
|
-
//# sourceMappingURL=DtoBuilder.js.map
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHRvQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mYWN0b3J5L29wZW5hcGkvRHRvQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQWUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSx3Q0FBbUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSx1Q0FBa0M7QUFFdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBR3JCLENBQUM7QUFFSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsRUFBaUIsRUFDakIsS0FBcUIsRUFDckIsUUFBK0IsSUFBSSxHQUFHLEVBQUU7SUFFeEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzNDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLElBQUksTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRTFCLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLGFBQWEsQ0FBQyxNQUFNO1FBQ3BCLHFCQUFxQixDQUFDLFVBQVU7S0FDakMsQ0FBQyxR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QixPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUNsQixFQUFpQjtJQUVqQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBBcGlQcm9wZXJ0eSB9IGZyb20gXCIuLi8uLi9vdmVycmlkZXMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTW9kZWwsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IERFQ09SQVRPUlMgfSBmcm9tIFwiLi4vLi4vb3ZlcnJpZGVzL2NvbnN0YW50c1wiO1xuXG5jb25zdCBkdG9DYWNoZSA9IG5ldyBNYXA8XG4gIE9wZXJhdGlvbktleXMsXG4gIFdlYWtNYXA8Q29uc3RydWN0b3I8YW55PiwgQ29uc3RydWN0b3I8YW55Pj5cbj4oKTtcblxuLyoqXG4gKiBCdWlsZHMgYSBOZXN0L1N3YWdnZXIgRFRPIGNsYXNzIGZvciB0aGUgZ2l2ZW4gbW9kZWwgYW5kIENSVUQgb3BlcmF0aW9uLlxuICpcbiAqIFJ1bGVzOlxuICogIC0gT25seSBDUkVBVEUgYW5kIFVQREFURSAoYW5kIHRoZWlyIGJ1bGsgdmFyaWFudHMpIHByb2R1Y2UgYSBEVE87XG4gKiAgICBhbGwgb3RoZXIgb3BlcmF0aW9ucyByZXR1cm4gdGhlIG9yaWdpbmFsIG1vZGVsIGNsYXNzIHVuY2hhbmdlZC5cbiAqICAtIEBnZW5lcmF0ZWQoKSBwcm9wZXJ0aWVzIChjcmVhdGVkQXQsIHVwZGF0ZWRBdCwgY3JlYXRlZEJ5LCB1cGRhdGVkQnksXG4gKiAgICB1dWlkLCB2ZXJzaW9uLCBAY29tcG9zZWQgcGtzLCDigKYpIGFyZSAqKm5ldmVyKiogZXhwb3NlZCBpbiBhbnkgRFRPLlxuICogIC0gVGhlIEBwaygpIHByb3BlcnR5OlxuICogICAgICDigKIgVVBEQVRFIOKAkyBhbHdheXMgaW5jbHVkZWQuXG4gKiAgICAgIOKAoiBDUkVBVEUgIOKAkyBpbmNsdWRlZCBvbmx5IHdoZW4gdGhlIHBrIGlzIE5PVCBhdXRvLWdlbmVyYXRlZFxuICogICAgICAgICAgICAgICAgICAoY2hlY2tlZCB2aWEgTW9kZWwucGtQcm9wcygpLmdlbmVyYXRlZCBBTkQgTW9kZWwuZ2VuZXJhdGVkKCkpLlxuICogIC0gUmVsYXRpb24gcHJvcGVydGllcyAoQG9uZVRvT25lLCBAb25lVG9NYW55LCDigKYpOlxuICogICAgICDigKIgQ1JFQVRFICDigJMgbmVzdGVkIGFzIER0b0ZvcihDUkVBVEUsIFJlbGF0ZWRNb2RlbCkuIFdoZW4gdGhlIHJlbGF0aW9uXG4gKiAgICAgICAgICAgICAgICAgIGNyZWF0ZXMgYSBjaXJjdWxhciByZWZlcmVuY2UgKG1vZGVsIEEg4oaSIG1vZGVsIEIg4oaSIG1vZGVsIEEpLFxuICogICAgICAgICAgICAgICAgICB0aGUgYmFjay1yZWZlcmVuY2UgdXNlcyB0aGUgcmVsYXRlZCBtb2RlbCdzIFBLIHR5cGVcbiAqICAgICAgICAgICAgICAgICAgKHN0cmluZy9pbnRlZ2VyKSBpbnN0ZWFkIG9mIHRoZSBmdWxsIERUTyB0byBicmVhayB0aGUgY3ljbGUuXG4gKiAgICAgIOKAoiBVUERBVEUgIOKAkyB1bmlvbiBvZiBEdG9Gb3IoVVBEQVRFLCBSZWxhdGVkTW9kZWwpICoqb3IqKiB0aGVcbiAqICAgICAgICAgICAgICAgICAgcmVsYXRlZCBtb2RlbCdzIHByaW1hcnkta2V5IHR5cGUgKHN0cmluZyAvIGludGVnZXIpLFxuICogICAgICAgICAgICAgICAgICBleHByZXNzZWQgYXMgYSBTd2FnZ2VyIG9uZU9mLiBDaXJjdWxhciBiYWNrLXJlZmVyZW5jZXNcbiAqICAgICAgICAgICAgICAgICAgb21pdCB0aGUgRFRPICRyZWYgYW5kIG9ubHkgaW5jbHVkZSB0aGUgUEsgdHlwZS5cbiAqXG4gKiBNZXRhZGF0YS5wcm9wZXJ0aWVzKCkgbm93IHJldHVybnMgQUxMIHByb3BlcnRpZXMgYWNyb3NzIHRoZSBwcm90b3R5cGUgY2hhaW4sXG4gKiBzbyBEVE8gaW5oZXJpdGFuY2UgaXMgbm8gbG9uZ2VyIG5lZWRlZDsgZXZlcnkgRFRPIGlzIGEgZmxhdCBjbGFzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIER0b0ZvcjxNIGV4dGVuZHMgTW9kZWw+KFxuICBvcDogT3BlcmF0aW9uS2V5cyxcbiAgbW9kZWw6IENvbnN0cnVjdG9yPE0+LFxuICBzdGFjazogU2V0PENvbnN0cnVjdG9yPGFueT4+ID0gbmV3IFNldCgpXG4pOiBDb25zdHJ1Y3Rvcjxhbnk+IHtcbiAgaWYgKCFUcmFuc2FjdGlvbk9wZXJhdGlvbktleXMuaW5jbHVkZXMob3ApKSB7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgY29uc3QgY2FjaGUgPSBnZXREdG9DYWNoZShvcCk7XG4gIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChtb2RlbCk7XG4gIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgY29uc3QgaXNVcGRhdGVPcCA9IFtcbiAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgXS5pbmNsdWRlcyhvcCBhcyBhbnkpO1xuXG4gIGNsYXNzIER5bmFtaWNEVE8ge31cbiAgY2FjaGUuc2V0KG1vZGVsLCBEeW5hbWljRFRPKTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRHluYW1pY0RUTywgXCJuYW1lXCIsIHtcbiAgICB2YWx1ZTogYCR7dG9QYXNjYWxDYXNlKG1vZGVsLm5hbWUpfSR7dG9QYXNjYWxDYXNlKG9wKX1EVE9gLFxuICB9KTtcblxuICBjb25zdCBwa1Byb3AgPSAoKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gTW9kZWwucGsobW9kZWwpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH0pKCk7XG5cbiAgY29uc3QgcGtQcm9wc01ldGFkYXRhID0gcGtQcm9wID8gTW9kZWwucGtQcm9wcyhtb2RlbCBhcyBhbnkpIDogdW5kZWZpbmVkO1xuICBjb25zdCBwa0Rlc2lnblR5cGUgPSBwa1Byb3BcbiAgICA/IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBtb2RlbC5wcm90b3R5cGUsIHBrUHJvcCBhcyBzdHJpbmcpXG4gICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHBrVHlwZUlzTnVtZXJpYyA9XG4gICAgcGtEZXNpZ25UeXBlID09PSBOdW1iZXIgfHwgcGtEZXNpZ25UeXBlID09PSBCaWdJbnQ7XG4gIGNvbnN0IHBrSXNHZW5lcmF0ZWQgPVxuICAgICEhcGtQcm9wc01ldGFkYXRhPy5nZW5lcmF0ZWQgfHxcbiAgICAocGtQcm9wXG4gICAgICA/IE1vZGVsLmdlbmVyYXRlZEJ5U2VxdWVuY2UobW9kZWwgYXMgYW55LCBwa1Byb3AgYXMgYW55KSB8fFxuICAgICAgICBpc1Byb3BlcnR5R2VuZXJhdGVkQWNyb3NzSW5oZXJpdGFuY2UobW9kZWwsIHBrUHJvcCBhcyBzdHJpbmcpIHx8XG4gICAgICAgIHBrVHlwZUlzTnVtZXJpY1xuICAgICAgOiBmYWxzZSk7XG5cbiAgY29uc3QgYWxsUHJvcHMgPSBBcnJheS5mcm9tKG5ldyBTZXQoTWV0YWRhdGEucHJvcGVydGllcyhtb2RlbCkgfHwgW10pKTtcbiAgY29uc3QgcmVsYXRpb25zID0gbmV3IFNldDxzdHJpbmc+KChNb2RlbC5yZWxhdGlvbnMobW9kZWwpIGFzIHN0cmluZ1tdKSB8fCBbXSk7XG4gIGNvbnN0IHNjYWxhclByb3BzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcHJvcCBvZiBhbGxQcm9wcykge1xuICAgIGlmICghcHJvcCkgY29udGludWU7XG4gICAgaWYgKHJlbGF0aW9ucy5oYXMocHJvcCkpIGNvbnRpbnVlO1xuXG4gICAgaWYgKHByb3AgPT09IHBrUHJvcCAmJiAhaXNVcGRhdGVPcCAmJiBwa0lzR2VuZXJhdGVkKSBjb250aW51ZTtcbiAgICBpZiAocHJvcCAhPT0gcGtQcm9wICYmIGlzUHJvcGVydHlHZW5lcmF0ZWRBY3Jvc3NJbmhlcml0YW5jZShtb2RlbCwgcHJvcCkpXG4gICAgICBjb250aW51ZTtcblxuICAgIHNjYWxhclByb3BzLnB1c2gocHJvcCk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NhbGFyUHJvcHMpIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gZ2V0VmFsaWRhdGlvbkFjcm9zc0luaGVyaXRhbmNlKG1vZGVsLCBwcm9wKTtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gISF2YWxpZGF0aW9uPy5bVmFsaWRhdGlvbktleXMuUkVRVUlSRURdO1xuICAgIGNvbnN0IHR5cGVIaW50ID1cbiAgICAgIGdldFR5cGVBY3Jvc3NJbmhlcml0YW5jZShtb2RlbCwgcHJvcCkgPz9cbiAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBtb2RlbC5wcm90b3R5cGUsIHByb3ApO1xuXG4gICAgY29uc3QgYXBpT3B0aW9uczogUGFyYW1ldGVyczx0eXBlb2YgQXBpUHJvcGVydHk+WzBdID0ge1xuICAgICAgcmVxdWlyZWQ6IGlzUmVxdWlyZWQsXG4gICAgfTtcbiAgICBpZiAodHlwZUhpbnQpIGFwaU9wdGlvbnMudHlwZSA9IHR5cGVIaW50O1xuXG4gICAgQXBpUHJvcGVydHkoYXBpT3B0aW9ucykoRHluYW1pY0RUTy5wcm90b3R5cGUsIHByb3ApO1xuXG4gICAgY29uc3QgZGVzaWduVHlwZSA9XG4gICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgbW9kZWwucHJvdG90eXBlLCBwcm9wKSA/PyB0eXBlSGludDtcbiAgICBpZiAodHlwZW9mIGRlc2lnblR5cGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICAgIFwiZGVzaWduOnR5cGVcIixcbiAgICAgICAgZGVzaWduVHlwZSxcbiAgICAgICAgRHluYW1pY0RUTy5wcm90b3R5cGUsXG4gICAgICAgIHByb3BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KER5bmFtaWNEVE8ucHJvdG90eXBlLCBwcm9wLCB7XG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgZm9yIChjb25zdCByZWxhdGlvbiBvZiByZWxhdGlvbnMpIHtcbiAgICBjb25zdCByZWxhdGlvbk1ldGEgPSBNZXRhZGF0YS5yZWxhdGlvbnMobW9kZWwsIHJlbGF0aW9uIGFzIGFueSk7XG4gICAgaWYgKCFyZWxhdGlvbk1ldGEpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBNZXRhZGF0YSBmb3IgcmVsYXRpb24gJHtyZWxhdGlvbn0gbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgbGV0IHJlbGF0aW9uVHlwZTogQ29uc3RydWN0b3I8YW55PiB8IHVuZGVmaW5lZCA9XG4gICAgICByZWxhdGlvbk1ldGEuY2xhc3MgYXMgQ29uc3RydWN0b3I8YW55PjtcbiAgICBpZiAodHlwZW9mIHJlbGF0aW9uVHlwZSA9PT0gXCJmdW5jdGlvblwiICYmICFyZWxhdGlvblR5cGUubmFtZSkge1xuICAgICAgcmVsYXRpb25UeXBlID0gKHJlbGF0aW9uVHlwZSBhcyBhbnkpKCk7XG4gICAgfVxuICAgIGlmICghcmVsYXRpb25UeXBlIHx8IHR5cGVvZiByZWxhdGlvblR5cGUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFR5cGUgZm9yIHJlbGF0aW9uICR7cmVsYXRpb259IG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICBpZiAoIU1vZGVsLmdldChyZWxhdGlvblR5cGUubmFtZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS52YWxpZGF0aW9uRm9yKG1vZGVsLCByZWxhdGlvbiBhcyBhbnkpO1xuICAgIGNvbnN0IGlzQXJyYXkgPSAhIShtZXRhIGFzIGFueSk/LltWYWxpZGF0aW9uS2V5cy5MSVNUXTtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gISEobWV0YSBhcyBhbnkpPy5bVmFsaWRhdGlvbktleXMuUkVRVUlSRURdO1xuXG4gICAgLy8gRGV0ZWN0IGNpcmN1bGFyIHJlZmVyZW5jZTogaWYgdGhlIHJlbGF0ZWQgbW9kZWwgaXMgYWxyZWFkeSBpbiB0aGVcbiAgICAvLyByZWN1cnNpb24gc3RhY2ssIHVzZSB0aGUgUEsgdHlwZSBpbnN0ZWFkIG9mIHRoZSBmdWxsIERUTyB0byBicmVha1xuICAgIC8vIHRoZSBjeWNsZS4gVGhpcyBwcmV2ZW50cyBAbmVzdGpzL3N3YWdnZXIncyBTY2hlbWFPYmplY3RGYWN0b3J5IGZyb21cbiAgICAvLyBpbmZpbml0ZWx5IHJlY3Vyc2luZyB3aGVuIGV4cGxvcmluZyB0aGUgc2NoZW1hcy5cbiAgICBjb25zdCBpc0NpcmN1bGFyID0gc3RhY2suaGFzKHJlbGF0aW9uVHlwZSk7XG5cbiAgICBpZiAoaXNDaXJjdWxhcikge1xuICAgICAgY29uc3QgcGtUeXBlTmFtZSA9IGdldFBrT3BlbkFwaVR5cGUocmVsYXRpb25UeXBlKTtcbiAgICAgIGFkZFJlbGF0aW9uUGtSZWYoRHluYW1pY0RUTywgcmVsYXRpb24sIHBrVHlwZU5hbWUsIGlzQXJyYXksIGlzUmVxdWlyZWQpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsYXRpb25EdG8gPSBEdG9Gb3Iob3AsIHJlbGF0aW9uVHlwZSwgbmV3IFNldChzdGFjaykuYWRkKG1vZGVsKSk7XG5cbiAgICBpZiAoaXNVcGRhdGVPcCkge1xuICAgICAgYWRkUmVsYXRpb25VcGRhdGUoXG4gICAgICAgIER5bmFtaWNEVE8sXG4gICAgICAgIHJlbGF0aW9uLFxuICAgICAgICByZWxhdGlvblR5cGUsXG4gICAgICAgIHJlbGF0aW9uRHRvLFxuICAgICAgICBpc0FycmF5LFxuICAgICAgICBpc1JlcXVpcmVkXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZGRSZWxhdGlvbihEeW5hbWljRFRPLCByZWxhdGlvbiwgcmVsYXRpb25EdG8sIGlzQXJyYXksIGlzUmVxdWlyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBEeW5hbWljRFRPO1xufVxuXG5mdW5jdGlvbiBhZGRSZWxhdGlvbihcbiAgRHRvQ2xhc3M6IGFueSxcbiAgcmVsYXRpb246IHN0cmluZyxcbiAgcmVsYXRpb25EdG86IGFueSxcbiAgaXNBcnJheTogYm9vbGVhbixcbiAgaXNSZXF1aXJlZDogYm9vbGVhblxuKTogdm9pZCB7XG4gIGNvbnN0IGFwaU9wdGlvbnM6IFBhcmFtZXRlcnM8dHlwZW9mIEFwaVByb3BlcnR5PlswXSA9IHtcbiAgICB0eXBlOiByZWxhdGlvbkR0byxcbiAgICByZXF1aXJlZDogaXNSZXF1aXJlZCxcbiAgICBpc0FycmF5LFxuICB9O1xuICBBcGlQcm9wZXJ0eShhcGlPcHRpb25zKShEdG9DbGFzcy5wcm90b3R5cGUsIHJlbGF0aW9uKTtcbiAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICBcImRlc2lnbjp0eXBlXCIsXG4gICAgaXNBcnJheSA/IEFycmF5IDogcmVsYXRpb25EdG8sXG4gICAgRHRvQ2xhc3MucHJvdG90eXBlLFxuICAgIHJlbGF0aW9uXG4gICk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdG9DbGFzcy5wcm90b3R5cGUsIHJlbGF0aW9uLCB7XG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSk7XG59XG5cbi8qKlxuICogQWRkcyBhIHJlbGF0aW9uIHByb3BlcnR5IHRoYXQgdXNlcyB0aGUgUEsgdHlwZSAoc3RyaW5nL2ludGVnZXIpIGluc3RlYWQgb2ZcbiAqIGEgZnVsbCBEVE8gY2xhc3MuIFVzZWQgdG8gYnJlYWsgY2lyY3VsYXIgcmVmZXJlbmNlcyAoZS5nLiBDdXN0b21lciDihpIgT3JkZXIg4oaSIEN1c3RvbWVyKS5cbiAqL1xuZnVuY3Rpb24gYWRkUmVsYXRpb25Qa1JlZihcbiAgRHRvQ2xhc3M6IGFueSxcbiAgcmVsYXRpb246IHN0cmluZyxcbiAgcGtUeXBlTmFtZTogc3RyaW5nLFxuICBpc0FycmF5OiBib29sZWFuLFxuICBpc1JlcXVpcmVkOiBib29sZWFuXG4pOiB2b2lkIHtcbiAgY29uc3QgYXBpT3B0aW9uczogUGFyYW1ldGVyczx0eXBlb2YgQXBpUHJvcGVydHk+WzBdID0gaXNBcnJheVxuICAgID8gKHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBwa1R5cGVOYW1lIH0sIHJlcXVpcmVkOiBpc1JlcXVpcmVkIH0gYXMgYW55KVxuICAgIDogKHsgdHlwZTogcGtUeXBlTmFtZSA9PT0gXCJpbnRlZ2VyXCIgPyBOdW1iZXIgOiBTdHJpbmcsIHJlcXVpcmVkOiBpc1JlcXVpcmVkIH0gYXMgYW55KTtcbiAgQXBpUHJvcGVydHkoYXBpT3B0aW9ucykoRHRvQ2xhc3MucHJvdG90eXBlLCByZWxhdGlvbik7XG4gIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgXCJkZXNpZ246dHlwZVwiLFxuICAgIGlzQXJyYXkgPyBBcnJheSA6IChwa1R5cGVOYW1lID09PSBcImludGVnZXJcIiA/IE51bWJlciA6IFN0cmluZyksXG4gICAgRHRvQ2xhc3MucHJvdG90eXBlLFxuICAgIHJlbGF0aW9uXG4gICk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdG9DbGFzcy5wcm90b3R5cGUsIHJlbGF0aW9uLCB7XG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZFJlbGF0aW9uVXBkYXRlKFxuICBEdG9DbGFzczogYW55LFxuICByZWxhdGlvbjogc3RyaW5nLFxuICByZWxhdGlvblR5cGU6IENvbnN0cnVjdG9yPGFueT4sXG4gIHJlbGF0aW9uRHRvOiBhbnksXG4gIGlzQXJyYXk6IGJvb2xlYW4sXG4gIGlzUmVxdWlyZWQ6IGJvb2xlYW5cbik6IHZvaWQge1xuICBjb25zdCBleHRyYU1vZGVscyA9XG4gICAgUmVmbGVjdC5nZXRNZXRhZGF0YShERUNPUkFUT1JTLkFQSV9FWFRSQV9NT0RFTFMsIER0b0NsYXNzKSB8fCBbXTtcbiAgaWYgKCFleHRyYU1vZGVscy5pbmNsdWRlcyhyZWxhdGlvbkR0bykpIHtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgREVDT1JBVE9SUy5BUElfRVhUUkFfTU9ERUxTLFxuICAgICAgWy4uLmV4dHJhTW9kZWxzLCByZWxhdGlvbkR0b10sXG4gICAgICBEdG9DbGFzc1xuICAgICk7XG4gIH1cblxuICBjb25zdCBkdG9SZWYgPSBgIy9jb21wb25lbnRzL3NjaGVtYXMvJHtyZWxhdGlvbkR0by5uYW1lfWA7XG4gIGNvbnN0IHBrVHlwZU5hbWUgPSBnZXRQa09wZW5BcGlUeXBlKHJlbGF0aW9uVHlwZSk7XG4gIGNvbnN0IG9uZU9mSXRlbXMgPSBbeyAkcmVmOiBkdG9SZWYgfSwgeyB0eXBlOiBwa1R5cGVOYW1lIH1dO1xuXG4gIGNvbnN0IGFwaU9wdGlvbnM6IFBhcmFtZXRlcnM8dHlwZW9mIEFwaVByb3BlcnR5PlswXSA9IGlzQXJyYXlcbiAgICA/ICh7IHR5cGU6IFwiYXJyYXlcIiwgcmVxdWlyZWQ6IGlzUmVxdWlyZWQsIG9uZU9mOiBvbmVPZkl0ZW1zIH0gYXMgYW55KVxuICAgIDogKHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogaXNSZXF1aXJlZCwgb25lT2Y6IG9uZU9mSXRlbXMgfSBhcyBhbnkpO1xuXG4gIEFwaVByb3BlcnR5KGFwaU9wdGlvbnMpKER0b0NsYXNzLnByb3RvdHlwZSwgcmVsYXRpb24pO1xuICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgIFwiZGVzaWduOnR5cGVcIixcbiAgICBpc0FycmF5ID8gQXJyYXkgOiBPYmplY3QsXG4gICAgRHRvQ2xhc3MucHJvdG90eXBlLFxuICAgIHJlbGF0aW9uXG4gICk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdG9DbGFzcy5wcm90b3R5cGUsIHJlbGF0aW9uLCB7XG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFBrT3BlbkFwaVR5cGUocmVsYXRpb25UeXBlOiBDb25zdHJ1Y3Rvcjxhbnk+KTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwa1Byb3BzTWV0YWRhdGEgPSBNb2RlbC5wa1Byb3BzKHJlbGF0aW9uVHlwZSBhcyBhbnkpO1xuICAgIGNvbnN0IHBrVHlwZSA9IHBrUHJvcHNNZXRhZGF0YT8udHlwZTtcbiAgICBpZiAocGtUeXBlID09PSBOdW1iZXIgfHwgcGtUeXBlID09PSBCaWdJbnQpIHJldHVybiBcImludGVnZXJcIjtcbiAgICByZXR1cm4gXCJzdHJpbmdcIjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFwic3RyaW5nXCI7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNQcm9wZXJ0eUdlbmVyYXRlZEFjcm9zc0luaGVyaXRhbmNlKFxuICBtb2RlbDogQ29uc3RydWN0b3I8YW55PixcbiAgcHJvcDogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgbGV0IGN1cnJlbnQ6IGFueSA9IG1vZGVsO1xuICB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9PSBPYmplY3QgJiYgY3VycmVudCAhPT0gRnVuY3Rpb24pIHtcbiAgICBpZiAoTW9kZWwuZ2VuZXJhdGVkKGN1cnJlbnQsIHByb3AgYXMgYW55KSkgcmV0dXJuIHRydWU7XG4gICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldFZhbGlkYXRpb25BY3Jvc3NJbmhlcml0YW5jZShcbiAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4sXG4gIHByb3A6IHN0cmluZ1xuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGxldCBjdXJyZW50OiBhbnkgPSBtb2RlbDtcbiAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gT2JqZWN0ICYmIGN1cnJlbnQgIT09IEZ1bmN0aW9uKSB7XG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IE1ldGFkYXRhLnZhbGlkYXRpb25Gb3IoY3VycmVudCwgcHJvcCBhcyBhbnkpO1xuICAgIGlmICh2YWxpZGF0aW9uKSByZXR1cm4gdmFsaWRhdGlvbiBhcyBhbnk7XG4gICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRUeXBlQWNyb3NzSW5oZXJpdGFuY2UobW9kZWw6IENvbnN0cnVjdG9yPGFueT4sIHByb3A6IHN0cmluZyk6IGFueSB7XG4gIGxldCBjdXJyZW50OiBhbnkgPSBtb2RlbDtcbiAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gT2JqZWN0ICYmIGN1cnJlbnQgIT09IEZ1bmN0aW9uKSB7XG4gICAgY29uc3QgdHlwZSA9IE1ldGFkYXRhLnR5cGUoY3VycmVudCwgcHJvcCk7XG4gICAgaWYgKHR5cGUpIHJldHVybiB0eXBlO1xuICAgIGN1cnJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3VycmVudCk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0RHRvQ2FjaGUoXG4gIG9wOiBPcGVyYXRpb25LZXlzXG4pOiBXZWFrTWFwPENvbnN0cnVjdG9yPGFueT4sIENvbnN0cnVjdG9yPGFueT4+IHtcbiAgaWYgKCFkdG9DYWNoZS5oYXMob3ApKSB7XG4gICAgZHRvQ2FjaGUuc2V0KG9wLCBuZXcgV2Vha01hcCgpKTtcbiAgfVxuICByZXR1cm4gZHRvQ2FjaGUuZ2V0KG9wKSE7XG59XG4iXX0=
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHRvQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkR0b0J1aWxkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQ0Esd0JBOEdDO0FBL0lELDJEQUErRjtBQUMvRixxREFBZ0Q7QUFDaEQsbUVBQThEO0FBQzlELHlFQUF1RTtBQUN2RSx5Q0FBMEQ7QUFDMUQsK0NBQWlEO0FBQ2pELGlFQUE0RDtBQUM1RCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxTQUFnQixNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUU7SUFDL0MsSUFBSSxDQUFDLCtCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxJQUFJLE1BQU07UUFDTixPQUFPLE1BQU0sQ0FBQztJQUNsQixNQUFNLFVBQVUsR0FBRztRQUNmLDZCQUFhLENBQUMsTUFBTTtRQUNwQixxQ0FBcUIsQ0FBQyxVQUFVO0tBQ25DLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2YsTUFBTSxVQUFVO0tBQ2Y7SUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3QixNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7UUFDdEMsS0FBSyxFQUFFLEdBQUcsSUFBQSxzQkFBWSxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLHNCQUFZLEVBQUMsRUFBRSxDQUFDLEtBQUs7S0FDN0QsQ0FBQyxD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SUFDRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUNELHMweUJBQXMweUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIEludGVybmFsRXJyb3IsIE9wZXJhdGlvbktleXMsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgQXBpUHJvcGVydHkgfSBmcm9tIFwiLi8uLi8uLi9vdmVycmlkZXMvZGVjb3JhdGlvbi5qc1wiO1xuaW1wb3J0IHsgTW9kZWwsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IERFQ09SQVRPUlMgfSBmcm9tIFwiLi8uLi8uLi9vdmVycmlkZXMvY29uc3RhbnRzLmpzXCI7XG5jb25zdCBkdG9DYWNoZSA9IG5ldyBNYXAoKTtcbi8qKlxuICogQnVpbGRzIGEgTmVzdC9Td2FnZ2VyIERUTyBjbGFzcyBmb3IgdGhlIGdpdmVuIG1vZGVsIGFuZCBDUlVEIG9wZXJhdGlvbi5cbiAqXG4gKiBSdWxlczpcbiAqICAtIE9ubHkgQ1JFQVRFIGFuZCBVUERBVEUgKGFuZCB0aGVpciBidWxrIHZhcmlhbnRzKSBwcm9kdWNlIGEgRFRPO1xuICogICAgYWxsIG90aGVyIG9wZXJhdGlvbnMgcmV0dXJuIHRoZSBvcmlnaW5hbCBtb2RlbCBjbGFzcyB1bmNoYW5nZWQuXG4gKiAgLSBAZ2VuZXJhdGVkKCkgcHJvcGVydGllcyAoY3JlYXRlZEF0LCB1cGRhdGVkQXQsIGNyZWF0ZWRCeSwgdXBkYXRlZEJ5LFxuICogICAgdXVpZCwgdmVyc2lvbiwgQGNvbXBvc2VkIHBrcywg4oCmKSBhcmUgKipuZXZlcioqIGV4cG9zZWQgaW4gYW55IERUTy5cbiAqICAtIFRoZSBAcGsoKSBwcm9wZXJ0eTpcbiAqICAgICAg4oCiIFVQREFURSDigJMgYWx3YXlzIGluY2x1ZGVkLlxuICogICAgICDigKIgQ1JFQVRFICDigJMgaW5jbHVkZWQgb25seSB3aGVuIHRoZSBwayBpcyBOT1QgYXV0by1nZW5lcmF0ZWRcbiAqICAgICAgICAgICAgICAgICAgKGNoZWNrZWQgdmlhIE1vZGVsLnBrUHJvcHMoKS5nZW5lcmF0ZWQgQU5EIE1vZGVsLmdlbmVyYXRlZCgpKS5cbiAqICAtIFJlbGF0aW9uIHByb3BlcnRpZXMgKEBvbmVUb09uZSwgQG9uZVRvTWFueSwg4oCmKTpcbiAqICAgICAg4oCiIENSRUFURSAg4oCTIG5lc3RlZCBhcyBEdG9Gb3IoQ1JFQVRFLCBSZWxhdGVkTW9kZWwpLiBXaGVuIHRoZSByZWxhdGlvblxuICogICAgICAgICAgICAgICAgICBjcmVhdGVzIGEgY2lyY3VsYXIgcmVmZXJlbmNlIChtb2RlbCBBIOKGkiBtb2RlbCBCIOKGkiBtb2RlbCBBKSxcbiAqICAgICAgICAgICAgICAgICAgdGhlIGJhY2stcmVmZXJlbmNlIHVzZXMgdGhlIHJlbGF0ZWQgbW9kZWwncyBQSyB0eXBlXG4gKiAgICAgICAgICAgICAgICAgIChzdHJpbmcvaW50ZWdlcikgaW5zdGVhZCBvZiB0aGUgZnVsbCBEVE8gdG8gYnJlYWsgdGhlIGN5Y2xlLlxuICogICAgICDigKIgVVBEQVRFICDigJMgdW5pb24gb2YgRHRvRm9yKFVQREFURSwgUmVsYXRlZE1vZGVsKSAqKm9yKiogdGhlXG4gKiAgICAgICAgICAgICAgICAgIHJlbGF0ZWQgbW9kZWwncyBwcmltYXJ5LWtleSB0eXBlIChzdHJpbmcgLyBpbnRlZ2VyKSxcbiAqICAgICAgICAgICAgICAgICAgZXhwcmVzc2VkIGFzIGEgU3dhZ2dlciBvbmVPZi4gQ2lyY3VsYXIgYmFjay1yZWZlcmVuY2VzXG4gKiAgICAgICAgICAgICAgICAgIG9taXQgdGhlIERUTyAkcmVmIGFuZCBvbmx5IGluY2x1ZGUgdGhlIFBLIHR5cGUuXG4gKlxuICogTWV0YWRhdGEucHJvcGVydGllcygpIG5vdyByZXR1cm5zIEFMTCBwcm9wZXJ0aWVzIGFjcm9zcyB0aGUgcHJvdG90eXBlIGNoYWluLFxuICogc28gRFRPIGluaGVyaXRhbmNlIGlzIG5vIGxvbmdlciBuZWVkZWQ7IGV2ZXJ5IERUTyBpcyBhIGZsYXQgY2xhc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEdG9Gb3Iob3AsIG1vZGVsLCBzdGFjayA9IG5ldyBTZXQoKSkge1xuICAgIGlmICghVHJhbnNhY3Rpb25PcGVyYXRpb25LZXlzLmluY2x1ZGVzKG9wKSkge1xuICAgICAgICByZXR1cm4gbW9kZWw7XG4gICAgfVxuICAgIGNvbnN0IGNhY2hlID0gZ2V0RHRvQ2FjaGUob3ApO1xuICAgIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChtb2RlbCk7XG4gICAgaWYgKGNhY2hlZClcbiAgICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICBjb25zdCBpc1VwZGF0ZU9wID0gW1xuICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEwsXG4gICAgXS5pbmNsdWRlcyhvcCk7XG4gICAgY2xhc3MgRHluYW1pY0RUTyB7XG4gICAgfVxuICAgIGNhY2hlLnNldChtb2RlbCwgRHluYW1pY0RUTyk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KER5bmFtaWNEVE8sIFwibmFtZVwiLCB7XG4gICAgICAgIHZhbHVlOiBgJHt0b1Bhc2NhbENhc2UobW9kZWwubmFtZSl9JHt0b1Bhc2NhbENhc2Uob3ApfURUT2AsXG4gICAgfSk7XG4gICAgY29uc3QgcGtQcm9wID0gKCgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBNb2RlbC5wayhtb2RlbCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH0pKCk7XG4gICAgY29uc3QgcGtQcm9wc01ldGFkYXRhID0gcGtQcm9wID8gTW9kZWwucGtQcm9wcyhtb2RlbCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGtEZXNpZ25UeXBlID0gcGtQcm9wXG4gICAgICAgID8gUmVmbGVjdC5nZXRNZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIG1vZGVsLnByb3RvdHlwZSwgcGtQcm9wKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwa1R5cGVJc051bWVyaWMgPSBwa0Rlc2lnblR5cGUgPT09IE51bWJlciB8fCBwa0Rlc2lnblR5cGUgPT09IEJpZ0ludDtcbiAgICBjb25zdCBwa0lzR2VuZXJhdGVkID0gISFwa1Byb3BzTWV0YWRhdGE/LmdlbmVyYXRlZCB8fFxuICAgICAgICAocGtQcm9wXG4gICAgICAgICAgICA/IE1vZGVsLmdlbmVyYXRlZEJ5U2VxdWVuY2UobW9kZWwsIHBrUHJvcCkgfHxcbiAgICAgICAgICAgICAgICBpc1Byb3BlcnR5R2VuZXJhdGVkQWNyb3NzSW5oZXJpdGFuY2UobW9kZWwsIHBrUHJvcCkgfHxcbiAgICAgICAgICAgICAgICBwa1R5cGVJc051bWVyaWNcbiAgICAgICAgICAgIDogZmFsc2UpO1xuICAgIGNvbnN0IGFsbFByb3BzID0gQXJyYXkuZnJvbShuZXcgU2V0KE1ldGFkYXRhLnByb3BlcnRpZXMobW9kZWwpIHx8IFtdKSk7XG4gICAgY29uc3QgcmVsYXRpb25zID0gbmV3IFNldChNb2RlbC5yZWxhdGlvbnMobW9kZWwpIHx8IFtdKTtcbiAgICBjb25zdCBzY2FsYXJQcm9wcyA9IFtdO1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGxQcm9wcykge1xuICAgICAgICBpZiAoIXByb3ApXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKHJlbGF0aW9ucy5oYXMocHJvcCkpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKHByb3AgPT09IHBrUHJvcCAmJiAhaXNVcGRhdGVPcCAmJiBwa0lzR2VuZXJhdGVkKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChwcm9wICE9PSBwa1Byb3AgJiYgaXNQcm9wZXJ0eUdlbmVyYXRlZEFjcm9zc0luaGVyaXRhbmNlKG1vZGVsLCBwcm9wKSlcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBzY2FsYXJQcm9wcy5wdXNoKHByb3ApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NhbGFyUHJvcHMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGlvbiA9IGdldFZhbGlkYXRpb25BY3Jvc3NJbmhlcml0YW5jZShtb2RlbCwgcHJvcCk7XG4gICAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSAhIXZhbGlkYXRpb24/LltWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRF07XG4gICAgICAgIGNvbnN0IHR5cGVIaW50ID0gZ2V0VHlwZUFjcm9zc0luaGVyaXRhbmNlKG1vZGVsLCBwcm9wKSA/P1xuICAgICAgICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIG1vZGVsLnByb3RvdHlwZSwgcHJvcCk7XG4gICAgICAgIGNvbnN0IGFwaU9wdGlvbnMgPSB7XG4gICAgICAgICAgICByZXF1aXJlZDogaXNSZXF1aXJlZCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR5cGVIaW50KVxuICAgICAgICAgICAgYXBpT3B0aW9ucy50eXBlID0gdHlwZUhpbnQ7XG4gICAgICAgIEFwaVByb3BlcnR5KGFwaU9wdGlvbnMpKER5bmFtaWNEVE8ucHJvdG90eXBlLCBwcm9wKTtcbiAgICAgICAgY29uc3QgZGVzaWduVHlwZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBtb2RlbC5wcm90b3R5cGUsIHByb3ApID8/IHR5cGVIaW50O1xuICAgICAgICBpZiAodHlwZW9mIGRlc2lnblR5cGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBkZXNpZ25UeXBlLCBEeW5hbWljRFRPLnByb3RvdHlwZSwgcHJvcCk7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KER5bmFtaWNEVE8ucHJvdG90eXBlLCBwcm9wLCB7XG4gICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZm9yIChjb25zdCByZWxhdGlvbiBvZiByZWxhdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcmVsYXRpb25NZXRhID0gTWV0YWRhdGEucmVsYXRpb25zKG1vZGVsLCByZWxhdGlvbik7XG4gICAgICAgIGlmICghcmVsYXRpb25NZXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTWV0YWRhdGEgZm9yIHJlbGF0aW9uICR7cmVsYXRpb259IG5vdCBmb3VuZGApO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZWxhdGlvblR5cGUgPSByZWxhdGlvbk1ldGEuY2xhc3M7XG4gICAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UeXBlID09PSBcImZ1bmN0aW9uXCIgJiYgIXJlbGF0aW9uVHlwZS5uYW1lKSB7XG4gICAgICAgICAgICByZWxhdGlvblR5cGUgPSByZWxhdGlvblR5cGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJlbGF0aW9uVHlwZSB8fCB0eXBlb2YgcmVsYXRpb25UeXBlICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBUeXBlIGZvciByZWxhdGlvbiAke3JlbGF0aW9ufSBub3QgZm91bmRgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIU1vZGVsLmdldChyZWxhdGlvblR5cGUubmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS52YWxpZGF0aW9uRm9yKG1vZGVsLCByZWxhdGlvbik7XG4gICAgICAgIGNvbnN0IGlzQXJyYXkgPSAhIW1ldGE/LltWYWxpZGF0aW9uS2V5cy5MSVNUXTtcbiAgICAgICAgY29uc3QgaXNSZXF1aXJlZCA9ICEhbWV0YT8uW1ZhbGlkYXRpb25LZXlzLlJFUVVJUkVEXTtcbiAgICAgICAgLy8gRGV0ZWN0IGNpcmN1bGFyIHJlZmVyZW5jZTogaWYgdGhlIHJlbGF0ZWQgbW9kZWwgaXMgYWxyZWFkeSBpbiB0aGVcbiAgICAgICAgLy8gcmVjdXJzaW9uIHN0YWNrLCB1c2UgdGhlIFBLIHR5cGUgaW5zdGVhZCBvZiB0aGUgZnVsbCBEVE8gdG8gYnJlYWtcbiAgICAgICAgLy8gdGhlIGN5Y2xlLiBUaGlzIHByZXZlbnRzIEBuZXN0anMvc3dhZ2dlcidzIFNjaGVtYU9iamVjdEZhY3RvcnkgZnJvbVxuICAgICAgICAvLyBpbmZpbml0ZWx5IHJlY3Vyc2luZyB3aGVuIGV4cGxvcmluZyB0aGUgc2NoZW1hcy5cbiAgICAgICAgY29uc3QgaXNDaXJjdWxhciA9IHN0YWNrLmhhcyhyZWxhdGlvblR5cGUpO1xuICAgICAgICBpZiAoaXNDaXJjdWxhcikge1xuICAgICAgICAgICAgY29uc3QgcGtUeXBlTmFtZSA9IGdldFBrT3BlbkFwaVR5cGUocmVsYXRpb25UeXBlKTtcbiAgICAgICAgICAgIGFkZFJlbGF0aW9uUGtSZWYoRHluYW1pY0RUTywgcmVsYXRpb24sIHBrVHlwZU5hbWUsIGlzQXJyYXksIGlzUmVxdWlyZWQpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVsYXRpb25EdG8gPSBEdG9Gb3Iob3AsIHJlbGF0aW9uVHlwZSwgbmV3IFNldChzdGFjaykuYWRkKG1vZGVsKSk7XG4gICAgICAgIGlmIChpc1VwZGF0ZU9wKSB7XG4gICAgICAgICAgICBhZGRSZWxhdGlvblVwZGF0ZShEeW5hbWljRFRPLCByZWxhdGlvbiwgcmVsYXRpb25UeXBlLCByZWxhdGlvbkR0bywgaXNBcnJheSwgaXNSZXF1aXJlZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhZGRSZWxhdGlvbihEeW5hbWljRFRPLCByZWxhdGlvbiwgcmVsYXRpb25EdG8sIGlzQXJyYXksIGlzUmVxdWlyZWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBEeW5hbWljRFRPO1xufVxuZnVuY3Rpb24gYWRkUmVsYXRpb24oRHRvQ2xhc3MsIHJlbGF0aW9uLCByZWxhdGlvbkR0bywgaXNBcnJheSwgaXNSZXF1aXJlZCkge1xuICAgIGNvbnN0IGFwaU9wdGlvbnMgPSB7XG4gICAgICAgIHR5cGU6IHJlbGF0aW9uRHRvLFxuICAgICAgICByZXF1aXJlZDogaXNSZXF1aXJlZCxcbiAgICAgICAgaXNBcnJheSxcbiAgICB9O1xuICAgIEFwaVByb3BlcnR5KGFwaU9wdGlvbnMpKER0b0NsYXNzLnByb3RvdHlwZSwgcmVsYXRpb24pO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBpc0FycmF5ID8gQXJyYXkgOiByZWxhdGlvbkR0bywgRHRvQ2xhc3MucHJvdG90eXBlLCByZWxhdGlvbik7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KER0b0NsYXNzLnByb3RvdHlwZSwgcmVsYXRpb24sIHtcbiAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbn1cbi8qKlxuICogQWRkcyBhIHJlbGF0aW9uIHByb3BlcnR5IHRoYXQgdXNlcyB0aGUgUEsgdHlwZSAoc3RyaW5nL2ludGVnZXIpIGluc3RlYWQgb2ZcbiAqIGEgZnVsbCBEVE8gY2xhc3MuIFVzZWQgdG8gYnJlYWsgY2lyY3VsYXIgcmVmZXJlbmNlcyAoZS5nLiBDdXN0b21lciDihpIgT3JkZXIg4oaSIEN1c3RvbWVyKS5cbiAqL1xuZnVuY3Rpb24gYWRkUmVsYXRpb25Qa1JlZihEdG9DbGFzcywgcmVsYXRpb24sIHBrVHlwZU5hbWUsIGlzQXJyYXksIGlzUmVxdWlyZWQpIHtcbiAgICBjb25zdCBhcGlPcHRpb25zID0gaXNBcnJheVxuICAgICAgICA/IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBwa1R5cGVOYW1lIH0sIHJlcXVpcmVkOiBpc1JlcXVpcmVkIH1cbiAgICAgICAgOiB7IHR5cGU6IHBrVHlwZU5hbWUgPT09IFwiaW50ZWdlclwiID8gTnVtYmVyIDogU3RyaW5nLCByZXF1aXJlZDogaXNSZXF1aXJlZCB9O1xuICAgIEFwaVByb3BlcnR5KGFwaU9wdGlvbnMpKER0b0NsYXNzLnByb3RvdHlwZSwgcmVsYXRpb24pO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBpc0FycmF5ID8gQXJyYXkgOiAocGtUeXBlTmFtZSA9PT0gXCJpbnRlZ2VyXCIgPyBOdW1iZXIgOiBTdHJpbmcpLCBEdG9DbGFzcy5wcm90b3R5cGUsIHJlbGF0aW9uKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRHRvQ2xhc3MucHJvdG90eXBlLCByZWxhdGlvbiwge1xuICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xufVxuZnVuY3Rpb24gYWRkUmVsYXRpb25VcGRhdGUoRHRvQ2xhc3MsIHJlbGF0aW9uLCByZWxhdGlvblR5cGUsIHJlbGF0aW9uRHRvLCBpc0FycmF5LCBpc1JlcXVpcmVkKSB7XG4gICAgY29uc3QgZXh0cmFNb2RlbHMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKERFQ09SQVRPUlMuQVBJX0VYVFJBX01PREVMUywgRHRvQ2xhc3MpIHx8IFtdO1xuICAgIGlmICghZXh0cmFNb2RlbHMuaW5jbHVkZXMocmVsYXRpb25EdG8pKSB7XG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoREVDT1JBVE9SUy5BUElfRVhUUkFfTU9ERUxTLCBbLi4uZXh0cmFNb2RlbHMsIHJlbGF0aW9uRHRvXSwgRHRvQ2xhc3MpO1xuICAgIH1cbiAgICBjb25zdCBkdG9SZWYgPSBgIy9jb21wb25lbnRzL3NjaGVtYXMvJHtyZWxhdGlvbkR0by5uYW1lfWA7XG4gICAgY29uc3QgcGtUeXBlTmFtZSA9IGdldFBrT3BlbkFwaVR5cGUocmVsYXRpb25UeXBlKTtcbiAgICBjb25zdCBvbmVPZkl0ZW1zID0gW3sgJHJlZjogZHRvUmVmIH0sIHsgdHlwZTogcGtUeXBlTmFtZSB9XTtcbiAgICBjb25zdCBhcGlPcHRpb25zID0gaXNBcnJheVxuICAgICAgICA/IHsgdHlwZTogXCJhcnJheVwiLCByZXF1aXJlZDogaXNSZXF1aXJlZCwgb25lT2Y6IG9uZU9mSXRlbXMgfVxuICAgICAgICA6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogaXNSZXF1aXJlZCwgb25lT2Y6IG9uZU9mSXRlbXMgfTtcbiAgICBBcGlQcm9wZXJ0eShhcGlPcHRpb25zKShEdG9DbGFzcy5wcm90b3R5cGUsIHJlbGF0aW9uKTtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgaXNBcnJheSA/IEFycmF5IDogT2JqZWN0LCBEdG9DbGFzcy5wcm90b3R5cGUsIHJlbGF0aW9uKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRHRvQ2xhc3MucHJvdG90eXBlLCByZWxhdGlvbiwge1xuICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0UGtPcGVuQXBpVHlwZShyZWxhdGlvblR5cGUpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBwa1Byb3BzTWV0YWRhdGEgPSBNb2RlbC5wa1Byb3BzKHJlbGF0aW9uVHlwZSk7XG4gICAgICAgIGNvbnN0IHBrVHlwZSA9IHBrUHJvcHNNZXRhZGF0YT8udHlwZTtcbiAgICAgICAgaWYgKHBrVHlwZSA9PT0gTnVtYmVyIHx8IHBrVHlwZSA9PT0gQmlnSW50KVxuICAgICAgICAgICAgcmV0dXJuIFwiaW50ZWdlclwiO1xuICAgICAgICByZXR1cm4gXCJzdHJpbmdcIjtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICByZXR1cm4gXCJzdHJpbmdcIjtcbiAgICB9XG59XG5mdW5jdGlvbiBpc1Byb3BlcnR5R2VuZXJhdGVkQWNyb3NzSW5oZXJpdGFuY2UobW9kZWwsIHByb3ApIHtcbiAgICBsZXQgY3VycmVudCA9IG1vZGVsO1xuICAgIHdoaWxlIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IE9iamVjdCAmJiBjdXJyZW50ICE9PSBGdW5jdGlvbikge1xuICAgICAgICBpZiAoTW9kZWwuZ2VuZXJhdGVkKGN1cnJlbnQsIHByb3ApKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGN1cnJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3VycmVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdldFZhbGlkYXRpb25BY3Jvc3NJbmhlcml0YW5jZShtb2RlbCwgcHJvcCkge1xuICAgIGxldCBjdXJyZW50ID0gbW9kZWw7XG4gICAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gT2JqZWN0ICYmIGN1cnJlbnQgIT09IEZ1bmN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb24gPSBNZXRhZGF0YS52YWxpZGF0aW9uRm9yKGN1cnJlbnQsIHByb3ApO1xuICAgICAgICBpZiAodmFsaWRhdGlvbilcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uO1xuICAgICAgICBjdXJyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGN1cnJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gZ2V0VHlwZUFjcm9zc0luaGVyaXRhbmNlKG1vZGVsLCBwcm9wKSB7XG4gICAgbGV0IGN1cnJlbnQgPSBtb2RlbDtcbiAgICB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9PSBPYmplY3QgJiYgY3VycmVudCAhPT0gRnVuY3Rpb24pIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IE1ldGFkYXRhLnR5cGUoY3VycmVudCwgcHJvcCk7XG4gICAgICAgIGlmICh0eXBlKVxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgIGN1cnJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3VycmVudCk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBnZXREdG9DYWNoZShvcCkge1xuICAgIGlmICghZHRvQ2FjaGUuaGFzKG9wKSkge1xuICAgICAgICBkdG9DYWNoZS5zZXQob3AsIG5ldyBXZWFrTWFwKCkpO1xuICAgIH1cbiAgICByZXR1cm4gZHRvQ2FjaGUuZ2V0KG9wKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJIUnZRblZwYkdSbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTltWVdOMGIzSjVMMjl3Wlc1aGNHa3ZSSFJ2UW5WcGJHUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlEwd3NjVUpCUVhGQ0xFVkJRM0pDTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTnFReXhQUVVGUExFVkJRV1VzVVVGQlVTeEZRVUZGTEUxQlFVMHNjMEpCUVhOQ0xFTkJRVU03UVVGRE4wUXNUMEZCVHl4RlFVRkZMRmRCUVZjc1JVRkJSU3gzUTBGQmJVTTdRVUZEZWtRc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeGpRVUZqTEVWQlFVVXNUVUZCVFN4blEwRkJaME1zUTBGQlF6dEJRVU4yUlN4UFFVRlBMRVZCUVVVc2QwSkJRWGRDTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU14UkN4UFFVRlBMRVZCUVVVc1dVRkJXU3hGUVVGRkxFMUJRVTBzYlVKQlFXMUNMRU5CUVVNN1FVRkRha1FzVDBGQlR5eEZRVUZGTEZWQlFWVXNSVUZCUlN4MVEwRkJhME03UVVGRmRrUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJSM0pDTEVOQlFVTTdRVUZGU2pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCZDBKSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEUxQlFVMHNRMEZEY0VJc1JVRkJhVUlzUlVGRGFrSXNTMEZCY1VJc1JVRkRja0lzVVVGQkswSXNTVUZCU1N4SFFVRkhMRVZCUVVVN1NVRkZlRU1zU1VGQlNTeERRVUZETEhkQ1FVRjNRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRPMUZCUXpORExFOUJRVThzUzBGQlN5eERRVUZETzBsQlEyWXNRMEZCUXp0SlFVVkVMRTFCUVUwc1MwRkJTeXhIUVVGSExGZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTTVRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRMmhETEVsQlFVa3NUVUZCVFR0UlFVRkZMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJSVEZDTEUxQlFVMHNWVUZCVlN4SFFVRkhPMUZCUTJwQ0xHRkJRV0VzUTBGQlF5eE5RVUZOTzFGQlEzQkNMSEZDUVVGeFFpeERRVUZETEZWQlFWVTdTMEZEYWtNc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlV5eERRVUZETEVOQlFVTTdTVUZGZEVJc1RVRkJUU3hWUVVGVk8wdEJRVWM3U1VGRGJrSXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdTVUZGTjBJc1RVRkJUU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZPMUZCUTNoRExFdEJRVXNzUlVGQlJTeEhRVUZITEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxPMHRCUXpORUxFTkJRVU1zUTBGQlF6dEpRVVZJTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRk8xRkJRMjVDTEVsQlFVa3NRMEZCUXp0WlFVTklMRTlCUVU4c1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTjZRaXhEUVVGRE8xRkJRVU1zVFVGQlRTeERRVUZETzFsQlExQXNUMEZCVHl4VFFVRlRMRU5CUVVNN1VVRkRia0lzUTBGQlF6dEpRVU5JTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1NVRkZUQ3hOUVVGTkxHVkJRV1VzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenRKUVVONlJTeE5RVUZOTEZsQlFWa3NSMEZCUnl4TlFVRk5PMUZCUTNwQ0xFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hMUVVGTExFTkJRVU1zVTBGQlV5eEZRVUZGTEUxQlFXZENMRU5CUVVNN1VVRkRka1VzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTmtMRTFCUVUwc1pVRkJaU3hIUVVOdVFpeFpRVUZaTEV0QlFVc3NUVUZCVFN4SlFVRkpMRmxCUVZrc1MwRkJTeXhOUVVGTkxFTkJRVU03U1VGRGNrUXNUVUZCVFN4aFFVRmhMRWRCUTJwQ0xFTkJRVU1zUTBGQlF5eGxRVUZsTEVWQlFVVXNVMEZCVXp0UlFVTTFRaXhEUVVGRExFMUJRVTA3V1VGRFRDeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeERRVUZETEV0QlFWa3NSVUZCUlN4TlFVRmhMRU5CUVVNN1owSkJRM1JFTEc5RFFVRnZReXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZuUWl4RFFVRkRPMmRDUVVNM1JDeGxRVUZsTzFsQlEycENMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVVZpTEUxQlFVMHNVVUZCVVN4SFFVRkhMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRlZMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZqTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRPVVVzVFVGQlRTeFhRVUZYTEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUldwRExFdEJRVXNzVFVGQlRTeEpRVUZKTEVsQlFVa3NVVUZCVVN4RlFVRkZMRU5CUVVNN1VVRkROVUlzU1VGQlNTeERRVUZETEVsQlFVazdXVUZCUlN4VFFVRlRPMUZCUTNCQ0xFbEJRVWtzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkJSU3hUUVVGVE8xRkJSV3hETEVsQlFVa3NTVUZCU1N4TFFVRkxMRTFCUVUwc1NVRkJTU3hEUVVGRExGVkJRVlVzU1VGQlNTeGhRVUZoTzFsQlFVVXNVMEZCVXp0UlFVTTVSQ3hKUVVGSkxFbEJRVWtzUzBGQlN5eE5RVUZOTEVsQlFVa3NiME5CUVc5RExFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXp0WlFVTjBSU3hUUVVGVE8xRkJSVmdzVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVONlFpeERRVUZETzBsQlJVUXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU12UWl4TlFVRk5MRlZCUVZVc1IwRkJSeXc0UWtGQk9FSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGREwwUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNelJDeE5RVUZOTEZGQlFWRXNSMEZEV2l4M1FrRkJkMElzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRPMWxCUTNKRExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGTlVRc1RVRkJUU3hWUVVGVkxFZEJRWE5ETzFsQlEzQkVMRkZCUVZFc1JVRkJSU3hWUVVGVk8xTkJRM0pDTEVOQlFVTTdVVUZEUml4SlFVRkpMRkZCUVZFN1dVRkJSU3hWUVVGVkxFTkJRVU1zU1VGQlNTeEhRVUZITEZGQlFWRXNRMEZCUXp0UlFVVjZReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVZ3UkN4TlFVRk5MRlZCUVZVc1IwRkRaQ3hQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1UwRkJVeXhGUVVGRkxFbEJRVWtzUTBGQlF5eEpRVUZKTEZGQlFWRXNRMEZCUXp0UlFVTjRSU3hKUVVGSkxFOUJRVThzVlVGQlZTeExRVUZMTEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNSRExFOUJRVThzUTBGQlF5eGpRVUZqTEVOQlEzQkNMR0ZCUVdFc1JVRkRZaXhWUVVGVkxFVkJRMVlzVlVGQlZTeERRVUZETEZOQlFWTXNSVUZEY0VJc1NVRkJTU3hEUVVOTUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlR0WlFVTm9SQ3hMUVVGTExFVkJRVVVzVTBGQlV6dFpRVU5vUWl4UlFVRlJMRVZCUVVVc1NVRkJTVHRaUVVOa0xGVkJRVlVzUlVGQlJTeEpRVUZKTzFsQlEyaENMRmxCUVZrc1JVRkJSU3hKUVVGSk8xTkJRMjVDTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZSQ3hMUVVGTExFMUJRVTBzVVVGQlVTeEpRVUZKTEZOQlFWTXNSVUZCUlN4RFFVRkRPMUZCUTJwRExFMUJRVTBzV1VGQldTeEhRVUZITEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxGRkJRV1VzUTBGQlF5eERRVUZETzFGQlEyaEZMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dFpRVU5zUWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIbENRVUY1UWl4UlFVRlJMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRM3BGTEVOQlFVTTdVVUZGUkN4SlFVRkpMRmxCUVZrc1IwRkRaQ3haUVVGWkxFTkJRVU1zUzBGQmVVSXNRMEZCUXp0UlFVTjZReXhKUVVGSkxFOUJRVThzV1VGQldTeExRVUZMTEZWQlFWVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU0zUkN4WlFVRlpMRWRCUVVrc1dVRkJiMElzUlVGQlJTeERRVUZETzFGQlEzcERMRU5CUVVNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEpRVUZKTEU5QlFVOHNXVUZCV1N4TFFVRkxMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRM2hFTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2NVSkJRWEZDTEZGQlFWRXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRja1VzUTBGQlF6dFJRVU5FTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTJ4RExGTkJRVk03VVVGRFdDeERRVUZETzFGQlJVUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVWQlFVVXNVVUZCWlN4RFFVRkRMRU5CUVVNN1VVRkROVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkZMRWxCUVZrc1JVRkJSU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTjJSQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVVXNTVUZCV1N4RlFVRkZMRU5CUVVNc1kwRkJZeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlJUbEVMRzlGUVVGdlJUdFJRVU53UlN4dlJVRkJiMFU3VVVGRGNFVXNjMFZCUVhORk8xRkJRM1JGTEcxRVFVRnRSRHRSUVVOdVJDeE5RVUZOTEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlJUTkRMRWxCUVVrc1ZVRkJWU3hGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEZWQlFWVXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0WlFVTnNSQ3huUWtGQlowSXNRMEZCUXl4VlFVRlZMRVZCUVVVc1VVRkJVU3hGUVVGRkxGVkJRVlVzUlVGQlJTeFBRVUZQTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkRlRVVzVTBGQlV6dFJRVU5ZTEVOQlFVTTdVVUZGUkN4TlFVRk5MRmRCUVZjc1IwRkJSeXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZsQlFWa3NSVUZCUlN4SlFVRkpMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWNFJTeEpRVUZKTEZWQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTJZc2FVSkJRV2xDTEVOQlEyWXNWVUZCVlN4RlFVTldMRkZCUVZFc1JVRkRVaXhaUVVGWkxFVkJRMW9zVjBGQlZ5eEZRVU5ZTEU5QlFVOHNSVUZEVUN4VlFVRlZMRU5CUTFnc1EwRkJRenRSUVVOS0xFTkJRVU03WVVGQlRTeERRVUZETzFsQlEwNHNWMEZCVnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hSUVVGUkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMFJTeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVkVMRTlCUVU4c1ZVRkJWU3hEUVVGRE8wRkJRM0JDTEVOQlFVTTdRVUZGUkN4VFFVRlRMRmRCUVZjc1EwRkRiRUlzVVVGQllTeEZRVU5pTEZGQlFXZENMRVZCUTJoQ0xGZEJRV2RDTEVWQlEyaENMRTlCUVdkQ0xFVkJRMmhDTEZWQlFXMUNPMGxCUlc1Q0xFMUJRVTBzVlVGQlZTeEhRVUZ6UXp0UlFVTndSQ3hKUVVGSkxFVkJRVVVzVjBGQlZ6dFJRVU5xUWl4UlFVRlJMRVZCUVVVc1ZVRkJWVHRSUVVOd1FpeFBRVUZQTzB0QlExSXNRMEZCUXp0SlFVTkdMRmRCUVZjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNVMEZCVXl4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE8wbEJRM1JFTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUTNCQ0xHRkJRV0VzUlVGRFlpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eEZRVU0zUWl4UlFVRlJMRU5CUVVNc1UwRkJVeXhGUVVOc1FpeFJRVUZSTEVOQlExUXNRMEZCUXp0SlFVTkdMRTFCUVUwc1EwRkJReXhqUVVGakxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNSVUZCUlN4UlFVRlJMRVZCUVVVN1VVRkRiRVFzUzBGQlN5eEZRVUZGTEZOQlFWTTdVVUZEYUVJc1VVRkJVU3hGUVVGRkxFbEJRVWs3VVVGRFpDeFZRVUZWTEVWQlFVVXNTVUZCU1R0UlFVTm9RaXhaUVVGWkxFVkJRVVVzU1VGQlNUdExRVU51UWl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRE8wRkJSVVE3T3p0SFFVZEhPMEZCUTBnc1UwRkJVeXhuUWtGQlowSXNRMEZEZGtJc1VVRkJZU3hGUVVOaUxGRkJRV2RDTEVWQlEyaENMRlZCUVd0Q0xFVkJRMnhDTEU5QlFXZENMRVZCUTJoQ0xGVkJRVzFDTzBsQlJXNUNMRTFCUVUwc1ZVRkJWU3hIUVVGelF5eFBRVUZQTzFGQlF6TkVMRU5CUVVNc1EwRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVZVN1VVRkRMMFVzUTBGQlF5eERRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRlZCUVZVc1MwRkJTeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFZRVUZWTEVWQlFWVXNRMEZCUXp0SlFVTjRSaXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU4wUkN4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVOd1FpeGhRVUZoTEVWQlEySXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4TFFVRkxMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkRPVVFzVVVGQlVTeERRVUZETEZOQlFWTXNSVUZEYkVJc1VVRkJVU3hEUVVOVUxFTkJRVU03U1VGRFJpeE5RVUZOTEVOQlFVTXNZMEZCWXl4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFVkJRVVVzVVVGQlVTeEZRVUZGTzFGQlEyeEVMRXRCUVVzc1JVRkJSU3hUUVVGVE8xRkJRMmhDTEZGQlFWRXNSVUZCUlN4SlFVRkpPMUZCUTJRc1ZVRkJWU3hGUVVGRkxFbEJRVWs3VVVGRGFFSXNXVUZCV1N4RlFVRkZMRWxCUVVrN1MwRkRia0lzUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXp0QlFVVkVMRk5CUVZNc2FVSkJRV2xDTEVOQlEzaENMRkZCUVdFc1JVRkRZaXhSUVVGblFpeEZRVU5vUWl4WlFVRTRRaXhGUVVNNVFpeFhRVUZuUWl4RlFVTm9RaXhQUVVGblFpeEZRVU5vUWl4VlFVRnRRanRKUVVWdVFpeE5RVUZOTEZkQlFWY3NSMEZEWml4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdTVUZEYmtVc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJRenRSUVVOMlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVTndRaXhWUVVGVkxFTkJRVU1zWjBKQlFXZENMRVZCUXpOQ0xFTkJRVU1zUjBGQlJ5eFhRVUZYTEVWQlFVVXNWMEZCVnl4RFFVRkRMRVZCUXpkQ0xGRkJRVkVzUTBGRFZDeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRTFCUVUwc1RVRkJUU3hIUVVGSExIZENRVUYzUWl4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03U1VGRE1VUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1NVRkRiRVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJSVFZFTEUxQlFVMHNWVUZCVlN4SFFVRnpReXhQUVVGUE8xRkJRek5FTEVOQlFVTXNRMEZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1ZVRkJWU3hGUVVGVk8xRkJRM0pGTEVOQlFVTXNRMEZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1ZVRkJWU3hGUVVGVkxFTkJRVU03U1VGRmRrVXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRkRVFzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZEY0VJc1lVRkJZU3hGUVVOaUxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRM2hDTEZGQlFWRXNRMEZCUXl4VFFVRlRMRVZCUTJ4Q0xGRkJRVkVzUTBGRFZDeERRVUZETzBsQlEwWXNUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhSUVVGUkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZGQlFWRXNSVUZCUlR0UlFVTnNSQ3hMUVVGTExFVkJRVVVzVTBGQlV6dFJRVU5vUWl4UlFVRlJMRVZCUVVVc1NVRkJTVHRSUVVOa0xGVkJRVlVzUlVGQlJTeEpRVUZKTzFGQlEyaENMRmxCUVZrc1JVRkJSU3hKUVVGSk8wdEJRMjVDTEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNN1FVRkZSQ3hUUVVGVExHZENRVUZuUWl4RFFVRkRMRmxCUVRoQ08wbEJRM1JFTEVsQlFVa3NRMEZCUXp0UlFVTklMRTFCUVUwc1pVRkJaU3hIUVVGSExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNXVUZCYlVJc1EwRkJReXhEUVVGRE8xRkJRek5FTEUxQlFVMHNUVUZCVFN4SFFVRkhMR1ZCUVdVc1JVRkJSU3hKUVVGSkxFTkJRVU03VVVGRGNrTXNTVUZCU1N4TlFVRk5MRXRCUVVzc1RVRkJUU3hKUVVGSkxFMUJRVTBzUzBGQlN5eE5RVUZOTzFsQlFVVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1VVRkROMFFzVDBGQlR5eFJRVUZSTEVOQlFVTTdTVUZEYkVJc1EwRkJRenRKUVVGRExFMUJRVTBzUTBGQlF6dFJRVU5RTEU5QlFVOHNVVUZCVVN4RFFVRkRPMGxCUTJ4Q0xFTkJRVU03UVVGRFNDeERRVUZETzBGQlJVUXNVMEZCVXl4dlEwRkJiME1zUTBGRE0wTXNTMEZCZFVJc1JVRkRka0lzU1VGQldUdEpRVVZhTEVsQlFVa3NUMEZCVHl4SFFVRlJMRXRCUVVzc1EwRkJRenRKUVVONlFpeFBRVUZQTEU5QlFVOHNTVUZCU1N4UFFVRlBMRXRCUVVzc1RVRkJUU3hKUVVGSkxFOUJRVThzUzBGQlN5eFJRVUZSTEVWQlFVVXNRMEZCUXp0UlFVTTNSQ3hKUVVGSkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWxCUVZjc1EwRkJRenRaUVVGRkxFOUJRVThzU1VGQlNTeERRVUZETzFGQlEzWkVMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpORExFTkJRVU03U1VGRFJDeFBRVUZQTEV0QlFVc3NRMEZCUXp0QlFVTm1MRU5CUVVNN1FVRkZSQ3hUUVVGVExEaENRVUU0UWl4RFFVTnlReXhMUVVGMVFpeEZRVU4yUWl4SlFVRlpPMGxCUlZvc1NVRkJTU3hQUVVGUExFZEJRVkVzUzBGQlN5eERRVUZETzBsQlEzcENMRTlCUVU4c1QwRkJUeXhKUVVGSkxFOUJRVThzUzBGQlN5eE5RVUZOTEVsQlFVa3NUMEZCVHl4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8xRkJRemRFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTJoRkxFbEJRVWtzVlVGQlZUdFpRVUZGTEU5QlFVOHNWVUZCYVVJc1EwRkJRenRSUVVONlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU16UXl4RFFVRkRPMGxCUTBRc1QwRkJUeXhUUVVGVExFTkJRVU03UVVGRGJrSXNRMEZCUXp0QlFVVkVMRk5CUVZNc2QwSkJRWGRDTEVOQlFVTXNTMEZCZFVJc1JVRkJSU3hKUVVGWk8wbEJRM0pGTEVsQlFVa3NUMEZCVHl4SFFVRlJMRXRCUVVzc1EwRkJRenRKUVVONlFpeFBRVUZQTEU5QlFVOHNTVUZCU1N4UFFVRlBMRXRCUVVzc1RVRkJUU3hKUVVGSkxFOUJRVThzUzBGQlN5eFJRVUZSTEVWQlFVVXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU14UXl4SlFVRkpMRWxCUVVrN1dVRkJSU3hQUVVGUExFbEJRVWtzUTBGQlF6dFJRVU4wUWl4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhEUVVGRE8wbEJRMFFzVDBGQlR5eFRRVUZUTEVOQlFVTTdRVUZEYmtJc1EwRkJRenRCUVVWRUxGTkJRVk1zVjBGQlZ5eERRVU5zUWl4RlFVRnBRanRKUVVWcVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETzFGQlEzUkNMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVsQlFVa3NUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVOc1F5eERRVUZETzBsQlEwUXNUMEZCVHl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlJTeERRVUZETzBGQlF6TkNMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNc1hHNGdJRWx1ZEdWeWJtRnNSWEp5YjNJc1hHNGdJRTl3WlhKaGRHbHZia3RsZVhNc1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVhVzF3YjNKMElIc2dRMjl1YzNSeWRXTjBiM0lzSUUxbGRHRmtZWFJoSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJCY0dsUWNtOXdaWEowZVNCOUlHWnliMjBnWENJdUxpOHVMaTl2ZG1WeWNtbGtaWE12WkdWamIzSmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dUVzlrWld3c0lGWmhiR2xrWVhScGIyNUxaWGx6SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYjNJdGRtRnNhV1JoZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnVkhKaGJuTmhZM1JwYjI1UGNHVnlZWFJwYjI1TFpYbHpJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUIwYjFCaGMyTmhiRU5oYzJVZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyeHZaMmRwYm1kY0lqdGNibWx0Y0c5eWRDQjdJRVJGUTA5U1FWUlBVbE1nZlNCbWNtOXRJRndpTGk0dkxpNHZiM1psY25KcFpHVnpMMk52Ym5OMFlXNTBjMXdpTzF4dVhHNWpiMjV6ZENCa2RHOURZV05vWlNBOUlHNWxkeUJOWVhBOFhHNGdJRTl3WlhKaGRHbHZia3RsZVhNc1hHNGdJRmRsWVd0TllYQThRMjl1YzNSeWRXTjBiM0k4WVc1NVBpd2dRMjl1YzNSeWRXTjBiM0k4WVc1NVBqNWNiajRvS1R0Y2JseHVMeW9xWEc0Z0tpQkNkV2xzWkhNZ1lTQk9aWE4wTDFOM1lXZG5aWElnUkZSUElHTnNZWE56SUdadmNpQjBhR1VnWjJsMlpXNGdiVzlrWld3Z1lXNWtJRU5TVlVRZ2IzQmxjbUYwYVc5dUxseHVJQ3BjYmlBcUlGSjFiR1Z6T2x4dUlDb2dJQzBnVDI1c2VTQkRVa1ZCVkVVZ1lXNWtJRlZRUkVGVVJTQW9ZVzVrSUhSb1pXbHlJR0oxYkdzZ2RtRnlhV0Z1ZEhNcElIQnliMlIxWTJVZ1lTQkVWRTg3WEc0Z0tpQWdJQ0JoYkd3Z2IzUm9aWElnYjNCbGNtRjBhVzl1Y3lCeVpYUjFjbTRnZEdobElHOXlhV2RwYm1Gc0lHMXZaR1ZzSUdOc1lYTnpJSFZ1WTJoaGJtZGxaQzVjYmlBcUlDQXRJRUJuWlc1bGNtRjBaV1FvS1NCd2NtOXdaWEowYVdWeklDaGpjbVZoZEdWa1FYUXNJSFZ3WkdGMFpXUkJkQ3dnWTNKbFlYUmxaRUo1TENCMWNHUmhkR1ZrUW5rc1hHNGdLaUFnSUNCMWRXbGtMQ0IyWlhKemFXOXVMQ0JBWTI5dGNHOXpaV1FnY0d0ekxDRGlnS1lwSUdGeVpTQXFLbTVsZG1WeUtpb2daWGh3YjNObFpDQnBiaUJoYm5rZ1JGUlBMbHh1SUNvZ0lDMGdWR2hsSUVCd2F5Z3BJSEJ5YjNCbGNuUjVPbHh1SUNvZ0lDQWdJQ0RpZ0tJZ1ZWQkVRVlJGSU9LQWt5QmhiSGRoZVhNZ2FXNWpiSFZrWldRdVhHNGdLaUFnSUNBZ0lPS0FvaUJEVWtWQlZFVWdJT0tBa3lCcGJtTnNkV1JsWkNCdmJteDVJSGRvWlc0Z2RHaGxJSEJySUdseklFNVBWQ0JoZFhSdkxXZGxibVZ5WVhSbFpGeHVJQ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvWTJobFkydGxaQ0IyYVdFZ1RXOWtaV3d1Y0d0UWNtOXdjeWdwTG1kbGJtVnlZWFJsWkNCQlRrUWdUVzlrWld3dVoyVnVaWEpoZEdWa0tDa3BMbHh1SUNvZ0lDMGdVbVZzWVhScGIyNGdjSEp2Y0dWeWRHbGxjeUFvUUc5dVpWUnZUMjVsTENCQWIyNWxWRzlOWVc1NUxDRGlnS1lwT2x4dUlDb2dJQ0FnSUNEaWdLSWdRMUpGUVZSRklDRGlnSk1nYm1WemRHVmtJR0Z6SUVSMGIwWnZjaWhEVWtWQlZFVXNJRkpsYkdGMFpXUk5iMlJsYkNrdUlGZG9aVzRnZEdobElISmxiR0YwYVc5dVhHNGdLaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR055WldGMFpYTWdZU0JqYVhKamRXeGhjaUJ5WldabGNtVnVZMlVnS0cxdlpHVnNJRUVnNG9hU0lHMXZaR1ZzSUVJZzRvYVNJRzF2WkdWc0lFRXBMRnh1SUNvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHVWdZbUZqYXkxeVpXWmxjbVZ1WTJVZ2RYTmxjeUIwYUdVZ2NtVnNZWFJsWkNCdGIyUmxiQ2R6SUZCTElIUjVjR1ZjYmlBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tITjBjbWx1Wnk5cGJuUmxaMlZ5S1NCcGJuTjBaV0ZrSUc5bUlIUm9aU0JtZFd4c0lFUlVUeUIwYnlCaWNtVmhheUIwYUdVZ1kzbGpiR1V1WEc0Z0tpQWdJQ0FnSU9LQW9pQlZVRVJCVkVVZ0lPS0FreUIxYm1sdmJpQnZaaUJFZEc5R2IzSW9WVkJFUVZSRkxDQlNaV3hoZEdWa1RXOWtaV3dwSUNvcWIzSXFLaUIwYUdWY2JpQXFJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZzWVhSbFpDQnRiMlJsYkNkeklIQnlhVzFoY25rdGEyVjVJSFI1Y0dVZ0tITjBjbWx1WnlBdklHbHVkR1ZuWlhJcExGeHVJQ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsZUhCeVpYTnpaV1FnWVhNZ1lTQlRkMkZuWjJWeUlHOXVaVTltTGlCRGFYSmpkV3hoY2lCaVlXTnJMWEpsWm1WeVpXNWpaWE5jYmlBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyMXBkQ0IwYUdVZ1JGUlBJQ1J5WldZZ1lXNWtJRzl1YkhrZ2FXNWpiSFZrWlNCMGFHVWdVRXNnZEhsd1pTNWNiaUFxWEc0Z0tpQk5aWFJoWkdGMFlTNXdjbTl3WlhKMGFXVnpLQ2tnYm05M0lISmxkSFZ5Ym5NZ1FVeE1JSEJ5YjNCbGNuUnBaWE1nWVdOeWIzTnpJSFJvWlNCd2NtOTBiM1I1Y0dVZ1kyaGhhVzRzWEc0Z0tpQnpieUJFVkU4Z2FXNW9aWEpwZEdGdVkyVWdhWE1nYm04Z2JHOXVaMlZ5SUc1bFpXUmxaRHNnWlhabGNua2dSRlJQSUdseklHRWdabXhoZENCamJHRnpjeTVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlFUjBiMFp2Y2p4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQnZjRG9nVDNCbGNtRjBhVzl1UzJWNWN5eGNiaUFnYlc5a1pXdzZJRU52Ym5OMGNuVmpkRzl5UEUwK0xGeHVJQ0J6ZEdGamF6b2dVMlYwUEVOdmJuTjBjblZqZEc5eVBHRnVlVDQrSUQwZ2JtVjNJRk5sZENncFhHNHBPaUJEYjI1emRISjFZM1J2Y2p4aGJuaytJSHRjYmlBZ2FXWWdLQ0ZVY21GdWMyRmpkR2x2Yms5d1pYSmhkR2x2Ymt0bGVYTXVhVzVqYkhWa1pYTW9iM0FwS1NCN1hHNGdJQ0FnY21WMGRYSnVJRzF2WkdWc08xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1kyRmphR1VnUFNCblpYUkVkRzlEWVdOb1pTaHZjQ2s3WEc0Z0lHTnZibk4wSUdOaFkyaGxaQ0E5SUdOaFkyaGxMbWRsZENodGIyUmxiQ2s3WEc0Z0lHbG1JQ2hqWVdOb1pXUXBJSEpsZEhWeWJpQmpZV05vWldRN1hHNWNiaUFnWTI5dWMzUWdhWE5WY0dSaGRHVlBjQ0E5SUZ0Y2JpQWdJQ0JQY0dWeVlYUnBiMjVMWlhsekxsVlFSRUZVUlN4Y2JpQWdJQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNdVZWQkVRVlJGWDBGTVRDeGNiaUFnWFM1cGJtTnNkV1JsY3lodmNDQmhjeUJoYm5rcE8xeHVYRzRnSUdOc1lYTnpJRVI1Ym1GdGFXTkVWRThnZTMxY2JpQWdZMkZqYUdVdWMyVjBLRzF2WkdWc0xDQkVlVzVoYldsalJGUlBLVHRjYmx4dUlDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvUkhsdVlXMXBZMFJVVHl3Z1hDSnVZVzFsWENJc0lIdGNiaUFnSUNCMllXeDFaVG9nWUNSN2RHOVFZWE5qWVd4RFlYTmxLRzF2WkdWc0xtNWhiV1VwZlNSN2RHOVFZWE5qWVd4RFlYTmxLRzl3S1gxRVZFOWdMRnh1SUNCOUtUdGNibHh1SUNCamIyNXpkQ0J3YTFCeWIzQWdQU0FvS0NrZ1BUNGdlMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdUVzlrWld3dWNHc29iVzlrWld3cE8xeHVJQ0FnSUgwZ1kyRjBZMmdnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzRnSUgwcEtDazdYRzVjYmlBZ1kyOXVjM1FnY0d0UWNtOXdjMDFsZEdGa1lYUmhJRDBnY0d0UWNtOXdJRDhnVFc5a1pXd3VjR3RRY205d2N5aHRiMlJsYkNCaGN5QmhibmtwSURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0JqYjI1emRDQndhMFJsYzJsbmJsUjVjR1VnUFNCd2ExQnliM0JjYmlBZ0lDQS9JRkpsWm14bFkzUXVaMlYwVFdWMFlXUmhkR0VvWENKa1pYTnBaMjQ2ZEhsd1pWd2lMQ0J0YjJSbGJDNXdjbTkwYjNSNWNHVXNJSEJyVUhKdmNDQmhjeUJ6ZEhKcGJtY3BYRzRnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzRnSUdOdmJuTjBJSEJyVkhsd1pVbHpUblZ0WlhKcFl5QTlYRzRnSUNBZ2NHdEVaWE5wWjI1VWVYQmxJRDA5UFNCT2RXMWlaWElnZkh3Z2NHdEVaWE5wWjI1VWVYQmxJRDA5UFNCQ2FXZEpiblE3WEc0Z0lHTnZibk4wSUhCclNYTkhaVzVsY21GMFpXUWdQVnh1SUNBZ0lDRWhjR3RRY205d2MwMWxkR0ZrWVhSaFB5NW5aVzVsY21GMFpXUWdmSHhjYmlBZ0lDQW9jR3RRY205d1hHNGdJQ0FnSUNBL0lFMXZaR1ZzTG1kbGJtVnlZWFJsWkVKNVUyVnhkV1Z1WTJVb2JXOWtaV3dnWVhNZ1lXNTVMQ0J3YTFCeWIzQWdZWE1nWVc1NUtTQjhmRnh1SUNBZ0lDQWdJQ0JwYzFCeWIzQmxjblI1UjJWdVpYSmhkR1ZrUVdOeWIzTnpTVzVvWlhKcGRHRnVZMlVvYlc5a1pXd3NJSEJyVUhKdmNDQmhjeUJ6ZEhKcGJtY3BJSHg4WEc0Z0lDQWdJQ0FnSUhCclZIbHdaVWx6VG5WdFpYSnBZMXh1SUNBZ0lDQWdPaUJtWVd4elpTazdYRzVjYmlBZ1kyOXVjM1FnWVd4c1VISnZjSE1nUFNCQmNuSmhlUzVtY205dEtHNWxkeUJUWlhRb1RXVjBZV1JoZEdFdWNISnZjR1Z5ZEdsbGN5aHRiMlJsYkNrZ2ZId2dXMTBwS1R0Y2JpQWdZMjl1YzNRZ2NtVnNZWFJwYjI1eklEMGdibVYzSUZObGREeHpkSEpwYm1jK0tDaE5iMlJsYkM1eVpXeGhkR2x2Ym5Nb2JXOWtaV3dwSUdGeklITjBjbWx1WjF0ZEtTQjhmQ0JiWFNrN1hHNGdJR052Ym5OMElITmpZV3hoY2xCeWIzQnpPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVYRzRnSUdadmNpQW9ZMjl1YzNRZ2NISnZjQ0J2WmlCaGJHeFFjbTl3Y3lrZ2UxeHVJQ0FnSUdsbUlDZ2hjSEp2Y0NrZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnYVdZZ0tISmxiR0YwYVc5dWN5NW9ZWE1vY0hKdmNDa3BJR052Ym5ScGJuVmxPMXh1WEc0Z0lDQWdhV1lnS0hCeWIzQWdQVDA5SUhCclVISnZjQ0FtSmlBaGFYTlZjR1JoZEdWUGNDQW1KaUJ3YTBselIyVnVaWEpoZEdWa0tTQmpiMjUwYVc1MVpUdGNiaUFnSUNCcFppQW9jSEp2Y0NBaFBUMGdjR3RRY205d0lDWW1JR2x6VUhKdmNHVnlkSGxIWlc1bGNtRjBaV1JCWTNKdmMzTkpibWhsY21sMFlXNWpaU2h0YjJSbGJDd2djSEp2Y0NrcFhHNGdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JseHVJQ0FnSUhOallXeGhjbEJ5YjNCekxuQjFjMmdvY0hKdmNDazdYRzRnSUgxY2JseHVJQ0JtYjNJZ0tHTnZibk4wSUhCeWIzQWdiMllnYzJOaGJHRnlVSEp2Y0hNcElIdGNiaUFnSUNCamIyNXpkQ0IyWVd4cFpHRjBhVzl1SUQwZ1oyVjBWbUZzYVdSaGRHbHZia0ZqY205emMwbHVhR1Z5YVhSaGJtTmxLRzF2WkdWc0xDQndjbTl3S1R0Y2JpQWdJQ0JqYjI1emRDQnBjMUpsY1hWcGNtVmtJRDBnSVNGMllXeHBaR0YwYVc5dVB5NWJWbUZzYVdSaGRHbHZia3RsZVhNdVVrVlJWVWxTUlVSZE8xeHVJQ0FnSUdOdmJuTjBJSFI1Y0dWSWFXNTBJRDFjYmlBZ0lDQWdJR2RsZEZSNWNHVkJZM0p2YzNOSmJtaGxjbWwwWVc1alpTaHRiMlJsYkN3Z2NISnZjQ2tnUHo5Y2JpQWdJQ0FnSUZKbFpteGxZM1F1WjJWMFRXVjBZV1JoZEdFb1hDSmtaWE5wWjI0NmRIbHdaVndpTENCdGIyUmxiQzV3Y205MGIzUjVjR1VzSUhCeWIzQXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1lYQnBUM0IwYVc5dWN6b2dVR0Z5WVcxbGRHVnljengwZVhCbGIyWWdRWEJwVUhKdmNHVnlkSGsrV3pCZElEMGdlMXh1SUNBZ0lDQWdjbVZ4ZFdseVpXUTZJR2x6VW1WeGRXbHlaV1FzWEc0Z0lDQWdmVHRjYmlBZ0lDQnBaaUFvZEhsd1pVaHBiblFwSUdGd2FVOXdkR2x2Ym5NdWRIbHdaU0E5SUhSNWNHVklhVzUwTzF4dVhHNGdJQ0FnUVhCcFVISnZjR1Z5ZEhrb1lYQnBUM0IwYVc5dWN5a29SSGx1WVcxcFkwUlVUeTV3Y205MGIzUjVjR1VzSUhCeWIzQXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1pHVnphV2R1Vkhsd1pTQTlYRzRnSUNBZ0lDQlNaV1pzWldOMExtZGxkRTFsZEdGa1lYUmhLRndpWkdWemFXZHVPblI1Y0dWY0lpd2diVzlrWld3dWNISnZkRzkwZVhCbExDQndjbTl3S1NBL1B5QjBlWEJsU0dsdWREdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHUmxjMmxuYmxSNWNHVWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSXBJSHRjYmlBZ0lDQWdJRkpsWm14bFkzUXVaR1ZtYVc1bFRXVjBZV1JoZEdFb1hHNGdJQ0FnSUNBZ0lGd2laR1Z6YVdkdU9uUjVjR1ZjSWl4Y2JpQWdJQ0FnSUNBZ1pHVnphV2R1Vkhsd1pTeGNiaUFnSUNBZ0lDQWdSSGx1WVcxcFkwUlVUeTV3Y205MGIzUjVjR1VzWEc0Z0lDQWdJQ0FnSUhCeWIzQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRVI1Ym1GdGFXTkVWRTh1Y0hKdmRHOTBlWEJsTENCd2NtOXdMQ0I3WEc0Z0lDQWdJQ0IyWVd4MVpUb2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdkM0pwZEdGaWJHVTZJSFJ5ZFdVc1hHNGdJQ0FnSUNCbGJuVnRaWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJQ0FnWTI5dVptbG5kWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ1ptOXlJQ2hqYjI1emRDQnlaV3hoZEdsdmJpQnZaaUJ5Wld4aGRHbHZibk1wSUh0Y2JpQWdJQ0JqYjI1emRDQnlaV3hoZEdsdmJrMWxkR0VnUFNCTlpYUmhaR0YwWVM1eVpXeGhkR2x2Ym5Nb2JXOWtaV3dzSUhKbGJHRjBhVzl1SUdGeklHRnVlU2s3WEc0Z0lDQWdhV1lnS0NGeVpXeGhkR2x2YmsxbGRHRXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQk5aWFJoWkdGMFlTQm1iM0lnY21Wc1lYUnBiMjRnSkh0eVpXeGhkR2x2Ym4wZ2JtOTBJR1p2ZFc1a1lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2JHVjBJSEpsYkdGMGFXOXVWSGx3WlRvZ1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlCOElIVnVaR1ZtYVc1bFpDQTlYRzRnSUNBZ0lDQnlaV3hoZEdsdmJrMWxkR0V1WTJ4aGMzTWdZWE1nUTI5dWMzUnlkV04wYjNJOFlXNTVQanRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JSEpsYkdGMGFXOXVWSGx3WlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUNZbUlDRnlaV3hoZEdsdmJsUjVjR1V1Ym1GdFpTa2dlMXh1SUNBZ0lDQWdjbVZzWVhScGIyNVVlWEJsSUQwZ0tISmxiR0YwYVc5dVZIbHdaU0JoY3lCaGJua3BLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2doY21Wc1lYUnBiMjVVZVhCbElIeDhJSFI1Y0dWdlppQnlaV3hoZEdsdmJsUjVjR1VnSVQwOUlGd2lablZ1WTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9ZRlI1Y0dVZ1ptOXlJSEpsYkdGMGFXOXVJQ1I3Y21Wc1lYUnBiMjU5SUc1dmRDQm1iM1Z1WkdBcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb0lVMXZaR1ZzTG1kbGRDaHlaV3hoZEdsdmJsUjVjR1V1Ym1GdFpTa3BJSHRjYmlBZ0lDQWdJR052Ym5ScGJuVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUcxbGRHRWdQU0JOWlhSaFpHRjBZUzUyWVd4cFpHRjBhVzl1Um05eUtHMXZaR1ZzTENCeVpXeGhkR2x2YmlCaGN5QmhibmtwTzF4dUlDQWdJR052Ym5OMElHbHpRWEp5WVhrZ1BTQWhJU2h0WlhSaElHRnpJR0Z1ZVNrL0xsdFdZV3hwWkdGMGFXOXVTMlY1Y3k1TVNWTlVYVHRjYmlBZ0lDQmpiMjV6ZENCcGMxSmxjWFZwY21Wa0lEMGdJU0VvYldWMFlTQmhjeUJoYm5rcFB5NWJWbUZzYVdSaGRHbHZia3RsZVhNdVVrVlJWVWxTUlVSZE8xeHVYRzRnSUNBZ0x5OGdSR1YwWldOMElHTnBjbU4xYkdGeUlISmxabVZ5Wlc1alpUb2dhV1lnZEdobElISmxiR0YwWldRZ2JXOWtaV3dnYVhNZ1lXeHlaV0ZrZVNCcGJpQjBhR1ZjYmlBZ0lDQXZMeUJ5WldOMWNuTnBiMjRnYzNSaFkyc3NJSFZ6WlNCMGFHVWdVRXNnZEhsd1pTQnBibk4wWldGa0lHOW1JSFJvWlNCbWRXeHNJRVJVVHlCMGJ5QmljbVZoYTF4dUlDQWdJQzh2SUhSb1pTQmplV05zWlM0Z1ZHaHBjeUJ3Y21WMlpXNTBjeUJBYm1WemRHcHpMM04zWVdkblpYSW5jeUJUWTJobGJXRlBZbXBsWTNSR1lXTjBiM0o1SUdaeWIyMWNiaUFnSUNBdkx5QnBibVpwYm1sMFpXeDVJSEpsWTNWeWMybHVaeUIzYUdWdUlHVjRjR3h2Y21sdVp5QjBhR1VnYzJOb1pXMWhjeTVjYmlBZ0lDQmpiMjV6ZENCcGMwTnBjbU4xYkdGeUlEMGdjM1JoWTJzdWFHRnpLSEpsYkdGMGFXOXVWSGx3WlNrN1hHNWNiaUFnSUNCcFppQW9hWE5EYVhKamRXeGhjaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjR3RVZVhCbFRtRnRaU0E5SUdkbGRGQnJUM0JsYmtGd2FWUjVjR1VvY21Wc1lYUnBiMjVVZVhCbEtUdGNiaUFnSUNBZ0lHRmtaRkpsYkdGMGFXOXVVR3RTWldZb1JIbHVZVzFwWTBSVVR5d2djbVZzWVhScGIyNHNJSEJyVkhsd1pVNWhiV1VzSUdselFYSnlZWGtzSUdselVtVnhkV2x5WldRcE8xeHVJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjbVZzWVhScGIyNUVkRzhnUFNCRWRHOUdiM0lvYjNBc0lISmxiR0YwYVc5dVZIbHdaU3dnYm1WM0lGTmxkQ2h6ZEdGamF5a3VZV1JrS0cxdlpHVnNLU2s3WEc1Y2JpQWdJQ0JwWmlBb2FYTlZjR1JoZEdWUGNDa2dlMXh1SUNBZ0lDQWdZV1JrVW1Wc1lYUnBiMjVWY0dSaGRHVW9YRzRnSUNBZ0lDQWdJRVI1Ym1GdGFXTkVWRThzWEc0Z0lDQWdJQ0FnSUhKbGJHRjBhVzl1TEZ4dUlDQWdJQ0FnSUNCeVpXeGhkR2x2YmxSNWNHVXNYRzRnSUNBZ0lDQWdJSEpsYkdGMGFXOXVSSFJ2TEZ4dUlDQWdJQ0FnSUNCcGMwRnljbUY1TEZ4dUlDQWdJQ0FnSUNCcGMxSmxjWFZwY21Wa1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JoWkdSU1pXeGhkR2x2YmloRWVXNWhiV2xqUkZSUExDQnlaV3hoZEdsdmJpd2djbVZzWVhScGIyNUVkRzhzSUdselFYSnlZWGtzSUdselVtVnhkV2x5WldRcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCRWVXNWhiV2xqUkZSUE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCaFpHUlNaV3hoZEdsdmJpaGNiaUFnUkhSdlEyeGhjM002SUdGdWVTeGNiaUFnY21Wc1lYUnBiMjQ2SUhOMGNtbHVaeXhjYmlBZ2NtVnNZWFJwYjI1RWRHODZJR0Z1ZVN4Y2JpQWdhWE5CY25KaGVUb2dZbTl2YkdWaGJpeGNiaUFnYVhOU1pYRjFhWEpsWkRvZ1ltOXZiR1ZoYmx4dUtUb2dkbTlwWkNCN1hHNGdJR052Ym5OMElHRndhVTl3ZEdsdmJuTTZJRkJoY21GdFpYUmxjbk04ZEhsd1pXOW1JRUZ3YVZCeWIzQmxjblI1UGxzd1hTQTlJSHRjYmlBZ0lDQjBlWEJsT2lCeVpXeGhkR2x2YmtSMGJ5eGNiaUFnSUNCeVpYRjFhWEpsWkRvZ2FYTlNaWEYxYVhKbFpDeGNiaUFnSUNCcGMwRnljbUY1TEZ4dUlDQjlPMXh1SUNCQmNHbFFjbTl3WlhKMGVTaGhjR2xQY0hScGIyNXpLU2hFZEc5RGJHRnpjeTV3Y205MGIzUjVjR1VzSUhKbGJHRjBhVzl1S1R0Y2JpQWdVbVZtYkdWamRDNWtaV1pwYm1WTlpYUmhaR0YwWVNoY2JpQWdJQ0JjSW1SbGMybG5ianAwZVhCbFhDSXNYRzRnSUNBZ2FYTkJjbkpoZVNBL0lFRnljbUY1SURvZ2NtVnNZWFJwYjI1RWRHOHNYRzRnSUNBZ1JIUnZRMnhoYzNNdWNISnZkRzkwZVhCbExGeHVJQ0FnSUhKbGJHRjBhVzl1WEc0Z0lDazdYRzRnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaEVkRzlEYkdGemN5NXdjbTkwYjNSNWNHVXNJSEpsYkdGMGFXOXVMQ0I3WEc0Z0lDQWdkbUZzZFdVNklIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCM2NtbDBZV0pzWlRvZ2RISjFaU3hjYmlBZ0lDQmxiblZ0WlhKaFlteGxPaUIwY25WbExGeHVJQ0FnSUdOdmJtWnBaM1Z5WVdKc1pUb2dkSEoxWlN4Y2JpQWdmU2s3WEc1OVhHNWNiaThxS2x4dUlDb2dRV1JrY3lCaElISmxiR0YwYVc5dUlIQnliM0JsY25SNUlIUm9ZWFFnZFhObGN5QjBhR1VnVUVzZ2RIbHdaU0FvYzNSeWFXNW5MMmx1ZEdWblpYSXBJR2x1YzNSbFlXUWdiMlpjYmlBcUlHRWdablZzYkNCRVZFOGdZMnhoYzNNdUlGVnpaV1FnZEc4Z1luSmxZV3NnWTJseVkzVnNZWElnY21WbVpYSmxibU5sY3lBb1pTNW5MaUJEZFhOMGIyMWxjaURpaHBJZ1QzSmtaWElnNG9hU0lFTjFjM1J2YldWeUtTNWNiaUFxTDF4dVpuVnVZM1JwYjI0Z1lXUmtVbVZzWVhScGIyNVFhMUpsWmloY2JpQWdSSFJ2UTJ4aGMzTTZJR0Z1ZVN4Y2JpQWdjbVZzWVhScGIyNDZJSE4wY21sdVp5eGNiaUFnY0d0VWVYQmxUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQnBjMEZ5Y21GNU9pQmliMjlzWldGdUxGeHVJQ0JwYzFKbGNYVnBjbVZrT2lCaWIyOXNaV0Z1WEc0cE9pQjJiMmxrSUh0Y2JpQWdZMjl1YzNRZ1lYQnBUM0IwYVc5dWN6b2dVR0Z5WVcxbGRHVnljengwZVhCbGIyWWdRWEJwVUhKdmNHVnlkSGsrV3pCZElEMGdhWE5CY25KaGVWeHVJQ0FnSUQ4Z0tIc2dkSGx3WlRvZ1hDSmhjbkpoZVZ3aUxDQnBkR1Z0Y3pvZ2V5QjBlWEJsT2lCd2ExUjVjR1ZPWVcxbElIMHNJSEpsY1hWcGNtVmtPaUJwYzFKbGNYVnBjbVZrSUgwZ1lYTWdZVzU1S1Z4dUlDQWdJRG9nS0hzZ2RIbHdaVG9nY0d0VWVYQmxUbUZ0WlNBOVBUMGdYQ0pwYm5SbFoyVnlYQ0lnUHlCT2RXMWlaWElnT2lCVGRISnBibWNzSUhKbGNYVnBjbVZrT2lCcGMxSmxjWFZwY21Wa0lIMGdZWE1nWVc1NUtUdGNiaUFnUVhCcFVISnZjR1Z5ZEhrb1lYQnBUM0IwYVc5dWN5a29SSFJ2UTJ4aGMzTXVjSEp2ZEc5MGVYQmxMQ0J5Wld4aGRHbHZiaWs3WEc0Z0lGSmxabXhsWTNRdVpHVm1hVzVsVFdWMFlXUmhkR0VvWEc0Z0lDQWdYQ0prWlhOcFoyNDZkSGx3WlZ3aUxGeHVJQ0FnSUdselFYSnlZWGtnUHlCQmNuSmhlU0E2SUNod2ExUjVjR1ZPWVcxbElEMDlQU0JjSW1sdWRHVm5aWEpjSWlBL0lFNTFiV0psY2lBNklGTjBjbWx1Wnlrc1hHNGdJQ0FnUkhSdlEyeGhjM011Y0hKdmRHOTBlWEJsTEZ4dUlDQWdJSEpsYkdGMGFXOXVYRzRnSUNrN1hHNGdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoRWRHOURiR0Z6Y3k1d2NtOTBiM1I1Y0dVc0lISmxiR0YwYVc5dUxDQjdYRzRnSUNBZ2RtRnNkV1U2SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0IzY21sMFlXSnNaVG9nZEhKMVpTeGNiaUFnSUNCbGJuVnRaWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaU3hjYmlBZ2ZTazdYRzU5WEc1Y2JtWjFibU4wYVc5dUlHRmtaRkpsYkdGMGFXOXVWWEJrWVhSbEtGeHVJQ0JFZEc5RGJHRnpjem9nWVc1NUxGeHVJQ0J5Wld4aGRHbHZiam9nYzNSeWFXNW5MRnh1SUNCeVpXeGhkR2x2YmxSNWNHVTZJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHNYRzRnSUhKbGJHRjBhVzl1UkhSdk9pQmhibmtzWEc0Z0lHbHpRWEp5WVhrNklHSnZiMnhsWVc0c1hHNGdJR2x6VW1WeGRXbHlaV1E2SUdKdmIyeGxZVzVjYmlrNklIWnZhV1FnZTF4dUlDQmpiMjV6ZENCbGVIUnlZVTF2WkdWc2N5QTlYRzRnSUNBZ1VtVm1iR1ZqZEM1blpYUk5aWFJoWkdGMFlTaEVSVU5QVWtGVVQxSlRMa0ZRU1Y5RldGUlNRVjlOVDBSRlRGTXNJRVIwYjBOc1lYTnpLU0I4ZkNCYlhUdGNiaUFnYVdZZ0tDRmxlSFJ5WVUxdlpHVnNjeTVwYm1Oc2RXUmxjeWh5Wld4aGRHbHZia1IwYnlrcElIdGNiaUFnSUNCU1pXWnNaV04wTG1SbFptbHVaVTFsZEdGa1lYUmhLRnh1SUNBZ0lDQWdSRVZEVDFKQlZFOVNVeTVCVUVsZlJWaFVVa0ZmVFU5RVJVeFRMRnh1SUNBZ0lDQWdXeTR1TG1WNGRISmhUVzlrWld4ekxDQnlaV3hoZEdsdmJrUjBiMTBzWEc0Z0lDQWdJQ0JFZEc5RGJHRnpjMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQmtkRzlTWldZZ1BTQmdJeTlqYjIxd2IyNWxiblJ6TDNOamFHVnRZWE12Skh0eVpXeGhkR2x2YmtSMGJ5NXVZVzFsZldBN1hHNGdJR052Ym5OMElIQnJWSGx3WlU1aGJXVWdQU0JuWlhSUWEwOXdaVzVCY0dsVWVYQmxLSEpsYkdGMGFXOXVWSGx3WlNrN1hHNGdJR052Ym5OMElHOXVaVTltU1hSbGJYTWdQU0JiZXlBa2NtVm1PaUJrZEc5U1pXWWdmU3dnZXlCMGVYQmxPaUJ3YTFSNWNHVk9ZVzFsSUgxZE8xeHVYRzRnSUdOdmJuTjBJR0Z3YVU5d2RHbHZibk02SUZCaGNtRnRaWFJsY25NOGRIbHdaVzltSUVGd2FWQnliM0JsY25SNVBsc3dYU0E5SUdselFYSnlZWGxjYmlBZ0lDQS9JQ2g3SUhSNWNHVTZJRndpWVhKeVlYbGNJaXdnY21WeGRXbHlaV1E2SUdselVtVnhkV2x5WldRc0lHOXVaVTltT2lCdmJtVlBaa2wwWlcxeklIMGdZWE1nWVc1NUtWeHVJQ0FnSURvZ0tIc2dkSGx3WlRvZ1QySnFaV04wTENCeVpYRjFhWEpsWkRvZ2FYTlNaWEYxYVhKbFpDd2diMjVsVDJZNklHOXVaVTltU1hSbGJYTWdmU0JoY3lCaGJua3BPMXh1WEc0Z0lFRndhVkJ5YjNCbGNuUjVLR0Z3YVU5d2RHbHZibk1wS0VSMGIwTnNZWE56TG5CeWIzUnZkSGx3WlN3Z2NtVnNZWFJwYjI0cE8xeHVJQ0JTWldac1pXTjBMbVJsWm1sdVpVMWxkR0ZrWVhSaEtGeHVJQ0FnSUZ3aVpHVnphV2R1T25SNWNHVmNJaXhjYmlBZ0lDQnBjMEZ5Y21GNUlEOGdRWEp5WVhrZ09pQlBZbXBsWTNRc1hHNGdJQ0FnUkhSdlEyeGhjM011Y0hKdmRHOTBlWEJsTEZ4dUlDQWdJSEpsYkdGMGFXOXVYRzRnSUNrN1hHNGdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoRWRHOURiR0Z6Y3k1d2NtOTBiM1I1Y0dVc0lISmxiR0YwYVc5dUxDQjdYRzRnSUNBZ2RtRnNkV1U2SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0IzY21sMFlXSnNaVG9nZEhKMVpTeGNiaUFnSUNCbGJuVnRaWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaU3hjYmlBZ2ZTazdYRzU5WEc1Y2JtWjFibU4wYVc5dUlHZGxkRkJyVDNCbGJrRndhVlI1Y0dVb2NtVnNZWFJwYjI1VWVYQmxPaUJEYjI1emRISjFZM1J2Y2p4aGJuaytLVG9nYzNSeWFXNW5JSHRjYmlBZ2RISjVJSHRjYmlBZ0lDQmpiMjV6ZENCd2ExQnliM0J6VFdWMFlXUmhkR0VnUFNCTmIyUmxiQzV3YTFCeWIzQnpLSEpsYkdGMGFXOXVWSGx3WlNCaGN5QmhibmtwTzF4dUlDQWdJR052Ym5OMElIQnJWSGx3WlNBOUlIQnJVSEp2Y0hOTlpYUmhaR0YwWVQ4dWRIbHdaVHRjYmlBZ0lDQnBaaUFvY0d0VWVYQmxJRDA5UFNCT2RXMWlaWElnZkh3Z2NHdFVlWEJsSUQwOVBTQkNhV2RKYm5RcElISmxkSFZ5YmlCY0ltbHVkR1ZuWlhKY0lqdGNiaUFnSUNCeVpYUjFjbTRnWENKemRISnBibWRjSWp0Y2JpQWdmU0JqWVhSamFDQjdYRzRnSUNBZ2NtVjBkWEp1SUZ3aWMzUnlhVzVuWENJN1hHNGdJSDFjYm4xY2JseHVablZ1WTNScGIyNGdhWE5RY205d1pYSjBlVWRsYm1WeVlYUmxaRUZqY205emMwbHVhR1Z5YVhSaGJtTmxLRnh1SUNCdGIyUmxiRG9nUTI5dWMzUnlkV04wYjNJOFlXNTVQaXhjYmlBZ2NISnZjRG9nYzNSeWFXNW5YRzRwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdiR1YwSUdOMWNuSmxiblE2SUdGdWVTQTlJRzF2WkdWc08xeHVJQ0IzYUdsc1pTQW9ZM1Z5Y21WdWRDQW1KaUJqZFhKeVpXNTBJQ0U5UFNCUFltcGxZM1FnSmlZZ1kzVnljbVZ1ZENBaFBUMGdSblZ1WTNScGIyNHBJSHRjYmlBZ0lDQnBaaUFvVFc5a1pXd3VaMlZ1WlhKaGRHVmtLR04xY25KbGJuUXNJSEJ5YjNBZ1lYTWdZVzU1S1NrZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ1kzVnljbVZ1ZENBOUlFOWlhbVZqZEM1blpYUlFjbTkwYjNSNWNHVlBaaWhqZFhKeVpXNTBLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUdkbGRGWmhiR2xrWVhScGIyNUJZM0p2YzNOSmJtaGxjbWwwWVc1alpTaGNiaUFnYlc5a1pXdzZJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHNYRzRnSUhCeWIzQTZJSE4wY21sdVoxeHVLVG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGlCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUd4bGRDQmpkWEp5Wlc1ME9pQmhibmtnUFNCdGIyUmxiRHRjYmlBZ2QyaHBiR1VnS0dOMWNuSmxiblFnSmlZZ1kzVnljbVZ1ZENBaFBUMGdUMkpxWldOMElDWW1JR04xY25KbGJuUWdJVDA5SUVaMWJtTjBhVzl1S1NCN1hHNGdJQ0FnWTI5dWMzUWdkbUZzYVdSaGRHbHZiaUE5SUUxbGRHRmtZWFJoTG5aaGJHbGtZWFJwYjI1R2IzSW9ZM1Z5Y21WdWRDd2djSEp2Y0NCaGN5QmhibmtwTzF4dUlDQWdJR2xtSUNoMllXeHBaR0YwYVc5dUtTQnlaWFIxY200Z2RtRnNhV1JoZEdsdmJpQmhjeUJoYm5rN1hHNGdJQ0FnWTNWeWNtVnVkQ0E5SUU5aWFtVmpkQzVuWlhSUWNtOTBiM1I1Y0dWUFppaGpkWEp5Wlc1MEtUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVmVnh1WEc1bWRXNWpkR2x2YmlCblpYUlVlWEJsUVdOeWIzTnpTVzVvWlhKcGRHRnVZMlVvYlc5a1pXdzZJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHNJSEJ5YjNBNklITjBjbWx1WnlrNklHRnVlU0I3WEc0Z0lHeGxkQ0JqZFhKeVpXNTBPaUJoYm5rZ1BTQnRiMlJsYkR0Y2JpQWdkMmhwYkdVZ0tHTjFjbkpsYm5RZ0ppWWdZM1Z5Y21WdWRDQWhQVDBnVDJKcVpXTjBJQ1ltSUdOMWNuSmxiblFnSVQwOUlFWjFibU4wYVc5dUtTQjdYRzRnSUNBZ1kyOXVjM1FnZEhsd1pTQTlJRTFsZEdGa1lYUmhMblI1Y0dVb1kzVnljbVZ1ZEN3Z2NISnZjQ2s3WEc0Z0lDQWdhV1lnS0hSNWNHVXBJSEpsZEhWeWJpQjBlWEJsTzF4dUlDQWdJR04xY25KbGJuUWdQU0JQWW1wbFkzUXVaMlYwVUhKdmRHOTBlWEJsVDJZb1kzVnljbVZ1ZENrN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWjJWMFJIUnZRMkZqYUdVb1hHNGdJRzl3T2lCUGNHVnlZWFJwYjI1TFpYbHpYRzRwT2lCWFpXRnJUV0Z3UEVOdmJuTjBjblZqZEc5eVBHRnVlVDRzSUVOdmJuTjBjblZqZEc5eVBHRnVlVDQrSUh0Y2JpQWdhV1lnS0NGa2RHOURZV05vWlM1b1lYTW9iM0FwS1NCN1hHNGdJQ0FnWkhSdlEyRmphR1V1YzJWMEtHOXdMQ0J1WlhjZ1YyVmhhMDFoY0NncEtUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z1pIUnZRMkZqYUdVdVoyVjBLRzl3S1NFN1hHNTlYRzRpWFgwPSJdfQ==
|