@decaf-ts/integrations 0.5.1 → 0.6.1
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/dist/integrations.cjs +2 -2087
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -2356
- package/dist/integrations.js.map +1 -0
- package/docker/keycloak-broker-compose.yml +128 -0
- package/docker/traefik-broker.yml +51 -0
- package/eslint.config.js +1 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs.map +1 -0
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs.map +1 -0
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/docker/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs.map +1 -0
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs.map +1 -0
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs.map +1 -0
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs.map +1 -0
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/constants.cjs.map +1 -0
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +5 -3
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -3
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs.map +1 -0
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs.map +1 -0
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/keycloak/broker.cjs +22 -0
- package/lib/cjs/keycloak/broker.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +3 -2
- package/lib/cjs/keycloak/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +71 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs +6 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs.map +1 -0
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs.map +1 -0
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/kibana/types.cjs.map +1 -0
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/families.cjs.map +1 -0
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/index.cjs.map +1 -0
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/loader/types.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs.map +1 -0
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs.map +1 -0
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs.map +1 -0
- package/lib/cjs/nest/decorators.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphResultService.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -0
- package/lib/cjs/nest/graph/index.cjs +2 -2
- package/lib/cjs/nest/graph/index.cjs.map +1 -0
- package/lib/cjs/nest/graph/main.cjs +2 -2
- package/lib/cjs/nest/graph/main.cjs.map +1 -0
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/index.cjs.map +1 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/logging.cjs.map +1 -0
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/types.cjs.map +1 -0
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/nest/utils.cjs.map +1 -0
- package/lib/cjs/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/contract.cjs.map +1 -0
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs.map +1 -0
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs.map +1 -0
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs.map +1 -0
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs.map +1 -0
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/azure/index.js.map +1 -0
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js.map +1 -0
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobKey.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js.map +1 -0
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/BlobValue.js.map +1 -0
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/core/index.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/gcp/index.js.map +1 -0
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/index.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/ipfs/index.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/local/index.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/memory/index.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/blob/s3/index.js.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/DockerComposeService.js.map +1 -0
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/docker/index.js.map +1 -0
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/constants.js.map +1 -0
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/decorators.js.map +1 -0
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/environment.js.map +1 -0
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/readers/index.js.map +1 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/types.js.map +1 -0
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/feature-flags/utils.js.map +1 -0
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/constants.js.map +1 -0
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/decorators.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js +1 -1
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/errors/index.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/events/index.js.map +1 -0
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +4 -2
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/index.js +1 -1
- package/lib/esm/graph/engine/execution/index.js.map +1 -0
- package/lib/esm/graph/engine/index.js +1 -1
- package/lib/esm/graph/engine/index.js.map +1 -0
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -2
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/loops/index.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/planning/index.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/registry/index.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/store/index.js.map +1 -0
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/types.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/engine/validation/index.js.map +1 -0
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/index.js.map +1 -0
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/constants.js.map +1 -0
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js.map +1 -0
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
- package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/graph/shared/types.js.map +1 -0
- package/lib/esm/index.js +4 -4
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/keycloak/broker.js +17 -0
- package/lib/esm/keycloak/broker.js.map +1 -0
- package/lib/esm/keycloak/index.js +2 -1
- package/lib/esm/keycloak/index.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +69 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakService.js +5 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/index.js.map +1 -0
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/services/runtime.js.map +1 -0
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/keycloak/types.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/builders/index.js.map +1 -0
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/helpers.js.map +1 -0
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/index.js.map +1 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/index.js.map +1 -0
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/services/runtime.js.map +1 -0
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/kibana/types.js.map +1 -0
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/ObjectLoader.js.map +1 -0
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/families.js.map +1 -0
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/index.js.map +1 -0
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/loader/types.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/index.js.map +1 -0
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js.map +1 -0
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/index.js.map +1 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js.map +1 -0
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js.map +1 -0
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js.map +1 -0
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/index.js.map +1 -0
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js.map +1 -0
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js.map +1 -0
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js.map +1 -0
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/types.js.map +1 -0
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/namespaces/utils.js.map +1 -0
- package/lib/esm/nest/decorators.js +1 -1
- package/lib/esm/nest/decorators.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
- package/lib/esm/nest/graph/GraphResultService.js +1 -1
- package/lib/esm/nest/graph/GraphResultService.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -0
- package/lib/esm/nest/graph/index.js +1 -1
- package/lib/esm/nest/graph/index.js.map +1 -0
- package/lib/esm/nest/graph/main.js +1 -1
- package/lib/esm/nest/graph/main.js.map +1 -0
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/index.js.map +1 -0
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/keycloakModule.js.map +1 -0
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/logging.js.map +1 -0
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/types.js.map +1 -0
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/nest/utils.js.map +1 -0
- package/lib/esm/plugins/contract.js +1 -1
- package/lib/esm/plugins/contract.js.map +1 -0
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/index.js.map +1 -0
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/host.js.map +1 -0
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/index.js.map +1 -0
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/installer.js.map +1 -0
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js.map +1 -0
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/templates.js.map +1 -0
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/kibana/types.js.map +1 -0
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/host.js.map +1 -0
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/index.js.map +1 -0
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/installer.js.map +1 -0
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/manifest.js.map +1 -0
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/templates.js.map +1 -0
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/plugins/superset/types.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/aws/index.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/azure/index.js.map +1 -0
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretName.js.map +1 -0
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js.map +1 -0
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/core/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/gcp/index.js.map +1 -0
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/index.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/Secret.js.map +1 -0
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/model/index.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/onepassword/index.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/secrets/vault/index.js.map +1 -0
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/shared/runtime.js.map +1 -0
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/broker.d.cts +6 -0
- package/lib/types/keycloak/broker.d.mts +6 -0
- package/lib/types/keycloak/index.d.cts +1 -0
- package/lib/types/keycloak/index.d.mts +1 -0
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.cts +4 -1
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.mts +4 -1
- package/lib/types/keycloak/services/KeycloakService.d.cts +2 -1
- package/lib/types/keycloak/services/KeycloakService.d.mts +2 -1
- package/lib/types/keycloak/types.d.cts +52 -0
- package/lib/types/keycloak/types.d.mts +52 -0
- package/package.json +8 -4
|
@@ -268,5 +268,5 @@ class KeycloakRoleService extends core_1.ClientBasedService {
|
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
exports.KeycloakRoleService = KeycloakRoleService;
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtSb2xlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9LZXljbG9ha1JvbGVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1wRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxxQkFBa0I7QUFFeEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUd4QztJQUNDLEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUF3QixDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLG1CQUF3QyxFQUN4QyxXQUFtRCxFQUNuRCxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVB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LElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7WUFDL0IsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHtcbiAgS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnLFxuICBLZXljbG9ha1NldHVwQ29uZmlnLFxuICBLZXljbG9ha1VzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5cbmV4cG9ydCBjbGFzcyBLZXljbG9ha1JvbGVTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLZXljbG9ha1NldHVwQ29uZmlnXG4+IHtcbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdIGFzIEtleWNsb2FrU2V0dXBDb25maWc7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICByb2xlQ29uZmlnczogS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnW10gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFJvbGVzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVDbGllbnRSb2xlcyk7XG4gICAgY29uc3Qgcm9sZXMgPSByb2xlQ29uZmlncyA/PyBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5yb2xlcyA/PyBbXTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGZvciAoY29uc3Qgcm9sZSBvZiByb2xlcykge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICAgIHJlYWxtQWNjZXNzVG9rZW4sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIDIwMSxcbiAgICAgICAge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWFsbS1sZXZlbCByb2xlIGluIHRoZSBzcGVjaWZpZWQgcmVhbG0uXG4gICAqXG4gICAqIFdoZW4gYGNvbXBvc2l0ZVJvbGVzYCBpcyBwcm92aWRlZCwgdGhlIHJvbGUgaXMgY3JlYXRlZCBhcyBhIEtleWNsb2FrXG4gICAqIGNvbXBvc2l0ZSByb2xlIHRoYXQgaW5jbHVkZXMgdGhlIGdpdmVuIHN1Yi1yb2xlcy4gIFRoaXMgYWxsb3dzIHJvbGVcbiAgICogaGllcmFyY2hpZXMgKGUuZy4gYGFkbWluIOKKgyB3cml0ZXIg4oqDIHJlYWRlcmApIHNvIHRoYXQgYSB1c2VyIGFzc2lnbmVkXG4gICAqIHRoZSBjb21wb3NpdGUgcm9sZSBhdXRvbWF0aWNhbGx5IGluaGVyaXRzIGFsbCBzdWItcm9sZXMgaW4gdGhlaXIgSldULlxuICAgKlxuICAgKiBAcGFyYW0gcmVhbG1OYW1lICAgICAgVGhlIHJlYWxtIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgcm9sZS5cbiAgICogQHBhcmFtIHJvbGVOYW1lICAgICAgIFRoZSBuYW1lIG9mIHRoZSByZWFsbSByb2xlIHRvIGNyZWF0ZS5cbiAgICogQHBhcmFtIGNvbXBvc2l0ZVJvbGVzIE9wdGlvbmFsIGFycmF5IG9mIGV4aXN0aW5nIHJlYWxtIHJvbGUgbmFtZXMgdG9cbiAgICogICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgYXMgY29tcG9zaXRlcy5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVJlYWxtUm9sZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICByb2xlTmFtZTogc3RyaW5nLFxuICAgIGNvbXBvc2l0ZVJvbGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlUmVhbG1Sb2xlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVSZWFsbVJvbGUpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogcm9sZU5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQXV0by1jcmVhdGVkIHJlYWxtIHJvbGUgJHtyb2xlTmFtZX1gLFxuICAgICAgICBjb21wb3NpdGU6ICEhY29tcG9zaXRlUm9sZXMgJiYgY29tcG9zaXRlUm9sZXMubGVuZ3RoID4gMCxcbiAgICAgICAgLi4uKGNvbXBvc2l0ZVJvbGVzICYmIGNvbXBvc2l0ZVJvbGVzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IHsgY29tcG9zaXRlczogeyByZWFsbTogY29tcG9zaXRlUm9sZXMgfSB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgMjAxLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldFJlYWxtUm9sZXMoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRSZWFsbVJvbGVzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5nZXRSZWFsbVJvbGVzKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9yb2xlc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZUpzb25SZXNwb25zZTxhbnlbXT4ocmVzcG9uc2UuZGF0YSkgPz8gW107XG4gIH1cblxuICBhc3luYyBnZXRDbGllbnRSb2xlcyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRDbGllbnRSb2xlc1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ2V0Q2xpZW50Um9sZXMpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZUpzb25SZXNwb25zZTxhbnlbXT4ocmVzcG9uc2UuZGF0YSkgPz8gW107XG4gIH1cblxuICBhc3luYyBncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJncmFudFJlYWxtUm9sZXNUb1VzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmdyYW50UmVhbG1Sb2xlc1RvVXNlcik7XG4gICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3JvbGVzYCxcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL3JlYWxtYCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdyYW50Q2xpZW50Um9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgY2xpZW50VVVJRDogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ3JhbnRDbGllbnRSb2xlc1RvVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ3JhbnRDbGllbnRSb2xlc1RvVXNlcik7XG4gICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLFxuICAgICAgcm9sZU5hbWVzLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXZva2VSZWFsbVJvbGVzRnJvbVVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiR0VUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPGFueVtdPihyb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSByb2xlcy5maWx0ZXIoKHJvbGUpID0+IHJvbGVOYW1lcy5pbmNsdWRlcyhyb2xlLm5hbWUpKTtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkRFTEVURVwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHNlbGVjdGVkUm9sZXMsXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXBsYWNlUmVhbG1Sb2xlc0ZvclVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3QgY3VycmVudFJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgY3VycmVudFJvbGVzID1cbiAgICAgIHRoaXMucGFyc2VKc29uUmVzcG9uc2U8YW55W10+KGN1cnJlbnRSb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIGlmIChjdXJyZW50Um9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIkRFTEVURVwiLFxuICAgICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9yZWFsbWAsXG4gICAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAgIGN1cnJlbnRSb2xlcyxcbiAgICAgICAgMjA0LFxuICAgICAgICB7fSxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICB1c2VyVVVJRCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlQ2xpZW50Um9sZXNGcm9tVXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IHJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8YW55W10+KHJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgY29uc3Qgc2VsZWN0ZWRSb2xlcyA9IHJvbGVzLmZpbHRlcigocm9sZSkgPT4gcm9sZU5hbWVzLmluY2x1ZGVzKHJvbGUubmFtZSkpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiREVMRVRFXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHNlbGVjdGVkUm9sZXMsXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGFjZUNsaWVudFJvbGVzRm9yVXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IGN1cnJlbnRSb2xlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50Um9sZXMgPVxuICAgICAgdGhpcy5wYXJzZUpzb25SZXNwb25zZTxhbnlbXT4oY3VycmVudFJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgaWYgKGN1cnJlbnRSb2xlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICAgIFwiREVMRVRFXCIsXG4gICAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsXG4gICAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAgIGN1cnJlbnRSb2xlcyxcbiAgICAgICAgMjA0LFxuICAgICAgICB7fSxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ncmFudENsaWVudFJvbGVzVG9Vc2VyKFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgY2xpZW50VVVJRCxcbiAgICAgIHVzZXJVVUlELFxuICAgICAgcm9sZU5hbWVzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcgYXMgYW55KSksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWRtaW5BY2Nlc3NUb2tlbihcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKHRoaXMuY29uZmlnLmFkbWluQXBpVXNlciEsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKTtcbiAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlciEsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2Nlc3NUb2tlbihcbiAgICBrZXljbG9ha1VzZXI6IEtleWNsb2FrVXNlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFjY2Vzc1Rva2VuKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICBjbGllbnRfaWQ6IGtleWNsb2FrVXNlci5hcGlDbGllbnRJZCxcbiAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgZ3JhbnRfdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgfSkudG9TdHJpbmcoKSxcbiAgICAgIDIwMCxcbiAgICAgIHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG4gICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcbiAgICAgIGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGFzc2lnblJvbGVzVG9Vc2VyKFxuICAgIHJvbGVzVXJsOiBzdHJpbmcsXG4gICAgc2V0Um9sZXNVcmw6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFzc2lnblJvbGVzVG9Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5hc3NpZ25Sb2xlc1RvVXNlcik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgcm9sZXNVcmwsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPGFueVtdPihyZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICBjb25zdCBzZWxlY3RlZFJvbGVzID0gcm9sZXMuZmlsdGVyKChyb2xlKSA9PiByb2xlTmFtZXMuaW5jbHVkZXMocm9sZS5uYW1lKSk7XG4gICAgaWYgKHNlbGVjdGVkUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgTm8gcm9sZXMgbWF0Y2hlZCAke3JvbGVOYW1lcy5qb2luKFwiLCBcIil9YCk7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBzZWxlY3RlZFJvbGVzLm1hcCgocm9sZSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdChcbiAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgIHNldFJvbGVzVXJsLFxuICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgW3JvbGVdLFxuICAgICAgICAyMDQsXG4gICAgICAgIHt9LFxuICAgICAgICAuLi5jdHhBcmdzXG4gICAgICApXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcXVlc3QoXG4gICAgbWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJERUxFVEVcIixcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWNjZXNzVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwYXlsb2FkOiB1bmtub3duLFxuICAgIHN1Y2Nlc3NDb2RlOiBudW1iZXIsXG4gICAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgbWV0aG9kLFxuICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICBkYXRhOlxuICAgICAgICBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgLi4uKGFjY2Vzc1Rva2VuID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwYXlsb2FkICE9PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcgYXMgYW55KSksXG4gICAgICB9KSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgIH0pO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUh0dHBSZXNwb25zZShcbiAgICByZXNwb25zZTogYW55LFxuICAgIHN1Y2Nlc3NDb2RlOiBudW1iZXIsXG4gICAgZXJyb3JNc2c/OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzIGFzIG51bWJlcjtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDkgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29uZmxpY3RcIikpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDApIHtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IEVycm9yKTogRXJyb3Ige1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUpzb25SZXNwb25zZTxUPihkYXRhOiB1bmtub3duKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKSBhcyBUO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhIGFzIFQ7XG4gIH1cbn1cbiJdfQ==
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtSb2xlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleWNsb2FrUm9sZVNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdHO0FBQ3hHLHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLDZDQUEyRDtBQUMzRCxNQUFhLG1CQUFvQixTQUFRLHlCQUFrQjtJQUN2RCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSTtRQUM3RCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JHLE1BQU0sS0FBSyxHQUFHLFdBQVcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFN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QUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0csT0FBTyxJQUFJLCtCQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxJQUFJLDZCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckUsT0FBTyxJQUFJLDZCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sSUFBSSw2QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxJQUFJO1FBQ2xCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBQ0QsTUFBTSxDQUFDO2dCQUNILE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBaE9ELGtEQWdPQztBQUNELGtrc0NBQWtrc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lLmpzXCI7XG5leHBvcnQgY2xhc3MgS2V5Y2xvYWtSb2xlU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoa2V5Y2xvYWtTZXR1cENvbmZpZywgcm9sZUNvbmZpZ3MsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRSb2xlc1wiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50Um9sZXMpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHJvbGVDb25maWdzID8/IGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LnJvbGVzID8/IFtdO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsIHJlYWxtQWNjZXNzVG9rZW4sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgICAgICB9LCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgcmVhbG0tbGV2ZWwgcm9sZSBpbiB0aGUgc3BlY2lmaWVkIHJlYWxtLlxuICAgICAqXG4gICAgICogV2hlbiBgY29tcG9zaXRlUm9sZXNgIGlzIHByb3ZpZGVkLCB0aGUgcm9sZSBpcyBjcmVhdGVkIGFzIGEgS2V5Y2xvYWtcbiAgICAgKiBjb21wb3NpdGUgcm9sZSB0aGF0IGluY2x1ZGVzIHRoZSBnaXZlbiBzdWItcm9sZXMuICBUaGlzIGFsbG93cyByb2xlXG4gICAgICogaGllcmFyY2hpZXMgKGUuZy4gYGFkbWluIOKKgyB3cml0ZXIg4oqDIHJlYWRlcmApIHNvIHRoYXQgYSB1c2VyIGFzc2lnbmVkXG4gICAgICogdGhlIGNvbXBvc2l0ZSByb2xlIGF1dG9tYXRpY2FsbHkgaW5oZXJpdHMgYWxsIHN1Yi1yb2xlcyBpbiB0aGVpciBKV1QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVhbG1OYW1lICAgICAgVGhlIHJlYWxtIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgcm9sZS5cbiAgICAgKiBAcGFyYW0gcm9sZU5hbWUgICAgICAgVGhlIG5hbWUgb2YgdGhlIHJlYWxtIHJvbGUgdG8gY3JlYXRlLlxuICAgICAqIEBwYXJhbSBjb21wb3NpdGVSb2xlcyBPcHRpb25hbCBhcnJheSBvZiBleGlzdGluZyByZWFsbSByb2xlIG5hbWVzIHRvXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgYXMgY29tcG9zaXRlcy5cbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGVSZWFsbVJvbGUocmVhbG1OYW1lLCByb2xlTmFtZSwgY29tcG9zaXRlUm9sZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVSZWFsbVJvbGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVJlYWxtUm9sZSk7XG4gICAgICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3JvbGVzYCwgYWRtaW5BY2Nlc3NUb2tlbiwge1xuICAgICAgICAgICAgbmFtZTogcm9sZU5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYEF1dG8tY3JlYXRlZCByZWFsbSByb2xlICR7cm9sZU5hbWV9YCxcbiAgICAgICAgICAgIGNvbXBvc2l0ZTogISFjb21wb3NpdGVSb2xlcyAmJiBjb21wb3NpdGVSb2xlcy5sZW5ndGggPiAwLFxuICAgICAgICAgICAgLi4uKGNvbXBvc2l0ZVJvbGVzICYmIGNvbXBvc2l0ZVJvbGVzLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/IHsgY29tcG9zaXRlczogeyByZWFsbTogY29tcG9zaXRlUm9sZXMgfSB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH0sIDIwMSwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRSZWFsbVJvbGVzKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImdldFJlYWxtUm9sZXNcIiwgdHJ1ZSkpLmZvcih0aGlzLmdldFJlYWxtUm9sZXMpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0Q2xpZW50Um9sZXMocmVhbG1OYW1lLCBjbGllbnRVVUlELCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50Um9sZXNcIiwgdHJ1ZSkpLmZvcih0aGlzLmdldENsaWVudFJvbGVzKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsIGFkbWluQWNjZXNzVG9rZW4sIHVuZGVmaW5lZCwgMjAwLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIH1cbiAgICBhc3luYyBncmFudFJlYWxtUm9sZXNUb1VzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ3JhbnRSZWFsbVJvbGVzVG9Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5ncmFudFJlYWxtUm9sZXNUb1VzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9yb2xlc2AsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL3JlYWxtYCwgcm9sZU5hbWVzLCBhZG1pbkFjY2Vzc1Rva2VuLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ3JhbnRDbGllbnRSb2xlc1RvVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJncmFudENsaWVudFJvbGVzVG9Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5ncmFudENsaWVudFJvbGVzVG9Vc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hc3NpZ25Sb2xlc1RvVXNlcihgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vY2xpZW50cy8ke2NsaWVudFVVSUR9L3JvbGVzYCwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvY2xpZW50cy8ke2NsaWVudFVVSUR9YCwgcm9sZU5hbWVzLCBhZG1pbkFjY2Vzc1Rva2VuLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldm9rZVJlYWxtUm9sZXNGcm9tVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMucmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2Uocm9sZXNSZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSb2xlcyA9IHJvbGVzLmZpbHRlcigocm9sZSkgPT4gcm9sZU5hbWVzLmluY2x1ZGVzKHJvbGUubmFtZSkpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXCJERUxFVEVcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLCBhZG1pbkFjY2Vzc1Rva2VuLCBzZWxlY3RlZFJvbGVzLCAyMDQsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJlcGxhY2VSZWFsbVJvbGVzRm9yVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMucmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgY3VycmVudFJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKGN1cnJlbnRSb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgICAgICBpZiAoY3VycmVudFJvbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIkRFTEVURVwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9yZWFsbWAsIGFkbWluQWNjZXNzVG9rZW4sIGN1cnJlbnRSb2xlcywgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5ncmFudFJlYWxtUm9sZXNUb1VzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmV2b2tlQ2xpZW50Um9sZXNGcm9tVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5yZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vY2xpZW50cy8ke2NsaWVudFVVSUR9L3JvbGVzYCwgYWRtaW5BY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSByb2xlcy5maWx0ZXIoKHJvbGUpID0+IHJvbGVOYW1lcy5pbmNsdWRlcyhyb2xlLm5hbWUpKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiREVMRVRFXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsIGFkbWluQWNjZXNzVG9rZW4sIHNlbGVjdGVkUm9sZXMsIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyKHJlYWxtTmFtZSwgY2xpZW50VVVJRCwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJlcGxhY2VDbGllbnRSb2xlc0ZvclVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnJlcGxhY2VDbGllbnRSb2xlc0ZvclVzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKGN1cnJlbnRSb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgICAgICBpZiAoY3VycmVudFJvbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIkRFTEVURVwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLCBhZG1pbkFjY2Vzc1Rva2VuLCBjdXJyZW50Um9sZXMsIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZ3JhbnRDbGllbnRSb2xlc1RvVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGdldEFkbWluQWNjZXNzVG9rZW4oLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbik7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKHRoaXMuY29uZmlnLmFkbWluQXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbik7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0QWNjZXNzVG9rZW4oa2V5Y2xvYWtVc2VyLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRBY2Nlc3NUb2tlbik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLCB1bmRlZmluZWQsIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2xpZW50X2lkOiBrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWQsXG4gICAgICAgICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgfSkudG9TdHJpbmcoKSwgMjAwLCB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKVxuICAgICAgICAgICAgcmV0dXJuIGRhdGEuYWNjZXNzX3Rva2VuO1xuICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gKTtcbiAgICB9XG4gICAgYXN5bmMgYXNzaWduUm9sZXNUb1VzZXIocm9sZXNVcmwsIHNldFJvbGVzVXJsLCByb2xlTmFtZXMsIGFjY2Vzc1Rva2VuLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYXNzaWduUm9sZXNUb1VzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgcm9sZXNVcmwsIGFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UocmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSByb2xlcy5maWx0ZXIoKHJvbGUpID0+IHJvbGVOYW1lcy5pbmNsdWRlcyhyb2xlLm5hbWUpKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgTm8gcm9sZXMgbWF0Y2hlZCAke3JvbGVOYW1lcy5qb2luKFwiLCBcIil9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBzZWxlY3RlZFJvbGVzLm1hcCgocm9sZSkgPT4gdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBzZXRSb2xlc1VybCwgYWNjZXNzVG9rZW4sIFtyb2xlXSwgMjA0LCB7fSwgLi4uY3R4QXJncykpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuICAgIGFzeW5jIHJlcXVlc3QobWV0aG9kLCBwYXRoLCBhY2Nlc3NUb2tlbiwgcGF5bG9hZCwgc3VjY2Vzc0NvZGUsIGhlYWRlcnMsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybDogYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fSR7cGF0aH1gLFxuICAgICAgICAgICAgZGF0YTogcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgLi4uKGFjY2Vzc1Rva2VuID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCB9IDoge30pLFxuICAgICAgICAgICAgICAgIC4uLihwYXlsb2FkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHBheWxvYWQgIT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBzdWNjZXNzQ29kZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUsIGVycm9yTXNnKSB7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTXNnXG4gICAgICAgICAgICA/IGAke2Vycm9yTXNnfTogRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fS5gXG4gICAgICAgICAgICA6IGBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDA0IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDA5IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgcGFyc2VFcnJvcihlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgICAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJpbnZhbGlkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImJhZCByZXF1ZXN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXV0aG9yaXplZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDFcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZm9yYmlkZGVuXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgcGFyc2VKc29uUmVzcG9uc2UoZGF0YSkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lTMlY1WTJ4dllXdFNiMnhsVTJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5clpYbGpiRzloYXk5elpYSjJhV05sY3k5TFpYbGpiRzloYTFKdmJHVlRaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4bFFVRmxMRVZCUTJZc1lVRkJZU3hGUVVOaUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVkQlEyUXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVVZxUXl4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVTF3UkN4UFFVRlBMRXRCUVhkQ0xFMUJRVTBzVDBGQlR5eERRVUZETzBGQlF6ZERMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzV1VGQldTeERRVUZETzBGQlEzQkRMRTlCUVU4c1JVRkJSU3d5UWtGQk1rSXNSVUZCUlN4eFFrRkJhMEk3UVVGRmVFUXNUVUZCVFN4UFFVRlBMRzFDUVVGdlFpeFRRVUZSTEd0Q1FVZDRRenRKUVVORExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlEyUXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3haUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6VkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRjNRaXhEUVVGRE8xRkJRMnBFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJRM1JDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVNM1F5eEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMFFpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRE8wbEJRelZDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlEzSkNMRzFDUVVGM1F5eEZRVU40UXl4WFFVRnRSQ3hGUVVOdVJDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnVSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFJRVU01UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhYUVVGWExFbEJRVWtzYlVKQlFXMUNMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEY0VVc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZEY2tRc2JVSkJRVzFDTEVWQlEyNUNMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeExRVUZMTEUxQlFVMHNTVUZCU1N4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM3BDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRhRUlzVFVGQlRTeEZRVU5PTEdsQ1FVRnBRaXh0UWtGQmJVSXNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhaUVVGWkxHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxGRkJRVkVzUlVGRGFrZ3NaMEpCUVdkQ0xFVkJRMmhDTzJkQ1FVTkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdG5Ra0ZEYmtJc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVsQlFVa3NjVUpCUVhGQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdaMEpCUTNKRkxGTkJRVk1zUlVGQlJTeExRVUZMTzJkQ1FVTm9RaXhWUVVGVkxFVkJRVVVzU1VGQlNUdGhRVU5xUWl4RlFVTkVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTktMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3T3p0UFFWbEhPMGxCUTBnc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGRGJrSXNVMEZCYVVJc1JVRkRha0lzVVVGQlowSXNSVUZEYUVJc1kwRkJiME1zUlVGRGNFTXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRha1FzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRelZDTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEyaENMRTFCUVUwc1JVRkRUaXhwUWtGQmFVSXNVMEZCVXl4UlFVRlJMRVZCUTJ4RExHZENRVUZuUWl4RlFVTm9RanRaUVVORkxFbEJRVWtzUlVGQlJTeFJRVUZSTzFsQlEyUXNWMEZCVnl4RlFVRkZMREpDUVVFeVFpeFJRVUZSTEVWQlFVVTdXVUZEYkVRc1UwRkJVeXhGUVVGRkxFTkJRVU1zUTBGQlF5eGpRVUZqTEVsQlFVa3NZMEZCWXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRE8xbEJRM2hFTEVkQlFVY3NRMEZCUXl4alFVRmpMRWxCUVVrc1kwRkJZeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETzJkQ1FVTTNReXhEUVVGRExFTkJRVU1zUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1kwRkJZeXhGUVVGRkxFVkJRVVU3WjBKQlF6TkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VTBGRFVpeEZRVU5FTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVOcVFpeFRRVUZwUWl4RlFVTnFRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRMME1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xRkJRekZDTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc1UwRkJVeXhSUVVGUkxFVkJRMnhETEdkQ1FVRm5RaXhGUVVOb1FpeFRRVUZUTEVWQlExUXNSMEZCUnl4RlFVTklMRVZCUVVVc1JVRkRSaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUMEZCVHl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFWRXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU0xUkN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGRGJFSXNVMEZCYVVJc1JVRkRha0lzVlVGQmEwSXNSVUZEYkVJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGFFUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFGQlF6TkNMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1JTeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMnBETEV0QlFVc3NSVUZEVEN4cFFrRkJhVUlzVTBGQlV5eFpRVUZaTEZWQlFWVXNVVUZCVVN4RlFVTjRSQ3huUWtGQlowSXNSVUZEYUVJc1UwRkJVeXhGUVVOVUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGUkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1NVRkROVVFzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4eFFrRkJjVUlzUTBGRGVrSXNVMEZCYVVJc1JVRkRha0lzVVVGQlowSXNSVUZEYUVJc1UwRkJiVUlzUlVGRGJrSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3gxUWtGQmRVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRka1FzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdVVUZEYkVNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JGTEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVU14UWl4cFFrRkJhVUlzVTBGQlV5eFJRVUZSTEVWQlEyeERMR2xDUVVGcFFpeFRRVUZUTEZWQlFWVXNVVUZCVVN4elFrRkJjMElzUlVGRGJFVXNVMEZCVXl4RlFVTlVMR2RDUVVGblFpeEZRVU5vUWl4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4elFrRkJjMElzUTBGRE1VSXNVMEZCYVVJc1JVRkRha0lzVlVGQmEwSXNSVUZEYkVJc1VVRkJaMElzUlVGRGFFSXNVMEZCYlVJc1JVRkRia0lzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4M1FrRkJkMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEZUVRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU03VVVGRGJrTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRkxFMUJRVTBzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVNeFFpeHBRa0ZCYVVJc1UwRkJVeXhaUVVGWkxGVkJRVlVzVVVGQlVTeEZRVU40UkN4cFFrRkJhVUlzVTBGQlV5eFZRVUZWTEZGQlFWRXNNRUpCUVRCQ0xGVkJRVlVzUlVGQlJTeEZRVU5zUml4VFFVRlRMRVZCUTFRc1owSkJRV2RDTEVWQlEyaENMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMSGRDUVVGM1FpeERRVU0xUWl4VFFVRnBRaXhGUVVOcVFpeFJRVUZuUWl4RlFVTm9RaXhUUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxEQkNRVUV3UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNeFJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU4wUXl4TFFVRkxMRVZCUTB3c2FVSkJRV2xDTEZOQlFWTXNVVUZCVVN4RlFVTnNReXhuUWtGQlowSXNSVUZEYUVJc1UwRkJVeXhGUVVOVUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlVTeGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRM1JGTEUxQlFVMHNZVUZCWVN4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkROVVVzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhSUVVGUkxFVkJRMUlzYVVKQlFXbENMRk5CUVZNc1ZVRkJWU3hSUVVGUkxITkNRVUZ6UWl4RlFVTnNSU3huUWtGQlowSXNSVUZEYUVJc1lVRkJZU3hGUVVOaUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNkMEpCUVhkQ0xFTkJRelZDTEZOQlFXbENMRVZCUTJwQ0xGRkJRV2RDTEVWQlEyaENMRk5CUVcxQ0xFVkJRMjVDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc01FSkJRVEJDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpGRUxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzUTBGQlF5eERRVUZETzFGQlEzSkRMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1JTeE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZETjBNc1MwRkJTeXhGUVVOTUxHbENRVUZwUWl4VFFVRlRMRlZCUVZVc1VVRkJVU3h6UWtGQmMwSXNSVUZEYkVVc1owSkJRV2RDTEVWQlEyaENMRk5CUVZNc1JVRkRWQ3hIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxGbEJRVmtzUjBGRGFFSXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZSTEc5Q1FVRnZRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTnFSU3hKUVVGSkxGbEJRVmtzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROVUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhSUVVGUkxFVkJRMUlzYVVKQlFXbENMRk5CUVZNc1ZVRkJWU3hSUVVGUkxITkNRVUZ6UWl4RlFVTnNSU3huUWtGQlowSXNSVUZEYUVJc1dVRkJXU3hGUVVOYUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeE5RVUZOTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGRE9VSXNVMEZCVXl4RlFVTlVMRkZCUVZFc1JVRkRVaXhUUVVGVExFVkJRMVFzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zZVVKQlFYbENMRU5CUXpkQ0xGTkJRV2xDTEVWQlEycENMRlZCUVd0Q0xFVkJRMnhDTEZGQlFXZENMRVZCUTJoQ0xGTkJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzTWtKQlFUSkNMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRek5FTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4RFFVRkRPMUZCUTNSRExFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UlN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEzUkRMRXRCUVVzc1JVRkRUQ3hwUWtGQmFVSXNVMEZCVXl4WlFVRlpMRlZCUVZVc1VVRkJVU3hGUVVONFJDeG5Ra0ZCWjBJc1JVRkRhRUlzVTBGQlV5eEZRVU5VTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCVVN4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlEzUkZMRTFCUVUwc1lVRkJZU3hIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE5VVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOb1FpeFJRVUZSTEVWQlExSXNhVUpCUVdsQ0xGTkJRVk1zVlVGQlZTeFJRVUZSTERCQ1FVRXdRaXhWUVVGVkxFVkJRVVVzUlVGRGJFWXNaMEpCUVdkQ0xFVkJRMmhDTEdGQlFXRXNSVUZEWWl4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExIbENRVUY1UWl4RFFVTTNRaXhUUVVGcFFpeEZRVU5xUWl4VlFVRnJRaXhGUVVOc1FpeFJRVUZuUWl4RlFVTm9RaXhUUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxESkNRVUV5UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNelJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNRMEZCUXp0UlFVTjBReXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUXpkRExFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc1UwRkJVeXhWUVVGVkxGRkJRVkVzTUVKQlFUQkNMRlZCUVZVc1JVRkJSU3hGUVVOc1JpeG5Ra0ZCWjBJc1JVRkRhRUlzVTBGQlV5eEZRVU5VTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEUxQlFVMHNXVUZCV1N4SFFVTm9RaXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVZFc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRMnBGTEVsQlFVa3NXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU0xUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMmhDTEZGQlFWRXNSVUZEVWl4cFFrRkJhVUlzVTBGQlV5eFZRVUZWTEZGQlFWRXNNRUpCUVRCQ0xGVkJRVlVzUlVGQlJTeEZRVU5zUml4blFrRkJaMElzUlVGRGFFSXNXVUZCV1N4RlFVTmFMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkRMMElzVTBGQlV5eEZRVU5VTEZWQlFWVXNSVUZEVml4UlFVRlJMRVZCUTFJc1UwRkJVeXhGUVVOVUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlU4c1owSkJRV2RDTEVOQlFVTXNUVUZCTWtJN1VVRkRiRVFzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTJ4Q0xFOUJRVThzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4UlFVRlJMRTFCUVUwc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJUdFpRVU01UXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hqUVVGakxFVkJRVVVzYTBKQlFXdENMRVZCUVVVN1dVRkRMME1zWTBGQll5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1dVRkRNVUlzVlVGQlZTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE1VSXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQllTeERRVUZETEVOQlFVTTdZVUZEZEVVc1EwRkJRenRUUVVOSUxFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlF5OUNMRWRCUVVjc1NVRkJlVUk3VVVGRk5VSXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMUZCUTJoRkxFOUJRVThzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGbEJRV0VzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNCRkxFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJReTlDTEcxQ1FVRjNReXhGUVVONFF5eEhRVUZITEVsQlFYbENPMUZCUlRWQ0xFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFJRVU5vUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1dVRkJZU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETlVVc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlF6RkNMRmxCUVRCQ0xFVkJRekZDTEVkQlFVY3NTVUZCZVVJN1VVRkZOVUlzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRSUVVNelJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMnBETEUxQlFVMHNSVUZEVGl4WFFVRlhMRmxCUVZrc1EwRkJReXhMUVVGTExHZERRVUZuUXl4RlFVTTNSQ3hUUVVGVExFVkJRMVFzU1VGQlNTeGxRVUZsTEVOQlFVTTdXVUZEYkVJc1UwRkJVeXhGUVVGRkxGbEJRVmtzUTBGQlF5eFhRVUZYTzFsQlEyNURMRkZCUVZFc1JVRkJSU3haUVVGWkxFTkJRVU1zVVVGQlVUdFpRVU12UWl4UlFVRlJMRVZCUVVVc1dVRkJXU3hEUVVGRExGRkJRVkU3V1VGREwwSXNWVUZCVlN4RlFVRkZMRlZCUVZVN1UwRkRka0lzUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlN4RlFVTmlMRWRCUVVjc1JVRkRTQ3hGUVVGRkxHTkJRV01zUlVGQlJTeHRRMEZCYlVNc1JVRkJSU3hGUVVOMlJDeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVOcVF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVTmtMRU5CUVVNN1VVRkRSaXhKUVVGSkxFbEJRVWtzUlVGQlJTeFpRVUZaTzFsQlFVVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8xRkJRMnBFTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUTNaQ0xHZEVRVUZuUkN4WlFVRlpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRM2hGTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVTnlRaXhSUVVGblFpeEZRVU5vUWl4WFFVRnRRaXhGUVVOdVFpeFRRVUZ0UWl4RlFVTnVRaXhYUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOdVJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFdEJRVXNzUlVGRFRDeFJRVUZSTEVWQlExSXNWMEZCVnl4RlFVTllMRk5CUVZNc1JVRkRWQ3hIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVkVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOcVJTeE5RVUZOTEdGQlFXRXNSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpWRkxFbEJRVWtzWVVGQllTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNdlFpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRzlDUVVGdlFpeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU4wUlN4RFFVRkRPMUZCUTBRc1RVRkJUU3hSUVVGUkxFZEJRVzlDTEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVU16UkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOV0xFMUJRVTBzUlVGRFRpeFhRVUZYTEVWQlExZ3NWMEZCVnl4RlFVTllMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRMDRzUjBGQlJ5eEZRVU5JTEVWQlFVVXNSVUZEUml4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVOR0xFTkJRVU03VVVGRFJpeE5RVUZOTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRE9VSXNRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRMjVDTEUxQlFYbERMRVZCUTNwRExFbEJRVmtzUlVGRFdpeFhRVUVyUWl4RlFVTXZRaXhQUVVGblFpeEZRVU5vUWl4WFFVRnRRaXhGUVVOdVFpeFBRVUVyUWl4RlFVTXZRaXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOb1F5eE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETzFsQlEzcERMRTFCUVUwN1dVRkRUaXhIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRVZCUVVVN1dVRkRNMFFzU1VGQlNTeEZRVU5HTEU5QlFVOHNTMEZCU3l4VFFVRlRPMmRDUVVOdVFpeERRVUZETEVOQlFVTXNVMEZCVXp0blFrRkRXQ3hEUVVGRExFTkJRVU1zVDBGQlR5eFBRVUZQTEV0QlFVc3NVVUZCVVR0dlFrRkRNMElzUTBGQlF5eERRVUZETEU5QlFVODdiMEpCUTFRc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUXk5Q0xFOUJRVThzUlVGQlJUdG5Ra0ZEVUN4SFFVRkhMRTlCUVU4N1owSkJRMVlzUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hoUVVGaExFVkJRVVVzVlVGQlZTeFhRVUZYTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03WjBKQlEyeEZMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzVTBGQlV5eEpRVUZKTEU5QlFVOHNUMEZCVHl4TFFVRkxMRkZCUVZFN2IwSkJRM1JFTEVOQlFVTXNRMEZCUXl4RlFVRkZMR05CUVdNc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlR0dlFrRkRlRU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0aFFVTlNPMWxCUTBRc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXp0blFrRkRNVUlzYTBKQlFXdENMRVZCUVVVc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJZU3hEUVVGRExFTkJRVU03WVVGRGRFVXNRMEZCUXp0WlFVTkdMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFOQlF6TkNMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNTMEZCU3l4WFFVRlhMRVZCUVVVc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTJwRUxFTkJRVU03VVVGRFJDeFBRVUZQTEZGQlFWRXNRMEZCUXp0SlFVTnNRaXhEUVVGRE8wbEJSVThzYTBKQlFXdENMRU5CUTNoQ0xGRkJRV0VzUlVGRFlpeFhRVUZ0UWl4RlFVTnVRaXhSUVVGcFFqdFJRVVZxUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlowSXNRMEZCUXp0UlFVTjZReXhOUVVGTkxFOUJRVThzUjBGQlJ5eFJRVUZSTzFsQlEzUkNMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzWTBGQll5eFhRVUZYTEdOQlFXTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhSUVVGUkxFTkJRVU1zVlVGQlZTeEhRVUZITzFsQlF6bEdMRU5CUVVNc1EwRkJReXhaUVVGWkxGZEJRVmNzWTBGQll5eFJRVUZSTEVOQlFVTXNUVUZCVFN4TFFVRkxMRkZCUVZFc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU51Uml4SlFVRkpMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzVDBGQlR5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEyeEZMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYmtNc1EwRkJRenRSUVVORUxFbEJRVWtzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRha1VzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOdVF5eERRVUZETzFGQlEwUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGJrSXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU55UXl4RFFVRkRPMUZCUTBRc1NVRkJTU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOeVF5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMjVETEVOQlFVTTdVVUZEUkN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEyNURMRU5CUVVNN1NVRkZVeXhWUVVGVkxFTkJRVU1zUzBGQldUdFJRVU12UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRWxCUVVrc1pVRkJaU3hEUVVGRE8xRkJReTlFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVVV6UXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzWkZMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMnBJTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU0zUnl4UFFVRlBMRWxCUVVrc1pVRkJaU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzUkRMRU5CUVVNN1VVRkZSQ3hKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpGRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTndReXhEUVVGRE8wbEJSVThzYVVKQlFXbENMRU5CUVVrc1NVRkJZVHRSUVVONFF5eEpRVUZKTEU5QlFVOHNTVUZCU1N4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRemRDTEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRk5MRU5CUVVNN1dVRkRMMElzUTBGQlF6dFpRVUZETEUxQlFVMHNRMEZCUXp0blFrRkRVQ3hQUVVGUExGTkJRVk1zUTBGQlF6dFpRVU51UWl4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVORUxFOUJRVThzU1VGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2l4Y2JpQWdRMjl1Wm14cFkzUkZjbkp2Y2l4Y2JpQWdTVzUwWlhKdVlXeEZjbkp2Y2l4Y2JpQWdUbTkwUm05MWJtUkZjbkp2Y2l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QkRiMjUwWlhoMGRXRnNRWEpuY3l3Z1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKbklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QkRiR2xsYm5SQ1lYTmxaRk5sY25acFkyVWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUh0Y2JpQWdTMlY1WTJ4dllXdERiR2xsYm5SU2IyeGxRMjl1Wm1sbkxGeHVJQ0JMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTEZ4dUlDQkxaWGxqYkc5aGExVnpaWElzWEc1OUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElFRjRhVzl6TENCN0lFRjRhVzl6U1c1emRHRnVZMlVnZlNCbWNtOXRJRndpWVhocGIzTmNJanRjYm1sdGNHOXlkQ0FxSUdGeklHaDBkSEJ6SUdaeWIyMGdYQ0p1YjJSbE9taDBkSEJ6WENJN1hHNXBiWEJ2Y25RZ2V5QnlaWE52YkhabFMyVjVZMnh2WVd0SmMxQnliMlIxWTNScGIyNGdmU0JtY205dElGd2lMaTl5ZFc1MGFXMWxYQ0k3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJMWlhsamJHOWhhMUp2YkdWVFpYSjJhV05sSUdWNGRHVnVaSE1nUTJ4cFpXNTBRbUZ6WldSVFpYSjJhV05sUEZ4dUlDQkJlR2x2YzBsdWMzUmhibU5sTEZ4dUlDQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5YRzQrSUh0Y2JpQWdZWE41Ym1NZ2FXNXBkR2xoYkdsNlpTaGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIc2dZMjl1Wm1sbk9pQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PeUJqYkdsbGJuUTZJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSnBibWwwYVdGc2FYcGxYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXBibWwwYVdGc2FYcGxLVHRjYmlBZ0lDQmpiMjV6ZENCamIyNW1hV2NnUFNCamRIaEJjbWR6V3pCZElHRnpJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2M3WEc0Z0lDQWdkR2hwY3k1ZlkyOXVabWxuSUQwZ1kyOXVabWxuTzF4dUlDQWdJR052Ym5OMElHTnNhV1Z1ZENBOUlIUm9hWE11WTNKbFlYUmxTSFIwY0VOc2FXVnVkQ2hqYjI1bWFXY3BPMXh1SUNBZ0lIUm9hWE11WDJOc2FXVnVkQ0E5SUdOc2FXVnVkRHRjYmlBZ0lDQnlaWFIxY200Z2V5QmpiMjVtYVdjc0lHTnNhV1Z1ZENCOU8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ1kzSmxZWFJsUTJ4cFpXNTBVbTlzWlhNb1hHNGdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnpvZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNCeWIyeGxRMjl1Wm1sbmN6b2dTMlY1WTJ4dllXdERiR2xsYm5SU2IyeGxRMjl1Wm1sblcxMGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltTnlaV0YwWlVOc2FXVnVkRkp2YkdWelhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZEYkdsbGJuUlNiMnhsY3lrN1hHNGdJQ0FnWTI5dWMzUWdjbTlzWlhNZ1BTQnliMnhsUTI5dVptbG5jeUEvUHlCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxtTnNhV1Z1ZEM1eWIyeGxjeUEvUHlCYlhUdGNiaUFnSUNCamIyNXpkQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVJRDBnWVhkaGFYUWdkR2hwY3k1blpYUlNaV0ZzYlVGalkyVnpjMVJ2YTJWdUtGeHVJQ0FnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NtOXNaU0J2WmlCeWIyeGxjeWtnZTF4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnSUNCY0lsQlBVMVJjSWl4Y2JpQWdJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0clpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjajh1Y21WaGJHMTlMMk5zYVdWdWRITXZKSHRyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG1Oc2FXVnVkQzVqYkdsbGJuUlZWVWxFZlM5eWIyeGxjMkFzWEc0Z0lDQWdJQ0FnSUhKbFlXeHRRV05qWlhOelZHOXJaVzRzWEc0Z0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQnVZVzFsT2lCeWIyeGxMbkp2YkdWT1lXMWxMRnh1SUNBZ0lDQWdJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQnliMnhsTG1SbGMyTnlhWEIwYVc5dUlEOC9JR0JCZFhSdkxXTnlaV0YwWldRZ2NtOXNaU0FrZTNKdmJHVXVjbTlzWlU1aGJXVjlZQ3hjYmlBZ0lDQWdJQ0FnSUNCamIyMXdiM05wZEdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lHTnNhV1Z1ZEZKdmJHVTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJREl3TVN4Y2JpQWdJQ0FnSUNBZ2UzMHNYRzRnSUNBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaWE1nWVNCeVpXRnNiUzFzWlhabGJDQnliMnhsSUdsdUlIUm9aU0J6Y0dWamFXWnBaV1FnY21WaGJHMHVYRzRnSUNBcVhHNGdJQ0FxSUZkb1pXNGdZR052YlhCdmMybDBaVkp2YkdWellDQnBjeUJ3Y205MmFXUmxaQ3dnZEdobElISnZiR1VnYVhNZ1kzSmxZWFJsWkNCaGN5QmhJRXRsZVdOc2IyRnJYRzRnSUNBcUlHTnZiWEJ2YzJsMFpTQnliMnhsSUhSb1lYUWdhVzVqYkhWa1pYTWdkR2hsSUdkcGRtVnVJSE4xWWkxeWIyeGxjeTRnSUZSb2FYTWdZV3hzYjNkeklISnZiR1ZjYmlBZ0lDb2dhR2xsY21GeVkyaHBaWE1nS0dVdVp5NGdZR0ZrYldsdUlPS0tneUIzY21sMFpYSWc0b3FESUhKbFlXUmxjbUFwSUhOdklIUm9ZWFFnWVNCMWMyVnlJR0Z6YzJsbmJtVmtYRzRnSUNBcUlIUm9aU0JqYjIxd2IzTnBkR1VnY205c1pTQmhkWFJ2YldGMGFXTmhiR3g1SUdsdWFHVnlhWFJ6SUdGc2JDQnpkV0l0Y205c1pYTWdhVzRnZEdobGFYSWdTbGRVTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2NtVmhiRzFPWVcxbElDQWdJQ0FnVkdobElISmxZV3h0SUdsdUlIZG9hV05vSUhSdklHTnlaV0YwWlNCMGFHVWdjbTlzWlM1Y2JpQWdJQ29nUUhCaGNtRnRJSEp2YkdWT1lXMWxJQ0FnSUNBZ0lGUm9aU0J1WVcxbElHOW1JSFJvWlNCeVpXRnNiU0J5YjJ4bElIUnZJR055WldGMFpTNWNiaUFnSUNvZ1FIQmhjbUZ0SUdOdmJYQnZjMmwwWlZKdmJHVnpJRTl3ZEdsdmJtRnNJR0Z5Y21GNUlHOW1JR1Y0YVhOMGFXNW5JSEpsWVd4dElISnZiR1VnYm1GdFpYTWdkRzljYmlBZ0lDb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdVkyeDFaR1VnWVhNZ1kyOXRjRzl6YVhSbGN5NWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHTnlaV0YwWlZKbFlXeHRVbTlzWlNoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQnliMnhsVG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUdOdmJYQnZjMmwwWlZKdmJHVnpPaUJ6ZEhKcGJtZGJYU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFVtVmhiRzFTYjJ4bFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZTWldGc2JWSnZiR1VwTzF4dUlDQWdJR052Ym5OMElHRmtiV2x1UVdOalpYTnpWRzlyWlc0Z1BTQmhkMkZwZENCMGFHbHpMbWRsZEVGa2JXbHVRV05qWlhOelZHOXJaVzRvTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnWENKUVQxTlVYQ0lzWEc0Z0lDQWdJQ0JnTDJGa2JXbHVMM0psWVd4dGN5OGtlM0psWVd4dFRtRnRaWDB2Y205c1pYTmdMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdibUZ0WlRvZ2NtOXNaVTVoYldVc1hHNGdJQ0FnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJnUVhWMGJ5MWpjbVZoZEdWa0lISmxZV3h0SUhKdmJHVWdKSHR5YjJ4bFRtRnRaWDFnTEZ4dUlDQWdJQ0FnSUNCamIyMXdiM05wZEdVNklDRWhZMjl0Y0c5emFYUmxVbTlzWlhNZ0ppWWdZMjl0Y0c5emFYUmxVbTlzWlhNdWJHVnVaM1JvSUQ0Z01DeGNiaUFnSUNBZ0lDQWdMaTR1S0dOdmJYQnZjMmwwWlZKdmJHVnpJQ1ltSUdOdmJYQnZjMmwwWlZKdmJHVnpMbXhsYm1kMGFDQStJREJjYmlBZ0lDQWdJQ0FnSUNBL0lIc2dZMjl0Y0c5emFYUmxjem9nZXlCeVpXRnNiVG9nWTI5dGNHOXphWFJsVW05c1pYTWdmU0I5WEc0Z0lDQWdJQ0FnSUNBZ09pQjdmU2tzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnTWpBeExGeHVJQ0FnSUNBZ2UzMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHZGxkRkpsWVd4dFVtOXNaWE1vWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeGhibmxiWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKblpYUlNaV0ZzYlZKdmJHVnpYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NW5aWFJTWldGc2JWSnZiR1Z6S1R0Y2JpQWdJQ0JqYjI1emRDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUlEMGdZWGRoYVhRZ2RHaHBjeTVuWlhSQlpHMXBia0ZqWTJWemMxUnZhMlZ1S0M0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUdOdmJuTjBJSEpsYzNCdmJuTmxJRDBnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnWENKSFJWUmNJaXhjYmlBZ0lDQWdJR0F2WVdSdGFXNHZjbVZoYkcxekx5UjdjbVZoYkcxT1lXMWxmUzl5YjJ4bGMyQXNYRzRnSUNBZ0lDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV3WVhKelpVcHpiMjVTWlhOd2IyNXpaVHhoYm5sYlhUNG9jbVZ6Y0c5dWMyVXVaR0YwWVNrZ1B6OGdXMTA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuWlhSRGJHbGxiblJTYjJ4bGN5aGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0JqYkdsbGJuUlZWVWxFT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhoYm5sYlhUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSm5aWFJEYkdsbGJuUlNiMnhsYzF3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WjJWMFEyeHBaVzUwVW05c1pYTXBPMXh1SUNBZ0lHTnZibk4wSUdGa2JXbHVRV05qWlhOelZHOXJaVzRnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRUZrYldsdVFXTmpaWE56Vkc5clpXNG9MaTR1WTNSNFFYSm5jeWs3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwyTnNhV1Z1ZEhNdkpIdGpiR2xsYm5SVlZVbEVmUzl5YjJ4bGMyQXNYRzRnSUNBZ0lDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV3WVhKelpVcHpiMjVTWlhOd2IyNXpaVHhoYm5sYlhUNG9jbVZ6Y0c5dWMyVXVaR0YwWVNrZ1B6OGdXMTA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuY21GdWRGSmxZV3h0VW05c1pYTlViMVZ6WlhJb1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdkWE5sY2xWVlNVUTZJSE4wY21sdVp5eGNiaUFnSUNCeWIyeGxUbUZ0WlhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0puY21GdWRGSmxZV3h0VW05c1pYTlViMVZ6WlhKY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1keVlXNTBVbVZoYkcxU2IyeGxjMVJ2VlhObGNpazdYRzRnSUNBZ1kyOXVjM1FnWVdSdGFXNUJZMk5sYzNOVWIydGxiaUE5SUdGM1lXbDBJSFJvYVhNdVoyVjBRV1J0YVc1QlkyTmxjM05VYjJ0bGJpZ3VMaTVqZEhoQmNtZHpLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbUZ6YzJsbmJsSnZiR1Z6Vkc5VmMyVnlLRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHlaV0ZzYlU1aGJXVjlMM0p2YkdWellDeGNiaUFnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2NtVmhiRzFPWVcxbGZTOTFjMlZ5Y3k4a2UzVnpaWEpWVlVsRWZTOXliMnhsTFcxaGNIQnBibWR6TDNKbFlXeHRZQ3hjYmlBZ0lDQWdJSEp2YkdWT1lXMWxjeXhjYmlBZ0lDQWdJR0ZrYldsdVFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHZHlZVzUwUTJ4cFpXNTBVbTlzWlhOVWIxVnpaWElvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1kyeHBaVzUwVlZWSlJEb2djM1J5YVc1bkxGeHVJQ0FnSUhWelpYSlZWVWxFT2lCemRISnBibWNzWEc0Z0lDQWdjbTlzWlU1aGJXVnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVozSmhiblJEYkdsbGJuUlNiMnhsYzFSdlZYTmxjbHdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVaM0poYm5SRGJHbGxiblJTYjJ4bGMxUnZWWE5sY2lrN1hHNGdJQ0FnWTI5dWMzUWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpQTlJR0YzWVdsMElIUm9hWE11WjJWMFFXUnRhVzVCWTJObGMzTlViMnRsYmlndUxpNWpkSGhCY21kektUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtRnpjMmxuYmxKdmJHVnpWRzlWYzJWeUtGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwyTnNhV1Z1ZEhNdkpIdGpiR2xsYm5SVlZVbEVmUzl5YjJ4bGMyQXNYRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UzSmxZV3h0VG1GdFpYMHZkWE5sY25NdkpIdDFjMlZ5VlZWSlJIMHZjbTlzWlMxdFlYQndhVzVuY3k5amJHbGxiblJ6THlSN1kyeHBaVzUwVlZWSlJIMWdMRnh1SUNBZ0lDQWdjbTlzWlU1aGJXVnpMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVjJiMnRsVW1WaGJHMVNiMnhsYzBaeWIyMVZjMlZ5S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIVnpaWEpWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnY205c1pVNWhiV1Z6T2lCemRISnBibWRiWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2ljbVYyYjJ0bFVtVmhiRzFTYjJ4bGMwWnliMjFWYzJWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1eVpYWnZhMlZTWldGc2JWSnZiR1Z6Um5KdmJWVnpaWElwTzF4dUlDQWdJR052Ym5OMElHRmtiV2x1UVdOalpYTnpWRzlyWlc0Z1BTQmhkMkZwZENCMGFHbHpMbWRsZEVGa2JXbHVRV05qWlhOelZHOXJaVzRvTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnWTI5dWMzUWdjbTlzWlhOU1pYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lSMFZVWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTNKbFlXeHRUbUZ0WlgwdmNtOXNaWE5nTEZ4dUlDQWdJQ0FnWVdSdGFXNUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJREl3TUN4Y2JpQWdJQ0FnSUh0OUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdjbTlzWlhNZ1BTQjBhR2x6TG5CaGNuTmxTbk52YmxKbGMzQnZibk5sUEdGdWVWdGRQaWh5YjJ4bGMxSmxjM0J2Ym5ObExtUmhkR0VwSUQ4L0lGdGRPMXh1SUNBZ0lHTnZibk4wSUhObGJHVmpkR1ZrVW05c1pYTWdQU0J5YjJ4bGN5NW1hV3gwWlhJb0tISnZiR1VwSUQwK0lISnZiR1ZPWVcxbGN5NXBibU5zZFdSbGN5aHliMnhsTG01aGJXVXBLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa1JGVEVWVVJWd2lMRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHlaV0ZzYlU1aGJXVjlMM1Z6WlhKekx5UjdkWE5sY2xWVlNVUjlMM0p2YkdVdGJXRndjR2x1WjNNdmNtVmhiRzFnTEZ4dUlDQWdJQ0FnWVdSdGFXNUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJSE5sYkdWamRHVmtVbTlzWlhNc1hHNGdJQ0FnSUNBeU1EUXNYRzRnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZ3YkdGalpWSmxZV3h0VW05c1pYTkdiM0pWYzJWeUtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSFZ6WlhKVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtOXNaVTVoYldWek9pQnpkSEpwYm1kYlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpY21Wd2JHRmpaVkpsWVd4dFVtOXNaWE5HYjNKVmMyVnlYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXlaWEJzWVdObFVtVmhiRzFTYjJ4bGMwWnZjbFZ6WlhJcE8xeHVJQ0FnSUdOdmJuTjBJR0ZrYldsdVFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1kbGRFRmtiV2x1UVdOalpYTnpWRzlyWlc0b0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRkp2YkdWelVtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwzVnpaWEp6THlSN2RYTmxjbFZWU1VSOUwzSnZiR1V0YldGd2NHbHVaM012Y21WaGJHMWdMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kzVnljbVZ1ZEZKdmJHVnpJRDFjYmlBZ0lDQWdJSFJvYVhNdWNHRnljMlZLYzI5dVVtVnpjRzl1YzJVOFlXNTVXMTArS0dOMWNuSmxiblJTYjJ4bGMxSmxjM0J2Ym5ObExtUmhkR0VwSUQ4L0lGdGRPMXh1SUNBZ0lHbG1JQ2hqZFhKeVpXNTBVbTlzWlhNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdJQ0JjSWtSRlRFVlVSVndpTEZ4dUlDQWdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTNKbFlXeHRUbUZ0WlgwdmRYTmxjbk12Skh0MWMyVnlWVlZKUkgwdmNtOXNaUzF0WVhCd2FXNW5jeTl5WldGc2JXQXNYRzRnSUNBZ0lDQWdJR0ZrYldsdVFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQWdJR04xY25KbGJuUlNiMnhsY3l4Y2JpQWdJQ0FnSUNBZ01qQTBMRnh1SUNBZ0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bmNtRnVkRkpsWVd4dFVtOXNaWE5VYjFWelpYSW9YRzRnSUNBZ0lDQnlaV0ZzYlU1aGJXVXNYRzRnSUNBZ0lDQjFjMlZ5VlZWSlJDeGNiaUFnSUNBZ0lISnZiR1ZPWVcxbGN5eGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVjJiMnRsUTJ4cFpXNTBVbTlzWlhOR2NtOXRWWE5sY2loY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQmpiR2xsYm5SVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RYTmxjbFZWU1VRNklITjBjbWx1Wnl4Y2JpQWdJQ0J5YjJ4bFRtRnRaWE02SUhOMGNtbHVaMXRkTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSnlaWFp2YTJWRGJHbGxiblJTYjJ4bGMwWnliMjFWYzJWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1eVpYWnZhMlZEYkdsbGJuUlNiMnhsYzBaeWIyMVZjMlZ5S1R0Y2JpQWdJQ0JqYjI1emRDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUlEMGdZWGRoYVhRZ2RHaHBjeTVuWlhSQlpHMXBia0ZqWTJWemMxUnZhMlZ1S0M0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUdOdmJuTjBJSEp2YkdWelVtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwyTnNhV1Z1ZEhNdkpIdGpiR2xsYm5SVlZVbEVmUzl5YjJ4bGMyQXNYRzRnSUNBZ0lDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCeWIyeGxjeUE5SUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThZVzU1VzEwK0tISnZiR1Z6VW1WemNHOXVjMlV1WkdGMFlTa2dQejhnVzEwN1hHNGdJQ0FnWTI5dWMzUWdjMlZzWldOMFpXUlNiMnhsY3lBOUlISnZiR1Z6TG1acGJIUmxjaWdvY205c1pTa2dQVDRnY205c1pVNWhiV1Z6TG1sdVkyeDFaR1Z6S0hKdmJHVXVibUZ0WlNrcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUZ3aVJFVk1SVlJGWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTNKbFlXeHRUbUZ0WlgwdmRYTmxjbk12Skh0MWMyVnlWVlZKUkgwdmNtOXNaUzF0WVhCd2FXNW5jeTlqYkdsbGJuUnpMeVI3WTJ4cFpXNTBWVlZKUkgxZ0xGeHVJQ0FnSUNBZ1lXUnRhVzVCWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhObGJHVmpkR1ZrVW05c1pYTXNYRzRnSUNBZ0lDQXlNRFFzWEc0Z0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21Wd2JHRmpaVU5zYVdWdWRGSnZiR1Z6Um05eVZYTmxjaWhjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCamJHbGxiblJWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnZFhObGNsVlZTVVE2SUhOMGNtbHVaeXhjYmlBZ0lDQnliMnhsVG1GdFpYTTZJSE4wY21sdVoxdGRMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKeVpYQnNZV05sUTJ4cFpXNTBVbTlzWlhOR2IzSlZjMlZ5WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV5WlhCc1lXTmxRMnhwWlc1MFVtOXNaWE5HYjNKVmMyVnlLVHRjYmlBZ0lDQmpiMjV6ZENCaFpHMXBia0ZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJCWkcxcGJrRmpZMlZ6YzFSdmEyVnVLQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SU2IyeGxjMUpsYzNCdmJuTmxJRDBnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnWENKSFJWUmNJaXhjYmlBZ0lDQWdJR0F2WVdSdGFXNHZjbVZoYkcxekx5UjdjbVZoYkcxT1lXMWxmUzkxYzJWeWN5OGtlM1Z6WlhKVlZVbEVmUzl5YjJ4bExXMWhjSEJwYm1kekwyTnNhV1Z1ZEhNdkpIdGpiR2xsYm5SVlZVbEVmV0FzWEc0Z0lDQWdJQ0JoWkcxcGJrRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdNakF3TEZ4dUlDQWdJQ0FnZTMwc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFVtOXNaWE1nUFZ4dUlDQWdJQ0FnZEdocGN5NXdZWEp6WlVwemIyNVNaWE53YjI1elpUeGhibmxiWFQ0b1kzVnljbVZ1ZEZKdmJHVnpVbVZ6Y0c5dWMyVXVaR0YwWVNrZ1B6OGdXMTA3WEc0Z0lDQWdhV1lnS0dOMWNuSmxiblJTYjJ4bGN5NXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbGNYVmxjM1FvWEc0Z0lDQWdJQ0FnSUZ3aVJFVk1SVlJGWENJc1hHNGdJQ0FnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2NtVmhiRzFPWVcxbGZTOTFjMlZ5Y3k4a2UzVnpaWEpWVlVsRWZTOXliMnhsTFcxaGNIQnBibWR6TDJOc2FXVnVkSE12Skh0amJHbGxiblJWVlVsRWZXQXNYRzRnSUNBZ0lDQWdJR0ZrYldsdVFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQWdJR04xY25KbGJuUlNiMnhsY3l4Y2JpQWdJQ0FnSUNBZ01qQTBMRnh1SUNBZ0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bmNtRnVkRU5zYVdWdWRGSnZiR1Z6Vkc5VmMyVnlLRnh1SUNBZ0lDQWdjbVZoYkcxT1lXMWxMRnh1SUNBZ0lDQWdZMnhwWlc1MFZWVkpSQ3hjYmlBZ0lDQWdJSFZ6WlhKVlZVbEVMRnh1SUNBZ0lDQWdjbTlzWlU1aGJXVnpMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR055WldGMFpVaDBkSEJEYkdsbGJuUW9ZMjl1Wm1sbk9pQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5LVG9nUVhocGIzTkpibk4wWVc1alpTQjdYRzRnSUNBZ2NtVjBkWEp1SUVGNGFXOXpMbU55WldGMFpTaDdYRzRnSUNBZ0lDQmlZWE5sVlZKTU9pQmdKSHRqYjI1bWFXY3VjSEp2ZEc5amIyeDlPaTh2Skh0amIyNW1hV2N1YUc5emRIMWdMRnh1SUNBZ0lDQWdhR1ZoWkdWeWN6b2dleUJjSWtOdmJuUmxiblF0Vkhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwycHpiMjVjSWlCOUxGeHVJQ0FnSUNBZ2RtRnNhV1JoZEdWVGRHRjBkWE02SUNncElEMCtJSFJ5ZFdVc1hHNGdJQ0FnSUNCb2RIUndjMEZuWlc1ME9pQnVaWGNnYUhSMGNITXVRV2RsYm5Rb2UxeHVJQ0FnSUNBZ0lDQnlaV3BsWTNSVmJtRjFkR2h2Y21sNlpXUTZJQ2h5WlhOdmJIWmxTMlY1WTJ4dllXdEpjMUJ5YjJSMVkzUnBiMjRvZEdocGN5NWpiMjVtYVdjZ1lYTWdZVzU1S1Nrc1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1oyVjBRV1J0YVc1QlkyTmxjM05VYjJ0bGJpaGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtZGxkRUZrYldsdVFXTmpaWE56Vkc5clpXNHBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWRsZEVGalkyVnpjMVJ2YTJWdUtIUm9hWE11WTI5dVptbG5MbUZrYldsdVFYQnBWWE5sY2lFc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5Qm5aWFJTWldGc2JVRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXYzZJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2NzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTVuWlhSU1pXRnNiVUZqWTJWemMxUnZhMlZ1S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpYUkJZMk5sYzNOVWIydGxiaWhyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG5KbFlXeHRRWEJwVlhObGNpRXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJuWlhSQlkyTmxjM05VYjJ0bGJpaGNiaUFnSUNCclpYbGpiRzloYTFWelpYSTZJRXRsZVdOc2IyRnJWWE5sY2l4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG1kbGRFRmpZMlZ6YzFSdmEyVnVLVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lVRTlUVkZ3aUxGeHVJQ0FnSUNBZ1lDOXlaV0ZzYlhNdkpIdHJaWGxqYkc5aGExVnpaWEl1Y21WaGJHMTlMM0J5YjNSdlkyOXNMMjl3Wlc1cFpDMWpiMjV1WldOMEwzUnZhMlZ1WUN4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUc1bGR5QlZVa3hUWldGeVkyaFFZWEpoYlhNb2UxeHVJQ0FnSUNBZ0lDQmpiR2xsYm5SZmFXUTZJR3RsZVdOc2IyRnJWWE5sY2k1aGNHbERiR2xsYm5SSlpDeGNiaUFnSUNBZ0lDQWdkWE5sY201aGJXVTZJR3RsZVdOc2IyRnJWWE5sY2k1MWMyVnlibUZ0WlN4Y2JpQWdJQ0FnSUNBZ2NHRnpjM2R2Y21RNklHdGxlV05zYjJGclZYTmxjaTV3WVhOemQyOXlaQ3hjYmlBZ0lDQWdJQ0FnWjNKaGJuUmZkSGx3WlRvZ1hDSndZWE56ZDI5eVpGd2lMRnh1SUNBZ0lDQWdmU2t1ZEc5VGRISnBibWNvS1N4Y2JpQWdJQ0FnSURJd01DeGNiaUFnSUNBZ0lIc2dYQ0pqYjI1MFpXNTBMWFI1Y0dWY0lqb2dYQ0poY0hCc2FXTmhkR2x2Ymk5NExYZDNkeTFtYjNKdExYVnliR1Z1WTI5a1pXUmNJaUI5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThleUJoWTJObGMzTmZkRzlyWlc0L09pQnpkSEpwYm1jZ2ZUNG9YRzRnSUNBZ0lDQnlaWE53YjI1elpTNWtZWFJoWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvWkdGMFlUOHVZV05qWlhOelgzUnZhMlZ1S1NCeVpYUjFjbTRnWkdGMFlTNWhZMk5sYzNOZmRHOXJaVzQ3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRUpoWkZKbGNYVmxjM1JGY25KdmNpaGNiaUFnSUNBZ0lHQlZibUZpYkdVZ2RHOGdaMlYwSUV0bGVXTnNiMkZySUdGalkyVnpjeUIwYjJ0bGJpQm1iM0lnZFhObGNpQWtlMnRsZVdOc2IyRnJWWE5sY2k1MWMyVnlibUZ0WlgxZ1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdGemMybG5ibEp2YkdWelZHOVZjMlZ5S0Z4dUlDQWdJSEp2YkdWelZYSnNPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2MyVjBVbTlzWlhOVmNtdzZJSE4wY21sdVp5eGNiaUFnSUNCeWIyeGxUbUZ0WlhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUdGalkyVnpjMVJ2YTJWdU9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbUZ6YzJsbmJsSnZiR1Z6Vkc5VmMyVnlYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWhjM05wWjI1U2IyeGxjMVJ2VlhObGNpazdYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lrZEZWRndpTEZ4dUlDQWdJQ0FnY205c1pYTlZjbXdzWEc0Z0lDQWdJQ0JoWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSURJd01DeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnY205c1pYTWdQU0IwYUdsekxuQmhjbk5sU25OdmJsSmxjM0J2Ym5ObFBHRnVlVnRkUGloeVpYTndiMjV6WlM1a1lYUmhLU0EvUHlCYlhUdGNiaUFnSUNCamIyNXpkQ0J6Wld4bFkzUmxaRkp2YkdWeklEMGdjbTlzWlhNdVptbHNkR1Z5S0NoeWIyeGxLU0E5UGlCeWIyeGxUbUZ0WlhNdWFXNWpiSFZrWlhNb2NtOXNaUzV1WVcxbEtTazdYRzRnSUNBZ2FXWWdLSE5sYkdWamRHVmtVbTlzWlhNdWJHVnVaM1JvSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaGdUbThnY205c1pYTWdiV0YwWTJobFpDQWtlM0p2YkdWT1lXMWxjeTVxYjJsdUtGd2lMQ0JjSWlsOVlDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSEJ5YjIxcGMyVnpPaUJRY205dGFYTmxQSFp2YVdRK1cxMGdQU0J6Wld4bFkzUmxaRkp2YkdWekxtMWhjQ2dvY205c1pTa2dQVDVjYmlBZ0lDQWdJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUNBZ1hDSlFUMU5VWENJc1hHNGdJQ0FnSUNBZ0lITmxkRkp2YkdWelZYSnNMRnh1SUNBZ0lDQWdJQ0JoWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUNBZ1czSnZiR1ZkTEZ4dUlDQWdJQ0FnSUNBeU1EUXNYRzRnSUNBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnSUNBcFhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWs3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJSEpsY1hWbGMzUW9YRzRnSUNBZ2JXVjBhRzlrT2lCY0lrZEZWRndpSUh3Z1hDSlFUMU5VWENJZ2ZDQmNJbEJWVkZ3aUlId2dYQ0pFUlV4RlZFVmNJaXhjYmlBZ0lDQndZWFJvT2lCemRISnBibWNzWEc0Z0lDQWdZV05qWlhOelZHOXJaVzQ2SUhOMGNtbHVaeUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0J3WVhsc2IyRmtPaUIxYm10dWIzZHVMRnh1SUNBZ0lITjFZMk5sYzNORGIyUmxPaUJ1ZFcxaVpYSXNYRzRnSUNBZ2FHVmhaR1Z5Y3pvZ1VtVmpiM0prUEhOMGNtbHVaeXdnYzNSeWFXNW5QaXhjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOFlXNTVQaUI3WEc0Z0lDQWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1eVpYRjFaWE4wS1R0Y2JpQWdJQ0JqYjI1emRDQnlaWE53YjI1elpTQTlJR0YzWVdsMElIUm9hWE11WTJ4cFpXNTBMbkpsY1hWbGMzUW9lMXh1SUNBZ0lDQWdiV1YwYUc5a0xGeHVJQ0FnSUNBZ2RYSnNPaUJnSkh0MGFHbHpMbU52Ym1acFp5NXdjbTkwYjJOdmJIMDZMeThrZTNSb2FYTXVZMjl1Wm1sbkxtaHZjM1I5Skh0d1lYUm9mV0FzWEc0Z0lDQWdJQ0JrWVhSaE9seHVJQ0FnSUNBZ0lDQndZWGxzYjJGa0lEMDlQU0IxYm1SbFptbHVaV1JjYmlBZ0lDQWdJQ0FnSUNBL0lIVnVaR1ZtYVc1bFpGeHVJQ0FnSUNBZ0lDQWdJRG9nZEhsd1pXOW1JSEJoZVd4dllXUWdQVDA5SUZ3aWMzUnlhVzVuWENKY2JpQWdJQ0FnSUNBZ0lDQWdJRDhnY0dGNWJHOWhaRnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQktVMDlPTG5OMGNtbHVaMmxtZVNod1lYbHNiMkZrS1N4Y2JpQWdJQ0FnSUdobFlXUmxjbk02SUh0Y2JpQWdJQ0FnSUNBZ0xpNHVhR1ZoWkdWeWN5eGNiaUFnSUNBZ0lDQWdMaTR1S0dGalkyVnpjMVJ2YTJWdUlEOGdleUJCZFhSb2IzSnBlbUYwYVc5dU9pQmdRbVZoY21WeUlDUjdZV05qWlhOelZHOXJaVzU5WUNCOUlEb2dlMzBwTEZ4dUlDQWdJQ0FnSUNBdUxpNG9jR0Y1Ykc5aFpDQWhQVDBnZFc1a1pXWnBibVZrSUNZbUlIUjVjR1Z2WmlCd1lYbHNiMkZrSUNFOVBTQmNJbk4wY21sdVoxd2lYRzRnSUNBZ0lDQWdJQ0FnUHlCN0lGd2lRMjl1ZEdWdWRDMVVlWEJsWENJNklGd2lZWEJ3YkdsallYUnBiMjR2YW5OdmJsd2lJSDFjYmlBZ0lDQWdJQ0FnSUNBNklIdDlLU3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JvZEhSd2MwRm5aVzUwT2lCdVpYY2dhSFIwY0hNdVFXZGxiblFvZTF4dUlDQWdJQ0FnSUNCeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldRNklDaHlaWE52YkhabFMyVjVZMnh2WVd0SmMxQnliMlIxWTNScGIyNG9kR2hwY3k1amIyNW1hV2NnWVhNZ1lXNTVLU2tzWEc0Z0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVTNSaGRIVnpPaUFvS1NBOVBpQjBjblZsTEZ4dUlDQWdJSDBwTzF4dUlDQWdJR2xtSUNoeVpYTndiMjV6WlM1emRHRjBkWE1nSVQwOUlITjFZMk5sYzNORGIyUmxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtaGhibVJzWlVoMGRIQlNaWE53YjI1elpTaHlaWE53YjI1elpTd2djM1ZqWTJWemMwTnZaR1VwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2NtVnpjRzl1YzJVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHaGhibVJzWlVoMGRIQlNaWE53YjI1elpTaGNiaUFnSUNCeVpYTndiMjV6WlRvZ1lXNTVMRnh1SUNBZ0lITjFZMk5sYzNORGIyUmxPaUJ1ZFcxaVpYSXNYRzRnSUNBZ1pYSnliM0pOYzJjL09pQnpkSEpwYm1kY2JpQWdLVG9nZG05cFpDQjdYRzRnSUNBZ1kyOXVjM1FnYzNSaGRIVnpJRDBnY21WemNHOXVjMlV1YzNSaGRIVnpJR0Z6SUc1MWJXSmxjanRjYmlBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ1pYSnliM0pOYzJkY2JpQWdJQ0FnSUQ4Z1lDUjdaWEp5YjNKTmMyZDlPaUJGZUhCbFkzUmxaQ0FrZTNOMVkyTmxjM05EYjJSbGZTd2djbVZqWldsMlpXUWdKSHR5WlhOd2IyNXpaUzV6ZEdGMGRYTjlPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOUxtQmNiaUFnSUNBZ0lEb2dZRVY0Y0dWamRHVmtJQ1I3YzNWalkyVnpjME52WkdWOUxDQnlaV05sYVhabFpDQWtlM0psYzNCdmJuTmxMbk4wWVhSMWMzMDZJQ1I3Y21WemNHOXVjMlV1YzNSaGRIVnpWR1Y0ZEgxZ08xeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TkNCOGZDQnRaWE56WVdkbExuUnZURzkzWlhKRFlYTmxLQ2t1YVc1amJIVmtaWE1vWENKdWIzUWdabTkxYm1SY0lpa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2MzUmhkSFZ6SUQwOVBTQTBNRGtnZkh3Z2JXVnpjMkZuWlM1MGIweHZkMlZ5UTJGelpTZ3BMbWx1WTJ4MVpHVnpLRndpWTI5dVpteHBZM1JjSWlrcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkRiMjVtYkdsamRFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYzNSaGRIVnpJRDA5UFNBME1EQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJDWVdSU1pYRjFaWE4wUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TVNCOGZDQnpkR0YwZFhNZ1BUMDlJRFF3TXlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lIQmhjbk5sUlhKeWIzSW9aWEp5YjNJNklFVnljbTl5S1RvZ1JYSnliM0lnZTF4dUlDQWdJR052Ym5OMElHMWxjM05oWjJVZ1BTQmxjbkp2Y2k1dFpYTnpZV2RsSUh4OElHVnljbTl5TG01aGJXVWdmSHdnWENKVmJtdHViM2R1SUdWeWNtOXlYQ0k3WEc0Z0lDQWdZMjl1YzNRZ2JHOTNaWEpOWlhOellXZGxJRDBnYldWemMyRm5aUzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltNXZkQ0JtYjNWdVpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTURSY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVlXeHlaV0ZrZVNCbGVHbHpkSE5jSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVkyOXVabXhwWTNSY0lpa2dmSHdnYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lOREE1WENJcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRU52Ym1ac2FXTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSW1sdWRtRnNhV1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVltRmtJSEpsY1hWbGMzUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBd1hDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVKaFpGSmxjWFZsYzNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lkVzVoZFhSb2IzSnBlbVZrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdNVndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ptYjNKaWFXUmtaVzVjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQXpYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQndZWEp6WlVwemIyNVNaWE53YjI1elpUeFVQaWhrWVhSaE9pQjFibXR1YjNkdUtUb2dWQ0I4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCa1lYUmhJRDA5UFNCY0luTjBjbWx1WjF3aUtTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnU2xOUFRpNXdZWEp6WlNoa1lYUmhLU0JoY3lCVU8xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmtZWFJoSUdGeklGUTdYRzRnSUgxY2JuMWNiaUpkZlE9PSJdfQ==
|
|
271
|
+
//# sourceMappingURL=KeycloakRoleService.js.map
|
|
272
|
+
//# sourceMappingURL=KeycloakRoleService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keycloak/services/KeycloakRoleService.cjs","sourceRoot":"","sources":["keycloak/services/KeycloakRoleService.js"],"names":[],"mappings":"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"}
|