@decaf-ts/integrations 0.14.2 → 0.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/dist/integrations.cjs +3317 -2
- package/dist/integrations.js +3665 -2
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/calendar/CalendarService.cjs +2 -2
- package/lib/cjs/calendar/environment.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
- package/lib/cjs/calendar/index.cjs +2 -2
- package/lib/cjs/calendar/types.cjs +2 -2
- package/lib/cjs/calendar/validators/cron.cjs +2 -2
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
- package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
- package/lib/cjs/comms/discord/index.cjs +2 -2
- package/lib/cjs/comms/email/EmailService.cjs +2 -2
- package/lib/cjs/comms/email/index.cjs +2 -2
- package/lib/cjs/comms/email/mime.cjs +2 -2
- package/lib/cjs/comms/email/smtp.cjs +2 -2
- package/lib/cjs/comms/environment.cjs +2 -2
- package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
- package/lib/cjs/comms/gmail/index.cjs +2 -2
- package/lib/cjs/comms/index.cjs +2 -2
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
- package/lib/cjs/comms/outlook/index.cjs +2 -2
- package/lib/cjs/comms/slack/SlackService.cjs +2 -2
- package/lib/cjs/comms/slack/index.cjs +2 -2
- package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
- package/lib/cjs/comms/teams/index.cjs +2 -2
- package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
- package/lib/cjs/comms/telegram/index.cjs +2 -2
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
- package/lib/cjs/comms/whatsapp/index.cjs +2 -2
- package/lib/cjs/devops/environment.cjs +2 -2
- package/lib/cjs/devops/github/GithubService.cjs +2 -2
- package/lib/cjs/devops/github/index.cjs +2 -2
- package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
- package/lib/cjs/devops/gitlab/index.cjs +2 -2
- package/lib/cjs/devops/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
- package/lib/cjs/io/airtable/index.cjs +2 -2
- package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
- package/lib/cjs/io/confluence/index.cjs +2 -2
- package/lib/cjs/io/environment.cjs +2 -2
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
- package/lib/cjs/io/google-docs/index.cjs +2 -2
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
- package/lib/cjs/io/google-sheets/index.cjs +2 -2
- package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
- package/lib/cjs/io/graphql/index.cjs +2 -2
- package/lib/cjs/io/index.cjs +2 -2
- package/lib/cjs/io/jira/JiraService.cjs +2 -2
- package/lib/cjs/io/jira/index.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
- package/lib/cjs/io/spreadsheet/index.cjs +2 -2
- package/lib/cjs/keycloak/broker.cjs +2 -2
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/index.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 +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/assets.cjs +2 -2
- package/lib/cjs/loader/config.cjs +2 -2
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/nest.cjs +2 -2
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/rls/index.cjs +2 -2
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
- package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/decorators.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/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/redis/RedisContextLock.cjs +2 -2
- package/lib/cjs/redis/RedisDispatch.cjs +2 -2
- package/lib/cjs/redis/RedisPaginator.cjs +2 -2
- package/lib/cjs/redis/RedisStatement.cjs +2 -2
- package/lib/cjs/redis/adapter.cjs +2 -2
- package/lib/cjs/redis/constants.cjs +2 -2
- package/lib/cjs/redis/handlers.cjs +2 -2
- package/lib/cjs/redis/index.cjs +2 -2
- package/lib/cjs/redis/serialization.cjs +2 -2
- package/lib/cjs/redis/types.cjs +2 -2
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretEnvironment.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 +3 -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/fs/FsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/fs/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.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/kubernetes/KubernetesSecretEnvironment.cjs +34 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +479 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/kubernetes/index.cjs +27 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
- package/lib/cjs/sftp/aws/index.cjs +2 -2
- package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
- package/lib/cjs/sftp/core/index.cjs +2 -2
- package/lib/cjs/sftp/index.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
- package/lib/cjs/sftp/ssh2/index.cjs +2 -2
- package/lib/cjs/shared/environmentValue.cjs +2 -2
- package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
- package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
- package/lib/cjs/shared/http/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/calendar/CalendarService.js +1 -1
- package/lib/esm/calendar/environment.js +1 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
- package/lib/esm/calendar/google-calendar/index.js +1 -1
- package/lib/esm/calendar/index.js +1 -1
- package/lib/esm/calendar/types.js +1 -1
- package/lib/esm/calendar/validators/cron.js +1 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
- package/lib/esm/comms/discord/DiscordService.js +1 -1
- package/lib/esm/comms/discord/index.js +1 -1
- package/lib/esm/comms/email/EmailService.js +1 -1
- package/lib/esm/comms/email/index.js +1 -1
- package/lib/esm/comms/email/mime.js +1 -1
- package/lib/esm/comms/email/smtp.js +1 -1
- package/lib/esm/comms/environment.js +1 -1
- package/lib/esm/comms/gmail/GmailService.js +1 -1
- package/lib/esm/comms/gmail/index.js +1 -1
- package/lib/esm/comms/index.js +1 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
- package/lib/esm/comms/outlook/index.js +1 -1
- package/lib/esm/comms/slack/SlackService.js +1 -1
- package/lib/esm/comms/slack/index.js +1 -1
- package/lib/esm/comms/teams/TeamsService.js +1 -1
- package/lib/esm/comms/teams/index.js +1 -1
- package/lib/esm/comms/telegram/TelegramService.js +1 -1
- package/lib/esm/comms/telegram/index.js +1 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
- package/lib/esm/comms/whatsapp/index.js +1 -1
- package/lib/esm/devops/environment.js +1 -1
- package/lib/esm/devops/github/GithubService.js +1 -1
- package/lib/esm/devops/github/index.js +1 -1
- package/lib/esm/devops/gitlab/GitlabService.js +1 -1
- package/lib/esm/devops/gitlab/index.js +1 -1
- package/lib/esm/devops/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/index.js +4 -4
- package/lib/esm/io/airtable/AirtableService.js +1 -1
- package/lib/esm/io/airtable/index.js +1 -1
- package/lib/esm/io/confluence/ConfluenceService.js +1 -1
- package/lib/esm/io/confluence/index.js +1 -1
- package/lib/esm/io/environment.js +1 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
- package/lib/esm/io/google-docs/index.js +1 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
- package/lib/esm/io/google-sheets/index.js +1 -1
- package/lib/esm/io/graphql/GraphqlService.js +1 -1
- package/lib/esm/io/graphql/index.js +1 -1
- package/lib/esm/io/index.js +1 -1
- package/lib/esm/io/jira/JiraService.js +1 -1
- package/lib/esm/io/jira/index.js +1 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
- package/lib/esm/io/microsoft-excel/index.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
- package/lib/esm/io/spreadsheet/index.js +1 -1
- package/lib/esm/keycloak/broker.js +1 -1
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/index.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 +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/assets.js +1 -1
- package/lib/esm/loader/config.js +1 -1
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/nest.js +1 -1
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/credential.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/rls/index.js +1 -1
- package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
- package/lib/esm/namespaces/rls/rls.constants.js +1 -1
- package/lib/esm/namespaces/rls/rls.template.js +1 -1
- package/lib/esm/namespaces/rls/rls.types.js +1 -1
- package/lib/esm/namespaces/rls/session-binding.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/credential.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/decorators.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/plugins/contract.js +1 -1
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/redis/RedisContextLock.js +1 -1
- package/lib/esm/redis/RedisDispatch.js +1 -1
- package/lib/esm/redis/RedisPaginator.js +1 -1
- package/lib/esm/redis/RedisStatement.js +1 -1
- package/lib/esm/redis/adapter.js +1 -1
- package/lib/esm/redis/constants.js +1 -1
- package/lib/esm/redis/handlers.js +1 -1
- package/lib/esm/redis/index.js +1 -1
- package/lib/esm/redis/serialization.js +1 -1
- package/lib/esm/redis/types.js +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
- package/lib/esm/secrets/core/SecretEnvironment.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 +2 -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/fs/FsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/fs/FsSecretService.js +1 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/fs/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.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/kubernetes/KubernetesSecretEnvironment.js +30 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +474 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +9 -0
- package/lib/esm/secrets/kubernetes/index.js +10 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
- package/lib/esm/sftp/aws/index.js +1 -1
- package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
- package/lib/esm/sftp/core/SftpSource.js +1 -1
- package/lib/esm/sftp/core/index.js +1 -1
- package/lib/esm/sftp/index.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
- package/lib/esm/sftp/ssh2/index.js +1 -1
- package/lib/esm/shared/environmentValue.js +1 -1
- package/lib/esm/shared/http/HttpApiService.js +1 -1
- package/lib/esm/shared/http/hermeticBoot.js +1 -1
- package/lib/esm/shared/http/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/user-requests/index.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/secrets/core/SecretTypes.d.cts +13 -1
- package/lib/types/secrets/core/SecretTypes.d.mts +13 -1
- package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.cts +34 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.mts +34 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretService.d.cts +45 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretService.d.mts +45 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.cts +49 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.mts +49 -0
- package/lib/types/secrets/kubernetes/index.d.cts +9 -0
- package/lib/types/secrets/kubernetes/index.d.mts +9 -0
- package/package.json +18 -1
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.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/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/calendar/CalendarService.cjs.map +0 -1
- package/lib/cjs/calendar/environment.cjs.map +0 -1
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +0 -1
- package/lib/cjs/calendar/google-calendar/index.cjs.map +0 -1
- package/lib/cjs/calendar/index.cjs.map +0 -1
- package/lib/cjs/calendar/types.cjs.map +0 -1
- package/lib/cjs/calendar/validators/cron.cjs.map +0 -1
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +0 -1
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +0 -1
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +0 -1
- package/lib/cjs/comms/discord/DiscordService.cjs.map +0 -1
- package/lib/cjs/comms/discord/index.cjs.map +0 -1
- package/lib/cjs/comms/email/EmailService.cjs.map +0 -1
- package/lib/cjs/comms/email/index.cjs.map +0 -1
- package/lib/cjs/comms/email/mime.cjs.map +0 -1
- package/lib/cjs/comms/email/smtp.cjs.map +0 -1
- package/lib/cjs/comms/environment.cjs.map +0 -1
- package/lib/cjs/comms/gmail/GmailService.cjs.map +0 -1
- package/lib/cjs/comms/gmail/index.cjs.map +0 -1
- package/lib/cjs/comms/index.cjs.map +0 -1
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +0 -1
- package/lib/cjs/comms/outlook/index.cjs.map +0 -1
- package/lib/cjs/comms/slack/SlackService.cjs.map +0 -1
- package/lib/cjs/comms/slack/index.cjs.map +0 -1
- package/lib/cjs/comms/teams/TeamsService.cjs.map +0 -1
- package/lib/cjs/comms/teams/index.cjs.map +0 -1
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +0 -1
- package/lib/cjs/comms/telegram/index.cjs.map +0 -1
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +0 -1
- package/lib/cjs/comms/whatsapp/index.cjs.map +0 -1
- package/lib/cjs/devops/environment.cjs.map +0 -1
- package/lib/cjs/devops/github/GithubService.cjs.map +0 -1
- package/lib/cjs/devops/github/index.cjs.map +0 -1
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +0 -1
- package/lib/cjs/devops/gitlab/index.cjs.map +0 -1
- package/lib/cjs/devops/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/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +0 -1
- package/lib/cjs/feature-flags/constants.cjs.map +0 -1
- package/lib/cjs/feature-flags/decorators.cjs.map +0 -1
- package/lib/cjs/feature-flags/environment.cjs.map +0 -1
- package/lib/cjs/feature-flags/index.cjs.map +0 -1
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +0 -1
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +0 -1
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +0 -1
- package/lib/cjs/feature-flags/readers/index.cjs.map +0 -1
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +0 -1
- package/lib/cjs/feature-flags/types.cjs.map +0 -1
- package/lib/cjs/feature-flags/utils.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/io/airtable/AirtableService.cjs.map +0 -1
- package/lib/cjs/io/airtable/index.cjs.map +0 -1
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +0 -1
- package/lib/cjs/io/confluence/index.cjs.map +0 -1
- package/lib/cjs/io/environment.cjs.map +0 -1
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +0 -1
- package/lib/cjs/io/google-docs/index.cjs.map +0 -1
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +0 -1
- package/lib/cjs/io/google-sheets/index.cjs.map +0 -1
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +0 -1
- package/lib/cjs/io/graphql/index.cjs.map +0 -1
- package/lib/cjs/io/index.cjs.map +0 -1
- package/lib/cjs/io/jira/JiraService.cjs.map +0 -1
- package/lib/cjs/io/jira/index.cjs.map +0 -1
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +0 -1
- package/lib/cjs/io/microsoft-excel/index.cjs.map +0 -1
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +0 -1
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +0 -1
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +0 -1
- package/lib/cjs/io/spreadsheet/index.cjs.map +0 -1
- package/lib/cjs/keycloak/broker.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/services/runtime.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +0 -1
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +0 -1
- package/lib/cjs/kibana/builders/index.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/services/runtime.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/loader/ObjectLoader.cjs.map +0 -1
- package/lib/cjs/loader/assets.cjs.map +0 -1
- package/lib/cjs/loader/config.cjs.map +0 -1
- package/lib/cjs/loader/families.cjs.map +0 -1
- package/lib/cjs/loader/index.cjs.map +0 -1
- package/lib/cjs/loader/nest.cjs.map +0 -1
- package/lib/cjs/loader/types.cjs.map +0 -1
- package/lib/cjs/namespaces/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/credential.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/index.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/session-binding.cjs.map +0 -1
- package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/credential.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/index.cjs.map +0 -1
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
- package/lib/cjs/namespaces/types.cjs.map +0 -1
- package/lib/cjs/namespaces/utils.cjs.map +0 -1
- package/lib/cjs/nest/decorators.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/plugins/contract.cjs.map +0 -1
- package/lib/cjs/plugins/index.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/host.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/index.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/installer.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/manifest.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/templates.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/types.cjs.map +0 -1
- package/lib/cjs/plugins/superset/host.cjs.map +0 -1
- package/lib/cjs/plugins/superset/index.cjs.map +0 -1
- package/lib/cjs/plugins/superset/installer.cjs.map +0 -1
- package/lib/cjs/plugins/superset/manifest.cjs.map +0 -1
- package/lib/cjs/plugins/superset/templates.cjs.map +0 -1
- package/lib/cjs/plugins/superset/types.cjs.map +0 -1
- package/lib/cjs/redis/RedisContextLock.cjs.map +0 -1
- package/lib/cjs/redis/RedisDispatch.cjs.map +0 -1
- package/lib/cjs/redis/RedisPaginator.cjs.map +0 -1
- package/lib/cjs/redis/RedisStatement.cjs.map +0 -1
- package/lib/cjs/redis/adapter.cjs.map +0 -1
- package/lib/cjs/redis/constants.cjs.map +0 -1
- package/lib/cjs/redis/handlers.cjs.map +0 -1
- package/lib/cjs/redis/index.cjs.map +0 -1
- package/lib/cjs/redis/serialization.cjs.map +0 -1
- package/lib/cjs/redis/types.cjs.map +0 -1
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretEnvironment.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/fs/FsSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/fs/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.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/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +0 -1
- package/lib/cjs/sftp/aws/index.cjs.map +0 -1
- package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/core/SftpSource.cjs.map +0 -1
- package/lib/cjs/sftp/core/index.cjs.map +0 -1
- package/lib/cjs/sftp/index.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/index.cjs.map +0 -1
- package/lib/cjs/shared/environmentValue.cjs.map +0 -1
- package/lib/cjs/shared/http/HttpApiService.cjs.map +0 -1
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +0 -1
- package/lib/cjs/shared/http/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/user-requests/index.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobEnvironment.js.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/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/calendar/CalendarService.js.map +0 -1
- package/lib/esm/calendar/environment.js.map +0 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +0 -1
- package/lib/esm/calendar/google-calendar/index.js.map +0 -1
- package/lib/esm/calendar/index.js.map +0 -1
- package/lib/esm/calendar/types.js.map +0 -1
- package/lib/esm/calendar/validators/cron.js.map +0 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js.map +0 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js.map +0 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js.map +0 -1
- package/lib/esm/comms/discord/DiscordService.js.map +0 -1
- package/lib/esm/comms/discord/index.js.map +0 -1
- package/lib/esm/comms/email/EmailService.js.map +0 -1
- package/lib/esm/comms/email/index.js.map +0 -1
- package/lib/esm/comms/email/mime.js.map +0 -1
- package/lib/esm/comms/email/smtp.js.map +0 -1
- package/lib/esm/comms/environment.js.map +0 -1
- package/lib/esm/comms/gmail/GmailService.js.map +0 -1
- package/lib/esm/comms/gmail/index.js.map +0 -1
- package/lib/esm/comms/index.js.map +0 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +0 -1
- package/lib/esm/comms/outlook/index.js.map +0 -1
- package/lib/esm/comms/slack/SlackService.js.map +0 -1
- package/lib/esm/comms/slack/index.js.map +0 -1
- package/lib/esm/comms/teams/TeamsService.js.map +0 -1
- package/lib/esm/comms/teams/index.js.map +0 -1
- package/lib/esm/comms/telegram/TelegramService.js.map +0 -1
- package/lib/esm/comms/telegram/index.js.map +0 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +0 -1
- package/lib/esm/comms/whatsapp/index.js.map +0 -1
- package/lib/esm/devops/environment.js.map +0 -1
- package/lib/esm/devops/github/GithubService.js.map +0 -1
- package/lib/esm/devops/github/index.js.map +0 -1
- package/lib/esm/devops/gitlab/GitlabService.js.map +0 -1
- package/lib/esm/devops/gitlab/index.js.map +0 -1
- package/lib/esm/devops/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/feature-flags/EngineCapabilityFeatureFlag.service.js.map +0 -1
- package/lib/esm/feature-flags/constants.js.map +0 -1
- package/lib/esm/feature-flags/decorators.js.map +0 -1
- package/lib/esm/feature-flags/environment.js.map +0 -1
- package/lib/esm/feature-flags/index.js.map +0 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +0 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +0 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +0 -1
- package/lib/esm/feature-flags/readers/index.js.map +0 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +0 -1
- package/lib/esm/feature-flags/types.js.map +0 -1
- package/lib/esm/feature-flags/utils.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/io/airtable/AirtableService.js.map +0 -1
- package/lib/esm/io/airtable/index.js.map +0 -1
- package/lib/esm/io/confluence/ConfluenceService.js.map +0 -1
- package/lib/esm/io/confluence/index.js.map +0 -1
- package/lib/esm/io/environment.js.map +0 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +0 -1
- package/lib/esm/io/google-docs/index.js.map +0 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +0 -1
- package/lib/esm/io/google-sheets/index.js.map +0 -1
- package/lib/esm/io/graphql/GraphqlService.js.map +0 -1
- package/lib/esm/io/graphql/index.js.map +0 -1
- package/lib/esm/io/index.js.map +0 -1
- package/lib/esm/io/jira/JiraService.js.map +0 -1
- package/lib/esm/io/jira/index.js.map +0 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +0 -1
- package/lib/esm/io/microsoft-excel/index.js.map +0 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +0 -1
- package/lib/esm/io/microsoft-sharepoint/index.js.map +0 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +0 -1
- package/lib/esm/io/spreadsheet/index.js.map +0 -1
- package/lib/esm/keycloak/broker.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/services/runtime.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +0 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +0 -1
- package/lib/esm/kibana/builders/index.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/services/runtime.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/loader/ObjectLoader.js.map +0 -1
- package/lib/esm/loader/assets.js.map +0 -1
- package/lib/esm/loader/config.js.map +0 -1
- package/lib/esm/loader/families.js.map +0 -1
- package/lib/esm/loader/index.js.map +0 -1
- package/lib/esm/loader/nest.js.map +0 -1
- package/lib/esm/loader/types.js.map +0 -1
- package/lib/esm/namespaces/index.js.map +0 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
- package/lib/esm/namespaces/models/credential.model.js.map +0 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/group.model.js.map +0 -1
- package/lib/esm/namespaces/models/index.js.map +0 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
- package/lib/esm/namespaces/models/permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/principal.model.js.map +0 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/role.model.js.map +0 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
- package/lib/esm/namespaces/models/user.model.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
- package/lib/esm/namespaces/rls/index.js.map +0 -1
- package/lib/esm/namespaces/rls/principal-resolver.js.map +0 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.constants.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.template.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.types.js.map +0 -1
- package/lib/esm/namespaces/rls/session-binding.js.map +0 -1
- package/lib/esm/namespaces/services/authz.service.js.map +0 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/services/credential.service.js.map +0 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/group.service.js.map +0 -1
- package/lib/esm/namespaces/services/index.js.map +0 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
- package/lib/esm/namespaces/services/permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/principal.service.js.map +0 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/role.service.js.map +0 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
- package/lib/esm/namespaces/services/user.service.js.map +0 -1
- package/lib/esm/namespaces/types.js.map +0 -1
- package/lib/esm/namespaces/utils.js.map +0 -1
- package/lib/esm/nest/decorators.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/plugins/contract.js.map +0 -1
- package/lib/esm/plugins/index.js.map +0 -1
- package/lib/esm/plugins/kibana/host.js.map +0 -1
- package/lib/esm/plugins/kibana/index.js.map +0 -1
- package/lib/esm/plugins/kibana/installer.js.map +0 -1
- package/lib/esm/plugins/kibana/manifest.js.map +0 -1
- package/lib/esm/plugins/kibana/templates.js.map +0 -1
- package/lib/esm/plugins/kibana/types.js.map +0 -1
- package/lib/esm/plugins/superset/host.js.map +0 -1
- package/lib/esm/plugins/superset/index.js.map +0 -1
- package/lib/esm/plugins/superset/installer.js.map +0 -1
- package/lib/esm/plugins/superset/manifest.js.map +0 -1
- package/lib/esm/plugins/superset/templates.js.map +0 -1
- package/lib/esm/plugins/superset/types.js.map +0 -1
- package/lib/esm/redis/RedisContextLock.js.map +0 -1
- package/lib/esm/redis/RedisDispatch.js.map +0 -1
- package/lib/esm/redis/RedisPaginator.js.map +0 -1
- package/lib/esm/redis/RedisStatement.js.map +0 -1
- package/lib/esm/redis/adapter.js.map +0 -1
- package/lib/esm/redis/constants.js.map +0 -1
- package/lib/esm/redis/handlers.js.map +0 -1
- package/lib/esm/redis/index.js.map +0 -1
- package/lib/esm/redis/serialization.js.map +0 -1
- package/lib/esm/redis/types.js.map +0 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretEnvironment.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/fs/FsSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/fs/FsSecretService.js.map +0 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/fs/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.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/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/aws/AwsSftpService.js.map +0 -1
- package/lib/esm/sftp/aws/index.js.map +0 -1
- package/lib/esm/sftp/core/SftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/core/SftpSource.js.map +0 -1
- package/lib/esm/sftp/core/index.js.map +0 -1
- package/lib/esm/sftp/index.js.map +0 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +0 -1
- package/lib/esm/sftp/ssh2/index.js.map +0 -1
- package/lib/esm/shared/environmentValue.js.map +0 -1
- package/lib/esm/shared/http/HttpApiService.js.map +0 -1
- package/lib/esm/shared/http/hermeticBoot.js.map +0 -1
- package/lib/esm/shared/http/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/user-requests/index.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
|
@@ -585,5 +585,5 @@ class ModelSecretService extends index_js_1.ClientBasedSecretService {
|
|
|
585
585
|
}
|
|
586
586
|
}
|
|
587
587
|
exports.ModelSecretService = ModelSecretService;
|
|
588
|
-
//# sourceMappingURL=ModelSecretService.js.map
|
|
589
|
-
//# sourceMappingURL=ModelSecretService.cjs.map
|
|
588
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvTW9kZWxTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFrQiwyQkFBZ0I7QUFnQmhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBZ0I7QUFDbEUsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix3QkFBd0IsR0FFekIsMkJBQWdCO0FBQ2pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsb0JBQWlCO0FBQ2xDLE9BQU8sRUFLTCxVQUFVLEVBQ1Ysc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9DQUFpQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLDJDQUFzQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQztBQUVyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHdCQUd2QztJQUlDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFKRCxhQUFRLEdBQW1CLE9BQU8sQ0FBQztJQUs1QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLHFCQUFxQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFH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LFNBQVMsQ0FBQyxFQUNoQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsMEJBQTBCLEVBQzFCLHNCQUFzQixPQUFPLEVBQUUsRUFDL0IsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsMEJBQTBCLEVBQzFCLG1CQUFtQixPQUFPLEVBQUUsRUFDNUIsR0FBRyxDQUNKLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvbW9kZWwvc2VydmljZVxuICogQHN1bW1hcnkgTW9kZWwtYmFja2VkIGVuY3J5cHRlZCBzZWNyZXQgc2VydmljZS5cbiAqIEBkZXNjcmlwdGlvbiBJbXBsZW1lbnRzIHRoZSBge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZX1gLCBhbiB1bmRlY29yYXRlZFxuICogYENsaWVudEJhc2VkU2VjcmV0U2VydmljZWAgdGhhdFxuICogcGVyc2lzdHMgQUVTLWVuY3J5cHRlZCBwYXlsb2FkcyBhcyBge0BsaW5rIFNlY3JldH1gIHJvd3MgdGhyb3VnaCBhXG4gKiBkZWNhZiBgUmVwb3NpdG9yeWAgKHRlbmFudC9vcmctdW5pdC9vd25lciBzY29waW5nIGluY2x1ZGVkKS4gRW5jcnlwdGlvblxuICoga2V5cyBkZXJpdmUgZnJvbSBhIG1hc3RlciBga2V5U2VjcmV0YCB2aWEgYENyeXB0b1NlcnZpY2VgOyBjb25maWd1cmF0aW9uXG4gKiBjb21lcyBmcm9tIHRoZSBgc2VjcmV0cy5tb2RlbGAgRW52aXJvbm1lbnQgc2xpY2Ugb3IgYW4gZXhwbGljaXQgYm9vdFxuICogY29uZmlnIChzZWUgYE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZ2ApLlxuICovXG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlY3JldFNlcnZpY2UsIFNlY3JldEVycm9yLCBTZWNyZXRQcm92aWRlciB9IGZyb20gXCIuLi9jb3JlXCI7XG5pbXBvcnQge1xuICBTZWNyZXROYW1lLFxuICBTZWNyZXRQYXlsb2FkLFxuICBTZWNyZXRSZWZlcmVuY2UsXG4gIFNlY3JldE1ldGFkYXRhLFxufSBmcm9tIFwiLi4vY29yZVwiO1xuaW1wb3J0IHtcbiAgU3RvcmVTZWNyZXRPcHRpb25zLFxuICBSZXRyaWV2ZVNlY3JldE9wdGlvbnMsXG4gIERlbGV0ZVNlY3JldE9wdGlvbnMsXG4gIEV4aXN0c1NlY3JldE9wdGlvbnMsXG4gIExpc3RTZWNyZXRzT3B0aW9ucyxcbiAgU2VjcmV0TWV0YWRhdGFPcHRpb25zLFxuICBSb3RhdGVTZWNyZXRPcHRpb25zLFxufSBmcm9tIFwiLi4vY29yZVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVTZWNyZXROYW1lLCBub3JtYWxpemVTZWNyZXROYW1lIH0gZnJvbSBcIi4uL2NvcmVcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZCxcbiAgdHlwZSBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbn0gZnJvbSBcIi4uL2NvcmVcIjtcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gXCIuL1NlY3JldFwiO1xuaW1wb3J0IHtcbiAgQ29udGV4dCxcbiAgQ29udGV4dExvY2ssXG4gIENvbnRleHR1YWxBcmdzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFJlcG9zaXRvcnksXG4gIHJlc29sdmVUcmFuc2FjdGlvbkxvY2ssXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4vTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG5pbXBvcnQgeyBNb2RlbFNlY3JldEVudmlyb25tZW50IH0gZnJvbSBcIi4vTW9kZWxTZWNyZXRFbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgZW52U3RyaW5nIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlXCI7XG5pbXBvcnQgeyBDb25kaXRpb24sIE9yZGVyRGlyZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDcnlwdG9TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jcnlwdG8vaW50ZWdyYXRpb24vc2VydmljZXMvY3J5cHRvXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmNvbnN0IERFRkFVTFRfS0VZX0lEID0gXCJkZWZhdWx0LWtleVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNb2RlbC1iYWNrZWQgZW5jcnlwdGVkIHNlY3JldCBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBTdG9yZXMgZWFjaCBzZWNyZXQgYXMgYSBge0BsaW5rIFNlY3JldH1gIHJvdyAoZW5jcnlwdGVkIHBheWxvYWQsXG4gKiBrZXkgaWQvaXYvc2FsdCBtZXRhZGF0YSwgdmVyc2lvbiwgZW5hYmxlbWVudCBmbGFnLCBhbmQgb3B0aW9uYWxcbiAqIHRlbmFudC9vcmctdW5pdC9vd25lciBzY29wZSkgdGhyb3VnaCB0aGUgcmVwb3NpdG9yeSBib290ZWQgYXMgdGhlIHNlcnZpY2VcbiAqIGNsaWVudC4gTmFtZXMgYXJlIHZhbGlkYXRlZCBhbmQgbm9ybWFsaXplZCBiZWZvcmUgcGVyc2lzdGVuY2U7XG4gKiBgKG5hbWUsIHZlcnNpb24pYCBpcyB1bmlxdWUgKGVuZm9yY2VkIGJ5IGEgYFNFQ1JFVF9BTFJFQURZX0VYSVNUU2BcbiAqIGNvbmZsaWN0IGluIGBzdG9yZWAvYHJvdGF0ZWAgYW5kIGJhY2tlZCBieSB0aGUgYHVxX3NlY3JldHNfbmFtZV92ZXJzaW9uYFxuICogZGF0YWJhc2UgaW5kZXgpOyByZXRyaWV2YWwgb25seSBjb25zaWRlcnMgZW5hYmxlZCByb3dzLCBzdXBwb3J0cyB2ZXJzaW9uXG4gKiBwaW5uaW5nLCBhbmQgcmVzb2x2ZXMgbXVsdGlwbGUgbWF0Y2hlcyBkZXRlcm1pbmlzdGljYWxseSBieSBgdXBkYXRlZEF0XG4gKiBERVNDYC4gRGVsZXRlIGlzIHNvZnQgYnkgZGVmYXVsdCAoc2V0cyBgZW5hYmxlZDogZmFsc2VgKSB1bmxlc3NcbiAqIGBvcHRpb25zLmZvcmNlYCBpcyBzZXQuIEVycm9ycyBmcm9tIHRoZSByZXBvc2l0b3J5IGFyZSB0cmFuc2xhdGVkIGludG9cbiAqIHR5cGVkIHtAbGluayBTZWNyZXRFcnJvcn1zIGJ5IGBwYXJzZUVycm9yYC5cbiAqXG4gKiBVbmRlY29yYXRlZCBhbmQgRW52aXJvbm1lbnQtY29uZmlndXJhYmxlXG4gKiB0aHJvdWdoIHRoZSBgc2VjcmV0cy5tb2RlbGAgc2xpY2U7IHRoZSBjcmVkZW50aWFsIHNlcnZpY2VcbiAqIChgQ3JlZGVudGlhbFNlcnZpY2VgKSBkZWxlZ2F0ZXMgdXNlci9ydW50aW1lIGNyZWRlbnRpYWwgc3RvcmFnZSB0byB0aGlzXG4gKiBzZXJ2aWNlLlxuICogQGNsYXNzIE1vZGVsU2VjcmV0U2VydmljZVxuICogQGNhdGVnb3J5IFNlY3JldHNcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTW9kZWxTZWNyZXRTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvc2VjcmV0c1wiO1xuICpcbiAqIGNvbnN0IG1vZGVsU2VjcmV0cyA9IGF3YWl0IG5ldyBNb2RlbFNlY3JldFNlcnZpY2UoKS5ib290KHtcbiAqICAga2V5U2VjcmV0OiBcIm1vZGVsLW1hc3Rlci1rZXlcIixcbiAqIH0pO1xuICogYXdhaXQgbW9kZWxTZWNyZXRzLnN0b3JlKFwibXktc2VjcmV0XCIsIHsgdmFsdWU6IFwiczNjcjN0XCIgfSk7XG4gKiBjb25zdCBwYXlsb2FkID0gYXdhaXQgbW9kZWxTZWNyZXRzLnJldHJpZXZlPHsgdmFsdWU6IHN0cmluZyB9PihcIm15LXNlY3JldFwiKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgTW9kZWxTZWNyZXRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZWNyZXRTZXJ2aWNlPFxuICBSZXBvc2l0b3J5PFNlY3JldCwgYW55PixcbiAgTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnXG4+IHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNlY3JldFByb3ZpZGVyID0gXCJtb2RlbFwiO1xuICBwcml2YXRlIGNyeXB0b1NlcnZpY2UhOiBDcnlwdG9TZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgbW9kZWwgc2VjcmV0IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgRW52aXJvbm1lbnRcbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBzZWNyZXRzLm1vZGVsYCBFbnZpcm9ubWVudCBzbGljZSBhbmQgcmV0dXJucyBhXG4gICAqIGBNb2RlbFNlY3JldFNlcnZpY2VDb25maWdgIHdoZW4gYSBga2V5U2VjcmV0YCBpcyBjb25maWd1cmVkOyByZXR1cm5zXG4gICAqIGB1bmRlZmluZWRgIG90aGVyd2lzZSwgbGV0dGluZyBib290IGZhbGwgYmFjayB0byBleHBsaWNpdCBhcmd1bWVudHMuXG4gICAqIEByZXR1cm5zIHtNb2RlbFNlY3JldFNlcnZpY2VDb25maWcgfCB1bmRlZmluZWR9IFRoZSBFbnZpcm9ubWVudC1kZXJpdmVkIGNvbmZpZ3VyYXRpb24sIG9yIGB1bmRlZmluZWRgLlxuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RlY3RlZCBjb25maWdGcm9tRW52aXJvbm1lbnQoKTogTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBNb2RlbFNlY3JldEVudmlyb25tZW50LnNlY3JldHMubW9kZWw7XG4gICAgY29uc3Qga2V5U2VjcmV0ID0gZW52U3RyaW5nKGVudj8ua2V5U2VjcmV0KTtcbiAgICBpZiAoIWtleVNlY3JldCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvdmlkZXI6IFwibW9kZWxcIixcbiAgICAgIGtleVNlY3JldCxcbiAgICAgIGtleUlkOiBlbnZTdHJpbmcoZW52LmtleUlkKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCb290cyB0aGUgY3J5cHRvIHNlcnZpY2UgYW5kIHJlc29sdmVzIHRoZSBiYWNraW5nIHJlcG9zaXRvcnlcbiAgICogQHN1bW1hcnkgQWNjZXB0cyB0aGUgY29uZmlndXJhdGlvbiAoZXhwbGljaXQgYXJncywgbWVyZ2VkIHdpdGggdGhlXG4gICAqIEVudmlyb25tZW50IHNsaWNlIGJ5IHRoZSBiYXNlKSBhbmQgYW4gb3B0aW9uYWwgYFJlcG9zaXRvcnk8U2VjcmV0PmAgYXMgdGhlXG4gICAqIHNlY29uZCBhcmd1bWVudDsgd2hlbiBhYnNlbnQsIGNyZWF0ZXMgb25lIHZpYSBgUmVwb3NpdG9yeS5mb3JNb2RlbChTZWNyZXQpYC5cbiAgICogUmV0dXJucyB0aGUgY29uZmlnIGFuZCByZXBvc2l0b3J5IGFzIHRoZSBzZXJ2aWNlIGNsaWVudC5cbiAgICogQHBhcmFtIHtDb250ZXh0dWFsQXJnc30gYXJncyAtIENvbmZpZ3VyYXRpb24gYW5kIG9wdGlvbmFsIGBSZXBvc2l0b3J5YC9gQ29udGV4dGAgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7Y29uZmlnOiBNb2RlbFNlY3JldFNlcnZpY2VDb25maWcsIGNsaWVudDogUmVwb3NpdG9yeTxTZWNyZXQsIGFueT59Pn0gVGhlIHJlc29sdmVkIGNvbmZpZyBhbmQgcmVwb3NpdG9yeSBjbGllbnQuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT4pOiBQcm9taXNlPHtcbiAgICBjb25maWc6IE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZztcbiAgICBjbGllbnQ6IFJlcG9zaXRvcnk8U2VjcmV0LCBhbnk+O1xuICB9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRDb25maWdGcm9tQXJnczxNb2RlbFNlY3JldFNlcnZpY2VDb25maWc+KC4uLmFyZ3MpO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPVxuICAgICAgKGFyZ3NbMV0gYXMgUmVwb3NpdG9yeTxTZWNyZXQsIGFueT4gfCB1bmRlZmluZWQpIHx8XG4gICAgICBSZXBvc2l0b3J5LmZvck1vZGVsPFNlY3JldCwgUmVwb3NpdG9yeTxTZWNyZXQsIGFueT4+KFNlY3JldCk7XG4gICAgdGhpcy5jcnlwdG9TZXJ2aWNlID0gbmV3IENyeXB0b1NlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuYm9vdCh7fSk7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQ6IHJlcG9zaXRvcnkgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRW5jcnlwdHMgYW5kIHBlcnNpc3RzIGEgc2VjcmV0IHJvd1xuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYW5kIG5vcm1hbGl6ZXMgdGhlIG5hbWUsIHNlcmlhbGl6ZXMgdGhlIHBheWxvYWQsIGFuZFxuICAgKiBlbmNyeXB0cyBpdCB3aXRoIGEga2V5IGRlcml2ZWQgZnJvbSB0aGUgbWFzdGVyIGBrZXlTZWNyZXRgLCBlbWJlZGRpbmcgdGhlXG4gICAqIGtleSBpZC9pdi9zYWx0IGluIHRoZSByb3cncyBgZW5jcnlwdGlvbmAgbWV0YWRhdGEuIFRoZSByb3cgY2FycmllcyB0aGVcbiAgICogb3B0aW9uYWwgdGVuYW50L29yZy11bml0L293bmVyIHNjb3BpbmcgYW5kIHZlcnNpb24uIGAobmFtZSwgdmVyc2lvbilgIGlzXG4gICAqIHVuaXF1ZTogYW4gYXBwbGljYXRpb24tbGV2ZWwgcHJlLWNoZWNrIHJlamVjdHMgYSBkdXBsaWNhdGUgY29tYmluYXRpb25cbiAgICogd2l0aCBhIGBTRUNSRVRfQUxSRUFEWV9FWElTVFNgIHtAbGluayBTZWNyZXRFcnJvcn0gYmVmb3JlIHRoZSBpbnNlcnQsIGFuZFxuICAgKiB0aGUgYHVxX3NlY3JldHNfbmFtZV92ZXJzaW9uYCBkYXRhYmFzZSBpbmRleCAod2hpY2ggdHJlYXRzIGBOVUxMYFxuICAgKiB2ZXJzaW9ucyBhcyBgJydgKSBiYWNrc3RvcHMgdGhlIHNhbWUgcnVsZSBhZ2FpbnN0IGNvbmN1cnJlbnQgd3JpdGVycy5cbiAgICogQHRlbXBsYXRlIFQgLSBUaGUgc2VjcmV0IHBheWxvYWQgdHlwZS5cbiAgICogQHBhcmFtIHtTZWNyZXROYW1lfSBuYW1lIC0gVGhlIHNlY3JldCBuYW1lICh2YWxpZGF0ZWQgYW5kIG5vcm1hbGl6ZWQpLlxuICAgKiBAcGFyYW0ge1R9IHZhbHVlIC0gVGhlIHBheWxvYWQgdG8gZW5jcnlwdCBhbmQgc3RvcmUuXG4gICAqIEBwYXJhbSB7U3RvcmVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCBjb250ZW50IHR5cGUsIHRhZ3MsIHZlcnNpb24sIGFuZCB0ZW5hbnQvb3JnL293bmVyIHNjb3BpbmcuXG4gICAqIEBwYXJhbSB7TWF5YmVDb250ZXh0dWFsQXJnfSBhcmdzIC0gT3B0aW9uYWwgdHJhaWxpbmcgZGVjYWYgYENvbnRleHRgIGZvcndhcmRlZCB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICogQHJldHVybnMge1Byb21pc2U8U2VjcmV0UmVmZXJlbmNlPn0gQSByZWZlcmVuY2UgdG8gdGhlIHBlcnNpc3RlZCBzZWNyZXQuXG4gICAqIEB0aHJvd3Mge1NlY3JldEVycm9yfSBgU0VDUkVUX0FMUkVBRFlfRVhJU1RTYCB3aGVuIGEgcm93IHdpdGggdGhlIHNhbWUgbm9ybWFsaXplZCBuYW1lIGFuZCB2ZXJzaW9uIGFscmVhZHkgZXhpc3RzLCBvciBgU0VDUkVUX05PVF9GT1VORGAvYFNFQ1JFVF9QUk9WSURFUl9DT05GTElDVGAgd2hlbiB0aGUgbmFtZSBpcyBpbnZhbGlkIG9yIHRoZSByZXBvc2l0b3J5IGluc2VydCBmYWlscy5cbiAgICovXG4gIGFzeW5jIHN0b3JlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZTogU2VjcmV0TmFtZSxcbiAgICB2YWx1ZTogVCxcbiAgICBvcHRpb25zOiBTdG9yZVNlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdG9yZVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5zdG9yZVxuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYFN0b3Jpbmcgc2VjcmV0ICR7bmFtZX1gKTtcbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc2VyaWFsaXplU2VjcmV0UGF5bG9hZCh2YWx1ZSk7XG4gICAgY29uc3QgZGVyaXZlZEtleSA9IGF3YWl0IHRoaXMuY3J5cHRvU2VydmljZS5kZXJpdmVLZXlGcm9tU2VjcmV0KFxuICAgICAgdGhpcy5jb25maWcua2V5U2VjcmV0IGFzIHN0cmluZ1xuICAgICk7XG4gICAgY29uc3QgZXh0cmFjdGVkID0gdGhpcy5jcnlwdG9TZXJ2aWNlLmV4dHJhY3RLZXlGcm9tRGVyaXZlZEtleShkZXJpdmVkS2V5KTtcbiAgICBjb25zdCB7IGVuY3J5cHRlZERhdGEsIG1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZW5jcnlwdFBheWxvYWQoXG4gICAgICBKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkKSxcbiAgICAgIHRoaXMuY29uZmlnLmtleUlkIHx8IERFRkFVTFRfS0VZX0lELFxuICAgICAgZXh0cmFjdGVkLmtleVxuICAgICk7XG5cbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHNlY3JldCA9IG5ldyBTZWNyZXQoe1xuICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgIGVuY3J5cHRlZFBheWxvYWQ6IGVuY3J5cHRlZERhdGEsXG4gICAgICBlbmNyeXB0aW9uOiB7XG4gICAgICAgIGtleUlkOiBtZXRhZGF0YS5rZXlJZCxcbiAgICAgICAgaXY6IG1ldGFkYXRhLml2LFxuICAgICAgICBzYWx0OiBleHRyYWN0ZWQuc2FsdCxcbiAgICAgIH0sXG4gICAgICBjb250ZW50VHlwZTogb3B0aW9ucy5jb250ZW50VHlwZSxcbiAgICAgIHRhZ3M6IG9wdGlvbnMudGFncyxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICB2ZXJzaW9uOiBvcHRpb25zLnZlcnNpb24sXG4gICAgICB0ZW5hbnRJZDogb3B0aW9ucy50ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZDogb3B0aW9ucy5vcmdVbml0SWQsXG4gICAgICBvd25lclByaW5jaXBhbElkOiBvcHRpb25zLm93bmVyUHJpbmNpcGFsSWQsXG4gICAgfSk7XG5cbiAgICBjb25zdCB0YXJnZXRWZXJzaW9uID0gb3B0aW9ucy52ZXJzaW9uID8/IFwiXCI7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpKVxuICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgY29uc3QgZHVwbGljYXRlID0gZXhpc3Rpbmcuc29tZShcbiAgICAgIChyb3c6IFNlY3JldCkgPT4gKHJvdy52ZXJzaW9uID8/IFwiXCIpID09PSB0YXJnZXRWZXJzaW9uXG4gICAgKTtcbiAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX0FMUkVBRFlfRVhJU1RTXCIsXG4gICAgICAgIGBTZWNyZXQgJHtKU09OLnN0cmluZ2lmeShub3JtYWxpemVkTmFtZSl9JHtcbiAgICAgICAgICB0YXJnZXRWZXJzaW9uID8gYCB2ZXJzaW9uICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0VmVyc2lvbil9YCA6IFwiXCJcbiAgICAgICAgfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmNyZWF0ZShzZWNyZXQsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgIG5hbWU6IG5vcm1hbGl6ZWROYW1lLFxuICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgY3JlYXRlZEF0OiBub3cudG9JU09TdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMsIGRlY3J5cHRzLCBhbmQgZGVzZXJpYWxpemVzIGFuIGVuYWJsZWQgc2VjcmV0IHJvd1xuICAgKiBAc3VtbWFyeSBRdWVyaWVzIHRoZSBuZXdlc3QgbWF0Y2hpbmcgZW5hYmxlZCByb3cgKGJ5IG5vcm1hbGl6ZWQgbmFtZSBhbmQsXG4gICAqIG9wdGlvbmFsbHksIHZlcnNpb24pLCByZS1kZXJpdmVzIHRoZSBrZXkgdXNpbmcgdGhlIHJvdydzIHNhbHQsIGFuZCBkZWNyeXB0c1xuICAgKiB0aGUgcGF5bG9hZC4gUm93cyBhcmUgb3JkZXJlZCBieSBgdXBkYXRlZEF0IERFU0NgLCBzbyB3aGVuIHNldmVyYWwgcm93c1xuICAgKiBzaGFyZSBhIG5hbWUgdGhlIG1vc3QgcmVjZW50bHkgdXBkYXRlZCBlbmFibGVkIHJvdyBpcyByZXNvbHZlZFxuICAgKiBkZXRlcm1pbmlzdGljYWxseS4gVGhlIHJlcG9zaXRvcnkgU0VMRUNUIHJ1bnMgaW5zaWRlIGEgcHJpbmNpcGFsLWJvdW5kXG4gICAqIHRyYW5zYWN0aW9uIChzZWUge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZS53aXRoaW5QcmluY2lwYWxUcmFuc2FjdGlvbn0pOlxuICAgKiBpdCBqb2lucyBhbiBpbi1mbGlnaHQgYHRyYW5zYWN0aW9uTG9ja2Agb24gdGhlIGNvbnRleHQgb3IgYmVnaW5zIG9uZSxcbiAgICogYmluZGluZyB0aGUgY29udGV4dCdzIHByaW5jaXBhbCB0byBgYXBwLnByaW5jaXBhbF9pZGAgb24gVHlwZU9STSBhZGFwdGVyc1xuICAgKiBzbyBuYW1lc3BhY2UgUkxTIGFwcGxpZXMgdG8gdGhlIHJlYWQuIE1pc3Npbmcgcm93cyB0aHJvd1xuICAgKiB7QGxpbmsgTm90Rm91bmRFcnJvcn07IGRlY3J5cHRpb24gYW5kIEpTT04gcGFyc2UgZmFpbHVyZXMgdGhyb3dcbiAgICogYEludGVybmFsRXJyb3JgLlxuICAgKiBAdGVtcGxhdGUgVCAtIFRoZSBzZWNyZXQgcGF5bG9hZCB0eXBlLlxuICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAqIEBwYXJhbSB7UmV0cmlldmVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlci5cbiAgICogQHBhcmFtIHtNYXliZUNvbnRleHR1YWxBcmd9IGFyZ3MgLSBPcHRpb25hbCB0cmFpbGluZyBkZWNhZiBgQ29udGV4dGAgZm9yd2FyZGVkIHRvIHRoZSByZXBvc2l0b3J5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gVGhlIGRlY3J5cHRlZCBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIG5vIGVuYWJsZWQgc2VjcmV0IG1hdGNoZXMgdGhlIG5hbWUvdmVyc2lvbi5cbiAgICovXG4gIGFzeW5jIHJldHJpZXZlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IFJldHJpZXZlU2VjcmV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV0cmlldmVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnJldHJpZXZlKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBSZXRyaWV2aW5nIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuICAgIGxldCB2ZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICAgIHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICAgIHZlcnNpb24gPSBuYW1lT3JSZWYudmVyc2lvbjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIGxldCBjb25kaXRpb24gPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5lcShub3JtYWxpemVkTmFtZSk7XG5cbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwidmVyc2lvblwiKS5lcSh2ZXJzaW9uKSk7XG4gICAgfVxuXG4gICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwiZW5hYmxlZFwiKS5lcSh0cnVlKSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy53aXRoaW5QcmluY2lwYWxUcmFuc2FjdGlvbihjdHgsIChsb2NrKSA9PlxuICAgICAgdGhpcy5jbGllbnRcbiAgICAgICAgLm92ZXJyaWRlKHsgdHJhbnNhY3Rpb25Mb2NrOiBsb2NrIH0pXG4gICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAud2hlcmUoY29uZGl0aW9uKVxuICAgICAgICAub3JkZXJCeShbXCJ1cGRhdGVkQXRcIiwgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncylcbiAgICApO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gcmVzdWx0c1swXTtcblxuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBTZWNyZXQgXCIke25vcm1hbGl6ZWROYW1lfVwiIG5vdCBmb3VuZGApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlcml2ZWRLZXkgPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZGVyaXZlS2V5RnJvbVNlY3JldChcbiAgICAgIHRoaXMuY29uZmlnLmtleVNlY3JldCBhcyBzdHJpbmcsXG4gICAgICBleGlzdGluZy5lbmNyeXB0aW9uPy5zYWx0XG4gICAgKTtcbiAgICBsZXQgZGVjcnlwdGVkVmFsdWU6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgZGVjcnlwdGVkVmFsdWUgPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZGVjcnlwdFBheWxvYWQoXG4gICAgICAgIGV4aXN0aW5nLmVuY3J5cHRlZFBheWxvYWQsXG4gICAgICAgIHRoaXMuY3J5cHRvU2VydmljZS5leHRyYWN0S2V5RnJvbURlcml2ZWRLZXkoZGVyaXZlZEtleSkua2V5XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBkZWNyeXB0IHNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCI6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHBheWxvYWQ6IFNlcmlhbGl6ZWRTZWNyZXRQYXlsb2FkO1xuICAgIHRyeSB7XG4gICAgICBwYXlsb2FkID0gSlNPTi5wYXJzZShkZWNyeXB0ZWRWYWx1ZSkgYXMgU2VyaWFsaXplZFNlY3JldFBheWxvYWQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCI6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZChwYXlsb2FkKSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSdW5zIGEgcmVwb3NpdG9yeSBvcGVyYXRpb24gaW5zaWRlIGEgcHJpbmNpcGFsLWJvdW5kIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IE1pcnJvcnMgY29yZSdzIGBAdHJhbnNhY3Rpb25hbCgpYCBwcm94eSBmb3Igc2luZ2xlIHJlYWRzOiByZXVzZXNcbiAgICogdGhlIGB0cmFuc2FjdGlvbkxvY2tgIGFscmVhZHkgY2FjaGVkIG9uIHRoZSBjb250ZXh0IChuZXN0ZWQgY2FsbCksIG9yXG4gICAqIHJlc29sdmVzIGEgZnJlc2ggbG9jayBmb3IgdGhlIHNlcnZpY2UgY2xpZW50IHZpYSBgcmVzb2x2ZVRyYW5zYWN0aW9uTG9ja2BcbiAgICogYW5kIGNhbGxzIGBiZWdpbihjb250ZXh0KWAgLSB3aGljaCwgb24gYSBUeXBlT1JNIGFkYXB0ZXIsIGJpbmRzIHRoZVxuICAgKiBjb250ZXh0J3MgcHJpbmNpcGFsIHRvIGBhcHAucHJpbmNpcGFsX2lkYCBmb3IgdGhlIG5ldyB0cmFuc2FjdGlvbi5cbiAgICogSW5jcmVtZW50cyB0aGUgbG9jayBkZXB0aCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBvcGVyYXRpb247IG9uIGZhaWx1cmUsXG4gICAqIHJvbGxzIGJhY2sgYW5kIHplcm9lcyB0aGUgZGVwdGggKHNraXBwaW5nIGEgcmVkdW5kYW50IHJvbGxiYWNrIHdoZW4gYW5cbiAgICogaW5uZXIgZnJhbWUgYWxyZWFkeSBlbmRlZCB0aGUgdHJhbnNhY3Rpb24pIGFuZCByZXRocm93cyB0aGUgb3JpZ2luYWxcbiAgICogZXJyb3I7IG9uIHN1Y2Nlc3MsIGNvbW1pdHMgd2hlbiB0aGUgb3V0ZXJtb3N0IGZyYW1lIGNvbXBsZXRlcy5cbiAgICogQHRlbXBsYXRlIFIgLSBUaGUgb3BlcmF0aW9uIHJlc3VsdCB0eXBlLlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgLSBUaGUgcmVxdWVzdCBjb250ZXh0LCBjYXJyeWluZyBhbnkgaW4tZmxpZ2h0IHRyYW5zYWN0aW9uIGxvY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oQ29udGV4dExvY2spOiBQcm9taXNlPFI+fSBvcGVyYXRpb24gLSBUaGUgcmVwb3NpdG9yeSBvcGVyYXRpb24gdG8gcnVuLCByZWNlaXZpbmcgdGhlIGFjdGl2ZSBsb2NrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSPn0gVGhlIG9wZXJhdGlvbiByZXN1bHQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIGZpbmFsIGNvbW1pdCBmYWlsczsgb3BlcmF0aW9uIGVycm9ycyBhcmUgcmV0aHJvd24gYWZ0ZXIgcm9sbGJhY2suXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHdpdGhpblByaW5jaXBhbFRyYW5zYWN0aW9uPFI+KFxuICAgIGNvbnRleHQ6IENvbnRleHQ8YW55PixcbiAgICBvcGVyYXRpb246IChsb2NrOiBDb250ZXh0TG9jaykgPT4gUHJvbWlzZTxSPlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJ0cmFuc2FjdGlvbkxvY2tcIikgYXNcbiAgICAgIHwgQ29udGV4dExvY2tcbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxvY2sgPSBleGlzdGluZyA/PyByZXNvbHZlVHJhbnNhY3Rpb25Mb2NrKHRoaXMuY2xpZW50KTtcbiAgICBsb2NrLmRlcHRoKys7XG4gICAgaWYgKCFleGlzdGluZykge1xuICAgICAgYXdhaXQgbG9jay5iZWdpbihjb250ZXh0KTtcbiAgICAgIGNvbnRleHQuY2FjaGUucHV0KFwidHJhbnNhY3Rpb25Mb2NrXCIsIGxvY2spO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0OiBSO1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBvcGVyYXRpb24obG9jayk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGFscmVhZHlFbmRlZCA9IGxvY2suZGVwdGggPT09IDA7XG4gICAgICBsb2NrLmRlcHRoID0gMDtcbiAgICAgIGlmICghYWxyZWFkeUVuZGVkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgbG9jay5yb2xsYmFjayhlcnJvciBhcyBFcnJvciwgY29udGV4dCk7XG4gICAgICAgIH0gY2F0Y2ggKHJvbGxiYWNrRXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICB2b2lkIHJvbGxiYWNrRXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBsb2NrLmRlcHRoLS07XG4gICAgaWYgKGxvY2suZGVwdGggPT09IDApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGxvY2suY29tbWl0KGNvbnRleHQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBjb21taXQgdHJhbnNhY3Rpb246ICR7ZXJyb3J9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgKG9yIGRpc2FibGVzKSBhIHNlY3JldCByb3dcbiAgICogQHN1bW1hcnkgU29mdC1kZWxldGVzIGJ5IGRlZmF1bHQ6IHRoZSByb3cgaXMgZGlzYWJsZWQgYW5kIHN0YW1wZWQgd2l0aCBhXG4gICAqIG5ldyBgdXBkYXRlZEF0YC4gV2l0aCBgb3B0aW9ucy5mb3JjZWAsIHRoZSByb3cgaXMgaGFyZC1kZWxldGVkIGZyb20gdGhlXG4gICAqIHJlcG9zaXRvcnkuIFJvd3MgYXJlIG9yZGVyZWQgYnkgYHVwZGF0ZWRBdCBERVNDYCwgc28gdGhlIG1vc3QgcmVjZW50bHlcbiAgICogdXBkYXRlZCBtYXRjaGluZyByb3cgaXMgcmVzb2x2ZWQgZGV0ZXJtaW5pc3RpY2FsbHkuIEEgbWlzc2luZyBzZWNyZXRcbiAgICogcmVzb2x2ZXMgc2lsZW50bHkuXG4gICAqIEBwYXJhbSB7U2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZX0gbmFtZU9yUmVmIC0gVGhlIHNlY3JldCBuYW1lIG9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtEZWxldGVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlciBhbmQgYGZvcmNlYCBoYXJkLWRlbGV0ZSBmbGFnLlxuICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyBvbmNlIHRoZSByb3cgaXMgZGVsZXRlZCBvciBkaXNhYmxlZC5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczogRGVsZXRlU2VjcmV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuZGVsZXRlXG4gICAgKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBEZWxldGluZyBzZWNyZXQgJHtuYW1lU3RyfWApO1xuXG4gICAgbGV0IG5hbWU6IHN0cmluZztcblxuICAgIGlmICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmLm5hbWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG5cbiAgICBsZXQgZmlsdGVyID0gQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb247XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoZmlsdGVyKVxuICAgICAgLm9yZGVyQnkoW1widXBkYXRlZEF0XCIsIE9yZGVyRGlyZWN0aW9uLkRTQ10pXG4gICAgICAuZXhlY3V0ZSguLi5jdHhBcmdzKTtcbiAgICBjb25zdCBleGlzdGluZyA9IHJlc3VsdHNbMF07XG5cbiAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZm9yY2UpIHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZShleGlzdGluZy5pZCwgLi4uY3R4QXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIGV4aXN0aW5nLnVwZGF0ZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC51cGRhdGUoZXhpc3RpbmcsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIHdoZXRoZXIgYW4gZW5hYmxlZCBzZWNyZXQgZXhpc3RzIChvcHRpb25hbGx5IGF0IGEgdmVyc2lvbilcbiAgICogQHN1bW1hcnkgQ291bnRzIGVuYWJsZWQgcm93cyBtYXRjaGluZyB0aGUgbm9ybWFsaXplZCBuYW1lIChwbHVzIGFueVxuICAgKiByZXF1ZXN0ZWQgdmVyc2lvbikgYW5kIHJldHVybnMgd2hldGhlciB0aGUgY291bnQgaXMgcG9zaXRpdmUuXG4gICAqIEBwYXJhbSB7U2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZX0gbmFtZU9yUmVmIC0gVGhlIHNlY3JldCBuYW1lIG9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtFeGlzdHNTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlci5cbiAgICogQHBhcmFtIHtNYXliZUNvbnRleHR1YWxBcmd9IGFyZ3MgLSBPcHRpb25hbCB0cmFpbGluZyBkZWNhZiBgQ29udGV4dGAgZm9yd2FyZGVkIHRvIHRoZSByZXBvc2l0b3J5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gYHRydWVgIHdoZW4gYXQgbGVhc3Qgb25lIGVuYWJsZWQgcm93IG1hdGNoZXMuXG4gICAqL1xuICBhc3luYyBleGlzdHMoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IEV4aXN0c1NlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZXhpc3RzXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmV4aXN0c1xuICAgICk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgQ2hlY2tpbmcgaWYgc2VjcmV0ICR7bmFtZVN0cn0gZXhpc3RzYCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIGxldCBmaWx0ZXIgPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5lcShub3JtYWxpemVkTmFtZSk7XG4gICAgZmlsdGVyID0gZmlsdGVyLmFuZChDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwiZW5hYmxlZFwiKS5lcSh0cnVlKSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID1cbiAgICAgIG9wdGlvbnMudmVyc2lvbiA/P1xuICAgICAgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwib2JqZWN0XCIgPyBuYW1lT3JSZWYudmVyc2lvbiA6IHVuZGVmaW5lZCk7XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgdGhpcy5jbGllbnQuY291bnQoKS53aGVyZShmaWx0ZXIpLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG5cbiAgICByZXR1cm4gY291bnQgPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBzZWNyZXQgbWV0YWRhdGEgYWNyb3NzIHN0b3JlZCByb3dzXG4gICAqIEBzdW1tYXJ5IFNlbGVjdHMgcm93cyBmaWx0ZXJlZCBieSB0aGUgYGVuYWJsZWRgIGZsYWcgKHdoZW4gc3VwcGxpZWQpIGFuZFxuICAgKiBtYXBzIHRoZW0gdG8gYFNlY3JldE1ldGFkYXRhYCByZWNvcmRzIChubyBwYXlsb2FkcykuXG4gICAqIEBwYXJhbSB7TGlzdFNlY3JldHNPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCBgZW5hYmxlZGAgZmlsdGVyLlxuICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNlY3JldE1ldGFkYXRhW10+fSBNZXRhZGF0YSBmb3IgZXZlcnkgbWF0Y2hpbmcgc2VjcmV0LlxuICAgKi9cbiAgYXN5bmMgbGlzdChcbiAgICBvcHRpb25zOiBMaXN0U2VjcmV0c09wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldE1ldGFkYXRhW10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibGlzdFwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5saXN0XG4gICAgKTtcbiAgICBsb2cudmVyYm9zZShcIkxpc3Rpbmcgc2VjcmV0c1wiKTtcblxuICAgIGxldCBjb25kaXRpb246IENvbmRpdGlvbjxTZWNyZXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAob3B0aW9ucy5lbmFibGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJlbmFibGVkXCIpLmVxKG9wdGlvbnMuZW5hYmxlZCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjcmV0czogU2VjcmV0W10gPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoY29uZGl0aW9uIHx8IENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJuYW1lXCIpLmRpZihudWxsKSlcbiAgICAgIC5leGVjdXRlKC4uLmN0eEFyZ3MpO1xuXG4gICAgcmV0dXJuIHNlY3JldHMubWFwKChzZWNyZXQ6IFNlY3JldCkgPT4gKHtcbiAgICAgIHByb3ZpZGVyOiBzZWNyZXQucHJvdmlkZXIgYXMgU2VjcmV0UHJvdmlkZXIsXG4gICAgICBuYW1lOiBzZWNyZXQubmFtZSxcbiAgICAgIHZlcnNpb246IHNlY3JldC52ZXJzaW9uLFxuICAgICAgY3JlYXRlZEF0OiBzZWNyZXQuY3JlYXRlZEF0LFxuICAgICAgdXBkYXRlZEF0OiBzZWNyZXQudXBkYXRlZEF0LFxuICAgICAgZW5hYmxlZDogc2VjcmV0LmVuYWJsZWQsXG4gICAgICBjb250ZW50VHlwZTogc2VjcmV0LmNvbnRlbnRUeXBlLFxuICAgICAgdGFnczogc2VjcmV0LnRhZ3MsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBvbmUgc2VjcmV0J3MgbWV0YWRhdGEgd2l0aG91dCBpdHMgcGF5bG9hZFxuICAgKiBAc3VtbWFyeSBTZWxlY3RzIHRoZSByb3cgbWF0Y2hpbmcgdGhlIG5vcm1hbGl6ZWQgbmFtZSAoYW5kIG9wdGlvbmFsXG4gICAqIHZlcnNpb24pIGFuZCBtYXBzIGl0IHRvIGBTZWNyZXRNZXRhZGF0YWA7IHRhZ3MgYXJlIGluY2x1ZGVkIG9ubHkgd2hlblxuICAgKiBgb3B0aW9ucy5pbmNsdWRlVGFnc2AgaXMgc2V0LiBSb3dzIGFyZSBvcmRlcmVkIGJ5IGB1cGRhdGVkQXQgREVTQ2AsIHNvXG4gICAqIHRoZSBtb3N0IHJlY2VudGx5IHVwZGF0ZWQgbWF0Y2hpbmcgcm93IGlzIHJlc29sdmVkIGRldGVybWluaXN0aWNhbGx5LlxuICAgKiBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gbm8gcm93IG1hdGNoZXMuXG4gICAqIEBwYXJhbSB7U2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZX0gbmFtZU9yUmVmIC0gVGhlIHNlY3JldCBuYW1lIG9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtTZWNyZXRNZXRhZGF0YU9wdGlvbnN9IFtvcHRpb25zXSAtIE9wdGlvbmFsIHZlcnNpb24gZmlsdGVyIGFuZCBgaW5jbHVkZVRhZ3NgIGZsYWcuXG4gICAqIEBwYXJhbSB7TWF5YmVDb250ZXh0dWFsQXJnfSBhcmdzIC0gT3B0aW9uYWwgdHJhaWxpbmcgZGVjYWYgYENvbnRleHRgIGZvcndhcmRlZCB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICogQHJldHVybnMge1Byb21pc2U8U2VjcmV0TWV0YWRhdGEgfCB1bmRlZmluZWQ+fSBUaGUgbWV0YWRhdGEsIG9yIGB1bmRlZmluZWRgIHdoZW4gYWJzZW50LlxuICAgKi9cbiAgYXN5bmMgbWV0YWRhdGEoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IFNlY3JldE1ldGFkYXRhT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibWV0YWRhdGFcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMubWV0YWRhdGFcbiAgICApO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYEdldHRpbmcgbWV0YWRhdGEgZm9yIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIGxldCBmaWx0ZXIgPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5lcShub3JtYWxpemVkTmFtZSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID1cbiAgICAgIG9wdGlvbnMudmVyc2lvbiA/P1xuICAgICAgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwib2JqZWN0XCIgPyBuYW1lT3JSZWYudmVyc2lvbiA6IHVuZGVmaW5lZCk7XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHM6IFNlY3JldFtdID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKGZpbHRlcilcbiAgICAgIC5vcmRlckJ5KFtcInVwZGF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgY29uc3Qgc2VjcmV0ID0gcmVzdWx0c1swXTtcblxuICAgIGlmICghc2VjcmV0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGE6IFNlY3JldE1ldGFkYXRhID0ge1xuICAgICAgcHJvdmlkZXI6IHNlY3JldC5wcm92aWRlciBhcyBTZWNyZXRQcm92aWRlcixcbiAgICAgIG5hbWU6IHNlY3JldC5uYW1lLFxuICAgICAgdmVyc2lvbjogc2VjcmV0LnZlcnNpb24sXG4gICAgICBjcmVhdGVkQXQ6IHNlY3JldC5jcmVhdGVkQXQsXG4gICAgICB1cGRhdGVkQXQ6IHNlY3JldC51cGRhdGVkQXQsXG4gICAgICBlbmFibGVkOiBzZWNyZXQuZW5hYmxlZCxcbiAgICAgIGNvbnRlbnRUeXBlOiBzZWNyZXQuY29udGVudFR5cGUsXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmluY2x1ZGVUYWdzKSB7XG4gICAgICBtZXRhLnRhZ3MgPSBzZWNyZXQudGFncztcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmUtZW5jcnlwdHMgYW4gZW5hYmxlZCBzZWNyZXQgcm93IHdpdGggYSBuZXcgcGF5bG9hZFxuICAgKiBAc3VtbWFyeSBMb2NhdGVzIHRoZSBlbmFibGVkIHJvdyAob3B0aW9uYWxseSBwaW5uZWQgdG9cbiAgICogYG9wdGlvbnMub2xkVmVyc2lvbmApLCBlbmNyeXB0cyB0aGUgbmV3IHBheWxvYWQgd2l0aCBhIGZyZXNobHkgZGVyaXZlZFxuICAgKiBrZXkgKG9wdGlvbmFsbHkgdGFnZ2VkIHdpdGggYG9wdGlvbnMua2V5SWRgKSwgYW5kIHVwZGF0ZXMgdGhlIHJvdydzXG4gICAqIHBheWxvYWQsIGVuY3J5cHRpb24gbWV0YWRhdGEsIHZlcnNpb24gKGBvcHRpb25zLm5ld1ZlcnNpb25gKSwgYW5kXG4gICAqIGB1cGRhdGVkQXRgLiBXaGVuIGBvcHRpb25zLm5ld1ZlcnNpb25gIGRpZmZlcnMgZnJvbSB0aGUgcm93J3MgY3VycmVudFxuICAgKiB2ZXJzaW9uLCBhIGAobmFtZSwgdmVyc2lvbilgIGR1cGxpY2F0ZSBjaGVjayByZWplY3RzIHRoZSByb3RhdGlvbiB3aXRoIGFcbiAgICogYFNFQ1JFVF9BTFJFQURZX0VYSVNUU2Age0BsaW5rIFNlY3JldEVycm9yfTsgb3RoZXJ3aXNlIHRoZSB0YXJnZXQgdmVyc2lvblxuICAgKiBpcyByZXVzZWQgYW5kIHRoZSByb3cgaXMgdXBkYXRlZCBpbiBwbGFjZS4gTWF0Y2hpbmcgcm93cyBhcmUgb3JkZXJlZCBieVxuICAgKiBgdXBkYXRlZEF0IERFU0NgLCBzbyB0aGUgbW9zdCByZWNlbnRseSB1cGRhdGVkIGVuYWJsZWQgcm93IGlzIHJlc29sdmVkXG4gICAqIGRldGVybWluaXN0aWNhbGx5LlxuICAgKiBAdGVtcGxhdGUgVCAtIFRoZSBzZWNyZXQgcGF5bG9hZCB0eXBlLlxuICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAqIEBwYXJhbSB7VH0gdmFsdWUgLSBUaGUgbmV3IHBheWxvYWQuXG4gICAqIEBwYXJhbSB7Um90YXRlU2VjcmV0T3B0aW9uc30gW29wdGlvbnNdIC0gT3B0aW9uYWwgYG5ld1ZlcnNpb25gLCBgb2xkVmVyc2lvbmAsIGFuZCBga2V5SWRgLlxuICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNlY3JldFJlZmVyZW5jZT59IEEgcmVmZXJlbmNlIHJlZmxlY3RpbmcgdGhlIHVwZGF0ZWQgcm93LlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIG5vIGVuYWJsZWQgc2VjcmV0IG1hdGNoZXMgdGhlIG5hbWUvdmVyc2lvbi5cbiAgICogQHRocm93cyB7U2VjcmV0RXJyb3J9IGBTRUNSRVRfQUxSRUFEWV9FWElTVFNgIHdoZW4gdGhlIHRhcmdldCBgbmV3VmVyc2lvbmAgaXMgYWxyZWFkeSBoZWxkIGJ5IGFub3RoZXIgcm93IHdpdGggdGhlIHNhbWUgbm9ybWFsaXplZCBuYW1lLCBvciBgU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUYCB3aGVuIHRoZSByZXBvc2l0b3J5IHVwZGF0ZSBmYWlscy5cbiAgICovXG4gIGFzeW5jIHJvdGF0ZTxUIGV4dGVuZHMgU2VjcmV0UGF5bG9hZCA9IFNlY3JldFBheWxvYWQ+KFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICB2YWx1ZTogVCxcbiAgICBvcHRpb25zOiBSb3RhdGVTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRSZWZlcmVuY2U+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicm90YXRlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJvdGF0ZVxuICAgICk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgUm90YXRpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lU3RyKTtcbiAgICBsZXQgY29uZGl0aW9uID0gQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcImVuYWJsZWRcIikuZXEodHJ1ZSkpO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9XG4gICAgICBvcHRpb25zLm9sZFZlcnNpb24gPz9cbiAgICAgICh0eXBlb2YgbmFtZU9yUmVmID09PSBcIm9iamVjdFwiID8gbmFtZU9yUmVmLnZlcnNpb24gOiB1bmRlZmluZWQpO1xuICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJ2ZXJzaW9uXCIpLmVxKHZlcnNpb24pKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKGNvbmRpdGlvbilcbiAgICAgIC5vcmRlckJ5KFtcInVwZGF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSByZXN1bHRzWzBdO1xuXG4gICAgaWYgKCFleGlzdGluZykge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCIgbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZlcnNpb24gPSBvcHRpb25zLm5ld1ZlcnNpb24gPz8gZXhpc3RpbmcudmVyc2lvbjtcbiAgICBjb25zdCB0YXJnZXRWZXJzaW9uID0gbmV4dFZlcnNpb24gPz8gXCJcIjtcbiAgICBpZiAodGFyZ2V0VmVyc2lvbiAhPT0gKGV4aXN0aW5nLnZlcnNpb24gPz8gXCJcIikpIHtcbiAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgLndoZXJlKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJuYW1lXCIpLmVxKG5vcm1hbGl6ZWROYW1lKSlcbiAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgICBjb25zdCBkdXBsaWNhdGUgPSByb3dzLnNvbWUoXG4gICAgICAgIChyb3c6IFNlY3JldCkgPT5cbiAgICAgICAgICByb3cuaWQgIT09IGV4aXN0aW5nLmlkICYmIChyb3cudmVyc2lvbiA/PyBcIlwiKSA9PT0gdGFyZ2V0VmVyc2lvblxuICAgICAgKTtcbiAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNlY3JldEVycm9yKFxuICAgICAgICAgIFwiU0VDUkVUX0FMUkVBRFlfRVhJU1RTXCIsXG4gICAgICAgICAgYFNlY3JldCAke0pTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWROYW1lKX0ke1xuICAgICAgICAgICAgdGFyZ2V0VmVyc2lvbiA/IGAgdmVyc2lvbiAke0pTT04uc3RyaW5naWZ5KHRhcmdldFZlcnNpb24pfWAgOiBcIlwiXG4gICAgICAgICAgfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXJpYWxpemVkID0gc2VyaWFsaXplU2VjcmV0UGF5bG9hZCh2YWx1ZSk7XG4gICAgY29uc3QgZGVyaXZlZEtleSA9IGF3YWl0IHRoaXMuY3J5cHRvU2VydmljZS5kZXJpdmVLZXlGcm9tU2VjcmV0KFxuICAgICAgdGhpcy5jb25maWcua2V5U2VjcmV0IGFzIHN0cmluZ1xuICAgICk7XG4gICAgY29uc3QgZXh0cmFjdGVkID0gdGhpcy5jcnlwdG9TZXJ2aWNlLmV4dHJhY3RLZXlGcm9tRGVyaXZlZEtleShkZXJpdmVkS2V5KTtcbiAgICBjb25zdCB7IGVuY3J5cHRlZERhdGEsIG1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZW5jcnlwdFBheWxvYWQoXG4gICAgICBKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkKSxcbiAgICAgIG9wdGlvbnMua2V5SWQgfHwgdGhpcy5jb25maWcua2V5SWQgfHwgREVGQVVMVF9LRVlfSUQsXG4gICAgICBleHRyYWN0ZWQua2V5XG4gICAgKTtcblxuICAgIGV4aXN0aW5nLmVuY3J5cHRlZFBheWxvYWQgPSBlbmNyeXB0ZWREYXRhO1xuICAgIGV4aXN0aW5nLmVuY3J5cHRpb24gPSB7XG4gICAgICBrZXlJZDogbWV0YWRhdGEua2V5SWQsXG4gICAgICBpdjogbWV0YWRhdGEuaXYsXG4gICAgICBzYWx0OiBleHRyYWN0ZWQuc2FsdCxcbiAgICB9O1xuICAgIGV4aXN0aW5nLnZlcnNpb24gPSBuZXh0VmVyc2lvbjtcbiAgICBleGlzdGluZy51cGRhdGVkQXQgPSBuZXcgRGF0ZSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnVwZGF0ZShleGlzdGluZywgLi4uY3R4QXJncyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICB2ZXJzaW9uOiBleGlzdGluZy52ZXJzaW9uLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRyYW5zbGF0ZXMgcmVwb3NpdG9yeSBlcnJvcnMgaW50byB0eXBlZCBzZWNyZXQgZXJyb3JzXG4gICAqIEBzdW1tYXJ5IEluc3BlY3RzIHRoZSBlcnJvciBtZXNzYWdlIGZvciBcIm5vdCBmb3VuZFwiLzQwNCwgXCJhbHJlYWR5XG4gICAqIGV4aXN0c1wiL2NvbmZsaWN0LzQwOSwgYW5kIGRlY3J5cHRpb24tcmVsYXRlZCBtYXJrZXJzIGFuZCBtYXBzIHRoZW0gdG9cbiAgICogYFNFQ1JFVF9OT1RfRk9VTkRgLCBgU0VDUkVUX0FMUkVBRFlfRVhJU1RTYCxcbiAgICogYFNFQ1JFVF9ERUNSWVBUSU9OX0ZBSUxFRGAsIG9yIGEgZ2VuZXJpYyBgU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUYFxuICAgKiB7QGxpbmsgU2VjcmV0RXJyb3J9LlxuICAgKiBAcGFyYW0ge3Vua25vd259IGVycm9yIC0gVGhlIHJhdyBlcnJvciB0aHJvd24gYnkgdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtTZWNyZXRFcnJvcn0gVGhlIHR5cGVkIHNlY3JldCBlcnJvci5cbiAgICovXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiB1bmtub3duKTogU2VjcmV0RXJyb3Ige1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSB8fCBlcnIubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfTk9UX0ZPVU5EXCIsXG4gICAgICAgIGBTZWNyZXQgbm90IGZvdW5kOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkdXBsaWNhdGUga2V5XCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmlxdWUgY29uc3RyYWludFwiKSB8fFxuICAgICAgKGVyciBhcyB7IGNvZGU/OiB1bmtub3duIH0pLmNvZGUgPT09IFwiMjM1MDVcIlxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfQUxSRUFEWV9FWElTVFNcIixcbiAgICAgICAgYFNlY3JldCBhbHJlYWR5IGV4aXN0czogJHttZXNzYWdlfWAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkZWNyeXB0aW9uXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkZWNyeXB0XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFxuICAgICAgICBcIlNFQ1JFVF9ERUNSWVBUSU9OX0ZBSUxFRFwiLFxuICAgICAgICBgRGVjcnlwdGlvbiBmYWlsZWQ6ICR7bWVzc2FnZX1gLFxuICAgICAgICBlcnJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgIFwiU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUXCIsXG4gICAgICBgUHJvdmlkZXIgZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgZXJyXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
589
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTW9kZWxTZWNyZXRTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxpREFBMkU7QUFDM0UsaURBQTZFO0FBQzdFLGlEQUF1RjtBQUN2RiwyQ0FBcUM7QUFDckMseUNBQXFFO0FBQ3JFLDJFQUFxRTtBQUNyRSw0RUFBK0Q7QUFDL0QseUNBQTJEO0FBQzNELHlFQUE2RTtBQUM3RSwyREFBdUU7QUFDdkUsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDO0FBQ3JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLG1DQUF3QjtJQUM1RDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxxQkFBcUI7UUFDakIsTUFBTSxHQUFHLEdBQUcsa0RBQXNCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNqRCxNQUFNLFNBQVMsR0FBRyxJQUFBLCtCQUFTLEVBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDckIsT0FBTztZQUNILFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFNBQVM7WUFDVCxLQUFLLEVBQUUsSUFBQSwrQkFBUyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDOUIsQ0FBQztJQUNOLENBQUM7SUFDRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFD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dGlvbnMvc2VjcmV0cy9tb2RlbC9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgZW5jcnlwdGVkIHNlY3JldCBzZXJ2aWNlLlxuICogQGRlc2NyaXB0aW9uIEltcGxlbWVudHMgdGhlIGB7QGxpbmsgTW9kZWxTZWNyZXRTZXJ2aWNlfWAsIGFuIHVuZGVjb3JhdGVkXG4gKiBgQ2xpZW50QmFzZWRTZWNyZXRTZXJ2aWNlYCB0aGF0XG4gKiBwZXJzaXN0cyBBRVMtZW5jcnlwdGVkIHBheWxvYWRzIGFzIGB7QGxpbmsgU2VjcmV0fWAgcm93cyB0aHJvdWdoIGFcbiAqIGRlY2FmIGBSZXBvc2l0b3J5YCAodGVuYW50L29yZy11bml0L293bmVyIHNjb3BpbmcgaW5jbHVkZWQpLiBFbmNyeXB0aW9uXG4gKiBrZXlzIGRlcml2ZSBmcm9tIGEgbWFzdGVyIGBrZXlTZWNyZXRgIHZpYSBgQ3J5cHRvU2VydmljZWA7IGNvbmZpZ3VyYXRpb25cbiAqIGNvbWVzIGZyb20gdGhlIGBzZWNyZXRzLm1vZGVsYCBFbnZpcm9ubWVudCBzbGljZSBvciBhbiBleHBsaWNpdCBib290XG4gKiBjb25maWcgKHNlZSBgTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnYCkuXG4gKi9cbmltcG9ydCB7IENsaWVudEJhc2VkU2VjcmV0U2VydmljZSwgU2VjcmV0RXJyb3IgfSBmcm9tIFwiLi8uLi9jb3JlL2luZGV4LmpzXCI7XG5pbXBvcnQgeyB2YWxpZGF0ZVNlY3JldE5hbWUsIG5vcm1hbGl6ZVNlY3JldE5hbWUgfSBmcm9tIFwiLi8uLi9jb3JlL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzZXJpYWxpemVTZWNyZXRQYXlsb2FkLCBkZXNlcmlhbGl6ZVNlY3JldFBheWxvYWQsIH0gZnJvbSBcIi4vLi4vY29yZS9pbmRleC5qc1wiO1xuaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcIi4vU2VjcmV0LmpzXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5LCByZXNvbHZlVHJhbnNhY3Rpb25Mb2NrLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWxTZWNyZXRFbnZpcm9ubWVudCB9IGZyb20gXCIuL01vZGVsU2VjcmV0RW52aXJvbm1lbnQuanNcIjtcbmltcG9ydCB7IGVudlN0cmluZyB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlLmpzXCI7XG5pbXBvcnQgeyBDb25kaXRpb24sIE9yZGVyRGlyZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDcnlwdG9TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jcnlwdG8vaW50ZWdyYXRpb24vc2VydmljZXMvY3J5cHRvXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5jb25zdCBERUZBVUxUX0tFWV9JRCA9IFwiZGVmYXVsdC1rZXlcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIE1vZGVsLWJhY2tlZCBlbmNyeXB0ZWQgc2VjcmV0IHNlcnZpY2VcbiAqIEBzdW1tYXJ5IFN0b3JlcyBlYWNoIHNlY3JldCBhcyBhIGB7QGxpbmsgU2VjcmV0fWAgcm93IChlbmNyeXB0ZWQgcGF5bG9hZCxcbiAqIGtleSBpZC9pdi9zYWx0IG1ldGFkYXRhLCB2ZXJzaW9uLCBlbmFibGVtZW50IGZsYWcsIGFuZCBvcHRpb25hbFxuICogdGVuYW50L29yZy11bml0L293bmVyIHNjb3BlKSB0aHJvdWdoIHRoZSByZXBvc2l0b3J5IGJvb3RlZCBhcyB0aGUgc2VydmljZVxuICogY2xpZW50LiBOYW1lcyBhcmUgdmFsaWRhdGVkIGFuZCBub3JtYWxpemVkIGJlZm9yZSBwZXJzaXN0ZW5jZTtcbiAqIGAobmFtZSwgdmVyc2lvbilgIGlzIHVuaXF1ZSAoZW5mb3JjZWQgYnkgYSBgU0VDUkVUX0FMUkVBRFlfRVhJU1RTYFxuICogY29uZmxpY3QgaW4gYHN0b3JlYC9gcm90YXRlYCBhbmQgYmFja2VkIGJ5IHRoZSBgdXFfc2VjcmV0c19uYW1lX3ZlcnNpb25gXG4gKiBkYXRhYmFzZSBpbmRleCk7IHJldHJpZXZhbCBvbmx5IGNvbnNpZGVycyBlbmFibGVkIHJvd3MsIHN1cHBvcnRzIHZlcnNpb25cbiAqIHBpbm5pbmcsIGFuZCByZXNvbHZlcyBtdWx0aXBsZSBtYXRjaGVzIGRldGVybWluaXN0aWNhbGx5IGJ5IGB1cGRhdGVkQXRcbiAqIERFU0NgLiBEZWxldGUgaXMgc29mdCBieSBkZWZhdWx0IChzZXRzIGBlbmFibGVkOiBmYWxzZWApIHVubGVzc1xuICogYG9wdGlvbnMuZm9yY2VgIGlzIHNldC4gRXJyb3JzIGZyb20gdGhlIHJlcG9zaXRvcnkgYXJlIHRyYW5zbGF0ZWQgaW50b1xuICogdHlwZWQge0BsaW5rIFNlY3JldEVycm9yfXMgYnkgYHBhcnNlRXJyb3JgLlxuICpcbiAqIFVuZGVjb3JhdGVkIGFuZCBFbnZpcm9ubWVudC1jb25maWd1cmFibGVcbiAqIHRocm91Z2ggdGhlIGBzZWNyZXRzLm1vZGVsYCBzbGljZTsgdGhlIGNyZWRlbnRpYWwgc2VydmljZVxuICogKGBDcmVkZW50aWFsU2VydmljZWApIGRlbGVnYXRlcyB1c2VyL3J1bnRpbWUgY3JlZGVudGlhbCBzdG9yYWdlIHRvIHRoaXNcbiAqIHNlcnZpY2UuXG4gKiBAY2xhc3MgTW9kZWxTZWNyZXRTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgU2VjcmV0c1xuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBNb2RlbFNlY3JldFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9zZWNyZXRzXCI7XG4gKlxuICogY29uc3QgbW9kZWxTZWNyZXRzID0gYXdhaXQgbmV3IE1vZGVsU2VjcmV0U2VydmljZSgpLmJvb3Qoe1xuICogICBrZXlTZWNyZXQ6IFwibW9kZWwtbWFzdGVyLWtleVwiLFxuICogfSk7XG4gKiBhd2FpdCBtb2RlbFNlY3JldHMuc3RvcmUoXCJteS1zZWNyZXRcIiwgeyB2YWx1ZTogXCJzM2NyM3RcIiB9KTtcbiAqIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBtb2RlbFNlY3JldHMucmV0cmlldmU8eyB2YWx1ZTogc3RyaW5nIH0+KFwibXktc2VjcmV0XCIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RlbFNlY3JldFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlY3JldFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnByb3ZpZGVyID0gXCJtb2RlbFwiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBtb2RlbCBzZWNyZXQgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBFbnZpcm9ubWVudFxuICAgICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBgc2VjcmV0cy5tb2RlbGAgRW52aXJvbm1lbnQgc2xpY2UgYW5kIHJldHVybnMgYVxuICAgICAqIGBNb2RlbFNlY3JldFNlcnZpY2VDb25maWdgIHdoZW4gYSBga2V5U2VjcmV0YCBpcyBjb25maWd1cmVkOyByZXR1cm5zXG4gICAgICogYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLCBsZXR0aW5nIGJvb3QgZmFsbCBiYWNrIHRvIGV4cGxpY2l0IGFyZ3VtZW50cy5cbiAgICAgKiBAcmV0dXJucyB7TW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnIHwgdW5kZWZpbmVkfSBUaGUgRW52aXJvbm1lbnQtZGVyaXZlZCBjb25maWd1cmF0aW9uLCBvciBgdW5kZWZpbmVkYC5cbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBjb25maWdGcm9tRW52aXJvbm1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IE1vZGVsU2VjcmV0RW52aXJvbm1lbnQuc2VjcmV0cy5tb2RlbDtcbiAgICAgICAgY29uc3Qga2V5U2VjcmV0ID0gZW52U3RyaW5nKGVudj8ua2V5U2VjcmV0KTtcbiAgICAgICAgaWYgKCFrZXlTZWNyZXQpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJvdmlkZXI6IFwibW9kZWxcIixcbiAgICAgICAgICAgIGtleVNlY3JldCxcbiAgICAgICAgICAgIGtleUlkOiBlbnZTdHJpbmcoZW52LmtleUlkKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJvb3RzIHRoZSBjcnlwdG8gc2VydmljZSBhbmQgcmVzb2x2ZXMgdGhlIGJhY2tpbmcgcmVwb3NpdG9yeVxuICAgICAqIEBzdW1tYXJ5IEFjY2VwdHMgdGhlIGNvbmZpZ3VyYXRpb24gKGV4cGxpY2l0IGFyZ3MsIG1lcmdlZCB3aXRoIHRoZVxuICAgICAqIEVudmlyb25tZW50IHNsaWNlIGJ5IHRoZSBiYXNlKSBhbmQgYW4gb3B0aW9uYWwgYFJlcG9zaXRvcnk8U2VjcmV0PmAgYXMgdGhlXG4gICAgICogc2Vjb25kIGFyZ3VtZW50OyB3aGVuIGFic2VudCwgY3JlYXRlcyBvbmUgdmlhIGBSZXBvc2l0b3J5LmZvck1vZGVsKFNlY3JldClgLlxuICAgICAqIFJldHVybnMgdGhlIGNvbmZpZyBhbmQgcmVwb3NpdG9yeSBhcyB0aGUgc2VydmljZSBjbGllbnQuXG4gICAgICogQHBhcmFtIHtDb250ZXh0dWFsQXJnc30gYXJncyAtIENvbmZpZ3VyYXRpb24gYW5kIG9wdGlvbmFsIGBSZXBvc2l0b3J5YC9gQ29udGV4dGAgYXJndW1lbnRzLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHtjb25maWc6IE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZywgY2xpZW50OiBSZXBvc2l0b3J5PFNlY3JldCwgYW55Pn0+fSBUaGUgcmVzb2x2ZWQgY29uZmlnIGFuZCByZXBvc2l0b3J5IGNsaWVudC5cbiAgICAgKi9cbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRDb25maWdGcm9tQXJncyguLi5hcmdzKTtcbiAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IGFyZ3NbMV0gfHxcbiAgICAgICAgICAgIFJlcG9zaXRvcnkuZm9yTW9kZWwoU2VjcmV0KTtcbiAgICAgICAgdGhpcy5jcnlwdG9TZXJ2aWNlID0gbmV3IENyeXB0b1NlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLmJvb3Qoe30pO1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudDogcmVwb3NpdG9yeSB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW5jcnlwdHMgYW5kIHBlcnNpc3RzIGEgc2VjcmV0IHJvd1xuICAgICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhbmQgbm9ybWFsaXplcyB0aGUgbmFtZSwgc2VyaWFsaXplcyB0aGUgcGF5bG9hZCwgYW5kXG4gICAgICogZW5jcnlwdHMgaXQgd2l0aCBhIGtleSBkZXJpdmVkIGZyb20gdGhlIG1hc3RlciBga2V5U2VjcmV0YCwgZW1iZWRkaW5nIHRoZVxuICAgICAqIGtleSBpZC9pdi9zYWx0IGluIHRoZSByb3cncyBgZW5jcnlwdGlvbmAgbWV0YWRhdGEuIFRoZSByb3cgY2FycmllcyB0aGVcbiAgICAgKiBvcHRpb25hbCB0ZW5hbnQvb3JnLXVuaXQvb3duZXIgc2NvcGluZyBhbmQgdmVyc2lvbi4gYChuYW1lLCB2ZXJzaW9uKWAgaXNcbiAgICAgKiB1bmlxdWU6IGFuIGFwcGxpY2F0aW9uLWxldmVsIHByZS1jaGVjayByZWplY3RzIGEgZHVwbGljYXRlIGNvbWJpbmF0aW9uXG4gICAgICogd2l0aCBhIGBTRUNSRVRfQUxSRUFEWV9FWElTVFNgIHtAbGluayBTZWNyZXRFcnJvcn0gYmVmb3JlIHRoZSBpbnNlcnQsIGFuZFxuICAgICAqIHRoZSBgdXFfc2VjcmV0c19uYW1lX3ZlcnNpb25gIGRhdGFiYXNlIGluZGV4ICh3aGljaCB0cmVhdHMgYE5VTExgXG4gICAgICogdmVyc2lvbnMgYXMgYCcnYCkgYmFja3N0b3BzIHRoZSBzYW1lIHJ1bGUgYWdhaW5zdCBjb25jdXJyZW50IHdyaXRlcnMuXG4gICAgICogQHRlbXBsYXRlIFQgLSBUaGUgc2VjcmV0IHBheWxvYWQgdHlwZS5cbiAgICAgKiBAcGFyYW0ge1NlY3JldE5hbWV9IG5hbWUgLSBUaGUgc2VjcmV0IG5hbWUgKHZhbGlkYXRlZCBhbmQgbm9ybWFsaXplZCkuXG4gICAgICogQHBhcmFtIHtUfSB2YWx1ZSAtIFRoZSBwYXlsb2FkIHRvIGVuY3J5cHQgYW5kIHN0b3JlLlxuICAgICAqIEBwYXJhbSB7U3RvcmVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCBjb250ZW50IHR5cGUsIHRhZ3MsIHZlcnNpb24sIGFuZCB0ZW5hbnQvb3JnL293bmVyIHNjb3BpbmcuXG4gICAgICogQHBhcmFtIHtNYXliZUNvbnRleHR1YWxBcmd9IGFyZ3MgLSBPcHRpb25hbCB0cmFpbGluZyBkZWNhZiBgQ29udGV4dGAgZm9yd2FyZGVkIHRvIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPFNlY3JldFJlZmVyZW5jZT59IEEgcmVmZXJlbmNlIHRvIHRoZSBwZXJzaXN0ZWQgc2VjcmV0LlxuICAgICAqIEB0aHJvd3Mge1NlY3JldEVycm9yfSBgU0VDUkVUX0FMUkVBRFlfRVhJU1RTYCB3aGVuIGEgcm93IHdpdGggdGhlIHNhbWUgbm9ybWFsaXplZCBuYW1lIGFuZCB2ZXJzaW9uIGFscmVhZHkgZXhpc3RzLCBvciBgU0VDUkVUX05PVF9GT1VORGAvYFNFQ1JFVF9QUk9WSURFUl9DT05GTElDVGAgd2hlbiB0aGUgbmFtZSBpcyBpbnZhbGlkIG9yIHRoZSByZXBvc2l0b3J5IGluc2VydCBmYWlscy5cbiAgICAgKi9cbiAgICBhc3luYyBzdG9yZShuYW1lLCB2YWx1ZSwgb3B0aW9ucyA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdG9yZVwiLCB0cnVlKSkuZm9yKHRoaXMuc3RvcmUpO1xuICAgICAgICBsb2cudmVyYm9zZShgU3RvcmluZyBzZWNyZXQgJHtuYW1lfWApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTZWNyZXRQYXlsb2FkKHZhbHVlKTtcbiAgICAgICAgY29uc3QgZGVyaXZlZEtleSA9IGF3YWl0IHRoaXMuY3J5cHRvU2VydmljZS5kZXJpdmVLZXlGcm9tU2VjcmV0KHRoaXMuY29uZmlnLmtleVNlY3JldCk7XG4gICAgICAgIGNvbnN0IGV4dHJhY3RlZCA9IHRoaXMuY3J5cHRvU2VydmljZS5leHRyYWN0S2V5RnJvbURlcml2ZWRLZXkoZGVyaXZlZEtleSk7XG4gICAgICAgIGNvbnN0IHsgZW5jcnlwdGVkRGF0YSwgbWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMuY3J5cHRvU2VydmljZS5lbmNyeXB0UGF5bG9hZChKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkKSwgdGhpcy5jb25maWcua2V5SWQgfHwgREVGQVVMVF9LRVlfSUQsIGV4dHJhY3RlZC5rZXkpO1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCBzZWNyZXQgPSBuZXcgU2VjcmV0KHtcbiAgICAgICAgICAgIG5hbWU6IG5vcm1hbGl6ZWROYW1lLFxuICAgICAgICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICAgICAgICBlbmNyeXB0ZWRQYXlsb2FkOiBlbmNyeXB0ZWREYXRhLFxuICAgICAgICAgICAgZW5jcnlwdGlvbjoge1xuICAgICAgICAgICAgICAgIGtleUlkOiBtZXRhZGF0YS5rZXlJZCxcbiAgICAgICAgICAgICAgICBpdjogbWV0YWRhdGEuaXYsXG4gICAgICAgICAgICAgICAgc2FsdDogZXh0cmFjdGVkLnNhbHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29udGVudFR5cGU6IG9wdGlvbnMuY29udGVudFR5cGUsXG4gICAgICAgICAgICB0YWdzOiBvcHRpb25zLnRhZ3MsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uLFxuICAgICAgICAgICAgdGVuYW50SWQ6IG9wdGlvbnMudGVuYW50SWQsXG4gICAgICAgICAgICBvcmdVbml0SWQ6IG9wdGlvbnMub3JnVW5pdElkLFxuICAgICAgICAgICAgb3duZXJQcmluY2lwYWxJZDogb3B0aW9ucy5vd25lclByaW5jaXBhbElkLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdGFyZ2V0VmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbiA/PyBcIlwiO1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMuY2xpZW50XG4gICAgICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgICAgIC53aGVyZShDb25kaXRpb24uYXR0cihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpKVxuICAgICAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGR1cGxpY2F0ZSA9IGV4aXN0aW5nLnNvbWUoKHJvdykgPT4gKHJvdy52ZXJzaW9uID8/IFwiXCIpID09PSB0YXJnZXRWZXJzaW9uKTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlY3JldEVycm9yKFwiU0VDUkVUX0FMUkVBRFlfRVhJU1RTXCIsIGBTZWNyZXQgJHtKU09OLnN0cmluZ2lmeShub3JtYWxpemVkTmFtZSl9JHt0YXJnZXRWZXJzaW9uID8gYCB2ZXJzaW9uICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0VmVyc2lvbil9YCA6IFwiXCJ9IGFscmVhZHkgZXhpc3RzYCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmNyZWF0ZShzZWNyZXQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSxcbiAgICAgICAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBub3cudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcywgZGVjcnlwdHMsIGFuZCBkZXNlcmlhbGl6ZXMgYW4gZW5hYmxlZCBzZWNyZXQgcm93XG4gICAgICogQHN1bW1hcnkgUXVlcmllcyB0aGUgbmV3ZXN0IG1hdGNoaW5nIGVuYWJsZWQgcm93IChieSBub3JtYWxpemVkIG5hbWUgYW5kLFxuICAgICAqIG9wdGlvbmFsbHksIHZlcnNpb24pLCByZS1kZXJpdmVzIHRoZSBrZXkgdXNpbmcgdGhlIHJvdydzIHNhbHQsIGFuZCBkZWNyeXB0c1xuICAgICAqIHRoZSBwYXlsb2FkLiBSb3dzIGFyZSBvcmRlcmVkIGJ5IGB1cGRhdGVkQXQgREVTQ2AsIHNvIHdoZW4gc2V2ZXJhbCByb3dzXG4gICAgICogc2hhcmUgYSBuYW1lIHRoZSBtb3N0IHJlY2VudGx5IHVwZGF0ZWQgZW5hYmxlZCByb3cgaXMgcmVzb2x2ZWRcbiAgICAgKiBkZXRlcm1pbmlzdGljYWxseS4gVGhlIHJlcG9zaXRvcnkgU0VMRUNUIHJ1bnMgaW5zaWRlIGEgcHJpbmNpcGFsLWJvdW5kXG4gICAgICogdHJhbnNhY3Rpb24gKHNlZSB7QGxpbmsgTW9kZWxTZWNyZXRTZXJ2aWNlLndpdGhpblByaW5jaXBhbFRyYW5zYWN0aW9ufSk6XG4gICAgICogaXQgam9pbnMgYW4gaW4tZmxpZ2h0IGB0cmFuc2FjdGlvbkxvY2tgIG9uIHRoZSBjb250ZXh0IG9yIGJlZ2lucyBvbmUsXG4gICAgICogYmluZGluZyB0aGUgY29udGV4dCdzIHByaW5jaXBhbCB0byBgYXBwLnByaW5jaXBhbF9pZGAgb24gVHlwZU9STSBhZGFwdGVyc1xuICAgICAqIHNvIG5hbWVzcGFjZSBSTFMgYXBwbGllcyB0byB0aGUgcmVhZC4gTWlzc2luZyByb3dzIHRocm93XG4gICAgICoge0BsaW5rIE5vdEZvdW5kRXJyb3J9OyBkZWNyeXB0aW9uIGFuZCBKU09OIHBhcnNlIGZhaWx1cmVzIHRocm93XG4gICAgICogYEludGVybmFsRXJyb3JgLlxuICAgICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHNlY3JldCBwYXlsb2FkIHR5cGUuXG4gICAgICogQHBhcmFtIHtTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlfSBuYW1lT3JSZWYgLSBUaGUgc2VjcmV0IG5hbWUgb3IgcmVmZXJlbmNlLlxuICAgICAqIEBwYXJhbSB7UmV0cmlldmVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlci5cbiAgICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8VD59IFRoZSBkZWNyeXB0ZWQgcGF5bG9hZC5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIG5vIGVuYWJsZWQgc2VjcmV0IG1hdGNoZXMgdGhlIG5hbWUvdmVyc2lvbi5cbiAgICAgKi9cbiAgICBhc3luYyByZXRyaWV2ZShuYW1lT3JSZWYsIG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXRyaWV2ZVwiLCB0cnVlKSkuZm9yKHRoaXMucmV0cmlldmUpO1xuICAgICAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgICAgICBsb2cudmVyYm9zZShgUmV0cmlldmluZyBzZWNyZXQgJHtuYW1lU3RyfWApO1xuICAgICAgICBsZXQgbmFtZTtcbiAgICAgICAgbGV0IHZlcnNpb247XG4gICAgICAgIGlmICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBuYW1lID0gbmFtZU9yUmVmO1xuICAgICAgICAgICAgdmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICAgICAgICAgIHZlcnNpb24gPSBuYW1lT3JSZWYudmVyc2lvbjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgICAgIGxldCBjb25kaXRpb24gPSBDb25kaXRpb24uYXR0cihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgICAgICBpZiAodmVyc2lvbikge1xuICAgICAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5hbmQoQ29uZGl0aW9uLmF0dHIoXCJlbmFibGVkXCIpLmVxKHRydWUpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMud2l0aGluUHJpbmNpcGFsVHJhbnNhY3Rpb24oY3R4LCAobG9jaykgPT4gdGhpcy5jbGllbnRcbiAgICAgICAgICAgIC5vdmVycmlkZSh7IHRyYW5zYWN0aW9uTG9jazogbG9jayB9KVxuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAud2hlcmUoY29uZGl0aW9uKVxuICAgICAgICAgICAgLm9yZGVyQnkoW1widXBkYXRlZEF0XCIsIE9yZGVyRGlyZWN0aW9uLkRTQ10pXG4gICAgICAgICAgICAuZXhlY3V0ZSguLi5jdHhBcmdzKSk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gcmVzdWx0c1swXTtcbiAgICAgICAgaWYgKCFleGlzdGluZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCIgbm90IGZvdW5kYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVyaXZlZEtleSA9IGF3YWl0IHRoaXMuY3J5cHRvU2VydmljZS5kZXJpdmVLZXlGcm9tU2VjcmV0KHRoaXMuY29uZmlnLmtleVNlY3JldCwgZXhpc3RpbmcuZW5jcnlwdGlvbj8uc2FsdCk7XG4gICAgICAgIGxldCBkZWNyeXB0ZWRWYWx1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRlY3J5cHRlZFZhbHVlID0gYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLmRlY3J5cHRQYXlsb2FkKGV4aXN0aW5nLmVuY3J5cHRlZFBheWxvYWQsIHRoaXMuY3J5cHRvU2VydmljZS5leHRyYWN0S2V5RnJvbURlcml2ZWRLZXkoZGVyaXZlZEtleSkua2V5KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZGVjcnlwdCBzZWNyZXQgXCIke25vcm1hbGl6ZWROYW1lfVwiOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBheWxvYWQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXlsb2FkID0gSlNPTi5wYXJzZShkZWNyeXB0ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCI6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVTZWNyZXRQYXlsb2FkKHBheWxvYWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUnVucyBhIHJlcG9zaXRvcnkgb3BlcmF0aW9uIGluc2lkZSBhIHByaW5jaXBhbC1ib3VuZCB0cmFuc2FjdGlvblxuICAgICAqIEBzdW1tYXJ5IE1pcnJvcnMgY29yZSdzIGBAdHJhbnNhY3Rpb25hbCgpYCBwcm94eSBmb3Igc2luZ2xlIHJlYWRzOiByZXVzZXNcbiAgICAgKiB0aGUgYHRyYW5zYWN0aW9uTG9ja2AgYWxyZWFkeSBjYWNoZWQgb24gdGhlIGNvbnRleHQgKG5lc3RlZCBjYWxsKSwgb3JcbiAgICAgKiByZXNvbHZlcyBhIGZyZXNoIGxvY2sgZm9yIHRoZSBzZXJ2aWNlIGNsaWVudCB2aWEgYHJlc29sdmVUcmFuc2FjdGlvbkxvY2tgXG4gICAgICogYW5kIGNhbGxzIGBiZWdpbihjb250ZXh0KWAgLSB3aGljaCwgb24gYSBUeXBlT1JNIGFkYXB0ZXIsIGJpbmRzIHRoZVxuICAgICAqIGNvbnRleHQncyBwcmluY2lwYWwgdG8gYGFwcC5wcmluY2lwYWxfaWRgIGZvciB0aGUgbmV3IHRyYW5zYWN0aW9uLlxuICAgICAqIEluY3JlbWVudHMgdGhlIGxvY2sgZGVwdGggZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgb3BlcmF0aW9uOyBvbiBmYWlsdXJlLFxuICAgICAqIHJvbGxzIGJhY2sgYW5kIHplcm9lcyB0aGUgZGVwdGggKHNraXBwaW5nIGEgcmVkdW5kYW50IHJvbGxiYWNrIHdoZW4gYW5cbiAgICAgKiBpbm5lciBmcmFtZSBhbHJlYWR5IGVuZGVkIHRoZSB0cmFuc2FjdGlvbikgYW5kIHJldGhyb3dzIHRoZSBvcmlnaW5hbFxuICAgICAqIGVycm9yOyBvbiBzdWNjZXNzLCBjb21taXRzIHdoZW4gdGhlIG91dGVybW9zdCBmcmFtZSBjb21wbGV0ZXMuXG4gICAgICogQHRlbXBsYXRlIFIgLSBUaGUgb3BlcmF0aW9uIHJlc3VsdCB0eXBlLlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCAtIFRoZSByZXF1ZXN0IGNvbnRleHQsIGNhcnJ5aW5nIGFueSBpbi1mbGlnaHQgdHJhbnNhY3Rpb24gbG9jay5cbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKENvbnRleHRMb2NrKTogUHJvbWlzZTxSPn0gb3BlcmF0aW9uIC0gVGhlIHJlcG9zaXRvcnkgb3BlcmF0aW9uIHRvIHJ1biwgcmVjZWl2aW5nIHRoZSBhY3RpdmUgbG9jay5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSPn0gVGhlIG9wZXJhdGlvbiByZXN1bHQuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgZmluYWwgY29tbWl0IGZhaWxzOyBvcGVyYXRpb24gZXJyb3JzIGFyZSByZXRocm93biBhZnRlciByb2xsYmFjay5cbiAgICAgKi9cbiAgICBhc3luYyB3aXRoaW5QcmluY2lwYWxUcmFuc2FjdGlvbihjb250ZXh0LCBvcGVyYXRpb24pIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwidHJhbnNhY3Rpb25Mb2NrXCIpO1xuICAgICAgICBjb25zdCBsb2NrID0gZXhpc3RpbmcgPz8gcmVzb2x2ZVRyYW5zYWN0aW9uTG9jayh0aGlzLmNsaWVudCk7XG4gICAgICAgIGxvY2suZGVwdGgrKztcbiAgICAgICAgaWYgKCFleGlzdGluZykge1xuICAgICAgICAgICAgYXdhaXQgbG9jay5iZWdpbihjb250ZXh0KTtcbiAgICAgICAgICAgIGNvbnRleHQuY2FjaGUucHV0KFwidHJhbnNhY3Rpb25Mb2NrXCIsIGxvY2spO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBvcGVyYXRpb24obG9jayk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zdCBhbHJlYWR5RW5kZWQgPSBsb2NrLmRlcHRoID09PSAwO1xuICAgICAgICAgICAgbG9jay5kZXB0aCA9IDA7XG4gICAgICAgICAgICBpZiAoIWFscmVhZHlFbmRlZCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGxvY2sucm9sbGJhY2soZXJyb3IsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAocm9sbGJhY2tFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB2b2lkIHJvbGxiYWNrRXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgbG9jay5kZXB0aC0tO1xuICAgICAgICBpZiAobG9jay5kZXB0aCA9PT0gMCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBsb2NrLmNvbW1pdChjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gY29tbWl0IHRyYW5zYWN0aW9uOiAke2Vycm9yfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIChvciBkaXNhYmxlcykgYSBzZWNyZXQgcm93XG4gICAgICogQHN1bW1hcnkgU29mdC1kZWxldGVzIGJ5IGRlZmF1bHQ6IHRoZSByb3cgaXMgZGlzYWJsZWQgYW5kIHN0YW1wZWQgd2l0aCBhXG4gICAgICogbmV3IGB1cGRhdGVkQXRgLiBXaXRoIGBvcHRpb25zLmZvcmNlYCwgdGhlIHJvdyBpcyBoYXJkLWRlbGV0ZWQgZnJvbSB0aGVcbiAgICAgKiByZXBvc2l0b3J5LiBSb3dzIGFyZSBvcmRlcmVkIGJ5IGB1cGRhdGVkQXQgREVTQ2AsIHNvIHRoZSBtb3N0IHJlY2VudGx5XG4gICAgICogdXBkYXRlZCBtYXRjaGluZyByb3cgaXMgcmVzb2x2ZWQgZGV0ZXJtaW5pc3RpY2FsbHkuIEEgbWlzc2luZyBzZWNyZXRcbiAgICAgKiByZXNvbHZlcyBzaWxlbnRseS5cbiAgICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAgICogQHBhcmFtIHtEZWxldGVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlciBhbmQgYGZvcmNlYCBoYXJkLWRlbGV0ZSBmbGFnLlxuICAgICAqIEBwYXJhbSB7TWF5YmVDb250ZXh0dWFsQXJnfSBhcmdzIC0gT3B0aW9uYWwgdHJhaWxpbmcgZGVjYWYgYENvbnRleHRgIGZvcndhcmRlZCB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgb25jZSB0aGUgcm93IGlzIGRlbGV0ZWQgb3IgZGlzYWJsZWQuXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlKG5hbWVPclJlZiwgb3B0aW9ucyA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZSk7XG4gICAgICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgICAgIGxvZy52ZXJib3NlKGBEZWxldGluZyBzZWNyZXQgJHtuYW1lU3RyfWApO1xuICAgICAgICBsZXQgbmFtZTtcbiAgICAgICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBuYW1lID0gbmFtZU9yUmVmLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgICAgICBsZXQgZmlsdGVyID0gQ29uZGl0aW9uLmF0dHIoXCJuYW1lXCIpLmVxKG5vcm1hbGl6ZWROYW1lKTtcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbjtcbiAgICAgICAgaWYgKHZlcnNpb24pIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHIoXCJ2ZXJzaW9uXCIpLmVxKHZlcnNpb24pKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgLndoZXJlKGZpbHRlcilcbiAgICAgICAgICAgIC5vcmRlckJ5KFtcInVwZGF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICAgICAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gcmVzdWx0c1swXTtcbiAgICAgICAgaWYgKCFleGlzdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmZvcmNlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUoZXhpc3RpbmcuaWQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZXhpc3RpbmcuZW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgZXhpc3RpbmcudXBkYXRlZEF0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnVwZGF0ZShleGlzdGluZywgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENoZWNrcyB3aGV0aGVyIGFuIGVuYWJsZWQgc2VjcmV0IGV4aXN0cyAob3B0aW9uYWxseSBhdCBhIHZlcnNpb24pXG4gICAgICogQHN1bW1hcnkgQ291bnRzIGVuYWJsZWQgcm93cyBtYXRjaGluZyB0aGUgbm9ybWFsaXplZCBuYW1lIChwbHVzIGFueVxuICAgICAqIHJlcXVlc3RlZCB2ZXJzaW9uKSBhbmQgcmV0dXJucyB3aGV0aGVyIHRoZSBjb3VudCBpcyBwb3NpdGl2ZS5cbiAgICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAgICogQHBhcmFtIHtFeGlzdHNTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlci5cbiAgICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IGB0cnVlYCB3aGVuIGF0IGxlYXN0IG9uZSBlbmFibGVkIHJvdyBtYXRjaGVzLlxuICAgICAqL1xuICAgIGFzeW5jIGV4aXN0cyhuYW1lT3JSZWYsIG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZXhpc3RzXCIsIHRydWUpKS5mb3IodGhpcy5leGlzdHMpO1xuICAgICAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgICAgICBsb2cudmVyYm9zZShgQ2hlY2tpbmcgaWYgc2VjcmV0ICR7bmFtZVN0cn0gZXhpc3RzYCk7XG4gICAgICAgIGxldCBuYW1lO1xuICAgICAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgICAgIGxldCBmaWx0ZXIgPSBDb25kaXRpb24uYXR0cihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIuYW5kKENvbmRpdGlvbi5hdHRyKFwiZW5hYmxlZFwiKS5lcSh0cnVlKSk7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb24gPz9cbiAgICAgICAgICAgICh0eXBlb2YgbmFtZU9yUmVmID09PSBcIm9iamVjdFwiID8gbmFtZU9yUmVmLnZlcnNpb24gOiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAodmVyc2lvbikge1xuICAgICAgICAgICAgZmlsdGVyID0gZmlsdGVyLmFuZChDb25kaXRpb24uYXR0cihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgdGhpcy5jbGllbnQuY291bnQoKS53aGVyZShmaWx0ZXIpLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiBjb3VudCA+IDA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBzZWNyZXQgbWV0YWRhdGEgYWNyb3NzIHN0b3JlZCByb3dzXG4gICAgICogQHN1bW1hcnkgU2VsZWN0cyByb3dzIGZpbHRlcmVkIGJ5IHRoZSBgZW5hYmxlZGAgZmxhZyAod2hlbiBzdXBwbGllZCkgYW5kXG4gICAgICogbWFwcyB0aGVtIHRvIGBTZWNyZXRNZXRhZGF0YWAgcmVjb3JkcyAobm8gcGF5bG9hZHMpLlxuICAgICAqIEBwYXJhbSB7TGlzdFNlY3JldHNPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCBgZW5hYmxlZGAgZmlsdGVyLlxuICAgICAqIEBwYXJhbSB7TWF5YmVDb250ZXh0dWFsQXJnfSBhcmdzIC0gT3B0aW9uYWwgdHJhaWxpbmcgZGVjYWYgYENvbnRleHRgIGZvcndhcmRlZCB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxTZWNyZXRNZXRhZGF0YVtdPn0gTWV0YWRhdGEgZm9yIGV2ZXJ5IG1hdGNoaW5nIHNlY3JldC5cbiAgICAgKi9cbiAgICBhc3luYyBsaXN0KG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibGlzdFwiLCB0cnVlKSkuZm9yKHRoaXMubGlzdCk7XG4gICAgICAgIGxvZy52ZXJib3NlKFwiTGlzdGluZyBzZWNyZXRzXCIpO1xuICAgICAgICBsZXQgY29uZGl0aW9uID0gbnVsbDtcbiAgICAgICAgaWYgKG9wdGlvbnMuZW5hYmxlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25kaXRpb24gPSBDb25kaXRpb24uYXR0cihcImVuYWJsZWRcIikuZXEob3B0aW9ucy5lbmFibGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWNyZXRzID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgLndoZXJlKGNvbmRpdGlvbiB8fCBDb25kaXRpb24uYXR0cihcIm5hbWVcIikuZGlmKG51bGwpKVxuICAgICAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiBzZWNyZXRzLm1hcCgoc2VjcmV0KSA9PiAoe1xuICAgICAgICAgICAgcHJvdmlkZXI6IHNlY3JldC5wcm92aWRlcixcbiAgICAgICAgICAgIG5hbWU6IHNlY3JldC5uYW1lLFxuICAgICAgICAgICAgdmVyc2lvbjogc2VjcmV0LnZlcnNpb24sXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHNlY3JldC5jcmVhdGVkQXQsXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IHNlY3JldC51cGRhdGVkQXQsXG4gICAgICAgICAgICBlbmFibGVkOiBzZWNyZXQuZW5hYmxlZCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBzZWNyZXQuY29udGVudFR5cGUsXG4gICAgICAgICAgICB0YWdzOiBzZWNyZXQudGFncyxcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgb25lIHNlY3JldCdzIG1ldGFkYXRhIHdpdGhvdXQgaXRzIHBheWxvYWRcbiAgICAgKiBAc3VtbWFyeSBTZWxlY3RzIHRoZSByb3cgbWF0Y2hpbmcgdGhlIG5vcm1hbGl6ZWQgbmFtZSAoYW5kIG9wdGlvbmFsXG4gICAgICogdmVyc2lvbikgYW5kIG1hcHMgaXQgdG8gYFNlY3JldE1ldGFkYXRhYDsgdGFncyBhcmUgaW5jbHVkZWQgb25seSB3aGVuXG4gICAgICogYG9wdGlvbnMuaW5jbHVkZVRhZ3NgIGlzIHNldC4gUm93cyBhcmUgb3JkZXJlZCBieSBgdXBkYXRlZEF0IERFU0NgLCBzb1xuICAgICAqIHRoZSBtb3N0IHJlY2VudGx5IHVwZGF0ZWQgbWF0Y2hpbmcgcm93IGlzIHJlc29sdmVkIGRldGVybWluaXN0aWNhbGx5LlxuICAgICAqIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiBubyByb3cgbWF0Y2hlcy5cbiAgICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAgICogQHBhcmFtIHtTZWNyZXRNZXRhZGF0YU9wdGlvbnN9IFtvcHRpb25zXSAtIE9wdGlvbmFsIHZlcnNpb24gZmlsdGVyIGFuZCBgaW5jbHVkZVRhZ3NgIGZsYWcuXG4gICAgICogQHBhcmFtIHtNYXliZUNvbnRleHR1YWxBcmd9IGFyZ3MgLSBPcHRpb25hbCB0cmFpbGluZyBkZWNhZiBgQ29udGV4dGAgZm9yd2FyZGVkIHRvIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPFNlY3JldE1ldGFkYXRhIHwgdW5kZWZpbmVkPn0gVGhlIG1ldGFkYXRhLCBvciBgdW5kZWZpbmVkYCB3aGVuIGFic2VudC5cbiAgICAgKi9cbiAgICBhc3luYyBtZXRhZGF0YShuYW1lT3JSZWYsIG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibWV0YWRhdGFcIiwgdHJ1ZSkpLmZvcih0aGlzLm1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYEdldHRpbmcgbWV0YWRhdGEgZm9yIHNlY3JldCAke25hbWVTdHJ9YCk7XG4gICAgICAgIGxldCBuYW1lO1xuICAgICAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgICAgIGxldCBmaWx0ZXIgPSBDb25kaXRpb24uYXR0cihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gb3B0aW9ucy52ZXJzaW9uID8/XG4gICAgICAgICAgICAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJvYmplY3RcIiA/IG5hbWVPclJlZi52ZXJzaW9uIDogdW5kZWZpbmVkKTtcbiAgICAgICAgaWYgKHZlcnNpb24pIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHIoXCJ2ZXJzaW9uXCIpLmVxKHZlcnNpb24pKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgLndoZXJlKGZpbHRlcilcbiAgICAgICAgICAgIC5vcmRlckJ5KFtcInVwZGF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICAgICAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHNlY3JldCA9IHJlc3VsdHNbMF07XG4gICAgICAgIGlmICghc2VjcmV0KSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1ldGEgPSB7XG4gICAgICAgICAgICBwcm92aWRlcjogc2VjcmV0LnByb3ZpZGVyLFxuICAgICAgICAgICAgbmFtZTogc2VjcmV0Lm5hbWUsXG4gICAgICAgICAgICB2ZXJzaW9uOiBzZWNyZXQudmVyc2lvbixcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogc2VjcmV0LmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIHVwZGF0ZWRBdDogc2VjcmV0LnVwZGF0ZWRBdCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHNlY3JldC5lbmFibGVkLFxuICAgICAgICAgICAgY29udGVudFR5cGU6IHNlY3JldC5jb250ZW50VHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9wdGlvbnMuaW5jbHVkZVRhZ3MpIHtcbiAgICAgICAgICAgIG1ldGEudGFncyA9IHNlY3JldC50YWdzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRhO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmUtZW5jcnlwdHMgYW4gZW5hYmxlZCBzZWNyZXQgcm93IHdpdGggYSBuZXcgcGF5bG9hZFxuICAgICAqIEBzdW1tYXJ5IExvY2F0ZXMgdGhlIGVuYWJsZWQgcm93IChvcHRpb25hbGx5IHBpbm5lZCB0b1xuICAgICAqIGBvcHRpb25zLm9sZFZlcnNpb25gKSwgZW5jcnlwdHMgdGhlIG5ldyBwYXlsb2FkIHdpdGggYSBmcmVzaGx5IGRlcml2ZWRcbiAgICAgKiBrZXkgKG9wdGlvbmFsbHkgdGFnZ2VkIHdpdGggYG9wdGlvbnMua2V5SWRgKSwgYW5kIHVwZGF0ZXMgdGhlIHJvdydzXG4gICAgICogcGF5bG9hZCwgZW5jcnlwdGlvbiBtZXRhZGF0YSwgdmVyc2lvbiAoYG9wdGlvbnMubmV3VmVyc2lvbmApLCBhbmRcbiAgICAgKiBgdXBkYXRlZEF0YC4gV2hlbiBgb3B0aW9ucy5uZXdWZXJzaW9uYCBkaWZmZXJzIGZyb20gdGhlIHJvdydzIGN1cnJlbnRcbiAgICAgKiB2ZXJzaW9uLCBhIGAobmFtZSwgdmVyc2lvbilgIGR1cGxpY2F0ZSBjaGVjayByZWplY3RzIHRoZSByb3RhdGlvbiB3aXRoIGFcbiAgICAgKiBgU0VDUkVUX0FMUkVBRFlfRVhJU1RTYCB7QGxpbmsgU2VjcmV0RXJyb3J9OyBvdGhlcndpc2UgdGhlIHRhcmdldCB2ZXJzaW9uXG4gICAgICogaXMgcmV1c2VkIGFuZCB0aGUgcm93IGlzIHVwZGF0ZWQgaW4gcGxhY2UuIE1hdGNoaW5nIHJvd3MgYXJlIG9yZGVyZWQgYnlcbiAgICAgKiBgdXBkYXRlZEF0IERFU0NgLCBzbyB0aGUgbW9zdCByZWNlbnRseSB1cGRhdGVkIGVuYWJsZWQgcm93IGlzIHJlc29sdmVkXG4gICAgICogZGV0ZXJtaW5pc3RpY2FsbHkuXG4gICAgICogQHRlbXBsYXRlIFQgLSBUaGUgc2VjcmV0IHBheWxvYWQgdHlwZS5cbiAgICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAgICogQHBhcmFtIHtUfSB2YWx1ZSAtIFRoZSBuZXcgcGF5bG9hZC5cbiAgICAgKiBAcGFyYW0ge1JvdGF0ZVNlY3JldE9wdGlvbnN9IFtvcHRpb25zXSAtIE9wdGlvbmFsIGBuZXdWZXJzaW9uYCwgYG9sZFZlcnNpb25gLCBhbmQgYGtleUlkYC5cbiAgICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8U2VjcmV0UmVmZXJlbmNlPn0gQSByZWZlcmVuY2UgcmVmbGVjdGluZyB0aGUgdXBkYXRlZCByb3cuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiBubyBlbmFibGVkIHNlY3JldCBtYXRjaGVzIHRoZSBuYW1lL3ZlcnNpb24uXG4gICAgICogQHRocm93cyB7U2VjcmV0RXJyb3J9IGBTRUNSRVRfQUxSRUFEWV9FWElTVFNgIHdoZW4gdGhlIHRhcmdldCBgbmV3VmVyc2lvbmAgaXMgYWxyZWFkeSBoZWxkIGJ5IGFub3RoZXIgcm93IHdpdGggdGhlIHNhbWUgbm9ybWFsaXplZCBuYW1lLCBvciBgU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUYCB3aGVuIHRoZSByZXBvc2l0b3J5IHVwZGF0ZSBmYWlscy5cbiAgICAgKi9cbiAgICBhc3luYyByb3RhdGUobmFtZU9yUmVmLCB2YWx1ZSwgb3B0aW9ucyA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyb3RhdGVcIiwgdHJ1ZSkpLmZvcih0aGlzLnJvdGF0ZSk7XG4gICAgICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgICAgIGxvZy52ZXJib3NlKGBSb3RhdGluZyBzZWNyZXQgJHtuYW1lU3RyfWApO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZVN0cik7XG4gICAgICAgIGxldCBjb25kaXRpb24gPSBDb25kaXRpb24uYXR0cihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgICAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKENvbmRpdGlvbi5hdHRyKFwiZW5hYmxlZFwiKS5lcSh0cnVlKSk7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLm9sZFZlcnNpb24gPz9cbiAgICAgICAgICAgICh0eXBlb2YgbmFtZU9yUmVmID09PSBcIm9iamVjdFwiID8gbmFtZU9yUmVmLnZlcnNpb24gOiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAodmVyc2lvbikge1xuICAgICAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAud2hlcmUoY29uZGl0aW9uKVxuICAgICAgICAgICAgLm9yZGVyQnkoW1widXBkYXRlZEF0XCIsIE9yZGVyRGlyZWN0aW9uLkRTQ10pXG4gICAgICAgICAgICAuZXhlY3V0ZSguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSByZXN1bHRzWzBdO1xuICAgICAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgU2VjcmV0IFwiJHtub3JtYWxpemVkTmFtZX1cIiBub3QgZm91bmRgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmVyc2lvbiA9IG9wdGlvbnMubmV3VmVyc2lvbiA/PyBleGlzdGluZy52ZXJzaW9uO1xuICAgICAgICBjb25zdCB0YXJnZXRWZXJzaW9uID0gbmV4dFZlcnNpb24gPz8gXCJcIjtcbiAgICAgICAgaWYgKHRhcmdldFZlcnNpb24gIT09IChleGlzdGluZy52ZXJzaW9uID8/IFwiXCIpKSB7XG4gICAgICAgICAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgICAgICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgICAgICAgICAud2hlcmUoQ29uZGl0aW9uLmF0dHIoXCJuYW1lXCIpLmVxKG5vcm1hbGl6ZWROYW1lKSlcbiAgICAgICAgICAgICAgICAuZXhlY3V0ZSguLi5jdHhBcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IGR1cGxpY2F0ZSA9IHJvd3Muc29tZSgocm93KSA9PiByb3cuaWQgIT09IGV4aXN0aW5nLmlkICYmIChyb3cudmVyc2lvbiA/PyBcIlwiKSA9PT0gdGFyZ2V0VmVyc2lvbik7XG4gICAgICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNlY3JldEVycm9yKFwiU0VDUkVUX0FMUkVBRFlfRVhJU1RTXCIsIGBTZWNyZXQgJHtKU09OLnN0cmluZ2lmeShub3JtYWxpemVkTmFtZSl9JHt0YXJnZXRWZXJzaW9uID8gYCB2ZXJzaW9uICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0VmVyc2lvbil9YCA6IFwiXCJ9IGFscmVhZHkgZXhpc3RzYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHNlcmlhbGl6ZVNlY3JldFBheWxvYWQodmFsdWUpO1xuICAgICAgICBjb25zdCBkZXJpdmVkS2V5ID0gYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLmRlcml2ZUtleUZyb21TZWNyZXQodGhpcy5jb25maWcua2V5U2VjcmV0KTtcbiAgICAgICAgY29uc3QgZXh0cmFjdGVkID0gdGhpcy5jcnlwdG9TZXJ2aWNlLmV4dHJhY3RLZXlGcm9tRGVyaXZlZEtleShkZXJpdmVkS2V5KTtcbiAgICAgICAgY29uc3QgeyBlbmNyeXB0ZWREYXRhLCBtZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLmVuY3J5cHRQYXlsb2FkKEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWQpLCBvcHRpb25zLmtleUlkIHx8IHRoaXMuY29uZmlnLmtleUlkIHx8IERFRkFVTFRfS0VZX0lELCBleHRyYWN0ZWQua2V5KTtcbiAgICAgICAgZXhpc3RpbmcuZW5jcnlwdGVkUGF5bG9hZCA9IGVuY3J5cHRlZERhdGE7XG4gICAgICAgIGV4aXN0aW5nLmVuY3J5cHRpb24gPSB7XG4gICAgICAgICAgICBrZXlJZDogbWV0YWRhdGEua2V5SWQsXG4gICAgICAgICAgICBpdjogbWV0YWRhdGEuaXYsXG4gICAgICAgICAgICBzYWx0OiBleHRyYWN0ZWQuc2FsdCxcbiAgICAgICAgfTtcbiAgICAgICAgZXhpc3RpbmcudmVyc2lvbiA9IG5leHRWZXJzaW9uO1xuICAgICAgICBleGlzdGluZy51cGRhdGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jbGllbnQudXBkYXRlKGV4aXN0aW5nLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICAgICAgICB2ZXJzaW9uOiBleGlzdGluZy52ZXJzaW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNsYXRlcyByZXBvc2l0b3J5IGVycm9ycyBpbnRvIHR5cGVkIHNlY3JldCBlcnJvcnNcbiAgICAgKiBAc3VtbWFyeSBJbnNwZWN0cyB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgXCJub3QgZm91bmRcIi80MDQsIFwiYWxyZWFkeVxuICAgICAqIGV4aXN0c1wiL2NvbmZsaWN0LzQwOSwgYW5kIGRlY3J5cHRpb24tcmVsYXRlZCBtYXJrZXJzIGFuZCBtYXBzIHRoZW0gdG9cbiAgICAgKiBgU0VDUkVUX05PVF9GT1VORGAsIGBTRUNSRVRfQUxSRUFEWV9FWElTVFNgLFxuICAgICAqIGBTRUNSRVRfREVDUllQVElPTl9GQUlMRURgLCBvciBhIGdlbmVyaWMgYFNFQ1JFVF9QUk9WSURFUl9DT05GTElDVGBcbiAgICAgKiB7QGxpbmsgU2VjcmV0RXJyb3J9LlxuICAgICAqIEBwYXJhbSB7dW5rbm93bn0gZXJyb3IgLSBUaGUgcmF3IGVycm9yIHRocm93biBieSB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyB7U2VjcmV0RXJyb3J9IFRoZSB0eXBlZCBzZWNyZXQgZXJyb3IuXG4gICAgICovXG4gICAgcGFyc2VFcnJvcihlcnJvcikge1xuICAgICAgICBjb25zdCBlcnIgPSBlcnJvcjtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVyci5tZXNzYWdlIHx8IGVyci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgICAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFwiU0VDUkVUX05PVF9GT1VORFwiLCBgU2VjcmV0IG5vdCBmb3VuZDogJHttZXNzYWdlfWAsIGVycik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8XG4gICAgICAgICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fFxuICAgICAgICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpIHx8XG4gICAgICAgICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkdXBsaWNhdGUga2V5XCIpIHx8XG4gICAgICAgICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmlxdWUgY29uc3RyYWludFwiKSB8fFxuICAgICAgICAgICAgZXJyLmNvZGUgPT09IFwiMjM1MDVcIikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcIlNFQ1JFVF9BTFJFQURZX0VYSVNUU1wiLCBgU2VjcmV0IGFscmVhZHkgZXhpc3RzOiAke21lc3NhZ2V9YCwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZGVjcnlwdGlvblwiKSB8fFxuICAgICAgICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZGVjcnlwdFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcIlNFQ1JFVF9ERUNSWVBUSU9OX0ZBSUxFRFwiLCBgRGVjcnlwdGlvbiBmYWlsZWQ6ICR7bWVzc2FnZX1gLCBlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXCJTRUNSRVRfUFJPVklERVJfQ09ORkxJQ1RcIiwgYFByb3ZpZGVyIGVycm9yOiAke21lc3NhZ2V9YCwgZXJyKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUVzlrWld4VFpXTnlaWFJUWlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDNObFkzSmxkSE12Ylc5a1pXd3ZUVzlrWld4VFpXTnlaWFJUWlhKMmFXTmxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPenM3T3pzN08wZEJWVWM3UVVGRFNDeFBRVUZQTEVWQlFVVXNkMEpCUVhkQ0xFVkJRVVVzVjBGQlZ5eEZRVUZyUWl3eVFrRkJaMEk3UVVGblFtaEdMRTlCUVU4c1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTd3lRa0ZCWjBJN1FVRkRiRVVzVDBGQlR5eEZRVU5NTEhOQ1FVRnpRaXhGUVVOMFFpeDNRa0ZCZDBJc1IwRkZla0lzTWtKQlFXZENPMEZCUTJwQ0xFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNiMEpCUVdsQ08wRkJRMnhETEU5QlFVOHNSVUZMVEN4VlFVRlZMRVZCUTFZc2MwSkJRWE5DTEVkQlEzWkNMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZGZUVJc1QwRkJUeXhGUVVGRkxITkNRVUZ6UWl4RlFVRkZMRzlEUVVGcFF6dEJRVU5zUlN4UFFVRlBMRVZCUVVVc1UwRkJVeXhGUVVGRkxESkRRVUZ6UXp0QlFVTXhSQ3hQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEdOQlFXTXNSVUZCUlN4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlF6TkVMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzVFVGQlRTdzRRMEZCT0VNc1EwRkJRenRCUVVNM1JTeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1JVRkJSU3hOUVVGTkxIbENRVUY1UWl4RFFVRkRPMEZCUlhaRkxFMUJRVTBzWTBGQll5eEhRVUZITEdGQlFXRXNRMEZCUXp0QlFVVnlRenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBkQk9FSkhPMEZCUTBnc1RVRkJUU3hQUVVGUExHdENRVUZ0UWl4VFFVRlJMSGRDUVVkMlF6dEpRVWxETzFGQlEwVXNTMEZCU3l4RlFVRkZMRU5CUVVNN1VVRktSQ3hoUVVGUkxFZEJRVzFDTEU5QlFVOHNRMEZCUXp0SlFVczFReXhEUVVGRE8wbEJSVVE3T3pzN096czdUMEZQUnp0SlFVTlBMSEZDUVVGeFFqdFJRVU0zUWl4TlFVRk5MRWRCUVVjc1IwRkJSeXh6UWtGQmMwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRMnBFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRk5CUVZNc1EwRkJReXhIUVVGSExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZETlVNc1NVRkJTU3hEUVVGRExGTkJRVk03V1VGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0UlFVTnFReXhQUVVGUE8xbEJRMHdzVVVGQlVTeEZRVUZGTEU5QlFVODdXVUZEYWtJc1UwRkJVenRaUVVOVUxFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJRenRUUVVNMVFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3pzN096dFBRVkZITzBsQlEwZ3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFbEJRWGxDTzFGQlNUTkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJNa0lzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTjZSU3hOUVVGTkxGVkJRVlVzUjBGRFlpeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRjVRenRaUVVOb1JDeFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRnJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU12UkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzWVVGQllTeEZRVUZGTEVOQlFVTTdVVUZEZWtNc1RVRkJUU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOc1F5eFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF6dEpRVU40UXl4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdPenM3TzA5QmFVSkhPMGxCUTBnc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGRFZDeEpRVUZuUWl4RlFVTm9RaXhMUVVGUkxFVkJRMUlzVlVGQk9FSXNSVUZCUlN4RlFVTm9ReXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGRGJrVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkRXQ3hEUVVGRE8xRkJRMFlzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4clFrRkJhMElzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjBReXhKUVVGSkxFTkJRVU03V1VGRFNDeHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU16UWl4RFFVRkRPMUZCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5tTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGakxFTkJRVU1zUTBGQlF6dFJRVU40UXl4RFFVRkRPMUZCUlVRc1RVRkJUU3hqUVVGakxFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGFrUXNUVUZCVFN4VlFVRlZMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRha1FzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExHMUNRVUZ0UWl4RFFVTTNSQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFXMUNMRU5CUTJoRExFTkJRVU03VVVGRFJpeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRekZGTEUxQlFVMHNSVUZCUlN4aFFVRmhMRVZCUVVVc1VVRkJVU3hGUVVGRkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMR05CUVdNc1EwRkRla1VzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRWxCUVVrc1kwRkJZeXhGUVVOdVF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVTmtMRU5CUVVNN1VVRkZSaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTNaQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NUVUZCVFN4RFFVRkRPMWxCUTNoQ0xFbEJRVWtzUlVGQlJTeGpRVUZqTzFsQlEzQkNMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVU4yUWl4blFrRkJaMElzUlVGQlJTeGhRVUZoTzFsQlF5OUNMRlZCUVZVc1JVRkJSVHRuUWtGRFZpeExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzN1owSkJRM0pDTEVWQlFVVXNSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkJSVHRuUWtGRFppeEpRVUZKTEVWQlFVVXNVMEZCVXl4RFFVRkRMRWxCUVVrN1lVRkRja0k3V1VGRFJDeFhRVUZYTEVWQlFVVXNUMEZCVHl4RFFVRkRMRmRCUVZjN1dVRkRhRU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4SlFVRkpPMWxCUTJ4Q0xFOUJRVThzUlVGQlJTeEpRVUZKTzFsQlEySXNUMEZCVHl4RlFVRkZMRTlCUVU4c1EwRkJReXhQUVVGUE8xbEJRM2hDTEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVVHRaUVVNeFFpeFRRVUZUTEVWQlFVVXNUMEZCVHl4RFFVRkRMRk5CUVZNN1dVRkROVUlzWjBKQlFXZENMRVZCUVVVc1QwRkJUeXhEUVVGRExHZENRVUZuUWp0VFFVTXpReXhEUVVGRExFTkJRVU03VVVGRlNDeE5RVUZOTEdGQlFXRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU0xUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTzJGQlF5OUNMRTFCUVUwc1JVRkJSVHRoUVVOU0xFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRlRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0aFFVTjRSQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVTTNRaXhEUVVGRExFZEJRVmNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhKUVVGSkxFVkJRVVVzUTBGQlF5eExRVUZMTEdGQlFXRXNRMEZEZGtRc1EwRkJRenRSUVVOR0xFbEJRVWtzVTBGQlV5eEZRVUZGTEVOQlFVTTdXVUZEWkN4TlFVRk5MRWxCUVVrc1YwRkJWeXhEUVVOdVFpeDFRa0ZCZFVJc1JVRkRka0lzVlVGQlZTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVOMFF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVOb1JTeHBRa0ZCYVVJc1EwRkRiRUlzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlF5OURMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF5OUNMRU5CUVVNN1VVRkZSQ3hQUVVGUE8xbEJRMHdzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJPMWxCUTNaQ0xFbEJRVWtzUlVGQlJTeGpRVUZqTzFsQlEzQkNMRTlCUVU4c1JVRkJSU3hQUVVGUExFTkJRVU1zVDBGQlR6dFpRVU40UWl4UlFVRlJMRVZCUVVVN1owSkJRMUlzVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVN1lVRkROMEk3VTBGRFJpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3pzN096czdPenM3T3pzN096czdPMDlCYlVKSE8wbEJRMGdzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZEV2l4VFFVRjFReXhGUVVOMlF5eFZRVUZwUXl4RlFVRkZMRVZCUTI1RExFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkROVUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6RkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTnlRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eFBRVUZQTEZOQlFWTXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJRenRSUVVNelJTeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMSEZDUVVGeFFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlRWRExFbEJRVWtzU1VGQldTeERRVUZETzFGQlEycENMRWxCUVVrc1QwRkJNa0lzUTBGQlF6dFJRVVZvUXl4SlFVRkpMRTlCUVU4c1UwRkJVeXhMUVVGTExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyeERMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU03V1VGRGFrSXNUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU03VVVGRE5VSXNRMEZCUXp0aFFVRk5MRU5CUVVNN1dVRkRUaXhKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTjBRaXhQUVVGUExFZEJRVWNzVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXp0UlFVTTVRaXhEUVVGRE8xRkJSVVFzU1VGQlNTeERRVUZETzFsQlEwZ3NhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETTBJc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQll5eERRVUZETEVOQlFVTTdVVUZEZUVNc1EwRkJRenRSUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlJXcEVMRWxCUVVrc1UwRkJVeXhIUVVGSExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFWTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFGQlJXeEZMRWxCUVVrc1QwRkJUeXhGUVVGRkxFTkJRVU03V1VGRFdpeFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZUTEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6TkZMRU5CUVVNN1VVRkZSQ3hUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGVExGTkJRVk1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSWFJGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlEyeEZMRWxCUVVrc1EwRkJReXhOUVVGTk8yRkJRMUlzVVVGQlVTeERRVUZETEVWQlFVVXNaVUZCWlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRE8yRkJRMjVETEUxQlFVMHNSVUZCUlR0aFFVTlNMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU03WVVGRGFFSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1YwRkJWeXhGUVVGRkxHTkJRV01zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0aFFVTXhReXhQUVVGUExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZEZGtJc1EwRkJRenRSUVVOR0xFMUJRVTBzVVVGQlVTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVVMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1dVRkRaQ3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEZkQlFWY3NZMEZCWXl4aFFVRmhMRU5CUVVNc1EwRkJRenRSUVVOc1JTeERRVUZETzFGQlJVUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEcxQ1FVRnRRaXhEUVVNM1JDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVcxQ0xFVkJReTlDTEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVNeFFpeERRVUZETzFGQlEwWXNTVUZCU1N4alFVRnpRaXhEUVVGRE8xRkJRek5DTEVsQlFVa3NRMEZCUXp0WlFVTklMR05CUVdNc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNZMEZCWXl4RFFVTjBSQ3hSUVVGUkxFTkJRVU1zWjBKQlFXZENMRVZCUTNwQ0xFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVTTFSQ3hEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRaaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVU55UWl3MlFrRkJOa0lzWTBGQll5eE5RVUZQTEV0QlFXVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkROVVVzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4SlFVRkpMRTlCUVdkRExFTkJRVU03VVVGRGNrTXNTVUZCU1N4RFFVRkRPMWxCUTBnc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRTBRaXhEUVVGRE8xRkJRMnhGTEVOQlFVTTdVVUZCUXl4UFFVRlBMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZEY2tJc2FVTkJRV2xETEdOQlFXTXNUVUZCVHl4TFFVRmxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRMmhHTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1QwRkJUeXgzUWtGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVUwc1EwRkJRenRKUVVOb1JDeERRVUZETzBsQlJVUTdPenM3T3pzN096czdPenM3T3pzN1QwRm5Ra2M3U1VGRFN5eExRVUZMTEVOQlFVTXNNRUpCUVRCQ0xFTkJRM1JETEU5QlFYRkNMRVZCUTNKQ0xGTkJRVFJETzFGQlJUVkRMRTFCUVUwc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eGpRVUZqTEVOQlFVTXNhVUpCUVdsQ0xFTkJSVFZETEVOQlFVTTdVVUZEWkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFbEJRVWtzYzBKQlFYTkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlF6ZEVMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVU5pTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVOa0xFMUJRVTBzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVNeFFpeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNM1F5eERRVUZETzFGQlEwUXNTVUZCU1N4TlFVRlRMRU5CUVVNN1VVRkRaQ3hKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEVkQlFVY3NUVUZCVFN4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGFrTXNRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJZeXhGUVVGRkxFTkJRVU03V1VGRGVFSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUzBGQlN5eERRVUZETEVOQlFVTTdXVUZEZEVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEWml4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03WjBKQlEyeENMRWxCUVVrc1EwRkJRenR2UWtGRFNDeE5RVUZOTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJZeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTXZReXhEUVVGRE8yZENRVUZETEU5QlFVOHNZVUZCYzBJc1JVRkJSU3hEUVVGRE8yOUNRVU5vUXl4TFFVRkxMR0ZCUVdFc1EwRkJRenRuUWtGRGNrSXNRMEZCUXp0WlFVTklMRU5CUVVNN1dVRkRSQ3hOUVVGTkxFdEJRVXNzUTBGQlF6dFJRVU5rTEVOQlFVTTdVVUZEUkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03VVVGRFlpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGNrSXNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVNM1FpeERRVUZETzFsQlFVTXNUMEZCVHl4TFFVRmpMRVZCUVVVc1EwRkJRenRuUWtGRGVFSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXhwUTBGQmFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOd1JTeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN1QwRlhSenRKUVVOSUxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlExWXNVMEZCZFVNc1JVRkRka01zVlVGQkswSXNSVUZCUlN4RlFVTnFReXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGRGNFVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRXaXhEUVVGRE8xRkJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NUMEZCVHl4VFFVRlRMRXRCUVVzc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGRE0wVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXh0UWtGQmJVSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVVeFF5eEpRVUZKTEVsQlFWa3NRMEZCUXp0UlFVVnFRaXhKUVVGSkxFOUJRVThzVTBGQlV5eExRVUZMTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUTJ4RExFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTTdVVUZEYmtJc1EwRkJRenRoUVVGTkxFTkJRVU03V1VGRFRpeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJRenRSUVVONFFpeERRVUZETzFGQlJVUXNTVUZCU1N4RFFVRkRPMWxCUTBnc2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRNMElzUTBGQlF6dFJRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRaaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRlRU1zUTBGQlF6dFJRVVZFTEUxQlFVMHNZMEZCWXl4SFFVRkhMRzFDUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUldwRUxFbEJRVWtzVFVGQlRTeEhRVUZITEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVZNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMUZCUXk5RUxFMUJRVTBzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTmFMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVZNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1VzUTBGQlF6dFJRVVZFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTA3WVVGRE9VSXNUVUZCVFN4RlFVRkZPMkZCUTFJc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dGhRVU5pTEU5QlFVOHNRMEZCUXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdZVUZETVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlRWQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTmtMRTlCUVU4N1VVRkRWQ3hEUVVGRE8xRkJSVVFzU1VGQlNTeFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRVFzUTBGQlF6dGhRVUZOTEVOQlFVTTdXVUZEVGl4UlFVRlJMRU5CUVVNc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU42UWl4UlFVRlJMRU5CUVVNc1UwRkJVeXhIUVVGSExFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEYUVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5xUkN4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRU96czdPenM3T3p0UFFWRkhPMGxCUTBnc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGRFZpeFRRVUYxUXl4RlFVTjJReXhWUVVFclFpeEZRVUZGTEVWQlEycERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVOd1JTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVTmFMRU5CUVVNN1VVRkRSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eFBRVUZQTEZOQlFWTXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJRenRSUVVNelJTeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMSE5DUVVGelFpeFBRVUZQTEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUlhCRUxFbEJRVWtzU1VGQldTeERRVUZETzFGQlJXcENMRWxCUVVrc1QwRkJUeXhUUVVGVExFdEJRVXNzVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZEYkVNc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF6dFJRVU51UWl4RFFVRkRPMkZCUVUwc1EwRkJRenRaUVVOT0xFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTNoQ0xFTkJRVU03VVVGRlJDeEpRVUZKTEVOQlFVTTdXVUZEU0N4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTXpRaXhEUVVGRE8xRkJRVU1zVDBGQlR5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTm1MRTFCUVUwc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZqTEVOQlFVTXNRMEZCUXp0UlFVTjRReXhEUVVGRE8xRkJSVVFzVFVGQlRTeGpRVUZqTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGYWtRc1NVRkJTU3hOUVVGTkxFZEJRVWNzVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCVXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVVUZETDBRc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJVeXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWb1JTeE5RVUZOTEU5QlFVOHNSMEZEV0N4UFFVRlBMRU5CUVVNc1QwRkJUenRaUVVObUxFTkJRVU1zVDBGQlR5eFRRVUZUTEV0QlFVc3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVOc1JTeEpRVUZKTEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTFvc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJVeXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJTeERRVUZETzFGQlJVUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVVeFJTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVVZFT3pzN096czdPMDlCVDBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVU5TTEZWQlFUaENMRVZCUVVVc1JVRkRhRU1zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEyeEZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRMVlzUTBGQlF6dFJRVU5HTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0UlFVVXZRaXhKUVVGSkxGTkJRVk1zUjBGQk5rSXNTVUZCU1N4RFFVRkRPMUZCUlM5RExFbEJRVWtzVDBGQlR5eERRVUZETEU5QlFVOHNTMEZCU3l4VFFVRlRMRVZCUVVVc1EwRkJRenRaUVVOc1F5eFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJVeXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JGTEVOQlFVTTdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJZU3hOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTzJGQlEzaERMRTFCUVUwc1JVRkJSVHRoUVVOU0xFdEJRVXNzUTBGQlF5eFRRVUZUTEVsQlFVa3NVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJVeXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1lVRkROVVFzVDBGQlR5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkZka0lzVDBGQlR5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJZeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEzUkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zVVVGQk1FSTdXVUZETTBNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTzFsQlEycENMRTlCUVU4c1JVRkJSU3hOUVVGTkxFTkJRVU1zVDBGQlR6dFpRVU4yUWl4VFFVRlRMRVZCUVVVc1RVRkJUU3hEUVVGRExGTkJRVk03V1VGRE0wSXNVMEZCVXl4RlFVRkZMRTFCUVUwc1EwRkJReXhUUVVGVE8xbEJRek5DTEU5QlFVOHNSVUZCUlN4TlFVRk5MRU5CUVVNc1QwRkJUenRaUVVOMlFpeFhRVUZYTEVWQlFVVXNUVUZCVFN4RFFVRkRMRmRCUVZjN1dVRkRMMElzU1VGQlNTeEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpPMU5CUTJ4Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEwNHNRMEZCUXp0SlFVVkVPenM3T3pzN096czdPenRQUVZkSE8wbEJRMGdzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZEV2l4VFFVRjFReXhGUVVOMlF5eFZRVUZwUXl4RlFVRkZMRVZCUTI1RExFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVU4wUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVOa0xFTkJRVU03VVVGRFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4UFFVRlBMRk5CUVZNc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU16UlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExDdENRVUVyUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWFJFTEVsQlFVa3NTVUZCV1N4RFFVRkRPMUZCUldwQ0xFbEJRVWtzVDBGQlR5eFRRVUZUTEV0QlFVc3NVVUZCVVN4RlFVRkZMRU5CUVVNN1dVRkRiRU1zU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXp0UlFVTnVRaXhEUVVGRE8yRkJRVTBzUTBGQlF6dFpRVU5PTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRM2hDTEVOQlFVTTdVVUZGUkN4SlFVRkpMRU5CUVVNN1dVRkRTQ3hyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNelFpeERRVUZETzFGQlFVTXNUMEZCVHl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVObUxFMUJRVTBzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRmpMRU5CUVVNc1EwRkJRenRSUVVONFF5eERRVUZETzFGQlJVUXNUVUZCVFN4alFVRmpMRWRCUVVjc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkZha1FzU1VGQlNTeE5RVUZOTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJVeXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkZMMFFzVFVGQlRTeFBRVUZQTEVkQlExZ3NUMEZCVHl4RFFVRkRMRTlCUVU4N1dVRkRaaXhEUVVGRExFOUJRVThzVTBGQlV5eExRVUZMTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRiRVVzU1VGQlNTeFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTmFMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVZNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1VzUTBGQlF6dFJRVVZFTEUxQlFVMHNUMEZCVHl4SFFVRmhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTA3WVVGRGVFTXNUVUZCVFN4RlFVRkZPMkZCUTFJc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dGhRVU5pTEU5QlFVOHNRMEZCUXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdZVUZETVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlRGQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTmFMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRMjVDTEVOQlFVTTdVVUZGUkN4TlFVRk5MRWxCUVVrc1IwRkJiVUk3V1VGRE0wSXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhSUVVFd1FqdFpRVU16UXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFbEJRVWs3V1VGRGFrSXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhQUVVGUE8xbEJRM1pDTEZOQlFWTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1UwRkJVenRaUVVNelFpeFRRVUZUTEVWQlFVVXNUVUZCVFN4RFFVRkRMRk5CUVZNN1dVRkRNMElzVDBGQlR5eEZRVUZGTEUxQlFVMHNRMEZCUXl4UFFVRlBPMWxCUTNaQ0xGZEJRVmNzUlVGQlJTeE5RVUZOTEVOQlFVTXNWMEZCVnp0VFFVTm9ReXhEUVVGRE8xRkJSVVlzU1VGQlNTeFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1dVRkRlRUlzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRekZDTEVOQlFVTTdVVUZGUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdUMEZ2UWtjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVU5XTEZOQlFYVkRMRVZCUTNaRExFdEJRVkVzUlVGRFVpeFZRVUVyUWl4RlFVRkZMRVZCUTJwRExFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVU53UlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVOYUxFTkJRVU03VVVGRFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4UFFVRlBMRk5CUVZNc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU16UlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExHMUNRVUZ0UWl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVEZETEUxQlFVMHNZMEZCWXl4SFFVRkhMRzFDUVVGdFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRUxFbEJRVWtzVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVZNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMUZCUTJ4RkxGTkJRVk1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVk1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmRFVXNUVUZCVFN4UFFVRlBMRWRCUTFnc1QwRkJUeXhEUVVGRExGVkJRVlU3V1VGRGJFSXNRMEZCUXl4UFFVRlBMRk5CUVZNc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEyeEZMRWxCUVVrc1QwRkJUeXhGUVVGRkxFTkJRVU03V1VGRFdpeFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZUTEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6TkZMRU5CUVVNN1VVRkZSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5PMkZCUXpsQ0xFMUJRVTBzUlVGQlJUdGhRVU5TTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNN1lVRkRhRUlzVDBGQlR5eERRVUZETEVOQlFVTXNWMEZCVnl4RlFVRkZMR05CUVdNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dGhRVU14UXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU4yUWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGTlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyUXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXhYUVVGWExHTkJRV01zWVVGQllTeERRVUZETEVOQlFVTTdVVUZEYkVVc1EwRkJRenRSUVVWRUxFMUJRVTBzVjBGQlZ5eEhRVUZITEU5QlFVOHNRMEZCUXl4VlFVRlZMRWxCUVVrc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF6dFJRVU16UkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhYUVVGWExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlEzaERMRWxCUVVrc1lVRkJZU3hMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJReTlETEUxQlFVMHNTVUZCU1N4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTA3YVVKQlF6TkNMRTFCUVUwc1JVRkJSVHRwUWtGRFVpeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJVeXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN2FVSkJRM2hFTEU5QlFVOHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJRM1pDTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRM3BDTEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkRaQ3hIUVVGSExFTkJRVU1zUlVGQlJTeExRVUZMTEZGQlFWRXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eEpRVUZKTEVWQlFVVXNRMEZCUXl4TFFVRkxMR0ZCUVdFc1EwRkRiRVVzUTBGQlF6dFpRVU5HTEVsQlFVa3NVMEZCVXl4RlFVRkZMRU5CUVVNN1owSkJRMlFzVFVGQlRTeEpRVUZKTEZkQlFWY3NRMEZEYmtJc2RVSkJRWFZDTEVWQlEzWkNMRlZCUVZVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eGpRVUZqTEVOQlFVTXNSMEZEZEVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1lVRkJZU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZEYUVVc2FVSkJRV2xDTEVOQlEyeENMRU5CUVVNN1dVRkRTaXhEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVVZFTEUxQlFVMHNWVUZCVlN4SFFVRkhMSE5DUVVGelFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTJwRUxFMUJRVTBzVlVGQlZTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXh0UWtGQmJVSXNRMEZETjBRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZ0UWl4RFFVTm9ReXhEUVVGRE8xRkJRMFlzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVNeFJTeE5RVUZOTEVWQlFVVXNZVUZCWVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4alFVRmpMRU5CUTNwRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUXpGQ0xFOUJRVThzUTBGQlF5eExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFbEJRVWtzWTBGQll5eEZRVU53UkN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVOa0xFTkJRVU03VVVGRlJpeFJRVUZSTEVOQlFVTXNaMEpCUVdkQ0xFZEJRVWNzWVVGQllTeERRVUZETzFGQlF6RkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFZEJRVWM3V1VGRGNFSXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTE8xbEJRM0pDTEVWQlFVVXNSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkJSVHRaUVVObUxFbEJRVWtzUlVGQlJTeFRRVUZUTEVOQlFVTXNTVUZCU1R0VFFVTnlRaXhEUVVGRE8xRkJRMFlzVVVGQlVTeERRVUZETEU5QlFVOHNSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRMMElzVVVGQlVTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJSV2hETEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGFrUXNRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGREwwSXNRMEZCUXp0UlFVVkVMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRTdXVUZEZGtJc1NVRkJTU3hGUVVGRkxHTkJRV003V1VGRGNFSXNUMEZCVHl4RlFVRkZMRkZCUVZFc1EwRkJReXhQUVVGUE8xTkJRekZDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRN096czdPenM3T3p0UFFWTkhPMGxCUTA4c1ZVRkJWU3hEUVVGRExFdEJRV003VVVGRGFrTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJZeXhEUVVGRE8xRkJRek5DTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWRCUVVjc1EwRkJReXhQUVVGUExFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NTVUZCU1N4bFFVRmxMRU5CUVVNN1VVRkRNMFFzVFVGQlRTeFpRVUZaTEVkQlFVY3NUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJSVE5ETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrVXNUMEZCVHl4SlFVRkpMRmRCUVZjc1EwRkRjRUlzYTBKQlFXdENMRVZCUTJ4Q0xIRkNRVUZ4UWl4UFFVRlBMRVZCUVVVc1JVRkRPVUlzUjBGQlJ5eERRVU5LTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1NVRkRSU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xbEJRM1pETEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xbEJRMnBETEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRE8xbEJRelZDTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1pVRkJaU3hEUVVGRE8xbEJRM1JETEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTTdXVUZEZWtNc1IwRkJNRUlzUTBGQlF5eEpRVUZKTEV0QlFVc3NUMEZCVHl4RlFVTTFReXhEUVVGRE8xbEJRMFFzVDBGQlR5eEpRVUZKTEZkQlFWY3NRMEZEY0VJc2RVSkJRWFZDTEVWQlEzWkNMREJDUVVFd1FpeFBRVUZQTEVWQlFVVXNSVUZEYmtNc1IwRkJSeXhEUVVOS0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNTVUZEUlN4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUTBGQlF6dFpRVU51UXl4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUTBGQlF5eEZRVU5vUXl4RFFVRkRPMWxCUTBRc1QwRkJUeXhKUVVGSkxGZEJRVmNzUTBGRGNFSXNNRUpCUVRCQ0xFVkJRekZDTEhOQ1FVRnpRaXhQUVVGUExFVkJRVVVzUlVGREwwSXNSMEZCUnl4RFFVTktMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzVDBGQlR5eEpRVUZKTEZkQlFWY3NRMEZEY0VJc01FSkJRVEJDTEVWQlF6RkNMRzFDUVVGdFFpeFBRVUZQTEVWQlFVVXNSVUZETlVJc1IwRkJSeXhEUVVOS0xFTkJRVU03U1VGRFNpeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRUJ0YjJSMWJHVWdhVzUwWldkeVlYUnBiMjV6TDNObFkzSmxkSE12Ylc5a1pXd3ZjMlZ5ZG1salpWeHVJQ29nUUhOMWJXMWhjbmtnVFc5a1pXd3RZbUZqYTJWa0lHVnVZM0o1Y0hSbFpDQnpaV055WlhRZ2MyVnlkbWxqWlM1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCSmJYQnNaVzFsYm5SeklIUm9aU0JnZTBCc2FXNXJJRTF2WkdWc1UyVmpjbVYwVTJWeWRtbGpaWDFnTENCaGJpQjFibVJsWTI5eVlYUmxaRnh1SUNvZ1lFTnNhV1Z1ZEVKaGMyVmtVMlZqY21WMFUyVnlkbWxqWldBZ2RHaGhkRnh1SUNvZ2NHVnljMmx6ZEhNZ1FVVlRMV1Z1WTNKNWNIUmxaQ0J3WVhsc2IyRmtjeUJoY3lCZ2UwQnNhVzVySUZObFkzSmxkSDFnSUhKdmQzTWdkR2h5YjNWbmFDQmhYRzRnS2lCa1pXTmhaaUJnVW1Wd2IzTnBkRzl5ZVdBZ0tIUmxibUZ1ZEM5dmNtY3RkVzVwZEM5dmQyNWxjaUJ6WTI5d2FXNW5JR2x1WTJ4MVpHVmtLUzRnUlc1amNubHdkR2x2Ymx4dUlDb2dhMlY1Y3lCa1pYSnBkbVVnWm5KdmJTQmhJRzFoYzNSbGNpQmdhMlY1VTJWamNtVjBZQ0IyYVdFZ1lFTnllWEIwYjFObGNuWnBZMlZnT3lCamIyNW1hV2QxY21GMGFXOXVYRzRnS2lCamIyMWxjeUJtY205dElIUm9aU0JnYzJWamNtVjBjeTV0YjJSbGJHQWdSVzUyYVhKdmJtMWxiblFnYzJ4cFkyVWdiM0lnWVc0Z1pYaHdiR2xqYVhRZ1ltOXZkRnh1SUNvZ1kyOXVabWxuSUNoelpXVWdZRTF2WkdWc1UyVmpjbVYwVTJWeWRtbGpaVU52Ym1acFoyQXBMbHh1SUNvdlhHNXBiWEJ2Y25RZ2V5QkRiR2xsYm5SQ1lYTmxaRk5sWTNKbGRGTmxjblpwWTJVc0lGTmxZM0psZEVWeWNtOXlMQ0JUWldOeVpYUlFjbTkyYVdSbGNpQjlJR1p5YjIwZ1hDSXVMaTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCVFpXTnlaWFJPWVcxbExGeHVJQ0JUWldOeVpYUlFZWGxzYjJGa0xGeHVJQ0JUWldOeVpYUlNaV1psY21WdVkyVXNYRzRnSUZObFkzSmxkRTFsZEdGa1lYUmhMRnh1ZlNCbWNtOXRJRndpTGk0dlkyOXlaVndpTzF4dWFXMXdiM0owSUh0Y2JpQWdVM1J2Y21WVFpXTnlaWFJQY0hScGIyNXpMRnh1SUNCU1pYUnlhV1YyWlZObFkzSmxkRTl3ZEdsdmJuTXNYRzRnSUVSbGJHVjBaVk5sWTNKbGRFOXdkR2x2Ym5Nc1hHNGdJRVY0YVhOMGMxTmxZM0psZEU5d2RHbHZibk1zWEc0Z0lFeHBjM1JUWldOeVpYUnpUM0IwYVc5dWN5eGNiaUFnVTJWamNtVjBUV1YwWVdSaGRHRlBjSFJwYjI1ekxGeHVJQ0JTYjNSaGRHVlRaV055WlhSUGNIUnBiMjV6TEZ4dWZTQm1jbTl0SUZ3aUxpNHZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dkbUZzYVdSaGRHVlRaV055WlhST1lXMWxMQ0J1YjNKdFlXeHBlbVZUWldOeVpYUk9ZVzFsSUgwZ1puSnZiU0JjSWk0dUwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJSE5sY21saGJHbDZaVk5sWTNKbGRGQmhlV3h2WVdRc1hHNGdJR1JsYzJWeWFXRnNhWHBsVTJWamNtVjBVR0Y1Ykc5aFpDeGNiaUFnZEhsd1pTQlRaWEpwWVd4cGVtVmtVMlZqY21WMFVHRjViRzloWkN4Y2JuMGdabkp2YlNCY0lpNHVMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRk5sWTNKbGRDQjlJR1p5YjIwZ1hDSXVMMU5sWTNKbGRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1EyOXVkR1Y0ZEN4Y2JpQWdRMjl1ZEdWNGRFeHZZMnNzWEc0Z0lFTnZiblJsZUhSMVlXeEJjbWR6TEZ4dUlDQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtY3NYRzRnSUZKbGNHOXphWFJ2Y25rc1hHNGdJSEpsYzI5c2RtVlVjbUZ1YzJGamRHbHZia3h2WTJzc1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dUVzlrWld4VFpXTnlaWFJUWlhKMmFXTmxRMjl1Wm1sbklIMGdabkp2YlNCY0lpNHZUVzlrWld4VFpXTnlaWFJUWlhKMmFXTmxRMjl1Wm1sblhDSTdYRzVwYlhCdmNuUWdleUJOYjJSbGJGTmxZM0psZEVWdWRtbHliMjV0Wlc1MElIMGdabkp2YlNCY0lpNHZUVzlrWld4VFpXTnlaWFJGYm5acGNtOXViV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2daVzUyVTNSeWFXNW5JSDBnWm5KdmJTQmNJaTR1THk0dUwzTm9ZWEpsWkM5bGJuWnBjbTl1YldWdWRGWmhiSFZsWENJN1hHNXBiWEJ2Y25RZ2V5QkRiMjVrYVhScGIyNHNJRTl5WkdWeVJHbHlaV04wYVc5dUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QkRjbmx3ZEc5VFpYSjJhV05sSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amNubHdkRzh2YVc1MFpXZHlZWFJwYjI0dmMyVnlkbWxqWlhNdlkzSjVjSFJ2WENJN1hHNXBiWEJ2Y25RZ2V5QkpiblJsY201aGJFVnljbTl5TENCT2IzUkdiM1Z1WkVWeWNtOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVjYm1OdmJuTjBJRVJGUmtGVlRGUmZTMFZaWDBsRUlEMGdYQ0prWldaaGRXeDBMV3RsZVZ3aU8xeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCTmIyUmxiQzFpWVdOclpXUWdaVzVqY25sd2RHVmtJSE5sWTNKbGRDQnpaWEoyYVdObFhHNGdLaUJBYzNWdGJXRnllU0JUZEc5eVpYTWdaV0ZqYUNCelpXTnlaWFFnWVhNZ1lTQmdlMEJzYVc1cklGTmxZM0psZEgxZ0lISnZkeUFvWlc1amNubHdkR1ZrSUhCaGVXeHZZV1FzWEc0Z0tpQnJaWGtnYVdRdmFYWXZjMkZzZENCdFpYUmhaR0YwWVN3Z2RtVnljMmx2Yml3Z1pXNWhZbXhsYldWdWRDQm1iR0ZuTENCaGJtUWdiM0IwYVc5dVlXeGNiaUFxSUhSbGJtRnVkQzl2Y21jdGRXNXBkQzl2ZDI1bGNpQnpZMjl3WlNrZ2RHaHliM1ZuYUNCMGFHVWdjbVZ3YjNOcGRHOXllU0JpYjI5MFpXUWdZWE1nZEdobElITmxjblpwWTJWY2JpQXFJR05zYVdWdWRDNGdUbUZ0WlhNZ1lYSmxJSFpoYkdsa1lYUmxaQ0JoYm1RZ2JtOXliV0ZzYVhwbFpDQmlaV1p2Y21VZ2NHVnljMmx6ZEdWdVkyVTdYRzRnS2lCZ0tHNWhiV1VzSUhabGNuTnBiMjRwWUNCcGN5QjFibWx4ZFdVZ0tHVnVabTl5WTJWa0lHSjVJR0VnWUZORlExSkZWRjlCVEZKRlFVUlpYMFZZU1ZOVVUyQmNiaUFxSUdOdmJtWnNhV04wSUdsdUlHQnpkRzl5WldBdllISnZkR0YwWldBZ1lXNWtJR0poWTJ0bFpDQmllU0IwYUdVZ1lIVnhYM05sWTNKbGRITmZibUZ0WlY5MlpYSnphVzl1WUZ4dUlDb2daR0YwWVdKaGMyVWdhVzVrWlhncE95QnlaWFJ5YVdWMllXd2diMjVzZVNCamIyNXphV1JsY25NZ1pXNWhZbXhsWkNCeWIzZHpMQ0J6ZFhCd2IzSjBjeUIyWlhKemFXOXVYRzRnS2lCd2FXNXVhVzVuTENCaGJtUWdjbVZ6YjJ4MlpYTWdiWFZzZEdsd2JHVWdiV0YwWTJobGN5QmtaWFJsY20xcGJtbHpkR2xqWVd4c2VTQmllU0JnZFhCa1lYUmxaRUYwWEc0Z0tpQkVSVk5EWUM0Z1JHVnNaWFJsSUdseklITnZablFnWW5rZ1pHVm1ZWFZzZENBb2MyVjBjeUJnWlc1aFlteGxaRG9nWm1Gc2MyVmdLU0IxYm14bGMzTmNiaUFxSUdCdmNIUnBiMjV6TG1admNtTmxZQ0JwY3lCelpYUXVJRVZ5Y205eWN5Qm1jbTl0SUhSb1pTQnlaWEJ2YzJsMGIzSjVJR0Z5WlNCMGNtRnVjMnhoZEdWa0lHbHVkRzljYmlBcUlIUjVjR1ZrSUh0QWJHbHVheUJUWldOeVpYUkZjbkp2Y24xeklHSjVJR0J3WVhKelpVVnljbTl5WUM1Y2JpQXFYRzRnS2lCVmJtUmxZMjl5WVhSbFpDQmhibVFnUlc1MmFYSnZibTFsYm5RdFkyOXVabWxuZFhKaFlteGxYRzRnS2lCMGFISnZkV2RvSUhSb1pTQmdjMlZqY21WMGN5NXRiMlJsYkdBZ2MyeHBZMlU3SUhSb1pTQmpjbVZrWlc1MGFXRnNJSE5sY25acFkyVmNiaUFxSUNoZ1EzSmxaR1Z1ZEdsaGJGTmxjblpwWTJWZ0tTQmtaV3hsWjJGMFpYTWdkWE5sY2k5eWRXNTBhVzFsSUdOeVpXUmxiblJwWVd3Z2MzUnZjbUZuWlNCMGJ5QjBhR2x6WEc0Z0tpQnpaWEoyYVdObExseHVJQ29nUUdOc1lYTnpJRTF2WkdWc1UyVmpjbVYwVTJWeWRtbGpaVnh1SUNvZ1FHTmhkR1ZuYjNKNUlGTmxZM0psZEhOY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lCZ1lHQjBjMXh1SUNvZ2FXMXdiM0owSUhzZ1RXOWtaV3hUWldOeVpYUlRaWEoyYVdObElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OXBiblJsWjNKaGRHbHZibk12YzJWamNtVjBjMXdpTzF4dUlDcGNiaUFxSUdOdmJuTjBJRzF2WkdWc1UyVmpjbVYwY3lBOUlHRjNZV2wwSUc1bGR5Qk5iMlJsYkZObFkzSmxkRk5sY25acFkyVW9LUzVpYjI5MEtIdGNiaUFxSUNBZ2EyVjVVMlZqY21WME9pQmNJbTF2WkdWc0xXMWhjM1JsY2kxclpYbGNJaXhjYmlBcUlIMHBPMXh1SUNvZ1lYZGhhWFFnYlc5a1pXeFRaV055WlhSekxuTjBiM0psS0Z3aWJYa3RjMlZqY21WMFhDSXNJSHNnZG1Gc2RXVTZJRndpY3pOamNqTjBYQ0lnZlNrN1hHNGdLaUJqYjI1emRDQndZWGxzYjJGa0lEMGdZWGRoYVhRZ2JXOWtaV3hUWldOeVpYUnpMbkpsZEhKcFpYWmxQSHNnZG1Gc2RXVTZJSE4wY21sdVp5QjlQaWhjSW0xNUxYTmxZM0psZEZ3aUtUdGNiaUFxSUdCZ1lGeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdUVzlrWld4VFpXTnlaWFJUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRMnhwWlc1MFFtRnpaV1JUWldOeVpYUlRaWEoyYVdObFBGeHVJQ0JTWlhCdmMybDBiM0o1UEZObFkzSmxkQ3dnWVc1NVBpeGNiaUFnVFc5a1pXeFRaV055WlhSVFpYSjJhV05sUTI5dVptbG5YRzQrSUh0Y2JpQWdjbVZoWkc5dWJIa2djSEp2ZG1sa1pYSTZJRk5sWTNKbGRGQnliM1pwWkdWeUlEMGdYQ0p0YjJSbGJGd2lPMXh1SUNCd2NtbDJZWFJsSUdOeWVYQjBiMU5sY25acFkyVWhPaUJEY25sd2RHOVRaWEoyYVdObE8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtDa2dlMXh1SUNBZ0lITjFjR1Z5S0NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVKMWFXeGtjeUIwYUdVZ2JXOWtaV3dnYzJWamNtVjBJR052Ym1acFozVnlZWFJwYjI0Z1puSnZiU0IwYUdVZ1JXNTJhWEp2Ym0xbGJuUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1VtVmhaSE1nZEdobElHQnpaV055WlhSekxtMXZaR1ZzWUNCRmJuWnBjbTl1YldWdWRDQnpiR2xqWlNCaGJtUWdjbVYwZFhKdWN5QmhYRzRnSUNBcUlHQk5iMlJsYkZObFkzSmxkRk5sY25acFkyVkRiMjVtYVdkZ0lIZG9aVzRnWVNCZ2EyVjVVMlZqY21WMFlDQnBjeUJqYjI1bWFXZDFjbVZrT3lCeVpYUjFjbTV6WEc0Z0lDQXFJR0IxYm1SbFptbHVaV1JnSUc5MGFHVnlkMmx6WlN3Z2JHVjBkR2x1WnlCaWIyOTBJR1poYkd3Z1ltRmpheUIwYnlCbGVIQnNhV05wZENCaGNtZDFiV1Z1ZEhNdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0TmIyUmxiRk5sWTNKbGRGTmxjblpwWTJWRGIyNW1hV2NnZkNCMWJtUmxabWx1WldSOUlGUm9aU0JGYm5acGNtOXViV1Z1ZEMxa1pYSnBkbVZrSUdOdmJtWnBaM1Z5WVhScGIyNHNJRzl5SUdCMWJtUmxabWx1WldSZ0xseHVJQ0FnS2lCQWIzWmxjbkpwWkdWY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQmpiMjVtYVdkR2NtOXRSVzUyYVhKdmJtMWxiblFvS1RvZ1RXOWtaV3hUWldOeVpYUlRaWEoyYVdObFEyOXVabWxuSUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnSUNCamIyNXpkQ0JsYm5ZZ1BTQk5iMlJsYkZObFkzSmxkRVZ1ZG1seWIyNXRaVzUwTG5ObFkzSmxkSE11Ylc5a1pXdzdYRzRnSUNBZ1kyOXVjM1FnYTJWNVUyVmpjbVYwSUQwZ1pXNTJVM1J5YVc1bktHVnVkajh1YTJWNVUyVmpjbVYwS1R0Y2JpQWdJQ0JwWmlBb0lXdGxlVk5sWTNKbGRDa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnY0hKdmRtbGtaWEk2SUZ3aWJXOWtaV3hjSWl4Y2JpQWdJQ0FnSUd0bGVWTmxZM0psZEN4Y2JpQWdJQ0FnSUd0bGVVbGtPaUJsYm5aVGRISnBibWNvWlc1MkxtdGxlVWxrS1N4Y2JpQWdJQ0I5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJDYjI5MGN5QjBhR1VnWTNKNWNIUnZJSE5sY25acFkyVWdZVzVrSUhKbGMyOXNkbVZ6SUhSb1pTQmlZV05yYVc1bklISmxjRzl6YVhSdmNubGNiaUFnSUNvZ1FITjFiVzFoY25rZ1FXTmpaWEIwY3lCMGFHVWdZMjl1Wm1sbmRYSmhkR2x2YmlBb1pYaHdiR2xqYVhRZ1lYSm5jeXdnYldWeVoyVmtJSGRwZEdnZ2RHaGxYRzRnSUNBcUlFVnVkbWx5YjI1dFpXNTBJSE5zYVdObElHSjVJSFJvWlNCaVlYTmxLU0JoYm1RZ1lXNGdiM0IwYVc5dVlXd2dZRkpsY0c5emFYUnZjbms4VTJWamNtVjBQbUFnWVhNZ2RHaGxYRzRnSUNBcUlITmxZMjl1WkNCaGNtZDFiV1Z1ZERzZ2QyaGxiaUJoWW5ObGJuUXNJR055WldGMFpYTWdiMjVsSUhacFlTQmdVbVZ3YjNOcGRHOXllUzVtYjNKTmIyUmxiQ2hUWldOeVpYUXBZQzVjYmlBZ0lDb2dVbVYwZFhKdWN5QjBhR1VnWTI5dVptbG5JR0Z1WkNCeVpYQnZjMmwwYjNKNUlHRnpJSFJvWlNCelpYSjJhV05sSUdOc2FXVnVkQzVjYmlBZ0lDb2dRSEJoY21GdElIdERiMjUwWlhoMGRXRnNRWEpuYzMwZ1lYSm5jeUF0SUVOdmJtWnBaM1Z5WVhScGIyNGdZVzVrSUc5d2RHbHZibUZzSUdCU1pYQnZjMmwwYjNKNVlDOWdRMjl1ZEdWNGRHQWdZWEpuZFcxbGJuUnpMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeDdZMjl1Wm1sbk9pQk5iMlJsYkZObFkzSmxkRk5sY25acFkyVkRiMjVtYVdjc0lHTnNhV1Z1ZERvZ1VtVndiM05wZEc5eWVUeFRaV055WlhRc0lHRnVlVDU5UG4wZ1ZHaGxJSEpsYzI5c2RtVmtJR052Ym1acFp5QmhibVFnY21Wd2IzTnBkRzl5ZVNCamJHbGxiblF1WEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJwYm1sMGFXRnNhWHBsS0M0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQR0Z1ZVQ0cE9pQlFjbTl0YVhObFBIdGNiaUFnSUNCamIyNW1hV2M2SUUxdlpHVnNVMlZqY21WMFUyVnlkbWxqWlVOdmJtWnBaenRjYmlBZ0lDQmpiR2xsYm5RNklGSmxjRzl6YVhSdmNuazhVMlZqY21WMExDQmhibmsrTzF4dUlDQjlQaUI3WEc0Z0lDQWdZMjl1YzNRZ1kyOXVabWxuSUQwZ2RHaHBjeTVuWlhSRGIyNW1hV2RHY205dFFYSm5jenhOYjJSbGJGTmxZM0psZEZObGNuWnBZMlZEYjI1bWFXYytLQzR1TG1GeVozTXBPMXh1SUNBZ0lHTnZibk4wSUhKbGNHOXphWFJ2Y25rZ1BWeHVJQ0FnSUNBZ0tHRnlaM05iTVYwZ1lYTWdVbVZ3YjNOcGRHOXllVHhUWldOeVpYUXNJR0Z1ZVQ0Z2ZDQjFibVJsWm1sdVpXUXBJSHg4WEc0Z0lDQWdJQ0JTWlhCdmMybDBiM0o1TG1admNrMXZaR1ZzUEZObFkzSmxkQ3dnVW1Wd2IzTnBkRzl5ZVR4VFpXTnlaWFFzSUdGdWVUNCtLRk5sWTNKbGRDazdYRzRnSUNBZ2RHaHBjeTVqY25sd2RHOVRaWEoyYVdObElEMGdibVYzSUVOeWVYQjBiMU5sY25acFkyVW9LVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbU55ZVhCMGIxTmxjblpwWTJVdVltOXZkQ2g3ZlNrN1hHNGdJQ0FnY21WMGRYSnVJSHNnWTI5dVptbG5MQ0JqYkdsbGJuUTZJSEpsY0c5emFYUnZjbmtnZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUlc1amNubHdkSE1nWVc1a0lIQmxjbk5wYzNSeklHRWdjMlZqY21WMElISnZkMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQldZV3hwWkdGMFpYTWdZVzVrSUc1dmNtMWhiR2w2WlhNZ2RHaGxJRzVoYldVc0lITmxjbWxoYkdsNlpYTWdkR2hsSUhCaGVXeHZZV1FzSUdGdVpGeHVJQ0FnS2lCbGJtTnllWEIwY3lCcGRDQjNhWFJvSUdFZ2EyVjVJR1JsY21sMlpXUWdabkp2YlNCMGFHVWdiV0Z6ZEdWeUlHQnJaWGxUWldOeVpYUmdMQ0JsYldKbFpHUnBibWNnZEdobFhHNGdJQ0FxSUd0bGVTQnBaQzlwZGk5ellXeDBJR2x1SUhSb1pTQnliM2NuY3lCZ1pXNWpjbmx3ZEdsdmJtQWdiV1YwWVdSaGRHRXVJRlJvWlNCeWIzY2dZMkZ5Y21sbGN5QjBhR1ZjYmlBZ0lDb2diM0IwYVc5dVlXd2dkR1Z1WVc1MEwyOXlaeTExYm1sMEwyOTNibVZ5SUhOamIzQnBibWNnWVc1a0lIWmxjbk5wYjI0dUlHQW9ibUZ0WlN3Z2RtVnljMmx2YmlsZ0lHbHpYRzRnSUNBcUlIVnVhWEYxWlRvZ1lXNGdZWEJ3YkdsallYUnBiMjR0YkdWMlpXd2djSEpsTFdOb1pXTnJJSEpsYW1WamRITWdZU0JrZFhCc2FXTmhkR1VnWTI5dFltbHVZWFJwYjI1Y2JpQWdJQ29nZDJsMGFDQmhJR0JUUlVOU1JWUmZRVXhTUlVGRVdWOUZXRWxUVkZOZ0lIdEFiR2x1YXlCVFpXTnlaWFJGY25KdmNuMGdZbVZtYjNKbElIUm9aU0JwYm5ObGNuUXNJR0Z1WkZ4dUlDQWdLaUIwYUdVZ1lIVnhYM05sWTNKbGRITmZibUZ0WlY5MlpYSnphVzl1WUNCa1lYUmhZbUZ6WlNCcGJtUmxlQ0FvZDJocFkyZ2dkSEpsWVhSeklHQk9WVXhNWUZ4dUlDQWdLaUIyWlhKemFXOXVjeUJoY3lCZ0p5ZGdLU0JpWVdOcmMzUnZjSE1nZEdobElITmhiV1VnY25Wc1pTQmhaMkZwYm5OMElHTnZibU4xY25KbGJuUWdkM0pwZEdWeWN5NWNiaUFnSUNvZ1FIUmxiWEJzWVhSbElGUWdMU0JVYUdVZ2MyVmpjbVYwSUhCaGVXeHZZV1FnZEhsd1pTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0VFpXTnlaWFJPWVcxbGZTQnVZVzFsSUMwZ1ZHaGxJSE5sWTNKbGRDQnVZVzFsSUNoMllXeHBaR0YwWldRZ1lXNWtJRzV2Y20xaGJHbDZaV1FwTGx4dUlDQWdLaUJBY0dGeVlXMGdlMVI5SUhaaGJIVmxJQzBnVkdobElIQmhlV3h2WVdRZ2RHOGdaVzVqY25sd2RDQmhibVFnYzNSdmNtVXVYRzRnSUNBcUlFQndZWEpoYlNCN1UzUnZjbVZUWldOeVpYUlBjSFJwYjI1emZTQmJiM0IwYVc5dWMxMGdMU0JQY0hScGIyNWhiQ0JqYjI1MFpXNTBJSFI1Y0dVc0lIUmhaM01zSUhabGNuTnBiMjRzSUdGdVpDQjBaVzVoYm5RdmIzSm5MMjkzYm1WeUlITmpiM0JwYm1jdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuZlNCaGNtZHpJQzBnVDNCMGFXOXVZV3dnZEhKaGFXeHBibWNnWkdWallXWWdZRU52Ym5SbGVIUmdJR1p2Y25kaGNtUmxaQ0IwYnlCMGFHVWdjbVZ3YjNOcGRHOXllUzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVThVMlZqY21WMFVtVm1aWEpsYm1ObFBuMGdRU0J5WldabGNtVnVZMlVnZEc4Z2RHaGxJSEJsY25OcGMzUmxaQ0J6WldOeVpYUXVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UxTmxZM0psZEVWeWNtOXlmU0JnVTBWRFVrVlVYMEZNVWtWQlJGbGZSVmhKVTFSVFlDQjNhR1Z1SUdFZ2NtOTNJSGRwZEdnZ2RHaGxJSE5oYldVZ2JtOXliV0ZzYVhwbFpDQnVZVzFsSUdGdVpDQjJaWEp6YVc5dUlHRnNjbVZoWkhrZ1pYaHBjM1J6TENCdmNpQmdVMFZEVWtWVVgwNVBWRjlHVDFWT1JHQXZZRk5GUTFKRlZGOVFVazlXU1VSRlVsOURUMDVHVEVsRFZHQWdkMmhsYmlCMGFHVWdibUZ0WlNCcGN5QnBiblpoYkdsa0lHOXlJSFJvWlNCeVpYQnZjMmwwYjNKNUlHbHVjMlZ5ZENCbVlXbHNjeTVjYmlBZ0lDb3ZYRzRnSUdGemVXNWpJSE4wYjNKbFBGUWdaWGgwWlc1a2N5QlRaV055WlhSUVlYbHNiMkZrSUQwZ1UyVmpjbVYwVUdGNWJHOWhaRDRvWEc0Z0lDQWdibUZ0WlRvZ1UyVmpjbVYwVG1GdFpTeGNiaUFnSUNCMllXeDFaVG9nVkN4Y2JpQWdJQ0J2Y0hScGIyNXpPaUJUZEc5eVpWTmxZM0psZEU5d2RHbHZibk1nUFNCN2ZTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBGTmxZM0psZEZKbFptVnlaVzVqWlQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGhCY21keklIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0p6ZEc5eVpWd2lMQ0IwY25WbEtTa3VabTl5S0Z4dUlDQWdJQ0FnZEdocGN5NXpkRzl5WlZ4dUlDQWdJQ2s3WEc0Z0lDQWdiRzluTG5abGNtSnZjMlVvWUZOMGIzSnBibWNnYzJWamNtVjBJQ1I3Ym1GdFpYMWdLVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUWldOeVpYUk9ZVzFsS0c1aGJXVXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUIwYUdsekxuQmhjbk5sUlhKeWIzSW9aWEp5YjNJZ1lYTWdSWEp5YjNJcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRzV2Y20xaGJHbDZaV1JPWVcxbElEMGdibTl5YldGc2FYcGxVMlZqY21WMFRtRnRaU2h1WVcxbEtUdGNiaUFnSUNCamIyNXpkQ0J6WlhKcFlXeHBlbVZrSUQwZ2MyVnlhV0ZzYVhwbFUyVmpjbVYwVUdGNWJHOWhaQ2gyWVd4MVpTazdYRzRnSUNBZ1kyOXVjM1FnWkdWeWFYWmxaRXRsZVNBOUlHRjNZV2wwSUhSb2FYTXVZM0o1Y0hSdlUyVnlkbWxqWlM1a1pYSnBkbVZMWlhsR2NtOXRVMlZqY21WMEtGeHVJQ0FnSUNBZ2RHaHBjeTVqYjI1bWFXY3VhMlY1VTJWamNtVjBJR0Z6SUhOMGNtbHVaMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWlhoMGNtRmpkR1ZrSUQwZ2RHaHBjeTVqY25sd2RHOVRaWEoyYVdObExtVjRkSEpoWTNSTFpYbEdjbTl0UkdWeWFYWmxaRXRsZVNoa1pYSnBkbVZrUzJWNUtUdGNiaUFnSUNCamIyNXpkQ0I3SUdWdVkzSjVjSFJsWkVSaGRHRXNJRzFsZEdGa1lYUmhJSDBnUFNCaGQyRnBkQ0IwYUdsekxtTnllWEIwYjFObGNuWnBZMlV1Wlc1amNubHdkRkJoZVd4dllXUW9YRzRnSUNBZ0lDQktVMDlPTG5OMGNtbHVaMmxtZVNoelpYSnBZV3hwZW1Wa0tTeGNiaUFnSUNBZ0lIUm9hWE11WTI5dVptbG5MbXRsZVVsa0lIeDhJRVJGUmtGVlRGUmZTMFZaWDBsRUxGeHVJQ0FnSUNBZ1pYaDBjbUZqZEdWa0xtdGxlVnh1SUNBZ0lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCdWIzY2dQU0J1WlhjZ1JHRjBaU2dwTzF4dUlDQWdJR052Ym5OMElITmxZM0psZENBOUlHNWxkeUJUWldOeVpYUW9lMXh1SUNBZ0lDQWdibUZ0WlRvZ2JtOXliV0ZzYVhwbFpFNWhiV1VzWEc0Z0lDQWdJQ0J3Y205MmFXUmxjam9nZEdocGN5NXdjbTkyYVdSbGNpeGNiaUFnSUNBZ0lHVnVZM0o1Y0hSbFpGQmhlV3h2WVdRNklHVnVZM0o1Y0hSbFpFUmhkR0VzWEc0Z0lDQWdJQ0JsYm1OeWVYQjBhVzl1T2lCN1hHNGdJQ0FnSUNBZ0lHdGxlVWxrT2lCdFpYUmhaR0YwWVM1clpYbEpaQ3hjYmlBZ0lDQWdJQ0FnYVhZNklHMWxkR0ZrWVhSaExtbDJMRnh1SUNBZ0lDQWdJQ0J6WVd4ME9pQmxlSFJ5WVdOMFpXUXVjMkZzZEN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamIyNTBaVzUwVkhsd1pUb2diM0IwYVc5dWN5NWpiMjUwWlc1MFZIbHdaU3hjYmlBZ0lDQWdJSFJoWjNNNklHOXdkR2x2Ym5NdWRHRm5jeXhjYmlBZ0lDQWdJR1Z1WVdKc1pXUTZJSFJ5ZFdVc1hHNGdJQ0FnSUNCMlpYSnphVzl1T2lCdmNIUnBiMjV6TG5abGNuTnBiMjRzWEc0Z0lDQWdJQ0IwWlc1aGJuUkpaRG9nYjNCMGFXOXVjeTUwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJRzl5WjFWdWFYUkpaRG9nYjNCMGFXOXVjeTV2Y21kVmJtbDBTV1FzWEc0Z0lDQWdJQ0J2ZDI1bGNsQnlhVzVqYVhCaGJFbGtPaUJ2Y0hScGIyNXpMbTkzYm1WeVVISnBibU5wY0dGc1NXUXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJXWlhKemFXOXVJRDBnYjNCMGFXOXVjeTUyWlhKemFXOXVJRDgvSUZ3aVhDSTdYRzRnSUNBZ1kyOXVjM1FnWlhocGMzUnBibWNnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEZ4dUlDQWdJQ0FnTG5ObGJHVmpkQ2dwWEc0Z0lDQWdJQ0F1ZDJobGNtVW9RMjl1WkdsMGFXOXVMbUYwZEhJOFUyVmpjbVYwUGloY0ltNWhiV1ZjSWlrdVpYRW9ibTl5YldGc2FYcGxaRTVoYldVcEtWeHVJQ0FnSUNBZ0xtVjRaV04xZEdVb0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ1kyOXVjM1FnWkhWd2JHbGpZWFJsSUQwZ1pYaHBjM1JwYm1jdWMyOXRaU2hjYmlBZ0lDQWdJQ2h5YjNjNklGTmxZM0psZENrZ1BUNGdLSEp2ZHk1MlpYSnphVzl1SUQ4L0lGd2lYQ0lwSUQwOVBTQjBZWEpuWlhSV1pYSnphVzl1WEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvWkhWd2JHbGpZWFJsS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1UyVmpjbVYwUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpVTBWRFVrVlVYMEZNVWtWQlJGbGZSVmhKVTFSVFhDSXNYRzRnSUNBZ0lDQWdJR0JUWldOeVpYUWdKSHRLVTA5T0xuTjBjbWx1WjJsbWVTaHViM0p0WVd4cGVtVmtUbUZ0WlNsOUpIdGNiaUFnSUNBZ0lDQWdJQ0IwWVhKblpYUldaWEp6YVc5dUlEOGdZQ0IyWlhKemFXOXVJQ1I3U2xOUFRpNXpkSEpwYm1kcFpua29kR0Z5WjJWMFZtVnljMmx2YmlsOVlDQTZJRndpWENKY2JpQWdJQ0FnSUNBZ2ZTQmhiSEpsWVdSNUlHVjRhWE4wYzJCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExtTnlaV0YwWlNoelpXTnlaWFFzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QjBhR2x6TG5CaGNuTmxSWEp5YjNJb1pYSnliM0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQndjbTkyYVdSbGNqb2dkR2hwY3k1d2NtOTJhV1JsY2l4Y2JpQWdJQ0FnSUc1aGJXVTZJRzV2Y20xaGJHbDZaV1JPWVcxbExGeHVJQ0FnSUNBZ2RtVnljMmx2YmpvZ2IzQjBhVzl1Y3k1MlpYSnphVzl1TEZ4dUlDQWdJQ0FnYldWMFlXUmhkR0U2SUh0Y2JpQWdJQ0FnSUNBZ1kzSmxZWFJsWkVGME9pQnViM2N1ZEc5SlUwOVRkSEpwYm1jb0tTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VtVmhaSE1zSUdSbFkzSjVjSFJ6TENCaGJtUWdaR1Z6WlhKcFlXeHBlbVZ6SUdGdUlHVnVZV0pzWldRZ2MyVmpjbVYwSUhKdmQxeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCUmRXVnlhV1Z6SUhSb1pTQnVaWGRsYzNRZ2JXRjBZMmhwYm1jZ1pXNWhZbXhsWkNCeWIzY2dLR0o1SUc1dmNtMWhiR2w2WldRZ2JtRnRaU0JoYm1Rc1hHNGdJQ0FxSUc5d2RHbHZibUZzYkhrc0lIWmxjbk5wYjI0cExDQnlaUzFrWlhKcGRtVnpJSFJvWlNCclpYa2dkWE5wYm1jZ2RHaGxJSEp2ZHlkeklITmhiSFFzSUdGdVpDQmtaV055ZVhCMGMxeHVJQ0FnS2lCMGFHVWdjR0Y1Ykc5aFpDNGdVbTkzY3lCaGNtVWdiM0prWlhKbFpDQmllU0JnZFhCa1lYUmxaRUYwSUVSRlUwTmdMQ0J6YnlCM2FHVnVJSE5sZG1WeVlXd2djbTkzYzF4dUlDQWdLaUJ6YUdGeVpTQmhJRzVoYldVZ2RHaGxJRzF2YzNRZ2NtVmpaVzUwYkhrZ2RYQmtZWFJsWkNCbGJtRmliR1ZrSUhKdmR5QnBjeUJ5WlhOdmJIWmxaRnh1SUNBZ0tpQmtaWFJsY20xcGJtbHpkR2xqWVd4c2VTNGdWR2hsSUhKbGNHOXphWFJ2Y25rZ1UwVk1SVU5VSUhKMWJuTWdhVzV6YVdSbElHRWdjSEpwYm1OcGNHRnNMV0p2ZFc1a1hHNGdJQ0FxSUhSeVlXNXpZV04wYVc5dUlDaHpaV1VnZTBCc2FXNXJJRTF2WkdWc1UyVmpjbVYwVTJWeWRtbGpaUzUzYVhSb2FXNVFjbWx1WTJsd1lXeFVjbUZ1YzJGamRHbHZibjBwT2x4dUlDQWdLaUJwZENCcWIybHVjeUJoYmlCcGJpMW1iR2xuYUhRZ1lIUnlZVzV6WVdOMGFXOXVURzlqYTJBZ2IyNGdkR2hsSUdOdmJuUmxlSFFnYjNJZ1ltVm5hVzV6SUc5dVpTeGNiaUFnSUNvZ1ltbHVaR2x1WnlCMGFHVWdZMjl1ZEdWNGRDZHpJSEJ5YVc1amFYQmhiQ0IwYnlCZ1lYQndMbkJ5YVc1amFYQmhiRjlwWkdBZ2IyNGdWSGx3WlU5U1RTQmhaR0Z3ZEdWeWMxeHVJQ0FnS2lCemJ5QnVZVzFsYzNCaFkyVWdVa3hUSUdGd2NHeHBaWE1nZEc4Z2RHaGxJSEpsWVdRdUlFMXBjM05wYm1jZ2NtOTNjeUIwYUhKdmQxeHVJQ0FnS2lCN1FHeHBibXNnVG05MFJtOTFibVJGY25KdmNuMDdJR1JsWTNKNWNIUnBiMjRnWVc1a0lFcFRUMDRnY0dGeWMyVWdabUZwYkhWeVpYTWdkR2h5YjNkY2JpQWdJQ29nWUVsdWRHVnlibUZzUlhKeWIzSmdMbHh1SUNBZ0tpQkFkR1Z0Y0d4aGRHVWdWQ0F0SUZSb1pTQnpaV055WlhRZ2NHRjViRzloWkNCMGVYQmxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UxTmxZM0psZEU1aGJXVWdmQ0JUWldOeVpYUlNaV1psY21WdVkyVjlJRzVoYldWUGNsSmxaaUF0SUZSb1pTQnpaV055WlhRZ2JtRnRaU0J2Y2lCeVpXWmxjbVZ1WTJVdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VW1WMGNtbGxkbVZUWldOeVpYUlBjSFJwYjI1emZTQmJiM0IwYVc5dWMxMGdMU0JQY0hScGIyNWhiQ0IyWlhKemFXOXVJR1pwYkhSbGNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0TllYbGlaVU52Ym5SbGVIUjFZV3hCY21kOUlHRnlaM01nTFNCUGNIUnBiMjVoYkNCMGNtRnBiR2x1WnlCa1pXTmhaaUJnUTI5dWRHVjRkR0FnWm05eWQyRnlaR1ZrSUhSdklIUm9aU0J5WlhCdmMybDBiM0o1TGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHhVUG4wZ1ZHaGxJR1JsWTNKNWNIUmxaQ0J3WVhsc2IyRmtMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdE9iM1JHYjNWdVpFVnljbTl5ZlNCWGFHVnVJRzV2SUdWdVlXSnNaV1FnYzJWamNtVjBJRzFoZEdOb1pYTWdkR2hsSUc1aGJXVXZkbVZ5YzJsdmJpNWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklISmxkSEpwWlhabFBGUWdaWGgwWlc1a2N5QlRaV055WlhSUVlYbHNiMkZrSUQwZ1UyVmpjbVYwVUdGNWJHOWhaRDRvWEc0Z0lDQWdibUZ0WlU5eVVtVm1PaUJUWldOeVpYUk9ZVzFsSUh3Z1UyVmpjbVYwVW1WbVpYSmxibU5sTEZ4dUlDQWdJRzl3ZEdsdmJuTTZJRkpsZEhKcFpYWmxVMlZqY21WMFQzQjBhVzl1Y3lBOUlIdDlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThWRDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIZ3NJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpY21WMGNtbGxkbVZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbkpsZEhKcFpYWmxLVHRjYmlBZ0lDQmpiMjV6ZENCdVlXMWxVM1J5SUQwZ2RIbHdaVzltSUc1aGJXVlBjbEpsWmlBOVBUMGdYQ0p6ZEhKcGJtZGNJaUEvSUc1aGJXVlBjbEpsWmlBNklHNWhiV1ZQY2xKbFppNXVZVzFsTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0dCU1pYUnlhV1YyYVc1bklITmxZM0psZENBa2UyNWhiV1ZUZEhKOVlDazdYRzVjYmlBZ0lDQnNaWFFnYm1GdFpUb2djM1J5YVc1bk8xeHVJQ0FnSUd4bGRDQjJaWEp6YVc5dU9pQnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JRzVoYldWUGNsSmxaaUE5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lDQWdibUZ0WlNBOUlHNWhiV1ZQY2xKbFpqdGNiaUFnSUNBZ0lIWmxjbk5wYjI0Z1BTQnZjSFJwYjI1ekxuWmxjbk5wYjI0N1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJRzVoYldVZ1BTQnVZVzFsVDNKU1pXWXVibUZ0WlR0Y2JpQWdJQ0FnSUhabGNuTnBiMjRnUFNCdVlXMWxUM0pTWldZdWRtVnljMmx2Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2RtRnNhV1JoZEdWVFpXTnlaWFJPWVcxbEtHNWhiV1VwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCMGFHbHpMbkJoY25ObFJYSnliM0lvWlhKeWIzSWdZWE1nUlhKeWIzSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUc1dmNtMWhiR2w2WldST1lXMWxJRDBnYm05eWJXRnNhWHBsVTJWamNtVjBUbUZ0WlNodVlXMWxLVHRjYmx4dUlDQWdJR3hsZENCamIyNWthWFJwYjI0Z1BTQkRiMjVrYVhScGIyNHVZWFIwY2p4VFpXTnlaWFErS0Z3aWJtRnRaVndpS1M1bGNTaHViM0p0WVd4cGVtVmtUbUZ0WlNrN1hHNWNiaUFnSUNCcFppQW9kbVZ5YzJsdmJpa2dlMXh1SUNBZ0lDQWdZMjl1WkdsMGFXOXVJRDBnWTI5dVpHbDBhVzl1TG1GdVpDaERiMjVrYVhScGIyNHVZWFIwY2p4VFpXTnlaWFErS0Z3aWRtVnljMmx2Ymx3aUtTNWxjU2gyWlhKemFXOXVLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1WkdsMGFXOXVJRDBnWTI5dVpHbDBhVzl1TG1GdVpDaERiMjVrYVhScGIyNHVZWFIwY2p4VFpXTnlaWFErS0Z3aVpXNWhZbXhsWkZ3aUtTNWxjU2gwY25WbEtTazdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1lYZGhhWFFnZEdocGN5NTNhWFJvYVc1UWNtbHVZMmx3WVd4VWNtRnVjMkZqZEdsdmJpaGpkSGdzSUNoc2IyTnJLU0E5UGx4dUlDQWdJQ0FnZEdocGN5NWpiR2xsYm5SY2JpQWdJQ0FnSUNBZ0xtOTJaWEp5YVdSbEtIc2dkSEpoYm5OaFkzUnBiMjVNYjJOck9pQnNiMk5ySUgwcFhHNGdJQ0FnSUNBZ0lDNXpaV3hsWTNRb0tWeHVJQ0FnSUNBZ0lDQXVkMmhsY21Vb1kyOXVaR2wwYVc5dUtWeHVJQ0FnSUNBZ0lDQXViM0prWlhKQ2VTaGJYQ0oxY0dSaGRHVmtRWFJjSWl3Z1QzSmtaWEpFYVhKbFkzUnBiMjR1UkZORFhTbGNiaUFnSUNBZ0lDQWdMbVY0WldOMWRHVW9MaTR1WTNSNFFYSm5jeWxjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdWNGFYTjBhVzVuSUQwZ2NtVnpkV3gwYzFzd1hUdGNibHh1SUNBZ0lHbG1JQ2doWlhocGMzUnBibWNwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLR0JUWldOeVpYUWdYQ0lrZTI1dmNtMWhiR2w2WldST1lXMWxmVndpSUc1dmRDQm1iM1Z1WkdBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1JsY21sMlpXUkxaWGtnUFNCaGQyRnBkQ0IwYUdsekxtTnllWEIwYjFObGNuWnBZMlV1WkdWeWFYWmxTMlY1Um5KdmJWTmxZM0psZENoY2JpQWdJQ0FnSUhSb2FYTXVZMjl1Wm1sbkxtdGxlVk5sWTNKbGRDQmhjeUJ6ZEhKcGJtY3NYRzRnSUNBZ0lDQmxlR2x6ZEdsdVp5NWxibU55ZVhCMGFXOXVQeTV6WVd4MFhHNGdJQ0FnS1R0Y2JpQWdJQ0JzWlhRZ1pHVmpjbmx3ZEdWa1ZtRnNkV1U2SUhOMGNtbHVaenRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWkdWamNubHdkR1ZrVm1Gc2RXVWdQU0JoZDJGcGRDQjBhR2x6TG1OeWVYQjBiMU5sY25acFkyVXVaR1ZqY25sd2RGQmhlV3h2WVdRb1hHNGdJQ0FnSUNBZ0lHVjRhWE4wYVc1bkxtVnVZM0o1Y0hSbFpGQmhlV3h2WVdRc1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTNKNWNIUnZVMlZ5ZG1salpTNWxlSFJ5WVdOMFMyVjVSbkp2YlVSbGNtbDJaV1JMWlhrb1pHVnlhWFpsWkV0bGVTa3VhMlY1WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1lFWmhhV3hsWkNCMGJ5QmtaV055ZVhCMElITmxZM0psZENCY0lpUjdibTl5YldGc2FYcGxaRTVoYldWOVhDSTZJQ1I3S0dWeWNtOXlJR0Z6SUVWeWNtOXlLUzV0WlhOellXZGxmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdiR1YwSUhCaGVXeHZZV1E2SUZObGNtbGhiR2w2WldSVFpXTnlaWFJRWVhsc2IyRmtPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0J3WVhsc2IyRmtJRDBnU2xOUFRpNXdZWEp6WlNoa1pXTnllWEIwWldSV1lXeDFaU2tnWVhNZ1UyVnlhV0ZzYVhwbFpGTmxZM0psZEZCaGVXeHZZV1E3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z4dUlDQWdJQ0FnSUNCZ1JtRnBiR1ZrSUhSdklHUmxjMlZ5YVdGc2FYcGxJSE5sWTNKbGRDQmNJaVI3Ym05eWJXRnNhWHBsWkU1aGJXVjlYQ0k2SUNSN0tHVnljbTl5SUdGeklFVnljbTl5S1M1dFpYTnpZV2RsZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJR1JsYzJWeWFXRnNhWHBsVTJWamNtVjBVR0Y1Ykc5aFpDaHdZWGxzYjJGa0tTQmhjeUJVTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJTZFc1eklHRWdjbVZ3YjNOcGRHOXllU0J2Y0dWeVlYUnBiMjRnYVc1emFXUmxJR0VnY0hKcGJtTnBjR0ZzTFdKdmRXNWtJSFJ5WVc1ellXTjBhVzl1WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRTFwY25KdmNuTWdZMjl5WlNkeklHQkFkSEpoYm5OaFkzUnBiMjVoYkNncFlDQndjbTk0ZVNCbWIzSWdjMmx1WjJ4bElISmxZV1J6T2lCeVpYVnpaWE5jYmlBZ0lDb2dkR2hsSUdCMGNtRnVjMkZqZEdsdmJreHZZMnRnSUdGc2NtVmhaSGtnWTJGamFHVmtJRzl1SUhSb1pTQmpiMjUwWlhoMElDaHVaWE4wWldRZ1kyRnNiQ2tzSUc5eVhHNGdJQ0FxSUhKbGMyOXNkbVZ6SUdFZ1puSmxjMmdnYkc5amF5Qm1iM0lnZEdobElITmxjblpwWTJVZ1kyeHBaVzUwSUhacFlTQmdjbVZ6YjJ4MlpWUnlZVzV6WVdOMGFXOXVURzlqYTJCY2JpQWdJQ29nWVc1a0lHTmhiR3h6SUdCaVpXZHBiaWhqYjI1MFpYaDBLV0FnTFNCM2FHbGphQ3dnYjI0Z1lTQlVlWEJsVDFKTklHRmtZWEIwWlhJc0lHSnBibVJ6SUhSb1pWeHVJQ0FnS2lCamIyNTBaWGgwSjNNZ2NISnBibU5wY0dGc0lIUnZJR0JoY0hBdWNISnBibU5wY0dGc1gybGtZQ0JtYjNJZ2RHaGxJRzVsZHlCMGNtRnVjMkZqZEdsdmJpNWNiaUFnSUNvZ1NXNWpjbVZ0Wlc1MGN5QjBhR1VnYkc5amF5QmtaWEIwYUNCbWIzSWdkR2hsSUdSMWNtRjBhVzl1SUc5bUlIUm9aU0J2Y0dWeVlYUnBiMjQ3SUc5dUlHWmhhV3gxY21Vc1hHNGdJQ0FxSUhKdmJHeHpJR0poWTJzZ1lXNWtJSHBsY205bGN5QjBhR1VnWkdWd2RHZ2dLSE5yYVhCd2FXNW5JR0VnY21Wa2RXNWtZVzUwSUhKdmJHeGlZV05ySUhkb1pXNGdZVzVjYmlBZ0lDb2dhVzV1WlhJZ1puSmhiV1VnWVd4eVpXRmtlU0JsYm1SbFpDQjBhR1VnZEhKaGJuTmhZM1JwYjI0cElHRnVaQ0J5WlhSb2NtOTNjeUIwYUdVZ2IzSnBaMmx1WVd4Y2JpQWdJQ29nWlhKeWIzSTdJRzl1SUhOMVkyTmxjM01zSUdOdmJXMXBkSE1nZDJobGJpQjBhR1VnYjNWMFpYSnRiM04wSUdaeVlXMWxJR052YlhCc1pYUmxjeTVjYmlBZ0lDb2dRSFJsYlhCc1lYUmxJRklnTFNCVWFHVWdiM0JsY21GMGFXOXVJSEpsYzNWc2RDQjBlWEJsTGx4dUlDQWdLaUJBY0dGeVlXMGdlME52Ym5SbGVIUjlJR052Ym5SbGVIUWdMU0JVYUdVZ2NtVnhkV1Z6ZENCamIyNTBaWGgwTENCallYSnllV2x1WnlCaGJua2dhVzR0Wm14cFoyaDBJSFJ5WVc1ellXTjBhVzl1SUd4dlkyc3VYRzRnSUNBcUlFQndZWEpoYlNCN1puVnVZM1JwYjI0b1EyOXVkR1Y0ZEV4dlkyc3BPaUJRY205dGFYTmxQRkkrZlNCdmNHVnlZWFJwYjI0Z0xTQlVhR1VnY21Wd2IzTnBkRzl5ZVNCdmNHVnlZWFJwYjI0Z2RHOGdjblZ1TENCeVpXTmxhWFpwYm1jZ2RHaGxJR0ZqZEdsMlpTQnNiMk5yTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHhTUG4wZ1ZHaGxJRzl3WlhKaGRHbHZiaUJ5WlhOMWJIUXVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwbHVkR1Z5Ym1Gc1JYSnliM0o5SUZkb1pXNGdkR2hsSUdacGJtRnNJR052YlcxcGRDQm1ZV2xzY3pzZ2IzQmxjbUYwYVc5dUlHVnljbTl5Y3lCaGNtVWdjbVYwYUhKdmQyNGdZV1owWlhJZ2NtOXNiR0poWTJzdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHRnplVzVqSUhkcGRHaHBibEJ5YVc1amFYQmhiRlJ5WVc1ellXTjBhVzl1UEZJK0tGeHVJQ0FnSUdOdmJuUmxlSFE2SUVOdmJuUmxlSFE4WVc1NVBpeGNiaUFnSUNCdmNHVnlZWFJwYjI0NklDaHNiMk5yT2lCRGIyNTBaWGgwVEc5amF5a2dQVDRnVUhKdmJXbHpaVHhTUGx4dUlDQXBPaUJRY205dGFYTmxQRkkrSUh0Y2JpQWdJQ0JqYjI1emRDQmxlR2x6ZEdsdVp5QTlJR052Ym5SbGVIUXVaMlYwVDNKVmJtUmxabWx1WldRb1hDSjBjbUZ1YzJGamRHbHZia3h2WTJ0Y0lpa2dZWE5jYmlBZ0lDQWdJSHdnUTI5dWRHVjRkRXh2WTJ0Y2JpQWdJQ0FnSUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUdOdmJuTjBJR3h2WTJzZ1BTQmxlR2x6ZEdsdVp5QS9QeUJ5WlhOdmJIWmxWSEpoYm5OaFkzUnBiMjVNYjJOcktIUm9hWE11WTJ4cFpXNTBLVHRjYmlBZ0lDQnNiMk5yTG1SbGNIUm9LeXM3WEc0Z0lDQWdhV1lnS0NGbGVHbHpkR2x1WnlrZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnYkc5amF5NWlaV2RwYmloamIyNTBaWGgwS1R0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1WTJGamFHVXVjSFYwS0Z3aWRISmhibk5oWTNScGIyNU1iMk5yWENJc0lHeHZZMnNwTzF4dUlDQWdJSDFjYmlBZ0lDQnNaWFFnY21WemRXeDBPaUJTTzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCeVpYTjFiSFFnUFNCaGQyRnBkQ0J2Y0dWeVlYUnBiMjRvYkc5amF5azdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0k2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR0ZzY21WaFpIbEZibVJsWkNBOUlHeHZZMnN1WkdWd2RHZ2dQVDA5SURBN1hHNGdJQ0FnSUNCc2IyTnJMbVJsY0hSb0lEMGdNRHRjYmlBZ0lDQWdJR2xtSUNnaFlXeHlaV0ZrZVVWdVpHVmtLU0I3WEc0Z0lDQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdiRzlqYXk1eWIyeHNZbUZqYXlobGNuSnZjaUJoY3lCRmNuSnZjaXdnWTI5dWRHVjRkQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0hKdmJHeGlZV05yUlhKeWIzSTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMmIybGtJSEp2Ykd4aVlXTnJSWEp5YjNJN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIUm9jbTkzSUdWeWNtOXlPMXh1SUNBZ0lIMWNiaUFnSUNCc2IyTnJMbVJsY0hSb0xTMDdYRzRnSUNBZ2FXWWdLR3h2WTJzdVpHVndkR2dnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lHRjNZV2wwSUd4dlkyc3VZMjl0YldsMEtHTnZiblJsZUhRcE8xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0k2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWUVaaGFXeGxaQ0IwYnlCamIyMXRhWFFnZEhKaGJuTmhZM1JwYjI0NklDUjdaWEp5YjNKOVlDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFUmxiR1YwWlhNZ0tHOXlJR1JwYzJGaWJHVnpLU0JoSUhObFkzSmxkQ0J5YjNkY2JpQWdJQ29nUUhOMWJXMWhjbmtnVTI5bWRDMWtaV3hsZEdWeklHSjVJR1JsWm1GMWJIUTZJSFJvWlNCeWIzY2dhWE1nWkdsellXSnNaV1FnWVc1a0lITjBZVzF3WldRZ2QybDBhQ0JoWEc0Z0lDQXFJRzVsZHlCZ2RYQmtZWFJsWkVGMFlDNGdWMmwwYUNCZ2IzQjBhVzl1Y3k1bWIzSmpaV0FzSUhSb1pTQnliM2NnYVhNZ2FHRnlaQzFrWld4bGRHVmtJR1p5YjIwZ2RHaGxYRzRnSUNBcUlISmxjRzl6YVhSdmNua3VJRkp2ZDNNZ1lYSmxJRzl5WkdWeVpXUWdZbmtnWUhWd1pHRjBaV1JCZENCRVJWTkRZQ3dnYzI4Z2RHaGxJRzF2YzNRZ2NtVmpaVzUwYkhsY2JpQWdJQ29nZFhCa1lYUmxaQ0J0WVhSamFHbHVaeUJ5YjNjZ2FYTWdjbVZ6YjJ4MlpXUWdaR1YwWlhKdGFXNXBjM1JwWTJGc2JIa3VJRUVnYldsemMybHVaeUJ6WldOeVpYUmNiaUFnSUNvZ2NtVnpiMngyWlhNZ2MybHNaVzUwYkhrdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VTJWamNtVjBUbUZ0WlNCOElGTmxZM0psZEZKbFptVnlaVzVqWlgwZ2JtRnRaVTl5VW1WbUlDMGdWR2hsSUhObFkzSmxkQ0J1WVcxbElHOXlJSEpsWm1WeVpXNWpaUzVjYmlBZ0lDb2dRSEJoY21GdElIdEVaV3hsZEdWVFpXTnlaWFJQY0hScGIyNXpmU0JiYjNCMGFXOXVjMTBnTFNCUGNIUnBiMjVoYkNCMlpYSnphVzl1SUdacGJIUmxjaUJoYm1RZ1lHWnZjbU5sWUNCb1lYSmtMV1JsYkdWMFpTQm1iR0ZuTGx4dUlDQWdLaUJBY0dGeVlXMGdlMDFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaMzBnWVhKbmN5QXRJRTl3ZEdsdmJtRnNJSFJ5WVdsc2FXNW5JR1JsWTJGbUlHQkRiMjUwWlhoMFlDQm1iM0ozWVhKa1pXUWdkRzhnZEdobElISmxjRzl6YVhSdmNua3VYRzRnSUNBcUlFQnlaWFIxY201eklIdFFjbTl0YVhObFBIWnZhV1ErZlNCU1pYTnZiSFpsY3lCdmJtTmxJSFJvWlNCeWIzY2dhWE1nWkdWc1pYUmxaQ0J2Y2lCa2FYTmhZbXhsWkM1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdSbGJHVjBaU2hjYmlBZ0lDQnVZVzFsVDNKU1pXWTZJRk5sWTNKbGRFNWhiV1VnZkNCVFpXTnlaWFJTWldabGNtVnVZMlVzWEc0Z0lDQWdiM0IwYVc5dWN6b2dSR1ZzWlhSbFUyVmpjbVYwVDNCMGFXOXVjeUE5SUh0OUxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6SUgwZ1BTQW9ZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSmtaV3hsZEdWY0lpd2dkSEoxWlNrcExtWnZjaWhjYmlBZ0lDQWdJSFJvYVhNdVpHVnNaWFJsWEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCdVlXMWxVM1J5SUQwZ2RIbHdaVzltSUc1aGJXVlBjbEpsWmlBOVBUMGdYQ0p6ZEhKcGJtZGNJaUEvSUc1aGJXVlBjbEpsWmlBNklHNWhiV1ZQY2xKbFppNXVZVzFsTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0dCRVpXeGxkR2x1WnlCelpXTnlaWFFnSkh0dVlXMWxVM1J5ZldBcE8xeHVYRzRnSUNBZ2JHVjBJRzVoYldVNklITjBjbWx1Wnp0Y2JseHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2JtRnRaVTl5VW1WbUlEMDlQU0JjSW5OMGNtbHVaMXdpS1NCN1hHNGdJQ0FnSUNCdVlXMWxJRDBnYm1GdFpVOXlVbVZtTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnVZVzFsSUQwZ2JtRnRaVTl5VW1WbUxtNWhiV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVTJWamNtVjBUbUZ0WlNodVlXMWxLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnZEdocGN5NXdZWEp6WlVWeWNtOXlLR1Z5Y205eUlHRnpJRVZ5Y205eUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J1YjNKdFlXeHBlbVZrVG1GdFpTQTlJRzV2Y20xaGJHbDZaVk5sWTNKbGRFNWhiV1VvYm1GdFpTazdYRzVjYmlBZ0lDQnNaWFFnWm1sc2RHVnlJRDBnUTI5dVpHbDBhVzl1TG1GMGRISThVMlZqY21WMFBpaGNJbTVoYldWY0lpa3VaWEVvYm05eWJXRnNhWHBsWkU1aGJXVXBPMXh1SUNBZ0lHTnZibk4wSUhabGNuTnBiMjRnUFNCdmNIUnBiMjV6TG5abGNuTnBiMjQ3WEc0Z0lDQWdhV1lnS0habGNuTnBiMjRwSUh0Y2JpQWdJQ0FnSUdacGJIUmxjaUE5SUdacGJIUmxjaTVoYm1Rb1EyOXVaR2wwYVc5dUxtRjBkSEk4VTJWamNtVjBQaWhjSW5abGNuTnBiMjVjSWlrdVpYRW9kbVZ5YzJsdmJpa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEZ4dUlDQWdJQ0FnTG5ObGJHVmpkQ2dwWEc0Z0lDQWdJQ0F1ZDJobGNtVW9abWxzZEdWeUtWeHVJQ0FnSUNBZ0xtOXlaR1Z5UW5rb1cxd2lkWEJrWVhSbFpFRjBYQ0lzSUU5eVpHVnlSR2x5WldOMGFXOXVMa1JUUTEwcFhHNGdJQ0FnSUNBdVpYaGxZM1YwWlNndUxpNWpkSGhCY21kektUdGNiaUFnSUNCamIyNXpkQ0JsZUdsemRHbHVaeUE5SUhKbGMzVnNkSE5iTUYwN1hHNWNiaUFnSUNCcFppQW9JV1Y0YVhOMGFXNW5LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzl3ZEdsdmJuTXVabTl5WTJVcElIdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExtUmxiR1YwWlNobGVHbHpkR2x1Wnk1cFpDd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHVjRhWE4wYVc1bkxtVnVZV0pzWldRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUdWNGFYTjBhVzVuTG5Wd1pHRjBaV1JCZENBOUlHNWxkeUJFWVhSbEtDazdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbU5zYVdWdWRDNTFjR1JoZEdVb1pYaHBjM1JwYm1jc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyaGxZMnR6SUhkb1pYUm9aWElnWVc0Z1pXNWhZbXhsWkNCelpXTnlaWFFnWlhocGMzUnpJQ2h2Y0hScGIyNWhiR3g1SUdGMElHRWdkbVZ5YzJsdmJpbGNiaUFnSUNvZ1FITjFiVzFoY25rZ1EyOTFiblJ6SUdWdVlXSnNaV1FnY205M2N5QnRZWFJqYUdsdVp5QjBhR1VnYm05eWJXRnNhWHBsWkNCdVlXMWxJQ2h3YkhWeklHRnVlVnh1SUNBZ0tpQnlaWEYxWlhOMFpXUWdkbVZ5YzJsdmJpa2dZVzVrSUhKbGRIVnlibk1nZDJobGRHaGxjaUIwYUdVZ1kyOTFiblFnYVhNZ2NHOXphWFJwZG1VdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VTJWamNtVjBUbUZ0WlNCOElGTmxZM0psZEZKbFptVnlaVzVqWlgwZ2JtRnRaVTl5VW1WbUlDMGdWR2hsSUhObFkzSmxkQ0J1WVcxbElHOXlJSEpsWm1WeVpXNWpaUzVjYmlBZ0lDb2dRSEJoY21GdElIdEZlR2x6ZEhOVFpXTnlaWFJQY0hScGIyNXpmU0JiYjNCMGFXOXVjMTBnTFNCUGNIUnBiMjVoYkNCMlpYSnphVzl1SUdacGJIUmxjaTVjYmlBZ0lDb2dRSEJoY21GdElIdE5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtZDlJR0Z5WjNNZ0xTQlBjSFJwYjI1aGJDQjBjbUZwYkdsdVp5QmtaV05oWmlCZ1EyOXVkR1Y0ZEdBZ1ptOXlkMkZ5WkdWa0lIUnZJSFJvWlNCeVpYQnZjMmwwYjNKNUxseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4aWIyOXNaV0Z1UG4wZ1lIUnlkV1ZnSUhkb1pXNGdZWFFnYkdWaGMzUWdiMjVsSUdWdVlXSnNaV1FnY205M0lHMWhkR05vWlhNdVhHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCbGVHbHpkSE1vWEc0Z0lDQWdibUZ0WlU5eVVtVm1PaUJUWldOeVpYUk9ZVzFsSUh3Z1UyVmpjbVYwVW1WbVpYSmxibU5sTEZ4dUlDQWdJRzl3ZEdsdmJuTTZJRVY0YVhOMGMxTmxZM0psZEU5d2RHbHZibk1nUFNCN2ZTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBHSnZiMnhsWVc0K0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWlhocGMzUnpYQ0lzSUhSeWRXVXBLUzVtYjNJb1hHNGdJQ0FnSUNCMGFHbHpMbVY0YVhOMGMxeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdibUZ0WlZOMGNpQTlJSFI1Y0dWdlppQnVZVzFsVDNKU1pXWWdQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QnVZVzFsVDNKU1pXWWdPaUJ1WVcxbFQzSlNaV1l1Ym1GdFpUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdRMmhsWTJ0cGJtY2dhV1lnYzJWamNtVjBJQ1I3Ym1GdFpWTjBjbjBnWlhocGMzUnpZQ2s3WEc1Y2JpQWdJQ0JzWlhRZ2JtRnRaVG9nYzNSeWFXNW5PMXh1WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ1WVcxbFQzSlNaV1lnUFQwOUlGd2ljM1J5YVc1blhDSXBJSHRjYmlBZ0lDQWdJRzVoYldVZ1BTQnVZVzFsVDNKU1pXWTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUc1aGJXVWdQU0J1WVcxbFQzSlNaV1l1Ym1GdFpUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRaV055WlhST1lXMWxLRzVoYldVcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QjBhR2x6TG5CaGNuTmxSWEp5YjNJb1pYSnliM0lnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHNXZjbTFoYkdsNlpXUk9ZVzFsSUQwZ2JtOXliV0ZzYVhwbFUyVmpjbVYwVG1GdFpTaHVZVzFsS1R0Y2JseHVJQ0FnSUd4bGRDQm1hV3gwWlhJZ1BTQkRiMjVrYVhScGIyNHVZWFIwY2p4VFpXTnlaWFErS0Z3aWJtRnRaVndpS1M1bGNTaHViM0p0WVd4cGVtVmtUbUZ0WlNrN1hHNGdJQ0FnWm1sc2RHVnlJRDBnWm1sc2RHVnlMbUZ1WkNoRGIyNWthWFJwYjI0dVlYUjBjanhUWldOeVpYUStLRndpWlc1aFlteGxaRndpS1M1bGNTaDBjblZsS1NrN1hHNWNiaUFnSUNCamIyNXpkQ0IyWlhKemFXOXVJRDFjYmlBZ0lDQWdJRzl3ZEdsdmJuTXVkbVZ5YzJsdmJpQS9QMXh1SUNBZ0lDQWdLSFI1Y0dWdlppQnVZVzFsVDNKU1pXWWdQVDA5SUZ3aWIySnFaV04wWENJZ1B5QnVZVzFsVDNKU1pXWXVkbVZ5YzJsdmJpQTZJSFZ1WkdWbWFXNWxaQ2s3WEc0Z0lDQWdhV1lnS0habGNuTnBiMjRwSUh0Y2JpQWdJQ0FnSUdacGJIUmxjaUE5SUdacGJIUmxjaTVoYm1Rb1EyOXVaR2wwYVc5dUxtRjBkSEk4VTJWamNtVjBQaWhjSW5abGNuTnBiMjVjSWlrdVpYRW9kbVZ5YzJsdmJpa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdOdmRXNTBJRDBnWVhkaGFYUWdkR2hwY3k1amJHbGxiblF1WTI5MWJuUW9LUzUzYUdWeVpTaG1hV3gwWlhJcExtVjRaV04xZEdVb0xpNHVZM1I0UVhKbmN5azdYRzVjYmlBZ0lDQnlaWFIxY200Z1kyOTFiblFnUGlBd08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTWFYTjBjeUJ6WldOeVpYUWdiV1YwWVdSaGRHRWdZV055YjNOeklITjBiM0psWkNCeWIzZHpYRzRnSUNBcUlFQnpkVzF0WVhKNUlGTmxiR1ZqZEhNZ2NtOTNjeUJtYVd4MFpYSmxaQ0JpZVNCMGFHVWdZR1Z1WVdKc1pXUmdJR1pzWVdjZ0tIZG9aVzRnYzNWd2NHeHBaV1FwSUdGdVpGeHVJQ0FnS2lCdFlYQnpJSFJvWlcwZ2RHOGdZRk5sWTNKbGRFMWxkR0ZrWVhSaFlDQnlaV052Y21SeklDaHVieUJ3WVhsc2IyRmtjeWt1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUR2x6ZEZObFkzSmxkSE5QY0hScGIyNXpmU0JiYjNCMGFXOXVjMTBnTFNCUGNIUnBiMjVoYkNCZ1pXNWhZbXhsWkdBZ1ptbHNkR1Z5TGx4dUlDQWdLaUJBY0dGeVlXMGdlMDFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaMzBnWVhKbmN5QXRJRTl3ZEdsdmJtRnNJSFJ5WVdsc2FXNW5JR1JsWTJGbUlHQkRiMjUwWlhoMFlDQm1iM0ozWVhKa1pXUWdkRzhnZEdobElISmxjRzl6YVhSdmNua3VYRzRnSUNBcUlFQnlaWFIxY201eklIdFFjbTl0YVhObFBGTmxZM0psZEUxbGRHRmtZWFJoVzEwK2ZTQk5aWFJoWkdGMFlTQm1iM0lnWlhabGNua2diV0YwWTJocGJtY2djMlZqY21WMExseHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ2JHbHpkQ2hjYmlBZ0lDQnZjSFJwYjI1ek9pQk1hWE4wVTJWamNtVjBjMDl3ZEdsdmJuTWdQU0I3ZlN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEZObFkzSmxkRTFsZEdGa1lYUmhXMTArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRRWEpuY3lCOUlEMGdLR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2liR2x6ZEZ3aUxDQjBjblZsS1NrdVptOXlLRnh1SUNBZ0lDQWdkR2hwY3k1c2FYTjBYRzRnSUNBZ0tUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGNJa3hwYzNScGJtY2djMlZqY21WMGMxd2lLVHRjYmx4dUlDQWdJR3hsZENCamIyNWthWFJwYjI0NklFTnZibVJwZEdsdmJqeFRaV055WlhRK0lId2diblZzYkNBOUlHNTFiR3c3WEc1Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1bGJtRmliR1ZrSUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJR052Ym1ScGRHbHZiaUE5SUVOdmJtUnBkR2x2Ymk1aGRIUnlQRk5sWTNKbGRENG9YQ0psYm1GaWJHVmtYQ0lwTG1WeEtHOXdkR2x2Ym5NdVpXNWhZbXhsWkNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjMlZqY21WMGN6b2dVMlZqY21WMFcxMGdQU0JoZDJGcGRDQjBhR2x6TG1Oc2FXVnVkRnh1SUNBZ0lDQWdMbk5sYkdWamRDZ3BYRzRnSUNBZ0lDQXVkMmhsY21Vb1kyOXVaR2wwYVc5dUlIeDhJRU52Ym1ScGRHbHZiaTVoZEhSeVBGTmxZM0psZEQ0b1hDSnVZVzFsWENJcExtUnBaaWh1ZFd4c0tTbGNiaUFnSUNBZ0lDNWxlR1ZqZFhSbEtDNHVMbU4wZUVGeVozTXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlITmxZM0psZEhNdWJXRndLQ2h6WldOeVpYUTZJRk5sWTNKbGRDa2dQVDRnS0h0Y2JpQWdJQ0FnSUhCeWIzWnBaR1Z5T2lCelpXTnlaWFF1Y0hKdmRtbGtaWElnWVhNZ1UyVmpjbVYwVUhKdmRtbGtaWElzWEc0Z0lDQWdJQ0J1WVcxbE9pQnpaV055WlhRdWJtRnRaU3hjYmlBZ0lDQWdJSFpsY25OcGIyNDZJSE5sWTNKbGRDNTJaWEp6YVc5dUxGeHVJQ0FnSUNBZ1kzSmxZWFJsWkVGME9pQnpaV055WlhRdVkzSmxZWFJsWkVGMExGeHVJQ0FnSUNBZ2RYQmtZWFJsWkVGME9pQnpaV055WlhRdWRYQmtZWFJsWkVGMExGeHVJQ0FnSUNBZ1pXNWhZbXhsWkRvZ2MyVmpjbVYwTG1WdVlXSnNaV1FzWEc0Z0lDQWdJQ0JqYjI1MFpXNTBWSGx3WlRvZ2MyVmpjbVYwTG1OdmJuUmxiblJVZVhCbExGeHVJQ0FnSUNBZ2RHRm5jem9nYzJWamNtVjBMblJoWjNNc1hHNGdJQ0FnZlNrcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCU1pXRmtjeUJ2Ym1VZ2MyVmpjbVYwSjNNZ2JXVjBZV1JoZEdFZ2QybDBhRzkxZENCcGRITWdjR0Y1Ykc5aFpGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVFpXeGxZM1J6SUhSb1pTQnliM2NnYldGMFkyaHBibWNnZEdobElHNXZjbTFoYkdsNlpXUWdibUZ0WlNBb1lXNWtJRzl3ZEdsdmJtRnNYRzRnSUNBcUlIWmxjbk5wYjI0cElHRnVaQ0J0WVhCeklHbDBJSFJ2SUdCVFpXTnlaWFJOWlhSaFpHRjBZV0E3SUhSaFozTWdZWEpsSUdsdVkyeDFaR1ZrSUc5dWJIa2dkMmhsYmx4dUlDQWdLaUJnYjNCMGFXOXVjeTVwYm1Oc2RXUmxWR0ZuYzJBZ2FYTWdjMlYwTGlCU2IzZHpJR0Z5WlNCdmNtUmxjbVZrSUdKNUlHQjFjR1JoZEdWa1FYUWdSRVZUUTJBc0lITnZYRzRnSUNBcUlIUm9aU0J0YjNOMElISmxZMlZ1ZEd4NUlIVndaR0YwWldRZ2JXRjBZMmhwYm1jZ2NtOTNJR2x6SUhKbGMyOXNkbVZrSUdSbGRHVnliV2x1YVhOMGFXTmhiR3g1TGx4dUlDQWdLaUJTWlhSMWNtNXpJR0IxYm1SbFptbHVaV1JnSUhkb1pXNGdibThnY205M0lHMWhkR05vWlhNdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VTJWamNtVjBUbUZ0WlNCOElGTmxZM0psZEZKbFptVnlaVzVqWlgwZ2JtRnRaVTl5VW1WbUlDMGdWR2hsSUhObFkzSmxkQ0J1WVcxbElHOXlJSEpsWm1WeVpXNWpaUzVjYmlBZ0lDb2dRSEJoY21GdElIdFRaV055WlhSTlpYUmhaR0YwWVU5d2RHbHZibk45SUZ0dmNIUnBiMjV6WFNBdElFOXdkR2x2Ym1Gc0lIWmxjbk5wYjI0Z1ptbHNkR1Z5SUdGdVpDQmdhVzVqYkhWa1pWUmhaM05nSUdac1lXY3VYRzRnSUNBcUlFQndZWEpoYlNCN1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKbmZTQmhjbWR6SUMwZ1QzQjBhVzl1WVd3Z2RISmhhV3hwYm1jZ1pHVmpZV1lnWUVOdmJuUmxlSFJnSUdadmNuZGhjbVJsWkNCMGJ5QjBhR1VnY21Wd2IzTnBkRzl5ZVM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4VTJWamNtVjBUV1YwWVdSaGRHRWdmQ0IxYm1SbFptbHVaV1ErZlNCVWFHVWdiV1YwWVdSaGRHRXNJRzl5SUdCMWJtUmxabWx1WldSZ0lIZG9aVzRnWVdKelpXNTBMbHh1SUNBZ0tpOWNiaUFnWVhONWJtTWdiV1YwWVdSaGRHRW9YRzRnSUNBZ2JtRnRaVTl5VW1WbU9pQlRaV055WlhST1lXMWxJSHdnVTJWamNtVjBVbVZtWlhKbGJtTmxMRnh1SUNBZ0lHOXdkR2x2Ym5NNklGTmxZM0psZEUxbGRHRmtZWFJoVDNCMGFXOXVjeUE5SUh0OUxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOFUyVmpjbVYwVFdWMFlXUmhkR0VnZkNCMWJtUmxabWx1WldRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpYldWMFlXUmhkR0ZjSWl3Z2RISjFaU2twTG1admNpaGNiaUFnSUNBZ0lIUm9hWE11YldWMFlXUmhkR0ZjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUc1aGJXVlRkSElnUFNCMGVYQmxiMllnYm1GdFpVOXlVbVZtSUQwOVBTQmNJbk4wY21sdVoxd2lJRDhnYm1GdFpVOXlVbVZtSURvZ2JtRnRaVTl5VW1WbUxtNWhiV1U3WEc0Z0lDQWdiRzluTG5abGNtSnZjMlVvWUVkbGRIUnBibWNnYldWMFlXUmhkR0VnWm05eUlITmxZM0psZENBa2UyNWhiV1ZUZEhKOVlDazdYRzVjYmlBZ0lDQnNaWFFnYm1GdFpUb2djM1J5YVc1bk8xeHVYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQnVZVzFsVDNKU1pXWWdQVDA5SUZ3aWMzUnlhVzVuWENJcElIdGNiaUFnSUNBZ0lHNWhiV1VnUFNCdVlXMWxUM0pTWldZN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJRzVoYldVZ1BTQnVZVzFsVDNKU1pXWXVibUZ0WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2RtRnNhV1JoZEdWVFpXTnlaWFJPWVcxbEtHNWhiV1VwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCMGFHbHpMbkJoY25ObFJYSnliM0lvWlhKeWIzSWdZWE1nUlhKeWIzSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUc1dmNtMWhiR2w2WldST1lXMWxJRDBnYm05eWJXRnNhWHBsVTJWamNtVjBUbUZ0WlNodVlXMWxLVHRjYmx4dUlDQWdJR3hsZENCbWFXeDBaWElnUFNCRGIyNWthWFJwYjI0dVlYUjBjanhUWldOeVpYUStLRndpYm1GdFpWd2lLUzVsY1NodWIzSnRZV3hwZW1Wa1RtRnRaU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQjJaWEp6YVc5dUlEMWNiaUFnSUNBZ0lHOXdkR2x2Ym5NdWRtVnljMmx2YmlBL1AxeHVJQ0FnSUNBZ0tIUjVjR1Z2WmlCdVlXMWxUM0pTWldZZ1BUMDlJRndpYjJKcVpXTjBYQ0lnUHlCdVlXMWxUM0pTWldZdWRtVnljMmx2YmlBNklIVnVaR1ZtYVc1bFpDazdYRzRnSUNBZ2FXWWdLSFpsY25OcGIyNHBJSHRjYmlBZ0lDQWdJR1pwYkhSbGNpQTlJR1pwYkhSbGNpNWhibVFvUTI5dVpHbDBhVzl1TG1GMGRISThVMlZqY21WMFBpaGNJblpsY25OcGIyNWNJaWt1WlhFb2RtVnljMmx2YmlrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSEpsYzNWc2RITTZJRk5sWTNKbGRGdGRJRDBnWVhkaGFYUWdkR2hwY3k1amJHbGxiblJjYmlBZ0lDQWdJQzV6Wld4bFkzUW9LVnh1SUNBZ0lDQWdMbmRvWlhKbEtHWnBiSFJsY2lsY2JpQWdJQ0FnSUM1dmNtUmxja0o1S0Z0Y0luVndaR0YwWldSQmRGd2lMQ0JQY21SbGNrUnBjbVZqZEdsdmJpNUVVME5kS1Z4dUlDQWdJQ0FnTG1WNFpXTjFkR1VvTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnWTI5dWMzUWdjMlZqY21WMElEMGdjbVZ6ZFd4MGMxc3dYVHRjYmx4dUlDQWdJR2xtSUNnaGMyVmpjbVYwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHMWxkR0U2SUZObFkzSmxkRTFsZEdGa1lYUmhJRDBnZTF4dUlDQWdJQ0FnY0hKdmRtbGtaWEk2SUhObFkzSmxkQzV3Y205MmFXUmxjaUJoY3lCVFpXTnlaWFJRY205MmFXUmxjaXhjYmlBZ0lDQWdJRzVoYldVNklITmxZM0psZEM1dVlXMWxMRnh1SUNBZ0lDQWdkbVZ5YzJsdmJqb2djMlZqY21WMExuWmxjbk5wYjI0c1hHNGdJQ0FnSUNCamNtVmhkR1ZrUVhRNklITmxZM0psZEM1amNtVmhkR1ZrUVhRc1hHNGdJQ0FnSUNCMWNHUmhkR1ZrUVhRNklITmxZM0psZEM1MWNHUmhkR1ZrUVhRc1hHNGdJQ0FnSUNCbGJtRmliR1ZrT2lCelpXTnlaWFF1Wlc1aFlteGxaQ3hjYmlBZ0lDQWdJR052Ym5SbGJuUlVlWEJsT2lCelpXTnlaWFF1WTI5dWRHVnVkRlI1Y0dVc1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUdsbUlDaHZjSFJwYjI1ekxtbHVZMngxWkdWVVlXZHpLU0I3WEc0Z0lDQWdJQ0J0WlhSaExuUmhaM01nUFNCelpXTnlaWFF1ZEdGbmN6dGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYldWMFlUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VtVXRaVzVqY25sd2RITWdZVzRnWlc1aFlteGxaQ0J6WldOeVpYUWdjbTkzSUhkcGRHZ2dZU0J1WlhjZ2NHRjViRzloWkZ4dUlDQWdLaUJBYzNWdGJXRnllU0JNYjJOaGRHVnpJSFJvWlNCbGJtRmliR1ZrSUhKdmR5QW9iM0IwYVc5dVlXeHNlU0J3YVc1dVpXUWdkRzljYmlBZ0lDb2dZRzl3ZEdsdmJuTXViMnhrVm1WeWMybHZibUFwTENCbGJtTnllWEIwY3lCMGFHVWdibVYzSUhCaGVXeHZZV1FnZDJsMGFDQmhJR1p5WlhOb2JIa2daR1Z5YVhabFpGeHVJQ0FnS2lCclpYa2dLRzl3ZEdsdmJtRnNiSGtnZEdGbloyVmtJSGRwZEdnZ1lHOXdkR2x2Ym5NdWEyVjVTV1JnS1N3Z1lXNWtJSFZ3WkdGMFpYTWdkR2hsSUhKdmR5ZHpYRzRnSUNBcUlIQmhlV3h2WVdRc0lHVnVZM0o1Y0hScGIyNGdiV1YwWVdSaGRHRXNJSFpsY25OcGIyNGdLR0J2Y0hScGIyNXpMbTVsZDFabGNuTnBiMjVnS1N3Z1lXNWtYRzRnSUNBcUlHQjFjR1JoZEdWa1FYUmdMaUJYYUdWdUlHQnZjSFJwYjI1ekxtNWxkMVpsY25OcGIyNWdJR1JwWm1abGNuTWdabkp2YlNCMGFHVWdjbTkzSjNNZ1kzVnljbVZ1ZEZ4dUlDQWdLaUIyWlhKemFXOXVMQ0JoSUdBb2JtRnRaU3dnZG1WeWMybHZiaWxnSUdSMWNHeHBZMkYwWlNCamFHVmpheUJ5WldwbFkzUnpJSFJvWlNCeWIzUmhkR2x2YmlCM2FYUm9JR0ZjYmlBZ0lDb2dZRk5GUTFKRlZGOUJURkpGUVVSWlgwVllTVk5VVTJBZ2UwQnNhVzVySUZObFkzSmxkRVZ5Y205eWZUc2diM1JvWlhKM2FYTmxJSFJvWlNCMFlYSm5aWFFnZG1WeWMybHZibHh1SUNBZ0tpQnBjeUJ5WlhWelpXUWdZVzVrSUhSb1pTQnliM2NnYVhNZ2RYQmtZWFJsWkNCcGJpQndiR0ZqWlM0Z1RXRjBZMmhwYm1jZ2NtOTNjeUJoY21VZ2IzSmtaWEpsWkNCaWVWeHVJQ0FnS2lCZ2RYQmtZWFJsWkVGMElFUkZVME5nTENCemJ5QjBhR1VnYlc5emRDQnlaV05sYm5Sc2VTQjFjR1JoZEdWa0lHVnVZV0pzWldRZ2NtOTNJR2x6SUhKbGMyOXNkbVZrWEc0Z0lDQXFJR1JsZEdWeWJXbHVhWE4wYVdOaGJHeDVMbHh1SUNBZ0tpQkFkR1Z0Y0d4aGRHVWdWQ0F0SUZSb1pTQnpaV055WlhRZ2NHRjViRzloWkNCMGVYQmxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UxTmxZM0psZEU1aGJXVWdmQ0JUWldOeVpYUlNaV1psY21WdVkyVjlJRzVoYldWUGNsSmxaaUF0SUZSb1pTQnpaV055WlhRZ2JtRnRaU0J2Y2lCeVpXWmxjbVZ1WTJVdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VkgwZ2RtRnNkV1VnTFNCVWFHVWdibVYzSUhCaGVXeHZZV1F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdVbTkwWVhSbFUyVmpjbVYwVDNCMGFXOXVjMzBnVzI5d2RHbHZibk5kSUMwZ1QzQjBhVzl1WVd3Z1lHNWxkMVpsY25OcGIyNWdMQ0JnYjJ4a1ZtVnljMmx2Ym1Bc0lHRnVaQ0JnYTJWNVNXUmdMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwMWhlV0psUTI5dWRHVjRkSFZoYkVGeVozMGdZWEpuY3lBdElFOXdkR2x2Ym1Gc0lIUnlZV2xzYVc1bklHUmxZMkZtSUdCRGIyNTBaWGgwWUNCbWIzSjNZWEprWldRZ2RHOGdkR2hsSUhKbGNHOXphWFJ2Y25rdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sUEZObFkzSmxkRkpsWm1WeVpXNWpaVDU5SUVFZ2NtVm1aWEpsYm1ObElISmxabXhsWTNScGJtY2dkR2hsSUhWd1pHRjBaV1FnY205M0xseHVJQ0FnS2lCQWRHaHliM2R6SUh0T2IzUkdiM1Z1WkVWeWNtOXlmU0JYYUdWdUlHNXZJR1Z1WVdKc1pXUWdjMlZqY21WMElHMWhkR05vWlhNZ2RHaGxJRzVoYldVdmRtVnljMmx2Ymk1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3VTJWamNtVjBSWEp5YjNKOUlHQlRSVU5TUlZSZlFVeFNSVUZFV1Y5RldFbFRWRk5nSUhkb1pXNGdkR2hsSUhSaGNtZGxkQ0JnYm1WM1ZtVnljMmx2Ym1BZ2FYTWdZV3h5WldGa2VTQm9aV3hrSUdKNUlHRnViM1JvWlhJZ2NtOTNJSGRwZEdnZ2RHaGxJSE5oYldVZ2JtOXliV0ZzYVhwbFpDQnVZVzFsTENCdmNpQmdVMFZEVWtWVVgxQlNUMVpKUkVWU1gwTlBUa1pNU1VOVVlDQjNhR1Z1SUhSb1pTQnlaWEJ2YzJsMGIzSjVJSFZ3WkdGMFpTQm1ZV2xzY3k1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUhKdmRHRjBaVHhVSUdWNGRHVnVaSE1nVTJWamNtVjBVR0Y1Ykc5aFpDQTlJRk5sWTNKbGRGQmhlV3h2WVdRK0tGeHVJQ0FnSUc1aGJXVlBjbEpsWmpvZ1UyVmpjbVYwVG1GdFpTQjhJRk5sWTNKbGRGSmxabVZ5Wlc1alpTeGNiaUFnSUNCMllXeDFaVG9nVkN4Y2JpQWdJQ0J2Y0hScGIyNXpPaUJTYjNSaGRHVlRaV055WlhSUGNIUnBiMjV6SUQwZ2UzMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeFRaV055WlhSU1pXWmxjbVZ1WTJVK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpY205MFlYUmxYQ0lzSUhSeWRXVXBLUzVtYjNJb1hHNGdJQ0FnSUNCMGFHbHpMbkp2ZEdGMFpWeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdibUZ0WlZOMGNpQTlJSFI1Y0dWdlppQnVZVzFsVDNKU1pXWWdQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QnVZVzFsVDNKU1pXWWdPaUJ1WVcxbFQzSlNaV1l1Ym1GdFpUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdVbTkwWVhScGJtY2djMlZqY21WMElDUjdibUZ0WlZOMGNuMWdLVHRjYmx4dUlDQWdJR052Ym5OMElHNXZjbTFoYkdsNlpXUk9ZVzFsSUQwZ2JtOXliV0ZzYVhwbFUyVmpjbVYwVG1GdFpTaHVZVzFsVTNSeUtUdGNiaUFnSUNCc1pYUWdZMjl1WkdsMGFXOXVJRDBnUTI5dVpHbDBhVzl1TG1GMGRISThVMlZqY21WMFBpaGNJbTVoYldWY0lpa3VaWEVvYm05eWJXRnNhWHBsWkU1aGJXVXBPMXh1SUNBZ0lHTnZibVJwZEdsdmJpQTlJR052Ym1ScGRHbHZiaTVoYm1Rb1EyOXVaR2wwYVc5dUxtRjBkSEk4VTJWamNtVjBQaWhjSW1WdVlXSnNaV1JjSWlrdVpYRW9kSEoxWlNrcE8xeHVYRzRnSUNBZ1kyOXVjM1FnZG1WeWMybHZiaUE5WEc0Z0lDQWdJQ0J2Y0hScGIyNXpMbTlzWkZabGNuTnBiMjRnUHo5Y2JpQWdJQ0FnSUNoMGVYQmxiMllnYm1GdFpVOXlVbVZtSUQwOVBTQmNJbTlpYW1WamRGd2lJRDhnYm1GdFpVOXlVbVZtTG5abGNuTnBiMjRnT2lCMWJtUmxabWx1WldRcE8xeHVJQ0FnSUdsbUlDaDJaWEp6YVc5dUtTQjdYRzRnSUNBZ0lDQmpiMjVrYVhScGIyNGdQU0JqYjI1a2FYUnBiMjR1WVc1a0tFTnZibVJwZEdsdmJpNWhkSFJ5UEZObFkzSmxkRDRvWENKMlpYSnphVzl1WENJcExtVnhLSFpsY25OcGIyNHBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5SY2JpQWdJQ0FnSUM1elpXeGxZM1FvS1Z4dUlDQWdJQ0FnTG5kb1pYSmxLR052Ym1ScGRHbHZiaWxjYmlBZ0lDQWdJQzV2Y21SbGNrSjVLRnRjSW5Wd1pHRjBaV1JCZEZ3aUxDQlBjbVJsY2tScGNtVmpkR2x2Ymk1RVUwTmRLVnh1SUNBZ0lDQWdMbVY0WldOMWRHVW9MaTR1WTNSNFFYSm5jeWs3WEc0Z0lDQWdZMjl1YzNRZ1pYaHBjM1JwYm1jZ1BTQnlaWE4xYkhSeld6QmRPMXh1WEc0Z0lDQWdhV1lnS0NGbGVHbHpkR2x1WnlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvWUZObFkzSmxkQ0JjSWlSN2JtOXliV0ZzYVhwbFpFNWhiV1Y5WENJZ2JtOTBJR1p2ZFc1a1lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYm1WNGRGWmxjbk5wYjI0Z1BTQnZjSFJwYjI1ekxtNWxkMVpsY25OcGIyNGdQejhnWlhocGMzUnBibWN1ZG1WeWMybHZianRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJXWlhKemFXOXVJRDBnYm1WNGRGWmxjbk5wYjI0Z1B6OGdYQ0pjSWp0Y2JpQWdJQ0JwWmlBb2RHRnlaMlYwVm1WeWMybHZiaUFoUFQwZ0tHVjRhWE4wYVc1bkxuWmxjbk5wYjI0Z1B6OGdYQ0pjSWlrcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhKdmQzTWdQU0JoZDJGcGRDQjBhR2x6TG1Oc2FXVnVkRnh1SUNBZ0lDQWdJQ0F1YzJWc1pXTjBLQ2xjYmlBZ0lDQWdJQ0FnTG5kb1pYSmxLRU52Ym1ScGRHbHZiaTVoZEhSeVBGTmxZM0psZEQ0b1hDSnVZVzFsWENJcExtVnhLRzV2Y20xaGJHbDZaV1JPWVcxbEtTbGNiaUFnSUNBZ0lDQWdMbVY0WldOMWRHVW9MaTR1WTNSNFFYSm5jeWs3WEc0Z0lDQWdJQ0JqYjI1emRDQmtkWEJzYVdOaGRHVWdQU0J5YjNkekxuTnZiV1VvWEc0Z0lDQWdJQ0FnSUNoeWIzYzZJRk5sWTNKbGRDa2dQVDVjYmlBZ0lDQWdJQ0FnSUNCeWIzY3VhV1FnSVQwOUlHVjRhWE4wYVc1bkxtbGtJQ1ltSUNoeWIzY3VkbVZ5YzJsdmJpQS9QeUJjSWx3aUtTQTlQVDBnZEdGeVoyVjBWbVZ5YzJsdmJseHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHbG1JQ2hrZFhCc2FXTmhkR1VwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGTmxZM0psZEVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0FnSUZ3aVUwVkRVa1ZVWDBGTVVrVkJSRmxmUlZoSlUxUlRYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ1lGTmxZM0psZENBa2UwcFRUMDR1YzNSeWFXNW5hV1o1S0c1dmNtMWhiR2w2WldST1lXMWxLWDBrZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR0Z5WjJWMFZtVnljMmx2YmlBL0lHQWdkbVZ5YzJsdmJpQWtlMHBUVDA0dWMzUnlhVzVuYVdaNUtIUmhjbWRsZEZabGNuTnBiMjRwZldBZ09pQmNJbHdpWEc0Z0lDQWdJQ0FnSUNBZ2ZTQmhiSEpsWVdSNUlHVjRhWE4wYzJCY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J6WlhKcFlXeHBlbVZrSUQwZ2MyVnlhV0ZzYVhwbFUyVmpjbVYwVUdGNWJHOWhaQ2gyWVd4MVpTazdYRzRnSUNBZ1kyOXVjM1FnWkdWeWFYWmxaRXRsZVNBOUlHRjNZV2wwSUhSb2FYTXVZM0o1Y0hSdlUyVnlkbWxqWlM1a1pYSnBkbVZMWlhsR2NtOXRVMlZqY21WMEtGeHVJQ0FnSUNBZ2RHaHBjeTVqYjI1bWFXY3VhMlY1VTJWamNtVjBJR0Z6SUhOMGNtbHVaMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWlhoMGNtRmpkR1ZrSUQwZ2RHaHBjeTVqY25sd2RHOVRaWEoyYVdObExtVjRkSEpoWTNSTFpYbEdjbTl0UkdWeWFYWmxaRXRsZVNoa1pYSnBkbVZrUzJWNUtUdGNiaUFnSUNCamIyNXpkQ0I3SUdWdVkzSjVjSFJsWkVSaGRHRXNJRzFsZEdGa1lYUmhJSDBnUFNCaGQyRnBkQ0IwYUdsekxtTnllWEIwYjFObGNuWnBZMlV1Wlc1amNubHdkRkJoZVd4dllXUW9YRzRnSUNBZ0lDQktVMDlPTG5OMGNtbHVaMmxtZVNoelpYSnBZV3hwZW1Wa0tTeGNiaUFnSUNBZ0lHOXdkR2x2Ym5NdWEyVjVTV1FnZkh3Z2RHaHBjeTVqYjI1bWFXY3VhMlY1U1dRZ2ZId2dSRVZHUVZWTVZGOUxSVmxmU1VRc1hHNGdJQ0FnSUNCbGVIUnlZV04wWldRdWEyVjVYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHVjRhWE4wYVc1bkxtVnVZM0o1Y0hSbFpGQmhlV3h2WVdRZ1BTQmxibU55ZVhCMFpXUkVZWFJoTzF4dUlDQWdJR1Y0YVhOMGFXNW5MbVZ1WTNKNWNIUnBiMjRnUFNCN1hHNGdJQ0FnSUNCclpYbEpaRG9nYldWMFlXUmhkR0V1YTJWNVNXUXNYRzRnSUNBZ0lDQnBkam9nYldWMFlXUmhkR0V1YVhZc1hHNGdJQ0FnSUNCellXeDBPaUJsZUhSeVlXTjBaV1F1YzJGc2RDeGNiaUFnSUNCOU8xeHVJQ0FnSUdWNGFYTjBhVzVuTG5abGNuTnBiMjRnUFNCdVpYaDBWbVZ5YzJsdmJqdGNiaUFnSUNCbGVHbHpkR2x1Wnk1MWNHUmhkR1ZrUVhRZ1BTQnVaWGNnUkdGMFpTZ3BPMXh1WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVkyeHBaVzUwTG5Wd1pHRjBaU2hsZUdsemRHbHVaeXdnTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lIUm9hWE11Y0dGeWMyVkZjbkp2Y2lobGNuSnZjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lIQnliM1pwWkdWeU9pQjBhR2x6TG5CeWIzWnBaR1Z5TEZ4dUlDQWdJQ0FnYm1GdFpUb2dibTl5YldGc2FYcGxaRTVoYldVc1hHNGdJQ0FnSUNCMlpYSnphVzl1T2lCbGVHbHpkR2x1Wnk1MlpYSnphVzl1TEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRlJ5WVc1emJHRjBaWE1nY21Wd2IzTnBkRzl5ZVNCbGNuSnZjbk1nYVc1MGJ5QjBlWEJsWkNCelpXTnlaWFFnWlhKeWIzSnpYRzRnSUNBcUlFQnpkVzF0WVhKNUlFbHVjM0JsWTNSeklIUm9aU0JsY25KdmNpQnRaWE56WVdkbElHWnZjaUJjSW01dmRDQm1iM1Z1WkZ3aUx6UXdOQ3dnWENKaGJISmxZV1I1WEc0Z0lDQXFJR1Y0YVhOMGMxd2lMMk52Ym1ac2FXTjBMelF3T1N3Z1lXNWtJR1JsWTNKNWNIUnBiMjR0Y21Wc1lYUmxaQ0J0WVhKclpYSnpJR0Z1WkNCdFlYQnpJSFJvWlcwZ2RHOWNiaUFnSUNvZ1lGTkZRMUpGVkY5T1QxUmZSazlWVGtSZ0xDQmdVMFZEVWtWVVgwRk1Va1ZCUkZsZlJWaEpVMVJUWUN4Y2JpQWdJQ29nWUZORlExSkZWRjlFUlVOU1dWQlVTVTlPWDBaQlNVeEZSR0FzSUc5eUlHRWdaMlZ1WlhKcFl5QmdVMFZEVWtWVVgxQlNUMVpKUkVWU1gwTlBUa1pNU1VOVVlGeHVJQ0FnS2lCN1FHeHBibXNnVTJWamNtVjBSWEp5YjNKOUxseHVJQ0FnS2lCQWNHRnlZVzBnZTNWdWEyNXZkMjU5SUdWeWNtOXlJQzBnVkdobElISmhkeUJsY25KdmNpQjBhSEp2ZDI0Z1lua2dkR2hsSUhKbGNHOXphWFJ2Y25rdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0VFpXTnlaWFJGY25KdmNuMGdWR2hsSUhSNWNHVmtJSE5sWTNKbGRDQmxjbkp2Y2k1Y2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQndZWEp6WlVWeWNtOXlLR1Z5Y205eU9pQjFibXR1YjNkdUtUb2dVMlZqY21WMFJYSnliM0lnZTF4dUlDQWdJR052Ym5OMElHVnljaUE5SUdWeWNtOXlJR0Z6SUVWeWNtOXlPMXh1SUNBZ0lHTnZibk4wSUcxbGMzTmhaMlVnUFNCbGNuSXViV1Z6YzJGblpTQjhmQ0JsY25JdWJtRnRaU0I4ZkNCY0lsVnVhMjV2ZDI0Z1pYSnliM0pjSWp0Y2JpQWdJQ0JqYjI1emRDQnNiM2RsY2sxbGMzTmhaMlVnUFNCdFpYTnpZV2RsTG5SdlRHOTNaWEpEWVhObEtDazdYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2libTkwSUdadmRXNWtYQ0lwSUh4OElHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSWpRd05Gd2lLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCVFpXTnlaWFJGY25KdmNpaGNiaUFnSUNBZ0lDQWdYQ0pUUlVOU1JWUmZUazlVWDBaUFZVNUVYQ0lzWEc0Z0lDQWdJQ0FnSUdCVFpXTnlaWFFnYm05MElHWnZkVzVrT2lBa2UyMWxjM05oWjJWOVlDeGNiaUFnSUNBZ0lDQWdaWEp5WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUd4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJbUZzY21WaFpIa2daWGhwYzNSelhDSXBJSHg4WEc0Z0lDQWdJQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSmpiMjVtYkdsamRGd2lLU0I4ZkZ4dUlDQWdJQ0FnYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lOREE1WENJcElIeDhYRzRnSUNBZ0lDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKa2RYQnNhV05oZEdVZ2EyVjVYQ0lwSUh4OFhHNGdJQ0FnSUNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0oxYm1seGRXVWdZMjl1YzNSeVlXbHVkRndpS1NCOGZGeHVJQ0FnSUNBZ0tHVnljaUJoY3lCN0lHTnZaR1UvT2lCMWJtdHViM2R1SUgwcExtTnZaR1VnUFQwOUlGd2lNak0xTURWY0lseHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QlRaV055WlhSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKVFJVTlNSVlJmUVV4U1JVRkVXVjlGV0VsVFZGTmNJaXhjYmlBZ0lDQWdJQ0FnWUZObFkzSmxkQ0JoYkhKbFlXUjVJR1Y0YVhOMGN6b2dKSHR0WlhOellXZGxmV0FzWEc0Z0lDQWdJQ0FnSUdWeWNseHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKa1pXTnllWEIwYVc5dVhDSXBJSHg4WEc0Z0lDQWdJQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSmtaV055ZVhCMFhDSXBYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRk5sWTNKbGRFVnljbTl5S0Z4dUlDQWdJQ0FnSUNCY0lsTkZRMUpGVkY5RVJVTlNXVkJVU1U5T1gwWkJTVXhGUkZ3aUxGeHVJQ0FnSUNBZ0lDQmdSR1ZqY25sd2RHbHZiaUJtWVdsc1pXUTZJQ1I3YldWemMyRm5aWDFnTEZ4dUlDQWdJQ0FnSUNCbGNuSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QlRaV055WlhSRmNuSnZjaWhjYmlBZ0lDQWdJRndpVTBWRFVrVlVYMUJTVDFaSlJFVlNYME5QVGtaTVNVTlVYQ0lzWEc0Z0lDQWdJQ0JnVUhKdmRtbGtaWElnWlhKeWIzSTZJQ1I3YldWemMyRm5aWDFnTEZ4dUlDQWdJQ0FnWlhKeVhHNGdJQ0FnS1R0Y2JpQWdmVnh1ZlZ4dUlsMTkiXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvbW9kZWwvY29uZmlnXG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgc2VjcmV0IHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIHNjaGVtYSBmb3IgdGhlIGVuY3J5cHRlZC1hdC1yZXN0IG1vZGVsIHNlY3JldCBzZXJ2aWNlLlxuICovXG5pbXBvcnQgeyBTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4uL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbFNlY3JldFNlcnZpY2VDb25maWcgZXh0ZW5kcyBTZWNyZXRTZXJ2aWNlQ29uZmlnIHtcbiAgcHJvdmlkZXI6IFwibW9kZWxcIjtcbiAga2V5U2VjcmV0OiBzdHJpbmc7XG4gIGtleUlkPzogc3RyaW5nO1xufVxuIl19
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esa3pCQUFrekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUVzlrWld4VFpXTnlaWFJUWlhKMmFXTmxRMjl1Wm1sbkxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2TGk0dmMzSmpMM05sWTNKbGRITXZiVzlrWld3dlRXOWtaV3hUWldOeVpYUlRaWEoyYVdObFEyOXVabWxuTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMM05sWTNKbGRITXZiVzlrWld3dlkyOXVabWxuWEc0Z0tpQkFjM1Z0YldGeWVTQk5iMlJsYkMxaVlXTnJaV1FnYzJWamNtVjBJSE5sY25acFkyVWdZMjl1Wm1sbmRYSmhkR2x2Ymk1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRGIyNW1hV2QxY21GMGFXOXVJSE5qYUdWdFlTQm1iM0lnZEdobElHVnVZM0o1Y0hSbFpDMWhkQzF5WlhOMElHMXZaR1ZzSUhObFkzSmxkQ0J6WlhKMmFXTmxMbHh1SUNvdlhHNXBiWEJ2Y25RZ2V5QlRaV055WlhSVFpYSjJhV05sUTI5dVptbG5JSDBnWm5KdmJTQmNJaTR1TDJOdmNtVmNJanRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCTmIyUmxiRk5sWTNKbGRGTmxjblpwWTJWRGIyNW1hV2NnWlhoMFpXNWtjeUJUWldOeVpYUlRaWEoyYVdObFEyOXVabWxuSUh0Y2JpQWdjSEp2ZG1sa1pYSTZJRndpYlc5a1pXeGNJanRjYmlBZ2EyVjVVMlZqY21WME9pQnpkSEpwYm1jN1hHNGdJR3RsZVVsa1B6b2djM1J5YVc1bk8xeHVmVnh1SWwxOSJdfQ==
|
|
@@ -123,5 +123,5 @@ exports.Secret = Secret = __decorate([
|
|
|
123
123
|
(0, decoration_1.description)("Encrypted secret record stored through the model-backed secret service"),
|
|
124
124
|
__metadata("design:paramtypes", [Object])
|
|
125
125
|
], Secret);
|
|
126
|
-
//# sourceMappingURL=
|
|
127
|
-
//# sourceMappingURL=Secret.cjs.map
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvU2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFtQmpGOzs7Ozs7OztHQVFHO0FBTUksSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFPLFNBQVEsU0FBUztJQTJFbkMsWUFBWSxJQUFzQjtRQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFwQ2QseUZBQXlGO1FBR3pGLFlBQU8sR0FBWSxJQUFJLENBQUM7SUFrQ3hCLENBQUM7Q0FDRixDQUFBO0FBMUVDO0lBRkMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLElBQUksRUFBRTs7a0NBQ0s7QUFNWjtJQUhDLFFBQVEsRUFBRTtJQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7O29DQUNLO0FBTWQ7SUFIQyxRQUFRLEVBQUU7SUFDVixNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2QsTUFBTSxFQUFFOzt3Q0FDUztBQU1sQjtJQUhDLFFBQVEsRUFBRTtJQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7O2dEQUNpQjtBQU0xQjtJQUhDLFFBQVEsRUFBRTtJQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7OzBDQUM2QjtBQUt0QztJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7OzJDQUNZO0FBS3JCO0lBRkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNkLE1BQU0sRUFBRTs7b0NBQ3FCO0FBSzlCO0lBRkMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNmLE1BQU0sRUFBRTs7dUNBQ2U7QUFLeEI7SUFGQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2QsTUFBTSxFQUFFOzt1Q0FDUTtBQUtqQjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7OzBDQUNXO0FBS3BCO0lBRkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNkLE1BQU0sRUFBRTs7bUNBQ0k7QUFLYjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLENBQUMsV0FBVyxDQUFDOzt3Q0FDRjtBQUtsQjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLENBQUMsYUFBYSxDQUFDOzt5Q0FDSDtBQUtuQjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLENBQUMsb0JBQW9CLENBQUM7O2dEQUNIO0FBekVmLE1BQU07SUFMbEIsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNoQixLQUFLLEVBQUU7SUFDUCxXQUFXLENBQ1Ysd0VBQXdFLENBQ3pFOztHQUNZLE1BQU0sQ0E4RWxCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL21vZGVsL21vZGVsXG4gKiBAc3VtbWFyeSBFbmNyeXB0ZWQtYXQtcmVzdCBzZWNyZXQgcGVyc2lzdGVuY2UgbW9kZWwuXG4gKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgYHtAbGluayBTZWNyZXR9YCBtb2RlbCAoYHNlY3JldHNgIHRhYmxlKSBwZXJzaXN0ZWRcbiAqIGJ5IHRoZSBge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZX1gOiBvbmUgcm93IHBlciBzZWNyZXQsIGhvbGRpbmcgdGhlXG4gKiBlbmNyeXB0ZWQgcGF5bG9hZCwgYGtleUlkYC9gaXZgL2BzYWx0YCBlbmNyeXB0aW9uIG1ldGFkYXRhLCB2ZXJzaW9uaW5nIGFuZFxuICogZW5hYmxlbWVudCBmaWVsZHMsIGFuZCBvcHRpb25hbCB0ZW5hbnQvb3JnLXVuaXQvb3duZXIgc2NvcGluZyBjb2x1bW5zLlxuICovXG5pbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGssIHRhYmxlLCB1dWlkIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgbW9kZWwsIHJlcXVpcmVkLCB0eXBlIGFzIHR5cGVPZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRW5jcnlwdGlvbiBtZXRhZGF0YSBlbWJlZGRlZCBpbiBhIHNlY3JldCByb3dcbiAqIEBzdW1tYXJ5IGBrZXlJZGAgaWRlbnRpZmllcyB0aGUga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgcGF5bG9hZDsgYGl2YCBhbmRcbiAqIHRoZSBvcHRpb25hbCBgYWFkYC9gc2FsdGAgY2FycnkgdGhlIGNpcGhlciBwYXJhbWV0ZXJzIG5lZWRlZCB0byByZS1kZXJpdmVcbiAqIHRoZSBrZXkgYW5kIGRlY3J5cHQgdGhlIHBheWxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhIHtcbiAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWVyIG9mIHRoZSBlbmNyeXB0aW9uIGtleSB1c2VkIGZvciB0aGUgcGF5bG9hZC4gKi9cbiAga2V5SWQ6IHN0cmluZztcbiAgLyoqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXphdGlvbiB2ZWN0b3IgdXNlZCBmb3IgdGhlIHBheWxvYWQgZW5jcnlwdGlvbi4gKi9cbiAgaXY6IHN0cmluZztcbiAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YSBib3VuZCB0byB0aGUgY2lwaGVyLiAqL1xuICBhYWQ/OiBzdHJpbmc7XG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgc2FsdCB1c2VkIHdoZW4gZGVyaXZpbmcgdGhlIGtleSBmcm9tIHRoZSBtYXN0ZXIgc2VjcmV0LiAqL1xuICBzYWx0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbmNyeXB0ZWQgc2VjcmV0IHJlY29yZCBzdG9yZWQgdGhyb3VnaCB0aGUgbW9kZWwtYmFja2VkIHNlY3JldCBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBQZXJzaXN0ZWQgaW4gdGhlIGBzZWNyZXRzYCB0YWJsZS4gVGhlIGBlbmNyeXB0ZWRQYXlsb2FkYCBjb2x1bW4gaXNcbiAqIHdyaXR0ZW4gb25seSBieSBge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZX1gICh3aGljaCBhbHNvIGZpbGxzXG4gKiBgZW5jcnlwdGlvbmAsIGB2ZXJzaW9uYCwgYW5kIHRoZSBvcHRpb25hbCBgdGVuYW50SWRgL2BvcmdVbml0SWRgL1xuICogYG93bmVyUHJpbmNpcGFsSWRgIHNjb3BpbmcgY29sdW1ucyk7IGBlbmFibGVkOiBmYWxzZWAgbWFya3Mgc29mdC1kZWxldGVkXG4gKiBzZWNyZXRzIHRoYXQgcmV0cmlldmFsIGZpbHRlcnMgb3V0LlxuICogQGNhdGVnb3J5IFNlY3JldHNcbiAqL1xuQHRhYmxlKFwic2VjcmV0c1wiKVxuQG1vZGVsKClcbkBkZXNjcmlwdGlvbihcbiAgXCJFbmNyeXB0ZWQgc2VjcmV0IHJlY29yZCBzdG9yZWQgdGhyb3VnaCB0aGUgbW9kZWwtYmFja2VkIHNlY3JldCBzZXJ2aWNlXCJcbilcbmV4cG9ydCBjbGFzcyBTZWNyZXQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICAvKiogQGRlc2NyaXB0aW9uIFByaW1hcnkga2V5IChVVUlEKS4gKi9cbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pXG4gIEB1dWlkKClcbiAgaWQhOiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBOb3JtYWxpemVkIHNlY3JldCBuYW1lLiAqL1xuICBAcmVxdWlyZWQoKVxuICBAdHlwZU9mKFN0cmluZylcbiAgQGNvbHVtbigpXG4gIG5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBTZWNyZXQgcHJvdmlkZXIgZGlzY3JpbWluYXRvciB0aGF0IHdyb3RlIHRoZSByb3cuICovXG4gIEByZXF1aXJlZCgpXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgcHJvdmlkZXIhOiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBFbmNyeXB0ZWQsIHNlcmlhbGl6ZWQgcGF5bG9hZC4gKi9cbiAgQHJlcXVpcmVkKClcbiAgQHR5cGVPZihTdHJpbmcpXG4gIEBjb2x1bW4oKVxuICBlbmNyeXB0ZWRQYXlsb2FkITogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gQ2lwaGVyIHBhcmFtZXRlcnMgcmVxdWlyZWQgdG8gZGVjcnlwdCB0aGUgcGF5bG9hZC4gKi9cbiAgQHJlcXVpcmVkKClcbiAgQHR5cGVPZihPYmplY3QpXG4gIEBjb2x1bW4oKVxuICBlbmNyeXB0aW9uITogU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgY29udGVudCB0eXBlIGRlc2NyaWJpbmcgdGhlIHBheWxvYWQuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgY29udGVudFR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBmcmVlLWZvcm0gdGFncy4gKi9cbiAgQHR5cGVPZihPYmplY3QpXG4gIEBjb2x1bW4oKVxuICB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKiogQGRlc2NyaXB0aW9uIFdoZW4gYGZhbHNlYCwgdGhlIHNlY3JldCBpcyBzb2Z0LWRlbGV0ZWQgYW5kIGZpbHRlcmVkIGZyb20gcmV0cmlldmFsLiAqL1xuICBAdHlwZU9mKEJvb2xlYW4pXG4gIEBjb2x1bW4oKVxuICBlbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHZlcnNpb24gbGFiZWwuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgdmVyc2lvbj86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGV4dGVybmFsIGlkZW50aWZpZXIgbGlua2luZyB0aGUgc2VjcmV0IHRvIGEgcHJvdmlkZXIgcmVjb3JkLiAqL1xuICBAdHlwZU9mKFN0cmluZylcbiAgQGNvbHVtbigpXG4gIGV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwcm92aWRlciBVUkkgZm9yIGV4dGVybmFsbHkgc3RvcmVkIHNlY3JldHMuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgdXJpPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdGVuYW50IHNjb3BlIGlkLiAqL1xuICBAdHlwZU9mKFN0cmluZylcbiAgQGNvbHVtbihcInRlbmFudF9pZFwiKVxuICB0ZW5hbnRJZD86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG9yZ2FuaXphdGlvbmFsIHVuaXQgc2NvcGUgaWQuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKFwib3JnX3VuaXRfaWRcIilcbiAgb3JnVW5pdElkPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgb3duaW5nIHByaW5jaXBhbCBpZC4gKi9cbiAgQHR5cGVPZihTdHJpbmcpXG4gIEBjb2x1bW4oXCJvd25lcl9wcmluY2lwYWxfaWRcIilcbiAgb3duZXJQcmluY2lwYWxJZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxTZWNyZXQ+KSB7XG4gICAgc3VwZXIoZGF0YSk7XG4gIH1cbn1cbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU2VjcmV0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUks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QUFNLENBQUM7SUFDZCxJQUFBLGFBQU0sRUFBQyxhQUFhLENBQUM7SUFDckIsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDcEMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLFVBQVUsQ0FBQztJQUNQLElBQUEsMkJBQU0sRUFBQyxNQUFNLENBQUM7SUFDZCxJQUFBLGFBQU0sRUFBQyxvQkFBb0IsQ0FBQztJQUM1QixVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztDQUNwQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRCxpQkFBQSxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBQ2hCLElBQUEsWUFBSyxFQUFDLFNBQVMsQ0FBQztJQUNoQixJQUFBLDRCQUFLLEdBQUU7SUFDUCxJQUFBLHdCQUFXLEVBQUMsd0VBQXdFLENBQUM7SUFDckYsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDNUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUVYLGtoT0FBa2hPIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy9tb2RlbC9tb2RlbFxuICogQHN1bW1hcnkgRW5jcnlwdGVkLWF0LXJlc3Qgc2VjcmV0IHBlcnNpc3RlbmNlIG1vZGVsLlxuICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIGB7QGxpbmsgU2VjcmV0fWAgbW9kZWwgKGBzZWNyZXRzYCB0YWJsZSkgcGVyc2lzdGVkXG4gKiBieSB0aGUgYHtAbGluayBNb2RlbFNlY3JldFNlcnZpY2V9YDogb25lIHJvdyBwZXIgc2VjcmV0LCBob2xkaW5nIHRoZVxuICogZW5jcnlwdGVkIHBheWxvYWQsIGBrZXlJZGAvYGl2YC9gc2FsdGAgZW5jcnlwdGlvbiBtZXRhZGF0YSwgdmVyc2lvbmluZyBhbmRcbiAqIGVuYWJsZW1lbnQgZmllbGRzLCBhbmQgb3B0aW9uYWwgdGVuYW50L29yZy11bml0L293bmVyIHNjb3BpbmcgY29sdW1ucy5cbiAqL1xuaW1wb3J0IHsgQmFzZU1vZGVsLCBjb2x1bW4sIHBrLCB0YWJsZSwgdXVpZCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IG1vZGVsLCByZXF1aXJlZCwgdHlwZSBhcyB0eXBlT2YgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbmNyeXB0ZWQgc2VjcmV0IHJlY29yZCBzdG9yZWQgdGhyb3VnaCB0aGUgbW9kZWwtYmFja2VkIHNlY3JldCBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBQZXJzaXN0ZWQgaW4gdGhlIGBzZWNyZXRzYCB0YWJsZS4gVGhlIGBlbmNyeXB0ZWRQYXlsb2FkYCBjb2x1bW4gaXNcbiAqIHdyaXR0ZW4gb25seSBieSBge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZX1gICh3aGljaCBhbHNvIGZpbGxzXG4gKiBgZW5jcnlwdGlvbmAsIGB2ZXJzaW9uYCwgYW5kIHRoZSBvcHRpb25hbCBgdGVuYW50SWRgL2BvcmdVbml0SWRgL1xuICogYG93bmVyUHJpbmNpcGFsSWRgIHNjb3BpbmcgY29sdW1ucyk7IGBlbmFibGVkOiBmYWxzZWAgbWFya3Mgc29mdC1kZWxldGVkXG4gKiBzZWNyZXRzIHRoYXQgcmV0cmlldmFsIGZpbHRlcnMgb3V0LlxuICogQGNhdGVnb3J5IFNlY3JldHNcbiAqL1xubGV0IFNlY3JldCA9IGNsYXNzIFNlY3JldCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgY29uc3RydWN0b3IoZGF0YSkge1xuICAgICAgICBzdXBlcihkYXRhKTtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGVuIGBmYWxzZWAsIHRoZSBzZWNyZXQgaXMgc29mdC1kZWxldGVkIGFuZCBmaWx0ZXJlZCBmcm9tIHJldHJpZXZhbC4gKi9cbiAgICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZTtcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgcGsoeyB0eXBlOiBTdHJpbmcgfSksXG4gICAgdXVpZCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBTZWNyZXQucHJvdG90eXBlLCBcImlkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICByZXF1aXJlZCgpLFxuICAgIHR5cGVPZihTdHJpbmcpLFxuICAgIGNvbHVtbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBTZWNyZXQucHJvdG90eXBlLCBcIm5hbWVcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIHJlcXVpcmVkKCksXG4gICAgdHlwZU9mKFN0cmluZyksXG4gICAgY29sdW1uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFNlY3JldC5wcm90b3R5cGUsIFwicHJvdmlkZXJcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIHJlcXVpcmVkKCksXG4gICAgdHlwZU9mKFN0cmluZyksXG4gICAgY29sdW1uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFNlY3JldC5wcm90b3R5cGUsIFwiZW5jcnlwdGVkUGF5bG9hZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgcmVxdWlyZWQoKSxcbiAgICB0eXBlT2YoT2JqZWN0KSxcbiAgICBjb2x1bW4oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgT2JqZWN0KVxuXSwgU2VjcmV0LnByb3RvdHlwZSwgXCJlbmNyeXB0aW9uXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICB0eXBlT2YoU3RyaW5nKSxcbiAgICBjb2x1bW4oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgU2VjcmV0LnByb3RvdHlwZSwgXCJjb250ZW50VHlwZVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdHlwZU9mKE9iamVjdCksXG4gICAgY29sdW1uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIE9iamVjdClcbl0sIFNlY3JldC5wcm90b3R5cGUsIFwidGFnc1wiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdHlwZU9mKEJvb2xlYW4pLFxuICAgIGNvbHVtbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBCb29sZWFuKVxuXSwgU2VjcmV0LnByb3RvdHlwZSwgXCJlbmFibGVkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICB0eXBlT2YoU3RyaW5nKSxcbiAgICBjb2x1bW4oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgU2VjcmV0LnByb3RvdHlwZSwgXCJ2ZXJzaW9uXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICB0eXBlT2YoU3RyaW5nKSxcbiAgICBjb2x1bW4oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgU2VjcmV0LnByb3RvdHlwZSwgXCJleHRlcm5hbElkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICB0eXBlT2YoU3RyaW5nKSxcbiAgICBjb2x1bW4oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgU2VjcmV0LnByb3RvdHlwZSwgXCJ1cmlcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIHR5cGVPZihTdHJpbmcpLFxuICAgIGNvbHVtbihcInRlbmFudF9pZFwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgU2VjcmV0LnByb3RvdHlwZSwgXCJ0ZW5hbnRJZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdHlwZU9mKFN0cmluZyksXG4gICAgY29sdW1uKFwib3JnX3VuaXRfaWRcIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFNlY3JldC5wcm90b3R5cGUsIFwib3JnVW5pdElkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICB0eXBlT2YoU3RyaW5nKSxcbiAgICBjb2x1bW4oXCJvd25lcl9wcmluY2lwYWxfaWRcIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFNlY3JldC5wcm90b3R5cGUsIFwib3duZXJQcmluY2lwYWxJZFwiLCB2b2lkIDApO1xuU2VjcmV0ID0gX19kZWNvcmF0ZShbXG4gICAgdGFibGUoXCJzZWNyZXRzXCIpLFxuICAgIG1vZGVsKCksXG4gICAgZGVzY3JpcHRpb24oXCJFbmNyeXB0ZWQgc2VjcmV0IHJlY29yZCBzdG9yZWQgdGhyb3VnaCB0aGUgbW9kZWwtYmFja2VkIHNlY3JldCBzZXJ2aWNlXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0XSlcbl0sIFNlY3JldCk7XG5leHBvcnQgeyBTZWNyZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVUyVmpjbVYwTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzTmxZM0psZEhNdmJXOWtaV3d2VTJWamNtVjBMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenRCUVVGQk96czdPenM3TzBkQlQwYzdRVUZEU0N4UFFVRlBMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUTNCRkxFOUJRVThzUlVGQlJTeFhRVUZYTEVWQlFVVXNUVUZCVFN4elFrRkJjMElzUTBGQlF6dEJRVU51UkN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVsQlFVa3NUVUZCVFN4RlFVRkZMRTFCUVUwc1owTkJRV2RETEVOQlFVTTdRVUZ0UW1wR096czdPenM3T3p0SFFWRkhPMEZCVFVrc1NVRkJUU3hOUVVGTkxFZEJRVm9zVFVGQlRTeE5RVUZQTEZOQlFWRXNVMEZCVXp0SlFUSkZia01zV1VGQldTeEpRVUZ6UWp0UlFVTm9ReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZ3UTJRc2VVWkJRWGxHTzFGQlIzcEdMRmxCUVU4c1IwRkJXU3hKUVVGSkxFTkJRVU03U1VGclEzaENMRU5CUVVNN1EwRkRSaXhEUVVGQk8wRkJNVVZETzBsQlJrTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETzBsQlEzQkNMRWxCUVVrc1JVRkJSVHM3YTBOQlEwczdRVUZOV2p0SlFVaERMRkZCUVZFc1JVRkJSVHRKUVVOV0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEWkN4TlFVRk5MRVZCUVVVN08yOURRVU5MTzBGQlRXUTdTVUZJUXl4UlFVRlJMRVZCUVVVN1NVRkRWaXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEyUXNUVUZCVFN4RlFVRkZPenQzUTBGRFV6dEJRVTFzUWp0SlFVaERMRkZCUVZFc1JVRkJSVHRKUVVOV0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEWkN4TlFVRk5MRVZCUVVVN08yZEVRVU5wUWp0QlFVMHhRanRKUVVoRExGRkJRVkVzUlVGQlJUdEpRVU5XTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRaQ3hOUVVGTkxFVkJRVVU3T3pCRFFVTTJRanRCUVV0MFF6dEpRVVpETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRaQ3hOUVVGTkxFVkJRVVU3T3pKRFFVTlpPMEZCUzNKQ08wbEJSa01zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTmtMRTFCUVUwc1JVRkJSVHM3YjBOQlEzRkNPMEZCU3psQ08wbEJSa01zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXp0SlFVTm1MRTFCUVUwc1JVRkJSVHM3ZFVOQlEyVTdRVUZMZUVJN1NVRkdReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEyUXNUVUZCVFN4RlFVRkZPenQxUTBGRFVUdEJRVXRxUWp0SlFVWkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRFpDeE5RVUZOTEVWQlFVVTdPekJEUVVOWE8wRkJTM0JDTzBsQlJrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVOa0xFMUJRVTBzUlVGQlJUczdiVU5CUTBrN1FVRkxZanRKUVVaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEWkN4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRE96dDNRMEZEUmp0QlFVdHNRanRKUVVaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEWkN4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRE96dDVRMEZEU0R0QlFVdHVRanRKUVVaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEWkN4TlFVRk5MRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdPMmRFUVVOSU8wRkJla1ZtTEUxQlFVMDdTVUZNYkVJc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU5vUWl4TFFVRkxMRVZCUVVVN1NVRkRVQ3hYUVVGWExFTkJRMVlzZDBWQlFYZEZMRU5CUTNwRk96dEhRVU5aTEUxQlFVMHNRMEU0Uld4Q0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xWEc0Z0tpQkFiVzlrZFd4bElHbHVkR1ZuY21GMGFXOXVjeTl6WldOeVpYUnpMMjF2WkdWc0wyMXZaR1ZzWEc0Z0tpQkFjM1Z0YldGeWVTQkZibU55ZVhCMFpXUXRZWFF0Y21WemRDQnpaV055WlhRZ2NHVnljMmx6ZEdWdVkyVWdiVzlrWld3dVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JHVm1hVzVsY3lCMGFHVWdZSHRBYkdsdWF5QlRaV055WlhSOVlDQnRiMlJsYkNBb1lITmxZM0psZEhOZ0lIUmhZbXhsS1NCd1pYSnphWE4wWldSY2JpQXFJR0o1SUhSb1pTQmdlMEJzYVc1cklFMXZaR1ZzVTJWamNtVjBVMlZ5ZG1salpYMWdPaUJ2Ym1VZ2NtOTNJSEJsY2lCelpXTnlaWFFzSUdodmJHUnBibWNnZEdobFhHNGdLaUJsYm1OeWVYQjBaV1FnY0dGNWJHOWhaQ3dnWUd0bGVVbGtZQzlnYVhaZ0wyQnpZV3gwWUNCbGJtTnllWEIwYVc5dUlHMWxkR0ZrWVhSaExDQjJaWEp6YVc5dWFXNW5JR0Z1WkZ4dUlDb2daVzVoWW14bGJXVnVkQ0JtYVdWc1pITXNJR0Z1WkNCdmNIUnBiMjVoYkNCMFpXNWhiblF2YjNKbkxYVnVhWFF2YjNkdVpYSWdjMk52Y0dsdVp5QmpiMngxYlc1ekxseHVJQ292WEc1cGJYQnZjblFnZXlCQ1lYTmxUVzlrWld3c0lHTnZiSFZ0Yml3Z2NHc3NJSFJoWW14bExDQjFkV2xrSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCa1pYTmpjbWx3ZEdsdmJpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ2JXOWtaV3dzSUhKbGNYVnBjbVZrTENCMGVYQmxJR0Z6SUhSNWNHVlBaaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkRzl5TFhaaGJHbGtZWFJwYjI1Y0lqdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JXNWpjbmx3ZEdsdmJpQnRaWFJoWkdGMFlTQmxiV0psWkdSbFpDQnBiaUJoSUhObFkzSmxkQ0J5YjNkY2JpQXFJRUJ6ZFcxdFlYSjVJR0JyWlhsSlpHQWdhV1JsYm5ScFptbGxjeUIwYUdVZ2EyVjVJSFZ6WldRZ2RHOGdaVzVqY25sd2RDQjBhR1VnY0dGNWJHOWhaRHNnWUdsMllDQmhibVJjYmlBcUlIUm9aU0J2Y0hScGIyNWhiQ0JnWVdGa1lDOWdjMkZzZEdBZ1kyRnljbmtnZEdobElHTnBjR2hsY2lCd1lYSmhiV1YwWlhKeklHNWxaV1JsWkNCMGJ5QnlaUzFrWlhKcGRtVmNiaUFxSUhSb1pTQnJaWGtnWVc1a0lHUmxZM0o1Y0hRZ2RHaGxJSEJoZVd4dllXUXVYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1UyVmpjbVYwUlc1amNubHdkR2x2YmsxbGRHRmtZWFJoSUh0Y2JpQWdMeW9xSUVCa1pYTmpjbWx3ZEdsdmJpQkpaR1Z1ZEdsbWFXVnlJRzltSUhSb1pTQmxibU55ZVhCMGFXOXVJR3RsZVNCMWMyVmtJR1p2Y2lCMGFHVWdjR0Y1Ykc5aFpDNGdLaTljYmlBZ2EyVjVTV1E2SUhOMGNtbHVaenRjYmlBZ0x5b3FJRUJrWlhOamNtbHdkR2x2YmlCSmJtbDBhV0ZzYVhwaGRHbHZiaUIyWldOMGIzSWdkWE5sWkNCbWIzSWdkR2hsSUhCaGVXeHZZV1FnWlc1amNubHdkR2x2Ymk0Z0tpOWNiaUFnYVhZNklITjBjbWx1Wnp0Y2JpQWdMeW9xSUVCa1pYTmpjbWx3ZEdsdmJpQlBjSFJwYjI1aGJDQmhaR1JwZEdsdmJtRnNJR0YxZEdobGJuUnBZMkYwWldRZ1pHRjBZU0JpYjNWdVpDQjBieUIwYUdVZ1kybHdhR1Z5TGlBcUwxeHVJQ0JoWVdRL09pQnpkSEpwYm1jN1hHNGdJQzhxS2lCQVpHVnpZM0pwY0hScGIyNGdUM0IwYVc5dVlXd2djMkZzZENCMWMyVmtJSGRvWlc0Z1pHVnlhWFpwYm1jZ2RHaGxJR3RsZVNCbWNtOXRJSFJvWlNCdFlYTjBaWElnYzJWamNtVjBMaUFxTDF4dUlDQnpZV3gwUHpvZ2MzUnlhVzVuTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRmJtTnllWEIwWldRZ2MyVmpjbVYwSUhKbFkyOXlaQ0J6ZEc5eVpXUWdkR2h5YjNWbmFDQjBhR1VnYlc5a1pXd3RZbUZqYTJWa0lITmxZM0psZENCelpYSjJhV05sWEc0Z0tpQkFjM1Z0YldGeWVTQlFaWEp6YVhOMFpXUWdhVzRnZEdobElHQnpaV055WlhSellDQjBZV0pzWlM0Z1ZHaGxJR0JsYm1OeWVYQjBaV1JRWVhsc2IyRmtZQ0JqYjJ4MWJXNGdhWE5jYmlBcUlIZHlhWFIwWlc0Z2IyNXNlU0JpZVNCZ2UwQnNhVzVySUUxdlpHVnNVMlZqY21WMFUyVnlkbWxqWlgxZ0lDaDNhR2xqYUNCaGJITnZJR1pwYkd4elhHNGdLaUJnWlc1amNubHdkR2x2Ym1Bc0lHQjJaWEp6YVc5dVlDd2dZVzVrSUhSb1pTQnZjSFJwYjI1aGJDQmdkR1Z1WVc1MFNXUmdMMkJ2Y21kVmJtbDBTV1JnTDF4dUlDb2dZRzkzYm1WeVVISnBibU5wY0dGc1NXUmdJSE5qYjNCcGJtY2dZMjlzZFcxdWN5azdJR0JsYm1GaWJHVmtPaUJtWVd4elpXQWdiV0Z5YTNNZ2MyOW1kQzFrWld4bGRHVmtYRzRnS2lCelpXTnlaWFJ6SUhSb1lYUWdjbVYwY21sbGRtRnNJR1pwYkhSbGNuTWdiM1YwTGx4dUlDb2dRR05oZEdWbmIzSjVJRk5sWTNKbGRITmNiaUFxTDF4dVFIUmhZbXhsS0Z3aWMyVmpjbVYwYzF3aUtWeHVRRzF2WkdWc0tDbGNia0JrWlhOamNtbHdkR2x2YmloY2JpQWdYQ0pGYm1OeWVYQjBaV1FnYzJWamNtVjBJSEpsWTI5eVpDQnpkRzl5WldRZ2RHaHliM1ZuYUNCMGFHVWdiVzlrWld3dFltRmphMlZrSUhObFkzSmxkQ0J6WlhKMmFXTmxYQ0pjYmlsY2JtVjRjRzl5ZENCamJHRnpjeUJUWldOeVpYUWdaWGgwWlc1a2N5QkNZWE5sVFc5a1pXd2dlMXh1SUNBdktpb2dRR1JsYzJOeWFYQjBhVzl1SUZCeWFXMWhjbmtnYTJWNUlDaFZWVWxFS1M0Z0tpOWNiaUFnUUhCcktIc2dkSGx3WlRvZ1UzUnlhVzVuSUgwcFhHNGdJRUIxZFdsa0tDbGNiaUFnYVdRaE9pQnpkSEpwYm1jN1hHNWNiaUFnTHlvcUlFQmtaWE5qY21sd2RHbHZiaUJPYjNKdFlXeHBlbVZrSUhObFkzSmxkQ0J1WVcxbExpQXFMMXh1SUNCQWNtVnhkV2x5WldRb0tWeHVJQ0JBZEhsd1pVOW1LRk4wY21sdVp5bGNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lHNWhiV1VoT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xSUVCa1pYTmpjbWx3ZEdsdmJpQlRaV055WlhRZ2NISnZkbWxrWlhJZ1pHbHpZM0pwYldsdVlYUnZjaUIwYUdGMElIZHliM1JsSUhSb1pTQnliM2N1SUNvdlhHNGdJRUJ5WlhGMWFYSmxaQ2dwWEc0Z0lFQjBlWEJsVDJZb1UzUnlhVzVuS1Z4dUlDQkFZMjlzZFcxdUtDbGNiaUFnY0hKdmRtbGtaWEloT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xSUVCa1pYTmpjbWx3ZEdsdmJpQkZibU55ZVhCMFpXUXNJSE5sY21saGJHbDZaV1FnY0dGNWJHOWhaQzRnS2k5Y2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ1FIUjVjR1ZQWmloVGRISnBibWNwWEc0Z0lFQmpiMngxYlc0b0tWeHVJQ0JsYm1OeWVYQjBaV1JRWVhsc2IyRmtJVG9nYzNSeWFXNW5PMXh1WEc0Z0lDOHFLaUJBWkdWelkzSnBjSFJwYjI0Z1EybHdhR1Z5SUhCaGNtRnRaWFJsY25NZ2NtVnhkV2x5WldRZ2RHOGdaR1ZqY25sd2RDQjBhR1VnY0dGNWJHOWhaQzRnS2k5Y2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ1FIUjVjR1ZQWmloUFltcGxZM1FwWEc0Z0lFQmpiMngxYlc0b0tWeHVJQ0JsYm1OeWVYQjBhVzl1SVRvZ1UyVmpjbVYwUlc1amNubHdkR2x2YmsxbGRHRmtZWFJoTzF4dVhHNGdJQzhxS2lCQVpHVnpZM0pwY0hScGIyNGdUM0IwYVc5dVlXd2dZMjl1ZEdWdWRDQjBlWEJsSUdSbGMyTnlhV0pwYm1jZ2RHaGxJSEJoZVd4dllXUXVJQ292WEc0Z0lFQjBlWEJsVDJZb1UzUnlhVzVuS1Z4dUlDQkFZMjlzZFcxdUtDbGNiaUFnWTI5dWRHVnVkRlI1Y0dVL09pQnpkSEpwYm1jN1hHNWNiaUFnTHlvcUlFQmtaWE5qY21sd2RHbHZiaUJQY0hScGIyNWhiQ0JtY21WbExXWnZjbTBnZEdGbmN5NGdLaTljYmlBZ1FIUjVjR1ZQWmloUFltcGxZM1FwWEc0Z0lFQmpiMngxYlc0b0tWeHVJQ0IwWVdkelB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2MzUnlhVzVuUGp0Y2JseHVJQ0F2S2lvZ1FHUmxjMk55YVhCMGFXOXVJRmRvWlc0Z1lHWmhiSE5sWUN3Z2RHaGxJSE5sWTNKbGRDQnBjeUJ6YjJaMExXUmxiR1YwWldRZ1lXNWtJR1pwYkhSbGNtVmtJR1p5YjIwZ2NtVjBjbWxsZG1Gc0xpQXFMMXh1SUNCQWRIbHdaVTltS0VKdmIyeGxZVzRwWEc0Z0lFQmpiMngxYlc0b0tWeHVJQ0JsYm1GaWJHVmtPaUJpYjI5c1pXRnVJRDBnZEhKMVpUdGNibHh1SUNBdktpb2dRR1JsYzJOeWFYQjBhVzl1SUU5d2RHbHZibUZzSUhabGNuTnBiMjRnYkdGaVpXd3VJQ292WEc0Z0lFQjBlWEJsVDJZb1UzUnlhVzVuS1Z4dUlDQkFZMjlzZFcxdUtDbGNiaUFnZG1WeWMybHZiajg2SUhOMGNtbHVaenRjYmx4dUlDQXZLaW9nUUdSbGMyTnlhWEIwYVc5dUlFOXdkR2x2Ym1Gc0lHVjRkR1Z5Ym1Gc0lHbGtaVzUwYVdacFpYSWdiR2x1YTJsdVp5QjBhR1VnYzJWamNtVjBJSFJ2SUdFZ2NISnZkbWxrWlhJZ2NtVmpiM0prTGlBcUwxeHVJQ0JBZEhsd1pVOW1LRk4wY21sdVp5bGNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lHVjRkR1Z5Ym1Gc1NXUS9PaUJ6ZEhKcGJtYzdYRzVjYmlBZ0x5b3FJRUJrWlhOamNtbHdkR2x2YmlCUGNIUnBiMjVoYkNCd2NtOTJhV1JsY2lCVlVra2dabTl5SUdWNGRHVnlibUZzYkhrZ2MzUnZjbVZrSUhObFkzSmxkSE11SUNvdlhHNGdJRUIwZVhCbFQyWW9VM1J5YVc1bktWeHVJQ0JBWTI5c2RXMXVLQ2xjYmlBZ2RYSnBQem9nYzNSeWFXNW5PMXh1WEc0Z0lDOHFLaUJBWkdWelkzSnBjSFJwYjI0Z1QzQjBhVzl1WVd3Z2RHVnVZVzUwSUhOamIzQmxJR2xrTGlBcUwxeHVJQ0JBZEhsd1pVOW1LRk4wY21sdVp5bGNiaUFnUUdOdmJIVnRiaWhjSW5SbGJtRnVkRjlwWkZ3aUtWeHVJQ0IwWlc1aGJuUkpaRDg2SUhOMGNtbHVaenRjYmx4dUlDQXZLaW9nUUdSbGMyTnlhWEIwYVc5dUlFOXdkR2x2Ym1Gc0lHOXlaMkZ1YVhwaGRHbHZibUZzSUhWdWFYUWdjMk52Y0dVZ2FXUXVJQ292WEc0Z0lFQjBlWEJsVDJZb1UzUnlhVzVuS1Z4dUlDQkFZMjlzZFcxdUtGd2liM0puWDNWdWFYUmZhV1JjSWlsY2JpQWdiM0puVlc1cGRFbGtQem9nYzNSeWFXNW5PMXh1WEc0Z0lDOHFLaUJBWkdWelkzSnBjSFJwYjI0Z1QzQjBhVzl1WVd3Z2IzZHVhVzVuSUhCeWFXNWphWEJoYkNCcFpDNGdLaTljYmlBZ1FIUjVjR1ZQWmloVGRISnBibWNwWEc0Z0lFQmpiMngxYlc0b1hDSnZkMjVsY2w5d2NtbHVZMmx3WVd4ZmFXUmNJaWxjYmlBZ2IzZHVaWEpRY21sdVkybHdZV3hKWkQ4NklITjBjbWx1Wnp0Y2JseHVJQ0JqYjI1emRISjFZM1J2Y2loa1lYUmhQem9nVUdGeWRHbGhiRHhUWldOeVpYUStLU0I3WEc0Z0lDQWdjM1Z3WlhJb1pHRjBZU2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
|
|
@@ -23,5 +23,5 @@ __exportStar(require("./Secret.cjs"), exports);
|
|
|
23
23
|
__exportStar(require("./ModelSecretServiceConfig.cjs"), exports);
|
|
24
24
|
__exportStar(require("./ModelSecretEnvironment.cjs"), exports);
|
|
25
25
|
__exportStar(require("./ModelSecretService.cjs"), exports);
|
|
26
|
-
//# sourceMappingURL=
|
|
27
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsNEJBQXlCO0FBQ3pCLDhDQUEyQztBQUMzQyw0Q0FBeUM7QUFDekMsd0NBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL21vZGVsXG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgc2VjcmV0IHNlcnZpY2UgZXhwb3J0cy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBlbmNyeXB0ZWQtYXQtcmVzdCBzZWNyZXQgbW9kZWwsIGNvbmZpZywgYW5kIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL1NlY3JldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Nb2RlbFNlY3JldEVudmlyb25tZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Nb2RlbFNlY3JldFNlcnZpY2VcIjtcbiJdfQ==
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDhDQUE0QjtBQUM1QixnRUFBOEM7QUFDOUMsOERBQTRDO0FBQzVDLDBEQUF3QztBQUN4QywweEJBQTB4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy9tb2RlbFxuICogQHN1bW1hcnkgTW9kZWwtYmFja2VkIHNlY3JldCBzZXJ2aWNlIGV4cG9ydHMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgZW5jcnlwdGVkLWF0LXJlc3Qgc2VjcmV0IG1vZGVsLCBjb25maWcsIGFuZCBzZXJ2aWNlLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9TZWNyZXQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL01vZGVsU2VjcmV0U2VydmljZUNvbmZpZy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vTW9kZWxTZWNyZXRFbnZpcm9ubWVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vTW9kZWxTZWNyZXRTZXJ2aWNlLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZjMlZqY21WMGN5OXRiMlJsYkM5cGJtUmxlQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenRIUVVsSE8wRkJRMGdzTkVKQlFYbENPMEZCUTNwQ0xEaERRVUV5UXp0QlFVTXpReXcwUTBGQmVVTTdRVUZEZWtNc2QwTkJRWEZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5b3FYRzRnS2lCQWJXOWtkV3hsSUdsdWRHVm5jbUYwYVc5dWN5OXpaV055WlhSekwyMXZaR1ZzWEc0Z0tpQkFjM1Z0YldGeWVTQk5iMlJsYkMxaVlXTnJaV1FnYzJWamNtVjBJSE5sY25acFkyVWdaWGh3YjNKMGN5NWNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQlNaUzFsZUhCdmNuUnpJSFJvWlNCbGJtTnllWEIwWldRdFlYUXRjbVZ6ZENCelpXTnlaWFFnYlc5a1pXd3NJR052Ym1acFp5d2dZVzVrSUhObGNuWnBZMlV1WEc0Z0tpOWNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMU5sWTNKbGRGd2lPMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2VFc5a1pXeFRaV055WlhSVFpYSjJhV05sUTI5dVptbG5YQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5TmIyUmxiRk5sWTNKbGRFVnVkbWx5YjI1dFpXNTBYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5TmIyUmxiRk5sWTNKbGRGTmxjblpwWTJWY0lqdGNiaUpkZlE9PSJdfQ==
|
|
@@ -20,5 +20,5 @@ exports.OnePasswordSecretEnvironment = SecretEnvironment_js_1.SecretEnvironment.
|
|
|
20
20
|
},
|
|
21
21
|
},
|
|
22
22
|
});
|
|
23
|
-
//# sourceMappingURL=
|
|
24
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lUGFzc3dvcmRTZWNyZXRFbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWNyZXRzL29uZXBhc3N3b3JkL09uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVDQUFrQztBQWdCOUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDO0lBQ3ZFLE9BQU8sRUFBRTtRQUNQLFdBQVcsRUFBRTtZQUNYLFdBQVcsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEVBQUU7WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxjQUFjLEVBQUUsRUFBRTtZQUNsQixLQUFLLEVBQUUsRUFBRTtTQUNWO0tBQ0Y7Q0FDbUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL29uZXBhc3N3b3JkL2Vudmlyb25tZW50XG4gKiBAc3VtbWFyeSAxUGFzc3dvcmQgQ29ubmVjdCBzZWNyZXQgZW52aXJvbm1lbnQuXG4gKiBAZGVzY3JpcHRpb24gRXh0ZW5kcyB0aGUgY29tbW9uIHNlY3JldHMgZW52aXJvbm1lbnQgd2l0aCB0aGUgYHNlY3JldHMub25lUGFzc3dvcmRgXG4gKiBzaGFwZSBtYXRjaGluZyB7QGxpbmsgT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnfSwgc28ge0BsaW5rIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZX1cbiAqIGNhbiBmYWxsIGJhY2sgdG8gaXQgd2hlbiBubyBjb25maWcgaXMgcGFzc2VkIHRvIGBpbml0aWFsaXplYC5cbiAqL1xuaW1wb3J0IHsgU2VjcmV0RW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vY29yZS9TZWNyZXRFbnZpcm9ubWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnRDb25maWcge1xuICBjb25uZWN0SG9zdDogc3RyaW5nO1xuICBjb25uZWN0VG9rZW4/OiBzdHJpbmc7XG4gIHZhdWx0SWQ/OiBzdHJpbmc7XG4gIGl0ZW1JZFRlbXBsYXRlPzogc3RyaW5nO1xuICBrZXlJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50U2hhcGUge1xuICBzZWNyZXRzOiB7XG4gICAgb25lUGFzc3dvcmQ6IE9uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnRDb25maWc7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBPbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50ID0gU2VjcmV0RW52aXJvbm1lbnQuYWNjdW11bGF0ZSh7XG4gIHNlY3JldHM6IHtcbiAgICBvbmVQYXNzd29yZDoge1xuICAgICAgY29ubmVjdEhvc3Q6IFwiXCIsXG4gICAgICBjb25uZWN0VG9rZW46IFwiXCIsXG4gICAgICB2YXVsdElkOiBcIlwiLFxuICAgICAgaXRlbUlkVGVtcGxhdGU6IFwiXCIsXG4gICAgICBrZXlJZDogXCJcIixcbiAgICB9LFxuICB9LFxufSBhcyBPbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50U2hhcGUpO1xuIl19
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lUGFzc3dvcmRTZWNyZXRFbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk9uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7OztHQU1HO0FBQ0gseUVBQW1FO0FBQ3RELFFBQUEsNEJBQTRCLEdBQUcsd0NBQWlCLENBQUMsVUFBVSxDQUFDO0lBQ3JFLE9BQU8sRUFBRTtRQUNMLFdBQVcsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEVBQUU7WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxjQUFjLEVBQUUsRUFBRTtZQUNsQixLQUFLLEVBQUUsRUFBRTtTQUNaO0tBQ0o7Q0FDSixDQUFDLENBQUM7QUFDSCw4L0RBQTgvRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy9vbmVwYXNzd29yZC9lbnZpcm9ubWVudFxuICogQHN1bW1hcnkgMVBhc3N3b3JkIENvbm5lY3Qgc2VjcmV0IGVudmlyb25tZW50LlxuICogQGRlc2NyaXB0aW9uIEV4dGVuZHMgdGhlIGNvbW1vbiBzZWNyZXRzIGVudmlyb25tZW50IHdpdGggdGhlIGBzZWNyZXRzLm9uZVBhc3N3b3JkYFxuICogc2hhcGUgbWF0Y2hpbmcge0BsaW5rIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZUNvbmZpZ30sIHNvIHtAbGluayBPbmVQYXNzd29yZFNlY3JldFNlcnZpY2V9XG4gKiBjYW4gZmFsbCBiYWNrIHRvIGl0IHdoZW4gbm8gY29uZmlnIGlzIHBhc3NlZCB0byBgaW5pdGlhbGl6ZWAuXG4gKi9cbmltcG9ydCB7IFNlY3JldEVudmlyb25tZW50IH0gZnJvbSBcIi4vLi4vY29yZS9TZWNyZXRFbnZpcm9ubWVudC5qc1wiO1xuZXhwb3J0IGNvbnN0IE9uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnQgPSBTZWNyZXRFbnZpcm9ubWVudC5hY2N1bXVsYXRlKHtcbiAgICBzZWNyZXRzOiB7XG4gICAgICAgIG9uZVBhc3N3b3JkOiB7XG4gICAgICAgICAgICBjb25uZWN0SG9zdDogXCJcIixcbiAgICAgICAgICAgIGNvbm5lY3RUb2tlbjogXCJcIixcbiAgICAgICAgICAgIHZhdWx0SWQ6IFwiXCIsXG4gICAgICAgICAgICBpdGVtSWRUZW1wbGF0ZTogXCJcIixcbiAgICAgICAgICAgIGtleUlkOiBcIlwiLFxuICAgICAgICB9LFxuICAgIH0sXG59KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVQyNWxVR0Z6YzNkdmNtUlRaV055WlhSRmJuWnBjbTl1YldWdWRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTl6WldOeVpYUnpMMjl1WlhCaGMzTjNiM0prTDA5dVpWQmhjM04zYjNKa1UyVmpjbVYwUlc1MmFYSnZibTFsYm5RdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUU3T3pzN096dEhRVTFITzBGQlEwZ3NUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEhWRFFVRnJRenRCUVdkQ09VUXNUVUZCVFN4RFFVRkRMRTFCUVUwc05FSkJRVFJDTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zVlVGQlZTeERRVUZETzBsQlEzWkZMRTlCUVU4c1JVRkJSVHRSUVVOUUxGZEJRVmNzUlVGQlJUdFpRVU5ZTEZkQlFWY3NSVUZCUlN4RlFVRkZPMWxCUTJZc1dVRkJXU3hGUVVGRkxFVkJRVVU3V1VGRGFFSXNUMEZCVHl4RlFVRkZMRVZCUVVVN1dVRkRXQ3hqUVVGakxFVkJRVVVzUlVGQlJUdFpRVU5zUWl4TFFVRkxMRVZCUVVVc1JVRkJSVHRUUVVOV08wdEJRMFk3UTBGRGJVTXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJBYlc5a2RXeGxJR2x1ZEdWbmNtRjBhVzl1Y3k5elpXTnlaWFJ6TDI5dVpYQmhjM04zYjNKa0wyVnVkbWx5YjI1dFpXNTBYRzRnS2lCQWMzVnRiV0Z5ZVNBeFVHRnpjM2R2Y21RZ1EyOXVibVZqZENCelpXTnlaWFFnWlc1MmFYSnZibTFsYm5RdVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JYaDBaVzVrY3lCMGFHVWdZMjl0Ylc5dUlITmxZM0psZEhNZ1pXNTJhWEp2Ym0xbGJuUWdkMmwwYUNCMGFHVWdZSE5sWTNKbGRITXViMjVsVUdGemMzZHZjbVJnWEc0Z0tpQnphR0Z3WlNCdFlYUmphR2x1WnlCN1FHeHBibXNnVDI1bFVHRnpjM2R2Y21SVFpXTnlaWFJUWlhKMmFXTmxRMjl1Wm1sbmZTd2djMjhnZTBCc2FXNXJJRTl1WlZCaGMzTjNiM0prVTJWamNtVjBVMlZ5ZG1salpYMWNiaUFxSUdOaGJpQm1ZV3hzSUdKaFkyc2dkRzhnYVhRZ2QyaGxiaUJ1YnlCamIyNW1hV2NnYVhNZ2NHRnpjMlZrSUhSdklHQnBibWwwYVdGc2FYcGxZQzVjYmlBcUwxeHVhVzF3YjNKMElIc2dVMlZqY21WMFJXNTJhWEp2Ym0xbGJuUWdmU0JtY205dElGd2lMaTR2WTI5eVpTOVRaV055WlhSRmJuWnBjbTl1YldWdWRGd2lPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUU5dVpWQmhjM04zYjNKa1UyVmpjbVYwUlc1MmFYSnZibTFsYm5SRGIyNW1hV2NnZTF4dUlDQmpiMjV1WldOMFNHOXpkRG9nYzNSeWFXNW5PMXh1SUNCamIyNXVaV04wVkc5clpXNC9PaUJ6ZEhKcGJtYzdYRzRnSUhaaGRXeDBTV1EvT2lCemRISnBibWM3WEc0Z0lHbDBaVzFKWkZSbGJYQnNZWFJsUHpvZ2MzUnlhVzVuTzF4dUlDQnJaWGxKWkQ4NklITjBjbWx1Wnp0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JQYm1WUVlYTnpkMjl5WkZObFkzSmxkRVZ1ZG1seWIyNXRaVzUwVTJoaGNHVWdlMXh1SUNCelpXTnlaWFJ6T2lCN1hHNGdJQ0FnYjI1bFVHRnpjM2R2Y21RNklFOXVaVkJoYzNOM2IzSmtVMlZqY21WMFJXNTJhWEp2Ym0xbGJuUkRiMjVtYVdjN1hHNGdJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCUGJtVlFZWE56ZDI5eVpGTmxZM0psZEVWdWRtbHliMjV0Wlc1MElEMGdVMlZqY21WMFJXNTJhWEp2Ym0xbGJuUXVZV05qZFcxMWJHRjBaU2g3WEc0Z0lITmxZM0psZEhNNklIdGNiaUFnSUNCdmJtVlFZWE56ZDI5eVpEb2dlMXh1SUNBZ0lDQWdZMjl1Ym1WamRFaHZjM1E2SUZ3aVhDSXNYRzRnSUNBZ0lDQmpiMjV1WldOMFZHOXJaVzQ2SUZ3aVhDSXNYRzRnSUNBZ0lDQjJZWFZzZEVsa09pQmNJbHdpTEZ4dUlDQWdJQ0FnYVhSbGJVbGtWR1Z0Y0d4aGRHVTZJRndpWENJc1hHNGdJQ0FnSUNCclpYbEpaRG9nWENKY0lpeGNiaUFnSUNCOUxGeHVJQ0I5TEZ4dWZTQmhjeUJQYm1WUVlYTnpkMjl5WkZObFkzSmxkRVZ1ZG1seWIyNXRaVzUwVTJoaGNHVXBPMXh1SWwxOSJdfQ==
|