@decaf-ts/integrations 0.14.0 → 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 +24 -0
- 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 +24 -0
- 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 +7 -0
- 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 +7 -0
- 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/lib/types/sftp/aws/index.d.cts +6 -0
- package/lib/types/sftp/aws/index.d.mts +6 -0
- package/lib/types/sftp/ssh2/index.d.cts +6 -0
- package/lib/types/sftp/ssh2/index.d.mts +6 -0
- package/package.json +180 -55
- 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/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/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/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/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
|
@@ -239,5 +239,5 @@ class KeycloakClientService extends core_1.ClientBasedService {
|
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
241
|
exports.KeycloakClientService = KeycloakClientService;
|
|
242
|
-
//# sourceMappingURL=KeycloakClientService.js.map
|
|
243
|
-
//# sourceMappingURL=KeycloakClientService.cjs.map
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2tleWNsb2FrL3NlcnZpY2VzL0tleWNsb2FrQ2xpZW50U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPcEQsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUscUJBQWtCO0FBRXhELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFHMUM7SUFDQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBd0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FDaEIsbUJBQXdDLEVBQ3hDLFNBQW9ELEVBQ3BELEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8s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QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxpQkFBaUIsQ0FBSSxJQUFhO1FBQ3hDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQU0sQ0FBQztZQUMvQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnRleHR1YWxBcmdzLCBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUge1xuICBLZXljbG9ha0NsaWVudENvbmZpZyxcbiAgS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnLFxuICBLZXljbG9ha1NldHVwQ29uZmlnLFxuICBLZXljbG9ha1VzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5cbmV4cG9ydCBjbGFzcyBLZXljbG9ha0NsaWVudFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEtleWNsb2FrU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBjcmVhdGVDbGllbnQoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICBvdmVycmlkZXM6IFBhcnRpYWw8S2V5Y2xvYWtDbGllbnRDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50KTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMubm9ybWFsaXplQ2xpZW50Q29uZmlnKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5jbGllbnQsXG4gICAgICBvdmVycmlkZXMgPz8ge31cbiAgICApO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vY2xpZW50c2AsXG4gICAgICByZWFsbUFjY2Vzc1Rva2VuLFxuICAgICAgdGhpcy5idWlsZENsaWVudFBheWxvYWQoY2xpZW50KSxcbiAgICAgIDIwMSxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdFVVSURmcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQ2xpZW50KFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrQ2xpZW50Q29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlQ2xpZW50XCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVDbGllbnQpO1xuICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5ub3JtYWxpemVDbGllbnRDb25maWcoXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudCxcbiAgICAgIG92ZXJyaWRlcyA/PyB7fVxuICAgICk7XG4gICAgY29uc3QgY2xpZW50VVVJRCA9XG4gICAgICBjbGllbnQuY2xpZW50VVVJRCA/P1xuICAgICAgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50VVVJRChcbiAgICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXIhLnJlYWxtLFxuICAgICAgICBjbGllbnQuY2xpZW50SWQsXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICkpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUFVUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vY2xpZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChjbGllbnRVVUlEKX1gLFxuICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgIHRoaXMuYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCksXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q2xpZW50VVVJRChcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nLFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50VVVJRFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ2V0Q2xpZW50VVVJRCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHM/Y2xpZW50SWQ9JHtlbmNvZGVVUklDb21wb25lbnQoY2xpZW50SWQpfWAsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8QXJyYXk8eyBpZD86IHN0cmluZyB9Pj4ocmVzcG9uc2UuZGF0YSk7XG4gICAgY29uc3QgY2xpZW50VVVJRCA9IGRhdGE/LlswXT8uaWQ7XG4gICAgaWYgKGNsaWVudFVVSUQpIHJldHVybiBjbGllbnRVVUlEO1xuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIENsaWVudCBVVUlEOiAke2NsaWVudElkfWApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICByb2xlQ29uZmlnczogS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnW10gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFJvbGVzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVDbGllbnRSb2xlcyk7XG4gICAgY29uc3Qgcm9sZXMgPSByb2xlQ29uZmlncyA/PyBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5yb2xlcyA/PyBbXTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGZvciAoY29uc3Qgcm9sZSBvZiByb2xlcykge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICAgIHJlYWxtQWNjZXNzVG9rZW4sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIDIwMSxcbiAgICAgICAge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyISwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFjY2Vzc1Rva2VuKFxuICAgIGtleWNsb2FrVXNlcjogS2V5Y2xvYWtVc2VyLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgICBwYXNzd29yZDoga2V5Y2xvYWtVc2VyLnBhc3N3b3JkLFxuICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICB9KS50b1N0cmluZygpLFxuICAgICAgMjAwLFxuICAgICAgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZTx7IGFjY2Vzc190b2tlbj86IHN0cmluZyB9PihcbiAgICAgIHJlc3BvbnNlLmRhdGFcbiAgICApO1xuICAgIGlmIChkYXRhPy5hY2Nlc3NfdG9rZW4pIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFxuICAgICAgYFVuYWJsZSB0byBnZXQgS2V5Y2xvYWsgYWNjZXNzIHRva2VuIGZvciB1c2VyICR7a2V5Y2xvYWtVc2VyLnVzZXJuYW1lfWBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVDbGllbnRDb25maWcoXG4gICAgYmFzZTogS2V5Y2xvYWtDbGllbnRDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrQ2xpZW50Q29uZmlnPlxuICApOiBLZXljbG9ha0NsaWVudENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2UsXG4gICAgICAuLi5vdmVycmlkZXMsXG4gICAgICByZWRpcmVjdFVyaXM6IG92ZXJyaWRlcy5yZWRpcmVjdFVyaXMgPz8gYmFzZS5yZWRpcmVjdFVyaXMsXG4gICAgICB3ZWJPcmlnaW5zOiBvdmVycmlkZXMud2ViT3JpZ2lucyA/PyBiYXNlLndlYk9yaWdpbnMsXG4gICAgICByb2xlczogb3ZlcnJpZGVzLnJvbGVzID8/IGJhc2Uucm9sZXMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDbGllbnRQYXlsb2FkKFxuICAgIGNsaWVudDogS2V5Y2xvYWtDbGllbnRDb25maWdcbiAgKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICBjbGllbnRJZDogY2xpZW50LmNsaWVudElkLFxuICAgICAgbmFtZTogY2xpZW50LmNsaWVudE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogY2xpZW50LmRlc2NyaXB0aW9uLFxuICAgICAgcm9vdFVybDogY2xpZW50LnJvb3RVcmwsXG4gICAgICBhZG1pblVybDogY2xpZW50LmFkbWluVXJsLFxuICAgICAgYmFzZVVybDogY2xpZW50LmJhc2VVcmwsXG4gICAgICBzdXJyb2dhdGVBdXRoUmVxdWlyZWQ6IGNsaWVudC5zdXJyb2dhdGVBdXRoUmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgICBlbmFibGVkOiBjbGllbnQuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgYWx3YXlzRGlzcGxheUluQ29uc29sZTogY2xpZW50LmFsd2F5c0Rpc3BsYXlJbkNvbnNvbGUgPz8gZmFsc2UsXG4gICAgICBjbGllbnRBdXRoZW50aWNhdG9yVHlwZTogXCJjbGllbnQtc2VjcmV0XCIsXG4gICAgICBzZWNyZXQ6IGNsaWVudC5zZWNyZXQsXG4gICAgICByZWRpcmVjdFVyaXM6IGNsaWVudC5yZWRpcmVjdFVyaXMsXG4gICAgICB3ZWJPcmlnaW5zOiBjbGllbnQud2ViT3JpZ2lucyxcbiAgICAgIG5vdEJlZm9yZTogY2xpZW50Lm5vdEJlZm9yZSA/PyAwLFxuICAgICAgYmVhcmVyT25seTogY2xpZW50LmJlYXJlck9ubHkgPz8gZmFsc2UsXG4gICAgICBjb25zZW50UmVxdWlyZWQ6IGNsaWVudC5jb25zZW50UmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgICBzdGFuZGFyZEZsb3dFbmFibGVkOiBjbGllbnQuc3RhbmRhcmRGbG93RW5hYmxlZCA/PyB0cnVlLFxuICAgICAgaW1wbGljaXRGbG93RW5hYmxlZDogY2xpZW50LmltcGxpY2l0Rmxvd0VuYWJsZWQgPz8gZmFsc2UsXG4gICAgICBkaXJlY3RBY2Nlc3NHcmFudHNFbmFibGVkOiBjbGllbnQuZGlyZWN0QWNjZXNzR3JhbnRzRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgc2VydmljZUFjY291bnRzRW5hYmxlZDogY2xpZW50LnNlcnZpY2VBY2NvdW50c0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIGF1dGhvcml6YXRpb25TZXJ2aWNlc0VuYWJsZWQ6IGNsaWVudC5hdXRob3JpemF0aW9uU2VydmljZXNFbmFibGVkID8/IHRydWUsXG4gICAgICBwdWJsaWNDbGllbnQ6IGNsaWVudC5wdWJsaWNDbGllbnQgPz8gZmFsc2UsXG4gICAgICBmcm9udGNoYW5uZWxMb2dvdXQ6IGNsaWVudC5mcm9udGNoYW5uZWxMb2dvdXQgPz8gdHJ1ZSxcbiAgICAgIHByb3RvY29sOiBjbGllbnQucHJvdG9jb2wgPz8gXCJvcGVuaWQtY29ubmVjdFwiLFxuICAgICAgYXR0cmlidXRlczogY2xpZW50LmF0dHJpYnV0ZXMgPz8geyBcImFjY2Vzcy50b2tlbi5saWZlc3BhblwiOiBcIjMwMFwiIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdChcbiAgICBtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIkRFTEVURVwiLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHBheWxvYWQ6IHVua25vd24sXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0ke3BhdGh9YCxcbiAgICAgIGRhdGE6XG4gICAgICAgIHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHBheWxvYWQgIT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgIH0pLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gc3VjY2Vzc0NvZGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSHR0cFJlc3BvbnNlKFxuICAgIHJlc3BvbnNlOiBhbnksXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBlcnJvck1zZz86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyBhcyBudW1iZXI7XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA0IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpOiBFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2F0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5sb2NhdGlvbiBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiS2V5Y2xvYWsgcmVzcG9uc2UgZGlkIG5vdCBpbmNsdWRlIGEgbG9jYXRpb24gaGVhZGVyXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBsb2NhdGlvbi5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIjtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF3RztBQUN4Ryx5Q0FBb0Q7QUFDcEQsa0RBQTBCO0FBQzFCLGtEQUFvQztBQUNwQyw2Q0FBMkQ7QUFDM0QsTUFBYSxxQkFBc0IsU0FBUSx5QkFBa0I7SUFDekQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUk7UUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJO1FBQ3RELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRixNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFD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T0FBTyxTQUFTLENBQUM7WUFDckIsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFuTUQsc0RBbU1DO0FBQ0QsczgyQkFBczgyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhZFJlcXVlc3RFcnJvciwgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmV4cG9ydCBjbGFzcyBLZXljbG9ha0NsaWVudFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2Uge1xuICAgIGFzeW5jIGluaXRpYWxpemUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdO1xuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUNsaWVudChrZXljbG9ha1NldHVwQ29uZmlnLCBvdmVycmlkZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZUNsaWVudCk7XG4gICAgICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMubm9ybWFsaXplQ2xpZW50Q29uZmlnKGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LCBvdmVycmlkZXMgPz8ge30pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHNgLCByZWFsbUFjY2Vzc1Rva2VuLCB0aGlzLmJ1aWxkQ2xpZW50UGF5bG9hZChjbGllbnQpLCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFVVSURmcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVDbGllbnQoa2V5Y2xvYWtTZXR1cENvbmZpZywgb3ZlcnJpZGVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlQ2xpZW50XCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVDbGllbnQpO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLm5vcm1hbGl6ZUNsaWVudENvbmZpZyhrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudCwgb3ZlcnJpZGVzID8/IHt9KTtcbiAgICAgICAgY29uc3QgY2xpZW50VVVJRCA9IGNsaWVudC5jbGllbnRVVUlEID8/XG4gICAgICAgICAgICAoYXdhaXQgdGhpcy5nZXRDbGllbnRVVUlEKHJlYWxtQWNjZXNzVG9rZW4sIGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyLnJlYWxtLCBjbGllbnQuY2xpZW50SWQsIC4uLmN0eEFyZ3MpKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUFVUXCIsIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9jbGllbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGNsaWVudFVVSUQpfWAsIHJlYWxtQWNjZXNzVG9rZW4sIHRoaXMuYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCksIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRDbGllbnRVVUlEKGFjY2Vzc1Rva2VuLCByZWFsbU5hbWUsIGNsaWVudElkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50VVVJRFwiLCB0cnVlKSkuZm9yKHRoaXMuZ2V0Q2xpZW50VVVJRCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9jbGllbnRzP2NsaWVudElkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNsaWVudElkKX1gLCBhY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIGNvbnN0IGNsaWVudFVVSUQgPSBkYXRhPy5bMF0/LmlkO1xuICAgICAgICBpZiAoY2xpZW50VVVJRClcbiAgICAgICAgICAgIHJldHVybiBjbGllbnRVVUlEO1xuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBDbGllbnQgVVVJRDogJHtjbGllbnRJZH1gKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoa2V5Y2xvYWtTZXR1cENvbmZpZywgcm9sZUNvbmZpZ3MsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRSb2xlc1wiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50Um9sZXMpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHJvbGVDb25maWdzID8/IGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LnJvbGVzID8/IFtdO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsIHJlYWxtQWNjZXNzVG9rZW4sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgICAgICB9LCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbik7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0QWNjZXNzVG9rZW4oa2V5Y2xvYWtVc2VyLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRBY2Nlc3NUb2tlbik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLCB1bmRlZmluZWQsIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2xpZW50X2lkOiBrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWQsXG4gICAgICAgICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgfSkudG9TdHJpbmcoKSwgMjAwLCB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKVxuICAgICAgICAgICAgcmV0dXJuIGRhdGEuYWNjZXNzX3Rva2VuO1xuICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gKTtcbiAgICB9XG4gICAgbm9ybWFsaXplQ2xpZW50Q29uZmlnKGJhc2UsIG92ZXJyaWRlcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICAgICAgICAgIHJlZGlyZWN0VXJpczogb3ZlcnJpZGVzLnJlZGlyZWN0VXJpcyA/PyBiYXNlLnJlZGlyZWN0VXJpcyxcbiAgICAgICAgICAgIHdlYk9yaWdpbnM6IG92ZXJyaWRlcy53ZWJPcmlnaW5zID8/IGJhc2Uud2ViT3JpZ2lucyxcbiAgICAgICAgICAgIHJvbGVzOiBvdmVycmlkZXMucm9sZXMgPz8gYmFzZS5yb2xlcyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2xpZW50SWQ6IGNsaWVudC5jbGllbnRJZCxcbiAgICAgICAgICAgIG5hbWU6IGNsaWVudC5jbGllbnROYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGNsaWVudC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHJvb3RVcmw6IGNsaWVudC5yb290VXJsLFxuICAgICAgICAgICAgYWRtaW5Vcmw6IGNsaWVudC5hZG1pblVybCxcbiAgICAgICAgICAgIGJhc2VVcmw6IGNsaWVudC5iYXNlVXJsLFxuICAgICAgICAgICAgc3Vycm9nYXRlQXV0aFJlcXVpcmVkOiBjbGllbnQuc3Vycm9nYXRlQXV0aFJlcXVpcmVkID8/IGZhbHNlLFxuICAgICAgICAgICAgZW5hYmxlZDogY2xpZW50LmVuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGFsd2F5c0Rpc3BsYXlJbkNvbnNvbGU6IGNsaWVudC5hbHdheXNEaXNwbGF5SW5Db25zb2xlID8/IGZhbHNlLFxuICAgICAgICAgICAgY2xpZW50QXV0aGVudGljYXRvclR5cGU6IFwiY2xpZW50LXNlY3JldFwiLFxuICAgICAgICAgICAgc2VjcmV0OiBjbGllbnQuc2VjcmV0LFxuICAgICAgICAgICAgcmVkaXJlY3RVcmlzOiBjbGllbnQucmVkaXJlY3RVcmlzLFxuICAgICAgICAgICAgd2ViT3JpZ2luczogY2xpZW50LndlYk9yaWdpbnMsXG4gICAgICAgICAgICBub3RCZWZvcmU6IGNsaWVudC5ub3RCZWZvcmUgPz8gMCxcbiAgICAgICAgICAgIGJlYXJlck9ubHk6IGNsaWVudC5iZWFyZXJPbmx5ID8/IGZhbHNlLFxuICAgICAgICAgICAgY29uc2VudFJlcXVpcmVkOiBjbGllbnQuY29uc2VudFJlcXVpcmVkID8/IGZhbHNlLFxuICAgICAgICAgICAgc3RhbmRhcmRGbG93RW5hYmxlZDogY2xpZW50LnN0YW5kYXJkRmxvd0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGltcGxpY2l0Rmxvd0VuYWJsZWQ6IGNsaWVudC5pbXBsaWNpdEZsb3dFbmFibGVkID8/IGZhbHNlLFxuICAgICAgICAgICAgZGlyZWN0QWNjZXNzR3JhbnRzRW5hYmxlZDogY2xpZW50LmRpcmVjdEFjY2Vzc0dyYW50c0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICAgIHNlcnZpY2VBY2NvdW50c0VuYWJsZWQ6IGNsaWVudC5zZXJ2aWNlQWNjb3VudHNFbmFibGVkID8/IHRydWUsXG4gICAgICAgICAgICBhdXRob3JpemF0aW9uU2VydmljZXNFbmFibGVkOiBjbGllbnQuYXV0aG9yaXphdGlvblNlcnZpY2VzRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgICAgcHVibGljQ2xpZW50OiBjbGllbnQucHVibGljQ2xpZW50ID8/IGZhbHNlLFxuICAgICAgICAgICAgZnJvbnRjaGFubmVsTG9nb3V0OiBjbGllbnQuZnJvbnRjaGFubmVsTG9nb3V0ID8/IHRydWUsXG4gICAgICAgICAgICBwcm90b2NvbDogY2xpZW50LnByb3RvY29sID8/IFwib3BlbmlkLWNvbm5lY3RcIixcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGNsaWVudC5hdHRyaWJ1dGVzID8/IHsgXCJhY2Nlc3MudG9rZW4ubGlmZXNwYW5cIjogXCIzMDBcIiB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBhc3luYyByZXF1ZXN0KG1ldGhvZCwgcGF0aCwgYWNjZXNzVG9rZW4sIHBheWxvYWQsIHN1Y2Nlc3NDb2RlLCBoZWFkZXJzLCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0ke3BhdGh9YCxcbiAgICAgICAgICAgIGRhdGE6IHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIC4uLihhY2Nlc3NUb2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi4ocGF5bG9hZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwYXlsb2FkICE9PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8geyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9XG4gICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gc3VjY2Vzc0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBoYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlLCBlcnJvck1zZykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgICAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgICAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICAgICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5sb2NhdGlvbjtcbiAgICAgICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJLZXljbG9hayByZXNwb25zZSBkaWQgbm90IGluY2x1ZGUgYSBsb2NhdGlvbiBoZWFkZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2F0aW9uLnNwbGl0KFwiL1wiKS5wb3AoKSA/PyBcIlwiO1xuICAgIH1cbiAgICBwYXJzZUpzb25SZXNwb25zZShkYXRhKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMyVjVZMnh2WVd0RGJHbGxiblJUWlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJ0bGVXTnNiMkZyTDNObGNuWnBZMlZ6TDB0bGVXTnNiMkZyUTJ4cFpXNTBVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUTB3c1pVRkJaU3hGUVVObUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVWQlEySXNZVUZCWVN4SFFVTmtMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGYWtNc1QwRkJUeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZQY0VRc1QwRkJUeXhMUVVGM1FpeE5RVUZOTEU5QlFVOHNRMEZCUXp0QlFVTTNReXhQUVVGUExFdEJRVXNzUzBGQlN5eE5RVUZOTEZsQlFWa3NRMEZCUXp0QlFVTndReXhQUVVGUExFVkJRVVVzTWtKQlFUSkNMRVZCUVVVc2NVSkJRV3RDTzBGQlJYaEVMRTFCUVUwc1QwRkJUeXh4UWtGQmMwSXNVMEZCVVN4clFrRkhNVU03U1VGRFF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTmtMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJkMElzUTBGQlF6dFJRVU5xUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE4wTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRGRFSXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU0xUWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGRGFFSXNiVUpCUVhkRExFVkJRM2hETEZOQlFXOUVMRVZCUTNCRUxFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZMEZCWXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNNVF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRGVrSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGRGNrUXNiVUpCUVcxQ0xFVkJRMjVDTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRM1pETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUlVGRE1VSXNVMEZCVXl4SlFVRkpMRVZCUVVVc1EwRkRhRUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrTXNUVUZCVFN4RlFVTk9MR2xDUVVGcFFpeHRRa0ZCYlVJc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eFZRVUZWTEVWQlEyeEZMR2RDUVVGblFpeEZRVU5vUWl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUXk5Q0xFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEyaEVMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zV1VGQldTeERRVU5vUWl4dFFrRkJkME1zUlVGRGVFTXNVMEZCYjBRc1JVRkRjRVFzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4alFVRmpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRemxETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU42UWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVU55UkN4dFFrRkJiVUlzUlVGRGJrSXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGRGRrTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeEZRVU14UWl4VFFVRlRMRWxCUVVrc1JVRkJSU3hEUVVOb1FpeERRVUZETzFGQlEwWXNUVUZCVFN4VlFVRlZMRWRCUTJRc1RVRkJUU3hEUVVGRExGVkJRVlU3V1VGRGFrSXNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRM1pDTEdkQ1FVRm5RaXhGUVVOb1FpeHRRa0ZCYlVJc1EwRkJReXhaUVVGaExFTkJRVU1zUzBGQlN5eEZRVU4yUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVObUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTXNRMEZCUXp0UlFVTk1MRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFFSXNTMEZCU3l4RlFVTk1MR2xDUVVGcFFpeHRRa0ZCYlVJc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eFpRVUZaTEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVWQlEzQkhMR2RDUVVGblFpeEZRVU5vUWl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUXk5Q0xFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVTnFRaXhYUVVGdFFpeEZRVU51UWl4VFFVRnBRaXhGUVVOcVFpeFJRVUZuUWl4RlFVTm9RaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRMME1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xRkJRekZDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrTXNTMEZCU3l4RlFVTk1MR2xDUVVGcFFpeFRRVUZUTEhGQ1FVRnhRaXhyUWtGQmEwSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hGUVVNM1JTeFhRVUZYTEVWQlExZ3NVMEZCVXl4RlFVTlVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJlVUlzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpORkxFMUJRVTBzVlVGQlZTeEhRVUZITEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dFJRVU5xUXl4SlFVRkpMRlZCUVZVN1dVRkJSU3hQUVVGUExGVkJRVlVzUTBGQlF6dFJRVU5zUXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIVkRRVUYxUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRGTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlEzSkNMRzFDUVVGM1F5eEZRVU40UXl4WFFVRnRSQ3hGUVVOdVJDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnVSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFJRVU01UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhYUVVGWExFbEJRVWtzYlVKQlFXMUNMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEY0VVc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZEY2tRc2JVSkJRVzFDTEVWQlEyNUNMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeExRVUZMTEUxQlFVMHNTVUZCU1N4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM3BDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRhRUlzVFVGQlRTeEZRVU5PTEdsQ1FVRnBRaXh0UWtGQmJVSXNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhaUVVGWkxHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxGRkJRVkVzUlVGRGFrZ3NaMEpCUVdkQ0xFVkJRMmhDTzJkQ1FVTkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdG5Ra0ZEYmtJc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVsQlFVa3NjVUpCUVhGQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdaMEpCUTNKRkxGTkJRVk1zUlVGQlJTeExRVUZMTzJkQ1FVTm9RaXhWUVVGVkxFVkJRVVVzU1VGQlNUdGhRVU5xUWl4RlFVTkVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTktMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVThzWjBKQlFXZENMRU5CUVVNc1RVRkJNa0k3VVVGRGJFUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJRMnhDTEU5QlFVOHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhSUVVGUkxFMUJRVTBzVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlR0WlFVTTVReXhQUVVGUExFVkJRVVVzUlVGQlJTeGpRVUZqTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVU3V1VGREwwTXNZMEZCWXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3V1VGRE1VSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETVVJc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCWVN4RFFVRkRMRU5CUVVNN1lVRkRkRVVzUTBGQlF6dFRRVU5JTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZUeXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUXk5Q0xHMUNRVUYzUXl4RlFVTjRReXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRSUVVOb1JTeFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNXVUZCWVN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE5VVXNRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRekZDTEZsQlFUQkNMRVZCUXpGQ0xFZEJRVWNzU1VGQmVVSTdVVUZGTlVJc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0UlFVTXpSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFMUJRVTBzUlVGRFRpeFhRVUZYTEZsQlFWa3NRMEZCUXl4TFFVRkxMR2REUVVGblF5eEZRVU0zUkN4VFFVRlRMRVZCUTFRc1NVRkJTU3hsUVVGbExFTkJRVU03V1VGRGJFSXNVMEZCVXl4RlFVRkZMRmxCUVZrc1EwRkJReXhYUVVGWE8xbEJRMjVETEZGQlFWRXNSVUZCUlN4WlFVRlpMRU5CUVVNc1VVRkJVVHRaUVVNdlFpeFJRVUZSTEVWQlFVVXNXVUZCV1N4RFFVRkRMRkZCUVZFN1dVRkRMMElzVlVGQlZTeEZRVUZGTEZWQlFWVTdVMEZEZGtJc1EwRkJReXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVU5pTEVkQlFVY3NSVUZEU0N4RlFVRkZMR05CUVdNc1JVRkJSU3h0UTBGQmJVTXNSVUZCUlN4RlFVTjJSQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVTnFReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVU5rTEVOQlFVTTdVVUZEUml4SlFVRkpMRWxCUVVrc1JVRkJSU3haUVVGWk8xbEJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUTJwRUxFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlEzWkNMR2RFUVVGblJDeFpRVUZaTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUTNoRkxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNjVUpCUVhGQ0xFTkJRek5DTEVsQlFUQkNMRVZCUXpGQ0xGTkJRWGRETzFGQlJYaERMRTlCUVU4N1dVRkRUQ3hIUVVGSExFbEJRVWs3V1VGRFVDeEhRVUZITEZOQlFWTTdXVUZEV2l4WlFVRlpMRVZCUVVVc1UwRkJVeXhEUVVGRExGbEJRVmtzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1R0WlFVTjZSQ3hWUVVGVkxFVkJRVVVzVTBGQlV5eERRVUZETEZWQlFWVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWVHRaUVVOdVJDeExRVUZMTEVWQlFVVXNVMEZCVXl4RFFVRkRMRXRCUVVzc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN6dFRRVU55UXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExHdENRVUZyUWl4RFFVTjRRaXhOUVVFMFFqdFJRVVUxUWl4UFFVRlBPMWxCUTB3c1VVRkJVU3hGUVVGRkxFMUJRVTBzUTBGQlF5eFJRVUZSTzFsQlEzcENMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zVlVGQlZUdFpRVU4yUWl4WFFVRlhMRVZCUVVVc1RVRkJUU3hEUVVGRExGZEJRVmM3V1VGREwwSXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhQUVVGUE8xbEJRM1pDTEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1VVRkJVVHRaUVVONlFpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRTlCUVU4N1dVRkRka0lzY1VKQlFYRkNMRVZCUVVVc1RVRkJUU3hEUVVGRExIRkNRVUZ4UWl4SlFVRkpMRXRCUVVzN1dVRkROVVFzVDBGQlR5eEZRVUZGTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWxCUVVrc1NVRkJTVHRaUVVNdlFpeHpRa0ZCYzBJc1JVRkJSU3hOUVVGTkxFTkJRVU1zYzBKQlFYTkNMRWxCUVVrc1MwRkJTenRaUVVNNVJDeDFRa0ZCZFVJc1JVRkJSU3hsUVVGbE8xbEJRM2hETEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1RVRkJUVHRaUVVOeVFpeFpRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRmxCUVZrN1dVRkRha01zVlVGQlZTeEZRVUZGTEUxQlFVMHNRMEZCUXl4VlFVRlZPMWxCUXpkQ0xGTkJRVk1zUlVGQlJTeE5RVUZOTEVOQlFVTXNVMEZCVXl4SlFVRkpMRU5CUVVNN1dVRkRhRU1zVlVGQlZTeEZRVUZGTEUxQlFVMHNRMEZCUXl4VlFVRlZMRWxCUVVrc1MwRkJTenRaUVVOMFF5eGxRVUZsTEVWQlFVVXNUVUZCVFN4RFFVRkRMR1ZCUVdVc1NVRkJTU3hMUVVGTE8xbEJRMmhFTEcxQ1FVRnRRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3hKUVVGSk8xbEJRM1pFTEcxQ1FVRnRRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3hMUVVGTE8xbEJRM2hFTEhsQ1FVRjVRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eDVRa0ZCZVVJc1NVRkJTU3hKUVVGSk8xbEJRMjVGTEhOQ1FVRnpRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eHpRa0ZCYzBJc1NVRkJTU3hKUVVGSk8xbEJRemRFTERSQ1FVRTBRaXhGUVVGRkxFMUJRVTBzUTBGQlF5dzBRa0ZCTkVJc1NVRkJTU3hKUVVGSk8xbEJRM3BGTEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1dVRkJXU3hKUVVGSkxFdEJRVXM3V1VGRE1VTXNhMEpCUVd0Q0xFVkJRVVVzVFVGQlRTeERRVUZETEd0Q1FVRnJRaXhKUVVGSkxFbEJRVWs3V1VGRGNrUXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhSUVVGUkxFbEJRVWtzWjBKQlFXZENPMWxCUXpkRExGVkJRVlVzUlVGQlJTeE5RVUZOTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVc2RVSkJRWFZDTEVWQlFVVXNTMEZCU3l4RlFVRkZPMU5CUTNCRkxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRia0lzVFVGQmVVTXNSVUZEZWtNc1NVRkJXU3hGUVVOYUxGZEJRU3RDTEVWQlF5OUNMRTlCUVdkQ0xFVkJRMmhDTEZkQlFXMUNMRVZCUTI1Q0xFOUJRU3RDTEVWQlF5OUNMRWRCUVVjc1NVRkJlVUk3VVVGRk5VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTJoRExFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU03V1VGRGVrTXNUVUZCVFR0WlFVTk9MRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NSVUZCUlR0WlFVTXpSQ3hKUVVGSkxFVkJRMFlzVDBGQlR5eExRVUZMTEZOQlFWTTdaMEpCUTI1Q0xFTkJRVU1zUTBGQlF5eFRRVUZUTzJkQ1FVTllMRU5CUVVNc1EwRkJReXhQUVVGUExFOUJRVThzUzBGQlN5eFJRVUZSTzI5Q1FVTXpRaXhEUVVGRExFTkJRVU1zVDBGQlR6dHZRa0ZEVkN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTTdXVUZETDBJc1QwRkJUeXhGUVVGRk8yZENRVU5RTEVkQlFVY3NUMEZCVHp0blFrRkRWaXhIUVVGSExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hWUVVGVkxGZEJRVmNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRGJFVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1MwRkJTeXhUUVVGVExFbEJRVWtzVDBGQlR5eFBRVUZQTEV0QlFVc3NVVUZCVVR0dlFrRkRkRVFzUTBGQlF5eERRVUZETEVWQlFVVXNZMEZCWXl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTzI5Q1FVTjRReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzJGQlExSTdXVUZEUkN4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETzJkQ1FVTXhRaXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRMREpDUVVFeVFpeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRmhMRU5CUVVNc1EwRkJRenRoUVVOMFJTeERRVUZETzFsQlEwWXNZMEZCWXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VTBGRE0wSXNRMEZCUXl4RFFVRkRPMUZCUTBnc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNCRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdVVUZEYWtRc1EwRkJRenRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZUeXhyUWtGQmEwSXNRMEZEZUVJc1VVRkJZU3hGUVVOaUxGZEJRVzFDTEVWQlEyNUNMRkZCUVdsQ08xRkJSV3BDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRkZCUVZFN1dVRkRkRUlzUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4alFVRmpMRmRCUVZjc1kwRkJZeXhSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEZGQlFWRXNRMEZCUXl4VlFVRlZMRWRCUVVjN1dVRkRPVVlzUTBGQlF5eERRVUZETEZsQlFWa3NWMEZCVnl4alFVRmpMRkZCUVZFc1EwRkJReXhOUVVGTkxFdEJRVXNzVVVGQlVTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMUZCUTI1R0xFMUJRVTBzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRm5RaXhEUVVGRE8xRkJRM3BETEVsQlFVa3NUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGJFVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU51UXl4RFFVRkRPMUZCUTBRc1NVRkJTU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnFSU3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTI1RExFTkJRVU03VVVGRFJDeEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOdVFpeE5RVUZOTEVsQlFVa3NaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0pETEVOQlFVTTdVVUZEUkN4SlFVRkpMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzVFVGQlRTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTNKRExFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRia01zUTBGQlF6dFJRVU5FTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGJrTXNRMEZCUXp0SlFVVlRMRlZCUVZVc1EwRkJReXhMUVVGWk8xRkJReTlDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NTVUZCU1N4bFFVRmxMRU5CUVVNN1VVRkRMMFFzVFVGQlRTeFpRVUZaTEVkQlFVY3NUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJSVE5ETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRha2dzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRemRITEU5QlFVOHNTVUZCU1N4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGRFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZETVVVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlJTeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4UFFVRlBMRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzQkRMRU5CUVVNN1NVRkZUeXgxUWtGQmRVSXNRMEZCUXl4UlFVRmhPMUZCUXpORExFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJPRUlzUTBGQlF6dFJRVU5xUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRFpDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXh4UkVGQmNVUXNRMEZEZEVRc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeFBRVUZQTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTNwRExFTkJRVU03U1VGRlR5eHBRa0ZCYVVJc1EwRkJTU3hKUVVGaE8xRkJRM2hETEVsQlFVa3NUMEZCVHl4SlFVRkpMRXRCUVVzc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRE4wSXNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVUwc1EwRkJRenRaUVVNdlFpeERRVUZETzFsQlFVTXNUVUZCVFN4RFFVRkRPMmRDUVVOUUxFOUJRVThzVTBGQlV5eERRVUZETzFsQlEyNUNMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJRMFFzVDBGQlR5eEpRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGNiaUFnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlMRnh1SUNCRGIyNW1iR2xqZEVWeWNtOXlMRnh1SUNCSmJuUmxjbTVoYkVWeWNtOXlMRnh1SUNCT2IzUkdiM1Z1WkVWeWNtOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVOdmJuUmxlSFIxWVd4QmNtZHpMQ0JOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWNnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUVOc2FXVnVkRUpoYzJWa1UyVnlkbWxqWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhSNWNHVWdlMXh1SUNCTFpYbGpiRzloYTBOc2FXVnVkRU52Ym1acFp5eGNiaUFnUzJWNVkyeHZZV3REYkdsbGJuUlNiMnhsUTI5dVptbG5MRnh1SUNCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxGeHVJQ0JMWlhsamJHOWhhMVZ6WlhJc1hHNTlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJRUY0YVc5ekxDQjdJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZTQm1jbTl0SUZ3aVlYaHBiM05jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJR2gwZEhCeklHWnliMjBnWENKdWIyUmxPbWgwZEhCelhDSTdYRzVwYlhCdmNuUWdleUJ5WlhOdmJIWmxTMlY1WTJ4dllXdEpjMUJ5YjJSMVkzUnBiMjRnZlNCbWNtOXRJRndpTGk5eWRXNTBhVzFsWENJN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTFpYbGpiRzloYTBOc2FXVnVkRk5sY25acFkyVWdaWGgwWlc1a2N5QkRiR2xsYm5SQ1lYTmxaRk5sY25acFkyVThYRzRnSUVGNGFXOXpTVzV6ZEdGdVkyVXNYRzRnSUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdkY2JqNGdlMXh1SUNCaGMzbHVZeUJwYm1sMGFXRnNhWHBsS0Z4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCamIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjN0lHTnNhV1Z1ZERvZ1FYaHBiM05KYm5OMFlXNWpaU0I5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1sdWFYUnBZV3hwZW1WY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1sdWFYUnBZV3hwZW1VcE8xeHVJQ0FnSUdOdmJuTjBJR052Ym1acFp5QTlJR04wZUVGeVozTmJNRjBnWVhNZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCMGFHbHpMbDlqYjI1bWFXY2dQU0JqYjI1bWFXYzdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBJRDBnZEdocGN5NWpjbVZoZEdWSWRIUndRMnhwWlc1MEtHTnZibVpwWnlrN1hHNGdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdZMnhwWlc1ME8xeHVJQ0FnSUhKbGRIVnliaUI3SUdOdmJtWnBaeXdnWTJ4cFpXNTBJSDA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJqY21WaGRHVkRiR2xsYm5Rb1hHNGdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnpvZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNCdmRtVnljbWxrWlhNNklGQmhjblJwWVd3OFMyVjVZMnh2WVd0RGJHbGxiblJEYjI1bWFXYytJSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbU55WldGMFpVTnNhV1Z1ZEZ3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WTNKbFlYUmxRMnhwWlc1MEtUdGNiaUFnSUNCamIyNXpkQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVJRDBnWVhkaGFYUWdkR2hwY3k1blpYUlNaV0ZzYlVGalkyVnpjMVJ2YTJWdUtGeHVJQ0FnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJR05zYVdWdWRDQTlJSFJvYVhNdWJtOXliV0ZzYVhwbFEyeHBaVzUwUTI5dVptbG5LRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTVqYkdsbGJuUXNYRzRnSUNBZ0lDQnZkbVZ5Y21sa1pYTWdQejhnZTMxY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pRVDFOVVhDSXNYRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UydGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3VjbVZoYkcxQmNHbFZjMlZ5UHk1eVpXRnNiWDB2WTJ4cFpXNTBjMkFzWEc0Z0lDQWdJQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdkR2hwY3k1aWRXbHNaRU5zYVdWdWRGQmhlV3h2WVdRb1kyeHBaVzUwS1N4Y2JpQWdJQ0FnSURJd01TeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaWGgwY21GamRGVlZTVVJtY205dFVtVnpjRzl1YzJVb2NtVnpjRzl1YzJVcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RYQmtZWFJsUTJ4cFpXNTBLRnh1SUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXYzZJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2NzWEc0Z0lDQWdiM1psY25KcFpHVnpPaUJRWVhKMGFXRnNQRXRsZVdOc2IyRnJRMnhwWlc1MFEyOXVabWxuUGlCOElIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpZFhCa1lYUmxRMnhwWlc1MFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1MWNHUmhkR1ZEYkdsbGJuUXBPMXh1SUNBZ0lHTnZibk4wSUhKbFlXeHRRV05qWlhOelZHOXJaVzRnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRkpsWVd4dFFXTmpaWE56Vkc5clpXNG9YRzRnSUNBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBJRDBnZEdocGN5NXViM0p0WVd4cGVtVkRiR2xsYm5SRGIyNW1hV2NvWEc0Z0lDQWdJQ0JyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG1Oc2FXVnVkQ3hjYmlBZ0lDQWdJRzkyWlhKeWFXUmxjeUEvUHlCN2ZWeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdZMnhwWlc1MFZWVkpSQ0E5WEc0Z0lDQWdJQ0JqYkdsbGJuUXVZMnhwWlc1MFZWVkpSQ0EvUDF4dUlDQWdJQ0FnS0dGM1lXbDBJSFJvYVhNdVoyVjBRMnhwWlc1MFZWVkpSQ2hjYmlBZ0lDQWdJQ0FnY21WaGJHMUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnk1eVpXRnNiVUZ3YVZWelpYSWhMbkpsWVd4dExGeHVJQ0FnSUNBZ0lDQmpiR2xsYm5RdVkyeHBaVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBZ0lDa3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lVRlZVWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTJ0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlQeTV5WldGc2JYMHZZMnhwWlc1MGN5OGtlMlZ1WTI5a1pWVlNTVU52YlhCdmJtVnVkQ2hqYkdsbGJuUlZWVWxFS1gxZ0xGeHVJQ0FnSUNBZ2NtVmhiRzFCWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhSb2FYTXVZblZwYkdSRGJHbGxiblJRWVhsc2IyRmtLR05zYVdWdWRDa3NYRzRnSUNBZ0lDQXlNRFFzWEc0Z0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWjJWMFEyeHBaVzUwVlZWSlJDaGNiaUFnSUNCaFkyTmxjM05VYjJ0bGJqb2djM1J5YVc1bkxGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJR05zYVdWdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVoyVjBRMnhwWlc1MFZWVkpSRndpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVaMlYwUTJ4cFpXNTBWVlZKUkNrN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQjBhR2x6TG5KbGNYVmxjM1FvWEc0Z0lDQWdJQ0JjSWtkRlZGd2lMRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHlaV0ZzYlU1aGJXVjlMMk5zYVdWdWRITS9ZMnhwWlc1MFNXUTlKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvWTJ4cFpXNTBTV1FwZldBc1hHNGdJQ0FnSUNCaFkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThRWEp5WVhrOGV5QnBaRDg2SUhOMGNtbHVaeUI5UGo0b2NtVnpjRzl1YzJVdVpHRjBZU2s3WEc0Z0lDQWdZMjl1YzNRZ1kyeHBaVzUwVlZWSlJDQTlJR1JoZEdFL0xsc3dYVDh1YVdRN1hHNGdJQ0FnYVdZZ0tHTnNhV1Z1ZEZWVlNVUXBJSEpsZEhWeWJpQmpiR2xsYm5SVlZVbEVPMXh1SUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0dCVmJtRmliR1VnZEc4Z1oyVjBJRXRsZVdOc2IyRnJJRU5zYVdWdWRDQlZWVWxFT2lBa2UyTnNhV1Z1ZEVsa2ZXQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZM0psWVhSbFEyeHBaVzUwVW05c1pYTW9YRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQnliMnhsUTI5dVptbG5jem9nUzJWNVkyeHZZV3REYkdsbGJuUlNiMnhsUTI5dVptbG5XMTBnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbU55WldGMFpVTnNhV1Z1ZEZKdmJHVnpYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWpjbVZoZEdWRGJHbGxiblJTYjJ4bGN5azdYRzRnSUNBZ1kyOXVjM1FnY205c1pYTWdQU0J5YjJ4bFEyOXVabWxuY3lBL1B5QnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MbU5zYVdWdWRDNXliMnhsY3lBL1B5QmJYVHRjYmlBZ0lDQmpiMjV6ZENCeVpXRnNiVUZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJTWldGc2JVRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdjbTlzWlNCdlppQnliMnhsY3lrZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ0lDQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MbkpsWVd4dFFYQnBWWE5sY2o4dWNtVmhiRzE5TDJOc2FXVnVkSE12Skh0clpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxtTnNhV1Z1ZEM1amJHbGxiblJWVlVsRWZTOXliMnhsYzJBc1hHNGdJQ0FnSUNBZ0lISmxZV3h0UVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0J1WVcxbE9pQnliMnhsTG5KdmJHVk9ZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJ5YjJ4bExtUmxjMk55YVhCMGFXOXVJRDgvSUdCQmRYUnZMV055WldGMFpXUWdjbTlzWlNBa2UzSnZiR1V1Y205c1pVNWhiV1Y5WUN4Y2JpQWdJQ0FnSUNBZ0lDQmpiMjF3YjNOcGRHVTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJR05zYVdWdWRGSnZiR1U2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSURJd01TeGNiaUFnSUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamNtVmhkR1ZJZEhSd1EyeHBaVzUwS0dOdmJtWnBaem9nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnlrNklFRjRhVzl6U1c1emRHRnVZMlVnZTF4dUlDQWdJSEpsZEhWeWJpQkJlR2x2Y3k1amNtVmhkR1VvZTF4dUlDQWdJQ0FnWW1GelpWVlNURG9nWUNSN1kyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdZMjl1Wm1sbkxtaHZjM1I5WUN4Y2JpQWdJQ0FnSUdobFlXUmxjbk02SUhzZ1hDSkRiMjUwWlc1MExWUjVjR1ZjSWpvZ1hDSmhjSEJzYVdOaGRHbHZiaTlxYzI5dVhDSWdmU3hjYmlBZ0lDQWdJSFpoYkdsa1lYUmxVM1JoZEhWek9pQW9LU0E5UGlCMGNuVmxMRnh1SUNBZ0lDQWdhSFIwY0hOQloyVnVkRG9nYm1WM0lHaDBkSEJ6TGtGblpXNTBLSHRjYmlBZ0lDQWdJQ0FnY21WcVpXTjBWVzVoZFhSb2IzSnBlbVZrT2lBb2NtVnpiMngyWlV0bGVXTnNiMkZyU1hOUWNtOWtkV04wYVc5dUtIUm9hWE11WTI5dVptbG5JR0Z6SUdGdWVTa3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJR2RsZEZKbFlXeHRRV05qWlhOelZHOXJaVzRvWEc0Z0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaem9nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG1kbGRGSmxZV3h0UVdOalpYTnpWRzlyWlc0cE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRUZqWTJWemMxUnZhMlZ1S0d0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlJU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUdkbGRFRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lHdGxlV05zYjJGclZYTmxjam9nUzJWNVkyeHZZV3RWYzJWeUxGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHh6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdVoyVjBRV05qWlhOelZHOXJaVzRwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pRVDFOVVhDSXNYRzRnSUNBZ0lDQmdMM0psWVd4dGN5OGtlMnRsZVdOc2IyRnJWWE5sY2k1eVpXRnNiWDB2Y0hKdmRHOWpiMnd2YjNCbGJtbGtMV052Ym01bFkzUXZkRzlyWlc1Z0xGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2JtVjNJRlZTVEZObFlYSmphRkJoY21GdGN5aDdYRzRnSUNBZ0lDQWdJR05zYVdWdWRGOXBaRG9nYTJWNVkyeHZZV3RWYzJWeUxtRndhVU5zYVdWdWRFbGtMRnh1SUNBZ0lDQWdJQ0IxYzJWeWJtRnRaVG9nYTJWNVkyeHZZV3RWYzJWeUxuVnpaWEp1WVcxbExGeHVJQ0FnSUNBZ0lDQndZWE56ZDI5eVpEb2dhMlY1WTJ4dllXdFZjMlZ5TG5CaGMzTjNiM0prTEZ4dUlDQWdJQ0FnSUNCbmNtRnVkRjkwZVhCbE9pQmNJbkJoYzNOM2IzSmtYQ0lzWEc0Z0lDQWdJQ0I5S1M1MGIxTjBjbWx1WnlncExGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdleUJjSW1OdmJuUmxiblF0ZEhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwzZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaRndpSUgwc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQmtZWFJoSUQwZ2RHaHBjeTV3WVhKelpVcHpiMjVTWlhOd2IyNXpaVHg3SUdGalkyVnpjMTkwYjJ0bGJqODZJSE4wY21sdVp5QjlQaWhjYmlBZ0lDQWdJSEpsYzNCdmJuTmxMbVJoZEdGY2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNoa1lYUmhQeTVoWTJObGMzTmZkRzlyWlc0cElISmxkSFZ5YmlCa1lYUmhMbUZqWTJWemMxOTBiMnRsYmp0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRnh1SUNBZ0lDQWdZRlZ1WVdKc1pTQjBieUJuWlhRZ1MyVjVZMnh2WVdzZ1lXTmpaWE56SUhSdmEyVnVJR1p2Y2lCMWMyVnlJQ1I3YTJWNVkyeHZZV3RWYzJWeUxuVnpaWEp1WVcxbGZXQmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnViM0p0WVd4cGVtVkRiR2xsYm5SRGIyNW1hV2NvWEc0Z0lDQWdZbUZ6WlRvZ1MyVjVZMnh2WVd0RGJHbGxiblJEYjI1bWFXY3NYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFdGxlV05zYjJGclEyeHBaVzUwUTI5dVptbG5QbHh1SUNBcE9pQkxaWGxqYkc5aGEwTnNhV1Z1ZEVOdmJtWnBaeUI3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDNHVMbUpoYzJVc1hHNGdJQ0FnSUNBdUxpNXZkbVZ5Y21sa1pYTXNYRzRnSUNBZ0lDQnlaV1JwY21WamRGVnlhWE02SUc5MlpYSnlhV1JsY3k1eVpXUnBjbVZqZEZWeWFYTWdQejhnWW1GelpTNXlaV1JwY21WamRGVnlhWE1zWEc0Z0lDQWdJQ0IzWldKUGNtbG5hVzV6T2lCdmRtVnljbWxrWlhNdWQyVmlUM0pwWjJsdWN5QS9QeUJpWVhObExuZGxZazl5YVdkcGJuTXNYRzRnSUNBZ0lDQnliMnhsY3pvZ2IzWmxjbkpwWkdWekxuSnZiR1Z6SUQ4L0lHSmhjMlV1Y205c1pYTXNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZblZwYkdSRGJHbGxiblJRWVhsc2IyRmtLRnh1SUNBZ0lHTnNhV1Z1ZERvZ1MyVjVZMnh2WVd0RGJHbGxiblJEYjI1bWFXZGNiaUFnS1RvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajRnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmpiR2xsYm5SSlpEb2dZMnhwWlc1MExtTnNhV1Z1ZEVsa0xGeHVJQ0FnSUNBZ2JtRnRaVG9nWTJ4cFpXNTBMbU5zYVdWdWRFNWhiV1VzWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ1kyeHBaVzUwTG1SbGMyTnlhWEIwYVc5dUxGeHVJQ0FnSUNBZ2NtOXZkRlZ5YkRvZ1kyeHBaVzUwTG5KdmIzUlZjbXdzWEc0Z0lDQWdJQ0JoWkcxcGJsVnliRG9nWTJ4cFpXNTBMbUZrYldsdVZYSnNMRnh1SUNBZ0lDQWdZbUZ6WlZWeWJEb2dZMnhwWlc1MExtSmhjMlZWY213c1hHNGdJQ0FnSUNCemRYSnliMmRoZEdWQmRYUm9VbVZ4ZFdseVpXUTZJR05zYVdWdWRDNXpkWEp5YjJkaGRHVkJkWFJvVW1WeGRXbHlaV1FnUHo4Z1ptRnNjMlVzWEc0Z0lDQWdJQ0JsYm1GaWJHVmtPaUJqYkdsbGJuUXVaVzVoWW14bFpDQS9QeUIwY25WbExGeHVJQ0FnSUNBZ1lXeDNZWGx6UkdsemNHeGhlVWx1UTI5dWMyOXNaVG9nWTJ4cFpXNTBMbUZzZDJGNWMwUnBjM0JzWVhsSmJrTnZibk52YkdVZ1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCamJHbGxiblJCZFhSb1pXNTBhV05oZEc5eVZIbHdaVG9nWENKamJHbGxiblF0YzJWamNtVjBYQ0lzWEc0Z0lDQWdJQ0J6WldOeVpYUTZJR05zYVdWdWRDNXpaV055WlhRc1hHNGdJQ0FnSUNCeVpXUnBjbVZqZEZWeWFYTTZJR05zYVdWdWRDNXlaV1JwY21WamRGVnlhWE1zWEc0Z0lDQWdJQ0IzWldKUGNtbG5hVzV6T2lCamJHbGxiblF1ZDJWaVQzSnBaMmx1Y3l4Y2JpQWdJQ0FnSUc1dmRFSmxabTl5WlRvZ1kyeHBaVzUwTG01dmRFSmxabTl5WlNBL1B5QXdMRnh1SUNBZ0lDQWdZbVZoY21WeVQyNXNlVG9nWTJ4cFpXNTBMbUpsWVhKbGNrOXViSGtnUHo4Z1ptRnNjMlVzWEc0Z0lDQWdJQ0JqYjI1elpXNTBVbVZ4ZFdseVpXUTZJR05zYVdWdWRDNWpiMjV6Wlc1MFVtVnhkV2x5WldRZ1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCemRHRnVaR0Z5WkVac2IzZEZibUZpYkdWa09pQmpiR2xsYm5RdWMzUmhibVJoY21SR2JHOTNSVzVoWW14bFpDQS9QeUIwY25WbExGeHVJQ0FnSUNBZ2FXMXdiR2xqYVhSR2JHOTNSVzVoWW14bFpEb2dZMnhwWlc1MExtbHRjR3hwWTJsMFJteHZkMFZ1WVdKc1pXUWdQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQmthWEpsWTNSQlkyTmxjM05IY21GdWRITkZibUZpYkdWa09pQmpiR2xsYm5RdVpHbHlaV04wUVdOalpYTnpSM0poYm5SelJXNWhZbXhsWkNBL1B5QjBjblZsTEZ4dUlDQWdJQ0FnYzJWeWRtbGpaVUZqWTI5MWJuUnpSVzVoWW14bFpEb2dZMnhwWlc1MExuTmxjblpwWTJWQlkyTnZkVzUwYzBWdVlXSnNaV1FnUHo4Z2RISjFaU3hjYmlBZ0lDQWdJR0YxZEdodmNtbDZZWFJwYjI1VFpYSjJhV05sYzBWdVlXSnNaV1E2SUdOc2FXVnVkQzVoZFhSb2IzSnBlbUYwYVc5dVUyVnlkbWxqWlhORmJtRmliR1ZrSUQ4L0lIUnlkV1VzWEc0Z0lDQWdJQ0J3ZFdKc2FXTkRiR2xsYm5RNklHTnNhV1Z1ZEM1d2RXSnNhV05EYkdsbGJuUWdQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQm1jbTl1ZEdOb1lXNXVaV3hNYjJkdmRYUTZJR05zYVdWdWRDNW1jbTl1ZEdOb1lXNXVaV3hNYjJkdmRYUWdQejhnZEhKMVpTeGNiaUFnSUNBZ0lIQnliM1J2WTI5c09pQmpiR2xsYm5RdWNISnZkRzlqYjJ3Z1B6OGdYQ0p2Y0dWdWFXUXRZMjl1Ym1WamRGd2lMRnh1SUNBZ0lDQWdZWFIwY21saWRYUmxjem9nWTJ4cFpXNTBMbUYwZEhKcFluVjBaWE1nUHo4Z2V5QmNJbUZqWTJWemN5NTBiMnRsYmk1c2FXWmxjM0JoYmx3aU9pQmNJak13TUZ3aUlIMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ2NtVnhkV1Z6ZENoY2JpQWdJQ0J0WlhSb2IyUTZJRndpUjBWVVhDSWdmQ0JjSWxCUFUxUmNJaUI4SUZ3aVVGVlVYQ0lnZkNCY0lrUkZURVZVUlZ3aUxGeHVJQ0FnSUhCaGRHZzZJSE4wY21sdVp5eGNiaUFnSUNCaFkyTmxjM05VYjJ0bGJqb2djM1J5YVc1bklId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lIQmhlV3h2WVdRNklIVnVhMjV2ZDI0c1hHNGdJQ0FnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2l4Y2JpQWdJQ0JvWldGa1pYSnpPaUJTWldOdmNtUThjM1J5YVc1bkxDQnpkSEpwYm1jK0xGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhoYm5rK0lIdGNiaUFnSUNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbkpsY1hWbGMzUXBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdWNtVnhkV1Z6ZENoN1hHNGdJQ0FnSUNCdFpYUm9iMlFzWEc0Z0lDQWdJQ0IxY213NklHQWtlM1JvYVhNdVkyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdkR2hwY3k1amIyNW1hV2N1YUc5emRIMGtlM0JoZEdoOVlDeGNiaUFnSUNBZ0lHUmhkR0U2WEc0Z0lDQWdJQ0FnSUhCaGVXeHZZV1FnUFQwOUlIVnVaR1ZtYVc1bFpGeHVJQ0FnSUNBZ0lDQWdJRDhnZFc1a1pXWnBibVZrWEc0Z0lDQWdJQ0FnSUNBZ09pQjBlWEJsYjJZZ2NHRjViRzloWkNBOVBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QndZWGxzYjJGa1hHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUVwVFQwNHVjM1J5YVc1bmFXWjVLSEJoZVd4dllXUXBMRnh1SUNBZ0lDQWdhR1ZoWkdWeWN6b2dlMXh1SUNBZ0lDQWdJQ0F1TGk1b1pXRmtaWEp6TEZ4dUlDQWdJQ0FnSUNBdUxpNG9ZV05qWlhOelZHOXJaVzRnUHlCN0lFRjFkR2h2Y21sNllYUnBiMjQ2SUdCQ1pXRnlaWElnSkh0aFkyTmxjM05VYjJ0bGJuMWdJSDBnT2lCN2ZTa3NYRzRnSUNBZ0lDQWdJQzR1TGlod1lYbHNiMkZrSUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnZEhsd1pXOW1JSEJoZVd4dllXUWdJVDA5SUZ3aWMzUnlhVzVuWENKY2JpQWdJQ0FnSUNBZ0lDQS9JSHNnWENKRGIyNTBaVzUwTFZSNWNHVmNJam9nWENKaGNIQnNhV05oZEdsdmJpOXFjMjl1WENJZ2ZWeHVJQ0FnSUNBZ0lDQWdJRG9nZTMwcExGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lHaDBkSEJ6UVdkbGJuUTZJRzVsZHlCb2RIUndjeTVCWjJWdWRDaDdYRzRnSUNBZ0lDQWdJSEpsYW1WamRGVnVZWFYwYUc5eWFYcGxaRG9nS0hKbGMyOXNkbVZMWlhsamJHOWhhMGx6VUhKdlpIVmpkR2x2YmloMGFHbHpMbU52Ym1acFp5QmhjeUJoYm5rcEtTeGNiaUFnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRkR0YwZFhNNklDZ3BJRDArSUhSeWRXVXNYRzRnSUNBZ2ZTazdYRzRnSUNBZ2FXWWdLSEpsYzNCdmJuTmxMbk4wWVhSMWN5QWhQVDBnYzNWalkyVnpjME52WkdVcElIdGNiaUFnSUNBZ0lIUm9hWE11YUdGdVpHeGxTSFIwY0ZKbGMzQnZibk5sS0hKbGMzQnZibk5sTENCemRXTmpaWE56UTI5a1pTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYUdGdVpHeGxTSFIwY0ZKbGMzQnZibk5sS0Z4dUlDQWdJSEpsYzNCdmJuTmxPaUJoYm5rc1hHNGdJQ0FnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2l4Y2JpQWdJQ0JsY25KdmNrMXpaejg2SUhOMGNtbHVaMXh1SUNBcE9pQjJiMmxrSUh0Y2JpQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdaWEp5YjNKTmMyZGNiaUFnSUNBZ0lEOGdZQ1I3WlhKeWIzSk5jMmQ5T2lCRmVIQmxZM1JsWkNBa2UzTjFZMk5sYzNORGIyUmxmU3dnY21WalpXbDJaV1FnSkh0eVpYTndiMjV6WlM1emRHRjBkWE45T2lBa2UzSmxjM0J2Ym5ObExuTjBZWFIxYzFSbGVIUjlMbUJjYmlBZ0lDQWdJRG9nWUVWNGNHVmpkR1ZrSUNSN2MzVmpZMlZ6YzBOdlpHVjlMQ0J5WldObGFYWmxaQ0FrZTNKbGMzQnZibk5sTG5OMFlYUjFjMzA2SUNSN2NtVnpjRzl1YzJVdWMzUmhkSFZ6VkdWNGRIMWdPMXh1SUNBZ0lHTnZibk4wSUhOMFlYUjFjeUE5SUhKbGMzQnZibk5sTG5OMFlYUjFjeUJoY3lCdWRXMWlaWEk3WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQTBJSHg4SUcxbGMzTmhaMlV1ZEc5TWIzZGxja05oYzJVb0tTNXBibU5zZFdSbGN5aGNJbTV2ZENCbWIzVnVaRndpS1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6ZEdGMGRYTWdQVDA5SURRd09TQjhmQ0J0WlhOellXZGxMblJ2VEc5M1pYSkRZWE5sS0NrdWFXNWpiSFZrWlhNb1hDSmpiMjVtYkdsamRGd2lLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVOdmJtWnNhV04wUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TUNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQXhJSHg4SUhOMFlYUjFjeUE5UFQwZ05EQXpLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnY0dGeWMyVkZjbkp2Y2lobGNuSnZjam9nUlhKeWIzSXBPaUJGY25KdmNpQjdYRzRnSUNBZ1kyOXVjM1FnYldWemMyRm5aU0E5SUdWeWNtOXlMbTFsYzNOaFoyVWdmSHdnWlhKeWIzSXVibUZ0WlNCOGZDQmNJbFZ1YTI1dmQyNGdaWEp5YjNKY0lqdGNiaUFnSUNCamIyNXpkQ0JzYjNkbGNrMWxjM05oWjJVZ1BTQnRaWE56WVdkbExuUnZURzkzWlhKRFlYTmxLQ2s3WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpYm05MElHWnZkVzVrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdORndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0poYkhKbFlXUjVJR1Y0YVhOMGMxd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0pqYjI1bWJHbGpkRndpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENJME1EbGNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1EyOXVabXhwWTNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lhVzUyWVd4cFpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ppWVdRZ2NtVnhkV1Z6ZEZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNREJjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKMWJtRjFkR2h2Y21sNlpXUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBeFhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltWnZjbUpwWkdSbGJsd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTUROY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdWNGRISmhZM1JWVlVsRVpuSnZiVkpsYzNCdmJuTmxLSEpsYzNCdmJuTmxPaUJoYm5rcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJR3h2WTJGMGFXOXVJRDBnY21WemNHOXVjMlV1YUdWaFpHVnljeTVzYjJOaGRHbHZiaUJoY3lCemRISnBibWNnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tDRnNiMk5oZEdsdmJpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lGd2lTMlY1WTJ4dllXc2djbVZ6Y0c5dWMyVWdaR2xrSUc1dmRDQnBibU5zZFdSbElHRWdiRzlqWVhScGIyNGdhR1ZoWkdWeVhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJzYjJOaGRHbHZiaTV6Y0d4cGRDaGNJaTljSWlrdWNHOXdLQ2tnUHo4Z1hDSmNJanRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVktjMjl1VW1WemNHOXVjMlU4VkQ0b1pHRjBZVG9nZFc1cmJtOTNiaWs2SUZRZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdaR0YwWVNBOVBUMGdYQ0p6ZEhKcGJtZGNJaWtnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFcFRUMDR1Y0dGeWMyVW9aR0YwWVNrZ1lYTWdWRHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWkdGMFlTQmhjeUJVTzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -297,5 +297,5 @@ function buildBrokerIdentityProviderPayload(config) {
|
|
|
297
297
|
config: providerConfig,
|
|
298
298
|
};
|
|
299
299
|
}
|
|
300
|
-
//# sourceMappingURL=KeycloakIdentityProviderService.js.map
|
|
301
|
-
//# sourceMappingURL=KeycloakIdentityProviderService.cjs.map
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9LZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFwRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxxQkFBa0I7QUFFeEQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGtCQUdwRDtJQUNDLEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUF3QixDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQzFCLG1CQUF3QyxFQUN4QyxTQUE4RCxFQUM5RCxHQUFHLElBQTZC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LElBQUksRUFBRSx1QkFBdUIsSUFBSSxJQUFJLENBQzdDO2dCQUNELHVCQUF1QixFQUFFLE1BQU0sQ0FDN0IsTUFBTSxDQUFDLElBQUksRUFBRSx1QkFBdUIsSUFBSSxLQUFLLENBQzlDO2FBQ0YsQ0FBQztRQUNOLEdBQUcsTUFBTSxDQUFDLE1BQU07S0FDakIsQ0FBQztJQUVGLE9BQU87UUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7UUFDbkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJO1FBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEtBQUs7UUFDdEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksS0FBSztRQUN0QyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLO1FBQ2xDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsSUFBSSxLQUFLO1FBQzVELHlCQUF5QixFQUFFLE1BQU0sQ0FBQyx5QkFBeUI7UUFDM0Qsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLHdCQUF3QjtRQUN6RCxNQUFNLEVBQUUsY0FBYztLQUN2QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHtcbiAgS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyQ29uZmlnLFxuICBLZXljbG9ha0Jyb2tlcklkZW50aXR5UHJvdmlkZXJDb25maWcsXG4gIEtleWNsb2FrQnJva2VyU2V0dXBDb25maWcsXG4gIEtleWNsb2FrU2V0dXBDb25maWcsXG4gIEtleWNsb2FrVXNlcixcbn0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWVcIjtcblxuZXhwb3J0IGNsYXNzIEtleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEtleWNsb2FrU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBjcmVhdGVJZGVudGl0eVByb3ZpZGVyKFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrSWRlbnRpdHlQcm92aWRlckNvbmZpZz4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUlkZW50aXR5UHJvdmlkZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXIpO1xuICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgaWRlbnRpdHlQcm92aWRlciA9IHRoaXMubm9ybWFsaXplSWRlbnRpdHlQcm92aWRlckNvbmZpZyhcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcuaWRlbnRpdHlQcm92aWRlciEsXG4gICAgICBvdmVycmlkZXMgPz8ge31cbiAgICApO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2lkZW50aXR5LXByb3ZpZGVyL2luc3RhbmNlc2AsXG4gICAgICByZWFsbUFjY2Vzc1Rva2VuLFxuICAgICAgdGhpcy5idWlsZElkZW50aXR5UHJvdmlkZXJQYXlsb2FkKGlkZW50aXR5UHJvdmlkZXIpLFxuICAgICAgMjAxLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUlkZW50aXR5UHJvdmlkZXIoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICBvdmVycmlkZXM6IFBhcnRpYWw8S2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyQ29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlSWRlbnRpdHlQcm92aWRlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudXBkYXRlSWRlbnRpdHlQcm92aWRlcik7XG4gICAgY29uc3QgcmVhbG1BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBpZGVudGl0eVByb3ZpZGVyID0gdGhpcy5ub3JtYWxpemVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5pZGVudGl0eVByb3ZpZGVyISxcbiAgICAgIG92ZXJyaWRlcyA/PyB7fVxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQVVRcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9pZGVudGl0eS1wcm92aWRlci9pbnN0YW5jZXMvJHtlbmNvZGVVUklDb21wb25lbnQoaWRlbnRpdHlQcm92aWRlci5hbGlhcyl9YCxcbiAgICAgIHJlYWxtQWNjZXNzVG9rZW4sXG4gICAgICB0aGlzLmJ1aWxkSWRlbnRpdHlQcm92aWRlclBheWxvYWQoaWRlbnRpdHlQcm92aWRlciksXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQnJva2VySWRlbnRpdHlQcm92aWRlcihcbiAgICBrZXljbG9ha1NldHVwQ29uZmlnOiBLZXljbG9ha0Jyb2tlclNldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVCcm9rZXJJZGVudGl0eVByb3ZpZGVyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVCcm9rZXJJZGVudGl0eVByb3ZpZGVyKTtcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9pZGVudGl0eS1wcm92aWRlci9pbnN0YW5jZXNgLFxuICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICBidWlsZEJyb2tlcklkZW50aXR5UHJvdmlkZXJQYXlsb2FkKGtleWNsb2FrU2V0dXBDb25maWcuYnJva2VyKSxcbiAgICAgIDIwMSxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVCcm9rZXJJZGVudGl0eVByb3ZpZGVyKFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrQnJva2VyU2V0dXBDb25maWcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZUJyb2tlcklkZW50aXR5UHJvdmlkZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZUJyb2tlcklkZW50aXR5UHJvdmlkZXIpO1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUFVUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vaWRlbnRpdHktcHJvdmlkZXIvaW5zdGFuY2VzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleWNsb2FrU2V0dXBDb25maWcuYnJva2VyLmFsaWFzKX1gLFxuICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICBidWlsZEJyb2tlcklkZW50aXR5UHJvdmlkZXJQYXlsb2FkKGtleWNsb2FrU2V0dXBDb25maWcuYnJva2VyKSxcbiAgICAgIDIwNCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVJZGVudGl0eVByb3ZpZGVyTWFwcGVycyhcbiAgICBrZXljbG9ha1NldHVwQ29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnLFxuICAgIHJvbGVDb25maWdzOiBhbnlbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlSWRlbnRpdHlQcm92aWRlck1hcHBlcnNcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXJNYXBwZXJzKTtcbiAgICBjb25zdCByb2xlcyA9IHJvbGVDb25maWdzID8/IGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LnJvbGVzID8/IFtdO1xuICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgaWRlbnRpdHlQcm92aWRlciA9IGtleWNsb2FrU2V0dXBDb25maWcuaWRlbnRpdHlQcm92aWRlciE7XG4gICAgZm9yIChjb25zdCByb2xlIG9mIHJvbGVzKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICAgIFwiUE9TVFwiLFxuICAgICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vaWRlbnRpdHktcHJvdmlkZXIvaW5zdGFuY2VzLyR7aWRlbnRpdHlQcm92aWRlci5hbGlhc30vbWFwcGVyc2AsXG4gICAgICAgIHJlYWxtQWNjZXNzVG9rZW4sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJBbGlhczogaWRlbnRpdHlQcm92aWRlci5hbGlhcyxcbiAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyTWFwcGVyOiBcIm9pZGMtcm9sZS1pZHAtbWFwcGVyXCIsXG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBzeW5jTW9kZTogaWRlbnRpdHlQcm92aWRlci5tYXBwZXJTeW5jTW9kZSA/PyBcIkZPUkNFXCIsXG4gICAgICAgICAgICBjbGFpbTogaWRlbnRpdHlQcm92aWRlci5tYXBwZXJDbGFpbU5hbWUgPz8gXCJncm91cHNcIixcbiAgICAgICAgICAgIFwiY2xhaW0udmFsdWVcIjogcm9sZS5jbGFpbVZhbHVlLFxuICAgICAgICAgICAgcm9sZTogYCR7a2V5Y2xvYWtTZXR1cENvbmZpZy5jbGllbnQuY2xpZW50SWR9LiR7cm9sZS5yb2xlTmFtZX1gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIDIwMSxcbiAgICAgICAge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyB8IEtleWNsb2FrQnJva2VyU2V0dXBDb25maWcsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKTtcbiAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlciEsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2Nlc3NUb2tlbihcbiAgICBrZXljbG9ha1VzZXI6IEtleWNsb2FrVXNlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFjY2Vzc1Rva2VuKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICBjbGllbnRfaWQ6IGtleWNsb2FrVXNlci5hcGlDbGllbnRJZCxcbiAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgZ3JhbnRfdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgfSkudG9TdHJpbmcoKSxcbiAgICAgIDIwMCxcbiAgICAgIHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG4gICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcbiAgICAgIGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplSWRlbnRpdHlQcm92aWRlckNvbmZpZyhcbiAgICBiYXNlOiBLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrSWRlbnRpdHlQcm92aWRlckNvbmZpZz5cbiAgKTogS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmFzZSxcbiAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5iYXNlLmNvbmZpZyxcbiAgICAgICAgLi4ub3ZlcnJpZGVzLmNvbmZpZyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJZGVudGl0eVByb3ZpZGVyUGF5bG9hZChcbiAgICBpZGVudGl0eVByb3ZpZGVyOiBLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJDb25maWdcbiAgKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICBhbGlhczogaWRlbnRpdHlQcm92aWRlci5hbGlhcyxcbiAgICAgIGRpc3BsYXlOYW1lOiBpZGVudGl0eVByb3ZpZGVyLmRpc3BsYXlOYW1lLFxuICAgICAgcHJvdmlkZXJJZDogaWRlbnRpdHlQcm92aWRlci5wcm92aWRlcklkID8/IFwib2lkY1wiLFxuICAgICAgZW5hYmxlZDogaWRlbnRpdHlQcm92aWRlci5lbmFibGVkID8/IHRydWUsXG4gICAgICB1cGRhdGVQcm9maWxlRmlyc3RMb2dpbk1vZGU6XG4gICAgICAgIGlkZW50aXR5UHJvdmlkZXIudXBkYXRlUHJvZmlsZUZpcnN0TG9naW5Nb2RlID8/IFwib25cIixcbiAgICAgIHRydXN0RW1haWw6IGlkZW50aXR5UHJvdmlkZXIudHJ1c3RFbWFpbCA/PyBmYWxzZSxcbiAgICAgIHN0b3JlVG9rZW46IGlkZW50aXR5UHJvdmlkZXIuc3RvcmVUb2tlbiA/PyBmYWxzZSxcbiAgICAgIGFkZFJlYWRUb2tlblJvbGVPbkNyZWF0ZTogZmFsc2UsXG4gICAgICBhdXRoZW50aWNhdGVCeURlZmF1bHQ6IGZhbHNlLFxuICAgICAgbGlua09ubHk6IGlkZW50aXR5UHJvdmlkZXIubGlua09ubHkgPz8gZmFsc2UsXG4gICAgICBoaWRlT25Mb2dpbjogaWRlbnRpdHlQcm92aWRlci5oaWRlT25Mb2dpbiA/PyBmYWxzZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICB1c2VySW5mb1VybDogXCJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vb2lkYy91c2VyaW5mb1wiLFxuICAgICAgICB2YWxpZGF0ZVNpZ25hdHVyZTogdHJ1ZSxcbiAgICAgICAgdG9rZW5Vcmw6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS9vYXV0aDIvdjIuMC90b2tlbmAsXG4gICAgICAgIGNsaWVudElkOiBpZGVudGl0eVByb3ZpZGVyLmNsaWVudElkLFxuICAgICAgICBqd2tzVXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vZGlzY292ZXJ5L3YyLjAva2V5c2AsXG4gICAgICAgIGlzc3VlcjogYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke2lkZW50aXR5UHJvdmlkZXIudGVuYW50SWR9L3YyLjBgLFxuICAgICAgICB1c2VKd2tzVXJsOiB0cnVlLFxuICAgICAgICBwa2NlRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIG1ldGFkYXRhRGVzY3JpcHRvclVybDogYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke2lkZW50aXR5UHJvdmlkZXIudGVuYW50SWR9L3YyLjAvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25gLFxuICAgICAgICBhdXRob3JpemF0aW9uVXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vb2F1dGgyL3YyLjAvYXV0aG9yaXplYCxcbiAgICAgICAgY2xpZW50QXV0aE1ldGhvZDogXCJjbGllbnRfc2VjcmV0X3Bvc3RcIixcbiAgICAgICAgbG9nb3V0VXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vb2F1dGgyL3YyLjAvbG9nb3V0YCxcbiAgICAgICAgc3luY01vZGU6IGlkZW50aXR5UHJvdmlkZXIuc3luY01vZGUgPz8gXCJMRUdBQ1lcIixcbiAgICAgICAgY2xpZW50U2VjcmV0OiBpZGVudGl0eVByb3ZpZGVyLmNsaWVudFNlY3JldCxcbiAgICAgICAgLi4uaWRlbnRpdHlQcm92aWRlci5jb25maWcsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcXVlc3QoXG4gICAgbWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJERUxFVEVcIixcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWNjZXNzVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwYXlsb2FkOiB1bmtub3duLFxuICAgIHN1Y2Nlc3NDb2RlOiBudW1iZXIsXG4gICAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgbWV0aG9kLFxuICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICBkYXRhOlxuICAgICAgICBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgLi4uKGFjY2Vzc1Rva2VuID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwYXlsb2FkICE9PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcgYXMgYW55KSksXG4gICAgICB9KSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgIH0pO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZTogYW55LCBzdWNjZXNzQ29kZTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzIGFzIG51bWJlcjtcbiAgICBjb25zdCBtZXNzYWdlID0gYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDkgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29uZmxpY3RcIikpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDApIHtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IEVycm9yKTogRXJyb3Ige1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUpzb25SZXNwb25zZTxUPihkYXRhOiB1bmtub3duKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKSBhcyBUO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhIGFzIFQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQnJva2VySWRlbnRpdHlQcm92aWRlclBheWxvYWQoXG4gIGNvbmZpZzogS2V5Y2xvYWtCcm9rZXJJZGVudGl0eVByb3ZpZGVyQ29uZmlnXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIGNvbnN0IHByb3ZpZGVyQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIC4uLihjb25maWcucHJvdG9jb2wgPT09IFwib2lkY1wiXG4gICAgICA/IHtcbiAgICAgICAgICBpc3N1ZXI6IGNvbmZpZy51cHN0cmVhbUlzc3VlciA/PyBcIlwiLFxuICAgICAgICAgIG1ldGFkYXRhRGVzY3JpcHRvclVybDogY29uZmlnLmRpc2NvdmVyeVVybCA/PyBcIlwiLFxuICAgICAgICAgIGF1dGhvcml6YXRpb25Vcmw6IGNvbmZpZy51cHN0cmVhbUlzc3VlclxuICAgICAgICAgICAgPyBgJHtjb25maWcudXBzdHJlYW1Jc3N1ZXJ9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGhgXG4gICAgICAgICAgICA6IFwiXCIsXG4gICAgICAgICAgdG9rZW5Vcmw6IGNvbmZpZy51cHN0cmVhbUlzc3VlclxuICAgICAgICAgICAgPyBgJHtjb25maWcudXBzdHJlYW1Jc3N1ZXJ9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYFxuICAgICAgICAgICAgOiBcIlwiLFxuICAgICAgICAgIHVzZXJJbmZvVXJsOiBjb25maWcudXBzdHJlYW1Jc3N1ZXJcbiAgICAgICAgICAgID8gYCR7Y29uZmlnLnVwc3RyZWFtSXNzdWVyfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC91c2VyaW5mb2BcbiAgICAgICAgICAgIDogXCJcIixcbiAgICAgICAgICBqd2tzVXJsOiBjb25maWcudXBzdHJlYW1Jc3N1ZXJcbiAgICAgICAgICAgID8gYCR7Y29uZmlnLnVwc3RyZWFtSXNzdWVyfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9jZXJ0c2BcbiAgICAgICAgICAgIDogXCJcIixcbiAgICAgICAgICBsb2dvdXRVcmw6IGNvbmZpZy51cHN0cmVhbUlzc3VlclxuICAgICAgICAgICAgPyBgJHtjb25maWcudXBzdHJlYW1Jc3N1ZXJ9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZ291dGBcbiAgICAgICAgICAgIDogXCJcIixcbiAgICAgICAgICBjbGllbnRJZDogY29uZmlnLmNsaWVudElkID8/IFwiXCIsXG4gICAgICAgICAgY2xpZW50U2VjcmV0OiBjb25maWcuY2xpZW50U2VjcmV0ID8/IFwiXCIsXG4gICAgICAgICAgY2xpZW50QXV0aE1ldGhvZDogY29uZmlnLmNsaWVudEF1dGhNZXRob2QgPz8gXCJjbGllbnRfc2VjcmV0X3Bvc3RcIixcbiAgICAgICAgICBjbGllbnRBc3NlcnRpb25TaWduaW5nQWxnOiBjb25maWcuY2xpZW50QXNzZXJ0aW9uU2lnbmluZ0FsZyA/PyBcIlwiLFxuICAgICAgICAgIGNsaWVudEFzc2VydGlvbkF1ZGllbmNlOiBjb25maWcuY2xpZW50QXNzZXJ0aW9uQXVkaWVuY2UgPz8gXCJcIixcbiAgICAgICAgICBkZWZhdWx0U2NvcGU6IGNvbmZpZy5kZWZhdWx0U2NvcGVzID8/IFwib3BlbmlkIHByb2ZpbGUgZW1haWxcIixcbiAgICAgICAgICB2YWxpZGF0ZVNpZ25hdHVyZTogXCJ0cnVlXCIsXG4gICAgICAgICAgdXNlSndrc1VybDogXCJ0cnVlXCIsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGVudGl0eUlkOiBjb25maWcuc2FtbD8uZW50aXR5SWQgPz8gXCJcIixcbiAgICAgICAgICBzaW5nbGVTaWduT25TZXJ2aWNlVXJsOiBjb25maWcuc2FtbD8uc2luZ2xlU2lnbk9uU2VydmljZVVybCA/PyBcIlwiLFxuICAgICAgICAgIHNpbmdsZUxvZ291dFNlcnZpY2VVcmw6IGNvbmZpZy5zYW1sPy5zaW5nbGVMb2dvdXRTZXJ2aWNlVXJsID8/IFwiXCIsXG4gICAgICAgICAgc2lnbmluZ0NlcnRpZmljYXRlOiBjb25maWcuc2FtbD8uc2lnbmluZ0NlcnRpZmljYXRlID8/IFwiXCIsXG4gICAgICAgICAgbmFtZUlkUG9saWN5Rm9ybWF0OiBjb25maWcuc2FtbD8ubmFtZUlkUG9saWN5Rm9ybWF0ID8/IFwiXCIsXG4gICAgICAgICAgcHJpbmNpcGFsQXR0cmlidXRlOiBjb25maWcuc2FtbD8ucHJpbmNpcGFsQXR0cmlidXRlID8/IFwiXCIsXG4gICAgICAgICAgc2lnbmF0dXJlQWxnb3JpdGhtOiBjb25maWcuc2FtbD8uc2lnbmF0dXJlQWxnb3JpdGhtID8/IFwiXCIsXG4gICAgICAgICAgcG9zdEJpbmRpbmdSZXNwb25zZTogU3RyaW5nKGNvbmZpZy5zYW1sPy5wb3N0QmluZGluZ1Jlc3BvbnNlID8/IHRydWUpLFxuICAgICAgICAgIHBvc3RCaW5kaW5nQXV0aG5SZXF1ZXN0OiBTdHJpbmcoXG4gICAgICAgICAgICBjb25maWcuc2FtbD8ucG9zdEJpbmRpbmdBdXRoblJlcXVlc3QgPz8gdHJ1ZVxuICAgICAgICAgICksXG4gICAgICAgICAgd2FudEF1dGhuUmVxdWVzdHNTaWduZWQ6IFN0cmluZyhcbiAgICAgICAgICAgIGNvbmZpZy5zYW1sPy53YW50QXV0aG5SZXF1ZXN0c1NpZ25lZCA/PyBmYWxzZVxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgIC4uLmNvbmZpZy5jb25maWcsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhczogY29uZmlnLmFsaWFzLFxuICAgIGRpc3BsYXlOYW1lOiBjb25maWcuZGlzcGxheU5hbWUsXG4gICAgcHJvdmlkZXJJZDogY29uZmlnLnByb3RvY29sLFxuICAgIGVuYWJsZWQ6IGNvbmZpZy5lbmFibGVkID8/IHRydWUsXG4gICAgdHJ1c3RFbWFpbDogY29uZmlnLnRydXN0RW1haWwgPz8gZmFsc2UsXG4gICAgc3RvcmVUb2tlbjogY29uZmlnLnN0b3JlVG9rZW4gPz8gZmFsc2UsXG4gICAgbGlua09ubHk6IGNvbmZpZy5saW5rT25seSA/PyBmYWxzZSxcbiAgICBhdXRoZW50aWNhdGVCeURlZmF1bHQ6IGNvbmZpZy5hdXRoZW50aWNhdGVCeURlZmF1bHQgPz8gZmFsc2UsXG4gICAgZmlyc3RCcm9rZXJMb2dpbkZsb3dBbGlhczogY29uZmlnLmZpcnN0QnJva2VyTG9naW5GbG93QWxpYXMsXG4gICAgcG9zdEJyb2tlckxvZ2luRmxvd0FsaWFzOiBjb25maWcucG9zdEJyb2tlckxvZ2luRmxvd0FsaWFzLFxuICAgIGNvbmZpZzogcHJvdmlkZXJDb25maWcsXG4gIH07XG59XG4iXX0=
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd01BLGdGQXlEQztBQWpRRCwyREFBd0c7QUFDeEcseUNBQW9EO0FBQ3BELGtEQUEwQjtBQUMxQixrREFBb0M7QUFDcEMsNkNBQTJEO0FBQzNELE1BQWEsK0JBQWdDLFNBQVEseUJBQWtCO0lBQ25FLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJO1FBQ2hFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDL0csTUFB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VyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJO1FBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEtBQUs7UUFDdEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksS0FBSztRQUN0QyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLO1FBQ2xDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsSUFBSSxLQUFLO1FBQzVELHlCQUF5QixFQUFFLE1BQU0sQ0FBQyx5QkFBeUI7UUFDM0Qsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLHdCQUF3QjtRQUN6RCxNQUFNLEVBQUUsY0FBYztLQUN6QixDQUFDO0FBQ04sQ0FBQztBQUNELDB1bUNBQTB1bUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lLmpzXCI7XG5leHBvcnQgY2xhc3MgS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlSWRlbnRpdHlQcm92aWRlcihrZXljbG9ha1NldHVwQ29uZmlnLCBvdmVycmlkZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVJZGVudGl0eVByb3ZpZGVyXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVJZGVudGl0eVByb3ZpZGVyKTtcbiAgICAgICAgY29uc3QgcmVhbG1BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgaWRlbnRpdHlQcm92aWRlciA9IHRoaXMubm9ybWFsaXplSWRlbnRpdHlQcm92aWRlckNvbmZpZyhrZXljbG9ha1NldHVwQ29uZmlnLmlkZW50aXR5UHJvdmlkZXIsIG92ZXJyaWRlcyA/PyB7fSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2lkZW50aXR5LXByb3ZpZGVyL2luc3RhbmNlc2AsIHJlYWxtQWNjZXNzVG9rZW4sIHRoaXMuYnVpbGRJZGVudGl0eVByb3ZpZGVyUGF5bG9hZChpZGVudGl0eVByb3ZpZGVyKSwgMjAxLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZUlkZW50aXR5UHJvdmlkZXIoa2V5Y2xvYWtTZXR1cENvbmZpZywgb3ZlcnJpZGVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlSWRlbnRpdHlQcm92aWRlclwiLCB0cnVlKSkuZm9yKHRoaXMudXBkYXRlSWRlbnRpdHlQcm92aWRlcik7XG4gICAgICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGlkZW50aXR5UHJvdmlkZXIgPSB0aGlzLm5vcm1hbGl6ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoa2V5Y2xvYWtTZXR1cENvbmZpZy5pZGVudGl0eVByb3ZpZGVyLCBvdmVycmlkZXMgPz8ge30pO1xuICAgICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXCJQVVRcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2lkZW50aXR5LXByb3ZpZGVyL2luc3RhbmNlcy8ke2VuY29kZVVSSUNvbXBvbmVudChpZGVudGl0eVByb3ZpZGVyLmFsaWFzKX1gLCByZWFsbUFjY2Vzc1Rva2VuLCB0aGlzLmJ1aWxkSWRlbnRpdHlQcm92aWRlclBheWxvYWQoaWRlbnRpdHlQcm92aWRlciksIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVCcm9rZXJJZGVudGl0eVByb3ZpZGVyKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVCcm9rZXJJZGVudGl0eVByb3ZpZGVyXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVCcm9rZXJJZGVudGl0eVByb3ZpZGVyKTtcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2lkZW50aXR5LXByb3ZpZGVyL2luc3RhbmNlc2AsIGFjY2Vzc1Rva2VuLCBidWlsZEJyb2tlcklkZW50aXR5UHJvdmlkZXJQYXlsb2FkKGtleWNsb2FrU2V0dXBDb25maWcuYnJva2VyKSwgMjAxLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZUJyb2tlcklkZW50aXR5UHJvdmlkZXIoa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZUJyb2tlcklkZW50aXR5UHJvdmlkZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZUJyb2tlcklkZW50aXR5UHJvdmlkZXIpO1xuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUFVUXCIsIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9pZGVudGl0eS1wcm92aWRlci9pbnN0YW5jZXMvJHtlbmNvZGVVUklDb21wb25lbnQoa2V5Y2xvYWtTZXR1cENvbmZpZy5icm9rZXIuYWxpYXMpfWAsIGFjY2Vzc1Rva2VuLCBidWlsZEJyb2tlcklkZW50aXR5UHJvdmlkZXJQYXlsb2FkKGtleWNsb2FrU2V0dXBDb25maWcuYnJva2VyKSwgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUlkZW50aXR5UHJvdmlkZXJNYXBwZXJzKGtleWNsb2FrU2V0dXBDb25maWcsIHJvbGVDb25maWdzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlSWRlbnRpdHlQcm92aWRlck1hcHBlcnNcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXJNYXBwZXJzKTtcbiAgICAgICAgY29uc3Qgcm9sZXMgPSByb2xlQ29uZmlncyA/PyBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5yb2xlcyA/PyBbXTtcbiAgICAgICAgY29uc3QgcmVhbG1BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgaWRlbnRpdHlQcm92aWRlciA9IGtleWNsb2FrU2V0dXBDb25maWcuaWRlbnRpdHlQcm92aWRlcjtcbiAgICAgICAgZm9yIChjb25zdCByb2xlIG9mIHJvbGVzKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXCJQT1NUXCIsIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9pZGVudGl0eS1wcm92aWRlci9pbnN0YW5jZXMvJHtpZGVudGl0eVByb3ZpZGVyLmFsaWFzfS9tYXBwZXJzYCwgcmVhbG1BY2Nlc3NUb2tlbiwge1xuICAgICAgICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckFsaWFzOiBpZGVudGl0eVByb3ZpZGVyLmFsaWFzLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJNYXBwZXI6IFwib2lkYy1yb2xlLWlkcC1tYXBwZXJcIixcbiAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgc3luY01vZGU6IGlkZW50aXR5UHJvdmlkZXIubWFwcGVyU3luY01vZGUgPz8gXCJGT1JDRVwiLFxuICAgICAgICAgICAgICAgICAgICBjbGFpbTogaWRlbnRpdHlQcm92aWRlci5tYXBwZXJDbGFpbU5hbWUgPz8gXCJncm91cHNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjbGFpbS52YWx1ZVwiOiByb2xlLmNsYWltVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHJvbGU6IGAke2tleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LmNsaWVudElkfS4ke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSwgMjAxLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY3JlYXRlSHR0cENsaWVudChjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICAgICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldEFjY2Vzc1Rva2VuKGtleWNsb2FrVXNlciwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCwgdW5kZWZpbmVkLCBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgIH0pLnRvU3RyaW5nKCksIDIwMCwgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgaWYgKGRhdGE/LmFjY2Vzc190b2tlbilcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBhY2Nlc3MgdG9rZW4gZm9yIHVzZXIgJHtrZXljbG9ha1VzZXIudXNlcm5hbWV9YCk7XG4gICAgfVxuICAgIG5vcm1hbGl6ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoYmFzZSwgb3ZlcnJpZGVzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgICAgLi4ub3ZlcnJpZGVzLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uYmFzZS5jb25maWcsXG4gICAgICAgICAgICAgICAgLi4ub3ZlcnJpZGVzLmNvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGJ1aWxkSWRlbnRpdHlQcm92aWRlclBheWxvYWQoaWRlbnRpdHlQcm92aWRlcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWxpYXM6IGlkZW50aXR5UHJvdmlkZXIuYWxpYXMsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogaWRlbnRpdHlQcm92aWRlci5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHByb3ZpZGVySWQ6IGlkZW50aXR5UHJvdmlkZXIucHJvdmlkZXJJZCA/PyBcIm9pZGNcIixcbiAgICAgICAgICAgIGVuYWJsZWQ6IGlkZW50aXR5UHJvdmlkZXIuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgICAgdXBkYXRlUHJvZmlsZUZpcnN0TG9naW5Nb2RlOiBpZGVudGl0eVByb3ZpZGVyLnVwZGF0ZVByb2ZpbGVGaXJzdExvZ2luTW9kZSA/PyBcIm9uXCIsXG4gICAgICAgICAgICB0cnVzdEVtYWlsOiBpZGVudGl0eVByb3ZpZGVyLnRydXN0RW1haWwgPz8gZmFsc2UsXG4gICAgICAgICAgICBzdG9yZVRva2VuOiBpZGVudGl0eVByb3ZpZGVyLnN0b3JlVG9rZW4gPz8gZmFsc2UsXG4gICAgICAgICAgICBhZGRSZWFkVG9rZW5Sb2xlT25DcmVhdGU6IGZhbHNlLFxuICAgICAgICAgICAgYXV0aGVudGljYXRlQnlEZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgIGxpbmtPbmx5OiBpZGVudGl0eVByb3ZpZGVyLmxpbmtPbmx5ID8/IGZhbHNlLFxuICAgICAgICAgICAgaGlkZU9uTG9naW46IGlkZW50aXR5UHJvdmlkZXIuaGlkZU9uTG9naW4gPz8gZmFsc2UsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICB1c2VySW5mb1VybDogXCJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vb2lkYy91c2VyaW5mb1wiLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlU2lnbmF0dXJlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRva2VuVXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vb2F1dGgyL3YyLjAvdG9rZW5gLFxuICAgICAgICAgICAgICAgIGNsaWVudElkOiBpZGVudGl0eVByb3ZpZGVyLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGp3a3NVcmw6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS9kaXNjb3ZlcnkvdjIuMC9rZXlzYCxcbiAgICAgICAgICAgICAgICBpc3N1ZXI6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS92Mi4wYCxcbiAgICAgICAgICAgICAgICB1c2VKd2tzVXJsOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBrY2VFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YURlc2NyaXB0b3JVcmw6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS92Mi4wLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYCxcbiAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uVXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vb2F1dGgyL3YyLjAvYXV0aG9yaXplYCxcbiAgICAgICAgICAgICAgICBjbGllbnRBdXRoTWV0aG9kOiBcImNsaWVudF9zZWNyZXRfcG9zdFwiLFxuICAgICAgICAgICAgICAgIGxvZ291dFVybDogYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke2lkZW50aXR5UHJvdmlkZXIudGVuYW50SWR9L29hdXRoMi92Mi4wL2xvZ291dGAsXG4gICAgICAgICAgICAgICAgc3luY01vZGU6IGlkZW50aXR5UHJvdmlkZXIuc3luY01vZGUgPz8gXCJMRUdBQ1lcIixcbiAgICAgICAgICAgICAgICBjbGllbnRTZWNyZXQ6IGlkZW50aXR5UHJvdmlkZXIuY2xpZW50U2VjcmV0LFxuICAgICAgICAgICAgICAgIC4uLmlkZW50aXR5UHJvdmlkZXIuY29uZmlnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWVzdChtZXRob2QsIHBhdGgsIGFjY2Vzc1Rva2VuLCBwYXlsb2FkLCBzdWNjZXNzQ29kZSwgaGVhZGVycywgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICAgICAgICBkYXRhOiBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICAgICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlSnNvblJlc3BvbnNlKGRhdGEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQnJva2VySWRlbnRpdHlQcm92aWRlclBheWxvYWQoY29uZmlnKSB7XG4gICAgY29uc3QgcHJvdmlkZXJDb25maWcgPSB7XG4gICAgICAgIC4uLihjb25maWcucHJvdG9jb2wgPT09IFwib2lkY1wiXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBpc3N1ZXI6IGNvbmZpZy51cHN0cmVhbUlzc3VlciA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhRGVzY3JpcHRvclVybDogY29uZmlnLmRpc2NvdmVyeVVybCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25Vcmw6IGNvbmZpZy51cHN0cmVhbUlzc3VlclxuICAgICAgICAgICAgICAgICAgICA/IGAke2NvbmZpZy51cHN0cmVhbUlzc3Vlcn0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvYXV0aGBcbiAgICAgICAgICAgICAgICAgICAgOiBcIlwiLFxuICAgICAgICAgICAgICAgIHRva2VuVXJsOiBjb25maWcudXBzdHJlYW1Jc3N1ZXJcbiAgICAgICAgICAgICAgICAgICAgPyBgJHtjb25maWcudXBzdHJlYW1Jc3N1ZXJ9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYFxuICAgICAgICAgICAgICAgICAgICA6IFwiXCIsXG4gICAgICAgICAgICAgICAgdXNlckluZm9Vcmw6IGNvbmZpZy51cHN0cmVhbUlzc3VlclxuICAgICAgICAgICAgICAgICAgICA/IGAke2NvbmZpZy51cHN0cmVhbUlzc3Vlcn0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdXNlcmluZm9gXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIixcbiAgICAgICAgICAgICAgICBqd2tzVXJsOiBjb25maWcudXBzdHJlYW1Jc3N1ZXJcbiAgICAgICAgICAgICAgICAgICAgPyBgJHtjb25maWcudXBzdHJlYW1Jc3N1ZXJ9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2NlcnRzYFxuICAgICAgICAgICAgICAgICAgICA6IFwiXCIsXG4gICAgICAgICAgICAgICAgbG9nb3V0VXJsOiBjb25maWcudXBzdHJlYW1Jc3N1ZXJcbiAgICAgICAgICAgICAgICAgICAgPyBgJHtjb25maWcudXBzdHJlYW1Jc3N1ZXJ9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZ291dGBcbiAgICAgICAgICAgICAgICAgICAgOiBcIlwiLFxuICAgICAgICAgICAgICAgIGNsaWVudElkOiBjb25maWcuY2xpZW50SWQgPz8gXCJcIixcbiAgICAgICAgICAgICAgICBjbGllbnRTZWNyZXQ6IGNvbmZpZy5jbGllbnRTZWNyZXQgPz8gXCJcIixcbiAgICAgICAgICAgICAgICBjbGllbnRBdXRoTWV0aG9kOiBjb25maWcuY2xpZW50QXV0aE1ldGhvZCA/PyBcImNsaWVudF9zZWNyZXRfcG9zdFwiLFxuICAgICAgICAgICAgICAgIGNsaWVudEFzc2VydGlvblNpZ25pbmdBbGc6IGNvbmZpZy5jbGllbnRBc3NlcnRpb25TaWduaW5nQWxnID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgY2xpZW50QXNzZXJ0aW9uQXVkaWVuY2U6IGNvbmZpZy5jbGllbnRBc3NlcnRpb25BdWRpZW5jZSA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRTY29wZTogY29uZmlnLmRlZmF1bHRTY29wZXMgPz8gXCJvcGVuaWQgcHJvZmlsZSBlbWFpbFwiLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlU2lnbmF0dXJlOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICB1c2VKd2tzVXJsOiBcInRydWVcIixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIGVudGl0eUlkOiBjb25maWcuc2FtbD8uZW50aXR5SWQgPz8gXCJcIixcbiAgICAgICAgICAgICAgICBzaW5nbGVTaWduT25TZXJ2aWNlVXJsOiBjb25maWcuc2FtbD8uc2luZ2xlU2lnbk9uU2VydmljZVVybCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIHNpbmdsZUxvZ291dFNlcnZpY2VVcmw6IGNvbmZpZy5zYW1sPy5zaW5nbGVMb2dvdXRTZXJ2aWNlVXJsID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgc2lnbmluZ0NlcnRpZmljYXRlOiBjb25maWcuc2FtbD8uc2lnbmluZ0NlcnRpZmljYXRlID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgbmFtZUlkUG9saWN5Rm9ybWF0OiBjb25maWcuc2FtbD8ubmFtZUlkUG9saWN5Rm9ybWF0ID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgcHJpbmNpcGFsQXR0cmlidXRlOiBjb25maWcuc2FtbD8ucHJpbmNpcGFsQXR0cmlidXRlID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgc2lnbmF0dXJlQWxnb3JpdGhtOiBjb25maWcuc2FtbD8uc2lnbmF0dXJlQWxnb3JpdGhtID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgcG9zdEJpbmRpbmdSZXNwb25zZTogU3RyaW5nKGNvbmZpZy5zYW1sPy5wb3N0QmluZGluZ1Jlc3BvbnNlID8/IHRydWUpLFxuICAgICAgICAgICAgICAgIHBvc3RCaW5kaW5nQXV0aG5SZXF1ZXN0OiBTdHJpbmcoY29uZmlnLnNhbWw/LnBvc3RCaW5kaW5nQXV0aG5SZXF1ZXN0ID8/IHRydWUpLFxuICAgICAgICAgICAgICAgIHdhbnRBdXRoblJlcXVlc3RzU2lnbmVkOiBTdHJpbmcoY29uZmlnLnNhbWw/LndhbnRBdXRoblJlcXVlc3RzU2lnbmVkID8/IGZhbHNlKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAuLi5jb25maWcuY29uZmlnLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYWxpYXM6IGNvbmZpZy5hbGlhcyxcbiAgICAgICAgZGlzcGxheU5hbWU6IGNvbmZpZy5kaXNwbGF5TmFtZSxcbiAgICAgICAgcHJvdmlkZXJJZDogY29uZmlnLnByb3RvY29sLFxuICAgICAgICBlbmFibGVkOiBjb25maWcuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICB0cnVzdEVtYWlsOiBjb25maWcudHJ1c3RFbWFpbCA/PyBmYWxzZSxcbiAgICAgICAgc3RvcmVUb2tlbjogY29uZmlnLnN0b3JlVG9rZW4gPz8gZmFsc2UsXG4gICAgICAgIGxpbmtPbmx5OiBjb25maWcubGlua09ubHkgPz8gZmFsc2UsXG4gICAgICAgIGF1dGhlbnRpY2F0ZUJ5RGVmYXVsdDogY29uZmlnLmF1dGhlbnRpY2F0ZUJ5RGVmYXVsdCA/PyBmYWxzZSxcbiAgICAgICAgZmlyc3RCcm9rZXJMb2dpbkZsb3dBbGlhczogY29uZmlnLmZpcnN0QnJva2VyTG9naW5GbG93QWxpYXMsXG4gICAgICAgIHBvc3RCcm9rZXJMb2dpbkZsb3dBbGlhczogY29uZmlnLnBvc3RCcm9rZXJMb2dpbkZsb3dBbGlhcyxcbiAgICAgICAgY29uZmlnOiBwcm92aWRlckNvbmZpZyxcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJWNVkyeHZZV3RKWkdWdWRHbDBlVkJ5YjNacFpHVnlVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlyWlhsamJHOWhheTl6WlhKMmFXTmxjeTlMWlhsamJHOWhhMGxrWlc1MGFYUjVVSEp2ZG1sa1pYSlRaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4bFFVRmxMRVZCUTJZc1lVRkJZU3hGUVVOaUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVkQlEyUXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVVZxUXl4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVkZ3UkN4UFFVRlBMRXRCUVhkQ0xFMUJRVTBzVDBGQlR5eERRVUZETzBGQlF6ZERMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzV1VGQldTeERRVUZETzBGQlEzQkRMRTlCUVU4c1JVRkJSU3d5UWtGQk1rSXNSVUZCUlN4eFFrRkJhMEk3UVVGRmVFUXNUVUZCVFN4UFFVRlBMQ3RDUVVGblF5eFRRVUZSTEd0Q1FVZHdSRHRKUVVORExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlEyUXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3haUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6VkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRjNRaXhEUVVGRE8xRkJRMnBFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJRM1JDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVNM1F5eEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMFFpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRE8wbEJRelZDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTEVOQlF6RkNMRzFDUVVGM1F5eEZRVU40UXl4VFFVRTRSQ3hGUVVNNVJDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSGRDUVVGM1FpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjRSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dFJRVU51UXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVU55UkN4dFFrRkJiVUlzUlVGRGJrSXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1NVRkJTU3hEUVVGRExDdENRVUVyUWl4RFFVTXpSQ3h0UWtGQmJVSXNRMEZCUXl4blFrRkJhVUlzUlVGRGNrTXNVMEZCVXl4SlFVRkpMRVZCUVVVc1EwRkRhRUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRhRUlzVFVGQlRTeEZRVU5PTEdsQ1FVRnBRaXh0UWtGQmJVSXNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXc0UWtGQk9FSXNSVUZEZEVZc1owSkJRV2RDTEVWQlEyaENMRWxCUVVrc1EwRkJReXcwUWtGQk5FSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEZRVU51UkN4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExITkNRVUZ6UWl4RFFVTXhRaXh0UWtGQmQwTXNSVUZEZUVNc1UwRkJPRVFzUlVGRE9VUXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3gzUWtGQmQwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRlRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTTdVVUZEYmtNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZEY2tRc2JVSkJRVzFDTEVWQlEyNUNMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUTBGQlF5d3JRa0ZCSzBJc1EwRkRNMFFzYlVKQlFXMUNMRU5CUVVNc1owSkJRV2xDTEVWQlEzSkRMRk5CUVZNc1NVRkJTU3hGUVVGRkxFTkJRMmhDTEVOQlFVTTdVVUZEUml4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMmhDTEV0QlFVc3NSVUZEVEN4cFFrRkJhVUlzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzWjBOQlFXZERMR3RDUVVGclFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVWQlEzQkpMR2RDUVVGblFpeEZRVU5vUWl4SlFVRkpMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUlVGRGJrUXNSMEZCUnl4RlFVTklMRVZCUVVVc1JVRkRSaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXcwUWtGQk5FSXNRMEZEYUVNc2JVSkJRVGhETEVWQlF6bERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzT0VKQlFUaENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRemxFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXcwUWtGQk5FSXNRMEZCUXl4RFFVRkRPMUZCUTNwRExFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVU5vUkN4dFFrRkJiVUlzUlVGRGJrSXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZEYUVJc1RVRkJUU3hGUVVOT0xHbENRVUZwUWl4dFFrRkJiVUlzUTBGQlF5eFpRVUZaTEVWQlFVVXNTMEZCU3l3NFFrRkJPRUlzUlVGRGRFWXNWMEZCVnl4RlFVTllMR3REUVVGclF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVU01UkN4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExEUkNRVUUwUWl4RFFVTm9ReXh0UWtGQk9FTXNSVUZET1VNc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTdzRRa0ZCT0VJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE9VUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNN1VVRkRla01zVFVGQlRTeFhRVUZYTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlEyaEVMRzFDUVVGdFFpeEZRVU51UWl4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8xRkJRMFlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhMUVVGTExFVkJRMHdzYVVKQlFXbENMRzFDUVVGdFFpeERRVUZETEZsQlFWa3NSVUZCUlN4TFFVRkxMR2REUVVGblF5eHJRa0ZCYTBJc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUlVGRE9Va3NWMEZCVnl4RlFVTllMR3REUVVGclF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVU01UkN4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExEWkNRVUUyUWl4RFFVTnFReXh0UWtGQmQwTXNSVUZEZUVNc1YwRkJPRUlzUlVGRE9VSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3dyUWtGQkswSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRMMFFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRFpDUVVFMlFpeERRVUZETEVOQlFVTTdVVUZETVVNc1RVRkJUU3hMUVVGTExFZEJRVWNzVjBGQlZ5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTNCRkxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUTNKRUxHMUNRVUZ0UWl4RlFVTnVRaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhuUWtGQmFVSXNRMEZCUXp0UlFVTXZSQ3hMUVVGTExFMUJRVTBzU1VGQlNTeEpRVUZKTEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTNwQ0xFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZEYUVJc1RVRkJUU3hGUVVOT0xHbENRVUZwUWl4dFFrRkJiVUlzUTBGQlF5eFpRVUZaTEVWQlFVVXNTMEZCU3l4blEwRkJaME1zWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhWUVVGVkxFVkJRM2hJTEdkQ1FVRm5RaXhGUVVOb1FqdG5Ra0ZEUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkU3WjBKQlEyNUNMSEZDUVVGeFFpeEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFdEJRVXM3WjBKQlF6ZERMSE5DUVVGelFpeEZRVUZGTEhOQ1FVRnpRanRuUWtGRE9VTXNUVUZCVFN4RlFVRkZPMjlDUVVOT0xGRkJRVkVzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhqUVVGakxFbEJRVWtzVDBGQlR6dHZRa0ZEY0VRc1MwRkJTeXhGUVVGRkxHZENRVUZuUWl4RFFVRkRMR1ZCUVdVc1NVRkJTU3hSUVVGUk8yOUNRVU51UkN4aFFVRmhMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlU3YjBKQlF6bENMRWxCUVVrc1JVRkJSU3hIUVVGSExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlR0cFFrRkRhRVU3WVVGRFJpeEZRVU5FTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5LTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlU4c1owSkJRV2RDTEVOQlFVTXNUVUZCTWtJN1VVRkRiRVFzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTJ4Q0xFOUJRVThzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4UlFVRlJMRTFCUVUwc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJUdFpRVU01UXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hqUVVGakxFVkJRVVVzYTBKQlFXdENMRVZCUVVVN1dVRkRMME1zWTBGQll5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1dVRkRNVUlzVlVGQlZTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE1VSXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQllTeERRVUZETEVOQlFVTTdZVUZEZEVVc1EwRkJRenRUUVVOSUxFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlF5OUNMRzFDUVVGdlJTeEZRVU53UlN4SFFVRkhMRWxCUVhsQ08xRkJSVFZDTEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zV1VGQllTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkROVVVzUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUXpGQ0xGbEJRVEJDTEVWQlF6RkNMRWRCUVVjc1NVRkJlVUk3VVVGRk5VSXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dFJRVU16UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEycERMRTFCUVUwc1JVRkRUaXhYUVVGWExGbEJRVmtzUTBGQlF5eExRVUZMTEdkRFFVRm5ReXhGUVVNM1JDeFRRVUZUTEVWQlExUXNTVUZCU1N4bFFVRmxMRU5CUVVNN1dVRkRiRUlzVTBGQlV5eEZRVUZGTEZsQlFWa3NRMEZCUXl4WFFVRlhPMWxCUTI1RExGRkJRVkVzUlVGQlJTeFpRVUZaTEVOQlFVTXNVVUZCVVR0WlFVTXZRaXhSUVVGUkxFVkJRVVVzV1VGQldTeERRVUZETEZGQlFWRTdXVUZETDBJc1ZVRkJWU3hGUVVGRkxGVkJRVlU3VTBGRGRrSXNRMEZCUXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVOaUxFZEJRVWNzUlVGRFNDeEZRVUZGTEdOQlFXTXNSVUZCUlN4dFEwRkJiVU1zUlVGQlJTeEZRVU4yUkN4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8xRkJRMFlzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVU5xUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVOa0xFTkJRVU03VVVGRFJpeEpRVUZKTEVsQlFVa3NSVUZCUlN4WlFVRlpPMWxCUVVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETzFGQlEycEVMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRM1pDTEdkRVFVRm5SQ3haUVVGWkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlEzaEZMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVThzSzBKQlFTdENMRU5CUTNKRExFbEJRVzlETEVWQlEzQkRMRk5CUVd0RU8xRkJSV3hFTEU5QlFVODdXVUZEVEN4SFFVRkhMRWxCUVVrN1dVRkRVQ3hIUVVGSExGTkJRVk03V1VGRFdpeE5RVUZOTEVWQlFVVTdaMEpCUTA0c1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRUdG5Ra0ZEWkN4SFFVRkhMRk5CUVZNc1EwRkJReXhOUVVGTk8yRkJRM0JDTzFOQlEwWXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZUeXcwUWtGQk5FSXNRMEZEYkVNc1owSkJRV2RFTzFGQlJXaEVMRTlCUVU4N1dVRkRUQ3hMUVVGTExFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1MwRkJTenRaUVVNM1FpeFhRVUZYTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zVjBGQlZ6dFpRVU42UXl4VlFVRlZMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNWVUZCVlN4SlFVRkpMRTFCUVUwN1dVRkRha1FzVDBGQlR5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzU1VGQlNTeEpRVUZKTzFsQlEzcERMREpDUVVFeVFpeEZRVU42UWl4blFrRkJaMElzUTBGQlF5d3lRa0ZCTWtJc1NVRkJTU3hKUVVGSk8xbEJRM1JFTEZWQlFWVXNSVUZCUlN4blFrRkJaMElzUTBGQlF5eFZRVUZWTEVsQlFVa3NTMEZCU3p0WlFVTm9SQ3hWUVVGVkxFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFdEJRVXM3V1VGRGFFUXNkMEpCUVhkQ0xFVkJRVVVzUzBGQlN6dFpRVU12UWl4eFFrRkJjVUlzUlVGQlJTeExRVUZMTzFsQlF6VkNMRkZCUVZFc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4UlFVRlJMRWxCUVVrc1MwRkJTenRaUVVNMVF5eFhRVUZYTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zVjBGQlZ5eEpRVUZKTEV0QlFVczdXVUZEYkVRc1RVRkJUU3hGUVVGRk8yZENRVU5PTEZkQlFWY3NSVUZCUlN3eVEwRkJNa003WjBKQlEzaEVMR2xDUVVGcFFpeEZRVUZGTEVsQlFVazdaMEpCUTNaQ0xGRkJRVkVzUlVGQlJTeHhRMEZCY1VNc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4dlFrRkJiMEk3WjBKQlF6VkdMRkZCUVZFc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4UlFVRlJPMmRDUVVOdVF5eFBRVUZQTEVWQlFVVXNjVU5CUVhGRExHZENRVUZuUWl4RFFVRkRMRkZCUVZFc2MwSkJRWE5DTzJkQ1FVTTNSaXhOUVVGTkxFVkJRVVVzY1VOQlFYRkRMR2RDUVVGblFpeERRVUZETEZGQlFWRXNUMEZCVHp0blFrRkROMFVzVlVGQlZTeEZRVUZGTEVsQlFVazdaMEpCUTJoQ0xGZEJRVmNzUlVGQlJTeExRVUZMTzJkQ1FVTnNRaXh4UWtGQmNVSXNSVUZCUlN4eFEwRkJjVU1zWjBKQlFXZENMRU5CUVVNc1VVRkJVU3gzUTBGQmQwTTdaMEpCUXpkSUxHZENRVUZuUWl4RlFVRkZMSEZEUVVGeFF5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxIZENRVUYzUWp0blFrRkRlRWNzWjBKQlFXZENMRVZCUVVVc2IwSkJRVzlDTzJkQ1FVTjBReXhUUVVGVExFVkJRVVVzY1VOQlFYRkRMR2RDUVVGblFpeERRVUZETEZGQlFWRXNjVUpCUVhGQ08yZENRVU01Uml4UlFVRlJMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4SlFVRkpMRkZCUVZFN1owSkJReTlETEZsQlFWa3NSVUZCUlN4blFrRkJaMElzUTBGQlF5eFpRVUZaTzJkQ1FVTXpReXhIUVVGSExHZENRVUZuUWl4RFFVRkRMRTFCUVUwN1lVRkRNMEk3VTBGRFJpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRMjVDTEUxQlFYbERMRVZCUTNwRExFbEJRVmtzUlVGRFdpeFhRVUVyUWl4RlFVTXZRaXhQUVVGblFpeEZRVU5vUWl4WFFVRnRRaXhGUVVOdVFpeFBRVUVyUWl4RlFVTXZRaXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOb1F5eE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETzFsQlEzcERMRTFCUVUwN1dVRkRUaXhIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRVZCUVVVN1dVRkRNMFFzU1VGQlNTeEZRVU5HTEU5QlFVOHNTMEZCU3l4VFFVRlRPMmRDUVVOdVFpeERRVUZETEVOQlFVTXNVMEZCVXp0blFrRkRXQ3hEUVVGRExFTkJRVU1zVDBGQlR5eFBRVUZQTEV0QlFVc3NVVUZCVVR0dlFrRkRNMElzUTBGQlF5eERRVUZETEU5QlFVODdiMEpCUTFRc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUXk5Q0xFOUJRVThzUlVGQlJUdG5Ra0ZEVUN4SFFVRkhMRTlCUVU4N1owSkJRMVlzUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hoUVVGaExFVkJRVVVzVlVGQlZTeFhRVUZYTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03WjBKQlEyeEZMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzVTBGQlV5eEpRVUZKTEU5QlFVOHNUMEZCVHl4TFFVRkxMRkZCUVZFN2IwSkJRM1JFTEVOQlFVTXNRMEZCUXl4RlFVRkZMR05CUVdNc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlR0dlFrRkRlRU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0aFFVTlNPMWxCUTBRc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXp0blFrRkRNVUlzYTBKQlFXdENMRVZCUVVVc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJZU3hEUVVGRExFTkJRVU03WVVGRGRFVXNRMEZCUXp0WlFVTkdMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFOQlF6TkNMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNTMEZCU3l4WFFVRlhMRVZCUVVVc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTJwRUxFTkJRVU03VVVGRFJDeFBRVUZQTEZGQlFWRXNRMEZCUXp0SlFVTnNRaXhEUVVGRE8wbEJSVThzYTBKQlFXdENMRU5CUVVNc1VVRkJZU3hGUVVGRkxGZEJRVzFDTzFGQlF6TkVMRTFCUVUwc1RVRkJUU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZuUWl4RFFVRkRPMUZCUTNwRExFMUJRVTBzVDBGQlR5eEhRVUZITEZsQlFWa3NWMEZCVnl4alFVRmpMRkZCUVZFc1EwRkJReXhOUVVGTkxFdEJRVXNzVVVGQlVTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMUZCUXk5R0xFbEJRVWtzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRiRVVzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOdVF5eERRVUZETzFGQlEwUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5xUlN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyNURMRU5CUVVNN1VVRkRSQ3hKUVVGSkxFMUJRVTBzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTnVRaXhOUVVGTkxFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNKRExFTkJRVU03VVVGRFJDeEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1RVRkJUU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzSkRMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYmtNc1EwRkJRenRSUVVORUxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRia01zUTBGQlF6dEpRVVZUTEZWQlFWVXNRMEZCUXl4TFFVRlpPMUZCUXk5Q0xFMUJRVTBzVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzU1VGQlNTeGxRVUZsTEVOQlFVTTdVVUZETDBRc1RVRkJUU3haUVVGWkxFZEJRVWNzVDBGQlR5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUlRORExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRka1VzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEYWtnc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpkSExFOUJRVThzU1VGQlNTeGxRVUZsTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRkRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRE1VVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTjJSU3hQUVVGUExFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM0JETEVOQlFVTTdTVUZGVHl4cFFrRkJhVUlzUTBGQlNTeEpRVUZoTzFGQlEzaERMRWxCUVVrc1QwRkJUeXhKUVVGSkxFdEJRVXNzVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZETjBJc1NVRkJTU3hEUVVGRE8yZENRVU5JTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVTBzUTBGQlF6dFpRVU12UWl4RFFVRkRPMWxCUVVNc1RVRkJUU3hEUVVGRE8yZENRVU5RTEU5QlFVOHNVMEZCVXl4RFFVRkRPMWxCUTI1Q0xFTkJRVU03VVVGRFNDeERRVUZETzFGQlEwUXNUMEZCVHl4SlFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dERRVU5HTzBGQlJVUXNUVUZCVFN4VlFVRlZMR3REUVVGclF5eERRVU5vUkN4TlFVRTBRenRKUVVVMVF5eE5RVUZOTEdOQlFXTXNSMEZCTWtJN1VVRkROME1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRXRCUVVzc1RVRkJUVHRaUVVNMVFpeERRVUZETEVOQlFVTTdaMEpCUTBVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eGpRVUZqTEVsQlFVa3NSVUZCUlR0blFrRkRia01zY1VKQlFYRkNMRVZCUVVVc1RVRkJUU3hEUVVGRExGbEJRVmtzU1VGQlNTeEZRVUZGTzJkQ1FVTm9SQ3huUWtGQlowSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1kwRkJZenR2UWtGRGNrTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV01zSzBKQlFTdENPMjlDUVVONlJDeERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRUaXhSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEdOQlFXTTdiMEpCUXpkQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEUxQlFVMHNRMEZCUXl4alFVRmpMR2REUVVGblF6dHZRa0ZETVVRc1EwRkJReXhEUVVGRExFVkJRVVU3WjBKQlEwNHNWMEZCVnl4RlFVRkZMRTFCUVUwc1EwRkJReXhqUVVGak8yOUNRVU5vUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zWTBGQll5eHRRMEZCYlVNN2IwSkJRemRFTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOT0xFOUJRVThzUlVGQlJTeE5RVUZOTEVOQlFVTXNZMEZCWXp0dlFrRkROVUlzUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMR05CUVdNc1owTkJRV2RETzI5Q1FVTXhSQ3hEUVVGRExFTkJRVU1zUlVGQlJUdG5Ra0ZEVGl4VFFVRlRMRVZCUVVVc1RVRkJUU3hEUVVGRExHTkJRV003YjBKQlF6bENMRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eGpRVUZqTEdsRFFVRnBRenR2UWtGRE0wUXNRMEZCUXl4RFFVRkRMRVZCUVVVN1owSkJRMDRzVVVGQlVTeEZRVUZGTEUxQlFVMHNRMEZCUXl4UlFVRlJMRWxCUVVrc1JVRkJSVHRuUWtGREwwSXNXVUZCV1N4RlFVRkZMRTFCUVUwc1EwRkJReXhaUVVGWkxFbEJRVWtzUlVGQlJUdG5Ra0ZEZGtNc1owSkJRV2RDTEVWQlFVVXNUVUZCVFN4RFFVRkRMR2RDUVVGblFpeEpRVUZKTEc5Q1FVRnZRanRuUWtGRGFrVXNlVUpCUVhsQ0xFVkJRVVVzVFVGQlRTeERRVUZETEhsQ1FVRjVRaXhKUVVGSkxFVkJRVVU3WjBKQlEycEZMSFZDUVVGMVFpeEZRVUZGTEUxQlFVMHNRMEZCUXl4MVFrRkJkVUlzU1VGQlNTeEZRVUZGTzJkQ1FVTTNSQ3haUVVGWkxFVkJRVVVzVFVGQlRTeERRVUZETEdGQlFXRXNTVUZCU1N4elFrRkJjMEk3WjBKQlF6VkVMR2xDUVVGcFFpeEZRVUZGTEUxQlFVMDdaMEpCUTNwQ0xGVkJRVlVzUlVGQlJTeE5RVUZOTzJGQlEyNUNPMWxCUTBnc1EwRkJReXhEUVVGRE8yZENRVU5GTEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxGRkJRVkVzU1VGQlNTeEZRVUZGTzJkQ1FVTnlReXh6UWtGQmMwSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxITkNRVUZ6UWl4SlFVRkpMRVZCUVVVN1owSkJRMnBGTEhOQ1FVRnpRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNjMEpCUVhOQ0xFbEJRVWtzUlVGQlJUdG5Ra0ZEYWtVc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hyUWtGQmEwSXNTVUZCU1N4RlFVRkZPMmRDUVVONlJDeHJRa0ZCYTBJc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEd0Q1FVRnJRaXhKUVVGSkxFVkJRVVU3WjBKQlEzcEVMR3RDUVVGclFpeEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc2EwSkJRV3RDTEVsQlFVa3NSVUZCUlR0blFrRkRla1FzYTBKQlFXdENMRVZCUVVVc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHJRa0ZCYTBJc1NVRkJTU3hGUVVGRk8yZENRVU42UkN4dFFrRkJiVUlzUlVGQlJTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3h0UWtGQmJVSXNTVUZCU1N4SlFVRkpMRU5CUVVNN1owSkJRM0pGTEhWQ1FVRjFRaXhGUVVGRkxFMUJRVTBzUTBGRE4wSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3gxUWtGQmRVSXNTVUZCU1N4SlFVRkpMRU5CUXpkRE8yZENRVU5FTEhWQ1FVRjFRaXhGUVVGRkxFMUJRVTBzUTBGRE4wSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3gxUWtGQmRVSXNTVUZCU1N4TFFVRkxMRU5CUXpsRE8yRkJRMFlzUTBGQlF6dFJRVU5PTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwN1MwRkRha0lzUTBGQlF6dEpRVVZHTEU5QlFVODdVVUZEVEN4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRExFdEJRVXM3VVVGRGJrSXNWMEZCVnl4RlFVRkZMRTFCUVUwc1EwRkJReXhYUVVGWE8xRkJReTlDTEZWQlFWVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1VVRkJVVHRSUVVNelFpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRTlCUVU4c1NVRkJTU3hKUVVGSk8xRkJReTlDTEZWQlFWVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1ZVRkJWU3hKUVVGSkxFdEJRVXM3VVVGRGRFTXNWVUZCVlN4RlFVRkZMRTFCUVUwc1EwRkJReXhWUVVGVkxFbEJRVWtzUzBGQlN6dFJRVU4wUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTzFGQlEyeERMSEZDUVVGeFFpeEZRVUZGTEUxQlFVMHNRMEZCUXl4eFFrRkJjVUlzU1VGQlNTeExRVUZMTzFGQlF6VkVMSGxDUVVGNVFpeEZRVUZGTEUxQlFVMHNRMEZCUXl4NVFrRkJlVUk3VVVGRE0wUXNkMEpCUVhkQ0xFVkJRVVVzVFVGQlRTeERRVUZETEhkQ1FVRjNRanRSUVVONlJDeE5RVUZOTEVWQlFVVXNZMEZCWXp0TFFVTjJRaXhEUVVGRE8wRkJRMG9zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVKaFpGSmxjWFZsYzNSRmNuSnZjaXhjYmlBZ1EyOXVabXhwWTNSRmNuSnZjaXhjYmlBZ1NXNTBaWEp1WVd4RmNuSnZjaXhjYmlBZ1RtOTBSbTkxYm1SRmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNTBaWGgwZFdGc1FYSm5jeXdnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGJHbGxiblJDWVhObFpGTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHRjYmlBZ1MyVjVZMnh2WVd0SlpHVnVkR2wwZVZCeWIzWnBaR1Z5UTI5dVptbG5MRnh1SUNCTFpYbGpiRzloYTBKeWIydGxja2xrWlc1MGFYUjVVSEp2ZG1sa1pYSkRiMjVtYVdjc1hHNGdJRXRsZVdOc2IyRnJRbkp2YTJWeVUyVjBkWEJEYjI1bWFXY3NYRzRnSUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjc1hHNGdJRXRsZVdOc2IyRnJWWE5sY2l4Y2JuMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdRWGhwYjNNc0lIc2dRWGhwYjNOSmJuTjBZVzVqWlNCOUlHWnliMjBnWENKaGVHbHZjMXdpTzF4dWFXMXdiM0owSUNvZ1lYTWdhSFIwY0hNZ1puSnZiU0JjSW01dlpHVTZhSFIwY0hOY0lqdGNibWx0Y0c5eWRDQjdJSEpsYzI5c2RtVkxaWGxqYkc5aGEwbHpVSEp2WkhWamRHbHZiaUI5SUdaeWIyMGdYQ0l1TDNKMWJuUnBiV1ZjSWp0Y2JseHVaWGh3YjNKMElHTnNZWE56SUV0bGVXTnNiMkZyU1dSbGJuUnBkSGxRY205MmFXUmxjbE5sY25acFkyVWdaWGgwWlc1a2N5QkRiR2xsYm5SQ1lYTmxaRk5sY25acFkyVThYRzRnSUVGNGFXOXpTVzV6ZEdGdVkyVXNYRzRnSUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdkY2JqNGdlMXh1SUNCaGMzbHVZeUJwYm1sMGFXRnNhWHBsS0Z4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCamIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjN0lHTnNhV1Z1ZERvZ1FYaHBiM05KYm5OMFlXNWpaU0I5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1sdWFYUnBZV3hwZW1WY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1sdWFYUnBZV3hwZW1VcE8xeHVJQ0FnSUdOdmJuTjBJR052Ym1acFp5QTlJR04wZUVGeVozTmJNRjBnWVhNZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCMGFHbHpMbDlqYjI1bWFXY2dQU0JqYjI1bWFXYzdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBJRDBnZEdocGN5NWpjbVZoZEdWSWRIUndRMnhwWlc1MEtHTnZibVpwWnlrN1hHNGdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdZMnhwWlc1ME8xeHVJQ0FnSUhKbGRIVnliaUI3SUdOdmJtWnBaeXdnWTJ4cFpXNTBJSDA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJqY21WaGRHVkpaR1Z1ZEdsMGVWQnliM1pwWkdWeUtGeHVJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjNklFdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFdGxlV05zYjJGclNXUmxiblJwZEhsUWNtOTJhV1JsY2tOdmJtWnBaejRnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbU55WldGMFpVbGtaVzUwYVhSNVVISnZkbWxrWlhKY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1OeVpXRjBaVWxrWlc1MGFYUjVVSEp2ZG1sa1pYSXBPMXh1SUNBZ0lHTnZibk4wSUhKbFlXeHRRV05qWlhOelZHOXJaVzRnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRkpsWVd4dFFXTmpaWE56Vkc5clpXNG9YRzRnSUNBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnYVdSbGJuUnBkSGxRY205MmFXUmxjaUE5SUhSb2FYTXVibTl5YldGc2FYcGxTV1JsYm5ScGRIbFFjbTkyYVdSbGNrTnZibVpwWnloY2JpQWdJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWFXUmxiblJwZEhsUWNtOTJhV1JsY2lFc1hHNGdJQ0FnSUNCdmRtVnljbWxrWlhNZ1B6OGdlMzFjYmlBZ0lDQXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lVRTlUVkZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0clpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjajh1Y21WaGJHMTlMMmxrWlc1MGFYUjVMWEJ5YjNacFpHVnlMMmx1YzNSaGJtTmxjMkFzWEc0Z0lDQWdJQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdkR2hwY3k1aWRXbHNaRWxrWlc1MGFYUjVVSEp2ZG1sa1pYSlFZWGxzYjJGa0tHbGtaVzUwYVhSNVVISnZkbWxrWlhJcExGeHVJQ0FnSUNBZ01qQXhMRnh1SUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSFZ3WkdGMFpVbGtaVzUwYVhSNVVISnZkbWxrWlhJb1hHNGdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnpvZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNCdmRtVnljbWxrWlhNNklGQmhjblJwWVd3OFMyVjVZMnh2WVd0SlpHVnVkR2wwZVZCeWIzWnBaR1Z5UTI5dVptbG5QaUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkWEJrWVhSbFNXUmxiblJwZEhsUWNtOTJhV1JsY2x3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11ZFhCa1lYUmxTV1JsYm5ScGRIbFFjbTkyYVdSbGNpazdYRzRnSUNBZ1kyOXVjM1FnY21WaGJHMUJZMk5sYzNOVWIydGxiaUE5SUdGM1lXbDBJSFJvYVhNdVoyVjBVbVZoYkcxQlkyTmxjM05VYjJ0bGJpaGNiaUFnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JwWkdWdWRHbDBlVkJ5YjNacFpHVnlJRDBnZEdocGN5NXViM0p0WVd4cGVtVkpaR1Z1ZEdsMGVWQnliM1pwWkdWeVEyOXVabWxuS0Z4dUlDQWdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnk1cFpHVnVkR2wwZVZCeWIzWnBaR1Z5SVN4Y2JpQWdJQ0FnSUc5MlpYSnlhV1JsY3lBL1B5QjdmVnh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ1hDSlFWVlJjSWl4Y2JpQWdJQ0FnSUdBdllXUnRhVzR2Y21WaGJHMXpMeVI3YTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnk1eVpXRnNiVUZ3YVZWelpYSS9MbkpsWVd4dGZTOXBaR1Z1ZEdsMGVTMXdjbTkyYVdSbGNpOXBibk4wWVc1alpYTXZKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvYVdSbGJuUnBkSGxRY205MmFXUmxjaTVoYkdsaGN5bDlZQ3hjYmlBZ0lDQWdJSEpsWVd4dFFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQjBhR2x6TG1KMWFXeGtTV1JsYm5ScGRIbFFjbTkyYVdSbGNsQmhlV3h2WVdRb2FXUmxiblJwZEhsUWNtOTJhV1JsY2lrc1hHNGdJQ0FnSUNBeU1EUXNYRzRnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZM0psWVhSbFFuSnZhMlZ5U1dSbGJuUnBkSGxRY205MmFXUmxjaWhjYmlBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PaUJMWlhsamJHOWhhMEp5YjJ0bGNsTmxkSFZ3UTI5dVptbG5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKamNtVmhkR1ZDY205clpYSkpaR1Z1ZEdsMGVWQnliM1pwWkdWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZDY205clpYSkpaR1Z1ZEdsMGVWQnliM1pwWkdWeUtUdGNiaUFnSUNCamIyNXpkQ0JoWTJObGMzTlViMnRsYmlBOUlHRjNZV2wwSUhSb2FYTXVaMlYwVW1WaGJHMUJZMk5sYzNOVWIydGxiaWhjYmlBZ0lDQWdJR3RsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2NzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEkvTG5KbFlXeHRmUzlwWkdWdWRHbDBlUzF3Y205MmFXUmxjaTlwYm5OMFlXNWpaWE5nTEZ4dUlDQWdJQ0FnWVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNCaWRXbHNaRUp5YjJ0bGNrbGtaVzUwYVhSNVVISnZkbWxrWlhKUVlYbHNiMkZrS0d0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdVluSnZhMlZ5S1N4Y2JpQWdJQ0FnSURJd01TeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QjFjR1JoZEdWQ2NtOXJaWEpKWkdWdWRHbDBlVkJ5YjNacFpHVnlLRnh1SUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXYzZJRXRsZVdOc2IyRnJRbkp2YTJWeVUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5Wd1pHRjBaVUp5YjJ0bGNrbGtaVzUwYVhSNVVISnZkbWxrWlhKY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5Wd1pHRjBaVUp5YjJ0bGNrbGtaVzUwYVhSNVVISnZkbWxrWlhJcE8xeHVJQ0FnSUdOdmJuTjBJR0ZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJTWldGc2JVRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lVRlZVWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTJ0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlQeTV5WldGc2JYMHZhV1JsYm5ScGRIa3RjSEp2ZG1sa1pYSXZhVzV6ZEdGdVkyVnpMeVI3Wlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0d0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdVluSnZhMlZ5TG1Gc2FXRnpLWDFnTEZ4dUlDQWdJQ0FnWVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNCaWRXbHNaRUp5YjJ0bGNrbGtaVzUwYVhSNVVISnZkbWxrWlhKUVlYbHNiMkZrS0d0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdVluSnZhMlZ5S1N4Y2JpQWdJQ0FnSURJd05DeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpjbVZoZEdWSlpHVnVkR2wwZVZCeWIzWnBaR1Z5VFdGd2NHVnljeWhjYmlBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTEZ4dUlDQWdJSEp2YkdWRGIyNW1hV2R6T2lCaGJubGJYU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFNXUmxiblJwZEhsUWNtOTJhV1JsY2sxaGNIQmxjbk5jSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbU55WldGMFpVbGtaVzUwYVhSNVVISnZkbWxrWlhKTllYQndaWEp6S1R0Y2JpQWdJQ0JqYjI1emRDQnliMnhsY3lBOUlISnZiR1ZEYjI1bWFXZHpJRDgvSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdVkyeHBaVzUwTG5KdmJHVnpJRDgvSUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJSEpsWVd4dFFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1kbGRGSmxZV3h0UVdOalpYTnpWRzlyWlc0b1hHNGdJQ0FnSUNCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdhV1JsYm5ScGRIbFFjbTkyYVdSbGNpQTlJR3RsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2N1YVdSbGJuUnBkSGxRY205MmFXUmxjaUU3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0J5YjJ4bElHOW1JSEp2YkdWektTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQWdJRndpVUU5VFZGd2lMRnh1SUNBZ0lDQWdJQ0JnTDJGa2JXbHVMM0psWVd4dGN5OGtlMnRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2N1Y21WaGJHMUJjR2xWYzJWeVB5NXlaV0ZzYlgwdmFXUmxiblJwZEhrdGNISnZkbWxrWlhJdmFXNXpkR0Z1WTJWekx5UjdhV1JsYm5ScGRIbFFjbTkyYVdSbGNpNWhiR2xoYzMwdmJXRndjR1Z5YzJBc1hHNGdJQ0FnSUNBZ0lISmxZV3h0UVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0J1WVcxbE9pQnliMnhsTG5KdmJHVk9ZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lHbGtaVzUwYVhSNVVISnZkbWxrWlhKQmJHbGhjem9nYVdSbGJuUnBkSGxRY205MmFXUmxjaTVoYkdsaGN5eGNiaUFnSUNBZ0lDQWdJQ0JwWkdWdWRHbDBlVkJ5YjNacFpHVnlUV0Z3Y0dWeU9pQmNJbTlwWkdNdGNtOXNaUzFwWkhBdGJXRndjR1Z5WENJc1hHNGdJQ0FnSUNBZ0lDQWdZMjl1Wm1sbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCemVXNWpUVzlrWlRvZ2FXUmxiblJwZEhsUWNtOTJhV1JsY2k1dFlYQndaWEpUZVc1alRXOWtaU0EvUHlCY0lrWlBVa05GWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYkdGcGJUb2dhV1JsYm5ScGRIbFFjbTkyYVdSbGNpNXRZWEJ3WlhKRGJHRnBiVTVoYldVZ1B6OGdYQ0puY205MWNITmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lGd2lZMnhoYVcwdWRtRnNkV1ZjSWpvZ2NtOXNaUzVqYkdGcGJWWmhiSFZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbTlzWlRvZ1lDUjdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTVqYkdsbGJuUXVZMnhwWlc1MFNXUjlMaVI3Y205c1pTNXliMnhsVG1GdFpYMWdMRnh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJREl3TVN4Y2JpQWdJQ0FnSUNBZ2UzMHNYRzRnSUNBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqY21WaGRHVklkSFJ3UTJ4cFpXNTBLR052Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeWs2SUVGNGFXOXpTVzV6ZEdGdVkyVWdlMXh1SUNBZ0lISmxkSFZ5YmlCQmVHbHZjeTVqY21WaGRHVW9lMXh1SUNBZ0lDQWdZbUZ6WlZWU1REb2dZQ1I3WTI5dVptbG5MbkJ5YjNSdlkyOXNmVG92THlSN1kyOXVabWxuTG1odmMzUjlZQ3hjYmlBZ0lDQWdJR2hsWVdSbGNuTTZJSHNnWENKRGIyNTBaVzUwTFZSNWNHVmNJam9nWENKaGNIQnNhV05oZEdsdmJpOXFjMjl1WENJZ2ZTeGNiaUFnSUNBZ0lIWmhiR2xrWVhSbFUzUmhkSFZ6T2lBb0tTQTlQaUIwY25WbExGeHVJQ0FnSUNBZ2FIUjBjSE5CWjJWdWREb2dibVYzSUdoMGRIQnpMa0ZuWlc1MEtIdGNiaUFnSUNBZ0lDQWdjbVZxWldOMFZXNWhkWFJvYjNKcGVtVmtPaUFvY21WemIyeDJaVXRsZVdOc2IyRnJTWE5RY205a2RXTjBhVzl1S0hSb2FYTXVZMjl1Wm1sbklHRnpJR0Z1ZVNrcExGeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHZGxkRkpsWVd4dFFXTmpaWE56Vkc5clpXNG9YRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeUI4SUV0bGVXTnNiMkZyUW5KdmEyVnlVMlYwZFhCRGIyNW1hV2NzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTVuWlhSU1pXRnNiVUZqWTJWemMxUnZhMlZ1S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpYUkJZMk5sYzNOVWIydGxiaWhyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG5KbFlXeHRRWEJwVlhObGNpRXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJuWlhSQlkyTmxjM05VYjJ0bGJpaGNiaUFnSUNCclpYbGpiRzloYTFWelpYSTZJRXRsZVdOc2IyRnJWWE5sY2l4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG1kbGRFRmpZMlZ6YzFSdmEyVnVLVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lVRTlUVkZ3aUxGeHVJQ0FnSUNBZ1lDOXlaV0ZzYlhNdkpIdHJaWGxqYkc5aGExVnpaWEl1Y21WaGJHMTlMM0J5YjNSdlkyOXNMMjl3Wlc1cFpDMWpiMjV1WldOMEwzUnZhMlZ1WUN4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUc1bGR5QlZVa3hUWldGeVkyaFFZWEpoYlhNb2UxeHVJQ0FnSUNBZ0lDQmpiR2xsYm5SZmFXUTZJR3RsZVdOc2IyRnJWWE5sY2k1aGNHbERiR2xsYm5SSlpDeGNiaUFnSUNBZ0lDQWdkWE5sY201aGJXVTZJR3RsZVdOc2IyRnJWWE5sY2k1MWMyVnlibUZ0WlN4Y2JpQWdJQ0FnSUNBZ2NHRnpjM2R2Y21RNklHdGxlV05zYjJGclZYTmxjaTV3WVhOemQyOXlaQ3hjYmlBZ0lDQWdJQ0FnWjNKaGJuUmZkSGx3WlRvZ1hDSndZWE56ZDI5eVpGd2lMRnh1SUNBZ0lDQWdmU2t1ZEc5VGRISnBibWNvS1N4Y2JpQWdJQ0FnSURJd01DeGNiaUFnSUNBZ0lIc2dYQ0pqYjI1MFpXNTBMWFI1Y0dWY0lqb2dYQ0poY0hCc2FXTmhkR2x2Ymk5NExYZDNkeTFtYjNKdExYVnliR1Z1WTI5a1pXUmNJaUI5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThleUJoWTJObGMzTmZkRzlyWlc0L09pQnpkSEpwYm1jZ2ZUNG9YRzRnSUNBZ0lDQnlaWE53YjI1elpTNWtZWFJoWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvWkdGMFlUOHVZV05qWlhOelgzUnZhMlZ1S1NCeVpYUjFjbTRnWkdGMFlTNWhZMk5sYzNOZmRHOXJaVzQ3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRUpoWkZKbGNYVmxjM1JGY25KdmNpaGNiaUFnSUNBZ0lHQlZibUZpYkdVZ2RHOGdaMlYwSUV0bGVXTnNiMkZySUdGalkyVnpjeUIwYjJ0bGJpQm1iM0lnZFhObGNpQWtlMnRsZVdOc2IyRnJWWE5sY2k1MWMyVnlibUZ0WlgxZ1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2JtOXliV0ZzYVhwbFNXUmxiblJwZEhsUWNtOTJhV1JsY2tOdmJtWnBaeWhjYmlBZ0lDQmlZWE5sT2lCTFpYbGpiRzloYTBsa1pXNTBhWFI1VUhKdmRtbGtaWEpEYjI1bWFXY3NYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFdGxlV05zYjJGclNXUmxiblJwZEhsUWNtOTJhV1JsY2tOdmJtWnBaejVjYmlBZ0tUb2dTMlY1WTJ4dllXdEpaR1Z1ZEdsMGVWQnliM1pwWkdWeVEyOXVabWxuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdMaTR1WW1GelpTeGNiaUFnSUNBZ0lDNHVMbTkyWlhKeWFXUmxjeXhjYmlBZ0lDQWdJR052Ym1acFp6b2dlMXh1SUNBZ0lDQWdJQ0F1TGk1aVlYTmxMbU52Ym1acFp5eGNiaUFnSUNBZ0lDQWdMaTR1YjNabGNuSnBaR1Z6TG1OdmJtWnBaeXhjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWW5WcGJHUkpaR1Z1ZEdsMGVWQnliM1pwWkdWeVVHRjViRzloWkNoY2JpQWdJQ0JwWkdWdWRHbDBlVkJ5YjNacFpHVnlPaUJMWlhsamJHOWhhMGxrWlc1MGFYUjVVSEp2ZG1sa1pYSkRiMjVtYVdkY2JpQWdLVG9nVW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNGdlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCaGJHbGhjem9nYVdSbGJuUnBkSGxRY205MmFXUmxjaTVoYkdsaGN5eGNiaUFnSUNBZ0lHUnBjM0JzWVhsT1lXMWxPaUJwWkdWdWRHbDBlVkJ5YjNacFpHVnlMbVJwYzNCc1lYbE9ZVzFsTEZ4dUlDQWdJQ0FnY0hKdmRtbGtaWEpKWkRvZ2FXUmxiblJwZEhsUWNtOTJhV1JsY2k1d2NtOTJhV1JsY2tsa0lEOC9JRndpYjJsa1kxd2lMRnh1SUNBZ0lDQWdaVzVoWW14bFpEb2dhV1JsYm5ScGRIbFFjbTkyYVdSbGNpNWxibUZpYkdWa0lEOC9JSFJ5ZFdVc1hHNGdJQ0FnSUNCMWNHUmhkR1ZRY205bWFXeGxSbWx5YzNSTWIyZHBiazF2WkdVNlhHNGdJQ0FnSUNBZ0lHbGtaVzUwYVhSNVVISnZkbWxrWlhJdWRYQmtZWFJsVUhKdlptbHNaVVpwY25OMFRHOW5hVzVOYjJSbElEOC9JRndpYjI1Y0lpeGNiaUFnSUNBZ0lIUnlkWE4wUlcxaGFXdzZJR2xrWlc1MGFYUjVVSEp2ZG1sa1pYSXVkSEoxYzNSRmJXRnBiQ0EvUHlCbVlXeHpaU3hjYmlBZ0lDQWdJSE4wYjNKbFZHOXJaVzQ2SUdsa1pXNTBhWFI1VUhKdmRtbGtaWEl1YzNSdmNtVlViMnRsYmlBL1B5Qm1ZV3h6WlN4Y2JpQWdJQ0FnSUdGa1pGSmxZV1JVYjJ0bGJsSnZiR1ZQYmtOeVpXRjBaVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQmhkWFJvWlc1MGFXTmhkR1ZDZVVSbFptRjFiSFE2SUdaaGJITmxMRnh1SUNBZ0lDQWdiR2x1YTA5dWJIazZJR2xrWlc1MGFYUjVVSEp2ZG1sa1pYSXViR2x1YTA5dWJIa2dQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQm9hV1JsVDI1TWIyZHBiam9nYVdSbGJuUnBkSGxRY205MmFXUmxjaTVvYVdSbFQyNU1iMmRwYmlBL1B5Qm1ZV3h6WlN4Y2JpQWdJQ0FnSUdOdmJtWnBaem9nZTF4dUlDQWdJQ0FnSUNCMWMyVnlTVzVtYjFWeWJEb2dYQ0pvZEhSd2N6b3ZMMmR5WVhCb0xtMXBZM0p2YzI5bWRDNWpiMjB2YjJsa1l5OTFjMlZ5YVc1bWIxd2lMRnh1SUNBZ0lDQWdJQ0IyWVd4cFpHRjBaVk5wWjI1aGRIVnlaVG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdkRzlyWlc1VmNtdzZJR0JvZEhSd2N6b3ZMMnh2WjJsdUxtMXBZM0p2YzI5bWRHOXViR2x1WlM1amIyMHZKSHRwWkdWdWRHbDBlVkJ5YjNacFpHVnlMblJsYm1GdWRFbGtmUzl2WVhWMGFESXZkakl1TUM5MGIydGxibUFzWEc0Z0lDQWdJQ0FnSUdOc2FXVnVkRWxrT2lCcFpHVnVkR2wwZVZCeWIzWnBaR1Z5TG1Oc2FXVnVkRWxrTEZ4dUlDQWdJQ0FnSUNCcWQydHpWWEpzT2lCZ2FIUjBjSE02THk5c2IyZHBiaTV0YVdOeWIzTnZablJ2Ym14cGJtVXVZMjl0THlSN2FXUmxiblJwZEhsUWNtOTJhV1JsY2k1MFpXNWhiblJKWkgwdlpHbHpZMjkyWlhKNUwzWXlMakF2YTJWNWMyQXNYRzRnSUNBZ0lDQWdJR2x6YzNWbGNqb2dZR2gwZEhCek9pOHZiRzluYVc0dWJXbGpjbTl6YjJaMGIyNXNhVzVsTG1OdmJTOGtlMmxrWlc1MGFYUjVVSEp2ZG1sa1pYSXVkR1Z1WVc1MFNXUjlMM1l5TGpCZ0xGeHVJQ0FnSUNBZ0lDQjFjMlZLZDJ0elZYSnNPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQndhMk5sUlc1aFlteGxaRG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJRzFsZEdGa1lYUmhSR1Z6WTNKcGNIUnZjbFZ5YkRvZ1lHaDBkSEJ6T2k4dmJHOW5hVzR1YldsamNtOXpiMlowYjI1c2FXNWxMbU52YlM4a2UybGtaVzUwYVhSNVVISnZkbWxrWlhJdWRHVnVZVzUwU1dSOUwzWXlMakF2TG5kbGJHd3RhMjV2ZDI0dmIzQmxibWxrTFdOdmJtWnBaM1Z5WVhScGIyNWdMRnh1SUNBZ0lDQWdJQ0JoZFhSb2IzSnBlbUYwYVc5dVZYSnNPaUJnYUhSMGNITTZMeTlzYjJkcGJpNXRhV055YjNOdlpuUnZibXhwYm1VdVkyOXRMeVI3YVdSbGJuUnBkSGxRY205MmFXUmxjaTUwWlc1aGJuUkpaSDB2YjJGMWRHZ3lMM1l5TGpBdllYVjBhRzl5YVhwbFlDeGNiaUFnSUNBZ0lDQWdZMnhwWlc1MFFYVjBhRTFsZEdodlpEb2dYQ0pqYkdsbGJuUmZjMlZqY21WMFgzQnZjM1JjSWl4Y2JpQWdJQ0FnSUNBZ2JHOW5iM1YwVlhKc09pQmdhSFIwY0hNNkx5OXNiMmRwYmk1dGFXTnliM052Wm5SdmJteHBibVV1WTI5dEx5UjdhV1JsYm5ScGRIbFFjbTkyYVdSbGNpNTBaVzVoYm5SSlpIMHZiMkYxZEdneUwzWXlMakF2Ykc5bmIzVjBZQ3hjYmlBZ0lDQWdJQ0FnYzNsdVkwMXZaR1U2SUdsa1pXNTBhWFI1VUhKdmRtbGtaWEl1YzNsdVkwMXZaR1VnUHo4Z1hDSk1SVWRCUTFsY0lpeGNiaUFnSUNBZ0lDQWdZMnhwWlc1MFUyVmpjbVYwT2lCcFpHVnVkR2wwZVZCeWIzWnBaR1Z5TG1Oc2FXVnVkRk5sWTNKbGRDeGNiaUFnSUNBZ0lDQWdMaTR1YVdSbGJuUnBkSGxRY205MmFXUmxjaTVqYjI1bWFXY3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklISmxjWFZsYzNRb1hHNGdJQ0FnYldWMGFHOWtPaUJjSWtkRlZGd2lJSHdnWENKUVQxTlVYQ0lnZkNCY0lsQlZWRndpSUh3Z1hDSkVSVXhGVkVWY0lpeGNiaUFnSUNCd1lYUm9PaUJ6ZEhKcGJtY3NYRzRnSUNBZ1lXTmpaWE56Vkc5clpXNDZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQndZWGxzYjJGa09pQjFibXR1YjNkdUxGeHVJQ0FnSUhOMVkyTmxjM05EYjJSbE9pQnVkVzFpWlhJc1hHNGdJQ0FnYUdWaFpHVnljem9nVW1WamIzSmtQSE4wY21sdVp5d2djM1J5YVc1blBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4WVc1NVBpQjdYRzRnSUNBZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTV5WlhGMVpYTjBLVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExuSmxjWFZsYzNRb2UxeHVJQ0FnSUNBZ2JXVjBhRzlrTEZ4dUlDQWdJQ0FnZFhKc09pQmdKSHQwYUdsekxtTnZibVpwWnk1d2NtOTBiMk52YkgwNkx5OGtlM1JvYVhNdVkyOXVabWxuTG1odmMzUjlKSHR3WVhSb2ZXQXNYRzRnSUNBZ0lDQmtZWFJoT2x4dUlDQWdJQ0FnSUNCd1lYbHNiMkZrSUQwOVBTQjFibVJsWm1sdVpXUmNiaUFnSUNBZ0lDQWdJQ0EvSUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ0FnSUNBZ0lEb2dkSGx3Wlc5bUlIQmhlV3h2WVdRZ1BUMDlJRndpYzNSeWFXNW5YQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdjR0Y1Ykc5aFpGeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCS1UwOU9Mbk4wY21sdVoybG1lU2h3WVhsc2IyRmtLU3hjYmlBZ0lDQWdJR2hsWVdSbGNuTTZJSHRjYmlBZ0lDQWdJQ0FnTGk0dWFHVmhaR1Z5Y3l4Y2JpQWdJQ0FnSUNBZ0xpNHVLR0ZqWTJWemMxUnZhMlZ1SUQ4Z2V5QkJkWFJvYjNKcGVtRjBhVzl1T2lCZ1FtVmhjbVZ5SUNSN1lXTmpaWE56Vkc5clpXNTlZQ0I5SURvZ2UzMHBMRnh1SUNBZ0lDQWdJQ0F1TGk0b2NHRjViRzloWkNBaFBUMGdkVzVrWldacGJtVmtJQ1ltSUhSNWNHVnZaaUJ3WVhsc2IyRmtJQ0U5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lDQWdQeUI3SUZ3aVEyOXVkR1Z1ZEMxVWVYQmxYQ0k2SUZ3aVlYQndiR2xqWVhScGIyNHZhbk52Ymx3aUlIMWNiaUFnSUNBZ0lDQWdJQ0E2SUh0OUtTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQm9kSFJ3YzBGblpXNTBPaUJ1WlhjZ2FIUjBjSE11UVdkbGJuUW9lMXh1SUNBZ0lDQWdJQ0J5WldwbFkzUlZibUYxZEdodmNtbDZaV1E2SUNoeVpYTnZiSFpsUzJWNVkyeHZZV3RKYzFCeWIyUjFZM1JwYjI0b2RHaHBjeTVqYjI1bWFXY2dZWE1nWVc1NUtTa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJSFpoYkdsa1lYUmxVM1JoZEhWek9pQW9LU0E5UGlCMGNuVmxMRnh1SUNBZ0lIMHBPMXh1SUNBZ0lHbG1JQ2h5WlhOd2IyNXpaUzV6ZEdGMGRYTWdJVDA5SUhOMVkyTmxjM05EYjJSbEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG1oaGJtUnNaVWgwZEhCU1pYTndiMjV6WlNoeVpYTndiMjV6WlN3Z2MzVmpZMlZ6YzBOdlpHVXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY21WemNHOXVjMlU3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdoaGJtUnNaVWgwZEhCU1pYTndiMjV6WlNoeVpYTndiMjV6WlRvZ1lXNTVMQ0J6ZFdOalpYTnpRMjlrWlRvZ2JuVnRZbVZ5S1RvZ2RtOXBaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2MzUmhkSFZ6SUQwZ2NtVnpjRzl1YzJVdWMzUmhkSFZ6SUdGeklHNTFiV0psY2p0Y2JpQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdZRVY0Y0dWamRHVmtJQ1I3YzNWalkyVnpjME52WkdWOUxDQnlaV05sYVhabFpDQWtlM0psYzNCdmJuTmxMbk4wWVhSMWMzMDZJQ1I3Y21WemNHOXVjMlV1YzNSaGRIVnpWR1Y0ZEgxZ08xeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TkNCOGZDQnRaWE56WVdkbExuUnZURzkzWlhKRFlYTmxLQ2t1YVc1amJIVmtaWE1vWENKdWIzUWdabTkxYm1SY0lpa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2MzUmhkSFZ6SUQwOVBTQTBNRGtnZkh3Z2JXVnpjMkZuWlM1MGIweHZkMlZ5UTJGelpTZ3BMbWx1WTJ4MVpHVnpLRndpWTI5dVpteHBZM1JjSWlrcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkRiMjVtYkdsamRFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYzNSaGRIVnpJRDA5UFNBME1EQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJDWVdSU1pYRjFaWE4wUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TVNCOGZDQnpkR0YwZFhNZ1BUMDlJRFF3TXlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lIQmhjbk5sUlhKeWIzSW9aWEp5YjNJNklFVnljbTl5S1RvZ1JYSnliM0lnZTF4dUlDQWdJR052Ym5OMElHMWxjM05oWjJVZ1BTQmxjbkp2Y2k1dFpYTnpZV2RsSUh4OElHVnljbTl5TG01aGJXVWdmSHdnWENKVmJtdHViM2R1SUdWeWNtOXlYQ0k3WEc0Z0lDQWdZMjl1YzNRZ2JHOTNaWEpOWlhOellXZGxJRDBnYldWemMyRm5aUzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltNXZkQ0JtYjNWdVpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTURSY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVlXeHlaV0ZrZVNCbGVHbHpkSE5jSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVkyOXVabXhwWTNSY0lpa2dmSHdnYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lOREE1WENJcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRU52Ym1ac2FXTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSW1sdWRtRnNhV1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVltRmtJSEpsY1hWbGMzUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBd1hDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVKaFpGSmxjWFZsYzNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lkVzVoZFhSb2IzSnBlbVZrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdNVndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ptYjNKaWFXUmtaVzVjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQXpYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQndZWEp6WlVwemIyNVNaWE53YjI1elpUeFVQaWhrWVhSaE9pQjFibXR1YjNkdUtUb2dWQ0I4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCa1lYUmhJRDA5UFNCY0luTjBjbWx1WjF3aUtTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnU2xOUFRpNXdZWEp6WlNoa1lYUmhLU0JoY3lCVU8xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmtZWFJoSUdGeklGUTdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0oxYVd4a1FuSnZhMlZ5U1dSbGJuUnBkSGxRY205MmFXUmxjbEJoZVd4dllXUW9YRzRnSUdOdmJtWnBaem9nUzJWNVkyeHZZV3RDY205clpYSkpaR1Z1ZEdsMGVWQnliM1pwWkdWeVEyOXVabWxuWEc0cE9pQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGlCN1hHNGdJR052Ym5OMElIQnliM1pwWkdWeVEyOXVabWxuT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytJRDBnZTF4dUlDQWdJQzR1TGloamIyNW1hV2N1Y0hKdmRHOWpiMndnUFQwOUlGd2liMmxrWTF3aVhHNGdJQ0FnSUNBL0lIdGNiaUFnSUNBZ0lDQWdJQ0JwYzNOMVpYSTZJR052Ym1acFp5NTFjSE4wY21WaGJVbHpjM1ZsY2lBL1B5QmNJbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lHMWxkR0ZrWVhSaFJHVnpZM0pwY0hSdmNsVnliRG9nWTI5dVptbG5MbVJwYzJOdmRtVnllVlZ5YkNBL1B5QmNJbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lHRjFkR2h2Y21sNllYUnBiMjVWY213NklHTnZibVpwWnk1MWNITjBjbVZoYlVsemMzVmxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QmdKSHRqYjI1bWFXY3VkWEJ6ZEhKbFlXMUpjM04xWlhKOUwzQnliM1J2WTI5c0wyOXdaVzVwWkMxamIyNXVaV04wTDJGMWRHaGdYRzRnSUNBZ0lDQWdJQ0FnSUNBNklGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2RHOXJaVzVWY213NklHTnZibVpwWnk1MWNITjBjbVZoYlVsemMzVmxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QmdKSHRqYjI1bWFXY3VkWEJ6ZEhKbFlXMUpjM04xWlhKOUwzQnliM1J2WTI5c0wyOXdaVzVwWkMxamIyNXVaV04wTDNSdmEyVnVZRnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQmNJbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lIVnpaWEpKYm1adlZYSnNPaUJqYjI1bWFXY3VkWEJ6ZEhKbFlXMUpjM04xWlhKY2JpQWdJQ0FnSUNBZ0lDQWdJRDhnWUNSN1kyOXVabWxuTG5Wd2MzUnlaV0Z0U1hOemRXVnlmUzl3Y205MGIyTnZiQzl2Y0dWdWFXUXRZMjl1Ym1WamRDOTFjMlZ5YVc1bWIyQmNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1hDSmNJaXhjYmlBZ0lDQWdJQ0FnSUNCcWQydHpWWEpzT2lCamIyNW1hV2N1ZFhCemRISmxZVzFKYzNOMVpYSmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z1lDUjdZMjl1Wm1sbkxuVndjM1J5WldGdFNYTnpkV1Z5ZlM5d2NtOTBiMk52YkM5dmNHVnVhV1F0WTI5dWJtVmpkQzlqWlhKMGMyQmNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1hDSmNJaXhjYmlBZ0lDQWdJQ0FnSUNCc2IyZHZkWFJWY213NklHTnZibVpwWnk1MWNITjBjbVZoYlVsemMzVmxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QmdKSHRqYjI1bWFXY3VkWEJ6ZEhKbFlXMUpjM04xWlhKOUwzQnliM1J2WTI5c0wyOXdaVzVwWkMxamIyNXVaV04wTDJ4dloyOTFkR0JjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dYQ0pjSWl4Y2JpQWdJQ0FnSUNBZ0lDQmpiR2xsYm5SSlpEb2dZMjl1Wm1sbkxtTnNhV1Z1ZEVsa0lEOC9JRndpWENJc1hHNGdJQ0FnSUNBZ0lDQWdZMnhwWlc1MFUyVmpjbVYwT2lCamIyNW1hV2N1WTJ4cFpXNTBVMlZqY21WMElEOC9JRndpWENJc1hHNGdJQ0FnSUNBZ0lDQWdZMnhwWlc1MFFYVjBhRTFsZEdodlpEb2dZMjl1Wm1sbkxtTnNhV1Z1ZEVGMWRHaE5aWFJvYjJRZ1B6OGdYQ0pqYkdsbGJuUmZjMlZqY21WMFgzQnZjM1JjSWl4Y2JpQWdJQ0FnSUNBZ0lDQmpiR2xsYm5SQmMzTmxjblJwYjI1VGFXZHVhVzVuUVd4bk9pQmpiMjVtYVdjdVkyeHBaVzUwUVhOelpYSjBhVzl1VTJsbmJtbHVaMEZzWnlBL1B5QmNJbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lHTnNhV1Z1ZEVGemMyVnlkR2x2YmtGMVpHbGxibU5sT2lCamIyNW1hV2N1WTJ4cFpXNTBRWE56WlhKMGFXOXVRWFZrYVdWdVkyVWdQejhnWENKY0lpeGNiaUFnSUNBZ0lDQWdJQ0JrWldaaGRXeDBVMk52Y0dVNklHTnZibVpwWnk1a1pXWmhkV3gwVTJOdmNHVnpJRDgvSUZ3aWIzQmxibWxrSUhCeWIyWnBiR1VnWlcxaGFXeGNJaXhjYmlBZ0lDQWdJQ0FnSUNCMllXeHBaR0YwWlZOcFoyNWhkSFZ5WlRvZ1hDSjBjblZsWENJc1hHNGdJQ0FnSUNBZ0lDQWdkWE5sU25kcmMxVnliRG9nWENKMGNuVmxYQ0lzWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSURvZ2UxeHVJQ0FnSUNBZ0lDQWdJR1Z1ZEdsMGVVbGtPaUJqYjI1bWFXY3VjMkZ0YkQ4dVpXNTBhWFI1U1dRZ1B6OGdYQ0pjSWl4Y2JpQWdJQ0FnSUNBZ0lDQnphVzVuYkdWVGFXZHVUMjVUWlhKMmFXTmxWWEpzT2lCamIyNW1hV2N1YzJGdGJEOHVjMmx1WjJ4bFUybG5iazl1VTJWeWRtbGpaVlZ5YkNBL1B5QmNJbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lITnBibWRzWlV4dloyOTFkRk5sY25acFkyVlZjbXc2SUdOdmJtWnBaeTV6WVcxc1B5NXphVzVuYkdWTWIyZHZkWFJUWlhKMmFXTmxWWEpzSUQ4L0lGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2MybG5ibWx1WjBObGNuUnBabWxqWVhSbE9pQmpiMjVtYVdjdWMyRnRiRDh1YzJsbmJtbHVaME5sY25ScFptbGpZWFJsSUQ4L0lGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2JtRnRaVWxrVUc5c2FXTjVSbTl5YldGME9pQmpiMjVtYVdjdWMyRnRiRDh1Ym1GdFpVbGtVRzlzYVdONVJtOXliV0YwSUQ4L0lGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2NISnBibU5wY0dGc1FYUjBjbWxpZFhSbE9pQmpiMjVtYVdjdWMyRnRiRDh1Y0hKcGJtTnBjR0ZzUVhSMGNtbGlkWFJsSUQ4L0lGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2MybG5ibUYwZFhKbFFXeG5iM0pwZEdodE9pQmpiMjVtYVdjdWMyRnRiRDh1YzJsbmJtRjBkWEpsUVd4bmIzSnBkR2h0SUQ4L0lGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2NHOXpkRUpwYm1ScGJtZFNaWE53YjI1elpUb2dVM1J5YVc1bktHTnZibVpwWnk1ellXMXNQeTV3YjNOMFFtbHVaR2x1WjFKbGMzQnZibk5sSUQ4L0lIUnlkV1VwTEZ4dUlDQWdJQ0FnSUNBZ0lIQnZjM1JDYVc1a2FXNW5RWFYwYUc1U1pYRjFaWE4wT2lCVGRISnBibWNvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjVtYVdjdWMyRnRiRDh1Y0c5emRFSnBibVJwYm1kQmRYUm9ibEpsY1hWbGMzUWdQejhnZEhKMVpWeHVJQ0FnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2QyRnVkRUYxZEdodVVtVnhkV1Z6ZEhOVGFXZHVaV1E2SUZOMGNtbHVaeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibVpwWnk1ellXMXNQeTUzWVc1MFFYVjBhRzVTWlhGMVpYTjBjMU5wWjI1bFpDQS9QeUJtWVd4elpWeHVJQ0FnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0FnSUgwcExGeHVJQ0FnSUM0dUxtTnZibVpwWnk1amIyNW1hV2NzWEc0Z0lIMDdYRzVjYmlBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0JoYkdsaGN6b2dZMjl1Wm1sbkxtRnNhV0Z6TEZ4dUlDQWdJR1JwYzNCc1lYbE9ZVzFsT2lCamIyNW1hV2N1WkdsemNHeGhlVTVoYldVc1hHNGdJQ0FnY0hKdmRtbGtaWEpKWkRvZ1kyOXVabWxuTG5CeWIzUnZZMjlzTEZ4dUlDQWdJR1Z1WVdKc1pXUTZJR052Ym1acFp5NWxibUZpYkdWa0lEOC9JSFJ5ZFdVc1hHNGdJQ0FnZEhKMWMzUkZiV0ZwYkRvZ1kyOXVabWxuTG5SeWRYTjBSVzFoYVd3Z1B6OGdabUZzYzJVc1hHNGdJQ0FnYzNSdmNtVlViMnRsYmpvZ1kyOXVabWxuTG5OMGIzSmxWRzlyWlc0Z1B6OGdabUZzYzJVc1hHNGdJQ0FnYkdsdWEwOXViSGs2SUdOdmJtWnBaeTVzYVc1clQyNXNlU0EvUHlCbVlXeHpaU3hjYmlBZ0lDQmhkWFJvWlc1MGFXTmhkR1ZDZVVSbFptRjFiSFE2SUdOdmJtWnBaeTVoZFhSb1pXNTBhV05oZEdWQ2VVUmxabUYxYkhRZ1B6OGdabUZzYzJVc1hHNGdJQ0FnWm1seWMzUkNjbTlyWlhKTWIyZHBia1pzYjNkQmJHbGhjem9nWTI5dVptbG5MbVpwY25OMFFuSnZhMlZ5VEc5bmFXNUdiRzkzUVd4cFlYTXNYRzRnSUNBZ2NHOXpkRUp5YjJ0bGNreHZaMmx1Um14dmQwRnNhV0Z6T2lCamIyNW1hV2N1Y0c5emRFSnliMnRsY2t4dloybHVSbXh2ZDBGc2FXRnpMRnh1SUNBZ0lHTnZibVpwWnpvZ2NISnZkbWxrWlhKRGIyNW1hV2NzWEc0Z0lIMDdYRzU5WEc0aVhYMD0iXX0=
|