@decaf-ts/integrations 0.3.3 → 0.3.5
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 +48 -2
- package/dist/integrations.js +49 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/graph/constants.cjs +2 -2
- package/lib/cjs/graph/decorators.cjs +2 -2
- package/lib/cjs/graph/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/errors/index.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/events/index.cjs +2 -2
- package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +4 -0
- package/lib/cjs/graph/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +4 -2
- package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +95 -0
- package/lib/cjs/graph/execution/index.cjs +4 -2
- package/lib/cjs/graph/index.cjs +7 -2
- package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +87 -0
- package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +25 -3
- package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/loops/index.cjs +3 -2
- package/lib/cjs/graph/nodes/agent.cjs +110 -0
- package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
- package/lib/cjs/graph/nodes/flow-control.cjs +436 -0
- package/lib/cjs/graph/nodes/index.cjs +34 -0
- package/lib/cjs/graph/nodes/triggers.cjs +250 -0
- package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/pinning/index.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/planning/index.cjs +2 -2
- package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/registry/index.cjs +2 -2
- package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/store/index.cjs +2 -2
- package/lib/cjs/graph/types.cjs +2 -2
- package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/validation/index.cjs +2 -2
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +8 -7
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakService.cjs +16 -13
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +5 -4
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +20 -0
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +6 -5
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +9 -8
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +7 -6
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +5 -4
- package/lib/cjs/kibana/services/KibanaService.cjs +13 -10
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +5 -4
- package/lib/cjs/kibana/services/KibanaUserService.cjs +5 -4
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +20 -0
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/nest/authService.cjs +2 -2
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/graph/constants.js +1 -1
- package/lib/esm/graph/decorators.js +1 -1
- package/lib/esm/graph/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/errors/index.js +1 -1
- package/lib/esm/graph/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/events/index.js +1 -1
- package/lib/esm/graph/execution/CodeSandboxEvaluator.js +18 -0
- package/lib/esm/graph/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/execution/GraphExecutionEngine.js +3 -1
- package/lib/esm/graph/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +90 -0
- package/lib/esm/graph/execution/index.js +3 -1
- package/lib/esm/graph/index.js +6 -1
- package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +82 -0
- package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/loops/GraphConditionEvaluator.js +24 -2
- package/lib/esm/graph/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/loops/index.js +2 -1
- package/lib/esm/graph/nodes/agent.js +101 -0
- package/lib/esm/graph/nodes/category-styles.js +34 -0
- package/lib/esm/graph/nodes/flow-control.js +427 -0
- package/lib/esm/graph/nodes/index.js +17 -0
- package/lib/esm/graph/nodes/triggers.js +241 -0
- package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/pinning/index.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/planning/index.js +1 -1
- package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/registry/index.js +1 -1
- package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/snapshots/index.js +1 -1
- package/lib/esm/graph/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/store/index.js +1 -1
- package/lib/esm/graph/types.js +1 -1
- package/lib/esm/graph/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/validation/index.js +1 -1
- package/lib/esm/index.js +4 -4
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakClientService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakRealmService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakRoleService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakService.js +15 -12
- package/lib/esm/keycloak/services/KeycloakUserService.js +4 -3
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +15 -0
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +5 -4
- package/lib/esm/kibana/services/KibanaDashboardService.js +5 -4
- package/lib/esm/kibana/services/KibanaDataViewService.js +4 -3
- package/lib/esm/kibana/services/KibanaRoleService.js +4 -3
- package/lib/esm/kibana/services/KibanaService.js +12 -9
- package/lib/esm/kibana/services/KibanaSpaceService.js +4 -3
- package/lib/esm/kibana/services/KibanaUserService.js +4 -3
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +15 -0
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/nest/authService.js +1 -1
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/graph/execution/CodeSandboxEvaluator.d.cts +53 -0
- package/lib/types/graph/execution/CodeSandboxEvaluator.d.mts +53 -0
- package/lib/types/graph/execution/GraphExecutionEngine.d.cts +17 -0
- package/lib/types/graph/execution/GraphExecutionEngine.d.mts +17 -0
- package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.cts +42 -0
- package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.mts +42 -0
- package/lib/types/graph/execution/index.d.cts +2 -0
- package/lib/types/graph/execution/index.d.mts +2 -0
- package/lib/types/graph/index.d.cts +4 -0
- package/lib/types/graph/index.d.mts +4 -0
- package/lib/types/graph/loops/ConditionExpressionEvaluator.d.cts +36 -0
- package/lib/types/graph/loops/ConditionExpressionEvaluator.d.mts +36 -0
- package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +20 -4
- package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +20 -4
- package/lib/types/graph/loops/index.d.cts +1 -0
- package/lib/types/graph/loops/index.d.mts +1 -0
- package/lib/types/graph/nodes/agent.d.cts +44 -0
- package/lib/types/graph/nodes/agent.d.mts +44 -0
- package/lib/types/graph/nodes/category-styles.d.cts +8 -0
- package/lib/types/graph/nodes/category-styles.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control.d.cts +104 -0
- package/lib/types/graph/nodes/flow-control.d.mts +104 -0
- package/lib/types/graph/nodes/index.d.cts +16 -0
- package/lib/types/graph/nodes/index.d.mts +16 -0
- package/lib/types/graph/nodes/triggers.d.cts +53 -0
- package/lib/types/graph/nodes/triggers.d.mts +53 -0
- package/lib/types/graph/types.d.cts +102 -0
- package/lib/types/graph/types.d.mts +102 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/services/KeycloakService.d.cts +1 -1
- package/lib/types/keycloak/services/KeycloakService.d.mts +1 -1
- package/lib/types/keycloak/services/runtime.d.cts +6 -0
- package/lib/types/keycloak/services/runtime.d.mts +6 -0
- package/lib/types/kibana/services/KibanaService.d.cts +1 -1
- package/lib/types/kibana/services/KibanaService.d.mts +1 -1
- package/lib/types/kibana/services/runtime.d.cts +6 -0
- package/lib/types/kibana/services/runtime.d.mts +6 -0
- package/package.json +1 -1
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/azure/index.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
- package/lib/cjs/blob/core/index.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/gcp/index.cjs.map +0 -1
- package/lib/cjs/blob/index.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/local/index.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/memory/index.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
- package/lib/cjs/docker/index.cjs.map +0 -1
- package/lib/cjs/graph/constants.cjs.map +0 -1
- package/lib/cjs/graph/decorators.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphCycleError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphExecutionError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphInputError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphLoopLimitError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphPinningError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphPortError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphStoreError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphTopologyError.cjs.map +0 -1
- package/lib/cjs/graph/errors/index.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionEvent.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionObserver.cjs.map +0 -1
- package/lib/cjs/graph/events/index.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionEngine.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionFrame.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionResult.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/execution/index.cjs.map +0 -1
- package/lib/cjs/graph/index.cjs.map +0 -1
- package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/loops/index.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningService.cjs.map +0 -1
- package/lib/cjs/graph/pinning/index.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlan.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphRelationResolver.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphTopology.cjs.map +0 -1
- package/lib/cjs/graph/planning/index.cjs.map +0 -1
- package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
- package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs.map +0 -1
- package/lib/cjs/graph/registry/index.cjs.map +0 -1
- package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
- package/lib/cjs/graph/snapshots/index.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphCachedValue.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphValueKey.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphValueStore.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/store/index.cjs.map +0 -1
- package/lib/cjs/graph/types.cjs.map +0 -1
- package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs.map +0 -1
- package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs.map +0 -1
- package/lib/cjs/graph/validation/GraphValueValidator.cjs.map +0 -1
- package/lib/cjs/graph/validation/index.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/keycloak/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/index.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/helpers.cjs.map +0 -1
- package/lib/cjs/kibana/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
- package/lib/cjs/kibana/services/index.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/nest/authService.cjs.map +0 -1
- package/lib/cjs/nest/index.cjs.map +0 -1
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
- package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
- package/lib/cjs/nest/logging.cjs.map +0 -1
- package/lib/cjs/nest/types.cjs.map +0 -1
- package/lib/cjs/nest/utils.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/aws/index.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
- package/lib/cjs/secrets/core/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
- package/lib/cjs/secrets/index.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
- package/lib/cjs/secrets/model/index.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/vault/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
- package/lib/esm/blob/azure/index.js.map +0 -1
- package/lib/esm/blob/core/BlobErrors.js.map +0 -1
- package/lib/esm/blob/core/BlobKey.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
- package/lib/esm/blob/core/BlobTypes.js.map +0 -1
- package/lib/esm/blob/core/BlobValue.js.map +0 -1
- package/lib/esm/blob/core/index.js.map +0 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/gcp/index.js.map +0 -1
- package/lib/esm/blob/index.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/index.js.map +0 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
- package/lib/esm/blob/local/index.js.map +0 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
- package/lib/esm/blob/memory/index.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/docker/DockerComposeService.js.map +0 -1
- package/lib/esm/docker/index.js.map +0 -1
- package/lib/esm/graph/constants.js.map +0 -1
- package/lib/esm/graph/decorators.js.map +0 -1
- package/lib/esm/graph/errors/GraphCycleError.js.map +0 -1
- package/lib/esm/graph/errors/GraphExecutionError.js.map +0 -1
- package/lib/esm/graph/errors/GraphInputError.js.map +0 -1
- package/lib/esm/graph/errors/GraphLoopLimitError.js.map +0 -1
- package/lib/esm/graph/errors/GraphPinningError.js.map +0 -1
- package/lib/esm/graph/errors/GraphPortError.js.map +0 -1
- package/lib/esm/graph/errors/GraphStoreError.js.map +0 -1
- package/lib/esm/graph/errors/GraphTopologyError.js.map +0 -1
- package/lib/esm/graph/errors/index.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionEvent.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionEventEmitter.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionEventFactory.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionObserver.js.map +0 -1
- package/lib/esm/graph/events/index.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionContext.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionEngine.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionFrame.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionResult.js.map +0 -1
- package/lib/esm/graph/execution/GraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/execution/index.js.map +0 -1
- package/lib/esm/graph/index.js.map +0 -1
- package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/loops/GraphConditionEvaluator.js.map +0 -1
- package/lib/esm/graph/loops/GraphLoopExecutionContext.js.map +0 -1
- package/lib/esm/graph/loops/UntilGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/loops/WhileGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/loops/index.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningMetadata.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningPolicy.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningService.js.map +0 -1
- package/lib/esm/graph/pinning/index.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlan.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanEdge.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanLayer.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanNode.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanner.js.map +0 -1
- package/lib/esm/graph/planning/GraphRelationResolver.js.map +0 -1
- package/lib/esm/graph/planning/GraphTopology.js.map +0 -1
- package/lib/esm/graph/planning/index.js.map +0 -1
- package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js.map +0 -1
- package/lib/esm/graph/registry/GraphNodeExecutorResolver.js.map +0 -1
- package/lib/esm/graph/registry/index.js.map +0 -1
- package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
- package/lib/esm/graph/snapshots/index.js.map +0 -1
- package/lib/esm/graph/store/GraphCachedValue.js.map +0 -1
- package/lib/esm/graph/store/GraphValueKey.js.map +0 -1
- package/lib/esm/graph/store/GraphValueStore.js.map +0 -1
- package/lib/esm/graph/store/GraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/store/index.js.map +0 -1
- package/lib/esm/graph/types.js.map +0 -1
- package/lib/esm/graph/validation/GraphDefinitionValidator.js.map +0 -1
- package/lib/esm/graph/validation/GraphPortSchemaResolver.js.map +0 -1
- package/lib/esm/graph/validation/GraphValueValidator.js.map +0 -1
- package/lib/esm/graph/validation/index.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/keycloak/index.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
- package/lib/esm/keycloak/services/index.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/helpers.js.map +0 -1
- package/lib/esm/kibana/index.js.map +0 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
- package/lib/esm/kibana/services/index.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/nest/authService.js.map +0 -1
- package/lib/esm/nest/index.js.map +0 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
- package/lib/esm/nest/keycloakModule.js.map +0 -1
- package/lib/esm/nest/logging.js.map +0 -1
- package/lib/esm/nest/types.js.map +0 -1
- package/lib/esm/nest/utils.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/aws/index.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
- package/lib/esm/secrets/core/SecretName.js.map +0 -1
- package/lib/esm/secrets/core/SecretReference.js.map +0 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
- package/lib/esm/secrets/core/SecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
- package/lib/esm/secrets/core/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
- package/lib/esm/secrets/gcp/index.js.map +0 -1
- package/lib/esm/secrets/index.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/model/Secret.js.map +0 -1
- package/lib/esm/secrets/model/index.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/onepassword/index.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/vault/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
|
@@ -31,7 +31,9 @@ class GraphExecutionEngine {
|
|
|
31
31
|
this.valueStoreAdapter =
|
|
32
32
|
config.valueStoreAdapter ?? new InMemoryGraphValueStoreAdapter_js_1.InMemoryGraphValueStoreAdapter();
|
|
33
33
|
this.defaultOptions = config.defaultOptions ?? {};
|
|
34
|
+
this.codeSandboxEvaluator = config.codeSandboxEvaluator;
|
|
34
35
|
this.config = config;
|
|
36
|
+
config.onEngineCreated?.(this);
|
|
35
37
|
}
|
|
36
38
|
observe(observer) {
|
|
37
39
|
return this.emitter.observe(observer);
|
|
@@ -401,5 +403,5 @@ class GraphExecutionEngine {
|
|
|
401
403
|
}
|
|
402
404
|
}
|
|
403
405
|
exports.GraphExecutionEngine = GraphExecutionEngine;
|
|
404
|
-
//# sourceMappingURL=GraphExecutionEngine.js.map
|
|
405
|
-
//# sourceMappingURL=GraphExecutionEngine.cjs.map
|
|
406
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25FbmdpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZXhlY3V0aW9uL0dyYXBoRXhlY3V0aW9uRW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2QixvQkFBb0IsR0FDckIsMEJBQXFCO0FBYXRCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxrREFBNkM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtEQUE2QztBQUVsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsK0NBQTBDO0FBSTFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxxREFBZ0Q7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQ0FBaUM7QUFFM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDRDQUF1QztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsMkNBQXNDO0FBQ25FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSx1REFBa0Q7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFnQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUNBQThCO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxrQ0FBK0I7QUE0Qm5FOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQVksTUFBa0M7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxpQkFBaUI7WUFDcEIsTUFBTSxDQUFDLGlCQUFpQixJQUFJLElBQUksOEJBQThCLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsY0FB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QUFlLEVBQUUsSUFBSTtZQUNyQixlQUFlLEVBQUUsSUFBSTtZQUNyQixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLElBQUksRUFBRSxFQUFFO1lBQ1IsUUFBUSxFQUFFLEVBQUU7WUFDWixHQUFHLElBQUksQ0FBQyxjQUFjO1lBQ3RCLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLE9BQU8sQ0FDTCxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFO1lBQ2pDLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2pFLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjLENBQUMsS0FBYztRQUNuQyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMzQixPQUFPO2dCQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLElBQUksRUFDRCxLQUFhLENBQUMsU0FBUztvQkFDeEIsQ0FBQyxPQUFRLEtBQWEsQ0FBQyxJQUFJLEtBQUssUUFBUTt3QkFDdEMsQ0FBQyxDQUFDLE1BQU0sQ0FBRSxLQUFhLENBQUMsSUFBSSxDQUFDO3dCQUM3QixDQUFDLENBQUUsS0FBYSxDQUFDLElBQUksQ0FBQzthQUMzQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2V4ZWN1dGlvbi9HcmFwaEV4ZWN1dGlvbkVuZ2luZVxuICogQHN1bW1hcnkgUmVmZXJlbmNlIGdyYXBoIGV4ZWN1dGlvbiBlbmdpbmUuXG4gKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgZ3JhcGggd29ya2Zsb3dzIGRlY2xhcmVkIHdpdGggYEBkZWNhZi10cy91aS1kZWNvcmF0b3JzL2dyYXBoYCwgZW1pdHMgZXZlbnRzIHRocm91Z2ggRGVjYWYncyBPYnNlcnZhYmxlIHBpcGVsaW5lLCBzdXBwb3J0cyBwYXJhbGxlbCBub2RlIGV4ZWN1dGlvbiB3aXRoaW4gdG9wb2xvZ2ljYWwgbGF5ZXJzLCBhbmQgcmV0dXJucyBhIGNvbXBsZXRlIGV4ZWN1dGlvbiByZXN1bHQuXG4gKi9cbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaFdvcmtmbG93RGVmaW5pdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvdWktZGVjb3JhdG9ycy9ncmFwaFwiO1xuXG5pbXBvcnQge1xuICBHUkFQSF9ERUZBVUxUX0NPTkNVUlJFTkNZLFxuICBHUkFQSF9XT1JLRkxPV19CT1VOREFSWSxcbiAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGUsXG4gIEdyYXBoRXhlY3V0aW9uU3RhdHVzLFxufSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdyYXBoRXhlY3V0aW9uRXJyb3JQYXlsb2FkLFxuICBHcmFwaEV4ZWN1dGlvbkV2ZW50LFxuICBHcmFwaEV4ZWN1dGlvbk9wdGlvbnMsXG4gIEdyYXBoRXhlY3V0aW9uUmVzdWx0LFxuICBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgR3JhcGhOb2RlRXhlY3V0aW9uUmVzdWx0LFxuICBHcmFwaFBpbk5vZGVPcHRpb25zLFxuICBHcmFwaFVucGluTm9kZU9wdGlvbnMsXG4gIEdyYXBoUnVuSWQsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaEV4ZWN1dGlvbk9ic2VydmVyIH0gZnJvbSBcIi4uL2V2ZW50cy9HcmFwaEV4ZWN1dGlvbk9ic2VydmVyXCI7XG5pbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkV2ZW50RW1pdHRlciB9IGZyb20gXCIuLi9ldmVudHMvR3JhcGhFeGVjdXRpb25FdmVudEVtaXR0ZXJcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRXZlbnRGYWN0b3J5IH0gZnJvbSBcIi4uL2V2ZW50cy9HcmFwaEV4ZWN1dGlvbkV2ZW50RmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaE5vZGVFeGVjdXRvclJlZ2lzdHJ5IH0gZnJvbSBcIi4uL3JlZ2lzdHJ5L0dyYXBoTm9kZUV4ZWN1dG9yUmVnaXN0cnlcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uUGxhbm5lciB9IGZyb20gXCIuLi9wbGFubmluZy9HcmFwaEV4ZWN1dGlvblBsYW5uZXJcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25QbGFuIH0gZnJvbSBcIi4uL3BsYW5uaW5nL0dyYXBoRXhlY3V0aW9uUGxhblwiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaEV4ZWN1dGlvblBsYW5Ob2RlIH0gZnJvbSBcIi4uL3BsYW5uaW5nL0dyYXBoRXhlY3V0aW9uUGxhbk5vZGVcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhWYWx1ZVN0b3JlQWRhcHRlciB9IGZyb20gXCIuLi9zdG9yZS9HcmFwaFZhbHVlU3RvcmVBZGFwdGVyXCI7XG5pbXBvcnQgeyBJbk1lbW9yeUdyYXBoVmFsdWVTdG9yZUFkYXB0ZXIgfSBmcm9tIFwiLi4vc3RvcmUvSW5NZW1vcnlHcmFwaFZhbHVlU3RvcmVBZGFwdGVyXCI7XG5pbXBvcnQgeyBHcmFwaFZhbHVlU3RvcmUgfSBmcm9tIFwiLi4vc3RvcmUvR3JhcGhWYWx1ZVN0b3JlXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoQ2FjaGVkVmFsdWUgfSBmcm9tIFwiLi4vc3RvcmUvR3JhcGhDYWNoZWRWYWx1ZVwiO1xuaW1wb3J0IHsgR3JhcGhQaW5uaW5nU2VydmljZSB9IGZyb20gXCIuLi9waW5uaW5nL0dyYXBoUGlubmluZ1NlcnZpY2VcIjtcbmltcG9ydCB7IEdyYXBoUGlubmluZ1BvbGljeSB9IGZyb20gXCIuLi9waW5uaW5nL0dyYXBoUGlubmluZ1BvbGljeVwiO1xuaW1wb3J0IHsgR3JhcGhQaW5uaW5nRGVwZW5kZW5jeVJlc29sdmVyIH0gZnJvbSBcIi4uL3Bpbm5pbmcvR3JhcGhQaW5uaW5nRGVwZW5kZW5jeVJlc29sdmVyXCI7XG5pbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRnJhbWUgfSBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkZyYW1lXCI7XG5pbXBvcnQgeyBidWlsZEdyYXBoRXhlY3V0aW9uUmVzdWx0IH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25SZXN1bHRcIjtcbmltcG9ydCB0eXBlIHsgQ29kZVNhbmRib3hFdmFsdWF0b3IgfSBmcm9tIFwiLi9Db2RlU2FuZGJveEV2YWx1YXRvclwiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB7QGxpbmsgR3JhcGhFeGVjdXRpb25FbmdpbmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoRXhlY3V0aW9uRW5naW5lQ29uZmlnIHtcbiAgcmVnaXN0cnk6IEdyYXBoTm9kZUV4ZWN1dG9yUmVnaXN0cnk7XG4gIHBsYW5uZXI/OiBHcmFwaEV4ZWN1dGlvblBsYW5uZXI7XG4gIHZhbHVlU3RvcmVBZGFwdGVyPzogR3JhcGhWYWx1ZVN0b3JlQWRhcHRlcjtcbiAgZXZlbnRFbWl0dGVyPzogR3JhcGhFeGVjdXRpb25FdmVudEVtaXR0ZXI7XG4gIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxHcmFwaEV4ZWN1dGlvbk9wdGlvbnM+O1xuICAvKipcbiAgICogT3B0aW9uYWwgcGx1Z2dhYmxlIGNvZGUgc2FuZGJveCBldmFsdWF0b3IgZm9yIGNvZGUtYmFzZWQgY29uZGl0aW9uc1xuICAgKiAoREVDQUYtMzIgwqcyMi40KS4gV2hlbiBhYnNlbnQsIGNvZGUgY29uZGl0aW9ucyB0aHJvd1xuICAgKiBgR1JBUEhfQ09ERV9TQU5EQk9YX05PVF9DT05GSUdVUkVEYC4gRG93bnN0cmVhbSBwcm9qZWN0cyAoZS5nLiBBTEZSRUQpXG4gICAqIHN1cHBseSB0aGUgYWN0dWFsIFZNIHNhbmRib3ggaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBjb2RlU2FuZGJveEV2YWx1YXRvcj86IENvZGVTYW5kYm94RXZhbHVhdG9yO1xuICAvKipcbiAgICogT3B0aW9uYWwgY2FsbGJhY2sgaW52b2tlZCBhdCB0aGUgZW5kIG9mIGVuZ2luZSBjb25zdHJ1Y3Rpb24gd2l0aCB0aGVcbiAgICogZnVsbHktaW5pdGlhbGlzZWQgZW5naW5lIGluc3RhbmNlLiBVc2UgdGhpcyB0byByZWdpc3RlciBleGVjdXRvcnMgdGhhdFxuICAgKiBuZWVkIGEgYmFjay1yZWZlcmVuY2UgdG8gdGhlIGVuZ2luZSAoZS5nLiBsb29wIGV4ZWN1dG9ycyB0aGF0IGV4ZWN1dGVcbiAgICogc3ViLXdvcmtmbG93cyB0aHJvdWdoIHRoZSBzYW1lIGVuZ2luZSkuXG4gICAqL1xuICBvbkVuZ2luZUNyZWF0ZWQ/OiAoZW5naW5lOiBHcmFwaEV4ZWN1dGlvbkVuZ2luZSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBSZWZlcmVuY2UgZ3JhcGggZXhlY3V0aW9uIGVuZ2luZS5cbiAqXG4gKiBFeGVjdXRlcyBhIHtAbGluayBHcmFwaFdvcmtmbG93RGVmaW5pdGlvbn0gYnk6XG4gKiAxLiBQbGFubmluZyB0aGUgd29ya2Zsb3cgaW50byB0b3BvbG9naWNhbCBsYXllcnMuXG4gKiAyLiBTZWVkaW5nIHdvcmtmbG93IGlucHV0cyBpbnRvIHRoZSB2YWx1ZSBzdG9yZS5cbiAqIDMuIEV4ZWN1dGluZyBub2RlcyBsYXllci1ieS1sYXllciB3aXRoIGNvbmZpZ3VyYWJsZSBjb25jdXJyZW5jeS5cbiAqIDQuIFJvdXRpbmcgdmFsdWVzIGFsb25nIGVkZ2VzLlxuICogNS4gRW1pdHRpbmcgc3RydWN0dXJlZCBldmVudHMgdGhyb3VnaCBEZWNhZidzIE9ic2VydmFibGUgcGlwZWxpbmUuXG4gKiA2LiBSZXR1cm5pbmcgYSBjb21wbGV0ZSB7QGxpbmsgR3JhcGhFeGVjdXRpb25SZXN1bHR9LlxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhFeGVjdXRpb25FbmdpbmVcbiAgaW1wbGVtZW50cyBPYnNlcnZhYmxlPFtHcmFwaEV4ZWN1dGlvbk9ic2VydmVyXSwgW0dyYXBoRXhlY3V0aW9uRXZlbnRdPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW1pdHRlcjogR3JhcGhFeGVjdXRpb25FdmVudEVtaXR0ZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhbm5lcjogR3JhcGhFeGVjdXRpb25QbGFubmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlU3RvcmVBZGFwdGVyOiBHcmFwaFZhbHVlU3RvcmVBZGFwdGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRPcHRpb25zOiBQYXJ0aWFsPEdyYXBoRXhlY3V0aW9uT3B0aW9ucz47XG4gIC8qKiBQbHVnZ2FibGUgY29kZSBzYW5kYm94IGV2YWx1YXRvciAowqcyMi40KTsgbWF5IGJlIHVuZGVmaW5lZC4gKi9cbiAgcmVhZG9ubHkgY29kZVNhbmRib3hFdmFsdWF0b3I/OiBDb2RlU2FuZGJveEV2YWx1YXRvcjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEdyYXBoRXhlY3V0aW9uRW5naW5lQ29uZmlnKSB7XG4gICAgdGhpcy5lbWl0dGVyID0gY29uZmlnLmV2ZW50RW1pdHRlciA/PyBuZXcgR3JhcGhFeGVjdXRpb25FdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLnBsYW5uZXIgPSBjb25maWcucGxhbm5lciA/PyBuZXcgR3JhcGhFeGVjdXRpb25QbGFubmVyKCk7XG4gICAgdGhpcy52YWx1ZVN0b3JlQWRhcHRlciA9XG4gICAgICBjb25maWcudmFsdWVTdG9yZUFkYXB0ZXIgPz8gbmV3IEluTWVtb3J5R3JhcGhWYWx1ZVN0b3JlQWRhcHRlcigpO1xuICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMgPSBjb25maWcuZGVmYXVsdE9wdGlvbnMgPz8ge307XG4gICAgdGhpcy5jb2RlU2FuZGJveEV2YWx1YXRvciA9IGNvbmZpZy5jb2RlU2FuZGJveEV2YWx1YXRvcjtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICBjb25maWcub25FbmdpbmVDcmVhdGVkPy4odGhpcyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogR3JhcGhFeGVjdXRpb25FbmdpbmVDb25maWc7XG5cbiAgb2JzZXJ2ZShvYnNlcnZlcjogR3JhcGhFeGVjdXRpb25PYnNlcnZlcik6ICgpID0+IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmVtaXR0ZXIub2JzZXJ2ZShvYnNlcnZlcik7XG4gIH1cblxuICB1bk9ic2VydmUob2JzZXJ2ZXI6IEdyYXBoRXhlY3V0aW9uT2JzZXJ2ZXIpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXR0ZXIudW5PYnNlcnZlKG9ic2VydmVyKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhldmVudDogR3JhcGhFeGVjdXRpb25FdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZW1pdHRlci51cGRhdGVPYnNlcnZlcnMoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgd29ya2Zsb3cgd2l0aCB0aGUgZ2l2ZW4gaW5wdXRzIGFuZCBvcHRpb25zLlxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZShcbiAgICB3b3JrZmxvdzogR3JhcGhXb3JrZmxvd0RlZmluaXRpb24sXG4gICAgaW5wdXRzOiBHcmFwaEV4ZWN1dGlvblZhbHVlcyA9IHt9LFxuICAgIG9wdGlvbnM6IEdyYXBoRXhlY3V0aW9uT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8R3JhcGhFeGVjdXRpb25SZXN1bHQ+IHtcbiAgICBjb25zdCBvcHRzID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgY29uc3QgcnVuSWQgPSBvcHRzLnJ1bklkID8/IHRoaXMuZ2VuZXJhdGVSdW5JZCgpO1xuICAgIGNvbnN0IHBhdGggPSBvcHRzLnBhdGggPz8gW107XG4gICAgY29uc3QgZXZlbnRGYWN0b3J5ID0gbmV3IEdyYXBoRXhlY3V0aW9uRXZlbnRGYWN0b3J5KCk7XG4gICAgY29uc3QgdmFsdWVTdG9yZSA9IG5ldyBHcmFwaFZhbHVlU3RvcmUodGhpcy52YWx1ZVN0b3JlQWRhcHRlcik7XG4gICAgdmFsdWVTdG9yZS5zZWVkV29ya2Zsb3dJbnB1dHMoaW5wdXRzKTtcblxuICAgIGNvbnN0IHBsYW4gPSB0aGlzLnBsYW5uZXIucGxhbih3b3JrZmxvdyk7XG4gICAgY29uc3QgZnJhbWUgPSBuZXcgR3JhcGhFeGVjdXRpb25GcmFtZShcbiAgICAgIHJ1bklkLFxuICAgICAgcGxhbixcbiAgICAgIHZhbHVlU3RvcmUsXG4gICAgICBldmVudEZhY3RvcnlcbiAgICApO1xuXG4gICAgY29uc3QgZW1pdEZuID0gYXN5bmMgKHBhcnRpYWw6IFBhcnRpYWw8R3JhcGhFeGVjdXRpb25FdmVudD4pID0+IHtcbiAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgIHR5cGU6IHBhcnRpYWwudHlwZSA/PyBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX09VVFBVVCxcbiAgICAgICAgcnVuSWQsXG4gICAgICAgIHBhcmVudFJ1bklkOiBvcHRzLnBhcmVudFJ1bklkLFxuICAgICAgICB3b3JrZmxvd0lkOiB3b3JrZmxvdy5uYW1lLFxuICAgICAgICBub2RlSWQ6IHBhcnRpYWwubm9kZUlkLFxuICAgICAgICBwYXRoOiBwYXJ0aWFsLnBhdGggPz8gcGF0aCxcbiAgICAgICAgLi4ucGFydGlhbCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLmVtaXRFdmVudChmcmFtZSwge1xuICAgICAgdHlwZTogR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuV09SS0ZMT1dfU1RBUlRFRCxcbiAgICAgIHJ1bklkLFxuICAgICAgcGFyZW50UnVuSWQ6IG9wdHMucGFyZW50UnVuSWQsXG4gICAgICB3b3JrZmxvd0lkOiB3b3JrZmxvdy5uYW1lLFxuICAgICAgcGF0aCxcbiAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuUlVOTklORyxcbiAgICAgIHBheWxvYWQ6IHsgaW5wdXRzIH0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLmVtaXRFdmVudChmcmFtZSwge1xuICAgICAgdHlwZTogR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuV09SS0ZMT1dfUExBTk5FRCxcbiAgICAgIHJ1bklkLFxuICAgICAgcGFyZW50UnVuSWQ6IG9wdHMucGFyZW50UnVuSWQsXG4gICAgICB3b3JrZmxvd0lkOiB3b3JrZmxvdy5uYW1lLFxuICAgICAgcGF0aCxcbiAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuUExBTk5JTkcsXG4gICAgICBwYXlsb2FkOiB7IGxheWVyczogcGxhbi5sYXllcnMubGVuZ3RoLCBub2RlczogcGxhbi5ub2Rlcy5sZW5ndGggfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHBsYW4ubGF5ZXJzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUxheWVyKGZyYW1lLCBwbGFuLCBsYXllci5ub2Rlcywgb3B0cywgZW1pdEZuKTtcbiAgICAgIH1cblxuICAgICAgZnJhbWUuZmluaXNoKCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLldPUktGTE9XX0NPTVBMRVRFRCxcbiAgICAgICAgcnVuSWQsXG4gICAgICAgIHBhcmVudFJ1bklkOiBvcHRzLnBhcmVudFJ1bklkLFxuICAgICAgICB3b3JrZmxvd0lkOiB3b3JrZmxvdy5uYW1lLFxuICAgICAgICBwYXRoLFxuICAgICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLlNVQ0NFRURFRCxcbiAgICAgICAgcGF5bG9hZDogeyBvdXRwdXRzOiB2YWx1ZVN0b3JlLmdldFdvcmtmbG93VmFsdWVzKCkgfSxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYnVpbGRHcmFwaEV4ZWN1dGlvblJlc3VsdChcbiAgICAgICAgZnJhbWUsXG4gICAgICAgIHdvcmtmbG93LFxuICAgICAgICBpbnB1dHMsXG4gICAgICAgIEdyYXBoRXhlY3V0aW9uU3RhdHVzLlNVQ0NFRURFRCxcbiAgICAgICAgb3B0cy5tZXRhZGF0YVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZnJhbWUuZmluaXNoKCk7XG4gICAgICBjb25zdCBlcnJvclBheWxvYWQgPSB0aGlzLnRvRXJyb3JQYXlsb2FkKGVycm9yKTtcblxuICAgICAgYXdhaXQgdGhpcy5lbWl0RXZlbnQoZnJhbWUsIHtcbiAgICAgICAgdHlwZTogR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuV09SS0ZMT1dfRkFJTEVELFxuICAgICAgICBydW5JZCxcbiAgICAgICAgcGFyZW50UnVuSWQ6IG9wdHMucGFyZW50UnVuSWQsXG4gICAgICAgIHdvcmtmbG93SWQ6IHdvcmtmbG93Lm5hbWUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuRkFJTEVELFxuICAgICAgICBlcnJvcjogZXJyb3JQYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBidWlsZEdyYXBoRXhlY3V0aW9uUmVzdWx0KFxuICAgICAgICBmcmFtZSxcbiAgICAgICAgd29ya2Zsb3csXG4gICAgICAgIGlucHV0cyxcbiAgICAgICAgR3JhcGhFeGVjdXRpb25TdGF0dXMuRkFJTEVELFxuICAgICAgICBvcHRzLm1ldGFkYXRhXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQaW5zIGEgbm9kZSBhbmQgaXRzIHVwc3RyZWFtIGRlcGVuZGVuY2llcyBhZnRlciBhIGNvbXBsZXRlZCBydW4uXG4gICAqXG4gICAqIERlbGVnYXRlcyB0byB7QGxpbmsgR3JhcGhQaW5uaW5nU2VydmljZX0uIFRoZSBwbGFuIGFuZCByZXN1bHQgbXVzdCBjb21lXG4gICAqIGZyb20gYSBwcmlvciBzdWNjZXNzZnVsIGV4ZWN1dGlvbiBvZiB0aGUgc2FtZSB3b3JrZmxvdy5cbiAgICovXG4gIGFzeW5jIHBpbk5vZGUob3B0aW9uczogR3JhcGhQaW5Ob2RlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNyZWF0ZVBpbm5pbmdTZXJ2aWNlKCk7XG4gICAgYXdhaXQgc2VydmljZS5waW5Ob2RlKG9wdGlvbnMpO1xuICAgIGF3YWl0IHRoaXMuZW1pdFBpbm5pbmdFdmVudChvcHRpb25zLm5vZGVJZCwgR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuTk9ERV9QSU5ORUQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucGlucyBhIG5vZGUgYnkgaXRzIGZpbmdlcnByaW50LlxuICAgKi9cbiAgYXN5bmMgdW5waW5Ob2RlKG9wdGlvbnM6IEdyYXBoVW5waW5Ob2RlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNyZWF0ZVBpbm5pbmdTZXJ2aWNlKCk7XG4gICAgYXdhaXQgc2VydmljZS51bnBpbk5vZGUob3B0aW9ucyk7XG4gICAgYXdhaXQgdGhpcy5lbWl0UGlubmluZ0V2ZW50KG9wdGlvbnMubm9kZUlkLCBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX1VOUElOTkVEKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEge0BsaW5rIEdyYXBoUGlubmluZ1NlcnZpY2V9IGJhY2tlZCBieSB0aGlzIGVuZ2luZSdzIHZhbHVlIHN0b3JlXG4gICAqIGFkYXB0ZXIuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVBpbm5pbmdTZXJ2aWNlKCk6IEdyYXBoUGlubmluZ1NlcnZpY2Uge1xuICAgIGNvbnN0IHN0b3JlID0gbmV3IEdyYXBoVmFsdWVTdG9yZSh0aGlzLnZhbHVlU3RvcmVBZGFwdGVyKTtcbiAgICByZXR1cm4gbmV3IEdyYXBoUGlubmluZ1NlcnZpY2UoXG4gICAgICBzdG9yZSxcbiAgICAgIG5ldyBHcmFwaFBpbm5pbmdQb2xpY3koKSxcbiAgICAgIG5ldyBHcmFwaFBpbm5pbmdEZXBlbmRlbmN5UmVzb2x2ZXIoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBwaW5uaW5nLXJlbGF0ZWQgZXZlbnQgdG8gYWxsIG9ic2VydmVycy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZW1pdFBpbm5pbmdFdmVudChcbiAgICBub2RlSWQ6IHN0cmluZyxcbiAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gbmV3IEdyYXBoRXhlY3V0aW9uRXZlbnRGYWN0b3J5KCk7XG4gICAgY29uc3QgZXZlbnQgPSBmYWN0b3J5LmNyZWF0ZSh7XG4gICAgICBpZDogXCJcIixcbiAgICAgIHNlcXVlbmNlOiAwLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgcnVuSWQ6IFwicGlubmluZ1wiLFxuICAgICAgd29ya2Zsb3dJZDogXCJcIixcbiAgICAgIHR5cGUsXG4gICAgICBub2RlSWQsXG4gICAgICBwYXRoOiBbXSxcbiAgICB9IGFzIE9taXQ8R3JhcGhFeGVjdXRpb25FdmVudCwgXCJpZFwiIHwgXCJzZXF1ZW5jZVwiIHwgXCJ0aW1lc3RhbXBcIj4pO1xuICAgIGF3YWl0IHRoaXMuZW1pdHRlci51cGRhdGVPYnNlcnZlcnMoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgbGF5ZXIgb2Ygbm9kZXMgd2l0aCB0aGUgY29uZmlndXJlZCBjb25jdXJyZW5jeS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUxheWVyKFxuICAgIGZyYW1lOiBHcmFwaEV4ZWN1dGlvbkZyYW1lLFxuICAgIHBsYW46IEdyYXBoRXhlY3V0aW9uUGxhbixcbiAgICBub2RlczogR3JhcGhFeGVjdXRpb25QbGFuTm9kZVtdLFxuICAgIG9wdHM6IEdyYXBoRXhlY3V0aW9uT3B0aW9ucyxcbiAgICBlbWl0Rm46IChldmVudDogUGFydGlhbDxHcmFwaEV4ZWN1dGlvbkV2ZW50PikgPT4gUHJvbWlzZTx2b2lkPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25jdXJyZW5jeSA9IE1hdGgubWF4KFxuICAgICAgMSxcbiAgICAgIG9wdHMuY29uY3VycmVuY3kgPz8gR1JBUEhfREVGQVVMVF9DT05DVVJSRU5DWVxuICAgICk7XG4gICAgY29uc3QgcXVldWUgPSBbLi4ubm9kZXNdO1xuXG4gICAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGJhdGNoID0gcXVldWUuc3BsaWNlKDAsIGNvbmN1cnJlbmN5KTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBiYXRjaC5tYXAoKG5vZGUpID0+IHRoaXMuZXhlY3V0ZU5vZGUoZnJhbWUsIHBsYW4sIG5vZGUsIG9wdHMsIGVtaXRGbikpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHNpbmdsZSBub2RlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlTm9kZShcbiAgICBmcmFtZTogR3JhcGhFeGVjdXRpb25GcmFtZSxcbiAgICBwbGFuOiBHcmFwaEV4ZWN1dGlvblBsYW4sXG4gICAgcGxhbk5vZGU6IEdyYXBoRXhlY3V0aW9uUGxhbk5vZGUsXG4gICAgb3B0czogR3JhcGhFeGVjdXRpb25PcHRpb25zLFxuICAgIGVtaXRGbjogKGV2ZW50OiBQYXJ0aWFsPEdyYXBoRXhlY3V0aW9uRXZlbnQ+KSA9PiBQcm9taXNlPHZvaWQ+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3Qgbm9kZVBhdGggPSBbLi4uKG9wdHMucGF0aCA/PyBbXSksIHBsYW5Ob2RlLmlkXTtcblxuICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX1NUQVJURUQsXG4gICAgICBydW5JZDogZnJhbWUucnVuSWQsXG4gICAgICB3b3JrZmxvd0lkOiBwbGFuLndvcmtmbG93SWQsXG4gICAgICBub2RlSWQ6IHBsYW5Ob2RlLmlkLFxuICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLlJVTk5JTkcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLnJlc29sdmVOb2RlSW5wdXRzKGZyYW1lLCBwbGFuLCBwbGFuTm9kZSk7XG5cbiAgICAvLyBDYWNoZS1oaXQ6IGNoZWNrIGZvciBhIHBpbm5lZCB2YWx1ZSBiZWZvcmUgZXhlY3V0aW5nIHRoZSBub2RlXG4gICAgaWYgKG9wdHMudXNlUGlubmVkVmFsdWVzKSB7XG4gICAgICBjb25zdCBjYWNoZWQgPSBhd2FpdCB0aGlzLnRyeVBpbm5lZFZhbHVlKGZyYW1lLCBwbGFuLCBwbGFuTm9kZSwgaW5wdXRzKTtcbiAgICAgIGlmIChjYWNoZWQpIHtcbiAgICAgICAgZnJhbWUudmFsdWVTdG9yZS5zZXROb2RlT3V0cHV0cyhwbGFuTm9kZS5pZCwgY2FjaGVkLm91dHB1dHMpO1xuICAgICAgICB0aGlzLnJvdXRlT3V0Z29pbmdFZGdlcyhmcmFtZSwgcGxhbiwgcGxhbk5vZGUsIGNhY2hlZC5vdXRwdXRzKTtcblxuICAgICAgICBjb25zdCBmaW5pc2hlZEF0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBHcmFwaE5vZGVFeGVjdXRpb25SZXN1bHQgPSB7XG4gICAgICAgICAgbm9kZUlkOiBwbGFuTm9kZS5pZCxcbiAgICAgICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLkNBQ0hFRCxcbiAgICAgICAgICBpbnB1dHMsXG4gICAgICAgICAgb3V0cHV0czogY2FjaGVkLm91dHB1dHMsXG4gICAgICAgICAgc3RhcnRlZEF0LFxuICAgICAgICAgIGZpbmlzaGVkQXQsXG4gICAgICAgICAgZnJvbUNhY2hlOiB0cnVlLFxuICAgICAgICAgIHBpbm5lZDogdHJ1ZSxcbiAgICAgICAgICBldmVudHM6IFtdLFxuICAgICAgICB9O1xuICAgICAgICBmcmFtZS5yZWNvcmROb2RlUmVzdWx0KHJlc3VsdCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5lbWl0RXZlbnQoZnJhbWUsIHtcbiAgICAgICAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX0NBQ0hFX0hJVCxcbiAgICAgICAgICBydW5JZDogZnJhbWUucnVuSWQsXG4gICAgICAgICAgd29ya2Zsb3dJZDogcGxhbi53b3JrZmxvd0lkLFxuICAgICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5DQUNIRUQsXG4gICAgICAgICAgcGF5bG9hZDogeyBvdXRwdXRzOiBjYWNoZWQub3V0cHV0cyB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCB0aGlzLmVtaXRFdmVudChmcmFtZSwge1xuICAgICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfQ09NUExFVEVELFxuICAgICAgICAgIHJ1bklkOiBmcmFtZS5ydW5JZCxcbiAgICAgICAgICB3b3JrZmxvd0lkOiBwbGFuLndvcmtmbG93SWQsXG4gICAgICAgICAgbm9kZUlkOiBwbGFuTm9kZS5pZCxcbiAgICAgICAgICBwYXRoOiBub2RlUGF0aCxcbiAgICAgICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLlNVQ0NFRURFRCxcbiAgICAgICAgICBwYXlsb2FkOiB7IG91dHB1dHM6IGNhY2hlZC5vdXRwdXRzLCBmcm9tQ2FjaGU6IHRydWUgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZXhlY3V0b3IgPSB0aGlzLmNvbmZpZy5yZWdpc3RyeS5yZXNvbHZlKHBsYW5Ob2RlLmtpbmQpO1xuICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBHcmFwaEV4ZWN1dGlvbkNvbnRleHQoXG4gICAgICAgIGZyYW1lLnJ1bklkLFxuICAgICAgICBvcHRzLnBhcmVudFJ1bklkLFxuICAgICAgICBwbGFuLndvcmtmbG93LFxuICAgICAgICBwbGFuTm9kZS5kZWZpbml0aW9uLFxuICAgICAgICBub2RlUGF0aCxcbiAgICAgICAgZW1pdEZuLFxuICAgICAgICBvcHRzLm1ldGFkYXRhXG4gICAgICApO1xuXG4gICAgICBjb25zdCBvdXRwdXRzID0gYXdhaXQgZXhlY3V0b3IuZXhlY3V0ZShpbnB1dHMsIGNvbnRleHQpO1xuICAgICAgY29uc3QgcmVzb2x2ZWRPdXRwdXRzID0gb3V0cHV0cyA/PyB7fTtcblxuICAgICAgZnJhbWUudmFsdWVTdG9yZS5zZXROb2RlT3V0cHV0cyhwbGFuTm9kZS5pZCwgcmVzb2x2ZWRPdXRwdXRzKTtcbiAgICAgIHRoaXMucm91dGVPdXRnb2luZ0VkZ2VzKGZyYW1lLCBwbGFuLCBwbGFuTm9kZSwgcmVzb2x2ZWRPdXRwdXRzKTtcblxuICAgICAgY29uc3QgZmluaXNoZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgICBjb25zdCByZXN1bHQ6IEdyYXBoTm9kZUV4ZWN1dGlvblJlc3VsdCA9IHtcbiAgICAgICAgbm9kZUlkOiBwbGFuTm9kZS5pZCxcbiAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5TVUNDRUVERUQsXG4gICAgICAgIGlucHV0cyxcbiAgICAgICAgb3V0cHV0czogcmVzb2x2ZWRPdXRwdXRzLFxuICAgICAgICBzdGFydGVkQXQsXG4gICAgICAgIGZpbmlzaGVkQXQsXG4gICAgICAgIGV2ZW50czogW10sXG4gICAgICB9O1xuICAgICAgZnJhbWUucmVjb3JkTm9kZVJlc3VsdChyZXN1bHQpO1xuXG4gICAgICBhd2FpdCB0aGlzLmVtaXRFdmVudChmcmFtZSwge1xuICAgICAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX0NPTVBMRVRFRCxcbiAgICAgICAgcnVuSWQ6IGZyYW1lLnJ1bklkLFxuICAgICAgICB3b3JrZmxvd0lkOiBwbGFuLndvcmtmbG93SWQsXG4gICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgIHBhdGg6IG5vZGVQYXRoLFxuICAgICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLlNVQ0NFRURFRCxcbiAgICAgICAgcGF5bG9hZDogeyBvdXRwdXRzOiByZXNvbHZlZE91dHB1dHMgfSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBmaW5pc2hlZEF0ID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IGVycm9yUGF5bG9hZCA9IHRoaXMudG9FcnJvclBheWxvYWQoZXJyb3IpO1xuICAgICAgY29uc3QgcmVzdWx0OiBHcmFwaE5vZGVFeGVjdXRpb25SZXN1bHQgPSB7XG4gICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuRkFJTEVELFxuICAgICAgICBpbnB1dHMsXG4gICAgICAgIGVycm9yOiBlcnJvclBheWxvYWQsXG4gICAgICAgIHN0YXJ0ZWRBdCxcbiAgICAgICAgZmluaXNoZWRBdCxcbiAgICAgICAgZXZlbnRzOiBbXSxcbiAgICAgIH07XG4gICAgICBmcmFtZS5yZWNvcmROb2RlUmVzdWx0KHJlc3VsdCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfRkFJTEVELFxuICAgICAgICBydW5JZDogZnJhbWUucnVuSWQsXG4gICAgICAgIHdvcmtmbG93SWQ6IHBsYW4ud29ya2Zsb3dJZCxcbiAgICAgICAgbm9kZUlkOiBwbGFuTm9kZS5pZCxcbiAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuRkFJTEVELFxuICAgICAgICBlcnJvcjogZXJyb3JQYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChvcHRzLmZhaWxGYXN0ID8/IHRydWUpIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIG5vZGUncyBpbnB1dCB2YWx1ZXMgZnJvbSBpbmNvbWluZyBlZGdlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZU5vZGVJbnB1dHMoXG4gICAgZnJhbWU6IEdyYXBoRXhlY3V0aW9uRnJhbWUsXG4gICAgcGxhbjogR3JhcGhFeGVjdXRpb25QbGFuLFxuICAgIHBsYW5Ob2RlOiBHcmFwaEV4ZWN1dGlvblBsYW5Ob2RlXG4gICk6IEdyYXBoRXhlY3V0aW9uVmFsdWVzIHtcbiAgICBjb25zdCBpbnB1dHM6IEdyYXBoRXhlY3V0aW9uVmFsdWVzID0ge307XG4gICAgY29uc3QgaW5jb21pbmcgPSBwbGFuLmluY29taW5nQnlOb2RlLmdldChwbGFuTm9kZS5pZCkgPz8gW107XG4gICAgZm9yIChjb25zdCBlZGdlIG9mIGluY29taW5nKSB7XG4gICAgICBpbnB1dHNbZWRnZS50YXJnZXRQb3J0XSA9IGZyYW1lLnZhbHVlU3RvcmUuZ2V0UG9ydChcbiAgICAgICAgZWRnZS5zb3VyY2VOb2RlSWQsXG4gICAgICAgIGVkZ2Uuc291cmNlUG9ydFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byByZWFkIGEgcGlubmVkIHZhbHVlIGZvciB0aGUgbm9kZS4gUmV0dXJucyB0aGUgY2FjaGVkIG91dHB1dHNcbiAgICogd2hlbiBhIHZhbGlkIHBpbm5lZCB2YWx1ZSBleGlzdHMsIG9yIGB1bmRlZmluZWRgIHRvIHByb2NlZWQgd2l0aCBub3JtYWxcbiAgICogZXhlY3V0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0cnlQaW5uZWRWYWx1ZShcbiAgICBmcmFtZTogR3JhcGhFeGVjdXRpb25GcmFtZSxcbiAgICBwbGFuOiBHcmFwaEV4ZWN1dGlvblBsYW4sXG4gICAgcGxhbk5vZGU6IEdyYXBoRXhlY3V0aW9uUGxhbk5vZGUsXG4gICAgaW5wdXRzOiBHcmFwaEV4ZWN1dGlvblZhbHVlc1xuICApOiBQcm9taXNlPEdyYXBoQ2FjaGVkVmFsdWUgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgR3JhcGhQaW5uaW5nUG9saWN5KCk7XG4gICAgaWYgKCFwb2xpY3kuc2hvdWxkVXNlUGlubmVkVmFsdWUocGxhbk5vZGUpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgc2VydmljZSA9IHRoaXMuY3JlYXRlUGlubmluZ1NlcnZpY2UoKTtcbiAgICBjb25zdCBkZXBGaW5nZXJwcmludHMgPSB0aGlzLmNvbXB1dGVEZXBlbmRlbmN5RmluZ2VycHJpbnRzKGZyYW1lLCBwbGFuLCBwbGFuTm9kZS5pZCk7XG4gICAgcmV0dXJuIHNlcnZpY2UucmVhZFBpbm5lZFZhbHVlKFxuICAgICAgcGxhbi53b3JrZmxvdyxcbiAgICAgIHBsYW5Ob2RlLFxuICAgICAgaW5wdXRzLFxuICAgICAgZGVwRmluZ2VycHJpbnRzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBjb21wdXRlcyBmaW5nZXJwcmludHMgZm9yIGFsbCB1cHN0cmVhbSBkZXBlbmRlbmNpZXMgb2YgYSBub2RlXG4gICAqIHVzaW5nIHRoZSByZXN1bHRzIGFscmVhZHkgYWNjdW11bGF0ZWQgaW4gdGhlIGZyYW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBjb21wdXRlRGVwZW5kZW5jeUZpbmdlcnByaW50cyhcbiAgICBmcmFtZTogR3JhcGhFeGVjdXRpb25GcmFtZSxcbiAgICBwbGFuOiBHcmFwaEV4ZWN1dGlvblBsYW4sXG4gICAgbm9kZUlkOiBzdHJpbmdcbiAgKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3Qgc2VydmljZSA9IHRoaXMuY3JlYXRlUGlubmluZ1NlcnZpY2UoKTtcbiAgICBjb25zdCBkZXBSZXNvbHZlciA9IG5ldyBHcmFwaFBpbm5pbmdEZXBlbmRlbmN5UmVzb2x2ZXIoKTtcbiAgICBjb25zdCBkZXBzID0gZGVwUmVzb2x2ZXIuZ2V0RGVwZW5kZW5jaWVzKHBsYW4sIG5vZGVJZCk7XG4gICAgY29uc3QgZmluZ2VycHJpbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgICAgY29uc3Qgbm9kZSA9IHBsYW4ubm9kZXMuZmluZCgobikgPT4gbi5pZCA9PT0gZGVwKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIGNvbnN0IGRlcFJlc3VsdCA9IGZyYW1lLm5vZGVSZXN1bHRzLmdldChkZXApO1xuICAgICAgICBjb25zdCBpbnB1dHMgPSBkZXBSZXN1bHQ/LmlucHV0cyA/PyB7fTtcbiAgICAgICAgY29uc3QgbmVzdGVkRGVwcyA9IHRoaXMuY29tcHV0ZURlcGVuZGVuY3lGaW5nZXJwcmludHMoZnJhbWUsIHBsYW4sIGRlcCk7XG4gICAgICAgIGZpbmdlcnByaW50c1tkZXBdID0gc2VydmljZS5jb21wdXRlRmluZ2VycHJpbnQoXG4gICAgICAgICAgcGxhbi53b3JrZmxvdyxcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIGlucHV0cyxcbiAgICAgICAgICBuZXN0ZWREZXBzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaW5nZXJwcmludHM7XG4gIH1cblxuICAvKipcbiAgICogUm91dGVzIGEgbm9kZSdzIG91dHB1dHMgdG8gZG93bnN0cmVhbSBpbnB1dHMgYW5kIHdvcmtmbG93IG91dHB1dHMuXG4gICAqL1xuICBwcml2YXRlIHJvdXRlT3V0Z29pbmdFZGdlcyhcbiAgICBmcmFtZTogR3JhcGhFeGVjdXRpb25GcmFtZSxcbiAgICBwbGFuOiBHcmFwaEV4ZWN1dGlvblBsYW4sXG4gICAgcGxhbk5vZGU6IEdyYXBoRXhlY3V0aW9uUGxhbk5vZGUsXG4gICAgb3V0cHV0czogR3JhcGhFeGVjdXRpb25WYWx1ZXNcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgb3V0Z29pbmcgPSBwbGFuLm91dGdvaW5nQnlOb2RlLmdldChwbGFuTm9kZS5pZCkgPz8gW107XG4gICAgZm9yIChjb25zdCBlZGdlIG9mIG91dGdvaW5nKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG91dHB1dHNbZWRnZS5zb3VyY2VQb3J0XTtcbiAgICAgIGlmIChlZGdlLnRhcmdldE5vZGVJZCA9PT0gR1JBUEhfV09SS0ZMT1dfQk9VTkRBUlkpIHtcbiAgICAgICAgZnJhbWUudmFsdWVTdG9yZS5zZXRXb3JrZmxvd091dHB1dChlZGdlLnRhcmdldFBvcnQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLkVER0VfVkFMVUVfUk9VVEVELFxuICAgICAgICBydW5JZDogZnJhbWUucnVuSWQsXG4gICAgICAgIHdvcmtmbG93SWQ6IHBsYW4ud29ya2Zsb3dJZCxcbiAgICAgICAgZWRnZUlkOiBlZGdlLmlkLFxuICAgICAgICBub2RlSWQ6IHBsYW5Ob2RlLmlkLFxuICAgICAgICBwYXRoOiBbXSxcbiAgICAgICAgcGF5bG9hZDogeyBlZGdlLCB2YWx1ZSB9LFxuICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAvLyBvYnNlcnZlciBmYWlsdXJlcyBtdXN0IG5vdCBjcmFzaFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50LCByZWNvcmRzIGl0IGluIHRoZSBmcmFtZSwgYW5kIGRpc3BhdGNoZXMgdG8gb2JzZXJ2ZXJzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBlbWl0RXZlbnQoXG4gICAgZnJhbWU6IEdyYXBoRXhlY3V0aW9uRnJhbWUsXG4gICAgcGFydGlhbDogUGFydGlhbDxHcmFwaEV4ZWN1dGlvbkV2ZW50PiAmIHtcbiAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlO1xuICAgICAgcnVuSWQ6IEdyYXBoUnVuSWQ7XG4gICAgICB3b3JrZmxvd0lkOiBzdHJpbmc7XG4gICAgICBwYXRoOiBzdHJpbmdbXTtcbiAgICB9XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGV2ZW50ID0gZnJhbWUuZXZlbnRGYWN0b3J5LmNyZWF0ZSh7XG4gICAgICBpZDogXCJcIixcbiAgICAgIHNlcXVlbmNlOiAwLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgLi4ucGFydGlhbCxcbiAgICB9IGFzIE9taXQ8R3JhcGhFeGVjdXRpb25FdmVudCwgXCJpZFwiIHwgXCJzZXF1ZW5jZVwiIHwgXCJ0aW1lc3RhbXBcIj4pO1xuICAgIGZyYW1lLmFwcGVuZEV2ZW50KGV2ZW50KTtcbiAgICBhd2FpdCB0aGlzLmVtaXR0ZXIudXBkYXRlT2JzZXJ2ZXJzKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZXMgZGVmYXVsdCBvcHRpb25zIHdpdGggdGhlIGdpdmVuIG9wdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIG1lcmdlT3B0aW9ucyhcbiAgICBvcHRpb25zOiBHcmFwaEV4ZWN1dGlvbk9wdGlvbnNcbiAgKTogR3JhcGhFeGVjdXRpb25PcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29uY3VycmVuY3k6IEdSQVBIX0RFRkFVTFRfQ09OQ1VSUkVOQ1ksXG4gICAgICBmYWlsRmFzdDogdHJ1ZSxcbiAgICAgIHZhbGlkYXRlSW5wdXRzOiB0cnVlLFxuICAgICAgdmFsaWRhdGVPdXRwdXRzOiB0cnVlLFxuICAgICAgdXNlUGlubmVkVmFsdWVzOiB0cnVlLFxuICAgICAgd3JpdGVUaHJvdWdoQ2FjaGU6IGZhbHNlLFxuICAgICAgcGF0aDogW10sXG4gICAgICBtZXRhZGF0YToge30sXG4gICAgICAuLi50aGlzLmRlZmF1bHRPcHRpb25zLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBydW4gaWQuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlUnVuSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgZ2xvYmFsVGhpcy5jcnlwdG8/LnJhbmRvbVVVSUQ/LigpID8/XG4gICAgICBgZ3JhcGgtcnVuLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBlcnJvciBpbnRvIGEgc2VyaWFsaXplZCBwYXlsb2FkLlxuICAgKi9cbiAgcHJpdmF0ZSB0b0Vycm9yUGF5bG9hZChlcnJvcjogdW5rbm93bik6IEdyYXBoRXhlY3V0aW9uRXJyb3JQYXlsb2FkIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogZXJyb3IubmFtZSxcbiAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgICBjb2RlOlxuICAgICAgICAgIChlcnJvciBhcyBhbnkpLmdyYXBoQ29kZSA/P1xuICAgICAgICAgICh0eXBlb2YgKGVycm9yIGFzIGFueSkuY29kZSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgPyBTdHJpbmcoKGVycm9yIGFzIGFueSkuY29kZSlcbiAgICAgICAgICAgIDogKGVycm9yIGFzIGFueSkuY29kZSksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4geyBuYW1lOiBcIlVua25vd25FcnJvclwiLCBtZXNzYWdlOiBTdHJpbmcoZXJyb3IpIH07XG4gIH1cbn1cbiJdfQ==
|
|
407
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25FbmdpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJHcmFwaEV4ZWN1dGlvbkVuZ2luZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBdUk7QUFDdkksNkZBQXVGO0FBQ3ZGLDZGQUF1RjtBQUN2RixxRkFBK0U7QUFDL0Usb0dBQThGO0FBQzlGLHNFQUFnRTtBQUNoRSxnRkFBMEU7QUFDMUUsOEVBQXdFO0FBQ3hFLHNHQUFnRztBQUNoRyx5RUFBbUU7QUFDbkUscUVBQStEO0FBQy9ELHVFQUFzRTtBQUN0RTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFDN0IsWUFBWSxNQUFNO1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksMERBQTBCLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxnREFBcUIsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxpQkFBaUI7WUFDbEIsTUFBTSxDQUFDLGlCQUFpQixJQUFJLElBQUksa0VBQThCLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxPQUFPLENBQUMsUUFBUTtRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELFNBQVMsQ0FBQyxRQUFRO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFD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QUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU87Z0JBQ0gsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNoQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTO29CQUNqQixDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRO3dCQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7d0JBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ3hCLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7Q0FDSjtBQXpYRCxvREF5WEM7QUFDRCxrcjBDQUFrcjBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR1JBUEhfREVGQVVMVF9DT05DVVJSRU5DWSwgR1JBUEhfV09SS0ZMT1dfQk9VTkRBUlksIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLCBHcmFwaEV4ZWN1dGlvblN0YXR1cywgfSBmcm9tIFwiLi8uLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRXZlbnRFbWl0dGVyIH0gZnJvbSBcIi4vLi4vZXZlbnRzL0dyYXBoRXhlY3V0aW9uRXZlbnRFbWl0dGVyLmpzXCI7XG5pbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkV2ZW50RmFjdG9yeSB9IGZyb20gXCIuLy4uL2V2ZW50cy9HcmFwaEV4ZWN1dGlvbkV2ZW50RmFjdG9yeS5qc1wiO1xuaW1wb3J0IHsgR3JhcGhFeGVjdXRpb25QbGFubmVyIH0gZnJvbSBcIi4vLi4vcGxhbm5pbmcvR3JhcGhFeGVjdXRpb25QbGFubmVyLmpzXCI7XG5pbXBvcnQgeyBJbk1lbW9yeUdyYXBoVmFsdWVTdG9yZUFkYXB0ZXIgfSBmcm9tIFwiLi8uLi9zdG9yZS9Jbk1lbW9yeUdyYXBoVmFsdWVTdG9yZUFkYXB0ZXIuanNcIjtcbmltcG9ydCB7IEdyYXBoVmFsdWVTdG9yZSB9IGZyb20gXCIuLy4uL3N0b3JlL0dyYXBoVmFsdWVTdG9yZS5qc1wiO1xuaW1wb3J0IHsgR3JhcGhQaW5uaW5nU2VydmljZSB9IGZyb20gXCIuLy4uL3Bpbm5pbmcvR3JhcGhQaW5uaW5nU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgR3JhcGhQaW5uaW5nUG9saWN5IH0gZnJvbSBcIi4vLi4vcGlubmluZy9HcmFwaFBpbm5pbmdQb2xpY3kuanNcIjtcbmltcG9ydCB7IEdyYXBoUGlubmluZ0RlcGVuZGVuY3lSZXNvbHZlciB9IGZyb20gXCIuLy4uL3Bpbm5pbmcvR3JhcGhQaW5uaW5nRGVwZW5kZW5jeVJlc29sdmVyLmpzXCI7XG5pbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkNvbnRleHQuanNcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRnJhbWUgfSBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkZyYW1lLmpzXCI7XG5pbXBvcnQgeyBidWlsZEdyYXBoRXhlY3V0aW9uUmVzdWx0IH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25SZXN1bHQuanNcIjtcbi8qKlxuICogUmVmZXJlbmNlIGdyYXBoIGV4ZWN1dGlvbiBlbmdpbmUuXG4gKlxuICogRXhlY3V0ZXMgYSB7QGxpbmsgR3JhcGhXb3JrZmxvd0RlZmluaXRpb259IGJ5OlxuICogMS4gUGxhbm5pbmcgdGhlIHdvcmtmbG93IGludG8gdG9wb2xvZ2ljYWwgbGF5ZXJzLlxuICogMi4gU2VlZGluZyB3b3JrZmxvdyBpbnB1dHMgaW50byB0aGUgdmFsdWUgc3RvcmUuXG4gKiAzLiBFeGVjdXRpbmcgbm9kZXMgbGF5ZXItYnktbGF5ZXIgd2l0aCBjb25maWd1cmFibGUgY29uY3VycmVuY3kuXG4gKiA0LiBSb3V0aW5nIHZhbHVlcyBhbG9uZyBlZGdlcy5cbiAqIDUuIEVtaXR0aW5nIHN0cnVjdHVyZWQgZXZlbnRzIHRocm91Z2ggRGVjYWYncyBPYnNlcnZhYmxlIHBpcGVsaW5lLlxuICogNi4gUmV0dXJuaW5nIGEgY29tcGxldGUge0BsaW5rIEdyYXBoRXhlY3V0aW9uUmVzdWx0fS5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoRXhlY3V0aW9uRW5naW5lIHtcbiAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICAgICAgdGhpcy5lbWl0dGVyID0gY29uZmlnLmV2ZW50RW1pdHRlciA/PyBuZXcgR3JhcGhFeGVjdXRpb25FdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5wbGFubmVyID0gY29uZmlnLnBsYW5uZXIgPz8gbmV3IEdyYXBoRXhlY3V0aW9uUGxhbm5lcigpO1xuICAgICAgICB0aGlzLnZhbHVlU3RvcmVBZGFwdGVyID1cbiAgICAgICAgICAgIGNvbmZpZy52YWx1ZVN0b3JlQWRhcHRlciA/PyBuZXcgSW5NZW1vcnlHcmFwaFZhbHVlU3RvcmVBZGFwdGVyKCk7XG4gICAgICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMgPSBjb25maWcuZGVmYXVsdE9wdGlvbnMgPz8ge307XG4gICAgICAgIHRoaXMuY29kZVNhbmRib3hFdmFsdWF0b3IgPSBjb25maWcuY29kZVNhbmRib3hFdmFsdWF0b3I7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgICAgICBjb25maWcub25FbmdpbmVDcmVhdGVkPy4odGhpcyk7XG4gICAgfVxuICAgIG9ic2VydmUob2JzZXJ2ZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1pdHRlci5vYnNlcnZlKG9ic2VydmVyKTtcbiAgICB9XG4gICAgdW5PYnNlcnZlKG9ic2VydmVyKSB7XG4gICAgICAgIHRoaXMuZW1pdHRlci51bk9ic2VydmUob2JzZXJ2ZXIpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVPYnNlcnZlcnMoZXZlbnQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbWl0dGVyLnVwZGF0ZU9ic2VydmVycyhldmVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGEgd29ya2Zsb3cgd2l0aCB0aGUgZ2l2ZW4gaW5wdXRzIGFuZCBvcHRpb25zLlxuICAgICAqL1xuICAgIGFzeW5jIGV4ZWN1dGUod29ya2Zsb3csIGlucHV0cyA9IHt9LCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IHRoaXMubWVyZ2VPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBydW5JZCA9IG9wdHMucnVuSWQgPz8gdGhpcy5nZW5lcmF0ZVJ1bklkKCk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBvcHRzLnBhdGggPz8gW107XG4gICAgICAgIGNvbnN0IGV2ZW50RmFjdG9yeSA9IG5ldyBHcmFwaEV4ZWN1dGlvbkV2ZW50RmFjdG9yeSgpO1xuICAgICAgICBjb25zdCB2YWx1ZVN0b3JlID0gbmV3IEdyYXBoVmFsdWVTdG9yZSh0aGlzLnZhbHVlU3RvcmVBZGFwdGVyKTtcbiAgICAgICAgdmFsdWVTdG9yZS5zZWVkV29ya2Zsb3dJbnB1dHMoaW5wdXRzKTtcbiAgICAgICAgY29uc3QgcGxhbiA9IHRoaXMucGxhbm5lci5wbGFuKHdvcmtmbG93KTtcbiAgICAgICAgY29uc3QgZnJhbWUgPSBuZXcgR3JhcGhFeGVjdXRpb25GcmFtZShydW5JZCwgcGxhbiwgdmFsdWVTdG9yZSwgZXZlbnRGYWN0b3J5KTtcbiAgICAgICAgY29uc3QgZW1pdEZuID0gYXN5bmMgKHBhcnRpYWwpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogcGFydGlhbC50eXBlID8/IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfT1VUUFVULFxuICAgICAgICAgICAgICAgIHJ1bklkLFxuICAgICAgICAgICAgICAgIHBhcmVudFJ1bklkOiBvcHRzLnBhcmVudFJ1bklkLFxuICAgICAgICAgICAgICAgIHdvcmtmbG93SWQ6IHdvcmtmbG93Lm5hbWUsXG4gICAgICAgICAgICAgICAgbm9kZUlkOiBwYXJ0aWFsLm5vZGVJZCxcbiAgICAgICAgICAgICAgICBwYXRoOiBwYXJ0aWFsLnBhdGggPz8gcGF0aCxcbiAgICAgICAgICAgICAgICAuLi5wYXJ0aWFsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgICAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5XT1JLRkxPV19TVEFSVEVELFxuICAgICAgICAgICAgcnVuSWQsXG4gICAgICAgICAgICBwYXJlbnRSdW5JZDogb3B0cy5wYXJlbnRSdW5JZCxcbiAgICAgICAgICAgIHdvcmtmbG93SWQ6IHdvcmtmbG93Lm5hbWUsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5SVU5OSU5HLFxuICAgICAgICAgICAgcGF5bG9hZDogeyBpbnB1dHMgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgICAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5XT1JLRkxPV19QTEFOTkVELFxuICAgICAgICAgICAgcnVuSWQsXG4gICAgICAgICAgICBwYXJlbnRSdW5JZDogb3B0cy5wYXJlbnRSdW5JZCxcbiAgICAgICAgICAgIHdvcmtmbG93SWQ6IHdvcmtmbG93Lm5hbWUsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5QTEFOTklORyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHsgbGF5ZXJzOiBwbGFuLmxheWVycy5sZW5ndGgsIG5vZGVzOiBwbGFuLm5vZGVzLmxlbmd0aCB9LFxuICAgICAgICB9KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgcGxhbi5sYXllcnMpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVMYXllcihmcmFtZSwgcGxhbiwgbGF5ZXIubm9kZXMsIG9wdHMsIGVtaXRGbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmcmFtZS5maW5pc2goKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuV09SS0ZMT1dfQ09NUExFVEVELFxuICAgICAgICAgICAgICAgIHJ1bklkLFxuICAgICAgICAgICAgICAgIHBhcmVudFJ1bklkOiBvcHRzLnBhcmVudFJ1bklkLFxuICAgICAgICAgICAgICAgIHdvcmtmbG93SWQ6IHdvcmtmbG93Lm5hbWUsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLlNVQ0NFRURFRCxcbiAgICAgICAgICAgICAgICBwYXlsb2FkOiB7IG91dHB1dHM6IHZhbHVlU3RvcmUuZ2V0V29ya2Zsb3dWYWx1ZXMoKSB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRHcmFwaEV4ZWN1dGlvblJlc3VsdChmcmFtZSwgd29ya2Zsb3csIGlucHV0cywgR3JhcGhFeGVjdXRpb25TdGF0dXMuU1VDQ0VFREVELCBvcHRzLm1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGZyYW1lLmZpbmlzaCgpO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JQYXlsb2FkID0gdGhpcy50b0Vycm9yUGF5bG9hZChlcnJvcik7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmVtaXRFdmVudChmcmFtZSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLldPUktGTE9XX0ZBSUxFRCxcbiAgICAgICAgICAgICAgICBydW5JZCxcbiAgICAgICAgICAgICAgICBwYXJlbnRSdW5JZDogb3B0cy5wYXJlbnRSdW5JZCxcbiAgICAgICAgICAgICAgICB3b3JrZmxvd0lkOiB3b3JrZmxvdy5uYW1lLFxuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yUGF5bG9hZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGJ1aWxkR3JhcGhFeGVjdXRpb25SZXN1bHQoZnJhbWUsIHdvcmtmbG93LCBpbnB1dHMsIEdyYXBoRXhlY3V0aW9uU3RhdHVzLkZBSUxFRCwgb3B0cy5tZXRhZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUGlucyBhIG5vZGUgYW5kIGl0cyB1cHN0cmVhbSBkZXBlbmRlbmNpZXMgYWZ0ZXIgYSBjb21wbGV0ZWQgcnVuLlxuICAgICAqXG4gICAgICogRGVsZWdhdGVzIHRvIHtAbGluayBHcmFwaFBpbm5pbmdTZXJ2aWNlfS4gVGhlIHBsYW4gYW5kIHJlc3VsdCBtdXN0IGNvbWVcbiAgICAgKiBmcm9tIGEgcHJpb3Igc3VjY2Vzc2Z1bCBleGVjdXRpb24gb2YgdGhlIHNhbWUgd29ya2Zsb3cuXG4gICAgICovXG4gICAgYXN5bmMgcGluTm9kZShvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNyZWF0ZVBpbm5pbmdTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHNlcnZpY2UucGluTm9kZShvcHRpb25zKTtcbiAgICAgICAgYXdhaXQgdGhpcy5lbWl0UGlubmluZ0V2ZW50KG9wdGlvbnMubm9kZUlkLCBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX1BJTk5FRCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVucGlucyBhIG5vZGUgYnkgaXRzIGZpbmdlcnByaW50LlxuICAgICAqL1xuICAgIGFzeW5jIHVucGluTm9kZShvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNyZWF0ZVBpbm5pbmdTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHNlcnZpY2UudW5waW5Ob2RlKG9wdGlvbnMpO1xuICAgICAgICBhd2FpdCB0aGlzLmVtaXRQaW5uaW5nRXZlbnQob3B0aW9ucy5ub2RlSWQsIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfVU5QSU5ORUQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEge0BsaW5rIEdyYXBoUGlubmluZ1NlcnZpY2V9IGJhY2tlZCBieSB0aGlzIGVuZ2luZSdzIHZhbHVlIHN0b3JlXG4gICAgICogYWRhcHRlci5cbiAgICAgKi9cbiAgICBjcmVhdGVQaW5uaW5nU2VydmljZSgpIHtcbiAgICAgICAgY29uc3Qgc3RvcmUgPSBuZXcgR3JhcGhWYWx1ZVN0b3JlKHRoaXMudmFsdWVTdG9yZUFkYXB0ZXIpO1xuICAgICAgICByZXR1cm4gbmV3IEdyYXBoUGlubmluZ1NlcnZpY2Uoc3RvcmUsIG5ldyBHcmFwaFBpbm5pbmdQb2xpY3koKSwgbmV3IEdyYXBoUGlubmluZ0RlcGVuZGVuY3lSZXNvbHZlcigpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW1pdHMgYSBwaW5uaW5nLXJlbGF0ZWQgZXZlbnQgdG8gYWxsIG9ic2VydmVycy5cbiAgICAgKi9cbiAgICBhc3luYyBlbWl0UGlubmluZ0V2ZW50KG5vZGVJZCwgdHlwZSkge1xuICAgICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IEdyYXBoRXhlY3V0aW9uRXZlbnRGYWN0b3J5KCk7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gZmFjdG9yeS5jcmVhdGUoe1xuICAgICAgICAgICAgaWQ6IFwiXCIsXG4gICAgICAgICAgICBzZXF1ZW5jZTogMCxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHJ1bklkOiBcInBpbm5pbmdcIixcbiAgICAgICAgICAgIHdvcmtmbG93SWQ6IFwiXCIsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcGF0aDogW10sXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCB0aGlzLmVtaXR0ZXIudXBkYXRlT2JzZXJ2ZXJzKGV2ZW50KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBsYXllciBvZiBub2RlcyB3aXRoIHRoZSBjb25maWd1cmVkIGNvbmN1cnJlbmN5LlxuICAgICAqL1xuICAgIGFzeW5jIGV4ZWN1dGVMYXllcihmcmFtZSwgcGxhbiwgbm9kZXMsIG9wdHMsIGVtaXRGbikge1xuICAgICAgICBjb25zdCBjb25jdXJyZW5jeSA9IE1hdGgubWF4KDEsIG9wdHMuY29uY3VycmVuY3kgPz8gR1JBUEhfREVGQVVMVF9DT05DVVJSRU5DWSk7XG4gICAgICAgIGNvbnN0IHF1ZXVlID0gWy4uLm5vZGVzXTtcbiAgICAgICAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJhdGNoID0gcXVldWUuc3BsaWNlKDAsIGNvbmN1cnJlbmN5KTtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGJhdGNoLm1hcCgobm9kZSkgPT4gdGhpcy5leGVjdXRlTm9kZShmcmFtZSwgcGxhbiwgbm9kZSwgb3B0cywgZW1pdEZuKSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGEgc2luZ2xlIG5vZGUuXG4gICAgICovXG4gICAgYXN5bmMgZXhlY3V0ZU5vZGUoZnJhbWUsIHBsYW4sIHBsYW5Ob2RlLCBvcHRzLCBlbWl0Rm4pIHtcbiAgICAgICAgY29uc3Qgc3RhcnRlZEF0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3Qgbm9kZVBhdGggPSBbLi4uKG9wdHMucGF0aCA/PyBbXSksIHBsYW5Ob2RlLmlkXTtcbiAgICAgICAgYXdhaXQgdGhpcy5lbWl0RXZlbnQoZnJhbWUsIHtcbiAgICAgICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfU1RBUlRFRCxcbiAgICAgICAgICAgIHJ1bklkOiBmcmFtZS5ydW5JZCxcbiAgICAgICAgICAgIHdvcmtmbG93SWQ6IHBsYW4ud29ya2Zsb3dJZCxcbiAgICAgICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgICAgICBwYXRoOiBub2RlUGF0aCxcbiAgICAgICAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuUlVOTklORyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMucmVzb2x2ZU5vZGVJbnB1dHMoZnJhbWUsIHBsYW4sIHBsYW5Ob2RlKTtcbiAgICAgICAgLy8gQ2FjaGUtaGl0OiBjaGVjayBmb3IgYSBwaW5uZWQgdmFsdWUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgbm9kZVxuICAgICAgICBpZiAob3B0cy51c2VQaW5uZWRWYWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMudHJ5UGlubmVkVmFsdWUoZnJhbWUsIHBsYW4sIHBsYW5Ob2RlLCBpbnB1dHMpO1xuICAgICAgICAgICAgaWYgKGNhY2hlZCkge1xuICAgICAgICAgICAgICAgIGZyYW1lLnZhbHVlU3RvcmUuc2V0Tm9kZU91dHB1dHMocGxhbk5vZGUuaWQsIGNhY2hlZC5vdXRwdXRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlT3V0Z29pbmdFZGdlcyhmcmFtZSwgcGxhbiwgcGxhbk5vZGUsIGNhY2hlZC5vdXRwdXRzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaW5pc2hlZEF0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuQ0FDSEVELFxuICAgICAgICAgICAgICAgICAgICBpbnB1dHMsXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dHM6IGNhY2hlZC5vdXRwdXRzLFxuICAgICAgICAgICAgICAgICAgICBzdGFydGVkQXQsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkQXQsXG4gICAgICAgICAgICAgICAgICAgIGZyb21DYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcGlubmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBldmVudHM6IFtdLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZnJhbWUucmVjb3JkTm9kZVJlc3VsdChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZW1pdEV2ZW50KGZyYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfQ0FDSEVfSElULFxuICAgICAgICAgICAgICAgICAgICBydW5JZDogZnJhbWUucnVuSWQsXG4gICAgICAgICAgICAgICAgICAgIHdvcmtmbG93SWQ6IHBsYW4ud29ya2Zsb3dJZCxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBwbGFuTm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuQ0FDSEVELFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB7IG91dHB1dHM6IGNhY2hlZC5vdXRwdXRzIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0RXZlbnQoZnJhbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuTk9ERV9DT01QTEVURUQsXG4gICAgICAgICAgICAgICAgICAgIHJ1bklkOiBmcmFtZS5ydW5JZCxcbiAgICAgICAgICAgICAgICAgICAgd29ya2Zsb3dJZDogcGxhbi53b3JrZmxvd0lkLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IHBsYW5Ob2RlLmlkLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBub2RlUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5TVUNDRUVERUQsXG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IHsgb3V0cHV0czogY2FjaGVkLm91dHB1dHMsIGZyb21DYWNoZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZXhlY3V0b3IgPSB0aGlzLmNvbmZpZy5yZWdpc3RyeS5yZXNvbHZlKHBsYW5Ob2RlLmtpbmQpO1xuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBHcmFwaEV4ZWN1dGlvbkNvbnRleHQoZnJhbWUucnVuSWQsIG9wdHMucGFyZW50UnVuSWQsIHBsYW4ud29ya2Zsb3csIHBsYW5Ob2RlLmRlZmluaXRpb24sIG5vZGVQYXRoLCBlbWl0Rm4sIG9wdHMubWV0YWRhdGEpO1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0cyA9IGF3YWl0IGV4ZWN1dG9yLmV4ZWN1dGUoaW5wdXRzLCBjb250ZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkT3V0cHV0cyA9IG91dHB1dHMgPz8ge307XG4gICAgICAgICAgICBmcmFtZS52YWx1ZVN0b3JlLnNldE5vZGVPdXRwdXRzKHBsYW5Ob2RlLmlkLCByZXNvbHZlZE91dHB1dHMpO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZU91dGdvaW5nRWRnZXMoZnJhbWUsIHBsYW4sIHBsYW5Ob2RlLCByZXNvbHZlZE91dHB1dHMpO1xuICAgICAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICAgICAgbm9kZUlkOiBwbGFuTm9kZS5pZCxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLlNVQ0NFRURFRCxcbiAgICAgICAgICAgICAgICBpbnB1dHMsXG4gICAgICAgICAgICAgICAgb3V0cHV0czogcmVzb2x2ZWRPdXRwdXRzLFxuICAgICAgICAgICAgICAgIHN0YXJ0ZWRBdCxcbiAgICAgICAgICAgICAgICBmaW5pc2hlZEF0LFxuICAgICAgICAgICAgICAgIGV2ZW50czogW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZnJhbWUucmVjb3JkTm9kZVJlc3VsdChyZXN1bHQpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0RXZlbnQoZnJhbWUsIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX0NPTVBMRVRFRCxcbiAgICAgICAgICAgICAgICBydW5JZDogZnJhbWUucnVuSWQsXG4gICAgICAgICAgICAgICAgd29ya2Zsb3dJZDogcGxhbi53b3JrZmxvd0lkLFxuICAgICAgICAgICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgICAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5TVUNDRUVERUQsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDogeyBvdXRwdXRzOiByZXNvbHZlZE91dHB1dHMgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBjb25zdCBlcnJvclBheWxvYWQgPSB0aGlzLnRvRXJyb3JQYXlsb2FkKGVycm9yKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICAgICAgICBub2RlSWQ6IHBsYW5Ob2RlLmlkLFxuICAgICAgICAgICAgICAgIHN0YXR1czogR3JhcGhFeGVjdXRpb25TdGF0dXMuRkFJTEVELFxuICAgICAgICAgICAgICAgIGlucHV0cyxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JQYXlsb2FkLFxuICAgICAgICAgICAgICAgIHN0YXJ0ZWRBdCxcbiAgICAgICAgICAgICAgICBmaW5pc2hlZEF0LFxuICAgICAgICAgICAgICAgIGV2ZW50czogW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZnJhbWUucmVjb3JkTm9kZVJlc3VsdChyZXN1bHQpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0RXZlbnQoZnJhbWUsIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX0ZBSUxFRCxcbiAgICAgICAgICAgICAgICBydW5JZDogZnJhbWUucnVuSWQsXG4gICAgICAgICAgICAgICAgd29ya2Zsb3dJZDogcGxhbi53b3JrZmxvd0lkLFxuICAgICAgICAgICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgICAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBHcmFwaEV4ZWN1dGlvblN0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yUGF5bG9hZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKG9wdHMuZmFpbEZhc3QgPz8gdHJ1ZSlcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlcyBhIG5vZGUncyBpbnB1dCB2YWx1ZXMgZnJvbSBpbmNvbWluZyBlZGdlcy5cbiAgICAgKi9cbiAgICByZXNvbHZlTm9kZUlucHV0cyhmcmFtZSwgcGxhbiwgcGxhbk5vZGUpIHtcbiAgICAgICAgY29uc3QgaW5wdXRzID0ge307XG4gICAgICAgIGNvbnN0IGluY29taW5nID0gcGxhbi5pbmNvbWluZ0J5Tm9kZS5nZXQocGxhbk5vZGUuaWQpID8/IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGVkZ2Ugb2YgaW5jb21pbmcpIHtcbiAgICAgICAgICAgIGlucHV0c1tlZGdlLnRhcmdldFBvcnRdID0gZnJhbWUudmFsdWVTdG9yZS5nZXRQb3J0KGVkZ2Uuc291cmNlTm9kZUlkLCBlZGdlLnNvdXJjZVBvcnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnB1dHM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEF0dGVtcHRzIHRvIHJlYWQgYSBwaW5uZWQgdmFsdWUgZm9yIHRoZSBub2RlLiBSZXR1cm5zIHRoZSBjYWNoZWQgb3V0cHV0c1xuICAgICAqIHdoZW4gYSB2YWxpZCBwaW5uZWQgdmFsdWUgZXhpc3RzLCBvciBgdW5kZWZpbmVkYCB0byBwcm9jZWVkIHdpdGggbm9ybWFsXG4gICAgICogZXhlY3V0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIHRyeVBpbm5lZFZhbHVlKGZyYW1lLCBwbGFuLCBwbGFuTm9kZSwgaW5wdXRzKSB7XG4gICAgICAgIGNvbnN0IHBvbGljeSA9IG5ldyBHcmFwaFBpbm5pbmdQb2xpY3koKTtcbiAgICAgICAgaWYgKCFwb2xpY3kuc2hvdWxkVXNlUGlubmVkVmFsdWUocGxhbk5vZGUpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuY3JlYXRlUGlubmluZ1NlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgZGVwRmluZ2VycHJpbnRzID0gdGhpcy5jb21wdXRlRGVwZW5kZW5jeUZpbmdlcnByaW50cyhmcmFtZSwgcGxhbiwgcGxhbk5vZGUuaWQpO1xuICAgICAgICByZXR1cm4gc2VydmljZS5yZWFkUGlubmVkVmFsdWUocGxhbi53b3JrZmxvdywgcGxhbk5vZGUsIGlucHV0cywgZGVwRmluZ2VycHJpbnRzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgY29tcHV0ZXMgZmluZ2VycHJpbnRzIGZvciBhbGwgdXBzdHJlYW0gZGVwZW5kZW5jaWVzIG9mIGEgbm9kZVxuICAgICAqIHVzaW5nIHRoZSByZXN1bHRzIGFscmVhZHkgYWNjdW11bGF0ZWQgaW4gdGhlIGZyYW1lLlxuICAgICAqL1xuICAgIGNvbXB1dGVEZXBlbmRlbmN5RmluZ2VycHJpbnRzKGZyYW1lLCBwbGFuLCBub2RlSWQpIHtcbiAgICAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuY3JlYXRlUGlubmluZ1NlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgZGVwUmVzb2x2ZXIgPSBuZXcgR3JhcGhQaW5uaW5nRGVwZW5kZW5jeVJlc29sdmVyKCk7XG4gICAgICAgIGNvbnN0IGRlcHMgPSBkZXBSZXNvbHZlci5nZXREZXBlbmRlbmNpZXMocGxhbiwgbm9kZUlkKTtcbiAgICAgICAgY29uc3QgZmluZ2VycHJpbnRzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBwbGFuLm5vZGVzLmZpbmQoKG4pID0+IG4uaWQgPT09IGRlcCk7XG4gICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlcFJlc3VsdCA9IGZyYW1lLm5vZGVSZXN1bHRzLmdldChkZXApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0cyA9IGRlcFJlc3VsdD8uaW5wdXRzID8/IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZERlcHMgPSB0aGlzLmNvbXB1dGVEZXBlbmRlbmN5RmluZ2VycHJpbnRzKGZyYW1lLCBwbGFuLCBkZXApO1xuICAgICAgICAgICAgICAgIGZpbmdlcnByaW50c1tkZXBdID0gc2VydmljZS5jb21wdXRlRmluZ2VycHJpbnQocGxhbi53b3JrZmxvdywgbm9kZSwgaW5wdXRzLCBuZXN0ZWREZXBzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmluZ2VycHJpbnRzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSb3V0ZXMgYSBub2RlJ3Mgb3V0cHV0cyB0byBkb3duc3RyZWFtIGlucHV0cyBhbmQgd29ya2Zsb3cgb3V0cHV0cy5cbiAgICAgKi9cbiAgICByb3V0ZU91dGdvaW5nRWRnZXMoZnJhbWUsIHBsYW4sIHBsYW5Ob2RlLCBvdXRwdXRzKSB7XG4gICAgICAgIGNvbnN0IG91dGdvaW5nID0gcGxhbi5vdXRnb2luZ0J5Tm9kZS5nZXQocGxhbk5vZGUuaWQpID8/IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGVkZ2Ugb2Ygb3V0Z29pbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb3V0cHV0c1tlZGdlLnNvdXJjZVBvcnRdO1xuICAgICAgICAgICAgaWYgKGVkZ2UudGFyZ2V0Tm9kZUlkID09PSBHUkFQSF9XT1JLRkxPV19CT1VOREFSWSkge1xuICAgICAgICAgICAgICAgIGZyYW1lLnZhbHVlU3RvcmUuc2V0V29ya2Zsb3dPdXRwdXQoZWRnZS50YXJnZXRQb3J0LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVtaXRFdmVudChmcmFtZSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLkVER0VfVkFMVUVfUk9VVEVELFxuICAgICAgICAgICAgICAgIHJ1bklkOiBmcmFtZS5ydW5JZCxcbiAgICAgICAgICAgICAgICB3b3JrZmxvd0lkOiBwbGFuLndvcmtmbG93SWQsXG4gICAgICAgICAgICAgICAgZWRnZUlkOiBlZGdlLmlkLFxuICAgICAgICAgICAgICAgIG5vZGVJZDogcGxhbk5vZGUuaWQsXG4gICAgICAgICAgICAgICAgcGF0aDogW10sXG4gICAgICAgICAgICAgICAgcGF5bG9hZDogeyBlZGdlLCB2YWx1ZSB9LFxuICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIG9ic2VydmVyIGZhaWx1cmVzIG11c3Qgbm90IGNyYXNoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBldmVudCwgcmVjb3JkcyBpdCBpbiB0aGUgZnJhbWUsIGFuZCBkaXNwYXRjaGVzIHRvIG9ic2VydmVycy5cbiAgICAgKi9cbiAgICBhc3luYyBlbWl0RXZlbnQoZnJhbWUsIHBhcnRpYWwpIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBmcmFtZS5ldmVudEZhY3RvcnkuY3JlYXRlKHtcbiAgICAgICAgICAgIGlkOiBcIlwiLFxuICAgICAgICAgICAgc2VxdWVuY2U6IDAsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAuLi5wYXJ0aWFsLFxuICAgICAgICB9KTtcbiAgICAgICAgZnJhbWUuYXBwZW5kRXZlbnQoZXZlbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLmVtaXR0ZXIudXBkYXRlT2JzZXJ2ZXJzKGV2ZW50KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWVyZ2VzIGRlZmF1bHQgb3B0aW9ucyB3aXRoIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIG1lcmdlT3B0aW9ucyhvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25jdXJyZW5jeTogR1JBUEhfREVGQVVMVF9DT05DVVJSRU5DWSxcbiAgICAgICAgICAgIGZhaWxGYXN0OiB0cnVlLFxuICAgICAgICAgICAgdmFsaWRhdGVJbnB1dHM6IHRydWUsXG4gICAgICAgICAgICB2YWxpZGF0ZU91dHB1dHM6IHRydWUsXG4gICAgICAgICAgICB1c2VQaW5uZWRWYWx1ZXM6IHRydWUsXG4gICAgICAgICAgICB3cml0ZVRocm91Z2hDYWNoZTogZmFsc2UsXG4gICAgICAgICAgICBwYXRoOiBbXSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgcnVuIGlkLlxuICAgICAqL1xuICAgIGdlbmVyYXRlUnVuSWQoKSB7XG4gICAgICAgIHJldHVybiAoZ2xvYmFsVGhpcy5jcnlwdG8/LnJhbmRvbVVVSUQ/LigpID8/XG4gICAgICAgICAgICBgZ3JhcGgtcnVuLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYW4gZXJyb3IgaW50byBhIHNlcmlhbGl6ZWQgcGF5bG9hZC5cbiAgICAgKi9cbiAgICB0b0Vycm9yUGF5bG9hZChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgICAgICAgICAgIGNvZGU6IGVycm9yLmdyYXBoQ29kZSA/P1xuICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGVycm9yLmNvZGUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gU3RyaW5nKGVycm9yLmNvZGUpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGVycm9yLmNvZGUpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBuYW1lOiBcIlVua25vd25FcnJvclwiLCBtZXNzYWdlOiBTdHJpbmcoZXJyb3IpIH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUjNKaGNHaEZlR1ZqZFhScGIyNUZibWRwYm1VdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZaM0poY0dndlpYaGxZM1YwYVc5dUwwZHlZWEJvUlhobFkzVjBhVzl1Ulc1bmFXNWxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVZGQkxFOUJRVThzUlVGRFRDeDVRa0ZCZVVJc1JVRkRla0lzZFVKQlFYVkNMRVZCUTNaQ0xIVkNRVUYxUWl4RlFVTjJRaXh2UWtGQmIwSXNSMEZEY2tJc01FSkJRWEZDTzBGQllYUkNMRTlCUVU4c1JVRkJSU3d3UWtGQk1FSXNSVUZCUlN4clJFRkJOa003UVVGRGJFWXNUMEZCVHl4RlFVRkZMREJDUVVFd1FpeEZRVUZGTEd0RVFVRTJRenRCUVVWc1JpeFBRVUZQTEVWQlFVVXNjVUpCUVhGQ0xFVkJRVVVzSzBOQlFUQkRPMEZCU1RGRkxFOUJRVThzUlVGQlJTdzRRa0ZCT0VJc1JVRkJSU3h4UkVGQlowUTdRVUZEZWtZc1QwRkJUeXhGUVVGRkxHVkJRV1VzUlVGQlJTeHpRMEZCYVVNN1FVRkZNMFFzVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhGUVVGRkxEUkRRVUYxUXp0QlFVTnlSU3hQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc01rTkJRWE5ETzBGQlEyNUZMRTlCUVU4c1JVRkJSU3c0UWtGQk9FSXNSVUZCUlN4MVJFRkJhMFE3UVVGRE0wWXNUMEZCVHl4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEcxRFFVRm5RenRCUVVOb1JTeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzYVVOQlFUaENPMEZCUXpWRUxFOUJRVThzUlVGQlJTeDVRa0ZCZVVJc1JVRkJSU3hyUTBGQkswSTdRVUUwUW01Rk96czdPenM3T3pzN08wZEJWVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNiMEpCUVc5Q08wbEJVeTlDTEZsQlFWa3NUVUZCYTBNN1VVRkROVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1dVRkJXU3hKUVVGSkxFbEJRVWtzTUVKQlFUQkNMRVZCUVVVc1EwRkJRenRSUVVOMlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJReXhQUVVGUExFbEJRVWtzU1VGQlNTeHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8xRkJRemRFTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUk3V1VGRGNFSXNUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeEpRVUZKTEVsQlFVa3NPRUpCUVRoQ0xFVkJRVVVzUTBGQlF6dFJRVU51UlN4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExFMUJRVTBzUTBGQlF5eGpRVUZqTEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTJ4RUxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1IwRkJSeXhOUVVGTkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNN1VVRkRlRVFzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRja0lzVFVGQlRTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMnBETEVOQlFVTTdTVUZKUkN4UFFVRlBMRU5CUVVNc1VVRkJaME03VVVGRGRFTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVTjRReXhEUVVGRE8wbEJSVVFzVTBGQlV5eERRVUZETEZGQlFXZERPMUZCUTNoRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wbEJRMjVETEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFdEJRVEJDTzFGQlF6bERMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkROVU1zUTBGQlF6dEpRVVZFT3p0UFFVVkhPMGxCUTBnc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRFdDeFJRVUZwUXl4RlFVTnFReXhUUVVFclFpeEZRVUZGTEVWQlEycERMRlZCUVdsRExFVkJRVVU3VVVGRmJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTjRReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4SlFVRkpMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRVVVzUTBGQlF6dFJRVU5xUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTTNRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eEpRVUZKTERCQ1FVRXdRaXhGUVVGRkxFTkJRVU03VVVGRGRFUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03VVVGREwwUXNWVUZCVlN4RFFVRkRMR3RDUVVGclFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUlhSRExFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEzcERMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzYlVKQlFXMUNMRU5CUTI1RExFdEJRVXNzUlVGRFRDeEpRVUZKTEVWQlEwb3NWVUZCVlN4RlFVTldMRmxCUVZrc1EwRkRZaXhEUVVGRE8xRkJSVVlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RlFVRkZMRTlCUVhGRExFVkJRVVVzUlVGQlJUdFpRVU0zUkN4TlFVRk5MRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eEZRVUZGTzJkQ1FVTXhRaXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVa3NTVUZCU1N4MVFrRkJkVUlzUTBGQlF5eFhRVUZYTzJkQ1FVTjZSQ3hMUVVGTE8yZENRVU5NTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1YwRkJWenRuUWtGRE4wSXNWVUZCVlN4RlFVRkZMRkZCUVZFc1EwRkJReXhKUVVGSk8yZENRVU42UWl4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFMUJRVTA3WjBKQlEzUkNMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zU1VGQlNTeEpRVUZKTEVsQlFVazdaMEpCUXpGQ0xFZEJRVWNzVDBGQlR6dGhRVU5ZTEVOQlFVTXNRMEZCUXp0UlFVTk1MRU5CUVVNc1EwRkJRenRSUVVWR0xFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVN1dVRkRNVUlzU1VGQlNTeEZRVUZGTEhWQ1FVRjFRaXhEUVVGRExHZENRVUZuUWp0WlFVTTVReXhMUVVGTE8xbEJRMHdzVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlhPMWxCUXpkQ0xGVkJRVlVzUlVGQlJTeFJRVUZSTEVOQlFVTXNTVUZCU1R0WlFVTjZRaXhKUVVGSk8xbEJRMG9zVFVGQlRTeEZRVUZGTEc5Q1FVRnZRaXhEUVVGRExFOUJRVTg3V1VGRGNFTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRk8xTkJRM0JDTEVOQlFVTXNRMEZCUXp0UlFVVklMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVTdXVUZETVVJc1NVRkJTU3hGUVVGRkxIVkNRVUYxUWl4RFFVRkRMR2RDUVVGblFqdFpRVU01UXl4TFFVRkxPMWxCUTB3c1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZYTzFsQlF6ZENMRlZCUVZVc1JVRkJSU3hSUVVGUkxFTkJRVU1zU1VGQlNUdFpRVU42UWl4SlFVRkpPMWxCUTBvc1RVRkJUU3hGUVVGRkxHOUNRVUZ2UWl4RFFVRkRMRkZCUVZFN1dVRkRja01zVDBGQlR5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJUdFRRVU5zUlN4RFFVRkRMRU5CUVVNN1VVRkZTQ3hKUVVGSkxFTkJRVU03V1VGRFNDeExRVUZMTEUxQlFVMHNTMEZCU3l4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dG5Ra0ZEYUVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRiRVVzUTBGQlF6dFpRVVZFTEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVWbUxFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVN1owSkJRekZDTEVsQlFVa3NSVUZCUlN4MVFrRkJkVUlzUTBGQlF5eHJRa0ZCYTBJN1owSkJRMmhFTEV0QlFVczdaMEpCUTB3c1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZYTzJkQ1FVTTNRaXhWUVVGVkxFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVazdaMEpCUTNwQ0xFbEJRVWs3WjBKQlEwb3NUVUZCVFN4RlFVRkZMRzlDUVVGdlFpeERRVUZETEZOQlFWTTdaMEpCUTNSRExFOUJRVThzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4VlFVRlZMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNSVUZCUlR0aFFVTnlSQ3hEUVVGRExFTkJRVU03V1VGRlNDeFBRVUZQTEhsQ1FVRjVRaXhEUVVNNVFpeExRVUZMTEVWQlEwd3NVVUZCVVN4RlFVTlNMRTFCUVUwc1JVRkRUaXh2UWtGQmIwSXNRMEZCUXl4VFFVRlRMRVZCUXpsQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlEyUXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVVZvUkN4TlFVRk5MRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eEZRVUZGTzJkQ1FVTXhRaXhKUVVGSkxFVkJRVVVzZFVKQlFYVkNMRU5CUVVNc1pVRkJaVHRuUWtGRE4wTXNTMEZCU3p0blFrRkRUQ3hYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETEZkQlFWYzdaMEpCUXpkQ0xGVkJRVlVzUlVGQlJTeFJRVUZSTEVOQlFVTXNTVUZCU1R0blFrRkRla0lzU1VGQlNUdG5Ra0ZEU2l4TlFVRk5MRVZCUVVVc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFR0blFrRkRia01zUzBGQlN5eEZRVUZGTEZsQlFWazdZVUZEY0VJc1EwRkJReXhEUVVGRE8xbEJSVWdzVDBGQlR5eDVRa0ZCZVVJc1EwRkRPVUlzUzBGQlN5eEZRVU5NTEZGQlFWRXNSVUZEVWl4TlFVRk5MRVZCUTA0c2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RlFVTXpRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVU5rTEVOQlFVTTdVVUZEU2l4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMGdzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRTBRanRSUVVONFF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVXNRMEZCUXp0UlFVTTFReXhOUVVGTkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRMMElzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4MVFrRkJkVUlzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0SlFVTnVSaXhEUVVGRE8wbEJSVVE3TzA5QlJVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVGhDTzFGQlF6VkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSU3hEUVVGRE8xRkJRelZETEUxQlFVMHNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxIVkNRVUYxUWl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wbEJRM0pHTEVOQlFVTTdTVUZGUkRzN08wOUJSMGM3U1VGRFN5eHZRa0ZCYjBJN1VVRkRNVUlzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRNVVFzVDBGQlR5eEpRVUZKTEcxQ1FVRnRRaXhEUVVNMVFpeExRVUZMTEVWQlEwd3NTVUZCU1N4clFrRkJhMElzUlVGQlJTeEZRVU40UWl4SlFVRkpMRGhDUVVFNFFpeEZRVUZGTEVOQlEzSkRMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVE3TzA5QlJVYzdTVUZEU3l4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVOQlF6VkNMRTFCUVdNc1JVRkRaQ3hKUVVFMlFqdFJRVVUzUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxEQkNRVUV3UWl4RlFVRkZMRU5CUVVNN1VVRkRha1FzVFVGQlRTeExRVUZMTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJRenRaUVVNelFpeEZRVUZGTEVWQlFVVXNSVUZCUlR0WlFVTk9MRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMWdzVTBGQlV5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTNKQ0xFdEJRVXNzUlVGQlJTeFRRVUZUTzFsQlEyaENMRlZCUVZVc1JVRkJSU3hGUVVGRk8xbEJRMlFzU1VGQlNUdFpRVU5LTEUxQlFVMDdXVUZEVGl4SlFVRkpMRVZCUVVVc1JVRkJSVHRUUVVOeFJDeERRVUZETEVOQlFVTTdVVUZEYWtVc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEdWQlFXVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVNMVF5eERRVUZETzBsQlJVUTdPMDlCUlVjN1NVRkRTeXhMUVVGTExFTkJRVU1zV1VGQldTeERRVU40UWl4TFFVRXdRaXhGUVVNeFFpeEpRVUYzUWl4RlFVTjRRaXhMUVVFclFpeEZRVU12UWl4SlFVRXlRaXhGUVVNelFpeE5RVUU0UkR0UlFVVTVSQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVTXhRaXhEUVVGRExFVkJRMFFzU1VGQlNTeERRVUZETEZkQlFWY3NTVUZCU1N4NVFrRkJlVUlzUTBGRE9VTXNRMEZCUXp0UlFVTkdMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVVjZRaXhQUVVGUExFdEJRVXNzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRlRUlzVFVGQlRTeExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETTBNc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU5tTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRM1pGTEVOQlFVTTdVVUZEU2l4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRU96dFBRVVZITzBsQlEwc3NTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkRka0lzUzBGQk1FSXNSVUZETVVJc1NVRkJkMElzUlVGRGVFSXNVVUZCWjBNc1JVRkRhRU1zU1VGQk1rSXNSVUZETTBJc1RVRkJPRVE3VVVGRk9VUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU0zUWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVVnlSQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RlFVRkZPMWxCUXpGQ0xFbEJRVWtzUlVGQlJTeDFRa0ZCZFVJc1EwRkJReXhaUVVGWk8xbEJRekZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1MwRkJTenRaUVVOc1FpeFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRlZCUVZVN1dVRkRNMElzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RlFVRkZPMWxCUTI1Q0xFbEJRVWtzUlVGQlJTeFJRVUZSTzFsQlEyUXNUVUZCVFN4RlFVRkZMRzlDUVVGdlFpeERRVUZETEU5QlFVODdVMEZEY2tNc1EwRkJReXhEUVVGRE8xRkJSVWdzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRk4wUXNaMFZCUVdkRk8xRkJRMmhGTEVsQlFVa3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xbEJRM3BDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU40UlN4SlFVRkpMRTFCUVUwc1JVRkJSU3hEUVVGRE8yZENRVU5ZTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1kwRkJZeXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yZENRVU0zUkN4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmRDUVVVdlJDeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8yZENRVU01UWl4TlFVRk5MRTFCUVUwc1IwRkJOa0k3YjBKQlEzWkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU1zUlVGQlJUdHZRa0ZEYmtJc1RVRkJUU3hGUVVGRkxHOUNRVUZ2UWl4RFFVRkRMRTFCUVUwN2IwSkJRMjVETEUxQlFVMDdiMEpCUTA0c1QwRkJUeXhGUVVGRkxFMUJRVTBzUTBGQlF5eFBRVUZQTzI5Q1FVTjJRaXhUUVVGVE8yOUNRVU5VTEZWQlFWVTdiMEpCUTFZc1UwRkJVeXhGUVVGRkxFbEJRVWs3YjBKQlEyWXNUVUZCVFN4RlFVRkZMRWxCUVVrN2IwSkJRMW9zVFVGQlRTeEZRVUZGTEVWQlFVVTdhVUpCUTFnc1EwRkJRenRuUWtGRFJpeExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdaMEpCUlM5Q0xFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVN2IwSkJRekZDTEVsQlFVa3NSVUZCUlN4MVFrRkJkVUlzUTBGQlF5eGpRVUZqTzI5Q1FVTTFReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEV0QlFVczdiMEpCUTJ4Q0xGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlR0dlFrRkRNMElzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RlFVRkZPMjlDUVVOdVFpeEpRVUZKTEVWQlFVVXNVVUZCVVR0dlFrRkRaQ3hOUVVGTkxFVkJRVVVzYjBKQlFXOUNMRU5CUVVNc1RVRkJUVHR2UWtGRGJrTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVWQlFVVTdhVUpCUTNKRExFTkJRVU1zUTBGQlF6dG5Ra0ZGU0N4TlFVRk5MRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eEZRVUZGTzI5Q1FVTXhRaXhKUVVGSkxFVkJRVVVzZFVKQlFYVkNMRU5CUVVNc1kwRkJZenR2UWtGRE5VTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGTE8yOUNRVU5zUWl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlU3YjBKQlF6TkNMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU1zUlVGQlJUdHZRa0ZEYmtJc1NVRkJTU3hGUVVGRkxGRkJRVkU3YjBKQlEyUXNUVUZCVFN4RlFVRkZMRzlDUVVGdlFpeERRVUZETEZOQlFWTTdiMEpCUTNSRExFOUJRVThzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TlFVRk5MRU5CUVVNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVWQlFVVTdhVUpCUTNSRUxFTkJRVU1zUTBGQlF6dG5Ra0ZEU0N4UFFVRlBPMWxCUTFRc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF6ZEVMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzY1VKQlFYRkNMRU5CUTNaRExFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlExZ3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkRhRUlzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZEWWl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hGUVVOdVFpeFJRVUZSTEVWQlExSXNUVUZCVFN4RlFVTk9MRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRMlFzUTBGQlF6dFpRVVZHTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRlRVFzVFVGQlRTeGxRVUZsTEVkQlFVY3NUMEZCVHl4SlFVRkpMRVZCUVVVc1EwRkJRenRaUVVWMFF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMR05CUVdNc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPMWxCUXpsRUxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFVkJRVVVzU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCUlN4bFFVRmxMRU5CUVVNc1EwRkJRenRaUVVWb1JTeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8xbEJRemxDTEUxQlFVMHNUVUZCVFN4SFFVRTJRanRuUWtGRGRrTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVGRk8yZENRVU51UWl4TlFVRk5MRVZCUVVVc2IwSkJRVzlDTEVOQlFVTXNVMEZCVXp0blFrRkRkRU1zVFVGQlRUdG5Ra0ZEVGl4UFFVRlBMRVZCUVVVc1pVRkJaVHRuUWtGRGVFSXNVMEZCVXp0blFrRkRWQ3hWUVVGVk8yZENRVU5XTEUxQlFVMHNSVUZCUlN4RlFVRkZPMkZCUTFnc1EwRkJRenRaUVVOR0xFdEJRVXNzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVVV2UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eEZRVUZGTzJkQ1FVTXhRaXhKUVVGSkxFVkJRVVVzZFVKQlFYVkNMRU5CUVVNc1kwRkJZenRuUWtGRE5VTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGTE8yZENRVU5zUWl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlU3WjBKQlF6TkNMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU1zUlVGQlJUdG5Ra0ZEYmtJc1NVRkJTU3hGUVVGRkxGRkJRVkU3WjBKQlEyUXNUVUZCVFN4RlFVRkZMRzlDUVVGdlFpeERRVUZETEZOQlFWTTdaMEpCUTNSRExFOUJRVThzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4bFFVRmxMRVZCUVVVN1lVRkRkRU1zUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8xbEJRemxDTEUxQlFVMHNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdXVUZEYUVRc1RVRkJUU3hOUVVGTkxFZEJRVFpDTzJkQ1FVTjJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeERRVUZETEVWQlFVVTdaMEpCUTI1Q0xFMUJRVTBzUlVGQlJTeHZRa0ZCYjBJc1EwRkJReXhOUVVGTk8yZENRVU51UXl4TlFVRk5PMmRDUVVOT0xFdEJRVXNzUlVGQlJTeFpRVUZaTzJkQ1FVTnVRaXhUUVVGVE8yZENRVU5VTEZWQlFWVTdaMEpCUTFZc1RVRkJUU3hGUVVGRkxFVkJRVVU3WVVGRFdDeERRVUZETzFsQlEwWXNTMEZCU3l4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUlM5Q0xFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVN1owSkJRekZDTEVsQlFVa3NSVUZCUlN4MVFrRkJkVUlzUTBGQlF5eFhRVUZYTzJkQ1FVTjZReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEV0QlFVczdaMEpCUTJ4Q0xGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlR0blFrRkRNMElzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RlFVRkZPMmRDUVVOdVFpeEpRVUZKTEVWQlFVVXNVVUZCVVR0blFrRkRaQ3hOUVVGTkxFVkJRVVVzYjBKQlFXOUNMRU5CUVVNc1RVRkJUVHRuUWtGRGJrTXNTMEZCU3l4RlFVRkZMRmxCUVZrN1lVRkRjRUlzUTBGQlF5eERRVUZETzFsQlJVZ3NTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFbEJRVWs3WjBKQlFVVXNUVUZCVFN4TFFVRkxMRU5CUVVNN1VVRkRla01zUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkRzN1QwRkZSenRKUVVOTExHbENRVUZwUWl4RFFVTjJRaXhMUVVFd1FpeEZRVU14UWl4SlFVRjNRaXhGUVVONFFpeFJRVUZuUXp0UlFVVm9ReXhOUVVGTkxFMUJRVTBzUjBGQmVVSXNSVUZCUlN4RFFVRkRPMUZCUTNoRExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkROVVFzUzBGQlN5eE5RVUZOTEVsQlFVa3NTVUZCU1N4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVNMVFpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVTm9SQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVU5xUWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVOb1FpeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwc3NTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkRNVUlzUzBGQk1FSXNSVUZETVVJc1NVRkJkMElzUlVGRGVFSXNVVUZCWjBNc1JVRkRhRU1zVFVGQk5FSTdVVUZGTlVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRM2hETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNVVUZCVVN4RFFVRkRPMWxCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03VVVGRk4wUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNN1VVRkROVU1zVFVGQlRTeGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMRFpDUVVFMlFpeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzSkdMRTlCUVU4c1QwRkJUeXhEUVVGRExHVkJRV1VzUTBGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkRZaXhSUVVGUkxFVkJRMUlzVFVGQlRTeEZRVU5PTEdWQlFXVXNRMEZEYUVJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPMDlCUjBjN1NVRkRTeXcyUWtGQk5rSXNRMEZEYmtNc1MwRkJNRUlzUlVGRE1VSXNTVUZCZDBJc1JVRkRlRUlzVFVGQll6dFJRVVZrTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNSVUZCUlN4RFFVRkRPMUZCUXpWRExFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NPRUpCUVRoQ0xFVkJRVVVzUTBGQlF6dFJRVU42UkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhYUVVGWExFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOMlJDeE5RVUZOTEZsQlFWa3NSMEZCTWtJc1JVRkJSU3hEUVVGRE8xRkJRMmhFTEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1NVRkJTU3hGUVVGRkxFTkJRVU03V1VGRGRrSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRiRVFzU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXp0blFrRkRWQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBNc1RVRkJUU3hOUVVGTkxFZEJRVWNzVTBGQlV5eEZRVUZGTEUxQlFVMHNTVUZCU1N4RlFVRkZMRU5CUVVNN1owSkJRM1pETEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTjRSU3haUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMR3RDUVVGclFpeERRVU0xUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVOaUxFbEJRVWtzUlVGRFNpeE5RVUZOTEVWQlEwNHNWVUZCVlN4RFFVTllMRU5CUVVNN1dVRkRTaXhEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVU5FTEU5QlFVOHNXVUZCV1N4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VGRlJEczdUMEZGUnp0SlFVTkxMR3RDUVVGclFpeERRVU40UWl4TFFVRXdRaXhGUVVNeFFpeEpRVUYzUWl4RlFVTjRRaXhSUVVGblF5eEZRVU5vUXl4UFFVRTJRanRSUVVVM1FpeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRelZFTEV0QlFVc3NUVUZCVFN4SlFVRkpMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRE5VSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFpRVUZaTEV0QlFVc3NkVUpCUVhWQ0xFVkJRVVVzUTBGQlF6dG5Ra0ZEYkVRc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUXpkRUxFTkJRVU03V1VGRFJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSVHRuUWtGRGNFSXNTVUZCU1N4RlFVRkZMSFZDUVVGMVFpeERRVUZETEdsQ1FVRnBRanRuUWtGREwwTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGTE8yZENRVU5zUWl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlU3WjBKQlF6TkNMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUlVGQlJUdG5Ra0ZEWml4TlFVRk5MRVZCUVVVc1VVRkJVU3hEUVVGRExFVkJRVVU3WjBKQlEyNUNMRWxCUVVrc1JVRkJSU3hGUVVGRk8yZENRVU5TTEU5QlFVOHNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVU3WVVGRGVrSXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRVVU3WjBKQlExb3NiVU5CUVcxRE8xbEJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdUMEZGUnp0SlFVTkxMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM0pDTEV0QlFUQkNMRVZCUXpGQ0xFOUJTME03VVVGRlJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUTBGQlF6dFpRVU4wUXl4RlFVRkZMRVZCUVVVc1JVRkJSVHRaUVVOT0xGRkJRVkVzUlVGQlJTeERRVUZETzFsQlExZ3NVMEZCVXl4RlFVRkZMRWxCUVVrc1NVRkJTU3hGUVVGRk8xbEJRM0pDTEVkQlFVY3NUMEZCVHp0VFFVTnRSQ3hEUVVGRExFTkJRVU03VVVGRGFrVXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU42UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXpWRExFTkJRVU03U1VGRlJEczdUMEZGUnp0SlFVTkxMRmxCUVZrc1EwRkRiRUlzVDBGQk9FSTdVVUZGT1VJc1QwRkJUenRaUVVOTUxGZEJRVmNzUlVGQlJTeDVRa0ZCZVVJN1dVRkRkRU1zVVVGQlVTeEZRVUZGTEVsQlFVazdXVUZEWkN4alFVRmpMRVZCUVVVc1NVRkJTVHRaUVVOd1FpeGxRVUZsTEVWQlFVVXNTVUZCU1R0WlFVTnlRaXhsUVVGbExFVkJRVVVzU1VGQlNUdFpRVU55UWl4cFFrRkJhVUlzUlVGQlJTeExRVUZMTzFsQlEzaENMRWxCUVVrc1JVRkJSU3hGUVVGRk8xbEJRMUlzVVVGQlVTeEZRVUZGTEVWQlFVVTdXVUZEV2l4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGak8xbEJRM1JDTEVkQlFVY3NUMEZCVHp0VFFVTllMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVE3TzA5QlJVYzdTVUZEU3l4aFFVRmhPMUZCUTI1Q0xFOUJRVThzUTBGRFRDeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRkZMRlZCUVZVc1JVRkJSU3hGUVVGRk8xbEJRMnBETEdGQlFXRXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUTJwRkxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUTdPMDlCUlVjN1NVRkRTeXhqUVVGakxFTkJRVU1zUzBGQll6dFJRVU51UXl4SlFVRkpMRXRCUVVzc1dVRkJXU3hMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU16UWl4UFFVRlBPMmRDUVVOTUxFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNTVUZCU1R0blFrRkRhRUlzVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBPMmRDUVVOMFFpeExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRXRCUVVzN1owSkJRMnhDTEVsQlFVa3NSVUZEUkN4TFFVRmhMRU5CUVVNc1UwRkJVenR2UWtGRGVFSXNRMEZCUXl4UFFVRlJMRXRCUVdFc1EwRkJReXhKUVVGSkxFdEJRVXNzVVVGQlVUdDNRa0ZEZEVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlJTeExRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRPM2RDUVVNM1FpeERRVUZETEVOQlFVVXNTMEZCWVN4RFFVRkRMRWxCUVVrc1EwRkJRenRoUVVNelFpeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVTkVMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzWTBGQll5eEZRVUZGTEU5QlFVOHNSVUZCUlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dEpRVU14UkN4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMMmR5WVhCb0wyVjRaV04xZEdsdmJpOUhjbUZ3YUVWNFpXTjFkR2x2YmtWdVoybHVaVnh1SUNvZ1FITjFiVzFoY25rZ1VtVm1aWEpsYm1ObElHZHlZWEJvSUdWNFpXTjFkR2x2YmlCbGJtZHBibVV1WEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUlhobFkzVjBaWE1nWjNKaGNHZ2dkMjl5YTJac2IzZHpJR1JsWTJ4aGNtVmtJSGRwZEdnZ1lFQmtaV05oWmkxMGN5OTFhUzFrWldOdmNtRjBiM0p6TDJkeVlYQm9ZQ3dnWlcxcGRITWdaWFpsYm5SeklIUm9jbTkxWjJnZ1JHVmpZV1luY3lCUFluTmxjblpoWW14bElIQnBjR1ZzYVc1bExDQnpkWEJ3YjNKMGN5QndZWEpoYkd4bGJDQnViMlJsSUdWNFpXTjFkR2x2YmlCM2FYUm9hVzRnZEc5d2IyeHZaMmxqWVd3Z2JHRjVaWEp6TENCaGJtUWdjbVYwZFhKdWN5QmhJR052YlhCc1pYUmxJR1Y0WldOMWRHbHZiaUJ5WlhOMWJIUXVYRzRnS2k5Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVDJKelpYSjJZV0pzWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhSNWNHVWdleUJIY21Gd2FGZHZjbXRtYkc5M1JHVm1hVzVwZEdsdmJpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZkV2t0WkdWamIzSmhkRzl5Y3k5bmNtRndhRndpTzF4dVhHNXBiWEJ2Y25RZ2UxeHVJQ0JIVWtGUVNGOUVSVVpCVlV4VVgwTlBUa05WVWxKRlRrTlpMRnh1SUNCSFVrRlFTRjlYVDFKTFJreFBWMTlDVDFWT1JFRlNXU3hjYmlBZ1IzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRGUjVjR1VzWEc0Z0lFZHlZWEJvUlhobFkzVjBhVzl1VTNSaGRIVnpMRnh1ZlNCbWNtOXRJRndpTGk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN1hHNGdJRWR5WVhCb1JYaGxZM1YwYVc5dVJYSnliM0pRWVhsc2IyRmtMRnh1SUNCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MExGeHVJQ0JIY21Gd2FFVjRaV04xZEdsdmJrOXdkR2x2Ym5Nc1hHNGdJRWR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwTEZ4dUlDQkhjbUZ3YUVWNFpXTjFkR2x2YmxaaGJIVmxjeXhjYmlBZ1IzSmhjR2hPYjJSbFJYaGxZM1YwYVc5dVVtVnpkV3gwTEZ4dUlDQkhjbUZ3YUZCcGJrNXZaR1ZQY0hScGIyNXpMRnh1SUNCSGNtRndhRlZ1Y0dsdVRtOWtaVTl3ZEdsdmJuTXNYRzRnSUVkeVlYQm9VblZ1U1dRc1hHNTlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkhjbUZ3YUVWNFpXTjFkR2x2Yms5aWMyVnlkbVZ5SUgwZ1puSnZiU0JjSWk0dUwyVjJaVzUwY3k5SGNtRndhRVY0WldOMWRHbHZiazlpYzJWeWRtVnlYQ0k3WEc1cGJYQnZjblFnZXlCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFJXMXBkSFJsY2lCOUlHWnliMjBnWENJdUxpOWxkbVZ1ZEhNdlIzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRFVnRhWFIwWlhKY0lqdGNibWx0Y0c5eWRDQjdJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJHWVdOMGIzSjVJSDBnWm5KdmJTQmNJaTR1TDJWMlpXNTBjeTlIY21Gd2FFVjRaV04xZEdsdmJrVjJaVzUwUm1GamRHOXllVndpTzF4dWFXMXdiM0owSUhSNWNHVWdleUJIY21Gd2FFNXZaR1ZGZUdWamRYUnZjbEpsWjJsemRISjVJSDBnWm5KdmJTQmNJaTR1TDNKbFoybHpkSEo1TDBkeVlYQm9UbTlrWlVWNFpXTjFkRzl5VW1WbmFYTjBjbmxjSWp0Y2JtbHRjRzl5ZENCN0lFZHlZWEJvUlhobFkzVjBhVzl1VUd4aGJtNWxjaUI5SUdaeWIyMGdYQ0l1TGk5d2JHRnVibWx1Wnk5SGNtRndhRVY0WldOMWRHbHZibEJzWVc1dVpYSmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIc2dSM0poY0doRmVHVmpkWFJwYjI1UWJHRnVJSDBnWm5KdmJTQmNJaTR1TDNCc1lXNXVhVzVuTDBkeVlYQm9SWGhsWTNWMGFXOXVVR3hoYmx3aU8xeHVhVzF3YjNKMElIUjVjR1VnZXlCSGNtRndhRVY0WldOMWRHbHZibEJzWVc1T2IyUmxJSDBnWm5KdmJTQmNJaTR1TDNCc1lXNXVhVzVuTDBkeVlYQm9SWGhsWTNWMGFXOXVVR3hoYms1dlpHVmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIc2dSM0poY0doV1lXeDFaVk4wYjNKbFFXUmhjSFJsY2lCOUlHWnliMjBnWENJdUxpOXpkRzl5WlM5SGNtRndhRlpoYkhWbFUzUnZjbVZCWkdGd2RHVnlYQ0k3WEc1cGJYQnZjblFnZXlCSmJrMWxiVzl5ZVVkeVlYQm9WbUZzZFdWVGRHOXlaVUZrWVhCMFpYSWdmU0JtY205dElGd2lMaTR2YzNSdmNtVXZTVzVOWlcxdmNubEhjbUZ3YUZaaGJIVmxVM1J2Y21WQlpHRndkR1Z5WENJN1hHNXBiWEJ2Y25RZ2V5QkhjbUZ3YUZaaGJIVmxVM1J2Y21VZ2ZTQm1jbTl0SUZ3aUxpNHZjM1J2Y21VdlIzSmhjR2hXWVd4MVpWTjBiM0psWENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVkeVlYQm9RMkZqYUdWa1ZtRnNkV1VnZlNCbWNtOXRJRndpTGk0dmMzUnZjbVV2UjNKaGNHaERZV05vWldSV1lXeDFaVndpTzF4dWFXMXdiM0owSUhzZ1IzSmhjR2hRYVc1dWFXNW5VMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSXVMaTl3YVc1dWFXNW5MMGR5WVhCb1VHbHVibWx1WjFObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lFZHlZWEJvVUdsdWJtbHVaMUJ2YkdsamVTQjlJR1p5YjIwZ1hDSXVMaTl3YVc1dWFXNW5MMGR5WVhCb1VHbHVibWx1WjFCdmJHbGplVndpTzF4dWFXMXdiM0owSUhzZ1IzSmhjR2hRYVc1dWFXNW5SR1Z3Wlc1a1pXNWplVkpsYzI5c2RtVnlJSDBnWm5KdmJTQmNJaTR1TDNCcGJtNXBibWN2UjNKaGNHaFFhVzV1YVc1blJHVndaVzVrWlc1amVWSmxjMjlzZG1WeVhDSTdYRzVwYlhCdmNuUWdleUJIY21Gd2FFVjRaV04xZEdsdmJrTnZiblJsZUhRZ2ZTQm1jbTl0SUZ3aUxpOUhjbUZ3YUVWNFpXTjFkR2x2YmtOdmJuUmxlSFJjSWp0Y2JtbHRjRzl5ZENCN0lFZHlZWEJvUlhobFkzVjBhVzl1Um5KaGJXVWdmU0JtY205dElGd2lMaTlIY21Gd2FFVjRaV04xZEdsdmJrWnlZVzFsWENJN1hHNXBiWEJ2Y25RZ2V5QmlkV2xzWkVkeVlYQm9SWGhsWTNWMGFXOXVVbVZ6ZFd4MElIMGdabkp2YlNCY0lpNHZSM0poY0doRmVHVmpkWFJwYjI1U1pYTjFiSFJjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnUTI5a1pWTmhibVJpYjNoRmRtRnNkV0YwYjNJZ2ZTQm1jbTl0SUZ3aUxpOURiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjbHdpTzF4dVhHNHZLaXBjYmlBcUlFTnZibVpwWjNWeVlYUnBiMjRnWm05eUlIUm9aU0I3UUd4cGJtc2dSM0poY0doRmVHVmpkWFJwYjI1RmJtZHBibVY5TGx4dUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWR5WVhCb1JYaGxZM1YwYVc5dVJXNW5hVzVsUTI5dVptbG5JSHRjYmlBZ2NtVm5hWE4wY25rNklFZHlZWEJvVG05a1pVVjRaV04xZEc5eVVtVm5hWE4wY25rN1hHNGdJSEJzWVc1dVpYSS9PaUJIY21Gd2FFVjRaV04xZEdsdmJsQnNZVzV1WlhJN1hHNGdJSFpoYkhWbFUzUnZjbVZCWkdGd2RHVnlQem9nUjNKaGNHaFdZV3gxWlZOMGIzSmxRV1JoY0hSbGNqdGNiaUFnWlhabGJuUkZiV2wwZEdWeVB6b2dSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRVZ0YVhSMFpYSTdYRzRnSUdSbFptRjFiSFJQY0hScGIyNXpQem9nVUdGeWRHbGhiRHhIY21Gd2FFVjRaV04xZEdsdmJrOXdkR2x2Ym5NK08xeHVJQ0F2S2lwY2JpQWdJQ29nVDNCMGFXOXVZV3dnY0d4MVoyZGhZbXhsSUdOdlpHVWdjMkZ1WkdKdmVDQmxkbUZzZFdGMGIzSWdabTl5SUdOdlpHVXRZbUZ6WldRZ1kyOXVaR2wwYVc5dWMxeHVJQ0FnS2lBb1JFVkRRVVl0TXpJZ3dxY3lNaTQwS1M0Z1YyaGxiaUJoWW5ObGJuUXNJR052WkdVZ1kyOXVaR2wwYVc5dWN5QjBhSEp2ZDF4dUlDQWdLaUJnUjFKQlVFaGZRMDlFUlY5VFFVNUVRazlZWDA1UFZGOURUMDVHU1VkVlVrVkVZQzRnUkc5M2JuTjBjbVZoYlNCd2NtOXFaV04wY3lBb1pTNW5MaUJCVEVaU1JVUXBYRzRnSUNBcUlITjFjSEJzZVNCMGFHVWdZV04wZFdGc0lGWk5JSE5oYm1SaWIzZ2dhVzF3YkdWdFpXNTBZWFJwYjI0dVhHNGdJQ0FxTDF4dUlDQmpiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjajg2SUVOdlpHVlRZVzVrWW05NFJYWmhiSFZoZEc5eU8xeHVJQ0F2S2lwY2JpQWdJQ29nVDNCMGFXOXVZV3dnWTJGc2JHSmhZMnNnYVc1MmIydGxaQ0JoZENCMGFHVWdaVzVrSUc5bUlHVnVaMmx1WlNCamIyNXpkSEoxWTNScGIyNGdkMmwwYUNCMGFHVmNiaUFnSUNvZ1puVnNiSGt0YVc1cGRHbGhiR2x6WldRZ1pXNW5hVzVsSUdsdWMzUmhibU5sTGlCVmMyVWdkR2hwY3lCMGJ5QnlaV2RwYzNSbGNpQmxlR1ZqZFhSdmNuTWdkR2hoZEZ4dUlDQWdLaUJ1WldWa0lHRWdZbUZqYXkxeVpXWmxjbVZ1WTJVZ2RHOGdkR2hsSUdWdVoybHVaU0FvWlM1bkxpQnNiMjl3SUdWNFpXTjFkRzl5Y3lCMGFHRjBJR1Y0WldOMWRHVmNiaUFnSUNvZ2MzVmlMWGR2Y210bWJHOTNjeUIwYUhKdmRXZG9JSFJvWlNCellXMWxJR1Z1WjJsdVpTa3VYRzRnSUNBcUwxeHVJQ0J2YmtWdVoybHVaVU55WldGMFpXUS9PaUFvWlc1bmFXNWxPaUJIY21Gd2FFVjRaV04xZEdsdmJrVnVaMmx1WlNrZ1BUNGdkbTlwWkR0Y2JuMWNibHh1THlvcVhHNGdLaUJTWldabGNtVnVZMlVnWjNKaGNHZ2daWGhsWTNWMGFXOXVJR1Z1WjJsdVpTNWNiaUFxWEc0Z0tpQkZlR1ZqZFhSbGN5QmhJSHRBYkdsdWF5QkhjbUZ3YUZkdmNtdG1iRzkzUkdWbWFXNXBkR2x2Ym4wZ1luazZYRzRnS2lBeExpQlFiR0Z1Ym1sdVp5QjBhR1VnZDI5eWEyWnNiM2NnYVc1MGJ5QjBiM0J2Ykc5bmFXTmhiQ0JzWVhsbGNuTXVYRzRnS2lBeUxpQlRaV1ZrYVc1bklIZHZjbXRtYkc5M0lHbHVjSFYwY3lCcGJuUnZJSFJvWlNCMllXeDFaU0J6ZEc5eVpTNWNiaUFxSURNdUlFVjRaV04xZEdsdVp5QnViMlJsY3lCc1lYbGxjaTFpZVMxc1lYbGxjaUIzYVhSb0lHTnZibVpwWjNWeVlXSnNaU0JqYjI1amRYSnlaVzVqZVM1Y2JpQXFJRFF1SUZKdmRYUnBibWNnZG1Gc2RXVnpJR0ZzYjI1bklHVmtaMlZ6TGx4dUlDb2dOUzRnUlcxcGRIUnBibWNnYzNSeWRXTjBkWEpsWkNCbGRtVnVkSE1nZEdoeWIzVm5hQ0JFWldOaFppZHpJRTlpYzJWeWRtRmliR1VnY0dsd1pXeHBibVV1WEc0Z0tpQTJMaUJTWlhSMWNtNXBibWNnWVNCamIyMXdiR1YwWlNCN1FHeHBibXNnUjNKaGNHaEZlR1ZqZFhScGIyNVNaWE4xYkhSOUxseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdSM0poY0doRmVHVmpkWFJwYjI1RmJtZHBibVZjYmlBZ2FXMXdiR1Z0Wlc1MGN5QlBZbk5sY25aaFlteGxQRnRIY21Gd2FFVjRaV04xZEdsdmJrOWljMlZ5ZG1WeVhTd2dXMGR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJkUGlCN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2daVzFwZEhSbGNqb2dSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRVZ0YVhSMFpYSTdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnY0d4aGJtNWxjam9nUjNKaGNHaEZlR1ZqZFhScGIyNVFiR0Z1Ym1WeU8xeHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJSFpoYkhWbFUzUnZjbVZCWkdGd2RHVnlPaUJIY21Gd2FGWmhiSFZsVTNSdmNtVkJaR0Z3ZEdWeU8xeHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJR1JsWm1GMWJIUlBjSFJwYjI1ek9pQlFZWEowYVdGc1BFZHlZWEJvUlhobFkzVjBhVzl1VDNCMGFXOXVjejQ3WEc0Z0lDOHFLaUJRYkhWbloyRmliR1VnWTI5a1pTQnpZVzVrWW05NElHVjJZV3gxWVhSdmNpQW93cWN5TWk0MEtUc2diV0Y1SUdKbElIVnVaR1ZtYVc1bFpDNGdLaTljYmlBZ2NtVmhaRzl1YkhrZ1kyOWtaVk5oYm1SaWIzaEZkbUZzZFdGMGIzSS9PaUJEYjJSbFUyRnVaR0p2ZUVWMllXeDFZWFJ2Y2p0Y2JseHVJQ0JqYjI1emRISjFZM1J2Y2loamIyNW1hV2M2SUVkeVlYQm9SWGhsWTNWMGFXOXVSVzVuYVc1bFEyOXVabWxuS1NCN1hHNGdJQ0FnZEdocGN5NWxiV2wwZEdWeUlEMGdZMjl1Wm1sbkxtVjJaVzUwUlcxcGRIUmxjaUEvUHlCdVpYY2dSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRVZ0YVhSMFpYSW9LVHRjYmlBZ0lDQjBhR2x6TG5Cc1lXNXVaWElnUFNCamIyNW1hV2N1Y0d4aGJtNWxjaUEvUHlCdVpYY2dSM0poY0doRmVHVmpkWFJwYjI1UWJHRnVibVZ5S0NrN1hHNGdJQ0FnZEdocGN5NTJZV3gxWlZOMGIzSmxRV1JoY0hSbGNpQTlYRzRnSUNBZ0lDQmpiMjVtYVdjdWRtRnNkV1ZUZEc5eVpVRmtZWEIwWlhJZ1B6OGdibVYzSUVsdVRXVnRiM0o1UjNKaGNHaFdZV3gxWlZOMGIzSmxRV1JoY0hSbGNpZ3BPMXh1SUNBZ0lIUm9hWE11WkdWbVlYVnNkRTl3ZEdsdmJuTWdQU0JqYjI1bWFXY3VaR1ZtWVhWc2RFOXdkR2x2Ym5NZ1B6OGdlMzA3WEc0Z0lDQWdkR2hwY3k1amIyUmxVMkZ1WkdKdmVFVjJZV3gxWVhSdmNpQTlJR052Ym1acFp5NWpiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjanRjYmlBZ0lDQjBhR2x6TG1OdmJtWnBaeUE5SUdOdmJtWnBaenRjYmlBZ0lDQmpiMjVtYVdjdWIyNUZibWRwYm1WRGNtVmhkR1ZrUHk0b2RHaHBjeWs3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUdOdmJtWnBaem9nUjNKaGNHaEZlR1ZqZFhScGIyNUZibWRwYm1WRGIyNW1hV2M3WEc1Y2JpQWdiMkp6WlhKMlpTaHZZbk5sY25abGNqb2dSM0poY0doRmVHVmpkWFJwYjI1UFluTmxjblpsY2lrNklDZ3BJRDArSUhadmFXUWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVZ0YVhSMFpYSXViMkp6WlhKMlpTaHZZbk5sY25abGNpazdYRzRnSUgxY2JseHVJQ0IxYms5aWMyVnlkbVVvYjJKelpYSjJaWEk2SUVkeVlYQm9SWGhsWTNWMGFXOXVUMkp6WlhKMlpYSXBPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbVZ0YVhSMFpYSXVkVzVQWW5ObGNuWmxLRzlpYzJWeWRtVnlLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSFZ3WkdGMFpVOWljMlZ5ZG1WeWN5aGxkbVZ1ZERvZ1IzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpXMXBkSFJsY2k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1vWlhabGJuUXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVWNFpXTjFkR1Z6SUdFZ2QyOXlhMlpzYjNjZ2QybDBhQ0IwYUdVZ1oybDJaVzRnYVc1d2RYUnpJR0Z1WkNCdmNIUnBiMjV6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWlhobFkzVjBaU2hjYmlBZ0lDQjNiM0pyWm14dmR6b2dSM0poY0doWGIzSnJabXh2ZDBSbFptbHVhWFJwYjI0c1hHNGdJQ0FnYVc1d2RYUnpPaUJIY21Gd2FFVjRaV04xZEdsdmJsWmhiSFZsY3lBOUlIdDlMRnh1SUNBZ0lHOXdkR2x2Ym5NNklFZHlZWEJvUlhobFkzVjBhVzl1VDNCMGFXOXVjeUE5SUh0OVhHNGdJQ2s2SUZCeWIyMXBjMlU4UjNKaGNHaEZlR1ZqZFhScGIyNVNaWE4xYkhRK0lIdGNiaUFnSUNCamIyNXpkQ0J2Y0hSeklEMGdkR2hwY3k1dFpYSm5aVTl3ZEdsdmJuTW9iM0IwYVc5dWN5azdYRzRnSUNBZ1kyOXVjM1FnY25WdVNXUWdQU0J2Y0hSekxuSjFia2xrSUQ4L0lIUm9hWE11WjJWdVpYSmhkR1ZTZFc1SlpDZ3BPMXh1SUNBZ0lHTnZibk4wSUhCaGRHZ2dQU0J2Y0hSekxuQmhkR2dnUHo4Z1cxMDdYRzRnSUNBZ1kyOXVjM1FnWlhabGJuUkdZV04wYjNKNUlEMGdibVYzSUVkeVlYQm9SWGhsWTNWMGFXOXVSWFpsYm5SR1lXTjBiM0o1S0NrN1hHNGdJQ0FnWTI5dWMzUWdkbUZzZFdWVGRHOXlaU0E5SUc1bGR5QkhjbUZ3YUZaaGJIVmxVM1J2Y21Vb2RHaHBjeTUyWVd4MVpWTjBiM0psUVdSaGNIUmxjaWs3WEc0Z0lDQWdkbUZzZFdWVGRHOXlaUzV6WldWa1YyOXlhMlpzYjNkSmJuQjFkSE1vYVc1d2RYUnpLVHRjYmx4dUlDQWdJR052Ym5OMElIQnNZVzRnUFNCMGFHbHpMbkJzWVc1dVpYSXVjR3hoYmloM2IzSnJabXh2ZHlrN1hHNGdJQ0FnWTI5dWMzUWdabkpoYldVZ1BTQnVaWGNnUjNKaGNHaEZlR1ZqZFhScGIyNUdjbUZ0WlNoY2JpQWdJQ0FnSUhKMWJrbGtMRnh1SUNBZ0lDQWdjR3hoYml4Y2JpQWdJQ0FnSUhaaGJIVmxVM1J2Y21Vc1hHNGdJQ0FnSUNCbGRtVnVkRVpoWTNSdmNubGNiaUFnSUNBcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWlcxcGRFWnVJRDBnWVhONWJtTWdLSEJoY25ScFlXdzZJRkJoY25ScFlXdzhSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRDRwSUQwK0lIdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVaVzFwZEVWMlpXNTBLR1p5WVcxbExDQjdYRzRnSUNBZ0lDQWdJSFI1Y0dVNklIQmhjblJwWVd3dWRIbHdaU0EvUHlCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFZIbHdaUzVPVDBSRlgwOVZWRkJWVkN4Y2JpQWdJQ0FnSUNBZ2NuVnVTV1FzWEc0Z0lDQWdJQ0FnSUhCaGNtVnVkRkoxYmtsa09pQnZjSFJ6TG5CaGNtVnVkRkoxYmtsa0xGeHVJQ0FnSUNBZ0lDQjNiM0pyWm14dmQwbGtPaUIzYjNKclpteHZkeTV1WVcxbExGeHVJQ0FnSUNBZ0lDQnViMlJsU1dRNklIQmhjblJwWVd3dWJtOWtaVWxrTEZ4dUlDQWdJQ0FnSUNCd1lYUm9PaUJ3WVhKMGFXRnNMbkJoZEdnZ1B6OGdjR0YwYUN4Y2JpQWdJQ0FnSUNBZ0xpNHVjR0Z5ZEdsaGJDeGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbVZ0YVhSRmRtVnVkQ2htY21GdFpTd2dlMXh1SUNBZ0lDQWdkSGx3WlRvZ1IzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRGUjVjR1V1VjA5U1MwWk1UMWRmVTFSQlVsUkZSQ3hjYmlBZ0lDQWdJSEoxYmtsa0xGeHVJQ0FnSUNBZ2NHRnlaVzUwVW5WdVNXUTZJRzl3ZEhNdWNHRnlaVzUwVW5WdVNXUXNYRzRnSUNBZ0lDQjNiM0pyWm14dmQwbGtPaUIzYjNKclpteHZkeTV1WVcxbExGeHVJQ0FnSUNBZ2NHRjBhQ3hjYmlBZ0lDQWdJSE4wWVhSMWN6b2dSM0poY0doRmVHVmpkWFJwYjI1VGRHRjBkWE11VWxWT1RrbE9SeXhjYmlBZ0lDQWdJSEJoZVd4dllXUTZJSHNnYVc1d2RYUnpJSDBzWEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1WdGFYUkZkbVZ1ZENobWNtRnRaU3dnZTF4dUlDQWdJQ0FnZEhsd1pUb2dSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRlI1Y0dVdVYwOVNTMFpNVDFkZlVFeEJUazVGUkN4Y2JpQWdJQ0FnSUhKMWJrbGtMRnh1SUNBZ0lDQWdjR0Z5Wlc1MFVuVnVTV1E2SUc5d2RITXVjR0Z5Wlc1MFVuVnVTV1FzWEc0Z0lDQWdJQ0IzYjNKclpteHZkMGxrT2lCM2IzSnJabXh2ZHk1dVlXMWxMRnh1SUNBZ0lDQWdjR0YwYUN4Y2JpQWdJQ0FnSUhOMFlYUjFjem9nUjNKaGNHaEZlR1ZqZFhScGIyNVRkR0YwZFhNdVVFeEJUazVKVGtjc1hHNGdJQ0FnSUNCd1lYbHNiMkZrT2lCN0lHeGhlV1Z5Y3pvZ2NHeGhiaTVzWVhsbGNuTXViR1Z1WjNSb0xDQnViMlJsY3pvZ2NHeGhiaTV1YjJSbGN5NXNaVzVuZEdnZ2ZTeGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUd4aGVXVnlJRzltSUhCc1lXNHViR0Y1WlhKektTQjdYRzRnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11WlhobFkzVjBaVXhoZVdWeUtHWnlZVzFsTENCd2JHRnVMQ0JzWVhsbGNpNXViMlJsY3l3Z2IzQjBjeXdnWlcxcGRFWnVLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWm5KaGJXVXVabWx1YVhOb0tDazdYRzVjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WlcxcGRFVjJaVzUwS0daeVlXMWxMQ0I3WEc0Z0lDQWdJQ0FnSUhSNWNHVTZJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJVZVhCbExsZFBVa3RHVEU5WFgwTlBUVkJNUlZSRlJDeGNiaUFnSUNBZ0lDQWdjblZ1U1dRc1hHNGdJQ0FnSUNBZ0lIQmhjbVZ1ZEZKMWJrbGtPaUJ2Y0hSekxuQmhjbVZ1ZEZKMWJrbGtMRnh1SUNBZ0lDQWdJQ0IzYjNKclpteHZkMGxrT2lCM2IzSnJabXh2ZHk1dVlXMWxMRnh1SUNBZ0lDQWdJQ0J3WVhSb0xGeHVJQ0FnSUNBZ0lDQnpkR0YwZFhNNklFZHlZWEJvUlhobFkzVjBhVzl1VTNSaGRIVnpMbE5WUTBORlJVUkZSQ3hjYmlBZ0lDQWdJQ0FnY0dGNWJHOWhaRG9nZXlCdmRYUndkWFJ6T2lCMllXeDFaVk4wYjNKbExtZGxkRmR2Y210bWJHOTNWbUZzZFdWektDa2dmU3hjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnWW5WcGJHUkhjbUZ3YUVWNFpXTjFkR2x2YmxKbGMzVnNkQ2hjYmlBZ0lDQWdJQ0FnWm5KaGJXVXNYRzRnSUNBZ0lDQWdJSGR2Y210bWJHOTNMRnh1SUNBZ0lDQWdJQ0JwYm5CMWRITXNYRzRnSUNBZ0lDQWdJRWR5WVhCb1JYaGxZM1YwYVc5dVUzUmhkSFZ6TGxOVlEwTkZSVVJGUkN4Y2JpQWdJQ0FnSUNBZ2IzQjBjeTV0WlhSaFpHRjBZVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ1puSmhiV1V1Wm1sdWFYTm9LQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmxjbkp2Y2xCaGVXeHZZV1FnUFNCMGFHbHpMblJ2UlhKeWIzSlFZWGxzYjJGa0tHVnljbTl5S1R0Y2JseHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NWxiV2wwUlhabGJuUW9abkpoYldVc0lIdGNiaUFnSUNBZ0lDQWdkSGx3WlRvZ1IzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRGUjVjR1V1VjA5U1MwWk1UMWRmUmtGSlRFVkVMRnh1SUNBZ0lDQWdJQ0J5ZFc1SlpDeGNiaUFnSUNBZ0lDQWdjR0Z5Wlc1MFVuVnVTV1E2SUc5d2RITXVjR0Z5Wlc1MFVuVnVTV1FzWEc0Z0lDQWdJQ0FnSUhkdmNtdG1iRzkzU1dRNklIZHZjbXRtYkc5M0xtNWhiV1VzWEc0Z0lDQWdJQ0FnSUhCaGRHZ3NYRzRnSUNBZ0lDQWdJSE4wWVhSMWN6b2dSM0poY0doRmVHVmpkWFJwYjI1VGRHRjBkWE11UmtGSlRFVkVMRnh1SUNBZ0lDQWdJQ0JsY25KdmNqb2daWEp5YjNKUVlYbHNiMkZrTEZ4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCaWRXbHNaRWR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwS0Z4dUlDQWdJQ0FnSUNCbWNtRnRaU3hjYmlBZ0lDQWdJQ0FnZDI5eWEyWnNiM2NzWEc0Z0lDQWdJQ0FnSUdsdWNIVjBjeXhjYmlBZ0lDQWdJQ0FnUjNKaGNHaEZlR1ZqZFhScGIyNVRkR0YwZFhNdVJrRkpURVZFTEZ4dUlDQWdJQ0FnSUNCdmNIUnpMbTFsZEdGa1lYUmhYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJRYVc1eklHRWdibTlrWlNCaGJtUWdhWFJ6SUhWd2MzUnlaV0Z0SUdSbGNHVnVaR1Z1WTJsbGN5QmhablJsY2lCaElHTnZiWEJzWlhSbFpDQnlkVzR1WEc0Z0lDQXFYRzRnSUNBcUlFUmxiR1ZuWVhSbGN5QjBieUI3UUd4cGJtc2dSM0poY0doUWFXNXVhVzVuVTJWeWRtbGpaWDB1SUZSb1pTQndiR0Z1SUdGdVpDQnlaWE4xYkhRZ2JYVnpkQ0JqYjIxbFhHNGdJQ0FxSUdaeWIyMGdZU0J3Y21sdmNpQnpkV05qWlhOelpuVnNJR1Y0WldOMWRHbHZiaUJ2WmlCMGFHVWdjMkZ0WlNCM2IzSnJabXh2ZHk1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUhCcGJrNXZaR1VvYjNCMGFXOXVjem9nUjNKaGNHaFFhVzVPYjJSbFQzQjBhVzl1Y3lrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElITmxjblpwWTJVZ1BTQjBhR2x6TG1OeVpXRjBaVkJwYm01cGJtZFRaWEoyYVdObEtDazdYRzRnSUNBZ1lYZGhhWFFnYzJWeWRtbGpaUzV3YVc1T2IyUmxLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVaVzFwZEZCcGJtNXBibWRGZG1WdWRDaHZjSFJwYjI1ekxtNXZaR1ZKWkN3Z1IzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRGUjVjR1V1VGs5RVJWOVFTVTVPUlVRcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlZ1Y0dsdWN5QmhJRzV2WkdVZ1lua2dhWFJ6SUdacGJtZGxjbkJ5YVc1MExseHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ2RXNXdhVzVPYjJSbEtHOXdkR2x2Ym5NNklFZHlZWEJvVlc1d2FXNU9iMlJsVDNCMGFXOXVjeWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhObGNuWnBZMlVnUFNCMGFHbHpMbU55WldGMFpWQnBibTVwYm1kVFpYSjJhV05sS0NrN1hHNGdJQ0FnWVhkaGFYUWdjMlZ5ZG1salpTNTFibkJwYms1dlpHVW9iM0IwYVc5dWN5azdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NWxiV2wwVUdsdWJtbHVaMFYyWlc1MEtHOXdkR2x2Ym5NdWJtOWtaVWxrTENCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFZIbHdaUzVPVDBSRlgxVk9VRWxPVGtWRUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVnpJR0VnZTBCc2FXNXJJRWR5WVhCb1VHbHVibWx1WjFObGNuWnBZMlY5SUdKaFkydGxaQ0JpZVNCMGFHbHpJR1Z1WjJsdVpTZHpJSFpoYkhWbElITjBiM0psWEc0Z0lDQXFJR0ZrWVhCMFpYSXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR055WldGMFpWQnBibTVwYm1kVFpYSjJhV05sS0NrNklFZHlZWEJvVUdsdWJtbHVaMU5sY25acFkyVWdlMXh1SUNBZ0lHTnZibk4wSUhOMGIzSmxJRDBnYm1WM0lFZHlZWEJvVm1Gc2RXVlRkRzl5WlNoMGFHbHpMblpoYkhWbFUzUnZjbVZCWkdGd2RHVnlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRWR5WVhCb1VHbHVibWx1WjFObGNuWnBZMlVvWEc0Z0lDQWdJQ0J6ZEc5eVpTeGNiaUFnSUNBZ0lHNWxkeUJIY21Gd2FGQnBibTVwYm1kUWIyeHBZM2tvS1N4Y2JpQWdJQ0FnSUc1bGR5QkhjbUZ3YUZCcGJtNXBibWRFWlhCbGJtUmxibU41VW1WemIyeDJaWElvS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1JXMXBkSE1nWVNCd2FXNXVhVzVuTFhKbGJHRjBaV1FnWlhabGJuUWdkRzhnWVd4c0lHOWljMlZ5ZG1WeWN5NWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1pXMXBkRkJwYm01cGJtZEZkbVZ1ZENoY2JpQWdJQ0J1YjJSbFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCMGVYQmxPaUJIY21Gd2FFVjRaV04xZEdsdmJrVjJaVzUwVkhsd1pWeHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCbVlXTjBiM0o1SUQwZ2JtVjNJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJHWVdOMGIzSjVLQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pYWmxiblFnUFNCbVlXTjBiM0o1TG1OeVpXRjBaU2g3WEc0Z0lDQWdJQ0JwWkRvZ1hDSmNJaXhjYmlBZ0lDQWdJSE5sY1hWbGJtTmxPaUF3TEZ4dUlDQWdJQ0FnZEdsdFpYTjBZVzF3T2lCdVpYY2dSR0YwWlNncExGeHVJQ0FnSUNBZ2NuVnVTV1E2SUZ3aWNHbHVibWx1WjF3aUxGeHVJQ0FnSUNBZ2QyOXlhMlpzYjNkSlpEb2dYQ0pjSWl4Y2JpQWdJQ0FnSUhSNWNHVXNYRzRnSUNBZ0lDQnViMlJsU1dRc1hHNGdJQ0FnSUNCd1lYUm9PaUJiWFN4Y2JpQWdJQ0I5SUdGeklFOXRhWFE4UjNKaGNHaEZlR1ZqZFhScGIyNUZkbVZ1ZEN3Z1hDSnBaRndpSUh3Z1hDSnpaWEYxWlc1alpWd2lJSHdnWENKMGFXMWxjM1JoYlhCY0lqNHBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVaVzFwZEhSbGNpNTFjR1JoZEdWUFluTmxjblpsY25Nb1pYWmxiblFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFVjRaV04xZEdWeklHRWdiR0Y1WlhJZ2IyWWdibTlrWlhNZ2QybDBhQ0IwYUdVZ1kyOXVabWxuZFhKbFpDQmpiMjVqZFhKeVpXNWplUzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdaWGhsWTNWMFpVeGhlV1Z5S0Z4dUlDQWdJR1p5WVcxbE9pQkhjbUZ3YUVWNFpXTjFkR2x2YmtaeVlXMWxMRnh1SUNBZ0lIQnNZVzQ2SUVkeVlYQm9SWGhsWTNWMGFXOXVVR3hoYml4Y2JpQWdJQ0J1YjJSbGN6b2dSM0poY0doRmVHVmpkWFJwYjI1UWJHRnVUbTlrWlZ0ZExGeHVJQ0FnSUc5d2RITTZJRWR5WVhCb1JYaGxZM1YwYVc5dVQzQjBhVzl1Y3l4Y2JpQWdJQ0JsYldsMFJtNDZJQ2hsZG1WdWREb2dVR0Z5ZEdsaGJEeEhjbUZ3YUVWNFpXTjFkR2x2YmtWMlpXNTBQaWtnUFQ0Z1VISnZiV2x6WlR4MmIybGtQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQmpiMjVqZFhKeVpXNWplU0E5SUUxaGRHZ3ViV0Y0S0Z4dUlDQWdJQ0FnTVN4Y2JpQWdJQ0FnSUc5d2RITXVZMjl1WTNWeWNtVnVZM2tnUHo4Z1IxSkJVRWhmUkVWR1FWVk1WRjlEVDA1RFZWSlNSVTVEV1Z4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NYVmxkV1VnUFNCYkxpNHVibTlrWlhOZE8xeHVYRzRnSUNBZ2QyaHBiR1VnS0hGMVpYVmxMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR0poZEdOb0lEMGdjWFZsZFdVdWMzQnNhV05sS0RBc0lHTnZibU4xY25KbGJtTjVLVHRjYmlBZ0lDQWdJR0YzWVdsMElGQnliMjFwYzJVdVlXeHNLRnh1SUNBZ0lDQWdJQ0JpWVhSamFDNXRZWEFvS0c1dlpHVXBJRDArSUhSb2FYTXVaWGhsWTNWMFpVNXZaR1VvWm5KaGJXVXNJSEJzWVc0c0lHNXZaR1VzSUc5d2RITXNJR1Z0YVhSR2Jpa3BYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJGZUdWamRYUmxjeUJoSUhOcGJtZHNaU0J1YjJSbExseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCbGVHVmpkWFJsVG05a1pTaGNiaUFnSUNCbWNtRnRaVG9nUjNKaGNHaEZlR1ZqZFhScGIyNUdjbUZ0WlN4Y2JpQWdJQ0J3YkdGdU9pQkhjbUZ3YUVWNFpXTjFkR2x2YmxCc1lXNHNYRzRnSUNBZ2NHeGhiazV2WkdVNklFZHlZWEJvUlhobFkzVjBhVzl1VUd4aGJrNXZaR1VzWEc0Z0lDQWdiM0IwY3pvZ1IzSmhjR2hGZUdWamRYUnBiMjVQY0hScGIyNXpMRnh1SUNBZ0lHVnRhWFJHYmpvZ0tHVjJaVzUwT2lCUVlYSjBhV0ZzUEVkeVlYQm9SWGhsWTNWMGFXOXVSWFpsYm5RK0tTQTlQaUJRY205dGFYTmxQSFp2YVdRK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhOMFlYSjBaV1JCZENBOUlHNWxkeUJFWVhSbEtDazdYRzRnSUNBZ1kyOXVjM1FnYm05a1pWQmhkR2dnUFNCYkxpNHVLRzl3ZEhNdWNHRjBhQ0EvUHlCYlhTa3NJSEJzWVc1T2IyUmxMbWxrWFR0Y2JseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpXMXBkRVYyWlc1MEtHWnlZVzFsTENCN1hHNGdJQ0FnSUNCMGVYQmxPaUJIY21Gd2FFVjRaV04xZEdsdmJrVjJaVzUwVkhsd1pTNU9UMFJGWDFOVVFWSlVSVVFzWEc0Z0lDQWdJQ0J5ZFc1SlpEb2dabkpoYldVdWNuVnVTV1FzWEc0Z0lDQWdJQ0IzYjNKclpteHZkMGxrT2lCd2JHRnVMbmR2Y210bWJHOTNTV1FzWEc0Z0lDQWdJQ0J1YjJSbFNXUTZJSEJzWVc1T2IyUmxMbWxrTEZ4dUlDQWdJQ0FnY0dGMGFEb2dibTlrWlZCaGRHZ3NYRzRnSUNBZ0lDQnpkR0YwZFhNNklFZHlZWEJvUlhobFkzVjBhVzl1VTNSaGRIVnpMbEpWVGs1SlRrY3NYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQmpiMjV6ZENCcGJuQjFkSE1nUFNCMGFHbHpMbkpsYzI5c2RtVk9iMlJsU1c1d2RYUnpLR1p5WVcxbExDQndiR0Z1TENCd2JHRnVUbTlrWlNrN1hHNWNiaUFnSUNBdkx5QkRZV05vWlMxb2FYUTZJR05vWldOcklHWnZjaUJoSUhCcGJtNWxaQ0IyWVd4MVpTQmlaV1p2Y21VZ1pYaGxZM1YwYVc1bklIUm9aU0J1YjJSbFhHNGdJQ0FnYVdZZ0tHOXdkSE11ZFhObFVHbHVibVZrVm1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmpZV05vWldRZ1BTQmhkMkZwZENCMGFHbHpMblJ5ZVZCcGJtNWxaRlpoYkhWbEtHWnlZVzFsTENCd2JHRnVMQ0J3YkdGdVRtOWtaU3dnYVc1d2RYUnpLVHRjYmlBZ0lDQWdJR2xtSUNoallXTm9aV1FwSUh0Y2JpQWdJQ0FnSUNBZ1puSmhiV1V1ZG1Gc2RXVlRkRzl5WlM1elpYUk9iMlJsVDNWMGNIVjBjeWh3YkdGdVRtOWtaUzVwWkN3Z1kyRmphR1ZrTG05MWRIQjFkSE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkp2ZFhSbFQzVjBaMjlwYm1kRlpHZGxjeWhtY21GdFpTd2djR3hoYml3Z2NHeGhiazV2WkdVc0lHTmhZMmhsWkM1dmRYUndkWFJ6S1R0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWFXNXBjMmhsWkVGMElEMGdibVYzSUVSaGRHVW9LVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6ZFd4ME9pQkhjbUZ3YUU1dlpHVkZlR1ZqZFhScGIyNVNaWE4xYkhRZ1BTQjdYRzRnSUNBZ0lDQWdJQ0FnYm05a1pVbGtPaUJ3YkdGdVRtOWtaUzVwWkN4Y2JpQWdJQ0FnSUNBZ0lDQnpkR0YwZFhNNklFZHlZWEJvUlhobFkzVjBhVzl1VTNSaGRIVnpMa05CUTBoRlJDeGNiaUFnSUNBZ0lDQWdJQ0JwYm5CMWRITXNYRzRnSUNBZ0lDQWdJQ0FnYjNWMGNIVjBjem9nWTJGamFHVmtMbTkxZEhCMWRITXNYRzRnSUNBZ0lDQWdJQ0FnYzNSaGNuUmxaRUYwTEZ4dUlDQWdJQ0FnSUNBZ0lHWnBibWx6YUdWa1FYUXNYRzRnSUNBZ0lDQWdJQ0FnWm5KdmJVTmhZMmhsT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUhCcGJtNWxaRG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0JsZG1WdWRITTZJRnRkTEZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQm1jbUZ0WlM1eVpXTnZjbVJPYjJSbFVtVnpkV3gwS0hKbGMzVnNkQ2s3WEc1Y2JpQWdJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NWxiV2wwUlhabGJuUW9abkpoYldVc0lIdGNiaUFnSUNBZ0lDQWdJQ0IwZVhCbE9pQkhjbUZ3YUVWNFpXTjFkR2x2YmtWMlpXNTBWSGx3WlM1T1QwUkZYME5CUTBoRlgwaEpWQ3hjYmlBZ0lDQWdJQ0FnSUNCeWRXNUpaRG9nWm5KaGJXVXVjblZ1U1dRc1hHNGdJQ0FnSUNBZ0lDQWdkMjl5YTJac2IzZEpaRG9nY0d4aGJpNTNiM0pyWm14dmQwbGtMRnh1SUNBZ0lDQWdJQ0FnSUc1dlpHVkpaRG9nY0d4aGJrNXZaR1V1YVdRc1hHNGdJQ0FnSUNBZ0lDQWdjR0YwYURvZ2JtOWtaVkJoZEdnc1hHNGdJQ0FnSUNBZ0lDQWdjM1JoZEhWek9pQkhjbUZ3YUVWNFpXTjFkR2x2YmxOMFlYUjFjeTVEUVVOSVJVUXNYRzRnSUNBZ0lDQWdJQ0FnY0dGNWJHOWhaRG9nZXlCdmRYUndkWFJ6T2lCallXTm9aV1F1YjNWMGNIVjBjeUI5TEZ4dUlDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG1WdGFYUkZkbVZ1ZENobWNtRnRaU3dnZTF4dUlDQWdJQ0FnSUNBZ0lIUjVjR1U2SUVkeVlYQm9SWGhsWTNWMGFXOXVSWFpsYm5SVWVYQmxMazVQUkVWZlEwOU5VRXhGVkVWRUxGeHVJQ0FnSUNBZ0lDQWdJSEoxYmtsa09pQm1jbUZ0WlM1eWRXNUpaQ3hjYmlBZ0lDQWdJQ0FnSUNCM2IzSnJabXh2ZDBsa09pQndiR0Z1TG5kdmNtdG1iRzkzU1dRc1hHNGdJQ0FnSUNBZ0lDQWdibTlrWlVsa09pQndiR0Z1VG05a1pTNXBaQ3hjYmlBZ0lDQWdJQ0FnSUNCd1lYUm9PaUJ1YjJSbFVHRjBhQ3hjYmlBZ0lDQWdJQ0FnSUNCemRHRjBkWE02SUVkeVlYQm9SWGhsWTNWMGFXOXVVM1JoZEhWekxsTlZRME5GUlVSRlJDeGNiaUFnSUNBZ0lDQWdJQ0J3WVhsc2IyRmtPaUI3SUc5MWRIQjFkSE02SUdOaFkyaGxaQzV2ZFhSd2RYUnpMQ0JtY205dFEyRmphR1U2SUhSeWRXVWdmU3hjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWlhobFkzVjBiM0lnUFNCMGFHbHpMbU52Ym1acFp5NXlaV2RwYzNSeWVTNXlaWE52YkhabEtIQnNZVzVPYjJSbExtdHBibVFwTzF4dUlDQWdJQ0FnWTI5dWMzUWdZMjl1ZEdWNGRDQTlJRzVsZHlCSGNtRndhRVY0WldOMWRHbHZia052Ym5SbGVIUW9YRzRnSUNBZ0lDQWdJR1p5WVcxbExuSjFia2xrTEZ4dUlDQWdJQ0FnSUNCdmNIUnpMbkJoY21WdWRGSjFia2xrTEZ4dUlDQWdJQ0FnSUNCd2JHRnVMbmR2Y210bWJHOTNMRnh1SUNBZ0lDQWdJQ0J3YkdGdVRtOWtaUzVrWldacGJtbDBhVzl1TEZ4dUlDQWdJQ0FnSUNCdWIyUmxVR0YwYUN4Y2JpQWdJQ0FnSUNBZ1pXMXBkRVp1TEZ4dUlDQWdJQ0FnSUNCdmNIUnpMbTFsZEdGa1lYUmhYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQnZkWFJ3ZFhSeklEMGdZWGRoYVhRZ1pYaGxZM1YwYjNJdVpYaGxZM1YwWlNocGJuQjFkSE1zSUdOdmJuUmxlSFFwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ6YjJ4MlpXUlBkWFJ3ZFhSeklEMGdiM1YwY0hWMGN5QS9QeUI3ZlR0Y2JseHVJQ0FnSUNBZ1puSmhiV1V1ZG1Gc2RXVlRkRzl5WlM1elpYUk9iMlJsVDNWMGNIVjBjeWh3YkdGdVRtOWtaUzVwWkN3Z2NtVnpiMngyWldSUGRYUndkWFJ6S1R0Y2JpQWdJQ0FnSUhSb2FYTXVjbTkxZEdWUGRYUm5iMmx1WjBWa1oyVnpLR1p5WVcxbExDQndiR0Z1TENCd2JHRnVUbTlrWlN3Z2NtVnpiMngyWldSUGRYUndkWFJ6S1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnWm1sdWFYTm9aV1JCZENBOUlHNWxkeUJFWVhSbEtDazdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFE2SUVkeVlYQm9UbTlrWlVWNFpXTjFkR2x2YmxKbGMzVnNkQ0E5SUh0Y2JpQWdJQ0FnSUNBZ2JtOWtaVWxrT2lCd2JHRnVUbTlrWlM1cFpDeGNiaUFnSUNBZ0lDQWdjM1JoZEhWek9pQkhjbUZ3YUVWNFpXTjFkR2x2YmxOMFlYUjFjeTVUVlVORFJVVkVSVVFzWEc0Z0lDQWdJQ0FnSUdsdWNIVjBjeXhjYmlBZ0lDQWdJQ0FnYjNWMGNIVjBjem9nY21WemIyeDJaV1JQZFhSd2RYUnpMRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRHVmtRWFFzWEc0Z0lDQWdJQ0FnSUdacGJtbHphR1ZrUVhRc1hHNGdJQ0FnSUNBZ0lHVjJaVzUwY3pvZ1cxMHNYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdabkpoYldVdWNtVmpiM0prVG05a1pWSmxjM1ZzZENoeVpYTjFiSFFwTzF4dVhHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtVnRhWFJGZG1WdWRDaG1jbUZ0WlN3Z2UxeHVJQ0FnSUNBZ0lDQjBlWEJsT2lCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFZIbHdaUzVPVDBSRlgwTlBUVkJNUlZSRlJDeGNiaUFnSUNBZ0lDQWdjblZ1U1dRNklHWnlZVzFsTG5KMWJrbGtMRnh1SUNBZ0lDQWdJQ0IzYjNKclpteHZkMGxrT2lCd2JHRnVMbmR2Y210bWJHOTNTV1FzWEc0Z0lDQWdJQ0FnSUc1dlpHVkpaRG9nY0d4aGJrNXZaR1V1YVdRc1hHNGdJQ0FnSUNBZ0lIQmhkR2c2SUc1dlpHVlFZWFJvTEZ4dUlDQWdJQ0FnSUNCemRHRjBkWE02SUVkeVlYQm9SWGhsWTNWMGFXOXVVM1JoZEhWekxsTlZRME5GUlVSRlJDeGNiaUFnSUNBZ0lDQWdjR0Y1Ykc5aFpEb2dleUJ2ZFhSd2RYUnpPaUJ5WlhOdmJIWmxaRTkxZEhCMWRITWdmU3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbWFXNXBjMmhsWkVGMElEMGdibVYzSUVSaGRHVW9LVHRjYmlBZ0lDQWdJR052Ym5OMElHVnljbTl5VUdGNWJHOWhaQ0E5SUhSb2FYTXVkRzlGY25KdmNsQmhlV3h2WVdRb1pYSnliM0lwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ6ZFd4ME9pQkhjbUZ3YUU1dlpHVkZlR1ZqZFhScGIyNVNaWE4xYkhRZ1BTQjdYRzRnSUNBZ0lDQWdJRzV2WkdWSlpEb2djR3hoYms1dlpHVXVhV1FzWEc0Z0lDQWdJQ0FnSUhOMFlYUjFjem9nUjNKaGNHaEZlR1ZqZFhScGIyNVRkR0YwZFhNdVJrRkpURVZFTEZ4dUlDQWdJQ0FnSUNCcGJuQjFkSE1zWEc0Z0lDQWdJQ0FnSUdWeWNtOXlPaUJsY25KdmNsQmhlV3h2WVdRc1hHNGdJQ0FnSUNBZ0lITjBZWEowWldSQmRDeGNiaUFnSUNBZ0lDQWdabWx1YVhOb1pXUkJkQ3hjYmlBZ0lDQWdJQ0FnWlhabGJuUnpPaUJiWFN4Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnSUNCbWNtRnRaUzV5WldOdmNtUk9iMlJsVW1WemRXeDBLSEpsYzNWc2RDazdYRzVjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WlcxcGRFVjJaVzUwS0daeVlXMWxMQ0I3WEc0Z0lDQWdJQ0FnSUhSNWNHVTZJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJVZVhCbExrNVBSRVZmUmtGSlRFVkVMRnh1SUNBZ0lDQWdJQ0J5ZFc1SlpEb2dabkpoYldVdWNuVnVTV1FzWEc0Z0lDQWdJQ0FnSUhkdmNtdG1iRzkzU1dRNklIQnNZVzR1ZDI5eWEyWnNiM2RKWkN4Y2JpQWdJQ0FnSUNBZ2JtOWtaVWxrT2lCd2JHRnVUbTlrWlM1cFpDeGNiaUFnSUNBZ0lDQWdjR0YwYURvZ2JtOWtaVkJoZEdnc1hHNGdJQ0FnSUNBZ0lITjBZWFIxY3pvZ1IzSmhjR2hGZUdWamRYUnBiMjVUZEdGMGRYTXVSa0ZKVEVWRUxGeHVJQ0FnSUNBZ0lDQmxjbkp2Y2pvZ1pYSnliM0pRWVhsc2IyRmtMRnh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaHZjSFJ6TG1aaGFXeEdZWE4wSUQ4L0lIUnlkV1VwSUhSb2NtOTNJR1Z5Y205eU8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWE52YkhabGN5QmhJRzV2WkdVbmN5QnBibkIxZENCMllXeDFaWE1nWm5KdmJTQnBibU52YldsdVp5QmxaR2RsY3k1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ2NtVnpiMngyWlU1dlpHVkpibkIxZEhNb1hHNGdJQ0FnWm5KaGJXVTZJRWR5WVhCb1JYaGxZM1YwYVc5dVJuSmhiV1VzWEc0Z0lDQWdjR3hoYmpvZ1IzSmhjR2hGZUdWamRYUnBiMjVRYkdGdUxGeHVJQ0FnSUhCc1lXNU9iMlJsT2lCSGNtRndhRVY0WldOMWRHbHZibEJzWVc1T2IyUmxYRzRnSUNrNklFZHlZWEJvUlhobFkzVjBhVzl1Vm1Gc2RXVnpJSHRjYmlBZ0lDQmpiMjV6ZENCcGJuQjFkSE02SUVkeVlYQm9SWGhsWTNWMGFXOXVWbUZzZFdWeklEMGdlMzA3WEc0Z0lDQWdZMjl1YzNRZ2FXNWpiMjFwYm1jZ1BTQndiR0Z1TG1sdVkyOXRhVzVuUW5sT2IyUmxMbWRsZENod2JHRnVUbTlrWlM1cFpDa2dQejhnVzEwN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCbFpHZGxJRzltSUdsdVkyOXRhVzVuS1NCN1hHNGdJQ0FnSUNCcGJuQjFkSE5iWldSblpTNTBZWEpuWlhSUWIzSjBYU0E5SUdaeVlXMWxMblpoYkhWbFUzUnZjbVV1WjJWMFVHOXlkQ2hjYmlBZ0lDQWdJQ0FnWldSblpTNXpiM1Z5WTJWT2IyUmxTV1FzWEc0Z0lDQWdJQ0FnSUdWa1oyVXVjMjkxY21ObFVHOXlkRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdsdWNIVjBjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQmRIUmxiWEIwY3lCMGJ5QnlaV0ZrSUdFZ2NHbHVibVZrSUhaaGJIVmxJR1p2Y2lCMGFHVWdibTlrWlM0Z1VtVjBkWEp1Y3lCMGFHVWdZMkZqYUdWa0lHOTFkSEIxZEhOY2JpQWdJQ29nZDJobGJpQmhJSFpoYkdsa0lIQnBibTVsWkNCMllXeDFaU0JsZUdsemRITXNJRzl5SUdCMWJtUmxabWx1WldSZ0lIUnZJSEJ5YjJObFpXUWdkMmwwYUNCdWIzSnRZV3hjYmlBZ0lDb2daWGhsWTNWMGFXOXVMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QjBjbmxRYVc1dVpXUldZV3gxWlNoY2JpQWdJQ0JtY21GdFpUb2dSM0poY0doRmVHVmpkWFJwYjI1R2NtRnRaU3hjYmlBZ0lDQndiR0Z1T2lCSGNtRndhRVY0WldOMWRHbHZibEJzWVc0c1hHNGdJQ0FnY0d4aGJrNXZaR1U2SUVkeVlYQm9SWGhsWTNWMGFXOXVVR3hoYms1dlpHVXNYRzRnSUNBZ2FXNXdkWFJ6T2lCSGNtRndhRVY0WldOMWRHbHZibFpoYkhWbGMxeHVJQ0FwT2lCUWNtOXRhWE5sUEVkeVlYQm9RMkZqYUdWa1ZtRnNkV1VnZkNCMWJtUmxabWx1WldRK0lIdGNiaUFnSUNCamIyNXpkQ0J3YjJ4cFkza2dQU0J1WlhjZ1IzSmhjR2hRYVc1dWFXNW5VRzlzYVdONUtDazdYRzRnSUNBZ2FXWWdLQ0Z3YjJ4cFkza3VjMmh2ZFd4a1ZYTmxVR2x1Ym1Wa1ZtRnNkV1VvY0d4aGJrNXZaR1VwS1NCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnWTI5dWMzUWdjMlZ5ZG1salpTQTlJSFJvYVhNdVkzSmxZWFJsVUdsdWJtbHVaMU5sY25acFkyVW9LVHRjYmlBZ0lDQmpiMjV6ZENCa1pYQkdhVzVuWlhKd2NtbHVkSE1nUFNCMGFHbHpMbU52YlhCMWRHVkVaWEJsYm1SbGJtTjVSbWx1WjJWeWNISnBiblJ6S0daeVlXMWxMQ0J3YkdGdUxDQndiR0Z1VG05a1pTNXBaQ2s3WEc0Z0lDQWdjbVYwZFhKdUlITmxjblpwWTJVdWNtVmhaRkJwYm01bFpGWmhiSFZsS0Z4dUlDQWdJQ0FnY0d4aGJpNTNiM0pyWm14dmR5eGNiaUFnSUNBZ0lIQnNZVzVPYjJSbExGeHVJQ0FnSUNBZ2FXNXdkWFJ6TEZ4dUlDQWdJQ0FnWkdWd1JtbHVaMlZ5Y0hKcGJuUnpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWldOMWNuTnBkbVZzZVNCamIyMXdkWFJsY3lCbWFXNW5aWEp3Y21sdWRITWdabTl5SUdGc2JDQjFjSE4wY21WaGJTQmtaWEJsYm1SbGJtTnBaWE1nYjJZZ1lTQnViMlJsWEc0Z0lDQXFJSFZ6YVc1bklIUm9aU0J5WlhOMWJIUnpJR0ZzY21WaFpIa2dZV05qZFcxMWJHRjBaV1FnYVc0Z2RHaGxJR1p5WVcxbExseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmpiMjF3ZFhSbFJHVndaVzVrWlc1amVVWnBibWRsY25CeWFXNTBjeWhjYmlBZ0lDQm1jbUZ0WlRvZ1IzSmhjR2hGZUdWamRYUnBiMjVHY21GdFpTeGNiaUFnSUNCd2JHRnVPaUJIY21Gd2FFVjRaV04xZEdsdmJsQnNZVzRzWEc0Z0lDQWdibTlrWlVsa09pQnpkSEpwYm1kY2JpQWdLVG9nVW1WamIzSmtQSE4wY21sdVp5d2djM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnYzJWeWRtbGpaU0E5SUhSb2FYTXVZM0psWVhSbFVHbHVibWx1WjFObGNuWnBZMlVvS1R0Y2JpQWdJQ0JqYjI1emRDQmtaWEJTWlhOdmJIWmxjaUE5SUc1bGR5QkhjbUZ3YUZCcGJtNXBibWRFWlhCbGJtUmxibU41VW1WemIyeDJaWElvS1R0Y2JpQWdJQ0JqYjI1emRDQmtaWEJ6SUQwZ1pHVndVbVZ6YjJ4MlpYSXVaMlYwUkdWd1pXNWtaVzVqYVdWektIQnNZVzRzSUc1dlpHVkpaQ2s3WEc0Z0lDQWdZMjl1YzNRZ1ptbHVaMlZ5Y0hKcGJuUnpPaUJTWldOdmNtUThjM1J5YVc1bkxDQnpkSEpwYm1jK0lEMGdlMzA3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JrWlhBZ2IyWWdaR1Z3Y3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYm05a1pTQTlJSEJzWVc0dWJtOWtaWE11Wm1sdVpDZ29iaWtnUFQ0Z2JpNXBaQ0E5UFQwZ1pHVndLVHRjYmlBZ0lDQWdJR2xtSUNodWIyUmxLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JsY0ZKbGMzVnNkQ0E5SUdaeVlXMWxMbTV2WkdWU1pYTjFiSFJ6TG1kbGRDaGtaWEFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwYm5CMWRITWdQU0JrWlhCU1pYTjFiSFEvTG1sdWNIVjBjeUEvUHlCN2ZUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JtVnpkR1ZrUkdWd2N5QTlJSFJvYVhNdVkyOXRjSFYwWlVSbGNHVnVaR1Z1WTNsR2FXNW5aWEp3Y21sdWRITW9abkpoYldVc0lIQnNZVzRzSUdSbGNDazdYRzRnSUNBZ0lDQWdJR1pwYm1kbGNuQnlhVzUwYzF0a1pYQmRJRDBnYzJWeWRtbGpaUzVqYjIxd2RYUmxSbWx1WjJWeWNISnBiblFvWEc0Z0lDQWdJQ0FnSUNBZ2NHeGhiaTUzYjNKclpteHZkeXhjYmlBZ0lDQWdJQ0FnSUNCdWIyUmxMRnh1SUNBZ0lDQWdJQ0FnSUdsdWNIVjBjeXhjYmlBZ0lDQWdJQ0FnSUNCdVpYTjBaV1JFWlhCelhHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJtYVc1blpYSndjbWx1ZEhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbTkxZEdWeklHRWdibTlrWlNkeklHOTFkSEIxZEhNZ2RHOGdaRzkzYm5OMGNtVmhiU0JwYm5CMWRITWdZVzVrSUhkdmNtdG1iRzkzSUc5MWRIQjFkSE11WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhKdmRYUmxUM1YwWjI5cGJtZEZaR2RsY3loY2JpQWdJQ0JtY21GdFpUb2dSM0poY0doRmVHVmpkWFJwYjI1R2NtRnRaU3hjYmlBZ0lDQndiR0Z1T2lCSGNtRndhRVY0WldOMWRHbHZibEJzWVc0c1hHNGdJQ0FnY0d4aGJrNXZaR1U2SUVkeVlYQm9SWGhsWTNWMGFXOXVVR3hoYms1dlpHVXNYRzRnSUNBZ2IzVjBjSFYwY3pvZ1IzSmhjR2hGZUdWamRYUnBiMjVXWVd4MVpYTmNiaUFnS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2IzVjBaMjlwYm1jZ1BTQndiR0Z1TG05MWRHZHZhVzVuUW5sT2IyUmxMbWRsZENod2JHRnVUbTlrWlM1cFpDa2dQejhnVzEwN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCbFpHZGxJRzltSUc5MWRHZHZhVzVuS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWVd4MVpTQTlJRzkxZEhCMWRITmJaV1JuWlM1emIzVnlZMlZRYjNKMFhUdGNiaUFnSUNBZ0lHbG1JQ2hsWkdkbExuUmhjbWRsZEU1dlpHVkpaQ0E5UFQwZ1IxSkJVRWhmVjA5U1MwWk1UMWRmUWs5VlRrUkJVbGtwSUh0Y2JpQWdJQ0FnSUNBZ1puSmhiV1V1ZG1Gc2RXVlRkRzl5WlM1elpYUlhiM0pyWm14dmQwOTFkSEIxZENobFpHZGxMblJoY21kbGRGQnZjblFzSUhaaGJIVmxLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFJvYVhNdVpXMXBkRVYyWlc1MEtHWnlZVzFsTENCN1hHNGdJQ0FnSUNBZ0lIUjVjR1U2SUVkeVlYQm9SWGhsWTNWMGFXOXVSWFpsYm5SVWVYQmxMa1ZFUjBWZlZrRk1WVVZmVWs5VlZFVkVMRnh1SUNBZ0lDQWdJQ0J5ZFc1SlpEb2dabkpoYldVdWNuVnVTV1FzWEc0Z0lDQWdJQ0FnSUhkdmNtdG1iRzkzU1dRNklIQnNZVzR1ZDI5eWEyWnNiM2RKWkN4Y2JpQWdJQ0FnSUNBZ1pXUm5aVWxrT2lCbFpHZGxMbWxrTEZ4dUlDQWdJQ0FnSUNCdWIyUmxTV1E2SUhCc1lXNU9iMlJsTG1sa0xGeHVJQ0FnSUNBZ0lDQndZWFJvT2lCYlhTeGNiaUFnSUNBZ0lDQWdjR0Y1Ykc5aFpEb2dleUJsWkdkbExDQjJZV3gxWlNCOUxGeHVJQ0FnSUNBZ2ZTa3VZMkYwWTJnb0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBdkx5QnZZbk5sY25abGNpQm1ZV2xzZFhKbGN5QnRkWE4wSUc1dmRDQmpjbUZ6YUZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFVnRhWFJ6SUdGdUlHVjJaVzUwTENCeVpXTnZjbVJ6SUdsMElHbHVJSFJvWlNCbWNtRnRaU3dnWVc1a0lHUnBjM0JoZEdOb1pYTWdkRzhnYjJKelpYSjJaWEp6TGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJsYldsMFJYWmxiblFvWEc0Z0lDQWdabkpoYldVNklFZHlZWEJvUlhobFkzVjBhVzl1Um5KaGJXVXNYRzRnSUNBZ2NHRnlkR2xoYkRvZ1VHRnlkR2xoYkR4SGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFBpQW1JSHRjYmlBZ0lDQWdJSFI1Y0dVNklFZHlZWEJvUlhobFkzVjBhVzl1UlhabGJuUlVlWEJsTzF4dUlDQWdJQ0FnY25WdVNXUTZJRWR5WVhCb1VuVnVTV1E3WEc0Z0lDQWdJQ0IzYjNKclpteHZkMGxrT2lCemRISnBibWM3WEc0Z0lDQWdJQ0J3WVhSb09pQnpkSEpwYm1kYlhUdGNiaUFnSUNCOVhHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUdWMlpXNTBJRDBnWm5KaGJXVXVaWFpsYm5SR1lXTjBiM0o1TG1OeVpXRjBaU2g3WEc0Z0lDQWdJQ0JwWkRvZ1hDSmNJaXhjYmlBZ0lDQWdJSE5sY1hWbGJtTmxPaUF3TEZ4dUlDQWdJQ0FnZEdsdFpYTjBZVzF3T2lCdVpYY2dSR0YwWlNncExGeHVJQ0FnSUNBZ0xpNHVjR0Z5ZEdsaGJDeGNiaUFnSUNCOUlHRnpJRTl0YVhROFIzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRDd2dYQ0pwWkZ3aUlId2dYQ0p6WlhGMVpXNWpaVndpSUh3Z1hDSjBhVzFsYzNSaGJYQmNJajRwTzF4dUlDQWdJR1p5WVcxbExtRndjR1Z1WkVWMlpXNTBLR1YyWlc1MEtUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtVnRhWFIwWlhJdWRYQmtZWFJsVDJKelpYSjJaWEp6S0dWMlpXNTBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCTlpYSm5aWE1nWkdWbVlYVnNkQ0J2Y0hScGIyNXpJSGRwZEdnZ2RHaGxJR2RwZG1WdUlHOXdkR2x2Ym5NdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHMWxjbWRsVDNCMGFXOXVjeWhjYmlBZ0lDQnZjSFJwYjI1ek9pQkhjbUZ3YUVWNFpXTjFkR2x2Yms5d2RHbHZibk5jYmlBZ0tUb2dSM0poY0doRmVHVmpkWFJwYjI1UGNIUnBiMjV6SUh0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdZMjl1WTNWeWNtVnVZM2s2SUVkU1FWQklYMFJGUmtGVlRGUmZRMDlPUTFWU1VrVk9RMWtzWEc0Z0lDQWdJQ0JtWVdsc1JtRnpkRG9nZEhKMVpTeGNiaUFnSUNBZ0lIWmhiR2xrWVhSbFNXNXdkWFJ6T2lCMGNuVmxMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlBkWFJ3ZFhSek9pQjBjblZsTEZ4dUlDQWdJQ0FnZFhObFVHbHVibVZrVm1Gc2RXVnpPaUIwY25WbExGeHVJQ0FnSUNBZ2QzSnBkR1ZVYUhKdmRXZG9RMkZqYUdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnY0dGMGFEb2dXMTBzWEc0Z0lDQWdJQ0J0WlhSaFpHRjBZVG9nZTMwc1hHNGdJQ0FnSUNBdUxpNTBhR2x6TG1SbFptRjFiSFJQY0hScGIyNXpMRnh1SUNBZ0lDQWdMaTR1YjNCMGFXOXVjeXhjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGJtVnlZWFJsY3lCaElIVnVhWEYxWlNCeWRXNGdhV1F1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUdkbGJtVnlZWFJsVW5WdVNXUW9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ1oyeHZZbUZzVkdocGN5NWpjbmx3ZEc4L0xuSmhibVJ2YlZWVlNVUS9MaWdwSUQ4L1hHNGdJQ0FnSUNCZ1ozSmhjR2d0Y25WdUxTUjdSR0YwWlM1dWIzY29LWDB0Skh0TllYUm9MbkpoYm1SdmJTZ3BMblJ2VTNSeWFXNW5LRE0yS1M1emJHbGpaU2d5S1gxZ1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjUyWlhKMGN5QmhiaUJsY25KdmNpQnBiblJ2SUdFZ2MyVnlhV0ZzYVhwbFpDQndZWGxzYjJGa0xseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQjBiMFZ5Y205eVVHRjViRzloWkNobGNuSnZjam9nZFc1cmJtOTNiaWs2SUVkeVlYQm9SWGhsWTNWMGFXOXVSWEp5YjNKUVlYbHNiMkZrSUh0Y2JpQWdJQ0JwWmlBb1pYSnliM0lnYVc1emRHRnVZMlZ2WmlCRmNuSnZjaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnYm1GdFpUb2daWEp5YjNJdWJtRnRaU3hjYmlBZ0lDQWdJQ0FnYldWemMyRm5aVG9nWlhKeWIzSXViV1Z6YzJGblpTeGNiaUFnSUNBZ0lDQWdjM1JoWTJzNklHVnljbTl5TG5OMFlXTnJMRnh1SUNBZ0lDQWdJQ0JqYjJSbE9seHVJQ0FnSUNBZ0lDQWdJQ2hsY25KdmNpQmhjeUJoYm5rcExtZHlZWEJvUTI5a1pTQS9QMXh1SUNBZ0lDQWdJQ0FnSUNoMGVYQmxiMllnS0dWeWNtOXlJR0Z6SUdGdWVTa3VZMjlrWlNBOVBUMGdYQ0p1ZFcxaVpYSmNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QlRkSEpwYm1jb0tHVnljbTl5SUdGeklHRnVlU2t1WTI5a1pTbGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ0tHVnljbTl5SUdGeklHRnVlU2t1WTI5a1pTa3NYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZXlCdVlXMWxPaUJjSWxWdWEyNXZkMjVGY25KdmNsd2lMQ0J0WlhOellXZGxPaUJUZEhKcGJtY29aWEp5YjNJcElIMDdYRzRnSUgxY2JuMWNiaUpkZlE9PSJdfQ==
|
|
@@ -28,5 +28,5 @@ class GraphExecutionFrame {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
exports.GraphExecutionFrame = GraphExecutionFrame;
|
|
31
|
-
//# sourceMappingURL=
|
|
32
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25GcmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ncmFwaC9leGVjdXRpb24vR3JhcGhFeGVjdXRpb25GcmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQTs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFXOUIsWUFDRSxLQUFpQixFQUNqQixJQUF3QixFQUN4QixVQUEyQixFQUMzQixZQUF3QztRQVRqQyxnQkFBVyxHQUEwQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQy9ELFdBQU0sR0FBMEIsRUFBRSxDQUFDO1FBVTFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLGdCQUFnQixDQUFDLE1BQWdDO1FBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELCtDQUErQztJQUMvQyxXQUFXLENBQUMsS0FBMEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXhlY3V0aW9uL0dyYXBoRXhlY3V0aW9uRnJhbWVcbiAqIEBzdW1tYXJ5IFBlci1ydW4gc3RhdGUgY29udGFpbmVyIGZvciBncmFwaCBleGVjdXRpb24uXG4gKiBAZGVzY3JpcHRpb24gSG9sZHMgdGhlIHJ1biBpZCwgZXhlY3V0aW9uIHBsYW4sIHZhbHVlIHN0b3JlLCBhY2N1bXVsYXRlZCBub2RlIHJlc3VsdHMsIGV2ZW50cywgYW5kIHRpbWluZyBmb3IgYSBzaW5nbGUgd29ya2Zsb3cgZXhlY3V0aW9uLlxuICovXG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uUGxhbiB9IGZyb20gXCIuLi9wbGFubmluZy9HcmFwaEV4ZWN1dGlvblBsYW5cIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhWYWx1ZVN0b3JlIH0gZnJvbSBcIi4uL3N0b3JlL0dyYXBoVmFsdWVTdG9yZVwiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaEV4ZWN1dGlvbkV2ZW50RmFjdG9yeSB9IGZyb20gXCIuLi9ldmVudHMvR3JhcGhFeGVjdXRpb25FdmVudEZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHtcbiAgR3JhcGhFeGVjdXRpb25FdmVudCxcbiAgR3JhcGhOb2RlRXhlY3V0aW9uUmVzdWx0LFxuICBHcmFwaFJ1bklkLFxufSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBNdXRhYmxlIHN0YXRlIGZvciBhIHNpbmdsZSBncmFwaCBleGVjdXRpb24gcnVuLlxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhFeGVjdXRpb25GcmFtZSB7XG4gIHJlYWRvbmx5IHJ1bklkOiBHcmFwaFJ1bklkO1xuICByZWFkb25seSBwbGFuOiBHcmFwaEV4ZWN1dGlvblBsYW47XG4gIHJlYWRvbmx5IHZhbHVlU3RvcmU6IEdyYXBoVmFsdWVTdG9yZTtcbiAgcmVhZG9ubHkgZXZlbnRGYWN0b3J5OiBHcmFwaEV4ZWN1dGlvbkV2ZW50RmFjdG9yeTtcbiAgcmVhZG9ubHkgc3RhcnRlZEF0OiBEYXRlO1xuICByZWFkb25seSBub2RlUmVzdWx0czogTWFwPHN0cmluZywgR3JhcGhOb2RlRXhlY3V0aW9uUmVzdWx0PiA9IG5ldyBNYXAoKTtcbiAgcmVhZG9ubHkgZXZlbnRzOiBHcmFwaEV4ZWN1dGlvbkV2ZW50W10gPSBbXTtcblxuICBmaW5pc2hlZEF0PzogRGF0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBydW5JZDogR3JhcGhSdW5JZCxcbiAgICBwbGFuOiBHcmFwaEV4ZWN1dGlvblBsYW4sXG4gICAgdmFsdWVTdG9yZTogR3JhcGhWYWx1ZVN0b3JlLFxuICAgIGV2ZW50RmFjdG9yeTogR3JhcGhFeGVjdXRpb25FdmVudEZhY3RvcnlcbiAgKSB7XG4gICAgdGhpcy5ydW5JZCA9IHJ1bklkO1xuICAgIHRoaXMucGxhbiA9IHBsYW47XG4gICAgdGhpcy52YWx1ZVN0b3JlID0gdmFsdWVTdG9yZTtcbiAgICB0aGlzLmV2ZW50RmFjdG9yeSA9IGV2ZW50RmFjdG9yeTtcbiAgICB0aGlzLnN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7XG4gIH1cblxuICAvKiogUmVjb3JkcyBhIG5vZGUgZXhlY3V0aW9uIHJlc3VsdC4gKi9cbiAgcmVjb3JkTm9kZVJlc3VsdChyZXN1bHQ6IEdyYXBoTm9kZUV4ZWN1dGlvblJlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMubm9kZVJlc3VsdHMuc2V0KHJlc3VsdC5ub2RlSWQsIHJlc3VsdCk7XG4gIH1cblxuICAvKiogQXBwZW5kcyBhbiBldmVudCB0byB0aGUgcnVuJ3MgZXZlbnQgbG9nLiAqL1xuICBhcHBlbmRFdmVudChldmVudDogR3JhcGhFeGVjdXRpb25FdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnRzLnB1c2goZXZlbnQpO1xuICB9XG5cbiAgLyoqIE1hcmtzIHRoZSBydW4gYXMgZmluaXNoZWQuICovXG4gIGZpbmlzaCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmlzaGVkQXQgPSBuZXcgRGF0ZSgpO1xuICB9XG59XG4iXX0=
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25GcmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdyYXBoRXhlY3V0aW9uRnJhbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUM1QixZQUFZLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFlBQVk7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsdUNBQXVDO0lBQ3ZDLGdCQUFnQixDQUFDLE1BQU07UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsK0NBQStDO0lBQy9DLFdBQVcsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELGlDQUFpQztJQUNqQyxNQUFNO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0FDSjtBQXRCRCxrREFzQkM7QUFDRCxrOEdBQWs4RyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTXV0YWJsZSBzdGF0ZSBmb3IgYSBzaW5nbGUgZ3JhcGggZXhlY3V0aW9uIHJ1bi5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoRXhlY3V0aW9uRnJhbWUge1xuICAgIGNvbnN0cnVjdG9yKHJ1bklkLCBwbGFuLCB2YWx1ZVN0b3JlLCBldmVudEZhY3RvcnkpIHtcbiAgICAgICAgdGhpcy5ub2RlUmVzdWx0cyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5ldmVudHMgPSBbXTtcbiAgICAgICAgdGhpcy5ydW5JZCA9IHJ1bklkO1xuICAgICAgICB0aGlzLnBsYW4gPSBwbGFuO1xuICAgICAgICB0aGlzLnZhbHVlU3RvcmUgPSB2YWx1ZVN0b3JlO1xuICAgICAgICB0aGlzLmV2ZW50RmFjdG9yeSA9IGV2ZW50RmFjdG9yeTtcbiAgICAgICAgdGhpcy5zdGFydGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICAvKiogUmVjb3JkcyBhIG5vZGUgZXhlY3V0aW9uIHJlc3VsdC4gKi9cbiAgICByZWNvcmROb2RlUmVzdWx0KHJlc3VsdCkge1xuICAgICAgICB0aGlzLm5vZGVSZXN1bHRzLnNldChyZXN1bHQubm9kZUlkLCByZXN1bHQpO1xuICAgIH1cbiAgICAvKiogQXBwZW5kcyBhbiBldmVudCB0byB0aGUgcnVuJ3MgZXZlbnQgbG9nLiAqL1xuICAgIGFwcGVuZEV2ZW50KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZXZlbnRzLnB1c2goZXZlbnQpO1xuICAgIH1cbiAgICAvKiogTWFya3MgdGhlIHJ1biBhcyBmaW5pc2hlZC4gKi9cbiAgICBmaW5pc2goKSB7XG4gICAgICAgIHRoaXMuZmluaXNoZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUjNKaGNHaEZlR1ZqZFhScGIyNUdjbUZ0WlM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDNOeVl5OW5jbUZ3YUM5bGVHVmpkWFJwYjI0dlIzSmhjR2hGZUdWamRYUnBiMjVHY21GdFpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZqUVRzN1IwRkZSenRCUVVOSUxFMUJRVTBzVDBGQlR5eHRRa0ZCYlVJN1NVRlhPVUlzV1VGRFJTeExRVUZwUWl4RlFVTnFRaXhKUVVGM1FpeEZRVU40UWl4VlFVRXlRaXhGUVVNelFpeFpRVUYzUXp0UlFWUnFReXhuUWtGQlZ5eEhRVUV3UXl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJReTlFTEZkQlFVMHNSMEZCTUVJc1JVRkJSU3hEUVVGRE8xRkJWVEZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1ZVRkJWU3hEUVVGRE8xRkJRemRDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1dVRkJXU3hEUVVGRE8xRkJRMnBETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU01UWl4RFFVRkRPMGxCUlVRc2RVTkJRWFZETzBsQlEzWkRMR2RDUVVGblFpeERRVUZETEUxQlFXZERPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdTVUZET1VNc1EwRkJRenRKUVVWRUxDdERRVUVyUXp0SlFVTXZReXhYUVVGWExFTkJRVU1zUzBGQk1FSTdVVUZEY0VNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRNVUlzUTBGQlF6dEpRVVZFTEdsRFFVRnBRenRKUVVOcVF5eE5RVUZOTzFGQlEwb3NTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETzBsQlF5OUNMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUcxdlpIVnNaU0JwYm5SbFozSmhkR2x2Ym5NdlozSmhjR2d2WlhobFkzVjBhVzl1TDBkeVlYQm9SWGhsWTNWMGFXOXVSbkpoYldWY2JpQXFJRUJ6ZFcxdFlYSjVJRkJsY2kxeWRXNGdjM1JoZEdVZ1kyOXVkR0ZwYm1WeUlHWnZjaUJuY21Gd2FDQmxlR1ZqZFhScGIyNHVYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdTRzlzWkhNZ2RHaGxJSEoxYmlCcFpDd2daWGhsWTNWMGFXOXVJSEJzWVc0c0lIWmhiSFZsSUhOMGIzSmxMQ0JoWTJOMWJYVnNZWFJsWkNCdWIyUmxJSEpsYzNWc2RITXNJR1YyWlc1MGN5d2dZVzVrSUhScGJXbHVaeUJtYjNJZ1lTQnphVzVuYkdVZ2QyOXlhMlpzYjNjZ1pYaGxZM1YwYVc5dUxseHVJQ292WEc1cGJYQnZjblFnZEhsd1pTQjdJRWR5WVhCb1JYaGxZM1YwYVc5dVVHeGhiaUI5SUdaeWIyMGdYQ0l1TGk5d2JHRnVibWx1Wnk5SGNtRndhRVY0WldOMWRHbHZibEJzWVc1Y0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1IzSmhjR2hXWVd4MVpWTjBiM0psSUgwZ1puSnZiU0JjSWk0dUwzTjBiM0psTDBkeVlYQm9WbUZzZFdWVGRHOXlaVndpTzF4dWFXMXdiM0owSUhSNWNHVWdleUJIY21Gd2FFVjRaV04xZEdsdmJrVjJaVzUwUm1GamRHOXllU0I5SUdaeWIyMGdYQ0l1TGk5bGRtVnVkSE12UjNKaGNHaEZlR1ZqZFhScGIyNUZkbVZ1ZEVaaFkzUnZjbmxjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHRjYmlBZ1IzSmhjR2hGZUdWamRYUnBiMjVGZG1WdWRDeGNiaUFnUjNKaGNHaE9iMlJsUlhobFkzVjBhVzl1VW1WemRXeDBMRnh1SUNCSGNtRndhRkoxYmtsa0xGeHVmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYmx4dUx5b3FYRzRnS2lCTmRYUmhZbXhsSUhOMFlYUmxJR1p2Y2lCaElITnBibWRzWlNCbmNtRndhQ0JsZUdWamRYUnBiMjRnY25WdUxseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdSM0poY0doRmVHVmpkWFJwYjI1R2NtRnRaU0I3WEc0Z0lISmxZV1J2Ym14NUlISjFia2xrT2lCSGNtRndhRkoxYmtsa08xeHVJQ0J5WldGa2IyNXNlU0J3YkdGdU9pQkhjbUZ3YUVWNFpXTjFkR2x2YmxCc1lXNDdYRzRnSUhKbFlXUnZibXg1SUhaaGJIVmxVM1J2Y21VNklFZHlZWEJvVm1Gc2RXVlRkRzl5WlR0Y2JpQWdjbVZoWkc5dWJIa2daWFpsYm5SR1lXTjBiM0o1T2lCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFJtRmpkRzl5ZVR0Y2JpQWdjbVZoWkc5dWJIa2djM1JoY25SbFpFRjBPaUJFWVhSbE8xeHVJQ0J5WldGa2IyNXNlU0J1YjJSbFVtVnpkV3gwY3pvZ1RXRndQSE4wY21sdVp5d2dSM0poY0doT2IyUmxSWGhsWTNWMGFXOXVVbVZ6ZFd4MFBpQTlJRzVsZHlCTllYQW9LVHRjYmlBZ2NtVmhaRzl1YkhrZ1pYWmxiblJ6T2lCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFcxMGdQU0JiWFR0Y2JseHVJQ0JtYVc1cGMyaGxaRUYwUHpvZ1JHRjBaVHRjYmx4dUlDQmpiMjV6ZEhKMVkzUnZjaWhjYmlBZ0lDQnlkVzVKWkRvZ1IzSmhjR2hTZFc1SlpDeGNiaUFnSUNCd2JHRnVPaUJIY21Gd2FFVjRaV04xZEdsdmJsQnNZVzRzWEc0Z0lDQWdkbUZzZFdWVGRHOXlaVG9nUjNKaGNHaFdZV3gxWlZOMGIzSmxMRnh1SUNBZ0lHVjJaVzUwUm1GamRHOXllVG9nUjNKaGNHaEZlR1ZqZFhScGIyNUZkbVZ1ZEVaaFkzUnZjbmxjYmlBZ0tTQjdYRzRnSUNBZ2RHaHBjeTV5ZFc1SlpDQTlJSEoxYmtsa08xeHVJQ0FnSUhSb2FYTXVjR3hoYmlBOUlIQnNZVzQ3WEc0Z0lDQWdkR2hwY3k1MllXeDFaVk4wYjNKbElEMGdkbUZzZFdWVGRHOXlaVHRjYmlBZ0lDQjBhR2x6TG1WMlpXNTBSbUZqZEc5eWVTQTlJR1YyWlc1MFJtRmpkRzl5ZVR0Y2JpQWdJQ0IwYUdsekxuTjBZWEowWldSQmRDQTlJRzVsZHlCRVlYUmxLQ2s3WEc0Z0lIMWNibHh1SUNBdktpb2dVbVZqYjNKa2N5QmhJRzV2WkdVZ1pYaGxZM1YwYVc5dUlISmxjM1ZzZEM0Z0tpOWNiaUFnY21WamIzSmtUbTlrWlZKbGMzVnNkQ2h5WlhOMWJIUTZJRWR5WVhCb1RtOWtaVVY0WldOMWRHbHZibEpsYzNWc2RDazZJSFp2YVdRZ2UxeHVJQ0FnSUhSb2FYTXVibTlrWlZKbGMzVnNkSE11YzJWMEtISmxjM1ZzZEM1dWIyUmxTV1FzSUhKbGMzVnNkQ2s3WEc0Z0lIMWNibHh1SUNBdktpb2dRWEJ3Wlc1a2N5QmhiaUJsZG1WdWRDQjBieUIwYUdVZ2NuVnVKM01nWlhabGJuUWdiRzluTGlBcUwxeHVJQ0JoY0hCbGJtUkZkbVZ1ZENobGRtVnVkRG9nUjNKaGNHaEZlR1ZqZFhScGIyNUZkbVZ1ZENrNklIWnZhV1FnZTF4dUlDQWdJSFJvYVhNdVpYWmxiblJ6TG5CMWMyZ29aWFpsYm5RcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xSUUxaGNtdHpJSFJvWlNCeWRXNGdZWE1nWm1sdWFYTm9aV1F1SUNvdlhHNGdJR1pwYm1semFDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbVpwYm1semFHVmtRWFFnUFNCdVpYY2dSR0YwWlNncE8xeHVJQ0I5WEc1OVhHNGlYWDA9Il19
|
|
@@ -26,5 +26,5 @@ function buildGraphExecutionResult(frame, workflow, inputs, status, metadata) {
|
|
|
26
26
|
metadata,
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
//# sourceMappingURL=
|
|
30
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25SZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZXhlY3V0aW9uL0dyYXBoRXhlY3V0aW9uUmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxLQUEwQixFQUMxQixRQUFpQyxFQUNqQyxNQUE0QixFQUM1QixNQUE0QixFQUM1QixRQUFrQztJQUVsQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDckQsTUFBTSxXQUFXLEdBQTZDLEVBQUUsQ0FBQztJQUNqRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdDLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUEwQixDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELE1BQU0sS0FBSyxHQUFlLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFFdEMsT0FBTztRQUNMLEtBQUs7UUFDTCxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUk7UUFDekIsTUFBTTtRQUNOLFFBQVE7UUFDUixNQUFNLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRTtRQUNyQixPQUFPO1FBQ1AsV0FBVztRQUNYLE1BQU07UUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLFFBQVE7S0FDVCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXhlY3V0aW9uL0dyYXBoRXhlY3V0aW9uUmVzdWx0XG4gKiBAc3VtbWFyeSBIZWxwZXIgZm9yIGJ1aWxkaW5nIEdyYXBoRXhlY3V0aW9uUmVzdWx0IG9iamVjdHMuXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgYSBidWlsZGVyIGZ1bmN0aW9uIHRoYXQgYXNzZW1ibGVzIGEgcmVzdWx0IGZyb20gYSBmcmFtZS5cbiAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaEV4ZWN1dGlvbkZyYW1lIH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25GcmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaEV4ZWN1dGlvbkV2ZW50LCBHcmFwaEV4ZWN1dGlvblJlc3VsdCwgR3JhcGhFeGVjdXRpb25WYWx1ZXMsIEdyYXBoTm9kZUV4ZWN1dGlvblJlc3VsdCwgR3JhcGhSdW5JZCB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaEV4ZWN1dGlvblN0YXR1cyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMvZ3JhcGhcIjtcblxuLyoqXG4gKiBCdWlsZHMgYSB7QGxpbmsgR3JhcGhFeGVjdXRpb25SZXN1bHR9IGZyb20gYSBjb21wbGV0ZWQgZnJhbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEdyYXBoRXhlY3V0aW9uUmVzdWx0KFxuICBmcmFtZTogR3JhcGhFeGVjdXRpb25GcmFtZSxcbiAgd29ya2Zsb3c6IEdyYXBoV29ya2Zsb3dEZWZpbml0aW9uLFxuICBpbnB1dHM6IEdyYXBoRXhlY3V0aW9uVmFsdWVzLFxuICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLFxuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4pOiBHcmFwaEV4ZWN1dGlvblJlc3VsdCB7XG4gIGNvbnN0IG91dHB1dHMgPSBmcmFtZS52YWx1ZVN0b3JlLmdldFdvcmtmbG93VmFsdWVzKCk7XG4gIGNvbnN0IG5vZGVSZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaE5vZGVFeGVjdXRpb25SZXN1bHQ+ID0ge307XG4gIGZvciAoY29uc3QgW2lkLCByZXN1bHRdIG9mIGZyYW1lLm5vZGVSZXN1bHRzKSB7XG4gICAgbm9kZVJlc3VsdHNbaWRdID0gcmVzdWx0O1xuICB9XG4gIGNvbnN0IGV2ZW50czogR3JhcGhFeGVjdXRpb25FdmVudFtdID0gWy4uLmZyYW1lLmV2ZW50c107XG4gIGNvbnN0IHJ1bklkOiBHcmFwaFJ1bklkID0gZnJhbWUucnVuSWQ7XG5cbiAgcmV0dXJuIHtcbiAgICBydW5JZCxcbiAgICB3b3JrZmxvd0lkOiB3b3JrZmxvdy5uYW1lLFxuICAgIHN0YXR1cyxcbiAgICB3b3JrZmxvdyxcbiAgICBpbnB1dHM6IHsgLi4uaW5wdXRzIH0sXG4gICAgb3V0cHV0cyxcbiAgICBub2RlUmVzdWx0cyxcbiAgICBldmVudHMsXG4gICAgc3RhcnRlZEF0OiBmcmFtZS5zdGFydGVkQXQsXG4gICAgZmluaXNoZWRBdDogZnJhbWUuZmluaXNoZWRBdCxcbiAgICBtZXRhZGF0YSxcbiAgfTtcbn1cbiJdfQ==
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25SZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJHcmFwaEV4ZWN1dGlvblJlc3VsdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLDhEQXFCQztBQXhCRDs7R0FFRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRO0lBQy9FLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNyRCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDdkIsS0FBSyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsT0FBTztRQUNILEtBQUs7UUFDTCxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUk7UUFDekIsTUFBTTtRQUNOLFFBQVE7UUFDUixNQUFNLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRTtRQUNyQixPQUFPO1FBQ1AsV0FBVztRQUNYLE1BQU07UUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLFFBQVE7S0FDWCxDQUFDO0FBQ04sQ0FBQztBQUNELGtnR0FBa2dHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWlsZHMgYSB7QGxpbmsgR3JhcGhFeGVjdXRpb25SZXN1bHR9IGZyb20gYSBjb21wbGV0ZWQgZnJhbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEdyYXBoRXhlY3V0aW9uUmVzdWx0KGZyYW1lLCB3b3JrZmxvdywgaW5wdXRzLCBzdGF0dXMsIG1ldGFkYXRhKSB7XG4gICAgY29uc3Qgb3V0cHV0cyA9IGZyYW1lLnZhbHVlU3RvcmUuZ2V0V29ya2Zsb3dWYWx1ZXMoKTtcbiAgICBjb25zdCBub2RlUmVzdWx0cyA9IHt9O1xuICAgIGZvciAoY29uc3QgW2lkLCByZXN1bHRdIG9mIGZyYW1lLm5vZGVSZXN1bHRzKSB7XG4gICAgICAgIG5vZGVSZXN1bHRzW2lkXSA9IHJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRzID0gWy4uLmZyYW1lLmV2ZW50c107XG4gICAgY29uc3QgcnVuSWQgPSBmcmFtZS5ydW5JZDtcbiAgICByZXR1cm4ge1xuICAgICAgICBydW5JZCxcbiAgICAgICAgd29ya2Zsb3dJZDogd29ya2Zsb3cubmFtZSxcbiAgICAgICAgc3RhdHVzLFxuICAgICAgICB3b3JrZmxvdyxcbiAgICAgICAgaW5wdXRzOiB7IC4uLmlucHV0cyB9LFxuICAgICAgICBvdXRwdXRzLFxuICAgICAgICBub2RlUmVzdWx0cyxcbiAgICAgICAgZXZlbnRzLFxuICAgICAgICBzdGFydGVkQXQ6IGZyYW1lLnN0YXJ0ZWRBdCxcbiAgICAgICAgZmluaXNoZWRBdDogZnJhbWUuZmluaXNoZWRBdCxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVIzSmhjR2hGZUdWamRYUnBiMjVTWlhOMWJIUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WjNKaGNHZ3ZaWGhsWTNWMGFXOXVMMGR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFWVkJPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEhsQ1FVRjVRaXhEUVVOMlF5eExRVUV3UWl4RlFVTXhRaXhSUVVGcFF5eEZRVU5xUXl4TlFVRTBRaXhGUVVNMVFpeE5RVUUwUWl4RlFVTTFRaXhSUVVGclF6dEpRVVZzUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxFTkJRVU03U1VGRGNrUXNUVUZCVFN4WFFVRlhMRWRCUVRaRExFVkJRVVVzUTBGQlF6dEpRVU5xUlN4TFFVRkxMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzVFVGQlRTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRemRETEZkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRE0wSXNRMEZCUXp0SlFVTkVMRTFCUVUwc1RVRkJUU3hIUVVFd1FpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRM2hFTEUxQlFVMHNTMEZCU3l4SFFVRmxMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRmRFTXNUMEZCVHp0UlFVTk1MRXRCUVVzN1VVRkRUQ3hWUVVGVkxFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVazdVVUZEZWtJc1RVRkJUVHRSUVVOT0xGRkJRVkU3VVVGRFVpeE5RVUZOTEVWQlFVVXNSVUZCUlN4SFFVRkhMRTFCUVUwc1JVRkJSVHRSUVVOeVFpeFBRVUZQTzFGQlExQXNWMEZCVnp0UlFVTllMRTFCUVUwN1VVRkRUaXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEZOQlFWTTdVVUZETVVJc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFZRVUZWTzFGQlF6VkNMRkZCUVZFN1MwRkRWQ3hEUVVGRE8wRkJRMG9zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dRRzF2WkhWc1pTQnBiblJsWjNKaGRHbHZibk12WjNKaGNHZ3ZaWGhsWTNWMGFXOXVMMGR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwWEc0Z0tpQkFjM1Z0YldGeWVTQklaV3h3WlhJZ1ptOXlJR0oxYVd4a2FXNW5JRWR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwSUc5aWFtVmpkSE11WEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnVUhKdmRtbGtaWE1nWVNCaWRXbHNaR1Z5SUdaMWJtTjBhVzl1SUhSb1lYUWdZWE56WlcxaWJHVnpJR0VnY21WemRXeDBJR1p5YjIwZ1lTQm1jbUZ0WlM1Y2JpQXFMMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkhjbUZ3YUVWNFpXTjFkR2x2YmtaeVlXMWxJSDBnWm5KdmJTQmNJaTR2UjNKaGNHaEZlR1ZqZFhScGIyNUdjbUZ0WlZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZXlCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MExDQkhjbUZ3YUVWNFpXTjFkR2x2YmxKbGMzVnNkQ3dnUjNKaGNHaEZlR1ZqZFhScGIyNVdZV3gxWlhNc0lFZHlZWEJvVG05a1pVVjRaV04xZEdsdmJsSmxjM1ZzZEN3Z1IzSmhjR2hTZFc1SlpDQjlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkhjbUZ3YUVWNFpXTjFkR2x2YmxOMFlYUjFjeUI5SUdaeWIyMGdYQ0l1TGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1IzSmhjR2hYYjNKclpteHZkMFJsWm1sdWFYUnBiMjRnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDNWcExXUmxZMjl5WVhSdmNuTXZaM0poY0doY0lqdGNibHh1THlvcVhHNGdLaUJDZFdsc1pITWdZU0I3UUd4cGJtc2dSM0poY0doRmVHVmpkWFJwYjI1U1pYTjFiSFI5SUdaeWIyMGdZU0JqYjIxd2JHVjBaV1FnWm5KaGJXVXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaWRXbHNaRWR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwS0Z4dUlDQm1jbUZ0WlRvZ1IzSmhjR2hGZUdWamRYUnBiMjVHY21GdFpTeGNiaUFnZDI5eWEyWnNiM2M2SUVkeVlYQm9WMjl5YTJac2IzZEVaV1pwYm1sMGFXOXVMRnh1SUNCcGJuQjFkSE02SUVkeVlYQm9SWGhsWTNWMGFXOXVWbUZzZFdWekxGeHVJQ0J6ZEdGMGRYTTZJRWR5WVhCb1JYaGxZM1YwYVc5dVUzUmhkSFZ6TEZ4dUlDQnRaWFJoWkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K1hHNHBPaUJIY21Gd2FFVjRaV04xZEdsdmJsSmxjM1ZzZENCN1hHNGdJR052Ym5OMElHOTFkSEIxZEhNZ1BTQm1jbUZ0WlM1MllXeDFaVk4wYjNKbExtZGxkRmR2Y210bWJHOTNWbUZzZFdWektDazdYRzRnSUdOdmJuTjBJRzV2WkdWU1pYTjFiSFJ6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JIY21Gd2FFNXZaR1ZGZUdWamRYUnBiMjVTWlhOMWJIUStJRDBnZTMwN1hHNGdJR1p2Y2lBb1kyOXVjM1FnVzJsa0xDQnlaWE4xYkhSZElHOW1JR1p5WVcxbExtNXZaR1ZTWlhOMWJIUnpLU0I3WEc0Z0lDQWdibTlrWlZKbGMzVnNkSE5iYVdSZElEMGdjbVZ6ZFd4ME8xeHVJQ0I5WEc0Z0lHTnZibk4wSUdWMlpXNTBjem9nUjNKaGNHaEZlR1ZqZFhScGIyNUZkbVZ1ZEZ0ZElEMGdXeTR1TG1aeVlXMWxMbVYyWlc1MGMxMDdYRzRnSUdOdmJuTjBJSEoxYmtsa09pQkhjbUZ3YUZKMWJrbGtJRDBnWm5KaGJXVXVjblZ1U1dRN1hHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQnlkVzVKWkN4Y2JpQWdJQ0IzYjNKclpteHZkMGxrT2lCM2IzSnJabXh2ZHk1dVlXMWxMRnh1SUNBZ0lITjBZWFIxY3l4Y2JpQWdJQ0IzYjNKclpteHZkeXhjYmlBZ0lDQnBibkIxZEhNNklIc2dMaTR1YVc1d2RYUnpJSDBzWEc0Z0lDQWdiM1YwY0hWMGN5eGNiaUFnSUNCdWIyUmxVbVZ6ZFd4MGN5eGNiaUFnSUNCbGRtVnVkSE1zWEc0Z0lDQWdjM1JoY25SbFpFRjBPaUJtY21GdFpTNXpkR0Z5ZEdWa1FYUXNYRzRnSUNBZ1ptbHVhWE5vWldSQmREb2dabkpoYldVdVptbHVhWE5vWldSQmRDeGNiaUFnSUNCdFpYUmhaR0YwWVN4Y2JpQWdmVHRjYm4xY2JpSmRmUT09Il19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=
|
|
4
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZXhlY3V0aW9uL0dyYXBoTm9kZUV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2V4ZWN1dGlvbi9HcmFwaE5vZGVFeGVjdXRvclxuICogQHN1bW1hcnkgSW50ZXJmYWNlIGltcGxlbWVudGVkIGJ5IGV2ZXJ5IGdyYXBoIG5vZGUgZXhlY3V0b3IuXG4gKiBAZGVzY3JpcHRpb24gQSBub2RlIGV4ZWN1dG9yIHJlY2VpdmVzIHRoZSBub2RlJ3MgcmVzb2x2ZWQgaW5wdXQgdmFsdWVzIGFuZCBhIHtAbGluayBHcmFwaEV4ZWN1dGlvbkNvbnRleHR9LCBhbmQgcmV0dXJucyB0aGUgbm9kZSdzIG91dHB1dCB2YWx1ZXMuXG4gKi9cbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25Db250ZXh0IH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uVmFsdWVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbi8qKlxuICogRXhlY3V0b3IgZm9yIGEgc3BlY2lmaWMgZ3JhcGggbm9kZSBraW5kLlxuICpcbiAqIEltcGxlbWVudGF0aW9ucyBhcmUgcmVnaXN0ZXJlZCBpbiB0aGUge0BsaW5rIEdyYXBoTm9kZUV4ZWN1dG9yUmVnaXN0cnl9XG4gKiBhbmQgcmVzb2x2ZWQgYnkgdGhlIGVuZ2luZSB1c2luZyB0aGUgbm9kZSdzIGBraW5kYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaE5vZGVFeGVjdXRvcjxcbiAgSW5wdXQgZXh0ZW5kcyBHcmFwaEV4ZWN1dGlvblZhbHVlcyA9IEdyYXBoRXhlY3V0aW9uVmFsdWVzLFxuICBPdXRwdXQgZXh0ZW5kcyBHcmFwaEV4ZWN1dGlvblZhbHVlcyA9IEdyYXBoRXhlY3V0aW9uVmFsdWVzLFxuPiB7XG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgbm9kZSBsb2dpYy5cbiAgICpcbiAgICogQHBhcmFtIGlucHV0IC0gUmVzb2x2ZWQgaW5wdXQgdmFsdWVzIGtleWVkIGJ5IHBvcnQgbmFtZS5cbiAgICogQHBhcmFtIGNvbnRleHQgLSBEZWNhZiBjb250ZXh0IGZvciBlbWl0dGluZyBwcm9ncmVzcyBhbmQgZXZlbnRzLlxuICAgKiBAcmV0dXJucyBUaGUgbm9kZSdzIG91dHB1dCB2YWx1ZXMga2V5ZWQgYnkgcG9ydCBuYW1lLlxuICAgKi9cbiAgZXhlY3V0ZShcbiAgICBpbnB1dDogSW5wdXQsXG4gICAgY29udGV4dDogR3JhcGhFeGVjdXRpb25Db250ZXh0XG4gICk6IFByb21pc2U8T3V0cHV0PiB8IE91dHB1dDtcbn1cbiJdfQ==
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJHcmFwaE5vZGVFeGVjdXRvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGt2REFBa3ZEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUjNKaGNHaE9iMlJsUlhobFkzVjBiM0l1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlozSmhjR2d2WlhobFkzVjBhVzl1TDBkeVlYQm9UbTlrWlVWNFpXTjFkRzl5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMMmR5WVhCb0wyVjRaV04xZEdsdmJpOUhjbUZ3YUU1dlpHVkZlR1ZqZFhSdmNseHVJQ29nUUhOMWJXMWhjbmtnU1c1MFpYSm1ZV05sSUdsdGNHeGxiV1Z1ZEdWa0lHSjVJR1YyWlhKNUlHZHlZWEJvSUc1dlpHVWdaWGhsWTNWMGIzSXVYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRU0J1YjJSbElHVjRaV04xZEc5eUlISmxZMlZwZG1WeklIUm9aU0J1YjJSbEozTWdjbVZ6YjJ4MlpXUWdhVzV3ZFhRZ2RtRnNkV1Z6SUdGdVpDQmhJSHRBYkdsdWF5QkhjbUZ3YUVWNFpXTjFkR2x2YmtOdmJuUmxlSFI5TENCaGJtUWdjbVYwZFhKdWN5QjBhR1VnYm05a1pTZHpJRzkxZEhCMWRDQjJZV3gxWlhNdVhHNGdLaTljYm1sdGNHOXlkQ0IwZVhCbElIc2dSM0poY0doRmVHVmpkWFJwYjI1RGIyNTBaWGgwSUgwZ1puSnZiU0JjSWk0dlIzSmhjR2hGZUdWamRYUnBiMjVEYjI1MFpYaDBYQ0k3WEc1cGJYQnZjblFnZEhsd1pTQjdJRWR5WVhCb1JYaGxZM1YwYVc5dVZtRnNkV1Z6SUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNWNiaThxS2x4dUlDb2dSWGhsWTNWMGIzSWdabTl5SUdFZ2MzQmxZMmxtYVdNZ1ozSmhjR2dnYm05a1pTQnJhVzVrTGx4dUlDcGNiaUFxSUVsdGNHeGxiV1Z1ZEdGMGFXOXVjeUJoY21VZ2NtVm5hWE4wWlhKbFpDQnBiaUIwYUdVZ2UwQnNhVzVySUVkeVlYQm9UbTlrWlVWNFpXTjFkRzl5VW1WbmFYTjBjbmw5WEc0Z0tpQmhibVFnY21WemIyeDJaV1FnWW5rZ2RHaGxJR1Z1WjJsdVpTQjFjMmx1WnlCMGFHVWdibTlrWlNkeklHQnJhVzVrWUM1Y2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JIY21Gd2FFNXZaR1ZGZUdWamRYUnZjanhjYmlBZ1NXNXdkWFFnWlhoMFpXNWtjeUJIY21Gd2FFVjRaV04xZEdsdmJsWmhiSFZsY3lBOUlFZHlZWEJvUlhobFkzVjBhVzl1Vm1Gc2RXVnpMRnh1SUNCUGRYUndkWFFnWlhoMFpXNWtjeUJIY21Gd2FFVjRaV04xZEdsdmJsWmhiSFZsY3lBOUlFZHlZWEJvUlhobFkzVjBhVzl1Vm1Gc2RXVnpMRnh1UGlCN1hHNGdJQzhxS2x4dUlDQWdLaUJGZUdWamRYUmxjeUIwYUdVZ2JtOWtaU0JzYjJkcFl5NWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJR2x1Y0hWMElDMGdVbVZ6YjJ4MlpXUWdhVzV3ZFhRZ2RtRnNkV1Z6SUd0bGVXVmtJR0o1SUhCdmNuUWdibUZ0WlM1Y2JpQWdJQ29nUUhCaGNtRnRJR052Ym5SbGVIUWdMU0JFWldOaFppQmpiMjUwWlhoMElHWnZjaUJsYldsMGRHbHVaeUJ3Y205bmNtVnpjeUJoYm1RZ1pYWmxiblJ6TGx4dUlDQWdLaUJBY21WMGRYSnVjeUJVYUdVZ2JtOWtaU2R6SUc5MWRIQjFkQ0IyWVd4MVpYTWdhMlY1WldRZ1lua2djRzl5ZENCdVlXMWxMbHh1SUNBZ0tpOWNiaUFnWlhobFkzVjBaU2hjYmlBZ0lDQnBibkIxZERvZ1NXNXdkWFFzWEc0Z0lDQWdZMjl1ZEdWNGREb2dSM0poY0doRmVHVmpkWFJwYjI1RGIyNTBaWGgwWEc0Z0lDazZJRkJ5YjIxcGMyVThUM1YwY0hWMFBpQjhJRTkxZEhCMWREdGNibjFjYmlKZGZRPT0iXX0=
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SwitchGraphNodeExecutor = void 0;
|
|
4
|
+
const GraphExecutionError_js_1 = require("./../errors/GraphExecutionError.cjs");
|
|
5
|
+
const ConditionExpressionEvaluator_js_1 = require("./../loops/ConditionExpressionEvaluator.cjs");
|
|
6
|
+
/**
|
|
7
|
+
* Reads the Switch metadata from the node definition's graph metadata.
|
|
8
|
+
*/
|
|
9
|
+
function readSwitchMetadata(context) {
|
|
10
|
+
const meta = context.node.graph?.metadata;
|
|
11
|
+
if (!meta)
|
|
12
|
+
return { cases: [], defaultPort: "default" };
|
|
13
|
+
const switchMeta = meta["switch"];
|
|
14
|
+
if (!switchMeta || !Array.isArray(switchMeta.cases)) {
|
|
15
|
+
return { cases: [], defaultPort: "default" };
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
cases: switchMeta.cases,
|
|
19
|
+
defaultPort: switchMeta.defaultPort ?? "default",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Detects whether a condition is a `CodeCondition` (has `type: "code"`).
|
|
24
|
+
*/
|
|
25
|
+
function isCodeCondition(cond) {
|
|
26
|
+
return typeof cond === "object" && cond !== null && "type" in cond && cond.type === "code";
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Detects whether a condition is a `ConditionExpression` (has `op` field).
|
|
30
|
+
*/
|
|
31
|
+
function isConditionExpression(cond) {
|
|
32
|
+
return typeof cond === "object" && cond !== null && "op" in cond && typeof cond.op === "string";
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Executor for `core.flow.switch` nodes.
|
|
36
|
+
*
|
|
37
|
+
* Evaluates each case's condition in order and routes the input to the
|
|
38
|
+
* first matching case's output port. When no case matches, routes to the
|
|
39
|
+
* `default` output port.
|
|
40
|
+
*
|
|
41
|
+
* Condition evaluation:
|
|
42
|
+
* - `ConditionExpression` — evaluated via {@link ConditionExpressionEvaluator}.
|
|
43
|
+
* - `CodeCondition` — evaluated via the pluggable {@link CodeSandboxEvaluator}
|
|
44
|
+
* from the engine's config. Throws `GRAPH_CODE_SANDBOX_NOT_CONFIGURED`
|
|
45
|
+
* when no evaluator is registered.
|
|
46
|
+
*/
|
|
47
|
+
class SwitchGraphNodeExecutor {
|
|
48
|
+
constructor(engine) {
|
|
49
|
+
this.engine = engine;
|
|
50
|
+
this.expressionEvaluator = new ConditionExpressionEvaluator_js_1.ConditionExpressionEvaluator();
|
|
51
|
+
}
|
|
52
|
+
async execute(input, context) {
|
|
53
|
+
const meta = readSwitchMetadata(context);
|
|
54
|
+
const inputValue = input["value"] ?? input;
|
|
55
|
+
for (const switchCase of meta.cases) {
|
|
56
|
+
const matches = await this.evaluateCondition(switchCase.condition, inputValue, input, context);
|
|
57
|
+
if (matches) {
|
|
58
|
+
return { [switchCase.outputPort]: inputValue };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const defaultPort = meta.defaultPort ?? "default";
|
|
62
|
+
return { [defaultPort]: inputValue };
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Evaluates a single switch case condition.
|
|
66
|
+
*/
|
|
67
|
+
async evaluateCondition(condition, inputValue, fullInput, context) {
|
|
68
|
+
if (isCodeCondition(condition)) {
|
|
69
|
+
return this.evaluateCodeCondition(condition, fullInput, context);
|
|
70
|
+
}
|
|
71
|
+
if (isConditionExpression(condition)) {
|
|
72
|
+
return this.expressionEvaluator.evaluate(condition, inputValue);
|
|
73
|
+
}
|
|
74
|
+
throw new GraphExecutionError_js_1.GraphExecutionError("Unknown switch case condition type — must be ConditionExpression (op) or CodeCondition (type: 'code')", "GRAPH_UNKNOWN_SWITCH_CONDITION", { condition });
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Evaluates a code condition via the pluggable sandbox evaluator.
|
|
78
|
+
*/
|
|
79
|
+
async evaluateCodeCondition(condition, input, context) {
|
|
80
|
+
const evaluator = this.engine?.codeSandboxEvaluator;
|
|
81
|
+
if (!evaluator) {
|
|
82
|
+
throw new GraphExecutionError_js_1.GraphExecutionError("Code conditions require a CodeSandboxEvaluator to be registered in GraphExecutionEngineConfig.codeSandboxEvaluator", "GRAPH_CODE_SANDBOX_NOT_CONFIGURED", { code: condition.code });
|
|
83
|
+
}
|
|
84
|
+
await context.log(`Evaluating code condition`, { language: condition.language ?? "javascript" });
|
|
85
|
+
const result = await evaluator.evaluate({
|
|
86
|
+
code: condition.code,
|
|
87
|
+
language: condition.language,
|
|
88
|
+
input,
|
|
89
|
+
});
|
|
90
|
+
return !!result;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.SwitchGraphNodeExecutor = SwitchGraphNodeExecutor;
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZXhlY3V0aW9uL1N3aXRjaEdyYXBoTm9kZUV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsMkNBQXNDO0FBQ3BFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxtREFBOEM7QUFHckY7O0dBRUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLE9BQThCO0lBQ3hELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQStDLENBQUM7SUFDakYsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDeEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBbUMsQ0FBQztJQUNwRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUNELE9BQU87UUFDTCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7UUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksU0FBUztLQUNqRCxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxlQUFlLENBQUMsSUFBeUI7SUFDaEQsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO0FBQzdGLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMscUJBQXFCLENB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Y3V0aW9uL1N3aXRjaEdyYXBoTm9kZUV4ZWN1dG9yXG4gKiBAc3VtbWFyeSBFeGVjdXRvciBmb3IgdGhlIFN3aXRjaCBmbG93LWNvbnRyb2wgbm9kZSAoREVDQUYtMzIgwqcyMi4yLjIpLlxuICogQGRlc2NyaXB0aW9uIEV2YWx1YXRlcyBlYWNoIGNhc2UncyBjb25kaXRpb24gYWdhaW5zdCB0aGUgbm9kZSdzIGlucHV0IGFuZFxuICogcm91dGVzIHRoZSBpbnB1dCB0byB0aGUgZmlyc3QgbWF0Y2hpbmcgY2FzZSdzIG91dHB1dCBwb3J0LiBGYWxscyBiYWNrIHRvXG4gKiB0aGUgYGRlZmF1bHRgIG91dHB1dCB3aGVuIG5vIGNhc2UgbWF0Y2hlcy4gU3VwcG9ydHMgYm90aFxuICoge0BsaW5rIENvbmRpdGlvbkV4cHJlc3Npb259IChncmFwaGljYWwgbW9kZSkgYW5kIHtAbGluayBDb2RlQ29uZGl0aW9ufVxuICogKGNvZGUgbW9kZSB2aWEgdGhlIHBsdWdnYWJsZSB7QGxpbmsgQ29kZVNhbmRib3hFdmFsdWF0b3J9KS5cbiAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaE5vZGVFeGVjdXRvciB9IGZyb20gXCIuL0dyYXBoTm9kZUV4ZWN1dG9yXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUge1xuICBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgU3dpdGNoQ2FzZSxcbiAgU3dpdGNoQ2FzZUNvbmRpdGlvbixcbiAgU3dpdGNoTm9kZU1ldGFkYXRhLFxuICBDb25kaXRpb25FeHByZXNzaW9uLFxuICBDb2RlQ29uZGl0aW9uLFxufSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzL0dyYXBoRXhlY3V0aW9uRXJyb3JcIjtcbmltcG9ydCB7IENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IgfSBmcm9tIFwiLi4vbG9vcHMvQ29uZGl0aW9uRXhwcmVzc2lvbkV2YWx1YXRvclwiO1xuaW1wb3J0IHR5cGUgeyBDb2RlU2FuZGJveEV2YWx1YXRvciB9IGZyb20gXCIuL0NvZGVTYW5kYm94RXZhbHVhdG9yXCI7XG5cbi8qKlxuICogUmVhZHMgdGhlIFN3aXRjaCBtZXRhZGF0YSBmcm9tIHRoZSBub2RlIGRlZmluaXRpb24ncyBncmFwaCBtZXRhZGF0YS5cbiAqL1xuZnVuY3Rpb24gcmVhZFN3aXRjaE1ldGFkYXRhKGNvbnRleHQ6IEdyYXBoRXhlY3V0aW9uQ29udGV4dCk6IFN3aXRjaE5vZGVNZXRhZGF0YSB7XG4gIGNvbnN0IG1ldGEgPSBjb250ZXh0Lm5vZGUuZ3JhcGg/Lm1ldGFkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICBpZiAoIW1ldGEpIHJldHVybiB7IGNhc2VzOiBbXSwgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiIH07XG4gIGNvbnN0IHN3aXRjaE1ldGEgPSBtZXRhW1wic3dpdGNoXCJdIGFzIFN3aXRjaE5vZGVNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgaWYgKCFzd2l0Y2hNZXRhIHx8ICFBcnJheS5pc0FycmF5KHN3aXRjaE1ldGEuY2FzZXMpKSB7XG4gICAgcmV0dXJuIHsgY2FzZXM6IFtdLCBkZWZhdWx0UG9ydDogXCJkZWZhdWx0XCIgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGNhc2VzOiBzd2l0Y2hNZXRhLmNhc2VzLFxuICAgIGRlZmF1bHRQb3J0OiBzd2l0Y2hNZXRhLmRlZmF1bHRQb3J0ID8/IFwiZGVmYXVsdFwiLFxuICB9O1xufVxuXG4vKipcbiAqIERldGVjdHMgd2hldGhlciBhIGNvbmRpdGlvbiBpcyBhIGBDb2RlQ29uZGl0aW9uYCAoaGFzIGB0eXBlOiBcImNvZGVcImApLlxuICovXG5mdW5jdGlvbiBpc0NvZGVDb25kaXRpb24oY29uZDogU3dpdGNoQ2FzZUNvbmRpdGlvbik6IGNvbmQgaXMgQ29kZUNvbmRpdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgY29uZCA9PT0gXCJvYmplY3RcIiAmJiBjb25kICE9PSBudWxsICYmIFwidHlwZVwiIGluIGNvbmQgJiYgY29uZC50eXBlID09PSBcImNvZGVcIjtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgYSBjb25kaXRpb24gaXMgYSBgQ29uZGl0aW9uRXhwcmVzc2lvbmAgKGhhcyBgb3BgIGZpZWxkKS5cbiAqL1xuZnVuY3Rpb24gaXNDb25kaXRpb25FeHByZXNzaW9uKGNvbmQ6IFN3aXRjaENhc2VDb25kaXRpb24pOiBjb25kIGlzIENvbmRpdGlvbkV4cHJlc3Npb24ge1xuICByZXR1cm4gdHlwZW9mIGNvbmQgPT09IFwib2JqZWN0XCIgJiYgY29uZCAhPT0gbnVsbCAmJiBcIm9wXCIgaW4gY29uZCAmJiB0eXBlb2YgY29uZC5vcCA9PT0gXCJzdHJpbmdcIjtcbn1cblxuLyoqXG4gKiBFeGVjdXRvciBmb3IgYGNvcmUuZmxvdy5zd2l0Y2hgIG5vZGVzLlxuICpcbiAqIEV2YWx1YXRlcyBlYWNoIGNhc2UncyBjb25kaXRpb24gaW4gb3JkZXIgYW5kIHJvdXRlcyB0aGUgaW5wdXQgdG8gdGhlXG4gKiBmaXJzdCBtYXRjaGluZyBjYXNlJ3Mgb3V0cHV0IHBvcnQuIFdoZW4gbm8gY2FzZSBtYXRjaGVzLCByb3V0ZXMgdG8gdGhlXG4gKiBgZGVmYXVsdGAgb3V0cHV0IHBvcnQuXG4gKlxuICogQ29uZGl0aW9uIGV2YWx1YXRpb246XG4gKiAtIGBDb25kaXRpb25FeHByZXNzaW9uYCDigJQgZXZhbHVhdGVkIHZpYSB7QGxpbmsgQ29uZGl0aW9uRXhwcmVzc2lvbkV2YWx1YXRvcn0uXG4gKiAtIGBDb2RlQ29uZGl0aW9uYCDigJQgZXZhbHVhdGVkIHZpYSB0aGUgcGx1Z2dhYmxlIHtAbGluayBDb2RlU2FuZGJveEV2YWx1YXRvcn1cbiAqICAgZnJvbSB0aGUgZW5naW5lJ3MgY29uZmlnLiBUaHJvd3MgYEdSQVBIX0NPREVfU0FOREJPWF9OT1RfQ09ORklHVVJFRGBcbiAqICAgd2hlbiBubyBldmFsdWF0b3IgaXMgcmVnaXN0ZXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN3aXRjaEdyYXBoTm9kZUV4ZWN1dG9yIGltcGxlbWVudHMgR3JhcGhOb2RlRXhlY3V0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGV4cHJlc3Npb25FdmFsdWF0b3IgPSBuZXcgQ29uZGl0aW9uRXhwcmVzc2lvbkV2YWx1YXRvcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW5naW5lPzogeyBjb2RlU2FuZGJveEV2YWx1YXRvcj86IENvZGVTYW5kYm94RXZhbHVhdG9yIH0pIHt9XG5cbiAgYXN5bmMgZXhlY3V0ZShcbiAgICBpbnB1dDogR3JhcGhFeGVjdXRpb25WYWx1ZXMsXG4gICAgY29udGV4dDogR3JhcGhFeGVjdXRpb25Db250ZXh0XG4gICk6IFByb21pc2U8R3JhcGhFeGVjdXRpb25WYWx1ZXM+IHtcbiAgICBjb25zdCBtZXRhID0gcmVhZFN3aXRjaE1ldGFkYXRhKGNvbnRleHQpO1xuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBpbnB1dFtcInZhbHVlXCJdID8/IGlucHV0O1xuXG4gICAgZm9yIChjb25zdCBzd2l0Y2hDYXNlIG9mIG1ldGEuY2FzZXMpIHtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBhd2FpdCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKHN3aXRjaENhc2UuY29uZGl0aW9uLCBpbnB1dFZhbHVlLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICByZXR1cm4geyBbc3dpdGNoQ2FzZS5vdXRwdXRQb3J0XTogaW5wdXRWYWx1ZSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRlZmF1bHRQb3J0ID0gbWV0YS5kZWZhdWx0UG9ydCA/PyBcImRlZmF1bHRcIjtcbiAgICByZXR1cm4geyBbZGVmYXVsdFBvcnRdOiBpbnB1dFZhbHVlIH07XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIGEgc2luZ2xlIHN3aXRjaCBjYXNlIGNvbmRpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVDb25kaXRpb24oXG4gICAgY29uZGl0aW9uOiBTd2l0Y2hDYXNlQ29uZGl0aW9uLFxuICAgIGlucHV0VmFsdWU6IHVua25vd24sXG4gICAgZnVsbElucHV0OiBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgICBjb250ZXh0OiBHcmFwaEV4ZWN1dGlvbkNvbnRleHRcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKGlzQ29kZUNvbmRpdGlvbihjb25kaXRpb24pKSB7XG4gICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZUNvZGVDb25kaXRpb24oY29uZGl0aW9uLCBmdWxsSW5wdXQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmIChpc0NvbmRpdGlvbkV4cHJlc3Npb24oY29uZGl0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShjb25kaXRpb24sIGlucHV0VmFsdWUpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFxuICAgICAgXCJVbmtub3duIHN3aXRjaCBjYXNlIGNvbmRpdGlvbiB0eXBlIOKAlCBtdXN0IGJlIENvbmRpdGlvbkV4cHJlc3Npb24gKG9wKSBvciBDb2RlQ29uZGl0aW9uICh0eXBlOiAnY29kZScpXCIsXG4gICAgICBcIkdSQVBIX1VOS05PV05fU1dJVENIX0NPTkRJVElPTlwiLFxuICAgICAgeyBjb25kaXRpb24gfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIGEgY29kZSBjb25kaXRpb24gdmlhIHRoZSBwbHVnZ2FibGUgc2FuZGJveCBldmFsdWF0b3IuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlQ29kZUNvbmRpdGlvbihcbiAgICBjb25kaXRpb246IENvZGVDb25kaXRpb24sXG4gICAgaW5wdXQ6IEdyYXBoRXhlY3V0aW9uVmFsdWVzLFxuICAgIGNvbnRleHQ6IEdyYXBoRXhlY3V0aW9uQ29udGV4dFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBldmFsdWF0b3IgPSB0aGlzLmVuZ2luZT8uY29kZVNhbmRib3hFdmFsdWF0b3I7XG4gICAgaWYgKCFldmFsdWF0b3IpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFxuICAgICAgICBcIkNvZGUgY29uZGl0aW9ucyByZXF1aXJlIGEgQ29kZVNhbmRib3hFdmFsdWF0b3IgdG8gYmUgcmVnaXN0ZXJlZCBpbiBHcmFwaEV4ZWN1dGlvbkVuZ2luZUNvbmZpZy5jb2RlU2FuZGJveEV2YWx1YXRvclwiLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9OT1RfQ09ORklHVVJFRFwiLFxuICAgICAgICB7IGNvZGU6IGNvbmRpdGlvbi5jb2RlIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgY29udGV4dC5sb2coYEV2YWx1YXRpbmcgY29kZSBjb25kaXRpb25gLCB7IGxhbmd1YWdlOiBjb25kaXRpb24ubGFuZ3VhZ2UgPz8gXCJqYXZhc2NyaXB0XCIgfSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBldmFsdWF0b3IuZXZhbHVhdGUoe1xuICAgICAgY29kZTogY29uZGl0aW9uLmNvZGUsXG4gICAgICBsYW5ndWFnZTogY29uZGl0aW9uLmxhbmd1YWdlLFxuICAgICAgaW5wdXQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gISFyZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTd2l0Y2hHcmFwaE5vZGVFeGVjdXRvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrRUFBeUU7QUFDekUsZ0dBQTBGO0FBQzFGOztHQUVHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxPQUFPO0lBQy9CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUMxQyxJQUFJLENBQUMsSUFBSTtRQUNMLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUNqRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFDRCxPQUFPO1FBQ0gsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1FBQ3ZCLFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVyxJQUFJLFNBQVM7S0FDbkQsQ0FBQztBQUNOLENBQUM7QUFDRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLElBQUk7SUFDekIsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO0FBQy9GLENBQUM7QUFDRDs7R0FFRztBQUNILFNBQVMscUJBQXFCLENBQUMsSUFBSTtJQUMvQixPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQztBQUNwRyxDQUFDO0FBQ0Q7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSx1QkFBdUI7SUFDaEMsWUFBWSxNQUFNO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksOERBQTRCLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTztRQUN4QixNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQzNDLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMvRixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUNuRCxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDO1FBQ2xELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRDs7T0FFRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPO1FBQzdELElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE1BQU0sSUFBSSw0Q0FBbUIsQ0FBQyx1R0FBdUcsRUFBRSxnQ0FBZ0MsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUwsQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTztRQUNqRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSw0Q0FBbUIsQ0FBQyxvSEFBb0gsRUFBRSxtQ0FBbUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2TixDQUFDO1FBQ0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNqRyxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDcEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixLQUFLO1NBQ1IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQTdDRCwwREE2Q0M7QUFDRCxreVVBQWt5VSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRXJyb3IgfSBmcm9tIFwiLi8uLi9lcnJvcnMvR3JhcGhFeGVjdXRpb25FcnJvci5qc1wiO1xuaW1wb3J0IHsgQ29uZGl0aW9uRXhwcmVzc2lvbkV2YWx1YXRvciB9IGZyb20gXCIuLy4uL2xvb3BzL0NvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IuanNcIjtcbi8qKlxuICogUmVhZHMgdGhlIFN3aXRjaCBtZXRhZGF0YSBmcm9tIHRoZSBub2RlIGRlZmluaXRpb24ncyBncmFwaCBtZXRhZGF0YS5cbiAqL1xuZnVuY3Rpb24gcmVhZFN3aXRjaE1ldGFkYXRhKGNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRhID0gY29udGV4dC5ub2RlLmdyYXBoPy5tZXRhZGF0YTtcbiAgICBpZiAoIW1ldGEpXG4gICAgICAgIHJldHVybiB7IGNhc2VzOiBbXSwgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiIH07XG4gICAgY29uc3Qgc3dpdGNoTWV0YSA9IG1ldGFbXCJzd2l0Y2hcIl07XG4gICAgaWYgKCFzd2l0Y2hNZXRhIHx8ICFBcnJheS5pc0FycmF5KHN3aXRjaE1ldGEuY2FzZXMpKSB7XG4gICAgICAgIHJldHVybiB7IGNhc2VzOiBbXSwgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGNhc2VzOiBzd2l0Y2hNZXRhLmNhc2VzLFxuICAgICAgICBkZWZhdWx0UG9ydDogc3dpdGNoTWV0YS5kZWZhdWx0UG9ydCA/PyBcImRlZmF1bHRcIixcbiAgICB9O1xufVxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgYSBjb25kaXRpb24gaXMgYSBgQ29kZUNvbmRpdGlvbmAgKGhhcyBgdHlwZTogXCJjb2RlXCJgKS5cbiAqL1xuZnVuY3Rpb24gaXNDb2RlQ29uZGl0aW9uKGNvbmQpIHtcbiAgICByZXR1cm4gdHlwZW9mIGNvbmQgPT09IFwib2JqZWN0XCIgJiYgY29uZCAhPT0gbnVsbCAmJiBcInR5cGVcIiBpbiBjb25kICYmIGNvbmQudHlwZSA9PT0gXCJjb2RlXCI7XG59XG4vKipcbiAqIERldGVjdHMgd2hldGhlciBhIGNvbmRpdGlvbiBpcyBhIGBDb25kaXRpb25FeHByZXNzaW9uYCAoaGFzIGBvcGAgZmllbGQpLlxuICovXG5mdW5jdGlvbiBpc0NvbmRpdGlvbkV4cHJlc3Npb24oY29uZCkge1xuICAgIHJldHVybiB0eXBlb2YgY29uZCA9PT0gXCJvYmplY3RcIiAmJiBjb25kICE9PSBudWxsICYmIFwib3BcIiBpbiBjb25kICYmIHR5cGVvZiBjb25kLm9wID09PSBcInN0cmluZ1wiO1xufVxuLyoqXG4gKiBFeGVjdXRvciBmb3IgYGNvcmUuZmxvdy5zd2l0Y2hgIG5vZGVzLlxuICpcbiAqIEV2YWx1YXRlcyBlYWNoIGNhc2UncyBjb25kaXRpb24gaW4gb3JkZXIgYW5kIHJvdXRlcyB0aGUgaW5wdXQgdG8gdGhlXG4gKiBmaXJzdCBtYXRjaGluZyBjYXNlJ3Mgb3V0cHV0IHBvcnQuIFdoZW4gbm8gY2FzZSBtYXRjaGVzLCByb3V0ZXMgdG8gdGhlXG4gKiBgZGVmYXVsdGAgb3V0cHV0IHBvcnQuXG4gKlxuICogQ29uZGl0aW9uIGV2YWx1YXRpb246XG4gKiAtIGBDb25kaXRpb25FeHByZXNzaW9uYCDigJQgZXZhbHVhdGVkIHZpYSB7QGxpbmsgQ29uZGl0aW9uRXhwcmVzc2lvbkV2YWx1YXRvcn0uXG4gKiAtIGBDb2RlQ29uZGl0aW9uYCDigJQgZXZhbHVhdGVkIHZpYSB0aGUgcGx1Z2dhYmxlIHtAbGluayBDb2RlU2FuZGJveEV2YWx1YXRvcn1cbiAqICAgZnJvbSB0aGUgZW5naW5lJ3MgY29uZmlnLiBUaHJvd3MgYEdSQVBIX0NPREVfU0FOREJPWF9OT1RfQ09ORklHVVJFRGBcbiAqICAgd2hlbiBubyBldmFsdWF0b3IgaXMgcmVnaXN0ZXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN3aXRjaEdyYXBoTm9kZUV4ZWN1dG9yIHtcbiAgICBjb25zdHJ1Y3RvcihlbmdpbmUpIHtcbiAgICAgICAgdGhpcy5lbmdpbmUgPSBlbmdpbmU7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvciA9IG5ldyBDb25kaXRpb25FeHByZXNzaW9uRXZhbHVhdG9yKCk7XG4gICAgfVxuICAgIGFzeW5jIGV4ZWN1dGUoaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgbWV0YSA9IHJlYWRTd2l0Y2hNZXRhZGF0YShjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IGlucHV0W1widmFsdWVcIl0gPz8gaW5wdXQ7XG4gICAgICAgIGZvciAoY29uc3Qgc3dpdGNoQ2FzZSBvZiBtZXRhLmNhc2VzKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihzd2l0Y2hDYXNlLmNvbmRpdGlvbiwgaW5wdXRWYWx1ZSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbc3dpdGNoQ2FzZS5vdXRwdXRQb3J0XTogaW5wdXRWYWx1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQb3J0ID0gbWV0YS5kZWZhdWx0UG9ydCA/PyBcImRlZmF1bHRcIjtcbiAgICAgICAgcmV0dXJuIHsgW2RlZmF1bHRQb3J0XTogaW5wdXRWYWx1ZSB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFdmFsdWF0ZXMgYSBzaW5nbGUgc3dpdGNoIGNhc2UgY29uZGl0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbiwgaW5wdXRWYWx1ZSwgZnVsbElucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGlmIChpc0NvZGVDb25kaXRpb24oY29uZGl0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVDb2RlQ29uZGl0aW9uKGNvbmRpdGlvbiwgZnVsbElucHV0LCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNDb25kaXRpb25FeHByZXNzaW9uKGNvbmRpdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoY29uZGl0aW9uLCBpbnB1dFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcIlVua25vd24gc3dpdGNoIGNhc2UgY29uZGl0aW9uIHR5cGUg4oCUIG11c3QgYmUgQ29uZGl0aW9uRXhwcmVzc2lvbiAob3ApIG9yIENvZGVDb25kaXRpb24gKHR5cGU6ICdjb2RlJylcIiwgXCJHUkFQSF9VTktOT1dOX1NXSVRDSF9DT05ESVRJT05cIiwgeyBjb25kaXRpb24gfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2YWx1YXRlcyBhIGNvZGUgY29uZGl0aW9uIHZpYSB0aGUgcGx1Z2dhYmxlIHNhbmRib3ggZXZhbHVhdG9yLlxuICAgICAqL1xuICAgIGFzeW5jIGV2YWx1YXRlQ29kZUNvbmRpdGlvbihjb25kaXRpb24sIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRvciA9IHRoaXMuZW5naW5lPy5jb2RlU2FuZGJveEV2YWx1YXRvcjtcbiAgICAgICAgaWYgKCFldmFsdWF0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFwiQ29kZSBjb25kaXRpb25zIHJlcXVpcmUgYSBDb2RlU2FuZGJveEV2YWx1YXRvciB0byBiZSByZWdpc3RlcmVkIGluIEdyYXBoRXhlY3V0aW9uRW5naW5lQ29uZmlnLmNvZGVTYW5kYm94RXZhbHVhdG9yXCIsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX05PVF9DT05GSUdVUkVEXCIsIHsgY29kZTogY29uZGl0aW9uLmNvZGUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY29udGV4dC5sb2coYEV2YWx1YXRpbmcgY29kZSBjb25kaXRpb25gLCB7IGxhbmd1YWdlOiBjb25kaXRpb24ubGFuZ3VhZ2UgPz8gXCJqYXZhc2NyaXB0XCIgfSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRvci5ldmFsdWF0ZSh7XG4gICAgICAgICAgICBjb2RlOiBjb25kaXRpb24uY29kZSxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBjb25kaXRpb24ubGFuZ3VhZ2UsXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhIXJlc3VsdDtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lVM2RwZEdOb1IzSmhjR2hPYjJSbFJYaGxZM1YwYjNJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZaM0poY0dndlpYaGxZM1YwYVc5dUwxTjNhWFJqYUVkeVlYQm9UbTlrWlVWNFpXTjFkRzl5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFXMUNRU3hQUVVGUExFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc01rTkJRWE5ETzBGQlEzQkZMRTlCUVU4c1JVRkJSU3cwUWtGQk5FSXNSVUZCUlN4dFJFRkJPRU03UVVGSGNrWTdPMGRCUlVjN1FVRkRTQ3hUUVVGVExHdENRVUZyUWl4RFFVRkRMRTlCUVRoQ08wbEJRM2hFTEUxQlFVMHNTVUZCU1N4SFFVRkhMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEZGQlFTdERMRU5CUVVNN1NVRkRha1lzU1VGQlNTeERRVUZETEVsQlFVazdVVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeFhRVUZYTEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkRlRVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJiVU1zUTBGQlF6dEpRVU53UlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU53UkN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeFhRVUZYTEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkRMME1zUTBGQlF6dEpRVU5FTEU5QlFVODdVVUZEVEN4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFdEJRVXM3VVVGRGRrSXNWMEZCVnl4RlFVRkZMRlZCUVZVc1EwRkJReXhYUVVGWExFbEJRVWtzVTBGQlV6dExRVU5xUkN4RFFVRkRPMEZCUTBvc1EwRkJRenRCUVVWRU96dEhRVVZITzBGQlEwZ3NVMEZCVXl4bFFVRmxMRU5CUVVNc1NVRkJlVUk3U1VGRGFFUXNUMEZCVHl4UFFVRlBMRWxCUVVrc1MwRkJTeXhSUVVGUkxFbEJRVWtzU1VGQlNTeExRVUZMTEVsQlFVa3NTVUZCU1N4TlFVRk5MRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NUVUZCVFN4RFFVRkRPMEZCUXpkR0xFTkJRVU03UVVGRlJEczdSMEZGUnp0QlFVTklMRk5CUVZNc2NVSkJRWEZDTEVOQlFVTXNTVUZCZVVJN1NVRkRkRVFzVDBGQlR5eFBRVUZQTEVsQlFVa3NTMEZCU3l4UlFVRlJMRWxCUVVrc1NVRkJTU3hMUVVGTExFbEJRVWtzU1VGQlNTeEpRVUZKTEVsQlFVa3NTVUZCU1N4SlFVRkpMRTlCUVU4c1NVRkJTU3hEUVVGRExFVkJRVVVzUzBGQlN5eFJRVUZSTEVOQlFVTTdRVUZEYkVjc1EwRkJRenRCUVVWRU96czdPenM3T3pzN096czdSMEZaUnp0QlFVTklMRTFCUVUwc1QwRkJUeXgxUWtGQmRVSTdTVUZIYkVNc1dVRkJOa0lzVFVGQmQwUTdVVUZCZUVRc1YwRkJUU3hIUVVGT0xFMUJRVTBzUTBGQmEwUTdVVUZHY0VVc2QwSkJRVzFDTEVkQlFVY3NTVUZCU1N3MFFrRkJORUlzUlVGQlJTeERRVUZETzBsQlJXTXNRMEZCUXp0SlFVVjZSaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVU5ZTEV0QlFUSkNMRVZCUXpOQ0xFOUJRVGhDTzFGQlJUbENMRTFCUVUwc1NVRkJTU3hIUVVGSExHdENRVUZyUWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM3BETEUxQlFVMHNWVUZCVlN4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTTdVVUZGTTBNc1MwRkJTeXhOUVVGTkxGVkJRVlVzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRjRU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRk5CUVZNc1JVRkJSU3hWUVVGVkxFVkJRVVVzUzBGQlN5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUXk5R0xFbEJRVWtzVDBGQlR5eEZRVUZGTEVOQlFVTTdaMEpCUTFvc1QwRkJUeXhGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRMnBFTEVOQlFVTTdVVUZEU0N4RFFVRkRPMUZCUlVRc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NTVUZCU1N4VFFVRlRMRU5CUVVNN1VVRkRiRVFzVDBGQlR5eEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFTkJRVU03U1VGRGRrTXNRMEZCUXp0SlFVVkVPenRQUVVWSE8wbEJRMHNzUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVNM1FpeFRRVUU0UWl4RlFVTTVRaXhWUVVGdFFpeEZRVU51UWl4VFFVRXJRaXhGUVVNdlFpeFBRVUU0UWp0UlFVVTVRaXhKUVVGSkxHVkJRV1VzUTBGQlF5eFRRVUZUTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXk5Q0xFOUJRVThzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExGTkJRVk1zUlVGQlJTeFRRVUZUTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRia1VzUTBGQlF6dFJRVVZFTEVsQlFVa3NjVUpCUVhGQ0xFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnlReXhQUVVGUExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVGUkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZWQlFWVXNRMEZCUXl4RFFVRkRPMUZCUTJ4RkxFTkJRVU03VVVGRlJDeE5RVUZOTEVsQlFVa3NiVUpCUVcxQ0xFTkJRek5DTEhWSFFVRjFSeXhGUVVOMlJ5eG5RMEZCWjBNc1JVRkRhRU1zUlVGQlJTeFRRVUZUTEVWQlFVVXNRMEZEWkN4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96dFBRVVZITzBsQlEwc3NTMEZCU3l4RFFVRkRMSEZDUVVGeFFpeERRVU5xUXl4VFFVRjNRaXhGUVVONFFpeExRVUV5UWl4RlFVTXpRaXhQUVVFNFFqdFJRVVU1UWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEc5Q1FVRnZRaXhEUVVGRE8xRkJRM0JFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRaUVVObUxFMUJRVTBzU1VGQlNTeHRRa0ZCYlVJc1EwRkRNMElzYjBoQlFXOUlMRVZCUTNCSUxHMURRVUZ0UXl4RlFVTnVReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFRRVUZUTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUTNwQ0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNUVUZCVFN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExESkNRVUV5UWl4RlFVRkZMRVZCUVVVc1VVRkJVU3hGUVVGRkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVsQlFVa3NXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVWcVJ5eE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU03V1VGRGRFTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1EwRkJReXhKUVVGSk8xbEJRM0JDTEZGQlFWRXNSVUZCUlN4VFFVRlRMRU5CUVVNc1VVRkJVVHRaUVVNMVFpeExRVUZMTzFOQlEwNHNRMEZCUXl4RFFVRkRPMUZCUlVnc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEyeENMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUcxdlpIVnNaU0JwYm5SbFozSmhkR2x2Ym5NdlozSmhjR2d2WlhobFkzVjBhVzl1TDFOM2FYUmphRWR5WVhCb1RtOWtaVVY0WldOMWRHOXlYRzRnS2lCQWMzVnRiV0Z5ZVNCRmVHVmpkWFJ2Y2lCbWIzSWdkR2hsSUZOM2FYUmphQ0JtYkc5M0xXTnZiblJ5YjJ3Z2JtOWtaU0FvUkVWRFFVWXRNeklnd3FjeU1pNHlMaklwTGx4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVWMllXeDFZWFJsY3lCbFlXTm9JR05oYzJVbmN5QmpiMjVrYVhScGIyNGdZV2RoYVc1emRDQjBhR1VnYm05a1pTZHpJR2x1Y0hWMElHRnVaRnh1SUNvZ2NtOTFkR1Z6SUhSb1pTQnBibkIxZENCMGJ5QjBhR1VnWm1seWMzUWdiV0YwWTJocGJtY2dZMkZ6WlNkeklHOTFkSEIxZENCd2IzSjBMaUJHWVd4c2N5QmlZV05ySUhSdlhHNGdLaUIwYUdVZ1lHUmxabUYxYkhSZ0lHOTFkSEIxZENCM2FHVnVJRzV2SUdOaGMyVWdiV0YwWTJobGN5NGdVM1Z3Y0c5eWRITWdZbTkwYUZ4dUlDb2dlMEJzYVc1cklFTnZibVJwZEdsdmJrVjRjSEpsYzNOcGIyNTlJQ2huY21Gd2FHbGpZV3dnYlc5a1pTa2dZVzVrSUh0QWJHbHVheUJEYjJSbFEyOXVaR2wwYVc5dWZWeHVJQ29nS0dOdlpHVWdiVzlrWlNCMmFXRWdkR2hsSUhCc2RXZG5ZV0pzWlNCN1FHeHBibXNnUTI5a1pWTmhibVJpYjNoRmRtRnNkV0YwYjNKOUtTNWNiaUFxTDF4dWFXMXdiM0owSUhSNWNHVWdleUJIY21Gd2FFNXZaR1ZGZUdWamRYUnZjaUI5SUdaeWIyMGdYQ0l1TDBkeVlYQm9UbTlrWlVWNFpXTjFkRzl5WENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVkeVlYQm9SWGhsWTNWMGFXOXVRMjl1ZEdWNGRDQjlJR1p5YjIwZ1hDSXVMMGR5WVhCb1JYaGxZM1YwYVc5dVEyOXVkR1Y0ZEZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZTF4dUlDQkhjbUZ3YUVWNFpXTjFkR2x2YmxaaGJIVmxjeXhjYmlBZ1UzZHBkR05vUTJGelpTeGNiaUFnVTNkcGRHTm9RMkZ6WlVOdmJtUnBkR2x2Yml4Y2JpQWdVM2RwZEdOb1RtOWtaVTFsZEdGa1lYUmhMRnh1SUNCRGIyNWthWFJwYjI1RmVIQnlaWE56YVc5dUxGeHVJQ0JEYjJSbFEyOXVaR2wwYVc5dUxGeHVmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUVkeVlYQm9SWGhsWTNWMGFXOXVSWEp5YjNJZ2ZTQm1jbTl0SUZ3aUxpNHZaWEp5YjNKekwwZHlZWEJvUlhobFkzVjBhVzl1UlhKeWIzSmNJanRjYm1sdGNHOXlkQ0I3SUVOdmJtUnBkR2x2YmtWNGNISmxjM05wYjI1RmRtRnNkV0YwYjNJZ2ZTQm1jbTl0SUZ3aUxpNHZiRzl2Y0hNdlEyOXVaR2wwYVc5dVJYaHdjbVZ6YzJsdmJrVjJZV3gxWVhSdmNsd2lPMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkRiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjaUI5SUdaeWIyMGdYQ0l1TDBOdlpHVlRZVzVrWW05NFJYWmhiSFZoZEc5eVhDSTdYRzVjYmk4cUtseHVJQ29nVW1WaFpITWdkR2hsSUZOM2FYUmphQ0J0WlhSaFpHRjBZU0JtY205dElIUm9aU0J1YjJSbElHUmxabWx1YVhScGIyNG5jeUJuY21Gd2FDQnRaWFJoWkdGMFlTNWNiaUFxTDF4dVpuVnVZM1JwYjI0Z2NtVmhaRk4zYVhSamFFMWxkR0ZrWVhSaEtHTnZiblJsZUhRNklFZHlZWEJvUlhobFkzVjBhVzl1UTI5dWRHVjRkQ2s2SUZOM2FYUmphRTV2WkdWTlpYUmhaR0YwWVNCN1hHNGdJR052Ym5OMElHMWxkR0VnUFNCamIyNTBaWGgwTG01dlpHVXVaM0poY0dnL0xtMWxkR0ZrWVhSaElHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K0lId2dkVzVrWldacGJtVmtPMXh1SUNCcFppQW9JVzFsZEdFcElISmxkSFZ5YmlCN0lHTmhjMlZ6T2lCYlhTd2daR1ZtWVhWc2RGQnZjblE2SUZ3aVpHVm1ZWFZzZEZ3aUlIMDdYRzRnSUdOdmJuTjBJSE4zYVhSamFFMWxkR0VnUFNCdFpYUmhXMXdpYzNkcGRHTm9YQ0pkSUdGeklGTjNhWFJqYUU1dlpHVk5aWFJoWkdGMFlTQjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ2FXWWdLQ0Z6ZDJsMFkyaE5aWFJoSUh4OElDRkJjbkpoZVM1cGMwRnljbUY1S0hOM2FYUmphRTFsZEdFdVkyRnpaWE1wS1NCN1hHNGdJQ0FnY21WMGRYSnVJSHNnWTJGelpYTTZJRnRkTENCa1pXWmhkV3gwVUc5eWREb2dYQ0prWldaaGRXeDBYQ0lnZlR0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnZTF4dUlDQWdJR05oYzJWek9pQnpkMmwwWTJoTlpYUmhMbU5oYzJWekxGeHVJQ0FnSUdSbFptRjFiSFJRYjNKME9pQnpkMmwwWTJoTlpYUmhMbVJsWm1GMWJIUlFiM0owSUQ4L0lGd2laR1ZtWVhWc2RGd2lMRnh1SUNCOU8xeHVmVnh1WEc0dktpcGNiaUFxSUVSbGRHVmpkSE1nZDJobGRHaGxjaUJoSUdOdmJtUnBkR2x2YmlCcGN5QmhJR0JEYjJSbFEyOXVaR2wwYVc5dVlDQW9hR0Z6SUdCMGVYQmxPaUJjSW1OdlpHVmNJbUFwTGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJwYzBOdlpHVkRiMjVrYVhScGIyNG9ZMjl1WkRvZ1UzZHBkR05vUTJGelpVTnZibVJwZEdsdmJpazZJR052Ym1RZ2FYTWdRMjlrWlVOdmJtUnBkR2x2YmlCN1hHNGdJSEpsZEhWeWJpQjBlWEJsYjJZZ1kyOXVaQ0E5UFQwZ1hDSnZZbXBsWTNSY0lpQW1KaUJqYjI1a0lDRTlQU0J1ZFd4c0lDWW1JRndpZEhsd1pWd2lJR2x1SUdOdmJtUWdKaVlnWTI5dVpDNTBlWEJsSUQwOVBTQmNJbU52WkdWY0lqdGNibjFjYmx4dUx5b3FYRzRnS2lCRVpYUmxZM1J6SUhkb1pYUm9aWElnWVNCamIyNWthWFJwYjI0Z2FYTWdZU0JnUTI5dVpHbDBhVzl1Ulhod2NtVnpjMmx2Ym1BZ0tHaGhjeUJnYjNCZ0lHWnBaV3hrS1M1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnYVhORGIyNWthWFJwYjI1RmVIQnlaWE56YVc5dUtHTnZibVE2SUZOM2FYUmphRU5oYzJWRGIyNWthWFJwYjI0cE9pQmpiMjVrSUdseklFTnZibVJwZEdsdmJrVjRjSEpsYzNOcGIyNGdlMXh1SUNCeVpYUjFjbTRnZEhsd1pXOW1JR052Ym1RZ1BUMDlJRndpYjJKcVpXTjBYQ0lnSmlZZ1kyOXVaQ0FoUFQwZ2JuVnNiQ0FtSmlCY0ltOXdYQ0lnYVc0Z1kyOXVaQ0FtSmlCMGVYQmxiMllnWTI5dVpDNXZjQ0E5UFQwZ1hDSnpkSEpwYm1kY0lqdGNibjFjYmx4dUx5b3FYRzRnS2lCRmVHVmpkWFJ2Y2lCbWIzSWdZR052Y21VdVpteHZkeTV6ZDJsMFkyaGdJRzV2WkdWekxseHVJQ3BjYmlBcUlFVjJZV3gxWVhSbGN5QmxZV05vSUdOaGMyVW5jeUJqYjI1a2FYUnBiMjRnYVc0Z2IzSmtaWElnWVc1a0lISnZkWFJsY3lCMGFHVWdhVzV3ZFhRZ2RHOGdkR2hsWEc0Z0tpQm1hWEp6ZENCdFlYUmphR2x1WnlCallYTmxKM01nYjNWMGNIVjBJSEJ2Y25RdUlGZG9aVzRnYm04Z1kyRnpaU0J0WVhSamFHVnpMQ0J5YjNWMFpYTWdkRzhnZEdobFhHNGdLaUJnWkdWbVlYVnNkR0FnYjNWMGNIVjBJSEJ2Y25RdVhHNGdLbHh1SUNvZ1EyOXVaR2wwYVc5dUlHVjJZV3gxWVhScGIyNDZYRzRnS2lBdElHQkRiMjVrYVhScGIyNUZlSEJ5WlhOemFXOXVZQ0RpZ0pRZ1pYWmhiSFZoZEdWa0lIWnBZU0I3UUd4cGJtc2dRMjl1WkdsMGFXOXVSWGh3Y21WemMybHZia1YyWVd4MVlYUnZjbjB1WEc0Z0tpQXRJR0JEYjJSbFEyOXVaR2wwYVc5dVlDRGlnSlFnWlhaaGJIVmhkR1ZrSUhacFlTQjBhR1VnY0d4MVoyZGhZbXhsSUh0QWJHbHVheUJEYjJSbFUyRnVaR0p2ZUVWMllXeDFZWFJ2Y24xY2JpQXFJQ0FnWm5KdmJTQjBhR1VnWlc1bmFXNWxKM01nWTI5dVptbG5MaUJVYUhKdmQzTWdZRWRTUVZCSVgwTlBSRVZmVTBGT1JFSlBXRjlPVDFSZlEwOU9Sa2xIVlZKRlJHQmNiaUFxSUNBZ2QyaGxiaUJ1YnlCbGRtRnNkV0YwYjNJZ2FYTWdjbVZuYVhOMFpYSmxaQzVjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZOM2FYUmphRWR5WVhCb1RtOWtaVVY0WldOMWRHOXlJR2x0Y0d4bGJXVnVkSE1nUjNKaGNHaE9iMlJsUlhobFkzVjBiM0lnZTF4dUlDQndjbWwyWVhSbElISmxZV1J2Ym14NUlHVjRjSEpsYzNOcGIyNUZkbUZzZFdGMGIzSWdQU0J1WlhjZ1EyOXVaR2wwYVc5dVJYaHdjbVZ6YzJsdmJrVjJZV3gxWVhSdmNpZ3BPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2daVzVuYVc1bFB6b2dleUJqYjJSbFUyRnVaR0p2ZUVWMllXeDFZWFJ2Y2o4NklFTnZaR1ZUWVc1a1ltOTRSWFpoYkhWaGRHOXlJSDBwSUh0OVhHNWNiaUFnWVhONWJtTWdaWGhsWTNWMFpTaGNiaUFnSUNCcGJuQjFkRG9nUjNKaGNHaEZlR1ZqZFhScGIyNVdZV3gxWlhNc1hHNGdJQ0FnWTI5dWRHVjRkRG9nUjNKaGNHaEZlR1ZqZFhScGIyNURiMjUwWlhoMFhHNGdJQ2s2SUZCeWIyMXBjMlU4UjNKaGNHaEZlR1ZqZFhScGIyNVdZV3gxWlhNK0lIdGNiaUFnSUNCamIyNXpkQ0J0WlhSaElEMGdjbVZoWkZOM2FYUmphRTFsZEdGa1lYUmhLR052Ym5SbGVIUXBPMXh1SUNBZ0lHTnZibk4wSUdsdWNIVjBWbUZzZFdVZ1BTQnBibkIxZEZ0Y0luWmhiSFZsWENKZElEOC9JR2x1Y0hWME8xeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQnpkMmwwWTJoRFlYTmxJRzltSUcxbGRHRXVZMkZ6WlhNcElIdGNiaUFnSUNBZ0lHTnZibk4wSUcxaGRHTm9aWE1nUFNCaGQyRnBkQ0IwYUdsekxtVjJZV3gxWVhSbFEyOXVaR2wwYVc5dUtITjNhWFJqYUVOaGMyVXVZMjl1WkdsMGFXOXVMQ0JwYm5CMWRGWmhiSFZsTENCcGJuQjFkQ3dnWTI5dWRHVjRkQ2s3WEc0Z0lDQWdJQ0JwWmlBb2JXRjBZMmhsY3lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QmJjM2RwZEdOb1EyRnpaUzV2ZFhSd2RYUlFiM0owWFRvZ2FXNXdkWFJXWVd4MVpTQjlPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdSbFptRjFiSFJRYjNKMElEMGdiV1YwWVM1a1pXWmhkV3gwVUc5eWRDQS9QeUJjSW1SbFptRjFiSFJjSWp0Y2JpQWdJQ0J5WlhSMWNtNGdleUJiWkdWbVlYVnNkRkJ2Y25SZE9pQnBibkIxZEZaaGJIVmxJSDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1JYWmhiSFZoZEdWeklHRWdjMmx1WjJ4bElITjNhWFJqYUNCallYTmxJR052Ym1ScGRHbHZiaTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdaWFpoYkhWaGRHVkRiMjVrYVhScGIyNG9YRzRnSUNBZ1kyOXVaR2wwYVc5dU9pQlRkMmwwWTJoRFlYTmxRMjl1WkdsMGFXOXVMRnh1SUNBZ0lHbHVjSFYwVm1Gc2RXVTZJSFZ1YTI1dmQyNHNYRzRnSUNBZ1puVnNiRWx1Y0hWME9pQkhjbUZ3YUVWNFpXTjFkR2x2YmxaaGJIVmxjeXhjYmlBZ0lDQmpiMjUwWlhoME9pQkhjbUZ3YUVWNFpXTjFkR2x2YmtOdmJuUmxlSFJjYmlBZ0tUb2dVSEp2YldselpUeGliMjlzWldGdVBpQjdYRzRnSUNBZ2FXWWdLR2x6UTI5a1pVTnZibVJwZEdsdmJpaGpiMjVrYVhScGIyNHBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bGRtRnNkV0YwWlVOdlpHVkRiMjVrYVhScGIyNG9ZMjl1WkdsMGFXOXVMQ0JtZFd4c1NXNXdkWFFzSUdOdmJuUmxlSFFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNocGMwTnZibVJwZEdsdmJrVjRjSEpsYzNOcGIyNG9ZMjl1WkdsMGFXOXVLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVpYaHdjbVZ6YzJsdmJrVjJZV3gxWVhSdmNpNWxkbUZzZFdGMFpTaGpiMjVrYVhScGIyNHNJR2x1Y0hWMFZtRnNkV1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJvY205M0lHNWxkeUJIY21Gd2FFVjRaV04xZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnWENKVmJtdHViM2R1SUhOM2FYUmphQ0JqWVhObElHTnZibVJwZEdsdmJpQjBlWEJsSU9LQWxDQnRkWE4wSUdKbElFTnZibVJwZEdsdmJrVjRjSEpsYzNOcGIyNGdLRzl3S1NCdmNpQkRiMlJsUTI5dVpHbDBhVzl1SUNoMGVYQmxPaUFuWTI5a1pTY3BYQ0lzWEc0Z0lDQWdJQ0JjSWtkU1FWQklYMVZPUzA1UFYwNWZVMWRKVkVOSVgwTlBUa1JKVkVsUFRsd2lMRnh1SUNBZ0lDQWdleUJqYjI1a2FYUnBiMjRnZlZ4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1JYWmhiSFZoZEdWeklHRWdZMjlrWlNCamIyNWthWFJwYjI0Z2RtbGhJSFJvWlNCd2JIVm5aMkZpYkdVZ2MyRnVaR0p2ZUNCbGRtRnNkV0YwYjNJdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHRnplVzVqSUdWMllXeDFZWFJsUTI5a1pVTnZibVJwZEdsdmJpaGNiaUFnSUNCamIyNWthWFJwYjI0NklFTnZaR1ZEYjI1a2FYUnBiMjRzWEc0Z0lDQWdhVzV3ZFhRNklFZHlZWEJvUlhobFkzVjBhVzl1Vm1Gc2RXVnpMRnh1SUNBZ0lHTnZiblJsZUhRNklFZHlZWEJvUlhobFkzVjBhVzl1UTI5dWRHVjRkRnh1SUNBcE9pQlFjbTl0YVhObFBHSnZiMnhsWVc0K0lIdGNiaUFnSUNCamIyNXpkQ0JsZG1Gc2RXRjBiM0lnUFNCMGFHbHpMbVZ1WjJsdVpUOHVZMjlrWlZOaGJtUmliM2hGZG1Gc2RXRjBiM0k3WEc0Z0lDQWdhV1lnS0NGbGRtRnNkV0YwYjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkhjbUZ3YUVWNFpXTjFkR2x2YmtWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSWtOdlpHVWdZMjl1WkdsMGFXOXVjeUJ5WlhGMWFYSmxJR0VnUTI5a1pWTmhibVJpYjNoRmRtRnNkV0YwYjNJZ2RHOGdZbVVnY21WbmFYTjBaWEpsWkNCcGJpQkhjbUZ3YUVWNFpXTjFkR2x2YmtWdVoybHVaVU52Ym1acFp5NWpiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjbHdpTEZ4dUlDQWdJQ0FnSUNCY0lrZFNRVkJJWDBOUFJFVmZVMEZPUkVKUFdGOU9UMVJmUTA5T1JrbEhWVkpGUkZ3aUxGeHVJQ0FnSUNBZ0lDQjdJR052WkdVNklHTnZibVJwZEdsdmJpNWpiMlJsSUgxY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWVhkaGFYUWdZMjl1ZEdWNGRDNXNiMmNvWUVWMllXeDFZWFJwYm1jZ1kyOWtaU0JqYjI1a2FYUnBiMjVnTENCN0lHeGhibWQxWVdkbE9pQmpiMjVrYVhScGIyNHViR0Z1WjNWaFoyVWdQejhnWENKcVlYWmhjMk55YVhCMFhDSWdmU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCbGRtRnNkV0YwYjNJdVpYWmhiSFZoZEdVb2UxeHVJQ0FnSUNBZ1kyOWtaVG9nWTI5dVpHbDBhVzl1TG1OdlpHVXNYRzRnSUNBZ0lDQnNZVzVuZFdGblpUb2dZMjl1WkdsMGFXOXVMbXhoYm1kMVlXZGxMRnh1SUNBZ0lDQWdhVzV3ZFhRc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnSVNGeVpYTjFiSFE3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
|
|
@@ -24,5 +24,7 @@ __exportStar(require("./GraphNodeExecutor.cjs"), exports);
|
|
|
24
24
|
__exportStar(require("./GraphExecutionResult.cjs"), exports);
|
|
25
25
|
__exportStar(require("./GraphExecutionFrame.cjs"), exports);
|
|
26
26
|
__exportStar(require("./GraphExecutionEngine.cjs"), exports);
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
__exportStar(require("./CodeSandboxEvaluator.cjs"), exports);
|
|
28
|
+
__exportStar(require("./SwitchGraphNodeExecutor.cjs"), exports);
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZXhlY3V0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCwyQ0FBd0M7QUFDeEMsdUNBQW9DO0FBQ3BDLDBDQUF1QztBQUN2Qyx5Q0FBc0M7QUFDdEMsMENBQXVDO0FBQ3ZDLDBDQUF1QztBQUN2Qyw2Q0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2V4ZWN1dGlvblxuICogQHN1bW1hcnkgR3JhcGggZXhlY3V0aW9uIGNvbnRleHQgYW5kIGV4ZWN1dG9yIGludGVyZmFjZS5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBncmFwaCBleGVjdXRpb24gY29udGV4dCBhbmQgbm9kZSBleGVjdXRvciBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uQ29udGV4dFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhOb2RlRXhlY3V0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uUmVzdWx0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkZyYW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkVuZ2luZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vQ29kZVNhbmRib3hFdmFsdWF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1N3aXRjaEdyYXBoTm9kZUV4ZWN1dG9yXCI7XG4iXX0=
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDZEQUEyQztBQUMzQyx5REFBdUM7QUFDdkMsNERBQTBDO0FBQzFDLDJEQUF5QztBQUN6Qyw0REFBMEM7QUFDMUMsNERBQTBDO0FBQzFDLCtEQUE2QztBQUM3QywwaENBQTBoQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXhlY3V0aW9uXG4gKiBAc3VtbWFyeSBHcmFwaCBleGVjdXRpb24gY29udGV4dCBhbmQgZXhlY3V0b3IgaW50ZXJmYWNlLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIGdyYXBoIGV4ZWN1dGlvbiBjb250ZXh0IGFuZCBub2RlIGV4ZWN1dG9yIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25Db250ZXh0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaE5vZGVFeGVjdXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25SZXN1bHQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uRnJhbWUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uRW5naW5lLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Db2RlU2FuZGJveEV2YWx1YXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3IuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlozSmhjR2d2WlhobFkzVjBhVzl1TDJsdVpHVjRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPMGRCU1VjN1FVRkRTQ3d5UTBGQmQwTTdRVUZEZUVNc2RVTkJRVzlETzBGQlEzQkRMREJEUVVGMVF6dEJRVU4yUXl4NVEwRkJjME03UVVGRGRFTXNNRU5CUVhWRE8wRkJRM1pETERCRFFVRjFRenRCUVVOMlF5dzJRMEZCTUVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMMmR5WVhCb0wyVjRaV04xZEdsdmJseHVJQ29nUUhOMWJXMWhjbmtnUjNKaGNHZ2daWGhsWTNWMGFXOXVJR052Ym5SbGVIUWdZVzVrSUdWNFpXTjFkRzl5SUdsdWRHVnlabUZqWlM1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCU1pTMWxlSEJ2Y25SeklIUm9aU0JuY21Gd2FDQmxlR1ZqZFhScGIyNGdZMjl1ZEdWNGRDQmhibVFnYm05a1pTQmxlR1ZqZFhSdmNpQnBiblJsY21aaFkyVXVYRzRnS2k5Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwwZHlZWEJvUlhobFkzVjBhVzl1UTI5dWRHVjRkRndpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlIzSmhjR2hPYjJSbFJYaGxZM1YwYjNKY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMGR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwWENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOUhjbUZ3YUVWNFpXTjFkR2x2YmtaeVlXMWxYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5SGNtRndhRVY0WldOMWRHbHZia1Z1WjJsdVpWd2lPMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2UTI5a1pWTmhibVJpYjNoRmRtRnNkV0YwYjNKY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMU4zYVhSamFFZHlZWEJvVG05a1pVVjRaV04xZEc5eVhDSTdYRzRpWFgwPSJdfQ==
|