@decaf-ts/integrations 0.14.3 → 0.15.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/LICENSE.md +373 -21
- package/dist/integrations.cjs +2 -3317
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -3665
- package/dist/integrations.js.map +1 -0
- package/jest.config.cjs +0 -1
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/core/BlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs.map +1 -0
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs.map +1 -0
- package/lib/cjs/calendar/CalendarService.cjs +2 -2
- package/lib/cjs/calendar/CalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/environment.cjs +2 -2
- package/lib/cjs/calendar/environment.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
- package/lib/cjs/calendar/index.cjs +2 -2
- package/lib/cjs/calendar/index.cjs.map +1 -0
- package/lib/cjs/calendar/types.cjs +2 -2
- package/lib/cjs/calendar/types.cjs.map +1 -0
- package/lib/cjs/calendar/validators/cron.cjs +2 -2
- package/lib/cjs/calendar/validators/cron.cjs.map +1 -0
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +1 -0
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +1 -0
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +1 -0
- package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
- package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
- package/lib/cjs/comms/discord/index.cjs +2 -2
- package/lib/cjs/comms/discord/index.cjs.map +1 -0
- package/lib/cjs/comms/email/EmailService.cjs +2 -2
- package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
- package/lib/cjs/comms/email/index.cjs +2 -2
- package/lib/cjs/comms/email/index.cjs.map +1 -0
- package/lib/cjs/comms/email/mime.cjs +2 -2
- package/lib/cjs/comms/email/mime.cjs.map +1 -0
- package/lib/cjs/comms/email/smtp.cjs +2 -2
- package/lib/cjs/comms/email/smtp.cjs.map +1 -0
- package/lib/cjs/comms/environment.cjs +2 -2
- package/lib/cjs/comms/environment.cjs.map +1 -0
- package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
- package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
- package/lib/cjs/comms/gmail/index.cjs +2 -2
- package/lib/cjs/comms/gmail/index.cjs.map +1 -0
- package/lib/cjs/comms/index.cjs +2 -2
- package/lib/cjs/comms/index.cjs.map +1 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
- package/lib/cjs/comms/outlook/index.cjs +2 -2
- package/lib/cjs/comms/outlook/index.cjs.map +1 -0
- package/lib/cjs/comms/slack/SlackService.cjs +2 -2
- package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
- package/lib/cjs/comms/slack/index.cjs +2 -2
- package/lib/cjs/comms/slack/index.cjs.map +1 -0
- package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
- package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
- package/lib/cjs/comms/teams/index.cjs +2 -2
- package/lib/cjs/comms/teams/index.cjs.map +1 -0
- package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
- package/lib/cjs/comms/telegram/index.cjs +2 -2
- package/lib/cjs/comms/telegram/index.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/index.cjs +2 -2
- package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
- package/lib/cjs/devops/environment.cjs +2 -2
- package/lib/cjs/devops/environment.cjs.map +1 -0
- package/lib/cjs/devops/github/GithubService.cjs +2 -2
- package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
- package/lib/cjs/devops/github/index.cjs +2 -2
- package/lib/cjs/devops/github/index.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/index.cjs +2 -2
- package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
- package/lib/cjs/devops/index.cjs +2 -2
- package/lib/cjs/devops/index.cjs.map +1 -0
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/docker/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs.map +1 -0
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs.map +1 -0
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +3 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs.map +1 -0
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs.map +1 -0
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
- package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
- package/lib/cjs/io/airtable/index.cjs +2 -2
- package/lib/cjs/io/airtable/index.cjs.map +1 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
- package/lib/cjs/io/confluence/index.cjs +2 -2
- package/lib/cjs/io/confluence/index.cjs.map +1 -0
- package/lib/cjs/io/environment.cjs +2 -2
- package/lib/cjs/io/environment.cjs.map +1 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
- package/lib/cjs/io/google-docs/index.cjs +2 -2
- package/lib/cjs/io/google-docs/index.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/index.cjs +2 -2
- package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
- package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
- package/lib/cjs/io/graphql/index.cjs +2 -2
- package/lib/cjs/io/graphql/index.cjs.map +1 -0
- package/lib/cjs/io/index.cjs +2 -2
- package/lib/cjs/io/index.cjs.map +1 -0
- package/lib/cjs/io/jira/JiraService.cjs +2 -2
- package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
- package/lib/cjs/io/jira/index.cjs +2 -2
- package/lib/cjs/io/jira/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/index.cjs +2 -2
- package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
- package/lib/cjs/keycloak/broker.cjs +2 -2
- package/lib/cjs/keycloak/broker.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs.map +1 -0
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs.map +1 -0
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/kibana/types.cjs.map +1 -0
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
- package/lib/cjs/loader/assets.cjs +2 -2
- package/lib/cjs/loader/assets.cjs.map +1 -0
- package/lib/cjs/loader/config.cjs +2 -2
- package/lib/cjs/loader/config.cjs.map +1 -0
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/families.cjs.map +1 -0
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/index.cjs.map +1 -0
- package/lib/cjs/loader/nest.cjs +2 -2
- package/lib/cjs/loader/nest.cjs.map +1 -0
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/loader/types.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
- package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/index.cjs +2 -2
- package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
- package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
- package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs.map +1 -0
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs.map +1 -0
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs.map +1 -0
- package/lib/cjs/nest/decorators.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs.map +1 -0
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/index.cjs.map +1 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/logging.cjs.map +1 -0
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/types.cjs.map +1 -0
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/nest/utils.cjs.map +1 -0
- package/lib/cjs/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/contract.cjs.map +1 -0
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs.map +1 -0
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs.map +1 -0
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs.map +1 -0
- package/lib/cjs/redis/RedisContextLock.cjs +2 -2
- package/lib/cjs/redis/RedisContextLock.cjs.map +1 -0
- package/lib/cjs/redis/RedisDispatch.cjs +2 -2
- package/lib/cjs/redis/RedisDispatch.cjs.map +1 -0
- package/lib/cjs/redis/RedisPaginator.cjs +2 -2
- package/lib/cjs/redis/RedisPaginator.cjs.map +1 -0
- package/lib/cjs/redis/RedisStatement.cjs +2 -2
- package/lib/cjs/redis/RedisStatement.cjs.map +1 -0
- package/lib/cjs/redis/adapter.cjs +2 -2
- package/lib/cjs/redis/adapter.cjs.map +1 -0
- package/lib/cjs/redis/constants.cjs +2 -2
- package/lib/cjs/redis/constants.cjs.map +1 -0
- package/lib/cjs/redis/handlers.cjs +2 -2
- package/lib/cjs/redis/handlers.cjs.map +1 -0
- package/lib/cjs/redis/index.cjs +2 -2
- package/lib/cjs/redis/index.cjs.map +1 -0
- package/lib/cjs/redis/serialization.cjs +2 -2
- package/lib/cjs/redis/serialization.cjs.map +1 -0
- package/lib/cjs/redis/types.cjs +2 -2
- package/lib/cjs/redis/types.cjs.map +1 -0
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs.map +1 -0
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/fs/index.cjs +2 -2
- package/lib/cjs/secrets/fs/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/index.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/index.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs.map +1 -0
- package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +1 -0
- package/lib/cjs/sftp/aws/index.cjs +2 -2
- package/lib/cjs/sftp/aws/index.cjs.map +1 -0
- package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
- package/lib/cjs/sftp/core/SftpSource.cjs.map +1 -0
- package/lib/cjs/sftp/core/index.cjs +2 -2
- package/lib/cjs/sftp/core/index.cjs.map +1 -0
- package/lib/cjs/sftp/index.cjs +2 -2
- package/lib/cjs/sftp/index.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/index.cjs +2 -2
- package/lib/cjs/sftp/ssh2/index.cjs.map +1 -0
- package/lib/cjs/shared/environmentValue.cjs +2 -2
- package/lib/cjs/shared/environmentValue.cjs.map +1 -0
- package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
- package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
- package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
- package/lib/cjs/shared/http/index.cjs +2 -2
- package/lib/cjs/shared/http/index.cjs.map +1 -0
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs.map +1 -0
- package/lib/cjs/user-requests/index.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs.map +1 -0
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
- package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/azure/index.js.map +1 -0
- package/lib/esm/blob/core/BlobEnvironment.js +1 -1
- package/lib/esm/blob/core/BlobEnvironment.js.map +1 -0
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js.map +1 -0
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobKey.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js.map +1 -0
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/BlobValue.js.map +1 -0
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/core/index.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobEnvironment.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/gcp/index.js.map +1 -0
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/index.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobEnvironment.js +1 -1
- package/lib/esm/blob/local/LocalBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/local/index.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobEnvironment.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/memory/index.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/blob/s3/index.js.map +1 -0
- package/lib/esm/calendar/CalendarService.js +1 -1
- package/lib/esm/calendar/CalendarService.js.map +1 -0
- package/lib/esm/calendar/environment.js +1 -1
- package/lib/esm/calendar/environment.js.map +1 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
- package/lib/esm/calendar/google-calendar/index.js +1 -1
- package/lib/esm/calendar/google-calendar/index.js.map +1 -0
- package/lib/esm/calendar/index.js +1 -1
- package/lib/esm/calendar/index.js.map +1 -0
- package/lib/esm/calendar/types.js +1 -1
- package/lib/esm/calendar/types.js.map +1 -0
- package/lib/esm/calendar/validators/cron.js +1 -1
- package/lib/esm/calendar/validators/cron.js.map +1 -0
- package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js.map +1 -0
- package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js.map +1 -0
- package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js.map +1 -0
- package/lib/esm/comms/discord/DiscordService.js +1 -1
- package/lib/esm/comms/discord/DiscordService.js.map +1 -0
- package/lib/esm/comms/discord/index.js +1 -1
- package/lib/esm/comms/discord/index.js.map +1 -0
- package/lib/esm/comms/email/EmailService.js +1 -1
- package/lib/esm/comms/email/EmailService.js.map +1 -0
- package/lib/esm/comms/email/index.js +1 -1
- package/lib/esm/comms/email/index.js.map +1 -0
- package/lib/esm/comms/email/mime.js +1 -1
- package/lib/esm/comms/email/mime.js.map +1 -0
- package/lib/esm/comms/email/smtp.js +1 -1
- package/lib/esm/comms/email/smtp.js.map +1 -0
- package/lib/esm/comms/environment.js +1 -1
- package/lib/esm/comms/environment.js.map +1 -0
- package/lib/esm/comms/gmail/GmailService.js +1 -1
- package/lib/esm/comms/gmail/GmailService.js.map +1 -0
- package/lib/esm/comms/gmail/index.js +1 -1
- package/lib/esm/comms/gmail/index.js.map +1 -0
- package/lib/esm/comms/index.js +1 -1
- package/lib/esm/comms/index.js.map +1 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
- package/lib/esm/comms/outlook/index.js +1 -1
- package/lib/esm/comms/outlook/index.js.map +1 -0
- package/lib/esm/comms/slack/SlackService.js +1 -1
- package/lib/esm/comms/slack/SlackService.js.map +1 -0
- package/lib/esm/comms/slack/index.js +1 -1
- package/lib/esm/comms/slack/index.js.map +1 -0
- package/lib/esm/comms/teams/TeamsService.js +1 -1
- package/lib/esm/comms/teams/TeamsService.js.map +1 -0
- package/lib/esm/comms/teams/index.js +1 -1
- package/lib/esm/comms/teams/index.js.map +1 -0
- package/lib/esm/comms/telegram/TelegramService.js +1 -1
- package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
- package/lib/esm/comms/telegram/index.js +1 -1
- package/lib/esm/comms/telegram/index.js.map +1 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
- package/lib/esm/comms/whatsapp/index.js +1 -1
- package/lib/esm/comms/whatsapp/index.js.map +1 -0
- package/lib/esm/devops/environment.js +1 -1
- package/lib/esm/devops/environment.js.map +1 -0
- package/lib/esm/devops/github/GithubService.js +1 -1
- package/lib/esm/devops/github/GithubService.js.map +1 -0
- package/lib/esm/devops/github/index.js +1 -1
- package/lib/esm/devops/github/index.js.map +1 -0
- package/lib/esm/devops/gitlab/GitlabService.js +1 -1
- package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
- package/lib/esm/devops/gitlab/index.js +1 -1
- package/lib/esm/devops/gitlab/index.js.map +1 -0
- package/lib/esm/devops/index.js +1 -1
- package/lib/esm/devops/index.js.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/DockerComposeService.js.map +1 -0
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/docker/index.js.map +1 -0
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/constants.js.map +1 -0
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/decorators.js.map +1 -0
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/environment.js.map +1 -0
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/readers/index.js.map +1 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +2 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/types.js.map +1 -0
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/feature-flags/utils.js.map +1 -0
- package/lib/esm/index.js +4 -4
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/io/airtable/AirtableService.js +1 -1
- package/lib/esm/io/airtable/AirtableService.js.map +1 -0
- package/lib/esm/io/airtable/index.js +1 -1
- package/lib/esm/io/airtable/index.js.map +1 -0
- package/lib/esm/io/confluence/ConfluenceService.js +1 -1
- package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
- package/lib/esm/io/confluence/index.js +1 -1
- package/lib/esm/io/confluence/index.js.map +1 -0
- package/lib/esm/io/environment.js +1 -1
- package/lib/esm/io/environment.js.map +1 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
- package/lib/esm/io/google-docs/index.js +1 -1
- package/lib/esm/io/google-docs/index.js.map +1 -0
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
- package/lib/esm/io/google-sheets/index.js +1 -1
- package/lib/esm/io/google-sheets/index.js.map +1 -0
- package/lib/esm/io/graphql/GraphqlService.js +1 -1
- package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
- package/lib/esm/io/graphql/index.js +1 -1
- package/lib/esm/io/graphql/index.js.map +1 -0
- package/lib/esm/io/index.js +1 -1
- package/lib/esm/io/index.js.map +1 -0
- package/lib/esm/io/jira/JiraService.js +1 -1
- package/lib/esm/io/jira/JiraService.js.map +1 -0
- package/lib/esm/io/jira/index.js +1 -1
- package/lib/esm/io/jira/index.js.map +1 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
- package/lib/esm/io/microsoft-excel/index.js +1 -1
- package/lib/esm/io/microsoft-excel/index.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
- package/lib/esm/io/spreadsheet/index.js +1 -1
- package/lib/esm/io/spreadsheet/index.js.map +1 -0
- package/lib/esm/keycloak/broker.js +1 -1
- package/lib/esm/keycloak/broker.js.map +1 -0
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/index.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/index.js.map +1 -0
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/services/runtime.js.map +1 -0
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/keycloak/types.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/builders/index.js.map +1 -0
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/helpers.js.map +1 -0
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/index.js.map +1 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/index.js.map +1 -0
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/services/runtime.js.map +1 -0
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/kibana/types.js.map +1 -0
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/ObjectLoader.js.map +1 -0
- package/lib/esm/loader/assets.js +1 -1
- package/lib/esm/loader/assets.js.map +1 -0
- package/lib/esm/loader/config.js +1 -1
- package/lib/esm/loader/config.js.map +1 -0
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/families.js.map +1 -0
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/index.js.map +1 -0
- package/lib/esm/loader/nest.js +1 -1
- package/lib/esm/loader/nest.js.map +1 -0
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/loader/types.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/index.js.map +1 -0
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
- package/lib/esm/namespaces/models/credential.model.js +1 -1
- package/lib/esm/namespaces/models/credential.model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js.map +1 -0
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/index.js.map +1 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js.map +1 -0
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js.map +1 -0
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
- package/lib/esm/namespaces/rls/index.js +1 -1
- package/lib/esm/namespaces/rls/index.js.map +1 -0
- package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
- package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.constants.js +1 -1
- package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.template.js +1 -1
- package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.types.js +1 -1
- package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
- package/lib/esm/namespaces/rls/session-binding.js +1 -1
- package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js.map +1 -0
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/services/credential.service.js +1 -1
- package/lib/esm/namespaces/services/credential.service.js.map +1 -0
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/index.js.map +1 -0
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js.map +1 -0
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js.map +1 -0
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js.map +1 -0
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/types.js.map +1 -0
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/namespaces/utils.js.map +1 -0
- package/lib/esm/nest/decorators.js +1 -1
- package/lib/esm/nest/decorators.js.map +1 -0
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/index.js.map +1 -0
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/keycloakModule.js.map +1 -0
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/logging.js.map +1 -0
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/types.js.map +1 -0
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/nest/utils.js.map +1 -0
- package/lib/esm/plugins/contract.js +1 -1
- package/lib/esm/plugins/contract.js.map +1 -0
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/index.js.map +1 -0
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/host.js.map +1 -0
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/index.js.map +1 -0
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/installer.js.map +1 -0
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js.map +1 -0
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/templates.js.map +1 -0
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/kibana/types.js.map +1 -0
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/host.js.map +1 -0
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/index.js.map +1 -0
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/installer.js.map +1 -0
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/manifest.js.map +1 -0
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/templates.js.map +1 -0
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/plugins/superset/types.js.map +1 -0
- package/lib/esm/redis/RedisContextLock.js +1 -1
- package/lib/esm/redis/RedisContextLock.js.map +1 -0
- package/lib/esm/redis/RedisDispatch.js +1 -1
- package/lib/esm/redis/RedisDispatch.js.map +1 -0
- package/lib/esm/redis/RedisPaginator.js +1 -1
- package/lib/esm/redis/RedisPaginator.js.map +1 -0
- package/lib/esm/redis/RedisStatement.js +1 -1
- package/lib/esm/redis/RedisStatement.js.map +1 -0
- package/lib/esm/redis/adapter.js +1 -1
- package/lib/esm/redis/adapter.js.map +1 -0
- package/lib/esm/redis/constants.js +1 -1
- package/lib/esm/redis/constants.js.map +1 -0
- package/lib/esm/redis/handlers.js +1 -1
- package/lib/esm/redis/handlers.js.map +1 -0
- package/lib/esm/redis/index.js +1 -1
- package/lib/esm/redis/index.js.map +1 -0
- package/lib/esm/redis/serialization.js +1 -1
- package/lib/esm/redis/serialization.js.map +1 -0
- package/lib/esm/redis/types.js +1 -1
- package/lib/esm/redis/types.js.map +1 -0
- package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/aws/index.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/azure/AzureSecretEnvironment.js +1 -1
- package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/azure/index.js.map +1 -0
- package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
- package/lib/esm/secrets/core/SecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretName.js.map +1 -0
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js.map +1 -0
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/core/index.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretService.js +1 -1
- package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/fs/index.js +1 -1
- package/lib/esm/secrets/fs/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/gcp/index.js.map +1 -0
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/index.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/kubernetes/index.js +1 -1
- package/lib/esm/secrets/kubernetes/index.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretEnvironment.js +1 -1
- package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/Secret.js.map +1 -0
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/model/index.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/onepassword/index.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretEnvironment.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/secrets/vault/index.js.map +1 -0
- package/lib/esm/sftp/aws/AwsSftpEnvironment.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpService.js.map +1 -0
- package/lib/esm/sftp/aws/index.js +1 -1
- package/lib/esm/sftp/aws/index.js.map +1 -0
- package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
- package/lib/esm/sftp/core/SftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/core/SftpSource.js +1 -1
- package/lib/esm/sftp/core/SftpSource.js.map +1 -0
- package/lib/esm/sftp/core/index.js +1 -1
- package/lib/esm/sftp/core/index.js.map +1 -0
- package/lib/esm/sftp/index.js +1 -1
- package/lib/esm/sftp/index.js.map +1 -0
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +1 -0
- package/lib/esm/sftp/ssh2/index.js +1 -1
- package/lib/esm/sftp/ssh2/index.js.map +1 -0
- package/lib/esm/shared/environmentValue.js +1 -1
- package/lib/esm/shared/environmentValue.js.map +1 -0
- package/lib/esm/shared/http/HttpApiService.js +1 -1
- package/lib/esm/shared/http/HttpApiService.js.map +1 -0
- package/lib/esm/shared/http/hermeticBoot.js +1 -1
- package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
- package/lib/esm/shared/http/index.js +1 -1
- package/lib/esm/shared/http/index.js.map +1 -0
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/shared/runtime.js.map +1 -0
- package/lib/esm/user-requests/index.js +1 -1
- package/lib/esm/user-requests/index.js.map +1 -0
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/package.json +74 -50
|
@@ -39,5 +39,5 @@ exports.DevopsEnvironment = logging_1.LoggedEnvironment.accumulate({
|
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
41
|
});
|
|
42
|
-
//# sourceMappingURL=
|
|
43
|
-
//# sourceMappingURL=
|
|
42
|
+
//# sourceMappingURL=environment.js.map
|
|
43
|
+
//# sourceMappingURL=environment.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops/environment.cjs","sourceRoot":"","sources":["devops/environment.js"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,iBAAiB,GAAG,2BAAiB,CAAC,UAAU,CAAC;IAC1D,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,SAAS;SACrB;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,SAAS;SACrB;KACJ;CACJ,CAAC,CAAC;AACH,uCAAuC"}
|
|
@@ -298,5 +298,5 @@ class GithubService extends index_js_1.HttpApiService {
|
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
300
|
exports.GithubService = GithubService;
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2l0aHViU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXZvcHMvZ2l0aHViL0dpdGh1YlNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDRCQUF1QjtBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSwyQ0FBc0M7QUFDckUsT0FBTyxFQUNMLGNBQWMsRUFFZCxTQUFTLEdBQ1YscUNBQTBCO0FBcUkzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsY0FBbUM7SUFBdEU7O1FBQ0U7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBRyxRQUFRLENBQUM7SUFpUjVDLENBQUM7SUEvUUM7Ozs7T0FJRztJQUNPLGNBQWM7UUFDdEIsT0FBTyx3QkFBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLFdBQVcsQ0FBQyxNQUEyQjtRQUMvQyxPQUFPLE1BQU0sQ0FBQyxLQUFLO1lBQ2pCLENBQUMsQ0FBQztnQkFDRSxhQUFhLEVBQUUsVUFBVSxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsNkJBQTZCO2dCQUNyQyxzQkFBc0IsRUFBRSxZQUFZO2FBQ3JDO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLDZCQUE2QixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLHFCQUFxQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM3QixPQUFPO1lBQ0wsS0FBSztZQUNMLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDekIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQy9CLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ08sUUFBUSxDQUFDLFFBQTZCLEVBQUU7UUFDaEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksYUFBYSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sVUFBVSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDTyxRQUFRLENBQ2hCLEdBQTRCLEVBQzVCLEdBQXdCO1FBRXhCLE9BQU87WUFDTCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDckMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsSUFBSSxFQUFFLFNBQVMsQ0FBRSxHQUFHLENBQUMsTUFBTSxDQUFvQyxFQUFFLEtBQUssQ0FBQztZQUN2RSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBRSxHQUFHLENBQUMsUUFBUSxDQUF1QyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pFLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FDN0Q7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVM7WUFDYixRQUFRLEVBQ04sT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBUTtnQkFDakMsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxVQUFVLENBQVk7Z0JBQzdCLENBQUMsQ0FBQyxTQUFTO1lBQ2YsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDeEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBMkIsRUFBRTtRQUMvQyxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUNkLFVBQTZCLEVBQUU7UUFFL0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDcEMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQ2xDO2dCQUNFLE1BQU0sRUFBRTtvQkFDTixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxNQUFNO29CQUM5QixRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUM3QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtpQkFDdkI7YUFDRixDQUNGLENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJO2lCQUNqQixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUN6QyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUF1QjtRQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxhQUFhLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDckMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQ2hDO2dCQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2FBQzNCLENBQ0YsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxTQUFTLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsS0FBNkQ7UUFFN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLGFBQWEsQ0FDckIsa0RBQWtELENBQ25ELENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FHcEMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssQ0FBQyxNQUFNLFdBQVcsRUFBRTtnQkFDNUQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hGLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxTQUFTLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLFVBQTZCLEVBQUU7UUFFL0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDcEMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQ2pDO2dCQUNFLE1BQU0sRUFBRTtvQkFDTixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxNQUFNO29CQUM5QixRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUM3QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7aUJBQ25CO2FBQ0YsQ0FDRixDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxTQUFTLENBQUMsUUFBUSxFQUFFLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2Rldm9wcy9naXRodWIvc2VydmljZVxuICogQHN1bW1hcnkgR2l0SHViIFJFU1QgQVBJIGludGVncmF0aW9uIHNlcnZpY2UgZm9yIHJlcG9zaXRvcmllcywgaXNzdWVzLCBhbmQgcHVsbCByZXF1ZXN0cy5cbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIGEgZm9jdXNlZCBzdWJzZXQgb2YgdGhlIEdpdEh1YiBSRVNUIEFQSSAoYC9yZXBvcy8qYDpcbiAqIHJlcG9zaXRvcnkgbG9va3VwLCBpc3N1ZSBsaXN0aW5nL2NyZWF0aW9uL2NvbW1lbnRpbmcsIGFuZCBwdWxsLXJlcXVlc3RcbiAqIGxpc3RpbmcpIGFzIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uXG4gKiB7QGxpbmsgSHR0cEFwaVNlcnZpY2V9LiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXRcbiAqIGBHaXRodWJTZXJ2aWNlQ29uZmlnYCBvciB0aGUgYGRldm9wcy5naXRodWJgIGVudmlyb25tZW50IHNsaWNlOyByZXBvc2l0b3J5XG4gKiB0YXJnZXRzIGRlZmF1bHQgdG8gdGhlIGNvbmZpZ3VyZWQgYG93bmVyYC9gcmVwb2AgYW5kIGNhbiBiZSBvdmVycmlkZGVuIHBlclxuICogY2FsbC4gUmF3IEdpdEh1YiByZXNwb25zZXMgYXJlIG5vcm1hbGl6ZWQgdG8gY2FtZWxDYXNlIGlzc3VlIGRlc2NyaXB0b3JzLFxuICogYW5kIGZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqL1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRGV2b3BzRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlXCI7XG5pbXBvcnQge1xuICBIdHRwQXBpU2VydmljZSxcbiAgdHlwZSBIdHRwQXBpU2VydmljZUNvbmZpZyxcbiAgaHR0cEVycm9yLFxufSBmcm9tIFwiLi4vLi4vc2hhcmVkL2h0dHBcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIEdpdEh1YiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHtAbGluayBIdHRwQXBpU2VydmljZUNvbmZpZ30gd2l0aCB0aGUgR2l0SHViIHBlcnNvbmFsXG4gKiBhY2Nlc3MgdG9rZW4gKHNlbnQgYXMgYSBiZWFyZXIgdG9rZW4gd2l0aCB0aGUgR2l0SHViIEFQSSB2ZXJzaW9uIGhlYWRlcnMpXG4gKiBhbmQgdGhlIGRlZmF1bHQgYG93bmVyYC9gcmVwb2AgdXNlZCB3aGVuIGEgY2FsbCBkb2VzIG5vdCBvdmVycmlkZSB0aGVtLlxuICogV2hlbiBvbWl0dGVkLCB0aGUgYGRldm9wcy5naXRodWJgIGVudmlyb25tZW50IHNsaWNlIHN1cHBsaWVzIHRoZSB0b2tlblxuICogKGFuZCBvcHRpb25hbCBgb3duZXJgLCBgcmVwb2AsIGBiYXNlVXJsYCwgYHRpbWVvdXRgKS5cbiAqIEBjYXRlZ29yeSBEZXZPcHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2Rldm9wcy9naXRodWIvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YlNlcnZpY2VDb25maWcgZXh0ZW5kcyBIdHRwQXBpU2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2l0SHViIHBlcnNvbmFsIGFjY2VzcyB0b2tlblxuICAgKiBAc3VtbWFyeSBTZW50IGFzIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAgd2l0aCBldmVyeSBBUEkgY2FsbC5cbiAgICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlZmF1bHQgcmVwb3NpdG9yeSBvd25lciB1c2VkIHdoZW4gYSBjYWxsIGRvZXMgbm90IG92ZXJyaWRlIGl0XG4gICAqL1xuICBvd25lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IHJlcG9zaXRvcnkgbmFtZSB1c2VkIHdoZW4gYSBjYWxsIGRvZXMgbm90IG92ZXJyaWRlIGl0XG4gICAqL1xuICByZXBvPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZXBvc2l0b3J5IHRhcmdldGluZyByZWZlcmVuY2VcbiAqIEBzdW1tYXJ5IENhcnJpZXMgdGhlIG9wdGlvbmFsIGBvd25lcmAvYHJlcG9gIG92ZXJyaWRlIGZvciBhIHNpbmdsZSBjYWxsO1xuICogd2hlbiBlaXRoZXIgZmllbGQgaXMgb21pdHRlZCB0aGUgc2VydmljZSBmYWxscyBiYWNrIHRvIHRoZSBjb25maWd1cmVkXG4gKiBgR2l0aHViU2VydmljZUNvbmZpZy5vd25lcmAvYHJlcG9gLiBPcGVyYXRpb25zIHRoYXQgY2Fubm90IHJlc29sdmUgYm90aFxuICogdmFsdWVzIHRocm93IGBJbnRlcm5hbEVycm9yYC5cbiAqIEBjYXRlZ29yeSBEZXZPcHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2Rldm9wcy9naXRodWIvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YlJlcG9zaXRvcnlSZWYge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgb3duZXIgZm9yIHRoaXMgY2FsbFxuICAgKi9cbiAgb3duZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBuYW1lIGZvciB0aGlzIGNhbGxcbiAgICovXG4gIHJlcG8/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciBjcmVhdGluZyBhIEdpdEh1YiBpc3N1ZVxuICogQHN1bW1hcnkgRXh0ZW5kcyB7QGxpbmsgR2l0aHViUmVwb3NpdG9yeVJlZn0gd2l0aCB0aGUgcmVxdWlyZWQgaXNzdWVcbiAqIGB0aXRsZWAgYW5kIHRoZSBvcHRpb25hbCBib2R5LCBsYWJlbHMsIGFzc2lnbmVlcywgYW5kIG1pbGVzdG9uZSBudW1iZXIuXG4gKiBAY2F0ZWdvcnkgRGV2T3BzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9kZXZvcHMvZ2l0aHViL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRodWJJc3N1ZUlucHV0IGV4dGVuZHMgR2l0aHViUmVwb3NpdG9yeVJlZiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSXNzdWUgdGl0bGUgKHJlcXVpcmVkIGJ5IHRoZSBHaXRIdWIgQVBJKVxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJc3N1ZSBib2R5IGluIG1hcmtkb3duXG4gICAqL1xuICBib2R5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExhYmVsIG5hbWVzIHRvIGFwcGx5XG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVc2VybmFtZXMgdG8gYXNzaWduXG4gICAqL1xuICBhc3NpZ25lZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNaWxlc3RvbmUgbnVtYmVyIHRvIGFzc29jaWF0ZVxuICAgKi9cbiAgbWlsZXN0b25lPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBOb3JtYWxpemVkIEdpdEh1YiBpc3N1ZSBkZXNjcmlwdG9yXG4gKiBAc3VtbWFyeSBNYXBzIHRoZSByYXcgR2l0SHViIGlzc3VlIHBheWxvYWQgb250byBjYW1lbENhc2UgZmllbGRzOiBpZGVudGl0eVxuICogKGBudW1iZXJgLCBgdGl0bGVgLCBgc3RhdGVgKSwgYGh0bWxVcmxgLCBib2R5IGFuZCBhdXRob3IsIGBsYWJlbHNgIChsYWJlbFxuICogbmFtZXMgb25seSksIGBjb21tZW50c2AgY291bnQsIGFuZCBgY3JlYXRlZEF0YC9gdXBkYXRlZEF0YCB0aW1lc3RhbXBzLlxuICogUHVsbCByZXF1ZXN0cyByZXR1cm5lZCBieSB0aGUgaXNzdWVzIGVuZHBvaW50IGFyZSBmaWx0ZXJlZCBvdXQuXG4gKiBAY2F0ZWdvcnkgRGV2T3BzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9kZXZvcHMvZ2l0aHViL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRodWJJc3N1ZSBleHRlbmRzIEdpdGh1YlJlcG9zaXRvcnlSZWYge1xuICBudW1iZXI6IG51bWJlcjtcbiAgdGl0bGU6IHN0cmluZztcbiAgc3RhdGU/OiBzdHJpbmc7XG4gIGh0bWxVcmw/OiBzdHJpbmc7XG4gIGJvZHk/OiBzdHJpbmc7XG4gIHVzZXI/OiBzdHJpbmc7XG4gIGxhYmVscz86IHN0cmluZ1tdO1xuICBjb21tZW50cz86IG51bWJlcjtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICB1cGRhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbi8qXG4gKiBNYXJrZXIgKFNBQS0xMDM5IEYyIC8gU0FBLTEwNDQgRjgpOiB0aGUgdW5kb2N1bWVudGVkIGR1cGxpY2F0ZVxuICogYEdpdGh1Ykxpc3RPcHRpb25zYCBkZWNsYXJhdGlvbiB0aGF0IHVzZWQgdG8gc2l0IGhlcmUgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlXG4gKiBkb2N1bWVudGVkIGRlY2xhcmF0aW9uIGJlbG93IGlzIHRoZSBzaW5nbGUgYXV0aG9yaXRhdGl2ZSBzaGFwZS5cbiAqL1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb25zIGZvciBsaXN0aW5nIEdpdEh1YiBpc3N1ZXMgb3IgcHVsbCByZXF1ZXN0c1xuICogQHN1bW1hcnkgRXh0ZW5kcyB7QGxpbmsgR2l0aHViUmVwb3NpdG9yeVJlZn0gd2l0aCB0aGUgaXNzdWUvUFIgYHN0YXRlYFxuICogZmlsdGVyLCBhIHBhZ2Ugc2l6ZSAoYGxpbWl0YCkgYW5kIGBwYWdlYCBudW1iZXIgZm9yIHBhZ2luZywgYW5kIGFcbiAqIGNvbW1hLXNlcGFyYXRlZCBgbGFiZWxzYCBmaWx0ZXIgYXBwbGllZCB0byBpc3N1ZSBsaXN0aW5ncy5cbiAqIEBjYXRlZ29yeSBEZXZPcHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2Rldm9wcy9naXRodWIvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1Ykxpc3RPcHRpb25zIGV4dGVuZHMgR2l0aHViUmVwb3NpdG9yeVJlZiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSXNzdWUvUFIgc3RhdGUgZmlsdGVyXG4gICAqL1xuICBzdGF0ZT86IFwib3BlblwiIHwgXCJjbG9zZWRcIiB8IFwiYWxsXCI7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFnZSBzaXplIChHaXRIdWIncyBgcGVyX3BhZ2VgKTsgZGVmYXVsdHMgdG8gYDMwYFxuICAgKi9cbiAgbGltaXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFnZSBudW1iZXIgdG8gcmVxdWVzdFxuICAgKi9cbiAgcGFnZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb21tYS1zZXBhcmF0ZWQgbGFiZWwgbmFtZXMgdG8gZmlsdGVyIGlzc3VlcyBieVxuICAgKi9cbiAgbGFiZWxzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHaXRIdWIgUkVTVCBBUEkgaW50ZWdyYXRpb24gc2VydmljZVxuICogQHN1bW1hcnkgQW4gdW5kZWNvcmF0ZWQgSFRUUCBzZXJ2aWNlIGZvciBsb29raW5nIHVwXG4gKiByZXBvc2l0b3JpZXMsIGxpc3RpbmcgaXNzdWVzIChleGNsdWRpbmcgcHVsbCByZXF1ZXN0cyksIGNyZWF0aW5nIGlzc3VlcyxcbiAqIGNvbW1lbnRpbmcgb24gaXNzdWVzLCBhbmQgbGlzdGluZyBwdWxsIHJlcXVlc3RzLiBSZXBvc2l0b3J5IHRhcmdldHMgcmVzb2x2ZVxuICogcGVyIGNhbGwgZnJvbSB0aGUgaW5wdXQncyBgb3duZXJgL2ByZXBvYCwgZmFsbGluZyBiYWNrIHRvIHRoZSBjb25maWd1cmVkXG4gKiBjb25maWcgdmFsdWVzLCBhbmQgdGhyb3cgYEludGVybmFsRXJyb3JgIHdoZW4gdW5yZXNvbHZlZC4gVGhlIHRva2VuIGlzIHNlbnRcbiAqIGFzIGEgYmVhcmVyIHRva2VuIHdpdGggdGhlIEdpdEh1YiBgQWNjZXB0YCBhbmQgQVBJLXZlcnNpb24gaGVhZGVycywgYW5kXG4gKiB0cmFuc3BvcnQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LlxuICogQGNsYXNzIEdpdGh1YlNlcnZpY2VcbiAqIEBjYXRlZ29yeSBEZXZPcHNcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgR2l0aHViU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvaW50ZWdyYXRpb25zL2Rldm9wcy9naXRodWJcIjtcbiAqXG4gKiBjb25zdCBnaXRodWIgPSBuZXcgR2l0aHViU2VydmljZSgpO1xuICogYXdhaXQgZ2l0aHViLmluaXRpYWxpemUoe1xuICogICB0b2tlbjogcHJvY2Vzcy5lbnYuR1JBUEhfQ1JFREVOVElBTF9HSVRIVUJfVE9LRU4sXG4gKiAgIG93bmVyOiBcImV4YW1wbGUtb3JnXCIsXG4gKiAgIHJlcG86IFwiZXhhbXBsZS1yZXBvXCIsXG4gKiB9KTtcbiAqIGNvbnN0IGlzc3VlID0gYXdhaXQgZ2l0aHViLmNyZWF0ZUlzc3VlKHtcbiAqICAgdGl0bGU6IFwiQnVnIHJlcG9ydFwiLFxuICogICBib2R5OiBcIlNvbWV0aGluZyBpcyBicm9rZW5cIixcbiAqICAgbGFiZWxzOiBbXCJidWdcIl0sXG4gKiB9KTtcbiAqIGBgYFxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvZGV2b3BzL2dpdGh1Yi9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBHaXRodWJTZXJ2aWNlIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2U8R2l0aHViU2VydmljZUNvbmZpZz4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBwcm92aWRlciBuYW1lIHVzZWQgaW4gZXJyb3IgbWVzc2FnZXNcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlTmFtZSA9IFwiR2l0SHViXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgR2l0SHViIFJFU1QgQVBJIGJhc2UgVVJMXG4gICAqIEBzdW1tYXJ5IFVzZWQgd2hlbiB0aGUgcmVzb2x2ZWQgY29uZmlnIGNhcnJpZXMgbm8gYGJhc2VVcmxgLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL2FwaS5naXRodWIuY29tXCJgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGRlZmF1bHRCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbVwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIEdpdEh1YiBhdXRoZW50aWNhdGlvbiBhbmQgQVBJIHZlcnNpb24gaGVhZGVyc1xuICAgKiBAc3VtbWFyeSBSZXR1cm5zIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAsIHRoZSBHaXRIdWIgSlNPTlxuICAgKiBgQWNjZXB0YCBoZWFkZXIsIGFuZCB0aGUgYFgtR2l0SHViLUFwaS1WZXJzaW9uYCBoZWFkZXIgd2hlbiB0aGUgY29uZmlnXG4gICAqIGNhcnJpZXMgYSB0b2tlbjsgd2l0aG91dCBhIHRva2VuIG9ubHkgdGhlIGBBY2NlcHRgIGhlYWRlcnMgYXJlIHNlbnQuXG4gICAqIEBwYXJhbSB7R2l0aHViU2VydmljZUNvbmZpZ30gY29uZmlnIC0gVGhlIHJlc29sdmVkIHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFRoZSBhdXRob3JpemF0aW9uIGFuZCB2ZXJzaW9uIGhlYWRlcnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0aEhlYWRlcnMoY29uZmlnOiBHaXRodWJTZXJ2aWNlQ29uZmlnKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIGNvbmZpZy50b2tlblxuICAgICAgPyB7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2NvbmZpZy50b2tlbn1gLFxuICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi92bmQuZ2l0aHViK2pzb25cIixcbiAgICAgICAgICBcIlgtR2l0SHViLUFwaS1WZXJzaW9uXCI6IFwiMjAyMi0xMS0yOFwiLFxuICAgICAgICB9XG4gICAgICA6IHsgQWNjZXB0OiBcImFwcGxpY2F0aW9uL3ZuZC5naXRodWIranNvblwiIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBHaXRIdWIgY3JlZGVudGlhbHMgYW5kIGRlZmF1bHRzIGZyb20gdGhlIGVudmlyb25tZW50XG4gICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBgZGV2b3BzLmdpdGh1YmAgZW52aXJvbm1lbnQgc2xpY2UgYW5kIHJldHVybnMgYVxuICAgKiBwYXJ0aWFsIGNvbmZpZyB3aGVuIGEgdG9rZW4gaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXNcbiAgICogcGFzcyB0aHJvdWdoIGBlbnZTdHJpbmdgL2BlbnZOdW1iZXJgIHRvIHJlamVjdCB1bnNldC1sZWFmIHByb3hpZXMuXG4gICAqIEByZXR1cm5zIHtQYXJ0aWFsPEdpdGh1YlNlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkfSBBIHBhcnRpYWwgY29uZmlnLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIEdpdEh1YiB0b2tlbiBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpOiBQYXJ0aWFsPEdpdGh1YlNlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBEZXZvcHNFbnZpcm9ubWVudC5kZXZvcHMuZ2l0aHViO1xuICAgIGNvbnN0IHRva2VuID0gZW52U3RyaW5nKGVudj8udG9rZW4pO1xuICAgIGlmICghdG9rZW4pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuLFxuICAgICAgb3duZXI6IGVudlN0cmluZyhlbnYub3duZXIpLFxuICAgICAgcmVwbzogZW52U3RyaW5nKGVudi5yZXBvKSxcbiAgICAgIGJhc2VVcmw6IGVudlN0cmluZyhlbnYuYmFzZVVybCksXG4gICAgICB0aW1lb3V0OiBlbnZOdW1iZXIoZW52LnRpbWVvdXQpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc29sdmVzIHRoZSBVUkwtZW5jb2RlZCByZXBvc2l0b3J5IHBhdGggZm9yIGEgY2FsbFxuICAgKiBAc3VtbWFyeSBCdWlsZHMgYC9yZXBvcy88b3duZXI+LzxyZXBvPmAgZnJvbSB0aGUgaW5wdXQncyBgb3duZXJgL2ByZXBvYCxcbiAgICogZmFsbGluZyBiYWNrIHRvIHRoZSBjb25maWd1cmVkIGNvbmZpZyB2YWx1ZXMsIGFuZCB0aHJvd3Mgd2hlbiBlaXRoZXJcbiAgICogdmFsdWUgaXMgbWlzc2luZy5cbiAgICogQHBhcmFtIHtHaXRodWJSZXBvc2l0b3J5UmVmfSBbaW5wdXRdIC0gVGhlIHBlci1jYWxsIHJlcG9zaXRvcnkgb3ZlcnJpZGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBVUkwtZW5jb2RlZCByZXBvc2l0b3J5IEFQSSBwYXRoLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5laXRoZXIgdGhlIGlucHV0IG5vciB0aGUgY29uZmlnIHlpZWxkcyBhbiBvd25lciBhbmQgcmVwb3NpdG9yeS5cbiAgICovXG4gIHByb3RlY3RlZCByZXBvUGF0aChpbnB1dDogR2l0aHViUmVwb3NpdG9yeVJlZiA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBvd25lciA9IGlucHV0Lm93bmVyID8/IHRoaXMuY29uZmlnLm93bmVyO1xuICAgIGNvbnN0IHJlcG8gPSBpbnB1dC5yZXBvID8/IHRoaXMuY29uZmlnLnJlcG87XG4gICAgaWYgKCFvd25lciB8fCAhcmVwbykge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHaXRIdWIgcmVxdWlyZXMgYW4gb3duZXIgYW5kIHJlcG9zaXRvcnlcIik7XG4gICAgfVxuICAgIHJldHVybiBgL3JlcG9zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG93bmVyKX0vJHtlbmNvZGVVUklDb21wb25lbnQocmVwbyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTm9ybWFsaXplcyBhIHJhdyBHaXRIdWIgaXNzdWUgcGF5bG9hZFxuICAgKiBAc3VtbWFyeSBNYXBzIHRoZSByYXcgaXNzdWUgSlNPTiBvbnRvIGEge0BsaW5rIEdpdGh1Yklzc3VlfTogbGFiZWwgb2JqZWN0c1xuICAgKiBhcmUgcmVkdWNlZCB0byBuYW1lcywgdGhlIGF1dGhvciB0byBpdHMgYGxvZ2luYCwgYW5kIG51bWVyaWMvc3RyaW5nXG4gICAqIGZpZWxkcyBhcmUgY29lcmNlZC4gVGhlIHJlcG9zaXRvcnkgcmVmZXJlbmNlIGlzIGVjaG9lZCBmcm9tIHRoZSBpbnB1dCxcbiAgICogZmFsbGluZyBiYWNrIHRvIHRoZSBjb25maWd1cmVkIGBvd25lcmAvYHJlcG9gLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSByYXcgLSBUaGUgcmF3IEdpdEh1YiBpc3N1ZSBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge0dpdGh1YlJlcG9zaXRvcnlSZWZ9IHJlZiAtIFRoZSByZXBvc2l0b3J5IHJlZmVyZW5jZSB0aGUgaXNzdWUgYmVsb25ncyB0by5cbiAgICogQHJldHVybnMge0dpdGh1Yklzc3VlfSBUaGUgbm9ybWFsaXplZCBpc3N1ZSBkZXNjcmlwdG9yLlxuICAgKi9cbiAgcHJvdGVjdGVkIG1hcElzc3VlKFxuICAgIHJhdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcmVmOiBHaXRodWJSZXBvc2l0b3J5UmVmXG4gICk6IEdpdGh1Yklzc3VlIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3duZXI6IHJlZi5vd25lciA/PyB0aGlzLmNvbmZpZy5vd25lcixcbiAgICAgIHJlcG86IHJlZi5yZXBvID8/IHRoaXMuY29uZmlnLnJlcG8sXG4gICAgICBudW1iZXI6IE51bWJlcihyYXdbXCJudW1iZXJcIl0gPz8gMCksXG4gICAgICB0aXRsZTogU3RyaW5nKHJhd1tcInRpdGxlXCJdID8/IFwiXCIpLFxuICAgICAgc3RhdGU6IGVudlN0cmluZyhyYXdbXCJzdGF0ZVwiXSksXG4gICAgICBodG1sVXJsOiBlbnZTdHJpbmcocmF3W1wiaHRtbF91cmxcIl0pLFxuICAgICAgYm9keTogZW52U3RyaW5nKHJhd1tcImJvZHlcIl0pLFxuICAgICAgdXNlcjogZW52U3RyaW5nKChyYXdbXCJ1c2VyXCJdIGFzIHsgbG9naW4/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk/LmxvZ2luKSxcbiAgICAgIGxhYmVsczogQXJyYXkuaXNBcnJheShyYXdbXCJsYWJlbHNcIl0pXG4gICAgICAgID8gKHJhd1tcImxhYmVsc1wiXSBhcyBBcnJheTx7IG5hbWU/OiBzdHJpbmcgfSB8IHN0cmluZz4pLm1hcCgobGFiZWwpID0+XG4gICAgICAgICAgICB0eXBlb2YgbGFiZWwgPT09IFwic3RyaW5nXCIgPyBsYWJlbCA6IFN0cmluZyhsYWJlbC5uYW1lID8/IFwiXCIpXG4gICAgICAgICAgKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbW1lbnRzOlxuICAgICAgICB0eXBlb2YgcmF3W1wiY29tbWVudHNcIl0gPT09IFwibnVtYmVyXCJcbiAgICAgICAgICA/IChyYXdbXCJjb21tZW50c1wiXSBhcyBudW1iZXIpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBjcmVhdGVkQXQ6IGVudlN0cmluZyhyYXdbXCJjcmVhdGVkX2F0XCJdKSxcbiAgICAgIHVwZGF0ZWRBdDogZW52U3RyaW5nKHJhd1tcInVwZGF0ZWRfYXRcIl0pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYSBHaXRIdWIgcmVwb3NpdG9yeVxuICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9yZXBvcy88b3duZXI+LzxyZXBvPmAgZm9yIHRoZSBnaXZlbiByZWZlcmVuY2UgKGZhbGxpbmdcbiAgICogYmFjayB0byB0aGUgY29uZmlndXJlZCBgb3duZXJgL2ByZXBvYCkgYW5kIHJldHVybnMgdGhlIHJhdyByZXBvc2l0b3J5XG4gICAqIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7R2l0aHViUmVwb3NpdG9yeVJlZn0gW3JlZl0gLSBUaGUgcmVwb3NpdG9yeSB0byBsb29rIHVwOyBkZWZhdWx0cyB0byB0aGUgY29uZmlndXJlZCBgb3duZXJgL2ByZXBvYC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSByYXcgR2l0SHViIHJlcG9zaXRvcnkgcGF5bG9hZC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgcmVwb3NpdG9yeSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR2l0SHViIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKi9cbiAgYXN5bmMgZ2V0UmVwb3NpdG9yeShyZWY6IEdpdGh1YlJlcG9zaXRvcnlSZWYgPSB7fSk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldCh0aGlzLnJlcG9QYXRoKHJlZikpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdEh1YlwiLCBcImdldCByZXBvc2l0b3J5XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpc3RzIEdpdEh1YiBpc3N1ZXMgd2l0aCBzdGF0ZSwgbGFiZWwsIGFuZCBwYWdlIGZpbHRlcmluZ1xuICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9yZXBvcy88b3duZXI+LzxyZXBvPi9pc3N1ZXNgIHdpdGggYSBgc3RhdGVgIGZpbHRlclxuICAgKiAoZGVmYXVsdCBgXCJvcGVuXCJgKSwgYSBwYWdlIHNpemUgKGBwZXJfcGFnZWAsIGRlZmF1bHQgYDMwYCksIGEgcGFnZVxuICAgKiBudW1iZXIsIGFuZCBhIGNvbW1hLXNlcGFyYXRlZCBgbGFiZWxzYCBmaWx0ZXIuIEVudHJpZXMgY2FycnlpbmcgYVxuICAgKiBgcHVsbF9yZXF1ZXN0YCBrZXkgYXJlIGZpbHRlcmVkIG91dCBzbyBvbmx5IHRydWUgaXNzdWVzIGFyZSByZXR1cm5lZC5cbiAgICogQHBhcmFtIHtHaXRodWJMaXN0T3B0aW9uc30gW29wdGlvbnNdIC0gUmVwb3NpdG9yeSBvdmVycmlkZSwgc3RhdGUsIHBhZ2luZywgYW5kIGxhYmVsIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEdpdGh1Yklzc3VlW10+fSBUaGUgbm9ybWFsaXplZCBpc3N1ZXMgZm9yIHRoZSByZXF1ZXN0ZWQgcGFnZS5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgcmVwb3NpdG9yeSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR2l0SHViIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBsZXQgcGFnZSA9IDE7XG4gICAqIGZvciAoOzspIHtcbiAgICogICBjb25zdCBpc3N1ZXMgPSBhd2FpdCBnaXRodWIubGlzdElzc3Vlcyh7XG4gICAqICAgICBzdGF0ZTogXCJvcGVuXCIsXG4gICAqICAgICBsYWJlbHM6IFwiYnVnLHByaW9yaXR5OmhpZ2hcIixcbiAgICogICAgIGxpbWl0OiA1MCxcbiAgICogICAgIHBhZ2UsXG4gICAqICAgfSk7XG4gICAqICAgaWYgKGlzc3Vlcy5sZW5ndGggPT09IDApIGJyZWFrO1xuICAgKiAgIHBhZ2UgKz0gMTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGxpc3RJc3N1ZXMoXG4gICAgb3B0aW9uczogR2l0aHViTGlzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPEdpdGh1Yklzc3VlW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQ8QXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+PihcbiAgICAgICAgYCR7dGhpcy5yZXBvUGF0aChvcHRpb25zKX0vaXNzdWVzYCxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhdGU6IG9wdGlvbnMuc3RhdGUgPz8gXCJvcGVuXCIsXG4gICAgICAgICAgICBwZXJfcGFnZTogb3B0aW9ucy5saW1pdCA/PyAzMCxcbiAgICAgICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZSxcbiAgICAgICAgICAgIGxhYmVsczogb3B0aW9ucy5sYWJlbHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhXG4gICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnlbXCJwdWxsX3JlcXVlc3RcIl0pXG4gICAgICAgIC5tYXAoKGVudHJ5KSA9PiB0aGlzLm1hcElzc3VlKGVudHJ5LCBvcHRpb25zKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdEh1YlwiLCBcImxpc3QgaXNzdWVzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBHaXRIdWIgaXNzdWVcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgdGl0bGUsIGJvZHksIGxhYmVscywgYXNzaWduZWVzLCBhbmQgbWlsZXN0b25lIHRvXG4gICAqIGAvcmVwb3MvPG93bmVyPi88cmVwbz4vaXNzdWVzYCBhbmQgcmV0dXJucyB0aGUgbm9ybWFsaXplZCBpc3N1ZVxuICAgKiBkZXNjcmlwdG9yLiBSZXF1aXJlcyBhIG5vbi1lbXB0eSBgdGl0bGVgIGFuZCBhIHJlc29sdmFibGUgcmVwb3NpdG9yeVxuICAgKiByZWZlcmVuY2UuXG4gICAqIEBwYXJhbSB7R2l0aHViSXNzdWVJbnB1dH0gaW5wdXQgLSBUaGUgaXNzdWUgY29udGVudCBhbmQgcmVwb3NpdG9yeSB0YXJnZXRpbmcuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEdpdGh1Yklzc3VlPn0gVGhlIG5vcm1hbGl6ZWQgY3JlYXRlZCBpc3N1ZS5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgdGl0bGUgaXMgZW1wdHkgb3IgdGhlIHJlcG9zaXRvcnkgcmVmZXJlbmNlIGNhbm5vdCBiZSByZXNvbHZlZC5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgcmVwb3NpdG9yeSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cyAoZS5nLiBpbnZhbGlkIGxhYmVscyBvciBhc3NpZ25lZXMpLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlSXNzdWUoaW5wdXQ6IEdpdGh1Yklzc3VlSW5wdXQpOiBQcm9taXNlPEdpdGh1Yklzc3VlPiB7XG4gICAgaWYgKCFpbnB1dC50aXRsZSkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHaXRIdWIgaXNzdWUgcmVxdWlyZXMgYSB0aXRsZVwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gICAgICAgIGAke3RoaXMucmVwb1BhdGgoaW5wdXQpfS9pc3N1ZXNgLFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IGlucHV0LnRpdGxlLFxuICAgICAgICAgIGJvZHk6IGlucHV0LmJvZHksXG4gICAgICAgICAgbGFiZWxzOiBpbnB1dC5sYWJlbHMsXG4gICAgICAgICAgYXNzaWduZWVzOiBpbnB1dC5hc3NpZ25lZXMsXG4gICAgICAgICAgbWlsZXN0b25lOiBpbnB1dC5taWxlc3RvbmUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gdGhpcy5tYXBJc3N1ZShyZXNwb25zZS5kYXRhLCBpbnB1dCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdEh1YlwiLCBcImNyZWF0ZSBpc3N1ZVwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb21tZW50cyBvbiBhIEdpdEh1YiBpc3N1ZVxuICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBjb21tZW50IGJvZHkgdG9cbiAgICogYC9yZXBvcy88b3duZXI+LzxyZXBvPi9pc3N1ZXMvPG51bWJlcj4vY29tbWVudHNgIGFuZCByZXR1cm5zIHRoZSBjb21tZW50XG4gICAqIGlkZW50aWZpZXIgYW5kIGl0cyBIVE1MIFVSTC4gUmVxdWlyZXMgYSBub24tZW1wdHkgaXNzdWUgbnVtYmVyIGFuZCBib2R5LlxuICAgKiBAcGFyYW0ge0dpdGh1YlJlcG9zaXRvcnlSZWYgJiB7bnVtYmVyOiBudW1iZXIsIGJvZHk6IHN0cmluZ319IGlucHV0IC0gVGhlIHJlcG9zaXRvcnkgdGFyZ2V0aW5nLCBpc3N1ZSBudW1iZXIsIGFuZCBjb21tZW50IGJvZHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHtpZDogbnVtYmVyLCBodG1sVXJsPzogc3RyaW5nfT59IFRoZSBjcmVhdGVkIGNvbW1lbnQncyBJRCBhbmQgSFRNTCBVUkwuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIGlzc3VlIG51bWJlciBvciBib2R5IGlzIGVtcHR5LCBvciB0aGUgcmVwb3NpdG9yeSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBpc3N1ZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICovXG4gIGFzeW5jIGNvbW1lbnRPbklzc3VlKFxuICAgIGlucHV0OiBHaXRodWJSZXBvc2l0b3J5UmVmICYgeyBudW1iZXI6IG51bWJlcjsgYm9keTogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTx7IGlkOiBudW1iZXI7IGh0bWxVcmw/OiBzdHJpbmcgfT4ge1xuICAgIGlmICghaW5wdXQubnVtYmVyIHx8ICFpbnB1dC5ib2R5KSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCJHaXRIdWIgY29tbWVudCByZXF1aXJlcyBhbiBpc3N1ZSBudW1iZXIgYW5kIGJvZHlcIlxuICAgICAgKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdDx7XG4gICAgICAgIGlkPzogbnVtYmVyO1xuICAgICAgICBodG1sX3VybD86IHN0cmluZztcbiAgICAgIH0+KGAke3RoaXMucmVwb1BhdGgoaW5wdXQpfS9pc3N1ZXMvJHtpbnB1dC5udW1iZXJ9L2NvbW1lbnRzYCwge1xuICAgICAgICBib2R5OiBpbnB1dC5ib2R5LFxuICAgICAgfSk7XG4gICAgICByZXR1cm4geyBpZDogTnVtYmVyKHJlc3BvbnNlLmRhdGEuaWQgPz8gMCksIGh0bWxVcmw6IHJlc3BvbnNlLmRhdGEuaHRtbF91cmwgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR2l0SHViXCIsIFwiY29tbWVudCBvbiBpc3N1ZVwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBHaXRIdWIgcHVsbCByZXF1ZXN0cyB3aXRoIHN0YXRlIGFuZCBwYWdlIGZpbHRlcmluZ1xuICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9yZXBvcy88b3duZXI+LzxyZXBvPi9wdWxsc2Agd2l0aCBhIGBzdGF0ZWAgZmlsdGVyXG4gICAqIChkZWZhdWx0IGBcIm9wZW5cImApLCBhIHBhZ2Ugc2l6ZSAoYHBlcl9wYWdlYCwgZGVmYXVsdCBgMzBgKSwgYW5kIGEgcGFnZVxuICAgKiBudW1iZXIuIFB1bGwgcmVxdWVzdHMgYXJlIHJldHVybmVkIGFzIHJhdyBHaXRIdWIgcGF5bG9hZHMuXG4gICAqIEBwYXJhbSB7R2l0aHViTGlzdE9wdGlvbnN9IFtvcHRpb25zXSAtIFJlcG9zaXRvcnkgb3ZlcnJpZGUsIHN0YXRlLCBhbmQgcGFnaW5nIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd25bXT59IFRoZSByYXcgR2l0SHViIHB1bGwtcmVxdWVzdCBwYXlsb2Fkcy5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgcmVwb3NpdG9yeSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR2l0SHViIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKi9cbiAgYXN5bmMgbGlzdFB1bGxSZXF1ZXN0cyhcbiAgICBvcHRpb25zOiBHaXRodWJMaXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8dW5rbm93bltdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0PHVua25vd25bXT4oXG4gICAgICAgIGAke3RoaXMucmVwb1BhdGgob3B0aW9ucyl9L3B1bGxzYCxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhdGU6IG9wdGlvbnMuc3RhdGUgPz8gXCJvcGVuXCIsXG4gICAgICAgICAgICBwZXJfcGFnZTogb3B0aW9ucy5saW1pdCA/PyAzMCxcbiAgICAgICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdEh1YlwiLCBcImxpc3QgcHVsbCByZXF1ZXN0c1wiLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2l0aHViU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdpdGh1YlNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCwyREFBd0Q7QUFDeEQsd0RBQXdEO0FBQ3hELDRFQUEwRTtBQUMxRSwyREFBMEU7QUFDMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDSCxNQUFhLGFBQWMsU0FBUSx5QkFBYztJQUM3QztRQUNJLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ3BCOztXQUVHO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxjQUFjO1FBQ1YsT0FBTyx3QkFBd0IsQ0FBQztJQUNwQyxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNILFdBQVcsQ0FBQyxNQUFNO1FBQ2QsT0FBTyxNQUFNLENBQUMsS0FBSztZQUNmLENBQUMsQ0FBQztnQkFDRSxhQUFhLEVBQUUsVUFBVSxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsNkJBQTZCO2dCQUNyQyxzQkFBc0IsRUFBRSxZQUFZO2FBQ3ZDO1lBQ0QsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLDZCQUE2QixFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILHFCQUFxQjtRQUNqQixNQUFNLEdBQUcsR0FBRyxrQ0FBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUEsK0JBQVMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUs7WUFDTixPQUFPLFNBQVMsQ0FBQztRQUNyQixPQUFPO1lBQ0gsS0FBSztZQUNMLEtBQUssRUFBRSxJQUFBLCtCQUFTLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLEVB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Q0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xGLENBQUM7UUFDRCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFBLG9CQUFTLEVBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDTCxDQUFDO0lBQ0Q7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLEVBQUU7UUFDL0IsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDdEUsTUFBTSxFQUFFO29CQUNKLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLE1BQU07b0JBQzlCLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQzdCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtpQkFDckI7YUFDSixDQUFDLENBQUM7WUFDSCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUEsb0JBQVMsRUFBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQTFQRCxzQ0EwUEM7QUFDRCw4eThCQUE4eThCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9kZXZvcHMvZ2l0aHViL3NlcnZpY2VcbiAqIEBzdW1tYXJ5IEdpdEh1YiBSRVNUIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlIGZvciByZXBvc2l0b3JpZXMsIGlzc3VlcywgYW5kIHB1bGwgcmVxdWVzdHMuXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyBhIGZvY3VzZWQgc3Vic2V0IG9mIHRoZSBHaXRIdWIgUkVTVCBBUEkgKGAvcmVwb3MvKmA6XG4gKiByZXBvc2l0b3J5IGxvb2t1cCwgaXNzdWUgbGlzdGluZy9jcmVhdGlvbi9jb21tZW50aW5nLCBhbmQgcHVsbC1yZXF1ZXN0XG4gKiBsaXN0aW5nKSBhcyBhbiB1bmRlY29yYXRlZCBjbGllbnQtYmFzZWQgc2VydmljZSBidWlsdCBvblxuICoge0BsaW5rIEh0dHBBcGlTZXJ2aWNlfS4gQ29uZmlndXJhdGlvbiBjb21lcyBmcm9tIGFuIGV4cGxpY2l0XG4gKiBgR2l0aHViU2VydmljZUNvbmZpZ2Agb3IgdGhlIGBkZXZvcHMuZ2l0aHViYCBlbnZpcm9ubWVudCBzbGljZTsgcmVwb3NpdG9yeVxuICogdGFyZ2V0cyBkZWZhdWx0IHRvIHRoZSBjb25maWd1cmVkIGBvd25lcmAvYHJlcG9gIGFuZCBjYW4gYmUgb3ZlcnJpZGRlbiBwZXJcbiAqIGNhbGwuIFJhdyBHaXRIdWIgcmVzcG9uc2VzIGFyZSBub3JtYWxpemVkIHRvIGNhbWVsQ2FzZSBpc3N1ZSBkZXNjcmlwdG9ycyxcbiAqIGFuZCBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKi9cbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IERldm9wc0Vudmlyb25tZW50IH0gZnJvbSBcIi4vLi4vZW52aXJvbm1lbnQuanNcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50VmFsdWUuanNcIjtcbmltcG9ydCB7IEh0dHBBcGlTZXJ2aWNlLCBodHRwRXJyb3IsIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2h0dHAvaW5kZXguanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEdpdEh1YiBSRVNUIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBBbiB1bmRlY29yYXRlZCBIVFRQIHNlcnZpY2UgZm9yIGxvb2tpbmcgdXBcbiAqIHJlcG9zaXRvcmllcywgbGlzdGluZyBpc3N1ZXMgKGV4Y2x1ZGluZyBwdWxsIHJlcXVlc3RzKSwgY3JlYXRpbmcgaXNzdWVzLFxuICogY29tbWVudGluZyBvbiBpc3N1ZXMsIGFuZCBsaXN0aW5nIHB1bGwgcmVxdWVzdHMuIFJlcG9zaXRvcnkgdGFyZ2V0cyByZXNvbHZlXG4gKiBwZXIgY2FsbCBmcm9tIHRoZSBpbnB1dCdzIGBvd25lcmAvYHJlcG9gLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGNvbmZpZ3VyZWRcbiAqIGNvbmZpZyB2YWx1ZXMsIGFuZCB0aHJvdyBgSW50ZXJuYWxFcnJvcmAgd2hlbiB1bnJlc29sdmVkLiBUaGUgdG9rZW4gaXMgc2VudFxuICogYXMgYSBiZWFyZXIgdG9rZW4gd2l0aCB0aGUgR2l0SHViIGBBY2NlcHRgIGFuZCBBUEktdmVyc2lvbiBoZWFkZXJzLCBhbmRcbiAqIHRyYW5zcG9ydCBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKiBAY2xhc3MgR2l0aHViU2VydmljZVxuICogQGNhdGVnb3J5IERldk9wc1xuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBHaXRodWJTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvZGV2b3BzL2dpdGh1YlwiO1xuICpcbiAqIGNvbnN0IGdpdGh1YiA9IG5ldyBHaXRodWJTZXJ2aWNlKCk7XG4gKiBhd2FpdCBnaXRodWIuaW5pdGlhbGl6ZSh7XG4gKiAgIHRva2VuOiBwcm9jZXNzLmVudi5HUkFQSF9DUkVERU5USUFMX0dJVEhVQl9UT0tFTixcbiAqICAgb3duZXI6IFwiZXhhbXBsZS1vcmdcIixcbiAqICAgcmVwbzogXCJleGFtcGxlLXJlcG9cIixcbiAqIH0pO1xuICogY29uc3QgaXNzdWUgPSBhd2FpdCBnaXRodWIuY3JlYXRlSXNzdWUoe1xuICogICB0aXRsZTogXCJCdWcgcmVwb3J0XCIsXG4gKiAgIGJvZHk6IFwiU29tZXRoaW5nIGlzIGJyb2tlblwiLFxuICogICBsYWJlbHM6IFtcImJ1Z1wiXSxcbiAqIH0pO1xuICogYGBgXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9kZXZvcHMvZ2l0aHViL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGh1YlNlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IFwiR2l0SHViXCI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgR2l0SHViIFJFU1QgQVBJIGJhc2UgVVJMXG4gICAgICogQHN1bW1hcnkgVXNlZCB3aGVuIHRoZSByZXNvbHZlZCBjb25maWcgY2FycmllcyBubyBgYmFzZVVybGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gYFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbVwiYC5cbiAgICAgKi9cbiAgICBkZWZhdWx0QmFzZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbVwiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBHaXRIdWIgYXV0aGVudGljYXRpb24gYW5kIEFQSSB2ZXJzaW9uIGhlYWRlcnNcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAsIHRoZSBHaXRIdWIgSlNPTlxuICAgICAqIGBBY2NlcHRgIGhlYWRlciwgYW5kIHRoZSBgWC1HaXRIdWItQXBpLVZlcnNpb25gIGhlYWRlciB3aGVuIHRoZSBjb25maWdcbiAgICAgKiBjYXJyaWVzIGEgdG9rZW47IHdpdGhvdXQgYSB0b2tlbiBvbmx5IHRoZSBgQWNjZXB0YCBoZWFkZXJzIGFyZSBzZW50LlxuICAgICAqIEBwYXJhbSB7R2l0aHViU2VydmljZUNvbmZpZ30gY29uZmlnIC0gVGhlIHJlc29sdmVkIHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gVGhlIGF1dGhvcml6YXRpb24gYW5kIHZlcnNpb24gaGVhZGVycy5cbiAgICAgKi9cbiAgICBhdXRoSGVhZGVycyhjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy50b2tlblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2NvbmZpZy50b2tlbn1gLFxuICAgICAgICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi92bmQuZ2l0aHViK2pzb25cIixcbiAgICAgICAgICAgICAgICBcIlgtR2l0SHViLUFwaS1WZXJzaW9uXCI6IFwiMjAyMi0xMS0yOFwiLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7IEFjY2VwdDogXCJhcHBsaWNhdGlvbi92bmQuZ2l0aHViK2pzb25cIiB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdGhlIEdpdEh1YiBjcmVkZW50aWFscyBhbmQgZGVmYXVsdHMgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgYGRldm9wcy5naXRodWJgIGVudmlyb25tZW50IHNsaWNlIGFuZCByZXR1cm5zIGFcbiAgICAgKiBwYXJ0aWFsIGNvbmZpZyB3aGVuIGEgdG9rZW4gaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXNcbiAgICAgKiBwYXNzIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICAgKiBAcmV0dXJucyB7UGFydGlhbDxHaXRodWJTZXJ2aWNlQ29uZmlnPiB8IHVuZGVmaW5lZH0gQSBwYXJ0aWFsIGNvbmZpZywgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBHaXRIdWIgdG9rZW4gaXMgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICBjb25maWdGcm9tRW52aXJvbm1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IERldm9wc0Vudmlyb25tZW50LmRldm9wcy5naXRodWI7XG4gICAgICAgIGNvbnN0IHRva2VuID0gZW52U3RyaW5nKGVudj8udG9rZW4pO1xuICAgICAgICBpZiAoIXRva2VuKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgb3duZXI6IGVudlN0cmluZyhlbnYub3duZXIpLFxuICAgICAgICAgICAgcmVwbzogZW52U3RyaW5nKGVudi5yZXBvKSxcbiAgICAgICAgICAgIGJhc2VVcmw6IGVudlN0cmluZyhlbnYuYmFzZVVybCksXG4gICAgICAgICAgICB0aW1lb3V0OiBlbnZOdW1iZXIoZW52LnRpbWVvdXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzb2x2ZXMgdGhlIFVSTC1lbmNvZGVkIHJlcG9zaXRvcnkgcGF0aCBmb3IgYSBjYWxsXG4gICAgICogQHN1bW1hcnkgQnVpbGRzIGAvcmVwb3MvPG93bmVyPi88cmVwbz5gIGZyb20gdGhlIGlucHV0J3MgYG93bmVyYC9gcmVwb2AsXG4gICAgICogZmFsbGluZyBiYWNrIHRvIHRoZSBjb25maWd1cmVkIGNvbmZpZyB2YWx1ZXMsIGFuZCB0aHJvd3Mgd2hlbiBlaXRoZXJcbiAgICAgKiB2YWx1ZSBpcyBtaXNzaW5nLlxuICAgICAqIEBwYXJhbSB7R2l0aHViUmVwb3NpdG9yeVJlZn0gW2lucHV0XSAtIFRoZSBwZXItY2FsbCByZXBvc2l0b3J5IG92ZXJyaWRlLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBVUkwtZW5jb2RlZCByZXBvc2l0b3J5IEFQSSBwYXRoLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbmVpdGhlciB0aGUgaW5wdXQgbm9yIHRoZSBjb25maWcgeWllbGRzIGFuIG93bmVyIGFuZCByZXBvc2l0b3J5LlxuICAgICAqL1xuICAgIHJlcG9QYXRoKGlucHV0ID0ge30pIHtcbiAgICAgICAgY29uc3Qgb3duZXIgPSBpbnB1dC5vd25lciA/PyB0aGlzLmNvbmZpZy5vd25lcjtcbiAgICAgICAgY29uc3QgcmVwbyA9IGlucHV0LnJlcG8gPz8gdGhpcy5jb25maWcucmVwbztcbiAgICAgICAgaWYgKCFvd25lciB8fCAhcmVwbykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHaXRIdWIgcmVxdWlyZXMgYW4gb3duZXIgYW5kIHJlcG9zaXRvcnlcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAvcmVwb3MvJHtlbmNvZGVVUklDb21wb25lbnQob3duZXIpfS8ke2VuY29kZVVSSUNvbXBvbmVudChyZXBvKX1gO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTm9ybWFsaXplcyBhIHJhdyBHaXRIdWIgaXNzdWUgcGF5bG9hZFxuICAgICAqIEBzdW1tYXJ5IE1hcHMgdGhlIHJhdyBpc3N1ZSBKU09OIG9udG8gYSB7QGxpbmsgR2l0aHViSXNzdWV9OiBsYWJlbCBvYmplY3RzXG4gICAgICogYXJlIHJlZHVjZWQgdG8gbmFtZXMsIHRoZSBhdXRob3IgdG8gaXRzIGBsb2dpbmAsIGFuZCBudW1lcmljL3N0cmluZ1xuICAgICAqIGZpZWxkcyBhcmUgY29lcmNlZC4gVGhlIHJlcG9zaXRvcnkgcmVmZXJlbmNlIGlzIGVjaG9lZCBmcm9tIHRoZSBpbnB1dCxcbiAgICAgKiBmYWxsaW5nIGJhY2sgdG8gdGhlIGNvbmZpZ3VyZWQgYG93bmVyYC9gcmVwb2AuXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gcmF3IC0gVGhlIHJhdyBHaXRIdWIgaXNzdWUgcGF5bG9hZC5cbiAgICAgKiBAcGFyYW0ge0dpdGh1YlJlcG9zaXRvcnlSZWZ9IHJlZiAtIFRoZSByZXBvc2l0b3J5IHJlZmVyZW5jZSB0aGUgaXNzdWUgYmVsb25ncyB0by5cbiAgICAgKiBAcmV0dXJucyB7R2l0aHViSXNzdWV9IFRoZSBub3JtYWxpemVkIGlzc3VlIGRlc2NyaXB0b3IuXG4gICAgICovXG4gICAgbWFwSXNzdWUocmF3LCByZWYpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG93bmVyOiByZWYub3duZXIgPz8gdGhpcy5jb25maWcub3duZXIsXG4gICAgICAgICAgICByZXBvOiByZWYucmVwbyA/PyB0aGlzLmNvbmZpZy5yZXBvLFxuICAgICAgICAgICAgbnVtYmVyOiBOdW1iZXIocmF3W1wibnVtYmVyXCJdID8/IDApLFxuICAgICAgICAgICAgdGl0bGU6IFN0cmluZyhyYXdbXCJ0aXRsZVwiXSA/PyBcIlwiKSxcbiAgICAgICAgICAgIHN0YXRlOiBlbnZTdHJpbmcocmF3W1wic3RhdGVcIl0pLFxuICAgICAgICAgICAgaHRtbFVybDogZW52U3RyaW5nKHJhd1tcImh0bWxfdXJsXCJdKSxcbiAgICAgICAgICAgIGJvZHk6IGVudlN0cmluZyhyYXdbXCJib2R5XCJdKSxcbiAgICAgICAgICAgIHVzZXI6IGVudlN0cmluZyhyYXdbXCJ1c2VyXCJdPy5sb2dpbiksXG4gICAgICAgICAgICBsYWJlbHM6IEFycmF5LmlzQXJyYXkocmF3W1wibGFiZWxzXCJdKVxuICAgICAgICAgICAgICAgID8gcmF3W1wibGFiZWxzXCJdLm1hcCgobGFiZWwpID0+IHR5cGVvZiBsYWJlbCA9PT0gXCJzdHJpbmdcIiA/IGxhYmVsIDogU3RyaW5nKGxhYmVsLm5hbWUgPz8gXCJcIikpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjb21tZW50czogdHlwZW9mIHJhd1tcImNvbW1lbnRzXCJdID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgPyByYXdbXCJjb21tZW50c1wiXVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiBlbnZTdHJpbmcocmF3W1wiY3JlYXRlZF9hdFwiXSksXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IGVudlN0cmluZyhyYXdbXCJ1cGRhdGVkX2F0XCJdKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYSBHaXRIdWIgcmVwb3NpdG9yeVxuICAgICAqIEBzdW1tYXJ5IGBHRVRgcyBgL3JlcG9zLzxvd25lcj4vPHJlcG8+YCBmb3IgdGhlIGdpdmVuIHJlZmVyZW5jZSAoZmFsbGluZ1xuICAgICAqIGJhY2sgdG8gdGhlIGNvbmZpZ3VyZWQgYG93bmVyYC9gcmVwb2ApIGFuZCByZXR1cm5zIHRoZSByYXcgcmVwb3NpdG9yeVxuICAgICAqIHBheWxvYWQuXG4gICAgICogQHBhcmFtIHtHaXRodWJSZXBvc2l0b3J5UmVmfSBbcmVmXSAtIFRoZSByZXBvc2l0b3J5IHRvIGxvb2sgdXA7IGRlZmF1bHRzIHRvIHRoZSBjb25maWd1cmVkIGBvd25lcmAvYHJlcG9gLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgcmF3IEdpdEh1YiByZXBvc2l0b3J5IHBheWxvYWQuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgcmVwb3NpdG9yeSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHJlcG9zaXRvcnkgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIGdldFJlcG9zaXRvcnkocmVmID0ge30pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KHRoaXMucmVwb1BhdGgocmVmKSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdEh1YlwiLCBcImdldCByZXBvc2l0b3J5XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgR2l0SHViIGlzc3VlcyB3aXRoIHN0YXRlLCBsYWJlbCwgYW5kIHBhZ2UgZmlsdGVyaW5nXG4gICAgICogQHN1bW1hcnkgYEdFVGBzIGAvcmVwb3MvPG93bmVyPi88cmVwbz4vaXNzdWVzYCB3aXRoIGEgYHN0YXRlYCBmaWx0ZXJcbiAgICAgKiAoZGVmYXVsdCBgXCJvcGVuXCJgKSwgYSBwYWdlIHNpemUgKGBwZXJfcGFnZWAsIGRlZmF1bHQgYDMwYCksIGEgcGFnZVxuICAgICAqIG51bWJlciwgYW5kIGEgY29tbWEtc2VwYXJhdGVkIGBsYWJlbHNgIGZpbHRlci4gRW50cmllcyBjYXJyeWluZyBhXG4gICAgICogYHB1bGxfcmVxdWVzdGAga2V5IGFyZSBmaWx0ZXJlZCBvdXQgc28gb25seSB0cnVlIGlzc3VlcyBhcmUgcmV0dXJuZWQuXG4gICAgICogQHBhcmFtIHtHaXRodWJMaXN0T3B0aW9uc30gW29wdGlvbnNdIC0gUmVwb3NpdG9yeSBvdmVycmlkZSwgc3RhdGUsIHBhZ2luZywgYW5kIGxhYmVsIG9wdGlvbnMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8R2l0aHViSXNzdWVbXT59IFRoZSBub3JtYWxpemVkIGlzc3VlcyBmb3IgdGhlIHJlcXVlc3RlZCBwYWdlLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHJlcG9zaXRvcnkgcmVmZXJlbmNlIGNhbm5vdCBiZSByZXNvbHZlZC5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHRzXG4gICAgICogbGV0IHBhZ2UgPSAxO1xuICAgICAqIGZvciAoOzspIHtcbiAgICAgKiAgIGNvbnN0IGlzc3VlcyA9IGF3YWl0IGdpdGh1Yi5saXN0SXNzdWVzKHtcbiAgICAgKiAgICAgc3RhdGU6IFwib3BlblwiLFxuICAgICAqICAgICBsYWJlbHM6IFwiYnVnLHByaW9yaXR5OmhpZ2hcIixcbiAgICAgKiAgICAgbGltaXQ6IDUwLFxuICAgICAqICAgICBwYWdlLFxuICAgICAqICAgfSk7XG4gICAgICogICBpZiAoaXNzdWVzLmxlbmd0aCA9PT0gMCkgYnJlYWs7XG4gICAgICogICBwYWdlICs9IDE7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGFzeW5jIGxpc3RJc3N1ZXMob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChgJHt0aGlzLnJlcG9QYXRoKG9wdGlvbnMpfS9pc3N1ZXNgLCB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlOiBvcHRpb25zLnN0YXRlID8/IFwib3BlblwiLFxuICAgICAgICAgICAgICAgICAgICBwZXJfcGFnZTogb3B0aW9ucy5saW1pdCA/PyAzMCxcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogb3B0aW9ucy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbHM6IG9wdGlvbnMubGFiZWxzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoZW50cnkpID0+ICFlbnRyeVtcInB1bGxfcmVxdWVzdFwiXSlcbiAgICAgICAgICAgICAgICAubWFwKChlbnRyeSkgPT4gdGhpcy5tYXBJc3N1ZShlbnRyeSwgb3B0aW9ucykpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR2l0SHViXCIsIFwibGlzdCBpc3N1ZXNcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgR2l0SHViIGlzc3VlXG4gICAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgdGl0bGUsIGJvZHksIGxhYmVscywgYXNzaWduZWVzLCBhbmQgbWlsZXN0b25lIHRvXG4gICAgICogYC9yZXBvcy88b3duZXI+LzxyZXBvPi9pc3N1ZXNgIGFuZCByZXR1cm5zIHRoZSBub3JtYWxpemVkIGlzc3VlXG4gICAgICogZGVzY3JpcHRvci4gUmVxdWlyZXMgYSBub24tZW1wdHkgYHRpdGxlYCBhbmQgYSByZXNvbHZhYmxlIHJlcG9zaXRvcnlcbiAgICAgKiByZWZlcmVuY2UuXG4gICAgICogQHBhcmFtIHtHaXRodWJJc3N1ZUlucHV0fSBpbnB1dCAtIFRoZSBpc3N1ZSBjb250ZW50IGFuZCByZXBvc2l0b3J5IHRhcmdldGluZy5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHaXRodWJJc3N1ZT59IFRoZSBub3JtYWxpemVkIGNyZWF0ZWQgaXNzdWUuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgdGl0bGUgaXMgZW1wdHkgb3IgdGhlIHJlcG9zaXRvcnkgcmVmZXJlbmNlIGNhbm5vdCBiZSByZXNvbHZlZC5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cyAoZS5nLiBpbnZhbGlkIGxhYmVscyBvciBhc3NpZ25lZXMpLlxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZUlzc3VlKGlucHV0KSB7XG4gICAgICAgIGlmICghaW5wdXQudGl0bGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiR2l0SHViIGlzc3VlIHJlcXVpcmVzIGEgdGl0bGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChgJHt0aGlzLnJlcG9QYXRoKGlucHV0KX0vaXNzdWVzYCwge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBpbnB1dC50aXRsZSxcbiAgICAgICAgICAgICAgICBib2R5OiBpbnB1dC5ib2R5LFxuICAgICAgICAgICAgICAgIGxhYmVsczogaW5wdXQubGFiZWxzLFxuICAgICAgICAgICAgICAgIGFzc2lnbmVlczogaW5wdXQuYXNzaWduZWVzLFxuICAgICAgICAgICAgICAgIG1pbGVzdG9uZTogaW5wdXQubWlsZXN0b25lLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBJc3N1ZShyZXNwb25zZS5kYXRhLCBpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJHaXRIdWJcIiwgXCJjcmVhdGUgaXNzdWVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21tZW50cyBvbiBhIEdpdEh1YiBpc3N1ZVxuICAgICAqIEBzdW1tYXJ5IGBQT1NUYHMgdGhlIGNvbW1lbnQgYm9keSB0b1xuICAgICAqIGAvcmVwb3MvPG93bmVyPi88cmVwbz4vaXNzdWVzLzxudW1iZXI+L2NvbW1lbnRzYCBhbmQgcmV0dXJucyB0aGUgY29tbWVudFxuICAgICAqIGlkZW50aWZpZXIgYW5kIGl0cyBIVE1MIFVSTC4gUmVxdWlyZXMgYSBub24tZW1wdHkgaXNzdWUgbnVtYmVyIGFuZCBib2R5LlxuICAgICAqIEBwYXJhbSB7R2l0aHViUmVwb3NpdG9yeVJlZiAmIHtudW1iZXI6IG51bWJlciwgYm9keTogc3RyaW5nfX0gaW5wdXQgLSBUaGUgcmVwb3NpdG9yeSB0YXJnZXRpbmcsIGlzc3VlIG51bWJlciwgYW5kIGNvbW1lbnQgYm9keS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7aWQ6IG51bWJlciwgaHRtbFVybD86IHN0cmluZ30+fSBUaGUgY3JlYXRlZCBjb21tZW50J3MgSUQgYW5kIEhUTUwgVVJMLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIGlzc3VlIG51bWJlciBvciBib2R5IGlzIGVtcHR5LCBvciB0aGUgcmVwb3NpdG9yeSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGlzc3VlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRIdWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICAgKi9cbiAgICBhc3luYyBjb21tZW50T25Jc3N1ZShpbnB1dCkge1xuICAgICAgICBpZiAoIWlucHV0Lm51bWJlciB8fCAhaW5wdXQuYm9keSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHaXRIdWIgY29tbWVudCByZXF1aXJlcyBhbiBpc3N1ZSBudW1iZXIgYW5kIGJvZHlcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChgJHt0aGlzLnJlcG9QYXRoKGlucHV0KX0vaXNzdWVzLyR7aW5wdXQubnVtYmVyfS9jb21tZW50c2AsIHtcbiAgICAgICAgICAgICAgICBib2R5OiBpbnB1dC5ib2R5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyBpZDogTnVtYmVyKHJlc3BvbnNlLmRhdGEuaWQgPz8gMCksIGh0bWxVcmw6IHJlc3BvbnNlLmRhdGEuaHRtbF91cmwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdEh1YlwiLCBcImNvbW1lbnQgb24gaXNzdWVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBHaXRIdWIgcHVsbCByZXF1ZXN0cyB3aXRoIHN0YXRlIGFuZCBwYWdlIGZpbHRlcmluZ1xuICAgICAqIEBzdW1tYXJ5IGBHRVRgcyBgL3JlcG9zLzxvd25lcj4vPHJlcG8+L3B1bGxzYCB3aXRoIGEgYHN0YXRlYCBmaWx0ZXJcbiAgICAgKiAoZGVmYXVsdCBgXCJvcGVuXCJgKSwgYSBwYWdlIHNpemUgKGBwZXJfcGFnZWAsIGRlZmF1bHQgYDMwYCksIGFuZCBhIHBhZ2VcbiAgICAgKiBudW1iZXIuIFB1bGwgcmVxdWVzdHMgYXJlIHJldHVybmVkIGFzIHJhdyBHaXRIdWIgcGF5bG9hZHMuXG4gICAgICogQHBhcmFtIHtHaXRodWJMaXN0T3B0aW9uc30gW29wdGlvbnNdIC0gUmVwb3NpdG9yeSBvdmVycmlkZSwgc3RhdGUsIGFuZCBwYWdpbmcgb3B0aW9ucy5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duW10+fSBUaGUgcmF3IEdpdEh1YiBwdWxsLXJlcXVlc3QgcGF5bG9hZHMuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgcmVwb3NpdG9yeSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHJlcG9zaXRvcnkgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdEh1YiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIGxpc3RQdWxsUmVxdWVzdHMob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChgJHt0aGlzLnJlcG9QYXRoKG9wdGlvbnMpfS9wdWxsc2AsIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IG9wdGlvbnMuc3RhdGUgPz8gXCJvcGVuXCIsXG4gICAgICAgICAgICAgICAgICAgIHBlcl9wYWdlOiBvcHRpb25zLmxpbWl0ID8/IDMwLFxuICAgICAgICAgICAgICAgICAgICBwYWdlOiBvcHRpb25zLnBhZ2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJHaXRIdWJcIiwgXCJsaXN0IHB1bGwgcmVxdWVzdHNcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUjJsMGFIVmlVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlrWlhadmNITXZaMmwwYUhWaUwwZHBkR2gxWWxObGNuWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096czdPMGRCVjBjN1FVRkRTQ3hQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRGVFUXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTERSQ1FVRjFRanRCUVVOdVJDeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3d5UTBGQmMwTTdRVUZEY2tVc1QwRkJUeXhGUVVOTUxHTkJRV01zUlVGRlpDeFRRVUZUTEVkQlExWXNjVU5CUVRCQ08wRkJjVWt6UWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0SFFUUkNSenRCUVVOSUxFMUJRVTBzVDBGQlR5eGhRVUZqTEZOQlFWRXNZMEZCYlVNN1NVRkJkRVU3TzFGQlEwVTdPMWRCUlVjN1VVRkRaMElzWjBKQlFWY3NSMEZCUnl4UlFVRlJMRU5CUVVNN1NVRnBValZETEVOQlFVTTdTVUV2VVVNN096czdUMEZKUnp0SlFVTlBMR05CUVdNN1VVRkRkRUlzVDBGQlR5eDNRa0ZCZDBJc1EwRkJRenRKUVVOc1F5eERRVUZETzBsQlJVUTdPenM3T3pzN1QwRlBSenRKUVVOUExGZEJRVmNzUTBGQlF5eE5RVUV5UWp0UlFVTXZReXhQUVVGUExFMUJRVTBzUTBGQlF5eExRVUZMTzFsQlEycENMRU5CUVVNc1EwRkJRenRuUWtGRFJTeGhRVUZoTEVWQlFVVXNWVUZCVlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRk8yZENRVU4yUXl4TlFVRk5MRVZCUVVVc05rSkJRVFpDTzJkQ1FVTnlReXh6UWtGQmMwSXNSVUZCUlN4WlFVRlpPMkZCUTNKRE8xbEJRMGdzUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRFpDUVVFMlFpeEZRVUZGTEVOQlFVTTdTVUZEYUVRc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5QTEhGQ1FVRnhRanRSUVVNM1FpeE5RVUZOTEVkQlFVY3NSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUXpWRExFMUJRVTBzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFTXNTVUZCU1N4RFFVRkRMRXRCUVVzN1dVRkJSU3hQUVVGUExGTkJRVk1zUTBGQlF6dFJRVU0zUWl4UFFVRlBPMWxCUTB3c1MwRkJTenRaUVVOTUxFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVNelFpeEpRVUZKTEVWQlFVVXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRGVrSXNUMEZCVHl4RlFVRkZMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlF5OUNMRTlCUVU4c1JVRkJSU3hUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXp0VFFVTm9ReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJRMDhzVVVGQlVTeERRVUZETEZGQlFUWkNMRVZCUVVVN1VVRkRhRVFzVFVGQlRTeExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTXZReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETzFGQlF6VkRMRWxCUVVrc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEhsRFFVRjVReXhEUVVGRExFTkJRVU03VVVGRGNrVXNRMEZCUXp0UlFVTkVMRTlCUVU4c1ZVRkJWU3hyUWtGQmEwSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRek5GTEVOQlFVTTdTVUZGUkRzN096czdPenM3TzA5QlUwYzdTVUZEVHl4UlFVRlJMRU5CUTJoQ0xFZEJRVFJDTEVWQlF6VkNMRWRCUVhkQ08xRkJSWGhDTEU5QlFVODdXVUZEVEN4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFdEJRVXNzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzN1dVRkRja01zU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4SlFVRkpMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTzFsQlEyeERMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOc1F5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEYWtNc1MwRkJTeXhGUVVGRkxGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRPVUlzVDBGQlR5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03V1VGRGJrTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdXVUZETlVJc1NVRkJTU3hGUVVGRkxGTkJRVk1zUTBGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRnZReXhGUVVGRkxFdEJRVXNzUTBGQlF6dFpRVU4yUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1owSkJRMnhETEVOQlFVTXNRMEZCUlN4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGMVF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRMnBGTEU5QlFVOHNTMEZCU3l4TFFVRkxMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZETjBRN1owSkJRMGdzUTBGQlF5eERRVUZETEZOQlFWTTdXVUZEWWl4UlFVRlJMRVZCUTA0c1QwRkJUeXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NVVUZCVVR0blFrRkRha01zUTBGQlF5eERRVUZGTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVZrN1owSkJRemRDTEVOQlFVTXNRMEZCUXl4VFFVRlRPMWxCUTJZc1UwRkJVeXhGUVVGRkxGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1dVRkRka01zVTBGQlV5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VTBGRGVFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3VDBGWFJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4aFFVRmhMRU5CUVVNc1RVRkJNa0lzUlVGQlJUdFJRVU12UXl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNelJDeFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkRka0lzUTBGQlF6dFJRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRaaXhOUVVGTkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEY2tRc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1QwRXdRa2M3U1VGRFNDeExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTmtMRlZCUVRaQ0xFVkJRVVU3VVVGRkwwSXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkRjRU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFVkJRMnhETzJkQ1FVTkZMRTFCUVUwc1JVRkJSVHR2UWtGRFRpeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzc1NVRkJTU3hOUVVGTk8yOUNRVU01UWl4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTzI5Q1FVTTNRaXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVazdiMEpCUTJ4Q0xFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNUVUZCVFR0cFFrRkRka0k3WVVGRFJpeERRVU5HTEVOQlFVTTdXVUZEUml4UFFVRlBMRkZCUVZFc1EwRkJReXhKUVVGSk8ybENRVU5xUWl4TlFVRk5MRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8ybENRVU42UXl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtRc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzWVVGQllTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3T3pzN096czdPenRQUVZsSE8wbEJRMGdzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRjFRanRSUVVOMlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRMnBDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNRMEZCUXp0UlFVTXpSQ3hEUVVGRE8xRkJRMFFzU1VGQlNTeERRVUZETzFsQlEwZ3NUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZEY2tNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUTJoRE8yZENRVU5GTEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1MwRkJTenRuUWtGRGJFSXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSk8yZENRVU5vUWl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFMUJRVTA3WjBKQlEzQkNMRk5CUVZNc1JVRkJSU3hMUVVGTExFTkJRVU1zVTBGQlV6dG5Ra0ZETVVJc1UwRkJVeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFRRVUZUTzJGQlF6TkNMRU5CUTBZc1EwRkJRenRaUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF6ZERMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4VFFVRlRMRU5CUVVNc1VVRkJVU3hGUVVGRkxHTkJRV01zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnVSQ3hEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096czdPenM3T3p0UFFWZEhPMGxCUTBnc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGRGJFSXNTMEZCTmtRN1VVRkZOMFFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEYWtNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNhMFJCUVd0RUxFTkJRMjVFTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1NVRkJTU3hEUVVGRE8xbEJRMGdzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGSGNFTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEV0QlFVc3NRMEZCUXl4TlFVRk5MRmRCUVZjc1JVRkJSVHRuUWtGRE5VUXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSk8yRkJRMnBDTEVOQlFVTXNRMEZCUXp0WlFVTklMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEU5QlFVOHNSVUZCUlN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFGQlEyaEdMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4VFFVRlRMRU5CUVVNc1VVRkJVU3hGUVVGRkxHdENRVUZyUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM1pFTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN08wOUJWMGM3U1VGRFNDeExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFTkJRM0JDTEZWQlFUWkNMRVZCUVVVN1VVRkZMMElzU1VGQlNTeERRVUZETzFsQlEwZ3NUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZEY0VNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUTJwRE8yZENRVU5GTEUxQlFVMHNSVUZCUlR0dlFrRkRUaXhMUVVGTExFVkJRVVVzVDBGQlR5eERRVUZETEV0QlFVc3NTVUZCU1N4TlFVRk5PMjlDUVVNNVFpeFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzc1NVRkJTU3hGUVVGRk8yOUNRVU0zUWl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFbEJRVWs3YVVKQlEyNUNPMkZCUTBZc1EwRkRSaXhEUVVGRE8xbEJRMFlzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTNaQ0xFTkJRVU03VVVGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTJZc1RVRkJUU3hUUVVGVExFTkJRVU1zVVVGQlVTeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcEVMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnYVc1MFpXZHlZWFJwYjI1ekwyUmxkbTl3Y3k5bmFYUm9kV0l2YzJWeWRtbGpaVnh1SUNvZ1FITjFiVzFoY25rZ1IybDBTSFZpSUZKRlUxUWdRVkJKSUdsdWRHVm5jbUYwYVc5dUlITmxjblpwWTJVZ1ptOXlJSEpsY0c5emFYUnZjbWxsY3l3Z2FYTnpkV1Z6TENCaGJtUWdjSFZzYkNCeVpYRjFaWE4wY3k1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRmVIQnZjMlZ6SUdFZ1ptOWpkWE5sWkNCemRXSnpaWFFnYjJZZ2RHaGxJRWRwZEVoMVlpQlNSVk5VSUVGUVNTQW9ZQzl5WlhCdmN5OHFZRHBjYmlBcUlISmxjRzl6YVhSdmNua2diRzl2YTNWd0xDQnBjM04xWlNCc2FYTjBhVzVuTDJOeVpXRjBhVzl1TDJOdmJXMWxiblJwYm1jc0lHRnVaQ0J3ZFd4c0xYSmxjWFZsYzNSY2JpQXFJR3hwYzNScGJtY3BJR0Z6SUdGdUlIVnVaR1ZqYjNKaGRHVmtJR05zYVdWdWRDMWlZWE5sWkNCelpYSjJhV05sSUdKMWFXeDBJRzl1WEc0Z0tpQjdRR3hwYm1zZ1NIUjBjRUZ3YVZObGNuWnBZMlY5TGlCRGIyNW1hV2QxY21GMGFXOXVJR052YldWeklHWnliMjBnWVc0Z1pYaHdiR2xqYVhSY2JpQXFJR0JIYVhSb2RXSlRaWEoyYVdObFEyOXVabWxuWUNCdmNpQjBhR1VnWUdSbGRtOXdjeTVuYVhSb2RXSmdJR1Z1ZG1seWIyNXRaVzUwSUhOc2FXTmxPeUJ5WlhCdmMybDBiM0o1WEc0Z0tpQjBZWEpuWlhSeklHUmxabUYxYkhRZ2RHOGdkR2hsSUdOdmJtWnBaM1Z5WldRZ1lHOTNibVZ5WUM5Z2NtVndiMkFnWVc1a0lHTmhiaUJpWlNCdmRtVnljbWxrWkdWdUlIQmxjbHh1SUNvZ1kyRnNiQzRnVW1GM0lFZHBkRWgxWWlCeVpYTndiMjV6WlhNZ1lYSmxJRzV2Y20xaGJHbDZaV1FnZEc4Z1kyRnRaV3hEWVhObElHbHpjM1ZsSUdSbGMyTnlhWEIwYjNKekxGeHVJQ29nWVc1a0lHWmhhV3gxY21WeklHRnlaU0J0WVhCd1pXUWdkRzhnWkdWallXWWdaWEp5YjNKeklIWnBZU0I3UUd4cGJtc2dhSFIwY0VWeWNtOXlmUzVjYmlBcUwxeHVhVzF3YjNKMElIc2dTVzUwWlhKdVlXeEZjbkp2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhzZ1JHVjJiM0J6Ulc1MmFYSnZibTFsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZaVzUyYVhKdmJtMWxiblJjSWp0Y2JtbHRjRzl5ZENCN0lHVnVkazUxYldKbGNpd2daVzUyVTNSeWFXNW5JSDBnWm5KdmJTQmNJaTR1THk0dUwzTm9ZWEpsWkM5bGJuWnBjbTl1YldWdWRGWmhiSFZsWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JJZEhSd1FYQnBVMlZ5ZG1salpTeGNiaUFnZEhsd1pTQklkSFJ3UVhCcFUyVnlkbWxqWlVOdmJtWnBaeXhjYmlBZ2FIUjBjRVZ5Y205eUxGeHVmU0JtY205dElGd2lMaTR2TGk0dmMyaGhjbVZrTDJoMGRIQmNJanRjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRMjl1Wm1sbmRYSmhkR2x2YmlCbWIzSWdkR2hsSUVkcGRFaDFZaUJ6WlhKMmFXTmxYRzRnS2lCQWMzVnRiV0Z5ZVNCRmVIUmxibVJ6SUh0QWJHbHVheUJJZEhSd1FYQnBVMlZ5ZG1salpVTnZibVpwWjMwZ2QybDBhQ0IwYUdVZ1IybDBTSFZpSUhCbGNuTnZibUZzWEc0Z0tpQmhZMk5sYzNNZ2RHOXJaVzRnS0hObGJuUWdZWE1nWVNCaVpXRnlaWElnZEc5clpXNGdkMmwwYUNCMGFHVWdSMmwwU0hWaUlFRlFTU0IyWlhKemFXOXVJR2hsWVdSbGNuTXBYRzRnS2lCaGJtUWdkR2hsSUdSbFptRjFiSFFnWUc5M2JtVnlZQzlnY21Wd2IyQWdkWE5sWkNCM2FHVnVJR0VnWTJGc2JDQmtiMlZ6SUc1dmRDQnZkbVZ5Y21sa1pTQjBhR1Z0TGx4dUlDb2dWMmhsYmlCdmJXbDBkR1ZrTENCMGFHVWdZR1JsZG05d2N5NW5hWFJvZFdKZ0lHVnVkbWx5YjI1dFpXNTBJSE5zYVdObElITjFjSEJzYVdWeklIUm9aU0IwYjJ0bGJseHVJQ29nS0dGdVpDQnZjSFJwYjI1aGJDQmdiM2R1WlhKZ0xDQmdjbVZ3YjJBc0lHQmlZWE5sVlhKc1lDd2dZSFJwYldWdmRYUmdLUzVjYmlBcUlFQmpZWFJsWjI5eWVTQkVaWFpQY0hOY2JpQXFJRUJ0WlcxaVpYSlBaaUJ0YjJSMWJHVTZhVzUwWldkeVlYUnBiMjV6TDJSbGRtOXdjeTluYVhSb2RXSXZjMlZ5ZG1salpWeHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkcGRHaDFZbE5sY25acFkyVkRiMjVtYVdjZ1pYaDBaVzVrY3lCSWRIUndRWEJwVTJWeWRtbGpaVU52Ym1acFp5QjdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSMmwwU0hWaUlIQmxjbk52Ym1Gc0lHRmpZMlZ6Y3lCMGIydGxibHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlRaVzUwSUdGeklHQkJkWFJvYjNKcGVtRjBhVzl1T2lCQ1pXRnlaWElnUEhSdmEyVnVQbUFnZDJsMGFDQmxkbVZ5ZVNCQlVFa2dZMkZzYkM1Y2JpQWdJQ292WEc0Z0lIUnZhMlZ1UHpvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbFptRjFiSFFnY21Wd2IzTnBkRzl5ZVNCdmQyNWxjaUIxYzJWa0lIZG9aVzRnWVNCallXeHNJR1J2WlhNZ2JtOTBJRzkyWlhKeWFXUmxJR2wwWEc0Z0lDQXFMMXh1SUNCdmQyNWxjajg2SUhOMGNtbHVaenRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJFWldaaGRXeDBJSEpsY0c5emFYUnZjbmtnYm1GdFpTQjFjMlZrSUhkb1pXNGdZU0JqWVd4c0lHUnZaWE1nYm05MElHOTJaWEp5YVdSbElHbDBYRzRnSUNBcUwxeHVJQ0J5WlhCdlB6b2djM1J5YVc1bk8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQlNaWEJ2YzJsMGIzSjVJSFJoY21kbGRHbHVaeUJ5WldabGNtVnVZMlZjYmlBcUlFQnpkVzF0WVhKNUlFTmhjbkpwWlhNZ2RHaGxJRzl3ZEdsdmJtRnNJR0J2ZDI1bGNtQXZZSEpsY0c5Z0lHOTJaWEp5YVdSbElHWnZjaUJoSUhOcGJtZHNaU0JqWVd4c08xeHVJQ29nZDJobGJpQmxhWFJvWlhJZ1ptbGxiR1FnYVhNZ2IyMXBkSFJsWkNCMGFHVWdjMlZ5ZG1salpTQm1ZV3hzY3lCaVlXTnJJSFJ2SUhSb1pTQmpiMjVtYVdkMWNtVmtYRzRnS2lCZ1IybDBhSFZpVTJWeWRtbGpaVU52Ym1acFp5NXZkMjVsY21BdllISmxjRzlnTGlCUGNHVnlZWFJwYjI1eklIUm9ZWFFnWTJGdWJtOTBJSEpsYzI5c2RtVWdZbTkwYUZ4dUlDb2dkbUZzZFdWeklIUm9jbTkzSUdCSmJuUmxjbTVoYkVWeWNtOXlZQzVjYmlBcUlFQmpZWFJsWjI5eWVTQkVaWFpQY0hOY2JpQXFJRUJ0WlcxaVpYSlBaaUJ0YjJSMWJHVTZhVzUwWldkeVlYUnBiMjV6TDJSbGRtOXdjeTluYVhSb2RXSXZjMlZ5ZG1salpWeHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkcGRHaDFZbEpsY0c5emFYUnZjbmxTWldZZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxjRzl6YVhSdmNua2diM2R1WlhJZ1ptOXlJSFJvYVhNZ1kyRnNiRnh1SUNBZ0tpOWNiaUFnYjNkdVpYSS9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVZ3YjNOcGRHOXllU0J1WVcxbElHWnZjaUIwYUdseklHTmhiR3hjYmlBZ0lDb3ZYRzRnSUhKbGNHOC9PaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRWx1Y0hWMElHWnZjaUJqY21WaGRHbHVaeUJoSUVkcGRFaDFZaUJwYzNOMVpWeHVJQ29nUUhOMWJXMWhjbmtnUlhoMFpXNWtjeUI3UUd4cGJtc2dSMmwwYUhWaVVtVndiM05wZEc5eWVWSmxabjBnZDJsMGFDQjBhR1VnY21WeGRXbHlaV1FnYVhOemRXVmNiaUFxSUdCMGFYUnNaV0FnWVc1a0lIUm9aU0J2Y0hScGIyNWhiQ0JpYjJSNUxDQnNZV0psYkhNc0lHRnpjMmxuYm1WbGN5d2dZVzVrSUcxcGJHVnpkRzl1WlNCdWRXMWlaWEl1WEc0Z0tpQkFZMkYwWldkdmNua2dSR1YyVDNCelhHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPbWx1ZEdWbmNtRjBhVzl1Y3k5a1pYWnZjSE12WjJsMGFIVmlMM05sY25acFkyVmNiaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSGFYUm9kV0pKYzNOMVpVbHVjSFYwSUdWNGRHVnVaSE1nUjJsMGFIVmlVbVZ3YjNOcGRHOXllVkpsWmlCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1NYTnpkV1VnZEdsMGJHVWdLSEpsY1hWcGNtVmtJR0o1SUhSb1pTQkhhWFJJZFdJZ1FWQkpLVnh1SUNBZ0tpOWNiaUFnZEdsMGJHVTZJSE4wY21sdVp6dGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkpjM04xWlNCaWIyUjVJR2x1SUcxaGNtdGtiM2R1WEc0Z0lDQXFMMXh1SUNCaWIyUjVQem9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRXhoWW1Wc0lHNWhiV1Z6SUhSdklHRndjR3g1WEc0Z0lDQXFMMXh1SUNCc1lXSmxiSE0vT2lCemRISnBibWRiWFR0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVmMyVnlibUZ0WlhNZ2RHOGdZWE56YVdkdVhHNGdJQ0FxTDF4dUlDQmhjM05wWjI1bFpYTS9PaUJ6ZEhKcGJtZGJYVHRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJOYVd4bGMzUnZibVVnYm5WdFltVnlJSFJ2SUdGemMyOWphV0YwWlZ4dUlDQWdLaTljYmlBZ2JXbHNaWE4wYjI1bFB6b2diblZ0WW1WeU8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQk9iM0p0WVd4cGVtVmtJRWRwZEVoMVlpQnBjM04xWlNCa1pYTmpjbWx3ZEc5eVhHNGdLaUJBYzNWdGJXRnllU0JOWVhCeklIUm9aU0J5WVhjZ1IybDBTSFZpSUdsemMzVmxJSEJoZVd4dllXUWdiMjUwYnlCallXMWxiRU5oYzJVZ1ptbGxiR1J6T2lCcFpHVnVkR2wwZVZ4dUlDb2dLR0J1ZFcxaVpYSmdMQ0JnZEdsMGJHVmdMQ0JnYzNSaGRHVmdLU3dnWUdoMGJXeFZjbXhnTENCaWIyUjVJR0Z1WkNCaGRYUm9iM0lzSUdCc1lXSmxiSE5nSUNoc1lXSmxiRnh1SUNvZ2JtRnRaWE1nYjI1c2VTa3NJR0JqYjIxdFpXNTBjMkFnWTI5MWJuUXNJR0Z1WkNCZ1kzSmxZWFJsWkVGMFlDOWdkWEJrWVhSbFpFRjBZQ0IwYVcxbGMzUmhiWEJ6TGx4dUlDb2dVSFZzYkNCeVpYRjFaWE4wY3lCeVpYUjFjbTVsWkNCaWVTQjBhR1VnYVhOemRXVnpJR1Z1WkhCdmFXNTBJR0Z5WlNCbWFXeDBaWEpsWkNCdmRYUXVYRzRnS2lCQVkyRjBaV2R2Y25rZ1JHVjJUM0J6WEc0Z0tpQkFiV1Z0WW1WeVQyWWdiVzlrZFd4bE9tbHVkR1ZuY21GMGFXOXVjeTlrWlhadmNITXZaMmwwYUhWaUwzTmxjblpwWTJWY2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JIYVhSb2RXSkpjM04xWlNCbGVIUmxibVJ6SUVkcGRHaDFZbEpsY0c5emFYUnZjbmxTWldZZ2UxeHVJQ0J1ZFcxaVpYSTZJRzUxYldKbGNqdGNiaUFnZEdsMGJHVTZJSE4wY21sdVp6dGNiaUFnYzNSaGRHVS9PaUJ6ZEhKcGJtYzdYRzRnSUdoMGJXeFZjbXcvT2lCemRISnBibWM3WEc0Z0lHSnZaSGsvT2lCemRISnBibWM3WEc0Z0lIVnpaWEkvT2lCemRISnBibWM3WEc0Z0lHeGhZbVZzY3o4NklITjBjbWx1WjF0ZE8xeHVJQ0JqYjIxdFpXNTBjejg2SUc1MWJXSmxjanRjYmlBZ1kzSmxZWFJsWkVGMFB6b2djM1J5YVc1bk8xeHVJQ0IxY0dSaGRHVmtRWFEvT2lCemRISnBibWM3WEc1OVhHNWNiaThxWEc0Z0tpQk5ZWEpyWlhJZ0tGTkJRUzB4TURNNUlFWXlJQzhnVTBGQkxURXdORFFnUmpncE9pQjBhR1VnZFc1a2IyTjFiV1Z1ZEdWa0lHUjFjR3hwWTJGMFpWeHVJQ29nWUVkcGRHaDFZa3hwYzNSUGNIUnBiMjV6WUNCa1pXTnNZWEpoZEdsdmJpQjBhR0YwSUhWelpXUWdkRzhnYzJsMElHaGxjbVVnYUdGeklHSmxaVzRnY21WdGIzWmxaQzRnVkdobFhHNGdLaUJrYjJOMWJXVnVkR1ZrSUdSbFkyeGhjbUYwYVc5dUlHSmxiRzkzSUdseklIUm9aU0J6YVc1bmJHVWdZWFYwYUc5eWFYUmhkR2wyWlNCemFHRndaUzVjYmlBcUwxeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCUGNIUnBiMjV6SUdadmNpQnNhWE4wYVc1bklFZHBkRWgxWWlCcGMzTjFaWE1nYjNJZ2NIVnNiQ0J5WlhGMVpYTjBjMXh1SUNvZ1FITjFiVzFoY25rZ1JYaDBaVzVrY3lCN1FHeHBibXNnUjJsMGFIVmlVbVZ3YjNOcGRHOXllVkpsWm4wZ2QybDBhQ0IwYUdVZ2FYTnpkV1V2VUZJZ1lITjBZWFJsWUZ4dUlDb2dabWxzZEdWeUxDQmhJSEJoWjJVZ2MybDZaU0FvWUd4cGJXbDBZQ2tnWVc1a0lHQndZV2RsWUNCdWRXMWlaWElnWm05eUlIQmhaMmx1Wnl3Z1lXNWtJR0ZjYmlBcUlHTnZiVzFoTFhObGNHRnlZWFJsWkNCZ2JHRmlaV3h6WUNCbWFXeDBaWElnWVhCd2JHbGxaQ0IwYnlCcGMzTjFaU0JzYVhOMGFXNW5jeTVjYmlBcUlFQmpZWFJsWjI5eWVTQkVaWFpQY0hOY2JpQXFJRUJ0WlcxaVpYSlBaaUJ0YjJSMWJHVTZhVzUwWldkeVlYUnBiMjV6TDJSbGRtOXdjeTluYVhSb2RXSXZjMlZ5ZG1salpWeHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkcGRHaDFZa3hwYzNSUGNIUnBiMjV6SUdWNGRHVnVaSE1nUjJsMGFIVmlVbVZ3YjNOcGRHOXllVkpsWmlCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1NYTnpkV1V2VUZJZ2MzUmhkR1VnWm1sc2RHVnlYRzRnSUNBcUwxeHVJQ0J6ZEdGMFpUODZJRndpYjNCbGJsd2lJSHdnWENKamJHOXpaV1JjSWlCOElGd2lZV3hzWENJN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VHRm5aU0J6YVhwbElDaEhhWFJJZFdJbmN5QmdjR1Z5WDNCaFoyVmdLVHNnWkdWbVlYVnNkSE1nZEc4Z1lETXdZRnh1SUNBZ0tpOWNiaUFnYkdsdGFYUS9PaUJ1ZFcxaVpYSTdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVR0ZuWlNCdWRXMWlaWElnZEc4Z2NtVnhkV1Z6ZEZ4dUlDQWdLaTljYmlBZ2NHRm5aVDg2SUc1MWJXSmxjanRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEYjIxdFlTMXpaWEJoY21GMFpXUWdiR0ZpWld3Z2JtRnRaWE1nZEc4Z1ptbHNkR1Z5SUdsemMzVmxjeUJpZVZ4dUlDQWdLaTljYmlBZ2JHRmlaV3h6UHpvZ2MzUnlhVzVuTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCSGFYUklkV0lnVWtWVFZDQkJVRWtnYVc1MFpXZHlZWFJwYjI0Z2MyVnlkbWxqWlZ4dUlDb2dRSE4xYlcxaGNua2dRVzRnZFc1a1pXTnZjbUYwWldRZ1NGUlVVQ0J6WlhKMmFXTmxJR1p2Y2lCc2IyOXJhVzVuSUhWd1hHNGdLaUJ5WlhCdmMybDBiM0pwWlhNc0lHeHBjM1JwYm1jZ2FYTnpkV1Z6SUNobGVHTnNkV1JwYm1jZ2NIVnNiQ0J5WlhGMVpYTjBjeWtzSUdOeVpXRjBhVzVuSUdsemMzVmxjeXhjYmlBcUlHTnZiVzFsYm5ScGJtY2diMjRnYVhOemRXVnpMQ0JoYm1RZ2JHbHpkR2x1WnlCd2RXeHNJSEpsY1hWbGMzUnpMaUJTWlhCdmMybDBiM0o1SUhSaGNtZGxkSE1nY21WemIyeDJaVnh1SUNvZ2NHVnlJR05oYkd3Z1puSnZiU0IwYUdVZ2FXNXdkWFFuY3lCZ2IzZHVaWEpnTDJCeVpYQnZZQ3dnWm1Gc2JHbHVaeUJpWVdOcklIUnZJSFJvWlNCamIyNW1hV2QxY21Wa1hHNGdLaUJqYjI1bWFXY2dkbUZzZFdWekxDQmhibVFnZEdoeWIzY2dZRWx1ZEdWeWJtRnNSWEp5YjNKZ0lIZG9aVzRnZFc1eVpYTnZiSFpsWkM0Z1ZHaGxJSFJ2YTJWdUlHbHpJSE5sYm5SY2JpQXFJR0Z6SUdFZ1ltVmhjbVZ5SUhSdmEyVnVJSGRwZEdnZ2RHaGxJRWRwZEVoMVlpQmdRV05qWlhCMFlDQmhibVFnUVZCSkxYWmxjbk5wYjI0Z2FHVmhaR1Z5Y3l3Z1lXNWtYRzRnS2lCMGNtRnVjM0J2Y25RZ1ptRnBiSFZ5WlhNZ1lYSmxJRzFoY0hCbFpDQjBieUJrWldOaFppQmxjbkp2Y25NZ2RtbGhJSHRBYkdsdWF5Qm9kSFJ3UlhKeWIzSjlMbHh1SUNvZ1FHTnNZWE56SUVkcGRHaDFZbE5sY25acFkyVmNiaUFxSUVCallYUmxaMjl5ZVNCRVpYWlBjSE5jYmlBcUlFQmxlR0Z0Y0d4bFhHNGdLaUJnWUdCMGMxeHVJQ29nYVcxd2IzSjBJSHNnUjJsMGFIVmlVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZhVzUwWldkeVlYUnBiMjV6TDJSbGRtOXdjeTluYVhSb2RXSmNJanRjYmlBcVhHNGdLaUJqYjI1emRDQm5hWFJvZFdJZ1BTQnVaWGNnUjJsMGFIVmlVMlZ5ZG1salpTZ3BPMXh1SUNvZ1lYZGhhWFFnWjJsMGFIVmlMbWx1YVhScFlXeHBlbVVvZTF4dUlDb2dJQ0IwYjJ0bGJqb2djSEp2WTJWemN5NWxibll1UjFKQlVFaGZRMUpGUkVWT1ZFbEJURjlIU1ZSSVZVSmZWRTlMUlU0c1hHNGdLaUFnSUc5M2JtVnlPaUJjSW1WNFlXMXdiR1V0YjNKblhDSXNYRzRnS2lBZ0lISmxjRzg2SUZ3aVpYaGhiWEJzWlMxeVpYQnZYQ0lzWEc0Z0tpQjlLVHRjYmlBcUlHTnZibk4wSUdsemMzVmxJRDBnWVhkaGFYUWdaMmwwYUhWaUxtTnlaV0YwWlVsemMzVmxLSHRjYmlBcUlDQWdkR2wwYkdVNklGd2lRblZuSUhKbGNHOXlkRndpTEZ4dUlDb2dJQ0JpYjJSNU9pQmNJbE52YldWMGFHbHVaeUJwY3lCaWNtOXJaVzVjSWl4Y2JpQXFJQ0FnYkdGaVpXeHpPaUJiWENKaWRXZGNJbDBzWEc0Z0tpQjlLVHRjYmlBcUlHQmdZRnh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZaR1YyYjNCekwyZHBkR2gxWWk5elpYSjJhV05sWEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCSGFYUm9kV0pUWlhKMmFXTmxJR1Y0ZEdWdVpITWdTSFIwY0VGd2FWTmxjblpwWTJVOFIybDBhSFZpVTJWeWRtbGpaVU52Ym1acFp6NGdlMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRlJvWlNCd2NtOTJhV1JsY2lCdVlXMWxJSFZ6WldRZ2FXNGdaWEp5YjNJZ2JXVnpjMkZuWlhOY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQnlaV0ZrYjI1c2VTQnpaWEoyYVdObFRtRnRaU0E5SUZ3aVIybDBTSFZpWENJN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlVhR1VnUjJsMFNIVmlJRkpGVTFRZ1FWQkpJR0poYzJVZ1ZWSk1YRzRnSUNBcUlFQnpkVzF0WVhKNUlGVnpaV1FnZDJobGJpQjBhR1VnY21WemIyeDJaV1FnWTI5dVptbG5JR05oY25KcFpYTWdibThnWUdKaGMyVlZjbXhnTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mU0JnWENKb2RIUndjem92TDJGd2FTNW5hWFJvZFdJdVkyOXRYQ0pnTGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHUmxabUYxYkhSQ1lYTmxWWEpzS0NrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJRndpYUhSMGNITTZMeTloY0drdVoybDBhSFZpTG1OdmJWd2lPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkNkV2xzWkhNZ2RHaGxJRWRwZEVoMVlpQmhkWFJvWlc1MGFXTmhkR2x2YmlCaGJtUWdRVkJKSUhabGNuTnBiMjRnYUdWaFpHVnljMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQlNaWFIxY201eklHQkJkWFJvYjNKcGVtRjBhVzl1T2lCQ1pXRnlaWElnUEhSdmEyVnVQbUFzSUhSb1pTQkhhWFJJZFdJZ1NsTlBUbHh1SUNBZ0tpQmdRV05qWlhCMFlDQm9aV0ZrWlhJc0lHRnVaQ0IwYUdVZ1lGZ3RSMmwwU0hWaUxVRndhUzFXWlhKemFXOXVZQ0JvWldGa1pYSWdkMmhsYmlCMGFHVWdZMjl1Wm1sblhHNGdJQ0FxSUdOaGNuSnBaWE1nWVNCMGIydGxianNnZDJsMGFHOTFkQ0JoSUhSdmEyVnVJRzl1YkhrZ2RHaGxJR0JCWTJObGNIUmdJR2hsWVdSbGNuTWdZWEpsSUhObGJuUXVYRzRnSUNBcUlFQndZWEpoYlNCN1IybDBhSFZpVTJWeWRtbGpaVU52Ym1acFozMGdZMjl1Wm1sbklDMGdWR2hsSUhKbGMyOXNkbVZrSUhObGNuWnBZMlVnWTI5dVptbG5kWEpoZEdsdmJpNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxSmxZMjl5WkR4emRISnBibWNzSUhOMGNtbHVaejU5SUZSb1pTQmhkWFJvYjNKcGVtRjBhVzl1SUdGdVpDQjJaWEp6YVc5dUlHaGxZV1JsY25NdVhHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdZWFYwYUVobFlXUmxjbk1vWTI5dVptbG5PaUJIYVhSb2RXSlRaWEoyYVdObFEyOXVabWxuS1RvZ1VtVmpiM0prUEhOMGNtbHVaeXdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdjbVYwZFhKdUlHTnZibVpwWnk1MGIydGxibHh1SUNBZ0lDQWdQeUI3WEc0Z0lDQWdJQ0FnSUNBZ1FYVjBhRzl5YVhwaGRHbHZiam9nWUVKbFlYSmxjaUFrZTJOdmJtWnBaeTUwYjJ0bGJuMWdMRnh1SUNBZ0lDQWdJQ0FnSUVGalkyVndkRG9nWENKaGNIQnNhV05oZEdsdmJpOTJibVF1WjJsMGFIVmlLMnB6YjI1Y0lpeGNiaUFnSUNBZ0lDQWdJQ0JjSWxndFIybDBTSFZpTFVGd2FTMVdaWEp6YVc5dVhDSTZJRndpTWpBeU1pMHhNUzB5T0Z3aUxGeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQTZJSHNnUVdOalpYQjBPaUJjSW1Gd2NHeHBZMkYwYVc5dUwzWnVaQzVuYVhSb2RXSXJhbk52Ymx3aUlIMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxZV1J6SUhSb1pTQkhhWFJJZFdJZ1kzSmxaR1Z1ZEdsaGJITWdZVzVrSUdSbFptRjFiSFJ6SUdaeWIyMGdkR2hsSUdWdWRtbHliMjV0Wlc1MFhHNGdJQ0FxSUVCemRXMXRZWEo1SUZKbFlXUnpJSFJvWlNCZ1pHVjJiM0J6TG1kcGRHaDFZbUFnWlc1MmFYSnZibTFsYm5RZ2MyeHBZMlVnWVc1a0lISmxkSFZ5Ym5NZ1lWeHVJQ0FnS2lCd1lYSjBhV0ZzSUdOdmJtWnBaeUIzYUdWdUlHRWdkRzlyWlc0Z2FYTWdZMjl1Wm1sbmRYSmxaQ3dnWUhWdVpHVm1hVzVsWkdBZ2IzUm9aWEozYVhObExpQldZV3gxWlhOY2JpQWdJQ29nY0dGemN5QjBhSEp2ZFdkb0lHQmxiblpUZEhKcGJtZGdMMkJsYm5aT2RXMWlaWEpnSUhSdklISmxhbVZqZENCMWJuTmxkQzFzWldGbUlIQnliM2hwWlhNdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UVlYSjBhV0ZzUEVkcGRHaDFZbE5sY25acFkyVkRiMjVtYVdjK0lId2dkVzVrWldacGJtVmtmU0JCSUhCaGNuUnBZV3dnWTI5dVptbG5MQ0J2Y2lCZ2RXNWtaV1pwYm1Wa1lDQjNhR1Z1SUc1dklFZHBkRWgxWWlCMGIydGxiaUJwY3lCamIyNW1hV2QxY21Wa0xseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR052Ym1acFowWnliMjFGYm5acGNtOXViV1Z1ZENncE9pQlFZWEowYVdGc1BFZHBkR2gxWWxObGNuWnBZMlZEYjI1bWFXYytJSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdJQ0JqYjI1emRDQmxibllnUFNCRVpYWnZjSE5GYm5acGNtOXViV1Z1ZEM1a1pYWnZjSE11WjJsMGFIVmlPMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnWlc1MlUzUnlhVzVuS0dWdWRqOHVkRzlyWlc0cE8xeHVJQ0FnSUdsbUlDZ2hkRzlyWlc0cElISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJSFJ2YTJWdUxGeHVJQ0FnSUNBZ2IzZHVaWEk2SUdWdWRsTjBjbWx1WnlobGJuWXViM2R1WlhJcExGeHVJQ0FnSUNBZ2NtVndiem9nWlc1MlUzUnlhVzVuS0dWdWRpNXlaWEJ2S1N4Y2JpQWdJQ0FnSUdKaGMyVlZjbXc2SUdWdWRsTjBjbWx1WnlobGJuWXVZbUZ6WlZWeWJDa3NYRzRnSUNBZ0lDQjBhVzFsYjNWME9pQmxiblpPZFcxaVpYSW9aVzUyTG5ScGJXVnZkWFFwTEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsYzI5c2RtVnpJSFJvWlNCVlVrd3RaVzVqYjJSbFpDQnlaWEJ2YzJsMGIzSjVJSEJoZEdnZ1ptOXlJR0VnWTJGc2JGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCQ2RXbHNaSE1nWUM5eVpYQnZjeTg4YjNkdVpYSStMenh5WlhCdlBtQWdabkp2YlNCMGFHVWdhVzV3ZFhRbmN5QmdiM2R1WlhKZ0wyQnlaWEJ2WUN4Y2JpQWdJQ29nWm1Gc2JHbHVaeUJpWVdOcklIUnZJSFJvWlNCamIyNW1hV2QxY21Wa0lHTnZibVpwWnlCMllXeDFaWE1zSUdGdVpDQjBhSEp2ZDNNZ2QyaGxiaUJsYVhSb1pYSmNiaUFnSUNvZ2RtRnNkV1VnYVhNZ2JXbHpjMmx1Wnk1Y2JpQWdJQ29nUUhCaGNtRnRJSHRIYVhSb2RXSlNaWEJ2YzJsMGIzSjVVbVZtZlNCYmFXNXdkWFJkSUMwZ1ZHaGxJSEJsY2kxallXeHNJSEpsY0c5emFYUnZjbmtnYjNabGNuSnBaR1V1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRlJvWlNCVlVrd3RaVzVqYjJSbFpDQnlaWEJ2YzJsMGIzSjVJRUZRU1NCd1lYUm9MbHh1SUNBZ0tpQkFkR2h5YjNkeklIdEpiblJsY201aGJFVnljbTl5ZlNCWGFHVnVJRzVsYVhSb1pYSWdkR2hsSUdsdWNIVjBJRzV2Y2lCMGFHVWdZMjl1Wm1sbklIbHBaV3hrY3lCaGJpQnZkMjVsY2lCaGJtUWdjbVZ3YjNOcGRHOXllUzVjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCeVpYQnZVR0YwYUNocGJuQjFkRG9nUjJsMGFIVmlVbVZ3YjNOcGRHOXllVkpsWmlBOUlIdDlLVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQmpiMjV6ZENCdmQyNWxjaUE5SUdsdWNIVjBMbTkzYm1WeUlEOC9JSFJvYVhNdVkyOXVabWxuTG05M2JtVnlPMXh1SUNBZ0lHTnZibk4wSUhKbGNHOGdQU0JwYm5CMWRDNXlaWEJ2SUQ4L0lIUm9hWE11WTI5dVptbG5MbkpsY0c4N1hHNGdJQ0FnYVdZZ0tDRnZkMjVsY2lCOGZDQWhjbVZ3YnlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWENKSGFYUklkV0lnY21WeGRXbHlaWE1nWVc0Z2IzZHVaWElnWVc1a0lISmxjRzl6YVhSdmNubGNJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCZ0wzSmxjRzl6THlSN1pXNWpiMlJsVlZKSlEyOXRjRzl1Wlc1MEtHOTNibVZ5S1gwdkpIdGxibU52WkdWVlVrbERiMjF3YjI1bGJuUW9jbVZ3YnlsOVlEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1RtOXliV0ZzYVhwbGN5QmhJSEpoZHlCSGFYUklkV0lnYVhOemRXVWdjR0Y1Ykc5aFpGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCTllYQnpJSFJvWlNCeVlYY2dhWE56ZFdVZ1NsTlBUaUJ2Ym5SdklHRWdlMEJzYVc1cklFZHBkR2gxWWtsemMzVmxmVG9nYkdGaVpXd2diMkpxWldOMGMxeHVJQ0FnS2lCaGNtVWdjbVZrZFdObFpDQjBieUJ1WVcxbGN5d2dkR2hsSUdGMWRHaHZjaUIwYnlCcGRITWdZR3h2WjJsdVlDd2dZVzVrSUc1MWJXVnlhV012YzNSeWFXNW5YRzRnSUNBcUlHWnBaV3hrY3lCaGNtVWdZMjlsY21ObFpDNGdWR2hsSUhKbGNHOXphWFJ2Y25rZ2NtVm1aWEpsYm1ObElHbHpJR1ZqYUc5bFpDQm1jbTl0SUhSb1pTQnBibkIxZEN4Y2JpQWdJQ29nWm1Gc2JHbHVaeUJpWVdOcklIUnZJSFJvWlNCamIyNW1hV2QxY21Wa0lHQnZkMjVsY21BdllISmxjRzlnTGx4dUlDQWdLaUJBY0dGeVlXMGdlMUpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K2ZTQnlZWGNnTFNCVWFHVWdjbUYzSUVkcGRFaDFZaUJwYzNOMVpTQndZWGxzYjJGa0xseHVJQ0FnS2lCQWNHRnlZVzBnZTBkcGRHaDFZbEpsY0c5emFYUnZjbmxTWldaOUlISmxaaUF0SUZSb1pTQnlaWEJ2YzJsMGIzSjVJSEpsWm1WeVpXNWpaU0IwYUdVZ2FYTnpkV1VnWW1Wc2IyNW5jeUIwYnk1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTBkcGRHaDFZa2x6YzNWbGZTQlVhR1VnYm05eWJXRnNhWHBsWkNCcGMzTjFaU0JrWlhOamNtbHdkRzl5TGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHMWhjRWx6YzNWbEtGeHVJQ0FnSUhKaGR6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0c1hHNGdJQ0FnY21WbU9pQkhhWFJvZFdKU1pYQnZjMmwwYjNKNVVtVm1YRzRnSUNrNklFZHBkR2gxWWtsemMzVmxJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2IzZHVaWEk2SUhKbFppNXZkMjVsY2lBL1B5QjBhR2x6TG1OdmJtWnBaeTV2ZDI1bGNpeGNiaUFnSUNBZ0lISmxjRzg2SUhKbFppNXlaWEJ2SUQ4L0lIUm9hWE11WTI5dVptbG5MbkpsY0c4c1hHNGdJQ0FnSUNCdWRXMWlaWEk2SUU1MWJXSmxjaWh5WVhkYlhDSnVkVzFpWlhKY0lsMGdQejhnTUNrc1hHNGdJQ0FnSUNCMGFYUnNaVG9nVTNSeWFXNW5LSEpoZDF0Y0luUnBkR3hsWENKZElEOC9JRndpWENJcExGeHVJQ0FnSUNBZ2MzUmhkR1U2SUdWdWRsTjBjbWx1WnloeVlYZGJYQ0p6ZEdGMFpWd2lYU2tzWEc0Z0lDQWdJQ0JvZEcxc1ZYSnNPaUJsYm5aVGRISnBibWNvY21GM1cxd2lhSFJ0YkY5MWNteGNJbDBwTEZ4dUlDQWdJQ0FnWW05a2VUb2daVzUyVTNSeWFXNW5LSEpoZDF0Y0ltSnZaSGxjSWwwcExGeHVJQ0FnSUNBZ2RYTmxjam9nWlc1MlUzUnlhVzVuS0NoeVlYZGJYQ0oxYzJWeVhDSmRJR0Z6SUhzZ2JHOW5hVzQvT2lCemRISnBibWNnZlNCOElIVnVaR1ZtYVc1bFpDay9MbXh2WjJsdUtTeGNiaUFnSUNBZ0lHeGhZbVZzY3pvZ1FYSnlZWGt1YVhOQmNuSmhlU2h5WVhkYlhDSnNZV0psYkhOY0lsMHBYRzRnSUNBZ0lDQWdJRDhnS0hKaGQxdGNJbXhoWW1Wc2Mxd2lYU0JoY3lCQmNuSmhlVHg3SUc1aGJXVS9PaUJ6ZEhKcGJtY2dmU0I4SUhOMGNtbHVaejRwTG0xaGNDZ29iR0ZpWld3cElEMCtYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxiMllnYkdGaVpXd2dQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QnNZV0psYkNBNklGTjBjbWx1Wnloc1lXSmxiQzV1WVcxbElEOC9JRndpWENJcFhHNGdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0E2SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUdOdmJXMWxiblJ6T2x4dUlDQWdJQ0FnSUNCMGVYQmxiMllnY21GM1cxd2lZMjl0YldWdWRITmNJbDBnUFQwOUlGd2liblZ0WW1WeVhDSmNiaUFnSUNBZ0lDQWdJQ0EvSUNoeVlYZGJYQ0pqYjIxdFpXNTBjMXdpWFNCaGN5QnVkVzFpWlhJcFhHNGdJQ0FnSUNBZ0lDQWdPaUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0JqY21WaGRHVmtRWFE2SUdWdWRsTjBjbWx1WnloeVlYZGJYQ0pqY21WaGRHVmtYMkYwWENKZEtTeGNiaUFnSUNBZ0lIVndaR0YwWldSQmREb2daVzUyVTNSeWFXNW5LSEpoZDF0Y0luVndaR0YwWldSZllYUmNJbDBwTEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVpsZEdOb1pYTWdZU0JIYVhSSWRXSWdjbVZ3YjNOcGRHOXllVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQmdSMFZVWUhNZ1lDOXlaWEJ2Y3k4OGIzZHVaWEkrTHp4eVpYQnZQbUFnWm05eUlIUm9aU0JuYVhabGJpQnlaV1psY21WdVkyVWdLR1poYkd4cGJtZGNiaUFnSUNvZ1ltRmpheUIwYnlCMGFHVWdZMjl1Wm1sbmRYSmxaQ0JnYjNkdVpYSmdMMkJ5WlhCdllDa2dZVzVrSUhKbGRIVnlibk1nZEdobElISmhkeUJ5WlhCdmMybDBiM0o1WEc0Z0lDQXFJSEJoZVd4dllXUXVYRzRnSUNBcUlFQndZWEpoYlNCN1IybDBhSFZpVW1Wd2IzTnBkRzl5ZVZKbFpuMGdXM0psWmwwZ0xTQlVhR1VnY21Wd2IzTnBkRzl5ZVNCMGJ5QnNiMjlySUhWd095QmtaV1poZFd4MGN5QjBieUIwYUdVZ1kyOXVabWxuZFhKbFpDQmdiM2R1WlhKZ0wyQnlaWEJ2WUM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4ZFc1cmJtOTNiajU5SUZSb1pTQnlZWGNnUjJsMFNIVmlJSEpsY0c5emFYUnZjbmtnY0dGNWJHOWhaQzVjYmlBZ0lDb2dRSFJvY205M2N5QjdTVzUwWlhKdVlXeEZjbkp2Y24wZ1YyaGxiaUIwYUdVZ2NtVndiM05wZEc5eWVTQnlaV1psY21WdVkyVWdZMkZ1Ym05MElHSmxJSEpsYzI5c2RtVmtMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdE9iM1JHYjNWdVpFVnljbTl5ZlNCWGFHVnVJSFJvWlNCeVpYQnZjMmwwYjNKNUlHUnZaWE1nYm05MElHVjRhWE4wSUNoSVZGUlFJRFF3TkNrdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBOdmJtWnNhV04wUlhKeWIzSjlJRmRvWlc0Z1IybDBTSFZpSUdGdWMzZGxjbk1nZDJsMGFDQklWRlJRSURRd09TNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJRWRwZEVoMVlpQmhibk4zWlhKeklIZHBkR2dnWVc1NUlHOTBhR1Z5SUVoVVZGQWdaWEp5YjNJZ2MzUmhkSFZ6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWjJWMFVtVndiM05wZEc5eWVTaHlaV1k2SUVkcGRHaDFZbEpsY0c5emFYUnZjbmxTWldZZ1BTQjdmU2s2SUZCeWIyMXBjMlU4ZFc1cmJtOTNiajRnZTF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCamIyNXpkQ0J5WlhOd2IyNXpaU0E5SUdGM1lXbDBJSFJvYVhNdVkyeHBaVzUwTG1kbGRDaDBhR2x6TG5KbGNHOVFZWFJvS0hKbFppa3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM0J2Ym5ObExtUmhkR0U3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lrZHBkRWgxWWx3aUxDQmNJbWRsZENCeVpYQnZjMmwwYjNKNVhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUV4cGMzUnpJRWRwZEVoMVlpQnBjM04xWlhNZ2QybDBhQ0J6ZEdGMFpTd2diR0ZpWld3c0lHRnVaQ0J3WVdkbElHWnBiSFJsY21sdVoxeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCZ1IwVlVZSE1nWUM5eVpYQnZjeTg4YjNkdVpYSStMenh5WlhCdlBpOXBjM04xWlhOZ0lIZHBkR2dnWVNCZ2MzUmhkR1ZnSUdacGJIUmxjbHh1SUNBZ0tpQW9aR1ZtWVhWc2RDQmdYQ0p2Y0dWdVhDSmdLU3dnWVNCd1lXZGxJSE5wZW1VZ0tHQndaWEpmY0dGblpXQXNJR1JsWm1GMWJIUWdZRE13WUNrc0lHRWdjR0ZuWlZ4dUlDQWdLaUJ1ZFcxaVpYSXNJR0Z1WkNCaElHTnZiVzFoTFhObGNHRnlZWFJsWkNCZ2JHRmlaV3h6WUNCbWFXeDBaWEl1SUVWdWRISnBaWE1nWTJGeWNubHBibWNnWVZ4dUlDQWdLaUJnY0hWc2JGOXlaWEYxWlhOMFlDQnJaWGtnWVhKbElHWnBiSFJsY21Wa0lHOTFkQ0J6YnlCdmJteDVJSFJ5ZFdVZ2FYTnpkV1Z6SUdGeVpTQnlaWFIxY201bFpDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0SGFYUm9kV0pNYVhOMFQzQjBhVzl1YzMwZ1cyOXdkR2x2Ym5OZElDMGdVbVZ3YjNOcGRHOXllU0J2ZG1WeWNtbGtaU3dnYzNSaGRHVXNJSEJoWjJsdVp5d2dZVzVrSUd4aFltVnNJRzl3ZEdsdmJuTXVYRzRnSUNBcUlFQnlaWFIxY201eklIdFFjbTl0YVhObFBFZHBkR2gxWWtsemMzVmxXMTArZlNCVWFHVWdibTl5YldGc2FYcGxaQ0JwYzNOMVpYTWdabTl5SUhSb1pTQnlaWEYxWlhOMFpXUWdjR0ZuWlM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCMGFHVWdjbVZ3YjNOcGRHOXllU0J5WldabGNtVnVZMlVnWTJGdWJtOTBJR0psSUhKbGMyOXNkbVZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRPYjNSR2IzVnVaRVZ5Y205eWZTQlhhR1Z1SUhSb1pTQnlaWEJ2YzJsMGIzSjVJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwTnZibVpzYVdOMFJYSnliM0o5SUZkb1pXNGdSMmwwU0hWaUlHRnVjM2RsY25NZ2QybDBhQ0JJVkZSUUlEUXdPUzVjYmlBZ0lDb2dRSFJvY205M2N5QjdRbUZrVW1WeGRXVnpkRVZ5Y205eWZTQlhhR1Z1SUVkcGRFaDFZaUJoYm5OM1pYSnpJSGRwZEdnZ1lXNTVJRzkwYUdWeUlFaFVWRkFnWlhKeWIzSWdjM1JoZEhWekxseHVJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdLaUJnWUdCMGMxeHVJQ0FnS2lCc1pYUWdjR0ZuWlNBOUlERTdYRzRnSUNBcUlHWnZjaUFvT3pzcElIdGNiaUFnSUNvZ0lDQmpiMjV6ZENCcGMzTjFaWE1nUFNCaGQyRnBkQ0JuYVhSb2RXSXViR2x6ZEVsemMzVmxjeWg3WEc0Z0lDQXFJQ0FnSUNCemRHRjBaVG9nWENKdmNHVnVYQ0lzWEc0Z0lDQXFJQ0FnSUNCc1lXSmxiSE02SUZ3aVluVm5MSEJ5YVc5eWFYUjVPbWhwWjJoY0lpeGNiaUFnSUNvZ0lDQWdJR3hwYldsME9pQTFNQ3hjYmlBZ0lDb2dJQ0FnSUhCaFoyVXNYRzRnSUNBcUlDQWdmU2s3WEc0Z0lDQXFJQ0FnYVdZZ0tHbHpjM1ZsY3k1c1pXNW5kR2dnUFQwOUlEQXBJR0p5WldGck8xeHVJQ0FnS2lBZ0lIQmhaMlVnS3owZ01UdGNiaUFnSUNvZ2ZWeHVJQ0FnS2lCZ1lHQmNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHeHBjM1JKYzNOMVpYTW9YRzRnSUNBZ2IzQjBhVzl1Y3pvZ1IybDBhSFZpVEdsemRFOXdkR2x2Ym5NZ1BTQjdmVnh1SUNBcE9pQlFjbTl0YVhObFBFZHBkR2gxWWtsemMzVmxXMTArSUh0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1blpYUThRWEp5WVhrOFVtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajQrUGloY2JpQWdJQ0FnSUNBZ1lDUjdkR2hwY3k1eVpYQnZVR0YwYUNodmNIUnBiMjV6S1gwdmFYTnpkV1Z6WUN4Y2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJSEJoY21GdGN6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUmhkR1U2SUc5d2RHbHZibk11YzNSaGRHVWdQejhnWENKdmNHVnVYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQndaWEpmY0dGblpUb2diM0IwYVc5dWN5NXNhVzFwZENBL1B5QXpNQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhaMlU2SUc5d2RHbHZibk11Y0dGblpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4aFltVnNjem9nYjNCMGFXOXVjeTVzWVdKbGJITXNYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTndiMjV6WlM1a1lYUmhYRzRnSUNBZ0lDQWdJQzVtYVd4MFpYSW9LR1Z1ZEhKNUtTQTlQaUFoWlc1MGNubGJYQ0p3ZFd4c1gzSmxjWFZsYzNSY0lsMHBYRzRnSUNBZ0lDQWdJQzV0WVhBb0tHVnVkSEo1S1NBOVBpQjBhR2x6TG0xaGNFbHpjM1ZsS0dWdWRISjVMQ0J2Y0hScGIyNXpLU2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lrZHBkRWgxWWx3aUxDQmNJbXhwYzNRZ2FYTnpkV1Z6WENJc0lHVnljbTl5S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRU55WldGMFpYTWdZU0JIYVhSSWRXSWdhWE56ZFdWY2JpQWdJQ29nUUhOMWJXMWhjbmtnWUZCUFUxUmdjeUIwYUdVZ2RHbDBiR1VzSUdKdlpIa3NJR3hoWW1Wc2N5d2dZWE56YVdkdVpXVnpMQ0JoYm1RZ2JXbHNaWE4wYjI1bElIUnZYRzRnSUNBcUlHQXZjbVZ3YjNNdlBHOTNibVZ5UGk4OGNtVndiejR2YVhOemRXVnpZQ0JoYm1RZ2NtVjBkWEp1Y3lCMGFHVWdibTl5YldGc2FYcGxaQ0JwYzNOMVpWeHVJQ0FnS2lCa1pYTmpjbWx3ZEc5eUxpQlNaWEYxYVhKbGN5QmhJRzV2YmkxbGJYQjBlU0JnZEdsMGJHVmdJR0Z1WkNCaElISmxjMjlzZG1GaWJHVWdjbVZ3YjNOcGRHOXllVnh1SUNBZ0tpQnlaV1psY21WdVkyVXVYRzRnSUNBcUlFQndZWEpoYlNCN1IybDBhSFZpU1hOemRXVkpibkIxZEgwZ2FXNXdkWFFnTFNCVWFHVWdhWE56ZFdVZ1kyOXVkR1Z1ZENCaGJtUWdjbVZ3YjNOcGRHOXllU0IwWVhKblpYUnBibWN1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQRWRwZEdoMVlrbHpjM1ZsUG4wZ1ZHaGxJRzV2Y20xaGJHbDZaV1FnWTNKbFlYUmxaQ0JwYzNOMVpTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1NXNTBaWEp1WVd4RmNuSnZjbjBnVjJobGJpQjBhR1VnZEdsMGJHVWdhWE1nWlcxd2RIa2diM0lnZEdobElISmxjRzl6YVhSdmNua2djbVZtWlhKbGJtTmxJR05oYm01dmRDQmlaU0J5WlhOdmJIWmxaQzVjYmlBZ0lDb2dRSFJvY205M2N5QjdUbTkwUm05MWJtUkZjbkp2Y24wZ1YyaGxiaUIwYUdVZ2NtVndiM05wZEc5eWVTQmtiMlZ6SUc1dmRDQmxlR2x6ZENBb1NGUlVVQ0EwTURRcExseHVJQ0FnS2lCQWRHaHliM2R6SUh0RGIyNW1iR2xqZEVWeWNtOXlmU0JYYUdWdUlFZHBkRWgxWWlCaGJuTjNaWEp6SUhkcGRHZ2dTRlJVVUNBME1Ea3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJIYVhSSWRXSWdZVzV6ZDJWeWN5QjNhWFJvSUdGdWVTQnZkR2hsY2lCSVZGUlFJR1Z5Y205eUlITjBZWFIxY3lBb1pTNW5MaUJwYm5aaGJHbGtJR3hoWW1Wc2N5QnZjaUJoYzNOcFoyNWxaWE1wTGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWTNKbFlYUmxTWE56ZFdVb2FXNXdkWFE2SUVkcGRHaDFZa2x6YzNWbFNXNXdkWFFwT2lCUWNtOXRhWE5sUEVkcGRHaDFZa2x6YzNWbFBpQjdYRzRnSUNBZ2FXWWdLQ0ZwYm5CMWRDNTBhWFJzWlNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWENKSGFYUklkV0lnYVhOemRXVWdjbVZ4ZFdseVpYTWdZU0IwYVhSc1pWd2lLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUXVjRzl6ZER4U1pXTnZjbVE4YzNSeWFXNW5MQ0IxYm10dWIzZHVQajRvWEc0Z0lDQWdJQ0FnSUdBa2UzUm9hWE11Y21Wd2IxQmhkR2dvYVc1d2RYUXBmUzlwYzNOMVpYTmdMRnh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHbDBiR1U2SUdsdWNIVjBMblJwZEd4bExGeHVJQ0FnSUNBZ0lDQWdJR0p2WkhrNklHbHVjSFYwTG1KdlpIa3NYRzRnSUNBZ0lDQWdJQ0FnYkdGaVpXeHpPaUJwYm5CMWRDNXNZV0psYkhNc1hHNGdJQ0FnSUNBZ0lDQWdZWE56YVdkdVpXVnpPaUJwYm5CMWRDNWhjM05wWjI1bFpYTXNYRzRnSUNBZ0lDQWdJQ0FnYldsc1pYTjBiMjVsT2lCcGJuQjFkQzV0YVd4bGMzUnZibVVzWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXRZWEJKYzNOMVpTaHlaWE53YjI1elpTNWtZWFJoTENCcGJuQjFkQ2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lrZHBkRWgxWWx3aUxDQmNJbU55WldGMFpTQnBjM04xWlZ3aUxDQmxjbkp2Y2lrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEYjIxdFpXNTBjeUJ2YmlCaElFZHBkRWgxWWlCcGMzTjFaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQmdVRTlUVkdCeklIUm9aU0JqYjIxdFpXNTBJR0p2WkhrZ2RHOWNiaUFnSUNvZ1lDOXlaWEJ2Y3k4OGIzZHVaWEkrTHp4eVpYQnZQaTlwYzNOMVpYTXZQRzUxYldKbGNqNHZZMjl0YldWdWRITmdJR0Z1WkNCeVpYUjFjbTV6SUhSb1pTQmpiMjF0Wlc1MFhHNGdJQ0FxSUdsa1pXNTBhV1pwWlhJZ1lXNWtJR2wwY3lCSVZFMU1JRlZTVEM0Z1VtVnhkV2x5WlhNZ1lTQnViMjR0Wlcxd2RIa2dhWE56ZFdVZ2JuVnRZbVZ5SUdGdVpDQmliMlI1TGx4dUlDQWdLaUJBY0dGeVlXMGdlMGRwZEdoMVlsSmxjRzl6YVhSdmNubFNaV1lnSmlCN2JuVnRZbVZ5T2lCdWRXMWlaWElzSUdKdlpIazZJSE4wY21sdVozMTlJR2x1Y0hWMElDMGdWR2hsSUhKbGNHOXphWFJ2Y25rZ2RHRnlaMlYwYVc1bkxDQnBjM04xWlNCdWRXMWlaWElzSUdGdVpDQmpiMjF0Wlc1MElHSnZaSGt1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSHRwWkRvZ2JuVnRZbVZ5TENCb2RHMXNWWEpzUHpvZ2MzUnlhVzVuZlQ1OUlGUm9aU0JqY21WaGRHVmtJR052YlcxbGJuUW5jeUJKUkNCaGJtUWdTRlJOVENCVlVrd3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwbHVkR1Z5Ym1Gc1JYSnliM0o5SUZkb1pXNGdkR2hsSUdsemMzVmxJRzUxYldKbGNpQnZjaUJpYjJSNUlHbHpJR1Z0Y0hSNUxDQnZjaUIwYUdVZ2NtVndiM05wZEc5eWVTQnlaV1psY21WdVkyVWdZMkZ1Ym05MElHSmxJSEpsYzI5c2RtVmtMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdE9iM1JHYjNWdVpFVnljbTl5ZlNCWGFHVnVJSFJvWlNCcGMzTjFaU0JrYjJWeklHNXZkQ0JsZUdsemRDQW9TRlJVVUNBME1EUXBMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdERiMjVtYkdsamRFVnljbTl5ZlNCWGFHVnVJRWRwZEVoMVlpQmhibk4zWlhKeklIZHBkR2dnU0ZSVVVDQTBNRGt1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMEpoWkZKbGNYVmxjM1JGY25KdmNuMGdWMmhsYmlCSGFYUklkV0lnWVc1emQyVnljeUIzYVhSb0lHRnVlU0J2ZEdobGNpQklWRlJRSUdWeWNtOXlJSE4wWVhSMWN5NWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHTnZiVzFsYm5SUGJrbHpjM1ZsS0Z4dUlDQWdJR2x1Y0hWME9pQkhhWFJvZFdKU1pYQnZjMmwwYjNKNVVtVm1JQ1lnZXlCdWRXMWlaWEk2SUc1MWJXSmxjanNnWW05a2VUb2djM1J5YVc1bklIMWNiaUFnS1RvZ1VISnZiV2x6WlR4N0lHbGtPaUJ1ZFcxaVpYSTdJR2gwYld4VmNtdy9PaUJ6ZEhKcGJtY2dmVDRnZTF4dUlDQWdJR2xtSUNnaGFXNXdkWFF1Ym5WdFltVnlJSHg4SUNGcGJuQjFkQzVpYjJSNUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1hDSkhhWFJJZFdJZ1kyOXRiV1Z1ZENCeVpYRjFhWEpsY3lCaGJpQnBjM04xWlNCdWRXMWlaWElnWVc1a0lHSnZaSGxjSWx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNCdmJuTmxJRDBnWVhkaGFYUWdkR2hwY3k1amJHbGxiblF1Y0c5emREeDdYRzRnSUNBZ0lDQWdJR2xrUHpvZ2JuVnRZbVZ5TzF4dUlDQWdJQ0FnSUNCb2RHMXNYM1Z5YkQ4NklITjBjbWx1Wnp0Y2JpQWdJQ0FnSUgwK0tHQWtlM1JvYVhNdWNtVndiMUJoZEdnb2FXNXdkWFFwZlM5cGMzTjFaWE12Skh0cGJuQjFkQzV1ZFcxaVpYSjlMMk52YlcxbGJuUnpZQ3dnZTF4dUlDQWdJQ0FnSUNCaWIyUjVPaUJwYm5CMWRDNWliMlI1TEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZXlCcFpEb2dUblZ0WW1WeUtISmxjM0J2Ym5ObExtUmhkR0V1YVdRZ1B6OGdNQ2tzSUdoMGJXeFZjbXc2SUhKbGMzQnZibk5sTG1SaGRHRXVhSFJ0YkY5MWNtd2dmVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYUhSMGNFVnljbTl5S0Z3aVIybDBTSFZpWENJc0lGd2lZMjl0YldWdWRDQnZiaUJwYzNOMVpWd2lMQ0JsY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTWFYTjBjeUJIYVhSSWRXSWdjSFZzYkNCeVpYRjFaWE4wY3lCM2FYUm9JSE4wWVhSbElHRnVaQ0J3WVdkbElHWnBiSFJsY21sdVoxeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCZ1IwVlVZSE1nWUM5eVpYQnZjeTg4YjNkdVpYSStMenh5WlhCdlBpOXdkV3hzYzJBZ2QybDBhQ0JoSUdCemRHRjBaV0FnWm1sc2RHVnlYRzRnSUNBcUlDaGtaV1poZFd4MElHQmNJbTl3Wlc1Y0ltQXBMQ0JoSUhCaFoyVWdjMmw2WlNBb1lIQmxjbDl3WVdkbFlDd2daR1ZtWVhWc2RDQmdNekJnS1N3Z1lXNWtJR0VnY0dGblpWeHVJQ0FnS2lCdWRXMWlaWEl1SUZCMWJHd2djbVZ4ZFdWemRITWdZWEpsSUhKbGRIVnlibVZrSUdGeklISmhkeUJIYVhSSWRXSWdjR0Y1Ykc5aFpITXVYRzRnSUNBcUlFQndZWEpoYlNCN1IybDBhSFZpVEdsemRFOXdkR2x2Ym5OOUlGdHZjSFJwYjI1elhTQXRJRkpsY0c5emFYUnZjbmtnYjNabGNuSnBaR1VzSUhOMFlYUmxMQ0JoYm1RZ2NHRm5hVzVuSUc5d2RHbHZibk11WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSFZ1YTI1dmQyNWJYVDU5SUZSb1pTQnlZWGNnUjJsMFNIVmlJSEIxYkd3dGNtVnhkV1Z6ZENCd1lYbHNiMkZrY3k1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCMGFHVWdjbVZ3YjNOcGRHOXllU0J5WldabGNtVnVZMlVnWTJGdWJtOTBJR0psSUhKbGMyOXNkbVZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRPYjNSR2IzVnVaRVZ5Y205eWZTQlhhR1Z1SUhSb1pTQnlaWEJ2YzJsMGIzSjVJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwTnZibVpzYVdOMFJYSnliM0o5SUZkb1pXNGdSMmwwU0hWaUlHRnVjM2RsY25NZ2QybDBhQ0JJVkZSUUlEUXdPUzVjYmlBZ0lDb2dRSFJvY205M2N5QjdRbUZrVW1WeGRXVnpkRVZ5Y205eWZTQlhhR1Z1SUVkcGRFaDFZaUJoYm5OM1pYSnpJSGRwZEdnZ1lXNTVJRzkwYUdWeUlFaFVWRkFnWlhKeWIzSWdjM1JoZEhWekxseHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ2JHbHpkRkIxYkd4U1pYRjFaWE4wY3loY2JpQWdJQ0J2Y0hScGIyNXpPaUJIYVhSb2RXSk1hWE4wVDNCMGFXOXVjeUE5SUh0OVhHNGdJQ2s2SUZCeWIyMXBjMlU4ZFc1cmJtOTNibHRkUGlCN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdVoyVjBQSFZ1YTI1dmQyNWJYVDRvWEc0Z0lDQWdJQ0FnSUdBa2UzUm9hWE11Y21Wd2IxQmhkR2dvYjNCMGFXOXVjeWw5TDNCMWJHeHpZQ3hjYmlBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lIQmhjbUZ0Y3pvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGRHVTZJRzl3ZEdsdmJuTXVjM1JoZEdVZ1B6OGdYQ0p2Y0dWdVhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCd1pYSmZjR0ZuWlRvZ2IzQjBhVzl1Y3k1c2FXMXBkQ0EvUHlBek1DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaFoyVTZJRzl3ZEdsdmJuTXVjR0ZuWlN4Y2JpQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNCdmJuTmxMbVJoZEdFN1hHNGdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHaDBkSEJGY25KdmNpaGNJa2RwZEVoMVlsd2lMQ0JjSW14cGMzUWdjSFZzYkNCeVpYRjFaWE4wYzF3aUxDQmxjbkp2Y2lrN1hHNGdJQ0FnZlZ4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
301
|
+
//# sourceMappingURL=GithubService.js.map
|
|
302
|
+
//# sourceMappingURL=GithubService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops/github/GithubService.cjs","sourceRoot":"","sources":["devops/github/GithubService.js"],"names":[],"mappings":"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"}
|
|
@@ -20,5 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
* @description Re-exports the GitHub client-based service and its types.
|
|
21
21
|
*/
|
|
22
22
|
__exportStar(require("./GithubService.cjs"), exports);
|
|
23
|
-
//# sourceMappingURL=
|
|
24
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops/github/index.cjs","sourceRoot":"","sources":["devops/github/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,qDAAmC;AACnC,iCAAiC"}
|
|
@@ -278,5 +278,5 @@ class GitlabService extends index_js_1.HttpApiService {
|
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
exports.GitlabService = GitlabService;
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2l0bGFiU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXZvcHMvZ2l0bGFiL0dpdGxhYlNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDRCQUF1QjtBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSwyQ0FBc0M7QUFDckUsT0FBTyxFQUNMLGNBQWMsRUFFZCxTQUFTLEdBQ1YscUNBQTBCO0FBd0gzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLGNBQW1DO0lBQXRFOztRQUNFOztXQUVHO1FBQ2dCLGdCQUFXLEdBQUcsUUFBUSxDQUFDO0lBa1E1QyxDQUFDO0lBaFFDOzs7O09BSUc7SUFDTyxjQUFjO1FBQ3RCLE9BQU8sMkJBQTJCLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLFdBQVcsQ0FBQyxNQUEyQjtRQUMvQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxxQkFBcUI7UUFDN0IsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsT0FBTztZQUNMLEtBQUs7WUFDTCxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFD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LEtBQUssSUFBSSxRQUFRO29CQUN0RSxRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUM3QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtpQkFDdkI7YUFDRixDQUNGLENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZGV2b3BzL2dpdGxhYi9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBHaXRMYWIgUkVTVCBBUEkgaW50ZWdyYXRpb24gc2VydmljZSBmb3IgcHJvamVjdHMsIGlzc3VlcywgYW5kIG1lcmdlIHJlcXVlc3RzLlxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgYSBmb2N1c2VkIHN1YnNldCBvZiB0aGUgR2l0TGFiIFJFU1QgdjQgQVBJIChgL3Byb2plY3RzLypgOlxuICogcHJvamVjdCBsb29rdXAsIGlzc3VlIGxpc3RpbmcvY3JlYXRpb24vY29tbWVudGluZywgYW5kIG1lcmdlLXJlcXVlc3RcbiAqIGxpc3RpbmcpIGFzIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uXG4gKiB7QGxpbmsgSHR0cEFwaVNlcnZpY2V9LiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXRcbiAqIGBHaXRsYWJTZXJ2aWNlQ29uZmlnYCBvciB0aGUgYGRldm9wcy5naXRsYWJgIGVudmlyb25tZW50IHNsaWNlOyBwcm9qZWN0XG4gKiB0YXJnZXRzIGRlZmF1bHQgdG8gdGhlIGNvbmZpZ3VyZWQgYHByb2plY3RJZGAgYW5kIGNhbiBiZSBvdmVycmlkZGVuIHBlclxuICogY2FsbC4gUmF3IEdpdExhYiByZXNwb25zZXMgYXJlIG5vcm1hbGl6ZWQgdG8gY2FtZWxDYXNlIGlzc3VlIGRlc2NyaXB0b3JzLFxuICogYW5kIGZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqL1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRGV2b3BzRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlXCI7XG5pbXBvcnQge1xuICBIdHRwQXBpU2VydmljZSxcbiAgdHlwZSBIdHRwQXBpU2VydmljZUNvbmZpZyxcbiAgaHR0cEVycm9yLFxufSBmcm9tIFwiLi4vLi4vc2hhcmVkL2h0dHBcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIEdpdExhYiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHtAbGluayBIdHRwQXBpU2VydmljZUNvbmZpZ30gd2l0aCB0aGUgR2l0TGFiIHBlcnNvbmFsXG4gKiBhY2Nlc3MgdG9rZW4gKHNlbnQgYXMgdGhlIGBQUklWQVRFLVRPS0VOYCBoZWFkZXIpIGFuZCB0aGUgZGVmYXVsdFxuICogYHByb2plY3RJZGAgdXNlZCB3aGVuIGEgY2FsbCBkb2VzIG5vdCBvdmVycmlkZSBpdC4gV2hlbiBvbWl0dGVkLCB0aGVcbiAqIGBkZXZvcHMuZ2l0bGFiYCBlbnZpcm9ubWVudCBzbGljZSBzdXBwbGllcyB0aGUgdG9rZW4gKGFuZCBvcHRpb25hbFxuICogYHByb2plY3RJZGAsIGBiYXNlVXJsYCwgYHRpbWVvdXRgKS5cbiAqIEBjYXRlZ29yeSBEZXZPcHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2Rldm9wcy9naXRsYWIvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGxhYlNlcnZpY2VDb25maWcgZXh0ZW5kcyBIdHRwQXBpU2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2l0TGFiIHBlcnNvbmFsIGFjY2VzcyB0b2tlblxuICAgKiBAc3VtbWFyeSBTZW50IGFzIHRoZSBgUFJJVkFURS1UT0tFTmAgaGVhZGVyIHdpdGggZXZlcnkgQVBJIGNhbGwuXG4gICAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IHByb2plY3QgSUQgdXNlZCB3aGVuIGEgY2FsbCBkb2VzIG5vdCBvdmVycmlkZSBpdFxuICAgKiBAc3VtbWFyeSBBY2NlcHRzIHRoZSBVUkwtZW5jb2RlZCBwcm9qZWN0IHBhdGggb3IgdGhlIG51bWVyaWMgcHJvamVjdCBJRC5cbiAgICovXG4gIHByb2plY3RJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW5wdXQgZm9yIGNyZWF0aW5nIGEgR2l0TGFiIGlzc3VlXG4gKiBAc3VtbWFyeSBDYXJyaWVzIHRoZSBvcHRpb25hbCBgcHJvamVjdElkYCBvdmVycmlkZSwgdGhlIHJlcXVpcmVkIGlzc3VlXG4gKiBgdGl0bGVgLCBhbmQgdGhlIG9wdGlvbmFsIGRlc2NyaXB0aW9uLCBjb21tYS1zZXBhcmF0ZWQgYGxhYmVsc2AsXG4gKiBgYXNzaWduZWVJZHNgLCBhbmQgYG1pbGVzdG9uZUlkYC5cbiAqIEBjYXRlZ29yeSBEZXZPcHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2Rldm9wcy9naXRsYWIvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGxhYklzc3VlSW5wdXQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByb2plY3QgSUQgZm9yIHRoaXMgY2FsbFxuICAgKiBAc3VtbWFyeSBGYWxscyBiYWNrIHRvIHRoZSBjb25maWd1cmVkIGBHaXRsYWJTZXJ2aWNlQ29uZmlnLnByb2plY3RJZGAuXG4gICAqL1xuICBwcm9qZWN0SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSXNzdWUgdGl0bGUgKHJlcXVpcmVkIGJ5IHRoZSBHaXRMYWIgQVBJKVxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJc3N1ZSBkZXNjcmlwdGlvbiBpbiBtYXJrZG93blxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29tbWEtc2VwYXJhdGVkIGxhYmVsIG5hbWVzIHRvIGFwcGx5XG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2l0TGFiIHVzZXIgSURzIHRvIGFzc2lnblxuICAgKi9cbiAgYXNzaWduZWVJZHM/OiBudW1iZXJbXTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNaWxlc3RvbmUgSUQgdG8gYXNzb2NpYXRlXG4gICAqL1xuICBtaWxlc3RvbmVJZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTm9ybWFsaXplZCBHaXRMYWIgaXNzdWUgZGVzY3JpcHRvclxuICogQHN1bW1hcnkgTWFwcyB0aGUgcmF3IEdpdExhYiBpc3N1ZSBwYXlsb2FkIG9udG8gY2FtZWxDYXNlIGZpZWxkczogaWRlbnRpdHlcbiAqIChgaWlkYCwgYHRpdGxlYCwgYHN0YXRlYCksIGB3ZWJVcmxgLCBkZXNjcmlwdGlvbiBhbmQgYXV0aG9yLCBgbGFiZWxzYCxcbiAqIGFuZCBgY3JlYXRlZEF0YC9gdXBkYXRlZEF0YCB0aW1lc3RhbXBzLlxuICogQGNhdGVnb3J5IERldk9wc1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvZGV2b3BzL2dpdGxhYi9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0bGFiSXNzdWUge1xuICBwcm9qZWN0SWQ/OiBzdHJpbmc7XG4gIGlpZDogbnVtYmVyO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbiAgd2ViVXJsPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYXV0aG9yPzogc3RyaW5nO1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICB1cGRhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wdGlvbnMgZm9yIGxpc3RpbmcgR2l0TGFiIGlzc3VlcyBvciBtZXJnZSByZXF1ZXN0c1xuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgb3B0aW9uYWwgYHByb2plY3RJZGAgb3ZlcnJpZGUsIHRoZSBgc3RhdGVgIGZpbHRlciwgYVxuICogcGFnZSBzaXplIChgbGltaXRgKSBhbmQgYHBhZ2VgIG51bWJlciBmb3IgcGFnaW5nLCBhIGNvbW1hLXNlcGFyYXRlZFxuICogYGxhYmVsc2AgZmlsdGVyLCBhbmQgYSBgc2VhcmNoYCB0ZXJtLiBNZXJnZS1yZXF1ZXN0IGxpc3RpbmdzIHBhc3MgdGhlIHN0YXRlXG4gKiB0aHJvdWdoIHVuY2hhbmdlZCBleGNlcHQgZm9yIGBcImFsbFwiYCwgd2hpY2ggR2l0TGFiIG1vZGVscyBieSBvbWl0dGluZyB0aGVcbiAqIHBhcmFtZXRlci5cbiAqIEBjYXRlZ29yeSBEZXZPcHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2Rldm9wcy9naXRsYWIvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGxhYkxpc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcm9qZWN0IElEIGZvciB0aGlzIGNhbGxcbiAgICogQHN1bW1hcnkgRmFsbHMgYmFjayB0byB0aGUgY29uZmlndXJlZCBgR2l0bGFiU2VydmljZUNvbmZpZy5wcm9qZWN0SWRgLlxuICAgKi9cbiAgcHJvamVjdElkPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIElzc3VlL21lcmdlLXJlcXVlc3Qgc3RhdGUgZmlsdGVyXG4gICAqL1xuICBzdGF0ZT86IFwib3BlbmVkXCIgfCBcImNsb3NlZFwiIHwgXCJhbGxcIjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYWdlIHNpemUgKEdpdExhYidzIGBwZXJfcGFnZWApOyBkZWZhdWx0cyB0byBgMzBgXG4gICAqL1xuICBsaW1pdD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYWdlIG51bWJlciB0byByZXF1ZXN0XG4gICAqL1xuICBwYWdlPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbW1hLXNlcGFyYXRlZCBsYWJlbCBuYW1lcyB0byBmaWx0ZXIgaXNzdWVzIGJ5XG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2VhcmNoIHRlcm0gbWF0Y2hlZCBhZ2FpbnN0IGlzc3VlL21lcmdlLXJlcXVlc3QgdGl0bGVzIGFuZCBkZXNjcmlwdGlvbnNcbiAgICovXG4gIHNlYXJjaD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2l0TGFiIFJFU1QgQVBJIGludGVncmF0aW9uIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEFuIHVuZGVjb3JhdGVkIEhUVFAgc2VydmljZSBmb3IgbG9va2luZyB1cCBwcm9qZWN0cyxcbiAqIGxpc3RpbmcgaXNzdWVzLCBjcmVhdGluZyBpc3N1ZXMsIGNvbW1lbnRpbmcgb24gaXNzdWVzIChub3RlcyksIGFuZCBsaXN0aW5nXG4gKiBtZXJnZSByZXF1ZXN0cy4gUHJvamVjdCB0YXJnZXRzIHJlc29sdmUgcGVyIGNhbGwgZnJvbSB0aGUgaW5wdXQnc1xuICogYHByb2plY3RJZGAsIGZhbGxpbmcgYmFjayB0byB0aGUgY29uZmlndXJlZCB2YWx1ZSwgYW5kIHRocm93XG4gKiBgSW50ZXJuYWxFcnJvcmAgd2hlbiB1bnJlc29sdmVkLiBUaGUgdG9rZW4gaXMgc2VudCBhcyB0aGUgYFBSSVZBVEUtVE9LRU5gXG4gKiBoZWFkZXIsIGFuZCB0cmFuc3BvcnQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhXG4gKiB7QGxpbmsgaHR0cEVycm9yfS5cbiAqIEBjbGFzcyBHaXRsYWJTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgRGV2T3BzXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IEdpdGxhYlNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9kZXZvcHMvZ2l0bGFiXCI7XG4gKlxuICogY29uc3QgZ2l0bGFiID0gbmV3IEdpdGxhYlNlcnZpY2UoKTtcbiAqIGF3YWl0IGdpdGxhYi5pbml0aWFsaXplKHtcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfR0lUTEFCX1RPS0VOLFxuICogICBwcm9qZWN0SWQ6IFwiZXhhbXBsZS1vcmclMkZleGFtcGxlLXJlcG9cIixcbiAqIH0pO1xuICogY29uc3QgaXNzdWUgPSBhd2FpdCBnaXRsYWIuY3JlYXRlSXNzdWUoe1xuICogICB0aXRsZTogXCJCdWcgcmVwb3J0XCIsXG4gKiAgIGRlc2NyaXB0aW9uOiBcIlNvbWV0aGluZyBpcyBicm9rZW5cIixcbiAqIH0pO1xuICogYGBgXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9kZXZvcHMvZ2l0bGFiL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGxhYlNlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZTxHaXRsYWJTZXJ2aWNlQ29uZmlnPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2VOYW1lID0gXCJHaXRMYWJcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBHaXRMYWIgUkVTVCB2NCBiYXNlIFVSTFxuICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICogQHJldHVybnMge3N0cmluZ30gYFwiaHR0cHM6Ly9naXRsYWIuY29tL2FwaS92NFwiYC5cbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0QmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImh0dHBzOi8vZ2l0bGFiLmNvbS9hcGkvdjRcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBHaXRMYWIgYFBSSVZBVEUtVE9LRU5gIGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBgUFJJVkFURS1UT0tFTjogPHRva2VuPmAgaGVhZGVyIHdoZW4gdGhlIGNvbmZpZ1xuICAgKiBjYXJyaWVzIGEgdG9rZW4sIGFuZCBubyBoZWFkZXJzIG90aGVyd2lzZS5cbiAgICogQHBhcmFtIHtHaXRsYWJTZXJ2aWNlQ29uZmlnfSBjb25maWcgLSBUaGUgcmVzb2x2ZWQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gVGhlIGF1dGhvcml6YXRpb24gaGVhZGVycyAoZW1wdHkgd2l0aG91dCBhIHRva2VuKS5cbiAgICovXG4gIHByb3RlY3RlZCBhdXRoSGVhZGVycyhjb25maWc6IEdpdGxhYlNlcnZpY2VDb25maWcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gY29uZmlnLnRva2VuID8geyBcIlBSSVZBVEUtVE9LRU5cIjogY29uZmlnLnRva2VuIH0gOiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdGhlIEdpdExhYiBjcmVkZW50aWFscyBhbmQgZGVmYXVsdHMgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBkZXZvcHMuZ2l0bGFiYCBlbnZpcm9ubWVudCBzbGljZSBhbmQgcmV0dXJucyBhXG4gICAqIHBhcnRpYWwgY29uZmlnIHdoZW4gYSB0b2tlbiBpcyBjb25maWd1cmVkLCBgdW5kZWZpbmVkYCBvdGhlcndpc2UuIFZhbHVlc1xuICAgKiBwYXNzIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICogQHJldHVybnMge1BhcnRpYWw8R2l0bGFiU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gR2l0TGFiIHRva2VuIGlzIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uZmlnRnJvbUVudmlyb25tZW50KCk6IFBhcnRpYWw8R2l0bGFiU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGVudiA9IERldm9wc0Vudmlyb25tZW50LmRldm9wcy5naXRsYWI7XG4gICAgY29uc3QgdG9rZW4gPSBlbnZTdHJpbmcoZW52Py50b2tlbik7XG4gICAgaWYgKCF0b2tlbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW4sXG4gICAgICBwcm9qZWN0SWQ6IGVudlN0cmluZyhlbnYucHJvamVjdElkKSxcbiAgICAgIGJhc2VVcmw6IGVudlN0cmluZyhlbnYuYmFzZVVybCksXG4gICAgICB0aW1lb3V0OiBlbnZOdW1iZXIoZW52LnRpbWVvdXQpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc29sdmVzIHRoZSBVUkwtZW5jb2RlZCBwcm9qZWN0IHBhdGggZm9yIGEgY2FsbFxuICAgKiBAc3VtbWFyeSBCdWlsZHMgYC9wcm9qZWN0cy88cHJvamVjdElkPmAgZnJvbSB0aGUgZ2l2ZW4gcHJvamVjdCBJRCxcbiAgICogZmFsbGluZyBiYWNrIHRvIHRoZSBjb25maWd1cmVkIHZhbHVlLCBhbmQgdGhyb3dzIHdoZW4gbmVpdGhlciBpc1xuICAgKiBhdmFpbGFibGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvamVjdElkXSAtIFRoZSBwZXItY2FsbCBwcm9qZWN0IG92ZXJyaWRlIChVUkwtZW5jb2RlZCBwYXRoIG9yIG51bWVyaWMgSUQpLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgVVJMLWVuY29kZWQgcHJvamVjdCBBUEkgcGF0aC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBuZWl0aGVyIHRoZSBpbnB1dCBub3IgdGhlIGNvbmZpZyB5aWVsZHMgYSBwcm9qZWN0IElELlxuICAgKi9cbiAgcHJvdGVjdGVkIHByb2plY3RQYXRoKHByb2plY3RJZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBwcm9qZWN0SWQgPz8gdGhpcy5jb25maWcucHJvamVjdElkO1xuICAgIGlmICghcmVzb2x2ZWQpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiR2l0TGFiIHJlcXVpcmVzIGEgcHJvamVjdCBJRFwiKTtcbiAgICByZXR1cm4gYC9wcm9qZWN0cy8ke2VuY29kZVVSSUNvbXBvbmVudChyZXNvbHZlZCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTm9ybWFsaXplcyBhIHJhdyBHaXRMYWIgaXNzdWUgcGF5bG9hZFxuICAgKiBAc3VtbWFyeSBNYXBzIHRoZSByYXcgaXNzdWUgSlNPTiBvbnRvIGEge0BsaW5rIEdpdGxhYklzc3VlfTogdGhlIGF1dGhvclxuICAgKiB0byBpdHMgYHVzZXJuYW1lYCwgdGhlIGxhYmVsIGFycmF5IHRvIHN0cmluZ3MsIGFuZCBudW1lcmljL3N0cmluZyBmaWVsZHNcbiAgICogYXJlIGNvZXJjZWQuIFRoZSBwcm9qZWN0IElEIGlzIGVjaG9lZCBmcm9tIHRoZSBpbnB1dCwgZmFsbGluZyBiYWNrIHRvIHRoZVxuICAgKiBjb25maWd1cmVkIHZhbHVlLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSByYXcgLSBUaGUgcmF3IEdpdExhYiBpc3N1ZSBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3Byb2plY3RJZF0gLSBUaGUgcHJvamVjdCBJRCB0aGUgaXNzdWUgYmVsb25ncyB0by5cbiAgICogQHJldHVybnMge0dpdGxhYklzc3VlfSBUaGUgbm9ybWFsaXplZCBpc3N1ZSBkZXNjcmlwdG9yLlxuICAgKi9cbiAgcHJvdGVjdGVkIG1hcElzc3VlKFxuICAgIHJhdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcHJvamVjdElkPzogc3RyaW5nXG4gICk6IEdpdGxhYklzc3VlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWQgPz8gdGhpcy5jb25maWcucHJvamVjdElkLFxuICAgICAgaWlkOiBOdW1iZXIocmF3W1wiaWlkXCJdID8/IHJhd1tcImlkXCJdID8/IDApLFxuICAgICAgdGl0bGU6IFN0cmluZyhyYXdbXCJ0aXRsZVwiXSA/PyBcIlwiKSxcbiAgICAgIHN0YXRlOiBlbnZTdHJpbmcocmF3W1wic3RhdGVcIl0pLFxuICAgICAgd2ViVXJsOiBlbnZTdHJpbmcocmF3W1wid2ViX3VybFwiXSksXG4gICAgICBkZXNjcmlwdGlvbjogZW52U3RyaW5nKHJhd1tcImRlc2NyaXB0aW9uXCJdKSxcbiAgICAgIGF1dGhvcjogZW52U3RyaW5nKFxuICAgICAgICAocmF3W1wiYXV0aG9yXCJdIGFzIHsgdXNlcm5hbWU/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk/LnVzZXJuYW1lXG4gICAgICApLFxuICAgICAgbGFiZWxzOiBBcnJheS5pc0FycmF5KHJhd1tcImxhYmVsc1wiXSlcbiAgICAgICAgPyAocmF3W1wibGFiZWxzXCJdIGFzIHVua25vd25bXSkubWFwKChsYWJlbCkgPT4gU3RyaW5nKGxhYmVsKSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBjcmVhdGVkQXQ6IGVudlN0cmluZyhyYXdbXCJjcmVhdGVkX2F0XCJdKSxcbiAgICAgIHVwZGF0ZWRBdDogZW52U3RyaW5nKHJhd1tcInVwZGF0ZWRfYXRcIl0pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYSBHaXRMYWIgcHJvamVjdFxuICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9wcm9qZWN0cy88cHJvamVjdElkPmAgZm9yIHRoZSBnaXZlbiBJRCAoZmFsbGluZyBiYWNrIHRvXG4gICAqIHRoZSBjb25maWd1cmVkIGBwcm9qZWN0SWRgKSBhbmQgcmV0dXJucyB0aGUgcmF3IHByb2plY3QgcGF5bG9hZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwcm9qZWN0SWRdIC0gVGhlIHByb2plY3QgdG8gbG9vayB1cDsgZGVmYXVsdHMgdG8gdGhlIGNvbmZpZ3VyZWQgYHByb2plY3RJZGAuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgcmF3IEdpdExhYiBwcm9qZWN0IHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHByb2plY3QgSUQgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR2l0TGFiIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKi9cbiAgYXN5bmMgZ2V0UHJvamVjdChwcm9qZWN0SWQ/OiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQodGhpcy5wcm9qZWN0UGF0aChwcm9qZWN0SWQpKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJHaXRMYWJcIiwgXCJnZXQgcHJvamVjdFwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBHaXRMYWIgaXNzdWVzIHdpdGggc3RhdGUsIGxhYmVsLCBzZWFyY2gsIGFuZCBwYWdlIGZpbHRlcmluZ1xuICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9wcm9qZWN0cy88cHJvamVjdElkPi9pc3N1ZXNgIHdpdGggYSBgc3RhdGVgIGZpbHRlclxuICAgKiAoZGVmYXVsdCBgXCJvcGVuZWRcImApLCBhIHBhZ2Ugc2l6ZSAoYHBlcl9wYWdlYCwgZGVmYXVsdCBgMzBgKSwgYSBwYWdlXG4gICAqIG51bWJlciwgYSBjb21tYS1zZXBhcmF0ZWQgYGxhYmVsc2AgZmlsdGVyLCBhbmQgYSBgc2VhcmNoYCB0ZXJtLlxuICAgKiBAcGFyYW0ge0dpdGxhYkxpc3RPcHRpb25zfSBbb3B0aW9uc10gLSBQcm9qZWN0IG92ZXJyaWRlLCBzdGF0ZSwgcGFnaW5nLCBsYWJlbCwgYW5kIHNlYXJjaCBvcHRpb25zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHaXRsYWJJc3N1ZVtdPn0gVGhlIG5vcm1hbGl6ZWQgaXNzdWVzIGZvciB0aGUgcmVxdWVzdGVkIHBhZ2UuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHByb2plY3QgSUQgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR2l0TGFiIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBpc3N1ZXMgPSBhd2FpdCBnaXRsYWIubGlzdElzc3Vlcyh7XG4gICAqICAgcHJvamVjdElkOiBcImV4YW1wbGUtb3JnJTJGZXhhbXBsZS1yZXBvXCIsXG4gICAqICAgc3RhdGU6IFwib3BlbmVkXCIsXG4gICAqICAgbGFiZWxzOiBcImJ1Zyxwcmlvcml0eTo6aGlnaFwiLFxuICAgKiAgIGxpbWl0OiA1MCxcbiAgICogICBwYWdlOiAxLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBsaXN0SXNzdWVzKG9wdGlvbnM6IEdpdGxhYkxpc3RPcHRpb25zID0ge30pOiBQcm9taXNlPEdpdGxhYklzc3VlW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQ8QXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+PihcbiAgICAgICAgYCR7dGhpcy5wcm9qZWN0UGF0aChvcHRpb25zLnByb2plY3RJZCl9L2lzc3Vlc2AsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHN0YXRlOiBvcHRpb25zLnN0YXRlID8/IFwib3BlbmVkXCIsXG4gICAgICAgICAgICBwZXJfcGFnZTogb3B0aW9ucy5saW1pdCA/PyAzMCxcbiAgICAgICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZSxcbiAgICAgICAgICAgIGxhYmVsczogb3B0aW9ucy5sYWJlbHMsXG4gICAgICAgICAgICBzZWFyY2g6IG9wdGlvbnMuc2VhcmNoLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5tYXAoKGVudHJ5KSA9PlxuICAgICAgICB0aGlzLm1hcElzc3VlKGVudHJ5LCBvcHRpb25zLnByb2plY3RJZClcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdExhYlwiLCBcImxpc3QgaXNzdWVzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBHaXRMYWIgaXNzdWVcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgdGl0bGUsIGRlc2NyaXB0aW9uLCBsYWJlbHMsIGFzc2lnbmVlIElEcywgYW5kXG4gICAqIG1pbGVzdG9uZSBJRCB0byBgL3Byb2plY3RzLzxwcm9qZWN0SWQ+L2lzc3Vlc2AgYW5kIHJldHVybnMgdGhlIG5vcm1hbGl6ZWRcbiAgICogaXNzdWUgZGVzY3JpcHRvci4gUmVxdWlyZXMgYSBub24tZW1wdHkgYHRpdGxlYCBhbmQgYSByZXNvbHZhYmxlIHByb2plY3RcbiAgICogSUQuXG4gICAqIEBwYXJhbSB7R2l0bGFiSXNzdWVJbnB1dH0gaW5wdXQgLSBUaGUgaXNzdWUgY29udGVudCBhbmQgcHJvamVjdCB0YXJnZXRpbmcuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEdpdGxhYklzc3VlPn0gVGhlIG5vcm1hbGl6ZWQgY3JlYXRlZCBpc3N1ZS5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgdGl0bGUgaXMgZW1wdHkgb3IgdGhlIHByb2plY3QgSUQgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR2l0TGFiIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzIChlLmcuIGludmFsaWQgbGFiZWxzIG9yIGFzc2lnbmVlcykuXG4gICAqL1xuICBhc3luYyBjcmVhdGVJc3N1ZShpbnB1dDogR2l0bGFiSXNzdWVJbnB1dCk6IFByb21pc2U8R2l0bGFiSXNzdWU+IHtcbiAgICBpZiAoIWlucHV0LnRpdGxlKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdpdExhYiBpc3N1ZSByZXF1aXJlcyBhIHRpdGxlXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0PFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgICAgICAgYCR7dGhpcy5wcm9qZWN0UGF0aChpbnB1dC5wcm9qZWN0SWQpfS9pc3N1ZXNgLFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IGlucHV0LnRpdGxlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBpbnB1dC5kZXNjcmlwdGlvbixcbiAgICAgICAgICBsYWJlbHM6IGlucHV0LmxhYmVscyxcbiAgICAgICAgICBhc3NpZ25lZV9pZHM6IGlucHV0LmFzc2lnbmVlSWRzLFxuICAgICAgICAgIG1pbGVzdG9uZV9pZDogaW5wdXQubWlsZXN0b25lSWQsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gdGhpcy5tYXBJc3N1ZShyZXNwb25zZS5kYXRhLCBpbnB1dC5wcm9qZWN0SWQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJHaXRMYWJcIiwgXCJjcmVhdGUgaXNzdWVcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29tbWVudHMgb24gYSBHaXRMYWIgaXNzdWVcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgY29tbWVudCBib2R5IGFzIGEgbm90ZSB0b1xuICAgKiBgL3Byb2plY3RzLzxwcm9qZWN0SWQ+L2lzc3Vlcy88aWlkPi9ub3Rlc2AgYW5kIHJldHVybnMgdGhlIG5vdGVcbiAgICogaWRlbnRpZmllciBhbmQgaXRzIHdlYiBVUkwuIFJlcXVpcmVzIGEgbm9uLWVtcHR5IGlzc3VlIElJRCBhbmQgYm9keS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGlucHV0IC0gVGhlIGNvbW1lbnQgdGFyZ2V0IGFuZCBib2R5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2lucHV0LnByb2plY3RJZF0gLSBUaGUgcHJvamVjdCBvdmVycmlkZTsgZmFsbHMgYmFjayB0byB0aGUgY29uZmlndXJlZCBgcHJvamVjdElkYC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGlucHV0LmlpZCAtIFRoZSBpc3N1ZSdzIHByb2plY3Qtc2NvcGVkIElJRC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0LmJvZHkgLSBUaGUgY29tbWVudCBib2R5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7aWQ6IG51bWJlciwgd2ViVXJsPzogc3RyaW5nfT59IFRoZSBjcmVhdGVkIG5vdGUncyBJRCBhbmQgd2ViIFVSTC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgaXNzdWUgSUlEIG9yIGJvZHkgaXMgZW1wdHksIG9yIHRoZSBwcm9qZWN0IElEIGNhbm5vdCBiZSByZXNvbHZlZC5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgaXNzdWUgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHaXRMYWIgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR2l0TGFiIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAqL1xuICBhc3luYyBjb21tZW50T25Jc3N1ZShpbnB1dDoge1xuICAgIHByb2plY3RJZD86IHN0cmluZztcbiAgICBpaWQ6IG51bWJlcjtcbiAgICBib2R5OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHsgaWQ6IG51bWJlcjsgd2ViVXJsPzogc3RyaW5nIH0+IHtcbiAgICBpZiAoIWlucHV0LmlpZCB8fCAhaW5wdXQuYm9keSkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiR2l0TGFiIGNvbW1lbnQgcmVxdWlyZXMgYW4gaXNzdWUgSUlEIGFuZCBib2R5XCJcbiAgICAgICk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3Q8e1xuICAgICAgICBpZD86IG51bWJlcjtcbiAgICAgICAgd2ViX3VybD86IHN0cmluZztcbiAgICAgIH0+KFxuICAgICAgICBgJHt0aGlzLnByb2plY3RQYXRoKGlucHV0LnByb2plY3RJZCl9L2lzc3Vlcy8ke2lucHV0LmlpZH0vbm90ZXNgLFxuICAgICAgICB7IGJvZHk6IGlucHV0LmJvZHkgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiB7IGlkOiBOdW1iZXIocmVzcG9uc2UuZGF0YS5pZCA/PyAwKSwgd2ViVXJsOiByZXNwb25zZS5kYXRhLndlYl91cmwgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR2l0TGFiXCIsIFwiY29tbWVudCBvbiBpc3N1ZVwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBHaXRMYWIgbWVyZ2UgcmVxdWVzdHMgd2l0aCBzdGF0ZSwgc2VhcmNoLCBhbmQgcGFnZSBmaWx0ZXJpbmdcbiAgICogQHN1bW1hcnkgYEdFVGBzIGAvcHJvamVjdHMvPHByb2plY3RJZD4vbWVyZ2VfcmVxdWVzdHNgIHdpdGggYSBgc3RhdGVgXG4gICAqIGZpbHRlciAoZGVmYXVsdCBgXCJvcGVuZWRcImA7IGBcImFsbFwiYCBpcyBzZW50IGFzIG5vIHN0YXRlIHBhcmFtZXRlciksXG4gICAqIGEgcGFnZSBzaXplIChgcGVyX3BhZ2VgLCBkZWZhdWx0IGAzMGApLCBhIHBhZ2UgbnVtYmVyLCBhbmQgYSBgc2VhcmNoYFxuICAgKiB0ZXJtLiBNZXJnZSByZXF1ZXN0cyBhcmUgcmV0dXJuZWQgYXMgcmF3IEdpdExhYiBwYXlsb2Fkcy5cbiAgICogQHBhcmFtIHtHaXRsYWJMaXN0T3B0aW9uc30gW29wdGlvbnNdIC0gUHJvamVjdCBvdmVycmlkZSwgc3RhdGUsIHBhZ2luZywgYW5kIHNlYXJjaCBvcHRpb25zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duW10+fSBUaGUgcmF3IEdpdExhYiBtZXJnZS1yZXF1ZXN0IHBheWxvYWRzLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIHRoZSBwcm9qZWN0IElEIGNhbm5vdCBiZSByZXNvbHZlZC5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgcHJvamVjdCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRMYWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICovXG4gIGFzeW5jIGxpc3RNZXJnZVJlcXVlc3RzKFxuICAgIG9wdGlvbnM6IEdpdGxhYkxpc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTx1bmtub3duW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQ8dW5rbm93bltdPihcbiAgICAgICAgYCR7dGhpcy5wcm9qZWN0UGF0aChvcHRpb25zLnByb2plY3RJZCl9L21lcmdlX3JlcXVlc3RzYCxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhdGU6IG9wdGlvbnMuc3RhdGUgPT09IFwiYWxsXCIgPyB1bmRlZmluZWQgOiBvcHRpb25zLnN0YXRlID8/IFwib3BlbmVkXCIsXG4gICAgICAgICAgICBwZXJfcGFnZTogb3B0aW9ucy5saW1pdCA/PyAzMCxcbiAgICAgICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZSxcbiAgICAgICAgICAgIHNlYXJjaDogb3B0aW9ucy5zZWFyY2gsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJHaXRMYWJcIiwgXCJsaXN0IG1lcmdlIHJlcXVlc3RzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2l0bGFiU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdpdGxhYlNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCwyREFBd0Q7QUFDeEQsd0RBQXdEO0FBQ3hELDRFQUEwRTtBQUMxRSwyREFBMEU7QUFDMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBQ0gsTUFBYSxhQUFjLFNBQVEseUJBQWM7SUFDN0M7UUFDSSxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNwQjs7V0FFRztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNWLE9BQU8sMkJBQTJCLENBQUM7SUFDdkMsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxNQUFNO1FBQ2QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gscUJBQXFCO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLGtDQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBQSwrQkFBUyxFQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSztZQUNOLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLE9BQU87WUFDSCxLQUFLO1lBQ0wsU0FBUyxFQUFFLElBQUEsK0JBQVMsRUFBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQ25DLE9BQU8sRUFBRSxJQUFBLCtCQUFTLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUMvQixPQUFPLEVBQUUsSUFBQSwrQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFP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QUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDN0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07aUJBQ3pCO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFBLG9CQUFTLEVBQUMsUUFBUSxFQUFFLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDTCxDQUFDO0NBQ0o7QUF4T0Qsc0NBd09DO0FBQ0QsczM0QkFBczM0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZGV2b3BzL2dpdGxhYi9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBHaXRMYWIgUkVTVCBBUEkgaW50ZWdyYXRpb24gc2VydmljZSBmb3IgcHJvamVjdHMsIGlzc3VlcywgYW5kIG1lcmdlIHJlcXVlc3RzLlxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgYSBmb2N1c2VkIHN1YnNldCBvZiB0aGUgR2l0TGFiIFJFU1QgdjQgQVBJIChgL3Byb2plY3RzLypgOlxuICogcHJvamVjdCBsb29rdXAsIGlzc3VlIGxpc3RpbmcvY3JlYXRpb24vY29tbWVudGluZywgYW5kIG1lcmdlLXJlcXVlc3RcbiAqIGxpc3RpbmcpIGFzIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uXG4gKiB7QGxpbmsgSHR0cEFwaVNlcnZpY2V9LiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXRcbiAqIGBHaXRsYWJTZXJ2aWNlQ29uZmlnYCBvciB0aGUgYGRldm9wcy5naXRsYWJgIGVudmlyb25tZW50IHNsaWNlOyBwcm9qZWN0XG4gKiB0YXJnZXRzIGRlZmF1bHQgdG8gdGhlIGNvbmZpZ3VyZWQgYHByb2plY3RJZGAgYW5kIGNhbiBiZSBvdmVycmlkZGVuIHBlclxuICogY2FsbC4gUmF3IEdpdExhYiByZXNwb25zZXMgYXJlIG5vcm1hbGl6ZWQgdG8gY2FtZWxDYXNlIGlzc3VlIGRlc2NyaXB0b3JzLFxuICogYW5kIGZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqL1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRGV2b3BzRW52aXJvbm1lbnQgfSBmcm9tIFwiLi8uLi9lbnZpcm9ubWVudC5qc1wiO1xuaW1wb3J0IHsgZW52TnVtYmVyLCBlbnZTdHJpbmcgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZS5qc1wiO1xuaW1wb3J0IHsgSHR0cEFwaVNlcnZpY2UsIGh0dHBFcnJvciwgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvaHR0cC9pbmRleC5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2l0TGFiIFJFU1QgQVBJIGludGVncmF0aW9uIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEFuIHVuZGVjb3JhdGVkIEhUVFAgc2VydmljZSBmb3IgbG9va2luZyB1cCBwcm9qZWN0cyxcbiAqIGxpc3RpbmcgaXNzdWVzLCBjcmVhdGluZyBpc3N1ZXMsIGNvbW1lbnRpbmcgb24gaXNzdWVzIChub3RlcyksIGFuZCBsaXN0aW5nXG4gKiBtZXJnZSByZXF1ZXN0cy4gUHJvamVjdCB0YXJnZXRzIHJlc29sdmUgcGVyIGNhbGwgZnJvbSB0aGUgaW5wdXQnc1xuICogYHByb2plY3RJZGAsIGZhbGxpbmcgYmFjayB0byB0aGUgY29uZmlndXJlZCB2YWx1ZSwgYW5kIHRocm93XG4gKiBgSW50ZXJuYWxFcnJvcmAgd2hlbiB1bnJlc29sdmVkLiBUaGUgdG9rZW4gaXMgc2VudCBhcyB0aGUgYFBSSVZBVEUtVE9LRU5gXG4gKiBoZWFkZXIsIGFuZCB0cmFuc3BvcnQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhXG4gKiB7QGxpbmsgaHR0cEVycm9yfS5cbiAqIEBjbGFzcyBHaXRsYWJTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgRGV2T3BzXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IEdpdGxhYlNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9kZXZvcHMvZ2l0bGFiXCI7XG4gKlxuICogY29uc3QgZ2l0bGFiID0gbmV3IEdpdGxhYlNlcnZpY2UoKTtcbiAqIGF3YWl0IGdpdGxhYi5pbml0aWFsaXplKHtcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfR0lUTEFCX1RPS0VOLFxuICogICBwcm9qZWN0SWQ6IFwiZXhhbXBsZS1vcmclMkZleGFtcGxlLXJlcG9cIixcbiAqIH0pO1xuICogY29uc3QgaXNzdWUgPSBhd2FpdCBnaXRsYWIuY3JlYXRlSXNzdWUoe1xuICogICB0aXRsZTogXCJCdWcgcmVwb3J0XCIsXG4gKiAgIGRlc2NyaXB0aW9uOiBcIlNvbWV0aGluZyBpcyBicm9rZW5cIixcbiAqIH0pO1xuICogYGBgXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9kZXZvcHMvZ2l0bGFiL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGxhYlNlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IFwiR2l0TGFiXCI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgR2l0TGFiIFJFU1QgdjQgYmFzZSBVUkxcbiAgICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL2dpdGxhYi5jb20vYXBpL3Y0XCJgLlxuICAgICAqL1xuICAgIGRlZmF1bHRCYXNlVXJsKCkge1xuICAgICAgICByZXR1cm4gXCJodHRwczovL2dpdGxhYi5jb20vYXBpL3Y0XCI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIEdpdExhYiBgUFJJVkFURS1UT0tFTmAgYXV0aG9yaXphdGlvbiBoZWFkZXJzXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgYFBSSVZBVEUtVE9LRU46IDx0b2tlbj5gIGhlYWRlciB3aGVuIHRoZSBjb25maWdcbiAgICAgKiBjYXJyaWVzIGEgdG9rZW4sIGFuZCBubyBoZWFkZXJzIG90aGVyd2lzZS5cbiAgICAgKiBAcGFyYW0ge0dpdGxhYlNlcnZpY2VDb25maWd9IGNvbmZpZyAtIFRoZSByZXNvbHZlZCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFRoZSBhdXRob3JpemF0aW9uIGhlYWRlcnMgKGVtcHR5IHdpdGhvdXQgYSB0b2tlbikuXG4gICAgICovXG4gICAgYXV0aEhlYWRlcnMoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBjb25maWcudG9rZW4gPyB7IFwiUFJJVkFURS1UT0tFTlwiOiBjb25maWcudG9rZW4gfSA6IHt9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdGhlIEdpdExhYiBjcmVkZW50aWFscyBhbmQgZGVmYXVsdHMgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgYGRldm9wcy5naXRsYWJgIGVudmlyb25tZW50IHNsaWNlIGFuZCByZXR1cm5zIGFcbiAgICAgKiBwYXJ0aWFsIGNvbmZpZyB3aGVuIGEgdG9rZW4gaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXNcbiAgICAgKiBwYXNzIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICAgKiBAcmV0dXJucyB7UGFydGlhbDxHaXRsYWJTZXJ2aWNlQ29uZmlnPiB8IHVuZGVmaW5lZH0gQSBwYXJ0aWFsIGNvbmZpZywgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBHaXRMYWIgdG9rZW4gaXMgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICBjb25maWdGcm9tRW52aXJvbm1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IERldm9wc0Vudmlyb25tZW50LmRldm9wcy5naXRsYWI7XG4gICAgICAgIGNvbnN0IHRva2VuID0gZW52U3RyaW5nKGVudj8udG9rZW4pO1xuICAgICAgICBpZiAoIXRva2VuKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgcHJvamVjdElkOiBlbnZTdHJpbmcoZW52LnByb2plY3RJZCksXG4gICAgICAgICAgICBiYXNlVXJsOiBlbnZTdHJpbmcoZW52LmJhc2VVcmwpLFxuICAgICAgICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc29sdmVzIHRoZSBVUkwtZW5jb2RlZCBwcm9qZWN0IHBhdGggZm9yIGEgY2FsbFxuICAgICAqIEBzdW1tYXJ5IEJ1aWxkcyBgL3Byb2plY3RzLzxwcm9qZWN0SWQ+YCBmcm9tIHRoZSBnaXZlbiBwcm9qZWN0IElELFxuICAgICAqIGZhbGxpbmcgYmFjayB0byB0aGUgY29uZmlndXJlZCB2YWx1ZSwgYW5kIHRocm93cyB3aGVuIG5laXRoZXIgaXNcbiAgICAgKiBhdmFpbGFibGUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtwcm9qZWN0SWRdIC0gVGhlIHBlci1jYWxsIHByb2plY3Qgb3ZlcnJpZGUgKFVSTC1lbmNvZGVkIHBhdGggb3IgbnVtZXJpYyBJRCkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVGhlIFVSTC1lbmNvZGVkIHByb2plY3QgQVBJIHBhdGguXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBuZWl0aGVyIHRoZSBpbnB1dCBub3IgdGhlIGNvbmZpZyB5aWVsZHMgYSBwcm9qZWN0IElELlxuICAgICAqL1xuICAgIHByb2plY3RQYXRoKHByb2plY3RJZCkge1xuICAgICAgICBjb25zdCByZXNvbHZlZCA9IHByb2plY3RJZCA/PyB0aGlzLmNvbmZpZy5wcm9qZWN0SWQ7XG4gICAgICAgIGlmICghcmVzb2x2ZWQpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdpdExhYiByZXF1aXJlcyBhIHByb2plY3QgSURcIik7XG4gICAgICAgIHJldHVybiBgL3Byb2plY3RzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlc29sdmVkKX1gO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTm9ybWFsaXplcyBhIHJhdyBHaXRMYWIgaXNzdWUgcGF5bG9hZFxuICAgICAqIEBzdW1tYXJ5IE1hcHMgdGhlIHJhdyBpc3N1ZSBKU09OIG9udG8gYSB7QGxpbmsgR2l0bGFiSXNzdWV9OiB0aGUgYXV0aG9yXG4gICAgICogdG8gaXRzIGB1c2VybmFtZWAsIHRoZSBsYWJlbCBhcnJheSB0byBzdHJpbmdzLCBhbmQgbnVtZXJpYy9zdHJpbmcgZmllbGRzXG4gICAgICogYXJlIGNvZXJjZWQuIFRoZSBwcm9qZWN0IElEIGlzIGVjaG9lZCBmcm9tIHRoZSBpbnB1dCwgZmFsbGluZyBiYWNrIHRvIHRoZVxuICAgICAqIGNvbmZpZ3VyZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gcmF3IC0gVGhlIHJhdyBHaXRMYWIgaXNzdWUgcGF5bG9hZC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3Byb2plY3RJZF0gLSBUaGUgcHJvamVjdCBJRCB0aGUgaXNzdWUgYmVsb25ncyB0by5cbiAgICAgKiBAcmV0dXJucyB7R2l0bGFiSXNzdWV9IFRoZSBub3JtYWxpemVkIGlzc3VlIGRlc2NyaXB0b3IuXG4gICAgICovXG4gICAgbWFwSXNzdWUocmF3LCBwcm9qZWN0SWQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByb2plY3RJZDogcHJvamVjdElkID8/IHRoaXMuY29uZmlnLnByb2plY3RJZCxcbiAgICAgICAgICAgIGlpZDogTnVtYmVyKHJhd1tcImlpZFwiXSA/PyByYXdbXCJpZFwiXSA/PyAwKSxcbiAgICAgICAgICAgIHRpdGxlOiBTdHJpbmcocmF3W1widGl0bGVcIl0gPz8gXCJcIiksXG4gICAgICAgICAgICBzdGF0ZTogZW52U3RyaW5nKHJhd1tcInN0YXRlXCJdKSxcbiAgICAgICAgICAgIHdlYlVybDogZW52U3RyaW5nKHJhd1tcIndlYl91cmxcIl0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGVudlN0cmluZyhyYXdbXCJkZXNjcmlwdGlvblwiXSksXG4gICAgICAgICAgICBhdXRob3I6IGVudlN0cmluZyhyYXdbXCJhdXRob3JcIl0/LnVzZXJuYW1lKSxcbiAgICAgICAgICAgIGxhYmVsczogQXJyYXkuaXNBcnJheShyYXdbXCJsYWJlbHNcIl0pXG4gICAgICAgICAgICAgICAgPyByYXdbXCJsYWJlbHNcIl0ubWFwKChsYWJlbCkgPT4gU3RyaW5nKGxhYmVsKSlcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogZW52U3RyaW5nKHJhd1tcImNyZWF0ZWRfYXRcIl0pLFxuICAgICAgICAgICAgdXBkYXRlZEF0OiBlbnZTdHJpbmcocmF3W1widXBkYXRlZF9hdFwiXSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGZXRjaGVzIGEgR2l0TGFiIHByb2plY3RcbiAgICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9wcm9qZWN0cy88cHJvamVjdElkPmAgZm9yIHRoZSBnaXZlbiBJRCAoZmFsbGluZyBiYWNrIHRvXG4gICAgICogdGhlIGNvbmZpZ3VyZWQgYHByb2plY3RJZGApIGFuZCByZXR1cm5zIHRoZSByYXcgcHJvamVjdCBwYXlsb2FkLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvamVjdElkXSAtIFRoZSBwcm9qZWN0IHRvIGxvb2sgdXA7IGRlZmF1bHRzIHRvIHRoZSBjb25maWd1cmVkIGBwcm9qZWN0SWRgLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgcmF3IEdpdExhYiBwcm9qZWN0IHBheWxvYWQuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgcHJvamVjdCBJRCBjYW5ub3QgYmUgcmVzb2x2ZWQuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgcHJvamVjdCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR2l0TGFiIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR2l0TGFiIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0UHJvamVjdChwcm9qZWN0SWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KHRoaXMucHJvamVjdFBhdGgocHJvamVjdElkKSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdExhYlwiLCBcImdldCBwcm9qZWN0XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgR2l0TGFiIGlzc3VlcyB3aXRoIHN0YXRlLCBsYWJlbCwgc2VhcmNoLCBhbmQgcGFnZSBmaWx0ZXJpbmdcbiAgICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9wcm9qZWN0cy88cHJvamVjdElkPi9pc3N1ZXNgIHdpdGggYSBgc3RhdGVgIGZpbHRlclxuICAgICAqIChkZWZhdWx0IGBcIm9wZW5lZFwiYCksIGEgcGFnZSBzaXplIChgcGVyX3BhZ2VgLCBkZWZhdWx0IGAzMGApLCBhIHBhZ2VcbiAgICAgKiBudW1iZXIsIGEgY29tbWEtc2VwYXJhdGVkIGBsYWJlbHNgIGZpbHRlciwgYW5kIGEgYHNlYXJjaGAgdGVybS5cbiAgICAgKiBAcGFyYW0ge0dpdGxhYkxpc3RPcHRpb25zfSBbb3B0aW9uc10gLSBQcm9qZWN0IG92ZXJyaWRlLCBzdGF0ZSwgcGFnaW5nLCBsYWJlbCwgYW5kIHNlYXJjaCBvcHRpb25zLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPEdpdGxhYklzc3VlW10+fSBUaGUgbm9ybWFsaXplZCBpc3N1ZXMgZm9yIHRoZSByZXF1ZXN0ZWQgcGFnZS5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIHRoZSBwcm9qZWN0IElEIGNhbm5vdCBiZSByZXNvbHZlZC5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHaXRMYWIgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRMYWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHRzXG4gICAgICogY29uc3QgaXNzdWVzID0gYXdhaXQgZ2l0bGFiLmxpc3RJc3N1ZXMoe1xuICAgICAqICAgcHJvamVjdElkOiBcImV4YW1wbGUtb3JnJTJGZXhhbXBsZS1yZXBvXCIsXG4gICAgICogICBzdGF0ZTogXCJvcGVuZWRcIixcbiAgICAgKiAgIGxhYmVsczogXCJidWcscHJpb3JpdHk6OmhpZ2hcIixcbiAgICAgKiAgIGxpbWl0OiA1MCxcbiAgICAgKiAgIHBhZ2U6IDEsXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgYXN5bmMgbGlzdElzc3VlcyhvcHRpb25zID0ge30pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KGAke3RoaXMucHJvamVjdFBhdGgob3B0aW9ucy5wcm9qZWN0SWQpfS9pc3N1ZXNgLCB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlOiBvcHRpb25zLnN0YXRlID8/IFwib3BlbmVkXCIsXG4gICAgICAgICAgICAgICAgICAgIHBlcl9wYWdlOiBvcHRpb25zLmxpbWl0ID8/IDMwLFxuICAgICAgICAgICAgICAgICAgICBwYWdlOiBvcHRpb25zLnBhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsczogb3B0aW9ucy5sYWJlbHMsXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaDogb3B0aW9ucy5zZWFyY2gsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEubWFwKChlbnRyeSkgPT4gdGhpcy5tYXBJc3N1ZShlbnRyeSwgb3B0aW9ucy5wcm9qZWN0SWQpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdExhYlwiLCBcImxpc3QgaXNzdWVzXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIEdpdExhYiBpc3N1ZVxuICAgICAqIEBzdW1tYXJ5IGBQT1NUYHMgdGhlIHRpdGxlLCBkZXNjcmlwdGlvbiwgbGFiZWxzLCBhc3NpZ25lZSBJRHMsIGFuZFxuICAgICAqIG1pbGVzdG9uZSBJRCB0byBgL3Byb2plY3RzLzxwcm9qZWN0SWQ+L2lzc3Vlc2AgYW5kIHJldHVybnMgdGhlIG5vcm1hbGl6ZWRcbiAgICAgKiBpc3N1ZSBkZXNjcmlwdG9yLiBSZXF1aXJlcyBhIG5vbi1lbXB0eSBgdGl0bGVgIGFuZCBhIHJlc29sdmFibGUgcHJvamVjdFxuICAgICAqIElELlxuICAgICAqIEBwYXJhbSB7R2l0bGFiSXNzdWVJbnB1dH0gaW5wdXQgLSBUaGUgaXNzdWUgY29udGVudCBhbmQgcHJvamVjdCB0YXJnZXRpbmcuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8R2l0bGFiSXNzdWU+fSBUaGUgbm9ybWFsaXplZCBjcmVhdGVkIGlzc3VlLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHRpdGxlIGlzIGVtcHR5IG9yIHRoZSBwcm9qZWN0IElEIGNhbm5vdCBiZSByZXNvbHZlZC5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHaXRMYWIgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHaXRMYWIgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cyAoZS5nLiBpbnZhbGlkIGxhYmVscyBvciBhc3NpZ25lZXMpLlxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZUlzc3VlKGlucHV0KSB7XG4gICAgICAgIGlmICghaW5wdXQudGl0bGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiR2l0TGFiIGlzc3VlIHJlcXVpcmVzIGEgdGl0bGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChgJHt0aGlzLnByb2plY3RQYXRoKGlucHV0LnByb2plY3RJZCl9L2lzc3Vlc2AsIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogaW5wdXQudGl0bGUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGlucHV0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGxhYmVsczogaW5wdXQubGFiZWxzLFxuICAgICAgICAgICAgICAgIGFzc2lnbmVlX2lkczogaW5wdXQuYXNzaWduZWVJZHMsXG4gICAgICAgICAgICAgICAgbWlsZXN0b25lX2lkOiBpbnB1dC5taWxlc3RvbmVJZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwSXNzdWUocmVzcG9uc2UuZGF0YSwgaW5wdXQucHJvamVjdElkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdExhYlwiLCBcImNyZWF0ZSBpc3N1ZVwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbW1lbnRzIG9uIGEgR2l0TGFiIGlzc3VlXG4gICAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgY29tbWVudCBib2R5IGFzIGEgbm90ZSB0b1xuICAgICAqIGAvcHJvamVjdHMvPHByb2plY3RJZD4vaXNzdWVzLzxpaWQ+L25vdGVzYCBhbmQgcmV0dXJucyB0aGUgbm90ZVxuICAgICAqIGlkZW50aWZpZXIgYW5kIGl0cyB3ZWIgVVJMLiBSZXF1aXJlcyBhIG5vbi1lbXB0eSBpc3N1ZSBJSUQgYW5kIGJvZHkuXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGlucHV0IC0gVGhlIGNvbW1lbnQgdGFyZ2V0IGFuZCBib2R5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbaW5wdXQucHJvamVjdElkXSAtIFRoZSBwcm9qZWN0IG92ZXJyaWRlOyBmYWxscyBiYWNrIHRvIHRoZSBjb25maWd1cmVkIGBwcm9qZWN0SWRgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbnB1dC5paWQgLSBUaGUgaXNzdWUncyBwcm9qZWN0LXNjb3BlZCBJSUQuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0LmJvZHkgLSBUaGUgY29tbWVudCBib2R5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHtpZDogbnVtYmVyLCB3ZWJVcmw/OiBzdHJpbmd9Pn0gVGhlIGNyZWF0ZWQgbm90ZSdzIElEIGFuZCB3ZWIgVVJMLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIGlzc3VlIElJRCBvciBib2R5IGlzIGVtcHR5LCBvciB0aGUgcHJvamVjdCBJRCBjYW5ub3QgYmUgcmVzb2x2ZWQuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgaXNzdWUgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIGNvbW1lbnRPbklzc3VlKGlucHV0KSB7XG4gICAgICAgIGlmICghaW5wdXQuaWlkIHx8ICFpbnB1dC5ib2R5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdpdExhYiBjb21tZW50IHJlcXVpcmVzIGFuIGlzc3VlIElJRCBhbmQgYm9keVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KGAke3RoaXMucHJvamVjdFBhdGgoaW5wdXQucHJvamVjdElkKX0vaXNzdWVzLyR7aW5wdXQuaWlkfS9ub3Rlc2AsIHsgYm9keTogaW5wdXQuYm9keSB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IGlkOiBOdW1iZXIocmVzcG9uc2UuZGF0YS5pZCA/PyAwKSwgd2ViVXJsOiByZXNwb25zZS5kYXRhLndlYl91cmwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdExhYlwiLCBcImNvbW1lbnQgb24gaXNzdWVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBHaXRMYWIgbWVyZ2UgcmVxdWVzdHMgd2l0aCBzdGF0ZSwgc2VhcmNoLCBhbmQgcGFnZSBmaWx0ZXJpbmdcbiAgICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9wcm9qZWN0cy88cHJvamVjdElkPi9tZXJnZV9yZXF1ZXN0c2Agd2l0aCBhIGBzdGF0ZWBcbiAgICAgKiBmaWx0ZXIgKGRlZmF1bHQgYFwib3BlbmVkXCJgOyBgXCJhbGxcImAgaXMgc2VudCBhcyBubyBzdGF0ZSBwYXJhbWV0ZXIpLFxuICAgICAqIGEgcGFnZSBzaXplIChgcGVyX3BhZ2VgLCBkZWZhdWx0IGAzMGApLCBhIHBhZ2UgbnVtYmVyLCBhbmQgYSBgc2VhcmNoYFxuICAgICAqIHRlcm0uIE1lcmdlIHJlcXVlc3RzIGFyZSByZXR1cm5lZCBhcyByYXcgR2l0TGFiIHBheWxvYWRzLlxuICAgICAqIEBwYXJhbSB7R2l0bGFiTGlzdE9wdGlvbnN9IFtvcHRpb25zXSAtIFByb2plY3Qgb3ZlcnJpZGUsIHN0YXRlLCBwYWdpbmcsIGFuZCBzZWFyY2ggb3B0aW9ucy5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duW10+fSBUaGUgcmF3IEdpdExhYiBtZXJnZS1yZXF1ZXN0IHBheWxvYWRzLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHByb2plY3QgSUQgY2Fubm90IGJlIHJlc29sdmVkLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHByb2plY3QgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdpdExhYiBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIGxpc3RNZXJnZVJlcXVlc3RzKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQoYCR7dGhpcy5wcm9qZWN0UGF0aChvcHRpb25zLnByb2plY3RJZCl9L21lcmdlX3JlcXVlc3RzYCwge1xuICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogb3B0aW9ucy5zdGF0ZSA9PT0gXCJhbGxcIiA/IHVuZGVmaW5lZCA6IG9wdGlvbnMuc3RhdGUgPz8gXCJvcGVuZWRcIixcbiAgICAgICAgICAgICAgICAgICAgcGVyX3BhZ2U6IG9wdGlvbnMubGltaXQgPz8gMzAsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoOiBvcHRpb25zLnNlYXJjaCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdpdExhYlwiLCBcImxpc3QgbWVyZ2UgcmVxdWVzdHNcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUjJsMGJHRmlVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlrWlhadmNITXZaMmwwYkdGaUwwZHBkR3hoWWxObGNuWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096czdPMGRCVjBjN1FVRkRTQ3hQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRGVFUXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTERSQ1FVRjFRanRCUVVOdVJDeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3d5UTBGQmMwTTdRVUZEY2tVc1QwRkJUeXhGUVVOTUxHTkJRV01zUlVGRlpDeFRRVUZUTEVkQlExWXNjVU5CUVRCQ08wRkJkMGd6UWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFd1FrYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1lVRkJZeXhUUVVGUkxHTkJRVzFETzBsQlFYUkZPenRSUVVORk96dFhRVVZITzFGQlEyZENMR2RDUVVGWExFZEJRVWNzVVVGQlVTeERRVUZETzBsQmExRTFReXhEUVVGRE8wbEJhRkZET3pzN08wOUJTVWM3U1VGRFR5eGpRVUZqTzFGQlEzUkNMRTlCUVU4c01rSkJRVEpDTEVOQlFVTTdTVUZEY2tNc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5QTEZkQlFWY3NRMEZCUXl4TlFVRXlRanRSUVVNdlF5eFBRVUZQTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzWlVGQlpTeEZRVUZGTEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBsQlF5OUVMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFR5eHhRa0ZCY1VJN1VVRkROMElzVFVGQlRTeEhRVUZITEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTTFReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0JETEVsQlFVa3NRMEZCUXl4TFFVRkxPMWxCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03VVVGRE4wSXNUMEZCVHp0WlFVTk1MRXRCUVVzN1dVRkRUQ3hUUVVGVExFVkJRVVVzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNN1dVRkRia01zVDBGQlR5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJReTlDTEU5QlFVOHNSVUZCUlN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF6dFRRVU5vUXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96czdPenM3T3p0UFFWRkhPMGxCUTA4c1YwRkJWeXhEUVVGRExGTkJRV3RDTzFGQlEzUkRMRTFCUVUwc1VVRkJVU3hIUVVGSExGTkJRVk1zU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNVVUZCVVR0WlFVRkZMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zT0VKQlFUaENMRU5CUVVNc1EwRkJRenRSUVVOMlJTeFBRVUZQTEdGQlFXRXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXp0SlFVTnlSQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenRQUVZOSE8wbEJRMDhzVVVGQlVTeERRVU5vUWl4SFFVRTBRaXhGUVVNMVFpeFRRVUZyUWp0UlFVVnNRaXhQUVVGUE8xbEJRMHdzVTBGQlV5eEZRVUZGTEZOQlFWTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk03V1VGRE4wTXNSMEZCUnl4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU42UXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRha01zUzBGQlN5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRE9VSXNUVUZCVFN4RlFVRkZMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdXVUZEYWtNc1YwRkJWeXhGUVVGRkxGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1dVRkRNVU1zVFVGQlRTeEZRVUZGTEZOQlFWTXNRMEZEWkN4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGMVF5eEZRVUZGTEZGQlFWRXNRMEZETDBRN1dVRkRSQ3hOUVVGTkxFVkJRVVVzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03WjBKQlEyeERMRU5CUVVNc1EwRkJSU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRelZFTEVOQlFVTXNRMEZCUXl4VFFVRlRPMWxCUTJJc1UwRkJVeXhGUVVGRkxGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1dVRkRka01zVTBGQlV5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VTBGRGVFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenRQUVZWSE8wbEJRMGdzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRnJRanRSUVVOcVF5eEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTndSU3hQUVVGUExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEZGtJc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzWVVGQllTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3T3pzN096czdPenM3T3pzN096czdPenRQUVhGQ1J6dEpRVU5JTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1ZVRkJOa0lzUlVGQlJUdFJRVU01UXl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVOd1F5eEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVWQlF5OURPMmRDUVVORkxFMUJRVTBzUlVGQlJUdHZRa0ZEVGl4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzU1VGQlNTeFJRVUZSTzI5Q1FVTm9ReXhSUVVGUkxFVkJRVVVzVDBGQlR5eERRVUZETEV0QlFVc3NTVUZCU1N4RlFVRkZPMjlDUVVNM1FpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrN2IwSkJRMnhDTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUVHR2UWtGRGRFSXNUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJReXhOUVVGTk8ybENRVU4yUWp0aFFVTkdMRU5CUTBZc1EwRkJRenRaUVVOR0xFOUJRVThzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5xUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUTNoRExFTkJRVU03VVVGRFNpeERRVUZETzFGQlFVTXNUMEZCVHl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVObUxFMUJRVTBzVTBGQlV5eERRVUZETEZGQlFWRXNSVUZCUlN4aFFVRmhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGJFUXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3TzA5QldVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRWFZDTzFGQlEzWkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEYWtJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhEUVVGRE8xRkJRek5FTEVOQlFVTTdVVUZEUkN4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVOeVF5eEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVWQlF6ZERPMmRDUVVORkxFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNTMEZCU3p0blFrRkRiRUlzVjBGQlZ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4WFFVRlhPMmRDUVVNNVFpeE5RVUZOTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTFCUVUwN1owSkJRM0JDTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1YwRkJWenRuUWtGREwwSXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhYUVVGWE8yRkJRMmhETEVOQlEwWXNRMEZCUXp0WlFVTkdMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU4yUkN4RFFVRkRPMUZCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5tTEUxQlFVMHNVMEZCVXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hqUVVGakxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYmtRc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3VDBGalJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkpjRUk3VVVGRFF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVTTVRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVU55UWl3clEwRkJLME1zUTBGRGFFUXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVWx5UXl4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4WFFVRlhMRXRCUVVzc1EwRkJReXhIUVVGSExGRkJRVkVzUlVGRGFFVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVU55UWl4RFFVRkRPMWxCUTBZc1QwRkJUeXhGUVVGRkxFVkJRVVVzUlVGQlJTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdVVUZET1VVc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGRrUXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3TzA5QldVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlEzSkNMRlZCUVRaQ0xFVkJRVVU3VVVGRkwwSXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkRjRU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zYVVKQlFXbENMRVZCUTNaRU8yZENRVU5GTEUxQlFVMHNSVUZCUlR0dlFrRkRUaXhMUVVGTExFVkJRVVVzVDBGQlR5eERRVUZETEV0QlFVc3NTMEZCU3l4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1NVRkJTU3hSUVVGUk8yOUNRVU4wUlN4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTzI5Q1FVTTNRaXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVazdiMEpCUTJ4Q0xFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNUVUZCVFR0cFFrRkRka0k3WVVGRFJpeERRVU5HTEVOQlFVTTdXVUZEUml4UFFVRlBMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGRGRrSXNRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEZOQlFWTXNRMEZCUXl4UlFVRlJMRVZCUVVVc2NVSkJRWEZDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRNVVFzUTBGQlF6dEpRVU5JTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZaR1YyYjNCekwyZHBkR3hoWWk5elpYSjJhV05sWEc0Z0tpQkFjM1Z0YldGeWVTQkhhWFJNWVdJZ1VrVlRWQ0JCVUVrZ2FXNTBaV2R5WVhScGIyNGdjMlZ5ZG1salpTQm1iM0lnY0hKdmFtVmpkSE1zSUdsemMzVmxjeXdnWVc1a0lHMWxjbWRsSUhKbGNYVmxjM1J6TGx4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVWNGNHOXpaWE1nWVNCbWIyTjFjMlZrSUhOMVluTmxkQ0J2WmlCMGFHVWdSMmwwVEdGaUlGSkZVMVFnZGpRZ1FWQkpJQ2hnTDNCeWIycGxZM1J6THlwZ09seHVJQ29nY0hKdmFtVmpkQ0JzYjI5cmRYQXNJR2x6YzNWbElHeHBjM1JwYm1jdlkzSmxZWFJwYjI0dlkyOXRiV1Z1ZEdsdVp5d2dZVzVrSUcxbGNtZGxMWEpsY1hWbGMzUmNiaUFxSUd4cGMzUnBibWNwSUdGeklHRnVJSFZ1WkdWamIzSmhkR1ZrSUdOc2FXVnVkQzFpWVhObFpDQnpaWEoyYVdObElHSjFhV3gwSUc5dVhHNGdLaUI3UUd4cGJtc2dTSFIwY0VGd2FWTmxjblpwWTJWOUxpQkRiMjVtYVdkMWNtRjBhVzl1SUdOdmJXVnpJR1p5YjIwZ1lXNGdaWGh3YkdsamFYUmNiaUFxSUdCSGFYUnNZV0pUWlhKMmFXTmxRMjl1Wm1sbllDQnZjaUIwYUdVZ1lHUmxkbTl3Y3k1bmFYUnNZV0pnSUdWdWRtbHliMjV0Wlc1MElITnNhV05sT3lCd2NtOXFaV04wWEc0Z0tpQjBZWEpuWlhSeklHUmxabUYxYkhRZ2RHOGdkR2hsSUdOdmJtWnBaM1Z5WldRZ1lIQnliMnBsWTNSSlpHQWdZVzVrSUdOaGJpQmlaU0J2ZG1WeWNtbGtaR1Z1SUhCbGNseHVJQ29nWTJGc2JDNGdVbUYzSUVkcGRFeGhZaUJ5WlhOd2IyNXpaWE1nWVhKbElHNXZjbTFoYkdsNlpXUWdkRzhnWTJGdFpXeERZWE5sSUdsemMzVmxJR1JsYzJOeWFYQjBiM0p6TEZ4dUlDb2dZVzVrSUdaaGFXeDFjbVZ6SUdGeVpTQnRZWEJ3WldRZ2RHOGdaR1ZqWVdZZ1pYSnliM0p6SUhacFlTQjdRR3hwYm1zZ2FIUjBjRVZ5Y205eWZTNWNiaUFxTDF4dWFXMXdiM0owSUhzZ1NXNTBaWEp1WVd4RmNuSnZjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSHNnUkdWMmIzQnpSVzUyYVhKdmJtMWxiblFnZlNCbWNtOXRJRndpTGk0dlpXNTJhWEp2Ym0xbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUdWdWRrNTFiV0psY2l3Z1pXNTJVM1J5YVc1bklIMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlsYm5acGNtOXViV1Z1ZEZaaGJIVmxYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQklkSFJ3UVhCcFUyVnlkbWxqWlN4Y2JpQWdkSGx3WlNCSWRIUndRWEJwVTJWeWRtbGpaVU52Ym1acFp5eGNiaUFnYUhSMGNFVnljbTl5TEZ4dWZTQm1jbTl0SUZ3aUxpNHZMaTR2YzJoaGNtVmtMMmgwZEhCY0lqdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyOXVabWxuZFhKaGRHbHZiaUJtYjNJZ2RHaGxJRWRwZEV4aFlpQnpaWEoyYVdObFhHNGdLaUJBYzNWdGJXRnllU0JGZUhSbGJtUnpJSHRBYkdsdWF5QklkSFJ3UVhCcFUyVnlkbWxqWlVOdmJtWnBaMzBnZDJsMGFDQjBhR1VnUjJsMFRHRmlJSEJsY25OdmJtRnNYRzRnS2lCaFkyTmxjM01nZEc5clpXNGdLSE5sYm5RZ1lYTWdkR2hsSUdCUVVrbFdRVlJGTFZSUFMwVk9ZQ0JvWldGa1pYSXBJR0Z1WkNCMGFHVWdaR1ZtWVhWc2RGeHVJQ29nWUhCeWIycGxZM1JKWkdBZ2RYTmxaQ0IzYUdWdUlHRWdZMkZzYkNCa2IyVnpJRzV2ZENCdmRtVnljbWxrWlNCcGRDNGdWMmhsYmlCdmJXbDBkR1ZrTENCMGFHVmNiaUFxSUdCa1pYWnZjSE11WjJsMGJHRmlZQ0JsYm5acGNtOXViV1Z1ZENCemJHbGpaU0J6ZFhCd2JHbGxjeUIwYUdVZ2RHOXJaVzRnS0dGdVpDQnZjSFJwYjI1aGJGeHVJQ29nWUhCeWIycGxZM1JKWkdBc0lHQmlZWE5sVlhKc1lDd2dZSFJwYldWdmRYUmdLUzVjYmlBcUlFQmpZWFJsWjI5eWVTQkVaWFpQY0hOY2JpQXFJRUJ0WlcxaVpYSlBaaUJ0YjJSMWJHVTZhVzUwWldkeVlYUnBiMjV6TDJSbGRtOXdjeTluYVhSc1lXSXZjMlZ5ZG1salpWeHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkcGRHeGhZbE5sY25acFkyVkRiMjVtYVdjZ1pYaDBaVzVrY3lCSWRIUndRWEJwVTJWeWRtbGpaVU52Ym1acFp5QjdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSMmwwVEdGaUlIQmxjbk52Ym1Gc0lHRmpZMlZ6Y3lCMGIydGxibHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlRaVzUwSUdGeklIUm9aU0JnVUZKSlZrRlVSUzFVVDB0RlRtQWdhR1ZoWkdWeUlIZHBkR2dnWlhabGNua2dRVkJKSUdOaGJHd3VYRzRnSUNBcUwxeHVJQ0IwYjJ0bGJqODZJSE4wY21sdVp6dGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkVaV1poZFd4MElIQnliMnBsWTNRZ1NVUWdkWE5sWkNCM2FHVnVJR0VnWTJGc2JDQmtiMlZ6SUc1dmRDQnZkbVZ5Y21sa1pTQnBkRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQkJZMk5sY0hSeklIUm9aU0JWVWt3dFpXNWpiMlJsWkNCd2NtOXFaV04wSUhCaGRHZ2diM0lnZEdobElHNTFiV1Z5YVdNZ2NISnZhbVZqZENCSlJDNWNiaUFnSUNvdlhHNGdJSEJ5YjJwbFkzUkpaRDg2SUhOMGNtbHVaenRjYm4xY2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnU1c1d2RYUWdabTl5SUdOeVpXRjBhVzVuSUdFZ1IybDBUR0ZpSUdsemMzVmxYRzRnS2lCQWMzVnRiV0Z5ZVNCRFlYSnlhV1Z6SUhSb1pTQnZjSFJwYjI1aGJDQmdjSEp2YW1WamRFbGtZQ0J2ZG1WeWNtbGtaU3dnZEdobElISmxjWFZwY21Wa0lHbHpjM1ZsWEc0Z0tpQmdkR2wwYkdWZ0xDQmhibVFnZEdobElHOXdkR2x2Ym1Gc0lHUmxjMk55YVhCMGFXOXVMQ0JqYjIxdFlTMXpaWEJoY21GMFpXUWdZR3hoWW1Wc2MyQXNYRzRnS2lCZ1lYTnphV2R1WldWSlpITmdMQ0JoYm1RZ1lHMXBiR1Z6ZEc5dVpVbGtZQzVjYmlBcUlFQmpZWFJsWjI5eWVTQkVaWFpQY0hOY2JpQXFJRUJ0WlcxaVpYSlBaaUJ0YjJSMWJHVTZhVzUwWldkeVlYUnBiMjV6TDJSbGRtOXdjeTluYVhSc1lXSXZjMlZ5ZG1salpWeHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkcGRHeGhZa2x6YzNWbFNXNXdkWFFnZTF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZCeWIycGxZM1FnU1VRZ1ptOXlJSFJvYVhNZ1kyRnNiRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQkdZV3hzY3lCaVlXTnJJSFJ2SUhSb1pTQmpiMjVtYVdkMWNtVmtJR0JIYVhSc1lXSlRaWEoyYVdObFEyOXVabWxuTG5CeWIycGxZM1JKWkdBdVhHNGdJQ0FxTDF4dUlDQndjbTlxWldOMFNXUS9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdTWE56ZFdVZ2RHbDBiR1VnS0hKbGNYVnBjbVZrSUdKNUlIUm9aU0JIYVhSTVlXSWdRVkJKS1Z4dUlDQWdLaTljYmlBZ2RHbDBiR1U2SUhOMGNtbHVaenRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJKYzNOMVpTQmtaWE5qY21sd2RHbHZiaUJwYmlCdFlYSnJaRzkzYmx4dUlDQWdLaTljYmlBZ1pHVnpZM0pwY0hScGIyNC9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRMjl0YldFdGMyVndZWEpoZEdWa0lHeGhZbVZzSUc1aGJXVnpJSFJ2SUdGd2NHeDVYRzRnSUNBcUwxeHVJQ0JzWVdKbGJITS9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSMmwwVEdGaUlIVnpaWElnU1VSeklIUnZJR0Z6YzJsbmJseHVJQ0FnS2k5Y2JpQWdZWE56YVdkdVpXVkpaSE0vT2lCdWRXMWlaWEpiWFR0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTmFXeGxjM1J2Ym1VZ1NVUWdkRzhnWVhOemIyTnBZWFJsWEc0Z0lDQXFMMXh1SUNCdGFXeGxjM1J2Ym1WSlpEODZJRzUxYldKbGNqdGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdUbTl5YldGc2FYcGxaQ0JIYVhSTVlXSWdhWE56ZFdVZ1pHVnpZM0pwY0hSdmNseHVJQ29nUUhOMWJXMWhjbmtnVFdGd2N5QjBhR1VnY21GM0lFZHBkRXhoWWlCcGMzTjFaU0J3WVhsc2IyRmtJRzl1ZEc4Z1kyRnRaV3hEWVhObElHWnBaV3hrY3pvZ2FXUmxiblJwZEhsY2JpQXFJQ2hnYVdsa1lDd2dZSFJwZEd4bFlDd2dZSE4wWVhSbFlDa3NJR0IzWldKVmNteGdMQ0JrWlhOamNtbHdkR2x2YmlCaGJtUWdZWFYwYUc5eUxDQmdiR0ZpWld4ellDeGNiaUFxSUdGdVpDQmdZM0psWVhSbFpFRjBZQzlnZFhCa1lYUmxaRUYwWUNCMGFXMWxjM1JoYlhCekxseHVJQ29nUUdOaGRHVm5iM0o1SUVSbGRrOXdjMXh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZaR1YyYjNCekwyZHBkR3hoWWk5elpYSjJhV05sWEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdSMmwwYkdGaVNYTnpkV1VnZTF4dUlDQndjbTlxWldOMFNXUS9PaUJ6ZEhKcGJtYzdYRzRnSUdscFpEb2diblZ0WW1WeU8xeHVJQ0IwYVhSc1pUb2djM1J5YVc1bk8xeHVJQ0J6ZEdGMFpUODZJSE4wY21sdVp6dGNiaUFnZDJWaVZYSnNQem9nYzNSeWFXNW5PMXh1SUNCa1pYTmpjbWx3ZEdsdmJqODZJSE4wY21sdVp6dGNiaUFnWVhWMGFHOXlQem9nYzNSeWFXNW5PMXh1SUNCc1lXSmxiSE0vT2lCemRISnBibWRiWFR0Y2JpQWdZM0psWVhSbFpFRjBQem9nYzNSeWFXNW5PMXh1SUNCMWNHUmhkR1ZrUVhRL09pQnpkSEpwYm1jN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFOXdkR2x2Ym5NZ1ptOXlJR3hwYzNScGJtY2dSMmwwVEdGaUlHbHpjM1ZsY3lCdmNpQnRaWEpuWlNCeVpYRjFaWE4wYzF4dUlDb2dRSE4xYlcxaGNua2dRMkZ5Y21sbGN5QjBhR1VnYjNCMGFXOXVZV3dnWUhCeWIycGxZM1JKWkdBZ2IzWmxjbkpwWkdVc0lIUm9aU0JnYzNSaGRHVmdJR1pwYkhSbGNpd2dZVnh1SUNvZ2NHRm5aU0J6YVhwbElDaGdiR2x0YVhSZ0tTQmhibVFnWUhCaFoyVmdJRzUxYldKbGNpQm1iM0lnY0dGbmFXNW5MQ0JoSUdOdmJXMWhMWE5sY0dGeVlYUmxaRnh1SUNvZ1lHeGhZbVZzYzJBZ1ptbHNkR1Z5TENCaGJtUWdZU0JnYzJWaGNtTm9ZQ0IwWlhKdExpQk5aWEpuWlMxeVpYRjFaWE4wSUd4cGMzUnBibWR6SUhCaGMzTWdkR2hsSUhOMFlYUmxYRzRnS2lCMGFISnZkV2RvSUhWdVkyaGhibWRsWkNCbGVHTmxjSFFnWm05eUlHQmNJbUZzYkZ3aVlDd2dkMmhwWTJnZ1IybDBUR0ZpSUcxdlpHVnNjeUJpZVNCdmJXbDBkR2x1WnlCMGFHVmNiaUFxSUhCaGNtRnRaWFJsY2k1Y2JpQXFJRUJqWVhSbFoyOXllU0JFWlhaUGNITmNiaUFxSUVCdFpXMWlaWEpQWmlCdGIyUjFiR1U2YVc1MFpXZHlZWFJwYjI1ekwyUmxkbTl3Y3k5bmFYUnNZV0l2YzJWeWRtbGpaVnh1SUNvdlhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFZHBkR3hoWWt4cGMzUlBjSFJwYjI1eklIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlFjbTlxWldOMElFbEVJR1p2Y2lCMGFHbHpJR05oYkd4Y2JpQWdJQ29nUUhOMWJXMWhjbmtnUm1Gc2JITWdZbUZqYXlCMGJ5QjBhR1VnWTI5dVptbG5kWEpsWkNCZ1IybDBiR0ZpVTJWeWRtbGpaVU52Ym1acFp5NXdjbTlxWldOMFNXUmdMbHh1SUNBZ0tpOWNiaUFnY0hKdmFtVmpkRWxrUHpvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVsemMzVmxMMjFsY21kbExYSmxjWFZsYzNRZ2MzUmhkR1VnWm1sc2RHVnlYRzRnSUNBcUwxeHVJQ0J6ZEdGMFpUODZJRndpYjNCbGJtVmtYQ0lnZkNCY0ltTnNiM05sWkZ3aUlId2dYQ0poYkd4Y0lqdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlFZV2RsSUhOcGVtVWdLRWRwZEV4aFlpZHpJR0J3WlhKZmNHRm5aV0FwT3lCa1pXWmhkV3gwY3lCMGJ5QmdNekJnWEc0Z0lDQXFMMXh1SUNCc2FXMXBkRDg2SUc1MWJXSmxjanRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJRWVdkbElHNTFiV0psY2lCMGJ5QnlaWEYxWlhOMFhHNGdJQ0FxTDF4dUlDQndZV2RsUHpvZ2JuVnRZbVZ5TzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJXMWhMWE5sY0dGeVlYUmxaQ0JzWVdKbGJDQnVZVzFsY3lCMGJ5Qm1hV3gwWlhJZ2FYTnpkV1Z6SUdKNVhHNGdJQ0FxTDF4dUlDQnNZV0psYkhNL09pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1UyVmhjbU5vSUhSbGNtMGdiV0YwWTJobFpDQmhaMkZwYm5OMElHbHpjM1ZsTDIxbGNtZGxMWEpsY1hWbGMzUWdkR2wwYkdWeklHRnVaQ0JrWlhOamNtbHdkR2x2Ym5OY2JpQWdJQ292WEc0Z0lITmxZWEpqYUQ4NklITjBjbWx1Wnp0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1IybDBUR0ZpSUZKRlUxUWdRVkJKSUdsdWRHVm5jbUYwYVc5dUlITmxjblpwWTJWY2JpQXFJRUJ6ZFcxdFlYSjVJRUZ1SUhWdVpHVmpiM0poZEdWa0lFaFVWRkFnYzJWeWRtbGpaU0JtYjNJZ2JHOXZhMmx1WnlCMWNDQndjbTlxWldOMGN5eGNiaUFxSUd4cGMzUnBibWNnYVhOemRXVnpMQ0JqY21WaGRHbHVaeUJwYzNOMVpYTXNJR052YlcxbGJuUnBibWNnYjI0Z2FYTnpkV1Z6SUNodWIzUmxjeWtzSUdGdVpDQnNhWE4wYVc1blhHNGdLaUJ0WlhKblpTQnlaWEYxWlhOMGN5NGdVSEp2YW1WamRDQjBZWEpuWlhSeklISmxjMjlzZG1VZ2NHVnlJR05oYkd3Z1puSnZiU0IwYUdVZ2FXNXdkWFFuYzF4dUlDb2dZSEJ5YjJwbFkzUkpaR0FzSUdaaGJHeHBibWNnWW1GamF5QjBieUIwYUdVZ1kyOXVabWxuZFhKbFpDQjJZV3gxWlN3Z1lXNWtJSFJvY205M1hHNGdLaUJnU1c1MFpYSnVZV3hGY25KdmNtQWdkMmhsYmlCMWJuSmxjMjlzZG1Wa0xpQlVhR1VnZEc5clpXNGdhWE1nYzJWdWRDQmhjeUIwYUdVZ1lGQlNTVlpCVkVVdFZFOUxSVTVnWEc0Z0tpQm9aV0ZrWlhJc0lHRnVaQ0IwY21GdWMzQnZjblFnWm1GcGJIVnlaWE1nWVhKbElHMWhjSEJsWkNCMGJ5QmtaV05oWmlCbGNuSnZjbk1nZG1saFhHNGdLaUI3UUd4cGJtc2dhSFIwY0VWeWNtOXlmUzVjYmlBcUlFQmpiR0Z6Y3lCSGFYUnNZV0pUWlhKMmFXTmxYRzRnS2lCQVkyRjBaV2R2Y25rZ1JHVjJUM0J6WEc0Z0tpQkFaWGhoYlhCc1pWeHVJQ29nWUdCZ2RITmNiaUFxSUdsdGNHOXlkQ0I3SUVkcGRHeGhZbE5sY25acFkyVWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMmx1ZEdWbmNtRjBhVzl1Y3k5a1pYWnZjSE12WjJsMGJHRmlYQ0k3WEc0Z0tseHVJQ29nWTI5dWMzUWdaMmwwYkdGaUlEMGdibVYzSUVkcGRHeGhZbE5sY25acFkyVW9LVHRjYmlBcUlHRjNZV2wwSUdkcGRHeGhZaTVwYm1sMGFXRnNhWHBsS0h0Y2JpQXFJQ0FnZEc5clpXNDZJSEJ5YjJObGMzTXVaVzUyTGtkU1FWQklYME5TUlVSRlRsUkpRVXhmUjBsVVRFRkNYMVJQUzBWT0xGeHVJQ29nSUNCd2NtOXFaV04wU1dRNklGd2laWGhoYlhCc1pTMXZjbWNsTWtabGVHRnRjR3hsTFhKbGNHOWNJaXhjYmlBcUlIMHBPMXh1SUNvZ1kyOXVjM1FnYVhOemRXVWdQU0JoZDJGcGRDQm5hWFJzWVdJdVkzSmxZWFJsU1hOemRXVW9lMXh1SUNvZ0lDQjBhWFJzWlRvZ1hDSkNkV2NnY21Wd2IzSjBYQ0lzWEc0Z0tpQWdJR1JsYzJOeWFYQjBhVzl1T2lCY0lsTnZiV1YwYUdsdVp5QnBjeUJpY205clpXNWNJaXhjYmlBcUlIMHBPMXh1SUNvZ1lHQmdYRzRnS2lCQWJXVnRZbVZ5VDJZZ2JXOWtkV3hsT21sdWRHVm5jbUYwYVc5dWN5OWtaWFp2Y0hNdloybDBiR0ZpTDNObGNuWnBZMlZjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVkcGRHeGhZbE5sY25acFkyVWdaWGgwWlc1a2N5QklkSFJ3UVhCcFUyVnlkbWxqWlR4SGFYUnNZV0pUWlhKMmFXTmxRMjl1Wm1sblBpQjdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdWR2hsSUhCeWIzWnBaR1Z5SUc1aGJXVWdkWE5sWkNCcGJpQmxjbkp2Y2lCdFpYTnpZV2RsYzF4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lISmxZV1J2Ym14NUlITmxjblpwWTJWT1lXMWxJRDBnWENKSGFYUk1ZV0pjSWp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGUm9aU0JIYVhSTVlXSWdVa1ZUVkNCMk5DQmlZWE5sSUZWU1RGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVmMyVmtJSGRvWlc0Z2RHaGxJSEpsYzI5c2RtVmtJR052Ym1acFp5QmpZWEp5YVdWeklHNXZJR0JpWVhObFZYSnNZQzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlM04wY21sdVozMGdZRndpYUhSMGNITTZMeTluYVhSc1lXSXVZMjl0TDJGd2FTOTJORndpWUM1Y2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQmtaV1poZFd4MFFtRnpaVlZ5YkNncE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUhKbGRIVnliaUJjSW1oMGRIQnpPaTh2WjJsMGJHRmlMbU52YlM5aGNHa3ZkalJjSWp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUW5WcGJHUnpJSFJvWlNCSGFYUk1ZV0lnWUZCU1NWWkJWRVV0VkU5TFJVNWdJR0YxZEdodmNtbDZZWFJwYjI0Z2FHVmhaR1Z5YzF4dUlDQWdLaUJBYzNWdGJXRnllU0JTWlhSMWNtNXpJSFJvWlNCZ1VGSkpWa0ZVUlMxVVQwdEZUam9nUEhSdmEyVnVQbUFnYUdWaFpHVnlJSGRvWlc0Z2RHaGxJR052Ym1acFoxeHVJQ0FnS2lCallYSnlhV1Z6SUdFZ2RHOXJaVzRzSUdGdVpDQnVieUJvWldGa1pYSnpJRzkwYUdWeWQybHpaUzVjYmlBZ0lDb2dRSEJoY21GdElIdEhhWFJzWVdKVFpYSjJhV05sUTI5dVptbG5mU0JqYjI1bWFXY2dMU0JVYUdVZ2NtVnpiMngyWldRZ2MyVnlkbWxqWlNCamIyNW1hV2QxY21GMGFXOXVMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVbVZqYjNKa1BITjBjbWx1Wnl3Z2MzUnlhVzVuUG4wZ1ZHaGxJR0YxZEdodmNtbDZZWFJwYjI0Z2FHVmhaR1Z5Y3lBb1pXMXdkSGtnZDJsMGFHOTFkQ0JoSUhSdmEyVnVLUzVjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCaGRYUm9TR1ZoWkdWeWN5aGpiMjVtYVdjNklFZHBkR3hoWWxObGNuWnBZMlZEYjI1bWFXY3BPaUJTWldOdmNtUThjM1J5YVc1bkxDQnpkSEpwYm1jK0lIdGNiaUFnSUNCeVpYUjFjbTRnWTI5dVptbG5MblJ2YTJWdUlEOGdleUJjSWxCU1NWWkJWRVV0VkU5TFJVNWNJam9nWTI5dVptbG5MblJ2YTJWdUlIMGdPaUI3ZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVW1WaFpITWdkR2hsSUVkcGRFeGhZaUJqY21Wa1pXNTBhV0ZzY3lCaGJtUWdaR1ZtWVhWc2RITWdabkp2YlNCMGFHVWdaVzUyYVhKdmJtMWxiblJjYmlBZ0lDb2dRSE4xYlcxaGNua2dVbVZoWkhNZ2RHaGxJR0JrWlhadmNITXVaMmwwYkdGaVlDQmxiblpwY205dWJXVnVkQ0J6YkdsalpTQmhibVFnY21WMGRYSnVjeUJoWEc0Z0lDQXFJSEJoY25ScFlXd2dZMjl1Wm1sbklIZG9aVzRnWVNCMGIydGxiaUJwY3lCamIyNW1hV2QxY21Wa0xDQmdkVzVrWldacGJtVmtZQ0J2ZEdobGNuZHBjMlV1SUZaaGJIVmxjMXh1SUNBZ0tpQndZWE56SUhSb2NtOTFaMmdnWUdWdWRsTjBjbWx1WjJBdllHVnVkazUxYldKbGNtQWdkRzhnY21WcVpXTjBJSFZ1YzJWMExXeGxZV1lnY0hKdmVHbGxjeTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJoY25ScFlXdzhSMmwwYkdGaVUyVnlkbWxqWlVOdmJtWnBaejRnZkNCMWJtUmxabWx1WldSOUlFRWdjR0Z5ZEdsaGJDQmpiMjVtYVdjc0lHOXlJR0IxYm1SbFptbHVaV1JnSUhkb1pXNGdibThnUjJsMFRHRmlJSFJ2YTJWdUlHbHpJR052Ym1acFozVnlaV1F1WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ1kyOXVabWxuUm5KdmJVVnVkbWx5YjI1dFpXNTBLQ2s2SUZCaGNuUnBZV3c4UjJsMGJHRmlVMlZ5ZG1salpVTnZibVpwWno0Z2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lHTnZibk4wSUdWdWRpQTlJRVJsZG05d2MwVnVkbWx5YjI1dFpXNTBMbVJsZG05d2N5NW5hWFJzWVdJN1hHNGdJQ0FnWTI5dWMzUWdkRzlyWlc0Z1BTQmxiblpUZEhKcGJtY29aVzUyUHk1MGIydGxiaWs3WEc0Z0lDQWdhV1lnS0NGMGIydGxiaWtnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2RHOXJaVzRzWEc0Z0lDQWdJQ0J3Y205cVpXTjBTV1E2SUdWdWRsTjBjbWx1WnlobGJuWXVjSEp2YW1WamRFbGtLU3hjYmlBZ0lDQWdJR0poYzJWVmNtdzZJR1Z1ZGxOMGNtbHVaeWhsYm5ZdVltRnpaVlZ5YkNrc1hHNGdJQ0FnSUNCMGFXMWxiM1YwT2lCbGJuWk9kVzFpWlhJb1pXNTJMblJwYldWdmRYUXBMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxjMjlzZG1WeklIUm9aU0JWVWt3dFpXNWpiMlJsWkNCd2NtOXFaV04wSUhCaGRHZ2dabTl5SUdFZ1kyRnNiRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQkNkV2xzWkhNZ1lDOXdjbTlxWldOMGN5ODhjSEp2YW1WamRFbGtQbUFnWm5KdmJTQjBhR1VnWjJsMlpXNGdjSEp2YW1WamRDQkpSQ3hjYmlBZ0lDb2dabUZzYkdsdVp5QmlZV05ySUhSdklIUm9aU0JqYjI1bWFXZDFjbVZrSUhaaGJIVmxMQ0JoYm1RZ2RHaHliM2R6SUhkb1pXNGdibVZwZEdobGNpQnBjMXh1SUNBZ0tpQmhkbUZwYkdGaWJHVXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmNISnZhbVZqZEVsa1hTQXRJRlJvWlNCd1pYSXRZMkZzYkNCd2NtOXFaV04wSUc5MlpYSnlhV1JsSUNoVlVrd3RaVzVqYjJSbFpDQndZWFJvSUc5eUlHNTFiV1Z5YVdNZ1NVUXBMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdjM1J5YVc1bmZTQlVhR1VnVlZKTUxXVnVZMjlrWldRZ2NISnZhbVZqZENCQlVFa2djR0YwYUM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCdVpXbDBhR1Z5SUhSb1pTQnBibkIxZENCdWIzSWdkR2hsSUdOdmJtWnBaeUI1YVdWc1pITWdZU0J3Y205cVpXTjBJRWxFTGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lIQnliMnBsWTNSUVlYUm9LSEJ5YjJwbFkzUkpaRDg2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpiMngyWldRZ1BTQndjbTlxWldOMFNXUWdQejhnZEdocGN5NWpiMjVtYVdjdWNISnZhbVZqZEVsa08xeHVJQ0FnSUdsbUlDZ2hjbVZ6YjJ4MlpXUXBJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGd2lSMmwwVEdGaUlISmxjWFZwY21WeklHRWdjSEp2YW1WamRDQkpSRndpS1R0Y2JpQWdJQ0J5WlhSMWNtNGdZQzl3Y205cVpXTjBjeThrZTJWdVkyOWtaVlZTU1VOdmJYQnZibVZ1ZENoeVpYTnZiSFpsWkNsOVlEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1RtOXliV0ZzYVhwbGN5QmhJSEpoZHlCSGFYUk1ZV0lnYVhOemRXVWdjR0Y1Ykc5aFpGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCTllYQnpJSFJvWlNCeVlYY2dhWE56ZFdVZ1NsTlBUaUJ2Ym5SdklHRWdlMEJzYVc1cklFZHBkR3hoWWtsemMzVmxmVG9nZEdobElHRjFkR2h2Y2x4dUlDQWdLaUIwYnlCcGRITWdZSFZ6WlhKdVlXMWxZQ3dnZEdobElHeGhZbVZzSUdGeWNtRjVJSFJ2SUhOMGNtbHVaM01zSUdGdVpDQnVkVzFsY21sakwzTjBjbWx1WnlCbWFXVnNaSE5jYmlBZ0lDb2dZWEpsSUdOdlpYSmpaV1F1SUZSb1pTQndjbTlxWldOMElFbEVJR2x6SUdWamFHOWxaQ0JtY205dElIUm9aU0JwYm5CMWRDd2dabUZzYkdsdVp5QmlZV05ySUhSdklIUm9aVnh1SUNBZ0tpQmpiMjVtYVdkMWNtVmtJSFpoYkhWbExseHVJQ0FnS2lCQWNHRnlZVzBnZTFKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtmU0J5WVhjZ0xTQlVhR1VnY21GM0lFZHBkRXhoWWlCcGMzTjFaU0J3WVhsc2IyRmtMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czQnliMnBsWTNSSlpGMGdMU0JVYUdVZ2NISnZhbVZqZENCSlJDQjBhR1VnYVhOemRXVWdZbVZzYjI1bmN5QjBieTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMGRwZEd4aFlrbHpjM1ZsZlNCVWFHVWdibTl5YldGc2FYcGxaQ0JwYzNOMVpTQmtaWE5qY21sd2RHOXlMbHh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUcxaGNFbHpjM1ZsS0Z4dUlDQWdJSEpoZHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajRzWEc0Z0lDQWdjSEp2YW1WamRFbGtQem9nYzNSeWFXNW5YRzRnSUNrNklFZHBkR3hoWWtsemMzVmxJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2NISnZhbVZqZEVsa09pQndjbTlxWldOMFNXUWdQejhnZEdocGN5NWpiMjVtYVdjdWNISnZhbVZqZEVsa0xGeHVJQ0FnSUNBZ2FXbGtPaUJPZFcxaVpYSW9jbUYzVzF3aWFXbGtYQ0pkSUQ4L0lISmhkMXRjSW1sa1hDSmRJRDgvSURBcExGeHVJQ0FnSUNBZ2RHbDBiR1U2SUZOMGNtbHVaeWh5WVhkYlhDSjBhWFJzWlZ3aVhTQS9QeUJjSWx3aUtTeGNiaUFnSUNBZ0lITjBZWFJsT2lCbGJuWlRkSEpwYm1jb2NtRjNXMXdpYzNSaGRHVmNJbDBwTEZ4dUlDQWdJQ0FnZDJWaVZYSnNPaUJsYm5aVGRISnBibWNvY21GM1cxd2lkMlZpWDNWeWJGd2lYU2tzWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ1pXNTJVM1J5YVc1bktISmhkMXRjSW1SbGMyTnlhWEIwYVc5dVhDSmRLU3hjYmlBZ0lDQWdJR0YxZEdodmNqb2daVzUyVTNSeWFXNW5LRnh1SUNBZ0lDQWdJQ0FvY21GM1cxd2lZWFYwYUc5eVhDSmRJR0Z6SUhzZ2RYTmxjbTVoYldVL09pQnpkSEpwYm1jZ2ZTQjhJSFZ1WkdWbWFXNWxaQ2svTG5WelpYSnVZVzFsWEc0Z0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnYkdGaVpXeHpPaUJCY25KaGVTNXBjMEZ5Y21GNUtISmhkMXRjSW14aFltVnNjMXdpWFNsY2JpQWdJQ0FnSUNBZ1B5QW9jbUYzVzF3aWJHRmlaV3h6WENKZElHRnpJSFZ1YTI1dmQyNWJYU2t1YldGd0tDaHNZV0psYkNrZ1BUNGdVM1J5YVc1bktHeGhZbVZzS1NsY2JpQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQmpjbVZoZEdWa1FYUTZJR1Z1ZGxOMGNtbHVaeWh5WVhkYlhDSmpjbVZoZEdWa1gyRjBYQ0pkS1N4Y2JpQWdJQ0FnSUhWd1pHRjBaV1JCZERvZ1pXNTJVM1J5YVc1bktISmhkMXRjSW5Wd1pHRjBaV1JmWVhSY0lsMHBMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFWmxkR05vWlhNZ1lTQkhhWFJNWVdJZ2NISnZhbVZqZEZ4dUlDQWdLaUJBYzNWdGJXRnllU0JnUjBWVVlITWdZQzl3Y205cVpXTjBjeTg4Y0hKdmFtVmpkRWxrUG1BZ1ptOXlJSFJvWlNCbmFYWmxiaUJKUkNBb1ptRnNiR2x1WnlCaVlXTnJJSFJ2WEc0Z0lDQXFJSFJvWlNCamIyNW1hV2QxY21Wa0lHQndjbTlxWldOMFNXUmdLU0JoYm1RZ2NtVjBkWEp1Y3lCMGFHVWdjbUYzSUhCeWIycGxZM1FnY0dGNWJHOWhaQzVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHdjbTlxWldOMFNXUmRJQzBnVkdobElIQnliMnBsWTNRZ2RHOGdiRzl2YXlCMWNEc2daR1ZtWVhWc2RITWdkRzhnZEdobElHTnZibVpwWjNWeVpXUWdZSEJ5YjJwbFkzUkpaR0F1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSFZ1YTI1dmQyNCtmU0JVYUdVZ2NtRjNJRWRwZEV4aFlpQndjbTlxWldOMElIQmhlV3h2WVdRdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2RHaGxJSEJ5YjJwbFkzUWdTVVFnWTJGdWJtOTBJR0psSUhKbGMyOXNkbVZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRPYjNSR2IzVnVaRVZ5Y205eWZTQlhhR1Z1SUhSb1pTQndjbTlxWldOMElHUnZaWE1nYm05MElHVjRhWE4wSUNoSVZGUlFJRFF3TkNrdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBOdmJtWnNhV04wUlhKeWIzSjlJRmRvWlc0Z1IybDBUR0ZpSUdGdWMzZGxjbk1nZDJsMGFDQklWRlJRSURRd09TNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJRWRwZEV4aFlpQmhibk4zWlhKeklIZHBkR2dnWVc1NUlHOTBhR1Z5SUVoVVZGQWdaWEp5YjNJZ2MzUmhkSFZ6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWjJWMFVISnZhbVZqZENod2NtOXFaV04wU1dRL09pQnpkSEpwYm1jcE9pQlFjbTl0YVhObFBIVnVhMjV2ZDI0K0lIdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbU5zYVdWdWRDNW5aWFFvZEdocGN5NXdjbTlxWldOMFVHRjBhQ2h3Y205cVpXTjBTV1FwS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaUzVrWVhSaE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5Qm9kSFJ3UlhKeWIzSW9YQ0pIYVhSTVlXSmNJaXdnWENKblpYUWdjSEp2YW1WamRGd2lMQ0JsY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTWFYTjBjeUJIYVhSTVlXSWdhWE56ZFdWeklIZHBkR2dnYzNSaGRHVXNJR3hoWW1Wc0xDQnpaV0Z5WTJnc0lHRnVaQ0J3WVdkbElHWnBiSFJsY21sdVoxeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCZ1IwVlVZSE1nWUM5d2NtOXFaV04wY3k4OGNISnZhbVZqZEVsa1BpOXBjM04xWlhOZ0lIZHBkR2dnWVNCZ2MzUmhkR1ZnSUdacGJIUmxjbHh1SUNBZ0tpQW9aR1ZtWVhWc2RDQmdYQ0p2Y0dWdVpXUmNJbUFwTENCaElIQmhaMlVnYzJsNlpTQW9ZSEJsY2w5d1lXZGxZQ3dnWkdWbVlYVnNkQ0JnTXpCZ0tTd2dZU0J3WVdkbFhHNGdJQ0FxSUc1MWJXSmxjaXdnWVNCamIyMXRZUzF6WlhCaGNtRjBaV1FnWUd4aFltVnNjMkFnWm1sc2RHVnlMQ0JoYm1RZ1lTQmdjMlZoY21Ob1lDQjBaWEp0TGx4dUlDQWdLaUJBY0dGeVlXMGdlMGRwZEd4aFlreHBjM1JQY0hScGIyNXpmU0JiYjNCMGFXOXVjMTBnTFNCUWNtOXFaV04wSUc5MlpYSnlhV1JsTENCemRHRjBaU3dnY0dGbmFXNW5MQ0JzWVdKbGJDd2dZVzVrSUhObFlYSmphQ0J2Y0hScGIyNXpMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeEhhWFJzWVdKSmMzTjFaVnRkUG4wZ1ZHaGxJRzV2Y20xaGJHbDZaV1FnYVhOemRXVnpJR1p2Y2lCMGFHVWdjbVZ4ZFdWemRHVmtJSEJoWjJVdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2RHaGxJSEJ5YjJwbFkzUWdTVVFnWTJGdWJtOTBJR0psSUhKbGMyOXNkbVZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRPYjNSR2IzVnVaRVZ5Y205eWZTQlhhR1Z1SUhSb1pTQndjbTlxWldOMElHUnZaWE1nYm05MElHVjRhWE4wSUNoSVZGUlFJRFF3TkNrdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBOdmJtWnNhV04wUlhKeWIzSjlJRmRvWlc0Z1IybDBUR0ZpSUdGdWMzZGxjbk1nZDJsMGFDQklWRlJRSURRd09TNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJRWRwZEV4aFlpQmhibk4zWlhKeklIZHBkR2dnWVc1NUlHOTBhR1Z5SUVoVVZGQWdaWEp5YjNJZ2MzUmhkSFZ6TGx4dUlDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0tpQmdZR0IwYzF4dUlDQWdLaUJqYjI1emRDQnBjM04xWlhNZ1BTQmhkMkZwZENCbmFYUnNZV0l1YkdsemRFbHpjM1ZsY3loN1hHNGdJQ0FxSUNBZ2NISnZhbVZqZEVsa09pQmNJbVY0WVcxd2JHVXRiM0puSlRKR1pYaGhiWEJzWlMxeVpYQnZYQ0lzWEc0Z0lDQXFJQ0FnYzNSaGRHVTZJRndpYjNCbGJtVmtYQ0lzWEc0Z0lDQXFJQ0FnYkdGaVpXeHpPaUJjSW1KMVp5eHdjbWx2Y21sMGVUbzZhR2xuYUZ3aUxGeHVJQ0FnS2lBZ0lHeHBiV2wwT2lBMU1DeGNiaUFnSUNvZ0lDQndZV2RsT2lBeExGeHVJQ0FnS2lCOUtUdGNiaUFnSUNvZ1lHQmdYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QnNhWE4wU1hOemRXVnpLRzl3ZEdsdmJuTTZJRWRwZEd4aFlreHBjM1JQY0hScGIyNXpJRDBnZTMwcE9pQlFjbTl0YVhObFBFZHBkR3hoWWtsemMzVmxXMTArSUh0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1blpYUThRWEp5WVhrOFVtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajQrUGloY2JpQWdJQ0FnSUNBZ1lDUjdkR2hwY3k1d2NtOXFaV04wVUdGMGFDaHZjSFJwYjI1ekxuQnliMnBsWTNSSlpDbDlMMmx6YzNWbGMyQXNYRzRnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNCd1lYSmhiWE02SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wWVhSbE9pQnZjSFJwYjI1ekxuTjBZWFJsSUQ4L0lGd2liM0JsYm1Wa1hDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCd1pYSmZjR0ZuWlRvZ2IzQjBhVzl1Y3k1c2FXMXBkQ0EvUHlBek1DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaFoyVTZJRzl3ZEdsdmJuTXVjR0ZuWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hoWW1Wc2N6b2diM0IwYVc5dWN5NXNZV0psYkhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WldGeVkyZzZJRzl3ZEdsdmJuTXVjMlZoY21Ob0xGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemNHOXVjMlV1WkdGMFlTNXRZWEFvS0dWdWRISjVLU0E5UGx4dUlDQWdJQ0FnSUNCMGFHbHpMbTFoY0VsemMzVmxLR1Z1ZEhKNUxDQnZjSFJwYjI1ekxuQnliMnBsWTNSSlpDbGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJR2gwZEhCRmNuSnZjaWhjSWtkcGRFeGhZbHdpTENCY0lteHBjM1FnYVhOemRXVnpYQ0lzSUdWeWNtOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnlaV0YwWlhNZ1lTQkhhWFJNWVdJZ2FYTnpkV1ZjYmlBZ0lDb2dRSE4xYlcxaGNua2dZRkJQVTFSZ2N5QjBhR1VnZEdsMGJHVXNJR1JsYzJOeWFYQjBhVzl1TENCc1lXSmxiSE1zSUdGemMybG5ibVZsSUVsRWN5d2dZVzVrWEc0Z0lDQXFJRzFwYkdWemRHOXVaU0JKUkNCMGJ5QmdMM0J5YjJwbFkzUnpMenh3Y205cVpXTjBTV1ErTDJsemMzVmxjMkFnWVc1a0lISmxkSFZ5Ym5NZ2RHaGxJRzV2Y20xaGJHbDZaV1JjYmlBZ0lDb2dhWE56ZFdVZ1pHVnpZM0pwY0hSdmNpNGdVbVZ4ZFdseVpYTWdZU0J1YjI0dFpXMXdkSGtnWUhScGRHeGxZQ0JoYm1RZ1lTQnlaWE52YkhaaFlteGxJSEJ5YjJwbFkzUmNiaUFnSUNvZ1NVUXVYRzRnSUNBcUlFQndZWEpoYlNCN1IybDBiR0ZpU1hOemRXVkpibkIxZEgwZ2FXNXdkWFFnTFNCVWFHVWdhWE56ZFdVZ1kyOXVkR1Z1ZENCaGJtUWdjSEp2YW1WamRDQjBZWEpuWlhScGJtY3VYRzRnSUNBcUlFQnlaWFIxY201eklIdFFjbTl0YVhObFBFZHBkR3hoWWtsemMzVmxQbjBnVkdobElHNXZjbTFoYkdsNlpXUWdZM0psWVhSbFpDQnBjM04xWlM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCMGFHVWdkR2wwYkdVZ2FYTWdaVzF3ZEhrZ2IzSWdkR2hsSUhCeWIycGxZM1FnU1VRZ1kyRnVibTkwSUdKbElISmxjMjlzZG1Wa0xseHVJQ0FnS2lCQWRHaHliM2R6SUh0T2IzUkdiM1Z1WkVWeWNtOXlmU0JYYUdWdUlIUm9aU0J3Y205cVpXTjBJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwTnZibVpzYVdOMFJYSnliM0o5SUZkb1pXNGdSMmwwVEdGaUlHRnVjM2RsY25NZ2QybDBhQ0JJVkZSUUlEUXdPUzVjYmlBZ0lDb2dRSFJvY205M2N5QjdRbUZrVW1WeGRXVnpkRVZ5Y205eWZTQlhhR1Z1SUVkcGRFeGhZaUJoYm5OM1pYSnpJSGRwZEdnZ1lXNTVJRzkwYUdWeUlFaFVWRkFnWlhKeWIzSWdjM1JoZEhWeklDaGxMbWN1SUdsdWRtRnNhV1FnYkdGaVpXeHpJRzl5SUdGemMybG5ibVZsY3lrdVhHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCamNtVmhkR1ZKYzNOMVpTaHBibkIxZERvZ1IybDBiR0ZpU1hOemRXVkpibkIxZENrNklGQnliMjFwYzJVOFIybDBiR0ZpU1hOemRXVStJSHRjYmlBZ0lDQnBaaUFvSVdsdWNIVjBMblJwZEd4bEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lrZHBkRXhoWWlCcGMzTjFaU0J5WlhGMWFYSmxjeUJoSUhScGRHeGxYQ0lwTzF4dUlDQWdJSDFjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQjBhR2x6TG1Oc2FXVnVkQzV3YjNOMFBGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrUGloY2JpQWdJQ0FnSUNBZ1lDUjdkR2hwY3k1d2NtOXFaV04wVUdGMGFDaHBibkIxZEM1d2NtOXFaV04wU1dRcGZTOXBjM04xWlhOZ0xGeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnZEdsMGJHVTZJR2x1Y0hWMExuUnBkR3hsTEZ4dUlDQWdJQ0FnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJwYm5CMWRDNWtaWE5qY21sd2RHbHZiaXhjYmlBZ0lDQWdJQ0FnSUNCc1lXSmxiSE02SUdsdWNIVjBMbXhoWW1Wc2N5eGNiaUFnSUNBZ0lDQWdJQ0JoYzNOcFoyNWxaVjlwWkhNNklHbHVjSFYwTG1GemMybG5ibVZsU1dSekxGeHVJQ0FnSUNBZ0lDQWdJRzFwYkdWemRHOXVaVjlwWkRvZ2FXNXdkWFF1Yldsc1pYTjBiMjVsU1dRc1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV0WVhCSmMzTjFaU2h5WlhOd2IyNXpaUzVrWVhSaExDQnBibkIxZEM1d2NtOXFaV04wU1dRcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5Qm9kSFJ3UlhKeWIzSW9YQ0pIYVhSTVlXSmNJaXdnWENKamNtVmhkR1VnYVhOemRXVmNJaXdnWlhKeWIzSXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyOXRiV1Z1ZEhNZ2IyNGdZU0JIYVhSTVlXSWdhWE56ZFdWY2JpQWdJQ29nUUhOMWJXMWhjbmtnWUZCUFUxUmdjeUIwYUdVZ1kyOXRiV1Z1ZENCaWIyUjVJR0Z6SUdFZ2JtOTBaU0IwYjF4dUlDQWdLaUJnTDNCeWIycGxZM1J6THp4d2NtOXFaV04wU1dRK0wybHpjM1ZsY3k4OGFXbGtQaTl1YjNSbGMyQWdZVzVrSUhKbGRIVnlibk1nZEdobElHNXZkR1ZjYmlBZ0lDb2dhV1JsYm5ScFptbGxjaUJoYm1RZ2FYUnpJSGRsWWlCVlVrd3VJRkpsY1hWcGNtVnpJR0VnYm05dUxXVnRjSFI1SUdsemMzVmxJRWxKUkNCaGJtUWdZbTlrZVM1Y2JpQWdJQ29nUUhCaGNtRnRJSHR2WW1wbFkzUjlJR2x1Y0hWMElDMGdWR2hsSUdOdmJXMWxiblFnZEdGeVoyVjBJR0Z1WkNCaWIyUjVMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cybHVjSFYwTG5CeWIycGxZM1JKWkYwZ0xTQlVhR1VnY0hKdmFtVmpkQ0J2ZG1WeWNtbGtaVHNnWm1Gc2JITWdZbUZqYXlCMGJ5QjBhR1VnWTI5dVptbG5kWEpsWkNCZ2NISnZhbVZqZEVsa1lDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdsdWNIVjBMbWxwWkNBdElGUm9aU0JwYzNOMVpTZHpJSEJ5YjJwbFkzUXRjMk52Y0dWa0lFbEpSQzVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHbHVjSFYwTG1KdlpIa2dMU0JVYUdVZ1kyOXRiV1Z1ZENCaWIyUjVMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeDdhV1E2SUc1MWJXSmxjaXdnZDJWaVZYSnNQem9nYzNSeWFXNW5mVDU5SUZSb1pTQmpjbVZoZEdWa0lHNXZkR1VuY3lCSlJDQmhibVFnZDJWaUlGVlNUQzVjYmlBZ0lDb2dRSFJvY205M2N5QjdTVzUwWlhKdVlXeEZjbkp2Y24wZ1YyaGxiaUIwYUdVZ2FYTnpkV1VnU1VsRUlHOXlJR0p2WkhrZ2FYTWdaVzF3ZEhrc0lHOXlJSFJvWlNCd2NtOXFaV04wSUVsRUlHTmhibTV2ZENCaVpTQnlaWE52YkhabFpDNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1RtOTBSbTkxYm1SRmNuSnZjbjBnVjJobGJpQjBhR1VnYVhOemRXVWdaRzlsY3lCdWIzUWdaWGhwYzNRZ0tFaFVWRkFnTkRBMEtTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1EyOXVabXhwWTNSRmNuSnZjbjBnVjJobGJpQkhhWFJNWVdJZ1lXNXpkMlZ5Y3lCM2FYUm9JRWhVVkZBZ05EQTVMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdENZV1JTWlhGMVpYTjBSWEp5YjNKOUlGZG9aVzRnUjJsMFRHRmlJR0Z1YzNkbGNuTWdkMmwwYUNCaGJua2diM1JvWlhJZ1NGUlVVQ0JsY25KdmNpQnpkR0YwZFhNdVhHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCamIyMXRaVzUwVDI1SmMzTjFaU2hwYm5CMWREb2dlMXh1SUNBZ0lIQnliMnBsWTNSSlpEODZJSE4wY21sdVp6dGNiaUFnSUNCcGFXUTZJRzUxYldKbGNqdGNiaUFnSUNCaWIyUjVPaUJ6ZEhKcGJtYzdYRzRnSUgwcE9pQlFjbTl0YVhObFBIc2dhV1E2SUc1MWJXSmxjanNnZDJWaVZYSnNQem9nYzNSeWFXNW5JSDArSUh0Y2JpQWdJQ0JwWmlBb0lXbHVjSFYwTG1scFpDQjhmQ0FoYVc1d2RYUXVZbTlrZVNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUZ3aVIybDBUR0ZpSUdOdmJXMWxiblFnY21WeGRXbHlaWE1nWVc0Z2FYTnpkV1VnU1VsRUlHRnVaQ0JpYjJSNVhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExuQnZjM1E4ZTF4dUlDQWdJQ0FnSUNCcFpEODZJRzUxYldKbGNqdGNiaUFnSUNBZ0lDQWdkMlZpWDNWeWJEODZJSE4wY21sdVp6dGNiaUFnSUNBZ0lIMCtLRnh1SUNBZ0lDQWdJQ0JnSkh0MGFHbHpMbkJ5YjJwbFkzUlFZWFJvS0dsdWNIVjBMbkJ5YjJwbFkzUkpaQ2w5TDJsemMzVmxjeThrZTJsdWNIVjBMbWxwWkgwdmJtOTBaWE5nTEZ4dUlDQWdJQ0FnSUNCN0lHSnZaSGs2SUdsdWNIVjBMbUp2WkhrZ2ZWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCN0lHbGtPaUJPZFcxaVpYSW9jbVZ6Y0c5dWMyVXVaR0YwWVM1cFpDQS9QeUF3S1N3Z2QyVmlWWEpzT2lCeVpYTndiMjV6WlM1a1lYUmhMbmRsWWw5MWNtd2dmVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYUhSMGNFVnljbTl5S0Z3aVIybDBUR0ZpWENJc0lGd2lZMjl0YldWdWRDQnZiaUJwYzNOMVpWd2lMQ0JsY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTWFYTjBjeUJIYVhSTVlXSWdiV1Z5WjJVZ2NtVnhkV1Z6ZEhNZ2QybDBhQ0J6ZEdGMFpTd2djMlZoY21Ob0xDQmhibVFnY0dGblpTQm1hV3gwWlhKcGJtZGNiaUFnSUNvZ1FITjFiVzFoY25rZ1lFZEZWR0J6SUdBdmNISnZhbVZqZEhNdlBIQnliMnBsWTNSSlpENHZiV1Z5WjJWZmNtVnhkV1Z6ZEhOZ0lIZHBkR2dnWVNCZ2MzUmhkR1ZnWEc0Z0lDQXFJR1pwYkhSbGNpQW9aR1ZtWVhWc2RDQmdYQ0p2Y0dWdVpXUmNJbUE3SUdCY0ltRnNiRndpWUNCcGN5QnpaVzUwSUdGeklHNXZJSE4wWVhSbElIQmhjbUZ0WlhSbGNpa3NYRzRnSUNBcUlHRWdjR0ZuWlNCemFYcGxJQ2hnY0dWeVgzQmhaMlZnTENCa1pXWmhkV3gwSUdBek1HQXBMQ0JoSUhCaFoyVWdiblZ0WW1WeUxDQmhibVFnWVNCZ2MyVmhjbU5vWUZ4dUlDQWdLaUIwWlhKdExpQk5aWEpuWlNCeVpYRjFaWE4wY3lCaGNtVWdjbVYwZFhKdVpXUWdZWE1nY21GM0lFZHBkRXhoWWlCd1lYbHNiMkZrY3k1Y2JpQWdJQ29nUUhCaGNtRnRJSHRIYVhSc1lXSk1hWE4wVDNCMGFXOXVjMzBnVzI5d2RHbHZibk5kSUMwZ1VISnZhbVZqZENCdmRtVnljbWxrWlN3Z2MzUmhkR1VzSUhCaFoybHVaeXdnWVc1a0lITmxZWEpqYUNCdmNIUnBiMjV6TGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHgxYm10dWIzZHVXMTArZlNCVWFHVWdjbUYzSUVkcGRFeGhZaUJ0WlhKblpTMXlaWEYxWlhOMElIQmhlV3h2WVdSekxseHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlIUm9aU0J3Y205cVpXTjBJRWxFSUdOaGJtNXZkQ0JpWlNCeVpYTnZiSFpsWkM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3VG05MFJtOTFibVJGY25KdmNuMGdWMmhsYmlCMGFHVWdjSEp2YW1WamRDQmtiMlZ6SUc1dmRDQmxlR2x6ZENBb1NGUlVVQ0EwTURRcExseHVJQ0FnS2lCQWRHaHliM2R6SUh0RGIyNW1iR2xqZEVWeWNtOXlmU0JYYUdWdUlFZHBkRXhoWWlCaGJuTjNaWEp6SUhkcGRHZ2dTRlJVVUNBME1Ea3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJIYVhSTVlXSWdZVzV6ZDJWeWN5QjNhWFJvSUdGdWVTQnZkR2hsY2lCSVZGUlFJR1Z5Y205eUlITjBZWFIxY3k1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUd4cGMzUk5aWEpuWlZKbGNYVmxjM1J6S0Z4dUlDQWdJRzl3ZEdsdmJuTTZJRWRwZEd4aFlreHBjM1JQY0hScGIyNXpJRDBnZTMxY2JpQWdLVG9nVUhKdmJXbHpaVHgxYm10dWIzZHVXMTArSUh0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1blpYUThkVzVyYm05M2JsdGRQaWhjYmlBZ0lDQWdJQ0FnWUNSN2RHaHBjeTV3Y205cVpXTjBVR0YwYUNodmNIUnBiMjV6TG5CeWIycGxZM1JKWkNsOUwyMWxjbWRsWDNKbGNYVmxjM1J6WUN4Y2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJSEJoY21GdGN6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUmhkR1U2SUc5d2RHbHZibk11YzNSaGRHVWdQVDA5SUZ3aVlXeHNYQ0lnUHlCMWJtUmxabWx1WldRZ09pQnZjSFJwYjI1ekxuTjBZWFJsSUQ4L0lGd2liM0JsYm1Wa1hDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCd1pYSmZjR0ZuWlRvZ2IzQjBhVzl1Y3k1c2FXMXBkQ0EvUHlBek1DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaFoyVTZJRzl3ZEdsdmJuTXVjR0ZuWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sWVhKamFEb2diM0IwYVc5dWN5NXpaV0Z5WTJnc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaUzVrWVhSaE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5Qm9kSFJ3UlhKeWIzSW9YQ0pIYVhSTVlXSmNJaXdnWENKc2FYTjBJRzFsY21kbElISmxjWFZsYzNSelhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JpSmRmUT09Il19
|
|
281
|
+
//# sourceMappingURL=GitlabService.js.map
|
|
282
|
+
//# sourceMappingURL=GitlabService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops/gitlab/GitlabService.cjs","sourceRoot":"","sources":["devops/gitlab/GitlabService.js"],"names":[],"mappings":"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"}
|
|
@@ -20,5 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
* @description Re-exports the GitLab client-based service and its types.
|
|
21
21
|
*/
|
|
22
22
|
__exportStar(require("./GitlabService.cjs"), exports);
|
|
23
|
-
//# sourceMappingURL=
|
|
24
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops/gitlab/index.cjs","sourceRoot":"","sources":["devops/gitlab/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,qDAAmC;AACnC,iCAAiC"}
|
package/lib/cjs/devops/index.cjs
CHANGED
|
@@ -24,5 +24,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
24
|
__exportStar(require("./github/index.cjs"), exports);
|
|
25
25
|
__exportStar(require("./gitlab/index.cjs"), exports);
|
|
26
26
|
__exportStar(require("./environment.cjs"), exports);
|
|
27
|
-
//# sourceMappingURL=
|
|
28
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
28
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops/index.cjs","sourceRoot":"","sources":["devops/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,oDAAkC;AAClC,oDAAkC;AAClC,mDAAiC;AACjC,iCAAiC"}
|