From a804672042257caeaaa32ecd3949f924522b1fb7 Mon Sep 17 00:00:00 2001 From: x032205 Date: Fri, 10 Oct 2025 20:33:52 -0400 Subject: [PATCH] merge main --- .github/workflows/check-fe-ts-and-lint.yml | 4 +- .../workflows/helm-release-infisical-core.yml | 2 + .github/workflows/nightly-tag-generation.yml | 2 - ...standalone-docker-img-postgres-offical.yml | 11 +- ...rt-tests-infisical-standalone-postgres.yml | 2 + Dockerfile.fips.standalone-infisical | 7 +- Dockerfile.standalone-infisical | 7 +- backend/Dockerfile | 4 +- backend/Dockerfile.dev | 2 +- backend/Dockerfile.dev.fips | 2 +- backend/package-lock.json | 4874 ++++++++++++++--- backend/package.json | 13 +- backend/scripts/generate-schema-types.ts | 4 +- backend/src/@types/fastify.d.ts | 23 +- backend/src/@types/knex.d.ts | 29 + backend/src/db/instance.ts | 66 +- .../20240702131735_secret-approval-groups.ts | 3 +- .../20251005152640_simplify-membership.ts | 1121 ++++ .../20251008003912_relay-heartbeat.ts | 19 + ...251008220303_relay-gateway-health-alarm.ts | 29 + .../20251010111410_add-kmip-metadata.ts | 19 + .../src/db/schemas/additional-privileges.ts | 30 + backend/src/db/schemas/gateways-v2.ts | 3 +- backend/src/db/schemas/index.ts | 5 + backend/src/db/schemas/kms-keys.ts | 3 +- backend/src/db/schemas/membership-roles.ts | 26 + backend/src/db/schemas/memberships.ts | 32 + backend/src/db/schemas/models.ts | 40 + backend/src/db/schemas/namespaces.ts | 21 + backend/src/db/schemas/relays.ts | 4 +- backend/src/db/schemas/roles.ts | 25 + .../db/schemas/user-notifications-default.ts | 27 + backend/src/db/seeds/2-org.ts | 23 +- backend/src/db/seeds/3-project.ts | 58 +- backend/src/db/seeds/4-project-v3.ts | 14 +- backend/src/db/seeds/5-machine-identity.ts | 42 +- .../v1/deprecated-project-role-router.ts | 179 +- ...ity-project-additional-privilege-router.ts | 253 +- backend/src/ee/routes/v1/kmip-spec-router.ts | 6 +- backend/src/ee/routes/v1/org-role-router.ts | 147 +- .../src/ee/routes/v1/project-role-router.ts | 131 +- backend/src/ee/routes/v1/relay-router.ts | 81 + backend/src/ee/routes/v1/secret-router.ts | 1 - .../v1/user-additional-privilege-router.ts | 188 +- .../v2/deprecated-project-role-router.ts | 97 +- ...ity-project-additional-privilege-router.ts | 199 +- .../access-approval-policy-service.ts | 30 +- .../access-approval-request-dal.ts | 67 +- .../access-approval-request-service.ts | 46 +- .../providers/elastic-search.ts | 1 + .../ee/services/gateway-v2/gateway-v2-dal.ts | 28 +- .../services/gateway-v2/gateway-v2-service.ts | 86 +- .../src/ee/services/gateway/gateway-dal.ts | 17 +- .../github-org-sync-service.ts | 49 +- backend/src/ee/services/group/group-dal.ts | 74 +- backend/src/ee/services/group/group-fns.ts | 45 +- .../src/ee/services/group/group-service.ts | 175 +- backend/src/ee/services/group/group-types.ts | 10 +- .../group/user-group-membership-dal.ts | 60 +- ...ity-project-additional-privilege-v2-dal.ts | 12 - ...project-additional-privilege-v2-service.ts | 434 -- ...y-project-additional-privilege-v2-types.ts | 55 - ...entity-project-additional-privilege-dal.ts | 12 - ...ty-project-additional-privilege-service.ts | 451 -- ...tity-project-additional-privilege-types.ts | 56 - .../services/kmip/kmip-operation-service.ts | 9 +- backend/src/ee/services/kmip/kmip-types.ts | 1 + .../ldap-config/ldap-config-service.ts | 67 +- .../src/ee/services/license/license-dal.ts | 25 +- .../ee/services/license/license-service.ts | 2 +- .../ee/services/oidc/oidc-config-service.ts | 73 +- .../shared/sql/sql-resource-factory.ts | 12 +- .../ee/services/permission/org-permission.ts | 12 +- .../ee/services/permission/permission-dal.ts | 1457 ++--- .../ee/services/permission/permission-fns.ts | 6 +- .../permission/permission-service-types.ts | 250 +- .../services/permission/permission-service.ts | 926 ++-- .../services/permission/project-permission.ts | 4 + .../project-user-additional-privilege-dal.ts | 10 - ...oject-user-additional-privilege-service.ts | 388 -- ...project-user-additional-privilege-types.ts | 60 - backend/src/ee/services/relay/relay-dal.ts | 42 +- .../src/ee/services/relay/relay-service.ts | 185 +- .../saml-config/saml-config-service.ts | 86 +- backend/src/ee/services/scim/scim-service.ts | 200 +- .../secret-approval-request-dal.ts | 36 +- .../ssh-host-group/ssh-host-group-service.ts | 5 +- .../src/ee/services/ssh-host/ssh-host-fns.ts | 10 +- .../ee/services/ssh-host/ssh-host-service.ts | 5 +- .../ee/services/ssh-host/ssh-host-types.ts | 2 +- backend/src/lib/fn/object.ts | 50 + backend/src/lib/gateway-v2/gateway-v2.ts | 2 +- backend/src/server/routes/index.ts | 396 +- backend/src/server/routes/sanitizedSchemas.ts | 4 +- backend/src/server/routes/v1/admin-router.ts | 48 +- .../deprecated-project-membership-router.ts | 151 +- .../server/routes/v1/group-project-router.ts | 129 +- .../v1/identity-alicloud-auth-router.ts | 2 +- .../routes/v1/identity-aws-iam-auth-router.ts | 2 +- .../routes/v1/identity-azure-auth-router.ts | 2 +- .../routes/v1/identity-gcp-auth-router.ts | 2 +- .../routes/v1/identity-jwt-auth-router.ts | 2 +- .../v1/identity-kubernetes-auth-router.ts | 2 +- .../routes/v1/identity-ldap-auth-router.ts | 2 +- .../routes/v1/identity-oci-auth-router.ts | 2 +- .../routes/v1/identity-oidc-auth-router.ts | 2 +- .../routes/v1/identity-project-router.ts | 81 +- .../v1/identity-tls-cert-auth-router.ts | 2 +- .../routes/v1/identity-token-auth-router.ts | 6 +- .../v1/identity-universal-auth-router.ts | 2 +- .../src/server/routes/v1/invite-org-router.ts | 28 +- .../src/server/routes/v1/org-admin-router.ts | 2 +- .../server/routes/v1/organization-router.ts | 3 +- ...aws-certificate-manager-pki-sync-router.ts | 22 + .../routes/v1/pki-sync-routers/index.ts | 4 +- .../routes/v1/project-membership-router.ts | 178 +- .../secret-sync-endpoints.ts | 38 + .../v2/deprecated-group-project-router.ts | 129 +- .../v2/deprecated-identity-project-router.ts | 81 +- .../deprecated-project-membership-router.ts | 49 +- .../server/routes/v2/organization-router.ts | 33 +- .../additional-privilege-dal.ts | 11 + .../additional-privilege-service.ts | 254 + .../additional-privilege-types.ts | 87 + .../namespace-additional-privilege-factory.ts | 52 + .../org/org-additional-privilege-factory.ts | 52 + .../project-additional-privilege-factory.ts | 219 + .../railway-connection-public-client.ts | 45 +- .../services/auth-token/auth-token-service.ts | 15 +- .../src/services/auth/auth-login-service.ts | 66 +- .../services/auth/auth-password-service.ts | 12 +- .../src/services/auth/auth-signup-service.ts | 33 +- .../services/convertor/convertor-service.ts | 130 + .../external-group-org-role-mapping-fns.ts | 12 +- ...external-group-org-role-mapping-service.ts | 8 +- .../external-migration-service.ts | 12 +- .../group-project/group-project-dal.ts | 111 +- .../group-project-membership-role-dal.ts | 10 - .../group-project/group-project-service.ts | 493 +- .../identity-access-token-service.ts | 4 +- .../identity-alicloud-auth-service.ts | 85 +- .../identity-aws-auth-service.ts | 85 +- .../identity-azure-auth-service.ts | 85 +- .../identity-gcp-auth-service.ts | 85 +- .../identity-jwt-auth-service.ts | 91 +- .../identity-kubernetes-auth-service.ts | 105 +- .../identity-ldap-auth-service.ts | 118 +- .../identity-oci-auth-service.ts | 85 +- .../identity-oidc-auth-service.ts | 95 +- .../identity-project/identity-project-dal.ts | 162 +- .../identity-project-membership-role-dal.ts | 10 - .../identity-project-service.ts | 323 +- .../identity-tls-cert-auth-service.ts | 90 +- .../identity-tls-cert-auth-types.ts | 4 +- .../identity-token-auth-service.ts | 139 +- .../identity-ua/identity-ua-service.ts | 189 +- backend/src/services/identity/identity-dal.ts | 14 +- .../src/services/identity/identity-org-dal.ts | 228 +- .../src/services/identity/identity-service.ts | 128 +- backend/src/services/kms/kms-service.ts | 5 +- backend/src/services/kms/kms-types.ts | 1 + .../membership-group/membership-group-dal.ts | 272 + .../membership-group-service.ts | 325 ++ .../membership-group-types.ts | 79 + .../namespace-membership-group-factory.ts | 61 + .../org/org-membership-group-factory.ts | 125 + .../project-membership-group-factory.ts | 188 + .../membership-identity-dal.ts | 357 ++ .../membership-identity-service.ts | 339 ++ .../membership-identity-types.ts | 82 + .../namespace-membership-identity-factory.ts | 64 + .../org/org-membership-identity-factory.ts | 130 + .../project-membership-identity-factory.ts | 208 + .../membership-user/membership-user-dal.ts | 295 + .../membership-user-service.ts | 481 ++ .../membership-user/membership-user-types.ts | 95 + .../namespace-membership-user-factory.ts | 66 + .../org/org-membership-user-factory.ts | 193 + .../project-membership-user-factory.ts | 239 + .../src/services/membership/membership-dal.ts | 10 + .../membership/membership-role-dal.ts | 10 + .../notification/notification-types.ts | 4 +- .../services/org-admin/org-admin-service.ts | 48 +- .../org-membership/org-membership-dal.ts | 87 +- backend/src/services/org/org-dal.ts | 293 +- backend/src/services/org/org-fns.ts | 187 +- backend/src/services/org/org-role-dal.ts | 7 - backend/src/services/org/org-role-fns.ts | 9 +- backend/src/services/org/org-role-service.ts | 237 - backend/src/services/org/org-service.ts | 628 +-- ...-certificate-manager-pki-sync-constants.ts | 52 + .../aws-certificate-manager-pki-sync-fns.ts | 634 +++ ...ws-certificate-manager-pki-sync-schemas.ts | 84 + .../aws-certificate-manager-pki-sync-types.ts | 58 + .../pki-sync/aws-certificate-manager/index.ts | 4 + .../src/services/pki-sync/pki-sync-enums.ts | 3 +- backend/src/services/pki-sync/pki-sync-fns.ts | 35 +- .../src/services/pki-sync/pki-sync-maps.ts | 6 +- .../services/project-bot/project-bot-dal.ts | 13 +- .../services/project-key/project-key-dal.ts | 11 +- .../project-key/project-key-service.ts | 15 +- .../project-membership-dal.ts | 232 +- .../project-membership-service.ts | 307 +- .../project-user-membership-role-dal.ts | 10 - .../services/project-role/project-role-dal.ts | 7 - .../project-role/project-role-service.ts | 286 - backend/src/services/project/project-dal.ts | 177 +- backend/src/services/project/project-queue.ts | 31 +- .../src/services/project/project-service.ts | 95 +- .../role/namespace/namespace-role-factory.ts | 47 + .../src/services/role/org/org-role-factory.ts | 160 + .../role/project/project-role-factory.ts | 203 + backend/src/services/role/role-dal.ts | 10 + backend/src/services/role/role-service.ts | 276 + backend/src/services/role/role-types.ts | 79 + .../secret-import/secret-import-service.ts | 4 +- .../secret-reminder-recipients-dal.ts | 12 +- .../secret-sync/railway/railway-sync-fns.ts | 148 +- .../services/secret-sync/secret-sync-dal.ts | 16 +- .../services/secret-sync/secret-sync-maps.ts | 102 + .../secret-sync/secret-sync-service.ts | 67 +- .../services/secret-sync/secret-sync-types.ts | 12 + .../secret-v2-bridge-service.ts | 2 +- .../secret-v2-bridge/secret-version-dal.ts | 24 +- backend/src/services/secret/secret-queue.ts | 27 +- backend/src/services/secret/secret-service.ts | 3 +- .../AccountDeletionConfirmationTemplate.tsx | 36 + .../smtp/emails/HealthAlertTemplate.tsx | 47 + backend/src/services/smtp/emails/index.ts | 2 + backend/src/services/smtp/smtp-service.ts | 10 +- .../super-admin/super-admin-service.ts | 133 +- backend/src/services/user/user-dal.ts | 36 +- backend/src/services/user/user-service.ts | 63 +- .../syncs/aws-certificate-manager/create.mdx | 4 + .../syncs/aws-certificate-manager/delete.mdx | 4 + .../aws-certificate-manager/get-by-id.mdx | 4 + .../syncs/aws-certificate-manager/list.mdx | 4 + .../remove-certificates.mdx | 4 + .../sync-certificates.mdx | 4 + .../syncs/aws-certificate-manager/update.mdx | 4 + docs/docs.json | 15 + .../platform/gateways/gateway-deployment.mdx | 2 +- .../platform/gateways/overview.mdx | 16 +- .../aws-certificate-manager.mdx | 146 + docs/documentation/platform/scim/overview.mdx | 1 + docs/documentation/platform/scim/pingone.mdx | 149 + .../documentation/platform/sso/auth0-oidc.mdx | 4 +- .../platform/sso/general-oidc/overview.mdx | 2 +- .../platform/sso/keycloak-oidc/overview.mdx | 4 +- .../platform/sso/pingone-oidc.mdx | 108 + .../acm-destination.png | Bin 0 -> 531810 bytes .../aws-certificate-manager/acm-details.png | Bin 0 -> 537770 bytes .../aws-certificate-manager/acm-options.png | Bin 0 -> 594549 bytes .../aws-certificate-manager/acm-review.png | Bin 0 -> 553993 bytes .../aws-certificate-manager/acm-source.png | Bin 0 -> 513068 bytes .../aws-certificate-manager/acm-synced.png | Bin 0 -> 822122 bytes .../select-acm-option.png | Bin 0 -> 489285 bytes .../scim/pingone/pingone-connection-auth.png | Bin 0 -> 177296 bytes .../pingone/pingone-connection-enable.png | Bin 0 -> 148529 bytes .../pingone-connection-preferences.png | Bin 0 -> 186701 bytes ...ingone-connection-select-scim-outbound.png | Bin 0 -> 161219 bytes .../scim/pingone/pingone-create-user.png | Bin 0 -> 142264 bytes .../pingone-new-connection-identity-store.png | Bin 0 -> 157525 bytes .../scim/pingone/pingone-new-connection.png | Bin 0 -> 124474 bytes .../scim/pingone/pingone-new-rule-1.png | Bin 0 -> 124257 bytes .../scim/pingone/pingone-new-rule-2.png | Bin 0 -> 136209 bytes .../scim/pingone/pingone-rule-enable.png | Bin 0 -> 174992 bytes .../pingone-rule-group-provisioning-tab.png | Bin 0 -> 179075 bytes .../pingone-rule-select-connection.png | Bin 0 -> 155333 bytes .../pingone-rule-select-user-filter.png | Bin 0 -> 155520 bytes .../scim/pingone/pingone-rule-user-filter.png | Bin 0 -> 123907 bytes .../scim/pingone/pingone-select-group.png | Bin 0 -> 168081 bytes .../sso/{auth0-oidc => }/enable-oidc.png | Bin docs/images/sso/keycloak-oidc/enable-oidc.png | Bin 816232 -> 0 bytes .../pingone-oidc/infisical-configure-oidc.png | Bin 0 -> 179723 bytes .../pingone-create-application.png | Bin 0 -> 195504 bytes ...-edit-application-attribute-mappings-2.png | Bin 0 -> 188859 bytes ...ne-edit-application-attribute-mappings.png | Bin 0 -> 222750 bytes ...pingone-edit-application-configuration.png | Bin 0 -> 221021 bytes .../pingone-edit-application-redirect-uri.png | Bin 0 -> 199425 bytes .../pingone-enable-application.png | Bin 0 -> 227755 bytes .../pingone-overview-credentials.png | Bin 0 -> 241697 bytes ...ngone-overview-oidc-discovery-endpoint.png | Bin 0 -> 288394 bytes docs/integrations/app-connections/aws.mdx | 78 + docs/sdks/languages/java.mdx | 16 + .../native/linux-package/installation.mdx | 53 +- frontend/package-lock.json | 1690 +++--- frontend/package.json | 13 +- frontend/postcss.config.js | 3 +- frontend/public/images/integrations/IBM.png | Bin 0 -> 17196 bytes frontend/public/images/integrations/RDP.png | Bin 0 -> 4166 bytes frontend/public/images/integrations/SSH.png | Bin 0 -> 4091 bytes .../app-connections/AppConnectionOption.tsx | 4 +- .../src/components/auth/CodeInputStep.tsx | 8 +- .../src/components/auth/EnterEmailStep.tsx | 34 +- .../src/components/auth/InitialSignupStep.tsx | 2 +- frontend/src/components/auth/Mfa.tsx | 18 +- .../src/components/auth/TeamInviteStep.tsx | 14 +- frontend/src/components/auth/UserInfoStep.tsx | 10 +- frontend/src/components/basic/Error.tsx | 2 +- frontend/src/components/basic/InputField.tsx | 16 +- .../integrations/NoEnvironmentsBanner.tsx | 6 +- .../components/mfa/RecoveryCodesDownload.tsx | 2 +- .../src/components/navigation/NavHeader.tsx | 26 +- .../components/navigation/RegionSelect.tsx | 2 +- .../SecretDashboardPathBreadcrumb.tsx | 2 +- .../LastLoginSection/LastLoginSection.tsx | 4 +- .../permissions/AccessTree/AccessTree.tsx | 10 +- .../components/AccessTreeErrorBoundary.tsx | 4 +- .../components/PermissionSimulation.tsx | 10 +- .../nodes/FolderNode/FolderNode.tsx | 6 +- .../components/AccessTreeSecretPathInput.tsx | 2 +- .../components/FolderNodeTooltipContent.tsx | 10 +- .../permissions/AccessTree/nodes/RoleNode.tsx | 4 +- .../AccessTree/nodes/ShowMoreButtonNode.tsx | 2 +- .../pki-syncs/PkiSyncImportStatusBadge.tsx | 6 +- .../pki-syncs/PkiSyncModalHeader.tsx | 2 +- .../pki-syncs/PkiSyncRemoveStatusBadge.tsx | 6 +- .../components/pki-syncs/PkiSyncSelect.tsx | 2 +- .../AwsCertificateManagerPkiSyncFields.tsx | 50 + .../forms/AzureKeyVaultPkiSyncFields.tsx | 2 +- .../pki-syncs/forms/CreatePkiSyncForm.tsx | 6 +- .../pki-syncs/forms/EditPkiSyncForm.tsx | 8 +- .../forms/PkiSyncConnectionField.tsx | 2 +- .../forms/PkiSyncDestinationFields.tsx | 5 +- .../pki-syncs/forms/PkiSyncDetailsFields.tsx | 4 +- .../PkiSyncOptionsFields.tsx | 2 +- .../pki-syncs/forms/PkiSyncReviewFields.tsx | 2 +- .../pki-syncs/forms/PkiSyncSourceFields.tsx | 2 +- .../src/components/pki-syncs/forms/index.ts | 2 +- ...ate-manager-pki-sync-destination-schema.ts | 65 + ...e-key-vault-pki-sync-destination-schema.ts | 33 + .../base-pki-sync-schema.ts} | 49 +- .../forms/schemas/pki-sync-schema.ts | 28 + .../project/ProjectOverviewChangeSection.tsx | 4 +- .../components/projects/NewProjectModal.tsx | 14 +- .../CreateSecretRotationV2Modal.tsx | 2 +- .../SecretRotationV2ModalHeader.tsx | 2 +- .../SecretRotationV2StatusBadge.tsx | 10 +- ...iewRotationGeneratedCredentialsDisplay.tsx | 4 +- .../SecretRotationV2ConfigurationFields.tsx | 4 +- .../forms/SecretRotationV2DetailsFields.tsx | 2 +- .../forms/SecretRotationV2Form.tsx | 2 +- ...h0ClientSecretRotationParametersFields.tsx | 2 +- ...reClientSecretRotationParametersFields.tsx | 2 +- .../LdapPasswordRotationParametersFields.tsx | 4 +- ...disCredentialsRotationParametersFields.tsx | 6 +- ...SqlCredentialsRotationParametersFields.tsx | 2 +- .../shared/SecretsMappingTable.tsx | 4 +- .../CreateSecretScanningDataSourceModal.tsx | 2 +- .../SecretScanningDataSourceModalHeader.tsx | 2 +- .../SecretScanningScanStatus.tsx | 8 +- .../SecretScanningDataSourceDetailsFields.tsx | 2 +- .../forms/SecretScanningDataSourceForm.tsx | 2 +- .../SecretSyncImportStatusBadge.tsx | 6 +- .../secret-syncs/SecretSyncModalHeader.tsx | 2 +- .../SecretSyncRemoveStatusBadge.tsx | 6 +- .../secret-syncs/SecretSyncSelect.tsx | 2 +- .../forms/CreateSecretSyncForm.tsx | 4 +- .../DuplicateDestinationConfirmationModal.tsx | 57 + .../secret-syncs/forms/EditSecretSyncForm.tsx | 187 +- .../AwsParameterStoreSyncFields.tsx | 6 +- .../shared/AwsRegionSelect.tsx | 2 +- .../forms/SecretSyncDetailsFields.tsx | 2 +- .../AwsParameterStoreSyncOptionsFields.tsx | 10 +- .../AwsSecretsManagerSyncOptionsFields.tsx | 12 +- .../SecretSyncOptionsFields.tsx | 4 +- .../AwsParameterStoreSyncReviewFields.tsx | 4 +- .../AwsSecretsManagerSyncReviewFields.tsx | 4 +- .../SecretSyncReviewFields.tsx | 37 +- .../SecretReferenceDetails.tsx | 4 +- .../tags/CreateTagModal/CreateTagModal.tsx | 10 +- .../AccessRestrictedBanner.tsx | 2 +- .../src/components/v2/Accordion/Accordion.tsx | 6 +- frontend/src/components/v2/Alert/Alert.tsx | 2 +- frontend/src/components/v2/Badge/Badge.tsx | 2 +- frontend/src/components/v2/Blur/Blur.tsx | 4 +- .../components/v2/Breadcrumb/Breadcrumb.tsx | 2 +- frontend/src/components/v2/Button/Button.tsx | 10 +- frontend/src/components/v2/Card/Card.tsx | 4 +- .../src/components/v2/Checkbox/Checkbox.tsx | 2 +- .../ConfirmActionModal/ConfirmActionModal.tsx | 2 +- .../v2/ContentLoader/ContentLoader.tsx | 2 +- .../v2/CreatableSelect/CreatableSelect.tsx | 4 +- .../components/v2/DatePicker/DatePicker.tsx | 4 +- .../DeleteActionModal/DeleteActionModal.tsx | 2 +- frontend/src/components/v2/Drawer/Drawer.tsx | 8 +- .../src/components/v2/Dropdown/Dropdown.tsx | 16 +- frontend/src/components/v2/Editor/Editor.tsx | 4 +- .../v2/FilterableSelect/FilterableSelect.tsx | 10 +- .../FontAwesomeSymbol/FontAwesomeSymbol.tsx | 2 +- .../components/v2/FormControl/FormControl.tsx | 4 +- .../GenericFieldLabel/GenericFieldLabel.tsx | 2 +- .../v2/HeaderResizer/HeaderResizer.tsx | 2 +- .../src/components/v2/HoverCard/HoverCard.tsx | 2 +- .../components/v2/IconButton/IconButton.tsx | 4 +- .../InfisicalSecretInput.tsx | 6 +- frontend/src/components/v2/Input/Input.tsx | 4 +- .../LeaveProjectModal/LeaveProjectModal.tsx | 2 +- frontend/src/components/v2/Menu/Menu.tsx | 6 +- frontend/src/components/v2/Modal/Modal.tsx | 8 +- .../v2/NoticeBanner/NoticeBanner.tsx | 2 +- .../components/v2/PageHeader/PageHeader.tsx | 2 +- .../components/v2/Pagination/Pagination.tsx | 4 +- .../PasswordGenerator/PasswordGenerator.tsx | 8 +- .../src/components/v2/Popover/Popover.tsx | 10 +- .../src/components/v2/Popoverv2/Popoverv2.tsx | 12 +- .../components/v2/RadioGroup/RadioGroup.tsx | 4 +- .../components/v2/SecretInput/SecretInput.tsx | 6 +- .../v2/SecretPathInput/SecretPathInput.tsx | 6 +- frontend/src/components/v2/Select/Select.tsx | 10 +- frontend/src/components/v2/Slider/Slider.tsx | 2 +- .../src/components/v2/Stepper/Stepper.tsx | 11 +- frontend/src/components/v2/Switch/Switch.tsx | 2 +- frontend/src/components/v2/Table/Table.tsx | 6 +- frontend/src/components/v2/Tabs/Tabs.tsx | 6 +- frontend/src/components/v2/Tag/Tag.tsx | 2 +- .../src/components/v2/TextArea/TextArea.tsx | 4 +- .../src/components/v2/Tooltip/Tooltip.tsx | 6 +- .../OrgPermissionContext.tsx | 15 +- .../ProjectPermissionContext.tsx | 12 +- frontend/src/helpers/auditLogStreams.ts | 3 +- frontend/src/helpers/pkiSyncs.ts | 7 +- frontend/src/hooks/api/admin/queries.ts | 74 +- frontend/src/hooks/api/admin/types.ts | 35 +- .../src/hooks/api/auditLogStreams/enums.ts | 3 +- .../hooks/api/auditLogStreams/types/index.ts | 2 + .../types/providers/qradar-provider.ts | 7 + .../api/identityAuthTemplates/queries.tsx | 2 +- .../hooks/api/identityAuthTemplates/types.ts | 1 + frontend/src/hooks/api/pam/enums.ts | 5 +- frontend/src/hooks/api/pam/maps.ts | 5 +- frontend/src/hooks/api/pkiSyncs/enums.ts | 3 +- .../types/aws-certificate-manager-sync.ts | 16 + .../src/hooks/api/pkiSyncs/types/index.ts | 39 +- frontend/src/hooks/api/reactQuery.tsx | 2 +- frontend/src/hooks/api/relays/types.ts | 1 + frontend/src/hooks/api/roles/mutation.tsx | 15 +- frontend/src/hooks/api/roles/queries.tsx | 25 +- frontend/src/hooks/api/secretSyncs/index.ts | 1 + .../src/hooks/api/secretSyncs/queries.tsx | 44 +- .../useDuplicateDestinationCheck.ts | 51 + frontend/src/hooks/api/secrets/types.ts | 1 - frontend/src/hooks/api/users/queries.tsx | 14 +- frontend/src/hooks/api/users/types.ts | 11 +- frontend/src/hooks/useSyntaxHighlight.tsx | 2 +- frontend/src/index.css | 483 +- .../src/layouts/AdminLayout/AdminLayout.tsx | 6 +- frontend/src/layouts/AdminLayout/Sidebar.tsx | 4 +- frontend/src/layouts/KmsLayout/KmsLayout.tsx | 8 +- .../OrganizationLayout/OrganizationLayout.tsx | 6 +- .../MenuIconButton/MenuIconButton.tsx | 7 +- .../components/NavBar/Navbar.tsx | 34 +- .../components/NavBar/Notification.tsx | 8 +- .../NavBar/NotificationDropdown.tsx | 6 +- .../OrgAlertBanner/OrgAlertBanner.tsx | 2 +- .../components/OrgSidebar/OrgSidebar.tsx | 6 +- .../SidebarHeader/SidebarHeader.tsx | 4 +- frontend/src/layouts/PamLayout/PamLayout.tsx | 8 +- .../PersonalSettingsLayout.tsx | 12 +- .../PkiManagerLayout/PkiManagerLayout.tsx | 10 +- .../AssumePrivilegeModeBanner.tsx | 2 +- .../ProjectSelect/ProjectSelect.tsx | 6 +- .../SecretManagerLayout.tsx | 10 +- .../SecretScanningLayout.tsx | 10 +- frontend/src/layouts/SshLayout/SshLayout.tsx | 8 +- .../components/AddServerAdminModal.tsx | 22 +- .../components/ServerAdminsTable.tsx | 90 +- .../components/AuthenticationPageForm.tsx | 2 +- .../components/CachingPageForm.tsx | 2 +- .../components/EncryptionPageForm.tsx | 2 +- .../components/EnvironmentPageForm.tsx | 6 +- .../components/GeneralPageForm.tsx | 14 +- .../components/IntegrationsPageForm.tsx | 2 +- .../MicrosoftTeamsIntegrationForm.tsx | 2 +- .../components/SlackIntegrationForm.tsx | 4 +- .../components/AddOrganizationModal.tsx | 21 +- .../components/MachineIdentitiesTable.tsx | 168 +- .../components/OrganizationsTable.tsx | 246 +- .../components/UserIdentitiesTable.tsx | 92 +- .../src/pages/admin/SignUpPage/SignUpPage.tsx | 2 +- .../auth/CliRedirectPage/CliRedirectPage.tsx | 6 +- .../EmailNotVerifiedPage.tsx | 6 +- .../auth/LoginLdapPage/LoginLDAPPage.tsx | 14 +- .../src/pages/auth/LoginPage/LoginPage.tsx | 4 +- .../components/InitialStep/InitialStep.tsx | 4 +- .../components/PasswordStep/PasswordStep.tsx | 12 +- .../LoginPage/components/SSOStep/SSOStep.tsx | 6 +- .../pages/auth/LoginSsoPage/LoginSsoPage.tsx | 4 +- .../PasswordResetPage/PasswordResetPage.tsx | 4 +- .../components/ConfirmEmailStep.tsx | 2 +- .../components/EnterPasswordStep.tsx | 4 +- .../components/InputBackupKeyStep.tsx | 2 +- .../PasswordSetupPage/PasswordSetupPage.tsx | 2 +- .../EmailDuplicationConfirmation.tsx | 16 +- .../auth/SelectOrgPage/SelectOrgSection.tsx | 8 +- .../SignUpInvitePage/SignUpInvitePage.tsx | 16 +- .../src/pages/auth/SignUpPage/SignUpPage.tsx | 4 +- .../auth/SignUpSsoPage/SignUpSsoPage.tsx | 4 +- .../EmailConfirmationStep.tsx | 6 +- .../UserInfoSSOStep/UserInfoSSOStep.tsx | 8 +- .../auth/VerifyEmailPage/VerifyEmailPage.tsx | 8 +- .../AlertingPage/components/PkiAlertRow.tsx | 2 +- .../components/PkiAlertsSection.tsx | 2 +- .../components/PkiCollectionSection.tsx | 2 +- .../components/PkiCollectionTable.tsx | 2 +- .../CertAuthDetailsByIDPage.tsx | 2 +- .../CaCertificatesSection.tsx | 2 +- .../CaCrlsSection/CaCrlsSection.tsx | 2 +- .../components/CaDetailsSection.tsx | 22 +- .../ExternalCaInstallForm.tsx | 2 +- .../components/CaSection.tsx | 2 +- .../components/ExternalCaSection.tsx | 2 +- .../components/CertificateContent.tsx | 6 +- .../components/CertificateModal.tsx | 4 +- .../CertificateTemplateEnrollmentModal.tsx | 2 +- .../components/CertificateTemplateModal.tsx | 4 +- .../CertificateTemplatesSection.tsx | 2 +- .../components/CertificatesSection.tsx | 2 +- .../IntegrationsListPage.tsx | 2 +- .../PkiSyncsTab/PkiSyncTable/PkiSyncRow.tsx | 16 +- .../PkiSyncTable/PkiSyncTableCell.tsx | 2 +- .../PkiSyncTable/PkiSyncsTable.tsx | 4 +- .../components/PkiSyncsTab/PkiSyncsTab.tsx | 4 +- .../PkiCollectionDetailsByIDPage.tsx | 2 +- .../PkiCollectionDetailsSection.tsx | 8 +- .../components/PkiCollectionItemsSection.tsx | 2 +- .../PkiSubscriberDetailsByIDPage.tsx | 2 +- .../PkiSubscriberCertificatesSection.tsx | 2 +- .../PkiSubscriberDetailsSection.tsx | 14 +- .../components/PkiSubscriberModal.tsx | 4 +- .../components/PkiSubscriberSection.tsx | 2 +- .../PkiSyncDetailsByIDPage.tsx | 4 +- .../components/PkiSyncActionTriggers.tsx | 4 +- .../components/PkiSyncAuditLogsSection.tsx | 2 +- .../components/PkiSyncDestinationSection.tsx | 2 +- .../components/PkiSyncDetailsSection.tsx | 6 +- .../PkiSyncOptionsSection.tsx | 2 +- .../components/PkiSyncSourceSection.tsx | 2 +- .../PkiTemplateListPage.tsx | 2 +- .../components/PkiTemplateForm.tsx | 4 +- .../KmipPage/components/KmipClientModal.tsx | 4 +- .../KmipPage/components/KmipClientTable.tsx | 2 +- .../components/CmekDecryptModal.tsx | 4 +- .../components/CmekEncryptModal.tsx | 4 +- .../kms/OverviewPage/components/CmekModal.tsx | 2 +- .../OverviewPage/components/CmekSignModal.tsx | 7 +- .../kms/OverviewPage/components/CmekTable.tsx | 2 +- .../components/CmekVerifyModal.tsx | 9 +- .../middlewares/restrict-login-signup.tsx | 2 +- .../AccessManagementPage.tsx | 4 +- .../OrgGroupsSection/OrgGroupsSection.tsx | 2 +- .../IdentityAliCloudAuthForm.tsx | 2 +- .../IdentityAuthTemplatesTable.tsx | 15 +- .../IdentitySection/IdentityAwsAuthForm.tsx | 2 +- .../IdentitySection/IdentityAzureAuthForm.tsx | 2 +- .../IdentitySection/IdentityGcpAuthForm.tsx | 2 +- .../IdentitySection/IdentityJwtAuthForm.tsx | 8 +- .../IdentityKubernetesAuthForm.tsx | 2 +- .../IdentitySection/IdentityLdapAuthForm.tsx | 6 +- .../IdentitySection/IdentityModal.tsx | 7 +- .../IdentitySection/IdentityOciAuthForm.tsx | 2 +- .../IdentitySection/IdentityOidcAuthForm.tsx | 10 +- .../IdentitySection/IdentitySection.tsx | 8 +- .../IdentitySection/IdentityTable.tsx | 6 +- .../IdentityTlsCertAuthForm.tsx | 2 +- .../IdentitySection/IdentityTokenAuthForm.tsx | 2 +- .../IdentityUniversalAuthForm.tsx | 4 +- .../IdentitySection/lockout/LockoutTab.tsx | 22 +- .../OrgMembersSection/AddOrgMemberModal.tsx | 21 +- .../OrgMembersSection/OrgInviteLink.tsx | 2 +- .../OrgMembersSection/OrgMembersSection.tsx | 8 +- .../OrgMembersSection/OrgMembersTable.tsx | 8 +- .../OrgRoleTabSection/OrgRoleTable.tsx | 6 +- .../UpgradePrivilegeSystemModal.tsx | 7 +- .../AppConnectionsPage/AppConnectionsPage.tsx | 2 +- .../1PasswordConnectionForm.tsx | 2 +- .../AppConnectionForm/Auth0ConnectionForm.tsx | 2 +- .../AppConnectionForm/AwsConnectionForm.tsx | 4 +- .../AzureADCSConnectionForm.tsx | 12 +- .../BitbucketConnectionForm.tsx | 2 +- .../CamundaConnectionForm.tsx | 2 +- .../ChecklyConnectionForm.tsx | 2 +- .../CloudflareConnectionForm.tsx | 2 +- .../DatabricksConnectionForm.tsx | 2 +- .../DigitalOceanConnectionForm.tsx | 2 +- .../AppConnectionForm/FlyioConnectionForm.tsx | 2 +- .../AppConnectionForm/GcpConnectionForm.tsx | 4 +- .../GenericAppConnectionFields.tsx | 2 +- .../GitLabConnectionForm.tsx | 2 +- .../HCVaultConnectionForm.tsx | 4 +- .../HerokuAppConnectionForm.tsx | 2 +- .../HumanitecConnectionForm.tsx | 2 +- .../AppConnectionForm/LdapConnectionForm.tsx | 12 +- .../NetlifyConnectionForm.tsx | 2 +- .../AppConnectionForm/OCIConnectionForm.tsx | 2 +- .../AppConnectionForm/OktaConnectionForm.tsx | 2 +- .../RailwayConnectionForm.tsx | 2 +- .../AppConnectionForm/RedisConnectionForm.tsx | 16 +- .../RenderConnectionForm.tsx | 2 +- .../SupabaseConnectionForm.tsx | 2 +- .../TeamCityConnectionForm.tsx | 2 +- .../TerraformCloudConnectionForm.tsx | 2 +- .../VercelConnectionForm.tsx | 2 +- .../WindmillConnectionForm.tsx | 2 +- .../shared/SqlConnectionFields.tsx | 12 +- .../components/AppConnectionHeader.tsx | 6 +- .../components/AppConnectionList.tsx | 4 +- .../components/AppConnectionRow.tsx | 8 +- .../components/AppConnectionsTable.tsx | 10 +- .../components/LogsDateFilter.tsx | 76 +- .../AuditLogsPage/components/LogsFilter.tsx | 10 +- .../AuditLogsPage/components/LogsSection.tsx | 4 +- .../AuditLogsPage/components/LogsTableRow.tsx | 8 +- .../AuditLogsPage/components/types.tsx | 14 +- .../BillingCloudTab/CurrentPlanSection.tsx | 20 +- .../BillingCloudTab/ManagePlansModal.tsx | 8 +- .../BillingCloudTab/PreviewSection.tsx | 12 +- .../BillingDetailsTab/CompanyNameSection.tsx | 2 +- .../BillingDetailsTab/InvoiceEmailSection.tsx | 2 +- .../BillingDetailsTab/PmtMethodsSection.tsx | 2 +- .../BillingDetailsTab/TaxIDSection.tsx | 2 +- .../BillingReceiptsTab/BillingReceiptsTab.tsx | 2 +- .../BillingSelfHostedTab/LicensesSection.tsx | 2 +- .../GroupDetailsByIDPage.tsx | 4 +- .../components/GroupDetailsSection.tsx | 14 +- .../GroupMembersSection.tsx | 2 +- .../IdentityAuthenticationSection.tsx | 2 +- .../IdentityClientSecrets.tsx | 6 +- .../IdentityTokens.tsx | 4 +- .../components/IdentityClientSecretModal.tsx | 2 +- .../components/IdentityDetailsSection.tsx | 21 +- .../IdentityProjectsSection.tsx | 2 +- .../components/IdentityTokenModal.tsx | 2 +- .../IdentityAuthFieldDisplay.tsx | 4 +- .../IdentityTokenAuthTokensTable.tsx | 2 +- ...dentityUniversalAuthClientSecretsTable.tsx | 2 +- .../ViewIdentityJwtAuthContent.tsx | 12 +- .../ViewIdentityKubernetesAuthContent.tsx | 10 +- .../ViewIdentityLdapAuthContent.tsx | 10 +- .../ViewIdentityOidcAuthContent.tsx | 12 +- .../ViewIdentityTlsCertAuthContent.tsx | 6 +- .../components/GatewayTab/GatewayTab.tsx | 4 +- .../components/RelayTab/RelayTab.tsx | 37 +- .../components/AllProjectView.tsx | 6 +- .../ProjectsPage/components/MyProjectView.tsx | 23 +- .../RoleByIDPage/RoleByIDPage.tsx | 2 +- .../OrgPermissionAdminConsoleRow.tsx | 2 +- .../OrgPermissionAppConnectionRow.tsx | 2 +- .../OrgPermissionAuditLogsRow.tsx | 2 +- .../OrgPermissionBillingRow.tsx | 2 +- .../OrgPermissionGatewayRow.tsx | 2 +- .../OrgPermissionGroupRow.tsx | 2 +- .../OrgPermissionIdentityRow.tsx | 2 +- .../OrgPermissionKmipRow.tsx | 2 +- ...rmissionMachineIdentityAuthTemplateRow.tsx | 2 +- .../OrgPermissionRelayRow.tsx | 2 +- .../OrgPermissionSecretShareRow.tsx | 2 +- .../OrgRoleWorkspaceRow.tsx | 2 +- .../RolePermissionRow.tsx | 2 +- .../RolePermissionsSection.tsx | 2 +- .../RequestSecret/RequestSecretForm.tsx | 2 +- .../RequestSecret/RequestSecretTab.tsx | 2 +- .../components/ShareSecret/ShareSecretTab.tsx | 2 +- .../OrgSecretShareLimitSection.tsx | 6 +- .../AzureProviderAuditLogStreamForm.tsx | 2 +- .../CriblProviderAuditLogStreamForm.tsx | 2 +- .../CustomProviderAuditLogStreamForm.tsx | 2 +- .../DatadogProviderAuditLogStreamForm.tsx | 2 +- .../SplunkProviderAuditLogStreamForm.tsx | 2 +- .../AuditLogStreamTab/AuditLogStreamTab.tsx | 2 +- .../components/AuditLogStreamHeader.tsx | 4 +- .../components/AuditLogStreamRow.tsx | 2 +- .../components/AuditLogStreamTable.tsx | 2 +- .../components/LogStreamProviderSelect.tsx | 83 +- .../ExternalMigrationsTab.tsx | 12 +- .../components/GenericDropzone.tsx | 2 +- .../SelectImportFromPlatformModal.tsx | 4 +- .../components/VaultPlatformModal.tsx | 6 +- .../components/KmipTab/OrgKmipTab.tsx | 2 +- .../OrgDeleteSection/OrgDeleteSection.tsx | 5 +- .../OrgEncryptionTab/AddExternalKmsForm.tsx | 4 +- .../OrgEncryptionTab/OrgEncryptionTab.tsx | 2 +- .../OrgGeneralTab/OrgGeneralTab.tsx | 5 +- .../OrgNameChangeSection.tsx | 2 +- .../OrgProductSelectSection.tsx | 2 +- .../ExternalGroupOrgRoleMappings.tsx | 6 +- .../GithubOrgSyncConfigModal.tsx | 2 +- .../OrgGithubSyncSection.tsx | 2 +- .../OrgProvisioningTab/OrgSCIMSection.tsx | 2 +- .../OrgProvisioningTab/ScimTokenModal.tsx | 4 +- .../OrgUserAccessTokenLimitSection.tsx | 6 +- .../OrgSsoTab/OrgGeneralAuthSection.tsx | 4 +- .../components/OrgSsoTab/OrgLDAPSection.tsx | 2 +- .../components/OrgSsoTab/OrgOIDCSection.tsx | 4 +- .../components/OrgSsoTab/OrgSSOSection.tsx | 4 +- .../components/OrgSsoTab/OrgSsoTab.tsx | 6 +- .../components/OrgSsoTab/SSOModalHeader.tsx | 2 +- .../AddWorkflowIntegrationForm.tsx | 4 +- .../OrgWorkflowIntegrationTab.tsx | 2 +- .../components/EditProjectTemplate.tsx | 2 +- .../ProjectTemplateEditRoleForm.tsx | 4 +- .../ProjectTemplateEnvironmentsForm.tsx | 6 +- .../ProjectTemplateRolesSection.tsx | 4 +- .../ProjectTemplateDetailsModal.tsx | 4 +- .../components/ProjectTemplatesSection.tsx | 8 +- .../UserDetailsByIDPage.tsx | 4 +- .../components/UserDetailsSection.tsx | 30 +- .../components/UserOrgMembershipModal.tsx | 4 +- .../UserAuditLogsSection.tsx | 2 +- .../UserProjectsSection/UserGroupsSection.tsx | 2 +- .../UserProjectsSection.tsx | 2 +- .../PamAccountForm/GenericAccountFields.tsx | 17 +- .../components/PamAccountHeader.tsx | 2 +- .../components/PamAccountRow.tsx | 4 +- .../components/PamAccountsTable.tsx | 6 +- .../components/PamFolderForm.tsx | 14 +- .../components/PamFolderRow.tsx | 2 +- .../components/PamResourceOption.tsx | 4 +- .../PamResourceForm/GenericResourceFields.tsx | 11 +- .../shared/SqlResourceFields.tsx | 10 +- .../components/PamResourceHeader.tsx | 2 +- .../components/PamResourceRow.tsx | 2 +- .../components/PamResourcesTable.tsx | 10 +- .../components/ResourceTypeSelect.tsx | 55 +- .../PamSessionByIDPage.tsx | 6 +- .../components/PamSessionDetailsSection.tsx | 6 +- .../components/PamSessionLogsSection.tsx | 94 +- .../components/PamSessionRow.tsx | 4 +- .../components/PamSessionsTable.tsx | 2 +- .../components/GroupsSection/GroupRoles.tsx | 4 +- .../GroupsSection/GroupsSection.tsx | 2 +- .../components/IdentityTab/IdentityTab.tsx | 4 +- .../MembersTab/components/AddMemberModal.tsx | 35 +- .../SpecificPrivilegeSection.tsx | 10 +- .../MembersTab/components/MembersSection.tsx | 2 +- .../MembersTab/components/MembersTable.tsx | 4 +- .../ProjectRoleList/ProjectRoleList.tsx | 8 +- .../ServiceTokenTab/ServiceTokenTab.tsx | 6 +- .../AddServiceTokenModal.tsx | 6 +- .../ServiceTokenSection.tsx | 4 +- .../ServiceTokenSection/ServiceTokenTable.tsx | 2 +- .../components/GroupDetailsSection.tsx | 12 +- .../GroupMembersSection.tsx | 2 +- ...rojectAdditionalPrivilegeModifySection.tsx | 4 +- ...ntityProjectAdditionalPrivilegeSection.tsx | 4 +- .../IdentityRoleDetailsSection.tsx | 2 +- .../IdentityRoleModify.tsx | 2 +- ...emberProjectAdditionalPrivilegeSection.tsx | 4 +- ...rojectAdditionalPrivilegeModifySection.tsx | 4 +- .../MemberRoleDetailsSection.tsx | 2 +- .../MemberRoleModify.tsx | 2 +- .../RoleDetailsBySlugPage.tsx | 2 +- .../components/ConditionsFields.tsx | 6 +- .../components/GeneralPermissionPolicies.tsx | 8 +- .../components/PolicySelectionModal.tsx | 6 +- .../components/PolicyTemplateModal.tsx | 4 +- .../ProjectRoleModifySection.utils.tsx | 4 +- .../components/RoleModal.tsx | 9 + .../components/RolePermissionsSection.tsx | 4 +- .../AuditLogsRetentionSection.tsx | 8 +- .../DeleteProjectProtection.tsx | 2 +- .../DeleteProjectSection.tsx | 14 +- .../src/pages/public/ErrorPage/ErrorPage.tsx | 2 +- .../public/NotFoundPage/NotFoundPage.tsx | 4 +- .../ShareSecretPage/ShareSecretPage.tsx | 12 +- .../components/ShareSecretForm.tsx | 6 +- .../UpgradePathPage/UpgradePathPage.tsx | 22 +- .../ViewSecretRequestByIDPage.tsx | 12 +- .../components/SecretRequestContainer.tsx | 2 +- .../SecretRequestSuccessContainer.tsx | 2 +- .../SecretValueAlreadySharedContainer.tsx | 2 +- .../ViewSharedSecretByIDPage.tsx | 12 +- .../components/SecretContainer.tsx | 4 +- .../CommitDetailsPage/CommitDetailsPage.tsx | 2 +- .../CommitDetailsTab/CommitDetailsTab.tsx | 8 +- .../RollbackPreviewTab/RollbackPreviewTab.tsx | 4 +- .../SecretVersionDiffView.tsx | 38 +- .../CommitHistoryTab/CommitHistoryTab.tsx | 8 +- .../IPAllowlistPage/IPAllowlistPage.tsx | 2 +- .../components/IPAllowlistSection.tsx | 2 +- .../IntegrationsDetailsByIDPage.tsx | 4 +- .../IntegrationAuditLogsSection.tsx | 8 +- .../IntegrationConnectionSection.tsx | 34 +- .../components/IntegrationDetailsSection.tsx | 12 +- .../components/IntegrationSettingsSection.tsx | 2 +- .../components/OctopusDeployScopeValues.tsx | 4 +- .../IntegrationsListPage.tsx | 2 +- .../CloudIntegrationSection.tsx | 12 +- .../FrameworkIntegrationTab.tsx | 6 +- .../InfrastructureIntegrationTab.tsx | 2 +- .../NativeIntegrationsTab/IntegrationRow.tsx | 14 +- .../IntegrationsTable.tsx | 2 +- .../NativeIntegrationsTab.tsx | 2 +- .../SecretSyncTable/SecretSyncRow.tsx | 16 +- .../SecretSyncTable/SecretSyncTableCell.tsx | 2 +- .../SecretSyncTable/SecretSyncsTable.tsx | 4 +- .../SecretSyncsTab/SecretSyncsTab.tsx | 4 +- .../OverviewPage/OverviewPage.tsx | 32 +- .../FolderBreadCrumbs/FolderBreadCrumbs.tsx | 4 +- .../SecretOverviewFolderRow.tsx | 2 +- .../SecretOverviewRotationSecretRow.tsx | 4 +- .../SecretOverviewSecretRotationRow.tsx | 8 +- .../SecretOverviewTableRow/SecretEditRow.tsx | 2 +- .../SecretOverviewTableRow.tsx | 11 +- .../SecretRenameRow.tsx | 10 +- .../SecretSearchInput/SecretSearchInput.tsx | 10 +- .../components/QuickSearchModal.tsx | 6 +- .../components/QuickSearchSecretItem.tsx | 4 +- .../SecretTableResourceCount.tsx | 10 +- .../SecretV2MigrationSection.tsx | 8 +- .../SelectionPanel/SelectionPanel.tsx | 2 +- .../MoveSecretsDialog/MoveSecretsDialog.tsx | 6 +- .../AccessApprovalRequest.tsx | 18 +- .../components/EditAccessRequestModal.tsx | 4 +- .../components/ReviewAccessModal.tsx | 16 +- .../ApprovalPolicyList/ApprovalPolicyList.tsx | 6 +- .../components/AccessPolicyModal.tsx | 8 +- .../components/ApprovalPolicyRow.tsx | 17 +- .../components/PolicyMemberOption.tsx | 2 +- .../components/RemoveApprovalPolicyModal.tsx | 2 +- .../SecretApprovalRequest.tsx | 12 +- .../SecretApprovalRequestAction.tsx | 2 +- .../SecretApprovalRequestChangeItem.tsx | 38 +- .../SecretApprovalRequestChanges.tsx | 30 +- .../SecretDashboardPage.tsx | 16 +- .../components/ActionBar/ActionBar.tsx | 8 +- .../AwsElastiCacheInputForm.tsx | 6 +- .../AwsIamInputForm.tsx | 14 +- .../AzureEntraIdInputForm.tsx | 12 +- .../AzureSqlDatabaseInputForm.tsx | 16 +- .../CassandraInputForm.tsx | 6 +- .../CouchbaseInputForm.tsx | 18 +- .../CreateDynamicSecretForm.tsx | 6 +- .../ElasticSearchInputForm.tsx | 8 +- .../GcpIamInputForm.tsx | 6 +- .../GithubInputForm.tsx | 14 +- .../KubernetesInputForm.tsx | 8 +- .../CreateDynamicSecretForm/LdapInputForm.tsx | 6 +- .../MongoAtlasInputForm.tsx | 24 +- .../MongoDBInputForm.tsx | 12 +- .../RabbitMqInputForm.tsx | 8 +- .../RedisInputForm.tsx | 6 +- .../SapAseInputForm.tsx | 6 +- .../SapHanaInputForm.tsx | 6 +- .../SnowflakeInputForm.tsx | 12 +- .../SqlDatabaseInputForm.tsx | 10 +- .../CreateDynamicSecretForm/TotpInputForm.tsx | 12 +- .../VerticaInputForm.tsx | 8 +- .../components/ActionBar/FolderForm.tsx | 2 +- .../ReplicateFolderFromBoard.tsx | 4 +- .../SecretTreeView.tsx | 16 +- .../components/CommitForm/CommitForm.tsx | 8 +- .../CompareEnvironments.tsx | 18 +- .../SecretRotationRow/SecretRotationRow.tsx | 12 +- .../SecretRow/EnvironmentSecretRow.tsx | 2 +- .../components/SecretRow/SecretRow.tsx | 6 +- .../CreateDynamicSecretLease.tsx | 6 +- .../DynamicSecretListView.tsx | 2 +- ...ynamicSecretAwsElastiCacheProviderForm.tsx | 6 +- .../EditDynamicSecretAwsIamForm.tsx | 12 +- .../EditDynamicSecretAzureEntraIdForm.tsx | 12 +- .../EditDynamicSecretAzureSqlDatabaseForm.tsx | 16 +- .../EditDynamicSecretCassandraForm.tsx | 4 +- .../EditDynamicSecretCouchbaseForm.tsx | 18 +- .../EditDynamicSecretElasticSearchForm.tsx | 10 +- .../EditDynamicSecretGcpIamForm.tsx | 6 +- .../EditDynamicSecretGithubForm.tsx | 14 +- .../EditDynamicSecretKubernetesForm.tsx | 8 +- .../EditDynamicSecretLdapForm.tsx | 2 +- .../EditDynamicSecretMongoAtlasForm.tsx | 24 +- .../EditDynamicSecretMongoDBForm.tsx | 12 +- .../EditDynamicSecretRabbitMqForm.tsx | 8 +- .../EditDynamicSecretRedisProviderForm.tsx | 6 +- .../EditDynamicSecretSapAseForm.tsx | 6 +- .../EditDynamicSecretSapHanaForm.tsx | 6 +- .../EditDynamicSecretSnowflakeForm.tsx | 10 +- .../EditDynamicSecretSqlProviderForm.tsx | 10 +- .../EditDynamicSecretTotpForm.tsx | 12 +- .../EditDynamicSecretVertica.tsx | 8 +- .../DynamicSecretListView/MetadataForm.tsx | 4 +- .../EnvironmentTabs/EnvironmentTabs.tsx | 8 +- .../FolderBreadCrumbs/FolderBreadCrumbs.tsx | 4 +- .../FolderListView/FolderListView.tsx | 4 +- .../SecretDropzone/CopySecretsFromBoard.tsx | 2 +- .../SecretDropzone/PasteSecretEnvModal.tsx | 2 +- .../SecretDropzone/SecretDropzone.tsx | 6 +- .../SecretImportListView/SecretImportItem.tsx | 12 +- .../CollapsibleSecretImports.tsx | 4 +- .../SecretListView/CreateReminderForm.tsx | 4 +- .../SecretListView/SecretDetailSidebar.tsx | 43 +- .../components/SecretListView/SecretItem.tsx | 25 +- .../SecretListView/SecretNoAccessListView.tsx | 6 +- .../SecretListView/SecretVersionItem.tsx | 8 +- .../SecretRotationItem.tsx | 4 +- .../SecretRotationSecretRow.tsx | 6 +- .../components/SnapshotView/SecretItem.tsx | 8 +- .../components/SnapshotView/SnapshotView.tsx | 14 +- .../SecretRotationPage/SecretRotationPage.tsx | 16 +- .../steps/RotationOutputForm.tsx | 2 +- .../SecretSyncDetailsByIDPage.tsx | 4 +- .../components/SecretSyncActionTriggers.tsx | 4 +- .../components/SecretSyncAuditLogsSection.tsx | 2 +- .../OCIVaultSyncDestinationSection.tsx | 6 +- .../SecretSyncDestinatonSection.tsx | 2 +- .../components/SecretSyncDetailsSection.tsx | 6 +- .../AwsParameterStoreSyncOptionsSection.tsx | 4 +- .../AwsSecretsManagerSyncOptionsSection.tsx | 4 +- .../SecretSyncOptionsSection.tsx | 2 +- .../components/SecretSyncSourceSection.tsx | 2 +- .../AutoCapitalizationSection.tsx | 2 +- .../BackfillSecretReferenceSection.tsx | 8 +- .../EncryptionTab/EncryptionTab.tsx | 2 +- .../EnvironmentSection/EnvironmentSection.tsx | 2 +- .../PointInTimeVersionLimitSection.tsx | 8 +- .../SecretDetectionIgnoreValuesSection.tsx | 10 +- .../SecretSharingSection.tsx | 2 +- .../SecretSnapshotsLegacySection.tsx | 2 +- .../SecretTagsSection/SecretTagsSection.tsx | 2 +- .../components/WebhooksTab/WebhooksTab.tsx | 4 +- .../WorkflowIntegrationTab.tsx | 2 +- .../AddWorkflowIntegrationModal.tsx | 8 +- .../MicrosoftTeamsIntegrationForm.tsx | 2 +- .../components/SlackIntegrationForm.tsx | 2 +- .../AwsParameterStoreAuthorizePage.tsx | 6 +- .../AwsParamterStoreConfigurePage.tsx | 10 +- .../AwsSecretManagerAuthorizePage.tsx | 6 +- .../AwsSecretManagerConfigurePage.tsx | 8 +- .../AzureAppConfigurationConfigurePage.tsx | 6 +- .../AzureDevopsAuthorizePage.tsx | 6 +- .../AzureDevopsConfigurePage.tsx | 6 +- .../AzureKeyVaultAuthorizePage.tsx | 4 +- .../BitbucketConfigurePage.tsx | 2 +- .../ChecklyAuthorizePage.tsx | 6 +- .../ChecklyConfigurePage.tsx | 10 +- .../CircleCIAuthorizePage.tsx | 6 +- .../CircleCIConfigurePage.tsx | 4 +- .../CloudflarePagesAuthorizePage.tsx | 2 +- .../CloudflarePagesConfigurePage.tsx | 4 +- .../CloudflareWorkersAuthorizePage.tsx | 2 +- .../CloudflareWorkersConfigurePage.tsx | 4 +- .../DatabricksAuthorizePage.tsx | 6 +- .../DatabricksConfigurePage.tsx | 6 +- .../FlyioAuthorizePage/FlyioAuthorizePage.tsx | 4 +- .../FlyioConfigurePage/FlyioConfigurePage.tsx | 6 +- .../GcpSecretManagerAuthorizePage.tsx | 4 +- .../GcpSecretManagerConfigurePage.tsx | 8 +- .../GithubAuthorizePage.tsx | 6 +- .../GithubConfigurePage.tsx | 18 +- .../GitlabAuthorizePage.tsx | 4 +- .../GitlabConfigurePage.tsx | 10 +- .../HashicorpVaultAuthorizePage.tsx | 6 +- .../HashicorpVaultConfigurePage.tsx | 4 +- .../HasuraCloudAuthorizePage.tsx | 4 +- .../HasuraCloudConfigurePage.tsx | 6 +- .../HerokuConfigurePage.tsx | 6 +- .../OctopusDeployAuthorizePage.tsx | 6 +- .../OctopusDeployConfigurePage.tsx | 4 +- .../QoveryAuthorizePage.tsx | 6 +- .../QoveryConfigurePage.tsx | 8 +- .../RenderAuthorizePage.tsx | 6 +- .../RenderConfigurePage.tsx | 8 +- .../RundeckAuthorizePage.tsx | 4 +- .../RundeckConfigurePage.tsx | 6 +- .../TeamcityAuthorizePage.tsx | 6 +- .../TeamcityConfigurePage.tsx | 6 +- .../TerraformCloudAuthorizePage.tsx | 6 +- .../TerraformCloudConfigurePage.tsx | 6 +- .../VercelConfigurePage.tsx | 6 +- .../SecretScanningDataSourceByIdPage.tsx | 4 +- .../SecretScanningDataSourceSection.tsx | 4 +- .../components/SecretScanningResourceRow.tsx | 6 +- .../SecretScanningResourceSection.tsx | 2 +- .../SecretScanningResourceTable.tsx | 2 +- .../components/SecretScanningScanRow.tsx | 2 +- .../components/SecretScanningScanSection.tsx | 2 +- .../components/SecretScanningScanTable.tsx | 2 +- .../SecretScanningDataSourceRow.tsx | 8 +- .../SecretScanningDataSourcesSection.tsx | 4 +- .../SecretScanningDataSourcesTable.tsx | 2 +- .../components/SecretScanningFindingRow.tsx | 8 +- .../SecretScanningFindingsSection.tsx | 4 +- .../SecretScanningFindingsTable.tsx | 4 +- .../SecretScanningUpdateFindingModal.tsx | 2 +- .../SecretScanningConfigForm.tsx | 6 +- .../components/ProjectSshConfigCasSection.tsx | 2 +- .../pages/ssh/SshCaByIDPage/SshCaByIDPage.tsx | 2 +- .../components/SshCaDetailsSection.tsx | 12 +- .../components/SshCertificateContent.tsx | 6 +- .../SshCertificateTemplatesSection.tsx | 2 +- .../SshCasPage/components/SshCaSection.tsx | 2 +- .../components/SshCertificatesSection.tsx | 2 +- .../SshHostGroupDetailsByIDPage.tsx | 2 +- .../components/SshHostGroupDetailsSection.tsx | 6 +- .../components/SshHostGroupHostsSection.tsx | 2 +- .../components/SshHostGroupModal.tsx | 4 +- .../components/SshHostGroupsSection.tsx | 2 +- .../components/SshHostGroupsTable.tsx | 2 +- .../SshHostsPage/components/SshHostModal.tsx | 4 +- .../components/SshHostsSection.tsx | 2 +- .../SshHostsPage/components/SshHostsTable.tsx | 2 +- .../PersonalSettingsPage.tsx | 4 +- .../APIKeySection/APIKeySection.tsx | 2 +- .../APIKeySection/AddAPIKeyModal.tsx | 4 +- .../AuthMethodSection/AuthMethodSection.tsx | 4 +- .../ChangeEmailSection/ChangeEmailSection.tsx | 2 +- .../ChangePasswordSection.tsx | 4 +- .../DeleteAccountSection.tsx | 2 +- .../PersonalTabGroup/PersonalTabGroup.tsx | 6 +- .../components/SecuritySection/MFASection.tsx | 8 +- .../SessionsSection/SessionsSection.tsx | 2 +- .../UserNameSection/UserNameSection.tsx | 2 +- frontend/tailwind.config.js | 576 -- helm-charts/infisical-gateway/Chart.yaml | 4 +- helm-charts/infisical-gateway/values.yaml | 2 +- .../CHANGELOG.md | 6 + .../infisical-standalone-postgres/Chart.yaml | 2 +- .../templates/schema-migration-job.yaml | 8 + sink/oidc-server/package-lock.json | 587 +- sink/oidc-server/package.json | 4 +- 1020 files changed, 23364 insertions(+), 13891 deletions(-) create mode 100644 backend/src/db/migrations/20251005152640_simplify-membership.ts create mode 100644 backend/src/db/migrations/20251008003912_relay-heartbeat.ts create mode 100644 backend/src/db/migrations/20251008220303_relay-gateway-health-alarm.ts create mode 100644 backend/src/db/migrations/20251010111410_add-kmip-metadata.ts create mode 100644 backend/src/db/schemas/additional-privileges.ts create mode 100644 backend/src/db/schemas/membership-roles.ts create mode 100644 backend/src/db/schemas/memberships.ts create mode 100644 backend/src/db/schemas/namespaces.ts create mode 100644 backend/src/db/schemas/roles.ts create mode 100644 backend/src/db/schemas/user-notifications-default.ts delete mode 100644 backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-dal.ts delete mode 100644 backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-service.ts delete mode 100644 backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-types.ts delete mode 100644 backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-dal.ts delete mode 100644 backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-service.ts delete mode 100644 backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-types.ts delete mode 100644 backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal.ts delete mode 100644 backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-service.ts delete mode 100644 backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-types.ts create mode 100644 backend/src/server/routes/v1/pki-sync-routers/aws-certificate-manager-pki-sync-router.ts create mode 100644 backend/src/services/additional-privilege/additional-privilege-dal.ts create mode 100644 backend/src/services/additional-privilege/additional-privilege-service.ts create mode 100644 backend/src/services/additional-privilege/additional-privilege-types.ts create mode 100644 backend/src/services/additional-privilege/namespace/namespace-additional-privilege-factory.ts create mode 100644 backend/src/services/additional-privilege/org/org-additional-privilege-factory.ts create mode 100644 backend/src/services/additional-privilege/project/project-additional-privilege-factory.ts create mode 100644 backend/src/services/convertor/convertor-service.ts delete mode 100644 backend/src/services/group-project/group-project-membership-role-dal.ts delete mode 100644 backend/src/services/identity-project/identity-project-membership-role-dal.ts create mode 100644 backend/src/services/membership-group/membership-group-dal.ts create mode 100644 backend/src/services/membership-group/membership-group-service.ts create mode 100644 backend/src/services/membership-group/membership-group-types.ts create mode 100644 backend/src/services/membership-group/namespace/namespace-membership-group-factory.ts create mode 100644 backend/src/services/membership-group/org/org-membership-group-factory.ts create mode 100644 backend/src/services/membership-group/project/project-membership-group-factory.ts create mode 100644 backend/src/services/membership-identity/membership-identity-dal.ts create mode 100644 backend/src/services/membership-identity/membership-identity-service.ts create mode 100644 backend/src/services/membership-identity/membership-identity-types.ts create mode 100644 backend/src/services/membership-identity/namespace/namespace-membership-identity-factory.ts create mode 100644 backend/src/services/membership-identity/org/org-membership-identity-factory.ts create mode 100644 backend/src/services/membership-identity/project/project-membership-identity-factory.ts create mode 100644 backend/src/services/membership-user/membership-user-dal.ts create mode 100644 backend/src/services/membership-user/membership-user-service.ts create mode 100644 backend/src/services/membership-user/membership-user-types.ts create mode 100644 backend/src/services/membership-user/namespace/namespace-membership-user-factory.ts create mode 100644 backend/src/services/membership-user/org/org-membership-user-factory.ts create mode 100644 backend/src/services/membership-user/project/project-membership-user-factory.ts create mode 100644 backend/src/services/membership/membership-dal.ts create mode 100644 backend/src/services/membership/membership-role-dal.ts delete mode 100644 backend/src/services/org/org-role-dal.ts delete mode 100644 backend/src/services/org/org-role-service.ts create mode 100644 backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-constants.ts create mode 100644 backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-fns.ts create mode 100644 backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-schemas.ts create mode 100644 backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-types.ts create mode 100644 backend/src/services/pki-sync/aws-certificate-manager/index.ts delete mode 100644 backend/src/services/project-membership/project-user-membership-role-dal.ts delete mode 100644 backend/src/services/project-role/project-role-dal.ts delete mode 100644 backend/src/services/project-role/project-role-service.ts create mode 100644 backend/src/services/role/namespace/namespace-role-factory.ts create mode 100644 backend/src/services/role/org/org-role-factory.ts create mode 100644 backend/src/services/role/project/project-role-factory.ts create mode 100644 backend/src/services/role/role-dal.ts create mode 100644 backend/src/services/role/role-service.ts create mode 100644 backend/src/services/role/role-types.ts create mode 100644 backend/src/services/smtp/emails/AccountDeletionConfirmationTemplate.tsx create mode 100644 backend/src/services/smtp/emails/HealthAlertTemplate.tsx create mode 100644 docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/create.mdx create mode 100644 docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/delete.mdx create mode 100644 docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/get-by-id.mdx create mode 100644 docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/list.mdx create mode 100644 docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/remove-certificates.mdx create mode 100644 docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/sync-certificates.mdx create mode 100644 docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/update.mdx create mode 100644 docs/documentation/platform/pki/certificate-syncs/aws-certificate-manager.mdx create mode 100644 docs/documentation/platform/scim/pingone.mdx create mode 100644 docs/documentation/platform/sso/pingone-oidc.mdx create mode 100644 docs/images/certificate-syncs/aws-certificate-manager/acm-destination.png create mode 100644 docs/images/certificate-syncs/aws-certificate-manager/acm-details.png create mode 100644 docs/images/certificate-syncs/aws-certificate-manager/acm-options.png create mode 100644 docs/images/certificate-syncs/aws-certificate-manager/acm-review.png create mode 100644 docs/images/certificate-syncs/aws-certificate-manager/acm-source.png create mode 100644 docs/images/certificate-syncs/aws-certificate-manager/acm-synced.png create mode 100644 docs/images/certificate-syncs/aws-certificate-manager/select-acm-option.png create mode 100644 docs/images/platform/scim/pingone/pingone-connection-auth.png create mode 100644 docs/images/platform/scim/pingone/pingone-connection-enable.png create mode 100644 docs/images/platform/scim/pingone/pingone-connection-preferences.png create mode 100644 docs/images/platform/scim/pingone/pingone-connection-select-scim-outbound.png create mode 100644 docs/images/platform/scim/pingone/pingone-create-user.png create mode 100644 docs/images/platform/scim/pingone/pingone-new-connection-identity-store.png create mode 100644 docs/images/platform/scim/pingone/pingone-new-connection.png create mode 100644 docs/images/platform/scim/pingone/pingone-new-rule-1.png create mode 100644 docs/images/platform/scim/pingone/pingone-new-rule-2.png create mode 100644 docs/images/platform/scim/pingone/pingone-rule-enable.png create mode 100644 docs/images/platform/scim/pingone/pingone-rule-group-provisioning-tab.png create mode 100644 docs/images/platform/scim/pingone/pingone-rule-select-connection.png create mode 100644 docs/images/platform/scim/pingone/pingone-rule-select-user-filter.png create mode 100644 docs/images/platform/scim/pingone/pingone-rule-user-filter.png create mode 100644 docs/images/platform/scim/pingone/pingone-select-group.png rename docs/images/sso/{auth0-oidc => }/enable-oidc.png (100%) delete mode 100644 docs/images/sso/keycloak-oidc/enable-oidc.png create mode 100644 docs/images/sso/pingone-oidc/infisical-configure-oidc.png create mode 100644 docs/images/sso/pingone-oidc/pingone-create-application.png create mode 100644 docs/images/sso/pingone-oidc/pingone-edit-application-attribute-mappings-2.png create mode 100644 docs/images/sso/pingone-oidc/pingone-edit-application-attribute-mappings.png create mode 100644 docs/images/sso/pingone-oidc/pingone-edit-application-configuration.png create mode 100644 docs/images/sso/pingone-oidc/pingone-edit-application-redirect-uri.png create mode 100644 docs/images/sso/pingone-oidc/pingone-enable-application.png create mode 100644 docs/images/sso/pingone-oidc/pingone-overview-credentials.png create mode 100644 docs/images/sso/pingone-oidc/pingone-overview-oidc-discovery-endpoint.png create mode 100644 frontend/public/images/integrations/IBM.png create mode 100644 frontend/public/images/integrations/RDP.png create mode 100644 frontend/public/images/integrations/SSH.png create mode 100644 frontend/src/components/pki-syncs/forms/AwsCertificateManagerPkiSyncFields.tsx create mode 100644 frontend/src/components/pki-syncs/forms/schemas/aws-certificate-manager-pki-sync-destination-schema.ts create mode 100644 frontend/src/components/pki-syncs/forms/schemas/azure-key-vault-pki-sync-destination-schema.ts rename frontend/src/components/pki-syncs/forms/{schemas.ts => schemas/base-pki-sync-schema.ts} (63%) create mode 100644 frontend/src/components/pki-syncs/forms/schemas/pki-sync-schema.ts create mode 100644 frontend/src/components/secret-syncs/forms/DuplicateDestinationConfirmationModal.tsx create mode 100644 frontend/src/hooks/api/auditLogStreams/types/providers/qradar-provider.ts create mode 100644 frontend/src/hooks/api/pkiSyncs/types/aws-certificate-manager-sync.ts create mode 100644 frontend/src/hooks/api/secretSyncs/useDuplicateDestinationCheck.ts delete mode 100644 frontend/tailwind.config.js diff --git a/.github/workflows/check-fe-ts-and-lint.yml b/.github/workflows/check-fe-ts-and-lint.yml index 9b4d363cff..c9b38d068c 100644 --- a/.github/workflows/check-fe-ts-and-lint.yml +++ b/.github/workflows/check-fe-ts-and-lint.yml @@ -30,6 +30,6 @@ jobs: - name: 🏗️ Run Type check run: npm run type:check working-directory: frontend - - name: 🏗️ Run Link check - run: npm run lint:fix + - name: 🏗️ Run Lint check + run: npm run lint working-directory: frontend diff --git a/.github/workflows/helm-release-infisical-core.yml b/.github/workflows/helm-release-infisical-core.yml index ebce7cbe0e..6c317cc27c 100644 --- a/.github/workflows/helm-release-infisical-core.yml +++ b/.github/workflows/helm-release-infisical-core.yml @@ -30,6 +30,8 @@ jobs: - name: Set up chart-testing uses: helm/chart-testing-action@v2.7.0 + with: + yamale_version: "6.0.0" - name: Run chart-testing (lint) run: ct lint --config ct.yaml --charts helm-charts/infisical-standalone-postgres diff --git a/.github/workflows/nightly-tag-generation.yml b/.github/workflows/nightly-tag-generation.yml index b2704f96c9..ff15b61d8f 100644 --- a/.github/workflows/nightly-tag-generation.yml +++ b/.github/workflows/nightly-tag-generation.yml @@ -1,8 +1,6 @@ name: Generate Nightly Tag on: - schedule: - - cron: '0 0 * * *' # Run daily at midnight UTC workflow_dispatch: # Allow manual triggering for testing permissions: diff --git a/.github/workflows/release-standalone-docker-img-postgres-offical.yml b/.github/workflows/release-standalone-docker-img-postgres-offical.yml index 486ff12b26..9dc767e310 100644 --- a/.github/workflows/release-standalone-docker-img-postgres-offical.yml +++ b/.github/workflows/release-standalone-docker-img-postgres-offical.yml @@ -65,6 +65,15 @@ jobs: INFISICAL_PLATFORM_VERSION=${{ steps.extract_version.outputs.version }} DD_GIT_REPOSITORY_URL=${{ github.server_url }}/${{ github.repository }} DD_GIT_COMMIT_SHA=${{ github.sha }} + - name: Snyk to check Docker image for vulnerabilities + continue-on-error: true + uses: snyk/actions/docker@master + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + with: + image: infisical/infisical:${{ steps.extract_version.outputs.version }} + command: monitor + args: --file=Dockerfile.standalone-infisical --project-name="infisical-core-docker-image" infisical-fips-standalone: name: Build infisical standalone image postgres @@ -141,4 +150,4 @@ jobs: echo "Successfully created tag $TAG_NAME" fi env: - GH_TOKEN: ${{ secrets.OMNIBUS_RELEASE_TOKEN }} \ No newline at end of file + GH_TOKEN: ${{ secrets.OMNIBUS_RELEASE_TOKEN }} diff --git a/.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml b/.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml index 50cb9ecb07..d48562fc68 100644 --- a/.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml +++ b/.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml @@ -33,6 +33,8 @@ jobs: - name: Set up chart-testing uses: helm/chart-testing-action@v2.7.0 + with: + yamale_version: "6.0.0" - name: Run chart-testing (lint) run: ct lint --config ct.yaml --charts helm-charts/infisical-standalone-postgres diff --git a/Dockerfile.fips.standalone-infisical b/Dockerfile.fips.standalone-infisical index 974ce4a429..1c03f752ab 100644 --- a/Dockerfile.fips.standalone-infisical +++ b/Dockerfile.fips.standalone-infisical @@ -3,7 +3,10 @@ ARG POSTHOG_API_KEY=posthog-api-key ARG INTERCOM_ID=intercom-id ARG CAPTCHA_SITE_KEY=captcha-site-key -FROM node:20-slim AS base +FROM node:20.19.5-trixie-slim AS base + +# Fixes NPM vulnerability: https://security.snyk.io/vuln/SNYK-JS-CROSSSPAWN-8303230 +RUN npm install -g npm@11 FROM base AS frontend-dependencies WORKDIR /app @@ -155,7 +158,7 @@ RUN wget https://www.openssl.org/source/openssl-3.1.2.tar.gz \ # Install Infisical CLI RUN curl -1sLf 'https://artifacts-cli.infisical.com/setup.deb.sh' | bash \ - && apt-get update && apt-get install -y infisical=0.41.89 \ + && apt-get update && apt-get install -y infisical=0.42.6 \ && rm -rf /var/lib/apt/lists/* RUN groupadd -r -g 1001 nodejs && useradd -r -u 1001 -g nodejs non-root-user diff --git a/Dockerfile.standalone-infisical b/Dockerfile.standalone-infisical index 9ca5e1dea9..bea94d6b6b 100644 --- a/Dockerfile.standalone-infisical +++ b/Dockerfile.standalone-infisical @@ -3,7 +3,10 @@ ARG POSTHOG_API_KEY=posthog-api-key ARG INTERCOM_ID=intercom-id ARG CAPTCHA_SITE_KEY=captcha-site-key -FROM node:20-slim AS base +FROM node:20.19.5-trixie-slim AS base + +# Fixes NPM vulnerability: https://security.snyk.io/vuln/SNYK-JS-CROSSSPAWN-8303230 +RUN npm install -g npm@11 FROM base AS frontend-dependencies @@ -139,7 +142,7 @@ RUN apt-get update && apt-get install -y \ # Install Infisical CLI RUN curl -1sLf 'https://artifacts-cli.infisical.com/setup.deb.sh' | bash \ - && apt-get update && apt-get install -y infisical=0.41.89 \ + && apt-get update && apt-get install -y infisical=0.42.6 \ && rm -rf /var/lib/apt/lists/* WORKDIR / diff --git a/backend/Dockerfile b/backend/Dockerfile index bca974f26d..fa3d0e509c 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,5 +1,5 @@ # Build stage -FROM node:20-slim AS build +FROM node:20.19.5-trixie-slim AS build WORKDIR /app @@ -26,7 +26,7 @@ COPY . . RUN npm run build # Production stage -FROM node:20-slim +FROM node:20.19.5-trixie-slim WORKDIR /app ENV npm_config_cache /home/node/.npm diff --git a/backend/Dockerfile.dev b/backend/Dockerfile.dev index de56487972..5e17cf2bbc 100644 --- a/backend/Dockerfile.dev +++ b/backend/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:20-slim +FROM node:20.19.5-trixie-slim # ? Setup a test SoftHSM module. In production a real HSM is used. diff --git a/backend/Dockerfile.dev.fips b/backend/Dockerfile.dev.fips index b954ccd50e..db51079857 100644 --- a/backend/Dockerfile.dev.fips +++ b/backend/Dockerfile.dev.fips @@ -1,4 +1,4 @@ -FROM node:20-slim +FROM node:20.19.5-trixie-slim # ? Setup a test SoftHSM module. In production a real HSM is used. diff --git a/backend/package-lock.json b/backend/package-lock.json index db4e9e7dd0..adda83043b 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -16,7 +16,7 @@ "@aws-sdk/client-secrets-manager": "^3.504.0", "@aws-sdk/client-sts": "^3.600.0", "@casl/ability": "^6.5.0", - "@elastic/elasticsearch": "^8.15.0", + "@elastic/elasticsearch": "^9.1.1", "@fastify/cookie": "^9.3.1", "@fastify/cors": "^8.5.0", "@fastify/etag": "^5.1.0", @@ -63,7 +63,7 @@ "ajv": "^8.12.0", "argon2": "^0.31.2", "aws-sdk": "^2.1553.0", - "axios": "^1.11.0", + "axios": "^1.12.0", "axios-ntlm": "^1.4.4", "axios-retry": "^4.0.0", "bcrypt": "^5.1.1", @@ -74,7 +74,7 @@ "cron": "^3.1.7", "dd-trace": "^5.40.0", "dotenv": "^16.4.1", - "fastify": "^4.28.1", + "fastify": "^4.29.1", "fastify-plugin": "^4.5.1", "google-auth-library": "^9.9.0", "googleapis": "^137.1.0", @@ -141,6 +141,7 @@ "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/preset-env": "^7.18.10", "@babel/preset-react": "^7.24.7", + "@react-email/preview-server": "^4.3.0", "@smithy/types": "^4.3.1", "@types/bcrypt": "^5.0.2", "@types/jmespath": "^0.15.2", @@ -176,7 +177,7 @@ "nodemon": "^3.0.2", "pino-pretty": "^10.2.3", "prompt-sync": "^4.2.0", - "react-email": "4.0.7", + "react-email": "^4.3.0", "rimraf": "^5.0.5", "ts-node": "^10.9.2", "tsc-alias": "^1.8.8", @@ -196,6 +197,19 @@ "node": ">=0.10.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -5150,30 +5164,32 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -5221,16 +5237,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -5238,10 +5254,11 @@ } }, "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -5286,14 +5303,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -5447,6 +5465,16 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-hoist-variables": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", @@ -5473,29 +5501,29 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -5618,10 +5646,11 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -5642,26 +5671,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.1.tgz", - "integrity": "sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -6998,14 +7028,14 @@ } }, "node_modules/@babel/template": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.1.tgz", - "integrity": "sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.1", + "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" }, "engines": { @@ -7013,19 +7043,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" @@ -7048,15 +7078,6 @@ } } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/traverse/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -7064,9 +7085,9 @@ "dev": true }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7329,12 +7350,13 @@ "integrity": "sha512-d5RjycE+MObE/hU+8OM5Zp4VjTwiPLRa8299fj7muOmR16fb942z8byoMbCErnGh0lBevvgkGrLclQDvINbIyg==" }, "node_modules/@elastic/elasticsearch": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-8.15.0.tgz", - "integrity": "sha512-mG90EMdTDoT6GFSdqpUAhWK9LGuiJo6tOWqs0Usd/t15mPQDj7ZqHXfCBqNkASZpwPZpbAYVjd57S6nbUBINCg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-9.1.1.tgz", + "integrity": "sha512-s/JZtHZjtbAYC2gdSzm4LLOSReR724e7cf7ZauIAZlGvAyMgZPZCJpq7xHazSy4rZZhule4ubMs4vepBgWvKQA==", "license": "Apache-2.0", "dependencies": { - "@elastic/transport": "^8.7.0", + "@elastic/transport": "^9.0.1", + "apache-arrow": "18.x - 20.x", "tslib": "^2.4.0" }, "engines": { @@ -7342,30 +7364,55 @@ } }, "node_modules/@elastic/transport": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@elastic/transport/-/transport-8.7.1.tgz", - "integrity": "sha512-2eeMVkz57Ayxv+UAZkIKzzrUu7nm96jr3+N3kLfbBqALYe2jwDpLr9pR0jc/x9HyJKAM909YGaNlHFDZeb0+Mw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@elastic/transport/-/transport-9.2.0.tgz", + "integrity": "sha512-2HpxEX9eQE/viokiKHqRa1n3RaFqNKoOU5gc7AOJ4ahG9xZbim+Z3OdBwshW9aKuFeIn1WPtZxSrfghZ0UJFtg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api": "1.x", - "debug": "^4.3.4", - "hpagent": "^1.0.0", + "@opentelemetry/core": "2.x", + "debug": "^4.4.1", + "hpagent": "^1.2.0", "ms": "^2.1.3", - "secure-json-parse": "^2.4.0", - "tslib": "^2.4.0", - "undici": "^6.12.0" + "secure-json-parse": "^4.0.0", + "tslib": "^2.8.1", + "undici": "^7.16.0" }, "engines": { - "node": ">=18" + "node": ">=20" + } + }, + "node_modules/@elastic/transport/node_modules/@opentelemetry/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.1.0.tgz", + "integrity": "sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@elastic/transport/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.37.0.tgz", + "integrity": "sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" } }, "node_modules/@elastic/transport/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -7376,16 +7423,26 @@ } } }, - "node_modules/@elastic/transport/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" + "node_modules/@elastic/transport/node_modules/secure-json-parse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.1.0.tgz", + "integrity": "sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", "dev": true, "license": "MIT", "optional": true, @@ -7732,6 +7789,23 @@ "node": ">=12" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", @@ -8234,6 +8308,48 @@ "p-limit": "^3.1.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@gitbeaker/core": { "version": "42.5.0", "resolved": "https://registry.npmjs.org/@gitbeaker/core/-/core-42.5.0.tgz", @@ -8535,10 +8651,20 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz", + "integrity": "sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==", "cpu": [ "arm64" ], @@ -8555,13 +8681,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.4" + "@img/sharp-libvips-darwin-arm64": "1.2.3" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz", + "integrity": "sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==", "cpu": [ "x64" ], @@ -8578,13 +8704,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.4" + "@img/sharp-libvips-darwin-x64": "1.2.3" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz", + "integrity": "sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==", "cpu": [ "arm64" ], @@ -8599,9 +8725,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", - "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz", + "integrity": "sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==", "cpu": [ "x64" ], @@ -8616,9 +8742,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", - "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz", + "integrity": "sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==", "cpu": [ "arm" ], @@ -8633,9 +8759,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", - "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz", + "integrity": "sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==", "cpu": [ "arm64" ], @@ -8649,10 +8775,27 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz", + "integrity": "sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", - "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz", + "integrity": "sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==", "cpu": [ "s390x" ], @@ -8667,9 +8810,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", - "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz", + "integrity": "sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==", "cpu": [ "x64" ], @@ -8684,9 +8827,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", - "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz", + "integrity": "sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==", "cpu": [ "arm64" ], @@ -8701,9 +8844,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", - "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz", + "integrity": "sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==", "cpu": [ "x64" ], @@ -8718,9 +8861,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", - "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz", + "integrity": "sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==", "cpu": [ "arm" ], @@ -8737,13 +8880,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.5" + "@img/sharp-libvips-linux-arm": "1.2.3" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", - "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz", + "integrity": "sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==", "cpu": [ "arm64" ], @@ -8760,13 +8903,36 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.4" + "@img/sharp-libvips-linux-arm64": "1.2.3" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz", + "integrity": "sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.3" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", - "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz", + "integrity": "sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==", "cpu": [ "s390x" ], @@ -8783,13 +8949,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.4" + "@img/sharp-libvips-linux-s390x": "1.2.3" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", - "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz", + "integrity": "sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==", "cpu": [ "x64" ], @@ -8806,13 +8972,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.4" + "@img/sharp-libvips-linux-x64": "1.2.3" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", - "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz", + "integrity": "sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==", "cpu": [ "arm64" ], @@ -8829,13 +8995,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64": "1.2.3" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", - "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz", + "integrity": "sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==", "cpu": [ "x64" ], @@ -8852,13 +9018,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + "@img/sharp-libvips-linuxmusl-x64": "1.2.3" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", - "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz", + "integrity": "sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==", "cpu": [ "wasm32" ], @@ -8866,7 +9032,7 @@ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.2.0" + "@emnapi/runtime": "^1.5.0" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -8875,10 +9041,30 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz", + "integrity": "sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", - "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz", + "integrity": "sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==", "cpu": [ "ia32" ], @@ -8896,9 +9082,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", - "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz", + "integrity": "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==", "cpu": [ "x64" ], @@ -9026,6 +9212,29 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -9084,17 +9293,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { @@ -9116,20 +9322,34 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, - "engines": { - "node": ">=6.0.0" + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", @@ -9232,6 +9452,26 @@ "resolved": "https://registry.npmjs.org/@ldapjs/protocol/-/protocol-1.2.1.tgz", "integrity": "sha512-O89xFDLW2gBoZWNXuXpBSM32/KealKCTb3JGtJdtUQc7RjAk8XzrRgyz02cPAwGKwKPxy0ivuC7UP9bmN87egQ==" }, + "node_modules/@lottiefiles/dotlottie-react": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.13.3.tgz", + "integrity": "sha512-V4FfdYlqzjBUX7f0KV6vfQOOI0Cp+3XeG/ZqSDFSEVg5P7fpROpDv5/I9aTM8sOCESK1SWT96Fem+QVUnBV1wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lottiefiles/dotlottie-web": "0.42.0" + }, + "peerDependencies": { + "react": "^17 || ^18 || ^19" + } + }, + "node_modules/@lottiefiles/dotlottie-web": { + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.42.0.tgz", + "integrity": "sha512-Zr2LCaOAoPCsdAQgeLyCSiQ1+xrAJtRCyuEYDj0qR5heUwpc+Pxbb88JyTVumcXFfKOBMOMmrlsTScLz2mrvQQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@lukeed/ms": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.2.tgz", @@ -9453,16 +9693,16 @@ ] }, "node_modules/@next/env": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.4.tgz", - "integrity": "sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.2.tgz", + "integrity": "sha512-Qe06ew4zt12LeO6N7j8/nULSOe3fMXE4dM6xgpBQNvdzyK1sv5y4oAP3bq4LamrvGCZtmRYnW8URFCeX5nFgGg==", "dev": true, "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.4.tgz", - "integrity": "sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.2.tgz", + "integrity": "sha512-8bGt577BXGSd4iqFygmzIfTYizHb0LGWqH+qgIF/2EDxS5JsSdERJKA8WgwDyNBZgTIIA4D8qUtoQHmxIIquoQ==", "cpu": [ "arm64" ], @@ -9477,9 +9717,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.4.tgz", - "integrity": "sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.2.tgz", + "integrity": "sha512-2DjnmR6JHK4X+dgTXt5/sOCu/7yPtqpYt8s8hLkHFK3MGkka2snTv3yRMdHvuRtJVkPwCGsvBSwmoQCHatauFQ==", "cpu": [ "x64" ], @@ -9494,9 +9734,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.4.tgz", - "integrity": "sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.2.tgz", + "integrity": "sha512-3j7SWDBS2Wov/L9q0mFJtEvQ5miIqfO4l7d2m9Mo06ddsgUK8gWfHGgbjdFlCp2Ek7MmMQZSxpGFqcC8zGh2AA==", "cpu": [ "arm64" ], @@ -9511,9 +9751,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.4.tgz", - "integrity": "sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.2.tgz", + "integrity": "sha512-s6N8k8dF9YGc5T01UPQ08yxsK6fUow5gG1/axWc1HVVBYQBgOjca4oUZF7s4p+kwhkB1bDSGR8QznWrFZ/Rt5g==", "cpu": [ "arm64" ], @@ -9528,9 +9768,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.4.tgz", - "integrity": "sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.2.tgz", + "integrity": "sha512-o1RV/KOODQh6dM6ZRJGZbc+MOAHww33Vbs5JC9Mp1gDk8cpEO+cYC/l7rweiEalkSm5/1WGa4zY7xrNwObN4+Q==", "cpu": [ "x64" ], @@ -9545,9 +9785,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.4.tgz", - "integrity": "sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.2.tgz", + "integrity": "sha512-/VUnh7w8RElYZ0IV83nUcP/J4KJ6LLYliiBIri3p3aW2giF+PAVgZb6mk8jbQSB3WlTai8gEmCAr7kptFa1H6g==", "cpu": [ "x64" ], @@ -9562,9 +9802,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.4.tgz", - "integrity": "sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.2.tgz", + "integrity": "sha512-sMPyTvRcNKXseNQ/7qRfVRLa0VhR0esmQ29DD6pqvG71+JdVnESJaHPA8t7bc67KD5spP3+DOCNLhqlEI2ZgQg==", "cpu": [ "arm64" ], @@ -9579,9 +9819,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.4.tgz", - "integrity": "sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.2.tgz", + "integrity": "sha512-W5VvyZHnxG/2ukhZF/9Ikdra5fdNftxI6ybeVKYvBPDtyx7x4jPPSNduUkfH5fo3zG0JQ0bPxgy41af2JX5D4Q==", "cpu": [ "x64" ], @@ -11100,6 +11340,787 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", + "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", + "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "dev": true, + "license": "MIT" + }, "node_modules/@react-email/body": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/@react-email/body/-/body-0.0.11.tgz", @@ -11314,6 +12335,849 @@ "react": "^18.0 || ^19.0 || ^19.0.0-rc" } }, + "node_modules/@react-email/preview-server": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@react-email/preview-server/-/preview-server-4.3.0.tgz", + "integrity": "sha512-cUaSrxezCzdg2hF6PzIxVrtagLdw3z3ovHeB3y2RDkmDZpp7EeIoNyJm22Ch2S0uAqTZNAgqu67aroLn3mFC1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "7.26.10", + "@babel/parser": "7.27.0", + "@babel/traverse": "7.27.0", + "@lottiefiles/dotlottie-react": "0.13.3", + "@radix-ui/colors": "3.0.0", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-dropdown-menu": "2.1.16", + "@radix-ui/react-popover": "1.1.15", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-tabs": "1.1.13", + "@radix-ui/react-toggle-group": "1.1.11", + "@radix-ui/react-tooltip": "1.2.8", + "@types/node": "22.14.1", + "@types/normalize-path": "3.0.2", + "@types/react": "19.0.10", + "@types/react-dom": "19.0.4", + "@types/webpack": "5.28.5", + "autoprefixer": "10.4.21", + "clsx": "2.1.1", + "esbuild": "0.25.10", + "framer-motion": "12.23.22", + "json5": "2.2.3", + "log-symbols": "4.1.0", + "module-punycode": "npm:punycode@2.3.1", + "next": "15.5.2", + "node-html-parser": "7.0.1", + "ora": "5.4.1", + "pretty-bytes": "6.1.1", + "prism-react-renderer": "2.4.1", + "react": "19.0.0", + "react-dom": "19.0.0", + "sharp": "0.34.4", + "socket.io-client": "4.8.1", + "sonner": "2.0.3", + "source-map-js": "1.2.1", + "spamc": "0.0.5", + "stacktrace-parser": "0.1.11", + "tailwind-merge": "3.2.0", + "tailwindcss": "3.4.0", + "use-debounce": "10.0.4", + "zod": "3.24.3" + } + }, + "node_modules/@react-email/preview-server/node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@react-email/preview-server/node_modules/@babel/traverse": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/android-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/android-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/android-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/darwin-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-loong64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-s390x": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/linux-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/sunos-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/win32-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/win32-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@esbuild/win32-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-email/preview-server/node_modules/@types/node": { + "version": "22.14.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", + "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@react-email/preview-server/node_modules/@types/react": { + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@react-email/preview-server/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-email/preview-server/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/@react-email/preview-server/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/@react-email/preview-server/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-email/preview-server/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-email/preview-server/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@react-email/preview-server/node_modules/esbuild": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" + } + }, + "node_modules/@react-email/preview-server/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-email/preview-server/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-email/preview-server/node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-email/preview-server/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-email/preview-server/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-email/preview-server/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-email/preview-server/node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@react-email/preview-server/node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" + } + }, + "node_modules/@react-email/preview-server/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@react-email/preview-server/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-email/preview-server/node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@react-email/preview-server/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-email/preview-server/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-email/preview-server/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@react-email/render": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@react-email/render/-/render-1.0.6.tgz", @@ -12996,18 +14860,10 @@ "dev": true, "license": "MIT" }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" @@ -13088,6 +14944,18 @@ "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", "license": "MIT" }, + "node_modules/@types/command-line-args": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", + "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", + "license": "MIT" + }, + "node_modules/@types/command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==", + "license": "MIT" + }, "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", @@ -13115,6 +14983,28 @@ "@types/ms": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -13284,6 +15174,13 @@ "@types/node": "*" } }, + "node_modules/@types/normalize-path": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/normalize-path/-/normalize-path-3.0.2.tgz", + "integrity": "sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/oauth": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.4.tgz", @@ -13427,6 +15324,13 @@ "pkcs11js": "*" } }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/prompt-sync": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/@types/prompt-sync/-/prompt-sync-4.2.3.tgz", @@ -13454,6 +15358,16 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/react-dom": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, "node_modules/@types/readable-stream": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.14.tgz", @@ -13599,6 +15513,18 @@ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" }, + "node_modules/@types/webpack": { + "version": "5.28.5", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.5.tgz", + "integrity": "sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "tapable": "^2.2.0", + "webpack": "^5" + } + }, "node_modules/@types/whatwg-url": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", @@ -14073,6 +15999,167 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, "node_modules/@xmldom/is-dom-node": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", @@ -14091,6 +16178,20 @@ "node": ">=10.0.0" } }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/@yao-pkg/pkg": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/@yao-pkg/pkg/-/pkg-5.12.0.tgz", @@ -14365,9 +16466,10 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -14383,6 +16485,19 @@ "acorn": "^8" } }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -14490,6 +16605,19 @@ } } }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, "node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -14546,6 +16674,26 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/apache-arrow": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-20.0.0.tgz", + "integrity": "sha512-JUeK0jFRUd7rbmrhhzR3O2KXjLaZ4YYYFOptyUfxOsMIoZCPi6bZR58gVi/xi3HTBMPseXm9PXyQ2V916930pA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/command-line-args": "^5.2.3", + "@types/command-line-usage": "^5.0.4", + "@types/node": "^20.13.0", + "command-line-args": "^6.0.1", + "command-line-usage": "^7.0.1", + "flatbuffers": "^25.1.24", + "json-bignum": "^0.0.3", + "tslib": "^2.6.2" + }, + "bin": { + "arrow2csv": "bin/arrow2csv.js" + } + }, "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", @@ -14665,6 +16813,28 @@ "node": ">=0.8.0" } }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", @@ -14905,10 +17075,52 @@ "node": ">=8.0.0" } }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -15014,9 +17226,9 @@ } }, "node_modules/axios": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -15161,6 +17373,16 @@ "node": ">=6.0.0" } }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.13.tgz", + "integrity": "sha512-7s16KR8io8nIBWQyCYhmFhd+ebIzb9VKTzki+wOJXHTxTnV6+mFGH3+Jwn1zoKaY9/H9T/0BcKCZnzXljPnpSQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/bcrypt": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", @@ -15311,6 +17533,13 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/botbuilder": { "version": "4.23.2", "resolved": "https://registry.npmjs.org/botbuilder/-/botbuilder-4.23.2.tgz", @@ -15590,9 +17819,9 @@ ] }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", "dev": true, "funding": [ { @@ -15608,11 +17837,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -15662,6 +17893,13 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/bullmq": { "version": "5.4.2", "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.4.2.tgz", @@ -15707,18 +17945,6 @@ "esbuild": ">=0.17" } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -15855,16 +18081,15 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -15885,6 +18110,22 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -15902,10 +18143,20 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001639", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001639.tgz", - "integrity": "sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==", + "version": "1.0.30001748", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001748.tgz", + "integrity": "sha512-5P5UgAr0+aBmNiplks08JLw+AW/XG/SurlgZLgB1dDLfAw7EfRGxIwzPHxdSCGY/BTKDqIVyJL87cCN6s0ZR0w==", "dev": true, "funding": [ { @@ -15920,7 +18171,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/cassandra-driver": { "version": "4.7.2", @@ -15965,6 +18217,58 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk-template/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/check-error": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", @@ -16012,13 +18316,37 @@ "node": ">=10" } }, - "node_modules/cipher-base": { + "node_modules/chrome-trace-event": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.5.tgz", + "integrity": "sha512-xq7ICKB4TMHUx7Tz1L9O2SGKOhYMOTR32oir45Bq28/AQTpHogKgHcoYFSdRbMtddl+ozNXfXY9jWcgYKmde0w==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" } }, "node_modules/cjs-module-lexer": { @@ -16145,6 +18473,16 @@ "node": ">=0.8" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/cluster-key-slot": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", @@ -16239,6 +18577,44 @@ "node": ">= 0.8" } }, + "node_modules/command-line-args": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz", + "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==", + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "find-replace": "^5.0.2", + "lodash.camelcase": "^4.3.0", + "typical": "^7.2.0" + }, + "engines": { + "node": ">=12.20" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } + } + }, + "node_modules/command-line-usage": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", @@ -16252,6 +18628,13 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "dev": true, + "license": "MIT" + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -16269,6 +18652,16 @@ "express-session": ">=1" } }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -16414,6 +18807,49 @@ "resolved": "https://registry.npmjs.org/crypto-randomuuid/-/crypto-randomuuid-1.0.0.tgz", "integrity": "sha512-/RC5F4l1SCqD/jazwUF6+t34Cd8zTSAGZ7rvvZu1whZUhD2a5MOGKjSGowoGcpj/cbVZk1ZODIooJEQQq3nNAA==" }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/cssstyle": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", @@ -16816,9 +19252,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", "engines": { "node": ">=8" @@ -16832,12 +19268,26 @@ "node": ">=8" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "dev": true, + "license": "MIT" + }, "node_modules/dev-null": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dev-null/-/dev-null-0.1.1.tgz", "integrity": "sha512-nMNZG0zfMgmdv8S5O0TM5cpwNbGKRGPCxVsr0SmA3NZZy9CYBbuNLL0PD3Acx9e5LIUgwONXtM9kM6RlawPxEQ==", "license": "MIT" }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -16868,6 +19318,13 @@ "node": ">=8" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -17028,10 +19485,11 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", - "dev": true + "version": "1.5.232", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.232.tgz", + "integrity": "sha512-ENirSe7wf8WzyPCibqKUG1Cg43cPaxH4wRR7AJsX7MCABCHBIOFqvaYODSLKUuZdraxUTHRE/0A2Aq8BYKEHOg==", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "10.3.0", @@ -17092,6 +19550,60 @@ "node": ">=10.2.0" } }, + "node_modules/engine.io-client": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", + "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1", + "xmlhttprequest-ssl": "~2.1.1" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/engine.io-parser": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", @@ -17143,10 +19655,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -17259,6 +19772,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -17354,9 +19874,10 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -18080,6 +20601,13 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, + "node_modules/exsolve": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", + "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", + "dev": true, + "license": "MIT" + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -18225,9 +20753,9 @@ } }, "node_modules/fastify": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.28.1.tgz", - "integrity": "sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.29.1.tgz", + "integrity": "sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==", "funding": [ { "type": "github", @@ -18443,6 +20971,23 @@ "node": ">=14" } }, + "node_modules/find-replace": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -18508,6 +21053,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/flatbuffers": { + "version": "25.9.23", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.9.23.tgz", + "integrity": "sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==", + "license": "Apache-2.0" + }, "node_modules/flatted": { "version": "3.2.9", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", @@ -18540,19 +21091,27 @@ } }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -18602,6 +21161,48 @@ "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz", "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==" }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.23.22", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.22.tgz", + "integrity": "sha512-ZgGvdxXCw55ZYvhoZChTlG6pUuehecgvEAJz0BHoC5pQKW1EC5xf1Mul1ej5+ai+pVY0pylyFfdl45qnM1/GsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.21", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -18920,6 +21521,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-func-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", @@ -18952,6 +21566,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -19062,6 +21686,13 @@ "node": ">= 6" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -19456,6 +22087,16 @@ "node": ">=0.10.0" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, "node_modules/helmet": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.1.0.tgz", @@ -20304,11 +22945,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -20354,8 +22996,7 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", @@ -20421,6 +23062,57 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/jmespath": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", @@ -20600,6 +23292,14 @@ "bignumber.js": "^9.0.0" } }, + "node_modules/json-bignum": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", + "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -20611,6 +23311,13 @@ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -20846,6 +23553,16 @@ "json-buffer": "3.0.1" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/knex": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/knex/-/knex-3.0.1.tgz", @@ -21143,6 +23860,16 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, "node_modules/local-pkg": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", @@ -21568,6 +24295,19 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mimic-response": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", @@ -21797,6 +24537,17 @@ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" }, + "node_modules/module-punycode": { + "name": "punycode", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -21903,6 +24654,23 @@ "node": ">=16" } }, + "node_modules/motion-dom": { + "version": "12.23.21", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.21.tgz", + "integrity": "sha512-5xDXx/AbhrfgsQmSE7YESMn4Dpo6x5/DTZ4Iyy4xqDvVHWvFVoV+V2Ri2S/ksx+D40wrZ7gPYiMWshkdoqNgNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "dev": true, + "license": "MIT" + }, "node_modules/mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -22109,16 +24877,14 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/next": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/next/-/next-15.2.4.tgz", - "integrity": "sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.2.tgz", + "integrity": "sha512-H8Otr7abj1glFhbGnvUt3gz++0AF1+QoCXEBmd/6aKbfdFwrn0LpA836Ed5+00va/7HQSDD+mOoVhn3tNy3e/Q==", "dev": true, "license": "MIT", "dependencies": { - "@next/env": "15.2.4", - "@swc/counter": "0.1.3", + "@next/env": "15.5.2", "@swc/helpers": "0.5.15", - "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" @@ -22130,19 +24896,19 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.2.4", - "@next/swc-darwin-x64": "15.2.4", - "@next/swc-linux-arm64-gnu": "15.2.4", - "@next/swc-linux-arm64-musl": "15.2.4", - "@next/swc-linux-x64-gnu": "15.2.4", - "@next/swc-linux-x64-musl": "15.2.4", - "@next/swc-win32-arm64-msvc": "15.2.4", - "@next/swc-win32-x64-msvc": "15.2.4", - "sharp": "^0.33.5" + "@next/swc-darwin-arm64": "15.5.2", + "@next/swc-darwin-x64": "15.5.2", + "@next/swc-linux-arm64-gnu": "15.5.2", + "@next/swc-linux-arm64-musl": "15.5.2", + "@next/swc-linux-x64-gnu": "15.5.2", + "@next/swc-linux-x64-musl": "15.5.2", + "@next/swc-win32-arm64-msvc": "15.5.2", + "@next/swc-win32-x64-msvc": "15.5.2", + "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", + "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", @@ -22403,11 +25169,23 @@ "node": "^16.13.0 || >=18.0.0" } }, + "node_modules/node-html-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.0.1.tgz", + "integrity": "sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^5.1.0", + "he": "1.2.0" + } + }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", + "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", + "dev": true, + "license": "MIT" }, "node_modules/nodemailer": { "version": "6.9.9", @@ -22491,6 +25269,16 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/npm-run-path": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", @@ -22529,11 +25317,63 @@ "set-blocking": "^2.0.0" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nwsapi": { "version": "2.2.18", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.18.tgz", "integrity": "sha512-p1TRH/edngVEHVbwqWnxUViEmq5znDvyB+Sik5cmuLpGOIfDf/39zLiq3swPF8Vakqn+gvNiOQAZu8djYlQILA==" }, + "node_modules/nypm": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.0.tgz", + "integrity": "sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "pathe": "^2.0.3", + "pkg-types": "^2.0.0", + "tinyexec": "^0.3.2" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/nypm/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/nypm/node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, "node_modules/oauth": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.10.2.tgz", @@ -25580,6 +28420,15 @@ "node": ">=12" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.47", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", @@ -25609,6 +28458,50 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, "node_modules/postcss-load-config": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", @@ -25644,6 +28537,53 @@ } } }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -25772,6 +28712,19 @@ "node": ">=6.0.0" } }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -25798,6 +28751,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/prism-react-renderer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -26047,6 +29014,20 @@ "node": ">=6" } }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/proto3-json-serializer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", @@ -26328,47 +29309,36 @@ } }, "node_modules/react-email": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/react-email/-/react-email-4.0.7.tgz", - "integrity": "sha512-XCXlfZLKv9gHd/ZwUEhCpRGc/FJLZGYczeuG1kVR/be2PlkwEB4gjX9ARBbRFv86ncbtpOu/wI6jD6kadRyAKw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/react-email/-/react-email-4.3.0.tgz", + "integrity": "sha512-XFHCSfhdlO7k5q2TYGwC0HsVh5Yn13YaOdahuJEUEOfOJKHEpSP4PKg7R/RiKFoK9cDvzunhY+58pXxz0vE2zA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "7.24.5", - "@babel/traverse": "7.25.6", - "chalk": "4.1.2", - "chokidar": "4.0.3", - "commander": "11.1.0", - "debounce": "2.0.0", - "esbuild": "0.25.0", - "glob": "10.3.4", - "log-symbols": "4.1.0", - "mime-types": "2.1.35", - "next": "15.2.4", - "normalize-path": "3.0.0", - "ora": "5.4.1", - "socket.io": "4.8.1" + "@babel/parser": "^7.27.0", + "@babel/traverse": "^7.27.0", + "chokidar": "^4.0.3", + "commander": "^13.0.0", + "debounce": "^2.0.0", + "esbuild": "^0.25.0", + "glob": "^11.0.0", + "jiti": "2.4.2", + "log-symbols": "^7.0.0", + "mime-types": "^3.0.0", + "normalize-path": "^3.0.0", + "nypm": "0.6.0", + "ora": "^8.0.0", + "prompts": "2.4.2", + "socket.io": "^4.8.1", + "tsconfig-paths": "4.2.0" }, "bin": { - "email": "dist/cli/index.js" + "email": "dist/index.js" }, "engines": { "node": ">=18.0.0" } }, - "node_modules/react-email/node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/react-email/node_modules/@esbuild/aix-ppc64": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", @@ -26760,80 +29730,6 @@ "node": ">=18" } }, - "node_modules/react-email/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-email/node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/react-email/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/react-email/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/react-email/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/react-email/node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -26851,26 +29747,29 @@ } }, "node_modules/react-email/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/react-email/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/react-email/node_modules/esbuild": { @@ -26915,131 +29814,219 @@ } }, "node_modules/react-email/node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "dev": true, "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/react-email/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-email/node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/react-email/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-email/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/react-email/node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-email/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/react-email/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/react-email/node_modules/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, "license": "MIT", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-email/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/react-email/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/react-email/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/react-email/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "mime-db": "^1.54.0" }, "engines": { - "node": ">= 6" + "node": ">= 0.6" + } + }, + "node_modules/react-email/node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/react-email/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/react-email/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-email/node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-email/node_modules/ora/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-email/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-email/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/react-email/node_modules/readdirp": { @@ -27057,43 +30044,64 @@ } }, "node_modules/react-email/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-email/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/react-email/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/react-email/node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-email/node_modules/supports-color": { + "node_modules/react-email/node_modules/string-width": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/react-is": { @@ -27117,6 +30125,98 @@ "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", "license": "MIT" }, + "node_modules/react-remove-scroll": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", + "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", @@ -27698,6 +30798,26 @@ "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", "license": "MIT" }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/scim-patch": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/scim-patch/-/scim-patch-0.8.3.tgz", @@ -27744,9 +30864,9 @@ "integrity": "sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw==" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -27834,6 +30954,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", @@ -27896,29 +31026,36 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" }, "bin": { "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/sharp": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", - "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz", + "integrity": "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", - "optional": true, "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.6.3" + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.0", + "semver": "^7.7.2" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -27927,40 +31064,28 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.5", - "@img/sharp-darwin-x64": "0.33.5", - "@img/sharp-libvips-darwin-arm64": "1.0.4", - "@img/sharp-libvips-darwin-x64": "1.0.4", - "@img/sharp-libvips-linux-arm": "1.0.5", - "@img/sharp-libvips-linux-arm64": "1.0.4", - "@img/sharp-libvips-linux-s390x": "1.0.4", - "@img/sharp-libvips-linux-x64": "1.0.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", - "@img/sharp-linux-arm": "0.33.5", - "@img/sharp-linux-arm64": "0.33.5", - "@img/sharp-linux-s390x": "0.33.5", - "@img/sharp-linux-x64": "0.33.5", - "@img/sharp-linuxmusl-arm64": "0.33.5", - "@img/sharp-linuxmusl-x64": "0.33.5", - "@img/sharp-wasm32": "0.33.5", - "@img/sharp-win32-ia32": "0.33.5", - "@img/sharp-win32-x64": "0.33.5" - } - }, - "node_modules/sharp/node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" + "@img/sharp-darwin-arm64": "0.34.4", + "@img/sharp-darwin-x64": "0.34.4", + "@img/sharp-libvips-darwin-arm64": "1.2.3", + "@img/sharp-libvips-darwin-x64": "1.2.3", + "@img/sharp-libvips-linux-arm": "1.2.3", + "@img/sharp-libvips-linux-arm64": "1.2.3", + "@img/sharp-libvips-linux-ppc64": "1.2.3", + "@img/sharp-libvips-linux-s390x": "1.2.3", + "@img/sharp-libvips-linux-x64": "1.2.3", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.3", + "@img/sharp-libvips-linuxmusl-x64": "1.2.3", + "@img/sharp-linux-arm": "0.34.4", + "@img/sharp-linux-arm64": "0.34.4", + "@img/sharp-linux-ppc64": "0.34.4", + "@img/sharp-linux-s390x": "0.34.4", + "@img/sharp-linux-x64": "0.34.4", + "@img/sharp-linuxmusl-arm64": "0.34.4", + "@img/sharp-linuxmusl-x64": "0.34.4", + "@img/sharp-wasm32": "0.34.4", + "@img/sharp-win32-arm64": "0.34.4", + "@img/sharp-win32-ia32": "0.34.4", + "@img/sharp-win32-x64": "0.34.4" } }, "node_modules/shebang-command": { @@ -28104,6 +31229,13 @@ "node": ">=10" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, "node_modules/sjcl": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.8.tgz", @@ -28405,6 +31537,40 @@ } } }, + "node_modules/socket.io-client": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", @@ -28517,6 +31683,17 @@ "atomic-sleep": "^1.0.0" } }, + "node_modules/sonner": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.3.tgz", + "integrity": "sha512-njQ4Hht92m0sMqqHVDL32V2Oun9W1+PHO9NDv9FHfJjT3JT22IG4Jpo3FPQy+mouRKCXFWO+r67v6MrHX2zeIA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -28535,6 +31712,23 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spamc": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/spamc/-/spamc-0.0.5.tgz", + "integrity": "sha512-jYXItuZuiWZyG9fIdvgTUbp2MNRuyhuSwvvhhpPJd4JK/9oSZxkD7zAj53GJtowSlXwCJzLg6sCKAoE9wXsKgg==", + "dev": true + }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -28637,6 +31831,29 @@ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true }, + "node_modules/stacktrace-parser": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, "node_modules/standard-as-callback": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", @@ -28738,15 +31955,6 @@ "node": ">=4.0.0" } }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -29060,13 +32268,130 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/table-layout": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/tailwind-merge": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.2.0.tgz", + "integrity": "sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==", "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.0.tgz", + "integrity": "sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/tailwindcss/node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/tar": { @@ -29253,6 +32578,78 @@ "node": ">= 6" } }, + "node_modules/terser": { + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", @@ -29316,6 +32713,13 @@ "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", "dev": true }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/tinypool": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz", @@ -29355,6 +32759,20 @@ "resolved": "https://registry.npmjs.org/tlhunter-sorted-set/-/tlhunter-sorted-set-0.1.0.tgz", "integrity": "sha512-eGYW4bjf1DtrHzUYxYfAcSytpOkA44zsr7G2n3PV7yOUR23vmkGe3LL4R+1jL9OsXtbsFOwe8XtbCrabeaEFnw==" }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -29571,9 +32989,9 @@ } }, "node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/tsup": { @@ -30262,14 +33680,14 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -30339,6 +33757,15 @@ "node": ">=14.17" } }, + "node_modules/typical": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/ufo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", @@ -30396,12 +33823,12 @@ "dev": true }, "node_modules/undici": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", - "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", + "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", "license": "MIT", "engines": { - "node": ">=18.17" + "node": ">=20.18.1" } }, "node_modules/undici-types": { @@ -30502,9 +33929,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -30520,9 +33947,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -30572,6 +34000,64 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-debounce": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz", + "integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -31370,6 +34856,20 @@ "node": ">=18" } }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -31385,6 +34885,96 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, + "node_modules/webpack": { + "version": "5.102.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", + "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.26.3", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.3", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", @@ -31450,15 +35040,18 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -31595,6 +35188,15 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, + "node_modules/wordwrapjs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -31813,6 +35415,15 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/xpath": { "version": "0.0.34", "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.34.tgz", @@ -31939,6 +35550,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zod": { "version": "3.24.3", "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", diff --git a/backend/package.json b/backend/package.json index f06c1d69f4..17be524f2b 100644 --- a/backend/package.json +++ b/backend/package.json @@ -79,12 +79,17 @@ "keywords": [], "author": "", "license": "ISC", + "overrides": { + "cipher-base": "1.0.5", + "sha.js": "2.4.12" + }, "devDependencies": { "@babel/cli": "^7.18.10", "@babel/core": "^7.18.10", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/preset-env": "^7.18.10", "@babel/preset-react": "^7.24.7", + "@react-email/preview-server": "^4.3.0", "@smithy/types": "^4.3.1", "@types/bcrypt": "^5.0.2", "@types/jmespath": "^0.15.2", @@ -120,7 +125,7 @@ "nodemon": "^3.0.2", "pino-pretty": "^10.2.3", "prompt-sync": "^4.2.0", - "react-email": "4.0.7", + "react-email": "^4.3.0", "rimraf": "^5.0.5", "ts-node": "^10.9.2", "tsc-alias": "^1.8.8", @@ -138,7 +143,7 @@ "@aws-sdk/client-secrets-manager": "^3.504.0", "@aws-sdk/client-sts": "^3.600.0", "@casl/ability": "^6.5.0", - "@elastic/elasticsearch": "^8.15.0", + "@elastic/elasticsearch": "^9.1.1", "@fastify/cookie": "^9.3.1", "@fastify/cors": "^8.5.0", "@fastify/etag": "^5.1.0", @@ -185,7 +190,7 @@ "ajv": "^8.12.0", "argon2": "^0.31.2", "aws-sdk": "^2.1553.0", - "axios": "^1.11.0", + "axios": "^1.12.0", "axios-ntlm": "^1.4.4", "axios-retry": "^4.0.0", "bcrypt": "^5.1.1", @@ -196,7 +201,7 @@ "cron": "^3.1.7", "dd-trace": "^5.40.0", "dotenv": "^16.4.1", - "fastify": "^4.28.1", + "fastify": "^4.29.1", "fastify-plugin": "^4.5.1", "google-auth-library": "^9.9.0", "googleapis": "^137.1.0", diff --git a/backend/scripts/generate-schema-types.ts b/backend/scripts/generate-schema-types.ts index 111f425203..358a61b31b 100644 --- a/backend/scripts/generate-schema-types.ts +++ b/backend/scripts/generate-schema-types.ts @@ -85,10 +85,9 @@ const getZodDefaultValue = (type: unknown, value: string | number | boolean | Ob }; const bigIntegerColumns: Record = { - "folder_commits": ["commitId"] + folder_commits: ["commitId"] }; - const main = async () => { const tables = ( await db("information_schema.tables") @@ -99,6 +98,7 @@ const main = async () => { (el) => !el.tableName.includes("_migrations") && !el.tableName.includes("audit_logs_") && + !el.tableName.includes("user_notifications_") && !el.tableName.includes("active_locks") && el.tableName !== "intermediate_audit_logs" ); diff --git a/backend/src/@types/fastify.d.ts b/backend/src/@types/fastify.d.ts index 088d99ee97..e3e8733f0f 100644 --- a/backend/src/@types/fastify.d.ts +++ b/backend/src/@types/fastify.d.ts @@ -20,8 +20,6 @@ import { TGatewayV2ServiceFactory } from "@app/ee/services/gateway-v2/gateway-v2 import { TGithubOrgSyncServiceFactory } from "@app/ee/services/github-org-sync/github-org-sync-service"; import { TGroupServiceFactory } from "@app/ee/services/group/group-service"; import { TIdentityAuthTemplateServiceFactory } from "@app/ee/services/identity-auth-template"; -import { TIdentityProjectAdditionalPrivilegeServiceFactory } from "@app/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-service"; -import { TIdentityProjectAdditionalPrivilegeV2ServiceFactory } from "@app/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-service"; import { TKmipClientDALFactory } from "@app/ee/services/kmip/kmip-client-dal"; import { TKmipOperationServiceFactory } from "@app/ee/services/kmip/kmip-operation-service"; import { TKmipServiceFactory } from "@app/ee/services/kmip/kmip-service"; @@ -35,7 +33,6 @@ import { TPamSessionServiceFactory } from "@app/ee/services/pam-session/pam-sess import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { TPitServiceFactory } from "@app/ee/services/pit/pit-service"; import { TProjectTemplateServiceFactory } from "@app/ee/services/project-template/project-template-types"; -import { TProjectUserAdditionalPrivilegeServiceFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-types"; import { RateLimitConfiguration, TRateLimitServiceFactory } from "@app/ee/services/rate-limit/rate-limit-types"; import { TRelayServiceFactory } from "@app/ee/services/relay/relay-service"; import { TSamlConfigServiceFactory } from "@app/ee/services/saml-config/saml-config-types"; @@ -53,6 +50,7 @@ import { TSshHostServiceFactory } from "@app/ee/services/ssh-host/ssh-host-servi import { TSshHostGroupServiceFactory } from "@app/ee/services/ssh-host-group/ssh-host-group-service"; import { TTrustedIpServiceFactory } from "@app/ee/services/trusted-ip/trusted-ip-types"; import { TAuthMode } from "@app/server/plugins/auth/inject-identity"; +import { TAdditionalPrivilegeServiceFactory } from "@app/services/additional-privilege/additional-privilege-service"; import { TApiKeyServiceFactory } from "@app/services/api-key/api-key-service"; import { TAppConnectionServiceFactory } from "@app/services/app-connection/app-connection-service"; import { TAuthLoginFactory } from "@app/services/auth/auth-login-service"; @@ -65,6 +63,7 @@ import { TCertificateAuthorityServiceFactory } from "@app/services/certificate-a import { TInternalCertificateAuthorityServiceFactory } from "@app/services/certificate-authority/internal/internal-certificate-authority-service"; import { TCertificateTemplateServiceFactory } from "@app/services/certificate-template/certificate-template-service"; import { TCmekServiceFactory } from "@app/services/cmek/cmek-service"; +import { TConvertorServiceFactory } from "@app/services/convertor/convertor-service"; import { TExternalGroupOrgRoleMappingServiceFactory } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-service"; import { TExternalMigrationServiceFactory } from "@app/services/external-migration/external-migration-service"; import { TFolderCommitServiceFactory } from "@app/services/folder-commit/folder-commit-service"; @@ -88,10 +87,12 @@ import { TIdentityTokenAuthServiceFactory } from "@app/services/identity-token-a import { TIdentityUaServiceFactory } from "@app/services/identity-ua/identity-ua-service"; import { TIntegrationServiceFactory } from "@app/services/integration/integration-service"; import { TIntegrationAuthServiceFactory } from "@app/services/integration-auth/integration-auth-service"; +import { TMembershipGroupServiceFactory } from "@app/services/membership-group/membership-group-service"; +import { TMembershipIdentityServiceFactory } from "@app/services/membership-identity/membership-identity-service"; +import { TMembershipUserServiceFactory } from "@app/services/membership-user/membership-user-service"; import { TMicrosoftTeamsServiceFactory } from "@app/services/microsoft-teams/microsoft-teams-service"; import { TNotificationServiceFactory } from "@app/services/notification/notification-service"; import { TOfflineUsageReportServiceFactory } from "@app/services/offline-usage-report/offline-usage-report-service"; -import { TOrgRoleServiceFactory } from "@app/services/org/org-role-service"; import { TOrgServiceFactory } from "@app/services/org/org-service"; import { TOrgAdminServiceFactory } from "@app/services/org-admin/org-admin-service"; import { TPkiAlertServiceFactory } from "@app/services/pki-alert/pki-alert-service"; @@ -104,8 +105,8 @@ import { TProjectBotServiceFactory } from "@app/services/project-bot/project-bot import { TProjectEnvServiceFactory } from "@app/services/project-env/project-env-service"; import { TProjectKeyServiceFactory } from "@app/services/project-key/project-key-service"; import { TProjectMembershipServiceFactory } from "@app/services/project-membership/project-membership-service"; -import { TProjectRoleServiceFactory } from "@app/services/project-role/project-role-service"; import { TReminderServiceFactory } from "@app/services/reminder/reminder-types"; +import { TRoleServiceFactory } from "@app/services/role/role-service"; import { TSecretServiceFactory } from "@app/services/secret/secret-service"; import { TSecretBlindIndexServiceFactory } from "@app/services/secret-blind-index/secret-blind-index-service"; import { TSecretFolderServiceFactory } from "@app/services/secret-folder/secret-folder-service"; @@ -213,7 +214,6 @@ declare module "fastify" { authToken: TAuthTokenServiceFactory; permission: TPermissionServiceFactory; org: TOrgServiceFactory; - orgRole: TOrgRoleServiceFactory; oidc: TOidcConfigServiceFactory; superAdmin: TSuperAdminServiceFactory; user: TUserServiceFactory; @@ -225,7 +225,6 @@ declare module "fastify" { projectMembership: TProjectMembershipServiceFactory; projectEnv: TProjectEnvServiceFactory; projectKey: TProjectKeyServiceFactory; - projectRole: TProjectRoleServiceFactory; secret: TSecretServiceFactory; secretReplication: TSecretReplicationServiceFactory; secretTag: TSecretTagServiceFactory; @@ -281,9 +280,6 @@ declare module "fastify" { telemetry: TTelemetryServiceFactory; dynamicSecret: TDynamicSecretServiceFactory; dynamicSecretLease: TDynamicSecretLeaseServiceFactory; - projectUserAdditionalPrivilege: TProjectUserAdditionalPrivilegeServiceFactory; - identityProjectAdditionalPrivilege: TIdentityProjectAdditionalPrivilegeServiceFactory; - identityProjectAdditionalPrivilegeV2: TIdentityProjectAdditionalPrivilegeV2ServiceFactory; secretSharing: TSecretSharingServiceFactory; rateLimit: TRateLimitServiceFactory; userEngagement: TUserEngagementServiceFactory; @@ -324,6 +320,13 @@ declare module "fastify" { pamAccount: TPamAccountServiceFactory; pamSession: TPamSessionServiceFactory; upgradePath: TUpgradePathService; + + membershipUser: TMembershipUserServiceFactory; + membershipIdentity: TMembershipIdentityServiceFactory; + membershipGroup: TMembershipGroupServiceFactory; + additionalPrivilege: TAdditionalPrivilegeServiceFactory; + role: TRoleServiceFactory; + convertor: TConvertorServiceFactory; }; // this is exclusive use for middlewares in which we need to inject data // everywhere else access using service layer diff --git a/backend/src/@types/knex.d.ts b/backend/src/@types/knex.d.ts index c4d45ca276..07fe2c97dd 100644 --- a/backend/src/@types/knex.d.ts +++ b/backend/src/@types/knex.d.ts @@ -17,6 +17,9 @@ import { TAccessApprovalRequestsReviewersInsert, TAccessApprovalRequestsReviewersUpdate, TAccessApprovalRequestsUpdate, + TAdditionalPrivileges, + TAdditionalPrivilegesInsert, + TAdditionalPrivilegesUpdate, TApiKeys, TApiKeysInsert, TApiKeysUpdate, @@ -227,6 +230,15 @@ import { TLdapGroupMaps, TLdapGroupMapsInsert, TLdapGroupMapsUpdate, + TMembershipRoles, + TMembershipRolesInsert, + TMembershipRolesUpdate, + TMemberships, + TMembershipsInsert, + TMembershipsUpdate, + TNamespaces, + TNamespacesInsert, + TNamespacesUpdate, TOidcConfigs, TOidcConfigsInsert, TOidcConfigsUpdate, @@ -314,6 +326,9 @@ import { TResourceMetadata, TResourceMetadataInsert, TResourceMetadataUpdate, + TRoles, + TRolesInsert, + TRolesUpdate, TSamlConfigs, TSamlConfigsInsert, TSamlConfigsUpdate, @@ -1316,5 +1331,19 @@ declare module "knex/types/tables" { [TableName.PamResource]: KnexOriginal.CompositeTableType; [TableName.PamAccount]: KnexOriginal.CompositeTableType; [TableName.PamSession]: KnexOriginal.CompositeTableType; + + [TableName.Namespace]: KnexOriginal.CompositeTableType; + [TableName.Membership]: KnexOriginal.CompositeTableType; + [TableName.MembershipRole]: KnexOriginal.CompositeTableType< + TMembershipRoles, + TMembershipRolesInsert, + TMembershipRolesUpdate + >; + [TableName.Role]: KnexOriginal.CompositeTableType; + [TableName.AdditionalPrivilege]: KnexOriginal.CompositeTableType< + TAdditionalPrivileges, + TAdditionalPrivilegesInsert, + TAdditionalPrivilegesUpdate + >; } } diff --git a/backend/src/db/instance.ts b/backend/src/db/instance.ts index b1ecf7d659..112def0b3d 100644 --- a/backend/src/db/instance.ts +++ b/backend/src/db/instance.ts @@ -1,5 +1,27 @@ import knex, { Knex } from "knex"; +const parseSslConfig = (dbConnectionUri: string, dbRootCert?: string) => { + let modifiedDbConnectionUri = dbConnectionUri; + let sslConfig: { rejectUnauthorized: boolean; ca: string } | boolean = false; + + if (dbRootCert) { + const url = new URL(dbConnectionUri); + const sslMode = url.searchParams.get("sslmode"); + + if (sslMode && sslMode !== "disable") { + url.searchParams.delete("sslmode"); + modifiedDbConnectionUri = url.toString(); + + sslConfig = { + rejectUnauthorized: ["verify-ca", "verify-full"].includes(sslMode), + ca: Buffer.from(dbRootCert, "base64").toString("ascii") + }; + } + } + + return { modifiedDbConnectionUri, sslConfig }; +}; + export type TDbClient = Knex; export const initDbConnection = ({ dbConnectionUri, @@ -32,23 +54,18 @@ export const initDbConnection = ({ return selectedReplica; }); + const { modifiedDbConnectionUri, sslConfig } = parseSslConfig(dbConnectionUri, dbRootCert); + db = knex({ client: "pg", connection: { - connectionString: dbConnectionUri, + connectionString: modifiedDbConnectionUri, host: process.env.DB_HOST, - // @ts-expect-error I have no clue why only for the port there is a type error - // eslint-disable-next-line - port: process.env.DB_PORT, + port: process.env.DB_PORT ? parseInt(process.env.DB_PORT, 10) : undefined, user: process.env.DB_USER, database: process.env.DB_NAME, password: process.env.DB_PASSWORD, - ssl: dbRootCert - ? { - rejectUnauthorized: true, - ca: Buffer.from(dbRootCert, "base64").toString("ascii") - } - : false + ssl: sslConfig }, // https://knexjs.org/guide/#pool pool: { min: 0, max: 10 }, @@ -59,16 +76,16 @@ export const initDbConnection = ({ readReplicaDbs = readReplicas.map((el) => { const replicaDbCertificate = el.dbRootCert || dbRootCert; + const { modifiedDbConnectionUri: replicaUri, sslConfig: replicaSslConfig } = parseSslConfig( + el.dbConnectionUri, + replicaDbCertificate + ); + return knex({ client: "pg", connection: { - connectionString: el.dbConnectionUri, - ssl: replicaDbCertificate - ? { - rejectUnauthorized: true, - ca: Buffer.from(replicaDbCertificate, "base64").toString("ascii") - } - : false + connectionString: replicaUri, + ssl: replicaSslConfig }, migrations: { tableName: "infisical_migrations" @@ -87,26 +104,21 @@ export const initAuditLogDbConnection = ({ dbConnectionUri: string; dbRootCert?: string; }) => { + const { modifiedDbConnectionUri, sslConfig } = parseSslConfig(dbConnectionUri, dbRootCert); + // akhilmhdh: the default Knex is knex.Knex. but when assigned with knex({}) the value is knex.Knex // this was causing issue with files like `snapshot-dal` `findRecursivelySnapshots` this i am explicitly putting the any and unknown[] // eslint-disable-next-line const db: Knex = knex({ client: "pg", connection: { - connectionString: dbConnectionUri, + connectionString: modifiedDbConnectionUri, host: process.env.AUDIT_LOGS_DB_HOST, - // @ts-expect-error I have no clue why only for the port there is a type error - // eslint-disable-next-line - port: process.env.AUDIT_LOGS_DB_PORT, + port: process.env.AUDIT_LOGS_DB_PORT ? parseInt(process.env.AUDIT_LOGS_DB_PORT, 10) : undefined, user: process.env.AUDIT_LOGS_DB_USER, database: process.env.AUDIT_LOGS_DB_NAME, password: process.env.AUDIT_LOGS_DB_PASSWORD, - ssl: dbRootCert - ? { - rejectUnauthorized: true, - ca: Buffer.from(dbRootCert, "base64").toString("ascii") - } - : false + ssl: sslConfig }, migrations: { tableName: "infisical_migrations" diff --git a/backend/src/db/migrations/20240702131735_secret-approval-groups.ts b/backend/src/db/migrations/20240702131735_secret-approval-groups.ts index 84824ac652..c1b6bb48ba 100644 --- a/backend/src/db/migrations/20240702131735_secret-approval-groups.ts +++ b/backend/src/db/migrations/20240702131735_secret-approval-groups.ts @@ -127,7 +127,8 @@ export async function down(knex: Knex): Promise { }); await knex.schema.alterTable(TableName.SecretApprovalPolicyApprover, (tb) => { tb.dropColumn("approverUserId"); - tb.uuid("approverId").notNullable().alter(); + // akhilmhdh: i had to comment this out and is not possible as membership is now changed in structure + // tb.uuid("approverId").notNullable().alter(); }); } } diff --git a/backend/src/db/migrations/20251005152640_simplify-membership.ts b/backend/src/db/migrations/20251005152640_simplify-membership.ts new file mode 100644 index 0000000000..ff2987da71 --- /dev/null +++ b/backend/src/db/migrations/20251005152640_simplify-membership.ts @@ -0,0 +1,1121 @@ +import { Knex } from "knex"; + +import { AccessScope, TableName } from "../schemas"; +import { createOnUpdateTrigger, dropOnUpdateTrigger } from "../utils"; + +const createNamespaceTable = async (knex: Knex) => { + await knex.schema.createTable(TableName.Namespace, (t) => { + t.uuid("id").primary().defaultTo(knex.fn.uuid()); + t.string("name").notNullable(); + t.string("description"); + t.uuid("orgId").notNullable(); + t.foreign("orgId").references("id").inTable(TableName.Organization).onDelete("CASCADE"); + t.timestamps(true, true, true); + }); + + await createOnUpdateTrigger(knex, TableName.Namespace); +}; + +const createMembershipTable = async (knex: Knex) => { + await knex.schema.createTable(TableName.Membership, (t) => { + t.uuid("id").primary().defaultTo(knex.fn.uuid()); + t.string("scope", 24).notNullable(); + + t.uuid("actorUserId"); + t.foreign("actorUserId").references("id").inTable(TableName.Users).onDelete("CASCADE"); + t.uuid("actorIdentityId"); + t.foreign("actorIdentityId").references("id").inTable(TableName.Identity).onDelete("CASCADE"); + t.uuid("actorGroupId"); + t.foreign("actorGroupId").references("id").inTable(TableName.Groups).onDelete("CASCADE"); + + t.uuid("scopeOrgId").notNullable(); + t.foreign("scopeOrgId").references("id").inTable(TableName.Organization).onDelete("CASCADE"); + t.string("scopeProjectId", 36); + t.foreign("scopeProjectId").references("id").inTable(TableName.Project).onDelete("CASCADE"); + t.uuid("scopeNamespaceId"); + t.foreign("scopeNamespaceId").references("id").inTable(TableName.Namespace).onDelete("CASCADE"); + + t.boolean("isActive").defaultTo(true).notNullable(); + t.string("status"); + t.string("inviteEmail"); + t.datetime("lastInvitedAt"); + t.string("lastLoginAuthMethod"); + t.datetime("lastLoginTime"); + t.specificType("projectFavorites", "text[]"); + t.timestamps(true, true, true); + + t.index(["scope", "scopeOrgId"]); + + t.check( + `(:actorUserIdColumn: IS NOT NULL AND :actorIdentityIdColumn: IS NULL AND :actorGroupIdColumn: IS NULL) OR + (:actorIdentityIdColumn: IS NOT NULL AND :actorUserIdColumn: IS NULL AND :actorGroupIdColumn: IS NULL) OR + (:actorGroupIdColumn: IS NOT NULL AND :actorUserIdColumn: IS NULL AND :actorIdentityIdColumn: IS NULL)`, + { + actorUserIdColumn: "actorUserId", + actorIdentityIdColumn: "actorIdentityId", + actorGroupIdColumn: "actorGroupId" + }, + "only_one_actor_type" + ); + + t.check( + `(:scopeColumn: = 'namespace' AND :scopeNamespaceIdColumn: IS NOT NULL) OR + (:scopeColumn: = 'project' AND :scopeProjectIdColumn: IS NOT NULL) OR + (:scopeColumn: = 'organization') + `, + { + scopeColumn: "scope", + scopeNamespaceIdColumn: "scopeNamespaceId", + scopeProjectIdColumn: "scopeProjectId" + }, + "scope_matches_id" + ); + }); + + await createOnUpdateTrigger(knex, TableName.Membership); +}; + +const createRoleTable = async (knex: Knex) => { + await knex.schema.createTable(TableName.Role, (t) => { + t.uuid("id").primary().defaultTo(knex.fn.uuid()); + t.string("name").notNullable(); + t.string("description"); + t.string("slug").notNullable(); + t.jsonb("permissions").notNullable(); + + t.uuid("orgId"); + t.foreign("orgId").references("id").inTable(TableName.Organization).onDelete("CASCADE"); + t.string("projectId", 36); + t.foreign("projectId").references("id").inTable(TableName.Project).onDelete("CASCADE"); + t.uuid("namespaceId"); + t.foreign("namespaceId").references("id").inTable(TableName.Namespace).onDelete("CASCADE"); + + t.check( + `(:orgIdColumn: IS NOT NULL AND :namespaceIdColumn: IS NULL AND :projectIdColumn: IS NULL) OR + (:namespaceIdColumn: IS NOT NULL AND :orgIdColumn: IS NULL AND :projectIdColumn: IS NULL) OR + (:projectIdColumn: IS NOT NULL AND :orgIdColumn: IS NULL AND :namespaceIdColumn: IS NULL)`, + { + orgIdColumn: "orgId", + namespaceIdColumn: "namespaceId", + projectIdColumn: "projectId" + }, + "only_one_scope_id" + ); + + t.timestamps(true, true, true); + }); + + await knex.schema.raw(` + CREATE UNIQUE INDEX role_name_org_id_unique + ON "${TableName.Role}" (slug, "orgId") + WHERE "orgId" IS NOT NULL; + `); + + await knex.schema.raw(` + CREATE UNIQUE INDEX role_name_project_id_unique + ON "${TableName.Role}" (slug, "projectId") + WHERE "projectId" IS NOT NULL; + `); + + await knex.schema.raw(` + CREATE UNIQUE INDEX role_name_namespace_id_unique + ON "${TableName.Role}" (slug, "namespaceId") + WHERE "namespaceId" IS NOT NULL; + `); + + await createOnUpdateTrigger(knex, TableName.Role); +}; + +const createMembershipRoleTable = async (knex: Knex) => { + await knex.schema.createTable(TableName.MembershipRole, (t) => { + t.uuid("id").primary().defaultTo(knex.fn.uuid()); + t.string("role").notNullable(); + t.boolean("isTemporary").notNullable().defaultTo(false); + t.string("temporaryMode"); + t.string("temporaryRange"); // could be cron or relative time like 1H or 1minute etc + t.datetime("temporaryAccessStartTime"); + t.datetime("temporaryAccessEndTime"); + + t.uuid("customRoleId"); + t.foreign("customRoleId").references("id").inTable(TableName.Role); + t.uuid("membershipId").notNullable(); + t.foreign("membershipId").references("id").inTable(TableName.Membership).onDelete("CASCADE"); + + t.index("membershipId"); + + t.timestamps(true, true, true); + }); + + await createOnUpdateTrigger(knex, TableName.MembershipRole); +}; + +const createAdditionalPrivilegeTable = async (knex: Knex) => { + await knex.schema.createTable(TableName.AdditionalPrivilege, (t) => { + t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid()); + t.string("name", 60).notNullable(); + t.boolean("isTemporary").notNullable().defaultTo(false); + t.string("temporaryMode"); + t.string("temporaryRange"); // could be cron or relative time like 1H or 1minute etc + t.datetime("temporaryAccessStartTime"); + t.datetime("temporaryAccessEndTime"); + t.jsonb("permissions").notNullable(); + + t.uuid("actorUserId"); + t.foreign("actorUserId").references("id").inTable(TableName.Users).onDelete("CASCADE"); + t.uuid("actorIdentityId"); + t.foreign("actorIdentityId").references("id").inTable(TableName.Identity).onDelete("CASCADE"); + + t.uuid("orgId"); + t.foreign("orgId").references("id").inTable(TableName.Organization).onDelete("CASCADE"); + t.string("projectId", 36); + t.foreign("projectId").references("id").inTable(TableName.Project).onDelete("CASCADE"); + t.uuid("namespaceId"); + t.foreign("namespaceId").references("id").inTable(TableName.Namespace).onDelete("CASCADE"); + + t.check( + `(:orgIdColumn: IS NOT NULL AND :namespaceIdColumn: IS NULL AND :projectIdColumn: IS NULL) OR + (:namespaceIdColumn: IS NOT NULL AND :orgIdColumn: IS NULL AND :projectIdColumn: IS NULL) OR + (:projectIdColumn: IS NOT NULL AND :orgIdColumn: IS NULL AND :namespaceIdColumn: IS NULL)`, + { + orgIdColumn: "orgId", + namespaceIdColumn: "namespaceId", + projectIdColumn: "projectId" + }, + "only_one_scope_id" + ); + + t.check( + `(:actorUserIdColumn: IS NOT NULL AND :actorIdentityIdColumn: IS NULL) OR + (:actorIdentityIdColumn: IS NOT NULL AND :actorUserIdColumn: IS NULL) + `, + { + actorUserIdColumn: "actorUserId", + actorIdentityIdColumn: "actorIdentityId" + }, + "only_one_actor_type" + ); + t.timestamps(true, true, true); + }); + + await createOnUpdateTrigger(knex, TableName.AdditionalPrivilege); +}; + +const migrateMembershipData = async (knex: Knex) => { + await knex + .insert( + knex(TableName.OrgMembership).select( + "id", + "status", + "inviteEmail", + "createdAt", + "updatedAt", + "userId", + "orgId", + "projectFavorites", + "isActive", + "lastInvitedAt", + "lastLoginAuthMethod", + "lastLoginTime", + knex.raw("?", [AccessScope.Organization]) + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??)", [ + TableName.Membership, + "id", + "status", + "inviteEmail", + "createdAt", + "updatedAt", + "actorUserId", + "scopeOrgId", + "projectFavorites", + "isActive", + "lastInvitedAt", + "lastLoginAuthMethod", + "lastLoginTime", + "scope" + ]) + ); + + await knex + .insert( + knex(TableName.IdentityOrgMembership).select( + "id", + "identityId", + "orgId", + "lastLoginAuthMethod", + "lastLoginTime", + "createdAt", + "updatedAt", + knex.raw("?", [AccessScope.Organization]) + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??)", [ + TableName.Membership, + "id", + "actorIdentityId", + "scopeOrgId", + "lastLoginAuthMethod", + "lastLoginTime", + "createdAt", + "updatedAt", + "scope" + ]) + ); + + await knex + .insert( + knex(TableName.Groups).select("id", "orgId", "createdAt", "updatedAt", knex.raw("?", [AccessScope.Organization])) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??)", [ + TableName.Membership, + "actorGroupId", + "scopeOrgId", + "createdAt", + "updatedAt", + "scope" + ]) + ); + + await knex + .insert( + knex(TableName.ProjectMembership) + .join(TableName.Project, `${TableName.ProjectMembership}.projectId`, `${TableName.Project}.id`) + .select( + knex.ref("id").withSchema(TableName.ProjectMembership), + "userId", + "projectId", + "orgId", + knex.ref("createdAt").withSchema(TableName.ProjectMembership), + knex.ref("updatedAt").withSchema(TableName.ProjectMembership), + knex.raw("?", [AccessScope.Project]) + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??)", [ + TableName.Membership, + "id", + "actorUserId", + "scopeProjectId", + "scopeOrgId", + "createdAt", + "updatedAt", + "scope" + ]) + ); + + await knex + .insert( + knex(TableName.IdentityProjectMembership) + .join(TableName.Project, `${TableName.IdentityProjectMembership}.projectId`, `${TableName.Project}.id`) + .select( + knex.ref("id").withSchema(TableName.IdentityProjectMembership), + "identityId", + "projectId", + "orgId", + knex.ref("createdAt").withSchema(TableName.IdentityProjectMembership), + knex.ref("updatedAt").withSchema(TableName.IdentityProjectMembership), + knex.raw("?", [AccessScope.Project]) + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??)", [ + TableName.Membership, + "id", + "actorIdentityId", + "scopeProjectId", + "scopeOrgId", + "createdAt", + "updatedAt", + "scope" + ]) + ); + + await knex + .insert( + knex(TableName.GroupProjectMembership) + .join(TableName.Project, `${TableName.GroupProjectMembership}.projectId`, `${TableName.Project}.id`) + .select( + knex.ref("id").withSchema(TableName.GroupProjectMembership), + "groupId", + "projectId", + "orgId", + knex.ref("createdAt").withSchema(TableName.GroupProjectMembership), + knex.ref("updatedAt").withSchema(TableName.GroupProjectMembership), + knex.raw("?", [AccessScope.Project]) + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??)", [ + TableName.Membership, + "id", + "actorGroupId", + "scopeProjectId", + "scopeOrgId", + "createdAt", + "updatedAt", + "scope" + ]) + ); +}; + +const migrateRoleData = async (knex: Knex) => { + await knex + .insert( + knex(TableName.OrgRoles).select( + "id", + "name", + "description", + "slug", + "permissions", + "createdAt", + "updatedAt", + "orgId" + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??)", [ + TableName.Role, + "id", + "name", + "description", + "slug", + "permissions", + "createdAt", + "updatedAt", + "orgId" + ]) + ); + + await knex + .insert( + knex(TableName.ProjectRoles).select( + "id", + "name", + "description", + "slug", + "permissions", + "createdAt", + "updatedAt", + "projectId" + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??)", [ + TableName.Role, + "id", + "name", + "description", + "slug", + "permissions", + "createdAt", + "updatedAt", + "projectId" + ]) + ); + + const hasExternalGroupRoleMappingRoleColumn = await knex.schema.hasColumn( + TableName.ExternalGroupOrgRoleMapping, + "roleId" + ); + if (hasExternalGroupRoleMappingRoleColumn) { + await knex.schema.alterTable(TableName.ExternalGroupOrgRoleMapping, (t) => { + t.dropForeign("roleId"); + t.foreign("roleId").references("id").inTable(TableName.Role); + }); + } +}; + +const migrateMembershipRoleData = async (knex: Knex) => { + await knex + .insert(knex(TableName.OrgMembership).select("id", "role", "roleId")) + .into(knex.raw("?? (??, ??, ??)", [TableName.MembershipRole, "membershipId", "role", "customRoleId"])); + + await knex + .insert(knex(TableName.IdentityOrgMembership).select("id", "role", "roleId")) + .into(knex.raw("?? (??, ??, ??)", [TableName.MembershipRole, "membershipId", "role", "customRoleId"])); + + await knex + .insert( + knex(TableName.Groups) + .join(TableName.Membership, (qb) => { + qb.on(`${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`) + .andOn(`${TableName.Groups}.orgId`, `${TableName.Membership}.scopeOrgId`) + .andOn(`${TableName.Membership}.scope`, knex.raw("?", [AccessScope.Organization])); + }) + .select(knex.ref("id").withSchema(TableName.Membership), "role", "roleId") + ) + .into(knex.raw("?? (??, ??, ??)", [TableName.MembershipRole, "membershipId", "role", "customRoleId"])); + + await knex + .insert( + knex(TableName.ProjectUserMembershipRole).select( + "id", + "role", + "projectMembershipId", + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "createdAt", + "updatedAt" + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.MembershipRole, + "id", + "role", + "membershipId", + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "createdAt", + "updatedAt" + ]) + ); + + await knex + .insert( + knex(TableName.IdentityProjectMembershipRole).select( + "id", + "role", + "projectMembershipId", + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "createdAt", + "updatedAt" + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.MembershipRole, + "id", + "role", + "membershipId", + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "createdAt", + "updatedAt" + ]) + ); + + await knex + .insert( + knex(TableName.GroupProjectMembershipRole).select( + "id", + "role", + "projectMembershipId", + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "createdAt", + "updatedAt" + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.MembershipRole, + "id", + "role", + "membershipId", + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "createdAt", + "updatedAt" + ]) + ); +}; + +const migrateAdditionalPrivilegeData = async (knex: Knex) => { + await knex + .insert( + knex(TableName.ProjectUserAdditionalPrivilege).select( + "id", + "slug", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + "userId", + "projectId", + "createdAt", + "updatedAt" + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.AdditionalPrivilege, + "id", + "name", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + "actorUserId", + "projectId", + "createdAt", + "updatedAt" + ]) + ); + + await knex + .insert( + knex(TableName.IdentityProjectAdditionalPrivilege) + .join( + TableName.IdentityProjectMembership, + `${TableName.IdentityProjectMembership}.id`, + `${TableName.IdentityProjectAdditionalPrivilege}.projectMembershipId` + ) + .select( + knex.ref("id").withSchema(TableName.IdentityProjectAdditionalPrivilege), + "slug", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + "identityId", + "projectId", + knex.ref("createdAt").withSchema(TableName.IdentityProjectAdditionalPrivilege), + knex.ref("updatedAt").withSchema(TableName.IdentityProjectAdditionalPrivilege) + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.AdditionalPrivilege, + "id", + "name", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + "actorIdentityId", + "projectId", + "createdAt", + "updatedAt" + ]) + ); + + const hasApColumnInAccessApprovalRequest = await knex.schema.hasColumn( + TableName.AccessApprovalRequest, + "privilegeId" + ); + if (hasApColumnInAccessApprovalRequest) { + await knex.schema.alterTable(TableName.AccessApprovalRequest, (t) => { + t.dropForeign("privilegeId"); + t.foreign("privilegeId").references("id").inTable(TableName.AdditionalPrivilege); + }); + } +}; + +export async function up(knex: Knex): Promise { + const hasToMigrateNamespaceTable = !(await knex.schema.hasTable(TableName.Namespace)); + if (hasToMigrateNamespaceTable) { + await createNamespaceTable(knex); + } + + const hasToMigrateMembershipTable = !(await knex.schema.hasTable(TableName.Membership)); + if (hasToMigrateMembershipTable) { + await createMembershipTable(knex); + } + + const hasToMigrateRoleTable = !(await knex.schema.hasTable(TableName.Role)); + if (hasToMigrateRoleTable) { + await createRoleTable(knex); + } + + const hasToMigrateMembershipRoleTable = !(await knex.schema.hasTable(TableName.MembershipRole)); + if (hasToMigrateMembershipRoleTable) { + await createMembershipRoleTable(knex); + } + + const hasToMigrateAdditionalPrivilegeTable = !(await knex.schema.hasTable(TableName.AdditionalPrivilege)); + if (hasToMigrateAdditionalPrivilegeTable) { + await createAdditionalPrivilegeTable(knex); + } + + // this means these tables have been created before + if (hasToMigrateMembershipTable) { + await migrateMembershipData(knex); + } + + if (hasToMigrateRoleTable) { + await migrateRoleData(knex); + } + + if (hasToMigrateMembershipRoleTable) { + await migrateMembershipRoleData(knex); + } + + if (hasToMigrateAdditionalPrivilegeTable) { + await migrateAdditionalPrivilegeData(knex); + } +} + +const rollbackAdditionalPrivilegeData = async (knex: Knex) => { + const projectUserAdditionalPrivilegeFields = [ + "id", + "slug", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + "userId", + "projectId", + "createdAt", + "updatedAt" + ]; + + await knex + .insert( + knex(TableName.AdditionalPrivilege) + .whereNotNull("actorUserId") + .whereNotNull("projectId") + .select( + "id", + "name", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + "actorUserId", + "projectId", + "createdAt", + "updatedAt" + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.ProjectUserAdditionalPrivilege, + ...projectUserAdditionalPrivilegeFields + ]) + ) + .onConflict("id") + .merge(projectUserAdditionalPrivilegeFields); + + const identityProjectAdditionalPrivilegeFields = [ + "id", + "slug", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + "projectMembershipId", + "createdAt", + "updatedAt" + ]; + + await knex + .insert( + knex(TableName.AdditionalPrivilege) + .join(TableName.Membership, (qb) => { + qb.on(`${TableName.AdditionalPrivilege}.actorIdentityId`, `${TableName.Membership}.actorIdentityId`) + .andOn(`${TableName.AdditionalPrivilege}.projectId`, `${TableName.Membership}.scopeProjectId`) + .andOn(`${TableName.Membership}.scope`, knex.raw("?", [AccessScope.Project])); + }) + .whereNotNull(`${TableName.AdditionalPrivilege}.actorIdentityId`) + .whereNotNull(`${TableName.AdditionalPrivilege}.projectId`) + .select( + knex.ref("id").withSchema(TableName.AdditionalPrivilege), + "name", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "permissions", + knex.ref("id").withSchema(TableName.Membership).as("projectMembershipId"), + knex.ref("createdAt").withSchema(TableName.AdditionalPrivilege), + knex.ref("updatedAt").withSchema(TableName.AdditionalPrivilege) + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.IdentityProjectAdditionalPrivilege, + ...identityProjectAdditionalPrivilegeFields + ]) + ) + .onConflict("id") + .merge(identityProjectAdditionalPrivilegeFields); +}; + +const rollbackMembershipRoleData = async (knex: Knex) => { + const groupRoleFields = ["id", "name", "slug", "createdAt", "updatedAt", "role", "roleId", "orgId"]; + + await knex + .insert( + knex(TableName.MembershipRole) + .join(TableName.Membership, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .join(TableName.Groups, `${TableName.Membership}.actorGroupId`, `${TableName.Groups}.id`) + .whereNotNull(`${TableName.Membership}.actorGroupId`) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .select( + knex.ref("actorGroupId").withSchema(TableName.Membership), + knex.ref("name").withSchema(TableName.Groups), + knex.ref("slug").withSchema(TableName.Groups), + knex.ref("createdAt").withSchema(TableName.Groups), + knex.ref("updatedAt").withSchema(TableName.Groups), + knex.ref("role").withSchema(TableName.MembershipRole), + "customRoleId", + knex.ref("orgId").withSchema(TableName.Groups) + ) + ) + .into(knex.raw("?? (??,??,??,??,??,??,??,??)", [TableName.Groups, ...groupRoleFields])) + .onConflict("id") + .merge(groupRoleFields); + + const projectMembershipRoleFields = [ + "id", + "role", + "projectMembershipId", + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + "createdAt", + "updatedAt" + ]; + + await knex + .insert( + knex(TableName.MembershipRole) + .join(TableName.Membership, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .select( + knex.ref("id").withSchema(TableName.MembershipRole), + "role", + knex.ref("membershipId").withSchema(TableName.MembershipRole), + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + knex.ref("createdAt").withSchema(TableName.MembershipRole), + knex.ref("updatedAt").withSchema(TableName.MembershipRole) + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.ProjectUserMembershipRole, + ...projectMembershipRoleFields + ]) + ) + .onConflict("id") + .merge(projectMembershipRoleFields); + + await knex + .insert( + knex(TableName.MembershipRole) + .join(TableName.Membership, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .select( + knex.ref("id").withSchema(TableName.MembershipRole), + "role", + knex.ref("membershipId").withSchema(TableName.MembershipRole), + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + knex.ref("createdAt").withSchema(TableName.MembershipRole), + knex.ref("updatedAt").withSchema(TableName.MembershipRole) + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.IdentityProjectMembershipRole, + ...projectMembershipRoleFields + ]) + ) + .onConflict("id") + .merge(projectMembershipRoleFields); + + await knex + .insert( + knex(TableName.MembershipRole) + .join(TableName.Membership, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorGroupId`) + .select( + knex.ref("id").withSchema(TableName.MembershipRole), + "role", + knex.ref("membershipId").withSchema(TableName.MembershipRole), + "customRoleId", + "isTemporary", + "temporaryMode", + "temporaryRange", + "temporaryAccessStartTime", + "temporaryAccessEndTime", + knex.ref("createdAt").withSchema(TableName.MembershipRole), + knex.ref("updatedAt").withSchema(TableName.MembershipRole) + ) + ) + .into( + knex.raw("?? (??,??,??,??,??,??,??,??,??,??,??)", [ + TableName.GroupProjectMembershipRole, + ...projectMembershipRoleFields + ]) + ) + .onConflict("id") + .merge(projectMembershipRoleFields); +}; + +const rollbackRoleData = async (knex: Knex) => { + const orgRoleFields = ["id", "name", "description", "slug", "permissions", "createdAt", "updatedAt", "orgId"]; + + await knex + .insert( + knex(TableName.Role) + .whereNotNull("orgId") + .select("id", "name", "description", "slug", "permissions", "createdAt", "updatedAt", "orgId") + ) + .into(knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??)", [TableName.OrgRoles, ...orgRoleFields])) + .onConflict("id") + .merge(orgRoleFields); + + const projectRoleFields = ["id", "name", "description", "slug", "permissions", "createdAt", "updatedAt", "projectId"]; + + await knex + .insert( + knex(TableName.Role) + .whereNotNull("projectId") + .select("id", "name", "description", "slug", "permissions", "createdAt", "updatedAt", "projectId") + ) + .into(knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??)", [TableName.ProjectRoles, ...projectRoleFields])) + .onConflict("id") + .merge(projectRoleFields); +}; + +const rollbackMembershipData = async (knex: Knex) => { + const orgMembershipFields = [ + "id", + "status", + "inviteEmail", + "createdAt", + "updatedAt", + "userId", + "orgId", + "projectFavorites", + "isActive", + "lastInvitedAt", + "lastLoginAuthMethod", + "lastLoginTime", + "role", + "roleId" + ]; + await knex + .insert( + knex(TableName.Membership) + .leftJoin(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .select( + knex.ref("id").withSchema(TableName.Membership), + "status", + "inviteEmail", + knex.ref("createdAt").withSchema(TableName.Membership), + knex.ref("updatedAt").withSchema(TableName.Membership), + "actorUserId", + "scopeOrgId", + "projectFavorites", + "isActive", + "lastInvitedAt", + "lastLoginAuthMethod", + "lastLoginTime", + "role", + "customRoleId" + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??)", [ + TableName.OrgMembership, + ...orgMembershipFields + ]) + ) + .onConflict("id") + .merge(orgMembershipFields); + + const identityOrgMembershipFields = [ + "id", + "identityId", + "orgId", + "lastLoginAuthMethod", + "lastLoginTime", + "createdAt", + "updatedAt", + "role", + "roleId" + ]; + + await knex + .insert( + knex(TableName.Membership) + .leftJoin(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .select( + knex.ref("id").withSchema(TableName.Membership), + "actorIdentityId", + "scopeOrgId", + "lastLoginAuthMethod", + "lastLoginTime", + knex.ref("createdAt").withSchema(TableName.Membership), + knex.ref("updatedAt").withSchema(TableName.Membership), + "role", + "customRoleId" + ) + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??, ??, ??, ??, ??)", [ + TableName.IdentityOrgMembership, + ...identityOrgMembershipFields + ]) + ) + .onConflict("id") + .merge(identityOrgMembershipFields); + + const projectMembershipFields = ["id", "userId", "projectId", "createdAt", "updatedAt"]; + + await knex + .insert( + knex(TableName.Membership) + .where("scope", AccessScope.Project) + .whereNotNull("actorUserId") + .select("id", "actorUserId", "scopeProjectId", "createdAt", "updatedAt") + ) + .into(knex.raw("?? (??, ??, ??, ??, ??)", [TableName.ProjectMembership, ...projectMembershipFields])) + .onConflict("id") + .merge(projectMembershipFields); + + const identityProjectMembershipFields = ["id", "identityId", "projectId", "createdAt", "updatedAt"]; + + await knex + .insert( + knex(TableName.Membership) + .where("scope", AccessScope.Project) + .whereNotNull("actorIdentityId") + .select("id", "actorIdentityId", "scopeProjectId", "createdAt", "updatedAt") + ) + .into( + knex.raw("?? (??, ??, ??, ??, ??)", [TableName.IdentityProjectMembership, ...identityProjectMembershipFields]) + ) + .onConflict("id") + .merge(identityProjectMembershipFields); + + const groupProjectMembershipFields = ["id", "groupId", "projectId", "createdAt", "updatedAt"]; + + await knex + .insert( + knex(TableName.Membership) + .where("scope", AccessScope.Project) + .whereNotNull("actorGroupId") + .select("id", "actorGroupId", "scopeProjectId", "createdAt", "updatedAt") + ) + .into(knex.raw("?? (??, ??, ??, ??, ??)", [TableName.GroupProjectMembership, ...groupProjectMembershipFields])) + .onConflict("id") + .merge(groupProjectMembershipFields); +}; + +export async function down(knex: Knex): Promise { + const hasRoleTable = await knex.schema.hasTable(TableName.Role); + if (hasRoleTable) { + await rollbackRoleData(knex); + } + + const hasMembershipTable = await knex.schema.hasTable(TableName.Membership); + if (hasMembershipTable) { + await rollbackMembershipData(knex); + } + + const hasMembershipRoleTable = await knex.schema.hasTable(TableName.MembershipRole); + if (hasMembershipRoleTable) { + await rollbackMembershipRoleData(knex); + } + + const hasAdditionalPrivilegeTable = await knex.schema.hasTable(TableName.AdditionalPrivilege); + if (hasAdditionalPrivilegeTable) { + await rollbackAdditionalPrivilegeData(knex); + } + + // Restore foreign key references + const hasApColumnInAccessApprovalRequest = await knex.schema.hasColumn( + TableName.AccessApprovalRequest, + "privilegeId" + ); + if (hasApColumnInAccessApprovalRequest) { + await knex.schema.alterTable(TableName.AccessApprovalRequest, (t) => { + t.dropForeign("privilegeId"); + t.foreign("privilegeId").references("id").inTable(TableName.ProjectUserAdditionalPrivilege); + }); + } + + const hasExternalGroupRoleMappingRoleColumn = await knex.schema.hasColumn( + TableName.ExternalGroupOrgRoleMapping, + "roleId" + ); + if (hasExternalGroupRoleMappingRoleColumn) { + await knex.schema.alterTable(TableName.ExternalGroupOrgRoleMapping, (t) => { + t.dropForeign("roleId"); + t.foreign("roleId").references("id").inTable(TableName.OrgRoles); + }); + } + + // Drop new tables + await dropOnUpdateTrigger(knex, TableName.AdditionalPrivilege); + await knex.schema.dropTableIfExists(TableName.AdditionalPrivilege); + + await dropOnUpdateTrigger(knex, TableName.MembershipRole); + await knex.schema.dropTableIfExists(TableName.MembershipRole); + + await dropOnUpdateTrigger(knex, TableName.Membership); + await knex.schema.dropTableIfExists(TableName.Membership); + + await dropOnUpdateTrigger(knex, TableName.Role); + await knex.schema.dropTableIfExists(TableName.Role); + + await dropOnUpdateTrigger(knex, TableName.Namespace); + await knex.schema.dropTableIfExists(TableName.Namespace); +} diff --git a/backend/src/db/migrations/20251008003912_relay-heartbeat.ts b/backend/src/db/migrations/20251008003912_relay-heartbeat.ts new file mode 100644 index 0000000000..f19c540cbd --- /dev/null +++ b/backend/src/db/migrations/20251008003912_relay-heartbeat.ts @@ -0,0 +1,19 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + if (!(await knex.schema.hasColumn(TableName.Relay, "heartbeat"))) { + await knex.schema.alterTable(TableName.Relay, (t) => { + t.datetime("heartbeat"); + }); + } +} + +export async function down(knex: Knex): Promise { + if (await knex.schema.hasColumn(TableName.Relay, "heartbeat")) { + await knex.schema.alterTable(TableName.Relay, (t) => { + t.dropColumn("heartbeat"); + }); + } +} diff --git a/backend/src/db/migrations/20251008220303_relay-gateway-health-alarm.ts b/backend/src/db/migrations/20251008220303_relay-gateway-health-alarm.ts new file mode 100644 index 0000000000..2abc1cf693 --- /dev/null +++ b/backend/src/db/migrations/20251008220303_relay-gateway-health-alarm.ts @@ -0,0 +1,29 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + if (!(await knex.schema.hasColumn(TableName.Relay, "healthAlertedAt"))) { + await knex.schema.alterTable(TableName.Relay, (t) => { + t.datetime("healthAlertedAt"); + }); + } + if (!(await knex.schema.hasColumn(TableName.GatewayV2, "healthAlertedAt"))) { + await knex.schema.alterTable(TableName.GatewayV2, (t) => { + t.datetime("healthAlertedAt"); + }); + } +} + +export async function down(knex: Knex): Promise { + if (await knex.schema.hasColumn(TableName.GatewayV2, "healthAlertedAt")) { + await knex.schema.alterTable(TableName.GatewayV2, (t) => { + t.dropColumn("healthAlertedAt"); + }); + } + if (await knex.schema.hasColumn(TableName.Relay, "healthAlertedAt")) { + await knex.schema.alterTable(TableName.Relay, (t) => { + t.dropColumn("healthAlertedAt"); + }); + } +} diff --git a/backend/src/db/migrations/20251010111410_add-kmip-metadata.ts b/backend/src/db/migrations/20251010111410_add-kmip-metadata.ts new file mode 100644 index 0000000000..2875cc0adc --- /dev/null +++ b/backend/src/db/migrations/20251010111410_add-kmip-metadata.ts @@ -0,0 +1,19 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + if (!(await knex.schema.hasColumn(TableName.KmsKey, "kmipMetadata"))) { + await knex.schema.alterTable(TableName.KmsKey, (t) => { + t.jsonb("kmipMetadata"); + }); + } +} + +export async function down(knex: Knex): Promise { + if (await knex.schema.hasColumn(TableName.KmsKey, "kmipMetadata")) { + await knex.schema.alterTable(TableName.KmsKey, (t) => { + t.dropColumn("kmipMetadata"); + }); + } +} diff --git a/backend/src/db/schemas/additional-privileges.ts b/backend/src/db/schemas/additional-privileges.ts new file mode 100644 index 0000000000..8013a6961f --- /dev/null +++ b/backend/src/db/schemas/additional-privileges.ts @@ -0,0 +1,30 @@ +// Code generated by automation script, DO NOT EDIT. +// Automated by pulling database and generating zod schema +// To update. Just run npm run generate:schema +// Written by akhilmhdh. + +import { z } from "zod"; + +import { TImmutableDBKeys } from "./models"; + +export const AdditionalPrivilegesSchema = z.object({ + id: z.string().uuid(), + name: z.string(), + isTemporary: z.boolean().default(false), + temporaryMode: z.string().nullable().optional(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional(), + permissions: z.unknown(), + actorUserId: z.string().uuid().nullable().optional(), + actorIdentityId: z.string().uuid().nullable().optional(), + orgId: z.string().uuid().nullable().optional(), + projectId: z.string().nullable().optional(), + namespaceId: z.string().uuid().nullable().optional(), + createdAt: z.date(), + updatedAt: z.date() +}); + +export type TAdditionalPrivileges = z.infer; +export type TAdditionalPrivilegesInsert = Omit, TImmutableDBKeys>; +export type TAdditionalPrivilegesUpdate = Partial, TImmutableDBKeys>>; diff --git a/backend/src/db/schemas/gateways-v2.ts b/backend/src/db/schemas/gateways-v2.ts index 1362793f60..4a48e3ce52 100644 --- a/backend/src/db/schemas/gateways-v2.ts +++ b/backend/src/db/schemas/gateways-v2.ts @@ -18,7 +18,8 @@ export const GatewaysV2Schema = z.object({ relayId: z.string().uuid().nullable().optional(), name: z.string(), heartbeat: z.date().nullable().optional(), - encryptedPamSessionKey: zodBuffer.nullable().optional() + encryptedPamSessionKey: zodBuffer.nullable().optional(), + healthAlertedAt: z.date().nullable().optional() }); export type TGatewaysV2 = z.infer; diff --git a/backend/src/db/schemas/index.ts b/backend/src/db/schemas/index.ts index f8ac885b42..2a10e0f1b5 100644 --- a/backend/src/db/schemas/index.ts +++ b/backend/src/db/schemas/index.ts @@ -3,6 +3,7 @@ export * from "./access-approval-policies-approvers"; export * from "./access-approval-policies-bypassers"; export * from "./access-approval-requests"; export * from "./access-approval-requests-reviewers"; +export * from "./additional-privileges"; export * from "./api-keys"; export * from "./app-connections"; export * from "./audit-log-streams"; @@ -73,8 +74,11 @@ export * from "./kms-keys"; export * from "./kms-root-config"; export * from "./ldap-configs"; export * from "./ldap-group-maps"; +export * from "./membership-roles"; +export * from "./memberships"; export * from "./microsoft-teams-integrations"; export * from "./models"; +export * from "./namespaces"; export * from "./oidc-configs"; export * from "./org-bots"; export * from "./org-gateway-config"; @@ -108,6 +112,7 @@ export * from "./projects"; export * from "./rate-limit"; export * from "./relays"; export * from "./resource-metadata"; +export * from "./roles"; export * from "./saml-configs"; export * from "./scim-tokens"; export * from "./secret-approval-policies"; diff --git a/backend/src/db/schemas/kms-keys.ts b/backend/src/db/schemas/kms-keys.ts index ccb779d572..45ff699971 100644 --- a/backend/src/db/schemas/kms-keys.ts +++ b/backend/src/db/schemas/kms-keys.ts @@ -17,7 +17,8 @@ export const KmsKeysSchema = z.object({ createdAt: z.date(), updatedAt: z.date(), projectId: z.string().nullable().optional(), - keyUsage: z.string().default("encrypt-decrypt") + keyUsage: z.string().default("encrypt-decrypt"), + kmipMetadata: z.unknown().nullable().optional() }); export type TKmsKeys = z.infer; diff --git a/backend/src/db/schemas/membership-roles.ts b/backend/src/db/schemas/membership-roles.ts new file mode 100644 index 0000000000..98927c9cbd --- /dev/null +++ b/backend/src/db/schemas/membership-roles.ts @@ -0,0 +1,26 @@ +// Code generated by automation script, DO NOT EDIT. +// Automated by pulling database and generating zod schema +// To update. Just run npm run generate:schema +// Written by akhilmhdh. + +import { z } from "zod"; + +import { TImmutableDBKeys } from "./models"; + +export const MembershipRolesSchema = z.object({ + id: z.string().uuid(), + role: z.string(), + isTemporary: z.boolean().default(false), + temporaryMode: z.string().nullable().optional(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional(), + customRoleId: z.string().uuid().nullable().optional(), + membershipId: z.string().uuid(), + createdAt: z.date(), + updatedAt: z.date() +}); + +export type TMembershipRoles = z.infer; +export type TMembershipRolesInsert = Omit, TImmutableDBKeys>; +export type TMembershipRolesUpdate = Partial, TImmutableDBKeys>>; diff --git a/backend/src/db/schemas/memberships.ts b/backend/src/db/schemas/memberships.ts new file mode 100644 index 0000000000..e871a5627e --- /dev/null +++ b/backend/src/db/schemas/memberships.ts @@ -0,0 +1,32 @@ +// Code generated by automation script, DO NOT EDIT. +// Automated by pulling database and generating zod schema +// To update. Just run npm run generate:schema +// Written by akhilmhdh. + +import { z } from "zod"; + +import { TImmutableDBKeys } from "./models"; + +export const MembershipsSchema = z.object({ + id: z.string().uuid(), + scope: z.string(), + actorUserId: z.string().uuid().nullable().optional(), + actorIdentityId: z.string().uuid().nullable().optional(), + actorGroupId: z.string().uuid().nullable().optional(), + scopeOrgId: z.string().uuid(), + scopeProjectId: z.string().nullable().optional(), + scopeNamespaceId: z.string().uuid().nullable().optional(), + isActive: z.boolean().default(true), + status: z.string().nullable().optional(), + inviteEmail: z.string().nullable().optional(), + lastInvitedAt: z.date().nullable().optional(), + lastLoginAuthMethod: z.string().nullable().optional(), + lastLoginTime: z.date().nullable().optional(), + projectFavorites: z.string().array().nullable().optional(), + createdAt: z.date(), + updatedAt: z.date() +}); + +export type TMemberships = z.infer; +export type TMembershipsInsert = Omit, TImmutableDBKeys>; +export type TMembershipsUpdate = Partial, TImmutableDBKeys>>; diff --git a/backend/src/db/schemas/models.ts b/backend/src/db/schemas/models.ts index 09ecb367a1..d3537b0282 100644 --- a/backend/src/db/schemas/models.ts +++ b/backend/src/db/schemas/models.ts @@ -178,6 +178,14 @@ export enum TableName { SecretScanningScan = "secret_scanning_scans", SecretScanningFinding = "secret_scanning_findings", SecretScanningConfig = "secret_scanning_configs", + + Membership = "memberships", + MembershipRole = "membership_roles", + Role = "roles", + AdditionalPrivilege = "additional_privileges", + + Namespace = "namespaces", + // reminders Reminder = "reminders", ReminderRecipient = "reminders_recipients", @@ -302,7 +310,39 @@ export enum ActionProjectType { Any = "any" } +export enum TemporaryPermissionMode { + Relative = "relative" +} + +export enum MembershipActors { + Group = "group", + User = "user", + Identity = "identity" +} + export enum SortDirection { ASC = "asc", DESC = "desc" } + +export enum AccessScope { + Organization = "organization", + Namespace = "namespace", + Project = "project" +} + +export type AccessScopeData = + | { + scope: AccessScope.Organization; + orgId: string; + } + | { + scope: AccessScope.Namespace; + orgId: string; + namespaceId: string; + } + | { + scope: AccessScope.Project; + orgId: string; + projectId: string; + }; diff --git a/backend/src/db/schemas/namespaces.ts b/backend/src/db/schemas/namespaces.ts new file mode 100644 index 0000000000..b9f092fd3e --- /dev/null +++ b/backend/src/db/schemas/namespaces.ts @@ -0,0 +1,21 @@ +// Code generated by automation script, DO NOT EDIT. +// Automated by pulling database and generating zod schema +// To update. Just run npm run generate:schema +// Written by akhilmhdh. + +import { z } from "zod"; + +import { TImmutableDBKeys } from "./models"; + +export const NamespacesSchema = z.object({ + id: z.string().uuid(), + name: z.string(), + description: z.string().nullable().optional(), + orgId: z.string().uuid(), + createdAt: z.date(), + updatedAt: z.date() +}); + +export type TNamespaces = z.infer; +export type TNamespacesInsert = Omit, TImmutableDBKeys>; +export type TNamespacesUpdate = Partial, TImmutableDBKeys>>; diff --git a/backend/src/db/schemas/relays.ts b/backend/src/db/schemas/relays.ts index 4bb615e969..82a5fa8303 100644 --- a/backend/src/db/schemas/relays.ts +++ b/backend/src/db/schemas/relays.ts @@ -14,7 +14,9 @@ export const RelaysSchema = z.object({ orgId: z.string().uuid().nullable().optional(), identityId: z.string().uuid().nullable().optional(), name: z.string(), - host: z.string() + host: z.string(), + heartbeat: z.date().nullable().optional(), + healthAlertedAt: z.date().nullable().optional() }); export type TRelays = z.infer; diff --git a/backend/src/db/schemas/roles.ts b/backend/src/db/schemas/roles.ts new file mode 100644 index 0000000000..4801a57a66 --- /dev/null +++ b/backend/src/db/schemas/roles.ts @@ -0,0 +1,25 @@ +// Code generated by automation script, DO NOT EDIT. +// Automated by pulling database and generating zod schema +// To update. Just run npm run generate:schema +// Written by akhilmhdh. + +import { z } from "zod"; + +import { TImmutableDBKeys } from "./models"; + +export const RolesSchema = z.object({ + id: z.string().uuid(), + name: z.string(), + description: z.string().nullable().optional(), + slug: z.string(), + permissions: z.unknown(), + orgId: z.string().uuid().nullable().optional(), + projectId: z.string().nullable().optional(), + namespaceId: z.string().uuid().nullable().optional(), + createdAt: z.date(), + updatedAt: z.date() +}); + +export type TRoles = z.infer; +export type TRolesInsert = Omit, TImmutableDBKeys>; +export type TRolesUpdate = Partial, TImmutableDBKeys>>; diff --git a/backend/src/db/schemas/user-notifications-default.ts b/backend/src/db/schemas/user-notifications-default.ts new file mode 100644 index 0000000000..eabcdabc55 --- /dev/null +++ b/backend/src/db/schemas/user-notifications-default.ts @@ -0,0 +1,27 @@ +// Code generated by automation script, DO NOT EDIT. +// Automated by pulling database and generating zod schema +// To update. Just run npm run generate:schema +// Written by akhilmhdh. + +import { z } from "zod"; + +import { TImmutableDBKeys } from "./models"; + +export const UserNotificationsDefaultSchema = z.object({ + id: z.string().uuid(), + userId: z.string().uuid(), + orgId: z.string().uuid().nullable().optional(), + type: z.string(), + title: z.string(), + body: z.string().nullable().optional(), + link: z.string().nullable().optional(), + isRead: z.boolean().default(false), + createdAt: z.date(), + updatedAt: z.date() +}); + +export type TUserNotificationsDefault = z.infer; +export type TUserNotificationsDefaultInsert = Omit, TImmutableDBKeys>; +export type TUserNotificationsDefaultUpdate = Partial< + Omit, TImmutableDBKeys> +>; diff --git a/backend/src/db/seeds/2-org.ts b/backend/src/db/seeds/2-org.ts index a02224dbca..99bd70f576 100644 --- a/backend/src/db/seeds/2-org.ts +++ b/backend/src/db/seeds/2-org.ts @@ -1,6 +1,6 @@ import { Knex } from "knex"; -import { OrgMembershipRole, OrgMembershipStatus, TableName } from "../schemas"; +import { AccessScope, OrgMembershipRole, OrgMembershipStatus, TableName } from "../schemas"; import { seedData1 } from "../seed-data"; export async function seed(knex: Knex): Promise { @@ -24,13 +24,22 @@ export async function seed(knex: Knex): Promise { ]) .returning("*"); - await knex(TableName.OrgMembership).insert([ + const [membership] = await knex(TableName.Membership) + .insert([ + { + scope: AccessScope.Organization, + scopeOrgId: org.id, + actorUserId: user.id, + isActive: true, + status: OrgMembershipStatus.Accepted + } + ]) + .returning("*"); + + await knex(TableName.MembershipRole).insert([ { - role: OrgMembershipRole.Admin, - orgId: org.id, - status: OrgMembershipStatus.Accepted, - userId: user.id, - isActive: true + membershipId: membership.id, + role: OrgMembershipRole.Admin } ]); } diff --git a/backend/src/db/seeds/3-project.ts b/backend/src/db/seeds/3-project.ts index 47a41a95cb..d0294022f2 100644 --- a/backend/src/db/seeds/3-project.ts +++ b/backend/src/db/seeds/3-project.ts @@ -6,14 +6,15 @@ import { generateUserSrpKeys } from "@app/lib/crypto/srp"; import { initLogger, logger } from "@app/lib/logger"; import { alphaNumericNanoId } from "@app/lib/nanoid"; import { AuthMethod } from "@app/services/auth/auth-type"; +import { membershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { membershipUserDALFactory } from "@app/services/membership-user/membership-user-dal"; import { assignWorkspaceKeysToMembers, createProjectKey } from "@app/services/project/project-fns"; import { projectKeyDALFactory } from "@app/services/project-key/project-key-dal"; -import { projectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; -import { projectUserMembershipRoleDALFactory } from "@app/services/project-membership/project-user-membership-role-dal"; import { superAdminDALFactory } from "@app/services/super-admin/super-admin-dal"; import { userDALFactory } from "@app/services/user/user-dal"; import { + AccessScope, OrgMembershipRole, OrgMembershipStatus, ProjectMembershipRole, @@ -39,8 +40,8 @@ const createUserWithGhostUser = async ( ) => { const projectKeyDAL = projectKeyDALFactory(knex); const userDAL = userDALFactory(knex); - const projectMembershipDAL = projectMembershipDALFactory(knex); - const projectUserMembershipRoleDAL = projectUserMembershipRoleDALFactory(knex); + const membershipDAL = membershipUserDALFactory(knex); + const membershipRoleDAL = membershipRoleDALFactory(knex); const email = `sudo-${alphaNumericNanoId(16)}-${orgId}@infisical.com`; // We add a nanoid because the email is unique. And we have to create a new ghost user each time, so we can have access to the private key. @@ -63,25 +64,36 @@ const createUserWithGhostUser = async ( .onConflict("userId") .merge(); - await knex(TableName.OrgMembership) + const [orgMembership] = await knex(TableName.Membership) .insert({ - orgId, - userId: ghostUser.id, - role: OrgMembershipRole.Admin, + scope: AccessScope.Organization, + scopeOrgId: orgId, + actorUserId: ghostUser.id, status: OrgMembershipStatus.Accepted, isActive: true }) .returning("*"); - const [projectMembership] = await knex(TableName.ProjectMembership) + await knex(TableName.MembershipRole).insert([ + { + membershipId: orgMembership.id, + role: OrgMembershipRole.Admin + } + ]); + + const [projectMembership] = await knex(TableName.Membership) .insert({ - userId: ghostUser.id, - projectId + actorUserId: ghostUser.id, + scopeProjectId: projectId, + scope: AccessScope.Project, + scopeOrgId: orgId, + status: OrgMembershipStatus.Accepted, + isActive: true }) .returning("*"); - await knex(TableName.ProjectUserMembershipRole).insert({ - projectMembershipId: projectMembership.id, + await knex(TableName.MembershipRole).insert({ + membershipId: projectMembership.id, role: ProjectMembershipRole.Admin }); @@ -142,17 +154,16 @@ const createUserWithGhostUser = async ( }); // Create a membership for the user - const userProjectMembership = await projectMembershipDAL.create( + const userProjectMembership = await membershipDAL.create( { - projectId, - userId: user.id + scopeProjectId: projectId, + scope: AccessScope.Project, + actorUserId: user.id, + scopeOrgId: orgId }, knex ); - await projectUserMembershipRoleDAL.create( - { projectMembershipId: userProjectMembership.id, role: ProjectMembershipRole.Admin }, - knex - ); + await membershipRoleDAL.create({ membershipId: userProjectMembership.id, role: ProjectMembershipRole.Admin }, knex); // Create a project key for the user await projectKeyDAL.create( @@ -195,10 +206,11 @@ export async function seed(knex: Knex): Promise { }) .returning("*"); - const userOrgMembership = await knex(TableName.OrgMembership) + const userOrgMembership = await knex(TableName.Membership) .where({ - orgId: seedData1.organization.id, - userId: seedData1.id + scopeOrgId: seedData1.organization.id, + actorUserId: seedData1.id, + scope: AccessScope.Organization }) .first(); diff --git a/backend/src/db/seeds/4-project-v3.ts b/backend/src/db/seeds/4-project-v3.ts index f89b965a6b..920497a82b 100644 --- a/backend/src/db/seeds/4-project-v3.ts +++ b/backend/src/db/seeds/4-project-v3.ts @@ -1,6 +1,6 @@ import { Knex } from "knex"; -import { ProjectMembershipRole, ProjectType, ProjectVersion, TableName } from "../schemas"; +import { AccessScope, ProjectMembershipRole, ProjectType, ProjectVersion, TableName } from "../schemas"; import { seedData1 } from "../seed-data"; export const DEFAULT_PROJECT_ENVS = [ @@ -23,15 +23,17 @@ export async function seed(knex: Knex): Promise { }) .returning("*"); - const projectMembershipV3 = await knex(TableName.ProjectMembership) + const projectMembershipV3 = await knex(TableName.Membership) .insert({ - projectId: projectV2.id, - userId: seedData1.id + scopeProjectId: projectV2.id, + actorUserId: seedData1.id, + scope: AccessScope.Project, + scopeOrgId: seedData1.organization.id }) .returning("*"); - await knex(TableName.ProjectUserMembershipRole).insert({ + await knex(TableName.MembershipRole).insert({ role: ProjectMembershipRole.Admin, - projectMembershipId: projectMembershipV3[0].id + membershipId: projectMembershipV3[0].id }); // create default environments and default folders diff --git a/backend/src/db/seeds/5-machine-identity.ts b/backend/src/db/seeds/5-machine-identity.ts index ae3d04514a..333fc7e3a6 100644 --- a/backend/src/db/seeds/5-machine-identity.ts +++ b/backend/src/db/seeds/5-machine-identity.ts @@ -5,13 +5,12 @@ import { crypto } from "@app/lib/crypto/cryptography"; import { initLogger, logger } from "@app/lib/logger"; import { superAdminDALFactory } from "@app/services/super-admin/super-admin-dal"; -import { IdentityAuthMethod, OrgMembershipRole, ProjectMembershipRole, TableName } from "../schemas"; +import { AccessScope, IdentityAuthMethod, OrgMembershipRole, ProjectMembershipRole, TableName } from "../schemas"; import { seedData1 } from "../seed-data"; export async function seed(knex: Knex): Promise { // Deletes ALL existing entries await knex(TableName.Identity).del(); - await knex(TableName.IdentityOrgMembership).del(); initLogger(); @@ -78,34 +77,47 @@ export async function seed(knex: Knex): Promise { isClientSecretRevoked: false } ]); - await knex(TableName.IdentityOrgMembership).insert([ + const [orgMembership] = await knex(TableName.Membership) + .insert([ + { + actorIdentityId: seedData1.machineIdentity.id, + scopeOrgId: seedData1.organization.id, + scope: AccessScope.Organization + } + ]) + .returning("*"); + await knex(TableName.MembershipRole).insert([ { - identityId: seedData1.machineIdentity.id, - orgId: seedData1.organization.id, + membershipId: orgMembership.id, role: OrgMembershipRole.Admin } ]); - const identityProjectMembership = await knex(TableName.IdentityProjectMembership) + const identityProjectMembership = await knex(TableName.Membership) .insert({ - identityId: seedData1.machineIdentity.id, - projectId: seedData1.project.id + actorIdentityId: seedData1.machineIdentity.id, + scopeOrgId: seedData1.organization.id, + scope: AccessScope.Project, + scopeProjectId: seedData1.project.id }) .returning("*"); - await knex(TableName.IdentityProjectMembershipRole).insert({ + await knex(TableName.MembershipRole).insert({ role: ProjectMembershipRole.Admin, - projectMembershipId: identityProjectMembership[0].id + membershipId: identityProjectMembership[0].id }); - const identityProjectMembershipV3 = await knex(TableName.IdentityProjectMembership) + + const identityProjectMembershipV3 = await knex(TableName.Membership) .insert({ - identityId: seedData1.machineIdentity.id, - projectId: seedData1.projectV3.id + actorIdentityId: seedData1.machineIdentity.id, + scopeOrgId: seedData1.organization.id, + scope: AccessScope.Project, + scopeProjectId: seedData1.projectV3.id }) .returning("*"); - await knex(TableName.IdentityProjectMembershipRole).insert({ + await knex(TableName.MembershipRole).insert({ role: ProjectMembershipRole.Admin, - projectMembershipId: identityProjectMembershipV3[0].id + membershipId: identityProjectMembershipV3[0].id }); } diff --git a/backend/src/ee/routes/v1/deprecated-project-role-router.ts b/backend/src/ee/routes/v1/deprecated-project-role-router.ts index dc361626d8..f8f73579ee 100644 --- a/backend/src/ee/routes/v1/deprecated-project-role-router.ts +++ b/backend/src/ee/routes/v1/deprecated-project-role-router.ts @@ -1,7 +1,7 @@ import { packRules } from "@casl/ability/extra"; import { z } from "zod"; -import { ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; +import { AccessScope, ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { backfillPermissionV1SchemaToV2Schema, @@ -13,7 +13,6 @@ import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { SanitizedRoleSchemaV1 } from "@app/server/routes/sanitizedSchemas"; import { AuthMode } from "@app/services/auth/auth-type"; -import { ProjectRoleServiceIdentifierType } from "@app/services/project-role/project-role-types"; export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ @@ -55,14 +54,16 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv packRules(backfillPermissionV1SchemaToV2Schema(req.body.permissions, true)) ); - const role = await server.services.projectRole.createRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.SLUG, - projectSlug: req.params.projectSlug + const { id: projectId } = await server.services.convertor.projectSlugToId({ + slug: req.params.projectSlug, + orgId: req.permission.orgId + }); + const role = await server.services.role.createRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId }, data: { ...req.body, @@ -73,7 +74,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId, event: { type: EventType.CREATE_PROJECT_ROLE, metadata: { @@ -86,7 +87,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -131,12 +132,21 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv ? JSON.stringify(packRules(backfillPermissionV1SchemaToV2Schema(req.body.permissions, true))) : undefined; - const role = await server.services.projectRole.updateRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - roleId: req.params.roleId, + const { id: projectId } = await server.services.convertor.projectSlugToId({ + slug: req.params.projectSlug, + orgId: req.permission.orgId + }); + + const role = await server.services.role.updateRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId + }, + selector: { + id: req.params.roleId + }, data: { ...req.body, permissions: stringifiedPermissions @@ -146,7 +156,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: role.projectId as string, event: { type: EventType.UPDATE_PROJECT_ROLE, metadata: { @@ -159,7 +169,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -188,18 +198,27 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const role = await server.services.projectRole.deleteRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - roleId: req.params.roleId + const { id: projectId } = await server.services.convertor.projectSlugToId({ + slug: req.params.projectSlug, + orgId: req.permission.orgId + }); + + const role = await server.services.role.deleteRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId + }, + selector: { + id: req.params.roleId + } }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: role.projectId as string, event: { type: EventType.DELETE_PROJECT_ROLE, metadata: { @@ -210,7 +229,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -238,17 +257,21 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const roles = await server.services.projectRole.listRoles({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.SLUG, - projectSlug: req.params.projectSlug - } + const { id: projectId } = await server.services.convertor.projectSlugToId({ + slug: req.params.projectSlug, + orgId: req.permission.orgId }); - return { roles }; + + const { roles } = await server.services.role.listRoles({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId + }, + data: {} + }); + return { roles: roles.map((el) => ({ ...el, projectId: el.projectId as string })) }; } }); @@ -265,78 +288,30 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv }), response: { 200: z.object({ - role: SanitizedRoleSchemaV1.omit({ version: true }) + role: SanitizedRoleSchemaV1 }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const role = await server.services.projectRole.getRoleBySlug({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.SLUG, - projectSlug: req.params.projectSlug - }, - roleSlug: req.params.slug + const { id: projectId } = await server.services.convertor.projectSlugToId({ + slug: req.params.projectSlug, + orgId: req.permission.orgId }); - return { role }; - } - }); - - server.route({ - method: "GET", - url: "/:projectId/permissions", - config: { - rateLimit: readLimit - }, - schema: { - params: z.object({ - projectId: z.string().trim() - }), - response: { - 200: z.object({ - data: z.object({ - membership: z.object({ - id: z.string(), - roles: z - .object({ - role: z.string() - }) - .array() - }), - assumedPrivilegeDetails: z - .object({ - actorId: z.string(), - actorType: z.string(), - actorName: z.string(), - actorEmail: z.string().optional() - }) - .optional(), - permissions: z.any().array() - }) - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const { permissions, membership, assumedPrivilegeDetails } = await server.services.projectRole.getUserPermission( - req.permission.id, - req.params.projectId, - req.permission.authMethod, - req.permission.orgId - ); - - return { - data: { - permissions, - membership, - assumedPrivilegeDetails + const role = await server.services.role.getRoleBySlug({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId + }, + selector: { + slug: req.params.slug } - }; + }); + + return { role: { ...role, projectId: role.projectId as string } }; } }); }; diff --git a/backend/src/ee/routes/v1/identity-project-additional-privilege-router.ts b/backend/src/ee/routes/v1/identity-project-additional-privilege-router.ts index f64d3c979f..5a6cea20fa 100644 --- a/backend/src/ee/routes/v1/identity-project-additional-privilege-router.ts +++ b/backend/src/ee/routes/v1/identity-project-additional-privilege-router.ts @@ -1,7 +1,7 @@ import slugify from "@sindresorhus/slugify"; import { z } from "zod"; -import { IdentityProjectAdditionalPrivilegeTemporaryMode } from "@app/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-types"; +import { AccessScope, TemporaryPermissionMode } from "@app/db/schemas"; import { backfillPermissionV1SchemaToV2Schema } from "@app/ee/services/permission/project-permission"; import { ApiDocsTags, IDENTITY_ADDITIONAL_PRIVILEGE } from "@app/lib/api-docs"; import { UnauthorizedError } from "@app/lib/errors"; @@ -15,7 +15,7 @@ import { ProjectSpecificPrivilegePermissionSchema, SanitizedIdentityPrivilegeSchema } from "@app/server/routes/sanitizedSchemas"; -import { AuthMode } from "@app/services/auth/auth-type"; +import { ActorType, AuthMode } from "@app/services/auth/auth-type"; export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: FastifyZodProvider) => { server.route({ @@ -56,6 +56,10 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F if (!permissions && !privilegePermission) { throw new UnauthorizedError({ message: "Permission or privilegePermission must be provided" }); } + const { id: projectId } = await server.services.convertor.projectSlugToId({ + orgId: req.permission.orgId, + slug: req.body.projectSlug + }); const permission = privilegePermission ? privilegePermission.actions.map((action) => ({ @@ -64,19 +68,35 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F conditions: privilegePermission.conditions })) : permissions!; - const privilege = await server.services.identityProjectAdditionalPrivilege.create({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - ...req.body, - slug: req.body.slug ?? slugify(alphaNumericNanoId(12)), - isTemporary: false, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore-error this is valid ts - permissions: backfillPermissionV1SchemaToV2Schema(permission) + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.createAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId, + orgId: req.permission.orgId + }, + data: { + actorId: req.body.identityId, + actorType: ActorType.IDENTITY, + ...req.body, + isTemporary: false, + name: req.body.slug || slugify(alphaNumericNanoId(8)), + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore-error this is valid ts + permissions: backfillPermissionV1SchemaToV2Schema(permission) + } }); - return { privilege }; + + return { + privilege: { + ...privilege, + identityId: req.body.identityId, + projectMembershipId: projectId, + projectId, + slug: privilege.name + } + }; } }); @@ -106,7 +126,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F IDENTITY_ADDITIONAL_PRIVILEGE.CREATE.privilegePermission ).optional(), temporaryMode: z - .nativeEnum(IdentityProjectAdditionalPrivilegeTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(IDENTITY_ADDITIONAL_PRIVILEGE.CREATE.temporaryMode), temporaryRange: z .string() @@ -138,19 +158,39 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F })) : permissions!; - const privilege = await server.services.identityProjectAdditionalPrivilege.create({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - ...req.body, - slug: req.body.slug ?? slugify(alphaNumericNanoId(12)), - isTemporary: true, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore-error this is valid ts - permissions: backfillPermissionV1SchemaToV2Schema(permission) + const { id: projectId } = await server.services.convertor.projectSlugToId({ + orgId: req.permission.orgId, + slug: req.body.projectSlug }); - return { privilege }; + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.createAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId, + orgId: req.permission.orgId + }, + data: { + actorId: req.body.identityId, + actorType: ActorType.IDENTITY, + ...req.body, + isTemporary: true, + name: req.body.slug || slugify(alphaNumericNanoId(8)), + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore-error this is valid ts + permissions: backfillPermissionV1SchemaToV2Schema(permission) + } + }); + + return { + privilege: { + ...privilege, + identityId: req.body.identityId, + projectMembershipId: projectId, + projectId, + slug: privilege.name + } + }; } }); @@ -183,7 +223,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F ).optional(), isTemporary: z.boolean().describe(IDENTITY_ADDITIONAL_PRIVILEGE.UPDATE.isTemporary), temporaryMode: z - .nativeEnum(IdentityProjectAdditionalPrivilegeTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(IDENTITY_ADDITIONAL_PRIVILEGE.UPDATE.temporaryMode), temporaryRange: z .string() @@ -216,18 +256,36 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F conditions: privilegePermission.conditions })) : permissions!; - const privilege = await server.services.identityProjectAdditionalPrivilege.updateBySlug({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - slug: req.body.privilegeSlug, - identityId: req.body.identityId, - projectSlug: req.body.projectSlug, + + const { id: projectId } = await server.services.convertor.projectSlugToId({ + orgId: req.permission.orgId, + slug: req.body.projectSlug + }); + + const { privilege: privilegeDoc } = await server.services.convertor.additionalPrivilegeNameToDoc( + req.body.privilegeSlug, + projectId + ); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.updateAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId, + orgId: req.permission.orgId + }, + selector: { + actorId: req.body.identityId, + actorType: ActorType.IDENTITY, + id: privilegeDoc.id + }, data: { + ...req.body, ...updatedInfo, // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore-error this is valid ts + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore-error this is valid ts permissions: permission ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore-error this is valid ts @@ -235,7 +293,16 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F : undefined } }); - return { privilege }; + + return { + privilege: { + ...privilege, + identityId: req.body.identityId, + projectMembershipId: projectId, + projectId, + slug: privilege.name + } + }; } }); @@ -267,16 +334,39 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privilege = await server.services.identityProjectAdditionalPrivilege.deleteBySlug({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - slug: req.body.privilegeSlug, - identityId: req.body.identityId, - projectSlug: req.body.projectSlug + const { id: projectId } = await server.services.convertor.projectSlugToId({ + orgId: req.permission.orgId, + slug: req.body.projectSlug }); - return { privilege }; + + const { privilegeId } = await server.services.convertor.additionalPrivilegeNameToDoc( + req.body.privilegeSlug, + projectId + ); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.deleteAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId, + orgId: req.permission.orgId + }, + selector: { + actorId: req.body.identityId, + actorType: ActorType.IDENTITY, + id: privilegeId + } + }); + + return { + privilege: { + ...privilege, + identityId: req.body.identityId, + projectMembershipId: projectId, + projectId, + slug: privilege.name + } + }; } }); @@ -310,15 +400,39 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privilege = await server.services.identityProjectAdditionalPrivilege.getPrivilegeDetailsBySlug({ - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - slug: req.params.privilegeSlug, - ...req.query + const { id: projectId } = await server.services.convertor.projectSlugToId({ + orgId: req.permission.orgId, + slug: req.query.projectSlug }); - return { privilege }; + + const { privilegeId } = await server.services.convertor.additionalPrivilegeNameToDoc( + req.params.privilegeSlug, + projectId + ); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.getAdditionalPrivilegeById({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId, + orgId: req.permission.orgId + }, + selector: { + actorId: req.query.identityId, + actorType: ActorType.IDENTITY, + id: privilegeId + } + }); + + return { + privilege: { + ...privilege, + identityId: req.query.identityId, + projectMembershipId: projectId, + projectId, + slug: privilege.name + } + }; } }); @@ -349,15 +463,32 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privileges = await server.services.identityProjectAdditionalPrivilege.listIdentityProjectPrivileges({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - ...req.query + const { id: projectId } = await server.services.convertor.projectSlugToId({ + orgId: req.permission.orgId, + slug: req.query.projectSlug }); + + const { additionalPrivileges: privileges } = await server.services.additionalPrivilege.listAdditionalPrivileges({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId, + orgId: req.permission.orgId + }, + selector: { + actorId: req.query.identityId, + actorType: ActorType.IDENTITY + } + }); + return { - privileges + privileges: privileges.map((privilege) => ({ + ...privilege, + identityId: req.query.identityId, + projectMembershipId: projectId, + projectId, + slug: privilege.name + })) }; } }); diff --git a/backend/src/ee/routes/v1/kmip-spec-router.ts b/backend/src/ee/routes/v1/kmip-spec-router.ts index 9a1f4902ce..c7db12de9e 100644 --- a/backend/src/ee/routes/v1/kmip-spec-router.ts +++ b/backend/src/ee/routes/v1/kmip-spec-router.ts @@ -128,7 +128,8 @@ export const registerKmipSpecRouter = async (server: FastifyZodProvider) => { 200: z.object({ id: z.string(), value: z.string(), - algorithm: z.string() + algorithm: z.string(), + kmipMetadata: z.record(z.any()).optional() }) } }, @@ -433,7 +434,8 @@ export const registerKmipSpecRouter = async (server: FastifyZodProvider) => { body: z.object({ key: z.string(), name: z.string(), - algorithm: z.nativeEnum(SymmetricKeyAlgorithm) + algorithm: z.nativeEnum(SymmetricKeyAlgorithm), + kmipMetadata: z.record(z.any()).optional() }), response: { 200: z.object({ diff --git a/backend/src/ee/routes/v1/org-role-router.ts b/backend/src/ee/routes/v1/org-role-router.ts index 070462d47c..5a8f030381 100644 --- a/backend/src/ee/routes/v1/org-role-router.ts +++ b/backend/src/ee/routes/v1/org-role-router.ts @@ -1,7 +1,9 @@ +import { packRules } from "@casl/ability/extra"; import { z } from "zod"; -import { OrgMembershipRole, OrgMembershipsSchema, OrgRolesSchema } from "@app/db/schemas"; +import { AccessScope, OrgMembershipRole, OrgRolesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { OrgPermissionSchema } from "@app/ee/services/permission/org-permission"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; @@ -25,8 +27,7 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { ), name: z.string().trim(), description: z.string().trim().nullish(), - // TODO(scott): once UI refactored permissions: OrgPermissionSchema.array() - permissions: z.any().array() + permissions: OrgPermissionSchema.array() }), response: { 200: z.object({ @@ -36,13 +37,18 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const role = await server.services.orgRole.createRole( - req.permission.id, - req.params.organizationId, - req.body, - req.permission.authMethod, - req.permission.orgId - ); + const stringifiedPermissions = JSON.stringify(packRules(req.body.permissions)); + const role = await server.services.role.createRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Organization, + orgId: req.params.organizationId + }, + data: { + ...req.body, + permissions: stringifiedPermissions + } + }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, @@ -59,7 +65,7 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { } }); - return { role }; + return { role: { ...role, orgId: role.orgId as string } }; } }); @@ -82,14 +88,17 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const role = await server.services.orgRole.getRole( - req.permission.id, - req.params.organizationId, - req.params.roleId, - req.permission.authMethod, - req.permission.orgId - ); - return { role }; + const role = await server.services.role.getRoleById({ + permission: req.permission, + scopeData: { + scope: AccessScope.Organization, + orgId: req.params.organizationId + }, + selector: { + id: req.params.roleId + } + }); + return { role: { ...role, orgId: role.orgId as string } }; } }); @@ -114,8 +123,7 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { .optional(), name: z.string().trim().optional(), description: z.string().trim().nullish(), - // TODO(scott): once UI refactored permissions: OrgPermissionSchema.array().optional() - permissions: z.any().array().optional() + permissions: OrgPermissionSchema.array().optional() }), response: { 200: z.object({ @@ -125,14 +133,21 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const role = await server.services.orgRole.updateRole( - req.permission.id, - req.params.organizationId, - req.params.roleId, - req.body, - req.permission.authMethod, - req.permission.orgId - ); + const stringifiedPermissions = req.body.permissions ? JSON.stringify(packRules(req.body.permissions)) : undefined; + const role = await server.services.role.updateRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Organization, + orgId: req.params.organizationId + }, + selector: { + id: req.params.roleId + }, + data: { + ...req.body, + permissions: stringifiedPermissions + } + }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, @@ -149,7 +164,7 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { } }); - return { role }; + return { role: { ...role, orgId: role.orgId as string } }; } }); @@ -172,13 +187,16 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const role = await server.services.orgRole.deleteRole( - req.permission.id, - req.params.organizationId, - req.params.roleId, - req.permission.authMethod, - req.permission.orgId - ); + const role = await server.services.role.deleteRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Organization, + orgId: req.params.organizationId + }, + selector: { + id: req.params.roleId + } + }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, @@ -189,7 +207,7 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { } }); - return { role }; + return { role: { ...role, orgId: role.orgId as string } }; } }); @@ -206,22 +224,26 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ data: z.object({ - roles: OrgRolesSchema.omit({ permissions: true }) - .merge(z.object({ permissions: z.unknown() })) - .array() + roles: OrgRolesSchema.omit({ permissions: true }).array() }) }) } }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const roles = await server.services.orgRole.listRoles( - req.permission.id, - req.params.organizationId, - req.permission.authMethod, - req.permission.orgId - ); - return { data: { roles } }; + const { roles } = await server.services.role.listRoles({ + permission: req.permission, + scopeData: { + scope: AccessScope.Organization, + orgId: req.permission.orgId + }, + data: {} + }); + return { + data: { + roles: roles.map((el) => ({ ...el, orgId: el.orgId as string })) + } + }; } }); @@ -237,20 +259,33 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - membership: OrgMembershipsSchema, + memberships: z + .object({ + id: z.string(), + roles: z + .object({ + role: z.string() + }) + .array() + }) + .array(), permissions: z.any().array() }) } }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const { permissions, membership } = await server.services.orgRole.getUserPermission( - req.permission.id, - req.params.organizationId, - req.permission.authMethod, - req.permission.orgId - ); - return { permissions, membership }; + const { permissions, memberships } = await server.services.role.getUserPermission({ + permission: req.permission, + scopeData: { + scope: AccessScope.Organization, + orgId: req.permission.orgId + } + }); + return { + permissions, + memberships + }; } }); }; diff --git a/backend/src/ee/routes/v1/project-role-router.ts b/backend/src/ee/routes/v1/project-role-router.ts index 5a20ad893d..acf34cb3bf 100644 --- a/backend/src/ee/routes/v1/project-role-router.ts +++ b/backend/src/ee/routes/v1/project-role-router.ts @@ -1,7 +1,7 @@ import { packRules } from "@casl/ability/extra"; import { z } from "zod"; -import { ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; +import { AccessScope, ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { checkForInvalidPermissionCombination } from "@app/ee/services/permission/permission-fns"; import { ProjectPermissionV2Schema } from "@app/ee/services/permission/project-permission"; @@ -11,7 +11,6 @@ import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { SanitizedRoleSchema } from "@app/server/routes/sanitizedSchemas"; import { AuthMode } from "@app/services/auth/auth-type"; -import { ProjectRoleServiceIdentifierType } from "@app/services/project-role/project-role-types"; export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ @@ -55,13 +54,11 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { handler: async (req) => { const stringifiedPermissions = JSON.stringify(packRules(req.body.permissions)); - const role = await server.services.projectRole.createRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.ID, + const role = await server.services.role.createRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, projectId: req.params.projectId }, data: { @@ -73,7 +70,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: role.projectId as string, event: { type: EventType.CREATE_PROJECT_ROLE, metadata: { @@ -86,7 +83,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -133,12 +130,16 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { const stringifiedPermissions = req.body.permissions ? JSON.stringify(packRules(req.body.permissions)) : undefined; - const role = await server.services.projectRole.updateRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - roleId: req.params.roleId, + const role = await server.services.role.updateRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + id: req.params.roleId + }, data: { ...req.body, permissions: stringifiedPermissions @@ -148,7 +149,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: role.projectId as string, event: { type: EventType.UPDATE_PROJECT_ROLE, metadata: { @@ -161,7 +162,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -192,18 +193,22 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const role = await server.services.projectRole.deleteRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - roleId: req.params.roleId + const role = await server.services.role.deleteRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + id: req.params.roleId + } }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: role.projectId as string, event: { type: EventType.DELETE_PROJECT_ROLE, metadata: { @@ -214,7 +219,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -244,17 +249,16 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const roles = await server.services.projectRole.listRoles({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.ID, + const { roles } = await server.services.role.listRoles({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, projectId: req.params.projectId - } + }, + data: {} }); - return { roles }; + return { roles: roles.map((el) => ({ ...el, projectId: el.projectId as string })) }; } }); @@ -273,24 +277,25 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - role: SanitizedRoleSchema.omit({ version: true }) + role: SanitizedRoleSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const role = await server.services.projectRole.getRoleBySlug({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.ID, + const role = await server.services.role.getRoleBySlug({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, projectId: req.params.projectId }, - roleSlug: req.params.roleSlug + selector: { + slug: req.params.roleSlug + } }); - return { role }; + + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -307,14 +312,16 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ data: z.object({ - membership: z.object({ - id: z.string(), - roles: z - .object({ - role: z.string() - }) - .array() - }), + memberships: z + .object({ + id: z.string(), + roles: z + .object({ + role: z.string() + }) + .array() + }) + .array(), assumedPrivilegeDetails: z .object({ actorId: z.string(), @@ -330,17 +337,19 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const { permissions, membership, assumedPrivilegeDetails } = await server.services.projectRole.getUserPermission( - req.permission.id, - req.params.projectId, - req.permission.authMethod, - req.permission.orgId - ); + const { permissions, memberships, assumedPrivilegeDetails } = await server.services.role.getUserPermission({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: req.params.projectId, + orgId: req.permission.orgId + } + }); return { data: { permissions, - membership, + memberships, assumedPrivilegeDetails } }; diff --git a/backend/src/ee/routes/v1/relay-router.ts b/backend/src/ee/routes/v1/relay-router.ts index f3d006b108..766025c21d 100644 --- a/backend/src/ee/routes/v1/relay-router.ts +++ b/backend/src/ee/routes/v1/relay-router.ts @@ -146,4 +146,85 @@ export const registerRelayRouter = async (server: FastifyZodProvider) => { }); } }); + + server.route({ + method: "POST", + url: "/heartbeat-instance-relay", + config: { + rateLimit: writeLimit + }, + schema: { + body: z.object({ + name: slugSchema({ min: 1, max: 32, field: "name" }) + }), + response: { + 200: z.object({ + message: z.string() + }) + } + }, + onRequest: (req, _, next) => { + const authHeader = req.headers.authorization; + + if (!appCfg.RELAY_AUTH_SECRET) { + throw new UnauthorizedError({ + message: "Relay authentication not configured" + }); + } + + if (!authHeader) { + throw new UnauthorizedError({ + message: "Missing authorization header" + }); + } + + const expectedHeader = `Bearer ${appCfg.RELAY_AUTH_SECRET}`; + if ( + authHeader.length === expectedHeader.length && + crypto.nativeCrypto.timingSafeEqual(Buffer.from(authHeader), Buffer.from(expectedHeader)) + ) { + return next(); + } + + throw new UnauthorizedError({ + message: "Invalid relay auth secret" + }); + }, + handler: async (req) => { + await server.services.relay.heartbeat({ + name: req.body.name + }); + + return { message: "Successfully triggered heartbeat" }; + } + }); + + server.route({ + method: "POST", + url: "/heartbeat-org-relay", + config: { + rateLimit: writeLimit + }, + schema: { + body: z.object({ + name: slugSchema({ min: 1, max: 32, field: "name" }) + }), + response: { + 200: z.object({ + message: z.string() + }) + } + }, + onRequest: verifyAuth([AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + await server.services.relay.heartbeat({ + name: req.body.name, + identityId: req.permission.id, + orgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod + }); + + return { message: "Successfully triggered heartbeat" }; + } + }); }; diff --git a/backend/src/ee/routes/v1/secret-router.ts b/backend/src/ee/routes/v1/secret-router.ts index b9eeb7729c..9b7f9f35f4 100644 --- a/backend/src/ee/routes/v1/secret-router.ts +++ b/backend/src/ee/routes/v1/secret-router.ts @@ -11,7 +11,6 @@ const AccessListEntrySchema = z .object({ allowedActions: z.nativeEnum(ProjectPermissionSecretActions).array(), id: z.string(), - membershipId: z.string(), name: z.string() }) .array(); diff --git a/backend/src/ee/routes/v1/user-additional-privilege-router.ts b/backend/src/ee/routes/v1/user-additional-privilege-router.ts index df8512adae..926b222319 100644 --- a/backend/src/ee/routes/v1/user-additional-privilege-router.ts +++ b/backend/src/ee/routes/v1/user-additional-privilege-router.ts @@ -1,17 +1,18 @@ import slugify from "@sindresorhus/slugify"; import { z } from "zod"; +import { AccessScope, TemporaryPermissionMode } from "@app/db/schemas"; import { checkForInvalidPermissionCombination } from "@app/ee/services/permission/permission-fns"; import { ProjectPermissionV2Schema } from "@app/ee/services/permission/project-permission"; -import { ProjectUserAdditionalPrivilegeTemporaryMode } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-types"; import { PROJECT_USER_ADDITIONAL_PRIVILEGE } from "@app/lib/api-docs"; +import { NotFoundError } from "@app/lib/errors"; import { ms } from "@app/lib/ms"; import { alphaNumericNanoId } from "@app/lib/nanoid"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { SanitizedUserProjectAdditionalPrivilegeSchema } from "@app/server/routes/sanitizedSchema/user-additional-privilege"; -import { AuthMode } from "@app/services/auth/auth-type"; +import { ActorType, AuthMode } from "@app/services/auth/auth-type"; export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodProvider) => { server.route({ @@ -34,7 +35,7 @@ export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodPr z.object({ isTemporary: z.literal(true), temporaryMode: z - .nativeEnum(ProjectUserAdditionalPrivilegeTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(PROJECT_USER_ADDITIONAL_PRIVILEGE.CREATE.temporaryMode), temporaryRange: z .string() @@ -55,17 +56,31 @@ export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodPr }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const privilege = await server.services.projectUserAdditionalPrivilege.create({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - projectMembershipId: req.body.projectMembershipId, - ...req.body.type, - slug: req.body.slug || slugify(alphaNumericNanoId(8)), - permissions: req.body.permissions + const { userId, membership } = await server.services.convertor.userMembershipIdToUserId( + req.body.projectMembershipId, + AccessScope.Project, + req.permission.orgId + ); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.createAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: membership.scopeProjectId as string, + orgId: req.permission.orgId + }, + data: { + actorId: userId, + actorType: ActorType.USER, + ...req.body.type, + name: req.body.slug || slugify(alphaNumericNanoId(8)), + permissions: req.body.permissions + } }); - return { privilege }; + + return { + privilege: { ...privilege, userId, projectId: membership.scopeProjectId as string, slug: privilege.name } + }; } }); @@ -91,7 +106,7 @@ export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodPr z.object({ isTemporary: z.literal(true).describe(PROJECT_USER_ADDITIONAL_PRIVILEGE.UPDATE.isTemporary), temporaryMode: z - .nativeEnum(ProjectUserAdditionalPrivilegeTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(PROJECT_USER_ADDITIONAL_PRIVILEGE.UPDATE.temporaryMode), temporaryRange: z .string() @@ -113,21 +128,41 @@ export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodPr }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const privilege = await server.services.projectUserAdditionalPrivilege.updateById({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - ...req.body, - ...req.body.type, - permissions: req.body.permissions - ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore-error this is valid ts - req.body.permissions - : undefined, - privilegeId: req.params.privilegeId + const data = await server.services.convertor.additionalPrivilegeIdToDoc(req.params.privilegeId); + if (!data.privilege.actorUserId) + throw new NotFoundError({ message: `Privilege with id ${req.params.privilegeId} not found` }); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.updateAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: data.privilege.projectId as string, + orgId: req.permission.orgId + }, + data: { + ...req.body, + ...req.body.type, + permissions: req.body.permissions + ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore-error this is valid ts + req.body.permissions + : undefined + }, + selector: { + id: req.params.privilegeId, + actorId: data.privilege.actorUserId, + actorType: ActorType.USER + } }); - return { privilege }; + + return { + privilege: { + ...privilege, + userId: data.privilege.actorUserId, + projectId: data.privilege.projectId as string, + slug: privilege.name + } + }; } }); @@ -149,14 +184,32 @@ export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodPr }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const privilege = await server.services.projectUserAdditionalPrivilege.deleteById({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - privilegeId: req.params.privilegeId + const data = await server.services.convertor.additionalPrivilegeIdToDoc(req.params.privilegeId); + if (!data.privilege.actorUserId) + throw new NotFoundError({ message: `Privilege with id ${req.params.privilegeId} not found` }); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.deleteAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: data.privilege.projectId as string, + orgId: req.permission.orgId + }, + selector: { + id: req.params.privilegeId, + actorId: data.privilege.actorUserId, + actorType: ActorType.USER + } }); - return { privilege }; + + return { + privilege: { + ...privilege, + userId: data.privilege.actorUserId, + projectId: data.privilege.projectId as string, + slug: privilege.name + } + }; } }); @@ -178,14 +231,33 @@ export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodPr }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const privileges = await server.services.projectUserAdditionalPrivilege.listPrivileges({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - projectMembershipId: req.query.projectMembershipId + const { userId, membership } = await server.services.convertor.userMembershipIdToUserId( + req.query.projectMembershipId, + AccessScope.Project, + req.permission.orgId + ); + + const { additionalPrivileges: privileges } = await server.services.additionalPrivilege.listAdditionalPrivileges({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: membership.scopeProjectId as string, + orgId: req.permission.orgId + }, + selector: { + actorId: userId, + actorType: ActorType.USER + } }); - return { privileges }; + + return { + privileges: privileges.map((privilege) => ({ + ...privilege, + userId: membership.actorUserId as string, + projectId: membership.scopeProjectId as string, + slug: privilege.name + })) + }; } }); @@ -207,14 +279,32 @@ export const registerUserAdditionalPrivilegeRouter = async (server: FastifyZodPr }, onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { - const privilege = await server.services.projectUserAdditionalPrivilege.getPrivilegeDetailsById({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - privilegeId: req.params.privilegeId + const data = await server.services.convertor.additionalPrivilegeIdToDoc(req.params.privilegeId); + if (!data.privilege.actorUserId) + throw new NotFoundError({ message: `Privilege with id ${req.params.privilegeId} not found` }); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.getAdditionalPrivilegeById({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: data.privilege.projectId as string, + orgId: req.permission.orgId + }, + selector: { + id: req.params.privilegeId, + actorId: data.privilege.actorUserId, + actorType: ActorType.USER + } }); - return { privilege }; + + return { + privilege: { + ...privilege, + userId: data.privilege.actorUserId, + projectId: data.privilege.projectId as string, + slug: privilege.name + } + }; } }); }; diff --git a/backend/src/ee/routes/v2/deprecated-project-role-router.ts b/backend/src/ee/routes/v2/deprecated-project-role-router.ts index 326bda06a4..0a44d4d21d 100644 --- a/backend/src/ee/routes/v2/deprecated-project-role-router.ts +++ b/backend/src/ee/routes/v2/deprecated-project-role-router.ts @@ -1,7 +1,7 @@ import { packRules } from "@casl/ability/extra"; import { z } from "zod"; -import { ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; +import { AccessScope, ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { checkForInvalidPermissionCombination } from "@app/ee/services/permission/permission-fns"; import { ProjectPermissionV2Schema } from "@app/ee/services/permission/project-permission"; @@ -11,7 +11,6 @@ import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { SanitizedRoleSchema } from "@app/server/routes/sanitizedSchemas"; import { AuthMode } from "@app/services/auth/auth-type"; -import { ProjectRoleServiceIdentifierType } from "@app/services/project-role/project-role-types"; export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ @@ -55,13 +54,11 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv handler: async (req) => { const stringifiedPermissions = JSON.stringify(packRules(req.body.permissions)); - const role = await server.services.projectRole.createRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.ID, + const role = await server.services.role.createRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, projectId: req.params.projectId }, data: { @@ -73,7 +70,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: req.params.projectId, event: { type: EventType.CREATE_PROJECT_ROLE, metadata: { @@ -86,7 +83,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -133,12 +130,16 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { const stringifiedPermissions = req.body.permissions ? JSON.stringify(packRules(req.body.permissions)) : undefined; - const role = await server.services.projectRole.updateRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - roleId: req.params.roleId, + const role = await server.services.role.updateRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + id: req.params.roleId + }, data: { ...req.body, permissions: stringifiedPermissions @@ -148,7 +149,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: role.projectId as string, event: { type: EventType.UPDATE_PROJECT_ROLE, metadata: { @@ -161,7 +162,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -192,18 +193,22 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const role = await server.services.projectRole.deleteRole({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - roleId: req.params.roleId + const role = await server.services.role.deleteRole({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + id: req.params.roleId + } }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: role.projectId, + projectId: role.projectId as string, event: { type: EventType.DELETE_PROJECT_ROLE, metadata: { @@ -214,7 +219,7 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv } }); - return { role }; + return { role: { ...role, projectId: role.projectId as string } }; } }); @@ -244,17 +249,16 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const roles = await server.services.projectRole.listRoles({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.ID, + const { roles } = await server.services.role.listRoles({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, projectId: req.params.projectId - } + }, + data: {} }); - return { roles }; + return { roles: roles.map((el) => ({ ...el, projectId: el.projectId as string })) }; } }); @@ -273,24 +277,25 @@ export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProv }), response: { 200: z.object({ - role: SanitizedRoleSchema.omit({ version: true }) + role: SanitizedRoleSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const role = await server.services.projectRole.getRoleBySlug({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - filter: { - type: ProjectRoleServiceIdentifierType.ID, + const role = await server.services.role.getRoleBySlug({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, projectId: req.params.projectId }, - roleSlug: req.params.roleSlug + selector: { + slug: req.params.roleSlug + } }); - return { role }; + + return { role: { ...role, projectId: role.projectId as string } }; } }); }; diff --git a/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts b/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts index a6d4459e43..f8ac34b4b4 100644 --- a/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts +++ b/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts @@ -1,7 +1,7 @@ import slugify from "@sindresorhus/slugify"; import { z } from "zod"; -import { IdentityProjectAdditionalPrivilegeTemporaryMode } from "@app/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-types"; +import { AccessScope, TemporaryPermissionMode } from "@app/db/schemas"; import { checkForInvalidPermissionCombination } from "@app/ee/services/permission/permission-fns"; import { ProjectPermissionV2Schema } from "@app/ee/services/permission/project-permission"; import { ApiDocsTags, IDENTITY_ADDITIONAL_PRIVILEGE_V2 } from "@app/lib/api-docs"; @@ -11,7 +11,7 @@ import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { SanitizedIdentityPrivilegeSchema } from "@app/server/routes/sanitizedSchema/identitiy-additional-privilege"; -import { AuthMode } from "@app/services/auth/auth-type"; +import { ActorType, AuthMode } from "@app/services/auth/auth-type"; export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: FastifyZodProvider) => { server.route({ @@ -43,7 +43,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F z.object({ isTemporary: z.literal(true), temporaryMode: z - .nativeEnum(IdentityProjectAdditionalPrivilegeTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(IDENTITY_ADDITIONAL_PRIVILEGE_V2.CREATE.temporaryMode), temporaryRange: z .string() @@ -64,18 +64,31 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privilege = await server.services.identityProjectAdditionalPrivilegeV2.create({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - projectId: req.body.projectId, - identityId: req.body.identityId, - ...req.body.type, - slug: req.body.slug || slugify(alphaNumericNanoId(8)), - permissions: req.body.permissions + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.createAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: req.body.projectId, + orgId: req.permission.orgId + }, + data: { + actorId: req.body.identityId, + actorType: ActorType.IDENTITY, + ...req.body.type, + name: req.body.slug || slugify(alphaNumericNanoId(8)), + permissions: req.body.permissions + } }); - return { privilege }; + + return { + privilege: { + ...privilege, + identityId: req.body.identityId, + projectMembershipId: req.body.projectId, + projectId: req.body.projectId, + slug: privilege.name + } + }; } }); @@ -108,7 +121,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F z.object({ isTemporary: z.literal(true).describe(IDENTITY_ADDITIONAL_PRIVILEGE_V2.UPDATE.isTemporary), temporaryMode: z - .nativeEnum(IdentityProjectAdditionalPrivilegeTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(IDENTITY_ADDITIONAL_PRIVILEGE_V2.UPDATE.temporaryMode), temporaryRange: z .string() @@ -129,19 +142,36 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privilege = await server.services.identityProjectAdditionalPrivilegeV2.updateById({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - id: req.params.id, + const { privilege: privilegeDoc } = await server.services.convertor.additionalPrivilegeIdToDoc(req.params.id); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.updateAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: privilegeDoc.projectId as string, + orgId: req.permission.orgId + }, + selector: { + id: req.params.id, + actorId: privilegeDoc.actorIdentityId as string, + actorType: ActorType.IDENTITY + }, data: { ...req.body, ...req.body.type, permissions: req.body.permissions || undefined } }); - return { privilege }; + + return { + privilege: { + ...privilege, + identityId: privilegeDoc.actorIdentityId as string, + projectMembershipId: privilegeDoc.projectId as string, + projectId: privilegeDoc.projectId as string, + slug: privilege.name + } + }; } }); @@ -171,14 +201,31 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privilege = await server.services.identityProjectAdditionalPrivilegeV2.deleteById({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - id: req.params.id + const { privilege: privilegeDoc } = await server.services.convertor.additionalPrivilegeIdToDoc(req.params.id); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.deleteAdditionalPrivilege({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: privilegeDoc.projectId as string, + orgId: req.permission.orgId + }, + selector: { + id: req.params.id, + actorId: privilegeDoc.actorIdentityId as string, + actorType: ActorType.IDENTITY + } }); - return { privilege }; + + return { + privilege: { + ...privilege, + identityId: privilegeDoc.actorIdentityId as string, + projectMembershipId: privilegeDoc.projectId as string, + projectId: privilegeDoc.projectId as string, + slug: privilege.name + } + }; } }); @@ -208,14 +255,31 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privilege = await server.services.identityProjectAdditionalPrivilegeV2.getPrivilegeDetailsById({ - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - id: req.params.id + const { privilege: privilegeDoc } = await server.services.convertor.additionalPrivilegeIdToDoc(req.params.id); + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.getAdditionalPrivilegeById({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: privilegeDoc.projectId as string, + orgId: req.permission.orgId + }, + selector: { + id: req.params.id, + actorId: privilegeDoc.actorIdentityId as string, + actorType: ActorType.IDENTITY + } }); - return { privilege }; + + return { + privilege: { + ...privilege, + identityId: privilegeDoc.actorIdentityId as string, + projectMembershipId: privilegeDoc.projectId as string, + projectId: privilegeDoc.projectId as string, + slug: privilege.name + } + }; } }); @@ -249,15 +313,36 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privilege = await server.services.identityProjectAdditionalPrivilegeV2.getPrivilegeDetailsBySlug({ - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - slug: req.params.privilegeSlug, - ...req.query + const { id: projectId } = await server.services.convertor.projectSlugToId({ + slug: req.query.projectSlug, + orgId: req.permission.orgId }); - return { privilege }; + + const { additionalPrivilege: privilege } = await server.services.additionalPrivilege.getAdditionalPrivilegeByName( + { + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId, + orgId: req.permission.orgId + }, + selector: { + name: req.params.privilegeSlug, + actorId: req.query.identityId, + actorType: ActorType.IDENTITY + } + } + ); + + return { + privilege: { + ...privilege, + identityId: req.query.identityId, + projectMembershipId: privilege.projectId as string, + projectId, + slug: privilege.name + } + }; } }); @@ -288,15 +373,27 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const privileges = await server.services.identityProjectAdditionalPrivilegeV2.listIdentityProjectPrivileges({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - ...req.query + const { additionalPrivileges: privileges } = await server.services.additionalPrivilege.listAdditionalPrivileges({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + projectId: req.query.projectId, + orgId: req.permission.orgId + }, + selector: { + actorId: req.query.identityId, + actorType: ActorType.IDENTITY + } }); + return { - privileges + privileges: privileges.map((privilege) => ({ + ...privilege, + identityId: req.query.identityId, + projectMembershipId: privilege.projectId as string, + projectId: req.query.projectId, + slug: privilege.name + })) }; } }); diff --git a/backend/src/ee/services/access-approval-policy/access-approval-policy-service.ts b/backend/src/ee/services/access-approval-policy/access-approval-policy-service.ts index 95d1a98779..16c7e962c7 100644 --- a/backend/src/ee/services/access-approval-policy/access-approval-policy-service.ts +++ b/backend/src/ee/services/access-approval-policy/access-approval-policy-service.ts @@ -1,21 +1,20 @@ import { ForbiddenError } from "@casl/ability"; -import { ActionProjectType } from "@app/db/schemas"; +import { AccessScope, ActionProjectType } from "@app/db/schemas"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { groupBy } from "@app/lib/fn"; -import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; +import { TAdditionalPrivilegeDALFactory } from "@app/services/additional-privilege/additional-privilege-dal"; +import { TMembershipUserDALFactory } from "@app/services/membership-user/membership-user-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectEnvDALFactory } from "@app/services/project-env/project-env-dal"; -import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { TUserDALFactory } from "@app/services/user/user-dal"; import { TAccessApprovalRequestDALFactory } from "../access-approval-request/access-approval-request-dal"; import { TAccessApprovalRequestReviewerDALFactory } from "../access-approval-request/access-approval-request-reviewer-dal"; import { ApprovalStatus } from "../access-approval-request/access-approval-request-types"; import { TGroupDALFactory } from "../group/group-dal"; -import { TProjectUserAdditionalPrivilegeDALFactory } from "../project-user-additional-privilege/project-user-additional-privilege-dal"; import { TAccessApprovalPolicyApproverDALFactory, TAccessApprovalPolicyBypasserDALFactory @@ -39,14 +38,13 @@ type TAccessApprovalPolicyServiceFactoryDep = { projectEnvDAL: Pick; accessApprovalPolicyApproverDAL: TAccessApprovalPolicyApproverDALFactory; accessApprovalPolicyBypasserDAL: TAccessApprovalPolicyBypasserDALFactory; - projectMembershipDAL: Pick; groupDAL: TGroupDALFactory; userDAL: Pick; accessApprovalRequestDAL: Pick; - additionalPrivilegeDAL: Pick; + additionalPrivilegeDAL: Pick; accessApprovalRequestReviewerDAL: Pick; - orgMembershipDAL: Pick; accessApprovalPolicyEnvironmentDAL: TAccessApprovalPolicyEnvironmentDALFactory; + membershipUserDAL: TMembershipUserDALFactory; }; export const accessApprovalPolicyServiceFactory = ({ @@ -62,7 +60,7 @@ export const accessApprovalPolicyServiceFactory = ({ accessApprovalRequestDAL, additionalPrivilegeDAL, accessApprovalRequestReviewerDAL, - orgMembershipDAL + membershipUserDAL }: TAccessApprovalPolicyServiceFactoryDep): TAccessApprovalPolicyServiceFactory => { const $policyExists = async ({ envId, @@ -424,13 +422,14 @@ export const accessApprovalPolicyServiceFactory = ({ // Validate user bypassers if (bypasserUserIds.length > 0) { - const orgMemberships = await orgMembershipDAL.find({ - $in: { userId: bypasserUserIds }, - orgId: actorOrgId + const orgMemberships = await membershipUserDAL.find({ + $in: { actorUserId: bypasserUserIds }, + scopeOrgId: actorOrgId, + scope: AccessScope.Organization }); if (orgMemberships.length !== bypasserUserIds.length) { - const foundUserIdsInOrg = new Set(orgMemberships.map((mem) => mem.userId)); + const foundUserIdsInOrg = new Set(orgMemberships.map((mem) => mem.actorUserId as string)); const missingUserIds = bypasserUserIds.filter((id) => !foundUserIdsInOrg.has(id)); throw new BadRequestError({ message: `One or more specified bypasser users are not part of the organization or do not exist. Invalid or non-member user IDs: ${missingUserIds.join(", ")}` @@ -633,7 +632,7 @@ export const accessApprovalPolicyServiceFactory = ({ if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const { membership } = await permissionService.getProjectPermission({ + await permissionService.getProjectPermission({ actor, actorId, projectId: project.id, @@ -641,9 +640,6 @@ export const accessApprovalPolicyServiceFactory = ({ actorOrgId, actionProjectType: ActionProjectType.SecretManager }); - if (!membership) { - throw new ForbiddenRequestError({ message: "You are not a member of this project" }); - } const environment = await projectEnvDAL.findOne({ projectId: project.id, slug: envSlug }); if (!environment) throw new NotFoundError({ message: `Environment with slug '${envSlug}' not found` }); diff --git a/backend/src/ee/services/access-approval-request/access-approval-request-dal.ts b/backend/src/ee/services/access-approval-request/access-approval-request-dal.ts index f3972fc1cc..3bea66696d 100644 --- a/backend/src/ee/services/access-approval-request/access-approval-request-dal.ts +++ b/backend/src/ee/services/access-approval-request/access-approval-request-dal.ts @@ -3,9 +3,10 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; import { AccessApprovalRequestsSchema, + AccessScope, TableName, TAccessApprovalRequests, - TOrgMemberships, + TMemberships, TUserGroupMembership, TUsers } from "@app/db/schemas"; @@ -244,11 +245,10 @@ export const accessApprovalRequestDALFactory = (db: TDbClient): TAccessApprovalR const docs = await db .replicaNode()(TableName.AccessApprovalRequest) .whereIn(`${TableName.AccessApprovalRequest}.policyId`, policyIds) - .leftJoin( - TableName.ProjectUserAdditionalPrivilege, + TableName.AdditionalPrivilege, `${TableName.AccessApprovalRequest}.privilegeId`, - `${TableName.ProjectUserAdditionalPrivilege}.id` + `${TableName.AdditionalPrivilege}.id` ) .leftJoin( TableName.AccessApprovalPolicy, @@ -276,7 +276,6 @@ export const accessApprovalRequestDALFactory = (db: TDbClient): TAccessApprovalR `${TableName.UserGroupMembership}.groupId` ) .leftJoin(TableName.Users, `${TableName.UserGroupMembership}.userId`, `${TableName.Users}.id`) - .leftJoin( TableName.AccessApprovalPolicyBypasser, `${TableName.AccessApprovalPolicy}.id`, @@ -294,24 +293,24 @@ export const accessApprovalRequestDALFactory = (db: TDbClient): TAccessApprovalR `requestedByUser.id` ) - .leftJoin( - db(TableName.OrgMembership).as("approverOrgMembership"), - `${TableName.AccessApprovalPolicyApprover}.approverUserId`, - `approverOrgMembership.userId` - ) - - .leftJoin( - db(TableName.OrgMembership).as("approverGroupOrgMembership"), - `${TableName.Users}.id`, - `approverGroupOrgMembership.userId` - ) - - .leftJoin( - db(TableName.OrgMembership).as("reviewerOrgMembership"), - `${TableName.AccessApprovalRequestReviewer}.reviewerUserId`, - `reviewerOrgMembership.userId` - ) - + .leftJoin(db(TableName.Membership).as("approverOrgMembership"), (qb) => { + qb.on( + `${TableName.AccessApprovalPolicyApprover}.approverUserId`, + `approverOrgMembership.actorUserId` + ).andOn(`approverOrgMembership.scope`, db.raw("?", [AccessScope.Organization])); + }) + .leftJoin(db(TableName.Membership).as("approverGroupOrgMembership"), (qb) => { + qb.on(`${TableName.Users}.id`, `approverGroupOrgMembership.actorUserId`).andOn( + `approverGroupOrgMembership.scope`, + db.raw("?", [AccessScope.Organization]) + ); + }) + .leftJoin(db(TableName.Membership).as("reviewerOrgMembership"), (qb) => { + qb.on( + `${TableName.AccessApprovalRequestReviewer}.reviewerUserId`, + `reviewerOrgMembership.actorUserId` + ).andOn(`reviewerOrgMembership.scope`, db.raw("?", [AccessScope.Organization])); + }) .leftJoin(TableName.Environment, `${TableName.AccessApprovalPolicy}.envId`, `${TableName.Environment}.id`) .select(selectAllTableCols(TableName.AccessApprovalRequest)) @@ -360,22 +359,22 @@ export const accessApprovalRequestDALFactory = (db: TDbClient): TAccessApprovalR db.ref("firstName").withSchema("requestedByUser").as("requestedByUserFirstName"), db.ref("lastName").withSchema("requestedByUser").as("requestedByUserLastName"), - db.ref("userId").withSchema(TableName.ProjectUserAdditionalPrivilege).as("privilegeUserId"), - db.ref("projectId").withSchema(TableName.ProjectUserAdditionalPrivilege).as("privilegeMembershipId"), + db.ref("actorUserId").withSchema(TableName.AdditionalPrivilege).as("privilegeUserId"), + db.ref("projectId").withSchema(TableName.AdditionalPrivilege).as("privilegeMembershipId"), - db.ref("isTemporary").withSchema(TableName.ProjectUserAdditionalPrivilege).as("privilegeIsTemporary"), - db.ref("temporaryMode").withSchema(TableName.ProjectUserAdditionalPrivilege).as("privilegeTemporaryMode"), - db.ref("temporaryRange").withSchema(TableName.ProjectUserAdditionalPrivilege).as("privilegeTemporaryRange"), + db.ref("isTemporary").withSchema(TableName.AdditionalPrivilege).as("privilegeIsTemporary"), + db.ref("temporaryMode").withSchema(TableName.AdditionalPrivilege).as("privilegeTemporaryMode"), + db.ref("temporaryRange").withSchema(TableName.AdditionalPrivilege).as("privilegeTemporaryRange"), db .ref("temporaryAccessStartTime") - .withSchema(TableName.ProjectUserAdditionalPrivilege) + .withSchema(TableName.AdditionalPrivilege) .as("privilegeTemporaryAccessStartTime"), db .ref("temporaryAccessEndTime") - .withSchema(TableName.ProjectUserAdditionalPrivilege) + .withSchema(TableName.AdditionalPrivilege) .as("privilegeTemporaryAccessEndTime"), - db.ref("permissions").withSchema(TableName.ProjectUserAdditionalPrivilege).as("privilegePermissions") + db.ref("permissions").withSchema(TableName.AdditionalPrivilege).as("privilegePermissions") ) .orderBy(`${TableName.AccessApprovalRequest}.createdAt`, "desc"); @@ -408,7 +407,7 @@ export const accessApprovalRequestDALFactory = (db: TDbClient): TAccessApprovalR privilege: doc.privilegeId ? { membershipId: doc.privilegeMembershipId, - userId: doc.privilegeUserId, + userId: doc.privilegeUserId || "", projectId: doc.projectId, isTemporary: doc.privilegeIsTemporary, temporaryMode: doc.privilegeTemporaryMode, @@ -773,9 +772,9 @@ export const accessApprovalRequestDALFactory = (db: TDbClient): TAccessApprovalR ) .leftJoin(TableName.Environment, `${TableName.AccessApprovalPolicy}.envId`, `${TableName.Environment}.id`) .leftJoin( - TableName.ProjectUserAdditionalPrivilege, + TableName.AdditionalPrivilege, `${TableName.AccessApprovalRequest}.privilegeId`, - `${TableName.ProjectUserAdditionalPrivilege}.id` + `${TableName.AdditionalPrivilege}.id` ) .leftJoin( diff --git a/backend/src/ee/services/access-approval-request/access-approval-request-service.ts b/backend/src/ee/services/access-approval-request/access-approval-request-service.ts index d69c6da790..1027995a7d 100644 --- a/backend/src/ee/services/access-approval-request/access-approval-request-service.ts +++ b/backend/src/ee/services/access-approval-request/access-approval-request-service.ts @@ -1,7 +1,7 @@ import slugify from "@sindresorhus/slugify"; import msFn from "ms"; -import { ActionProjectType, ProjectMembershipRole } from "@app/db/schemas"; +import { ActionProjectType, ProjectMembershipRole, TemporaryPermissionMode } from "@app/db/schemas"; import { getConfig } from "@app/lib/config/env"; import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; import { groupBy } from "@app/lib/fn"; @@ -10,12 +10,12 @@ import { alphaNumericNanoId } from "@app/lib/nanoid"; import { EnforcementLevel } from "@app/lib/types"; import { triggerWorkflowIntegrationNotification } from "@app/lib/workflow-integrations/trigger-notification"; import { TriggerFeature } from "@app/lib/workflow-integrations/types"; +import { TAdditionalPrivilegeDALFactory } from "@app/services/additional-privilege/additional-privilege-dal"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { TMicrosoftTeamsServiceFactory } from "@app/services/microsoft-teams/microsoft-teams-service"; import { TProjectMicrosoftTeamsConfigDALFactory } from "@app/services/microsoft-teams/project-microsoft-teams-config-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectEnvDALFactory } from "@app/services/project-env/project-env-dal"; -import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { TProjectSlackConfigDALFactory } from "@app/services/slack/project-slack-config-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { TUserDALFactory } from "@app/services/user/user-dal"; @@ -26,15 +26,13 @@ import { TAccessApprovalPolicyApproverDALFactory } from "../access-approval-poli import { TAccessApprovalPolicyDALFactory } from "../access-approval-policy/access-approval-policy-dal"; import { TGroupDALFactory } from "../group/group-dal"; import { TPermissionServiceFactory } from "../permission/permission-service-types"; -import { TProjectUserAdditionalPrivilegeDALFactory } from "../project-user-additional-privilege/project-user-additional-privilege-dal"; -import { ProjectUserAdditionalPrivilegeTemporaryMode } from "../project-user-additional-privilege/project-user-additional-privilege-types"; import { TAccessApprovalRequestDALFactory } from "./access-approval-request-dal"; import { verifyRequestedPermissions } from "./access-approval-request-fns"; import { TAccessApprovalRequestReviewerDALFactory } from "./access-approval-request-reviewer-dal"; import { ApprovalStatus, TAccessApprovalRequestServiceFactory } from "./access-approval-request-types"; type TSecretApprovalRequestServiceFactoryDep = { - additionalPrivilegeDAL: Pick; + additionalPrivilegeDAL: Pick; permissionService: Pick; accessApprovalPolicyApproverDAL: Pick; projectEnvDAL: Pick; @@ -59,7 +57,6 @@ type TSecretApprovalRequestServiceFactoryDep = { "create" | "find" | "findOne" | "transaction" | "delete" >; groupDAL: Pick; - projectMembershipDAL: Pick; smtpService: Pick; userDAL: Pick< TUserDALFactory, @@ -125,7 +122,7 @@ export const accessApprovalRequestServiceFactory = ({ if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); // Anyone can create an access approval request. - const { membership } = await permissionService.getProjectPermission({ + await permissionService.getProjectPermission({ actor, actorId, projectId: project.id, @@ -133,9 +130,6 @@ export const accessApprovalRequestServiceFactory = ({ actorOrgId, actionProjectType: ActionProjectType.SecretManager }); - if (!membership) { - throw new ForbiddenRequestError({ message: "You are not a member of this project" }); - } const requestedByUser = await userDAL.findById(actorId); if (!requestedByUser) throw new ForbiddenRequestError({ message: "User not found" }); @@ -340,7 +334,7 @@ export const accessApprovalRequestServiceFactory = ({ }); } - const { membership, hasRole } = await permissionService.getProjectPermission({ + const { hasRole } = await permissionService.getProjectPermission({ actor, actorId, projectId: accessApprovalRequest.projectId, @@ -349,10 +343,6 @@ export const accessApprovalRequestServiceFactory = ({ actionProjectType: ActionProjectType.SecretManager }); - if (!membership) { - throw new ForbiddenRequestError({ message: "You are not a member of this project" }); - } - const isApprover = policy.approvers.find((approver) => approver.userId === actorId); if (!hasRole(ProjectMembershipRole.Admin) && !isApprover) { @@ -496,7 +486,7 @@ export const accessApprovalRequestServiceFactory = ({ const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const { membership } = await permissionService.getProjectPermission({ + await permissionService.getProjectPermission({ actor, actorId, projectId: project.id, @@ -504,9 +494,6 @@ export const accessApprovalRequestServiceFactory = ({ actorOrgId, actionProjectType: ActionProjectType.SecretManager }); - if (!membership) { - throw new ForbiddenRequestError({ message: "You are not a member of this project" }); - } const policies = await accessApprovalPolicyDAL.find({ projectId: project.id }); let requests = await accessApprovalRequestDAL.findRequestsWithPrivilegeByPolicyIds(policies.map((p) => p.id)); @@ -566,7 +553,7 @@ export const accessApprovalRequestServiceFactory = ({ slug: permissionEnvironment }); - const { membership, hasRole } = await permissionService.getProjectPermission({ + const { hasRole } = await permissionService.getProjectPermission({ actor, actorId, projectId: accessApprovalRequest.projectId, @@ -575,10 +562,6 @@ export const accessApprovalRequestServiceFactory = ({ actionProjectType: ActionProjectType.SecretManager }); - if (!membership) { - throw new ForbiddenRequestError({ message: "You are not a member of this project" }); - } - const isSelfApproval = actorId === accessApprovalRequest.requestedByUserId; const isSoftEnforcement = policy.enforcementLevel === EnforcementLevel.Soft; const canBypass = !policy.bypassers.length || policy.bypassers.some((bypasser) => bypasser.userId === actorId); @@ -724,9 +707,9 @@ export const accessApprovalRequestServiceFactory = ({ // Permanent access const privilege = await additionalPrivilegeDAL.create( { - userId: accessApprovalRequest.requestedByUserId, + actorUserId: accessApprovalRequest.requestedByUserId, projectId: accessApprovalRequest.projectId, - slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, + name: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, permissions: JSON.stringify(accessApprovalRequest.permissions) }, tx @@ -739,12 +722,12 @@ export const accessApprovalRequestServiceFactory = ({ const privilege = await additionalPrivilegeDAL.create( { - userId: accessApprovalRequest.requestedByUserId, + actorUserId: accessApprovalRequest.requestedByUserId, projectId: accessApprovalRequest.projectId, - slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, + name: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, permissions: JSON.stringify(accessApprovalRequest.permissions), isTemporary: true, // Explicitly set to true for the privilege - temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative, + temporaryMode: TemporaryPermissionMode.Relative, temporaryRange: accessApprovalRequest.temporaryRange!, temporaryAccessStartTime: startTime, temporaryAccessEndTime: new Date(startTime.getTime() + relativeTempAllocatedTimeInMs) @@ -830,7 +813,7 @@ export const accessApprovalRequestServiceFactory = ({ const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const { membership } = await permissionService.getProjectPermission({ + await permissionService.getProjectPermission({ actor, actorId, projectId: project.id, @@ -838,9 +821,6 @@ export const accessApprovalRequestServiceFactory = ({ actorOrgId, actionProjectType: ActionProjectType.SecretManager }); - if (!membership) { - throw new ForbiddenRequestError({ message: "You are not a member of this project" }); - } const count = await accessApprovalRequestDAL.getCount({ projectId: project.id, policyId }); diff --git a/backend/src/ee/services/dynamic-secret/providers/elastic-search.ts b/backend/src/ee/services/dynamic-secret/providers/elastic-search.ts index f4d43f23fc..1bcfa39385 100644 --- a/backend/src/ee/services/dynamic-secret/providers/elastic-search.ts +++ b/backend/src/ee/services/dynamic-secret/providers/elastic-search.ts @@ -34,6 +34,7 @@ export const ElasticSearchProvider = (): TDynamicProviderFns => { const $getClient = async (providerInputs: z.infer) => { const connection = new ElasticSearchClient({ + requestTimeout: 30_000, node: { url: new URL(`${providerInputs.host}:${providerInputs.port}`), ...(providerInputs.ca && { diff --git a/backend/src/ee/services/gateway-v2/gateway-v2-dal.ts b/backend/src/ee/services/gateway-v2/gateway-v2-dal.ts index da9d3c1ef6..1896192cd2 100644 --- a/backend/src/ee/services/gateway-v2/gateway-v2-dal.ts +++ b/backend/src/ee/services/gateway-v2/gateway-v2-dal.ts @@ -10,20 +10,34 @@ export type TGatewayV2DALFactory = ReturnType; export const gatewayV2DalFactory = (db: TDbClient) => { const orm = ormify(db, TableName.GatewayV2); - const find = async (filter: TFindFilter, { offset, limit, sort, tx }: TFindOpt = {}) => { + const find = async ( + filter: TFindFilter & { isHeartbeatStale?: boolean }, + { offset, limit, sort, tx }: TFindOpt = {} + ) => { try { + const { isHeartbeatStale, ...regularFilter } = filter; + const query = (tx || db.replicaNode())(TableName.GatewayV2) // eslint-disable-next-line @typescript-eslint/no-misused-promises - .where(buildFindFilter(filter, TableName.GatewayV2)) + .where(buildFindFilter(regularFilter, TableName.GatewayV2)) .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.GatewayV2}.identityId`) - .join( - TableName.IdentityOrgMembership, - `${TableName.IdentityOrgMembership}.identityId`, - `${TableName.GatewayV2}.identityId` - ) .select(selectAllTableCols(TableName.GatewayV2)) .select(db.ref("name").withSchema(TableName.Identity).as("identityName")); + if (isHeartbeatStale) { + const oneHourAgo = new Date(Date.now() - 60 * 60 * 1000); + void query.where(`${TableName.GatewayV2}.heartbeat`, "<", oneHourAgo); + void query.where((v) => { + void v + .whereNull(`${TableName.GatewayV2}.healthAlertedAt`) + .orWhere( + `${TableName.GatewayV2}.healthAlertedAt`, + "<", + db.ref("heartbeat").withSchema(TableName.GatewayV2) + ); + }); + } + if (limit) void query.limit(limit); if (offset) void query.offset(offset); if (sort) { diff --git a/backend/src/ee/services/gateway-v2/gateway-v2-service.ts b/backend/src/ee/services/gateway-v2/gateway-v2-service.ts index 4bf6b1aef2..dce5bc2990 100644 --- a/backend/src/ee/services/gateway-v2/gateway-v2-service.ts +++ b/backend/src/ee/services/gateway-v2/gateway-v2-service.ts @@ -2,14 +2,17 @@ import net from "node:net"; import { ForbiddenError } from "@casl/ability"; import * as x509 from "@peculiar/x509"; +import { CronJob } from "cron"; -import { TRelays } from "@app/db/schemas"; +import { OrgMembershipRole, TRelays } from "@app/db/schemas"; import { PgSqlLock } from "@app/keystore/keystore"; import { crypto } from "@app/lib/crypto"; import { DatabaseErrorCode } from "@app/lib/error-codes"; import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors"; +import { groupBy } from "@app/lib/fn"; import { GatewayProxyProtocol } from "@app/lib/gateway/types"; import { withGatewayV2Proxy } from "@app/lib/gateway-v2/gateway-v2"; +import { logger } from "@app/lib/logger"; import { OrgServiceActor } from "@app/lib/types"; import { ActorAuthMethod, ActorType } from "@app/services/auth/auth-type"; import { constructPemChainFromCerts } from "@app/services/certificate/certificate-fns"; @@ -20,6 +23,10 @@ import { } from "@app/services/certificate-authority/certificate-authority-fns"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; +import { TNotificationServiceFactory } from "@app/services/notification/notification-service"; +import { NotificationType } from "@app/services/notification/notification-types"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; +import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { TLicenseServiceFactory } from "../license/license-service"; import { PamResource } from "../pam-resource/pam-resource-enums"; @@ -39,6 +46,9 @@ type TGatewayV2ServiceFactoryDep = { gatewayV2DAL: TGatewayV2DALFactory; relayDAL: TRelayDALFactory; permissionService: TPermissionServiceFactory; + orgDAL: Pick; + notificationService: Pick; + smtpService: Pick; }; export type TGatewayV2ServiceFactory = ReturnType; @@ -50,7 +60,10 @@ export const gatewayV2ServiceFactory = ({ relayService, gatewayV2DAL, relayDAL, - permissionService + permissionService, + orgDAL, + notificationService, + smtpService }: TGatewayV2ServiceFactoryDep) => { const $validateIdentityAccessToGateway = async (orgId: string, actorId: string, actorAuthMethod: ActorAuthMethod) => { const orgLicensePlan = await licenseService.getPlan(orgId); @@ -878,6 +891,72 @@ export const gatewayV2ServiceFactory = ({ }); }; + const $healthcheckNotify = async () => { + const unhealthyGateways = await gatewayV2DAL.find({ + isHeartbeatStale: true + }); + + if (unhealthyGateways.length === 0) return; + + logger.warn( + { gatewayIds: unhealthyGateways.map((g) => g.id) }, + "Found gateways with last heartbeat over an hour ago. Sending notifications." + ); + + const gatewaysByOrg = groupBy(unhealthyGateways, (gw) => gw.orgId); + + for await (const [orgId, gateways] of Object.entries(gatewaysByOrg)) { + try { + const admins = await orgDAL.findOrgMembersByRole(orgId, OrgMembershipRole.Admin); + if (admins.length === 0) { + logger.warn({ orgId }, "Organization has no admins to notify about unhealthy gateway."); + // eslint-disable-next-line no-continue + continue; + } + + const gatewayNames = gateways.map((g) => `"${g.name}"`).join(", "); + const body = `The following gateway(s) in your organization may be offline as they haven't reported a heartbeat in over an hour: ${gatewayNames}. Please check their status.`; + + await notificationService.createUserNotifications( + admins.map((admin) => ({ + userId: admin.user.id, + orgId, + type: NotificationType.GATEWAY_HEALTH_ALERT, + title: "Gateway Health Alert", + body, + link: "/organization/networking" + })) + ); + + await smtpService.sendMail({ + recipients: admins.map((admin) => admin.user.email).filter((v): v is string => !!v), + subjectLine: "Gateway Health Alert", + substitutions: { + type: "gateway", + names: gatewayNames + }, + template: SmtpTemplates.HealthAlert + }); + + await Promise.all(gateways.map((gw) => gatewayV2DAL.updateById(gw.id, { healthAlertedAt: new Date() }))); + } catch (error) { + logger.error(error, `Failed to send gateway health notifications for organization [orgId=${orgId}]`); + } + } + }; + + const initializeHealthcheckNotify = async () => { + logger.info("Setting up background notification process for gateway v2 health-checks"); + + await $healthcheckNotify(); + + // run every 5 minutes + const job = new CronJob("*/5 * * * *", $healthcheckNotify); + job.start(); + + return job; + }; + return { listGateways, registerGateway, @@ -885,6 +964,7 @@ export const gatewayV2ServiceFactory = ({ getPAMConnectionDetails, deleteGatewayById, heartbeat, - getPamSessionKey + getPamSessionKey, + initializeHealthcheckNotify }; }; diff --git a/backend/src/ee/services/gateway/gateway-dal.ts b/backend/src/ee/services/gateway/gateway-dal.ts index c21ff31c01..58f59d3139 100644 --- a/backend/src/ee/services/gateway/gateway-dal.ts +++ b/backend/src/ee/services/gateway/gateway-dal.ts @@ -1,5 +1,5 @@ import { TDbClient } from "@app/db"; -import { GatewaysSchema, TableName, TGateways } from "@app/db/schemas"; +import { AccessScope, GatewaysSchema, TableName, TGateways } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { buildFindFilter, ormify, selectAllTableCols, TFindFilter, TFindOpt } from "@app/lib/knex"; @@ -17,17 +17,14 @@ export const gatewayDALFactory = (db: TDbClient) => { // eslint-disable-next-line @typescript-eslint/no-misused-promises .where(buildFindFilter(filter, TableName.Gateway, ["orgId"])) .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.Gateway}.identityId`) - .join( - TableName.IdentityOrgMembership, - `${TableName.IdentityOrgMembership}.identityId`, - `${TableName.Gateway}.identityId` - ) + .join(TableName.Membership, `${TableName.Membership}.actorIdentityId`, `${TableName.Gateway}.identityId`) .select(selectAllTableCols(TableName.Gateway)) - .select(db.ref("orgId").withSchema(TableName.IdentityOrgMembership).as("identityOrgId")) - .select(db.ref("name").withSchema(TableName.Identity).as("identityName")); + .select(db.ref("scopeOrgId").withSchema(TableName.Membership).as("identityOrgId")) + .select(db.ref("name").withSchema(TableName.Identity).as("identityName")) + .where(`${TableName.Membership}.scope`, AccessScope.Organization); if (filter.orgId) { - void query.where(`${TableName.IdentityOrgMembership}.orgId`, filter.orgId); + void query.where(`${TableName.Membership}.scopeOrgId`, filter.orgId); } if (limit) void query.limit(limit); if (offset) void query.offset(offset); @@ -39,7 +36,7 @@ export const gatewayDALFactory = (db: TDbClient) => { return docs.map((el) => ({ ...GatewaysSchema.parse(el), - orgId: el.identityOrgId as string, // todo(daniel): figure out why typescript is not inferring this as a string + orgId: el.identityOrgId, identity: { id: el.identityId, name: el.identityName } })); } catch (error) { diff --git a/backend/src/ee/services/github-org-sync/github-org-sync-service.ts b/backend/src/ee/services/github-org-sync/github-org-sync-service.ts index 7c4ad15eb4..b2bcb4ef3d 100644 --- a/backend/src/ee/services/github-org-sync/github-org-sync-service.ts +++ b/backend/src/ee/services/github-org-sync/github-org-sync-service.ts @@ -6,13 +6,15 @@ import { paginateGraphql } from "@octokit/plugin-paginate-graphql"; import { Octokit as OctokitRest } from "@octokit/rest"; import RE2 from "re2"; -import { OrgMembershipRole } from "@app/db/schemas"; +import { AccessScope, OrgMembershipRole } from "@app/db/schemas"; import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { groupBy } from "@app/lib/fn"; import { logger } from "@app/lib/logger"; import { retryWithBackoff } from "@app/lib/retry"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; +import { TMembershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { TMembershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { TGroupDALFactory } from "../group/group-dal"; @@ -77,11 +79,10 @@ type TGithubOrgSyncServiceFactoryDep = { "findGroupMembershipsByUserIdInOrg" | "findGroupMembershipsByGroupIdInOrg" | "insertMany" | "delete" >; groupDAL: Pick; + membershipRoleDAL: Pick; + membershipGroupDAL: Pick; licenseService: Pick; - orgMembershipDAL: Pick< - TOrgMembershipDALFactory, - "find" | "findOrgMembershipById" | "findOrgMembershipsWithUsersByOrgId" - >; + orgMembershipDAL: Pick; }; export type TGithubOrgSyncServiceFactory = ReturnType; @@ -93,7 +94,9 @@ export const githubOrgSyncServiceFactory = ({ userGroupMembershipDAL, groupDAL, licenseService, - orgMembershipDAL + orgMembershipDAL, + membershipRoleDAL, + membershipGroupDAL }: TGithubOrgSyncServiceFactoryDep) => { const createGithubOrgSync = async ({ githubOrgName, @@ -368,6 +371,23 @@ export const githubOrgSyncServiceFactory = ({ })), tx ); + const memberships = await membershipGroupDAL.insertMany( + newGroups.map((el) => ({ + actorGroupId: el.id, + scope: AccessScope.Organization, + scopeOrgId: orgId + })), + tx + ); + + await membershipRoleDAL.insertMany( + memberships.map((el) => ({ + membershipId: el.id, + role: OrgMembershipRole.Member + })), + tx + ); + await userGroupMembershipDAL.insertMany( newGroups.map((el) => ({ groupId: el.id, @@ -694,6 +714,23 @@ export const githubOrgSyncServiceFactory = ({ tx ); + const memberships = await membershipGroupDAL.insertMany( + newGroups.map((el) => ({ + actorGroupId: el.id, + scope: AccessScope.Organization, + scopeOrgId: orgPermission.orgId + })), + tx + ); + + await membershipRoleDAL.insertMany( + memberships.map((el) => ({ + membershipId: el.id, + role: OrgMembershipRole.Member + })), + tx + ); + newGroups.forEach((group) => { if (!existingTeamsMap[group.name]) { existingTeamsMap[group.name] = []; diff --git a/backend/src/ee/services/group/group-dal.ts b/backend/src/ee/services/group/group-dal.ts index 708fbdbd36..6fb02207da 100644 --- a/backend/src/ee/services/group/group-dal.ts +++ b/backend/src/ee/services/group/group-dal.ts @@ -1,7 +1,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName, TGroups } from "@app/db/schemas"; +import { AccessScope, TableName, TGroups } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { buildFindFilter, ormify, selectAllTableCols, TFindFilter, TFindOpt } from "@app/lib/knex"; @@ -20,7 +20,7 @@ export const groupDALFactory = (db: TDbClient) => { .select(selectAllTableCols(TableName.Groups)); if (limit) void query.limit(limit); - if (offset) void query.limit(offset); + if (offset && offset > 0) void query.offset(offset); if (sort) { void query.orderBy(sort.map(([column, order, nulls]) => ({ column: column as string, order, nulls }))); } @@ -36,14 +36,21 @@ export const groupDALFactory = (db: TDbClient) => { try { const docs = await (tx || db.replicaNode())(TableName.Groups) .where(`${TableName.Groups}.orgId`, orgId) - .leftJoin(TableName.OrgRoles, `${TableName.Groups}.roleId`, `${TableName.OrgRoles}.id`) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .join(TableName.Membership, `${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .select(selectAllTableCols(TableName.Groups)) // cr stands for custom role - .select(db.ref("id").as("crId").withSchema(TableName.OrgRoles)) - .select(db.ref("name").as("crName").withSchema(TableName.OrgRoles)) - .select(db.ref("slug").as("crSlug").withSchema(TableName.OrgRoles)) - .select(db.ref("description").as("crDescription").withSchema(TableName.OrgRoles)) - .select(db.ref("permissions").as("crPermission").withSchema(TableName.OrgRoles)); + .select(db.ref("id").as("crId").withSchema(TableName.Role)) + .select(db.ref("name").as("crName").withSchema(TableName.Role)) + .select(db.ref("role").withSchema(TableName.MembershipRole)) + .select(db.ref("customRoleId").as("roleId").withSchema(TableName.MembershipRole)) + .select(db.ref("slug").as("crSlug").withSchema(TableName.Role)) + .select(db.ref("description").as("crDescription").withSchema(TableName.Role)) + .select(db.ref("permissions").as("crPermission").withSchema(TableName.Role)); + return docs.map(({ crId, crDescription, crSlug, crPermission, crName, ...el }) => ({ ...el, customRole: el.roleId @@ -81,9 +88,11 @@ export const groupDALFactory = (db: TDbClient) => { }) => { try { const query = db - .replicaNode()(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.orgId`, orgId) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .leftJoin(TableName.UserGroupMembership, (bd) => { bd.on(`${TableName.UserGroupMembership}.userId`, "=", `${TableName.Users}.id`).andOn( `${TableName.UserGroupMembership}.groupId`, @@ -92,7 +101,7 @@ export const groupDALFactory = (db: TDbClient) => { ); }) .select( - db.ref("id").withSchema(TableName.OrgMembership), + db.ref("id").withSchema(TableName.Membership), db.ref("groupId").withSchema(TableName.UserGroupMembership), db.ref("createdAt").withSchema(TableName.UserGroupMembership).as("joinedGroupAt"), db.ref("email").withSchema(TableName.Users), @@ -160,8 +169,10 @@ export const groupDALFactory = (db: TDbClient) => { const findGroupsByProjectId = async (projectId: string, tx?: Knex) => { try { const docs = await (tx || db.replicaNode())(TableName.Groups) - .join(TableName.GroupProjectMembership, `${TableName.Groups}.id`, `${TableName.GroupProjectMembership}.groupId`) - .where(`${TableName.GroupProjectMembership}.projectId`, projectId) + .join(TableName.Membership, `${TableName.Membership}.actorGroupId`, `${TableName.Groups}.id`) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorGroupId`) .select(selectAllTableCols(TableName.Groups)); return docs; } catch (error) { @@ -172,11 +183,16 @@ export const groupDALFactory = (db: TDbClient) => { const findById = async (id: string, tx?: Knex) => { try { const doc = await (tx || db.replicaNode())(TableName.Groups) - .leftJoin(TableName.OrgRoles, `${TableName.Groups}.roleId`, `${TableName.OrgRoles}.id`) + .join(TableName.Membership, `${TableName.Membership}.actorGroupId`, `${TableName.Groups}.id`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .where(`${TableName.Groups}.id`, id) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) .select( selectAllTableCols(TableName.Groups), - db.ref("slug").as("customRoleSlug").withSchema(TableName.OrgRoles) + db.ref("slug").as("customRoleSlug").withSchema(TableName.Role), + db.ref("customRoleId").as("roleId").withSchema(TableName.MembershipRole), + db.ref("role").withSchema(TableName.MembershipRole) ) .first(); @@ -186,12 +202,36 @@ export const groupDALFactory = (db: TDbClient) => { } }; + const findOne = async (filter: Partial, tx?: Knex): Promise => { + try { + const doc = await (tx || db.replicaNode())(TableName.Groups) + .join(TableName.Membership, `${TableName.Membership}.actorGroupId`, `${TableName.Groups}.id`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .where((queryBuilder) => { + Object.entries(filter).forEach(([key, value]) => { + void queryBuilder.where(`${TableName.Groups}.${key}`, value); + }); + }) + .select( + selectAllTableCols(TableName.Groups), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("customRoleId").as("roleId").withSchema(TableName.MembershipRole) + ) + .first(); + return doc; + } catch (error) { + throw new DatabaseError({ error, name: "Find one" }); + } + }; + return { ...groupOrm, findGroups, findByOrgId, findAllGroupPossibleMembers, findGroupsByProjectId, - findById + findById, + findOne }; }; diff --git a/backend/src/ee/services/group/group-fns.ts b/backend/src/ee/services/group/group-fns.ts index 56f8df6c07..c4384cc4e2 100644 --- a/backend/src/ee/services/group/group-fns.ts +++ b/backend/src/ee/services/group/group-fns.ts @@ -1,6 +1,6 @@ import { Knex } from "knex"; -import { ProjectVersion, SecretKeyEncoding, TableName, TUsers } from "@app/db/schemas"; +import { AccessScope, ProjectVersion, SecretKeyEncoding, TableName, TUsers } from "@app/db/schemas"; import { crypto } from "@app/lib/crypto/cryptography"; import { BadRequestError, ForbiddenRequestError, NotFoundError, ScimRequestError } from "@app/lib/errors"; @@ -16,7 +16,7 @@ const addAcceptedUsersToGroup = async ({ group, userGroupMembershipDAL, userDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL, projectDAL, projectBotDAL, @@ -42,13 +42,15 @@ const addAcceptedUsersToGroup = async ({ const projectIds = Array.from( new Set( ( - await groupProjectDAL.find( + await membershipGroupDAL.find( { - groupId: group.id + actorGroupId: group.id, + scopeOrgId: group.orgId, + scope: AccessScope.Project }, { tx } ) - ).map((gp) => gp.projectId) + ).map((gp) => gp.scopeProjectId as string) ) ); @@ -167,11 +169,11 @@ export const addUsersToGroupByUserIds = async ({ userDAL, userGroupMembershipDAL, orgDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, - tx: outerTx + tx: outerTx, + membershipGroupDAL }: TAddUsersToGroupByUserIds) => { const processAddition = async (tx: Knex) => { const foundMembers = await userDAL.find( @@ -214,15 +216,18 @@ export const addUsersToGroupByUserIds = async ({ // check if all user(s) are part of the organization const existingUserOrgMemberships = await orgDAL.findMembership( { - [`${TableName.OrgMembership}.orgId` as "orgId"]: group.orgId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: group.orgId, + scope: AccessScope.Organization, $in: { - [`${TableName.OrgMembership}.userId` as "userId"]: userIds + [`${TableName.Membership}.actorUserId` as "actorUserId"]: userIds } }, { tx } ); - const existingUserOrgMembershipsUserIdsSet = new Set(existingUserOrgMemberships.map((u) => u.userId)); + const existingUserOrgMembershipsUserIdsSet = new Set( + existingUserOrgMemberships.map((u) => u.actorUserId as string) + ); userIds.forEach((userId) => { if (!existingUserOrgMembershipsUserIdsSet.has(userId)) @@ -250,7 +255,7 @@ export const addUsersToGroupByUserIds = async ({ group, userDAL, userGroupMembershipDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL, projectDAL, projectBotDAL, @@ -292,9 +297,9 @@ export const removeUsersFromGroupByUserIds = async ({ userIds, userDAL, userGroupMembershipDAL, - groupProjectDAL, projectKeyDAL, - tx: outerTx + tx: outerTx, + membershipGroupDAL }: TRemoveUsersFromGroupByUserIds) => { const processRemoval = async (tx: Knex) => { const foundMembers = await userDAL.find({ @@ -352,13 +357,15 @@ export const removeUsersFromGroupByUserIds = async ({ const projectIds = Array.from( new Set( ( - await groupProjectDAL.find( + await membershipGroupDAL.find( { - groupId: group.id + scope: AccessScope.Project, + actorGroupId: group.id, + scopeOrgId: group.orgId }, { tx } ) - ).map((gp) => gp.projectId) + ).map((gp) => gp.scopeProjectId as string) ) ); @@ -422,11 +429,11 @@ export const convertPendingGroupAdditionsToGroupMemberships = async ({ userIds, userDAL, userGroupMembershipDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, - tx: outerTx + tx: outerTx, + membershipGroupDAL }: TConvertPendingGroupAdditionsToGroupMemberships) => { const processConversion = async (tx: Knex) => { const users = await userDAL.find( @@ -463,7 +470,7 @@ export const convertPendingGroupAdditionsToGroupMemberships = async ({ group: pendingGroupAddition.group, userDAL, userGroupMembershipDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL, projectDAL, projectBotDAL, diff --git a/backend/src/ee/services/group/group-service.ts b/backend/src/ee/services/group/group-service.ts index d4d30b5ae9..075488488b 100644 --- a/backend/src/ee/services/group/group-service.ts +++ b/backend/src/ee/services/group/group-service.ts @@ -1,11 +1,12 @@ import { ForbiddenError } from "@casl/ability"; import slugify from "@sindresorhus/slugify"; -import { OrgMembershipRole, TOrgRoles } from "@app/db/schemas"; +import { AccessScope, OrgMembershipRole, TRoles } from "@app/db/schemas"; import { TOidcConfigDALFactory } from "@app/ee/services/oidc/oidc-config-dal"; import { BadRequestError, NotFoundError, PermissionBoundaryError, UnauthorizedError } from "@app/lib/errors"; import { alphaNumericNanoId } from "@app/lib/nanoid"; -import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; +import { TMembershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { TMembershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; import { TOrgDALFactory } from "@app/services/org/org-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; @@ -35,8 +36,9 @@ type TGroupServiceFactoryDep = { TGroupDALFactory, "create" | "findOne" | "update" | "delete" | "findAllGroupPossibleMembers" | "findById" | "transaction" >; - groupProjectDAL: Pick; - orgDAL: Pick; + membershipGroupDAL: Pick; + membershipRoleDAL: Pick; + orgDAL: Pick; userGroupMembershipDAL: Pick< TUserGroupMembershipDALFactory, "findOne" | "delete" | "filterProjectsByUserMembership" | "transaction" | "insertMany" | "find" @@ -46,7 +48,7 @@ type TGroupServiceFactoryDep = { projectKeyDAL: Pick; permissionService: Pick< TPermissionServiceFactory, - "getOrgPermission" | "getOrgPermissionByRole" | "invalidateProjectPermissionCache" + "getOrgPermission" | "getOrgPermissionByRoles" | "invalidateProjectPermissionCache" >; licenseService: Pick; oidcConfigDAL: Pick; @@ -57,7 +59,6 @@ export type TGroupServiceFactory = ReturnType; export const groupServiceFactory = ({ userDAL, groupDAL, - groupProjectDAL, orgDAL, userGroupMembershipDAL, projectDAL, @@ -65,12 +66,14 @@ export const groupServiceFactory = ({ projectKeyDAL, permissionService, licenseService, - oidcConfigDAL + oidcConfigDAL, + membershipGroupDAL, + membershipRoleDAL }: TGroupServiceFactoryDep) => { const createGroup = async ({ name, slug, role, actor, actorId, actorAuthMethod, actorOrgId }: TCreateGroupDTO) => { if (!actorOrgId) throw new UnauthorizedError({ message: "No organization ID provided in request" }); - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, actorOrgId, @@ -85,25 +88,23 @@ export const groupServiceFactory = ({ message: "Failed to create group due to plan restriction. Upgrade plan to create group." }); - const { permission: rolePermission, role: customRole } = await permissionService.getOrgPermissionByRole( - role, - actorOrgId - ); - const isCustomRole = Boolean(customRole); + const [rolePermissionDetails] = await permissionService.getOrgPermissionByRoles([role], actorOrgId); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(actorOrgId); + const isCustomRole = Boolean(rolePermissionDetails?.role); if (role !== OrgMembershipRole.NoAccess) { const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.GrantPrivileges, OrgPermissionSubjects.Groups, permission, - rolePermission + rolePermissionDetails.permission ); if (!permissionBoundary.isValid) throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to create group", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.GrantPrivileges, OrgPermissionSubjects.Groups ), @@ -125,7 +126,25 @@ export const groupServiceFactory = ({ slug: slug || slugify(`${name}-${alphaNumericNanoId(4)}`), orgId: actorOrgId, role: isCustomRole ? OrgMembershipRole.Custom : role, - roleId: customRole?.id + roleId: null + }, + tx + ); + + const membership = await membershipGroupDAL.create( + { + actorGroupId: newGroup.id, + scope: AccessScope.Organization, + scopeOrgId: actorOrgId + }, + tx + ); + + await membershipRoleDAL.create( + { + membershipId: membership.id, + role: isCustomRole ? OrgMembershipRole.Custom : role, + customRoleId: rolePermissionDetails?.role?.id }, tx ); @@ -148,7 +167,7 @@ export const groupServiceFactory = ({ }: TUpdateGroupDTO) => { if (!actorOrgId) throw new UnauthorizedError({ message: "No organization ID provided in request" }); - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, actorOrgId, @@ -169,32 +188,31 @@ export const groupServiceFactory = ({ throw new NotFoundError({ message: `Failed to find group with ID ${id}` }); } - let customRole: TOrgRoles | undefined; + let customRole: TRoles | undefined; if (role) { - const { permission: rolePermission, role: customOrgRole } = await permissionService.getOrgPermissionByRole( - role, - group.orgId - ); + const [rolePermissionDetails] = await permissionService.getOrgPermissionByRoles([role], group.orgId); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(actorOrgId); + const isCustomRole = Boolean(rolePermissionDetails?.role); - const isCustomRole = Boolean(customOrgRole); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.GrantPrivileges, OrgPermissionSubjects.Groups, permission, - rolePermission + rolePermissionDetails.permission ); if (!permissionBoundary.isValid) throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to update group", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.GrantPrivileges, OrgPermissionSubjects.Groups ), details: { missingPermissions: permissionBoundary.missingPermissions } }); - if (isCustomRole) customRole = customOrgRole; + if (isCustomRole) customRole = rolePermissionDetails?.role; } const updatedGroup = await groupDAL.transaction(async (tx) => { @@ -208,35 +226,44 @@ export const groupServiceFactory = ({ } } - const [updated] = await groupDAL.update( - { - id: group.id - }, - { - name, - slug: slug ? slugify(slug) : undefined, - ...(role - ? { - role: customRole ? OrgMembershipRole.Custom : role, - roleId: customRole?.id ?? null - } - : {}) - }, - tx - ); + let updated = group; + + if (name || slug) { + [updated] = await groupDAL.update( + { + id: group.id + }, + { + name, + slug: slug ? slugify(slug) : undefined + }, + tx + ); + } + + if (role) { + const membership = await membershipGroupDAL.findOne( + { + scope: AccessScope.Organization, + actorGroupId: updated.id, + scopeOrgId: updated.orgId + }, + tx + ); + await membershipRoleDAL.delete({ membershipId: membership.id }, tx); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role: customRole ? OrgMembershipRole.Custom : role, + customRoleId: customRole?.id ?? null + }, + tx + ); + } return updated; }); - if (role) { - const groupProjects = await groupProjectDAL.find({ groupId: group.id }); - await Promise.allSettled([ - ...groupProjects.map((groupProject) => - permissionService.invalidateProjectPermissionCache(groupProject.projectId) - ) - ]); - } - return updatedGroup; }; @@ -259,17 +286,11 @@ export const groupServiceFactory = ({ message: "Failed to delete group due to plan restriction. Upgrade plan to delete group." }); - const groupProjects = await groupProjectDAL.find({ groupId: id }); - const [group] = await groupDAL.delete({ id, orgId: actorOrgId }); - await Promise.allSettled([ - ...groupProjects.map((groupProject) => permissionService.invalidateProjectPermissionCache(groupProject.projectId)) - ]); - return group; }; @@ -344,7 +365,7 @@ export const groupServiceFactory = ({ const addUserToGroup = async ({ id, username, actor, actorId, actorAuthMethod, actorOrgId }: TAddUserToGroupDTO) => { if (!actorOrgId) throw new UnauthorizedError({ message: "No organization ID provided in request" }); - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, actorOrgId, @@ -376,22 +397,23 @@ export const groupServiceFactory = ({ }); } - const { permission: groupRolePermission } = await permissionService.getOrgPermissionByRole(group.role, actorOrgId); + const [rolePermissionDetails] = await permissionService.getOrgPermissionByRoles([group.role], actorOrgId); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(actorOrgId); // check if user has broader or equal to privileges than group const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.AddMembers, OrgPermissionSubjects.Groups, permission, - groupRolePermission + rolePermissionDetails.permission ); if (!permissionBoundary.isValid) throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to add user to more privileged group", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.AddMembers, OrgPermissionSubjects.Groups ), @@ -410,17 +432,12 @@ export const groupServiceFactory = ({ userDAL, userGroupMembershipDAL, orgDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL, projectDAL, projectBotDAL }); - const groupProjects = await groupProjectDAL.find({ groupId: group.id }); - await Promise.allSettled([ - ...groupProjects.map((groupProject) => permissionService.invalidateProjectPermissionCache(groupProject.projectId)) - ]); - return users[0]; }; @@ -434,7 +451,7 @@ export const groupServiceFactory = ({ }: TRemoveUserFromGroupDTO) => { if (!actorOrgId) throw new UnauthorizedError({ message: "No organization ID provided in request" }); - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, actorOrgId, @@ -466,21 +483,22 @@ export const groupServiceFactory = ({ }); } - const { permission: groupRolePermission } = await permissionService.getOrgPermissionByRole(group.role, actorOrgId); + const [rolePermissionDetails] = await permissionService.getOrgPermissionByRoles([group.role], actorOrgId); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(actorOrgId); // check if user has broader or equal to privileges than group const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.RemoveMembers, OrgPermissionSubjects.Groups, permission, - groupRolePermission + rolePermissionDetails.permission ); if (!permissionBoundary.isValid) throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to delete user from more privileged group", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionGroupActions.RemoveMembers, OrgPermissionSubjects.Groups ), @@ -498,15 +516,10 @@ export const groupServiceFactory = ({ userIds: [user.id], userDAL, userGroupMembershipDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL }); - const groupProjects = await groupProjectDAL.find({ groupId: group.id }); - await Promise.allSettled([ - ...groupProjects.map((groupProject) => permissionService.invalidateProjectPermissionCache(groupProject.projectId)) - ]); - return users[0]; }; diff --git a/backend/src/ee/services/group/group-types.ts b/backend/src/ee/services/group/group-types.ts index e91f7a47b4..4b07422018 100644 --- a/backend/src/ee/services/group/group-types.ts +++ b/backend/src/ee/services/group/group-types.ts @@ -3,7 +3,7 @@ import { Knex } from "knex"; import { TGroups } from "@app/db/schemas"; import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; import { TGenericPermission } from "@app/lib/types"; -import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; +import { TMembershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; import { TOrgDALFactory } from "@app/services/org/org-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; @@ -63,7 +63,7 @@ export type TAddUsersToGroup = { group: TGroups; userDAL: Pick; userGroupMembershipDAL: Pick; - groupProjectDAL: Pick; + membershipGroupDAL: Pick; projectKeyDAL: Pick; projectDAL: Pick; projectBotDAL: Pick; @@ -76,7 +76,7 @@ export type TAddUsersToGroupByUserIds = { userDAL: Pick; userGroupMembershipDAL: Pick; orgDAL: Pick; - groupProjectDAL: Pick; + membershipGroupDAL: Pick; projectKeyDAL: Pick; projectDAL: Pick; projectBotDAL: Pick; @@ -88,7 +88,7 @@ export type TRemoveUsersFromGroupByUserIds = { userIds: string[]; userDAL: Pick; userGroupMembershipDAL: Pick; - groupProjectDAL: Pick; + membershipGroupDAL: Pick; projectKeyDAL: Pick; tx?: Knex; }; @@ -100,7 +100,7 @@ export type TConvertPendingGroupAdditionsToGroupMemberships = { TUserGroupMembershipDALFactory, "find" | "transaction" | "insertMany" | "deletePendingUserGroupMembershipsByUserIds" >; - groupProjectDAL: Pick; + membershipGroupDAL: Pick; projectKeyDAL: Pick; projectDAL: Pick; projectBotDAL: Pick; diff --git a/backend/src/ee/services/group/user-group-membership-dal.ts b/backend/src/ee/services/group/user-group-membership-dal.ts index 374459b0c9..886eebe29e 100644 --- a/backend/src/ee/services/group/user-group-membership-dal.ts +++ b/backend/src/ee/services/group/user-group-membership-dal.ts @@ -1,7 +1,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName, TUserEncryptionKeys } from "@app/db/schemas"; +import { AccessScope, TableName, TUserEncryptionKeys } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { ormify } from "@app/lib/knex"; @@ -18,21 +18,19 @@ export const userGroupMembershipDALFactory = (db: TDbClient) => { */ const filterProjectsByUserMembership = async (userId: string, groupId: string, projectIds: string[], tx?: Knex) => { try { - const userProjectMemberships: string[] = await (tx || db.replicaNode())(TableName.ProjectMembership) - .where(`${TableName.ProjectMembership}.userId`, userId) - .whereIn(`${TableName.ProjectMembership}.projectId`, projectIds) - .pluck(`${TableName.ProjectMembership}.projectId`); + const userProjectMemberships: string[] = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.actorUserId`, userId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereIn(`${TableName.Membership}.scopeProjectId`, projectIds) + .pluck(`${TableName.Membership}.scopeProjectId`); const userGroupMemberships: string[] = await (tx || db.replicaNode())(TableName.UserGroupMembership) .where(`${TableName.UserGroupMembership}.userId`, userId) .whereNot(`${TableName.UserGroupMembership}.groupId`, groupId) - .join( - TableName.GroupProjectMembership, - `${TableName.UserGroupMembership}.groupId`, - `${TableName.GroupProjectMembership}.groupId` - ) - .whereIn(`${TableName.GroupProjectMembership}.projectId`, projectIds) - .pluck(`${TableName.GroupProjectMembership}.projectId`); + .join(TableName.Membership, `${TableName.UserGroupMembership}.groupId`, `${TableName.Membership}.actorGroupId`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereIn(`${TableName.Membership}.scopeProjectId`, projectIds) + .pluck(`${TableName.Membership}.scopeProjectId`); return new Set(userProjectMemberships.concat(userGroupMemberships)); } catch (error) { @@ -44,13 +42,10 @@ export const userGroupMembershipDALFactory = (db: TDbClient) => { const findUserGroupMembershipsInProject = async (usernames: string[], projectId: string, tx?: Knex) => { try { const usernameDocs: string[] = await (tx || db.replicaNode())(TableName.UserGroupMembership) - .join( - TableName.GroupProjectMembership, - `${TableName.UserGroupMembership}.groupId`, - `${TableName.GroupProjectMembership}.groupId` - ) + .join(TableName.Membership, `${TableName.UserGroupMembership}.groupId`, `${TableName.Membership}.actorGroupId`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) .join(TableName.Users, `${TableName.UserGroupMembership}.userId`, `${TableName.Users}.id`) - .where(`${TableName.GroupProjectMembership}.projectId`, projectId) + .where(`${TableName.Membership}.scopeProjectId`, projectId) .whereIn(`${TableName.Users}.username`, usernames) .pluck(`${TableName.Users}.id`); @@ -73,24 +68,25 @@ export const userGroupMembershipDALFactory = (db: TDbClient) => { try { // get list of groups in the project with id [projectId] // that that are not the group with id [groupId] - const groups: string[] = await (tx || db.replicaNode())(TableName.GroupProjectMembership) - .where(`${TableName.GroupProjectMembership}.projectId`, projectId) - .whereNot(`${TableName.GroupProjectMembership}.groupId`, groupId) - .pluck(`${TableName.GroupProjectMembership}.groupId`); + const groups: string[] = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .whereNot(`${TableName.Membership}.actorGroupId`, groupId) + .pluck(`${TableName.Membership}.actorGroupId`); // main query const members = await (tx || db.replicaNode())(TableName.UserGroupMembership) .where(`${TableName.UserGroupMembership}.groupId`, groupId) .where(`${TableName.UserGroupMembership}.isPending`, false) .join(TableName.Users, `${TableName.UserGroupMembership}.userId`, `${TableName.Users}.id`) - .leftJoin(TableName.ProjectMembership, (bd) => { - bd.on(`${TableName.Users}.id`, "=", `${TableName.ProjectMembership}.userId`).andOn( - `${TableName.ProjectMembership}.projectId`, + .leftJoin(TableName.Membership, (bd) => { + bd.on(`${TableName.Users}.id`, "=", `${TableName.Membership}.actorUserId`).andOn( + `${TableName.Membership}.scopeProjectId`, "=", db.raw("?", [projectId]) ); }) - .whereNull(`${TableName.ProjectMembership}.userId`) + .whereNull(`${TableName.Membership}.actorUserId`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) .leftJoin( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, @@ -166,15 +162,17 @@ export const userGroupMembershipDALFactory = (db: TDbClient) => { const docs = await db .replicaNode()(TableName.UserGroupMembership) .join(TableName.Groups, `${TableName.UserGroupMembership}.groupId`, `${TableName.Groups}.id`) - .join(TableName.OrgMembership, `${TableName.UserGroupMembership}.userId`, `${TableName.OrgMembership}.userId`) + .join(TableName.Membership, `${TableName.UserGroupMembership}.userId`, `${TableName.Membership}.actorUserId`) .join(TableName.Users, `${TableName.UserGroupMembership}.userId`, `${TableName.Users}.id`) .where(`${TableName.UserGroupMembership}.userId`, userId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .where(`${TableName.Membership}.scopeOrgId`, orgId) .where(`${TableName.Groups}.orgId`, orgId) .select( db.ref("id").withSchema(TableName.UserGroupMembership), db.ref("groupId").withSchema(TableName.UserGroupMembership), db.ref("name").withSchema(TableName.Groups).as("groupName"), - db.ref("id").withSchema(TableName.OrgMembership).as("orgMembershipId"), + db.ref("id").withSchema(TableName.Membership).as("orgMembershipId"), db.ref("firstName").withSchema(TableName.Users).as("firstName"), db.ref("lastName").withSchema(TableName.Users).as("lastName"), db.ref("slug").withSchema(TableName.Groups).as("groupSlug") @@ -191,15 +189,17 @@ export const userGroupMembershipDALFactory = (db: TDbClient) => { const docs = await db .replicaNode()(TableName.UserGroupMembership) .join(TableName.Groups, `${TableName.UserGroupMembership}.groupId`, `${TableName.Groups}.id`) - .join(TableName.OrgMembership, `${TableName.UserGroupMembership}.userId`, `${TableName.OrgMembership}.userId`) + .join(TableName.Membership, `${TableName.UserGroupMembership}.userId`, `${TableName.Membership}.actorUserId`) .join(TableName.Users, `${TableName.UserGroupMembership}.userId`, `${TableName.Users}.id`) .where(`${TableName.Groups}.id`, groupId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .where(`${TableName.Membership}.scopeOrgId`, orgId) .where(`${TableName.Groups}.orgId`, orgId) .select( db.ref("id").withSchema(TableName.UserGroupMembership), db.ref("groupId").withSchema(TableName.UserGroupMembership), db.ref("name").withSchema(TableName.Groups).as("groupName"), - db.ref("id").withSchema(TableName.OrgMembership).as("orgMembershipId"), + db.ref("id").withSchema(TableName.Membership).as("orgMembershipId"), db.ref("firstName").withSchema(TableName.Users).as("firstName"), db.ref("lastName").withSchema(TableName.Users).as("lastName") ); diff --git a/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-dal.ts b/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-dal.ts deleted file mode 100644 index a7d8794a4d..0000000000 --- a/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-dal.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; - -export type TIdentityProjectAdditionalPrivilegeV2DALFactory = ReturnType< - typeof identityProjectAdditionalPrivilegeV2DALFactory ->; - -export const identityProjectAdditionalPrivilegeV2DALFactory = (db: TDbClient) => { - const orm = ormify(db, TableName.IdentityProjectAdditionalPrivilege); - return orm; -}; diff --git a/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-service.ts b/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-service.ts deleted file mode 100644 index 27b67367e0..0000000000 --- a/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-service.ts +++ /dev/null @@ -1,434 +0,0 @@ -import { ForbiddenError, subject } from "@casl/ability"; -import { packRules } from "@casl/ability/extra"; - -import { ActionProjectType, TableName } from "@app/db/schemas"; -import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; -import { ms } from "@app/lib/ms"; -import { validateHandlebarTemplate } from "@app/lib/template/validate-handlebars"; -import { unpackPermissions } from "@app/server/routes/sanitizedSchema/permission"; -import { ActorType } from "@app/services/auth/auth-type"; -import { TIdentityProjectDALFactory } from "@app/services/identity-project/identity-project-dal"; -import { TProjectDALFactory } from "@app/services/project/project-dal"; - -import { constructPermissionErrorMessage, validatePrivilegeChangeOperation } from "../permission/permission-fns"; -import { TPermissionServiceFactory } from "../permission/permission-service-types"; -import { ProjectPermissionIdentityActions, ProjectPermissionSub } from "../permission/project-permission"; -import { TIdentityProjectAdditionalPrivilegeV2DALFactory } from "./identity-project-additional-privilege-v2-dal"; -import { - IdentityProjectAdditionalPrivilegeTemporaryMode, - TCreateIdentityPrivilegeDTO, - TDeleteIdentityPrivilegeByIdDTO, - TGetIdentityPrivilegeDetailsByIdDTO, - TGetIdentityPrivilegeDetailsBySlugDTO, - TListIdentityPrivilegesDTO, - TUpdateIdentityPrivilegeByIdDTO -} from "./identity-project-additional-privilege-v2-types"; - -type TIdentityProjectAdditionalPrivilegeV2ServiceFactoryDep = { - identityProjectAdditionalPrivilegeDAL: TIdentityProjectAdditionalPrivilegeV2DALFactory; - identityProjectDAL: Pick; - projectDAL: Pick; - permissionService: Pick; -}; - -export type TIdentityProjectAdditionalPrivilegeV2ServiceFactory = ReturnType< - typeof identityProjectAdditionalPrivilegeV2ServiceFactory ->; - -export const identityProjectAdditionalPrivilegeV2ServiceFactory = ({ - identityProjectAdditionalPrivilegeDAL, - identityProjectDAL, - projectDAL, - permissionService -}: TIdentityProjectAdditionalPrivilegeV2ServiceFactoryDep) => { - const create = async ({ - slug, - actor, - actorId, - projectId, - actorOrgId, - identityId, - permissions: customPermission, - actorAuthMethod, - ...dto - }: TCreateIdentityPrivilegeDTO) => { - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Edit, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - const { permission: targetIdentityPermission, membership } = await permissionService.getProjectPermission({ - actor: ActorType.IDENTITY, - actorId: identityId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - // we need to validate that the privilege given is not higher than the assigning users permission - // @ts-expect-error this is expected error because of one being really accurate rule definition other being a bit more broader. Both are valid casl rules - targetIdentityPermission.update(targetIdentityPermission.rules.concat(customPermission)); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - targetIdentityPermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to update more privileged identity", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - validateHandlebarTemplate("Identity Additional Privilege Create", JSON.stringify(customPermission || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - - const existingSlug = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug, - projectMembershipId: identityProjectMembership.id - }); - if (existingSlug) throw new BadRequestError({ message: "Additional privilege with provided slug already exists" }); - - const packedPermission = JSON.stringify(packRules(customPermission)); - if (!dto.isTemporary) { - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.create({ - projectMembershipId: identityProjectMembership.id, - slug, - permissions: packedPermission - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - } - - const relativeTempAllocatedTimeInMs = ms(dto.temporaryRange); - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.create({ - projectMembershipId: identityProjectMembership.id, - slug, - permissions: packedPermission, - isTemporary: true, - temporaryMode: IdentityProjectAdditionalPrivilegeTemporaryMode.Relative, - temporaryRange: dto.temporaryRange, - temporaryAccessStartTime: new Date(dto.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(dto.temporaryAccessStartTime).getTime() + relativeTempAllocatedTimeInMs) - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - }; - - const updateById = async ({ - id, - data, - actorOrgId, - actor, - actorId, - actorAuthMethod - }: TUpdateIdentityPrivilegeByIdDTO) => { - const identityPrivilege = await identityProjectAdditionalPrivilegeDAL.findById(id); - if (!identityPrivilege) throw new NotFoundError({ message: `Identity privilege with ${id} not found` }); - - const identityProjectMembership = await identityProjectDAL.findOne({ id: identityPrivilege.projectMembershipId }); - if (!identityProjectMembership) - throw new NotFoundError({ - message: `Failed to find identity with membership ${identityPrivilege.projectMembershipId}` - }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Edit, - subject(ProjectPermissionSub.Identity, { identityId: identityProjectMembership.identityId }) - ); - const { permission: targetIdentityPermission, membership } = await permissionService.getProjectPermission({ - actor: ActorType.IDENTITY, - actorId: identityProjectMembership.identityId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - // we need to validate that the privilege given is not higher than the assigning users permission - // @ts-expect-error this is expected error because of one being really accurate rule definition other being a bit more broader. Both are valid casl rules - targetIdentityPermission.update(targetIdentityPermission.rules.concat(data.permissions || [])); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - targetIdentityPermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to update more privileged identity", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - - validateHandlebarTemplate("Identity Additional Privilege Update", JSON.stringify(data.permissions || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - - if (data?.slug) { - const existingSlug = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug: data.slug, - projectMembershipId: identityProjectMembership.id - }); - if (existingSlug && existingSlug.id !== identityPrivilege.id) - throw new BadRequestError({ message: "Additional privilege with provided slug already exists" }); - } - - const isTemporary = typeof data?.isTemporary !== "undefined" ? data.isTemporary : identityPrivilege.isTemporary; - const packedPermission = data.permissions ? JSON.stringify(packRules(data.permissions)) : undefined; - if (isTemporary) { - const temporaryAccessStartTime = data?.temporaryAccessStartTime || identityPrivilege?.temporaryAccessStartTime; - const temporaryRange = data?.temporaryRange || identityPrivilege?.temporaryRange; - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.updateById(identityPrivilege.id, { - slug: data.slug, - permissions: packedPermission, - isTemporary: data.isTemporary, - temporaryRange: data.temporaryRange, - temporaryMode: data.temporaryMode, - temporaryAccessStartTime: new Date(temporaryAccessStartTime || ""), - temporaryAccessEndTime: new Date(new Date(temporaryAccessStartTime || "").getTime() + ms(temporaryRange || "")) - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - } - - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.updateById(identityPrivilege.id, { - slug: data.slug, - permissions: packedPermission, - isTemporary: false, - temporaryAccessStartTime: null, - temporaryAccessEndTime: null, - temporaryRange: null, - temporaryMode: null - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - }; - - const deleteById = async ({ actorId, id, actor, actorOrgId, actorAuthMethod }: TDeleteIdentityPrivilegeByIdDTO) => { - const identityPrivilege = await identityProjectAdditionalPrivilegeDAL.findById(id); - if (!identityPrivilege) throw new NotFoundError({ message: `Identity privilege with ${id} not found` }); - - const identityProjectMembership = await identityProjectDAL.findOne({ id: identityPrivilege.projectMembershipId }); - if (!identityProjectMembership) - throw new NotFoundError({ - message: `Failed to find identity with membership ${identityPrivilege.projectMembershipId}` - }); - - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Edit, - subject(ProjectPermissionSub.Identity, { identityId: identityProjectMembership.identityId }) - ); - const { permission: identityRolePermission } = await permissionService.getProjectPermission({ - actor: ActorType.IDENTITY, - actorId: identityProjectMembership.identityId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - identityRolePermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to update more privileged identity", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - - const deletedPrivilege = await identityProjectAdditionalPrivilegeDAL.deleteById(identityPrivilege.id); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...deletedPrivilege, - permissions: unpackPermissions(deletedPrivilege.permissions) - }; - }; - - const getPrivilegeDetailsById = async ({ - id, - actorOrgId, - actor, - actorId, - actorAuthMethod - }: TGetIdentityPrivilegeDetailsByIdDTO) => { - const identityPrivilege = await identityProjectAdditionalPrivilegeDAL.findById(id); - if (!identityPrivilege) throw new NotFoundError({ message: `Identity privilege with ${id} not found` }); - - const identityProjectMembership = await identityProjectDAL.findOne({ id: identityPrivilege.projectMembershipId }); - if (!identityProjectMembership) - throw new NotFoundError({ - message: `Failed to find identity with membership ${identityPrivilege.projectMembershipId}` - }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Read, - subject(ProjectPermissionSub.Identity, { identityId: identityProjectMembership.identityId }) - ); - - return { - ...identityPrivilege, - permissions: unpackPermissions(identityPrivilege.permissions) - }; - }; - - const getPrivilegeDetailsBySlug = async ({ - identityId, - slug, - projectSlug, - actorOrgId, - actor, - actorId, - actorAuthMethod - }: TGetIdentityPrivilegeDetailsBySlugDTO) => { - const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); - if (!project) throw new NotFoundError({ message: `Project with slug ${slug} not found` }); - const projectId = project.id; - - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Read, - subject(ProjectPermissionSub.Identity, { identityId: identityProjectMembership.identityId }) - ); - - const identityPrivilege = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug, - projectMembershipId: identityProjectMembership.id - }); - if (!identityPrivilege) throw new NotFoundError({ message: "Identity additional privilege not found" }); - - return { - ...identityPrivilege, - permissions: unpackPermissions(identityPrivilege.permissions) - }; - }; - - const listIdentityProjectPrivileges = async ({ - identityId, - actorOrgId, - actor, - actorId, - actorAuthMethod, - projectId - }: TListIdentityPrivilegesDTO) => { - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Read, - subject(ProjectPermissionSub.Identity, { identityId: identityProjectMembership.identityId }) - ); - - const identityPrivileges = await identityProjectAdditionalPrivilegeDAL.find( - { - projectMembershipId: identityProjectMembership.id - }, - { sort: [[`${TableName.IdentityProjectAdditionalPrivilege}.slug` as "slug", "asc"]] } - ); - return identityPrivileges; - }; - - return { - getPrivilegeDetailsById, - getPrivilegeDetailsBySlug, - listIdentityProjectPrivileges, - create, - updateById, - deleteById - }; -}; diff --git a/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-types.ts b/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-types.ts deleted file mode 100644 index aab6b85101..0000000000 --- a/backend/src/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-types.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { TProjectPermission } from "@app/lib/types"; - -import { TProjectPermissionV2Schema } from "../permission/project-permission"; - -export enum IdentityProjectAdditionalPrivilegeTemporaryMode { - Relative = "relative" -} - -export type TCreateIdentityPrivilegeDTO = { - permissions: TProjectPermissionV2Schema[]; - identityId: string; - projectId: string; - slug: string; -} & ( - | { - isTemporary: false; - } - | { - isTemporary: true; - temporaryMode: IdentityProjectAdditionalPrivilegeTemporaryMode.Relative; - temporaryRange: string; - temporaryAccessStartTime: string; - } -) & - Omit; - -export type TUpdateIdentityPrivilegeByIdDTO = { id: string } & Omit & { - data: Partial<{ - permissions: TProjectPermissionV2Schema[]; - slug: string; - isTemporary: boolean; - temporaryMode: IdentityProjectAdditionalPrivilegeTemporaryMode.Relative; - temporaryRange: string; - temporaryAccessStartTime: string; - }>; - }; - -export type TDeleteIdentityPrivilegeByIdDTO = Omit & { - id: string; -}; - -export type TGetIdentityPrivilegeDetailsByIdDTO = Omit & { - id: string; -}; - -export type TListIdentityPrivilegesDTO = Omit & { - identityId: string; - projectId: string; -}; - -export type TGetIdentityPrivilegeDetailsBySlugDTO = Omit & { - slug: string; - identityId: string; - projectSlug: string; -}; diff --git a/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-dal.ts b/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-dal.ts deleted file mode 100644 index 26252f2d18..0000000000 --- a/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-dal.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; - -export type TIdentityProjectAdditionalPrivilegeDALFactory = ReturnType< - typeof identityProjectAdditionalPrivilegeDALFactory ->; - -export const identityProjectAdditionalPrivilegeDALFactory = (db: TDbClient) => { - const orm = ormify(db, TableName.IdentityProjectAdditionalPrivilege); - return orm; -}; diff --git a/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-service.ts b/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-service.ts deleted file mode 100644 index ddba76920a..0000000000 --- a/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-service.ts +++ /dev/null @@ -1,451 +0,0 @@ -import { ForbiddenError, MongoAbility, RawRuleOf, subject } from "@casl/ability"; -import { PackRule, packRules, unpackRules } from "@casl/ability/extra"; - -import { ActionProjectType } from "@app/db/schemas"; -import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; -import { ms } from "@app/lib/ms"; -import { validateHandlebarTemplate } from "@app/lib/template/validate-handlebars"; -import { UnpackedPermissionSchema } from "@app/server/routes/sanitizedSchema/permission"; -import { ActorType } from "@app/services/auth/auth-type"; -import { TIdentityProjectDALFactory } from "@app/services/identity-project/identity-project-dal"; -import { TProjectDALFactory } from "@app/services/project/project-dal"; - -import { constructPermissionErrorMessage, validatePrivilegeChangeOperation } from "../permission/permission-fns"; -import { TPermissionServiceFactory } from "../permission/permission-service-types"; -import { - ProjectPermissionIdentityActions, - ProjectPermissionSet, - ProjectPermissionSub -} from "../permission/project-permission"; -import { TIdentityProjectAdditionalPrivilegeDALFactory } from "./identity-project-additional-privilege-dal"; -import { - IdentityProjectAdditionalPrivilegeTemporaryMode, - TCreateIdentityPrivilegeDTO, - TDeleteIdentityPrivilegeDTO, - TGetIdentityPrivilegeDetailsDTO, - TListIdentityPrivilegesDTO, - TUpdateIdentityPrivilegeDTO -} from "./identity-project-additional-privilege-types"; - -type TIdentityProjectAdditionalPrivilegeServiceFactoryDep = { - identityProjectAdditionalPrivilegeDAL: TIdentityProjectAdditionalPrivilegeDALFactory; - identityProjectDAL: Pick; - projectDAL: Pick; - permissionService: Pick; -}; - -export type TIdentityProjectAdditionalPrivilegeServiceFactory = ReturnType< - typeof identityProjectAdditionalPrivilegeServiceFactory ->; - -const unpackPermissions = (permissions: unknown) => - UnpackedPermissionSchema.array().parse( - unpackRules((permissions || []) as PackRule>>[]) - ); - -export const identityProjectAdditionalPrivilegeServiceFactory = ({ - identityProjectAdditionalPrivilegeDAL, - identityProjectDAL, - permissionService, - projectDAL -}: TIdentityProjectAdditionalPrivilegeServiceFactoryDep) => { - const create = async ({ - slug, - actor, - actorId, - identityId, - projectSlug, - permissions: customPermission, - actorOrgId, - actorAuthMethod, - ...dto - }: TCreateIdentityPrivilegeDTO) => { - const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); - if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const projectId = project.id; - - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Edit, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - - const { permission: targetIdentityPermission } = await permissionService.getProjectPermission({ - actor: ActorType.IDENTITY, - actorId: identityId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - // we need to validate that the privilege given is not higher than the assigning users permission - // @ts-expect-error this is expected error because of one being really accurate rule definition other being a bit more broader. Both are valid casl rules - targetIdentityPermission.update(targetIdentityPermission.rules.concat(customPermission)); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - targetIdentityPermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to update more privileged identity", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - - const existingSlug = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug, - projectMembershipId: identityProjectMembership.id - }); - if (existingSlug) throw new BadRequestError({ message: "Additional privilege of provided slug exist" }); - - validateHandlebarTemplate("Identity Additional Privilege Create", JSON.stringify(customPermission || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - - const packedPermission = JSON.stringify(packRules(customPermission)); - if (!dto.isTemporary) { - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.create({ - projectMembershipId: identityProjectMembership.id, - slug, - permissions: packedPermission - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - } - - const relativeTempAllocatedTimeInMs = ms(dto.temporaryRange); - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.create({ - projectMembershipId: identityProjectMembership.id, - slug, - permissions: packedPermission, - isTemporary: true, - temporaryMode: IdentityProjectAdditionalPrivilegeTemporaryMode.Relative, - temporaryRange: dto.temporaryRange, - temporaryAccessStartTime: new Date(dto.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(dto.temporaryAccessStartTime).getTime() + relativeTempAllocatedTimeInMs) - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - }; - - const updateBySlug = async ({ - projectSlug, - slug, - identityId, - data, - actorOrgId, - actor, - actorId, - actorAuthMethod - }: TUpdateIdentityPrivilegeDTO) => { - const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); - if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const projectId = project.id; - - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Edit, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - - const { permission: targetIdentityPermission } = await permissionService.getProjectPermission({ - actor: ActorType.IDENTITY, - actorId: identityProjectMembership.identityId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - // we need to validate that the privilege given is not higher than the assigning users permission - // @ts-expect-error this is expected error because of one being really accurate rule definition other being a bit more broader. Both are valid casl rules - targetIdentityPermission.update(targetIdentityPermission.rules.concat(data.permissions || [])); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - targetIdentityPermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to update more privileged identity", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - - const identityPrivilege = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug, - projectMembershipId: identityProjectMembership.id - }); - if (!identityPrivilege) { - throw new NotFoundError({ - message: `Identity additional privilege with slug '${slug}' not found for the specified identity with ID '${identityProjectMembership.identityId}'` - }); - } - if (data?.slug) { - const existingSlug = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug: data.slug, - projectMembershipId: identityProjectMembership.id - }); - if (existingSlug && existingSlug.id !== identityPrivilege.id) - throw new BadRequestError({ message: "Additional privilege of provided slug exist" }); - } - - const isTemporary = typeof data?.isTemporary !== "undefined" ? data.isTemporary : identityPrivilege.isTemporary; - validateHandlebarTemplate("Identity Additional Privilege Update", JSON.stringify(data.permissions || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - - const packedPermission = data.permissions ? JSON.stringify(packRules(data.permissions)) : undefined; - if (isTemporary) { - const temporaryAccessStartTime = data?.temporaryAccessStartTime || identityPrivilege?.temporaryAccessStartTime; - const temporaryRange = data?.temporaryRange || identityPrivilege?.temporaryRange; - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.updateById(identityPrivilege.id, { - slug: data.slug, - permissions: packedPermission, - isTemporary: data.isTemporary, - temporaryRange: data.temporaryRange, - temporaryMode: data.temporaryMode, - temporaryAccessStartTime: new Date(temporaryAccessStartTime || ""), - temporaryAccessEndTime: new Date(new Date(temporaryAccessStartTime || "").getTime() + ms(temporaryRange || "")) - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - } - - const additionalPrivilege = await identityProjectAdditionalPrivilegeDAL.updateById(identityPrivilege.id, { - slug: data.slug, - permissions: packedPermission, - isTemporary: false, - temporaryAccessStartTime: null, - temporaryAccessEndTime: null, - temporaryRange: null, - temporaryMode: null - }); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - }; - - const deleteBySlug = async ({ - actorId, - slug, - identityId, - projectSlug, - actor, - actorOrgId, - actorAuthMethod - }: TDeleteIdentityPrivilegeDTO) => { - const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); - if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const projectId = project.id; - - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Edit, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - - const { permission: identityRolePermission } = await permissionService.getProjectPermission({ - actor: ActorType.IDENTITY, - actorId: identityProjectMembership.identityId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - identityRolePermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to edit more privileged identity", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - - const identityPrivilege = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug, - projectMembershipId: identityProjectMembership.id - }); - if (!identityPrivilege) { - throw new NotFoundError({ - message: `Identity additional privilege with slug '${slug}' not found for the specified identity with ID '${identityProjectMembership.identityId}'` - }); - } - - const deletedPrivilege = await identityProjectAdditionalPrivilegeDAL.deleteById(identityPrivilege.id); - - await permissionService.invalidateProjectPermissionCache(identityProjectMembership.projectId); - - return { - ...deletedPrivilege, - permissions: unpackPermissions(deletedPrivilege.permissions) - }; - }; - - const getPrivilegeDetailsBySlug = async ({ - projectSlug, - identityId, - slug, - actorOrgId, - actor, - actorId, - actorAuthMethod - }: TGetIdentityPrivilegeDetailsDTO) => { - const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); - if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const projectId = project.id; - - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Read, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - - const identityPrivilege = await identityProjectAdditionalPrivilegeDAL.findOne({ - slug, - projectMembershipId: identityProjectMembership.id - }); - if (!identityPrivilege) { - throw new NotFoundError({ - message: `Identity additional privilege with slug '${slug}' not found for the specified identity with ID '${identityProjectMembership.identityId}'` - }); - } - return { - ...identityPrivilege, - permissions: unpackPermissions(identityPrivilege.permissions) - }; - }; - - const listIdentityProjectPrivileges = async ({ - identityId, - actorOrgId, - actor, - actorId, - actorAuthMethod, - projectSlug - }: TListIdentityPrivilegesDTO) => { - const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); - if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); - const projectId = project.id; - - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) - throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: identityProjectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Read, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - - const identityPrivileges = await identityProjectAdditionalPrivilegeDAL.find({ - projectMembershipId: identityProjectMembership.id - }); - return identityPrivileges.map((el) => ({ - ...el, - permissions: unpackPermissions(el.permissions) - })); - }; - - return { - create, - updateBySlug, - deleteBySlug, - getPrivilegeDetailsBySlug, - listIdentityProjectPrivileges - }; -}; diff --git a/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-types.ts b/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-types.ts deleted file mode 100644 index 6a0ecee5fd..0000000000 --- a/backend/src/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-types.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { TProjectPermission } from "@app/lib/types"; - -import { TProjectPermissionV2Schema } from "../permission/project-permission"; - -export enum IdentityProjectAdditionalPrivilegeTemporaryMode { - Relative = "relative" -} - -export type TCreateIdentityPrivilegeDTO = { - permissions: TProjectPermissionV2Schema[]; - identityId: string; - projectSlug: string; - slug: string; -} & ( - | { - isTemporary: false; - } - | { - isTemporary: true; - temporaryMode: IdentityProjectAdditionalPrivilegeTemporaryMode.Relative; - temporaryRange: string; - temporaryAccessStartTime: string; - } -) & - Omit; - -export type TUpdateIdentityPrivilegeDTO = { slug: string; identityId: string; projectSlug: string } & Omit< - TProjectPermission, - "projectId" -> & { - data: Partial<{ - permissions: TProjectPermissionV2Schema[]; - slug: string; - isTemporary: boolean; - temporaryMode: IdentityProjectAdditionalPrivilegeTemporaryMode.Relative; - temporaryRange: string; - temporaryAccessStartTime: string; - }>; - }; - -export type TDeleteIdentityPrivilegeDTO = Omit & { - slug: string; - identityId: string; - projectSlug: string; -}; - -export type TGetIdentityPrivilegeDetailsDTO = Omit & { - slug: string; - identityId: string; - projectSlug: string; -}; - -export type TListIdentityPrivilegesDTO = Omit & { - identityId: string; - projectSlug: string; -}; diff --git a/backend/src/ee/services/kmip/kmip-operation-service.ts b/backend/src/ee/services/kmip/kmip-operation-service.ts index 2808108dfd..27f59a99f9 100644 --- a/backend/src/ee/services/kmip/kmip-operation-service.ts +++ b/backend/src/ee/services/kmip/kmip-operation-service.ts @@ -183,7 +183,8 @@ export const kmipOperationServiceFactory = ({ algorithm: completeKeyDetails.internalKms.encryptionAlgorithm, isActive: !key.isDisabled, createdAt: key.createdAt, - updatedAt: key.updatedAt + updatedAt: key.updatedAt, + kmipMetadata: key.kmipMetadata as Record }; }; @@ -373,7 +374,8 @@ export const kmipOperationServiceFactory = ({ actor, actorId, actorAuthMethod, - actorOrgId + actorOrgId, + kmipMetadata }: TKmipRegisterDTO) => { const { permission } = await permissionService.getOrgPermission( actor, @@ -405,7 +407,8 @@ export const kmipOperationServiceFactory = ({ isReserved: false, projectId, keyUsage: KmsKeyUsage.ENCRYPT_DECRYPT, - orgId: project.orgId + orgId: project.orgId, + kmipMetadata }); return kmsKey; diff --git a/backend/src/ee/services/kmip/kmip-types.ts b/backend/src/ee/services/kmip/kmip-types.ts index 81d0d8766b..c37d511c66 100644 --- a/backend/src/ee/services/kmip/kmip-types.ts +++ b/backend/src/ee/services/kmip/kmip-types.ts @@ -78,6 +78,7 @@ export type TKmipRegisterDTO = { name: string; key: string; algorithm: SymmetricKeyAlgorithm; + kmipMetadata?: Record; } & KmipOperationBaseDTO; export type TSetupOrgKmipDTO = { diff --git a/backend/src/ee/services/ldap-config/ldap-config-service.ts b/backend/src/ee/services/ldap-config/ldap-config-service.ts index 8643ecdac4..43ca5ab3d1 100644 --- a/backend/src/ee/services/ldap-config/ldap-config-service.ts +++ b/backend/src/ee/services/ldap-config/ldap-config-service.ts @@ -1,7 +1,7 @@ import { ForbiddenError } from "@casl/ability"; import { Knex } from "knex"; -import { OrgMembershipStatus, TableName, TLdapConfigsUpdate, TUsers } from "@app/db/schemas"; +import { AccessScope, OrgMembershipStatus, TableName, TLdapConfigsUpdate, TUsers } from "@app/db/schemas"; import { TGroupDALFactory } from "@app/ee/services/group/group-dal"; import { addUsersToGroupByUserIds, removeUsersFromGroupByUserIds } from "@app/ee/services/group/group-fns"; import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; @@ -12,12 +12,12 @@ import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/ import { AuthMethod, AuthTokenType } from "@app/services/auth/auth-type"; import { TAuthTokenServiceFactory } from "@app/services/auth-token/auth-token-service"; import { TokenType } from "@app/services/auth-token/auth-token-types"; -import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; +import { TMembershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { TMembershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; import { TOrgDALFactory } from "@app/services/org/org-dal"; import { getDefaultOrgMembershipRole } from "@app/services/org/org-role-fns"; -import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; import { TProjectKeyDALFactory } from "@app/services/project-key/project-key-dal"; @@ -49,13 +49,13 @@ import { TLdapGroupMapDALFactory } from "./ldap-group-map-dal"; type TLdapConfigServiceFactoryDep = { ldapConfigDAL: Pick; ldapGroupMapDAL: Pick; - orgMembershipDAL: Pick; orgDAL: Pick< TOrgDALFactory, "createMembership" | "updateMembershipById" | "findMembership" | "findOrgById" | "findOne" | "updateById" >; groupDAL: Pick; - groupProjectDAL: Pick; + membershipGroupDAL: Pick; + membershipRoleDAL: Pick; projectKeyDAL: Pick; projectDAL: Pick; projectBotDAL: Pick; @@ -87,9 +87,9 @@ export const ldapConfigServiceFactory = ({ ldapConfigDAL, ldapGroupMapDAL, orgDAL, - orgMembershipDAL, groupDAL, - groupProjectDAL, + membershipGroupDAL, + membershipRoleDAL, projectKeyDAL, projectDAL, projectBotDAL, @@ -388,25 +388,33 @@ export const ldapConfigServiceFactory = ({ await userDAL.transaction(async (tx) => { const [orgMembership] = await orgDAL.findMembership( { - [`${TableName.OrgMembership}.userId` as "userId"]: userAlias.userId, - [`${TableName.OrgMembership}.orgId` as "id"]: orgId + [`${TableName.Membership}.actorUserId` as "actorUserId"]: userAlias.userId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }, { tx } ); if (!orgMembership) { const { role, roleId } = await getDefaultOrgMembershipRole(organization.defaultMembershipRole); - await orgDAL.createMembership( + const membership = await orgDAL.createMembership( { - userId: userAlias.userId, - orgId, - role, - roleId, + actorUserId: userAlias.userId, + scopeOrgId: orgId, + scope: AccessScope.Organization, status: OrgMembershipStatus.Accepted, isActive: true }, tx ); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role, + customRoleId: roleId + }, + tx + ); } else if (orgMembership.status === OrgMembershipStatus.Invited) { await orgDAL.updateMembershipById( orgMembership.id, @@ -459,8 +467,9 @@ export const ldapConfigServiceFactory = ({ const [orgMembership] = await orgDAL.findMembership( { - [`${TableName.OrgMembership}.userId` as "userId"]: newUser.id, - [`${TableName.OrgMembership}.orgId` as "id"]: orgId + [`${TableName.Membership}.actorUserId` as "actorUserId"]: newUserAlias.userId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }, { tx } ); @@ -469,16 +478,22 @@ export const ldapConfigServiceFactory = ({ await throwOnPlanSeatLimitReached(licenseService, orgId, UserAliasType.LDAP); const { role, roleId } = await getDefaultOrgMembershipRole(organization.defaultMembershipRole); - - await orgMembershipDAL.create( + const membership = await orgDAL.createMembership( { - userId: newUser.id, - inviteEmail: email.toLowerCase(), - orgId, - role, - roleId, + actorUserId: newUser.id, + scopeOrgId: orgId, + scope: AccessScope.Organization, status: newUser.isAccepted ? OrgMembershipStatus.Accepted : OrgMembershipStatus.Invited, // if user is fully completed, then set status to accepted, otherwise set it to invited so we can update it later - isActive: true + isActive: true, + inviteEmail: email.toLowerCase() + }, + tx + ); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role, + customRoleId: roleId }, tx ); @@ -542,10 +557,10 @@ export const ldapConfigServiceFactory = ({ userDAL, userGroupMembershipDAL, orgDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, + membershipGroupDAL, tx }); } @@ -566,7 +581,7 @@ export const ldapConfigServiceFactory = ({ userIds: [newUser.id], userDAL, userGroupMembershipDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL, tx }); diff --git a/backend/src/ee/services/license/license-dal.ts b/backend/src/ee/services/license/license-dal.ts index cfea2573d1..891d609221 100644 --- a/backend/src/ee/services/license/license-dal.ts +++ b/backend/src/ee/services/license/license-dal.ts @@ -1,7 +1,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { OrgMembershipStatus, TableName } from "@app/db/schemas"; +import { AccessScope, OrgMembershipStatus, TableName } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; export type TLicenseDALFactory = ReturnType; @@ -9,14 +9,14 @@ export type TLicenseDALFactory = ReturnType; export const licenseDALFactory = (db: TDbClient) => { const countOfOrgMembers = async (orgId: string | null, tx?: Knex) => { try { - const doc = await (tx || db.replicaNode())(TableName.OrgMembership) - .where({ status: OrgMembershipStatus.Accepted }) + const doc = await (tx || db.replicaNode())(TableName.Membership) + .where({ status: OrgMembershipStatus.Accepted, scope: AccessScope.Organization }) .andWhere((bd) => { if (orgId) { - void bd.where({ orgId }); + void bd.where(`${TableName.Membership}.scopeOrgId`, orgId); } }) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .where(`${TableName.Users}.isGhost`, false) .count(); return Number(doc?.[0]?.count ?? 0); @@ -28,24 +28,27 @@ export const licenseDALFactory = (db: TDbClient) => { const countOrgUsersAndIdentities = async (orgId: string | null, tx?: Knex) => { try { // count org users - const userDoc = await (tx || db.replicaNode())(TableName.OrgMembership) - .where({ status: OrgMembershipStatus.Accepted }) + const userDoc = await (tx || db.replicaNode())(TableName.Membership) + .where({ status: OrgMembershipStatus.Accepted, scope: AccessScope.Organization }) + .whereNotNull(`${TableName.Membership}.actorUserId`) .andWhere((bd) => { if (orgId) { - void bd.where({ orgId }); + void bd.where(`${TableName.Membership}.scopeOrgId`, orgId); } }) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .where(`${TableName.Users}.isGhost`, false) .count(); const userCount = Number(userDoc?.[0].count); // count org identities - const identityDoc = await (tx || db.replicaNode())(TableName.IdentityOrgMembership) + const identityDoc = await (tx || db.replicaNode())(TableName.Membership) + .where({ status: OrgMembershipStatus.Accepted, scope: AccessScope.Organization }) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) .where((bd) => { if (orgId) { - void bd.where({ orgId }); + void bd.where(`${TableName.Membership}.scopeOrgId`, orgId); } }) .count(); diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index 544eeae379..c2e67908ff 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -488,7 +488,7 @@ export const licenseServiceFactory = ({ const getUsageMetrics = async (orgId: string) => { const [orgMembersUsed, identityUsed, projectCount] = await Promise.all([ orgDAL.countAllOrgMembers(orgId), - identityOrgMembershipDAL.countAllOrgIdentities({ orgId }), + identityOrgMembershipDAL.countAllOrgIdentities({ scopeOrgId: orgId }), projectDAL.countOfOrgProjects(orgId) ]); diff --git a/backend/src/ee/services/oidc/oidc-config-service.ts b/backend/src/ee/services/oidc/oidc-config-service.ts index 445ace2b5e..c2672a94e2 100644 --- a/backend/src/ee/services/oidc/oidc-config-service.ts +++ b/backend/src/ee/services/oidc/oidc-config-service.ts @@ -2,7 +2,7 @@ import { ForbiddenError } from "@casl/ability"; import { Issuer, Issuer as OpenIdIssuer, Strategy as OpenIdStrategy, TokenSet } from "openid-client"; -import { OrgMembershipStatus, TableName, TUsers } from "@app/db/schemas"; +import { AccessScope, OrgMembershipStatus, TableName, TUsers } from "@app/db/schemas"; import { TOidcConfigsUpdate } from "@app/db/schemas/oidc-configs"; import { EventType, TAuditLogServiceFactory } from "@app/ee/services/audit-log/audit-log-types"; import { TGroupDALFactory } from "@app/ee/services/group/group-dal"; @@ -19,12 +19,12 @@ import { OrgServiceActor } from "@app/lib/types"; import { ActorType, AuthMethod, AuthTokenType } from "@app/services/auth/auth-type"; import { TAuthTokenServiceFactory } from "@app/services/auth-token/auth-token-service"; import { TokenType } from "@app/services/auth-token/auth-token-types"; -import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; +import { TMembershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { TMembershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; import { TOrgDALFactory } from "@app/services/org/org-dal"; import { getDefaultOrgMembershipRole } from "@app/services/org/org-role-fns"; -import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; import { TProjectKeyDALFactory } from "@app/services/project-key/project-key-dal"; @@ -62,11 +62,12 @@ type TOidcConfigServiceFactoryDep = { TOrgDALFactory, "createMembership" | "updateMembershipById" | "findMembership" | "findOrgById" | "findOne" | "updateById" >; - orgMembershipDAL: Pick; + membershipGroupDAL: Pick; + membershipRoleDAL: Pick; licenseService: Pick; tokenService: Pick; smtpService: Pick; - permissionService: Pick; + permissionService: Pick; oidcConfigDAL: Pick; groupDAL: Pick; userGroupMembershipDAL: Pick< @@ -78,7 +79,6 @@ type TOidcConfigServiceFactoryDep = { | "delete" | "filterProjectsByUserMembership" >; - groupProjectDAL: Pick; projectKeyDAL: Pick; projectDAL: Pick; projectBotDAL: Pick; @@ -90,7 +90,6 @@ export type TOidcConfigServiceFactory = ReturnType { - await permissionService.getUserOrgPermission(actor.id, orgId, actor.authMethod, actor.orgId); + await permissionService.getOrgPermission(ActorType.USER, actor.id, orgId, actor.authMethod, actor.orgId); const oidcConfig = await oidcConfigDAL.findOne({ orgId, diff --git a/backend/src/ee/services/pam-resource/shared/sql/sql-resource-factory.ts b/backend/src/ee/services/pam-resource/shared/sql/sql-resource-factory.ts index a35765a2ce..74a2c74ae9 100644 --- a/backend/src/ee/services/pam-resource/shared/sql/sql-resource-factory.ts +++ b/backend/src/ee/services/pam-resource/shared/sql/sql-resource-factory.ts @@ -1,4 +1,5 @@ import knex, { Knex } from "knex"; +import tls, { PeerCertificate } from "tls"; import { verifyHostInputValidity } from "@app/ee/services/dynamic-secret/dynamic-secret-fns"; import { TGatewayV2ServiceFactory } from "@app/ee/services/gateway-v2/gateway-v2-service"; @@ -30,7 +31,12 @@ const getConnectionConfig = ( ? { rejectUnauthorized: sslRejectUnauthorized, ca: sslCertificate, - servername: host + servername: host, + // When using proxy, we need to bypass hostname validation since we connect to localhost + // but validate the certificate against the actual hostname + checkServerIdentity: (hostname: string, cert: PeerCertificate) => { + return tls.checkServerIdentity(host, cert); + } } : false }; @@ -114,6 +120,10 @@ export const sqlResourceFactory: TPamResourceFactory Promise< - { - status: string; - orgId: string; - id: string; - createdAt: Date; - updatedAt: Date; - role: string; - isActive: boolean; - shouldUseNewPrivilegeSystem: boolean; - bypassOrgAuthEnabled: boolean; - permissions?: unknown; - userId?: string | null | undefined; - roleId?: string | null | undefined; - inviteEmail?: string | null | undefined; - projectFavorites?: string[] | null | undefined; - customRoleSlug?: string | null | undefined; - orgAuthEnforced?: boolean | null | undefined; - orgGoogleSsoAuthEnforced: boolean; - } & { - groups: { - id: string; - updatedAt: Date; - createdAt: Date; - role: string; - roleId: string | null | undefined; - customRolePermission: unknown; - name: string; - slug: string; - orgId: string; - }[]; - } - >; - getOrgIdentityPermission: ( - identityId: string, - orgId: string - ) => Promise< - | (TIdentityOrgMemberships & { - orgAuthEnforced: boolean | null | undefined; - shouldUseNewPrivilegeSystem: boolean; - permissions?: unknown; - }) - | undefined - >; - getProjectPermission: ( - userId: string, - projectId: string - ) => Promise< - | { - roles: { - id: string; - role: string; - customRoleSlug: string; - permissions: unknown; - temporaryRange: string | null | undefined; - temporaryMode: string | null | undefined; - temporaryAccessStartTime: Date | null | undefined; - temporaryAccessEndTime: Date | null | undefined; - isTemporary: boolean; - }[]; - additionalPrivileges: { - id: string; - permissions: unknown; - temporaryRange: string | null | undefined; - temporaryMode: string | null | undefined; - temporaryAccessStartTime: Date | null | undefined; - temporaryAccessEndTime: Date | null | undefined; - isTemporary: boolean; - }[]; - orgId: string; - orgAuthEnforced: boolean | null | undefined; - orgGoogleSsoAuthEnforced: boolean; - orgRole: OrgMembershipRole; - userId: string; - projectId: string; - username: string; - projectType?: string | null; - id: string; - createdAt: Date; - updatedAt: Date; - shouldUseNewPrivilegeSystem: boolean; - bypassOrgAuthEnabled: boolean; - metadata: { - id: string; - key: string; - value: string; - }[]; - userGroupRoles: { - id: string; - role: string; - customRoleSlug: string; - permissions: unknown; - temporaryRange: string | null | undefined; - temporaryMode: string | null | undefined; - temporaryAccessStartTime: Date | null | undefined; - temporaryAccessEndTime: Date | null | undefined; - isTemporary: boolean; - }[]; - projecMembershiptRoles: { - id: string; - role: string; - customRoleSlug: string; - permissions: unknown; - temporaryRange: string | null | undefined; - temporaryMode: string | null | undefined; - temporaryAccessStartTime: Date | null | undefined; - temporaryAccessEndTime: Date | null | undefined; - isTemporary: boolean; - }[]; - } - | undefined - >; - getProjectIdentityPermission: ( - identityId: string, - projectId: string - ) => Promise< - | { - roles: { - id: string; - createdAt: Date; - updatedAt: Date; - isTemporary: boolean; - role: string; - projectMembershipId: string; - temporaryRange?: string | null | undefined; - permissions?: unknown; - customRoleId?: string | null | undefined; - temporaryMode?: string | null | undefined; - temporaryAccessStartTime?: Date | null | undefined; - temporaryAccessEndTime?: Date | null | undefined; - customRoleSlug?: string | null | undefined; - }[]; - additionalPrivileges: { - id: string; - permissions: unknown; - temporaryRange: string | null | undefined; - temporaryMode: string | null | undefined; - temporaryAccessEndTime: Date | null | undefined; - temporaryAccessStartTime: Date | null | undefined; - isTemporary: boolean; - }[]; - id: string; - identityId: string; - username: string; - projectId: string; - createdAt: Date; - updatedAt: Date; - orgId: string; - projectType?: string | null; - shouldUseNewPrivilegeSystem: boolean; - orgAuthEnforced: boolean; - metadata: { - id: string; - key: string; - value: string; - }[]; - } - | undefined - >; - getProjectUserPermissions: (projectId: string) => Promise< { roles: { id: string; @@ -198,45 +76,19 @@ export interface TPermissionDALFactory { temporaryAccessEndTime: Date | null | undefined; isTemporary: boolean; }[]; - orgId: string; - orgAuthEnforced: boolean | null | undefined; userId: string; - projectId: string; username: string; - projectType?: string | null; - id: string; - createdAt: Date; - updatedAt: Date; metadata: { id: string; key: string; value: string; }[]; - userGroupRoles: { - id: string; - role: string; - customRoleSlug: string; - permissions: unknown; - temporaryRange: string | null | undefined; - temporaryMode: string | null | undefined; - temporaryAccessStartTime: Date | null | undefined; - temporaryAccessEndTime: Date | null | undefined; - isTemporary: boolean; - }[]; - projectMembershipRoles: { - id: string; - role: string; - customRoleSlug: string; - permissions: unknown; - temporaryRange: string | null | undefined; - temporaryMode: string | null | undefined; - temporaryAccessStartTime: Date | null | undefined; - temporaryAccessEndTime: Date | null | undefined; - isTemporary: boolean; - }[]; }[] >; - getProjectIdentityPermissions: (projectId: string) => Promise< + getProjectIdentityPermissions: ( + projectId: string, + orgId: string + ) => Promise< { roles: { id: string; @@ -244,7 +96,6 @@ export interface TPermissionDALFactory { updatedAt: Date; isTemporary: boolean; role: string; - projectMembershipId: string; temporaryRange?: string | null | undefined; permissions?: unknown; customRoleId?: string | null | undefined; @@ -269,8 +120,6 @@ export interface TPermissionDALFactory { createdAt: Date; updatedAt: Date; orgId: string; - projectType?: string | null; - orgAuthEnforced: boolean; metadata: { id: string; key: string; @@ -310,128 +159,203 @@ export interface TPermissionDALFactory { }[]; }[] >; + getPermission: (dto: { + scopeData: AccessScopeData; + actorId: string; + actorType: ActorType.IDENTITY | ActorType.USER; + tx?: Knex; + }) => Promise; } export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { - const getOrgPermission: TPermissionDALFactory["getOrgPermission"] = async (userId: string, orgId: string) => { + const getPermission: TPermissionDALFactory["getPermission"] = async ({ scopeData, tx, actorId, actorType }) => { try { - const groupSubQuery = db(TableName.Groups) - .where(`${TableName.Groups}.orgId`, orgId) - .join(TableName.UserGroupMembership, (queryBuilder) => { - queryBuilder - .on(`${TableName.UserGroupMembership}.groupId`, `${TableName.Groups}.id`) - .andOn(`${TableName.UserGroupMembership}.userId`, db.raw("?", [userId])); - }) - .leftJoin(TableName.OrgRoles, `${TableName.Groups}.roleId`, `${TableName.OrgRoles}.id`) - .select( - db.ref("id").withSchema(TableName.Groups).as("groupId"), - db.ref("orgId").withSchema(TableName.Groups).as("groupOrgId"), - db.ref("name").withSchema(TableName.Groups).as("groupName"), - db.ref("slug").withSchema(TableName.Groups).as("groupSlug"), - db.ref("role").withSchema(TableName.Groups).as("groupRole"), - db.ref("roleId").withSchema(TableName.Groups).as("groupRoleId"), - db.ref("createdAt").withSchema(TableName.Groups).as("groupCreatedAt"), - db.ref("updatedAt").withSchema(TableName.Groups).as("groupUpdatedAt"), - db.ref("permissions").withSchema(TableName.OrgRoles).as("groupCustomRolePermission") - ); + // akhilmhdh: when group has another group like sub group we would need recursively go down + const userGroupSubquery = (tx || db)(TableName.Groups) + .leftJoin(TableName.UserGroupMembership, `${TableName.UserGroupMembership}.groupId`, `${TableName.Groups}.id`) + .where(`${TableName.Groups}.orgId`, scopeData.orgId) + .where(`${TableName.UserGroupMembership}.userId`, actorId) + .select(db.ref("id").withSchema(TableName.Groups)); - const membership = await db - .replicaNode()(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.orgId`, orgId) - .where(`${TableName.OrgMembership}.userId`, userId) - .leftJoin(TableName.OrgRoles, `${TableName.OrgRoles}.id`, `${TableName.OrgMembership}.roleId`) - .leftJoin[0]>( - groupSubQuery.as("userGroups"), - "userGroups.groupOrgId", - db.raw("?", [orgId]) - ) - .join(TableName.Organization, `${TableName.Organization}.id`, `${TableName.OrgMembership}.orgId`) + const docs = await (tx || db) + .replicaNode()(TableName.Membership) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .join(TableName.Organization, `${TableName.Membership}.scopeOrgId`, `${TableName.Organization}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .leftJoin(TableName.AdditionalPrivilege, (qb) => { + if (actorType === ActorType.IDENTITY) { + qb.on(`${TableName.Membership}.actorIdentityId`, `${TableName.AdditionalPrivilege}.actorIdentityId`); + } else { + qb.on(`${TableName.Membership}.actorUserId`, `${TableName.AdditionalPrivilege}.actorUserId`); + } + + if (scopeData.scope === AccessScope.Organization) { + qb.andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.AdditionalPrivilege}.orgId`); + } else if (scopeData.scope === AccessScope.Project) { + qb.andOn(`${TableName.Membership}.scopeProjectId`, `${TableName.AdditionalPrivilege}.projectId`); + } else { + qb.andOn(`${TableName.Membership}.scopeNamespaceId`, `${TableName.AdditionalPrivilege}.namespaceId`); + } + }) + .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { + if (actorType === ActorType.USER) { + void queryBuilder + .on(`${TableName.Membership}.actorUserId`, `${TableName.IdentityMetadata}.userId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); + } else if (actorType === ActorType.IDENTITY) { + void queryBuilder + .on(`${TableName.Membership}.actorIdentityId`, `${TableName.IdentityMetadata}.identityId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); + } + }) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .where((qb) => { + if (actorType === ActorType.USER) { + void qb + .where(`${TableName.Membership}.actorUserId`, actorId) + .orWhereIn(`${TableName.Membership}.actorGroupId`, userGroupSubquery); + } else if (actorType === ActorType.IDENTITY) { + void qb.where(`${TableName.Membership}.actorIdentityId`, actorId); + } + }) + .where((qb) => { + if (scopeData.scope === AccessScope.Organization) { + void qb.where(`${TableName.Membership}.scope`, AccessScope.Organization); + } else if (scopeData.scope === AccessScope.Namespace) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Namespace) + .where(`${TableName.Membership}.scopeNamespaceId`, scopeData.namespaceId); + } else if (scopeData.scope === AccessScope.Project) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, scopeData.projectId); + } + }) + .select(selectAllTableCols(TableName.Membership)) .select( - selectAllTableCols(TableName.OrgMembership), + db.ref("slug").withSchema(TableName.Role).as("roleSlug"), + db.ref("permissions").withSchema(TableName.Role).as("customRolePermission"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt"), + db.ref("id").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeId"), + db.ref("name").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeName"), + db.ref("permissions").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegePermissions"), + db.ref("id").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeId"), + db.ref("temporaryMode").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.AdditionalPrivilege) + .as("additionalPrivilegeTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.AdditionalPrivilege) + .as("additionalPrivilegeTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeCreatedAt"), + db.ref("updatedAt").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeUpdatedAt"), + db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), + db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), + db.ref("value").withSchema(TableName.IdentityMetadata).as("metadataValue"), db.ref("shouldUseNewPrivilegeSystem").withSchema(TableName.Organization), - db.ref("slug").withSchema(TableName.OrgRoles).withSchema(TableName.OrgRoles).as("customRoleSlug"), - db.ref("permissions").withSchema(TableName.OrgRoles), db.ref("authEnforced").withSchema(TableName.Organization).as("orgAuthEnforced"), db.ref("googleSsoAuthEnforced").withSchema(TableName.Organization).as("orgGoogleSsoAuthEnforced"), - db.ref("bypassOrgAuthEnabled").withSchema(TableName.Organization).as("bypassOrgAuthEnabled"), - db.ref("groupId").withSchema("userGroups"), - db.ref("groupOrgId").withSchema("userGroups"), - db.ref("groupName").withSchema("userGroups"), - db.ref("groupSlug").withSchema("userGroups"), - db.ref("groupRole").withSchema("userGroups"), - db.ref("groupRoleId").withSchema("userGroups"), - db.ref("groupCreatedAt").withSchema("userGroups"), - db.ref("groupUpdatedAt").withSchema("userGroups"), - db.ref("groupCustomRolePermission").withSchema("userGroups") + db.ref("bypassOrgAuthEnabled").withSchema(TableName.Organization).as("bypassOrgAuthEnabled") ); - const [formatedDoc] = sqlNestRelationships({ - data: membership, + const data = sqlNestRelationships({ + data: docs, key: "id", parentMapper: (el) => - OrgMembershipsSchema.extend({ - permissions: z.unknown(), + MembershipsSchema.extend({ orgAuthEnforced: z.boolean().optional().nullable(), + shouldUseNewPrivilegeSystem: z.boolean().optional().nullable(), orgGoogleSsoAuthEnforced: z.boolean(), - bypassOrgAuthEnabled: z.boolean(), - customRoleSlug: z.string().optional().nullable(), - shouldUseNewPrivilegeSystem: z.boolean() + bypassOrgAuthEnabled: z.boolean() }).parse(el), childrenMapper: [ { - key: "groupId", - label: "groups" as const, + key: "additionalPrivilegeId", + label: "additionalPrivileges" as const, mapper: ({ - groupId, - groupUpdatedAt, - groupCreatedAt, - groupRole, - groupRoleId, - groupCustomRolePermission, - groupName, - groupSlug, - groupOrgId + additionalPrivilegeId, + additionalPrivilegePermissions, + additionalPrivilegeIsTemporary, + additionalPrivilegeTemporaryMode, + additionalPrivilegeTemporaryRange, + additionalPrivilegeTemporaryAccessEndTime, + additionalPrivilegeTemporaryAccessStartTime, + additionalPrivilegeCreatedAt, + additionalPrivilegeUpdatedAt }) => ({ - id: groupId, - updatedAt: groupUpdatedAt, - createdAt: groupCreatedAt, - role: groupRole, - roleId: groupRoleId, - customRolePermission: groupCustomRolePermission, - name: groupName, - slug: groupSlug, - orgId: groupOrgId + id: additionalPrivilegeId, + permissions: additionalPrivilegePermissions, + temporaryRange: additionalPrivilegeTemporaryRange, + temporaryMode: additionalPrivilegeTemporaryMode, + temporaryAccessStartTime: additionalPrivilegeTemporaryAccessStartTime, + temporaryAccessEndTime: additionalPrivilegeTemporaryAccessEndTime, + isTemporary: additionalPrivilegeIsTemporary, + createdAt: additionalPrivilegeCreatedAt, + updatedAt: additionalPrivilegeUpdatedAt + }) + }, + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + roleSlug, + customRolePermission, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + permissions: customRolePermission, + customRoleSlug: roleSlug, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt + }) + }, + { + key: "metadataId", + label: "metadata" as const, + mapper: ({ metadataKey, metadataValue, metadataId }) => ({ + id: metadataId, + key: metadataKey, + value: metadataValue }) } ] }); - return formatedDoc; + return data; } catch (error) { - throw new DatabaseError({ error, name: "GetOrgPermission" }); - } - }; - - const getOrgIdentityPermission: TPermissionDALFactory["getOrgIdentityPermission"] = async ( - identityId: string, - orgId: string - ) => { - try { - const membership = await db - .replicaNode()(TableName.IdentityOrgMembership) - .leftJoin(TableName.OrgRoles, `${TableName.IdentityOrgMembership}.roleId`, `${TableName.OrgRoles}.id`) - .join(TableName.Organization, `${TableName.IdentityOrgMembership}.orgId`, `${TableName.Organization}.id`) - .where("identityId", identityId) - .where(`${TableName.IdentityOrgMembership}.orgId`, orgId) - .select(selectAllTableCols(TableName.IdentityOrgMembership)) - .select(db.ref("authEnforced").withSchema(TableName.Organization).as("orgAuthEnforced")) - .select("permissions") - .select(db.ref("shouldUseNewPrivilegeSystem").withSchema(TableName.Organization)) - .first(); - - return membership; - } catch (error) { - throw new DatabaseError({ error, name: "GetOrgIdentityPermission" }); + throw new DatabaseError({ error, name: "Get Permission" }); } }; @@ -441,55 +365,41 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { ) => { try { const docs = await db - .replicaNode()(TableName.GroupProjectMembership) - .join(TableName.Groups, `${TableName.Groups}.id`, `${TableName.GroupProjectMembership}.groupId`) - .join( - TableName.GroupProjectMembershipRole, - `${TableName.GroupProjectMembershipRole}.projectMembershipId`, - `${TableName.GroupProjectMembership}.id` - ) - .leftJoin( - { groupCustomRoles: TableName.ProjectRoles }, - `${TableName.GroupProjectMembershipRole}.customRoleId`, + .replicaNode()(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorGroupId`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .join(TableName.Groups, `${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin( + { groupCustomRoles: TableName.Role }, + `${TableName.MembershipRole}.customRoleId`, `groupCustomRoles.id` ) - .where(`${TableName.GroupProjectMembership}.projectId`, "=", projectId) + .where(`${TableName.Membership}.scopeProjectId`, "=", projectId) .where((bd) => { if (filterGroupId) { - void bd.where(`${TableName.GroupProjectMembership}.groupId`, "=", filterGroupId); + void bd.where(`${TableName.Membership}.actorGroupId`, "=", filterGroupId); } }) .select( - db.ref("id").withSchema(TableName.GroupProjectMembership).as("membershipId"), + db.ref("id").withSchema(TableName.Membership).as("membershipId"), db.ref("id").withSchema(TableName.Groups).as("groupId"), db.ref("name").withSchema(TableName.Groups).as("groupName"), db.ref("slug").withSchema("groupCustomRoles").as("groupProjectMembershipRoleCustomRoleSlug"), db.ref("permissions").withSchema("groupCustomRoles").as("groupProjectMembershipRolePermission"), - db.ref("id").withSchema(TableName.GroupProjectMembershipRole).as("groupProjectMembershipRoleId"), - db.ref("role").withSchema(TableName.GroupProjectMembershipRole).as("groupProjectMembershipRole"), - db - .ref("customRoleId") - .withSchema(TableName.GroupProjectMembershipRole) - .as("groupProjectMembershipRoleCustomRoleId"), - db - .ref("isTemporary") - .withSchema(TableName.GroupProjectMembershipRole) - .as("groupProjectMembershipRoleIsTemporary"), - db - .ref("temporaryMode") - .withSchema(TableName.GroupProjectMembershipRole) - .as("groupProjectMembershipRoleTemporaryMode"), - db - .ref("temporaryRange") - .withSchema(TableName.GroupProjectMembershipRole) - .as("groupProjectMembershipRoleTemporaryRange"), + db.ref("id").withSchema(TableName.MembershipRole).as("groupProjectMembershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("groupProjectMembershipRole"), + db.ref("customRoleId").withSchema(TableName.MembershipRole).as("groupProjectMembershipRoleCustomRoleId"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("groupProjectMembershipRoleIsTemporary"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("groupProjectMembershipRoleTemporaryMode"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("groupProjectMembershipRoleTemporaryRange"), db .ref("temporaryAccessStartTime") - .withSchema(TableName.GroupProjectMembershipRole) + .withSchema(TableName.MembershipRole) .as("groupProjectMembershipRoleTemporaryAccessStartTime"), db .ref("temporaryAccessEndTime") - .withSchema(TableName.GroupProjectMembershipRole) + .withSchema(TableName.MembershipRole) .as("groupProjectMembershipRoleTemporaryAccessEndTime") ); @@ -551,246 +461,148 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { } }; - const getProjectUserPermissions: TPermissionDALFactory["getProjectUserPermissions"] = async (projectId: string) => { + const getProjectUserPermissions: TPermissionDALFactory["getProjectUserPermissions"] = async ( + projectId: string, + orgId: string + ) => { + const userGroupSubquery = db(TableName.Groups) + .leftJoin(TableName.UserGroupMembership, `${TableName.UserGroupMembership}.groupId`, `${TableName.Groups}.id`) + .where(`${TableName.Groups}.orgId`, orgId) + .select(db.ref("id").withSchema(TableName.Groups)); + try { const docs = await db .replicaNode()(TableName.Users) .where("isGhost", "=", false) - .leftJoin(TableName.GroupProjectMembership, (queryBuilder) => { - void queryBuilder.on(`${TableName.GroupProjectMembership}.projectId`, db.raw("?", [projectId])); + .join(TableName.Membership, `${TableName.Users}.id`, `${TableName.Membership}.actorUserId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .leftJoin(TableName.AdditionalPrivilege, (qb) => { + qb.on(`${TableName.Membership}.actorUserId`, `${TableName.AdditionalPrivilege}.actorUserId`).andOn( + `${TableName.Membership}.scopeOrgId`, + `${TableName.AdditionalPrivilege}.orgId` + ); }) - .leftJoin( - TableName.GroupProjectMembershipRole, - `${TableName.GroupProjectMembershipRole}.projectMembershipId`, - `${TableName.GroupProjectMembership}.id` - ) - .leftJoin( - { groupCustomRoles: TableName.ProjectRoles }, - `${TableName.GroupProjectMembershipRole}.customRoleId`, - `groupCustomRoles.id` - ) - .join(TableName.ProjectMembership, (queryBuilder) => { - void queryBuilder - .on(`${TableName.ProjectMembership}.projectId`, db.raw("?", [projectId])) - .andOn(`${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`); - }) - .leftJoin( - TableName.ProjectUserMembershipRole, - `${TableName.ProjectUserMembershipRole}.projectMembershipId`, - `${TableName.ProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.ProjectUserMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) - .leftJoin(TableName.ProjectUserAdditionalPrivilege, (queryBuilder) => { - void queryBuilder - .on(`${TableName.ProjectUserAdditionalPrivilege}.projectId`, db.raw("?", [projectId])) - .andOn(`${TableName.ProjectUserAdditionalPrivilege}.userId`, `${TableName.Users}.id`); - }) - .join(TableName.Project, `${TableName.Project}.id`, db.raw("?", [projectId])) - .join(TableName.Organization, `${TableName.Project}.orgId`, `${TableName.Organization}.id`) .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { void queryBuilder - .on(`${TableName.Users}.id`, `${TableName.IdentityMetadata}.userId`) - .andOn(`${TableName.Organization}.id`, `${TableName.IdentityMetadata}.orgId`); + .on(`${TableName.Membership}.actorUserId`, `${TableName.IdentityMetadata}.userId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); + }) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where((qb) => { + void qb + .whereNotNull(`${TableName.Membership}.actorUserId`) + .orWhereIn(`${TableName.Membership}.actorGroupId`, userGroupSubquery); + }) + .where((qb) => { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, projectId); }) .select( db.ref("id").withSchema(TableName.Users).as("userId"), db.ref("username").withSchema(TableName.Users).as("username"), - // groups specific - db.ref("id").withSchema(TableName.GroupProjectMembership).as("groupMembershipId"), - db.ref("createdAt").withSchema(TableName.GroupProjectMembership).as("groupMembershipCreatedAt"), - db.ref("updatedAt").withSchema(TableName.GroupProjectMembership).as("groupMembershipUpdatedAt"), - db.ref("slug").withSchema("groupCustomRoles").as("userGroupProjectMembershipRoleCustomRoleSlug"), - db.ref("permissions").withSchema("groupCustomRoles").as("userGroupProjectMembershipRolePermission"), - db.ref("id").withSchema(TableName.GroupProjectMembershipRole).as("userGroupProjectMembershipRoleId"), - db.ref("role").withSchema(TableName.GroupProjectMembershipRole).as("userGroupProjectMembershipRole"), - db - .ref("customRoleId") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleCustomRoleId"), - db - .ref("isTemporary") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleIsTemporary"), - db - .ref("temporaryMode") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryMode"), - db - .ref("temporaryRange") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryRange"), + db.ref("slug").withSchema(TableName.Role).as("roleSlug"), + db.ref("permissions").withSchema(TableName.Role).as("customRolePermission"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), db .ref("temporaryAccessStartTime") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryAccessStartTime"), + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), db .ref("temporaryAccessEndTime") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryAccessEndTime"), - // user specific - db.ref("id").withSchema(TableName.ProjectMembership).as("membershipId"), - db.ref("createdAt").withSchema(TableName.ProjectMembership).as("membershipCreatedAt"), - db.ref("updatedAt").withSchema(TableName.ProjectMembership).as("membershipUpdatedAt"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("userProjectMembershipRoleCustomRoleSlug"), - db.ref("permissions").withSchema(TableName.ProjectRoles).as("userProjectCustomRolePermission"), - db.ref("id").withSchema(TableName.ProjectUserMembershipRole).as("userProjectMembershipRoleId"), - db.ref("role").withSchema(TableName.ProjectUserMembershipRole).as("userProjectMembershipRole"), - db - .ref("temporaryMode") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryMode"), - db - .ref("isTemporary") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleIsTemporary"), - db - .ref("temporaryRange") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryRange"), + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt"), + db.ref("id").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeId"), + db.ref("name").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeName"), + db.ref("permissions").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegePermissions"), + db.ref("id").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeId"), + db.ref("temporaryMode").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeTemporaryRange"), db .ref("temporaryAccessStartTime") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryAccessStartTime"), + .withSchema(TableName.AdditionalPrivilege) + .as("additionalPrivilegeTemporaryAccessStartTime"), db .ref("temporaryAccessEndTime") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryAccessEndTime"), - db.ref("id").withSchema(TableName.ProjectUserAdditionalPrivilege).as("userAdditionalPrivilegesId"), - db - .ref("permissions") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesPermissions"), - db - .ref("temporaryMode") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryMode"), - db - .ref("isTemporary") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesIsTemporary"), - db - .ref("temporaryRange") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryRange"), - db.ref("userId").withSchema(TableName.ProjectUserAdditionalPrivilege).as("userAdditionalPrivilegesUserId"), - db - .ref("temporaryAccessStartTime") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryAccessStartTime"), - db - .ref("temporaryAccessEndTime") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryAccessEndTime"), + .withSchema(TableName.AdditionalPrivilege) + .as("additionalPrivilegeTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeCreatedAt"), + db.ref("updatedAt").withSchema(TableName.AdditionalPrivilege).as("additionalPrivilegeUpdatedAt"), // general db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), - db.ref("value").withSchema(TableName.IdentityMetadata).as("metadataValue"), - db.ref("authEnforced").withSchema(TableName.Organization).as("orgAuthEnforced"), - db.ref("orgId").withSchema(TableName.Project), - db.ref("type").withSchema(TableName.Project).as("projectType"), - db.ref("id").withSchema(TableName.Project).as("projectId") + db.ref("value").withSchema(TableName.IdentityMetadata).as("metadataValue") ); const userPermissions = sqlNestRelationships({ data: docs, key: "userId", - parentMapper: ({ - orgId, - username, - orgAuthEnforced, - membershipId, - groupMembershipId, - membershipCreatedAt, - groupMembershipCreatedAt, - groupMembershipUpdatedAt, - membershipUpdatedAt, - projectType, - userId - }) => ({ - orgId, - orgAuthEnforced, + parentMapper: ({ username, userId }) => ({ userId, projectId, - username, - projectType, - id: membershipId || groupMembershipId, - createdAt: membershipCreatedAt || groupMembershipCreatedAt, - updatedAt: membershipUpdatedAt || groupMembershipUpdatedAt + username }), childrenMapper: [ { - key: "userGroupProjectMembershipRoleId", - label: "userGroupRoles" as const, - mapper: ({ - userGroupProjectMembershipRoleId, - userGroupProjectMembershipRole, - userGroupProjectMembershipRolePermission, - userGroupProjectMembershipRoleCustomRoleSlug, - userGroupProjectMembershipRoleIsTemporary, - userGroupProjectMembershipRoleTemporaryMode, - userGroupProjectMembershipRoleTemporaryAccessEndTime, - userGroupProjectMembershipRoleTemporaryAccessStartTime, - userGroupProjectMembershipRoleTemporaryRange - }) => ({ - id: userGroupProjectMembershipRoleId, - role: userGroupProjectMembershipRole, - customRoleSlug: userGroupProjectMembershipRoleCustomRoleSlug, - permissions: userGroupProjectMembershipRolePermission, - temporaryRange: userGroupProjectMembershipRoleTemporaryRange, - temporaryMode: userGroupProjectMembershipRoleTemporaryMode, - temporaryAccessStartTime: userGroupProjectMembershipRoleTemporaryAccessStartTime, - temporaryAccessEndTime: userGroupProjectMembershipRoleTemporaryAccessEndTime, - isTemporary: userGroupProjectMembershipRoleIsTemporary - }) - }, - { - key: "userProjectMembershipRoleId", - label: "projectMembershipRoles" as const, - mapper: ({ - userProjectMembershipRoleId, - userProjectMembershipRole, - userProjectCustomRolePermission, - userProjectMembershipRoleIsTemporary, - userProjectMembershipRoleTemporaryMode, - userProjectMembershipRoleTemporaryRange, - userProjectMembershipRoleTemporaryAccessEndTime, - userProjectMembershipRoleTemporaryAccessStartTime, - userProjectMembershipRoleCustomRoleSlug - }) => ({ - id: userProjectMembershipRoleId, - role: userProjectMembershipRole, - customRoleSlug: userProjectMembershipRoleCustomRoleSlug, - permissions: userProjectCustomRolePermission, - temporaryRange: userProjectMembershipRoleTemporaryRange, - temporaryMode: userProjectMembershipRoleTemporaryMode, - temporaryAccessStartTime: userProjectMembershipRoleTemporaryAccessStartTime, - temporaryAccessEndTime: userProjectMembershipRoleTemporaryAccessEndTime, - isTemporary: userProjectMembershipRoleIsTemporary - }) - }, - { - key: "userAdditionalPrivilegesId", + key: "additionalPrivilegeId", label: "additionalPrivileges" as const, mapper: ({ - userAdditionalPrivilegesId, - userAdditionalPrivilegesPermissions, - userAdditionalPrivilegesIsTemporary, - userAdditionalPrivilegesTemporaryMode, - userAdditionalPrivilegesTemporaryRange, - userAdditionalPrivilegesTemporaryAccessEndTime, - userAdditionalPrivilegesTemporaryAccessStartTime + additionalPrivilegeId, + additionalPrivilegePermissions, + additionalPrivilegeIsTemporary, + additionalPrivilegeTemporaryMode, + additionalPrivilegeTemporaryRange, + additionalPrivilegeTemporaryAccessEndTime, + additionalPrivilegeTemporaryAccessStartTime, + additionalPrivilegeCreatedAt, + additionalPrivilegeUpdatedAt }) => ({ - id: userAdditionalPrivilegesId, - permissions: userAdditionalPrivilegesPermissions, - temporaryRange: userAdditionalPrivilegesTemporaryRange, - temporaryMode: userAdditionalPrivilegesTemporaryMode, - temporaryAccessStartTime: userAdditionalPrivilegesTemporaryAccessStartTime, - temporaryAccessEndTime: userAdditionalPrivilegesTemporaryAccessEndTime, - isTemporary: userAdditionalPrivilegesIsTemporary + id: additionalPrivilegeId, + permissions: additionalPrivilegePermissions, + temporaryRange: additionalPrivilegeTemporaryRange, + temporaryMode: additionalPrivilegeTemporaryMode, + temporaryAccessStartTime: additionalPrivilegeTemporaryAccessStartTime, + temporaryAccessEndTime: additionalPrivilegeTemporaryAccessEndTime, + isTemporary: additionalPrivilegeIsTemporary, + createdAt: additionalPrivilegeCreatedAt, + updatedAt: additionalPrivilegeUpdatedAt + }) + }, + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + roleSlug, + customRolePermission, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + permissions: customRolePermission, + customRoleSlug: roleSlug, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt }) }, { @@ -808,17 +620,11 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { return userPermissions .map((userPermission) => { if (!userPermission) return undefined; - if (!userPermission?.userGroupRoles?.[0] && !userPermission?.projectMembershipRoles?.[0]) return undefined; + if (!userPermission?.roles?.[0]) return undefined; // when introducting cron mode change it here const activeRoles = - userPermission?.projectMembershipRoles?.filter( - ({ isTemporary, temporaryAccessEndTime }) => - !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) - ) ?? []; - - const activeGroupRoles = - userPermission?.userGroupRoles?.filter( + userPermission?.roles?.filter( ({ isTemporary, temporaryAccessEndTime }) => !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) ) ?? []; @@ -831,7 +637,7 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { return { ...userPermission, - roles: [...activeRoles, ...activeGroupRoles], + roles: activeRoles, additionalPrivileges: activeAdditionalPrivileges }; }) @@ -841,378 +647,52 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { } }; - const getProjectPermission: TPermissionDALFactory["getProjectPermission"] = async ( - userId: string, - projectId: string - ) => { - try { - const subQueryUserGroups = db(TableName.UserGroupMembership).where("userId", userId).select("groupId"); - const docs = await db - .replicaNode()(TableName.Users) - .where(`${TableName.Users}.id`, userId) - .leftJoin(TableName.GroupProjectMembership, (queryBuilder) => { - void queryBuilder - .on(`${TableName.GroupProjectMembership}.projectId`, db.raw("?", [projectId])) - // @ts-expect-error akhilmhdh: this is valid knexjs query. Its just ts type argument is missing it - .andOnIn(`${TableName.GroupProjectMembership}.groupId`, subQueryUserGroups); - }) - .leftJoin( - TableName.GroupProjectMembershipRole, - `${TableName.GroupProjectMembershipRole}.projectMembershipId`, - `${TableName.GroupProjectMembership}.id` - ) - .leftJoin( - { groupCustomRoles: TableName.ProjectRoles }, - `${TableName.GroupProjectMembershipRole}.customRoleId`, - `groupCustomRoles.id` - ) - .leftJoin(TableName.ProjectMembership, (queryBuilder) => { - void queryBuilder - .on(`${TableName.ProjectMembership}.projectId`, db.raw("?", [projectId])) - .andOn(`${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`); - }) - .leftJoin( - TableName.ProjectUserMembershipRole, - `${TableName.ProjectUserMembershipRole}.projectMembershipId`, - `${TableName.ProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.ProjectUserMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) - .leftJoin(TableName.ProjectUserAdditionalPrivilege, (queryBuilder) => { - void queryBuilder - .on(`${TableName.ProjectUserAdditionalPrivilege}.projectId`, db.raw("?", [projectId])) - .andOn(`${TableName.ProjectUserAdditionalPrivilege}.userId`, `${TableName.Users}.id`); - }) - .join(TableName.Project, `${TableName.Project}.id`, db.raw("?", [projectId])) - .join(TableName.Organization, `${TableName.Project}.orgId`, `${TableName.Organization}.id`) - .join(TableName.OrgMembership, (qb) => { - void qb - .on(`${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) - .andOn(`${TableName.OrgMembership}.orgId`, `${TableName.Organization}.id`); - }) - .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { - void queryBuilder - .on(`${TableName.Users}.id`, `${TableName.IdentityMetadata}.userId`) - .andOn(`${TableName.Organization}.id`, `${TableName.IdentityMetadata}.orgId`); - }) - .select( - db.ref("id").withSchema(TableName.Users).as("userId"), - db.ref("username").withSchema(TableName.Users).as("username"), - // groups specific - db.ref("id").withSchema(TableName.GroupProjectMembership).as("groupMembershipId"), - db.ref("createdAt").withSchema(TableName.GroupProjectMembership).as("groupMembershipCreatedAt"), - db.ref("updatedAt").withSchema(TableName.GroupProjectMembership).as("groupMembershipUpdatedAt"), - db.ref("slug").withSchema("groupCustomRoles").as("userGroupProjectMembershipRoleCustomRoleSlug"), - db.ref("permissions").withSchema("groupCustomRoles").as("userGroupProjectMembershipRolePermission"), - db.ref("id").withSchema(TableName.GroupProjectMembershipRole).as("userGroupProjectMembershipRoleId"), - db.ref("role").withSchema(TableName.GroupProjectMembershipRole).as("userGroupProjectMembershipRole"), - db - .ref("customRoleId") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleCustomRoleId"), - db - .ref("isTemporary") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleIsTemporary"), - db - .ref("temporaryMode") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryMode"), - db - .ref("temporaryRange") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryRange"), - db - .ref("temporaryAccessStartTime") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryAccessStartTime"), - db - .ref("temporaryAccessEndTime") - .withSchema(TableName.GroupProjectMembershipRole) - .as("userGroupProjectMembershipRoleTemporaryAccessEndTime"), - // user specific - db.ref("id").withSchema(TableName.ProjectMembership).as("membershipId"), - db.ref("createdAt").withSchema(TableName.ProjectMembership).as("membershipCreatedAt"), - db.ref("updatedAt").withSchema(TableName.ProjectMembership).as("membershipUpdatedAt"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("userProjectMembershipRoleCustomRoleSlug"), - db.ref("permissions").withSchema(TableName.ProjectRoles).as("userProjectCustomRolePermission"), - db.ref("id").withSchema(TableName.ProjectUserMembershipRole).as("userProjectMembershipRoleId"), - db.ref("role").withSchema(TableName.ProjectUserMembershipRole).as("userProjectMembershipRole"), - db - .ref("temporaryMode") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryMode"), - db - .ref("isTemporary") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleIsTemporary"), - db - .ref("temporaryRange") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryRange"), - db - .ref("temporaryAccessStartTime") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryAccessStartTime"), - db - .ref("temporaryAccessEndTime") - .withSchema(TableName.ProjectUserMembershipRole) - .as("userProjectMembershipRoleTemporaryAccessEndTime"), - db.ref("id").withSchema(TableName.ProjectUserAdditionalPrivilege).as("userAdditionalPrivilegesId"), - db - .ref("permissions") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesPermissions"), - db - .ref("temporaryMode") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryMode"), - db - .ref("isTemporary") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesIsTemporary"), - db - .ref("temporaryRange") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryRange"), - db.ref("userId").withSchema(TableName.ProjectUserAdditionalPrivilege).as("userAdditionalPrivilegesUserId"), - db - .ref("temporaryAccessStartTime") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryAccessStartTime"), - db - .ref("temporaryAccessEndTime") - .withSchema(TableName.ProjectUserAdditionalPrivilege) - .as("userAdditionalPrivilegesTemporaryAccessEndTime"), - // general - db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), - db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), - db.ref("value").withSchema(TableName.IdentityMetadata).as("metadataValue"), - db.ref("authEnforced").withSchema(TableName.Organization).as("orgAuthEnforced"), - db.ref("googleSsoAuthEnforced").withSchema(TableName.Organization).as("orgGoogleSsoAuthEnforced"), - db.ref("bypassOrgAuthEnabled").withSchema(TableName.Organization).as("bypassOrgAuthEnabled"), - db.ref("role").withSchema(TableName.OrgMembership).as("orgRole"), - db.ref("orgId").withSchema(TableName.Project), - db.ref("type").withSchema(TableName.Project).as("projectType"), - db.ref("id").withSchema(TableName.Project).as("projectId"), - db.ref("shouldUseNewPrivilegeSystem").withSchema(TableName.Organization) - ); - - const [userPermission] = sqlNestRelationships({ - data: docs, - key: "projectId", - parentMapper: ({ - orgId, - username, - orgAuthEnforced, - orgGoogleSsoAuthEnforced, - orgRole, - membershipId, - groupMembershipId, - membershipCreatedAt, - groupMembershipCreatedAt, - groupMembershipUpdatedAt, - membershipUpdatedAt, - projectType, - shouldUseNewPrivilegeSystem, - bypassOrgAuthEnabled - }) => ({ - orgId, - orgAuthEnforced, - orgGoogleSsoAuthEnforced, - orgRole: orgRole as OrgMembershipRole, - userId, - projectId, - username, - projectType, - id: membershipId || groupMembershipId, - createdAt: membershipCreatedAt || groupMembershipCreatedAt, - updatedAt: membershipUpdatedAt || groupMembershipUpdatedAt, - shouldUseNewPrivilegeSystem, - bypassOrgAuthEnabled - }), - childrenMapper: [ - { - key: "userGroupProjectMembershipRoleId", - label: "userGroupRoles" as const, - mapper: ({ - userGroupProjectMembershipRoleId, - userGroupProjectMembershipRole, - userGroupProjectMembershipRolePermission, - userGroupProjectMembershipRoleCustomRoleSlug, - userGroupProjectMembershipRoleIsTemporary, - userGroupProjectMembershipRoleTemporaryMode, - userGroupProjectMembershipRoleTemporaryAccessEndTime, - userGroupProjectMembershipRoleTemporaryAccessStartTime, - userGroupProjectMembershipRoleTemporaryRange - }) => ({ - id: userGroupProjectMembershipRoleId, - role: userGroupProjectMembershipRole, - customRoleSlug: userGroupProjectMembershipRoleCustomRoleSlug, - permissions: userGroupProjectMembershipRolePermission, - temporaryRange: userGroupProjectMembershipRoleTemporaryRange, - temporaryMode: userGroupProjectMembershipRoleTemporaryMode, - temporaryAccessStartTime: userGroupProjectMembershipRoleTemporaryAccessStartTime, - temporaryAccessEndTime: userGroupProjectMembershipRoleTemporaryAccessEndTime, - isTemporary: userGroupProjectMembershipRoleIsTemporary - }) - }, - { - key: "userProjectMembershipRoleId", - label: "projecMembershiptRoles" as const, - mapper: ({ - userProjectMembershipRoleId, - userProjectMembershipRole, - userProjectCustomRolePermission, - userProjectMembershipRoleIsTemporary, - userProjectMembershipRoleTemporaryMode, - userProjectMembershipRoleTemporaryRange, - userProjectMembershipRoleTemporaryAccessEndTime, - userProjectMembershipRoleTemporaryAccessStartTime, - userProjectMembershipRoleCustomRoleSlug - }) => ({ - id: userProjectMembershipRoleId, - role: userProjectMembershipRole, - customRoleSlug: userProjectMembershipRoleCustomRoleSlug, - permissions: userProjectCustomRolePermission, - temporaryRange: userProjectMembershipRoleTemporaryRange, - temporaryMode: userProjectMembershipRoleTemporaryMode, - temporaryAccessStartTime: userProjectMembershipRoleTemporaryAccessStartTime, - temporaryAccessEndTime: userProjectMembershipRoleTemporaryAccessEndTime, - isTemporary: userProjectMembershipRoleIsTemporary - }) - }, - { - key: "userAdditionalPrivilegesId", - label: "additionalPrivileges" as const, - mapper: ({ - userAdditionalPrivilegesId, - userAdditionalPrivilegesPermissions, - userAdditionalPrivilegesIsTemporary, - userAdditionalPrivilegesTemporaryMode, - userAdditionalPrivilegesTemporaryRange, - userAdditionalPrivilegesTemporaryAccessEndTime, - userAdditionalPrivilegesTemporaryAccessStartTime - }) => ({ - id: userAdditionalPrivilegesId, - permissions: userAdditionalPrivilegesPermissions, - temporaryRange: userAdditionalPrivilegesTemporaryRange, - temporaryMode: userAdditionalPrivilegesTemporaryMode, - temporaryAccessStartTime: userAdditionalPrivilegesTemporaryAccessStartTime, - temporaryAccessEndTime: userAdditionalPrivilegesTemporaryAccessEndTime, - isTemporary: userAdditionalPrivilegesIsTemporary - }) - }, - { - key: "metadataId", - label: "metadata" as const, - mapper: ({ metadataKey, metadataValue, metadataId }) => ({ - id: metadataId, - key: metadataKey, - value: metadataValue - }) - } - ] - }); - - if (!userPermission) return undefined; - if (!userPermission?.userGroupRoles?.[0] && !userPermission?.projecMembershiptRoles?.[0]) return undefined; - - // when introducting cron mode change it here - const activeRoles = - userPermission?.projecMembershiptRoles?.filter( - ({ isTemporary, temporaryAccessEndTime }) => - !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) - ) ?? []; - - const activeGroupRoles = - userPermission?.userGroupRoles?.filter( - ({ isTemporary, temporaryAccessEndTime }) => - !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) - ) ?? []; - - const activeAdditionalPrivileges = - userPermission?.additionalPrivileges?.filter( - ({ isTemporary, temporaryAccessEndTime }) => - !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) - ) ?? []; - - return { - ...userPermission, - roles: [...activeRoles, ...activeGroupRoles], - additionalPrivileges: activeAdditionalPrivileges - }; - } catch (error) { - throw new DatabaseError({ error, name: "GetProjectPermission" }); - } - }; - const getProjectIdentityPermissions: TPermissionDALFactory["getProjectIdentityPermissions"] = async ( - projectId: string + projectId: string, + orgId: string ) => { try { const docs = await db - .replicaNode()(TableName.IdentityProjectMembership) - .join( - TableName.IdentityProjectMembershipRole, - `${TableName.IdentityProjectMembershipRole}.projectMembershipId`, - `${TableName.IdentityProjectMembership}.id` - ) - .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.IdentityProjectMembership}.identityId`) - .leftJoin( - TableName.ProjectRoles, - `${TableName.IdentityProjectMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) - .leftJoin( - TableName.IdentityProjectAdditionalPrivilege, - `${TableName.IdentityProjectAdditionalPrivilege}.projectMembershipId`, - `${TableName.IdentityProjectMembership}.id` - ) - .join( - // Join the Project table to later select orgId - TableName.Project, - `${TableName.IdentityProjectMembership}.projectId`, - `${TableName.Project}.id` - ) + .replicaNode()(TableName.Membership) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .leftJoin(TableName.AdditionalPrivilege, (qb) => { + qb.on(`${TableName.Membership}.actorIdentityId`, `${TableName.AdditionalPrivilege}.actorIdentityId`).andOn( + `${TableName.Membership}.scopeOrgId`, + `${TableName.AdditionalPrivilege}.orgId` + ); + }) + .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.Membership}.actorIdentityId`) .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { void queryBuilder - .on(`${TableName.Identity}.id`, `${TableName.IdentityMetadata}.identityId`) - .andOn(`${TableName.Project}.orgId`, `${TableName.IdentityMetadata}.orgId`); + .on(`${TableName.Membership}.actorIdentityId`, `${TableName.IdentityMetadata}.identityId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); }) - .where(`${TableName.IdentityProjectMembership}.projectId`, projectId) - .select(selectAllTableCols(TableName.IdentityProjectMembershipRole)) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .select(selectAllTableCols(TableName.MembershipRole)) .select( - db.ref("id").withSchema(TableName.IdentityProjectMembership).as("membershipId"), + db.ref("id").withSchema(TableName.Membership).as("membershipId"), db.ref("id").withSchema(TableName.Identity).as("identityId"), db.ref("name").withSchema(TableName.Identity).as("identityName"), - db.ref("orgId").withSchema(TableName.Project).as("orgId"), // Now you can select orgId from Project - db.ref("type").withSchema(TableName.Project).as("projectType"), - db.ref("createdAt").withSchema(TableName.IdentityProjectMembership).as("membershipCreatedAt"), - db.ref("updatedAt").withSchema(TableName.IdentityProjectMembership).as("membershipUpdatedAt"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("permissions").withSchema(TableName.ProjectRoles), - db.ref("id").withSchema(TableName.IdentityProjectAdditionalPrivilege).as("identityApId"), - db.ref("permissions").withSchema(TableName.IdentityProjectAdditionalPrivilege).as("identityApPermissions"), - db - .ref("temporaryMode") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) - .as("identityApTemporaryMode"), - db.ref("isTemporary").withSchema(TableName.IdentityProjectAdditionalPrivilege).as("identityApIsTemporary"), - db - .ref("temporaryRange") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) - .as("identityApTemporaryRange"), + db.ref("createdAt").withSchema(TableName.Membership).as("membershipCreatedAt"), + db.ref("updatedAt").withSchema(TableName.Membership).as("membershipUpdatedAt"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("permissions").withSchema(TableName.Role), + db.ref("id").withSchema(TableName.AdditionalPrivilege).as("identityApId"), + db.ref("permissions").withSchema(TableName.AdditionalPrivilege).as("identityApPermissions"), + db.ref("temporaryMode").withSchema(TableName.AdditionalPrivilege).as("identityApTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.AdditionalPrivilege).as("identityApIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.AdditionalPrivilege).as("identityApTemporaryRange"), db .ref("temporaryAccessStartTime") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) + .withSchema(TableName.AdditionalPrivilege) .as("identityApTemporaryAccessStartTime"), db .ref("temporaryAccessEndTime") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) + .withSchema(TableName.AdditionalPrivilege) .as("identityApTemporaryAccessEndTime"), db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), @@ -1222,15 +702,7 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { const permissions = sqlNestRelationships({ data: docs, key: "identityId", - parentMapper: ({ - membershipId, - membershipCreatedAt, - membershipUpdatedAt, - orgId, - identityName, - projectType, - identityId - }) => ({ + parentMapper: ({ membershipId, membershipCreatedAt, membershipUpdatedAt, identityName, identityId }) => ({ id: membershipId, identityId, username: identityName, @@ -1238,7 +710,6 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { createdAt: membershipCreatedAt, updatedAt: membershipUpdatedAt, orgId, - projectType, // just a prefilled value orgAuthEnforced: false }), @@ -1247,7 +718,7 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { key: "id", label: "roles" as const, mapper: (data) => - IdentityProjectMembershipRoleSchema.extend({ + MembershipRolesSchema.extend({ permissions: z.unknown(), customRoleSlug: z.string().optional().nullable() }).parse(data) @@ -1309,170 +780,10 @@ export const permissionDALFactory = (db: TDbClient): TPermissionDALFactory => { } }; - const getProjectIdentityPermission: TPermissionDALFactory["getProjectIdentityPermission"] = async ( - identityId, - projectId - ) => { - try { - const docs = await db - .replicaNode()(TableName.IdentityProjectMembership) - .join( - TableName.IdentityProjectMembershipRole, - `${TableName.IdentityProjectMembershipRole}.projectMembershipId`, - `${TableName.IdentityProjectMembership}.id` - ) - .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.IdentityProjectMembership}.identityId`) - .leftJoin( - TableName.ProjectRoles, - `${TableName.IdentityProjectMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) - .leftJoin( - TableName.IdentityProjectAdditionalPrivilege, - `${TableName.IdentityProjectAdditionalPrivilege}.projectMembershipId`, - `${TableName.IdentityProjectMembership}.id` - ) - .join( - // Join the Project table to later select orgId - TableName.Project, - `${TableName.IdentityProjectMembership}.projectId`, - `${TableName.Project}.id` - ) - .join(TableName.Organization, `${TableName.Project}.orgId`, `${TableName.Organization}.id`) - .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { - void queryBuilder - .on(`${TableName.Identity}.id`, `${TableName.IdentityMetadata}.identityId`) - .andOn(`${TableName.Project}.orgId`, `${TableName.IdentityMetadata}.orgId`); - }) - .where(`${TableName.IdentityProjectMembership}.identityId`, identityId) - .where(`${TableName.IdentityProjectMembership}.projectId`, projectId) - .select(selectAllTableCols(TableName.IdentityProjectMembershipRole)) - .select( - db.ref("id").withSchema(TableName.IdentityProjectMembership).as("membershipId"), - db.ref("name").withSchema(TableName.Identity).as("identityName"), - db.ref("orgId").withSchema(TableName.Project).as("orgId"), // Now you can select orgId from Project - db.ref("type").withSchema(TableName.Project).as("projectType"), - db.ref("createdAt").withSchema(TableName.IdentityProjectMembership).as("membershipCreatedAt"), - db.ref("updatedAt").withSchema(TableName.IdentityProjectMembership).as("membershipUpdatedAt"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("permissions").withSchema(TableName.ProjectRoles), - db.ref("shouldUseNewPrivilegeSystem").withSchema(TableName.Organization), - db.ref("id").withSchema(TableName.IdentityProjectAdditionalPrivilege).as("identityApId"), - db.ref("permissions").withSchema(TableName.IdentityProjectAdditionalPrivilege).as("identityApPermissions"), - db - .ref("temporaryMode") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) - .as("identityApTemporaryMode"), - db.ref("isTemporary").withSchema(TableName.IdentityProjectAdditionalPrivilege).as("identityApIsTemporary"), - db - .ref("temporaryRange") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) - .as("identityApTemporaryRange"), - db - .ref("temporaryAccessStartTime") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) - .as("identityApTemporaryAccessStartTime"), - db - .ref("temporaryAccessEndTime") - .withSchema(TableName.IdentityProjectAdditionalPrivilege) - .as("identityApTemporaryAccessEndTime"), - db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), - db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), - db.ref("value").withSchema(TableName.IdentityMetadata).as("metadataValue") - ); - - const permission = sqlNestRelationships({ - data: docs, - key: "membershipId", - parentMapper: ({ - membershipId, - membershipCreatedAt, - membershipUpdatedAt, - orgId, - identityName, - projectType, - shouldUseNewPrivilegeSystem - }) => ({ - id: membershipId, - identityId, - username: identityName, - projectId, - createdAt: membershipCreatedAt, - updatedAt: membershipUpdatedAt, - orgId, - projectType, - shouldUseNewPrivilegeSystem, - // just a prefilled value - orgAuthEnforced: false - }), - childrenMapper: [ - { - key: "id", - label: "roles" as const, - mapper: (data) => - IdentityProjectMembershipRoleSchema.extend({ - permissions: z.unknown(), - customRoleSlug: z.string().optional().nullable() - }).parse(data) - }, - { - key: "identityApId", - label: "additionalPrivileges" as const, - mapper: ({ - identityApId, - identityApPermissions, - identityApIsTemporary, - identityApTemporaryMode, - identityApTemporaryRange, - identityApTemporaryAccessEndTime, - identityApTemporaryAccessStartTime - }) => ({ - id: identityApId, - permissions: identityApPermissions, - temporaryRange: identityApTemporaryRange, - temporaryMode: identityApTemporaryMode, - temporaryAccessEndTime: identityApTemporaryAccessEndTime, - temporaryAccessStartTime: identityApTemporaryAccessStartTime, - isTemporary: identityApIsTemporary - }) - }, - { - key: "metadataId", - label: "metadata" as const, - mapper: ({ metadataKey, metadataValue, metadataId }) => ({ - id: metadataId, - key: metadataKey, - value: metadataValue - }) - } - ] - }); - - if (!permission?.[0]) return undefined; - - // when introducting cron mode change it here - const activeRoles = permission?.[0]?.roles.filter( - ({ isTemporary, temporaryAccessEndTime }) => - !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) - ); - const activeAdditionalPrivileges = permission?.[0]?.additionalPrivileges?.filter( - ({ isTemporary, temporaryAccessEndTime }) => - !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) - ); - - return { ...permission[0], roles: activeRoles, additionalPrivileges: activeAdditionalPrivileges }; - } catch (error) { - throw new DatabaseError({ error, name: "GetProjectIdentityPermission" }); - } - }; - return { - getOrgPermission, - getOrgIdentityPermission, - getProjectPermission, - getProjectIdentityPermission, getProjectUserPermissions, getProjectIdentityPermissions, - getProjectGroupPermissions + getProjectGroupPermissions, + getPermission }; }; diff --git a/backend/src/ee/services/permission/permission-fns.ts b/backend/src/ee/services/permission/permission-fns.ts index 7d61d74992..0da5ad3b25 100644 --- a/backend/src/ee/services/permission/permission-fns.ts +++ b/backend/src/ee/services/permission/permission-fns.ts @@ -2,7 +2,7 @@ import { ForbiddenError, MongoAbility, PureAbility, subject } from "@casl/ability"; import { z } from "zod"; -import { OrgMembershipRole, TOrganizations } from "@app/db/schemas"; +import { TOrganizations } from "@app/db/schemas"; import { validatePermissionBoundary } from "@app/lib/casl/boundary"; import { BadRequestError, ForbiddenRequestError, UnauthorizedError } from "@app/lib/errors"; import { ActorAuthMethod, AuthMethod } from "@app/services/auth/auth-type"; @@ -123,13 +123,13 @@ function validateOrgSSO( isOrgSsoEnforced: TOrganizations["authEnforced"], isOrgGoogleSsoEnforced: TOrganizations["googleSsoAuthEnforced"], isOrgSsoBypassEnabled: TOrganizations["bypassOrgAuthEnabled"], - orgRole: OrgMembershipRole + isAdmin: boolean ) { if (actorAuthMethod === undefined) { throw new UnauthorizedError({ name: "No auth method defined" }); } - if ((isOrgSsoEnforced || isOrgGoogleSsoEnforced) && isOrgSsoBypassEnabled && orgRole === OrgMembershipRole.Admin) { + if ((isOrgSsoEnforced || isOrgGoogleSsoEnforced) && isOrgSsoBypassEnabled && isAdmin) { return; } diff --git a/backend/src/ee/services/permission/permission-service-types.ts b/backend/src/ee/services/permission/permission-service-types.ts index f25b84bd59..1f0e004706 100644 --- a/backend/src/ee/services/permission/permission-service-types.ts +++ b/backend/src/ee/services/permission/permission-service-types.ts @@ -1,8 +1,8 @@ -import { MongoAbility, RawRuleOf } from "@casl/ability"; +import { MongoAbility } from "@casl/ability"; import { MongoQuery } from "@ucast/mongo2js"; import { Knex } from "knex"; -import { ActionProjectType } from "@app/db/schemas"; +import { ActionProjectType, TMemberships } from "@app/db/schemas"; import { ActorAuthMethod, ActorType } from "@app/services/auth/auth-type"; import { OrgPermissionSet } from "./org-permission"; @@ -49,232 +49,90 @@ export type TGetProjectPermissionArg = { actionProjectType: ActionProjectType; }; +export type TGetOrgPermissionArg = { + actor: ActorType; + actorId: string; + orgId: string; + actorAuthMethod: ActorAuthMethod; + actorOrgId?: string; +}; + export type TPermissionServiceFactory = { - getUserOrgPermission: ( - userId: string, - orgId: string, - authMethod: ActorAuthMethod, - userOrgId?: string - ) => Promise<{ - permission: MongoAbility; - membership: { - status: string; - orgId: string; - id: string; - createdAt: Date; - updatedAt: Date; - role: string; - isActive: boolean; - shouldUseNewPrivilegeSystem: boolean; - bypassOrgAuthEnabled: boolean; - permissions?: unknown; - userId?: string | null | undefined; - roleId?: string | null | undefined; - inviteEmail?: string | null | undefined; - projectFavorites?: string[] | null | undefined; - customRoleSlug?: string | null | undefined; - orgAuthEnforced?: boolean | null | undefined; - } & { - groups: { - id: string; - updatedAt: Date; - createdAt: Date; - role: string; - roleId: string | null | undefined; - customRolePermission: unknown; - name: string; - slug: string; - orgId: string; - }[]; - }; - }>; getOrgPermission: ( type: ActorType, id: string, orgId: string, authMethod: ActorAuthMethod, actorOrgId: string | undefined - ) => Promise< - | { - permission: MongoAbility; - membership: { - status: string; - orgId: string; - id: string; - createdAt: Date; - updatedAt: Date; - role: string; - isActive: boolean; - shouldUseNewPrivilegeSystem: boolean; - bypassOrgAuthEnabled: boolean; - permissions?: unknown; - userId?: string | null | undefined; - roleId?: string | null | undefined; - inviteEmail?: string | null | undefined; - projectFavorites?: string[] | null | undefined; - customRoleSlug?: string | null | undefined; - orgAuthEnforced?: boolean | null | undefined; - } & { - groups: { - id: string; - updatedAt: Date; - createdAt: Date; - role: string; - roleId: string | null | undefined; - customRolePermission: unknown; - name: string; - slug: string; - orgId: string; - }[]; - }; + ) => Promise<{ + permission: MongoAbility; + memberships: Array< + TMemberships & { + roles: { role: string; customRoleSlug?: string | null }[]; + shouldUseNewPrivilegeSystem?: boolean | null; } - | { - permission: MongoAbility; - membership: { - id: string; - role: string; - createdAt: Date; - updatedAt: Date; - orgId: string; - roleId?: string | null | undefined; - permissions?: unknown; - identityId: string; - orgAuthEnforced: boolean | null | undefined; - shouldUseNewPrivilegeSystem: boolean; - }; - } - >; - getUserProjectPermission: ({ - userId, - projectId, - authMethod, - userOrgId, - actionProjectType - }: TGetUserProjectPermissionArg) => Promise<{ - permission: MongoAbility; - membership: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - projectId: string; - } & { - orgAuthEnforced: boolean | null | undefined; - orgId: string; - roles: Array<{ - role: string; - }>; - shouldUseNewPrivilegeSystem: boolean; - }; + >; hasRole: (role: string) => boolean; }>; - getProjectPermission: ( - arg: TGetProjectPermissionArg - ) => Promise< - T extends ActorType.SERVICE - ? { - permission: MongoAbility; - membership: { - shouldUseNewPrivilegeSystem: boolean; - }; - hasRole: (arg: string) => boolean; - } - : { - permission: MongoAbility; - membership: (T extends ActorType.USER - ? { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - projectId: string; - } - : { - id: string; - createdAt: Date; - updatedAt: Date; - projectId: string; - identityId: string; - }) & { - orgAuthEnforced: boolean | null | undefined; - orgId: string; - roles: Array<{ - role: string; - }>; - shouldUseNewPrivilegeSystem: boolean; - }; - hasRole: (role: string) => boolean; - } - >; - getProjectPermissions: (projectId: string) => Promise<{ + getProjectPermission: (arg: TGetProjectPermissionArg) => Promise<{ + permission: MongoAbility; + memberships: Array; + hasRole: (role: string) => boolean; + }>; + getProjectPermissions: ( + projectId: string, + orgId: string + ) => Promise<{ userPermissions: { permission: MongoAbility; id: string; name: string; - membershipId: string; }[]; identityPermissions: { permission: MongoAbility; id: string; name: string; - membershipId: string; }[]; groupPermissions: { permission: MongoAbility; id: string; name: string; - membershipId: string; }[]; }>; - getOrgPermissionByRole: ( - role: string, + getOrgPermissionByRoles: ( + roles: string[], orgId: string ) => Promise< - | { - permission: MongoAbility; - role: { - name: string; - orgId: string; - id: string; - createdAt: Date; - updatedAt: Date; - slug: string; - permissions?: unknown; - description?: string | null | undefined; - }; - } - | { - permission: MongoAbility; - role?: undefined; - } + { + permission: MongoAbility; + role?: { + name: string; + id: string; + createdAt: Date; + updatedAt: Date; + slug: string; + permissions?: unknown; + description?: string | null | undefined; + }; + }[] >; - getProjectPermissionByRole: ( - role: string, + getProjectPermissionByRoles: ( + roles: string[], projectId: string ) => Promise< - | { - permission: MongoAbility; - role: { - name: string; - version: number; - id: string; - createdAt: Date; - updatedAt: Date; - projectId: string; - slug: string; - permissions?: unknown; - description?: string | null | undefined; - }; - } - | { - permission: MongoAbility; - role?: undefined; - } + { + permission: MongoAbility; + role?: { + name: string; + id: string; + createdAt: Date; + updatedAt: Date; + slug: string; + permissions?: unknown; + description?: string | null | undefined; + }; + }[] >; - buildOrgPermission: (orgUserRoles: TBuildOrgPermissionDTO) => MongoAbility; - buildProjectPermissionRules: ( - projectUserRoles: TBuildProjectPermissionDTO - ) => RawRuleOf>[]; checkGroupProjectPermission: ({ groupId, projectId, diff --git a/backend/src/ee/services/permission/permission-service.ts b/backend/src/ee/services/permission/permission-service.ts index 9e94e14158..2d879b4fdf 100644 --- a/backend/src/ee/services/permission/permission-service.ts +++ b/backend/src/ee/services/permission/permission-service.ts @@ -1,17 +1,15 @@ import { createMongoAbility, MongoAbility, RawRuleOf } from "@casl/ability"; import { PackRule, unpackRules } from "@casl/ability/extra"; import { requestContext } from "@fastify/request-context"; -import { MongoQuery } from "@ucast/mongo2js"; import handlebars from "handlebars"; import { Knex } from "knex"; import { + AccessScope, ActionProjectType, OrgMembershipRole, ProjectMembershipRole, - ServiceTokenScopes, - TIdentityProjectMemberships, - TProjectMemberships + ServiceTokenScopes } from "@app/db/schemas"; import { cryptographicOperatorPermissions, @@ -25,12 +23,12 @@ import { KeyStorePrefixes, KeyStoreTtls, TKeyStoreFactory } from "@app/keystore/ import { conditionsMatcher } from "@app/lib/casl"; import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; import { objectify } from "@app/lib/fn"; -import { logger } from "@app/lib/logger"; import { ActorType } from "@app/services/auth/auth-type"; -import { TOrgRoleDALFactory } from "@app/services/org/org-role-dal"; +import { TIdentityDALFactory } from "@app/services/identity/identity-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; -import { TProjectRoleDALFactory } from "@app/services/project-role/project-role-dal"; +import { TRoleDALFactory } from "@app/services/role/role-dal"; import { TServiceTokenDALFactory } from "@app/services/service-token/service-token-dal"; +import { TUserDALFactory } from "@app/services/user/user-dal"; import { orgAdminPermissions, orgMemberPermissions, orgNoAccessPermissions, OrgPermissionSet } from "./org-permission"; import { TPermissionDALFactory } from "./permission-dal"; @@ -38,56 +36,86 @@ import { escapeHandlebarsMissingDict, validateOrgSSO } from "./permission-fns"; import { TBuildOrgPermissionDTO, TBuildProjectPermissionDTO, - TGetIdentityProjectPermissionArg, - TGetProjectPermissionArg, TGetServiceTokenProjectPermissionArg, - TGetUserProjectPermissionArg, TPermissionServiceFactory } from "./permission-service-types"; import { buildServiceTokenProjectPermission, ProjectPermissionSet } from "./project-permission"; +const buildOrgPermissionRules = (orgUserRoles: TBuildOrgPermissionDTO) => { + const rules = orgUserRoles + .map(({ role, permissions }) => { + switch (role) { + case OrgMembershipRole.Admin: + return orgAdminPermissions; + case OrgMembershipRole.Member: + return orgMemberPermissions; + case OrgMembershipRole.NoAccess: + return orgNoAccessPermissions; + case OrgMembershipRole.Custom: + return unpackRules>>( + permissions as PackRule>>[] + ); + default: + throw new NotFoundError({ name: "OrgRoleInvalid", message: `Organization role '${role}' not found` }); + } + }) + .reduce((prev, curr) => prev.concat(curr), []); + + return rules; +}; + +const buildProjectPermissionRules = (projectUserRoles: TBuildProjectPermissionDTO) => { + const rules = projectUserRoles + .map(({ role, permissions }) => { + switch (role) { + case ProjectMembershipRole.Admin: + return projectAdminPermissions; + case ProjectMembershipRole.Member: + return projectMemberPermissions; + case ProjectMembershipRole.Viewer: + return projectViewerPermission; + case ProjectMembershipRole.NoAccess: + return projectNoAccessPermissions; + case ProjectMembershipRole.SshHostBootstrapper: + return sshHostBootstrapPermissions; + case ProjectMembershipRole.KmsCryptographicOperator: + return cryptographicOperatorPermissions; + case ProjectMembershipRole.Custom: { + return unpackRules>>( + permissions as PackRule>>[] + ); + } + default: + throw new NotFoundError({ + name: "ProjectRoleInvalid", + message: `Project role '${role}' not found` + }); + } + }) + .reduce((prev, curr) => prev.concat(curr), []); + + return rules; +}; + type TPermissionServiceFactoryDep = { - orgRoleDAL: Pick; - projectRoleDAL: Pick; serviceTokenDAL: Pick; projectDAL: Pick; permissionDAL: TPermissionDALFactory; keyStore: TKeyStoreFactory; + userDAL: Pick; + identityDAL: Pick; + roleDAL: Pick; }; export const permissionServiceFactory = ({ permissionDAL, - orgRoleDAL, - projectRoleDAL, serviceTokenDAL, projectDAL, - keyStore + userDAL, + identityDAL, + keyStore, + roleDAL }: TPermissionServiceFactoryDep): TPermissionServiceFactory => { - const buildOrgPermission = (orgUserRoles: TBuildOrgPermissionDTO) => { - const rules = orgUserRoles - .map(({ role, permissions }) => { - switch (role) { - case OrgMembershipRole.Admin: - return orgAdminPermissions; - case OrgMembershipRole.Member: - return orgMemberPermissions; - case OrgMembershipRole.NoAccess: - return orgNoAccessPermissions; - case OrgMembershipRole.Custom: - return unpackRules>>( - permissions as PackRule>>[] - ); - default: - throw new NotFoundError({ name: "OrgRoleInvalid", message: `Organization role '${role}' not found` }); - } - }) - .reduce((prev, curr) => prev.concat(curr), []); - - return createMongoAbility(rules, { - conditionsMatcher - }); - }; - const invalidateProjectPermissionCache = async (projectId: string, tx?: Knex) => { const projectPermissionDalVersionKey = KeyStorePrefixes.ProjectPermissionDalVersion(projectId); await keyStore.pgIncrementBy(projectPermissionDalVersionKey, { @@ -97,147 +125,59 @@ export const permissionServiceFactory = ({ }); }; - const calculateProjectPermissionTtl = (membership: unknown): number => { - const now = new Date(); - let minTtl = KeyStoreTtls.ProjectPermissionCacheInSeconds; - - const getMinEndTime = (items: Array<{ temporaryAccessEndTime?: Date | null; isTemporary?: boolean }>) => { - return items - .filter((item) => item.isTemporary && item.temporaryAccessEndTime) - .map((item) => item.temporaryAccessEndTime!) - .filter((endTime) => endTime > now) - .reduce((min, endTime) => (!min || endTime < min ? endTime : min), null as Date | null); - }; - - const roleTimes: Date[] = []; - const additionalPrivilegeTimes: Date[] = []; - - if ( - membership && - typeof membership === "object" && - "roles" in membership && - Array.isArray((membership as Record).roles) - ) { - const roles = (membership as Record).roles as Array<{ - temporaryAccessEndTime?: Date | null; - isTemporary?: boolean; - }>; - const minRoleEndTime = getMinEndTime(roles); - if (minRoleEndTime) roleTimes.push(minRoleEndTime); - } - - if ( - membership && - typeof membership === "object" && - "additionalPrivileges" in membership && - Array.isArray((membership as Record).additionalPrivileges) - ) { - const additionalPrivileges = (membership as Record).additionalPrivileges as Array<{ - temporaryAccessEndTime?: Date | null; - isTemporary?: boolean; - }>; - const minAdditionalEndTime = getMinEndTime(additionalPrivileges); - if (minAdditionalEndTime) additionalPrivilegeTimes.push(minAdditionalEndTime); - } - - const allEndTimes = [...roleTimes, ...additionalPrivilegeTimes]; - if (allEndTimes.length > 0) { - const nearestEndTime = allEndTimes.reduce((min, endTime) => (!min || endTime < min ? endTime : min)); - const timeUntilExpiry = Math.floor((nearestEndTime.getTime() - now.getTime()) / 1000); - minTtl = Math.min(minTtl, Math.max(1, timeUntilExpiry)); - } - - return minTtl; - }; - - const buildProjectPermissionRules = (projectUserRoles: TBuildProjectPermissionDTO) => { - const rules = projectUserRoles - .map(({ role, permissions }) => { - switch (role) { - case ProjectMembershipRole.Admin: - return projectAdminPermissions; - case ProjectMembershipRole.Member: - return projectMemberPermissions; - case ProjectMembershipRole.Viewer: - return projectViewerPermission; - case ProjectMembershipRole.NoAccess: - return projectNoAccessPermissions; - case ProjectMembershipRole.SshHostBootstrapper: - return sshHostBootstrapPermissions; - case ProjectMembershipRole.KmsCryptographicOperator: - return cryptographicOperatorPermissions; - case ProjectMembershipRole.Custom: { - return unpackRules>>( - permissions as PackRule>>[] - ); - } - default: - throw new NotFoundError({ - name: "ProjectRoleInvalid", - message: `Project role '${role}' not found` - }); - } - }) - .reduce((prev, curr) => prev.concat(curr), []); - - return rules; - }; - - /* - * Get user permission in an organization - */ - const getUserOrgPermission: TPermissionServiceFactory["getUserOrgPermission"] = async ( - userId, - orgId, - authMethod, - userOrgId - ) => { - // when token is scoped, ensure the passed org id is same as user org id - if (userOrgId && userOrgId !== orgId) - throw new ForbiddenRequestError({ message: "Invalid user token. Scoped to different organization." }); - const membership = await permissionDAL.getOrgPermission(userId, orgId); - if (!membership) throw new ForbiddenRequestError({ name: "You are not apart of this organization" }); - if (membership.role === OrgMembershipRole.Custom && !membership.permissions) { - throw new BadRequestError({ name: "Custom organization permission not found" }); - } - - // If the org ID is API_KEY, the request is being made with an API Key. - // Since we can't scope API keys to an organization, we'll need to do an arbitrary check to see if the user is a member of the organization. - - // Extra: This means that when users are using API keys to make requests, they can't use slug-based routes. - // Slug-based routes depend on the organization ID being present on the request, since project slugs aren't globally unique, and we need a way to filter by organization. - if (userOrgId !== "API_KEY" && membership.orgId !== userOrgId) { - throw new ForbiddenRequestError({ name: "You are not logged into this organization" }); - } - - validateOrgSSO( - authMethod, - membership.orgAuthEnforced, - membership.orgGoogleSsoAuthEnforced, - membership.bypassOrgAuthEnabled, - membership.role as OrgMembershipRole - ); - - const finalPolicyRoles = [{ role: membership.role, permissions: membership.permissions }].concat( - membership?.groups?.map(({ role, customRolePermission }) => ({ - role, - permissions: customRolePermission - })) || [] - ); - return { permission: buildOrgPermission(finalPolicyRoles), membership }; - }; - - const getIdentityOrgPermission = async (identityId: string, orgId: string) => { - const membership = await permissionDAL.getOrgIdentityPermission(identityId, orgId); - if (!membership) throw new ForbiddenRequestError({ name: "Identity is not apart of this organization" }); - if (membership.role === OrgMembershipRole.Custom && !membership.permissions) { - throw new NotFoundError({ name: `Custom organization permission not found for identity ${identityId}` }); - } - return { - permission: buildOrgPermission([{ role: membership.role, permissions: membership.permissions }]), - membership - }; - }; + // akhilmdhh: will bring this up later + // const calculateProjectPermissionTtl = (membership: unknown): number => { + // const now = new Date(); + // let minTtl = KeyStoreTtls.ProjectPermissionCacheInSeconds; + // + // const getMinEndTime = (items: Array<{ temporaryAccessEndTime?: Date | null; isTemporary?: boolean }>) => { + // return items + // .filter((item) => item.isTemporary && item.temporaryAccessEndTime) + // .map((item) => item.temporaryAccessEndTime!) + // .filter((endTime) => endTime > now) + // .reduce((min, endTime) => (!min || endTime < min ? endTime : min), null as Date | null); + // }; + // + // const roleTimes: Date[] = []; + // const additionalPrivilegeTimes: Date[] = []; + // + // if ( + // membership && + // typeof membership === "object" && + // "roles" in membership && + // Array.isArray((membership as Record).roles) + // ) { + // const roles = (membership as Record).roles as Array<{ + // temporaryAccessEndTime?: Date | null; + // isTemporary?: boolean; + // }>; + // const minRoleEndTime = getMinEndTime(roles); + // if (minRoleEndTime) roleTimes.push(minRoleEndTime); + // } + // + // if ( + // membership && + // typeof membership === "object" && + // "additionalPrivileges" in membership && + // Array.isArray((membership as Record).additionalPrivileges) + // ) { + // const additionalPrivileges = (membership as Record).additionalPrivileges as Array<{ + // temporaryAccessEndTime?: Date | null; + // isTemporary?: boolean; + // }>; + // const minAdditionalEndTime = getMinEndTime(additionalPrivileges); + // if (minAdditionalEndTime) additionalPrivilegeTimes.push(minAdditionalEndTime); + // } + // + // const allEndTimes = [...roleTimes, ...additionalPrivilegeTimes]; + // if (allEndTimes.length > 0) { + // const nearestEndTime = allEndTimes.reduce((min, endTime) => (!min || endTime < min ? endTime : min)); + // const timeUntilExpiry = Math.floor((nearestEndTime.getTime() - now.getTime()) / 1000); + // minTtl = Math.min(minTtl, Math.max(1, timeUntilExpiry)); + // } + // + // return minTtl; + // }; const getOrgPermission: TPermissionServiceFactory["getOrgPermission"] = async ( type, @@ -246,199 +186,62 @@ export const permissionServiceFactory = ({ authMethod, actorOrgId ) => { - switch (type) { - case ActorType.USER: - return getUserOrgPermission(id, orgId, authMethod, actorOrgId); - case ActorType.IDENTITY: - return getIdentityOrgPermission(id, orgId); - default: - throw new BadRequestError({ - message: "Invalid actor provided", - name: "Get org permission" - }); - } - }; - - // instead of actor type this will fetch by role slug. meaning it can be the pre defined slugs like - // admin member or user defined ones like biller etc - const getOrgPermissionByRole: TPermissionServiceFactory["getOrgPermissionByRole"] = async (role, orgId) => { - const isCustomRole = !Object.values(OrgMembershipRole).includes(role as OrgMembershipRole); - if (isCustomRole) { - const orgRole = await orgRoleDAL.findOne({ slug: role, orgId }); - if (!orgRole) - throw new NotFoundError({ - message: `Specified role '${role}' was not found in the organization with ID '${orgId}'` - }); - return { - permission: buildOrgPermission([{ role: OrgMembershipRole.Custom, permissions: orgRole.permissions }]), - role: orgRole - }; - } - return { permission: buildOrgPermission([{ role, permissions: [] }]) }; - }; - - // user permission for a project in an organization - const getUserProjectPermission = async ({ - userId, - projectId, - authMethod, - userOrgId, - actionProjectType - }: TGetUserProjectPermissionArg): Promise> => { - const userProjectPermission = await permissionDAL.getProjectPermission(userId, projectId); - if (!userProjectPermission) throw new ForbiddenRequestError({ name: "User not a part of the specified project" }); - - if ( - userProjectPermission.roles.some(({ role, permissions }) => role === ProjectMembershipRole.Custom && !permissions) - ) { - throw new NotFoundError({ name: "The permission was not found" }); + if (type !== ActorType.USER && type !== ActorType.IDENTITY) { + throw new BadRequestError({ + message: "Invalid actor provided", + name: "Get org permission" + }); } - // If the org ID is API_KEY, the request is being made with an API Key. - // Since we can't scope API keys to an organization, we'll need to do an arbitrary check to see if the user is a member of the organization. - - // Extra: This means that when users are using API keys to make requests, they can't use slug-based routes. - // Slug-based routes depend on the organization ID being present on the request, since project slugs aren't globally unique, and we need a way to filter by organization. - if (userOrgId !== "API_KEY" && userProjectPermission.orgId !== userOrgId) { + if (orgId !== actorOrgId) { throw new ForbiddenRequestError({ name: "You are not logged into this organization" }); } + const permissionData = await permissionDAL.getPermission({ + scopeData: { + scope: AccessScope.Organization, + orgId + }, + actorId: id, + actorType: type + }); + if (!permissionData?.length) throw new ForbiddenRequestError({ name: "You are not member of this organization" }); + + const permissionFromRoles = permissionData.flatMap((membership) => { + const activeRoles = membership?.roles + .filter( + ({ isTemporary, temporaryAccessEndTime }) => + !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) + ) + .map(({ role, permissions }) => ({ role, permissions })); + const activeAdditionalPrivileges = membership?.additionalPrivileges + .filter( + ({ isTemporary, temporaryAccessEndTime }) => + !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) + ) + .map(({ permissions }) => ({ role: OrgMembershipRole.Custom, permissions })); + return activeRoles.concat(activeAdditionalPrivileges); + }); + + const hasRole = (role: string) => + permissionData.some((memberships) => memberships.roles.some((el) => role === (el.customRoleSlug || el.role))); + validateOrgSSO( authMethod, - userProjectPermission.orgAuthEnforced, - userProjectPermission.orgGoogleSsoAuthEnforced, - userProjectPermission.bypassOrgAuthEnabled, - userProjectPermission.orgRole + permissionData?.[0].orgAuthEnforced, + Boolean(permissionData?.[0].orgGoogleSsoAuthEnforced), + Boolean(permissionData?.[0].bypassOrgAuthEnabled), + hasRole(OrgMembershipRole.Admin) ); - if (actionProjectType !== ActionProjectType.Any && actionProjectType !== userProjectPermission.projectType) { - throw new BadRequestError({ - message: `The project is of type ${userProjectPermission.projectType}. Operations of type ${actionProjectType} are not allowed.` - }); - } - - // join two permissions and pass to build the final permission set - const rolePermissions = userProjectPermission.roles?.map(({ role, permissions }) => ({ role, permissions })) || []; - const additionalPrivileges = - userProjectPermission.additionalPrivileges?.map(({ permissions }) => ({ - role: ProjectMembershipRole.Custom, - permissions - })) || []; - - const rules = buildProjectPermissionRules(rolePermissions.concat(additionalPrivileges)); - const templatedRules = handlebars.compile(JSON.stringify(rules), { data: false }); - const unescapedMetadata = objectify( - userProjectPermission.metadata, - (i) => i.key, - (i) => i.value - ); - const metadataKeyValuePair = escapeHandlebarsMissingDict(unescapedMetadata, "identity.metadata"); - requestContext.set("identityPermissionMetadata", { metadata: unescapedMetadata }); - const interpolateRules = templatedRules( - { - identity: { - id: userProjectPermission.userId, - username: userProjectPermission.username, - metadata: metadataKeyValuePair - } - }, - { data: false } - ); - const permission = createMongoAbility( - JSON.parse(interpolateRules) as RawRuleOf>[], - { - conditionsMatcher - } - ); + const permission = createMongoAbility(buildOrgPermissionRules(permissionFromRoles), { + conditionsMatcher + }); return { permission, - membership: userProjectPermission, - hasRole: (role: string) => - userProjectPermission.roles.findIndex( - ({ role: slug, customRoleSlug }) => role === slug || slug === customRoleSlug - ) !== -1 - }; - }; - - const getIdentityProjectPermission = async ({ - identityId, - projectId, - identityOrgId, - actionProjectType - }: TGetIdentityProjectPermissionArg): Promise> => { - const identityProjectPermission = await permissionDAL.getProjectIdentityPermission(identityId, projectId); - if (!identityProjectPermission) - throw new ForbiddenRequestError({ - name: `Identity is not a member of the specified project with ID '${projectId}'` - }); - - if ( - identityProjectPermission.roles.some( - ({ role, permissions }) => role === ProjectMembershipRole.Custom && !permissions - ) - ) { - throw new NotFoundError({ name: "Custom permission not found" }); - } - - if (identityProjectPermission.orgId !== identityOrgId) { - throw new ForbiddenRequestError({ name: "Identity is not a member of the specified organization" }); - } - - if (actionProjectType !== ActionProjectType.Any && actionProjectType !== identityProjectPermission.projectType) { - throw new BadRequestError({ - message: `The project is of type ${identityProjectPermission.projectType}. Operations of type ${actionProjectType} are not allowed.` - }); - } - - const rolePermissions = - identityProjectPermission.roles?.map(({ role, permissions }) => ({ role, permissions })) || []; - const additionalPrivileges = - identityProjectPermission.additionalPrivileges?.map(({ permissions }) => ({ - role: ProjectMembershipRole.Custom, - permissions - })) || []; - - const rules = buildProjectPermissionRules(rolePermissions.concat(additionalPrivileges)); - const templatedRules = handlebars.compile(JSON.stringify(rules), { data: false }); - const unescapedIdentityAuthInfo = requestContext.get("identityAuthInfo"); - const unescapedMetadata = objectify( - identityProjectPermission.metadata, - (i) => i.key, - (i) => i.value - ); - const identityAuthInfo = - unescapedIdentityAuthInfo?.identityId === identityId && unescapedIdentityAuthInfo - ? escapeHandlebarsMissingDict(unescapedIdentityAuthInfo as never, "identity.auth") - : {}; - const metadataKeyValuePair = escapeHandlebarsMissingDict(unescapedMetadata, "identity.metadata"); - - requestContext.set("identityPermissionMetadata", { metadata: unescapedMetadata, auth: unescapedIdentityAuthInfo }); - const interpolateRules = templatedRules( - { - identity: { - id: identityProjectPermission.identityId, - username: identityProjectPermission.username, - metadata: metadataKeyValuePair, - auth: identityAuthInfo - } - }, - { data: false } - ); - const permission = createMongoAbility( - JSON.parse(interpolateRules) as RawRuleOf>[], - { - conditionsMatcher - } - ); - - return { - permission, - membership: identityProjectPermission, - hasRole: (role: string) => - identityProjectPermission.roles.findIndex( - ({ role: slug, customRoleSlug }) => role === slug || slug === customRoleSlug - ) !== -1 + memberships: permissionData, + hasRole }; }; @@ -455,10 +258,6 @@ export const permissionServiceFactory = ({ if (!serviceTokenProject) throw new BadRequestError({ message: "Service token not linked to a project" }); - if (serviceTokenProject.orgId !== actorOrgId) { - throw new ForbiddenRequestError({ message: "Service token not a part of the specified organization" }); - } - if (serviceToken.projectId !== projectId) { throw new ForbiddenRequestError({ name: `Service token not a part of the specified project with ID ${projectId}` @@ -480,34 +279,156 @@ export const permissionServiceFactory = ({ const scopes = ServiceTokenScopes.parse(serviceToken.scopes || []); return { permission: buildServiceTokenProjectPermission(scopes, serviceToken.permissions), - membership: { - shouldUseNewPrivilegeSystem: true - } + memberships: [], + hasRole: () => false }; }; - type TProjectPermissionRT = T extends ActorType.SERVICE - ? { - permission: MongoAbility; - membership: { - shouldUseNewPrivilegeSystem: boolean; - }; - hasRole: (arg: string) => boolean; - } // service token doesn't have both membership and roles - : { - permission: MongoAbility; - membership: (T extends ActorType.USER ? TProjectMemberships : TIdentityProjectMemberships) & { - orgAuthEnforced: boolean | null | undefined; - orgId: string; - roles: Array<{ role: string }>; - shouldUseNewPrivilegeSystem: boolean; - }; - hasRole: (role: string) => boolean; - }; + const getProjectPermission: TPermissionServiceFactory["getProjectPermission"] = async ({ + actor: inputActor, + actorId: inputActorId, + projectId, + actorAuthMethod, + actorOrgId, + actionProjectType + }) => { + let actor = inputActor; + let actorId = inputActorId; - const getProjectPermissions: TPermissionServiceFactory["getProjectPermissions"] = async (projectId) => { + if (actor === ActorType.SERVICE) { + return getServiceTokenProjectPermission({ + serviceTokenId: actorId, + projectId, + actorOrgId, + actionProjectType + }); + } + + const assumedPrivilegeDetailsCtx = requestContext.get("assumedPrivilegeDetails"); + if ( + assumedPrivilegeDetailsCtx && + actor === ActorType.USER && + actorId === assumedPrivilegeDetailsCtx.requesterId && + projectId === assumedPrivilegeDetailsCtx.projectId + ) { + actor = assumedPrivilegeDetailsCtx.actorType; + actorId = assumedPrivilegeDetailsCtx.actorId; + } + + if (ActorType.USER !== actor && ActorType.IDENTITY !== actor) { + throw new BadRequestError({ + message: "Invalid actor provided", + name: "Get org permission" + }); + } + + const projectDetails = await projectDAL.findById(projectId); + if (!projectDetails) { + throw new NotFoundError({ message: `Project with ${projectId} not found` }); + } + + if (projectDetails.orgId !== actorOrgId) { + throw new ForbiddenRequestError({ name: "You are not logged into this organization" }); + } + + if (actionProjectType !== ActionProjectType.Any && actionProjectType !== projectDetails.type) { + throw new BadRequestError({ + message: `The project is of type ${projectDetails.type}. Operations of type ${actionProjectType} are not allowed.` + }); + } + + const permissionData = await permissionDAL.getPermission({ + scopeData: { + scope: AccessScope.Project, + orgId: projectDetails.orgId, + projectId + }, + actorId, + actorType: actor + }); + if (!permissionData?.length) throw new ForbiddenRequestError({ name: "You are not member of this organization" }); + + const permissionFromRoles = permissionData.flatMap((membership) => { + const activeRoles = membership?.roles + .filter( + ({ isTemporary, temporaryAccessEndTime }) => + !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) + ) + .map(({ role, permissions }) => ({ role, permissions })); + const activeAdditionalPrivileges = membership?.additionalPrivileges + .filter( + ({ isTemporary, temporaryAccessEndTime }) => + !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) + ) + .map(({ permissions }) => ({ role: ProjectMembershipRole.Custom, permissions })); + return activeRoles.concat(activeAdditionalPrivileges); + }); + + const hasRole = (role: string) => + permissionData.some((memberships) => memberships.roles.some((el) => role === (el.customRoleSlug || el.role))); + + validateOrgSSO( + actorAuthMethod, + permissionData?.[0].orgAuthEnforced, + Boolean(permissionData?.[0].orgGoogleSsoAuthEnforced), + Boolean(permissionData?.[0].bypassOrgAuthEnabled), + hasRole(ProjectMembershipRole.Admin) + ); + + const rules = buildProjectPermissionRules(permissionFromRoles); + const templatedRules = handlebars.compile(JSON.stringify(rules), { data: false }); + const unescapedMetadata = objectify( + permissionData?.[0]?.metadata, + (i) => i.key, + (i) => i.value + ); + const metadataKeyValuePair = escapeHandlebarsMissingDict(unescapedMetadata, "identity.metadata"); + requestContext.set("identityPermissionMetadata", { metadata: unescapedMetadata }); + + let username = ""; + if (actor === ActorType.USER) { + const userDetails = await userDAL.findById(actorId); + username = userDetails?.username; + } else { + const identityDetails = await identityDAL.findById(actorId); + username = identityDetails?.name; + } + + const unescapedIdentityAuthInfo = requestContext.get("identityAuthInfo"); + const identityAuthInfo = + unescapedIdentityAuthInfo?.identityId === actorId && unescapedIdentityAuthInfo + ? escapeHandlebarsMissingDict(unescapedIdentityAuthInfo as never, "identity.auth") + : {}; + + const interpolateRules = templatedRules( + { + identity: { + id: actorId, + username, + metadata: metadataKeyValuePair, + auth: identityAuthInfo + } + }, + { data: false } + ); + + const permission = createMongoAbility( + JSON.parse(interpolateRules) as RawRuleOf>[], + { + conditionsMatcher + } + ); + + return { + permission, + memberships: permissionData, + hasRole + }; + }; + + const getProjectPermissions: TPermissionServiceFactory["getProjectPermissions"] = async (projectId, orgId) => { // fetch user permissions - const rawUserProjectPermissions = await permissionDAL.getProjectUserPermissions(projectId); + const rawUserProjectPermissions = await permissionDAL.getProjectUserPermissions(projectId, orgId); const userPermissions = rawUserProjectPermissions.map((userProjectPermission) => { const rolePermissions = userProjectPermission.roles?.map(({ role, permissions }) => ({ role, permissions })) || []; @@ -547,13 +468,12 @@ export const permissionServiceFactory = ({ return { permission, id: userProjectPermission.userId, - name: userProjectPermission.username, - membershipId: userProjectPermission.id + name: userProjectPermission.username }; }); // fetch identity permissions - const rawIdentityProjectPermissions = await permissionDAL.getProjectIdentityPermissions(projectId); + const rawIdentityProjectPermissions = await permissionDAL.getProjectIdentityPermissions(projectId, orgId); const identityPermissions = rawIdentityProjectPermissions.map((identityProjectPermission) => { const rolePermissions = identityProjectPermission.roles?.map(({ role, permissions }) => ({ role, permissions })) || []; @@ -593,8 +513,7 @@ export const permissionServiceFactory = ({ return { permission, id: identityProjectPermission.identityId, - name: identityProjectPermission.username, - membershipId: identityProjectPermission.id + name: identityProjectPermission.username }; }); @@ -611,8 +530,7 @@ export const permissionServiceFactory = ({ return { permission, id: groupProjectPermission.groupId, - name: groupProjectPermission.username, - membershipId: groupProjectPermission.id + name: groupProjectPermission.username }; }); @@ -623,141 +541,105 @@ export const permissionServiceFactory = ({ }; }; - const getProjectPermission = async ({ - actor: inputActor, - actorId: inputActorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType - }: TGetProjectPermissionArg): Promise> => { - let actor = inputActor; - let actorId = inputActorId; - const assumedPrivilegeDetailsCtx = requestContext.get("assumedPrivilegeDetails"); - if ( - assumedPrivilegeDetailsCtx && - actor === ActorType.USER && - actorId === assumedPrivilegeDetailsCtx.requesterId && - projectId === assumedPrivilegeDetailsCtx.projectId - ) { - actor = assumedPrivilegeDetailsCtx.actorType; - actorId = assumedPrivilegeDetailsCtx.actorId; + // instead of actor type this will fetch by role slug. meaning it can be the pre defined slugs like + // admin member or user defined ones like biller etc + const getOrgPermissionByRoles: TPermissionServiceFactory["getOrgPermissionByRoles"] = async (roles, orgId) => { + const formattedRoles = roles.map((role) => ({ + name: role, + isCustom: !Object.values(OrgMembershipRole).includes(role as OrgMembershipRole) + })); + + const customRoles = formattedRoles.filter((el) => el.isCustom).map((el) => el.name); + const customRoleDetails = customRoles.length + ? await roleDAL.find({ + orgId, + $in: { + slug: customRoles + } + }) + : []; + if (customRoles.length !== customRoleDetails.length) { + const missingRoles = customRoles.filter((role) => !customRoleDetails.find((el) => el.slug === role)); + throw new NotFoundError({ + message: `Specified roles '${missingRoles.join(",")}' was not found in the organization with ID '${orgId}'` + }); } - if (actor === ActorType.SERVICE) { - return getServiceTokenProjectPermission({ - serviceTokenId: actorId, - projectId, - actorOrgId, - actionProjectType - }) as Promise>; - } - - const cachedProjectPermissionVersion = await keyStore.pgGetIntItem( - KeyStorePrefixes.ProjectPermissionDalVersion(projectId) - ); - const projectPermissionVersion = Number(cachedProjectPermissionVersion || 0); - const cacheKey = KeyStorePrefixes.ProjectPermission( - projectId, - projectPermissionVersion, - actor, - actorId, - actionProjectType || ActionProjectType.Any - ); - - try { - const cachedData = await keyStore.getItem(cacheKey); - if (cachedData) { - const parsed = JSON.parse(cachedData) as { - rules: RawRuleOf>[]; - membership: { - roles?: Array<{ role: string; customRoleSlug?: string }>; - [key: string]: unknown; - }; - }; - const permission = createMongoAbility(parsed.rules, { - conditionsMatcher - }); - + return formattedRoles.map((el) => { + if (el.isCustom) { + const roleDetails = customRoleDetails.find((role) => role.slug === el.name); return { - permission, - membership: parsed.membership, - hasRole: (role: string) => - parsed.membership.roles?.findIndex( - ({ role: slug, customRoleSlug }) => role === slug || slug === customRoleSlug - ) !== -1 - } as TProjectPermissionRT; + permission: createMongoAbility( + buildOrgPermissionRules([{ role: OrgMembershipRole.Custom, permissions: roleDetails?.permissions || [] }]), + { + conditionsMatcher + } + ), + role: roleDetails! + }; } - } catch (error) { - logger.error(error, "Failed to get project permission"); - } - let result: TProjectPermissionRT; - - switch (actor) { - case ActorType.USER: - result = (await getUserProjectPermission({ - userId: actorId, - projectId, - authMethod: actorAuthMethod, - userOrgId: actorOrgId, - actionProjectType - })) as TProjectPermissionRT; - break; - case ActorType.IDENTITY: - result = (await getIdentityProjectPermission({ - identityId: actorId, - projectId, - identityOrgId: actorOrgId, - actionProjectType - })) as TProjectPermissionRT; - break; - default: - throw new BadRequestError({ - message: "Invalid actor provided", - name: "Get project permission" - }); - } - - try { - const cacheData = { - rules: result.permission.rules, - membership: result.membership + return { + permission: createMongoAbility( + buildOrgPermissionRules([{ role: el.name, permissions: [] }]), + { + conditionsMatcher + } + ) }; - - const ttl = calculateProjectPermissionTtl(result.membership); - await keyStore.setItemWithExpiry(cacheKey, ttl, JSON.stringify(cacheData)); - } catch (error) { - logger.error(error, "Failed to cache project permission"); - } - - return result; + }); }; - const getProjectPermissionByRole: TPermissionServiceFactory["getProjectPermissionByRole"] = async ( - role, + const getProjectPermissionByRoles: TPermissionServiceFactory["getProjectPermissionByRoles"] = async ( + roles, projectId ) => { - const isCustomRole = !Object.values(ProjectMembershipRole).includes(role as ProjectMembershipRole); - if (isCustomRole) { - const projectRole = await projectRoleDAL.findOne({ slug: role, projectId }); - if (!projectRole) throw new NotFoundError({ message: `Specified role was not found: ${role}` }); - const rules = buildProjectPermissionRules([ - { role: ProjectMembershipRole.Custom, permissions: projectRole.permissions } - ]); - return { - permission: createMongoAbility(rules, { - conditionsMatcher - }), - role: projectRole - }; + const formattedRoles = roles.map((role) => ({ + name: role, + isCustom: !Object.values(ProjectMembershipRole).includes(role as ProjectMembershipRole) + })); + + const customRoles = formattedRoles.filter((el) => el.isCustom).map((el) => el.name); + const customRoleDetails = customRoles.length + ? await roleDAL.find({ + projectId, + $in: { + slug: customRoles + } + }) + : []; + if (customRoles.length !== customRoleDetails.length) { + const missingRoles = customRoles.filter((role) => !customRoleDetails.find((el) => el.slug === role)); + throw new NotFoundError({ + message: `Specified roles '${missingRoles.join(",")}' was not found in the project with ID '${projectId}'` + }); } - const rules = buildProjectPermissionRules([{ role, permissions: [] }]); - const permission = createMongoAbility(rules, { - conditionsMatcher + return formattedRoles.map((el) => { + if (el.isCustom) { + const roleDetails = customRoleDetails.find((role) => role.slug === el.name); + return { + permission: createMongoAbility( + buildProjectPermissionRules([ + { role: ProjectMembershipRole.Custom, permissions: roleDetails?.permissions || [] } + ]), + { + conditionsMatcher + } + ), + role: roleDetails! + }; + } + + return { + permission: createMongoAbility( + buildProjectPermissionRules([{ role: el.name, permissions: [] }]), + { + conditionsMatcher + } + ) + }; }); - return { permission }; }; const checkGroupProjectPermission: TPermissionServiceFactory["checkGroupProjectPermission"] = async ({ @@ -785,15 +667,11 @@ export const permissionServiceFactory = ({ }; return { - getUserOrgPermission, getOrgPermission, - getUserProjectPermission, getProjectPermission, getProjectPermissions, - getOrgPermissionByRole, - getProjectPermissionByRole, - buildOrgPermission, - buildProjectPermissionRules, + getOrgPermissionByRoles, + getProjectPermissionByRoles, checkGroupProjectPermission, invalidateProjectPermissionCache }; diff --git a/backend/src/ee/services/permission/project-permission.ts b/backend/src/ee/services/permission/project-permission.ts index 4c7f1faac6..d2c5b30dbd 100644 --- a/backend/src/ee/services/permission/project-permission.ts +++ b/backend/src/ee/services/permission/project-permission.ts @@ -1,6 +1,7 @@ import { AbilityBuilder, createMongoAbility, ForcedSubject, MongoAbility } from "@casl/ability"; import { z } from "zod"; +import { ProjectMembershipRole } from "@app/db/schemas"; import { CASL_ACTION_SCHEMA_ENUM, CASL_ACTION_SCHEMA_NATIVE_ENUM @@ -199,6 +200,9 @@ export enum ProjectPermissionPamSessionActions { // Terminate = "terminate" } +export const isCustomProjectRole = (slug: string) => + !Object.values(ProjectMembershipRole).includes(slug as ProjectMembershipRole); + export enum ProjectPermissionSub { Role = "role", Member = "member", diff --git a/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal.ts b/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal.ts deleted file mode 100644 index 6a3be26310..0000000000 --- a/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify, TOrmify } from "@app/lib/knex"; - -export type TProjectUserAdditionalPrivilegeDALFactory = TOrmify; - -export const projectUserAdditionalPrivilegeDALFactory = (db: TDbClient): TProjectUserAdditionalPrivilegeDALFactory => { - const orm = ormify(db, TableName.ProjectUserAdditionalPrivilege); - return orm; -}; diff --git a/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-service.ts b/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-service.ts deleted file mode 100644 index c2876572f1..0000000000 --- a/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-service.ts +++ /dev/null @@ -1,388 +0,0 @@ -import { ForbiddenError, MongoAbility, RawRuleOf } from "@casl/ability"; -import { PackRule, packRules, unpackRules } from "@casl/ability/extra"; - -import { ActionProjectType, TableName } from "@app/db/schemas"; -import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; -import { ms } from "@app/lib/ms"; -import { validateHandlebarTemplate } from "@app/lib/template/validate-handlebars"; -import { UnpackedPermissionSchema } from "@app/server/routes/sanitizedSchema/permission"; -import { ActorType } from "@app/services/auth/auth-type"; -import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; - -import { TAccessApprovalRequestDALFactory } from "../access-approval-request/access-approval-request-dal"; -import { constructPermissionErrorMessage, validatePrivilegeChangeOperation } from "../permission/permission-fns"; -import { TPermissionServiceFactory } from "../permission/permission-service-types"; -import { - ProjectPermissionMemberActions, - ProjectPermissionSet, - ProjectPermissionSub -} from "../permission/project-permission"; -import { ApprovalStatus } from "../secret-approval-request/secret-approval-request-types"; -import { TProjectUserAdditionalPrivilegeDALFactory } from "./project-user-additional-privilege-dal"; -import { - ProjectUserAdditionalPrivilegeTemporaryMode, - TProjectUserAdditionalPrivilegeServiceFactory -} from "./project-user-additional-privilege-types"; - -type TProjectUserAdditionalPrivilegeServiceFactoryDep = { - projectUserAdditionalPrivilegeDAL: TProjectUserAdditionalPrivilegeDALFactory; - projectMembershipDAL: Pick; - permissionService: Pick; - accessApprovalRequestDAL: Pick; -}; - -const unpackPermissions = (permissions: unknown) => - UnpackedPermissionSchema.array().parse( - unpackRules((permissions || []) as PackRule>>[]) - ); - -export const projectUserAdditionalPrivilegeServiceFactory = ({ - projectUserAdditionalPrivilegeDAL, - projectMembershipDAL, - permissionService, - accessApprovalRequestDAL -}: TProjectUserAdditionalPrivilegeServiceFactoryDep): TProjectUserAdditionalPrivilegeServiceFactory => { - const create: TProjectUserAdditionalPrivilegeServiceFactory["create"] = async ({ - slug, - actor, - actorId, - permissions: customPermission, - actorOrgId, - actorAuthMethod, - projectMembershipId, - ...dto - }) => { - const projectMembership = await projectMembershipDAL.findById(projectMembershipId); - if (!projectMembership) - throw new NotFoundError({ message: `Project membership with ID ${projectMembershipId} found` }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: projectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member); - const { permission: targetUserPermission, membership } = await permissionService.getProjectPermission({ - actor: ActorType.USER, - actorId: projectMembership.userId, - projectId: projectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - // we need to validate that the privilege given is not higher than the assigning users permission - // @ts-expect-error this is expected error because of one being really accurate rule definition other being a bit more broader. Both are valid casl rules - targetUserPermission.update(targetUserPermission.rules.concat(customPermission)); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member, - permission, - targetUserPermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to update more privileged user", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - - const existingSlug = await projectUserAdditionalPrivilegeDAL.findOne({ - slug, - projectId: projectMembership.projectId, - userId: projectMembership.userId - }); - if (existingSlug) - throw new BadRequestError({ message: `Additional privilege with provided slug ${slug} already exists` }); - - validateHandlebarTemplate("User Additional Privilege Create", JSON.stringify(customPermission || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - - const packedPermission = JSON.stringify(packRules(customPermission)); - if (!dto.isTemporary) { - const additionalPrivilege = await projectUserAdditionalPrivilegeDAL.create({ - userId: projectMembership.userId, - projectId: projectMembership.projectId, - slug, - permissions: packedPermission - }); - - await permissionService.invalidateProjectPermissionCache(projectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - } - - const relativeTempAllocatedTimeInMs = ms(dto.temporaryRange); - const additionalPrivilege = await projectUserAdditionalPrivilegeDAL.create({ - projectId: projectMembership.projectId, - userId: projectMembership.userId, - slug, - permissions: packedPermission, - isTemporary: true, - temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative, - temporaryRange: dto.temporaryRange, - temporaryAccessStartTime: new Date(dto.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(dto.temporaryAccessStartTime).getTime() + relativeTempAllocatedTimeInMs) - }); - - await permissionService.invalidateProjectPermissionCache(projectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - }; - - const updateById: TProjectUserAdditionalPrivilegeServiceFactory["updateById"] = async ({ - privilegeId, - actorOrgId, - actor, - actorId, - actorAuthMethod, - ...dto - }) => { - const userPrivilege = await projectUserAdditionalPrivilegeDAL.findById(privilegeId); - if (!userPrivilege) - throw new NotFoundError({ message: `User additional privilege with ID ${privilegeId} not found` }); - - const projectMembership = await projectMembershipDAL.findOne({ - userId: userPrivilege.userId, - projectId: userPrivilege.projectId - }); - - if (!projectMembership) - throw new NotFoundError({ - message: `Project membership for user with ID '${userPrivilege.userId}' not found in project with ID '${userPrivilege.projectId}'` - }); - - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: projectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member); - const { permission: targetUserPermission } = await permissionService.getProjectPermission({ - actor: ActorType.USER, - actorId: projectMembership.userId, - projectId: projectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - - // we need to validate that the privilege given is not higher than the assigning users permission - // @ts-expect-error this is expected error because of one being really accurate rule definition other being a bit more broader. Both are valid casl rules - targetUserPermission.update(targetUserPermission.rules.concat(dto.permissions || [])); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member, - permission, - targetUserPermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to update more privileged user", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - - if (dto?.slug) { - const existingSlug = await projectUserAdditionalPrivilegeDAL.findOne({ - slug: dto.slug, - userId: projectMembership.id, - projectId: projectMembership.projectId - }); - if (existingSlug && existingSlug.id !== userPrivilege.id) - throw new BadRequestError({ message: `Additional privilege with provided slug ${dto.slug} already exists` }); - } - - validateHandlebarTemplate("User Additional Privilege Update", JSON.stringify(dto.permissions || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - - const isTemporary = typeof dto?.isTemporary !== "undefined" ? dto.isTemporary : userPrivilege.isTemporary; - - const packedPermission = dto.permissions && JSON.stringify(packRules(dto.permissions)); - if (isTemporary) { - const temporaryAccessStartTime = dto?.temporaryAccessStartTime || userPrivilege?.temporaryAccessStartTime; - const temporaryRange = dto?.temporaryRange || userPrivilege?.temporaryRange; - const additionalPrivilege = await projectUserAdditionalPrivilegeDAL.updateById(userPrivilege.id, { - slug: dto.slug, - permissions: packedPermission, - isTemporary: dto.isTemporary, - temporaryRange: dto.temporaryRange, - temporaryMode: dto.temporaryMode, - temporaryAccessStartTime: new Date(temporaryAccessStartTime || ""), - temporaryAccessEndTime: new Date(new Date(temporaryAccessStartTime || "").getTime() + ms(temporaryRange || "")) - }); - - await permissionService.invalidateProjectPermissionCache(projectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - } - - const additionalPrivilege = await projectUserAdditionalPrivilegeDAL.updateById(userPrivilege.id, { - slug: dto.slug, - permissions: packedPermission, - isTemporary: false, - temporaryAccessStartTime: null, - temporaryAccessEndTime: null, - temporaryRange: null, - temporaryMode: null - }); - - await permissionService.invalidateProjectPermissionCache(projectMembership.projectId); - - return { - ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions) - }; - }; - - const deleteById: TProjectUserAdditionalPrivilegeServiceFactory["deleteById"] = async ({ - actorId, - actor, - actorOrgId, - actorAuthMethod, - privilegeId - }) => { - const userPrivilege = await projectUserAdditionalPrivilegeDAL.findById(privilegeId); - if (!userPrivilege) - throw new NotFoundError({ message: `User additional privilege with ID ${privilegeId} not found` }); - - const projectMembership = await projectMembershipDAL.findOne({ - userId: userPrivilege.userId, - projectId: userPrivilege.projectId - }); - if (!projectMembership) - throw new NotFoundError({ - message: `Project membership for user with ID '${userPrivilege.userId}' not found in project with ID '${userPrivilege.projectId}'` - }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: projectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member); - - await accessApprovalRequestDAL.update( - { - privilegeId: userPrivilege.id - }, - { - privilegeDeletedAt: new Date(), - status: ApprovalStatus.REJECTED - } - ); - const deletedPrivilege = await projectUserAdditionalPrivilegeDAL.deleteById(userPrivilege.id); - - await permissionService.invalidateProjectPermissionCache(projectMembership.projectId); - - return { - ...deletedPrivilege, - permissions: unpackPermissions(deletedPrivilege.permissions) - }; - }; - - const getPrivilegeDetailsById: TProjectUserAdditionalPrivilegeServiceFactory["getPrivilegeDetailsById"] = async ({ - privilegeId, - actorOrgId, - actor, - actorId, - actorAuthMethod - }) => { - const userPrivilege = await projectUserAdditionalPrivilegeDAL.findById(privilegeId); - if (!userPrivilege) - throw new NotFoundError({ message: `User additional privilege with ID ${privilegeId} not found` }); - - const projectMembership = await projectMembershipDAL.findOne({ - userId: userPrivilege.userId, - projectId: userPrivilege.projectId - }); - if (!projectMembership) - throw new NotFoundError({ - message: `Project membership for user with ID '${userPrivilege.userId}' not found in project with ID '${userPrivilege.projectId}'` - }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: projectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Read, ProjectPermissionSub.Member); - - return { - ...userPrivilege, - permissions: unpackPermissions(userPrivilege.permissions) - }; - }; - - const listPrivileges: TProjectUserAdditionalPrivilegeServiceFactory["listPrivileges"] = async ({ - projectMembershipId, - actorOrgId, - actor, - actorId, - actorAuthMethod - }) => { - const projectMembership = await projectMembershipDAL.findById(projectMembershipId); - if (!projectMembership) - throw new NotFoundError({ message: `Project membership with ID ${projectMembershipId} not found` }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: projectMembership.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Read, ProjectPermissionSub.Member); - - const userPrivileges = await projectUserAdditionalPrivilegeDAL.find( - { - userId: projectMembership.userId, - projectId: projectMembership.projectId - }, - { sort: [[`${TableName.ProjectUserAdditionalPrivilege}.slug` as "slug", "asc"]] } - ); - return userPrivileges; - }; - - return { - create, - updateById, - deleteById, - getPrivilegeDetailsById, - listPrivileges - }; -}; diff --git a/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-types.ts b/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-types.ts deleted file mode 100644 index a700d997dc..0000000000 --- a/backend/src/ee/services/project-user-additional-privilege/project-user-additional-privilege-types.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { TProjectUserAdditionalPrivilege } from "@app/db/schemas"; -import { TProjectPermission } from "@app/lib/types"; - -import { TProjectPermissionV2Schema } from "../permission/project-permission"; - -export enum ProjectUserAdditionalPrivilegeTemporaryMode { - Relative = "relative" -} - -export type TCreateUserPrivilegeDTO = ( - | { - permissions: TProjectPermissionV2Schema[]; - projectMembershipId: string; - slug: string; - isTemporary: false; - } - | { - permissions: TProjectPermissionV2Schema[]; - projectMembershipId: string; - slug: string; - isTemporary: true; - temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative; - temporaryRange: string; - temporaryAccessStartTime: string; - } -) & - Omit; - -export type TUpdateUserPrivilegeDTO = { privilegeId: string } & Omit & - Partial<{ - permissions: TProjectPermissionV2Schema[]; - slug: string; - isTemporary: boolean; - temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative; - temporaryRange: string; - temporaryAccessStartTime: string; - }>; - -export type TDeleteUserPrivilegeDTO = Omit & { privilegeId: string }; - -export type TGetUserPrivilegeDetailsDTO = Omit & { privilegeId: string }; - -export type TListUserPrivilegesDTO = Omit & { projectMembershipId: string }; - -interface TAdditionalPrivilege extends TProjectUserAdditionalPrivilege { - permissions: { - action: string[]; - subject?: string | undefined; - conditions?: unknown; - inverted?: boolean | undefined; - }[]; -} - -export type TProjectUserAdditionalPrivilegeServiceFactory = { - create: (arg: TCreateUserPrivilegeDTO) => Promise; - updateById: (arg: TUpdateUserPrivilegeDTO) => Promise; - deleteById: (arg: TDeleteUserPrivilegeDTO) => Promise; - getPrivilegeDetailsById: (arg: TGetUserPrivilegeDetailsDTO) => Promise; - listPrivileges: (arg: TListUserPrivilegesDTO) => Promise; -}; diff --git a/backend/src/ee/services/relay/relay-dal.ts b/backend/src/ee/services/relay/relay-dal.ts index 9107e0807c..8e7eac8de4 100644 --- a/backend/src/ee/services/relay/relay-dal.ts +++ b/backend/src/ee/services/relay/relay-dal.ts @@ -1,11 +1,47 @@ import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; +import { TableName, TRelays } from "@app/db/schemas"; +import { DatabaseError } from "@app/lib/errors"; +import { buildFindFilter, ormify, TFindFilter, TFindOpt } from "@app/lib/knex"; export type TRelayDALFactory = ReturnType; export const relayDalFactory = (db: TDbClient) => { const orm = ormify(db, TableName.Relay); - return orm; + const find = async ( + filter: TFindFilter & { isHeartbeatStale?: boolean }, + { offset, limit, sort, tx }: TFindOpt = {} + ) => { + try { + const { isHeartbeatStale, ...regularFilter } = filter; + + const query = (tx || db.replicaNode())(TableName.Relay) + // eslint-disable-next-line @typescript-eslint/no-misused-promises + .where(buildFindFilter(regularFilter, TableName.Relay)); + + if (isHeartbeatStale) { + const oneHourAgo = new Date(Date.now() - 60 * 60 * 1000); + void query.whereNotNull(`${TableName.Relay}.heartbeat`); + void query.where(`${TableName.Relay}.heartbeat`, "<", oneHourAgo); + void query.where((v) => { + void v + .whereNull(`${TableName.Relay}.healthAlertedAt`) + .orWhere(`${TableName.Relay}.healthAlertedAt`, "<", db.ref("heartbeat").withSchema(TableName.Relay)); + }); + } + + if (limit) void query.limit(limit); + if (offset) void query.offset(offset); + if (sort) { + void query.orderBy(sort.map(([column, order, nulls]) => ({ column: column as string, order, nulls }))); + } + + const docs = await query; + return docs; + } catch (error) { + throw new DatabaseError({ error, name: `${TableName.Relay}: Find` }); + } + }; + + return { ...orm, find }; }; diff --git a/backend/src/ee/services/relay/relay-service.ts b/backend/src/ee/services/relay/relay-service.ts index 696bd1f4f8..41fe91bfc1 100644 --- a/backend/src/ee/services/relay/relay-service.ts +++ b/backend/src/ee/services/relay/relay-service.ts @@ -2,11 +2,15 @@ import { isIP } from "node:net"; import { ForbiddenError } from "@casl/ability"; import * as x509 from "@peculiar/x509"; +import { CronJob } from "cron"; -import { TRelays } from "@app/db/schemas"; +import { OrgMembershipRole, TRelays } from "@app/db/schemas"; import { PgSqlLock } from "@app/keystore/keystore"; import { crypto } from "@app/lib/crypto"; -import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; +import { groupBy } from "@app/lib/fn"; +import { createRelayConnection } from "@app/lib/gateway-v2/gateway-v2"; +import { logger } from "@app/lib/logger"; import { ActorAuthMethod, ActorType } from "@app/services/auth/auth-type"; import { constructPemChainFromCerts, prependCertToPemChain } from "@app/services/certificate/certificate-fns"; import { CertExtendedKeyUsage, CertKeyAlgorithm, CertKeyUsage } from "@app/services/certificate/certificate-types"; @@ -16,6 +20,11 @@ import { } from "@app/services/certificate-authority/certificate-authority-fns"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; +import { TNotificationServiceFactory } from "@app/services/notification/notification-service"; +import { NotificationType } from "@app/services/notification/notification-types"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; +import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; +import { TUserDALFactory } from "@app/services/user/user-dal"; import { verifyHostInputValidity } from "../dynamic-secret/dynamic-secret-fns"; import { TLicenseServiceFactory } from "../license/license-service"; @@ -39,7 +48,11 @@ export const relayServiceFactory = ({ relayDAL, kmsService, licenseService, - permissionService + permissionService, + orgDAL, + notificationService, + smtpService, + userDAL }: { instanceRelayConfigDAL: TInstanceRelayConfigDALFactory; orgRelayConfigDAL: TOrgRelayConfigDALFactory; @@ -47,6 +60,10 @@ export const relayServiceFactory = ({ kmsService: TKmsServiceFactory; licenseService: TLicenseServiceFactory; permissionService: TPermissionServiceFactory; + orgDAL: Pick; + notificationService: Pick; + smtpService: Pick; + userDAL: Pick; }) => { const $getInstanceCAs = async () => { const instanceConfig = await instanceRelayConfigDAL.transaction(async (tx) => { @@ -1056,6 +1073,78 @@ export const relayServiceFactory = ({ }); }; + const heartbeat = async ({ + name, + identityId, + actorAuthMethod, + orgId + }: { + name: string; + identityId?: string; + actorAuthMethod?: ActorAuthMethod; + orgId?: string; + }) => { + const relay = await relayDAL.findOne({ + name, + orgId: orgId ?? null + }); + + if (!relay) { + throw new NotFoundError({ message: `Relay with name ${name} not found.` }); + } + + let clientOrgId: string; + let clientOrgName: string; + + if (relay.orgId) { + if (!identityId || !orgId || relay.orgId !== orgId) { + throw new ForbiddenRequestError({ + message: "You do not have permission to perform this action on this relay." + }); + } + + const { permission } = await permissionService.getOrgPermission( + ActorType.IDENTITY, + identityId, + orgId, + actorAuthMethod!, + orgId + ); + ForbiddenError.from(permission).throwUnlessCan( + OrgPermissionRelayActions.CreateRelays, + OrgPermissionSubjects.Relay + ); + clientOrgId = orgId; + clientOrgName = orgId; + } else { + clientOrgId = "00000000-0000-0000-0000-000000000000"; + clientOrgName = "heartbeat"; + } + + const relayClientCredentials = await getCredentialsForClient({ + relayId: relay.id, + orgId: clientOrgId, + orgName: clientOrgName, + gatewayId: "00000000-0000-0000-0000-000000000000", + gatewayName: "heartbeat", + duration: 60 * 1000 // 1 minute + }); + + try { + await createRelayConnection({ + relayHost: relayClientCredentials.relayHost, + clientCertificate: relayClientCredentials.clientCertificate, + clientPrivateKey: relayClientCredentials.clientPrivateKey, + serverCertificateChain: relayClientCredentials.serverCertificateChain + }); + + await relayDAL.updateById(relay.id, { heartbeat: new Date() }); + } catch (err) { + const error = err as Error; + throw new BadRequestError({ message: `Relay ${name} is not reachable: ${error.message}` }); + } + }; + const getRelays = async ({ actorId, actor, @@ -1120,11 +1209,99 @@ export const relayServiceFactory = ({ return deletedRelay; }; + const $healthcheckNotify = async () => { + const unhealthyRelays = await relayDAL.find({ + isHeartbeatStale: true + }); + + if (unhealthyRelays.length === 0) return; + + logger.warn( + { relayIds: unhealthyRelays.map((g) => g.id) }, + "Found relays with last heartbeat over an hour ago. Sending notifications." + ); + + const relaysByOrg = groupBy(unhealthyRelays, (r) => r.orgId ?? "instance"); + + for await (const [orgId, relays] of Object.entries(relaysByOrg)) { + try { + if (orgId === "instance") { + const superAdmins = await userDAL.find({ + superAdmin: true + }); + + const recipients = superAdmins.map((admin) => admin.email).filter((v): v is string => !!v); + + if (recipients.length > 0) { + const relayNames = relays.map((r) => `"${r.name}"`).join(", "); + await smtpService.sendMail({ + recipients, + subjectLine: "Relay Health Alert", + substitutions: { + type: "instance-relay", + names: relayNames + }, + template: SmtpTemplates.HealthAlert + }); + } + } else { + const admins = await orgDAL.findOrgMembersByRole(orgId, OrgMembershipRole.Admin); + if (admins.length === 0) { + // eslint-disable-next-line no-continue + continue; + } + + const relayNames = relays.map((r) => `"${r.name}"`).join(", "); + const body = `The following relay(s) in your organization may be offline as they haven't reported a heartbeat in over an hour: ${relayNames}. Please check their status.`; + + await notificationService.createUserNotifications( + admins.map((admin) => ({ + userId: admin.user.id, + orgId, + type: NotificationType.RELAY_HEALTH_ALERT, + title: "Relay Health Alert", + body, + link: "/organization/networking" + })) + ); + + await smtpService.sendMail({ + recipients: admins.map((admin) => admin.user.email).filter((v): v is string => !!v), + subjectLine: "Relay Health Alert", + substitutions: { + type: "relay", + names: relayNames + }, + template: SmtpTemplates.HealthAlert + }); + } + + await Promise.all(relays.map((r) => relayDAL.updateById(r.id, { healthAlertedAt: new Date() }))); + } catch (error) { + logger.error(error, `Failed to send relay health notifications for organization [orgId=${orgId}]`); + } + } + }; + + const initializeHealthcheckNotify = async () => { + logger.info("Setting up background notification process for relay health-checks"); + + await $healthcheckNotify(); + + // run every 5 minutes + const job = new CronJob("*/5 * * * *", $healthcheckNotify); + job.start(); + + return job; + }; + return { registerRelay, getCredentialsForGateway, getCredentialsForClient, getRelays, - deleteRelay + deleteRelay, + heartbeat, + initializeHealthcheckNotify }; }; diff --git a/backend/src/ee/services/saml-config/saml-config-service.ts b/backend/src/ee/services/saml-config/saml-config-service.ts index f1ee313e86..ab84ebd398 100644 --- a/backend/src/ee/services/saml-config/saml-config-service.ts +++ b/backend/src/ee/services/saml-config/saml-config-service.ts @@ -4,6 +4,7 @@ import { Knex } from "knex"; import RE2 from "re2"; import { + AccessScope, OrgMembershipRole, OrgMembershipStatus, TableName, @@ -19,13 +20,13 @@ import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/ import { AuthTokenType } from "@app/services/auth/auth-type"; import { TAuthTokenServiceFactory } from "@app/services/auth-token/auth-token-service"; import { TokenType } from "@app/services/auth-token/auth-token-types"; -import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; import { TIdentityMetadataDALFactory } from "@app/services/identity/identity-metadata-dal"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; +import { TMembershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { TMembershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; import { TOrgDALFactory } from "@app/services/org/org-dal"; import { getDefaultOrgMembershipRole } from "@app/services/org/org-role-fns"; -import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; import { TProjectKeyDALFactory } from "@app/services/project-key/project-key-dal"; @@ -68,32 +69,30 @@ type TSamlConfigServiceFactoryDep = { "createMembership" | "updateMembershipById" | "findMembership" | "findOrgById" | "findOne" | "updateById" >; identityMetadataDAL: Pick; - orgMembershipDAL: Pick; - groupDAL: Pick; - userGroupMembershipDAL: Pick< - TUserGroupMembershipDALFactory, - "find" | "delete" | "transaction" | "insertMany" | "filterProjectsByUserMembership" - >; - groupProjectDAL: Pick; - projectDAL: Pick; - projectBotDAL: Pick; - projectKeyDAL: Pick; + membershipRoleDAL: Pick; permissionService: Pick; licenseService: Pick; tokenService: Pick; smtpService: Pick; kmsService: Pick; + userGroupMembershipDAL: Pick< + TUserGroupMembershipDALFactory, + "find" | "delete" | "transaction" | "insertMany" | "filterProjectsByUserMembership" + >; + groupDAL: Pick; + projectDAL: Pick; + projectBotDAL: Pick; + projectKeyDAL: Pick; + membershipGroupDAL: Pick; }; export const samlConfigServiceFactory = ({ samlConfigDAL, orgDAL, - orgMembershipDAL, userDAL, userAliasDAL, groupDAL, userGroupMembershipDAL, - groupProjectDAL, projectDAL, projectBotDAL, projectKeyDAL, @@ -102,7 +101,9 @@ export const samlConfigServiceFactory = ({ tokenService, smtpService, identityMetadataDAL, - kmsService + kmsService, + membershipRoleDAL, + membershipGroupDAL }: TSamlConfigServiceFactoryDep): TSamlConfigServiceFactory => { const parseSamlGroups = (groupsValue: string): string[] => { let samlGroups: string[] = []; @@ -195,10 +196,10 @@ export const samlConfigServiceFactory = ({ userDAL, userGroupMembershipDAL, orgDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, + membershipGroupDAL, tx: transaction }); } catch (error) { @@ -218,7 +219,7 @@ export const samlConfigServiceFactory = ({ group, userDAL, userGroupMembershipDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL, tx: transaction }); @@ -506,26 +507,35 @@ export const samlConfigServiceFactory = ({ const foundUser = await userDAL.findById(userAlias.userId, tx); const [orgMembership] = await orgDAL.findMembership( { - [`${TableName.OrgMembership}.userId` as "userId"]: foundUser.id, - [`${TableName.OrgMembership}.orgId` as "id"]: orgId + [`${TableName.Membership}.actorUserId` as "actorUserId"]: userAlias.userId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }, { tx } ); + if (!orgMembership) { const { role, roleId } = await getDefaultOrgMembershipRole(organization.defaultMembershipRole); - await orgMembershipDAL.create( + const membership = await orgDAL.createMembership( { - userId: userAlias.userId, + actorUserId: userAlias.userId, inviteEmail: email, - orgId, - role, - roleId, - status: foundUser.isAccepted ? OrgMembershipStatus.Accepted : OrgMembershipStatus.Invited, + scopeOrgId: orgId, + scope: AccessScope.Organization, + status: OrgMembershipStatus.Accepted, isActive: true }, tx ); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role, + customRoleId: roleId + }, + tx + ); // Only update the membership to Accepted if the user account is already completed. } else if (orgMembership.status === OrgMembershipStatus.Invited && foundUser.isAccepted) { await orgDAL.updateMembershipById( @@ -606,8 +616,9 @@ export const samlConfigServiceFactory = ({ const [orgMembership] = await orgDAL.findMembership( { - [`${TableName.OrgMembership}.userId` as "userId"]: newUser.id, - [`${TableName.OrgMembership}.orgId` as "id"]: orgId + [`${TableName.Membership}.actorUserId` as "actorUserId"]: userAlias.userId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }, { tx } ); @@ -617,15 +628,22 @@ export const samlConfigServiceFactory = ({ const { role, roleId } = await getDefaultOrgMembershipRole(organization.defaultMembershipRole); - await orgMembershipDAL.create( + const membership = await orgDAL.createMembership( { - userId: newUser.id, - inviteEmail: email, - orgId, - role, - roleId, + actorUserId: newUser.id, + scopeOrgId: orgId, + scope: AccessScope.Organization, status: newUser.isAccepted ? OrgMembershipStatus.Accepted : OrgMembershipStatus.Invited, // if user is fully completed, then set status to accepted, otherwise set it to invited so we can update it later - isActive: true + isActive: true, + inviteEmail: email.toLowerCase() + }, + tx + ); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role, + customRoleId: roleId }, tx ); diff --git a/backend/src/ee/services/scim/scim-service.ts b/backend/src/ee/services/scim/scim-service.ts index 9cc6e134df..a08cd5dbfc 100644 --- a/backend/src/ee/services/scim/scim-service.ts +++ b/backend/src/ee/services/scim/scim-service.ts @@ -2,7 +2,15 @@ import { ForbiddenError } from "@casl/ability"; import slugify from "@sindresorhus/slugify"; import { scimPatch } from "scim-patch"; -import { OrgMembershipRole, OrgMembershipStatus, TableName, TGroups, TOrgMemberships, TUsers } from "@app/db/schemas"; +import { + AccessScope, + OrgMembershipRole, + OrgMembershipStatus, + TableName, + TGroups, + TMemberships, + TUsers +} from "@app/db/schemas"; import { TGroupDALFactory } from "@app/ee/services/group/group-dal"; import { addUsersToGroupByUserIds, removeUsersFromGroupByUserIds } from "@app/ee/services/group/group-fns"; import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; @@ -11,18 +19,19 @@ import { getConfig } from "@app/lib/config/env"; import { crypto } from "@app/lib/crypto"; import { BadRequestError, NotFoundError, ScimRequestError, UnauthorizedError } from "@app/lib/errors"; import { alphaNumericNanoId } from "@app/lib/nanoid"; +import { TAdditionalPrivilegeDALFactory } from "@app/services/additional-privilege/additional-privilege-dal"; import { AuthTokenType } from "@app/services/auth/auth-type"; import { TExternalGroupOrgRoleMappingDALFactory } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-dal"; -import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; +import { TMembershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { TMembershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; +import { TMembershipUserDALFactory } from "@app/services/membership-user/membership-user-dal"; import { TOrgDALFactory } from "@app/services/org/org-dal"; -import { deleteOrgMembershipFn } from "@app/services/org/org-fns"; +import { deleteOrgMembershipsFn } from "@app/services/org/org-fns"; import { getDefaultOrgMembershipRole } from "@app/services/org/org-role-fns"; import { OrgAuthMethod } from "@app/services/org/org-types"; -import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; import { TProjectKeyDALFactory } from "@app/services/project-key/project-key-dal"; -import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { getServerCfg } from "@app/services/super-admin/super-admin-service"; import { TUserDALFactory } from "@app/services/user/user-dal"; @@ -33,7 +42,6 @@ import { UserAliasType } from "@app/services/user-alias/user-alias-types"; import { TLicenseServiceFactory } from "../license/license-service"; import { OrgPermissionActions, OrgPermissionSubjects } from "../permission/org-permission"; import { TPermissionServiceFactory } from "../permission/permission-service-types"; -import { TProjectUserAdditionalPrivilegeDALFactory } from "../project-user-additional-privilege/project-user-additional-privilege-dal"; import { buildScimGroup, buildScimGroupList, buildScimUser, buildScimUserList, parseScimFilter } from "./scim-fns"; import { TScimGroup, TScimServiceFactory } from "./scim-types"; @@ -55,12 +63,8 @@ type TScimServiceFactoryDep = { | "updateMembershipById" | "findOrgById" >; - orgMembershipDAL: Pick< - TOrgMembershipDALFactory, - "find" | "findOne" | "create" | "updateById" | "findById" | "update" - >; + membershipUserDAL: TMembershipUserDALFactory; projectDAL: Pick; - projectMembershipDAL: Pick; groupDAL: Pick< TGroupDALFactory, | "create" @@ -72,7 +76,8 @@ type TScimServiceFactoryDep = { | "updateById" | "update" >; - groupProjectDAL: Pick; + membershipGroupDAL: Pick; + membershipRoleDAL: TMembershipRoleDALFactory; userGroupMembershipDAL: Pick< TUserGroupMembershipDALFactory, | "find" @@ -88,8 +93,8 @@ type TScimServiceFactoryDep = { licenseService: Pick; permissionService: Pick; smtpService: Pick; - projectUserAdditionalPrivilegeDAL: Pick; externalGroupOrgRoleMappingDAL: TExternalGroupOrgRoleMappingDALFactory; + additionalPrivilegeDAL: TAdditionalPrivilegeDALFactory; }; export const scimServiceFactory = ({ @@ -98,18 +103,18 @@ export const scimServiceFactory = ({ userDAL, userAliasDAL, orgDAL, - orgMembershipDAL, projectDAL, - projectMembershipDAL, groupDAL, - groupProjectDAL, userGroupMembershipDAL, projectKeyDAL, projectBotDAL, permissionService, - projectUserAdditionalPrivilegeDAL, smtpService, - externalGroupOrgRoleMappingDAL + externalGroupOrgRoleMappingDAL, + membershipGroupDAL, + membershipUserDAL, + membershipRoleDAL, + additionalPrivilegeDAL }: TScimServiceFactoryDep): TScimServiceFactory => { const createScimToken: TScimServiceFactory["createScimToken"] = async ({ actor, @@ -244,8 +249,9 @@ export const scimServiceFactory = ({ const getScimUser: TScimServiceFactory["getScimUser"] = async ({ orgMembershipId, orgId }) => { const [membership] = await orgDAL .findMembership({ - [`${TableName.OrgMembership}.id` as "id"]: orgMembershipId, - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId + [`${TableName.Membership}.id` as "id"]: orgMembershipId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }) .catch(() => { throw new ScimRequestError({ @@ -322,13 +328,14 @@ export const scimServiceFactory = ({ const { user: createdUser, orgMembership: createdOrgMembership } = await userDAL.transaction(async (tx) => { let user: TUsers | undefined; - let orgMembership: TOrgMemberships; + let orgMembership: TMemberships; if (userAlias) { user = await userDAL.findById(userAlias.userId, tx); - orgMembership = await orgMembershipDAL.findOne( + orgMembership = await membershipUserDAL.findOne( { - userId: user.id, - orgId + actorUserId: user.id, + scope: AccessScope.Organization, + scopeOrgId: orgId }, tx ); @@ -336,20 +343,27 @@ export const scimServiceFactory = ({ if (!orgMembership) { const { role, roleId } = await getDefaultOrgMembershipRole(org.defaultMembershipRole); - orgMembership = await orgMembershipDAL.create( + orgMembership = await membershipUserDAL.create( { - userId: userAlias.userId, + actorUserId: userAlias.userId, inviteEmail: email.toLowerCase(), - orgId, - role, - roleId, + scopeOrgId: orgId, + scope: AccessScope.Organization, status: user.isAccepted ? OrgMembershipStatus.Accepted : OrgMembershipStatus.Invited, // if user is fully completed, then set status to accepted, otherwise set it to invited so we can update it later isActive: true }, tx ); + await membershipRoleDAL.create( + { + membershipId: orgMembership.id, + role, + customRoleId: roleId + }, + tx + ); } else if (orgMembership.status === OrgMembershipStatus.Invited && user.isAccepted) { - orgMembership = await orgMembershipDAL.updateById( + orgMembership = await membershipUserDAL.updateById( orgMembership.id, { status: OrgMembershipStatus.Accepted @@ -401,8 +415,9 @@ export const scimServiceFactory = ({ const [foundOrgMembership] = await orgDAL.findMembership( { - [`${TableName.OrgMembership}.userId` as "userId"]: user.id, - [`${TableName.OrgMembership}.orgId` as "id"]: orgId + [`${TableName.Membership}.actorUserId` as "actorUserId"]: user.id, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }, { tx } ); @@ -412,18 +427,25 @@ export const scimServiceFactory = ({ if (!orgMembership) { const { role, roleId } = await getDefaultOrgMembershipRole(org.defaultMembershipRole); - orgMembership = await orgMembershipDAL.create( + orgMembership = await membershipUserDAL.create( { - userId: user.id, + actorUserId: user.id, inviteEmail: email.toLowerCase(), - orgId, - role, - roleId, + scopeOrgId: orgId, + scope: AccessScope.Organization, status: user.isAccepted ? OrgMembershipStatus.Accepted : OrgMembershipStatus.Invited, // if user is fully completed, then set status to accepted, otherwise set it to invited so we can update it later isActive: true }, tx ); + await membershipRoleDAL.create( + { + membershipId: orgMembership.id, + role, + customRoleId: roleId + }, + tx + ); // Only update the membership to Accepted if the user account is already completed. } else if (orgMembership.status === OrgMembershipStatus.Invited && user.isAccepted) { orgMembership = await orgDAL.updateMembershipById( @@ -475,8 +497,9 @@ export const scimServiceFactory = ({ const [membership] = await orgDAL .findMembership({ - [`${TableName.OrgMembership}.id` as "id"]: orgMembershipId, - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId + [`${TableName.Membership}.id` as "id"]: orgMembershipId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }) .catch(() => { throw new ScimRequestError({ @@ -485,7 +508,7 @@ export const scimServiceFactory = ({ }); }); - if (!membership) + if (!membership || !membership.actorUserId) throw new ScimRequestError({ detail: "User not found", status: 404 @@ -514,7 +537,7 @@ export const scimServiceFactory = ({ org.orgAuthMethod === OrgAuthMethod.OIDC ? serverCfg.trustOidcEmails : serverCfg.trustSamlEmails; await userDAL.transaction(async (tx) => { - await orgMembershipDAL.updateById( + await membershipUserDAL.updateById( membership.id, { isActive: scimUser.active @@ -523,7 +546,7 @@ export const scimServiceFactory = ({ ); const hasEmailChanged = scimUser.emails[0].value !== membership.email; await userDAL.updateById( - membership.userId, + membership.actorUserId as string, { firstName: scimUser.name.givenName, email: scimUser.emails[0].value.toLowerCase(), @@ -556,8 +579,9 @@ export const scimServiceFactory = ({ const [membership] = await orgDAL .findMembership({ - [`${TableName.OrgMembership}.id` as "id"]: orgMembershipId, - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId + [`${TableName.Membership}.id` as "id"]: orgMembershipId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }) .catch(() => { throw new ScimRequestError({ @@ -566,7 +590,7 @@ export const scimServiceFactory = ({ }); }); - if (!membership) + if (!membership || !membership.actorUserId) throw new ScimRequestError({ detail: "User not found", status: 404 @@ -587,7 +611,7 @@ export const scimServiceFactory = ({ { orgId, aliasType: org.orgAuthMethod === OrgAuthMethod.OIDC ? UserAliasType.OIDC : UserAliasType.SAML, - userId: membership.userId + userId: membership.actorUserId as string }, { externalId @@ -595,7 +619,7 @@ export const scimServiceFactory = ({ tx ); - await orgMembershipDAL.updateById( + await membershipUserDAL.updateById( membership.id, { isActive: active @@ -603,7 +627,7 @@ export const scimServiceFactory = ({ tx ); await userDAL.updateById( - membership.userId, + membership.actorUserId!, { firstName, email: email?.toLowerCase(), @@ -628,8 +652,9 @@ export const scimServiceFactory = ({ const deleteScimUser: TScimServiceFactory["deleteScimUser"] = async ({ orgMembershipId, orgId }) => { const [membership] = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.id` as "id"]: orgMembershipId, - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId + [`${TableName.Membership}.id` as "id"]: orgMembershipId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }); if (!membership) @@ -645,15 +670,17 @@ export const scimServiceFactory = ({ }); } - await deleteOrgMembershipFn({ - orgMembershipId: membership.id, - orgId: membership.orgId, + await deleteOrgMembershipsFn({ + orgMembershipIds: [membership.id], + orgId: membership.scopeOrgId, orgDAL, - projectMembershipDAL, - projectUserAdditionalPrivilegeDAL, projectKeyDAL, userAliasDAL, - licenseService + licenseService, + membershipUserDAL, + membershipRoleDAL, + userGroupMembershipDAL, + additionalPrivilegeDAL }); return {}; // intentionally return empty object upon success @@ -750,8 +777,9 @@ export const scimServiceFactory = ({ if (!externalGroupMapping) return; // only get org memberships that are new (invites) - const newOrgMemberships = await orgMembershipDAL.find({ + const newOrgMemberships = await membershipUserDAL.find({ status: "invited", + scope: AccessScope.Organization, $in: { id: members.map((member) => member.value) } @@ -760,15 +788,15 @@ export const scimServiceFactory = ({ if (!newOrgMemberships.length) return; // set new membership roles to group mapping value - await orgMembershipDAL.update( + await membershipRoleDAL.update( { $in: { - id: newOrgMemberships.map((membership) => membership.id) + membershipId: newOrgMemberships.map((membership) => membership.id) } }, { role: externalGroupMapping.role, - roleId: externalGroupMapping.roleId + customRoleId: externalGroupMapping.roleId } ); }; @@ -821,8 +849,26 @@ export const scimServiceFactory = ({ tx ); + const groupMembership = await membershipGroupDAL.create( + { + scope: AccessScope.Organization, + actorGroupId: group.id, + scopeOrgId: orgId + }, + tx + ); + + await membershipRoleDAL.create( + { + membershipId: groupMembership.id, + role: OrgMembershipRole.NoAccess + }, + tx + ); + if (members && members.length) { - const orgMemberships = await orgMembershipDAL.find({ + const orgMemberships = await membershipUserDAL.find({ + scope: AccessScope.Organization, $in: { id: members.map((member) => member.value) } @@ -830,14 +876,14 @@ export const scimServiceFactory = ({ const newMembers = await addUsersToGroupByUserIds({ group, - userIds: orgMemberships.map((membership) => membership.userId as string), + userIds: orgMemberships.map((membership) => membership.actorUserId as string), userDAL, userGroupMembershipDAL, orgDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, + membershipGroupDAL, tx }); @@ -850,9 +896,10 @@ export const scimServiceFactory = ({ }); const orgMemberships = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization, $in: { - [`${TableName.OrgMembership}.userId` as "userId"]: newGroup.newMembers.map((member) => member.id) + [`${TableName.Membership}.actorUserId` as "actorUserId"]: newGroup.newMembers.map((member) => member.id) } }); @@ -895,9 +942,10 @@ export const scimServiceFactory = ({ .then((g) => g.members); const orgMemberships = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization, $in: { - [`${TableName.OrgMembership}.userId` as "userId"]: users + [`${TableName.Membership}.actorUserId` as "actorUserId"]: users .filter((user) => user.isPartOfGroup) .map((user) => user.id) } @@ -933,10 +981,10 @@ export const scimServiceFactory = ({ } const updatedGroup = await groupDAL.transaction(async (tx) => { - if (group.name !== displayName) { + if (group?.name !== displayName) { await externalGroupOrgRoleMappingDAL.update( { - groupName: group.name, + groupName: group?.name, orgId }, { @@ -958,14 +1006,16 @@ export const scimServiceFactory = ({ } const orgMemberships = members.length - ? await orgMembershipDAL.find({ + ? await membershipUserDAL.find({ + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization, $in: { id: members.map((member) => member.value) } }) : []; - const membersIdsSet = new Set(orgMemberships.map((orgMembership) => orgMembership.userId)); + const membersIdsSet = new Set(orgMemberships.map((orgMembership) => orgMembership.actorUserId as string)); const userGroupMembers = await userGroupMembershipDAL.find({ groupId: group.id }); @@ -978,20 +1028,20 @@ export const scimServiceFactory = ({ const allMembersUserIds = directMemberUserIds.concat(pendingGroupAdditionsUserIds); const allMembersUserIdsSet = new Set(allMembersUserIds); - const toAddUserIds = orgMemberships.filter((member) => !allMembersUserIdsSet.has(member.userId as string)); + const toAddUserIds = orgMemberships.filter((member) => !allMembersUserIdsSet.has(member.actorUserId as string)); const toRemoveUserIds = allMembersUserIds.filter((userId) => !membersIdsSet.has(userId)); if (toAddUserIds.length) { await addUsersToGroupByUserIds({ group, - userIds: toAddUserIds.map((member) => member.userId as string), + userIds: toAddUserIds.map((member) => member.actorUserId as string), userDAL, userGroupMembershipDAL, orgDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, + membershipGroupDAL, tx }); } @@ -1002,7 +1052,7 @@ export const scimServiceFactory = ({ userIds: toRemoveUserIds, userDAL, userGroupMembershipDAL, - groupProjectDAL, + membershipGroupDAL, projectKeyDAL, tx }); diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts index 01caef2238..7597dcfd4e 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts @@ -2,9 +2,10 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; import { + AccessScope, SecretApprovalRequestsSchema, TableName, - TOrgMemberships, + TMemberships, TSecretApprovalRequests, TSecretApprovalRequestsSecrets, TUserGroupMembership, @@ -36,6 +37,7 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { .where(filter) .join(TableName.SecretFolder, `${TableName.SecretApprovalRequest}.folderId`, `${TableName.SecretFolder}.id`) .join(TableName.Environment, `${TableName.SecretFolder}.envId`, `${TableName.Environment}.id`) + .join(TableName.Project, `${TableName.Environment}.projectId`, `${TableName.Project}.id`) .join( TableName.SecretApprovalPolicy, `${TableName.SecretApprovalRequest}.policyId`, @@ -109,24 +111,22 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { `secretApprovalReviewerUser.id` ) - .leftJoin( - db(TableName.OrgMembership).as("approverOrgMembership"), - `${TableName.SecretApprovalPolicyApprover}.approverUserId`, - `approverOrgMembership.userId` - ) - - .leftJoin( - db(TableName.OrgMembership).as("approverGroupOrgMembership"), - `secretApprovalPolicyGroupApproverUser.id`, - `approverGroupOrgMembership.userId` - ) - - .leftJoin( - db(TableName.OrgMembership).as("reviewerOrgMembership"), - `${TableName.SecretApprovalRequestReviewer}.reviewerUserId`, - `reviewerOrgMembership.userId` - ) + .leftJoin(db(TableName.Membership).as("approverOrgMembership"), (qb) => { + qb.on(`${TableName.SecretApprovalPolicyApprover}.approverUserId`, `approverOrgMembership.actorUserId`) + .andOn(`approverOrgMembership.scopeOrgId`, `${TableName.Project}.orgId`) + .andOn(`approverOrgMembership.scope`, db.raw("?", [AccessScope.Organization])); + }) + .leftJoin(db(TableName.Membership).as("approverGroupOrgMembership"), (qb) => { + qb.on(`secretApprovalPolicyGroupApproverUser.id`, `approverGroupOrgMembership.actorUserId`) + .andOn(`approverGroupOrgMembership.scopeOrgId`, `${TableName.Project}.orgId`) + .andOn(`approverGroupOrgMembership.scope`, db.raw("?", [AccessScope.Organization])); + }) + .leftJoin(db(TableName.Membership).as("reviewerOrgMembership"), (qb) => { + qb.on(`${TableName.SecretApprovalRequestReviewer}.reviewerUserId`, `reviewerOrgMembership.actorUserId`) + .andOn(`reviewerOrgMembership.scopeOrgId`, `${TableName.Project}.orgId`) + .andOn(`reviewerOrgMembership.scope`, db.raw("?", [AccessScope.Organization])); + }) .select(selectAllTableCols(TableName.SecretApprovalRequest)) .select( tx.ref("approverUserId").withSchema(TableName.SecretApprovalPolicyApprover), diff --git a/backend/src/ee/services/ssh-host-group/ssh-host-group-service.ts b/backend/src/ee/services/ssh-host-group/ssh-host-group-service.ts index aa6d4f66ad..0846532f9e 100644 --- a/backend/src/ee/services/ssh-host-group/ssh-host-group-service.ts +++ b/backend/src/ee/services/ssh-host-group/ssh-host-group-service.ts @@ -44,10 +44,7 @@ type TSshHostGroupServiceFactoryDep = { sshHostLoginUserDAL: Pick; sshHostLoginUserMappingDAL: Pick; userDAL: Pick; - permissionService: Pick< - TPermissionServiceFactory, - "getProjectPermission" | "getUserProjectPermission" | "checkGroupProjectPermission" - >; + permissionService: Pick; licenseService: Pick; groupDAL: Pick; }; diff --git a/backend/src/ee/services/ssh-host/ssh-host-fns.ts b/backend/src/ee/services/ssh-host/ssh-host-fns.ts index dec15e093f..7e188a5fe0 100644 --- a/backend/src/ee/services/ssh-host/ssh-host-fns.ts +++ b/backend/src/ee/services/ssh-host/ssh-host-fns.ts @@ -2,6 +2,7 @@ import { Knex } from "knex"; import { ActionProjectType } from "@app/db/schemas"; import { BadRequestError } from "@app/lib/errors"; +import { ActorType } from "@app/services/auth/auth-type"; import { ProjectPermissionSshHostActions, ProjectPermissionSub } from "../permission/project-permission"; import { TCreateSshLoginMappingsDTO } from "./ssh-host-types"; @@ -59,11 +60,12 @@ export const createSshLoginMappings = async ({ for await (const user of users) { // check that each user has access to the SSH project - await permissionService.getUserProjectPermission({ - userId: user.id, + await permissionService.getProjectPermission({ + actor: ActorType.USER, + actorId: user.id, projectId, - authMethod: actorAuthMethod, - userOrgId: actorOrgId, + actorAuthMethod, + actorOrgId, actionProjectType: ActionProjectType.SSH }); } diff --git a/backend/src/ee/services/ssh-host/ssh-host-service.ts b/backend/src/ee/services/ssh-host/ssh-host-service.ts index d1082b4df7..37d843c479 100644 --- a/backend/src/ee/services/ssh-host/ssh-host-service.ts +++ b/backend/src/ee/services/ssh-host/ssh-host-service.ts @@ -64,10 +64,7 @@ type TSshHostServiceFactoryDep = { >; sshHostLoginUserDAL: TSshHostLoginUserDALFactory; sshHostLoginUserMappingDAL: TSshHostLoginUserMappingDALFactory; - permissionService: Pick< - TPermissionServiceFactory, - "getProjectPermission" | "getUserProjectPermission" | "checkGroupProjectPermission" - >; + permissionService: Pick; kmsService: Pick; }; diff --git a/backend/src/ee/services/ssh-host/ssh-host-types.ts b/backend/src/ee/services/ssh-host/ssh-host-types.ts index a8269ac375..698f067f26 100644 --- a/backend/src/ee/services/ssh-host/ssh-host-types.ts +++ b/backend/src/ee/services/ssh-host/ssh-host-types.ts @@ -66,7 +66,7 @@ type BaseCreateSshLoginMappingsDTO = { sshHostLoginUserDAL: Pick; sshHostLoginUserMappingDAL: Pick; userDAL: Pick; - permissionService: Pick; + permissionService: Pick; groupDAL: Pick; projectId: string; actorAuthMethod: ActorAuthMethod; diff --git a/backend/src/lib/fn/object.ts b/backend/src/lib/fn/object.ts index 65d0b78594..6ff7278aae 100644 --- a/backend/src/lib/fn/object.ts +++ b/backend/src/lib/fn/object.ts @@ -53,3 +53,53 @@ export const titleCaseToCamelCase = (obj: unknown): unknown => { return result; }; + +export const deepEqual = (obj1: unknown, obj2: unknown): boolean => { + if (obj1 === obj2) return true; + + if (obj1 === null || obj2 === null || obj1 === undefined || obj2 === undefined) { + return obj1 === obj2; + } + + if (typeof obj1 !== typeof obj2) return false; + + if (typeof obj1 !== "object") return obj1 === obj2; + + if (Array.isArray(obj1) !== Array.isArray(obj2)) return false; + + if (Array.isArray(obj1)) { + const arr1 = obj1 as unknown[]; + const arr2 = obj2 as unknown[]; + if (arr1.length !== arr2.length) return false; + return arr1.every((val, idx) => deepEqual(val, arr2[idx])); + } + + const keys1 = Object.keys(obj1 as Record).sort(); + const keys2 = Object.keys(obj2 as Record).sort(); + + if (keys1.length !== keys2.length) return false; + if (keys1.some((key, idx) => key !== keys2[idx])) return false; + + return keys1.every((key) => + deepEqual((obj1 as Record)[key], (obj2 as Record)[key]) + ); +}; + +export const deepEqualSkipFields = (obj1: unknown, obj2: unknown, skipFields: string[] = []): boolean => { + if (skipFields.length === 0) { + return deepEqual(obj1, obj2); + } + + if (typeof obj1 !== "object" || typeof obj2 !== "object" || obj1 === null || obj2 === null) { + return deepEqual(obj1, obj2); + } + + const filtered1 = Object.fromEntries( + Object.entries(obj1 as Record).filter(([key]) => !skipFields.includes(key)) + ); + const filtered2 = Object.fromEntries( + Object.entries(obj2 as Record).filter(([key]) => !skipFields.includes(key)) + ); + + return deepEqual(filtered1, filtered2); +}; diff --git a/backend/src/lib/gateway-v2/gateway-v2.ts b/backend/src/lib/gateway-v2/gateway-v2.ts index e6e873f113..5ae0e5b1d9 100644 --- a/backend/src/lib/gateway-v2/gateway-v2.ts +++ b/backend/src/lib/gateway-v2/gateway-v2.ts @@ -18,7 +18,7 @@ interface IGatewayRelayServer { getRelayError: () => string; } -const createRelayConnection = async ({ +export const createRelayConnection = async ({ relayHost, clientCertificate, clientPrivateKey, diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 406daa63d6..01de9d5592 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -50,9 +50,6 @@ import { hsmServiceFactory } from "@app/ee/services/hsm/hsm-service"; import { HsmModule } from "@app/ee/services/hsm/hsm-types"; import { identityAuthTemplateDALFactory } from "@app/ee/services/identity-auth-template/identity-auth-template-dal"; import { identityAuthTemplateServiceFactory } from "@app/ee/services/identity-auth-template/identity-auth-template-service"; -import { identityProjectAdditionalPrivilegeDALFactory } from "@app/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-dal"; -import { identityProjectAdditionalPrivilegeServiceFactory } from "@app/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-service"; -import { identityProjectAdditionalPrivilegeV2ServiceFactory } from "@app/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-service"; import { kmipClientCertificateDALFactory } from "@app/ee/services/kmip/kmip-client-certificate-dal"; import { kmipClientDALFactory } from "@app/ee/services/kmip/kmip-client-dal"; import { kmipOperationServiceFactory } from "@app/ee/services/kmip/kmip-operation-service"; @@ -79,8 +76,6 @@ import { permissionServiceFactory } from "@app/ee/services/permission/permission import { pitServiceFactory } from "@app/ee/services/pit/pit-service"; import { projectTemplateDALFactory } from "@app/ee/services/project-template/project-template-dal"; import { projectTemplateServiceFactory } from "@app/ee/services/project-template/project-template-service"; -import { projectUserAdditionalPrivilegeDALFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal"; -import { projectUserAdditionalPrivilegeServiceFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-service"; import { rateLimitDALFactory } from "@app/ee/services/rate-limit/rate-limit-dal"; import { rateLimitServiceFactory } from "@app/ee/services/rate-limit/rate-limit-service"; import { instanceRelayConfigDalFactory } from "@app/ee/services/relay/instance-relay-config-dal"; @@ -147,6 +142,8 @@ import { TQueueServiceFactory } from "@app/queue"; import { readLimit } from "@app/server/config/rateLimiter"; import { registerSecretScanningV2Webhooks } from "@app/server/plugins/secret-scanner-v2"; import { accessTokenQueueServiceFactory } from "@app/services/access-token-queue/access-token-queue"; +import { additionalPrivilegeDALFactory } from "@app/services/additional-privilege/additional-privilege-dal"; +import { additionalPrivilegeServiceFactory } from "@app/services/additional-privilege/additional-privilege-service"; import { apiKeyDALFactory } from "@app/services/api-key/api-key-dal"; import { apiKeyServiceFactory } from "@app/services/api-key/api-key-service"; import { appConnectionDALFactory } from "@app/services/app-connection/app-connection-dal"; @@ -174,6 +171,7 @@ import { certificateTemplateDALFactory } from "@app/services/certificate-templat import { certificateTemplateEstConfigDALFactory } from "@app/services/certificate-template/certificate-template-est-config-dal"; import { certificateTemplateServiceFactory } from "@app/services/certificate-template/certificate-template-service"; import { cmekServiceFactory } from "@app/services/cmek/cmek-service"; +import { convertorServiceFactory } from "@app/services/convertor/convertor-service"; import { externalGroupOrgRoleMappingDALFactory } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-dal"; import { externalGroupOrgRoleMappingServiceFactory } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-service"; import { externalMigrationQueueFactory } from "@app/services/external-migration/external-migration-queue"; @@ -187,7 +185,6 @@ import { folderCommitChangesDALFactory } from "@app/services/folder-commit-chang import { folderTreeCheckpointDALFactory } from "@app/services/folder-tree-checkpoint/folder-tree-checkpoint-dal"; import { folderTreeCheckpointResourcesDALFactory } from "@app/services/folder-tree-checkpoint-resources/folder-tree-checkpoint-resources-dal"; import { groupProjectDALFactory } from "@app/services/group-project/group-project-dal"; -import { groupProjectMembershipRoleDALFactory } from "@app/services/group-project/group-project-membership-role-dal"; import { groupProjectServiceFactory } from "@app/services/group-project/group-project-service"; import { identityDALFactory } from "@app/services/identity/identity-dal"; import { identityMetadataDALFactory } from "@app/services/identity/identity-metadata-dal"; @@ -214,7 +211,6 @@ import { identityOciAuthServiceFactory } from "@app/services/identity-oci-auth/i import { identityOidcAuthDALFactory } from "@app/services/identity-oidc-auth/identity-oidc-auth-dal"; import { identityOidcAuthServiceFactory } from "@app/services/identity-oidc-auth/identity-oidc-auth-service"; import { identityProjectDALFactory } from "@app/services/identity-project/identity-project-dal"; -import { identityProjectMembershipRoleDALFactory } from "@app/services/identity-project/identity-project-membership-role-dal"; import { identityProjectServiceFactory } from "@app/services/identity-project/identity-project-service"; import { identityTlsCertAuthDALFactory } from "@app/services/identity-tls-cert-auth/identity-tls-cert-auth-dal"; import { identityTlsCertAuthServiceFactory } from "@app/services/identity-tls-cert-auth/identity-tls-cert-auth-service"; @@ -231,6 +227,14 @@ import { internalKmsDALFactory } from "@app/services/kms/internal-kms-dal"; import { kmskeyDALFactory } from "@app/services/kms/kms-key-dal"; import { kmsRootConfigDALFactory } from "@app/services/kms/kms-root-config-dal"; import { kmsServiceFactory } from "@app/services/kms/kms-service"; +import { membershipDALFactory } from "@app/services/membership/membership-dal"; +import { membershipRoleDALFactory } from "@app/services/membership/membership-role-dal"; +import { membershipGroupDALFactory } from "@app/services/membership-group/membership-group-dal"; +import { membershipGroupServiceFactory } from "@app/services/membership-group/membership-group-service"; +import { membershipIdentityDALFactory } from "@app/services/membership-identity/membership-identity-dal"; +import { membershipIdentityServiceFactory } from "@app/services/membership-identity/membership-identity-service"; +import { membershipUserDALFactory } from "@app/services/membership-user/membership-user-dal"; +import { membershipUserServiceFactory } from "@app/services/membership-user/membership-user-service"; import { microsoftTeamsIntegrationDALFactory } from "@app/services/microsoft-teams/microsoft-teams-integration-dal"; import { microsoftTeamsServiceFactory } from "@app/services/microsoft-teams/microsoft-teams-service"; import { projectMicrosoftTeamsConfigDALFactory } from "@app/services/microsoft-teams/project-microsoft-teams-config-dal"; @@ -242,8 +246,6 @@ import { offlineUsageReportServiceFactory } from "@app/services/offline-usage-re import { incidentContactDALFactory } from "@app/services/org/incident-contacts-dal"; import { orgBotDALFactory } from "@app/services/org/org-bot-dal"; import { orgDALFactory } from "@app/services/org/org-dal"; -import { orgRoleDALFactory } from "@app/services/org/org-role-dal"; -import { orgRoleServiceFactory } from "@app/services/org/org-role-service"; import { orgServiceFactory } from "@app/services/org/org-service"; import { orgAdminServiceFactory } from "@app/services/org-admin/org-admin-service"; import { orgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; @@ -274,15 +276,14 @@ import { projectKeyDALFactory } from "@app/services/project-key/project-key-dal" import { projectKeyServiceFactory } from "@app/services/project-key/project-key-service"; import { projectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { projectMembershipServiceFactory } from "@app/services/project-membership/project-membership-service"; -import { projectUserMembershipRoleDALFactory } from "@app/services/project-membership/project-user-membership-role-dal"; -import { projectRoleDALFactory } from "@app/services/project-role/project-role-dal"; -import { projectRoleServiceFactory } from "@app/services/project-role/project-role-service"; import { reminderDALFactory } from "@app/services/reminder/reminder-dal"; import { dailyReminderQueueServiceFactory } from "@app/services/reminder/reminder-queue"; import { reminderServiceFactory } from "@app/services/reminder/reminder-service"; import { reminderRecipientDALFactory } from "@app/services/reminder-recipients/reminder-recipient-dal"; import { dailyResourceCleanUpQueueServiceFactory } from "@app/services/resource-cleanup/resource-cleanup-queue"; import { resourceMetadataDALFactory } from "@app/services/resource-metadata/resource-metadata-dal"; +import { roleDALFactory } from "@app/services/role/role-dal"; +import { roleServiceFactory } from "@app/services/role/role-service"; import { secretDALFactory } from "@app/services/secret/secret-dal"; import { secretQueueFactory } from "@app/services/secret/secret-queue"; import { secretServiceFactory } from "@app/services/secret/secret-service"; @@ -382,16 +383,12 @@ export const registerRoutes = async ( const orgMembershipDAL = orgMembershipDALFactory(db); const orgBotDAL = orgBotDALFactory(db); const incidentContactDAL = incidentContactDALFactory(db); - const orgRoleDAL = orgRoleDALFactory(db); const rateLimitDAL = rateLimitDALFactory(db); const apiKeyDAL = apiKeyDALFactory(db); const projectDAL = projectDALFactory(db); const projectSshConfigDAL = projectSshConfigDALFactory(db); const projectMembershipDAL = projectMembershipDALFactory(db); - const projectUserAdditionalPrivilegeDAL = projectUserAdditionalPrivilegeDALFactory(db); - const projectUserMembershipRoleDAL = projectUserMembershipRoleDALFactory(db); - const projectRoleDAL = projectRoleDALFactory(db); const projectEnvDAL = projectEnvDALFactory(db); const projectKeyDAL = projectKeyDALFactory(db); const projectBotDAL = projectBotDALFactory(db); @@ -423,8 +420,6 @@ export const registerRoutes = async ( const identityAccessTokenDAL = identityAccessTokenDALFactory(db); const identityOrgMembershipDAL = identityOrgDALFactory(db); const identityProjectDAL = identityProjectDALFactory(db); - const identityProjectMembershipRoleDAL = identityProjectMembershipRoleDALFactory(db); - const identityProjectAdditionalPrivilegeDAL = identityProjectAdditionalPrivilegeDALFactory(db); const identityAuthTemplateDAL = identityAuthTemplateDALFactory(db); const identityTokenAuthDAL = identityTokenAuthDALFactory(db); @@ -482,7 +477,6 @@ export const registerRoutes = async ( const gitAppOrgDAL = gitAppDALFactory(db); const groupDAL = groupDALFactory(db); const groupProjectDAL = groupProjectDALFactory(db); - const groupProjectMembershipRoleDAL = groupProjectMembershipRoleDALFactory(db); const userGroupMembershipDAL = userGroupMembershipDALFactory(db); const secretScanningDAL = secretScanningDALFactory(db); const secretSharingDAL = secretSharingDALFactory(db); @@ -531,17 +525,27 @@ export const registerRoutes = async ( const secretScanningV2DAL = secretScanningV2DALFactory(db); const keyValueStoreDAL = keyValueStoreDALFactory(db); + const membershipDAL = membershipDALFactory(db); + const membershipUserDAL = membershipUserDALFactory(db); + const membershipIdentityDAL = membershipIdentityDALFactory(db); + const membershipGroupDAL = membershipGroupDALFactory(db); + const additionalPrivilegeDAL = additionalPrivilegeDALFactory(db); + const membershipRoleDAL = membershipRoleDALFactory(db); + const roleDAL = roleDALFactory(db); + const eventBusService = eventBusFactory(server.redis); const sseService = sseServiceFactory(eventBusService, server.redis); const permissionService = permissionServiceFactory({ permissionDAL, - orgRoleDAL, - projectRoleDAL, serviceTokenDAL, projectDAL, - keyStore + keyStore, + roleDAL, + userDAL, + identityDAL }); + const assumePrivilegeService = assumePrivilegeServiceFactory({ projectDAL, permissionService @@ -556,6 +560,57 @@ export const registerRoutes = async ( projectDAL }); + const tokenService = tokenServiceFactory({ tokenDAL: authTokenDAL, userDAL, membershipUserDAL }); + + const membershipUserService = membershipUserServiceFactory({ + licenseService, + membershipRoleDAL, + membershipUserDAL, + orgDAL, + permissionService, + roleDAL, + userDAL, + projectDAL, + projectKeyDAL, + smtpService, + tokenService, + userAliasDAL, + userGroupMembershipDAL, + additionalPrivilegeDAL + }); + + const membershipIdentityService = membershipIdentityServiceFactory({ + membershipIdentityDAL, + membershipRoleDAL, + orgDAL, + permissionService, + roleDAL, + additionalPrivilegeDAL + }); + + const membershipGroupService = membershipGroupServiceFactory({ + membershipGroupDAL, + membershipRoleDAL, + roleDAL, + permissionService, + orgDAL + }); + + const roleService = roleServiceFactory({ + permissionService, + roleDAL, + projectDAL, + identityDAL, + userDAL, + externalGroupOrgRoleMappingDAL + }); + const additionalPrivilegeService = additionalPrivilegeServiceFactory({ + additionalPrivilegeDAL, + membershipDAL, + orgDAL, + permissionService + }); + const hsmService = hsmServiceFactory({ hsmModule, envConfig @@ -621,31 +676,29 @@ export const registerRoutes = async ( userDAL, secretApprovalRequestDAL }); - const tokenService = tokenServiceFactory({ tokenDAL: authTokenDAL, userDAL, orgMembershipDAL }); const samlService = samlConfigServiceFactory({ identityMetadataDAL, permissionService, orgDAL, - orgMembershipDAL, userDAL, userAliasDAL, samlConfigDAL, groupDAL, userGroupMembershipDAL, - groupProjectDAL, projectDAL, projectBotDAL, projectKeyDAL, licenseService, tokenService, smtpService, - kmsService + kmsService, + membershipRoleDAL, + membershipGroupDAL }); const groupService = groupServiceFactory({ userDAL, groupDAL, - groupProjectDAL, orgDAL, userGroupMembershipDAL, projectDAL, @@ -653,17 +706,13 @@ export const registerRoutes = async ( projectKeyDAL, permissionService, licenseService, - oidcConfigDAL + oidcConfigDAL, + membershipGroupDAL, + membershipRoleDAL }); const groupProjectService = groupProjectServiceFactory({ groupDAL, - groupProjectDAL, - groupProjectMembershipRoleDAL, - userGroupMembershipDAL, projectDAL, - projectKeyDAL, - projectBotDAL, - projectRoleDAL, permissionService }); @@ -708,18 +757,18 @@ export const registerRoutes = async ( userDAL, userAliasDAL, orgDAL, - orgMembershipDAL, projectDAL, - projectUserAdditionalPrivilegeDAL, - projectMembershipDAL, - groupDAL, - groupProjectDAL, userGroupMembershipDAL, projectKeyDAL, projectBotDAL, permissionService, smtpService, - externalGroupOrgRoleMappingDAL + externalGroupOrgRoleMappingDAL, + groupDAL, + membershipGroupDAL, + membershipRoleDAL, + membershipUserDAL, + additionalPrivilegeDAL }); const githubOrgSyncConfigService = githubOrgSyncServiceFactory({ @@ -729,16 +778,16 @@ export const registerRoutes = async ( permissionService, groupDAL, userGroupMembershipDAL, - orgMembershipDAL + orgMembershipDAL, + membershipRoleDAL, + membershipGroupDAL }); const ldapService = ldapConfigServiceFactory({ ldapConfigDAL, ldapGroupMapDAL, orgDAL, - orgMembershipDAL, groupDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, @@ -749,7 +798,9 @@ export const registerRoutes = async ( licenseService, tokenService, smtpService, - kmsService + kmsService, + membershipGroupDAL, + membershipRoleDAL }); const telemetryService = telemetryServiceFactory({ @@ -771,13 +822,12 @@ export const registerRoutes = async ( const userService = userServiceFactory({ userDAL, orgDAL, - orgMembershipDAL, tokenService, permissionService, groupProjectDAL, smtpService, - projectMembershipDAL, - userAliasDAL + userAliasDAL, + membershipUserDAL }); const upgradePathService = upgradePathServiceFactory({ keyStore }); @@ -794,17 +844,18 @@ export const registerRoutes = async ( tokenService, orgDAL, totpService, - orgMembershipDAL, auditLogService, - notificationService + notificationService, + membershipRoleDAL, + membershipUserDAL }); const passwordService = authPaswordServiceFactory({ tokenService, smtpService, authDAL, userDAL, - orgMembershipDAL, - totpConfigDAL + totpConfigDAL, + membershipUserDAL }); const projectBotService = projectBotServiceFactory({ permissionService, projectBotDAL, projectDAL }); @@ -826,14 +877,10 @@ export const registerRoutes = async ( folderDAL, licenseService, samlConfigDAL, - orgRoleDAL, permissionService, orgDAL, incidentContactDAL, tokenService, - projectUserAdditionalPrivilegeDAL, - projectUserMembershipRoleDAL, - projectRoleDAL, projectDAL, projectMembershipDAL, orgMembershipDAL, @@ -846,7 +893,12 @@ export const registerRoutes = async ( ldapConfigDAL, loginService, projectBotService, - reminderService + reminderService, + membershipRoleDAL, + membershipUserDAL, + roleDAL, + userGroupMembershipDAL, + additionalPrivilegeDAL }); const signupService = authSignupServiceFactory({ tokenService, @@ -857,18 +909,10 @@ export const registerRoutes = async ( projectKeyDAL, projectDAL, projectBotDAL, - groupProjectDAL, - projectMembershipDAL, - projectUserMembershipRoleDAL, orgDAL, orgService, - licenseService - }); - const orgRoleService = orgRoleServiceFactory({ - permissionService, - orgRoleDAL, - orgDAL, - externalGroupOrgRoleMappingDAL + licenseService, + membershipGroupDAL }); const microsoftTeamsService = microsoftTeamsServiceFactory({ @@ -885,8 +929,6 @@ export const registerRoutes = async ( userAliasDAL, identityTokenAuthDAL, identityAccessTokenDAL, - orgMembershipDAL, - identityOrgMembershipDAL, authService: loginService, serverCfgDAL: superAdminDAL, kmsRootConfigDAL, @@ -898,7 +940,10 @@ export const registerRoutes = async ( microsoftTeamsService, invalidateCacheQueue, smtpService, - tokenService + tokenService, + membershipIdentityDAL, + membershipRoleDAL, + membershipUserDAL }); const offlineUsageReportService = offlineUsageReportServiceFactory({ @@ -910,9 +955,10 @@ export const registerRoutes = async ( smtpService, projectDAL, permissionService, - projectUserMembershipRoleDAL, - projectMembershipDAL, - notificationService + notificationService, + membershipRoleDAL, + membershipUserDAL, + projectMembershipDAL }); const rateLimitService = rateLimitServiceFactory({ @@ -938,32 +984,25 @@ export const registerRoutes = async ( const projectMembershipService = projectMembershipServiceFactory({ projectMembershipDAL, - projectUserMembershipRoleDAL, projectDAL, permissionService, - projectBotDAL, - orgDAL, userDAL, - projectUserAdditionalPrivilegeDAL, userGroupMembershipDAL, smtpService, projectKeyDAL, - projectRoleDAL, groupProjectDAL, secretReminderRecipientsDAL, licenseService, - notificationService - }); - const projectUserAdditionalPrivilegeService = projectUserAdditionalPrivilegeServiceFactory({ - permissionService, - projectMembershipDAL, - projectUserAdditionalPrivilegeDAL, - accessApprovalRequestDAL + notificationService, + membershipUserDAL, + additionalPrivilegeDAL, + membershipRoleDAL }); + const projectKeyService = projectKeyServiceFactory({ permissionService, projectKeyDAL, - projectMembershipDAL + membershipUserDAL }); const projectQueueService = projectQueueFactory({ @@ -979,10 +1018,10 @@ export const registerRoutes = async ( secretVersionDAL, projectKeyDAL, projectBotDAL, - projectMembershipDAL, secretApprovalRequestDAL, secretApprovalSecretDAL: secretApprovalRequestSecretDAL, - projectUserMembershipRoleDAL + membershipRoleDAL, + membershipUserDAL }); const certificateAuthorityDAL = certificateAuthorityDALFactory(db); @@ -1121,7 +1160,11 @@ export const registerRoutes = async ( relayDAL, kmsService, licenseService, - permissionService + permissionService, + orgDAL, + notificationService, + smtpService, + userDAL }); const gatewayV2Service = gatewayV2ServiceFactory({ @@ -1131,7 +1174,10 @@ export const registerRoutes = async ( orgGatewayConfigV2DAL, gatewayV2DAL, relayDAL, - permissionService + permissionService, + orgDAL, + notificationService, + smtpService }); const secretSyncQueue = secretSyncQueueFactory({ @@ -1194,14 +1240,15 @@ export const registerRoutes = async ( snapshotSecretV2BridgeDAL, secretApprovalRequestDAL, projectKeyDAL, - projectUserMembershipRoleDAL, orgService, resourceMetadataDAL, folderCommitService, secretSyncQueue, reminderService, eventBusService, - licenseService + licenseService, + membershipRoleDAL, + membershipUserDAL }); const projectService = projectServiceFactory({ @@ -1212,13 +1259,10 @@ export const registerRoutes = async ( secretV2BridgeDAL, projectQueue: projectQueueService, projectBotService, - identityProjectDAL, - identityOrgMembershipDAL, userDAL, projectEnvDAL, orgDAL, projectMembershipDAL, - projectRoleDAL, folderDAL, licenseService, pkiSubscriberDAL, @@ -1232,8 +1276,6 @@ export const registerRoutes = async ( sshCertificateTemplateDAL, sshHostDAL, sshHostGroupDAL, - projectUserMembershipRoleDAL, - identityProjectMembershipRoleDAL, keyStore, kmsService, certificateTemplateDAL, @@ -1242,10 +1284,14 @@ export const registerRoutes = async ( projectMicrosoftTeamsConfigDAL, microsoftTeamsIntegrationDAL, projectTemplateService, - groupProjectDAL, smtpService, reminderService, - notificationService + notificationService, + membershipGroupDAL, + membershipIdentityDAL, + membershipRoleDAL, + membershipUserDAL, + roleDAL }); const projectEnvService = projectEnvServiceFactory({ @@ -1259,16 +1305,6 @@ export const registerRoutes = async ( secretApprovalPolicyEnvironmentDAL: sapEnvironmentDAL }); - const projectRoleService = projectRoleServiceFactory({ - permissionService, - projectRoleDAL, - projectUserMembershipRoleDAL, - identityProjectMembershipRoleDAL, - projectDAL, - identityDAL, - userDAL - }); - const snapshotService = secretSnapshotServiceFactory({ permissionService, licenseService, @@ -1423,21 +1459,18 @@ export const registerRoutes = async ( groupDAL, permissionService, projectEnvDAL, - projectMembershipDAL, projectDAL, userDAL, accessApprovalRequestDAL, - additionalPrivilegeDAL: projectUserAdditionalPrivilegeDAL, accessApprovalRequestReviewerDAL, - orgMembershipDAL + additionalPrivilegeDAL, + membershipUserDAL }); const accessApprovalRequestService = accessApprovalRequestServiceFactory({ projectDAL, permissionService, accessApprovalRequestReviewerDAL, - additionalPrivilegeDAL: projectUserAdditionalPrivilegeDAL, - projectMembershipDAL, accessApprovalPolicyDAL, accessApprovalRequestDAL, projectEnvDAL, @@ -1449,7 +1482,8 @@ export const registerRoutes = async ( groupDAL, microsoftTeamsService, projectMicrosoftTeamsConfigDAL, - notificationService + notificationService, + additionalPrivilegeDAL }); const secretReplicationService = secretReplicationServiceFactory({ @@ -1538,7 +1572,15 @@ export const registerRoutes = async ( identityProjectDAL, licenseService, identityMetadataDAL, - keyStore + keyStore, + orgDAL, + membershipIdentityDAL, + membershipRoleDAL + }); + const identityProjectService = identityProjectServiceFactory({ + identityProjectDAL, + membershipIdentityDAL, + permissionService }); const identityAuthTemplateService = identityAuthTemplateServiceFactory({ @@ -1557,105 +1599,91 @@ export const registerRoutes = async ( identityDAL }); - const identityProjectService = identityProjectServiceFactory({ - permissionService, - projectDAL, - identityProjectDAL, - identityOrgMembershipDAL, - identityProjectMembershipRoleDAL, - projectRoleDAL - }); - const identityProjectAdditionalPrivilegeService = identityProjectAdditionalPrivilegeServiceFactory({ - projectDAL, - identityProjectAdditionalPrivilegeDAL, - permissionService, - identityProjectDAL - }); - - const identityProjectAdditionalPrivilegeV2Service = identityProjectAdditionalPrivilegeV2ServiceFactory({ - projectDAL, - identityProjectAdditionalPrivilegeDAL, - permissionService, - identityProjectDAL - }); - const identityTokenAuthService = identityTokenAuthServiceFactory({ identityTokenAuthDAL, - identityOrgMembershipDAL, identityAccessTokenDAL, permissionService, - licenseService + licenseService, + orgDAL, + membershipIdentityDAL }); const identityUaService = identityUaServiceFactory({ - identityOrgMembershipDAL, permissionService, identityAccessTokenDAL, identityUaClientSecretDAL, identityUaDAL, licenseService, - keyStore + keyStore, + orgDAL, + membershipIdentityDAL }); const identityKubernetesAuthService = identityKubernetesAuthServiceFactory({ identityKubernetesAuthDAL, - identityOrgMembershipDAL, identityAccessTokenDAL, permissionService, licenseService, gatewayService, + orgDAL, gatewayV2Service, gatewayV2DAL, gatewayDAL, - kmsService + kmsService, + membershipIdentityDAL }); const identityGcpAuthService = identityGcpAuthServiceFactory({ identityGcpAuthDAL, - identityOrgMembershipDAL, + orgDAL, identityAccessTokenDAL, permissionService, - licenseService + licenseService, + membershipIdentityDAL }); const identityAliCloudAuthService = identityAliCloudAuthServiceFactory({ identityAccessTokenDAL, + orgDAL, identityAliCloudAuthDAL, - identityOrgMembershipDAL, licenseService, - permissionService + permissionService, + membershipIdentityDAL }); const identityTlsCertAuthService = identityTlsCertAuthServiceFactory({ identityAccessTokenDAL, identityTlsCertAuthDAL, - identityOrgMembershipDAL, licenseService, permissionService, - kmsService + kmsService, + membershipIdentityDAL }); const identityAwsAuthService = identityAwsAuthServiceFactory({ identityAccessTokenDAL, + orgDAL, identityAwsAuthDAL, - identityOrgMembershipDAL, licenseService, - permissionService + permissionService, + membershipIdentityDAL }); const identityAzureAuthService = identityAzureAuthServiceFactory({ identityAzureAuthDAL, - identityOrgMembershipDAL, + orgDAL, identityAccessTokenDAL, permissionService, - licenseService + licenseService, + membershipIdentityDAL }); const identityOciAuthService = identityOciAuthServiceFactory({ identityAccessTokenDAL, + orgDAL, identityOciAuthDAL, - identityOrgMembershipDAL, licenseService, - permissionService + permissionService, + membershipIdentityDAL }); const pitService = pitServiceFactory({ @@ -1674,32 +1702,42 @@ export const registerRoutes = async ( const identityOidcAuthService = identityOidcAuthServiceFactory({ identityOidcAuthDAL, - identityOrgMembershipDAL, + orgDAL, identityAccessTokenDAL, permissionService, licenseService, - kmsService + kmsService, + membershipIdentityDAL }); const identityJwtAuthService = identityJwtAuthServiceFactory({ identityJwtAuthDAL, + orgDAL, permissionService, identityAccessTokenDAL, - identityOrgMembershipDAL, licenseService, - kmsService + kmsService, + membershipIdentityDAL }); const identityLdapAuthService = identityLdapAuthServiceFactory({ identityLdapAuthDAL, + orgDAL, permissionService, kmsService, identityAccessTokenDAL, - identityOrgMembershipDAL, licenseService, identityDAL, identityAuthTemplateDAL, - keyStore + keyStore, + membershipIdentityDAL + }); + + const convertorService = convertorServiceFactory({ + additionalPrivilegeDAL, + membershipDAL, + projectDAL, + groupDAL }); const dynamicSecretProviders = buildDynamicSecretProviders({ @@ -1774,7 +1812,6 @@ export const registerRoutes = async ( const oidcService = oidcConfigServiceFactory({ orgDAL, - orgMembershipDAL, userDAL, userAliasDAL, licenseService, @@ -1787,9 +1824,10 @@ export const registerRoutes = async ( projectKeyDAL, projectDAL, userGroupMembershipDAL, - groupProjectDAL, groupDAL, - auditLogService + auditLogService, + membershipGroupDAL, + membershipRoleDAL }); const userEngagementService = userEngagementServiceFactory({ @@ -1845,8 +1883,8 @@ export const registerRoutes = async ( const externalGroupOrgRoleMappingService = externalGroupOrgRoleMappingServiceFactory({ permissionService, licenseService, - orgRoleDAL, - externalGroupOrgRoleMappingDAL + externalGroupOrgRoleMappingDAL, + roleDAL }); const appConnectionService = appConnectionServiceFactory({ @@ -2192,7 +2230,6 @@ export const registerRoutes = async ( groupProject: groupProjectService, permission: permissionService, org: orgService, - orgRole: orgRoleService, oidc: oidcService, apiKey: apiKeyService, authToken: tokenService, @@ -2202,7 +2239,6 @@ export const registerRoutes = async ( projectMembership: projectMembershipService, projectKey: projectKeyService, projectEnv: projectEnvService, - projectRole: projectRoleService, secret: secretService, secretReplication: secretReplicationService, secretTag: secretTagService, @@ -2217,7 +2253,6 @@ export const registerRoutes = async ( identity: identityService, identityAuthTemplate: identityAuthTemplateService, identityAccessToken: identityAccessTokenService, - identityProject: identityProjectService, identityTokenAuth: identityTokenAuthService, identityUa: identityUaService, identityKubernetesAuth: identityKubernetesAuthService, @@ -2264,9 +2299,6 @@ export const registerRoutes = async ( scim: scimService, secretBlindIndex: secretBlindIndexService, telemetry: telemetryService, - projectUserAdditionalPrivilege: projectUserAdditionalPrivilegeService, - identityProjectAdditionalPrivilege: identityProjectAdditionalPrivilegeService, - identityProjectAdditionalPrivilegeV2: identityProjectAdditionalPrivilegeV2Service, secretSharing: secretSharingService, userEngagement: userEngagementService, externalKms: externalKmsService, @@ -2300,7 +2332,15 @@ export const registerRoutes = async ( pamResource: pamResourceService, pamAccount: pamAccountService, pamSession: pamSessionService, - upgradePath: upgradePathService + upgradePath: upgradePathService, + + membershipUser: membershipUserService, + membershipIdentity: membershipIdentityService, + membershipGroup: membershipGroupService, + role: roleService, + additionalPrivilege: additionalPrivilegeService, + identityProject: identityProjectService, + convertor: convertorService }); const cronJobs: CronJob[] = []; @@ -2330,6 +2370,16 @@ export const registerRoutes = async ( cronJobs.push(configSyncJob); } + const gatewayHealthcheckNotifyJob = await gatewayV2Service.initializeHealthcheckNotify(); + if (gatewayHealthcheckNotifyJob) { + cronJobs.push(gatewayHealthcheckNotifyJob); + } + + const relayHealthcheckNotifyJob = await relayService.initializeHealthcheckNotify(); + if (relayHealthcheckNotifyJob) { + cronJobs.push(relayHealthcheckNotifyJob); + } + const oauthConfigSyncJob = await initializeOauthConfigSync(); if (oauthConfigSyncJob) { cronJobs.push(oauthConfigSyncJob); diff --git a/backend/src/server/routes/sanitizedSchemas.ts b/backend/src/server/routes/sanitizedSchemas.ts index 3442240080..47fbb0e07f 100644 --- a/backend/src/server/routes/sanitizedSchemas.ts +++ b/backend/src/server/routes/sanitizedSchemas.ts @@ -209,11 +209,11 @@ export const SanitizedIdentityPrivilegeSchema = IdentityProjectAdditionalPrivile ) }); -export const SanitizedRoleSchema = ProjectRolesSchema.extend({ +export const SanitizedRoleSchema = ProjectRolesSchema.omit({ version: true }).extend({ permissions: UnpackedPermissionSchema.array() }); -export const SanitizedRoleSchemaV1 = ProjectRolesSchema.extend({ +export const SanitizedRoleSchemaV1 = ProjectRolesSchema.omit({ version: true }).extend({ permissions: UnpackedPermissionSchema.array().transform((caslPermission) => // first map and remove other actions of folder permission caslPermission diff --git a/backend/src/server/routes/v1/admin-router.ts b/backend/src/server/routes/v1/admin-router.ts index 7f5a2f3745..ddb3f23264 100644 --- a/backend/src/server/routes/v1/admin-router.ts +++ b/backend/src/server/routes/v1/admin-router.ts @@ -5,6 +5,7 @@ import { IdentitiesSchema, OrganizationsSchema, OrgMembershipsSchema, + OrgMembershipStatus, SuperAdminSchema, UsersSchema } from "@app/db/schemas"; @@ -172,7 +173,8 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { email: true, id: true, superAdmin: true - }).array() + }).array(), + total: z.number() }) } }, @@ -182,13 +184,11 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { }); }, handler: async (req) => { - const users = await server.services.superAdmin.getUsers({ + const result = await server.services.superAdmin.getUsers({ ...req.query }); - return { - users - }; + return result; } }); @@ -230,7 +230,8 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { createdAt: z.date() }) .array() - }).array() + }).array(), + total: z.number() }) } }, @@ -240,13 +241,11 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { }); }, handler: async (req) => { - const organizations = await server.services.superAdmin.getOrganizations({ + const result = await server.services.superAdmin.getOrganizations({ ...req.query }); - return { - organizations - }; + return result; } }); @@ -281,7 +280,10 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { ); return { - organizationMembership + organizationMembership: { + ...organizationMembership, + status: organizationMembership?.status || OrgMembershipStatus.Accepted + } }; } }); @@ -337,7 +339,8 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { .extend({ isInstanceAdmin: z.boolean() }) - .array() + .array(), + total: z.number() }) } }, @@ -347,13 +350,11 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { }); }, handler: async (req) => { - const identities = await server.services.superAdmin.getIdentities({ + const result = await server.services.superAdmin.getIdentities({ ...req.query }); - return { - identities - }; + return result; } }); @@ -895,7 +896,13 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { }, handler: async (req) => { const organizationMembership = await server.services.superAdmin.resendOrgInvite(req.params, req.permission); - return { organizationMembership }; + + return { + organizationMembership: { + ...organizationMembership, + status: organizationMembership?.status || OrgMembershipStatus.Accepted + } + }; } }); @@ -925,7 +932,12 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { req.params.organizationId, req.permission ); - return { organizationMembership }; + return { + organizationMembership: { + ...organizationMembership, + status: organizationMembership?.status || OrgMembershipStatus.Accepted + } + }; } }); diff --git a/backend/src/server/routes/v1/deprecated-project-membership-router.ts b/backend/src/server/routes/v1/deprecated-project-membership-router.ts index ab225929f5..25e07a4669 100644 --- a/backend/src/server/routes/v1/deprecated-project-membership-router.ts +++ b/backend/src/server/routes/v1/deprecated-project-membership-router.ts @@ -1,9 +1,13 @@ import { z } from "zod"; import { + AccessScope, + OrgMembershipRole, OrgMembershipsSchema, + OrgMembershipStatus, ProjectMembershipsSchema, ProjectUserMembershipRolesSchema, + TemporaryPermissionMode, UserEncryptionKeysSchema, UsersSchema } from "@app/db/schemas"; @@ -13,7 +17,6 @@ import { ms } from "@app/lib/ms"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; -import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZodProvider) => { server.route({ @@ -66,14 +69,23 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const memberships = await server.services.projectMembership.getProjectMemberships({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + const { data: memberships } = await server.services.membershipUser.listMemberships({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.workspaceId + }, + data: {} }); - return { memberships }; + + return { + memberships: memberships.map((el) => ({ + ...el, + userId: el.actorUserId as string, + projectId: req.params.workspaceId + })) + }; } }); @@ -124,15 +136,30 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const membership = await server.services.projectMembership.getProjectMembershipById({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, - id: req.params.membershipId + const { userId } = await server.services.convertor.userMembershipIdToUserId( + req.params.membershipId, + AccessScope.Project, + req.permission.orgId + ); + const membership = await server.services.membershipUser.getMembershipByUserId({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.workspaceId + }, + selector: { + userId + } }); - return { membership }; + + return { + membership: { + ...membership, + userId, + projectId: req.params.workspaceId + } + }; } }); @@ -241,14 +268,22 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ ...req.auditLogInfo, event: { type: EventType.ADD_BATCH_PROJECT_MEMBER, - metadata: data.map(({ userId }) => ({ - userId: userId || "", + metadata: data.map(({ actorUserId }) => ({ + userId: actorUserId || "", email: "" })) } }); - return { data, success: true }; + return { + data: data.map((el) => ({ + ...el, + orgId: req.permission.orgId, + role: OrgMembershipRole.Member, + status: el.status || OrgMembershipStatus.Accepted + })), + success: true + }; } }); @@ -282,7 +317,7 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ z.object({ role: z.string(), isTemporary: z.literal(true), - temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryMode: z.nativeEnum(TemporaryPermissionMode), temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) @@ -300,30 +335,28 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const roles = await server.services.projectMembership.updateProjectMembership({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, - membershipId: req.params.membershipId, - roles: req.body.roles + const { userId } = await server.services.convertor.userMembershipIdToUserId( + req.params.membershipId, + AccessScope.Project, + req.permission.orgId + ); + + const { membership } = await server.services.membershipUser.updateMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.workspaceId + }, + selector: { + userId + }, + data: { + roles: req.body.roles + } }); - // await server.services.auditLog.createAuditLog({ - // ...req.auditLogInfo, - // projectId: req.params.workspaceId, - // event: { - // type: EventType.UPDATE_USER_WORKSPACE_ROLE, - // metadata: { - // userId: membership.userId, - // newRole: req.body.role, - // oldRole: membership.role, - // email: "" - // } - // } - // }); - return { roles }; + return { roles: membership.roles.map((el) => ({ ...el, projectMembershipId: req.params.membershipId })) }; } }); @@ -352,13 +385,22 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const membership = await server.services.projectMembership.deleteProjectMembership({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, - membershipId: req.params.membershipId + const { userId } = await server.services.convertor.userMembershipIdToUserId( + req.params.membershipId, + AccessScope.Project, + req.permission.orgId + ); + + const { membership } = await server.services.membershipUser.deleteMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.workspaceId + }, + selector: { + userId + } }); await server.services.auditLog.createAuditLog({ @@ -367,12 +409,19 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ event: { type: EventType.REMOVE_PROJECT_MEMBER, metadata: { - userId: membership.userId, + userId: membership.actorUserId as string, email: "" } } }); - return { membership }; + + return { + membership: { + ...membership, + userId, + projectId: req.params.workspaceId + } + }; } }); }; diff --git a/backend/src/server/routes/v1/group-project-router.ts b/backend/src/server/routes/v1/group-project-router.ts index d07e3bd8ba..93caf50351 100644 --- a/backend/src/server/routes/v1/group-project-router.ts +++ b/backend/src/server/routes/v1/group-project-router.ts @@ -1,19 +1,21 @@ import { z } from "zod"; import { + AccessScope, GroupProjectMembershipsSchema, GroupsSchema, ProjectMembershipRole, ProjectUserMembershipRolesSchema, + TemporaryPermissionMode, UsersSchema } from "@app/db/schemas"; import { EFilterReturnedUsers } from "@app/ee/services/group/group-types"; import { ApiDocsTags, GROUPS, PROJECTS } from "@app/lib/api-docs"; import { ms } from "@app/lib/ms"; +import { isUuidV4 } from "@app/lib/validator"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; -import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; export const registerGroupProjectRouter = async (server: FastifyZodProvider) => { server.route({ @@ -54,7 +56,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => z.object({ role: z.string(), isTemporary: z.literal(true), - temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryMode: z.nativeEnum(TemporaryPermissionMode), temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) @@ -73,17 +75,32 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => } }, handler: async (req) => { - const groupMembership = await server.services.groupProject.addGroupToProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - roles: req.body.roles || [{ role: req.body.role }], - projectId: req.params.projectId, - groupIdOrName: req.params.groupIdOrName + let groupId = req.params.groupIdOrName; + if (!isUuidV4(req.params.groupIdOrName)) { + const groupDetails = await server.services.convertor.getGroupIdFromName(groupId, req.permission.orgId); + groupId = groupDetails.groupId; + } + + const { membership: groupMembership } = await server.services.membershipGroup.createMembership({ + permission: req.permission, + data: { + groupId, + roles: req.body.roles || [{ role: req.body.role, isTemporary: false }] + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMembership }; + return { + groupMembership: { + ...groupMembership, + projectId: req.params.projectId, + groupId: groupMembership.actorGroupId as string + } + }; } }); @@ -115,7 +132,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => z.object({ role: z.string(), isTemporary: z.literal(true), - temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryMode: z.nativeEnum(TemporaryPermissionMode), temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) @@ -131,17 +148,22 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => } }, handler: async (req) => { - const roles = await server.services.groupProject.updateGroupInProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId, - groupId: req.params.groupId, - roles: req.body.roles + const { membership: groupMembership } = await server.services.membershipGroup.updateMembership({ + permission: req.permission, + selector: { + groupId: req.params.groupId + }, + data: { + roles: req.body.roles + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { roles }; + return { roles: groupMembership.roles.map((el) => ({ ...el, projectMembershipId: groupMembership.id })) }; } }); @@ -172,16 +194,25 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => } }, handler: async (req) => { - const groupMembership = await server.services.groupProject.removeGroupFromProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - groupId: req.params.groupId, - projectId: req.params.projectId + const { membership: groupMembership } = await server.services.membershipGroup.deleteMembership({ + permission: req.permission, + selector: { + groupId: req.params.groupId + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMembership }; + return { + groupMembership: { + ...groupMembership, + projectId: req.params.projectId, + groupId: groupMembership.actorGroupId as string + } + }; } }); @@ -233,15 +264,17 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => } }, handler: async (req) => { - const groupMemberships = await server.services.groupProject.listGroupsInProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId + const { memberships: groupMemberships } = await server.services.membershipGroup.listMemberships({ + permission: req.permission, + data: {}, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMemberships }; + return { groupMemberships: groupMemberships.map((el) => ({ ...el, groupId: el.actorGroupId as string })) }; } }); @@ -292,15 +325,25 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => } }, handler: async (req) => { - const groupMembership = await server.services.groupProject.getGroupInProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - ...req.params + const { membership: groupMembership } = await server.services.membershipGroup.getMembershipByGroupId({ + permission: req.permission, + selector: { + groupId: req.params.groupId + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMembership }; + return { + groupMembership: { + ...groupMembership, + projectId: req.params.projectId, + groupId: groupMembership.actorGroupId as string + } + }; } }); diff --git a/backend/src/server/routes/v1/identity-alicloud-auth-router.ts b/backend/src/server/routes/v1/identity-alicloud-auth-router.ts index a9b2d9b031..4c444d7043 100644 --- a/backend/src/server/routes/v1/identity-alicloud-auth-router.ts +++ b/backend/src/server/routes/v1/identity-alicloud-auth-router.ts @@ -78,7 +78,7 @@ export const registerIdentityAliCloudAuthRouter = async (server: FastifyZodProvi await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_ALICLOUD_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-aws-iam-auth-router.ts b/backend/src/server/routes/v1/identity-aws-iam-auth-router.ts index effd66a684..fe7cf7d5b9 100644 --- a/backend/src/server/routes/v1/identity-aws-iam-auth-router.ts +++ b/backend/src/server/routes/v1/identity-aws-iam-auth-router.ts @@ -45,7 +45,7 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider) await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_AWS_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-azure-auth-router.ts b/backend/src/server/routes/v1/identity-azure-auth-router.ts index 9053bc2e35..9ef733a251 100644 --- a/backend/src/server/routes/v1/identity-azure-auth-router.ts +++ b/backend/src/server/routes/v1/identity-azure-auth-router.ts @@ -40,7 +40,7 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_AZURE_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-gcp-auth-router.ts b/backend/src/server/routes/v1/identity-gcp-auth-router.ts index b83faf9d92..91e8038a7e 100644 --- a/backend/src/server/routes/v1/identity-gcp-auth-router.ts +++ b/backend/src/server/routes/v1/identity-gcp-auth-router.ts @@ -40,7 +40,7 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider) await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_GCP_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-jwt-auth-router.ts b/backend/src/server/routes/v1/identity-jwt-auth-router.ts index 373a8b927e..ecffaebe14 100644 --- a/backend/src/server/routes/v1/identity-jwt-auth-router.ts +++ b/backend/src/server/routes/v1/identity-jwt-auth-router.ts @@ -119,7 +119,7 @@ export const registerIdentityJwtAuthRouter = async (server: FastifyZodProvider) await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_JWT_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-kubernetes-auth-router.ts b/backend/src/server/routes/v1/identity-kubernetes-auth-router.ts index 879310790e..6f0500c294 100644 --- a/backend/src/server/routes/v1/identity-kubernetes-auth-router.ts +++ b/backend/src/server/routes/v1/identity-kubernetes-auth-router.ts @@ -64,7 +64,7 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_KUBERNETES_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-ldap-auth-router.ts b/backend/src/server/routes/v1/identity-ldap-auth-router.ts index 512f253e08..ac384d2164 100644 --- a/backend/src/server/routes/v1/identity-ldap-auth-router.ts +++ b/backend/src/server/routes/v1/identity-ldap-auth-router.ts @@ -168,7 +168,7 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_LDAP_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-oci-auth-router.ts b/backend/src/server/routes/v1/identity-oci-auth-router.ts index e529f300bd..df19492a67 100644 --- a/backend/src/server/routes/v1/identity-oci-auth-router.ts +++ b/backend/src/server/routes/v1/identity-oci-auth-router.ts @@ -57,7 +57,7 @@ export const registerIdentityOciAuthRouter = async (server: FastifyZodProvider) await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_OCI_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-oidc-auth-router.ts b/backend/src/server/routes/v1/identity-oidc-auth-router.ts index 74cd94eb5c..147105aba4 100644 --- a/backend/src/server/routes/v1/identity-oidc-auth-router.ts +++ b/backend/src/server/routes/v1/identity-oidc-auth-router.ts @@ -67,7 +67,7 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider) await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_OIDC_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-project-router.ts b/backend/src/server/routes/v1/identity-project-router.ts index 9de7ed1aaa..fd39c7efee 100644 --- a/backend/src/server/routes/v1/identity-project-router.ts +++ b/backend/src/server/routes/v1/identity-project-router.ts @@ -1,10 +1,12 @@ import { z } from "zod"; import { + AccessScope, IdentitiesSchema, IdentityProjectMembershipsSchema, ProjectMembershipRole, - ProjectUserMembershipRolesSchema + ProjectUserMembershipRolesSchema, + TemporaryPermissionMode } from "@app/db/schemas"; import { ApiDocsTags, ORGANIZATIONS, PROJECT_IDENTITIES } from "@app/lib/api-docs"; import { BadRequestError } from "@app/lib/errors"; @@ -14,7 +16,6 @@ import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; import { ProjectIdentityOrderBy } from "@app/services/identity-project/identity-project-types"; -import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; import { SanitizedProjectSchema } from "../sanitizedSchemas"; @@ -56,7 +57,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) role: z.string().describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), isTemporary: z.literal(true).describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), temporaryMode: z - .nativeEnum(ProjectUserMembershipTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), temporaryRange: z .string() @@ -82,16 +83,22 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) const { role, roles } = req.body; if (!role && !roles) throw new BadRequestError({ message: "You must provide either role or roles field" }); - const identityMembership = await server.services.identityProject.createProjectIdentity({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - identityId: req.params.identityId, - projectId: req.params.projectId, - roles: roles || [{ role }] + const { membership } = await server.services.membershipIdentity.createMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + data: { + identityId: req.params.identityId, + roles: roles || [{ role, isTemporary: false }] + } }); - return { identityMembership }; + + return { + identityMembership: { ...membership, identityId: req.params.identityId, projectId: req.params.projectId } + }; } }); @@ -130,7 +137,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) role: z.string().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.role), isTemporary: z.literal(true).describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.isTemporary), temporaryMode: z - .nativeEnum(ProjectUserMembershipTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.temporaryMode), temporaryRange: z .string() @@ -153,16 +160,24 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) } }, handler: async (req) => { - const roles = await server.services.identityProject.updateProjectIdentity({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - identityId: req.params.identityId, - projectId: req.params.projectId, - roles: req.body.roles + const { membership } = await server.services.membershipIdentity.updateMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + identityId: req.params.identityId + }, + data: { + roles: req.body.roles + } }); - return { roles }; + + return { + roles: membership.roles.map((el) => ({ ...el, projectMembershipId: membership.id })) + }; } }); @@ -193,15 +208,21 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) } }, handler: async (req) => { - const identityMembership = await server.services.identityProject.deleteProjectIdentity({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - identityId: req.params.identityId, - projectId: req.params.projectId + const { membership } = await server.services.membershipIdentity.deleteMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + identityId: req.params.identityId + } }); - return { identityMembership }; + + return { + identityMembership: { ...membership, identityId: req.params.identityId, projectId: req.params.projectId } + }; } }); diff --git a/backend/src/server/routes/v1/identity-tls-cert-auth-router.ts b/backend/src/server/routes/v1/identity-tls-cert-auth-router.ts index 0bb9e08ea6..0503ed16f0 100644 --- a/backend/src/server/routes/v1/identity-tls-cert-auth-router.ts +++ b/backend/src/server/routes/v1/identity-tls-cert-auth-router.ts @@ -72,7 +72,7 @@ export const registerIdentityTlsCertAuthRouter = async (server: FastifyZodProvid await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_TLS_CERT_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-token-auth-router.ts b/backend/src/server/routes/v1/identity-token-auth-router.ts index e22c41889d..9a33d0651c 100644 --- a/backend/src/server/routes/v1/identity-token-auth-router.ts +++ b/backend/src/server/routes/v1/identity-token-auth-router.ts @@ -332,7 +332,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.CREATE_TOKEN_IDENTITY_TOKEN_AUTH, metadata: { @@ -393,7 +393,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.GET_TOKENS_IDENTITY_TOKEN_AUTH, metadata: { @@ -447,7 +447,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.UPDATE_TOKEN_IDENTITY_TOKEN_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/identity-universal-auth-router.ts b/backend/src/server/routes/v1/identity-universal-auth-router.ts index 6d911a88e1..153e1e6413 100644 --- a/backend/src/server/routes/v1/identity-universal-auth-router.ts +++ b/backend/src/server/routes/v1/identity-universal-auth-router.ts @@ -59,7 +59,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => { await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - orgId: identityMembershipOrg?.orgId, + orgId: identityMembershipOrg.scopeOrgId, event: { type: EventType.LOGIN_IDENTITY_UNIVERSAL_AUTH, metadata: { diff --git a/backend/src/server/routes/v1/invite-org-router.ts b/backend/src/server/routes/v1/invite-org-router.ts index b98e94be0b..0f78e04482 100644 --- a/backend/src/server/routes/v1/invite-org-router.ts +++ b/backend/src/server/routes/v1/invite-org-router.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { OrgMembershipRole, ProjectMembershipRole, UsersSchema } from "@app/db/schemas"; +import { AccessScope, OrgMembershipRole, UsersSchema } from "@app/db/schemas"; import { inviteUserRateLimit, smtpRateLimit } from "@app/server/config/rateLimiter"; import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; @@ -23,13 +23,6 @@ export const registerInviteOrgRouter = async (server: FastifyZodProvider) => { .array() .refine((val) => val.every((el) => el === el.toLowerCase()), "Email must be lowercase"), organizationId: z.string().trim(), - projects: z - .object({ - id: z.string(), - projectRoleSlug: z.string().array().default([ProjectMembershipRole.Member]) - }) - .array() - .optional(), organizationRoleSlug: z.string().default(OrgMembershipRole.Member) }), response: { @@ -50,15 +43,16 @@ export const registerInviteOrgRouter = async (server: FastifyZodProvider) => { handler: async (req) => { if (req.auth.actor !== ActorType.USER) return; - const { signupTokens: completeInviteLinks } = await server.services.org.inviteUserToOrganization({ - orgId: req.body.organizationId, - actor: req.permission.type, - actorId: req.permission.id, - inviteeEmails: req.body.inviteeEmails, - projects: req.body.projects, - organizationRoleSlug: req.body.organizationRoleSlug, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId + const { signUpTokens: completeInviteLinks } = await server.services.membershipUser.createMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Organization, + orgId: req.permission.orgId + }, + data: { + usernames: req.body.inviteeEmails, + roles: [{ isTemporary: false, role: req.body.organizationRoleSlug }] + } }); await server.services.telemetry.sendPostHogEvents({ diff --git a/backend/src/server/routes/v1/org-admin-router.ts b/backend/src/server/routes/v1/org-admin-router.ts index d4b1ee1883..8260b3a8fb 100644 --- a/backend/src/server/routes/v1/org-admin-router.ts +++ b/backend/src/server/routes/v1/org-admin-router.ts @@ -86,7 +86,7 @@ export const registerOrgAdminRouter = async (server: FastifyZodProvider) => { }); } - return { membership }; + return { membership: { ...membership, userId: req.permission.id, projectId: req.params.projectId } }; } }); }; diff --git a/backend/src/server/routes/v1/organization-router.ts b/backend/src/server/routes/v1/organization-router.ts index b8eb3ad6b1..872b7b157d 100644 --- a/backend/src/server/routes/v1/organization-router.ts +++ b/backend/src/server/routes/v1/organization-router.ts @@ -6,6 +6,7 @@ import { GroupsSchema, IncidentContactsSchema, OrgMembershipsSchema, + OrgMembershipStatus, OrgRolesSchema, UsersSchema } from "@app/db/schemas"; @@ -263,7 +264,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { req.permission.authMethod, req.permission.orgId ); - return { users }; + return { users: users.map((el) => ({ ...el, status: el.status || OrgMembershipStatus.Accepted })) }; } }); diff --git a/backend/src/server/routes/v1/pki-sync-routers/aws-certificate-manager-pki-sync-router.ts b/backend/src/server/routes/v1/pki-sync-routers/aws-certificate-manager-pki-sync-router.ts new file mode 100644 index 0000000000..21bfadbac3 --- /dev/null +++ b/backend/src/server/routes/v1/pki-sync-routers/aws-certificate-manager-pki-sync-router.ts @@ -0,0 +1,22 @@ +import { + AWS_CERTIFICATE_MANAGER_PKI_SYNC_LIST_OPTION, + AwsCertificateManagerPkiSyncSchema, + CreateAwsCertificateManagerPkiSyncSchema, + UpdateAwsCertificateManagerPkiSyncSchema +} from "@app/services/pki-sync/aws-certificate-manager"; +import { PkiSync } from "@app/services/pki-sync/pki-sync-enums"; + +import { registerSyncPkiEndpoints } from "./pki-sync-endpoints"; + +export const registerAwsCertificateManagerPkiSyncRouter = async (server: FastifyZodProvider) => + registerSyncPkiEndpoints({ + destination: PkiSync.AwsCertificateManager, + server, + responseSchema: AwsCertificateManagerPkiSyncSchema, + createSchema: CreateAwsCertificateManagerPkiSyncSchema, + updateSchema: UpdateAwsCertificateManagerPkiSyncSchema, + syncOptions: { + canImportCertificates: AWS_CERTIFICATE_MANAGER_PKI_SYNC_LIST_OPTION.canImportCertificates, + canRemoveCertificates: AWS_CERTIFICATE_MANAGER_PKI_SYNC_LIST_OPTION.canRemoveCertificates + } + }); diff --git a/backend/src/server/routes/v1/pki-sync-routers/index.ts b/backend/src/server/routes/v1/pki-sync-routers/index.ts index 326b650e94..4b81db27f2 100644 --- a/backend/src/server/routes/v1/pki-sync-routers/index.ts +++ b/backend/src/server/routes/v1/pki-sync-routers/index.ts @@ -1,9 +1,11 @@ import { PkiSync } from "@app/services/pki-sync/pki-sync-enums"; +import { registerAwsCertificateManagerPkiSyncRouter } from "./aws-certificate-manager-pki-sync-router"; import { registerAzureKeyVaultPkiSyncRouter } from "./azure-key-vault-pki-sync-router"; export * from "./pki-sync-router"; export const PKI_SYNC_REGISTER_ROUTER_MAP: Record Promise> = { - [PkiSync.AzureKeyVault]: registerAzureKeyVaultPkiSyncRouter + [PkiSync.AzureKeyVault]: registerAzureKeyVaultPkiSyncRouter, + [PkiSync.AwsCertificateManager]: registerAwsCertificateManagerPkiSyncRouter }; diff --git a/backend/src/server/routes/v1/project-membership-router.ts b/backend/src/server/routes/v1/project-membership-router.ts index f3cdfe7016..57fdad031c 100644 --- a/backend/src/server/routes/v1/project-membership-router.ts +++ b/backend/src/server/routes/v1/project-membership-router.ts @@ -1,10 +1,11 @@ import { z } from "zod"; import { - OrgMembershipRole, + AccessScope, ProjectMembershipRole, ProjectMembershipsSchema, ProjectUserMembershipRolesSchema, + TemporaryPermissionMode, UserEncryptionKeysSchema, UsersSchema } from "@app/db/schemas"; @@ -14,7 +15,6 @@ import { ms } from "@app/lib/ms"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; -import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; export const registerProjectMembershipRouter = async (server: FastifyZodProvider) => { server.route({ @@ -67,14 +67,23 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const memberships = await server.services.projectMembership.getProjectMemberships({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId + const { data: memberships } = await server.services.membershipUser.listMemberships({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + data: {} }); - return { memberships }; + + return { + memberships: memberships.map((el) => ({ + ...el, + userId: el.actorUserId as string, + projectId: req.params.projectId + })) + }; } }); @@ -125,15 +134,30 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const membership = await server.services.projectMembership.getProjectMembershipById({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId, - id: req.params.membershipId + const { userId } = await server.services.convertor.userMembershipIdToUserId( + req.params.membershipId, + AccessScope.Project, + req.permission.orgId + ); + const membership = await server.services.membershipUser.getMembershipByUserId({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + userId + } }); - return { membership }; + + return { + membership: { + ...membership, + userId, + projectId: req.params.projectId + } + }; } }); @@ -242,20 +266,17 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { const usernamesAndEmails = [...req.body.emails, ...req.body.usernames]; - const { projectMemberships: memberships } = await server.services.org.inviteUserToOrganization({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - inviteeEmails: usernamesAndEmails, - orgId: req.permission.orgId, - organizationRoleSlug: OrgMembershipRole.NoAccess, - projects: [ - { - id: req.params.projectId, - projectRoleSlug: req.body.roleSlugs || [ProjectMembershipRole.Member] - } - ] + const { memberships } = await server.services.membershipUser.createMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + data: { + roles: (req.body.roleSlugs || [ProjectMembershipRole.Member]).map((role) => ({ isTemporary: false, role })), + usernames: usernamesAndEmails + } }); await server.services.auditLog.createAuditLog({ @@ -263,15 +284,21 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider ...req.auditLogInfo, event: { type: EventType.ADD_BATCH_PROJECT_MEMBER, - metadata: memberships.map(({ userId, id }) => ({ - userId: userId || "", + metadata: memberships.map(({ actorUserId, id }) => ({ + userId: actorUserId || "", membershipId: id, email: "" })) } }); - return { memberships }; + return { + memberships: memberships.map((el) => ({ + ...el, + userId: el.actorUserId as string, + projectId: req.params.projectId + })) + }; } }); @@ -305,7 +332,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider z.object({ role: z.string(), isTemporary: z.literal(true), - temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryMode: z.nativeEnum(TemporaryPermissionMode), temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) @@ -323,17 +350,28 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const roles = await server.services.projectMembership.updateProjectMembership({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId, - membershipId: req.params.membershipId, - roles: req.body.roles + const { userId } = await server.services.convertor.userMembershipIdToUserId( + req.params.membershipId, + AccessScope.Project, + req.permission.orgId + ); + + const { membership } = await server.services.membershipUser.updateMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + userId + }, + data: { + roles: req.body.roles + } }); - return { roles }; + return { roles: membership.roles.map((el) => ({ ...el, projectMembershipId: req.params.membershipId })) }; } }); @@ -396,13 +434,19 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider event: { type: EventType.REMOVE_PROJECT_MEMBER, metadata: { - userId: membership.userId, + userId: membership.actorUserId as string, email: "" } } }); } - return { memberships }; + return { + memberships: memberships.map((el) => ({ + ...el, + userId: el.actorUserId as string, + projectId: req.params.projectId + })) + }; } }); @@ -431,13 +475,22 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const membership = await server.services.projectMembership.deleteProjectMembership({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId, - membershipId: req.params.membershipId + const { userId } = await server.services.convertor.userMembershipIdToUserId( + req.params.membershipId, + AccessScope.Project, + req.permission.orgId + ); + + const { membership } = await server.services.membershipUser.deleteMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + userId + } }); await server.services.auditLog.createAuditLog({ @@ -446,12 +499,19 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider event: { type: EventType.REMOVE_PROJECT_MEMBER, metadata: { - userId: membership.userId, + userId: membership.actorUserId as string, email: "" } } }); - return { membership }; + + return { + membership: { + ...membership, + userId, + projectId: req.params.projectId + } + }; } }); @@ -479,7 +539,13 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider actor: req.permission.type, projectId: req.params.projectId }); - return { membership }; + return { + membership: { + ...membership, + userId: membership.actorUserId as string, + projectId: req.params.projectId + } + }; } }); }; diff --git a/backend/src/server/routes/v1/secret-sync-routers/secret-sync-endpoints.ts b/backend/src/server/routes/v1/secret-sync-routers/secret-sync-endpoints.ts index 9db3a2013c..9da2f4b693 100644 --- a/backend/src/server/routes/v1/secret-sync-routers/secret-sync-endpoints.ts +++ b/backend/src/server/routes/v1/secret-sync-routers/secret-sync-endpoints.ts @@ -425,4 +425,42 @@ export const registerSyncSecretsEndpoints = { + const { destinationConfig, excludeSyncId, projectId } = req.body; + + const result = await server.services.secretSync.checkDuplicateDestination( + { + destinationConfig: destinationConfig as Record, + destination, + excludeSyncId, + projectId + }, + req.permission + ); + + return result; + } + }); }; diff --git a/backend/src/server/routes/v2/deprecated-group-project-router.ts b/backend/src/server/routes/v2/deprecated-group-project-router.ts index f0e4ee705a..5be7df8387 100644 --- a/backend/src/server/routes/v2/deprecated-group-project-router.ts +++ b/backend/src/server/routes/v2/deprecated-group-project-router.ts @@ -1,19 +1,21 @@ import { z } from "zod"; import { + AccessScope, GroupProjectMembershipsSchema, GroupsSchema, ProjectMembershipRole, ProjectUserMembershipRolesSchema, + TemporaryPermissionMode, UsersSchema } from "@app/db/schemas"; import { EFilterReturnedUsers } from "@app/ee/services/group/group-types"; import { ApiDocsTags, GROUPS, PROJECTS } from "@app/lib/api-docs"; import { ms } from "@app/lib/ms"; +import { isUuidV4 } from "@app/lib/validator"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; -import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodProvider) => { server.route({ @@ -54,7 +56,7 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro z.object({ role: z.string(), isTemporary: z.literal(true), - temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryMode: z.nativeEnum(TemporaryPermissionMode), temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) @@ -73,17 +75,32 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro } }, handler: async (req) => { - const groupMembership = await server.services.groupProject.addGroupToProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - roles: req.body.roles || [{ role: req.body.role }], - projectId: req.params.projectId, - groupIdOrName: req.params.groupIdOrName + let groupId = req.params.groupIdOrName; + if (!isUuidV4(req.params.groupIdOrName)) { + const groupDetails = await server.services.convertor.getGroupIdFromName(groupId, req.permission.orgId); + groupId = groupDetails.groupId; + } + + const { membership: groupMembership } = await server.services.membershipGroup.createMembership({ + permission: req.permission, + data: { + groupId, + roles: req.body.roles || [{ role: req.body.role, isTemporary: false }] + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMembership }; + return { + groupMembership: { + ...groupMembership, + projectId: req.params.projectId, + groupId: groupMembership.actorGroupId as string + } + }; } }); @@ -115,7 +132,7 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro z.object({ role: z.string(), isTemporary: z.literal(true), - temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryMode: z.nativeEnum(TemporaryPermissionMode), temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) @@ -131,17 +148,22 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro } }, handler: async (req) => { - const roles = await server.services.groupProject.updateGroupInProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId, - groupId: req.params.groupId, - roles: req.body.roles + const { membership: groupMembership } = await server.services.membershipGroup.updateMembership({ + permission: req.permission, + selector: { + groupId: req.params.groupId + }, + data: { + roles: req.body.roles + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { roles }; + return { roles: groupMembership.roles.map((el) => ({ ...el, projectMembershipId: groupMembership.id })) }; } }); @@ -172,16 +194,25 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro } }, handler: async (req) => { - const groupMembership = await server.services.groupProject.removeGroupFromProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - groupId: req.params.groupId, - projectId: req.params.projectId + const { membership: groupMembership } = await server.services.membershipGroup.deleteMembership({ + permission: req.permission, + selector: { + groupId: req.params.groupId + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMembership }; + return { + groupMembership: { + ...groupMembership, + projectId: req.params.projectId, + groupId: groupMembership.actorGroupId as string + } + }; } }); @@ -233,15 +264,17 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro } }, handler: async (req) => { - const groupMemberships = await server.services.groupProject.listGroupsInProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId + const { memberships: groupMemberships } = await server.services.membershipGroup.listMemberships({ + permission: req.permission, + data: {}, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMemberships }; + return { groupMemberships: groupMemberships.map((el) => ({ ...el, groupId: el.actorGroupId as string })) }; } }); @@ -292,15 +325,25 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro } }, handler: async (req) => { - const groupMembership = await server.services.groupProject.getGroupInProject({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - ...req.params + const { membership: groupMembership } = await server.services.membershipGroup.getMembershipByGroupId({ + permission: req.permission, + selector: { + groupId: req.params.groupId + }, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + } }); - return { groupMembership }; + return { + groupMembership: { + ...groupMembership, + projectId: req.params.projectId, + groupId: groupMembership.actorGroupId as string + } + }; } }); diff --git a/backend/src/server/routes/v2/deprecated-identity-project-router.ts b/backend/src/server/routes/v2/deprecated-identity-project-router.ts index c16c874aec..85ea7d1124 100644 --- a/backend/src/server/routes/v2/deprecated-identity-project-router.ts +++ b/backend/src/server/routes/v2/deprecated-identity-project-router.ts @@ -1,10 +1,12 @@ import { z } from "zod"; import { + AccessScope, IdentitiesSchema, IdentityProjectMembershipsSchema, ProjectMembershipRole, - ProjectUserMembershipRolesSchema + ProjectUserMembershipRolesSchema, + TemporaryPermissionMode } from "@app/db/schemas"; import { ApiDocsTags, ORGANIZATIONS, PROJECT_IDENTITIES } from "@app/lib/api-docs"; import { BadRequestError } from "@app/lib/errors"; @@ -14,7 +16,6 @@ import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; import { ProjectIdentityOrderBy } from "@app/services/identity-project/identity-project-types"; -import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; import { SanitizedProjectSchema } from "../sanitizedSchemas"; @@ -56,7 +57,7 @@ export const registerDeprecatedIdentityProjectRouter = async (server: FastifyZod role: z.string().describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), isTemporary: z.literal(true).describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), temporaryMode: z - .nativeEnum(ProjectUserMembershipTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), temporaryRange: z .string() @@ -82,16 +83,22 @@ export const registerDeprecatedIdentityProjectRouter = async (server: FastifyZod const { role, roles } = req.body; if (!role && !roles) throw new BadRequestError({ message: "You must provide either role or roles field" }); - const identityMembership = await server.services.identityProject.createProjectIdentity({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - identityId: req.params.identityId, - projectId: req.params.projectId, - roles: roles || [{ role }] + const { membership } = await server.services.membershipIdentity.createMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + data: { + identityId: req.params.identityId, + roles: roles || [{ role, isTemporary: false }] + } }); - return { identityMembership }; + + return { + identityMembership: { ...membership, identityId: req.params.identityId, projectId: req.params.projectId } + }; } }); @@ -130,7 +137,7 @@ export const registerDeprecatedIdentityProjectRouter = async (server: FastifyZod role: z.string().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.role), isTemporary: z.literal(true).describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.isTemporary), temporaryMode: z - .nativeEnum(ProjectUserMembershipTemporaryMode) + .nativeEnum(TemporaryPermissionMode) .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.temporaryMode), temporaryRange: z .string() @@ -153,16 +160,24 @@ export const registerDeprecatedIdentityProjectRouter = async (server: FastifyZod } }, handler: async (req) => { - const roles = await server.services.identityProject.updateProjectIdentity({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - identityId: req.params.identityId, - projectId: req.params.projectId, - roles: req.body.roles + const { membership } = await server.services.membershipIdentity.updateMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + identityId: req.params.identityId + }, + data: { + roles: req.body.roles + } }); - return { roles }; + + return { + roles: membership.roles.map((el) => ({ ...el, projectMembershipId: membership.id })) + }; } }); @@ -193,15 +208,21 @@ export const registerDeprecatedIdentityProjectRouter = async (server: FastifyZod } }, handler: async (req) => { - const identityMembership = await server.services.identityProject.deleteProjectIdentity({ - actor: req.permission.type, - actorId: req.permission.id, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - identityId: req.params.identityId, - projectId: req.params.projectId + const { membership } = await server.services.membershipIdentity.deleteMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + selector: { + identityId: req.params.identityId + } }); - return { identityMembership }; + + return { + identityMembership: { ...membership, identityId: req.params.identityId, projectId: req.params.projectId } + }; } }); diff --git a/backend/src/server/routes/v2/deprecated-project-membership-router.ts b/backend/src/server/routes/v2/deprecated-project-membership-router.ts index d88d2f996a..4dff4d5ea9 100644 --- a/backend/src/server/routes/v2/deprecated-project-membership-router.ts +++ b/backend/src/server/routes/v2/deprecated-project-membership-router.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { OrgMembershipRole, ProjectMembershipRole, ProjectMembershipsSchema } from "@app/db/schemas"; +import { AccessScope, ProjectMembershipRole, ProjectMembershipsSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { ApiDocsTags, PROJECT_USERS } from "@app/lib/api-docs"; import { writeLimit } from "@app/server/config/rateLimiter"; @@ -51,20 +51,17 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { const usernamesAndEmails = [...req.body.emails, ...req.body.usernames]; - const { projectMemberships: memberships } = await server.services.org.inviteUserToOrganization({ - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - inviteeEmails: usernamesAndEmails, - orgId: req.permission.orgId, - organizationRoleSlug: OrgMembershipRole.NoAccess, - projects: [ - { - id: req.params.projectId, - projectRoleSlug: req.body.roleSlugs || [ProjectMembershipRole.Member] - } - ] + const { memberships } = await server.services.membershipUser.createMembership({ + permission: req.permission, + scopeData: { + scope: AccessScope.Project, + orgId: req.permission.orgId, + projectId: req.params.projectId + }, + data: { + usernames: usernamesAndEmails, + roles: (req.body.roleSlugs || [ProjectMembershipRole.Member]).map((role) => ({ isTemporary: false, role })) + } }); await server.services.auditLog.createAuditLog({ @@ -72,15 +69,21 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ ...req.auditLogInfo, event: { type: EventType.ADD_BATCH_PROJECT_MEMBER, - metadata: memberships.map(({ userId, id }) => ({ - userId: userId || "", + metadata: memberships.map(({ actorUserId, id }) => ({ + userId: actorUserId || "", membershipId: id, email: "" })) } }); - return { memberships }; + return { + memberships: memberships.map((el) => ({ + ...el, + userId: el.actorUserId as string, + projectId: req.params.projectId + })) + }; } }); @@ -143,13 +146,19 @@ export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZ event: { type: EventType.REMOVE_PROJECT_MEMBER, metadata: { - userId: membership.userId, + userId: membership.actorUserId as string, email: "" } } }); } - return { memberships }; + return { + memberships: memberships.map((el) => ({ + ...el, + userId: el.actorUserId as string, + projectId: req.params.projectId + })) + }; } }); }; diff --git a/backend/src/server/routes/v2/organization-router.ts b/backend/src/server/routes/v2/organization-router.ts index 9135d2356b..93320f3e0d 100644 --- a/backend/src/server/routes/v2/organization-router.ts +++ b/backend/src/server/routes/v2/organization-router.ts @@ -2,6 +2,7 @@ import { z } from "zod"; import { OrgMembershipsSchema, + OrgMembershipStatus, ProjectMembershipsSchema, ProjectsSchema, UserEncryptionKeysSchema, @@ -63,7 +64,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { req.permission.authMethod, req.permission.orgId ); - return { users }; + return { users: users.map((el) => ({ ...el, status: el.status || OrgMembershipStatus.Accepted })) }; } }); @@ -138,6 +139,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ membership: OrgMembershipsSchema.extend({ + customRoleSlug: z.string().nullish(), metadata: z .object({ key: z.string().trim().min(1), @@ -168,7 +170,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { orgId: req.params.organizationId, membershipId: req.params.membershipId }); - return { membership }; + return { membership: { ...membership, status: membership.status || OrgMembershipStatus.Accepted } }; } }); @@ -220,7 +222,14 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { actorOrgId: req.permission.orgId, ...req.body }); - return { membership }; + return { + membership: { + ...membership, + role: req.body.role || "", + orgId: req.params.organizationId, + status: membership.status || OrgMembershipStatus.Accepted + } + }; } }); @@ -260,7 +269,14 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { membershipId: req.params.membershipId, actorOrgId: req.permission.orgId }); - return { membership }; + return { + membership: { + ...membership, + status: membership.status || OrgMembershipStatus.Accepted, + role: "", + orgId: req.params.organizationId + } + }; } }); @@ -302,7 +318,14 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { membershipIds: req.body.membershipIds, actorOrgId: req.permission.orgId }); - return { memberships }; + return { + memberships: memberships.map((el) => ({ + ...el, + status: el?.status || OrgMembershipStatus.Accepted, + role: "", + orgId: req.params.organizationId + })) + }; } }); diff --git a/backend/src/services/additional-privilege/additional-privilege-dal.ts b/backend/src/services/additional-privilege/additional-privilege-dal.ts new file mode 100644 index 0000000000..b11bd90d68 --- /dev/null +++ b/backend/src/services/additional-privilege/additional-privilege-dal.ts @@ -0,0 +1,11 @@ +import { TDbClient } from "@app/db"; +import { TableName } from "@app/db/schemas"; +import { ormify } from "@app/lib/knex"; + +export type TAdditionalPrivilegeDALFactory = ReturnType; + +export const additionalPrivilegeDALFactory = (db: TDbClient) => { + const orm = ormify(db, TableName.AdditionalPrivilege); + + return orm; +}; diff --git a/backend/src/services/additional-privilege/additional-privilege-service.ts b/backend/src/services/additional-privilege/additional-privilege-service.ts new file mode 100644 index 0000000000..2af9e6419a --- /dev/null +++ b/backend/src/services/additional-privilege/additional-privilege-service.ts @@ -0,0 +1,254 @@ +// eslint-disable-next-line simple-import-sort/imports +import { RawRule } from "@casl/ability"; +import { packRules } from "@casl/ability/extra"; + +import { AccessScope, TemporaryPermissionMode } from "@app/db/schemas"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { ms } from "@app/lib/ms"; +import { validateHandlebarTemplate } from "@app/lib/template/validate-handlebars"; +import { unpackPermissions } from "@app/server/routes/sanitizedSchema/permission"; + +import { TMembershipDALFactory } from "../membership/membership-dal"; +import { TOrgDALFactory } from "../org/org-dal"; +import { TAdditionalPrivilegeDALFactory } from "./additional-privilege-dal"; +import { + TAdditionalPrivilegesScopeFactory, + TCreateAdditionalPrivilegesDTO, + TDeleteAdditionalPrivilegesDTO, + TGetAdditionalPrivilegesByIdDTO, + TGetAdditionalPrivilegesByNameDTO, + TListAdditionalPrivilegesDTO, + TUpdateAdditionalPrivilegesDTO +} from "./additional-privilege-types"; +import { newNamespaceAdditionalPrivilegesFactory } from "./namespace/namespace-additional-privilege-factory"; +import { newOrgAdditionalPrivilegesFactory } from "./org/org-additional-privilege-factory"; +import { newProjectAdditionalPrivilegesFactory } from "./project/project-additional-privilege-factory"; +import { ActorType } from "../auth/auth-type"; + +type TAdditionalPrivilegeServiceFactoryDep = { + additionalPrivilegeDAL: TAdditionalPrivilegeDALFactory; + permissionService: Pick; + orgDAL: Pick; + membershipDAL: Pick; +}; + +export type TAdditionalPrivilegeServiceFactory = ReturnType; + +export const additionalPrivilegeServiceFactory = ({ + additionalPrivilegeDAL, + permissionService, + orgDAL, + membershipDAL +}: TAdditionalPrivilegeServiceFactoryDep) => { + const scopeFactory: Record = { + [AccessScope.Organization]: newOrgAdditionalPrivilegesFactory({}), + [AccessScope.Project]: newProjectAdditionalPrivilegesFactory({ + membershipDAL, + orgDAL, + permissionService + }), + [AccessScope.Namespace]: newNamespaceAdditionalPrivilegesFactory({}) + }; + + const createAdditionalPrivilege = async (dto: TCreateAdditionalPrivilegesDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + await factory.onCreateAdditionalPrivilegesGuard(dto); + const scope = factory.getScopeField(dto.scopeData); + const dbActorField = data.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; + + const existingSlug = await additionalPrivilegeDAL.findOne({ + name: data.name, + [dbActorField]: data.actorId, + [scope.key]: scope.value + }); + if (existingSlug) throw new BadRequestError({ message: `Additional privilege with name ${data.name} exists` }); + + validateHandlebarTemplate("Additional Privilege Create", JSON.stringify(data.permissions || []), { + allowedExpressions: (val) => val.includes("identity.") + }); + + if (!data.isTemporary) { + const additionalPrivilege = await additionalPrivilegeDAL.create({ + name: data.name, + [dbActorField]: data.actorId, + [scope.key]: scope.value, + isTemporary: data.isTemporary, + permissions: JSON.stringify(packRules(data.permissions as RawRule[])) + }); + + return { + additionalPrivilege: { ...additionalPrivilege, permissions: unpackPermissions(additionalPrivilege.permissions) } + }; + } + + if (!data.temporaryAccessStartTime || !data.temporaryRange) { + throw new BadRequestError({ message: "Temporary mode expects start time and range" }); + } + + const relativeTempAllocatedTimeInMs = ms(data.temporaryRange); + const additionalPrivilege = await additionalPrivilegeDAL.create({ + [dbActorField]: data.actorId, + [scope.key]: scope.value, + name: data.name, + isTemporary: data.isTemporary, + permissions: JSON.stringify(packRules(data.permissions as RawRule[])), + temporaryAccessEndTime: new Date( + new Date(data.temporaryAccessStartTime).getTime() + relativeTempAllocatedTimeInMs + ), + temporaryAccessStartTime: new Date(data.temporaryAccessStartTime), + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: data.temporaryRange + }); + + return { + additionalPrivilege: { ...additionalPrivilege, permissions: unpackPermissions(additionalPrivilege.permissions) } + }; + }; + + const updateAdditionalPrivilege = async (dto: TUpdateAdditionalPrivilegesDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + await factory.onUpdateAdditionalPrivilegesGuard(dto); + const scope = factory.getScopeField(dto.scopeData); + const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; + + const existingPrivilege = await additionalPrivilegeDAL.findOne({ + [dbActorField]: dto.selector.actorId, + id: dto.selector.id, + [scope.key]: scope.value + }); + if (!existingPrivilege) + throw new NotFoundError({ message: `Additional privilege with id ${dto.selector.id} doesn't exist` }); + + validateHandlebarTemplate("Additional Privilege Create", JSON.stringify(data.permissions || []), { + allowedExpressions: (val) => val.includes("identity.") + }); + + const updatedData = { ...existingPrivilege, ...data }; + + if (!updatedData.isTemporary) { + const additionalPrivilege = await additionalPrivilegeDAL.updateById(existingPrivilege.id, { + name: updatedData.name, + isTemporary: data.isTemporary, + permissions: data.permissions ? JSON.stringify(packRules(data.permissions as RawRule[])) : undefined + }); + + return { + additionalPrivilege: { ...additionalPrivilege, permissions: unpackPermissions(additionalPrivilege.permissions) } + }; + } + + if (!updatedData.temporaryAccessStartTime || !updatedData.temporaryRange) { + throw new BadRequestError({ message: "Temporary mode expects start time and range" }); + } + + const relativeTempAllocatedTimeInMs = ms(updatedData.temporaryRange); + const additionalPrivilege = await additionalPrivilegeDAL.updateById(existingPrivilege.id, { + name: updatedData.name, + isTemporary: updatedData.isTemporary, + permissions: JSON.stringify(packRules(updatedData.permissions as RawRule[])), + temporaryAccessEndTime: new Date( + new Date(updatedData.temporaryAccessStartTime).getTime() + relativeTempAllocatedTimeInMs + ), + temporaryAccessStartTime: new Date(updatedData.temporaryAccessStartTime), + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: updatedData.temporaryRange + }); + + return { + additionalPrivilege: { ...additionalPrivilege, permissions: unpackPermissions(additionalPrivilege.permissions) } + }; + }; + + const deleteAdditionalPrivilege = async (dto: TDeleteAdditionalPrivilegesDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + await factory.onDeleteAdditionalPrivilegesGuard(dto); + const scope = factory.getScopeField(dto.scopeData); + const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; + + const existingPrivilege = await additionalPrivilegeDAL.findOne({ + id: selector.id, + [dbActorField]: dto.selector.actorId, + [scope.key]: scope.value + }); + if (!existingPrivilege) + throw new NotFoundError({ message: `Additional privilege with id ${selector.id} doesn't exist` }); + + const additionalPrivilege = await additionalPrivilegeDAL.deleteById(existingPrivilege.id); + return { + additionalPrivilege: { ...additionalPrivilege, permissions: unpackPermissions(additionalPrivilege.permissions) } + }; + }; + + const getAdditionalPrivilegeById = async (dto: TGetAdditionalPrivilegesByIdDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + await factory.onGetAdditionalPrivilegesByIdGuard(dto); + const scope = factory.getScopeField(dto.scopeData); + const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; + + const additionalPrivilege = await additionalPrivilegeDAL.findOne({ + id: selector.id, + [dbActorField]: dto.selector.actorId, + [scope.key]: scope.value + }); + if (!additionalPrivilege) + throw new NotFoundError({ message: `Additional privilege with id ${selector.id} doesn't exist` }); + + return { + additionalPrivilege: { ...additionalPrivilege, permissions: unpackPermissions(additionalPrivilege.permissions) } + }; + }; + + const getAdditionalPrivilegeByName = async (dto: TGetAdditionalPrivilegesByNameDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + await factory.onGetAdditionalPrivilegesByIdGuard(dto); + const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; + const scope = factory.getScopeField(dto.scopeData); + + const additionalPrivilege = await additionalPrivilegeDAL.findOne({ + name: selector.name, + [dbActorField]: dto.selector.actorId, + [scope.key]: scope.value + }); + if (!additionalPrivilege) + throw new NotFoundError({ message: `Additional privilege with name ${selector.name} doesn't exist` }); + + return { + additionalPrivilege: { ...additionalPrivilege, permissions: unpackPermissions(additionalPrivilege.permissions) } + }; + }; + + const listAdditionalPrivileges = async (dto: TListAdditionalPrivilegesDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + await factory.onListAdditionalPrivilegesGuard(dto); + const scope = factory.getScopeField(dto.scopeData); + const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; + + const additionalPrivileges = await additionalPrivilegeDAL.find({ + [dbActorField]: dto.selector.actorId, + [scope.key]: scope.value + }); + + return { + additionalPrivileges: additionalPrivileges.map((el) => ({ + ...el, + permissions: unpackPermissions(el.permissions) + })) + }; + }; + + return { + createAdditionalPrivilege, + updateAdditionalPrivilege, + deleteAdditionalPrivilege, + getAdditionalPrivilegeById, + getAdditionalPrivilegeByName, + listAdditionalPrivileges + }; +}; diff --git a/backend/src/services/additional-privilege/additional-privilege-types.ts b/backend/src/services/additional-privilege/additional-privilege-types.ts new file mode 100644 index 0000000000..eeb5a6a0bd --- /dev/null +++ b/backend/src/services/additional-privilege/additional-privilege-types.ts @@ -0,0 +1,87 @@ +import { AccessScopeData, TemporaryPermissionMode } from "@app/db/schemas"; +import { OrgServiceActor } from "@app/lib/types"; + +import { ActorType } from "../auth/auth-type"; + +export interface TAdditionalPrivilegesScopeFactory { + onCreateAdditionalPrivilegesGuard: (arg: TCreateAdditionalPrivilegesDTO) => Promise; + onUpdateAdditionalPrivilegesGuard: (arg: TUpdateAdditionalPrivilegesDTO) => Promise; + onDeleteAdditionalPrivilegesGuard: (arg: TDeleteAdditionalPrivilegesDTO) => Promise; + onListAdditionalPrivilegesGuard: (arg: TListAdditionalPrivilegesDTO) => Promise; + onGetAdditionalPrivilegesByIdGuard: ( + arg: TGetAdditionalPrivilegesByIdDTO | TGetAdditionalPrivilegesByNameDTO + ) => Promise; + getScopeField: (scope: AccessScopeData) => { key: "orgId" | "namespaceId" | "projectId"; value: string }; +} + +export type TCreateAdditionalPrivilegesDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + actorId: string; + actorType: ActorType.USER | ActorType.IDENTITY; + name: string; + permissions: unknown; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }; +}; + +export type TUpdateAdditionalPrivilegesDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + id: string; + actorId: string; + actorType: ActorType.USER | ActorType.IDENTITY; + }; + data: Partial<{ + name: string; + permissions: unknown; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }>; +}; + +export type TListAdditionalPrivilegesDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + actorId: string; + actorType: ActorType.USER | ActorType.IDENTITY; + }; +}; + +export type TDeleteAdditionalPrivilegesDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + id: string; + actorId: string; + actorType: ActorType.USER | ActorType.IDENTITY; + }; +}; + +export type TGetAdditionalPrivilegesByIdDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + id: string; + actorId: string; + actorType: ActorType.USER | ActorType.IDENTITY; + }; +}; + +export type TGetAdditionalPrivilegesByNameDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + name: string; + actorId: string; + actorType: ActorType.USER | ActorType.IDENTITY; + }; +}; diff --git a/backend/src/services/additional-privilege/namespace/namespace-additional-privilege-factory.ts b/backend/src/services/additional-privilege/namespace/namespace-additional-privilege-factory.ts new file mode 100644 index 0000000000..e2ccde286c --- /dev/null +++ b/backend/src/services/additional-privilege/namespace/namespace-additional-privilege-factory.ts @@ -0,0 +1,52 @@ +import { AccessScope } from "@app/db/schemas"; +import { InternalServerError } from "@app/lib/errors"; + +import { TAdditionalPrivilegesScopeFactory } from "../additional-privilege-types"; + +type TNamespaceAdditionalPrivilegesScopeFactoryDep = Record; + +export const newNamespaceAdditionalPrivilegesFactory = ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + deps: TNamespaceAdditionalPrivilegesScopeFactoryDep +): TAdditionalPrivilegesScopeFactory => { + const getScopeField: TAdditionalPrivilegesScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { key: "namespaceId" as const, value: dto.namespaceId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the namespace factory" }); + }; + + const onCreateAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onCreateAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace additional privileges create not implemented" }); + }; + + const onUpdateAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onUpdateAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace additional privileges update not implemented" }); + }; + + const onDeleteAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onDeleteAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace additional privileges delete not implemented" }); + }; + + const onListAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onListAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace additional privileges list not implemented" }); + }; + + const onGetAdditionalPrivilegesByIdGuard: TAdditionalPrivilegesScopeFactory["onGetAdditionalPrivilegesByIdGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace additional privileges get by id not implemented" }); + }; + + return { + onCreateAdditionalPrivilegesGuard, + onUpdateAdditionalPrivilegesGuard, + onDeleteAdditionalPrivilegesGuard, + onListAdditionalPrivilegesGuard, + onGetAdditionalPrivilegesByIdGuard, + getScopeField + }; +}; diff --git a/backend/src/services/additional-privilege/org/org-additional-privilege-factory.ts b/backend/src/services/additional-privilege/org/org-additional-privilege-factory.ts new file mode 100644 index 0000000000..cc1fbdd6c3 --- /dev/null +++ b/backend/src/services/additional-privilege/org/org-additional-privilege-factory.ts @@ -0,0 +1,52 @@ +import { AccessScope } from "@app/db/schemas"; +import { InternalServerError } from "@app/lib/errors"; + +import { TAdditionalPrivilegesScopeFactory } from "../additional-privilege-types"; + +type TOrgAdditionalPrivilegesScopeFactoryDep = Record; + +export const newOrgAdditionalPrivilegesFactory = ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + deps: TOrgAdditionalPrivilegesScopeFactoryDep +): TAdditionalPrivilegesScopeFactory => { + const getScopeField: TAdditionalPrivilegesScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { key: "orgId" as const, value: dto.orgId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the org factory" }); + }; + + const onCreateAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onCreateAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Org additional privileges create not implemented" }); + }; + + const onUpdateAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onUpdateAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Org additional privileges update not implemented" }); + }; + + const onDeleteAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onDeleteAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Org additional privileges delete not implemented" }); + }; + + const onListAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onListAdditionalPrivilegesGuard"] = + async () => { + throw new InternalServerError({ message: "Org additional privileges list not implemented" }); + }; + + const onGetAdditionalPrivilegesByIdGuard: TAdditionalPrivilegesScopeFactory["onGetAdditionalPrivilegesByIdGuard"] = + async () => { + throw new InternalServerError({ message: "Org additional privileges get by id not implemented" }); + }; + + return { + onCreateAdditionalPrivilegesGuard, + onUpdateAdditionalPrivilegesGuard, + onDeleteAdditionalPrivilegesGuard, + onListAdditionalPrivilegesGuard, + onGetAdditionalPrivilegesByIdGuard, + getScopeField + }; +}; diff --git a/backend/src/services/additional-privilege/project/project-additional-privilege-factory.ts b/backend/src/services/additional-privilege/project/project-additional-privilege-factory.ts new file mode 100644 index 0000000000..4b5179a6f0 --- /dev/null +++ b/backend/src/services/additional-privilege/project/project-additional-privilege-factory.ts @@ -0,0 +1,219 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope, ActionProjectType } from "@app/db/schemas"; +import { + constructPermissionErrorMessage, + validatePrivilegeChangeOperation +} from "@app/ee/services/permission/permission-fns"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { + ProjectPermissionIdentityActions, + ProjectPermissionMemberActions, + ProjectPermissionSub +} from "@app/ee/services/permission/project-permission"; +import { BadRequestError, PermissionBoundaryError } from "@app/lib/errors"; +import { OrgServiceActor } from "@app/lib/types"; +import { ActorType } from "@app/services/auth/auth-type"; +import { TMembershipDALFactory } from "@app/services/membership/membership-dal"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; + +import { TAdditionalPrivilegesScopeFactory } from "../additional-privilege-types"; + +type TProjectAdditionalPrivilegesScopeFactoryDep = { + permissionService: Pick; + orgDAL: Pick; + membershipDAL: Pick; +}; + +export const newProjectAdditionalPrivilegesFactory = ({ + permissionService, + orgDAL, + membershipDAL +}: TProjectAdditionalPrivilegesScopeFactoryDep): TAdditionalPrivilegesScopeFactory => { + const $getPermission = (permission: OrgServiceActor, projectId: string) => { + return permissionService.getProjectPermission({ + actor: permission.type, + actorId: permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: permission.authMethod, + projectId, + actorOrgId: permission.orgId + }); + }; + + const getScopeField: TAdditionalPrivilegesScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { key: "projectId" as const, value: dto.projectId }; + } + throw new BadRequestError({ message: "Invalid scope provided for the factory" }); + }; + + const onCreateAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onCreateAdditionalPrivilegesGuard"] = + async (dto) => { + const scope = getScopeField(dto.scopeData); + + const { actorType } = dto.data; + const { permission } = await $getPermission(dto.permission, scope.value); + const permissionSet = + actorType === ActorType.USER + ? ([ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member] as const) + : ([ProjectPermissionIdentityActions.Edit, ProjectPermissionSub.Identity] as const); + ForbiddenError.from(permission).throwUnlessCan(...permissionSet); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const { permission: targetUserPermission, memberships } = await $getPermission( + { ...dto.permission, type: actorType, id: dto.data.actorId }, + scope.value + ); + + const permissionAction = + actorType === ActorType.USER + ? ProjectPermissionMemberActions.GrantPrivileges + : ProjectPermissionIdentityActions.GrantPrivileges; + const permissionSubject = + actorType === ActorType.USER ? ProjectPermissionSub.Member : ProjectPermissionSub.Identity; + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + permissionAction, + permissionSubject, + permission, + targetUserPermission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to update more privileged actor", + shouldUseNewPrivilegeSystem, + permissionAction, + permissionSubject + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + + const membership = memberships.find( + (el) => el[actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"] === dto.data.actorId + ); + if (!membership) throw new BadRequestError({ message: "Actor doesn't have membership" }); + }; + + const onUpdateAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onUpdateAdditionalPrivilegesGuard"] = + async (dto) => { + const scope = getScopeField(dto.scopeData); + const { actorType } = dto.selector; + + const { permission } = await $getPermission(dto.permission, scope.value); + const permissionSet = + actorType === ActorType.USER + ? ([ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member] as const) + : ([ProjectPermissionIdentityActions.Edit, ProjectPermissionSub.Identity] as const); + ForbiddenError.from(permission).throwUnlessCan(...permissionSet); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const { permission: targetUserPermission, memberships } = await $getPermission( + { ...dto.permission, type: actorType, id: dto.selector.actorId }, + scope.value + ); + + const permissionAction = + actorType === ActorType.USER + ? ProjectPermissionMemberActions.GrantPrivileges + : ProjectPermissionIdentityActions.GrantPrivileges; + const permissionSubject = + actorType === ActorType.USER ? ProjectPermissionSub.Member : ProjectPermissionSub.Identity; + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + permissionAction, + permissionSubject, + permission, + targetUserPermission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to update more privileged actor", + shouldUseNewPrivilegeSystem, + permissionAction, + permissionSubject + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + + const membership = memberships.find( + (el) => el[actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"] === dto.selector.actorId + ); + if (!membership) throw new BadRequestError({ message: "Actor doesn't have membership" }); + }; + + const onDeleteAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onDeleteAdditionalPrivilegesGuard"] = + async (dto) => { + const scope = getScopeField(dto.scopeData); + const { actorType } = dto.selector; + + const { permission } = await $getPermission(dto.permission, scope.value); + const permissionSet = + actorType === ActorType.USER + ? ([ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member] as const) + : ([ProjectPermissionIdentityActions.Edit, ProjectPermissionSub.Identity] as const); + ForbiddenError.from(permission).throwUnlessCan(...permissionSet); + + const membership = await membershipDAL.findOne({ + scopeOrgId: dto.permission.orgId, + scopeProjectId: scope.value, + [actorType === ActorType.USER ? "actorUserId" : "actorIdentityId"]: dto.selector.actorId + }); + + if (!membership) throw new BadRequestError({ message: "Actor doesn't have membership" }); + }; + + const onListAdditionalPrivilegesGuard: TAdditionalPrivilegesScopeFactory["onListAdditionalPrivilegesGuard"] = async ( + dto + ) => { + const scope = getScopeField(dto.scopeData); + const { actorType } = dto.selector; + + const permissionSet = + actorType === ActorType.USER + ? ([ProjectPermissionMemberActions.Read, ProjectPermissionSub.Member] as const) + : ([ProjectPermissionIdentityActions.Read, ProjectPermissionSub.Identity] as const); + const { permission } = await $getPermission(dto.permission, scope.value); + ForbiddenError.from(permission).throwUnlessCan(...permissionSet); + + const membership = await membershipDAL.findOne({ + scopeOrgId: dto.permission.orgId, + scopeProjectId: scope.value, + [actorType === ActorType.USER ? "actorUserId" : "actorIdentityId"]: dto.selector.actorId + }); + + if (!membership) throw new BadRequestError({ message: "Actor doesn't have membership" }); + }; + + const onGetAdditionalPrivilegesByIdGuard: TAdditionalPrivilegesScopeFactory["onGetAdditionalPrivilegesByIdGuard"] = + async (dto) => { + const scope = getScopeField(dto.scopeData); + const { actorType } = dto.selector; + + const permissionSet = + actorType === ActorType.USER + ? ([ProjectPermissionMemberActions.Read, ProjectPermissionSub.Member] as const) + : ([ProjectPermissionIdentityActions.Read, ProjectPermissionSub.Identity] as const); + const { permission } = await $getPermission(dto.permission, scope.value); + ForbiddenError.from(permission).throwUnlessCan(...permissionSet); + + const membership = await membershipDAL.findOne({ + scopeOrgId: dto.permission.orgId, + scopeProjectId: scope.value, + [actorType === ActorType.USER ? "actorUserId" : "actorIdentityId"]: dto.selector.actorId + }); + + if (!membership) throw new BadRequestError({ message: "Actor doesn't have membership" }); + }; + + return { + onCreateAdditionalPrivilegesGuard, + onUpdateAdditionalPrivilegesGuard, + onDeleteAdditionalPrivilegesGuard, + onListAdditionalPrivilegesGuard, + onGetAdditionalPrivilegesByIdGuard, + getScopeField + }; +}; diff --git a/backend/src/services/app-connection/railway/railway-connection-public-client.ts b/backend/src/services/app-connection/railway/railway-connection-public-client.ts index 1c8bd9cc24..47eb3f3967 100644 --- a/backend/src/services/app-connection/railway/railway-connection-public-client.ts +++ b/backend/src/services/app-connection/railway/railway-connection-public-client.ts @@ -75,7 +75,7 @@ class RailwayPublicClient { async send( query: string, options: RailwaySendReqOptions, - variables: Record> = {}, + variables: Record = {}, retryAttempt: number = 0 ): Promise { const body = { @@ -117,6 +117,25 @@ class RailwayPublicClient { } } + async getDeployments( + config: RailwaySendReqOptions, + variables: { input: { serviceId: string; environmentId: string }; first?: number } + ) { + return this.send>( + `query deployments($input: DeploymentListInput!, $first: Int) { deployments(first: $first, input: $input) { edges { node { id } } } }`, + config, + variables + ); + } + + async redeployDeployment(config: RailwaySendReqOptions, variables: { input: { deploymentId: string } }) { + return this.send>( + `mutation deploymentRedeploy($deploymentId: String!) { deploymentRedeploy(id: $deploymentId) { id } }`, + config, + { deploymentId: variables.input.deploymentId } + ); + } + async getSubscriptionType(config: RailwaySendReqOptions & { projectId: string }) { const res = await this.send( `query project($projectId: String!) { project(id: $projectId) { subscriptionType }}`, @@ -213,7 +232,9 @@ class RailwayPublicClient { async deleteVariable( config: RailwaySendReqOptions, - variables: { input: { projectId: string; environmentId: string; name: string; serviceId?: string } } + variables: { + input: { projectId: string; environmentId: string; name: string; skipDeploys?: boolean; serviceId?: string }; + } ) { await this.send }>>( `mutation variableDelete($input: VariableDeleteInput!) { variableDelete(input: $input) }`, @@ -222,6 +243,26 @@ class RailwayPublicClient { ); } + async upsertCollection( + config: RailwaySendReqOptions, + variables: { + input: { + projectId: string; + environmentId: string; + variables: Record; + skipDeploys?: boolean; + serviceId?: string; + replace?: boolean; + }; + } + ) { + return this.send>( + `mutation variableCollectionUpsert($input: VariableCollectionUpsertInput!) { variableCollectionUpsert(input: $input) }`, + config, + variables + ); + } + async upsertVariable( config: RailwaySendReqOptions, variables: { input: { projectId: string; environmentId: string; name: string; value: string; serviceId?: string } } diff --git a/backend/src/services/auth-token/auth-token-service.ts b/backend/src/services/auth-token/auth-token-service.ts index 613aa0766a..82df0dcb11 100644 --- a/backend/src/services/auth-token/auth-token-service.ts +++ b/backend/src/services/auth-token/auth-token-service.ts @@ -1,12 +1,12 @@ import { Knex } from "knex"; -import { TAuthTokens, TAuthTokenSessions } from "@app/db/schemas"; +import { AccessScope, TAuthTokens, TAuthTokenSessions } from "@app/db/schemas"; import { getConfig } from "@app/lib/config/env"; import { crypto } from "@app/lib/crypto/cryptography"; import { ForbiddenRequestError, NotFoundError, UnauthorizedError } from "@app/lib/errors"; -import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { AuthModeJwtTokenPayload, AuthModeRefreshJwtTokenPayload, AuthTokenType } from "../auth/auth-type"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TUserDALFactory } from "../user/user-dal"; import { TTokenDALFactory } from "./auth-token-dal"; import { TCreateTokenForUserDTO, TIssueAuthTokenDTO, TokenType, TValidateTokenForUserDTO } from "./auth-token-types"; @@ -14,7 +14,7 @@ import { TCreateTokenForUserDTO, TIssueAuthTokenDTO, TokenType, TValidateTokenFo type TAuthTokenServiceFactoryDep = { tokenDAL: TTokenDALFactory; userDAL: Pick; - orgMembershipDAL: Pick; + membershipUserDAL: Pick; }; export type TAuthTokenServiceFactory = ReturnType; @@ -80,7 +80,7 @@ export const getTokenConfig = (tokenType: TokenType) => { } }; -export const tokenServiceFactory = ({ tokenDAL, userDAL, orgMembershipDAL }: TAuthTokenServiceFactoryDep) => { +export const tokenServiceFactory = ({ tokenDAL, userDAL, membershipUserDAL }: TAuthTokenServiceFactoryDep) => { const createTokenForUser = async ({ type, userId, orgId, aliasId, payload }: TCreateTokenForUserDTO) => { const { token, ...tkCfg } = getTokenConfig(type); const appCfg = getConfig(); @@ -208,9 +208,10 @@ export const tokenServiceFactory = ({ tokenDAL, userDAL, orgMembershipDAL }: TAu if (!user || !user.isAccepted) throw new NotFoundError({ message: `User with ID '${session.userId}' not found` }); if (token.organizationId) { - const orgMembership = await orgMembershipDAL.findOne({ - userId: user.id, - orgId: token.organizationId + const orgMembership = await membershipUserDAL.findOne({ + actorUserId: user.id, + scopeOrgId: token.organizationId, + scope: AccessScope.Organization }); if (!orgMembership) { diff --git a/backend/src/services/auth/auth-login-service.ts b/backend/src/services/auth/auth-login-service.ts index d69c836e98..31a9cc5a80 100644 --- a/backend/src/services/auth/auth-login-service.ts +++ b/backend/src/services/auth/auth-login-service.ts @@ -1,6 +1,13 @@ import { Knex } from "knex"; -import { OrgMembershipRole, OrgMembershipStatus, TableName, TUsers, UserDeviceSchema } from "@app/db/schemas"; +import { + AccessScope, + OrgMembershipRole, + OrgMembershipStatus, + TableName, + TUsers, + UserDeviceSchema +} from "@app/db/schemas"; import { EventType, TAuditLogServiceFactory } from "@app/ee/services/audit-log/audit-log-types"; import { isAuthMethodSaml } from "@app/ee/services/permission/permission-fns"; import { getConfig } from "@app/lib/config/env"; @@ -14,11 +21,12 @@ import { getServerCfg } from "@app/services/super-admin/super-admin-service"; import { TAuthTokenServiceFactory } from "../auth-token/auth-token-service"; import { TokenType } from "../auth-token/auth-token-types"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TNotificationServiceFactory } from "../notification/notification-service"; import { NotificationType } from "../notification/notification-types"; import { TOrgDALFactory } from "../org/org-dal"; import { getDefaultOrgMembershipRole } from "../org/org-role-fns"; -import { TOrgMembershipDALFactory } from "../org-membership/org-membership-dal"; import { SmtpTemplates, TSmtpService } from "../smtp/smtp-service"; import { LoginMethod } from "../super-admin/super-admin-types"; import { TTotpServiceFactory } from "../totp/totp-service"; @@ -48,7 +56,8 @@ type TAuthLoginServiceFactoryDep = { smtpService: TSmtpService; totpService: Pick; auditLogService: Pick; - orgMembershipDAL: TOrgMembershipDALFactory; + membershipUserDAL: TMembershipUserDALFactory; + membershipRoleDAL: TMembershipRoleDALFactory; notificationService: Pick; }; @@ -58,10 +67,11 @@ export const authLoginServiceFactory = ({ tokenService, smtpService, orgDAL, - orgMembershipDAL, totpService, auditLogService, - notificationService + notificationService, + membershipUserDAL, + membershipRoleDAL }: TAuthLoginServiceFactoryDep) => { /* * Private @@ -163,8 +173,8 @@ export const authLoginServiceFactory = ({ if (organizationId) { const org = await orgDAL.findById(organizationId); if (org) { - await orgMembershipDAL.update( - { userId: user.id, orgId: org.id }, + await membershipUserDAL.update( + { actorUserId: user.id, scopeOrgId: org.id, scope: AccessScope.Organization }, { lastLoginAuthMethod: authMethod, lastLoginTime: new Date() } ); if (org.userTokenExpiration) { @@ -858,21 +868,34 @@ export const authLoginServiceFactory = ({ } orgId = defaultOrg.id; const [orgMembership] = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.userId` as "userId"]: user.id, - [`${TableName.OrgMembership}.orgId` as "id"]: orgId + [`${TableName.Membership}.actorUserId` as "actorUserId"]: user.id, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }); if (!orgMembership) { const { role, roleId } = await getDefaultOrgMembershipRole(defaultOrg.defaultMembershipRole); - await orgMembershipDAL.create({ - userId: user.id, - inviteEmail: email, - orgId, - role, - roleId, - status: OrgMembershipStatus.Accepted, - isActive: true + await membershipUserDAL.transaction(async (tx) => { + const membership = await membershipUserDAL.create( + { + actorUserId: user?.id, + inviteEmail: email, + scopeOrgId: orgId, + scope: AccessScope.Organization, + status: OrgMembershipStatus.Accepted, + isActive: true + }, + tx + ); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role, + customRoleId: roleId + }, + tx + ); }); } } @@ -895,10 +918,11 @@ export const authLoginServiceFactory = ({ if (org) { // checks for the membership and only sets the orgId / orgName if the user is a member of the specified org const orgMembership = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.userId` as "userId"]: user.id, - [`${TableName.OrgMembership}.orgId` as "orgId"]: org.id, - [`${TableName.OrgMembership}.isActive` as "isActive"]: true, - [`${TableName.OrgMembership}.status` as "status"]: OrgMembershipStatus.Accepted + [`${TableName.Membership}.actorUserId` as "actorUserId"]: user.id, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: org.id, + [`${TableName.Membership}.isActive` as "isActive"]: true, + [`${TableName.Membership}.status` as "status"]: OrgMembershipStatus.Accepted, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }); if (orgMembership) { diff --git a/backend/src/services/auth/auth-password-service.ts b/backend/src/services/auth/auth-password-service.ts index 21a51ef3f3..75f77d0fc7 100644 --- a/backend/src/services/auth/auth-password-service.ts +++ b/backend/src/services/auth/auth-password-service.ts @@ -1,3 +1,4 @@ +import { AccessScope } from "@app/db/schemas"; import { getConfig } from "@app/lib/config/env"; import { crypto } from "@app/lib/crypto/cryptography"; import { BadRequestError } from "@app/lib/errors"; @@ -6,7 +7,7 @@ import { OrgServiceActor } from "@app/lib/types"; import { TAuthTokenServiceFactory } from "../auth-token/auth-token-service"; import { TokenType } from "../auth-token/auth-token-types"; -import { TOrgMembershipDALFactory } from "../org-membership/org-membership-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { SmtpTemplates, TSmtpService } from "../smtp/smtp-service"; import { TTotpConfigDALFactory } from "../totp/totp-config-dal"; import { TUserDALFactory } from "../user/user-dal"; @@ -23,7 +24,7 @@ import { ActorType, AuthMethod, AuthTokenType } from "./auth-type"; type TAuthPasswordServiceFactoryDep = { authDAL: TAuthDALFactory; userDAL: TUserDALFactory; - orgMembershipDAL: Pick; + membershipUserDAL: Pick; tokenService: TAuthTokenServiceFactory; smtpService: TSmtpService; totpConfigDAL: Pick; @@ -33,7 +34,7 @@ export type TAuthPasswordFactory = ReturnType; export const authPaswordServiceFactory = ({ authDAL, userDAL, - orgMembershipDAL, + membershipUserDAL, tokenService, smtpService, totpConfigDAL @@ -54,7 +55,10 @@ export const authPaswordServiceFactory = ({ const hasEmailAuth = user.authMethods?.includes(AuthMethod.EMAIL); if (!hasEmailAuth) { - const orgMemberships = await orgMembershipDAL.find({ userId: user.id }); + const orgMemberships = await membershipUserDAL.find({ + actorUserId: user.id, + scope: AccessScope.Organization + }); const lastLoginMethod = orgMemberships .filter((membership) => membership.lastLoginAuthMethod) diff --git a/backend/src/services/auth/auth-signup-service.ts b/backend/src/services/auth/auth-signup-service.ts index 7bc3a5ef68..a2e426a2ea 100644 --- a/backend/src/services/auth/auth-signup-service.ts +++ b/backend/src/services/auth/auth-signup-service.ts @@ -1,4 +1,4 @@ -import { OrgMembershipStatus, TableName } from "@app/db/schemas"; +import { AccessScope, OrgMembershipStatus, TableName } from "@app/db/schemas"; import { convertPendingGroupAdditionsToGroupMemberships } from "@app/ee/services/group/group-fns"; import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; @@ -8,17 +8,15 @@ import { crypto } from "@app/lib/crypto/cryptography"; import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; import { getMinExpiresIn } from "@app/lib/fn"; import { isDisposableEmail } from "@app/lib/validator"; -import { TGroupProjectDALFactory } from "@app/services/group-project/group-project-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; import { TProjectKeyDALFactory } from "@app/services/project-key/project-key-dal"; import { TAuthTokenServiceFactory } from "../auth-token/auth-token-service"; import { TokenType } from "../auth-token/auth-token-types"; +import { TMembershipGroupDALFactory } from "../membership-group/membership-group-dal"; import { TOrgDALFactory } from "../org/org-dal"; import { TOrgServiceFactory } from "../org/org-service"; -import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; -import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; import { SmtpTemplates, TSmtpService } from "../smtp/smtp-service"; import { getServerCfg } from "../super-admin/super-admin-service"; import { TUserDALFactory } from "../user/user-dal"; @@ -42,14 +40,12 @@ type TAuthSignupDep = { projectKeyDAL: Pick; projectDAL: Pick; projectBotDAL: Pick; - groupProjectDAL: Pick; orgService: Pick; orgDAL: TOrgDALFactory; tokenService: TAuthTokenServiceFactory; smtpService: TSmtpService; licenseService: Pick; - projectMembershipDAL: Pick; - projectUserMembershipRoleDAL: Pick; + membershipGroupDAL: TMembershipGroupDALFactory; }; export type TAuthSignupFactory = ReturnType; @@ -60,11 +56,11 @@ export const authSignupServiceFactory = ({ projectKeyDAL, projectDAL, projectBotDAL, - groupProjectDAL, tokenService, smtpService, orgService, orgDAL, + membershipGroupDAL, licenseService }: TAuthSignupDep) => { // first step of signup. create user and send email @@ -200,9 +196,10 @@ export const authSignupServiceFactory = ({ organizationId ) { const [pendingOrgMembership] = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.userId` as "userId"]: user.id, + [`${TableName.Membership}.actorUserId` as "actorUserId"]: user.id, status: OrgMembershipStatus.Invited, - [`${TableName.OrgMembership}.orgId` as "orgId"]: organizationId + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: organizationId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }); if (pendingOrgMembership) { @@ -241,18 +238,18 @@ export const authSignupServiceFactory = ({ } const updatedMembersips = await orgDAL.updateMembership( - { inviteEmail: sanitizedEmail, status: OrgMembershipStatus.Invited }, - { userId: user.id, status: OrgMembershipStatus.Accepted } + { inviteEmail: sanitizedEmail, status: OrgMembershipStatus.Invited, scope: AccessScope.Organization }, + { actorUserId: user.id, status: OrgMembershipStatus.Accepted } ); - const uniqueOrgId = [...new Set(updatedMembersips.map(({ orgId }) => orgId))]; + const uniqueOrgId = [...new Set(updatedMembersips.map(({ scopeOrgId }) => scopeOrgId))]; await Promise.allSettled(uniqueOrgId.map((orgId) => licenseService.updateSubscriptionOrgMemberCount(orgId))); await convertPendingGroupAdditionsToGroupMemberships({ userIds: [user.id], userDAL, userGroupMembershipDAL, - groupProjectDAL, projectKeyDAL, + membershipGroupDAL, projectDAL, projectBotDAL }); @@ -351,21 +348,21 @@ export const authSignupServiceFactory = ({ ); const updatedMembersips = await orgDAL.updateMembership( - { inviteEmail: sanitizedEmail, status: OrgMembershipStatus.Invited }, - { userId: us.id, status: OrgMembershipStatus.Accepted }, + { inviteEmail: sanitizedEmail, status: OrgMembershipStatus.Invited, scope: AccessScope.Organization }, + { actorUserId: us.id, status: OrgMembershipStatus.Accepted }, tx ); - const uniqueOrgId = [...new Set(updatedMembersips.map(({ orgId }) => orgId))]; + const uniqueOrgId = [...new Set(updatedMembersips.map(({ scopeOrgId }) => scopeOrgId))]; await Promise.allSettled(uniqueOrgId.map((orgId) => licenseService.updateSubscriptionOrgMemberCount(orgId, tx))); await convertPendingGroupAdditionsToGroupMemberships({ userIds: [user.id], userDAL, userGroupMembershipDAL, - groupProjectDAL, projectKeyDAL, projectDAL, projectBotDAL, + membershipGroupDAL, tx }); diff --git a/backend/src/services/convertor/convertor-service.ts b/backend/src/services/convertor/convertor-service.ts new file mode 100644 index 0000000000..71c25e9c07 --- /dev/null +++ b/backend/src/services/convertor/convertor-service.ts @@ -0,0 +1,130 @@ +import { AccessScope } from "@app/db/schemas"; +import { TGroupDALFactory } from "@app/ee/services/group/group-dal"; +import { NotFoundError } from "@app/lib/errors"; + +import { TAdditionalPrivilegeDALFactory } from "../additional-privilege/additional-privilege-dal"; +import { TMembershipDALFactory } from "../membership/membership-dal"; +import { TProjectDALFactory } from "../project/project-dal"; + +type TConvertorServiceFactoryDep = { + projectDAL: Pick; + membershipDAL: Pick; + groupDAL: Pick; + additionalPrivilegeDAL: Pick; +}; + +export type TConvertorServiceFactory = ReturnType; + +export const convertorServiceFactory = ({ + projectDAL, + membershipDAL, + additionalPrivilegeDAL, + groupDAL +}: TConvertorServiceFactoryDep) => { + const projectSlugToId = async (dto: { slug: string; orgId: string }) => { + const project = await projectDAL.findOne({ + orgId: dto.orgId, + slug: dto.slug + }); + if (!project) throw new NotFoundError({ message: `Project with slug ${dto.slug} not found` }); + return project; + }; + + const userMembershipIdToUserId = async (membershipId: string, scope: AccessScope, orgId: string) => { + const membership = await membershipDAL.findOne({ + scope, + id: membershipId, + scopeOrgId: orgId + }); + if (!membership || !membership.actorUserId) { + throw new NotFoundError({ message: `Membership with id ${membershipId} not found` }); + } + return { userId: membership.actorUserId, membership }; + }; + + const groupMembershipIdToGroupId = async (membershipId: string, scope: AccessScope, orgId: string) => { + const membership = await membershipDAL.findOne({ + scope, + id: membershipId, + scopeOrgId: orgId + }); + if (!membership || !membership.actorGroupId) { + throw new NotFoundError({ message: `Membership with id ${membershipId} not found` }); + } + + return { groupId: membership.actorGroupId, membership }; + }; + + const identityMembershipIdToIdentityId = async (membershipId: string, scope: AccessScope, orgId: string) => { + const membership = await membershipDAL.findOne({ + scope, + id: membershipId, + scopeOrgId: orgId + }); + if (!membership || !membership.actorIdentityId) { + throw new NotFoundError({ message: `Membership with id ${membershipId} not found` }); + } + + return { identityId: membership.actorIdentityId, membership }; + }; + + const identityIdToMembershipId = async (identityId: string, scope: AccessScope, scopeId: string) => { + let fieldName = "scopeOrgId"; + if (scope === AccessScope.Project) { + fieldName = "scopeProjectId"; + } else if (scope === AccessScope.Namespace) { + fieldName = "scopeNamespaceId"; + } + + const membership = await membershipDAL.findOne({ + scope, + actorIdentityId: identityId, + [fieldName]: scopeId + }); + + if (!membership) { + throw new NotFoundError({ message: `Identity with id ${identityId} not found` }); + } + + return { membershipId: membership.id, membership }; + }; + + const additionalPrivilegeIdToDoc = async (privilegeId: string) => { + const doc = await additionalPrivilegeDAL.findOne({ + id: privilegeId + }); + if (!doc) { + throw new NotFoundError({ message: `Privilege with id ${privilegeId} not found` }); + } + + return { privilege: doc }; + }; + const additionalPrivilegeNameToDoc = async (privilegeName: string, projectId: string) => { + const privilege = await additionalPrivilegeDAL.findOne({ + name: privilegeName, + projectId + }); + if (!privilege) { + throw new NotFoundError({ message: `Privilege with name ${privilegeName} not found` }); + } + + return { privilegeId: privilege.id, privilege }; + }; + + const getGroupIdFromName = async (name: string, orgId: string) => { + const group = await groupDAL.findOne({ orgId, name }); + if (!group) throw new NotFoundError({ message: `Failed to find group with name ${name}` }); + return { groupId: group.id, group }; + }; + + return { + projectSlugToId, + userMembershipIdToUserId, + groupMembershipIdToGroupId, + identityMembershipIdToIdentityId, + additionalPrivilegeIdToDoc, + additionalPrivilegeNameToDoc, + identityIdToMembershipId, + getGroupIdFromName + }; +}; diff --git a/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-fns.ts b/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-fns.ts index 552eed3075..21b0b3c1f6 100644 --- a/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-fns.ts +++ b/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-fns.ts @@ -1,19 +1,19 @@ -import { OrgMembershipRole, TOrgRoles } from "@app/db/schemas"; +import { OrgMembershipRole, TRoles } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { BadRequestError, NotFoundError } from "@app/lib/errors"; -import { TOrgRoleDALFactory } from "@app/services/org/org-role-dal"; import { isCustomOrgRole } from "@app/services/org/org-role-fns"; +import { TRoleDALFactory } from "../role/role-dal"; import { TExternalGroupOrgMembershipRoleMappingDTO } from "./external-group-org-role-mapping-types"; export const constructGroupOrgMembershipRoleMappings = async ({ mappingsDTO, orgId, - orgRoleDAL, + roleDAL, licenseService }: { mappingsDTO: TExternalGroupOrgMembershipRoleMappingDTO[]; - orgRoleDAL: TOrgRoleDALFactory; + roleDAL: TRoleDALFactory; licenseService: TLicenseServiceFactory; orgId: string; }) => { @@ -30,9 +30,9 @@ export const constructGroupOrgMembershipRoleMappings = async ({ .filter((mapping) => isCustomOrgRole(mapping.roleSlug)) .map((mapping) => mapping.roleSlug); - let customRolesMap: Map = new Map(); + let customRolesMap: Map = new Map(); if (customRoleSlugs.length > 0) { - const customRoles = await orgRoleDAL.find({ + const customRoles = await roleDAL.find({ orgId, $in: { slug: customRoleSlugs diff --git a/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-service.ts b/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-service.ts index de293609b8..a072544ca7 100644 --- a/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-service.ts +++ b/backend/src/services/external-group-org-role-mapping/external-group-org-role-mapping-service.ts @@ -6,15 +6,15 @@ import { TPermissionServiceFactory } from "@app/ee/services/permission/permissio import { OrgServiceActor } from "@app/lib/types"; import { constructGroupOrgMembershipRoleMappings } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-fns"; import { TSyncExternalGroupOrgMembershipRoleMappingsDTO } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-types"; -import { TOrgRoleDALFactory } from "@app/services/org/org-role-dal"; +import { TRoleDALFactory } from "../role/role-dal"; import { TExternalGroupOrgRoleMappingDALFactory } from "./external-group-org-role-mapping-dal"; type TExternalGroupOrgRoleMappingServiceFactoryDep = { externalGroupOrgRoleMappingDAL: TExternalGroupOrgRoleMappingDALFactory; permissionService: TPermissionServiceFactory; licenseService: TLicenseServiceFactory; - orgRoleDAL: TOrgRoleDALFactory; + roleDAL: TRoleDALFactory; }; export type TExternalGroupOrgRoleMappingServiceFactory = ReturnType; @@ -23,7 +23,7 @@ export const externalGroupOrgRoleMappingServiceFactory = ({ externalGroupOrgRoleMappingDAL, licenseService, permissionService, - orgRoleDAL + roleDAL }: TExternalGroupOrgRoleMappingServiceFactoryDep) => { const listExternalGroupOrgRoleMappings = async (actor: OrgServiceActor) => { const { permission } = await permissionService.getOrgPermission( @@ -61,7 +61,7 @@ export const externalGroupOrgRoleMappingServiceFactory = ({ const mappings = await constructGroupOrgMembershipRoleMappings({ mappingsDTO: dto.mappings, - orgRoleDAL, + roleDAL, licenseService, orgId: actor.orgId }); diff --git a/backend/src/services/external-migration/external-migration-service.ts b/backend/src/services/external-migration/external-migration-service.ts index e801b607e9..14885b1d62 100644 --- a/backend/src/services/external-migration/external-migration-service.ts +++ b/backend/src/services/external-migration/external-migration-service.ts @@ -47,14 +47,14 @@ export const externalMigrationServiceFactory = ({ throw new BadRequestError({ message: "EnvKey migration is not supported when running in FIPS mode." }); } - const { membership } = await permissionService.getOrgPermission( + const { hasRole } = await permissionService.getOrgPermission( actor, actorId, actorOrgId, actorAuthMethod, actorOrgId ); - if (membership.role !== OrgMembershipRole.Admin) { + if (!hasRole(OrgMembershipRole.Admin)) { throw new ForbiddenRequestError({ message: "Only admins can import data" }); } @@ -94,7 +94,7 @@ export const externalMigrationServiceFactory = ({ actorOrgId, actorAuthMethod }: TImportVaultDataDTO) => { - const { membership } = await permissionService.getOrgPermission( + const { hasRole } = await permissionService.getOrgPermission( actor, actorId, actorOrgId, @@ -102,7 +102,7 @@ export const externalMigrationServiceFactory = ({ actorOrgId ); - if (membership.role !== OrgMembershipRole.Admin) { + if (!hasRole(OrgMembershipRole.Admin)) { throw new ForbiddenRequestError({ message: "Only admins can import data" }); } @@ -150,7 +150,7 @@ export const externalMigrationServiceFactory = ({ actorAuthMethod, provider }: THasCustomVaultMigrationDTO) => { - const { membership } = await permissionService.getOrgPermission( + const { hasRole } = await permissionService.getOrgPermission( actor, actorId, actorOrgId, @@ -158,7 +158,7 @@ export const externalMigrationServiceFactory = ({ actorOrgId ); - if (membership.role !== OrgMembershipRole.Admin) { + if (!hasRole(OrgMembershipRole.Admin)) { throw new ForbiddenRequestError({ message: "Only admins can check custom migration status" }); } diff --git a/backend/src/services/group-project/group-project-dal.ts b/backend/src/services/group-project/group-project-dal.ts index 263838a9da..4d14758dc7 100644 --- a/backend/src/services/group-project/group-project-dal.ts +++ b/backend/src/services/group-project/group-project-dal.ts @@ -1,53 +1,44 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName, TUserEncryptionKeys } from "@app/db/schemas"; +import { AccessScope, TableName, TMemberships, TUserEncryptionKeys } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; -import { ormify, sqlNestRelationships } from "@app/lib/knex"; +import { sqlNestRelationships } from "@app/lib/knex"; export type TGroupProjectDALFactory = ReturnType; export const groupProjectDALFactory = (db: TDbClient) => { - const groupProjectOrm = ormify(db, TableName.GroupProjectMembership); - const findByProjectId = async (projectId: string, filter?: { groupId?: string }, tx?: Knex) => { try { - const docs = await (tx || db.replicaNode())(TableName.GroupProjectMembership) - .where(`${TableName.GroupProjectMembership}.projectId`, projectId) + const docs = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorGroupId`) .where((qb) => { if (filter?.groupId) { void qb.where(`${TableName.Groups}.id`, "=", filter.groupId); } }) - .join(TableName.Groups, `${TableName.GroupProjectMembership}.groupId`, `${TableName.Groups}.id`) - .join( - TableName.GroupProjectMembershipRole, - `${TableName.GroupProjectMembershipRole}.projectMembershipId`, - `${TableName.GroupProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.GroupProjectMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) + .join(TableName.Groups, `${TableName.Membership}.actorGroupId`, `${TableName.Groups}.id`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .select( - db.ref("id").withSchema(TableName.GroupProjectMembership), - db.ref("createdAt").withSchema(TableName.GroupProjectMembership), - db.ref("updatedAt").withSchema(TableName.GroupProjectMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("createdAt").withSchema(TableName.Membership), + db.ref("updatedAt").withSchema(TableName.Membership), db.ref("id").as("groupId").withSchema(TableName.Groups), db.ref("name").as("groupName").withSchema(TableName.Groups), db.ref("slug").as("groupSlug").withSchema(TableName.Groups), - db.ref("id").withSchema(TableName.GroupProjectMembership), - db.ref("role").withSchema(TableName.GroupProjectMembershipRole), - db.ref("id").withSchema(TableName.GroupProjectMembershipRole).as("membershipRoleId"), - db.ref("customRoleId").withSchema(TableName.GroupProjectMembershipRole), - db.ref("name").withSchema(TableName.ProjectRoles).as("customRoleName"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("temporaryMode").withSchema(TableName.GroupProjectMembershipRole), - db.ref("isTemporary").withSchema(TableName.GroupProjectMembershipRole), - db.ref("temporaryRange").withSchema(TableName.GroupProjectMembershipRole), - db.ref("temporaryAccessStartTime").withSchema(TableName.GroupProjectMembershipRole), - db.ref("temporaryAccessEndTime").withSchema(TableName.GroupProjectMembershipRole) + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("customRoleId").withSchema(TableName.MembershipRole), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole), + db.ref("isTemporary").withSchema(TableName.MembershipRole), + db.ref("temporaryRange").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessStartTime").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessEndTime").withSchema(TableName.MembershipRole) ); const members = sqlNestRelationships({ @@ -104,8 +95,8 @@ export const groupProjectDALFactory = (db: TDbClient) => { try { const docs = await (tx || db.replicaNode())(TableName.UserGroupMembership) .where(`${TableName.UserGroupMembership}.userId`, userId) - .join(TableName.Groups, function () { - this.on(`${TableName.UserGroupMembership}.groupId`, "=", `${TableName.Groups}.id`).andOn( + .join(TableName.Groups, (qb) => { + qb.on(`${TableName.UserGroupMembership}.groupId`, "=", `${TableName.Groups}.id`).andOn( `${TableName.Groups}.orgId`, "=", db.raw("?", [orgId]) @@ -131,32 +122,26 @@ export const groupProjectDALFactory = (db: TDbClient) => { const docs = await db(TableName.UserGroupMembership) // Join the GroupProjectMembership table with the Groups table to get the group name and slug. .join( - TableName.GroupProjectMembership, + TableName.Membership, `${TableName.UserGroupMembership}.groupId`, - `${TableName.GroupProjectMembership}.groupId` // this gives us access to the project id in the group membership + `${TableName.Membership}.actorGroupId` // this gives us access to the project id in the group membership ) - - .join(TableName.Project, `${TableName.GroupProjectMembership}.projectId`, `${TableName.Project}.id`) - - .where(`${TableName.GroupProjectMembership}.projectId`, projectId) - + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) .join(TableName.Users, `${TableName.UserGroupMembership}.userId`, `${TableName.Users}.id`) .join( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id` ) - .join( - TableName.GroupProjectMembershipRole, - `${TableName.GroupProjectMembershipRole}.projectMembershipId`, - `${TableName.GroupProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.GroupProjectMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) - .join(TableName.OrgMembership, `${TableName.Users}.id`, `${TableName.OrgMembership}.userId`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .join(db(TableName.Membership).as("orgMembership"), (qb) => { + qb.on(`${TableName.Users}.id`, `orgMembership.actorUserId`) + .andOn(`orgMembership.scope`, db.raw("?", [AccessScope.Organization])) + .andOn(`orgMembership.scopeOrgId`, `${TableName.Project}.orgId`); + }) .select( db.ref("id").withSchema(TableName.UserGroupMembership), db.ref("createdAt").withSchema(TableName.UserGroupMembership), @@ -167,18 +152,18 @@ export const groupProjectDALFactory = (db: TDbClient) => { db.ref("firstName").withSchema(TableName.Users), db.ref("lastName").withSchema(TableName.Users), db.ref("id").withSchema(TableName.Users).as("userId"), - db.ref("role").withSchema(TableName.GroupProjectMembershipRole), - db.ref("id").withSchema(TableName.GroupProjectMembershipRole).as("membershipRoleId"), - db.ref("customRoleId").withSchema(TableName.GroupProjectMembershipRole), - db.ref("name").withSchema(TableName.ProjectRoles).as("customRoleName"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("temporaryMode").withSchema(TableName.GroupProjectMembershipRole), - db.ref("isTemporary").withSchema(TableName.GroupProjectMembershipRole), - db.ref("temporaryRange").withSchema(TableName.GroupProjectMembershipRole), - db.ref("temporaryAccessStartTime").withSchema(TableName.GroupProjectMembershipRole), - db.ref("temporaryAccessEndTime").withSchema(TableName.GroupProjectMembershipRole), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("customRoleId").withSchema(TableName.MembershipRole), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole), + db.ref("isTemporary").withSchema(TableName.MembershipRole), + db.ref("temporaryRange").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessStartTime").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessEndTime").withSchema(TableName.MembershipRole), db.ref("name").as("projectName").withSchema(TableName.Project), - db.ref("isActive").withSchema(TableName.OrgMembership) + db.ref("isActive").withSchema("orgMembership") ) .where({ isGhost: false }); @@ -242,5 +227,5 @@ export const groupProjectDALFactory = (db: TDbClient) => { return members; }; - return { ...groupProjectOrm, findByProjectId, findByUserId, findAllProjectGroupMembers }; + return { findByProjectId, findByUserId, findAllProjectGroupMembers }; }; diff --git a/backend/src/services/group-project/group-project-membership-role-dal.ts b/backend/src/services/group-project/group-project-membership-role-dal.ts deleted file mode 100644 index 5572ac6f51..0000000000 --- a/backend/src/services/group-project/group-project-membership-role-dal.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; - -export type TGroupProjectMembershipRoleDALFactory = ReturnType; - -export const groupProjectMembershipRoleDALFactory = (db: TDbClient) => { - const orm = ormify(db, TableName.GroupProjectMembershipRole); - return orm; -}; diff --git a/backend/src/services/group-project/group-project-service.ts b/backend/src/services/group-project/group-project-service.ts index 913aca2f34..4a4a614967 100644 --- a/backend/src/services/group-project/group-project-service.ts +++ b/backend/src/services/group-project/group-project-service.ts @@ -1,507 +1,27 @@ import { ForbiddenError } from "@casl/ability"; -import { ActionProjectType, ProjectMembershipRole, ProjectVersion, SecretKeyEncoding, TGroups } from "@app/db/schemas"; +import { ActionProjectType } from "@app/db/schemas"; import { TListProjectGroupUsersDTO } from "@app/ee/services/group/group-types"; -import { - constructPermissionErrorMessage, - validatePrivilegeChangeOperation -} from "@app/ee/services/permission/permission-fns"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { ProjectPermissionGroupActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { crypto } from "@app/lib/crypto/cryptography"; -import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; -import { groupBy } from "@app/lib/fn"; -import { ms } from "@app/lib/ms"; -import { isUuidV4 } from "@app/lib/validator"; +import { NotFoundError } from "@app/lib/errors"; import { TGroupDALFactory } from "../../ee/services/group/group-dal"; -import { TUserGroupMembershipDALFactory } from "../../ee/services/group/user-group-membership-dal"; import { TProjectDALFactory } from "../project/project-dal"; -import { TProjectBotDALFactory } from "../project-bot/project-bot-dal"; -import { TProjectKeyDALFactory } from "../project-key/project-key-dal"; -import { ProjectUserMembershipTemporaryMode } from "../project-membership/project-membership-types"; -import { TProjectRoleDALFactory } from "../project-role/project-role-dal"; -import { TGroupProjectDALFactory } from "./group-project-dal"; -import { TGroupProjectMembershipRoleDALFactory } from "./group-project-membership-role-dal"; -import { - TCreateProjectGroupDTO, - TDeleteProjectGroupDTO, - TGetGroupInProjectDTO, - TListProjectGroupDTO, - TUpdateProjectGroupDTO -} from "./group-project-types"; type TGroupProjectServiceFactoryDep = { - groupProjectDAL: Pick; - groupProjectMembershipRoleDAL: Pick< - TGroupProjectMembershipRoleDALFactory, - "create" | "transaction" | "insertMany" | "delete" - >; - userGroupMembershipDAL: Pick; - projectDAL: Pick; - projectKeyDAL: Pick; - projectRoleDAL: Pick; - projectBotDAL: TProjectBotDALFactory; groupDAL: Pick; - permissionService: Pick< - TPermissionServiceFactory, - "getProjectPermission" | "getProjectPermissionByRole" | "invalidateProjectPermissionCache" - >; + projectDAL: Pick; + permissionService: Pick; }; export type TGroupProjectServiceFactory = ReturnType; export const groupProjectServiceFactory = ({ groupDAL, - groupProjectDAL, - groupProjectMembershipRoleDAL, - userGroupMembershipDAL, projectDAL, - projectKeyDAL, - projectBotDAL, - projectRoleDAL, permissionService }: TGroupProjectServiceFactoryDep) => { - const addGroupToProject = async ({ - actor, - actorId, - actorOrgId, - actorAuthMethod, - roles, - projectId, - groupIdOrName - }: TCreateProjectGroupDTO) => { - const project = await projectDAL.findById(projectId); - - if (!project) throw new NotFoundError({ message: `Failed to find project with ID ${projectId}` }); - if (project.version < 2) throw new BadRequestError({ message: `Failed to add group to E2EE project` }); - - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Create, ProjectPermissionSub.Groups); - - let group: TGroups | null = null; - if (isUuidV4(groupIdOrName)) { - group = await groupDAL.findOne({ orgId: actorOrgId, id: groupIdOrName }); - } - if (!group) { - group = await groupDAL.findOne({ orgId: actorOrgId, name: groupIdOrName }); - } - - if (!group) throw new NotFoundError({ message: `Failed to find group with ID or name ${groupIdOrName}` }); - - const existingGroup = await groupProjectDAL.findOne({ groupId: group.id, projectId: project.id }); - if (existingGroup) - throw new BadRequestError({ - message: `Group with ID ${group.id} already exists in project with id ${project.id}` - }); - - for await (const { role: requestedRoleChange } of roles) { - const { permission: rolePermission } = await permissionService.getProjectPermissionByRole( - requestedRoleChange, - project.id - ); - - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionGroupActions.GrantPrivileges, - ProjectPermissionSub.Groups, - permission, - rolePermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to assign group to role", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionGroupActions.GrantPrivileges, - ProjectPermissionSub.Groups - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - } - - // validate custom roles input - const customInputRoles = roles.filter( - ({ role }) => !Object.values(ProjectMembershipRole).includes(role as ProjectMembershipRole) - ); - const hasCustomRole = Boolean(customInputRoles.length); - const customRoles = hasCustomRole - ? await projectRoleDAL.find({ - projectId: project.id, - $in: { slug: customInputRoles.map(({ role }) => role) } - }) - : []; - - if (customRoles.length !== customInputRoles.length) { - const customRoleSlugs = customRoles.map((customRole) => customRole.slug); - const missingInputRoles = customInputRoles - .filter((inputRole) => !customRoleSlugs.includes(inputRole.role)) - .map((role) => role.role); - - throw new NotFoundError({ - message: `Custom role/s not found: ${missingInputRoles.join(", ")}` - }); - } - const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); - - const projectGroup = await groupProjectDAL.transaction(async (tx) => { - const groupProjectMembership = await groupProjectDAL.create( - { - groupId: group!.id, - projectId: project.id - }, - tx - ); - - const sanitizedProjectMembershipRoles = roles.map((inputRole) => { - const isCustomRole = Boolean(customRolesGroupBySlug?.[inputRole.role]?.[0]); - if (!inputRole.isTemporary) { - return { - projectMembershipId: groupProjectMembership.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null - }; - } - - // check cron or relative here later for now its just relative - const relativeTimeInMs = ms(inputRole.temporaryRange); - return { - projectMembershipId: groupProjectMembership.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null, - isTemporary: true, - temporaryMode: ProjectUserMembershipTemporaryMode.Relative, - temporaryRange: inputRole.temporaryRange, - temporaryAccessStartTime: new Date(inputRole.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(inputRole.temporaryAccessStartTime).getTime() + relativeTimeInMs) - }; - }); - - await groupProjectMembershipRoleDAL.insertMany(sanitizedProjectMembershipRoles, tx); - - // share project key with users in group that have not - // individually been added to the project and that are not part of - // other groups that are in the project - const groupMembers = await userGroupMembershipDAL.findGroupMembersNotInProject(group!.id, project.id, tx); - - if (groupMembers.length && (project.version === ProjectVersion.V1 || project.version === ProjectVersion.V2)) { - const ghostUser = await projectDAL.findProjectGhostUser(project.id, tx); - - if (!ghostUser) { - throw new NotFoundError({ - message: `Failed to find project owner of project with name ${project.name}` - }); - } - - const ghostUserLatestKey = await projectKeyDAL.findLatestProjectKey(ghostUser.id, project.id, tx); - - if (!ghostUserLatestKey) { - throw new NotFoundError({ - message: `Failed to find project owner's latest key in project with name ${project.name}` - }); - } - - if (!ghostUserLatestKey.sender.publicKey) { - throw new NotFoundError({ - message: `Failed to find project owner's latest key in project with name ${project.name}` - }); - } - - const bot = await projectBotDAL.findOne({ projectId: project.id }, tx); - - if (!bot) { - throw new NotFoundError({ - message: `Failed to find project bot in project with name ${project.name}` - }); - } - - const botPrivateKey = crypto - .encryption() - .symmetric() - .decryptWithRootEncryptionKey({ - keyEncoding: bot.keyEncoding as SecretKeyEncoding, - iv: bot.iv, - tag: bot.tag, - ciphertext: bot.encryptedPrivateKey - }); - - const plaintextProjectKey = crypto.encryption().asymmetric().decrypt({ - ciphertext: ghostUserLatestKey.encryptedKey, - nonce: ghostUserLatestKey.nonce, - publicKey: ghostUserLatestKey.sender.publicKey, - privateKey: botPrivateKey - }); - - const projectKeyData = groupMembers.map(({ user: { publicKey, id } }) => { - if (!publicKey) { - throw new NotFoundError({ - message: `Failed to find user's public key in project with name ${project.name}` - }); - } - - const { ciphertext: encryptedKey, nonce } = crypto - .encryption() - .asymmetric() - .encrypt(plaintextProjectKey, publicKey, botPrivateKey); - - return { - encryptedKey, - nonce, - senderId: ghostUser.id, - receiverId: id, - projectId: project.id - }; - }); - - await projectKeyDAL.insertMany(projectKeyData, tx); - } - - return groupProjectMembership; - }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return projectGroup; - }; - - const updateGroupInProject = async ({ - projectId, - groupId, - roles, - actor, - actorId, - actorAuthMethod, - actorOrgId - }: TUpdateProjectGroupDTO) => { - const project = await projectDAL.findById(projectId); - - if (!project) throw new NotFoundError({ message: `Failed to find project with ID ${projectId}` }); - - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Edit, ProjectPermissionSub.Groups); - - const group = await groupDAL.findOne({ orgId: actorOrgId, id: groupId }); - if (!group) throw new NotFoundError({ message: `Failed to find group with ID ${groupId}` }); - - const projectGroup = await groupProjectDAL.findOne({ groupId: group.id, projectId: project.id }); - if (!projectGroup) throw new NotFoundError({ message: `Failed to find group with ID ${groupId}` }); - - for await (const { role: requestedRoleChange } of roles) { - const { permission: rolePermission } = await permissionService.getProjectPermissionByRole( - requestedRoleChange, - project.id - ); - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionGroupActions.GrantPrivileges, - ProjectPermissionSub.Groups, - permission, - rolePermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to assign group to role", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionGroupActions.GrantPrivileges, - ProjectPermissionSub.Groups - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - } - - // validate custom roles input - const customInputRoles = roles.filter( - ({ role }) => !Object.values(ProjectMembershipRole).includes(role as ProjectMembershipRole) - ); - const hasCustomRole = Boolean(customInputRoles.length); - const customRoles = hasCustomRole - ? await projectRoleDAL.find({ - projectId: project.id, - $in: { slug: customInputRoles.map(({ role }) => role) } - }) - : []; - if (customRoles.length !== customInputRoles.length) { - const customRoleSlugs = customRoles.map((customRole) => customRole.slug); - const missingInputRoles = customInputRoles - .filter((inputRole) => !customRoleSlugs.includes(inputRole.role)) - .map((role) => role.role); - - throw new NotFoundError({ - message: `Custom role/s not found: ${missingInputRoles.join(", ")}` - }); - } - - const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); - - const sanitizedProjectMembershipRoles = roles.map((inputRole) => { - const isCustomRole = Boolean(customRolesGroupBySlug?.[inputRole.role]?.[0]); - if (!inputRole.isTemporary) { - return { - projectMembershipId: projectGroup.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null - }; - } - - // check cron or relative here later for now its just relative - const relativeTimeInMs = ms(inputRole.temporaryRange); - return { - projectMembershipId: projectGroup.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null, - isTemporary: true, - temporaryMode: ProjectUserMembershipTemporaryMode.Relative, - temporaryRange: inputRole.temporaryRange, - temporaryAccessStartTime: new Date(inputRole.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(inputRole.temporaryAccessStartTime).getTime() + relativeTimeInMs) - }; - }); - - const updatedRoles = await groupProjectMembershipRoleDAL.transaction(async (tx) => { - await groupProjectMembershipRoleDAL.delete({ projectMembershipId: projectGroup.id }, tx); - return groupProjectMembershipRoleDAL.insertMany(sanitizedProjectMembershipRoles, tx); - }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return updatedRoles; - }; - - const removeGroupFromProject = async ({ - projectId, - groupId, - actorId, - actor, - actorOrgId, - actorAuthMethod - }: TDeleteProjectGroupDTO) => { - const project = await projectDAL.findById(projectId); - - if (!project) throw new NotFoundError({ message: `Failed to find project with ID ${projectId}` }); - - const group = await groupDAL.findOne({ orgId: actorOrgId, id: groupId }); - if (!group) throw new NotFoundError({ message: `Failed to find group with ID ${groupId}` }); - - const groupProjectMembership = await groupProjectDAL.findOne({ groupId: group.id, projectId: project.id }); - if (!groupProjectMembership) throw new NotFoundError({ message: `Failed to find group with ID ${groupId}` }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Delete, ProjectPermissionSub.Groups); - - const deletedProjectGroup = await groupProjectDAL.transaction(async (tx) => { - const groupMembersNotInProject = await userGroupMembershipDAL.findGroupMembersNotInProject( - group.id, - project.id, - tx - ); - - if (groupMembersNotInProject.length) { - await projectKeyDAL.delete( - { - projectId: project.id, - $in: { - receiverId: groupMembersNotInProject.map(({ user: { id } }) => id) - } - }, - tx - ); - } - - const [projectGroup] = await groupProjectDAL.delete({ groupId: group.id, projectId: project.id }, tx); - return projectGroup; - }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return deletedProjectGroup; - }; - - const listGroupsInProject = async ({ - projectId, - actor, - actorId, - actorAuthMethod, - actorOrgId - }: TListProjectGroupDTO) => { - const project = await projectDAL.findById(projectId); - - if (!project) { - throw new NotFoundError({ message: `Failed to find project with ID ${projectId}` }); - } - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Read, ProjectPermissionSub.Groups); - - const groupMemberships = await groupProjectDAL.findByProjectId(project.id); - return groupMemberships; - }; - - const getGroupInProject = async ({ - actor, - actorId, - actorAuthMethod, - actorOrgId, - groupId, - projectId - }: TGetGroupInProjectDTO) => { - const project = await projectDAL.findById(projectId); - - if (!project) { - throw new NotFoundError({ message: `Failed to find project with ID ${projectId}` }); - } - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Read, ProjectPermissionSub.Groups); - - const [groupMembership] = await groupProjectDAL.findByProjectId(project.id, { - groupId - }); - - if (!groupMembership) { - throw new NotFoundError({ - message: `Group membership with ID ${groupId} not found in project with ID ${projectId}` - }); - } - - return groupMembership; - }; - const listProjectGroupUsers = async ({ id, projectId, @@ -545,11 +65,6 @@ export const groupProjectServiceFactory = ({ }; return { - addGroupToProject, - updateGroupInProject, - removeGroupFromProject, - listGroupsInProject, - getGroupInProject, listProjectGroupUsers }; }; diff --git a/backend/src/services/identity-access-token/identity-access-token-service.ts b/backend/src/services/identity-access-token/identity-access-token-service.ts index 71f7ec3654..1b230f7a57 100644 --- a/backend/src/services/identity-access-token/identity-access-token-service.ts +++ b/backend/src/services/identity-access-token/identity-access-token-service.ts @@ -204,7 +204,7 @@ export const identityAccessTokenServiceFactory = ({ } const identityOrgMembership = await identityOrgMembershipDAL.findOne({ - identityId: identityAccessToken.identityId + actorIdentityId: identityAccessToken.identityId }); if (!identityOrgMembership) { @@ -219,7 +219,7 @@ export const identityAccessTokenServiceFactory = ({ await validateAccessTokenExp({ ...identityAccessToken, accessTokenNumUses }); await accessTokenQueue.updateIdentityAccessTokenStatus(identityAccessToken.id, Number(accessTokenNumUses) + 1); - return { ...identityAccessToken, orgId: identityOrgMembership.orgId }; + return { ...identityAccessToken, orgId: identityOrgMembership.scopeOrgId }; }; return { renewAccessToken, revokeAccessToken, fnValidateIdentityAccessToken }; diff --git a/backend/src/services/identity-alicloud-auth/identity-alicloud-auth-service.ts b/backend/src/services/identity-alicloud-auth/identity-alicloud-auth-service.ts index af94c79c9b..43584a1afb 100644 --- a/backend/src/services/identity-alicloud-auth/identity-alicloud-auth-service.ts +++ b/backend/src/services/identity-alicloud-auth/identity-alicloud-auth-service.ts @@ -2,7 +2,7 @@ import { ForbiddenError } from "@casl/ability"; import { AxiosError } from "axios"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -18,9 +18,10 @@ import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { logger } from "@app/lib/logger"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityAliCloudAuthDALFactory } from "./identity-alicloud-auth-dal"; import { @@ -38,9 +39,10 @@ type TIdentityAliCloudAuthServiceFactoryDep = { TIdentityAliCloudAuthDALFactory, "findOne" | "transaction" | "create" | "updateById" | "delete" >; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; licenseService: Pick; permissionService: Pick; + orgDAL: Pick; }; export type TIdentityAliCloudAuthServiceFactory = ReturnType; @@ -48,9 +50,10 @@ export type TIdentityAliCloudAuthServiceFactory = ReturnType { const login = async ({ identityId, ...params }: TLoginAliCloudAuthDTO) => { const identityAliCloudAuth = await identityAliCloudAuthDAL.findOne({ identityId }); @@ -60,8 +63,9 @@ export const identityAliCloudAuthServiceFactory = ({ }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ - identityId: identityAliCloudAuth.identityId + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityAliCloudAuth.identityId, + scope: AccessScope.Organization }); if (!identityMembershipOrg) throw new UnauthorizedError({ message: "Identity not attached to a organization" }); @@ -89,7 +93,7 @@ export const identityAliCloudAuthServiceFactory = ({ // Generate the token const identityAccessToken = await identityAliCloudAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.ALICLOUD_AUTH, @@ -150,7 +154,13 @@ export const identityAliCloudAuthServiceFactory = ({ }: TAttachAliCloudAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.ALICLOUD_AUTH)) { @@ -166,13 +176,13 @@ export const identityAliCloudAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -193,7 +203,7 @@ export const identityAliCloudAuthServiceFactory = ({ const identityAliCloudAuth = await identityAliCloudAuthDAL.transaction(async (tx) => { const doc = await identityAliCloudAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, type: "iam", allowedArns, accessTokenMaxTTL, @@ -205,7 +215,7 @@ export const identityAliCloudAuthServiceFactory = ({ ); return doc; }); - return { ...identityAliCloudAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityAliCloudAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateAliCloudAuth = async ({ @@ -220,7 +230,13 @@ export const identityAliCloudAuthServiceFactory = ({ actor, actorOrgId }: TUpdateAliCloudAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.ALICLOUD_AUTH)) { @@ -242,13 +258,13 @@ export const identityAliCloudAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -276,11 +292,17 @@ export const identityAliCloudAuthServiceFactory = ({ : undefined }); - return { ...updatedAliCloudAuth, orgId: identityMembershipOrg.orgId }; + return { ...updatedAliCloudAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const getAliCloudAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetAliCloudAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.ALICLOUD_AUTH)) { @@ -294,12 +316,12 @@ export const identityAliCloudAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...alicloudIdentityAuth, orgId: identityMembershipOrg.orgId }; + return { ...alicloudIdentityAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeIdentityAliCloudAuth = async ({ @@ -309,17 +331,23 @@ export const identityAliCloudAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeAliCloudAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.ALICLOUD_AUTH)) { throw new BadRequestError({ message: "The identity does not have Alibaba Cloud auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -327,14 +355,15 @@ export const identityAliCloudAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -345,7 +374,7 @@ export const identityAliCloudAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke Alibaba Cloud auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -356,7 +385,7 @@ export const identityAliCloudAuthServiceFactory = ({ const deletedAliCloudAuth = await identityAliCloudAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.ALICLOUD_AUTH }, tx); - return { ...deletedAliCloudAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedAliCloudAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityAliCloudAuth; }; diff --git a/backend/src/services/identity-aws-auth/identity-aws-auth-service.ts b/backend/src/services/identity-aws-auth/identity-aws-auth-service.ts index 3dff474033..8793c3a007 100644 --- a/backend/src/services/identity-aws-auth/identity-aws-auth-service.ts +++ b/backend/src/services/identity-aws-auth/identity-aws-auth-service.ts @@ -3,7 +3,7 @@ import { ForbiddenError } from "@casl/ability"; import axios from "axios"; import RE2 from "re2"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -17,9 +17,10 @@ import { BadRequestError, NotFoundError, PermissionBoundaryError, UnauthorizedEr import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityAwsAuthDALFactory } from "./identity-aws-auth-dal"; import { extractPrincipalArn, extractPrincipalArnEntity } from "./identity-aws-auth-fns"; @@ -36,9 +37,10 @@ import { type TIdentityAwsAuthServiceFactoryDep = { identityAccessTokenDAL: Pick; identityAwsAuthDAL: Pick; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; licenseService: Pick; permissionService: Pick; + orgDAL: Pick; }; export type TIdentityAwsAuthServiceFactory = ReturnType; @@ -80,9 +82,10 @@ function isValidAwsRegion(region: string | null): boolean { export const identityAwsAuthServiceFactory = ({ identityAccessTokenDAL, identityAwsAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, licenseService, - permissionService + permissionService, + orgDAL }: TIdentityAwsAuthServiceFactoryDep) => { const login = async ({ identityId, iamHttpRequestMethod, iamRequestBody, iamRequestHeaders }: TLoginAwsAuthDTO) => { const identityAwsAuth = await identityAwsAuthDAL.findOne({ identityId }); @@ -90,7 +93,10 @@ export const identityAwsAuthServiceFactory = ({ throw new NotFoundError({ message: "AWS auth method not found for identity, did you configure AWS auth?" }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: identityAwsAuth.identityId }); + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityAwsAuth.identityId, + scope: AccessScope.Organization + }); if (!identityMembershipOrg) throw new UnauthorizedError({ message: "Identity not attached to a organization" }); const headers: TAwsGetCallerIdentityHeaders = JSON.parse(Buffer.from(iamRequestHeaders, "base64").toString()); @@ -153,7 +159,7 @@ export const identityAwsAuthServiceFactory = ({ } const identityAccessToken = await identityAwsAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.AWS_AUTH, @@ -226,7 +232,13 @@ export const identityAwsAuthServiceFactory = ({ }: TAttachAwsAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AWS_AUTH)) { @@ -242,13 +254,13 @@ export const identityAwsAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -269,7 +281,7 @@ export const identityAwsAuthServiceFactory = ({ const identityAwsAuth = await identityAwsAuthDAL.transaction(async (tx) => { const doc = await identityAwsAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, type: "iam", stsEndpoint, allowedPrincipalArns, @@ -283,7 +295,7 @@ export const identityAwsAuthServiceFactory = ({ ); return doc; }); - return { ...identityAwsAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityAwsAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateAwsAuth = async ({ @@ -300,7 +312,13 @@ export const identityAwsAuthServiceFactory = ({ actor, actorOrgId }: TUpdateAwsAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AWS_AUTH)) { @@ -321,13 +339,13 @@ export const identityAwsAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -357,11 +375,17 @@ export const identityAwsAuthServiceFactory = ({ : undefined }); - return { ...updatedAwsAuth, orgId: identityMembershipOrg.orgId }; + return { ...updatedAwsAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const getAwsAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetAwsAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AWS_AUTH)) { @@ -375,12 +399,12 @@ export const identityAwsAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...awsIdentityAuth, orgId: identityMembershipOrg.orgId }; + return { ...awsIdentityAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeIdentityAwsAuth = async ({ @@ -390,17 +414,23 @@ export const identityAwsAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeAwsAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AWS_AUTH)) { throw new BadRequestError({ message: "The identity does not have aws auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -408,14 +438,15 @@ export const identityAwsAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -426,7 +457,7 @@ export const identityAwsAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke aws auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -437,7 +468,7 @@ export const identityAwsAuthServiceFactory = ({ const deletedAwsAuth = await identityAwsAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.AWS_AUTH }, tx); - return { ...deletedAwsAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedAwsAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityAwsAuth; }; diff --git a/backend/src/services/identity-azure-auth/identity-azure-auth-service.ts b/backend/src/services/identity-azure-auth/identity-azure-auth-service.ts index 9a2426a7c5..b3250ed56e 100644 --- a/backend/src/services/identity-azure-auth/identity-azure-auth-service.ts +++ b/backend/src/services/identity-azure-auth/identity-azure-auth-service.ts @@ -1,6 +1,6 @@ import { ForbiddenError } from "@casl/ability"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -14,9 +14,10 @@ import { BadRequestError, NotFoundError, PermissionBoundaryError, UnauthorizedEr import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityAzureAuthDALFactory } from "./identity-azure-auth-dal"; import { validateAzureIdentity } from "./identity-azure-auth-fns"; @@ -33,20 +34,22 @@ type TIdentityAzureAuthServiceFactoryDep = { TIdentityAzureAuthDALFactory, "findOne" | "transaction" | "create" | "updateById" | "delete" >; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; identityAccessTokenDAL: Pick; permissionService: Pick; licenseService: Pick; + orgDAL: Pick; }; export type TIdentityAzureAuthServiceFactory = ReturnType; export const identityAzureAuthServiceFactory = ({ identityAzureAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, identityAccessTokenDAL, permissionService, - licenseService + licenseService, + orgDAL }: TIdentityAzureAuthServiceFactoryDep) => { const login = async ({ identityId, jwt: azureJwt }: TLoginAzureAuthDTO) => { const identityAzureAuth = await identityAzureAuthDAL.findOne({ identityId }); @@ -54,7 +57,10 @@ export const identityAzureAuthServiceFactory = ({ throw new NotFoundError({ message: "Azure auth method not found for identity, did you configure Azure Auth?" }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: identityAzureAuth.identityId }); + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityAzureAuth.identityId, + scope: AccessScope.Organization + }); if (!identityMembershipOrg) throw new UnauthorizedError({ message: "Identity not attached to a organization" }); const azureIdentity = await validateAzureIdentity({ @@ -80,7 +86,7 @@ export const identityAzureAuthServiceFactory = ({ } const identityAccessToken = await identityAzureAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.AZURE_AUTH, @@ -139,7 +145,13 @@ export const identityAzureAuthServiceFactory = ({ }: TAttachAzureAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AZURE_AUTH)) { @@ -154,13 +166,13 @@ export const identityAzureAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -181,7 +193,7 @@ export const identityAzureAuthServiceFactory = ({ const identityAzureAuth = await identityAzureAuthDAL.transaction(async (tx) => { const doc = await identityAzureAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, tenantId, resource, allowedServicePrincipalIds, @@ -195,7 +207,7 @@ export const identityAzureAuthServiceFactory = ({ return doc; }); - return { ...identityAzureAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityAzureAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateAzureAuth = async ({ @@ -212,7 +224,13 @@ export const identityAzureAuthServiceFactory = ({ actor, actorOrgId }: TUpdateAzureAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AZURE_AUTH)) { throw new BadRequestError({ @@ -232,13 +250,13 @@ export const identityAzureAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -270,12 +288,18 @@ export const identityAzureAuthServiceFactory = ({ return { ...updatedAzureAuth, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }; }; const getAzureAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetAzureAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AZURE_AUTH)) { throw new BadRequestError({ @@ -288,13 +312,13 @@ export const identityAzureAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...identityAzureAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityAzureAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeIdentityAzureAuth = async ({ @@ -304,17 +328,23 @@ export const identityAzureAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeAzureAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.AZURE_AUTH)) { throw new BadRequestError({ message: "The identity does not have azure auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -322,13 +352,14 @@ export const identityAzureAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -338,7 +369,7 @@ export const identityAzureAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke azure auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -349,7 +380,7 @@ export const identityAzureAuthServiceFactory = ({ const deletedAzureAuth = await identityAzureAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.AZURE_AUTH }, tx); - return { ...deletedAzureAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedAzureAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityAzureAuth; }; diff --git a/backend/src/services/identity-gcp-auth/identity-gcp-auth-service.ts b/backend/src/services/identity-gcp-auth/identity-gcp-auth-service.ts index 388c24d484..fe7b9b6d70 100644 --- a/backend/src/services/identity-gcp-auth/identity-gcp-auth-service.ts +++ b/backend/src/services/identity-gcp-auth/identity-gcp-auth-service.ts @@ -1,6 +1,6 @@ import { ForbiddenError } from "@casl/ability"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -14,9 +14,10 @@ import { BadRequestError, NotFoundError, PermissionBoundaryError, UnauthorizedEr import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityGcpAuthDALFactory } from "./identity-gcp-auth-dal"; import { validateIamIdentity, validateIdTokenIdentity } from "./identity-gcp-auth-fns"; @@ -31,20 +32,22 @@ import { type TIdentityGcpAuthServiceFactoryDep = { identityGcpAuthDAL: Pick; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; identityAccessTokenDAL: Pick; permissionService: Pick; licenseService: Pick; + orgDAL: Pick; }; export type TIdentityGcpAuthServiceFactory = ReturnType; export const identityGcpAuthServiceFactory = ({ identityGcpAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, identityAccessTokenDAL, permissionService, - licenseService + licenseService, + orgDAL }: TIdentityGcpAuthServiceFactoryDep) => { const login = async ({ identityId, jwt: gcpJwt }: TLoginGcpAuthDTO) => { const identityGcpAuth = await identityGcpAuthDAL.findOne({ identityId }); @@ -52,7 +55,10 @@ export const identityGcpAuthServiceFactory = ({ throw new NotFoundError({ message: "GCP auth method not found for identity, did you configure GCP auth?" }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: identityGcpAuth.identityId }); + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityGcpAuth.identityId, + scope: AccessScope.Organization + }); if (!identityMembershipOrg) { throw new UnauthorizedError({ message: "Identity does not belong to any organization" }); } @@ -119,7 +125,7 @@ export const identityGcpAuthServiceFactory = ({ } const identityAccessToken = await identityGcpAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.GCP_AUTH, @@ -179,7 +185,13 @@ export const identityGcpAuthServiceFactory = ({ }: TAttachGcpAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.GCP_AUTH)) { @@ -195,13 +207,13 @@ export const identityGcpAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -222,7 +234,7 @@ export const identityGcpAuthServiceFactory = ({ const identityGcpAuth = await identityGcpAuthDAL.transaction(async (tx) => { const doc = await identityGcpAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, type, allowedServiceAccounts, allowedProjects, @@ -236,7 +248,7 @@ export const identityGcpAuthServiceFactory = ({ ); return doc; }); - return { ...identityGcpAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityGcpAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateGcpAuth = async ({ @@ -254,7 +266,13 @@ export const identityGcpAuthServiceFactory = ({ actor, actorOrgId }: TUpdateGcpAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.GCP_AUTH)) { @@ -275,13 +293,13 @@ export const identityGcpAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -314,12 +332,18 @@ export const identityGcpAuthServiceFactory = ({ return { ...updatedGcpAuth, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }; }; const getGcpAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetGcpAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.GCP_AUTH)) { @@ -333,13 +357,13 @@ export const identityGcpAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...identityGcpAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityGcpAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeIdentityGcpAuth = async ({ @@ -349,7 +373,13 @@ export const identityGcpAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeGcpAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.GCP_AUTH)) { @@ -357,10 +387,10 @@ export const identityGcpAuthServiceFactory = ({ message: "The identity does not have gcp auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -368,13 +398,14 @@ export const identityGcpAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -384,7 +415,7 @@ export const identityGcpAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke gcp auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -395,7 +426,7 @@ export const identityGcpAuthServiceFactory = ({ const deletedGcpAuth = await identityGcpAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.GCP_AUTH }, tx); - return { ...deletedGcpAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedGcpAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityGcpAuth; }; diff --git a/backend/src/services/identity-jwt-auth/identity-jwt-auth-service.ts b/backend/src/services/identity-jwt-auth/identity-jwt-auth-service.ts index 9cc851437c..a99c8ad78d 100644 --- a/backend/src/services/identity-jwt-auth/identity-jwt-auth-service.ts +++ b/backend/src/services/identity-jwt-auth/identity-jwt-auth-service.ts @@ -3,7 +3,7 @@ import https from "https"; import jwt from "jsonwebtoken"; import { JwksClient } from "jwks-rsa"; -import { IdentityAuthMethod, TIdentityJwtAuthsUpdate } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod, TIdentityJwtAuthsUpdate } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -24,11 +24,12 @@ import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { getValueByDot } from "@app/lib/template/dot-access"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; import { TKmsServiceFactory } from "../kms/kms-service"; import { KmsDataKey } from "../kms/kms-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityJwtAuthDALFactory } from "./identity-jwt-auth-dal"; import { doesFieldValueMatchJwtPolicy } from "./identity-jwt-auth-fns"; @@ -43,22 +44,24 @@ import { type TIdentityJwtAuthServiceFactoryDep = { identityJwtAuthDAL: TIdentityJwtAuthDALFactory; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; identityAccessTokenDAL: Pick; permissionService: Pick; licenseService: Pick; kmsService: Pick; + orgDAL: Pick; }; export type TIdentityJwtAuthServiceFactory = ReturnType; export const identityJwtAuthServiceFactory = ({ identityJwtAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, permissionService, licenseService, identityAccessTokenDAL, - kmsService + kmsService, + orgDAL }: TIdentityJwtAuthServiceFactoryDep) => { const login = async ({ identityId, jwt: jwtValue }: TLoginJwtAuthDTO) => { const identityJwtAuth = await identityJwtAuthDAL.findOne({ identityId }); @@ -66,8 +69,9 @@ export const identityJwtAuthServiceFactory = ({ throw new NotFoundError({ message: "JWT auth method not found for identity, did you configure JWT auth?" }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ - identityId: identityJwtAuth.identityId + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityJwtAuth.identityId, + scope: AccessScope.Organization }); if (!identityMembershipOrg) { throw new NotFoundError({ @@ -77,7 +81,7 @@ export const identityJwtAuthServiceFactory = ({ const { decryptor: orgDataKeyDecryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const decodedToken = crypto.jwt().decode(jwtValue, { complete: true }); @@ -207,7 +211,7 @@ export const identityJwtAuthServiceFactory = ({ } const identityAccessToken = await identityJwtAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.JWT_AUTH, @@ -272,10 +276,14 @@ export const identityJwtAuthServiceFactory = ({ }: TAttachJwtAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); - if (!identityMembershipOrg) { - if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); - } + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); + if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.JWT_AUTH)) { throw new BadRequestError({ message: "Failed to add JWT Auth to already configured identity" @@ -289,14 +297,14 @@ export const identityJwtAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -330,7 +338,7 @@ export const identityJwtAuthServiceFactory = ({ const identityJwtAuth = await identityJwtAuthDAL.transaction(async (tx) => { const doc = await identityJwtAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, configurationType, jwksUrl, encryptedJwksCaCert, @@ -349,7 +357,7 @@ export const identityJwtAuthServiceFactory = ({ return doc; }); - return { ...identityJwtAuth, orgId: identityMembershipOrg.orgId, jwksCaCert, publicKeys }; + return { ...identityJwtAuth, orgId: identityMembershipOrg.scopeOrgId, jwksCaCert, publicKeys }; }; const updateJwtAuth = async ({ @@ -371,7 +379,13 @@ export const identityJwtAuthServiceFactory = ({ actor, actorOrgId }: TUpdateJwtAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.JWT_AUTH)) { @@ -392,14 +406,14 @@ export const identityJwtAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -462,14 +476,20 @@ export const identityJwtAuthServiceFactory = ({ return { ...updatedJwtAuth, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, jwksCaCert: decryptedJwksCaCert, publicKeys: decryptedPublicKeys }; }; const getJwtAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetJwtAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.JWT_AUTH)) { @@ -481,7 +501,7 @@ export const identityJwtAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -502,14 +522,20 @@ export const identityJwtAuthServiceFactory = ({ return { ...identityJwtAuth, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, jwksCaCert: decryptedJwksCaCert, publicKeys: decryptedPublicKeys }; }; const revokeJwtAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TRevokeJwtAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) { throw new NotFoundError({ message: "Failed to find identity" }); } @@ -520,10 +546,10 @@ export const identityJwtAuthServiceFactory = ({ }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -532,14 +558,15 @@ export const identityJwtAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -549,7 +576,7 @@ export const identityJwtAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke jwt auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -560,7 +587,7 @@ export const identityJwtAuthServiceFactory = ({ const deletedJwtAuth = await identityJwtAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.JWT_AUTH }, tx); - return { ...deletedJwtAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedJwtAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityJwtAuth; diff --git a/backend/src/services/identity-kubernetes-auth/identity-kubernetes-auth-service.ts b/backend/src/services/identity-kubernetes-auth/identity-kubernetes-auth-service.ts index bc231c6d6d..952b1e31de 100644 --- a/backend/src/services/identity-kubernetes-auth/identity-kubernetes-auth-service.ts +++ b/backend/src/services/identity-kubernetes-auth/identity-kubernetes-auth-service.ts @@ -3,7 +3,7 @@ import axios, { AxiosError } from "axios"; import https from "https"; import RE2 from "re2"; -import { IdentityAuthMethod, TIdentityKubernetesAuthsUpdate } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod, TIdentityKubernetesAuthsUpdate } from "@app/db/schemas"; import { TGatewayDALFactory } from "@app/ee/services/gateway/gateway-dal"; import { TGatewayServiceFactory } from "@app/ee/services/gateway/gateway-service"; import { TGatewayV2DALFactory } from "@app/ee/services/gateway-v2/gateway-v2-dal"; @@ -28,11 +28,12 @@ import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { logger } from "@app/lib/logger"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; import { TKmsServiceFactory } from "../kms/kms-service"; import { KmsDataKey } from "../kms/kms-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityKubernetesAuthDALFactory } from "./identity-kubernetes-auth-dal"; import { extractK8sUsername } from "./identity-kubernetes-auth-fns"; @@ -52,7 +53,7 @@ type TIdentityKubernetesAuthServiceFactoryDep = { "create" | "findOne" | "transaction" | "updateById" | "delete" >; identityAccessTokenDAL: Pick; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; permissionService: Pick; licenseService: Pick; kmsService: Pick; @@ -60,6 +61,7 @@ type TIdentityKubernetesAuthServiceFactoryDep = { gatewayV2Service: TGatewayV2ServiceFactory; gatewayDAL: Pick; gatewayV2DAL: Pick; + orgDAL: Pick; }; export type TIdentityKubernetesAuthServiceFactory = ReturnType; @@ -68,7 +70,7 @@ const GATEWAY_AUTH_DEFAULT_HOST = "https://kubernetes.default.svc.cluster.local" export const identityKubernetesAuthServiceFactory = ({ identityKubernetesAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, identityAccessTokenDAL, permissionService, licenseService, @@ -76,7 +78,8 @@ export const identityKubernetesAuthServiceFactory = ({ gatewayV2Service, gatewayDAL, gatewayV2DAL, - kmsService + kmsService, + orgDAL }: TIdentityKubernetesAuthServiceFactoryDep) => { const $gatewayProxyWrapper = async ( inputs: { @@ -172,8 +175,9 @@ export const identityKubernetesAuthServiceFactory = ({ }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ - identityId: identityKubernetesAuth.identityId + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityKubernetesAuth.identityId, + scope: AccessScope.Organization }); if (!identityMembershipOrg) { throw new NotFoundError({ @@ -183,7 +187,7 @@ export const identityKubernetesAuthServiceFactory = ({ const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); let caCert = ""; @@ -426,7 +430,7 @@ export const identityKubernetesAuthServiceFactory = ({ } const identityAccessToken = await identityKubernetesAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.KUBERNETES_AUTH, @@ -496,7 +500,13 @@ export const identityKubernetesAuthServiceFactory = ({ }: TAttachKubernetesAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.KUBERNETES_AUTH)) { @@ -512,13 +522,13 @@ export const identityKubernetesAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -538,8 +548,8 @@ export const identityKubernetesAuthServiceFactory = ({ let isGatewayV1 = true; if (gatewayId) { - const [gateway] = await gatewayDAL.find({ id: gatewayId, orgId: identityMembershipOrg.orgId }); - const [gatewayV2] = await gatewayV2DAL.find({ id: gatewayId, orgId: identityMembershipOrg.orgId }); + const [gateway] = await gatewayDAL.find({ id: gatewayId, orgId: identityMembershipOrg.scopeOrgId }); + const [gatewayV2] = await gatewayV2DAL.find({ id: gatewayId, orgId: identityMembershipOrg.scopeOrgId }); if (!gateway && !gatewayV2) { throw new NotFoundError({ message: `Gateway with ID ${gatewayId} not found` @@ -553,7 +563,7 @@ export const identityKubernetesAuthServiceFactory = ({ const { permission: orgPermission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -565,13 +575,13 @@ export const identityKubernetesAuthServiceFactory = ({ const { encryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const identityKubernetesAuth = await identityKubernetesAuthDAL.transaction(async (tx) => { const doc = await identityKubernetesAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, kubernetesHost, tokenReviewMode, allowedNamespaces, @@ -593,7 +603,7 @@ export const identityKubernetesAuthServiceFactory = ({ return doc; }); - return { ...identityKubernetesAuth, caCert, tokenReviewerJwt, orgId: identityMembershipOrg.orgId }; + return { ...identityKubernetesAuth, caCert, tokenReviewerJwt, orgId: identityMembershipOrg.scopeOrgId }; }; const updateKubernetesAuth = async ({ @@ -615,7 +625,13 @@ export const identityKubernetesAuthServiceFactory = ({ actor, actorOrgId }: TUpdateKubernetesAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.KUBERNETES_AUTH)) { @@ -637,13 +653,13 @@ export const identityKubernetesAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -663,8 +679,8 @@ export const identityKubernetesAuthServiceFactory = ({ let isGatewayV1 = true; if (gatewayId) { - const [gateway] = await gatewayDAL.find({ id: gatewayId, orgId: identityMembershipOrg.orgId }); - const [gatewayV2] = await gatewayV2DAL.find({ id: gatewayId, orgId: identityMembershipOrg.orgId }); + const [gateway] = await gatewayDAL.find({ id: gatewayId, orgId: identityMembershipOrg.scopeOrgId }); + const [gatewayV2] = await gatewayV2DAL.find({ id: gatewayId, orgId: identityMembershipOrg.scopeOrgId }); if (!gateway && !gatewayV2) { throw new NotFoundError({ @@ -679,7 +695,7 @@ export const identityKubernetesAuthServiceFactory = ({ const { permission: orgPermission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -711,7 +727,7 @@ export const identityKubernetesAuthServiceFactory = ({ const { encryptor, decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); if (caCert !== undefined) { @@ -742,7 +758,7 @@ export const identityKubernetesAuthServiceFactory = ({ return { ...updatedKubernetesAuth, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, caCert: updatedCACert, tokenReviewerJwt: updatedTokenReviewerJwt }; @@ -755,7 +771,13 @@ export const identityKubernetesAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TGetKubernetesAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); const identityKubernetesAuth = await identityKubernetesAuthDAL.findOne({ identityId }); @@ -772,7 +794,7 @@ export const identityKubernetesAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -780,7 +802,7 @@ export const identityKubernetesAuthServiceFactory = ({ const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); let caCert = ""; @@ -799,7 +821,7 @@ export const identityKubernetesAuthServiceFactory = ({ ...identityKubernetesAuth, caCert, tokenReviewerJwt, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, gatewayId: identityKubernetesAuth.gatewayId ?? identityKubernetesAuth.gatewayV2Id }; }; @@ -811,7 +833,13 @@ export const identityKubernetesAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeKubernetesAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.KUBERNETES_AUTH)) { @@ -819,10 +847,10 @@ export const identityKubernetesAuthServiceFactory = ({ message: "The identity does not have kubernetes auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -830,13 +858,14 @@ export const identityKubernetesAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -846,7 +875,7 @@ export const identityKubernetesAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke kubernetes auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -856,7 +885,7 @@ export const identityKubernetesAuthServiceFactory = ({ const revokedIdentityKubernetesAuth = await identityKubernetesAuthDAL.transaction(async (tx) => { const deletedKubernetesAuth = await identityKubernetesAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.KUBERNETES_AUTH }, tx); - return { ...deletedKubernetesAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedKubernetesAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityKubernetesAuth; }; diff --git a/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts b/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts index 46ec2f98a7..1a8ea3ed6f 100644 --- a/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts +++ b/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts @@ -2,7 +2,7 @@ import { ForbiddenError } from "@casl/ability"; import slugify from "@sindresorhus/slugify"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TIdentityAuthTemplateDALFactory } from "@app/ee/services/identity-auth-template"; import { testLDAPConfig } from "@app/ee/services/ldap-config/ldap-fns"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; @@ -31,11 +31,12 @@ import { logger } from "@app/lib/logger"; import { ActorType, AuthTokenType } from "../auth/auth-type"; import { TIdentityDALFactory } from "../identity/identity-dal"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; import { TKmsServiceFactory } from "../kms/kms-service"; import { KmsDataKey } from "../kms/kms-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityLdapAuthDALFactory } from "./identity-ldap-auth-dal"; import { @@ -55,7 +56,7 @@ type TIdentityLdapAuthServiceFactoryDep = { TIdentityLdapAuthDALFactory, "findOne" | "transaction" | "create" | "updateById" | "delete" >; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; licenseService: Pick; permissionService: Pick; kmsService: TKmsServiceFactory; @@ -65,6 +66,7 @@ type TIdentityLdapAuthServiceFactoryDep = { TKeyStoreFactory, "setItemWithExpiry" | "getItem" | "deleteItem" | "getKeysByPattern" | "deleteItems" | "acquireLock" >; + orgDAL: Pick; }; export type TIdentityLdapAuthServiceFactory = ReturnType; @@ -78,18 +80,22 @@ export const identityLdapAuthServiceFactory = ({ identityAccessTokenDAL, identityDAL, identityLdapAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, licenseService, permissionService, kmsService, identityAuthTemplateDAL, - keyStore + keyStore, + orgDAL }: TIdentityLdapAuthServiceFactoryDep) => { const getLdapConfig = async (identityId: string) => { const identity = await identityDAL.findOne({ id: identityId }); if (!identity) throw new NotFoundError({ message: `Identity with ID '${identityId}' not found` }); - const identityOrgMembership = await identityOrgMembershipDAL.findOne({ identityId: identity.id }); + const identityOrgMembership = await membershipIdentityDAL.findOne({ + actorIdentityId: identity.id, + scope: AccessScope.Organization + }); if (!identityOrgMembership) throw new NotFoundError({ message: `Identity with ID '${identityId}' not found` }); const ldapAuth = await identityLdapAuthDAL.findOne({ identityId: identity.id }); @@ -101,7 +107,7 @@ export const identityLdapAuthServiceFactory = ({ const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityOrgMembership.orgId + orgId: identityOrgMembership.scopeOrgId }); const bindDN = decryptor({ cipherTextBlob: ldapAuth.encryptedBindDN }).toString(); @@ -112,7 +118,7 @@ export const identityLdapAuthServiceFactory = ({ const ldapConfig = { id: ldapAuth.id, - organization: identityOrgMembership.orgId, + organization: identityOrgMembership.scopeOrgId, url: ldapAuth.url, bindDN, bindPass, @@ -144,7 +150,10 @@ export const identityLdapAuthServiceFactory = ({ }; const login = async ({ identityId }: TLoginLdapAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityId, + scope: AccessScope.Organization + }); if (!identityMembershipOrg) { throw new UnauthorizedError({ @@ -160,7 +169,7 @@ export const identityLdapAuthServiceFactory = ({ }); } - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); if (!plan.ldap) { throw new BadRequestError({ message: @@ -169,7 +178,7 @@ export const identityLdapAuthServiceFactory = ({ } const identityAccessToken = await identityLdapAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.LDAP_AUTH, @@ -237,7 +246,13 @@ export const identityLdapAuthServiceFactory = ({ }: TAttachLdapAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.LDAP_AUTH)) { @@ -253,7 +268,7 @@ export const identityLdapAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -266,7 +281,7 @@ export const identityLdapAuthServiceFactory = ({ ); } - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); if (!plan.ldap) { throw new BadRequestError({ @@ -296,11 +311,11 @@ export const identityLdapAuthServiceFactory = ({ const identityLdapAuth = await identityLdapAuthDAL.transaction(async (tx) => { const { encryptor, decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const template = templateId - ? await identityAuthTemplateDAL.findByIdAndOrgId(templateId, identityMembershipOrg.orgId) + ? await identityAuthTemplateDAL.findByIdAndOrgId(templateId, identityMembershipOrg.scopeOrgId) : undefined; let ldapConfig: { bindDN: string; bindPass: string; searchBase: string; url: string; ldapCaCertificate?: string }; @@ -354,7 +369,7 @@ export const identityLdapAuthServiceFactory = ({ const doc = await identityLdapAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, encryptedBindDN, encryptedBindPass, searchBase: ldapConfig.searchBase, @@ -376,7 +391,7 @@ export const identityLdapAuthServiceFactory = ({ ); return doc; }); - return { ...identityLdapAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityLdapAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateLdapAuth = async ({ @@ -402,7 +417,13 @@ export const identityLdapAuthServiceFactory = ({ lockoutDurationSeconds, lockoutCounterResetSeconds }: TUpdateLdapAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.LDAP_AUTH)) { @@ -423,7 +444,7 @@ export const identityLdapAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -436,7 +457,7 @@ export const identityLdapAuthServiceFactory = ({ ); } - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); if (!plan.ldap) { throw new BadRequestError({ @@ -465,11 +486,11 @@ export const identityLdapAuthServiceFactory = ({ const { encryptor, decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const template = templateId - ? await identityAuthTemplateDAL.findByIdAndOrgId(templateId, identityMembershipOrg.orgId) + ? await identityAuthTemplateDAL.findByIdAndOrgId(templateId, identityMembershipOrg.scopeOrgId) : undefined; let config: { bindDN?: string; @@ -555,11 +576,17 @@ export const identityLdapAuthServiceFactory = ({ lockoutCounterResetSeconds }); - return { ...updatedLdapAuth, orgId: identityMembershipOrg.orgId }; + return { ...updatedLdapAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const getLdapAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetLdapAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.LDAP_AUTH)) { @@ -573,14 +600,14 @@ export const identityLdapAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const bindDN = decryptor({ cipherTextBlob: ldapIdentityAuth.encryptedBindDN }).toString(); @@ -590,7 +617,7 @@ export const identityLdapAuthServiceFactory = ({ : undefined; ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...ldapIdentityAuth, orgId: identityMembershipOrg.orgId, bindDN, bindPass, ldapCaCertificate }; + return { ...ldapIdentityAuth, orgId: identityMembershipOrg.scopeOrgId, bindDN, bindPass, ldapCaCertificate }; }; const revokeIdentityLdapAuth = async ({ @@ -600,17 +627,23 @@ export const identityLdapAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeLdapAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.LDAP_AUTH)) { throw new BadRequestError({ message: "The identity does not have LDAP Auth attached" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -618,14 +651,15 @@ export const identityLdapAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -636,7 +670,7 @@ export const identityLdapAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke LDAP auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -647,7 +681,7 @@ export const identityLdapAuthServiceFactory = ({ const [deletedLdapAuth] = await identityLdapAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.LDAP_AUTH }, tx); - return { ...deletedLdapAuth, orgId: identityMembershipOrg.orgId }; + return { ...deletedLdapAuth, orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityLdapAuth; }; @@ -736,7 +770,13 @@ export const identityLdapAuthServiceFactory = ({ actorOrgId, actorAuthMethod }: TClearLdapAuthLockoutsDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.LDAP_AUTH)) { @@ -748,7 +788,7 @@ export const identityLdapAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -758,7 +798,7 @@ export const identityLdapAuthServiceFactory = ({ pattern: `lockout:identity:${identityId}:${IdentityAuthMethod.LDAP_AUTH}:*` }); - return { deleted, identityId, orgId: identityMembershipOrg.orgId }; + return { deleted, identityId, orgId: identityMembershipOrg.scopeOrgId }; }; return { diff --git a/backend/src/services/identity-oci-auth/identity-oci-auth-service.ts b/backend/src/services/identity-oci-auth/identity-oci-auth-service.ts index a4294250c0..bfac3d1589 100644 --- a/backend/src/services/identity-oci-auth/identity-oci-auth-service.ts +++ b/backend/src/services/identity-oci-auth/identity-oci-auth-service.ts @@ -3,7 +3,7 @@ import { ForbiddenError } from "@casl/ability"; import { AxiosError } from "axios"; import RE2 from "re2"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -19,9 +19,10 @@ import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { logger } from "@app/lib/logger"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityOciAuthDALFactory } from "./identity-oci-auth-dal"; import { @@ -36,9 +37,10 @@ import { type TIdentityOciAuthServiceFactoryDep = { identityAccessTokenDAL: Pick; identityOciAuthDAL: Pick; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; licenseService: Pick; permissionService: Pick; + orgDAL: Pick; }; export type TIdentityOciAuthServiceFactory = ReturnType; @@ -46,9 +48,10 @@ export type TIdentityOciAuthServiceFactory = ReturnType { const login = async ({ identityId, headers, userOcid }: TLoginOciAuthDTO) => { const identityOciAuth = await identityOciAuthDAL.findOne({ identityId }); @@ -56,7 +59,10 @@ export const identityOciAuthServiceFactory = ({ throw new NotFoundError({ message: "OCI auth method not found for identity, did you configure OCI auth?" }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: identityOciAuth.identityId }); + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityOciAuth.identityId, + scope: AccessScope.Organization + }); if (!identityMembershipOrg) throw new UnauthorizedError({ message: "Identity not attached to a organization" }); // Validate OCI host format. Ensures that the host is in "identity..oraclecloud.com" format. @@ -92,7 +98,7 @@ export const identityOciAuthServiceFactory = ({ // Generate the token const identityAccessToken = await identityOciAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.OCI_AUTH, @@ -154,7 +160,13 @@ export const identityOciAuthServiceFactory = ({ }: TAttachOciAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.OCI_AUTH)) { @@ -170,13 +182,13 @@ export const identityOciAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -197,7 +209,7 @@ export const identityOciAuthServiceFactory = ({ const identityOciAuth = await identityOciAuthDAL.transaction(async (tx) => { const doc = await identityOciAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, type: "iam", tenancyOcid, allowedUsernames, @@ -210,7 +222,7 @@ export const identityOciAuthServiceFactory = ({ ); return doc; }); - return { ...identityOciAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityOciAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateOciAuth = async ({ @@ -226,7 +238,13 @@ export const identityOciAuthServiceFactory = ({ actor, actorOrgId }: TUpdateOciAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.OCI_AUTH)) { @@ -247,13 +265,13 @@ export const identityOciAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -282,11 +300,17 @@ export const identityOciAuthServiceFactory = ({ : undefined }); - return { ...updatedOciAuth, orgId: identityMembershipOrg.orgId }; + return { ...updatedOciAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const getOciAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetOciAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.OCI_AUTH)) { @@ -300,12 +324,12 @@ export const identityOciAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...ociIdentityAuth, orgId: identityMembershipOrg.orgId }; + return { ...ociIdentityAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeIdentityOciAuth = async ({ @@ -315,17 +339,23 @@ export const identityOciAuthServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeOciAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.OCI_AUTH)) { throw new BadRequestError({ message: "The identity does not have OCI auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -333,14 +363,15 @@ export const identityOciAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(actorOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -351,7 +382,7 @@ export const identityOciAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke OCI auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -362,7 +393,7 @@ export const identityOciAuthServiceFactory = ({ const deletedOciAuth = await identityOciAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.OCI_AUTH }, tx); - return { ...deletedOciAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedOciAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityOciAuth; }; diff --git a/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts b/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts index 6585e61f33..1218d8e1cd 100644 --- a/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts +++ b/backend/src/services/identity-oidc-auth/identity-oidc-auth-service.ts @@ -4,7 +4,7 @@ import https from "https"; import jwt from "jsonwebtoken"; import { JwksClient } from "jwks-rsa"; -import { IdentityAuthMethod, TIdentityOidcAuthsUpdate } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod, TIdentityOidcAuthsUpdate } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -25,11 +25,12 @@ import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { getValueByDot } from "@app/lib/template/dot-access"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; import { TKmsServiceFactory } from "../kms/kms-service"; import { KmsDataKey } from "../kms/kms-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityOidcAuthDALFactory } from "./identity-oidc-auth-dal"; import { doesAudValueMatchOidcPolicy, doesFieldValueMatchOidcPolicy } from "./identity-oidc-auth-fns"; @@ -43,22 +44,24 @@ import { type TIdentityOidcAuthServiceFactoryDep = { identityOidcAuthDAL: TIdentityOidcAuthDALFactory; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; identityAccessTokenDAL: Pick; permissionService: Pick; licenseService: Pick; kmsService: Pick; + orgDAL: Pick; }; export type TIdentityOidcAuthServiceFactory = ReturnType; export const identityOidcAuthServiceFactory = ({ identityOidcAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, permissionService, licenseService, identityAccessTokenDAL, - kmsService + kmsService, + orgDAL }: TIdentityOidcAuthServiceFactoryDep) => { const login = async ({ identityId, jwt: oidcJwt }: TLoginOidcAuthDTO) => { const identityOidcAuth = await identityOidcAuthDAL.findOne({ identityId }); @@ -66,8 +69,9 @@ export const identityOidcAuthServiceFactory = ({ throw new NotFoundError({ message: "OIDC auth method not found for identity, did you configure OIDC auth?" }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ - identityId: identityOidcAuth.identityId + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityOidcAuth.identityId, + scope: AccessScope.Organization }); if (!identityMembershipOrg) { throw new NotFoundError({ @@ -77,7 +81,7 @@ export const identityOidcAuthServiceFactory = ({ const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); let caCert = ""; @@ -178,7 +182,7 @@ export const identityOidcAuthServiceFactory = ({ } const identityAccessToken = await identityOidcAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.OIDC_AUTH, @@ -245,9 +249,15 @@ export const identityOidcAuthServiceFactory = ({ isActorSuperAdmin }: TAttachOidcAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) { - if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); + throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); } if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.OIDC_AUTH)) { throw new BadRequestError({ @@ -262,14 +272,14 @@ export const identityOidcAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -289,13 +299,13 @@ export const identityOidcAuthServiceFactory = ({ const { encryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const identityOidcAuth = await identityOidcAuthDAL.transaction(async (tx) => { const doc = await identityOidcAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, oidcDiscoveryUrl, encryptedCaCertificate: encryptor({ plainText: Buffer.from(caCert) }).cipherTextBlob, boundIssuer, @@ -312,7 +322,7 @@ export const identityOidcAuthServiceFactory = ({ ); return doc; }); - return { ...identityOidcAuth, orgId: identityMembershipOrg.orgId, caCert }; + return { ...identityOidcAuth, orgId: identityMembershipOrg.scopeOrgId, caCert }; }; const updateOidcAuth = async ({ @@ -333,7 +343,13 @@ export const identityOidcAuthServiceFactory = ({ actor, actorOrgId }: TUpdateOidcAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.OIDC_AUTH)) { @@ -354,14 +370,14 @@ export const identityOidcAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -396,7 +412,7 @@ export const identityOidcAuthServiceFactory = ({ const { encryptor, decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); if (caCert !== undefined) { @@ -410,13 +426,19 @@ export const identityOidcAuthServiceFactory = ({ return { ...updatedOidcAuth, - orgId: identityMembershipOrg.orgId, + orgId: identityMembershipOrg.scopeOrgId, caCert: updatedCACert }; }; const getOidcAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetOidcAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.OIDC_AUTH)) { @@ -428,7 +450,7 @@ export const identityOidcAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -438,18 +460,24 @@ export const identityOidcAuthServiceFactory = ({ const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const caCert = identityOidcAuth.encryptedCaCertificate ? decryptor({ cipherTextBlob: identityOidcAuth.encryptedCaCertificate }).toString() : ""; - return { ...identityOidcAuth, orgId: identityMembershipOrg.orgId, caCert }; + return { ...identityOidcAuth, orgId: identityMembershipOrg.scopeOrgId, caCert }; }; const revokeOidcAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TRevokeOidcAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) { throw new NotFoundError({ message: "Failed to find identity" }); } @@ -460,10 +488,10 @@ export const identityOidcAuthServiceFactory = ({ }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -472,14 +500,15 @@ export const identityOidcAuthServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -490,7 +519,7 @@ export const identityOidcAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke oidc auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -501,7 +530,7 @@ export const identityOidcAuthServiceFactory = ({ const deletedOidcAuth = await identityOidcAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.OIDC_AUTH }, tx); - return { ...deletedOidcAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedOidcAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityOidcAuth; diff --git a/backend/src/services/identity-project/identity-project-dal.ts b/backend/src/services/identity-project/identity-project-dal.ts index e5e59607d1..3dba6210da 100644 --- a/backend/src/services/identity-project/identity-project-dal.ts +++ b/backend/src/services/identity-project/identity-project-dal.ts @@ -2,6 +2,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; import { + AccessScope, TableName, TIdentities, TIdentityAlicloudAuths, @@ -15,7 +16,7 @@ import { TIdentityUniversalAuths } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; -import { ormify, selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; +import { selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; import { OrderByDirection } from "@app/lib/types"; import { ProjectIdentityOrderBy, TListProjectIdentityDTO } from "@app/services/identity-project/identity-project-types"; @@ -24,96 +25,82 @@ import { buildAuthMethods } from "../identity/identity-fns"; export type TIdentityProjectDALFactory = ReturnType; export const identityProjectDALFactory = (db: TDbClient) => { - const identityProjectOrm = ormify(db, TableName.IdentityProjectMembership); - const findByIdentityId = async (identityId: string, tx?: Knex) => { try { - const docs = await (tx || db.replicaNode())(TableName.IdentityProjectMembership) - .where(`${TableName.IdentityProjectMembership}.identityId`, identityId) - .join(TableName.Project, `${TableName.IdentityProjectMembership}.projectId`, `${TableName.Project}.id`) - .join(TableName.Identity, `${TableName.IdentityProjectMembership}.identityId`, `${TableName.Identity}.id`) - .join( - TableName.IdentityProjectMembershipRole, - `${TableName.IdentityProjectMembershipRole}.projectMembershipId`, - `${TableName.IdentityProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.IdentityProjectMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) - .leftJoin( - TableName.IdentityProjectAdditionalPrivilege, - `${TableName.IdentityProjectMembership}.id`, - `${TableName.IdentityProjectAdditionalPrivilege}.projectMembershipId` - ) - + const docs = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.actorIdentityId`, identityId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) + .join(TableName.Identity, `${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .leftJoin( TableName.IdentityUniversalAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityUniversalAuth}.identityId` ) .leftJoin( TableName.IdentityGcpAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityGcpAuth}.identityId` ) .leftJoin( TableName.IdentityAliCloudAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAliCloudAuth}.identityId` ) .leftJoin( TableName.IdentityAwsAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAwsAuth}.identityId` ) .leftJoin( TableName.IdentityKubernetesAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityKubernetesAuth}.identityId` ) .leftJoin( TableName.IdentityOciAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityOciAuth}.identityId` ) .leftJoin( TableName.IdentityOidcAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityOidcAuth}.identityId` ) .leftJoin( TableName.IdentityAzureAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAzureAuth}.identityId` ) .leftJoin( TableName.IdentityTokenAuth, - `${TableName.IdentityProjectMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityTokenAuth}.identityId` ) .select( - db.ref("id").withSchema(TableName.IdentityProjectMembership), - db.ref("createdAt").withSchema(TableName.IdentityProjectMembership), - db.ref("updatedAt").withSchema(TableName.IdentityProjectMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("createdAt").withSchema(TableName.Membership), + db.ref("updatedAt").withSchema(TableName.Membership), db.ref("id").as("identityId").withSchema(TableName.Identity), db.ref("name").as("identityName").withSchema(TableName.Identity), db.ref("hasDeleteProtection").withSchema(TableName.Identity), - db.ref("id").withSchema(TableName.IdentityProjectMembership), - db.ref("role").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("id").withSchema(TableName.IdentityProjectMembershipRole).as("membershipRoleId"), - db.ref("customRoleId").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("name").withSchema(TableName.ProjectRoles).as("customRoleName"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("temporaryMode").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("isTemporary").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("temporaryRange").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("temporaryAccessStartTime").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("temporaryAccessEndTime").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("projectId").withSchema(TableName.IdentityProjectMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("customRoleId").withSchema(TableName.MembershipRole), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole), + db.ref("isTemporary").withSchema(TableName.MembershipRole), + db.ref("temporaryRange").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessStartTime").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessEndTime").withSchema(TableName.MembershipRole), + db.ref("scopeProjectId").withSchema(TableName.Membership).as("projectId"), db.ref("name").as("projectName").withSchema(TableName.Project), db.ref("type").as("projectType").withSchema(TableName.Project), db.ref("id").as("uaId").withSchema(TableName.IdentityUniversalAuth), @@ -165,7 +152,7 @@ export const identityProjectDALFactory = (db: TDbClient) => { }) }, project: { - id: projectId, + id: projectId as string, name: projectName, type: projectType } @@ -223,12 +210,10 @@ export const identityProjectDALFactory = (db: TDbClient) => { void qb.whereILike(`${TableName.Identity}.name`, `%${filter.search}%`); } }) - .join( - TableName.IdentityProjectMembership, - `${TableName.IdentityProjectMembership}.identityId`, - `${TableName.Identity}.id` - ) - .where(`${TableName.IdentityProjectMembership}.projectId`, projectId) + .join(TableName.Membership, `${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) .orderBy( `${TableName.Identity}.${filter.orderBy ?? ProjectIdentityOrderBy.Name}`, filter.orderDirection ?? OrderByDirection.ASC @@ -240,33 +225,20 @@ export const identityProjectDALFactory = (db: TDbClient) => { void fetchIdentitySubquery.offset(filter.offset ?? 0).limit(filter.limit); } - const query = (tx || db.replicaNode())(TableName.IdentityProjectMembership) - .where(`${TableName.IdentityProjectMembership}.projectId`, projectId) - .join(TableName.Project, `${TableName.IdentityProjectMembership}.projectId`, `${TableName.Project}.id`) + const query = (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) .join(fetchIdentitySubquery, (bd) => { - bd.on(`${TableName.IdentityProjectMembership}.identityId`, `${TableName.Identity}.id`); + bd.on(`${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`); }) .where((qb) => { if (filter.identityId) { - void qb.where(`${TableName.IdentityProjectMembership}.identityId`, filter.identityId); + void qb.where(`${TableName.Membership}.actorIdentityId`, filter.identityId); } }) - .join( - TableName.IdentityProjectMembershipRole, - `${TableName.IdentityProjectMembershipRole}.projectMembershipId`, - `${TableName.IdentityProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.IdentityProjectMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) - .leftJoin( - TableName.IdentityProjectAdditionalPrivilege, - `${TableName.IdentityProjectMembership}.id`, - `${TableName.IdentityProjectAdditionalPrivilege}.projectMembershipId` - ) - + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .leftJoin( TableName.IdentityUniversalAuth, `${TableName.Identity}.id`, @@ -314,23 +286,23 @@ export const identityProjectDALFactory = (db: TDbClient) => { ) .select( - db.ref("id").withSchema(TableName.IdentityProjectMembership), - db.ref("createdAt").withSchema(TableName.IdentityProjectMembership), - db.ref("updatedAt").withSchema(TableName.IdentityProjectMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("createdAt").withSchema(TableName.Membership), + db.ref("updatedAt").withSchema(TableName.Membership), db.ref("authMethod").as("identityAuthMethod").withSchema(TableName.Identity), db.ref("id").as("identityId").withSchema(TableName.Identity), db.ref("name").as("identityName").withSchema(TableName.Identity), - db.ref("id").withSchema(TableName.IdentityProjectMembership), - db.ref("role").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("id").withSchema(TableName.IdentityProjectMembershipRole).as("membershipRoleId"), - db.ref("customRoleId").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("name").withSchema(TableName.ProjectRoles).as("customRoleName"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("temporaryMode").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("isTemporary").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("temporaryRange").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("temporaryAccessStartTime").withSchema(TableName.IdentityProjectMembershipRole), - db.ref("temporaryAccessEndTime").withSchema(TableName.IdentityProjectMembershipRole), + db.ref("id").withSchema(TableName.Membership), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("customRoleId").withSchema(TableName.MembershipRole), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole), + db.ref("isTemporary").withSchema(TableName.MembershipRole), + db.ref("temporaryRange").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessStartTime").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessEndTime").withSchema(TableName.MembershipRole), db.ref("name").as("projectName").withSchema(TableName.Project), db.ref("id").as("uaId").withSchema(TableName.IdentityUniversalAuth), db.ref("id").as("gcpId").withSchema(TableName.IdentityGcpAuth), @@ -450,13 +422,14 @@ export const identityProjectDALFactory = (db: TDbClient) => { tx?: Knex ) => { try { - const identities = await (tx || db.replicaNode())(TableName.IdentityProjectMembership) - .where(`${TableName.IdentityProjectMembership}.projectId`, projectId) - .join(TableName.Project, `${TableName.IdentityProjectMembership}.projectId`, `${TableName.Project}.id`) - .join(TableName.Identity, `${TableName.IdentityProjectMembership}.identityId`, `${TableName.Identity}.id`) + const identities = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) + .join(TableName.Identity, `${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`) .where((qb) => { if (filter.identityId) { - void qb.where("identityId", filter.identityId); + void qb.where(`${TableName.Membership}.actorIdentityId`, filter.identityId); } if (filter.search) { @@ -472,7 +445,6 @@ export const identityProjectDALFactory = (db: TDbClient) => { }; return { - ...identityProjectOrm, findByIdentityId, findByProjectId, getCountByProjectId diff --git a/backend/src/services/identity-project/identity-project-membership-role-dal.ts b/backend/src/services/identity-project/identity-project-membership-role-dal.ts deleted file mode 100644 index 3f6c6b589b..0000000000 --- a/backend/src/services/identity-project/identity-project-membership-role-dal.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; - -export type TIdentityProjectMembershipRoleDALFactory = ReturnType; - -export const identityProjectMembershipRoleDALFactory = (db: TDbClient) => { - const orm = ormify(db, TableName.IdentityProjectMembershipRole); - return orm; -}; diff --git a/backend/src/services/identity-project/identity-project-service.ts b/backend/src/services/identity-project/identity-project-service.ts index 08fd2cf0be..abe0446da6 100644 --- a/backend/src/services/identity-project/identity-project-service.ts +++ b/backend/src/services/identity-project/identity-project-service.ts @@ -1,44 +1,22 @@ import { ForbiddenError, subject } from "@casl/ability"; -import { ActionProjectType, ProjectMembershipRole } from "@app/db/schemas"; -import { - constructPermissionErrorMessage, - validatePrivilegeChangeOperation -} from "@app/ee/services/permission/permission-fns"; +import { AccessScope, ActionProjectType } from "@app/db/schemas"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { ProjectPermissionIdentityActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; -import { groupBy } from "@app/lib/fn"; -import { ms } from "@app/lib/ms"; +import { NotFoundError } from "@app/lib/errors"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; -import { TProjectDALFactory } from "../project/project-dal"; -import { ProjectUserMembershipTemporaryMode } from "../project-membership/project-membership-types"; -import { TProjectRoleDALFactory } from "../project-role/project-role-dal"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; import { TIdentityProjectDALFactory } from "./identity-project-dal"; -import { TIdentityProjectMembershipRoleDALFactory } from "./identity-project-membership-role-dal"; import { - TCreateProjectIdentityDTO, - TDeleteProjectIdentityDTO, TGetProjectIdentityByIdentityIdDTO, TGetProjectIdentityByMembershipIdDTO, - TListProjectIdentityDTO, - TUpdateProjectIdentityDTO + TListProjectIdentityDTO } from "./identity-project-types"; type TIdentityProjectServiceFactoryDep = { identityProjectDAL: TIdentityProjectDALFactory; - identityProjectMembershipRoleDAL: Pick< - TIdentityProjectMembershipRoleDALFactory, - "create" | "transaction" | "insertMany" | "delete" - >; - projectDAL: Pick; - projectRoleDAL: Pick; - identityOrgMembershipDAL: Pick; - permissionService: Pick< - TPermissionServiceFactory, - "getProjectPermission" | "getProjectPermissionByRole" | "invalidateProjectPermissionCache" - >; + permissionService: Pick; + membershipIdentityDAL: TMembershipIdentityDALFactory; }; export type TIdentityProjectServiceFactory = ReturnType; @@ -46,276 +24,8 @@ export type TIdentityProjectServiceFactory = ReturnType { - const createProjectIdentity = async ({ - identityId, - actor, - actorId, - actorOrgId, - actorAuthMethod, - projectId, - roles - }: TCreateProjectIdentityDTO) => { - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Create, - subject(ProjectPermissionSub.Identity, { - identityId - }) - ); - - const existingIdentity = await identityProjectDAL.findOne({ identityId, projectId }); - if (existingIdentity) - throw new BadRequestError({ - message: `Identity with ID ${identityId} already exists in project with ID ${projectId}` - }); - - const project = await projectDAL.findById(projectId); - const identityOrgMembership = await identityOrgMembershipDAL.findOne({ - identityId, - orgId: project.orgId - }); - if (!identityOrgMembership) - throw new NotFoundError({ - message: `Failed to find identity with ID ${identityId}` - }); - - for await (const { role: requestedRoleChange } of roles) { - const { permission: rolePermission } = await permissionService.getProjectPermissionByRole( - requestedRoleChange, - projectId - ); - - if (requestedRoleChange !== ProjectMembershipRole.NoAccess) { - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - rolePermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to assign to role", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - } - } - - // validate custom roles input - const customInputRoles = roles.filter( - ({ role }) => !Object.values(ProjectMembershipRole).includes(role as ProjectMembershipRole) - ); - const hasCustomRole = Boolean(customInputRoles.length); - const customRoles = hasCustomRole - ? await projectRoleDAL.find({ - projectId, - $in: { slug: customInputRoles.map(({ role }) => role) } - }) - : []; - if (customRoles.length !== customInputRoles.length) - throw new NotFoundError({ message: "One or more custom project roles not found" }); - - const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); - const projectIdentity = await identityProjectDAL.transaction(async (tx) => { - const identityProjectMembership = await identityProjectDAL.create( - { - identityId, - projectId: project.id - }, - tx - ); - const sanitizedProjectMembershipRoles = roles.map((inputRole) => { - const isCustomRole = Boolean(customRolesGroupBySlug?.[inputRole.role]?.[0]); - if (!inputRole.isTemporary) { - return { - projectMembershipId: identityProjectMembership.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null - }; - } - - // check cron or relative here later for now its just relative - const relativeTimeInMs = ms(inputRole.temporaryRange); - return { - projectMembershipId: identityProjectMembership.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null, - isTemporary: true, - temporaryMode: ProjectUserMembershipTemporaryMode.Relative, - temporaryRange: inputRole.temporaryRange, - temporaryAccessStartTime: new Date(inputRole.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(inputRole.temporaryAccessStartTime).getTime() + relativeTimeInMs) - }; - }); - - const identityRoles = await identityProjectMembershipRoleDAL.insertMany(sanitizedProjectMembershipRoles, tx); - return { ...identityProjectMembership, roles: identityRoles }; - }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return projectIdentity; - }; - - const updateProjectIdentity = async ({ - projectId, - identityId, - roles, - actor, - actorId, - actorAuthMethod, - actorOrgId - }: TUpdateProjectIdentityDTO) => { - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Edit, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - - const projectIdentity = await identityProjectDAL.findOne({ identityId, projectId }); - if (!projectIdentity) - throw new NotFoundError({ - message: `Identity with ID ${identityId} doesn't exists in project with ID ${projectId}` - }); - - for await (const { role: requestedRoleChange } of roles) { - const { permission: rolePermission } = await permissionService.getProjectPermissionByRole( - requestedRoleChange, - projectId - ); - - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity, - permission, - rolePermission - ); - - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to change role", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionIdentityActions.GrantPrivileges, - ProjectPermissionSub.Identity - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - } - - // validate custom roles input - const customInputRoles = roles.filter( - ({ role }) => - !Object.values(ProjectMembershipRole) - // we don't want to include custom in this check; - // this unintentionally enables setting slug to custom which is reserved - .filter((r) => r !== ProjectMembershipRole.Custom) - .includes(role as ProjectMembershipRole) - ); - const hasCustomRole = Boolean(customInputRoles.length); - const customRoles = hasCustomRole - ? await projectRoleDAL.find({ - projectId, - $in: { slug: customInputRoles.map(({ role }) => role) } - }) - : []; - if (customRoles.length !== customInputRoles.length) - throw new NotFoundError({ message: "One or more custom project roles not found" }); - - const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); - - const sanitizedProjectMembershipRoles = roles.map((inputRole) => { - const isCustomRole = Boolean(customRolesGroupBySlug?.[inputRole.role]?.[0]); - if (!inputRole.isTemporary) { - return { - projectMembershipId: projectIdentity.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null - }; - } - - // check cron or relative here later for now its just relative - const relativeTimeInMs = ms(inputRole.temporaryRange); - return { - projectMembershipId: projectIdentity.id, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null, - isTemporary: true, - temporaryMode: ProjectUserMembershipTemporaryMode.Relative, - temporaryRange: inputRole.temporaryRange, - temporaryAccessStartTime: new Date(inputRole.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(inputRole.temporaryAccessStartTime).getTime() + relativeTimeInMs) - }; - }); - - const updatedRoles = await identityProjectMembershipRoleDAL.transaction(async (tx) => { - await identityProjectMembershipRoleDAL.delete({ projectMembershipId: projectIdentity.id }, tx); - return identityProjectMembershipRoleDAL.insertMany(sanitizedProjectMembershipRoles, tx); - }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return updatedRoles; - }; - - const deleteProjectIdentity = async ({ - identityId, - actorId, - actor, - actorOrgId, - actorAuthMethod, - projectId - }: TDeleteProjectIdentityDTO) => { - const identityProjectMembership = await identityProjectDAL.findOne({ identityId, projectId }); - if (!identityProjectMembership) { - throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); - } - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionIdentityActions.Delete, - subject(ProjectPermissionSub.Identity, { identityId }) - ); - - const [deletedIdentity] = await identityProjectDAL.delete({ identityId, projectId }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return deletedIdentity; - }; - const listProjectIdentities = async ({ projectId, actor, @@ -391,9 +101,13 @@ export const identityProjectServiceFactory = ({ actorAuthMethod, actorOrgId }: TGetProjectIdentityByMembershipIdDTO) => { - const membership = await identityProjectDAL.findOne({ id: identityMembershipId }); + const membership = await membershipIdentityDAL.findOne({ + id: identityMembershipId, + scope: AccessScope.Project, + scopeOrgId: actorOrgId + }); - if (!membership) { + if (!membership || !membership.scopeProjectId || !membership.actorIdentityId) { throw new NotFoundError({ message: `Project membership with ID '${identityMembershipId}' not found` }); @@ -402,7 +116,7 @@ export const identityProjectServiceFactory = ({ const { permission } = await permissionService.getProjectPermission({ actor, actorId, - projectId: membership.projectId, + projectId: membership.scopeProjectId, actorAuthMethod, actorOrgId, actionProjectType: ActionProjectType.Any @@ -410,20 +124,17 @@ export const identityProjectServiceFactory = ({ ForbiddenError.from(permission).throwUnlessCan( ProjectPermissionIdentityActions.Read, - subject(ProjectPermissionSub.Identity, { identityId: membership.identityId }) + subject(ProjectPermissionSub.Identity, { identityId: membership.actorIdentityId }) ); - const [identityMembership] = await identityProjectDAL.findByProjectId(membership.projectId, { - identityId: membership.identityId + const [identityMembership] = await identityProjectDAL.findByProjectId(membership.scopeProjectId, { + identityId: membership.actorIdentityId }); return identityMembership; }; return { - createProjectIdentity, - updateProjectIdentity, - deleteProjectIdentity, listProjectIdentities, getProjectIdentityByIdentityId, getProjectIdentityByMembershipId diff --git a/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-service.ts b/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-service.ts index ef2463eece..625b9b328c 100644 --- a/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-service.ts +++ b/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-service.ts @@ -1,6 +1,6 @@ import { ForbiddenError } from "@casl/ability"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -15,11 +15,11 @@ import { BadRequestError, NotFoundError, PermissionBoundaryError, UnauthorizedEr import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; import { TKmsServiceFactory } from "../kms/kms-service"; import { KmsDataKey } from "../kms/kms-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityTlsCertAuthDALFactory } from "./identity-tls-cert-auth-dal"; import { TIdentityTlsCertAuthServiceFactory } from "./identity-tls-cert-auth-types"; @@ -30,7 +30,7 @@ type TIdentityTlsCertAuthServiceFactoryDep = { TIdentityTlsCertAuthDALFactory, "findOne" | "transaction" | "create" | "updateById" | "delete" >; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; licenseService: Pick; permissionService: Pick; kmsService: Pick; @@ -48,7 +48,7 @@ const parseSubjectDetails = (data: string) => { export const identityTlsCertAuthServiceFactory = ({ identityAccessTokenDAL, identityTlsCertAuthDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, licenseService, permissionService, kmsService @@ -61,8 +61,9 @@ export const identityTlsCertAuthServiceFactory = ({ }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ - identityId: identityTlsCertAuth.identityId + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityTlsCertAuth.identityId, + scope: AccessScope.Organization }); if (!identityMembershipOrg) { @@ -73,7 +74,7 @@ export const identityTlsCertAuthServiceFactory = ({ const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const caCertificate = decryptor({ @@ -118,7 +119,7 @@ export const identityTlsCertAuthServiceFactory = ({ // Generate the token const identityAccessToken = await identityTlsCertAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.TLS_CERT_AUTH, @@ -180,7 +181,13 @@ export const identityTlsCertAuthServiceFactory = ({ }) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TLS_CERT_AUTH)) { @@ -196,13 +203,13 @@ export const identityTlsCertAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -222,13 +229,13 @@ export const identityTlsCertAuthServiceFactory = ({ const { encryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const identityTlsCertAuth = await identityTlsCertAuthDAL.transaction(async (tx) => { const doc = await identityTlsCertAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, accessTokenMaxTTL, allowedCommonNames, accessTokenTTL, @@ -240,7 +247,7 @@ export const identityTlsCertAuthServiceFactory = ({ ); return doc; }); - return { ...identityTlsCertAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityTlsCertAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateTlsCertAuth: TIdentityTlsCertAuthServiceFactory["updateTlsCertAuth"] = async ({ @@ -256,7 +263,13 @@ export const identityTlsCertAuthServiceFactory = ({ actor, actorOrgId }) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TLS_CERT_AUTH)) { @@ -278,13 +291,13 @@ export const identityTlsCertAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -303,7 +316,7 @@ export const identityTlsCertAuthServiceFactory = ({ }); const { encryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); const updatedTlsCertAuth = await identityTlsCertAuthDAL.updateById(identityTlsCertAuth.id, { @@ -319,7 +332,7 @@ export const identityTlsCertAuthServiceFactory = ({ : undefined }); - return { ...updatedTlsCertAuth, orgId: identityMembershipOrg.orgId }; + return { ...updatedTlsCertAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const getTlsCertAuth: TIdentityTlsCertAuthServiceFactory["getTlsCertAuth"] = async ({ @@ -329,7 +342,13 @@ export const identityTlsCertAuthServiceFactory = ({ actorAuthMethod, actorOrgId }) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TLS_CERT_AUTH)) { @@ -343,21 +362,21 @@ export const identityTlsCertAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); const { decryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.Organization, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }); let caCertificate = ""; if (identityAuth.encryptedCaCertificate) { caCertificate = decryptor({ cipherTextBlob: identityAuth.encryptedCaCertificate }).toString(); } - return { ...identityAuth, caCertificate, orgId: identityMembershipOrg.orgId }; + return { ...identityAuth, caCertificate, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeTlsCertAuth: TIdentityTlsCertAuthServiceFactory["revokeTlsCertAuth"] = async ({ @@ -367,32 +386,39 @@ export const identityTlsCertAuthServiceFactory = ({ actorAuthMethod, actorOrgId }) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TLS_CERT_AUTH)) { throw new BadRequestError({ message: "The identity does not have TLS Certificate auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const { permission: rolePermission } = await permissionService.getOrgPermission( + const { permission: rolePermission, memberships } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const shouldUseNewPrivilegeSystem = Boolean(memberships?.[0]?.shouldUseNewPrivilegeSystem); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -403,7 +429,7 @@ export const identityTlsCertAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke TLS Certificate auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -414,7 +440,7 @@ export const identityTlsCertAuthServiceFactory = ({ const deletedTlsCertAuth = await identityTlsCertAuthDAL.delete({ identityId }, tx); await identityAccessTokenDAL.delete({ identityId, authMethod: IdentityAuthMethod.TLS_CERT_AUTH }, tx); - return { ...deletedTlsCertAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedTlsCertAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityTlsCertAuth; }; diff --git a/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-types.ts b/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-types.ts index b7a08276b7..eb9f4ab5dd 100644 --- a/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-types.ts +++ b/backend/src/services/identity-tls-cert-auth/identity-tls-cert-auth-types.ts @@ -1,4 +1,4 @@ -import { TIdentityAccessTokens, TIdentityOrgMemberships, TIdentityTlsCertAuths } from "@app/db/schemas"; +import { TIdentityAccessTokens, TIdentityTlsCertAuths, TMemberships } from "@app/db/schemas"; import { TProjectPermission } from "@app/lib/types"; export type TLoginTlsCertAuthDTO = { @@ -40,7 +40,7 @@ export type TIdentityTlsCertAuthServiceFactory = { identityTlsCertAuth: TIdentityTlsCertAuths; accessToken: string; identityAccessToken: TIdentityAccessTokens; - identityMembershipOrg: TIdentityOrgMemberships; + identityMembershipOrg: TMemberships; }>; attachTlsCertAuth: (dto: TAttachTlsCertAuthDTO) => Promise; updateTlsCertAuth: (dto: TUpdateTlsCertAuthDTO) => Promise; diff --git a/backend/src/services/identity-token-auth/identity-token-auth-service.ts b/backend/src/services/identity-token-auth/identity-token-auth-service.ts index d3743bd96f..2ae05cb972 100644 --- a/backend/src/services/identity-token-auth/identity-token-auth-service.ts +++ b/backend/src/services/identity-token-auth/identity-token-auth-service.ts @@ -1,6 +1,6 @@ import { ForbiddenError } from "@casl/ability"; -import { IdentityAuthMethod, TableName } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod, TableName } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -14,9 +14,10 @@ import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/li import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityTokenAuthDALFactory } from "./identity-token-auth-dal"; import { @@ -35,13 +36,14 @@ type TIdentityTokenAuthServiceFactoryDep = { TIdentityTokenAuthDALFactory, "transaction" | "create" | "findOne" | "updateById" | "delete" >; - identityOrgMembershipDAL: Pick; + membershipIdentityDAL: Pick; identityAccessTokenDAL: Pick< TIdentityAccessTokenDALFactory, "create" | "find" | "update" | "findById" | "findOne" | "updateById" | "delete" >; permissionService: Pick; licenseService: Pick; + orgDAL: Pick; }; export type TIdentityTokenAuthServiceFactory = ReturnType; @@ -49,10 +51,11 @@ export type TIdentityTokenAuthServiceFactory = ReturnType { const attachTokenAuth = async ({ identityId, @@ -68,7 +71,13 @@ export const identityTokenAuthServiceFactory = ({ }: TAttachTokenAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TOKEN_AUTH)) { @@ -84,13 +93,13 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -111,7 +120,7 @@ export const identityTokenAuthServiceFactory = ({ const identityTokenAuth = await identityTokenAuthDAL.transaction(async (tx) => { const doc = await identityTokenAuthDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, accessTokenMaxTTL, accessTokenTTL, accessTokenNumUsesLimit, @@ -121,7 +130,7 @@ export const identityTokenAuthServiceFactory = ({ ); return doc; }); - return { ...identityTokenAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityTokenAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const updateTokenAuth = async ({ @@ -138,7 +147,13 @@ export const identityTokenAuthServiceFactory = ({ }: TUpdateTokenAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TOKEN_AUTH)) { @@ -160,13 +175,13 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedAccessTokenTrustedIps = accessTokenTrustedIps?.map((accessTokenTrustedIp) => { if ( !plan.ipAllowlisting && @@ -195,12 +210,18 @@ export const identityTokenAuthServiceFactory = ({ return { ...updatedTokenAuth, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }; }; const getTokenAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetTokenAuthDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TOKEN_AUTH)) { @@ -214,13 +235,13 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...identityTokenAuth, orgId: identityMembershipOrg.orgId }; + return { ...identityTokenAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeIdentityTokenAuth = async ({ @@ -233,7 +254,13 @@ export const identityTokenAuthServiceFactory = ({ }: TRevokeTokenAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TOKEN_AUTH)) { @@ -244,22 +271,23 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const { permission: rolePermission, membership } = await permissionService.getOrgPermission( + const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -269,7 +297,7 @@ export const identityTokenAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke token auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -283,7 +311,7 @@ export const identityTokenAuthServiceFactory = ({ authMethod: IdentityAuthMethod.TOKEN_AUTH }); - return { ...deletedTokenAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedTokenAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityTokenAuth; }; @@ -299,7 +327,13 @@ export const identityTokenAuthServiceFactory = ({ }: TCreateTokenAuthTokenDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TOKEN_AUTH)) { @@ -310,22 +344,23 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const { permission: rolePermission, membership } = await permissionService.getOrgPermission( + const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.CreateToken, OrgPermissionSubjects.Identity, permission, @@ -335,7 +370,7 @@ export const identityTokenAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to create token for identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.CreateToken, OrgPermissionSubjects.Identity ), @@ -345,7 +380,7 @@ export const identityTokenAuthServiceFactory = ({ const identityTokenAuth = await identityTokenAuthDAL.findOne({ identityId }); const identityAccessToken = await identityTokenAuthDAL.transaction(async (tx) => { - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.TOKEN_AUTH, @@ -400,7 +435,13 @@ export const identityTokenAuthServiceFactory = ({ }: TGetTokenAuthTokensDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.TOKEN_AUTH)) { @@ -411,7 +452,7 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -443,7 +484,13 @@ export const identityTokenAuthServiceFactory = ({ }); if (!foundToken) throw new NotFoundError({ message: `Token with ID ${tokenId} not found` }); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: foundToken.identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId: foundToken.identityId + }); if (!identityMembershipOrg) { throw new NotFoundError({ message: `Failed to find identity with ID ${foundToken.identityId}` }); } @@ -457,21 +504,22 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const { permission: rolePermission, membership } = await permissionService.getOrgPermission( + const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.CreateToken, OrgPermissionSubjects.Identity, permission, @@ -481,7 +529,7 @@ export const identityTokenAuthServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to update token for identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.CreateToken, OrgPermissionSubjects.Identity ), @@ -523,8 +571,9 @@ export const identityTokenAuthServiceFactory = ({ await validateIdentityUpdateForSuperAdminPrivileges(identityAccessToken.identityId, isActorSuperAdmin); - const identityOrgMembership = await identityOrgMembershipDAL.findOne({ - identityId: identityAccessToken.identityId + const identityOrgMembership = await membershipIdentityDAL.findOne({ + actorIdentityId: identityAccessToken.identityId, + scope: AccessScope.Organization }); if (!identityOrgMembership) { @@ -534,7 +583,7 @@ export const identityTokenAuthServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityOrgMembership.orgId, + identityOrgMembership.scopeOrgId, actorAuthMethod, actorOrgId ); diff --git a/backend/src/services/identity-ua/identity-ua-service.ts b/backend/src/services/identity-ua/identity-ua-service.ts index 979e6f25fb..563a3f897d 100644 --- a/backend/src/services/identity-ua/identity-ua-service.ts +++ b/backend/src/services/identity-ua/identity-ua-service.ts @@ -1,6 +1,6 @@ import { ForbiddenError } from "@casl/ability"; -import { IdentityAuthMethod } from "@app/db/schemas"; +import { AccessScope, IdentityAuthMethod } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -22,9 +22,10 @@ import { checkIPAgainstBlocklist, extractIPDetails, isValidIpOrCidr, TIp } from import { logger } from "@app/lib/logger"; import { ActorType, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityUaClientSecretDALFactory } from "./identity-ua-client-secret-dal"; import { TIdentityUaDALFactory } from "./identity-ua-dal"; @@ -44,9 +45,10 @@ type TIdentityUaServiceFactoryDep = { identityUaDAL: TIdentityUaDALFactory; identityUaClientSecretDAL: TIdentityUaClientSecretDALFactory; identityAccessTokenDAL: TIdentityAccessTokenDALFactory; - identityOrgMembershipDAL: TIdentityOrgDALFactory; + membershipIdentityDAL: TMembershipIdentityDALFactory; permissionService: Pick; licenseService: Pick; + orgDAL: Pick; keyStore: Pick< TKeyStoreFactory, "setItemWithExpiry" | "getItem" | "deleteItem" | "getKeysByPattern" | "deleteItems" | "acquireLock" @@ -64,9 +66,10 @@ export const identityUaServiceFactory = ({ identityUaDAL, identityUaClientSecretDAL, identityAccessTokenDAL, - identityOrgMembershipDAL, + membershipIdentityDAL, permissionService, licenseService, + orgDAL, keyStore }: TIdentityUaServiceFactoryDep) => { const login = async (clientId: string, clientSecret: string, ip: string) => { @@ -97,7 +100,10 @@ export const identityUaServiceFactory = ({ }); } - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: identityUa.identityId }); + const identityMembershipOrg = await membershipIdentityDAL.findOne({ + actorIdentityId: identityUa.identityId, + scope: AccessScope.Organization + }); if (!identityMembershipOrg) { throw new UnauthorizedError({ message: "Invalid credentials" @@ -223,7 +229,7 @@ export const identityUaServiceFactory = ({ const identityAccessToken = await identityUaDAL.transaction(async (tx) => { const uaClientSecretDoc = await identityUaClientSecretDAL.incrementUsage(validClientSecretInfo!.id, tx); - await identityOrgMembershipDAL.updateById( + await membershipIdentityDAL.updateById( identityMembershipOrg.id, { lastLoginAuthMethod: IdentityAuthMethod.UNIVERSAL_AUTH, @@ -295,7 +301,13 @@ export const identityUaServiceFactory = ({ }: TAttachUaDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.UNIVERSAL_AUTH)) { @@ -311,13 +323,13 @@ export const identityUaServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedClientSecretTrustedIps = clientSecretTrustedIps.map((clientSecretTrustedIp) => { if ( !plan.ipAllowlisting && @@ -354,7 +366,7 @@ export const identityUaServiceFactory = ({ const identityUa = await identityUaDAL.transaction(async (tx) => { const doc = await identityUaDAL.create( { - identityId: identityMembershipOrg.identityId, + identityId: identityMembershipOrg.identity.id, clientId: crypto.nativeCrypto.randomUUID(), clientSecretTrustedIps: JSON.stringify(reformattedClientSecretTrustedIps), accessTokenMaxTTL, @@ -371,7 +383,7 @@ export const identityUaServiceFactory = ({ ); return doc; }); - return { ...identityUa, orgId: identityMembershipOrg.orgId }; + return { ...identityUa, orgId: identityMembershipOrg.scopeOrgId }; }; const updateUniversalAuth = async ({ @@ -391,7 +403,13 @@ export const identityUaServiceFactory = ({ lockoutDurationSeconds, lockoutCounterResetSeconds }: TUpdateUaDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); const uaIdentityAuth = await identityUaDAL.findOne({ identityId }); @@ -415,13 +433,13 @@ export const identityUaServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const plan = await licenseService.getPlan(identityMembershipOrg.orgId); + const plan = await licenseService.getPlan(identityMembershipOrg.scopeOrgId); const reformattedClientSecretTrustedIps = clientSecretTrustedIps?.map((clientSecretTrustedIp) => { if ( !plan.ipAllowlisting && @@ -471,11 +489,17 @@ export const identityUaServiceFactory = ({ lockoutDurationSeconds, lockoutCounterResetSeconds }); - return { ...updatedUaAuth, orgId: identityMembershipOrg.orgId }; + return { ...updatedUaAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const getIdentityUniversalAuth = async ({ identityId, actorId, actor, actorAuthMethod, actorOrgId }: TGetUaDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); const uaIdentityAuth = await identityUaDAL.findOne({ identityId }); @@ -492,12 +516,12 @@ export const identityUaServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); - return { ...uaIdentityAuth, orgId: identityMembershipOrg.orgId }; + return { ...uaIdentityAuth, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeIdentityUniversalAuth = async ({ @@ -507,7 +531,13 @@ export const identityUaServiceFactory = ({ actorAuthMethod, actorOrgId }: TRevokeUaDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.UNIVERSAL_AUTH)) { @@ -518,21 +548,22 @@ export const identityUaServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - const { permission: rolePermission, membership } = await permissionService.getOrgPermission( + const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity, permission, @@ -542,7 +573,7 @@ export const identityUaServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke universal auth of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.RevokeAuth, OrgPermissionSubjects.Identity ), @@ -551,7 +582,7 @@ export const identityUaServiceFactory = ({ const revokedIdentityUniversalAuth = await identityUaDAL.transaction(async (tx) => { const deletedUniversalAuth = await identityUaDAL.delete({ identityId }, tx); - return { ...deletedUniversalAuth?.[0], orgId: identityMembershipOrg.orgId }; + return { ...deletedUniversalAuth?.[0], orgId: identityMembershipOrg.scopeOrgId }; }); return revokedIdentityUniversalAuth; }; @@ -566,7 +597,13 @@ export const identityUaServiceFactory = ({ description, numUsesLimit }: TCreateUaClientSecretDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.UNIVERSAL_AUTH)) { @@ -575,10 +612,10 @@ export const identityUaServiceFactory = ({ }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -586,13 +623,14 @@ export const identityUaServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.CreateToken, OrgPermissionSubjects.Identity, permission, @@ -602,7 +640,7 @@ export const identityUaServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to create client secret for identity.", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.CreateToken, OrgPermissionSubjects.Identity ), @@ -613,7 +651,7 @@ export const identityUaServiceFactory = ({ const clientSecret = crypto.randomBytes(32).toString("hex"); const clientSecretHash = await crypto.hashing().createHash(clientSecret, appCfg.SALT_ROUNDS); - const identityUaAuth = await identityUaDAL.findOne({ identityId: identityMembershipOrg.identityId }); + const identityUaAuth = await identityUaDAL.findOne({ identityId: identityMembershipOrg.identity.id }); if (!identityUaAuth) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); const identityUaClientSecret = await identityUaClientSecretDAL.create({ @@ -629,7 +667,7 @@ export const identityUaServiceFactory = ({ return { clientSecret, clientSecretData: identityUaClientSecret, - orgId: identityMembershipOrg.orgId + orgId: identityMembershipOrg.scopeOrgId }; }; @@ -640,7 +678,13 @@ export const identityUaServiceFactory = ({ actorAuthMethod, identityId }: TGetUaClientSecretsDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.UNIVERSAL_AUTH)) { @@ -648,10 +692,10 @@ export const identityUaServiceFactory = ({ message: "The identity does not have universal auth" }); } - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -659,14 +703,15 @@ export const identityUaServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GetToken, OrgPermissionSubjects.Identity, permission, @@ -676,7 +721,7 @@ export const identityUaServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to get identity client secret with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GetToken, OrgPermissionSubjects.Identity ), @@ -691,7 +736,7 @@ export const identityUaServiceFactory = ({ identityUAId: identityUniversalAuth.id, isClientSecretRevoked: false }); - return { clientSecrets, orgId: identityMembershipOrg.orgId }; + return { clientSecrets, orgId: identityMembershipOrg.scopeOrgId }; }; const getUniversalAuthClientSecretById = async ({ @@ -702,7 +747,13 @@ export const identityUaServiceFactory = ({ actorAuthMethod, clientSecretId }: TGetUniversalAuthClientSecretByIdDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.UNIVERSAL_AUTH)) { @@ -717,10 +768,10 @@ export const identityUaServiceFactory = ({ const clientSecret = await identityUaClientSecretDAL.findOne({ id: clientSecretId, identityUAId: identityUa.id }); if (!clientSecret) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -728,13 +779,14 @@ export const identityUaServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GetToken, OrgPermissionSubjects.Identity, permission, @@ -744,14 +796,14 @@ export const identityUaServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to read identity client secret of identity with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GetToken, OrgPermissionSubjects.Identity ), details: { missingPermissions: permissionBoundary.missingPermissions } }); - return { ...clientSecret, identityId, orgId: identityMembershipOrg.orgId }; + return { ...clientSecret, identityId, orgId: identityMembershipOrg.scopeOrgId }; }; const revokeUniversalAuthClientSecret = async ({ @@ -762,7 +814,13 @@ export const identityUaServiceFactory = ({ actorAuthMethod, clientSecretId }: TRevokeUaClientSecretDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.UNIVERSAL_AUTH)) { @@ -777,10 +835,10 @@ export const identityUaServiceFactory = ({ const clientSecret = await identityUaClientSecretDAL.findOne({ id: clientSecretId, identityUAId: identityUa.id }); if (!clientSecret) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -788,14 +846,15 @@ export const identityUaServiceFactory = ({ const { permission: rolePermission } = await permissionService.getOrgPermission( ActorType.IDENTITY, - identityMembershipOrg.identityId, - identityMembershipOrg.orgId, + identityMembershipOrg.identity.id, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(identityMembershipOrg.scopeOrgId); const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.DeleteToken, OrgPermissionSubjects.Identity, permission, @@ -805,7 +864,7 @@ export const identityUaServiceFactory = ({ throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to revoke identity client secret with more privileged role", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.DeleteToken, OrgPermissionSubjects.Identity ), @@ -817,7 +876,7 @@ export const identityUaServiceFactory = ({ isClientSecretRevoked: true }); - return { ...updatedClientSecret, identityId, orgId: identityMembershipOrg.orgId }; + return { ...updatedClientSecret, identityId, orgId: identityMembershipOrg.scopeOrgId }; }; const clearUniversalAuthLockouts = async ({ @@ -827,7 +886,13 @@ export const identityUaServiceFactory = ({ actorOrgId, actorAuthMethod }: TClearUaLockoutsDTO) => { - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + const identityMembershipOrg = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId + }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.UNIVERSAL_AUTH)) { @@ -839,7 +904,7 @@ export const identityUaServiceFactory = ({ const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityMembershipOrg.orgId, + identityMembershipOrg.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -849,7 +914,7 @@ export const identityUaServiceFactory = ({ pattern: `lockout:identity:${identityId}:${IdentityAuthMethod.UNIVERSAL_AUTH}:*` }); - return { deleted, identityId, orgId: identityMembershipOrg.orgId }; + return { deleted, identityId, orgId: identityMembershipOrg.scopeOrgId }; }; return { diff --git a/backend/src/services/identity/identity-dal.ts b/backend/src/services/identity/identity-dal.ts index 7bc7976004..a2e4995ca4 100644 --- a/backend/src/services/identity/identity-dal.ts +++ b/backend/src/services/identity/identity-dal.ts @@ -50,11 +50,23 @@ export const identityDALFactory = (db: TDbClient) => { }); } + const countQuery = query.clone(); + if (sortBy) { query = query.orderBy(sortBy); } - return await query.limit(limit).offset(offset).select(selectAllTableCols(TableName.Identity)); + const [identities, totalResult] = await Promise.all([ + query.limit(limit).offset(offset).select(selectAllTableCols(TableName.Identity)), + countQuery.countDistinct(`${TableName.Identity}.id`, { as: "count" }).first() + ]); + + const total = Number(totalResult?.count || 0); + + return { + identities, + total + }; } catch (error) { throw new DatabaseError({ error, name: "Get identities by filter" }); } diff --git a/backend/src/services/identity/identity-org-dal.ts b/backend/src/services/identity/identity-org-dal.ts index c083df5aa0..65aee561cd 100644 --- a/backend/src/services/identity/identity-org-dal.ts +++ b/backend/src/services/identity/identity-org-dal.ts @@ -2,6 +2,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; import { + AccessScope, TableName, TIdentityAlicloudAuths, TIdentityAwsAuths, @@ -11,15 +12,15 @@ import { TIdentityKubernetesAuths, TIdentityOciAuths, TIdentityOidcAuths, - TIdentityOrgMemberships, TIdentityTlsCertAuths, TIdentityTokenAuths, TIdentityUniversalAuths, - TOrgRoles + TMembershipRoles, + TMemberships } from "@app/db/schemas"; import { TIdentityLdapAuths } from "@app/db/schemas/identity-ldap-auths"; import { BadRequestError, DatabaseError } from "@app/lib/errors"; -import { ormify, selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; +import { selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; import { buildKnexFilterForSearchResource } from "@app/lib/search-resource/db"; import { OrderByDirection } from "@app/lib/types"; import { @@ -33,80 +34,80 @@ import { buildAuthMethods } from "./identity-fns"; export type TIdentityOrgDALFactory = ReturnType; export const identityOrgDALFactory = (db: TDbClient) => { - const identityOrgOrm = ormify(db, TableName.IdentityOrgMembership); - - const findOne = async (filter: Partial, tx?: Knex) => { + const findOne = async (filter: Partial, tx?: Knex) => { try { - const [data] = await (tx || db.replicaNode())(TableName.IdentityOrgMembership) + const [data] = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) .where((queryBuilder) => { Object.entries(filter).forEach(([key, value]) => { - void queryBuilder.where(`${TableName.IdentityOrgMembership}.${key}`, value); + void queryBuilder.where(`${TableName.Membership}.${key}`, value); }); }) - .join(TableName.Identity, `${TableName.IdentityOrgMembership}.identityId`, `${TableName.Identity}.id`) + .join(TableName.Identity, `${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`) .leftJoin( TableName.IdentityUniversalAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityUniversalAuth}.identityId` ) .leftJoin( TableName.IdentityGcpAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityGcpAuth}.identityId` ) .leftJoin( TableName.IdentityAliCloudAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAliCloudAuth}.identityId` ) .leftJoin( TableName.IdentityAwsAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAwsAuth}.identityId` ) .leftJoin( TableName.IdentityKubernetesAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityKubernetesAuth}.identityId` ) .leftJoin( TableName.IdentityOciAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityOciAuth}.identityId` ) .leftJoin( TableName.IdentityOidcAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityOidcAuth}.identityId` ) .leftJoin( TableName.IdentityAzureAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAzureAuth}.identityId` ) .leftJoin( TableName.IdentityTokenAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityTokenAuth}.identityId` ) .leftJoin( TableName.IdentityJwtAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityJwtAuth}.identityId` ) .leftJoin( TableName.IdentityLdapAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityLdapAuth}.identityId` ) .leftJoin( TableName.IdentityTlsCertAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityTlsCertAuth}.identityId` ) .select( - selectAllTableCols(TableName.IdentityOrgMembership), + selectAllTableCols(TableName.Membership), db.ref("id").as("uaId").withSchema(TableName.IdentityUniversalAuth), db.ref("id").as("gcpId").withSchema(TableName.IdentityGcpAuth), @@ -129,7 +130,7 @@ export const identityOrgDALFactory = (db: TDbClient) => { return { ...data, identity: { - id: data.identityId, + id: data.actorIdentityId as string, name, hasDeleteProtection, authMethods: buildAuthMethods(data) @@ -149,20 +150,18 @@ export const identityOrgDALFactory = (db: TDbClient) => { orderDirection = OrderByDirection.ASC, search, ...filter - }: Partial & + }: Partial & Pick, tx?: Knex ) => { try { const paginatedIdentity = (tx || db.replicaNode())(TableName.Identity) - .join( - TableName.IdentityOrgMembership, - `${TableName.IdentityOrgMembership}.identityId`, - `${TableName.Identity}.id` - ) + .join(TableName.Membership, `${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) .orderBy(`${TableName.Identity}.${orderBy}`, orderDirection) .select( - selectAllTableCols(TableName.IdentityOrgMembership), + selectAllTableCols(TableName.Membership), db.ref("name").withSchema(TableName.Identity).as("identityName"), db.ref("hasDeleteProtection").withSchema(TableName.Identity) ) @@ -181,84 +180,87 @@ export const identityOrgDALFactory = (db: TDbClient) => { type TSubquery = Awaited; const query = (tx || db.replicaNode()) .from(paginatedIdentity) - .leftJoin(TableName.OrgRoles, `paginatedIdentity.roleId`, `${TableName.OrgRoles}.id`) - + .join( + TableName.MembershipRole, + `${TableName.MembershipRole}.membershipId`, + "paginatedIdentity.id" + ) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { void queryBuilder - .on(`paginatedIdentity.identityId`, `${TableName.IdentityMetadata}.identityId`) - .andOn(`paginatedIdentity.orgId`, `${TableName.IdentityMetadata}.orgId`); + .on(`paginatedIdentity.actorIdentityId`, `${TableName.IdentityMetadata}.identityId`) + .andOn(`paginatedIdentity.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); }) - .leftJoin( TableName.IdentityUniversalAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityUniversalAuth}.identityId` ) .leftJoin( TableName.IdentityGcpAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityGcpAuth}.identityId` ) .leftJoin( TableName.IdentityAliCloudAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityAliCloudAuth}.identityId` ) .leftJoin( TableName.IdentityAwsAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityAwsAuth}.identityId` ) .leftJoin( TableName.IdentityKubernetesAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityKubernetesAuth}.identityId` ) .leftJoin( TableName.IdentityOciAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityOciAuth}.identityId` ) .leftJoin( TableName.IdentityOidcAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityOidcAuth}.identityId` ) .leftJoin( TableName.IdentityAzureAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityAzureAuth}.identityId` ) .leftJoin( TableName.IdentityTokenAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityTokenAuth}.identityId` ) .leftJoin( TableName.IdentityJwtAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityJwtAuth}.identityId` ) .leftJoin( TableName.IdentityLdapAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityLdapAuth}.identityId` ) .leftJoin( TableName.IdentityTlsCertAuth, - "paginatedIdentity.identityId", + "paginatedIdentity.actorIdentityId", `${TableName.IdentityTlsCertAuth}.identityId` ) .select( db.ref("id").withSchema("paginatedIdentity"), - db.ref("role").withSchema("paginatedIdentity"), - db.ref("roleId").withSchema("paginatedIdentity"), - db.ref("orgId").withSchema("paginatedIdentity"), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("customRoleId").withSchema(TableName.MembershipRole).as("roleId"), + db.ref("scopeOrgId").withSchema("paginatedIdentity").as("orgId"), db.ref("lastLoginAuthMethod").withSchema("paginatedIdentity"), db.ref("lastLoginTime").withSchema("paginatedIdentity"), db.ref("createdAt").withSchema("paginatedIdentity"), db.ref("updatedAt").withSchema("paginatedIdentity"), - db.ref("identityId").withSchema("paginatedIdentity").as("identityId"), + db.ref("actorIdentityId").withSchema("paginatedIdentity").as("identityId"), db.ref("identityName").withSchema("paginatedIdentity"), db.ref("hasDeleteProtection").withSchema("paginatedIdentity"), @@ -276,12 +278,11 @@ export const identityOrgDALFactory = (db: TDbClient) => { db.ref("id").as("tlsCertId").withSchema(TableName.IdentityTlsCertAuth) ) // cr stands for custom role - .select(db.ref("id").as("crId").withSchema(TableName.OrgRoles)) - .select(db.ref("name").as("crName").withSchema(TableName.OrgRoles)) - .select(db.ref("slug").as("crSlug").withSchema(TableName.OrgRoles)) - .select(db.ref("description").as("crDescription").withSchema(TableName.OrgRoles)) - .select(db.ref("permissions").as("crPermission").withSchema(TableName.OrgRoles)) - .select(db.ref("permissions").as("crPermission").withSchema(TableName.OrgRoles)) + .select(db.ref("id").as("crId").withSchema(TableName.Role)) + .select(db.ref("name").as("crName").withSchema(TableName.Role)) + .select(db.ref("slug").as("crSlug").withSchema(TableName.Role)) + .select(db.ref("description").as("crDescription").withSchema(TableName.Role)) + .select(db.ref("permissions").as("crPermission").withSchema(TableName.Role)) .select( db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), @@ -327,7 +328,7 @@ export const identityOrgDALFactory = (db: TDbClient) => { }) => ({ role, roleId, - identityId, + identityId: identityId as string, id, orgId, createdAt, @@ -344,7 +345,7 @@ export const identityOrgDALFactory = (db: TDbClient) => { } : undefined, identity: { - id: identityId, + id: identityId as string, name: identityName, hasDeleteProtection, authMethods: buildAuthMethods({ @@ -394,20 +395,23 @@ export const identityOrgDALFactory = (db: TDbClient) => { tx?: Knex ) => { try { - const searchQuery = (tx || db.replicaNode())(TableName.IdentityOrgMembership) - .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.IdentityOrgMembership}.identityId`) - .where(`${TableName.IdentityOrgMembership}.orgId`, orgId) - .leftJoin(TableName.OrgRoles, `${TableName.IdentityOrgMembership}.roleId`, `${TableName.OrgRoles}.id`) + const searchQuery = (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.Membership}.actorIdentityId`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .orderBy( orderBy === OrgIdentityOrderBy.Role - ? `${TableName.IdentityOrgMembership}.${orderBy}` + ? `${TableName.MembershipRole}.${orderBy}` : `${TableName.Identity}.${orderBy}`, orderDirection ) - .select(`${TableName.IdentityOrgMembership}.id`) + .select(`${TableName.Membership}.id`) .select<{ id: string; total_count: string }>( db.raw( - `count(${TableName.IdentityOrgMembership}."identityId") OVER(PARTITION BY ${TableName.IdentityOrgMembership}."orgId") as total_count` + `count(${TableName.Membership}."actorIdentityId") OVER(PARTITION BY ${TableName.Membership}."scopeOrgId") as total_count` ) ) .as("searchedIdentities"); @@ -416,7 +420,7 @@ export const identityOrgDALFactory = (db: TDbClient) => { buildKnexFilterForSearchResource(searchQuery, searchFilter, (attr) => { switch (attr) { case "role": - return [`${TableName.OrgRoles}.slug`, `${TableName.IdentityOrgMembership}.role`]; + return [`${TableName.Role}.slug`, `${TableName.MembershipRole}.role`]; case "name": return `${TableName.Identity}.name`; default: @@ -430,82 +434,85 @@ export const identityOrgDALFactory = (db: TDbClient) => { } type TSubquery = Awaited; - const query = (tx || db.replicaNode())(TableName.IdentityOrgMembership) - .where(`${TableName.IdentityOrgMembership}.orgId`, orgId) - .join(searchQuery, `${TableName.IdentityOrgMembership}.id`, "searchedIdentities.id") - .join(TableName.Identity, `${TableName.IdentityOrgMembership}.identityId`, `${TableName.Identity}.id`) - .leftJoin(TableName.OrgRoles, `${TableName.IdentityOrgMembership}.roleId`, `${TableName.OrgRoles}.id`) + const query = (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .join(searchQuery, `${TableName.Membership}.id`, "searchedIdentities.id") + .join(TableName.Identity, `${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { void queryBuilder - .on(`${TableName.IdentityOrgMembership}.identityId`, `${TableName.IdentityMetadata}.identityId`) - .andOn(`${TableName.IdentityOrgMembership}.orgId`, `${TableName.IdentityMetadata}.orgId`); + .on(`${TableName.Membership}.actorIdentityId`, `${TableName.IdentityMetadata}.identityId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); }) .leftJoin( TableName.IdentityUniversalAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityUniversalAuth}.identityId` ) .leftJoin( TableName.IdentityGcpAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityGcpAuth}.identityId` ) .leftJoin( TableName.IdentityAliCloudAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAliCloudAuth}.identityId` ) .leftJoin( TableName.IdentityAwsAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAwsAuth}.identityId` ) .leftJoin( TableName.IdentityKubernetesAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityKubernetesAuth}.identityId` ) .leftJoin( TableName.IdentityOciAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityOciAuth}.identityId` ) .leftJoin( TableName.IdentityOidcAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityOidcAuth}.identityId` ) .leftJoin( TableName.IdentityAzureAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityAzureAuth}.identityId` ) .leftJoin( TableName.IdentityTokenAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityTokenAuth}.identityId` ) .leftJoin( TableName.IdentityJwtAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityJwtAuth}.identityId` ) .leftJoin( TableName.IdentityLdapAuth, - `${TableName.IdentityOrgMembership}.identityId`, + `${TableName.Membership}.actorIdentityId`, `${TableName.IdentityLdapAuth}.identityId` ) .select( - db.ref("id").withSchema(TableName.IdentityOrgMembership), + db.ref("id").withSchema(TableName.Membership), db.ref("total_count").withSchema("searchedIdentities"), - db.ref("role").withSchema(TableName.IdentityOrgMembership), - db.ref("roleId").withSchema(TableName.IdentityOrgMembership), - db.ref("orgId").withSchema(TableName.IdentityOrgMembership), - db.ref("createdAt").withSchema(TableName.IdentityOrgMembership), - db.ref("updatedAt").withSchema(TableName.IdentityOrgMembership), - db.ref("lastLoginAuthMethod").withSchema(TableName.IdentityOrgMembership), - db.ref("lastLoginTime").withSchema(TableName.IdentityOrgMembership), - db.ref("identityId").withSchema(TableName.IdentityOrgMembership).as("identityId"), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("customRoleId").withSchema(TableName.MembershipRole).as("roleId"), + db.ref("scopeOrgId").withSchema(TableName.Membership).as("orgId"), + db.ref("createdAt").withSchema(TableName.Membership), + db.ref("updatedAt").withSchema(TableName.Membership), + db.ref("lastLoginAuthMethod").withSchema(TableName.Membership), + db.ref("lastLoginTime").withSchema(TableName.Membership), + db.ref("actorIdentityId").withSchema(TableName.Membership).as("identityId"), db.ref("name").withSchema(TableName.Identity).as("identityName"), db.ref("hasDeleteProtection").withSchema(TableName.Identity), @@ -522,12 +529,11 @@ export const identityOrgDALFactory = (db: TDbClient) => { db.ref("id").as("ldapId").withSchema(TableName.IdentityLdapAuth) ) // cr stands for custom role - .select(db.ref("id").as("crId").withSchema(TableName.OrgRoles)) - .select(db.ref("name").as("crName").withSchema(TableName.OrgRoles)) - .select(db.ref("slug").as("crSlug").withSchema(TableName.OrgRoles)) - .select(db.ref("description").as("crDescription").withSchema(TableName.OrgRoles)) - .select(db.ref("permissions").as("crPermission").withSchema(TableName.OrgRoles)) - .select(db.ref("permissions").as("crPermission").withSchema(TableName.OrgRoles)) + .select(db.ref("id").as("crId").withSchema(TableName.Role)) + .select(db.ref("name").as("crName").withSchema(TableName.Role)) + .select(db.ref("slug").as("crSlug").withSchema(TableName.Role)) + .select(db.ref("description").as("crDescription").withSchema(TableName.Role)) + .select(db.ref("permissions").as("crPermission").withSchema(TableName.Role)) .select( db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), @@ -545,13 +551,7 @@ export const identityOrgDALFactory = (db: TDbClient) => { ELSE ??.role END ? `, - [ - TableName.IdentityOrgMembership, - "custom", - TableName.OrgRoles, - TableName.IdentityOrgMembership, - db.raw(orderDirection) - ] + [TableName.MembershipRole, "custom", TableName.Role, TableName.MembershipRole, db.raw(orderDirection)] ); } @@ -590,7 +590,7 @@ export const identityOrgDALFactory = (db: TDbClient) => { }) => ({ role, roleId, - identityId, + identityId: identityId as string, id, total_count: total_count as string, orgId, @@ -608,7 +608,7 @@ export const identityOrgDALFactory = (db: TDbClient) => { } : undefined, identity: { - id: identityId, + id: identityId as string, name: identityName, hasDeleteProtection, authMethods: buildAuthMethods({ @@ -646,13 +646,15 @@ export const identityOrgDALFactory = (db: TDbClient) => { }; const countAllOrgIdentities = async ( - { search, ...filter }: Partial & Pick, + { search, ...filter }: Partial & Pick, tx?: Knex ) => { try { - const query = (tx || db.replicaNode())(TableName.IdentityOrgMembership) + const query = (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) .where(filter) - .join(TableName.Identity, `${TableName.IdentityOrgMembership}.identityId`, `${TableName.Identity}.id`) + .join(TableName.Identity, `${TableName.Membership}.actorIdentityId`, `${TableName.Identity}.id`) .count(); if (search?.length) { @@ -667,5 +669,5 @@ export const identityOrgDALFactory = (db: TDbClient) => { } }; - return { ...identityOrgOrm, find, findOne, countAllOrgIdentities, searchIdentities }; + return { find, findOne, countAllOrgIdentities, searchIdentities }; }; diff --git a/backend/src/services/identity/identity-service.ts b/backend/src/services/identity/identity-service.ts index f216d64836..721844070c 100644 --- a/backend/src/services/identity/identity-service.ts +++ b/backend/src/services/identity/identity-service.ts @@ -1,6 +1,6 @@ import { ForbiddenError } from "@casl/ability"; -import { OrgMembershipRole, TableName, TOrgRoles } from "@app/db/schemas"; +import { AccessScope, OrgMembershipRole, TableName, TRoles } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { @@ -12,6 +12,9 @@ import { TKeyStoreFactory } from "@app/keystore/keystore"; import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; import { TIdentityProjectDALFactory } from "@app/services/identity-project/identity-project-dal"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TOrgDALFactory } from "../org/org-dal"; import { validateIdentityUpdateForSuperAdminPrivileges } from "../super-admin/super-admin-fns"; import { TIdentityDALFactory } from "./identity-dal"; import { TIdentityMetadataDALFactory } from "./identity-metadata-dal"; @@ -30,10 +33,13 @@ type TIdentityServiceFactoryDep = { identityDAL: TIdentityDALFactory; identityMetadataDAL: TIdentityMetadataDALFactory; identityOrgMembershipDAL: TIdentityOrgDALFactory; + membershipIdentityDAL: TMembershipIdentityDALFactory; + membershipRoleDAL: TMembershipRoleDALFactory; identityProjectDAL: Pick; - permissionService: Pick; + permissionService: Pick; licenseService: Pick; keyStore: Pick; + orgDAL: Pick; }; export type TIdentityServiceFactory = ReturnType; @@ -45,7 +51,10 @@ export const identityServiceFactory = ({ identityProjectDAL, permissionService, licenseService, - keyStore + keyStore, + orgDAL, + membershipIdentityDAL, + membershipRoleDAL }: TIdentityServiceFactoryDep) => { const createIdentity = async ({ name, @@ -58,33 +67,26 @@ export const identityServiceFactory = ({ actorOrgId, metadata }: TCreateIdentityDTO) => { - const { permission, membership } = await permissionService.getOrgPermission( - actor, - actorId, - orgId, - actorAuthMethod, - actorOrgId - ); + const { permission } = await permissionService.getOrgPermission(actor, actorId, orgId, actorAuthMethod, actorOrgId); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Create, OrgPermissionSubjects.Identity); - const { permission: rolePermission, role: customRole } = await permissionService.getOrgPermissionByRole( - role, - orgId - ); - const isCustomRole = Boolean(customRole); + const [rolePermissionDetails] = await permissionService.getOrgPermissionByRoles([role], orgId); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(actorOrgId); + const isCustomRole = Boolean(rolePermissionDetails?.role); if (role !== OrgMembershipRole.NoAccess) { const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GrantPrivileges, OrgPermissionSubjects.Identity, permission, - rolePermission + rolePermissionDetails.permission ); if (!permissionBoundary.isValid) throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to create identity", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GrantPrivileges, OrgPermissionSubjects.Identity ), @@ -103,12 +105,20 @@ export const identityServiceFactory = ({ const identity = await identityDAL.transaction(async (tx) => { const newIdentity = await identityDAL.create({ name, hasDeleteProtection }, tx); - await identityOrgMembershipDAL.create( + const membership = await membershipIdentityDAL.create( { - identityId: newIdentity.id, - orgId, + scope: AccessScope.Organization, + actorIdentityId: newIdentity.id, + scopeOrgId: orgId + }, + tx + ); + + await membershipRoleDAL.create( + { + membershipId: membership.id, role: isCustomRole ? OrgMembershipRole.Custom : role, - roleId: customRole?.id + customRoleId: rolePermissionDetails?.role?.id }, tx ); @@ -155,45 +165,47 @@ export const identityServiceFactory = ({ }: TUpdateIdentityDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(id, isActorSuperAdmin); - const identityOrgMembership = await identityOrgMembershipDAL.findOne({ identityId: id }); + const identityOrgMembership = await membershipIdentityDAL.findOne({ + actorIdentityId: id, + scope: AccessScope.Organization, + scopeOrgId: actorOrgId + }); if (!identityOrgMembership) throw new NotFoundError({ message: `Failed to find identity with id ${id}` }); - const { permission, membership } = await permissionService.getOrgPermission( + const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityOrgMembership.orgId, + identityOrgMembership.scopeOrgId, actorAuthMethod, actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); - let customRole: TOrgRoles | undefined; + let customRole: TRoles | undefined; if (role) { - const { permission: rolePermission, role: customOrgRole } = await permissionService.getOrgPermissionByRole( - role, - identityOrgMembership.orgId - ); + const [rolePermissionDetails] = await permissionService.getOrgPermissionByRoles([role], actorOrgId); + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(actorOrgId); - const isCustomRole = Boolean(customOrgRole); + const isCustomRole = Boolean(rolePermissionDetails?.role); const appliedRolePermissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GrantPrivileges, OrgPermissionSubjects.Identity, permission, - rolePermission + rolePermissionDetails?.permission ); if (!appliedRolePermissionBoundary.isValid) throw new PermissionBoundaryError({ message: constructPermissionErrorMessage( "Failed to update identity", - membership.shouldUseNewPrivilegeSystem, + shouldUseNewPrivilegeSystem, OrgPermissionIdentityActions.GrantPrivileges, OrgPermissionSubjects.Identity ), details: { missingPermissions: appliedRolePermissionBoundary.missingPermissions } }); - if (isCustomRole) customRole = customOrgRole; + if (isCustomRole) customRole = rolePermissionDetails?.role; } const identity = await identityDAL.transaction(async (tx) => { @@ -203,11 +215,12 @@ export const identityServiceFactory = ({ : await identityDAL.findById(id, tx); if (role) { - await identityOrgMembershipDAL.updateById( - identityOrgMembership.id, + await membershipRoleDAL.delete({ membershipId: identityOrgMembership.id }, tx); + await membershipRoleDAL.create( { + membershipId: identityOrgMembership.id, role: customRole ? OrgMembershipRole.Custom : role, - roleId: customRole?.id || null + customRoleId: customRole?.id || null }, tx ); @@ -219,12 +232,12 @@ export const identityServiceFactory = ({ }> = []; if (metadata) { - await identityMetadataDAL.delete({ orgId: identityOrgMembership.orgId, identityId: id }, tx); + await identityMetadataDAL.delete({ orgId: identityOrgMembership.scopeOrgId, identityId: id }, tx); if (metadata.length) { const rowsToInsert = metadata.map(({ key, value }) => ({ identityId: newIdentity.id, - orgId: identityOrgMembership.orgId, + orgId: identityOrgMembership.scopeOrgId, key, value })); @@ -239,12 +252,14 @@ export const identityServiceFactory = ({ }; }); - return { ...identity, orgId: identityOrgMembership.orgId }; + return { ...identity, orgId: identityOrgMembership.scopeOrgId }; }; const getIdentityById = async ({ id, actor, actorId, actorOrgId, actorAuthMethod }: TGetIdentityByIdDTO) => { const doc = await identityOrgMembershipDAL.find({ - [`${TableName.IdentityOrgMembership}.identityId` as "identityId"]: id + [`${TableName.Membership}.actorIdentityId` as "actorIdentityId"]: id, + scope: AccessScope.Organization, + scopeOrgId: actorOrgId }); const identity = doc[0]; if (!identity) throw new NotFoundError({ message: `Failed to find identity with id ${id}` }); @@ -258,6 +273,7 @@ export const identityServiceFactory = ({ ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); + // TODO(namespace): check this in identity service const activeLockouts = await keyStore.getKeysByPattern(`lockout:identity:${id}:*`); const activeLockoutAuthMethods = new Set(); @@ -289,14 +305,19 @@ export const identityServiceFactory = ({ isActorSuperAdmin }: TDeleteIdentityDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(id, isActorSuperAdmin); - - const identityOrgMembership = await identityOrgMembershipDAL.findOne({ identityId: id }); + const identityOrgMembership = await membershipIdentityDAL.getIdentityById({ + scopeData: { + scope: AccessScope.Organization, + orgId: actorOrgId + }, + identityId: id + }); if (!identityOrgMembership) throw new NotFoundError({ message: `Failed to find identity with id ${id}` }); const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityOrgMembership.orgId, + identityOrgMembership.scopeOrgId, actorAuthMethod, actorOrgId ); @@ -308,9 +329,9 @@ export const identityServiceFactory = ({ const deletedIdentity = await identityDAL.deleteById(id); - await licenseService.updateSubscriptionOrgMemberCount(identityOrgMembership.orgId); + await licenseService.updateSubscriptionOrgMemberCount(identityOrgMembership.scopeOrgId); - return { ...deletedIdentity, orgId: identityOrgMembership.orgId }; + return { ...deletedIdentity, orgId: identityOrgMembership.scopeOrgId }; }; const listOrgIdentities = async ({ @@ -329,7 +350,8 @@ export const identityServiceFactory = ({ ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); const identityMemberships = await identityOrgMembershipDAL.find({ - [`${TableName.IdentityOrgMembership}.orgId` as "orgId"]: orgId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + scope: AccessScope.Organization, limit, offset, orderBy, @@ -338,7 +360,7 @@ export const identityServiceFactory = ({ }); const totalCount = await identityOrgMembershipDAL.countAllOrgIdentities({ - [`${TableName.IdentityOrgMembership}.orgId` as "orgId"]: orgId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, search }); @@ -379,13 +401,17 @@ export const identityServiceFactory = ({ actorAuthMethod, actorOrgId }: TListProjectIdentitiesByIdentityIdDTO) => { - const identityOrgMembership = await identityOrgMembershipDAL.findOne({ identityId }); + const identityOrgMembership = await membershipIdentityDAL.findOne({ + actorIdentityId: identityId, + scope: AccessScope.Organization, + scopeOrgId: actorOrgId + }); if (!identityOrgMembership) throw new NotFoundError({ message: `Failed to find identity with id ${identityId}` }); const { permission } = await permissionService.getOrgPermission( actor, actorId, - identityOrgMembership.orgId, + identityOrgMembership.scopeOrgId, actorAuthMethod, actorOrgId ); diff --git a/backend/src/services/kms/kms-service.ts b/backend/src/services/kms/kms-service.ts index 995919c55e..4de44a3458 100644 --- a/backend/src/services/kms/kms-service.ts +++ b/backend/src/services/kms/kms-service.ts @@ -392,7 +392,7 @@ export const kmsServiceFactory = ({ }; const importKeyMaterial = async ( - { key, algorithm, name, isReserved, projectId, orgId, keyUsage }: TImportKeyMaterialDTO, + { key, algorithm, name, isReserved, projectId, orgId, keyUsage, kmipMetadata }: TImportKeyMaterialDTO, tx?: Knex ) => { // daniel: currently we only support imports for encrypt/decrypt keys @@ -416,7 +416,8 @@ export const kmsServiceFactory = ({ keyUsage: KmsKeyUsage.ENCRYPT_DECRYPT, orgId, isReserved, - projectId + projectId, + kmipMetadata }, db ); diff --git a/backend/src/services/kms/kms-types.ts b/backend/src/services/kms/kms-types.ts index ca2401bb61..eaf0adbdec 100644 --- a/backend/src/services/kms/kms-types.ts +++ b/backend/src/services/kms/kms-types.ts @@ -99,4 +99,5 @@ export type TImportKeyMaterialDTO = { projectId: string; orgId: string; keyUsage: KmsKeyUsage; + kmipMetadata?: Record; }; diff --git a/backend/src/services/membership-group/membership-group-dal.ts b/backend/src/services/membership-group/membership-group-dal.ts new file mode 100644 index 0000000000..b3c35e46f3 --- /dev/null +++ b/backend/src/services/membership-group/membership-group-dal.ts @@ -0,0 +1,272 @@ +import { Knex } from "knex"; + +import { TDbClient } from "@app/db"; +import { AccessScope, AccessScopeData, MembershipsSchema, TableName } from "@app/db/schemas"; +import { BadRequestError, DatabaseError } from "@app/lib/errors"; +import { ormify, selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; +import { buildKnexFilterForSearchResource } from "@app/lib/search-resource/db"; +import { TSearchResourceOperator } from "@app/lib/search-resource/search"; + +export type TMembershipGroupDALFactory = ReturnType; + +type TFindGroupArg = { + scopeData: AccessScopeData; + tx?: Knex; + filter: Partial<{ + limit: number; + offset: number; + groupId: string; + name: Omit; + role: Omit; + }>; +}; + +type TGetGroupByIdArg = { + scopeData: AccessScopeData; + tx?: Knex; + groupId: string; +}; + +export const membershipGroupDALFactory = (db: TDbClient) => { + const orm = ormify(db, TableName.Membership); + + const getGroupById = async ({ scopeData, tx, groupId }: TGetGroupByIdArg) => { + try { + const docs = await (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorGroupId`) + .join(TableName.Groups, `${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .where(`${TableName.Membership}.actorGroupId`, groupId) + .where((qb) => { + if (scopeData.scope === AccessScope.Organization) { + void qb.where(`${TableName.Membership}.scope`, AccessScope.Organization); + } else if (scopeData.scope === AccessScope.Namespace) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Namespace) + .where(`${TableName.Membership}.scopeNamespaceId`, scopeData.namespaceId); + } else if (scopeData.scope === AccessScope.Project) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, scopeData.projectId); + } + }) + .select(selectAllTableCols(TableName.Membership)) + .select( + db.ref("name").withSchema(TableName.Groups).as("groupName"), + db.ref("slug").withSchema(TableName.Groups).as("groupSlug"), + db.ref("slug").withSchema(TableName.Role).as("roleSlug"), + db.ref("name").withSchema(TableName.Role).as("roleName"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt") + ); + + const data = sqlNestRelationships({ + data: docs, + key: "id", + parentMapper: (el) => { + const { groupName, groupSlug } = el; + return { + ...MembershipsSchema.parse(el), + group: { + id: groupId, + name: groupName, + slug: groupSlug + } + }; + }, + childrenMapper: [ + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + roleSlug, + roleName, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + customRoleSlug: roleSlug, + customRoleName: roleName, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt + }) + } + ] + }); + + return data?.[0]; + } catch (error) { + throw new DatabaseError({ error, name: "MembershipGetByGroupId" }); + } + }; + + const findGroups = async ({ scopeData, tx, filter }: TFindGroupArg) => { + try { + const paginatedGroups = (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorGroupId`) + .join(TableName.Groups, `${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .distinct(`${TableName.Membership}.id`) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .where((qb) => { + if (filter.groupId) { + void qb.where(`${TableName.Groups}.id`, filter.groupId); + } + + if (scopeData.scope === AccessScope.Organization) { + void qb.where(`${TableName.Membership}.scope`, AccessScope.Organization); + } else if (scopeData.scope === AccessScope.Namespace) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Namespace) + .where(`${TableName.Membership}.scopeNamespaceId`, scopeData.namespaceId); + } else if (scopeData.scope === AccessScope.Project) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, scopeData.projectId); + } + }); + + if (filter.limit) void paginatedGroups.limit(filter.limit); + if (filter.offset) void paginatedGroups.offset(filter.offset); + + if (filter.name || filter.role) { + buildKnexFilterForSearchResource( + paginatedGroups, + { + name: filter.name!, + role: filter.role! + }, + (attr) => { + switch (attr) { + case "role": + return [`${TableName.Role}.slug`, `${TableName.MembershipRole}.role`]; + case "name": + return `${TableName.Groups}.name`; + default: + throw new BadRequestError({ message: `Invalid ${String(attr)} provided` }); + } + } + ); + } + + const docs = await (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorGroupId`) + .join(TableName.Groups, `${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .distinct(`${TableName.Membership}.id`) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .whereIn(`${TableName.Membership}.id`, paginatedGroups) + .select(selectAllTableCols(TableName.Membership)) + .select( + db.ref("name").withSchema(TableName.Groups).as("groupName"), + db.ref("slug").withSchema(TableName.Groups).as("groupSlug"), + db.ref("id").withSchema(TableName.Groups).as("groupId"), + + db.ref("slug").withSchema(TableName.Role).as("roleSlug"), + db.ref("name").withSchema(TableName.Role).as("roleName"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt") + ) + .select( + db.raw( + `count(${TableName.Membership}."actorGroupId") OVER(PARTITION BY ${TableName.Membership}."scopeOrgId") as total` + ) + ); + + const data = sqlNestRelationships({ + data: docs, + key: "id", + parentMapper: (el) => { + const { groupId, groupName, groupSlug } = el; + return { + ...MembershipsSchema.parse(el), + group: { + id: groupId, + name: groupName, + slug: groupSlug + } + }; + }, + childrenMapper: [ + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + roleSlug, + roleName, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + customRoleSlug: roleSlug, + customRoleName: roleName, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt + }) + } + ] + }); + return { data, totalCount: Number((data?.[0] as unknown as { total: number })?.total ?? 0) }; + } catch (error) { + throw new DatabaseError({ error, name: "MembershipfindGroup" }); + } + }; + + return { ...orm, findGroups, getGroupById }; +}; diff --git a/backend/src/services/membership-group/membership-group-service.ts b/backend/src/services/membership-group/membership-group-service.ts new file mode 100644 index 0000000000..18f6b3ad11 --- /dev/null +++ b/backend/src/services/membership-group/membership-group-service.ts @@ -0,0 +1,325 @@ +import { AccessScope, ProjectMembershipRole, TemporaryPermissionMode, TMembershipRolesInsert } from "@app/db/schemas"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { groupBy } from "@app/lib/fn"; +import { ms } from "@app/lib/ms"; +import { SearchResourceOperators } from "@app/lib/search-resource/search"; + +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TOrgDALFactory } from "../org/org-dal"; +import { TRoleDALFactory } from "../role/role-dal"; +import { TMembershipGroupDALFactory } from "./membership-group-dal"; +import { + TCreateMembershipGroupDTO, + TDeleteMembershipGroupDTO, + TGetMembershipGroupByGroupIdDTO, + TListMembershipGroupDTO, + TUpdateMembershipGroupDTO +} from "./membership-group-types"; +import { newNamespaceMembershipGroupFactory } from "./namespace/namespace-membership-group-factory"; +import { newOrgMembershipGroupFactory } from "./org/org-membership-group-factory"; +import { newProjectMembershipGroupFactory } from "./project/project-membership-group-factory"; + +type TMembershipGroupServiceFactoryDep = { + membershipGroupDAL: TMembershipGroupDALFactory; + membershipRoleDAL: Pick; + roleDAL: Pick; + permissionService: TPermissionServiceFactory; + orgDAL: TOrgDALFactory; +}; + +export type TMembershipGroupServiceFactory = ReturnType; + +export const membershipGroupServiceFactory = ({ + membershipGroupDAL, + roleDAL, + membershipRoleDAL, + orgDAL, + permissionService +}: TMembershipGroupServiceFactoryDep) => { + const scopeFactory = { + [AccessScope.Organization]: newOrgMembershipGroupFactory({ + orgDAL, + permissionService + }), + [AccessScope.Namespace]: newNamespaceMembershipGroupFactory({}), + [AccessScope.Project]: newProjectMembershipGroupFactory({ + membershipGroupDAL, + orgDAL, + permissionService + }) + }; + + const createMembership = async (dto: TCreateMembershipGroupDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + + const hasNoPermanentRole = data.roles.every((el) => el.isTemporary); + if (hasNoPermanentRole) { + throw new BadRequestError({ + message: "Group must have at least one permanent role" + }); + } + const isInvalidTemporaryRole = data.roles.some((el) => { + if (el.isTemporary) { + if (!el.temporaryAccessStartTime || !el.temporaryRange) { + return true; + } + } + return false; + }); + if (isInvalidTemporaryRole) { + throw new BadRequestError({ + message: "Temporary role must have access start time and range" + }); + } + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + await factory.onCreateMembershipGroupGuard(dto); + + const customInputRoles = data.roles.filter((el) => factory.isCustomRole(el.role)); + const hasCustomRole = customInputRoles.length > 0; + + const scopeField = factory.getScopeField(dto.scopeData); + const customRoles = hasCustomRole + ? await roleDAL.find({ + [scopeField.key]: scopeField.value, + $in: { slug: customInputRoles.map(({ role }) => role) } + }) + : []; + if (customRoles.length !== customInputRoles.length) { + throw new NotFoundError({ message: "One or more custom roles not found" }); + } + + const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); + + const membership = await membershipGroupDAL.transaction(async (tx) => { + const doc = await membershipGroupDAL.create( + { + scope: scopeData.scope, + ...scopeDatabaseFields, + actorGroupId: dto.data.groupId + }, + tx + ); + + const roleDocs: TMembershipRolesInsert[] = []; + data.roles.forEach((membershipRole) => { + const isCustomRole = Boolean(customRolesGroupBySlug?.[membershipRole.role]?.[0]); + if (membershipRole.isTemporary) { + const relativeTimeInMs = membershipRole.temporaryRange ? ms(membershipRole.temporaryRange) : null; + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null, + isTemporary: true, + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: membershipRole.temporaryRange, + temporaryAccessStartTime: new Date(membershipRole.temporaryAccessStartTime as string), + temporaryAccessEndTime: new Date( + new Date(membershipRole.temporaryAccessStartTime as string).getTime() + (relativeTimeInMs as number) + ) + }); + } else { + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null + }); + } + }); + await membershipRoleDAL.insertMany(roleDocs, tx); + return doc; + }); + + return { membership }; + }; + + const updateMembership = async (dto: TUpdateMembershipGroupDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onUpdateMembershipGroupGuard(dto); + + const customInputRoles = data.roles.filter((el) => factory.isCustomRole(el.role)); + const hasCustomRole = customInputRoles.length > 0; + + const hasNoPermanentRole = data.roles.every((el) => el.isTemporary); + if (hasNoPermanentRole) { + throw new BadRequestError({ + message: "Group must have at least one permanent role" + }); + } + const isInvalidTemporaryRole = data.roles.some((el) => { + if (el.isTemporary) { + if (!el.temporaryAccessStartTime || !el.temporaryRange) { + return true; + } + } + return false; + }); + if (isInvalidTemporaryRole) { + throw new BadRequestError({ + message: "Temporary role must have access start time and range" + }); + } + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + const existingMembership = await membershipGroupDAL.findOne({ + scope: scopeData.scope, + ...scopeDatabaseFields, + actorGroupId: dto.selector.groupId + }); + if (!existingMembership) + throw new BadRequestError({ + message: "Group doesn't have membership" + }); + + const scopeField = factory.getScopeField(dto.scopeData); + const customRoles = hasCustomRole + ? await roleDAL.find({ + [scopeField.key]: scopeField.value, + $in: { slug: customInputRoles.map(({ role }) => role) } + }) + : []; + if (customRoles.length !== customInputRoles.length) { + throw new NotFoundError({ message: "One or more custom roles not found" }); + } + + const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); + + const membershipDoc = await membershipGroupDAL.transaction(async (tx) => { + const doc = + typeof data?.isActive === "undefined" + ? existingMembership + : await membershipGroupDAL.updateById( + existingMembership.id, + { + isActive: data.isActive + }, + tx + ); + + const roleDocs: TMembershipRolesInsert[] = []; + data.roles.forEach((membershipRole) => { + const isCustomRole = Boolean(customRolesGroupBySlug?.[membershipRole.role]?.[0]); + if (membershipRole.isTemporary) { + const relativeTimeInMs = membershipRole.temporaryRange ? ms(membershipRole.temporaryRange) : null; + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null, + isTemporary: true, + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: membershipRole.temporaryRange, + temporaryAccessStartTime: new Date(membershipRole.temporaryAccessStartTime as string), + temporaryAccessEndTime: new Date( + new Date(membershipRole.temporaryAccessStartTime as string).getTime() + (relativeTimeInMs as number) + ) + }); + } else { + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null + }); + } + }); + await membershipRoleDAL.delete( + { + membershipId: doc.id + }, + tx + ); + const roles = await membershipRoleDAL.insertMany(roleDocs, tx); + return { ...doc, roles }; + }); + + return { membership: membershipDoc }; + }; + + const deleteMembership = async (dto: TDeleteMembershipGroupDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onDeleteMembershipGroupGuard(dto); + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + const existingMembership = await membershipGroupDAL.findOne({ + scope: scopeData.scope, + ...scopeDatabaseFields, + actorGroupId: dto.selector.groupId + }); + if (!existingMembership) + throw new BadRequestError({ + message: "Group doesn't have membership" + }); + + if (existingMembership.actorGroupId === dto.permission.id) + throw new BadRequestError({ + message: "You can't delete your own membership" + }); + + const membershipDoc = await membershipGroupDAL.transaction(async (tx) => { + await membershipRoleDAL.delete({ membershipId: existingMembership.id }, tx); + const doc = await membershipGroupDAL.deleteById(existingMembership.id, tx); + return doc; + }); + return { membership: membershipDoc }; + }; + + const listMemberships = async (dto: TListMembershipGroupDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onListMembershipGroupGuard(dto); + const memberships = await membershipGroupDAL.findGroups({ + scopeData, + filter: { + limit: dto.data.limit, + offset: dto.data.offset, + name: dto.data.groupName + ? { + [SearchResourceOperators.$contains]: dto.data.groupName + } + : undefined, + role: dto.data.roles?.length + ? { + [SearchResourceOperators.$in]: dto.data.roles + } + : undefined + } + }); + return { memberships: memberships.data, totalCount: memberships.totalCount }; + }; + + const getMembershipByGroupId = async (dto: TGetMembershipGroupByGroupIdDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onGetMembershipGroupByGroupIdGuard(dto); + const membership = await membershipGroupDAL.getGroupById({ + scopeData, + groupId: selector.groupId + }); + if (!membership) throw new NotFoundError({ message: `Group membership not found` }); + + return { membership }; + }; + + return { + createMembership, + updateMembership, + deleteMembership, + listMemberships, + getMembershipByGroupId + }; +}; diff --git a/backend/src/services/membership-group/membership-group-types.ts b/backend/src/services/membership-group/membership-group-types.ts new file mode 100644 index 0000000000..19c374458d --- /dev/null +++ b/backend/src/services/membership-group/membership-group-types.ts @@ -0,0 +1,79 @@ +import { AccessScopeData, TemporaryPermissionMode } from "@app/db/schemas"; +import { OrgServiceActor } from "@app/lib/types"; + +export interface TMembershipGroupScopeFactory { + onCreateMembershipGroupGuard: (arg: TCreateMembershipGroupDTO) => Promise; + + onUpdateMembershipGroupGuard: (arg: TUpdateMembershipGroupDTO) => Promise; + onDeleteMembershipGroupGuard: (arg: TDeleteMembershipGroupDTO) => Promise; + onListMembershipGroupGuard: (arg: TListMembershipGroupDTO) => Promise; + onGetMembershipGroupByGroupIdGuard: (arg: TGetMembershipGroupByGroupIdDTO) => Promise; + getScopeField: (scope: AccessScopeData) => { key: "orgId" | "namespaceId" | "projectId"; value: string }; + getScopeDatabaseFields: (scope: AccessScopeData) => { + scopeOrgId: string; + scopeNamespaceId?: string | null; + scopeProjectId?: string | null; + }; + isCustomRole: (role: string) => boolean; +} + +export type TCreateMembershipGroupDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + groupId: string; + roles: { + role: string; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }[]; + }; +}; + +export type TUpdateMembershipGroupDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + groupId: string; + }; + data: { + isActive?: boolean; + metadata?: { key: string; value: string }[]; + roles: { + role: string; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }[]; + }; +}; + +export type TListMembershipGroupDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + limit?: number; + offset?: number; + groupName?: string; + roles?: string[]; + }; +}; + +export type TDeleteMembershipGroupDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + groupId: string; + }; +}; + +export type TGetMembershipGroupByGroupIdDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + groupId: string; + }; +}; diff --git a/backend/src/services/membership-group/namespace/namespace-membership-group-factory.ts b/backend/src/services/membership-group/namespace/namespace-membership-group-factory.ts new file mode 100644 index 0000000000..5c8973b1b5 --- /dev/null +++ b/backend/src/services/membership-group/namespace/namespace-membership-group-factory.ts @@ -0,0 +1,61 @@ +import { AccessScope } from "@app/db/schemas"; +import { InternalServerError } from "@app/lib/errors"; + +import { TMembershipGroupScopeFactory } from "../membership-group-types"; + +type TNamespaceMembershipGroupScopeFactoryDep = Record; + +export const newNamespaceMembershipGroupFactory = ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + deps: TNamespaceMembershipGroupScopeFactoryDep +): TMembershipGroupScopeFactory => { + const getScopeField: TMembershipGroupScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { key: "namespaceId" as const, value: dto.namespaceId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the namespace factory" }); + }; + + const getScopeDatabaseFields: TMembershipGroupScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { scopeOrgId: dto.orgId, scopeNamespaceId: dto.namespaceId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the namespace factory" }); + }; + + const isCustomRole: TMembershipGroupScopeFactory["isCustomRole"] = () => { + throw new InternalServerError({ message: "Namespace membership group isCustomRole not implemented" }); + }; + + const onCreateMembershipGroupGuard: TMembershipGroupScopeFactory["onCreateMembershipGroupGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership group create not implemented" }); + }; + + const onUpdateMembershipGroupGuard: TMembershipGroupScopeFactory["onUpdateMembershipGroupGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership group update not implemented" }); + }; + + const onDeleteMembershipGroupGuard: TMembershipGroupScopeFactory["onDeleteMembershipGroupGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership group delete not implemented" }); + }; + + const onListMembershipGroupGuard: TMembershipGroupScopeFactory["onListMembershipGroupGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership group list not implemented" }); + }; + + const onGetMembershipGroupByGroupIdGuard: TMembershipGroupScopeFactory["onGetMembershipGroupByGroupIdGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace membership group get by group id not implemented" }); + }; + + return { + onCreateMembershipGroupGuard, + onUpdateMembershipGroupGuard, + onDeleteMembershipGroupGuard, + onListMembershipGroupGuard, + onGetMembershipGroupByGroupIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-group/org/org-membership-group-factory.ts b/backend/src/services/membership-group/org/org-membership-group-factory.ts new file mode 100644 index 0000000000..1e87ee3ca1 --- /dev/null +++ b/backend/src/services/membership-group/org/org-membership-group-factory.ts @@ -0,0 +1,125 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope, OrgMembershipRole } from "@app/db/schemas"; +import { OrgPermissionGroupActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; +import { + constructPermissionErrorMessage, + validatePrivilegeChangeOperation +} from "@app/ee/services/permission/permission-fns"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError, InternalServerError, PermissionBoundaryError } from "@app/lib/errors"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; +import { isCustomOrgRole } from "@app/services/org/org-role-fns"; + +import { TMembershipGroupScopeFactory } from "../membership-group-types"; + +type TOrgMembershipGroupScopeFactoryDep = { + permissionService: Pick; + orgDAL: Pick; +}; + +export const newOrgMembershipGroupFactory = ({ + permissionService, + orgDAL +}: TOrgMembershipGroupScopeFactoryDep): TMembershipGroupScopeFactory => { + const getScopeField: TMembershipGroupScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { key: "orgId" as const, value: dto.orgId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the org factory" }); + }; + + const getScopeDatabaseFields: TMembershipGroupScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { scopeOrgId: dto.orgId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the org factory" }); + }; + + const isCustomRole: TMembershipGroupScopeFactory["isCustomRole"] = (role: string) => isCustomOrgRole(role); + + const onCreateMembershipGroupGuard: TMembershipGroupScopeFactory["onCreateMembershipGroupGuard"] = async () => { + throw new BadRequestError({ + message: "Organization membership cannot be created for groups" + }); + }; + + const onUpdateMembershipGroupGuard: TMembershipGroupScopeFactory["onUpdateMembershipGroupGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionGroupActions.Edit, OrgPermissionSubjects.Groups); + const permissionRoles = await permissionService.getOrgPermissionByRoles( + dto.data.roles.map((el) => el.role), + dto.permission.orgId + ); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + for (const permissionRole of permissionRoles) { + if (permissionRole?.role?.name !== OrgMembershipRole.NoAccess) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + OrgPermissionGroupActions.GrantPrivileges, + OrgPermissionSubjects.Groups, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to create group org membership", + shouldUseNewPrivilegeSystem, + OrgPermissionGroupActions.GrantPrivileges, + OrgPermissionSubjects.Groups + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + } + }; + + const onDeleteMembershipGroupGuard: TMembershipGroupScopeFactory["onDeleteMembershipGroupGuard"] = async () => { + throw new BadRequestError({ + message: "Organization membership cannot be deleted for organization scoped group" + }); + }; + + const onListMembershipGroupGuard: TMembershipGroupScopeFactory["onListMembershipGroupGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionGroupActions.Read, OrgPermissionSubjects.Groups); + }; + + const onGetMembershipGroupByGroupIdGuard: TMembershipGroupScopeFactory["onGetMembershipGroupByGroupIdGuard"] = async ( + dto + ) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionGroupActions.Read, OrgPermissionSubjects.Groups); + }; + + return { + onCreateMembershipGroupGuard, + onUpdateMembershipGroupGuard, + onDeleteMembershipGroupGuard, + onListMembershipGroupGuard, + onGetMembershipGroupByGroupIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-group/project/project-membership-group-factory.ts b/backend/src/services/membership-group/project/project-membership-group-factory.ts new file mode 100644 index 0000000000..5a63eed1e2 --- /dev/null +++ b/backend/src/services/membership-group/project/project-membership-group-factory.ts @@ -0,0 +1,188 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope, ActionProjectType, ProjectMembershipRole } from "@app/db/schemas"; +import { + constructPermissionErrorMessage, + validatePrivilegeChangeOperation +} from "@app/ee/services/permission/permission-fns"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { + isCustomProjectRole, + ProjectPermissionGroupActions, + ProjectPermissionSub +} from "@app/ee/services/permission/project-permission"; +import { BadRequestError, InternalServerError, PermissionBoundaryError } from "@app/lib/errors"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; + +import { TMembershipGroupDALFactory } from "../membership-group-dal"; +import { TMembershipGroupScopeFactory } from "../membership-group-types"; + +type TProjectMembershipGroupScopeFactoryDep = { + permissionService: Pick; + orgDAL: Pick; + membershipGroupDAL: Pick; +}; + +export const newProjectMembershipGroupFactory = ({ + permissionService, + orgDAL, + membershipGroupDAL +}: TProjectMembershipGroupScopeFactoryDep): TMembershipGroupScopeFactory => { + const getScopeField: TMembershipGroupScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { key: "projectId" as const, value: dto.projectId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the project factory" }); + }; + + const getScopeDatabaseFields: TMembershipGroupScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { scopeOrgId: dto.orgId, scopeProjectId: dto.projectId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the project factory" }); + }; + + const isCustomRole: TMembershipGroupScopeFactory["isCustomRole"] = (role) => isCustomProjectRole(role); + + const onCreateMembershipGroupGuard: TMembershipGroupScopeFactory["onCreateMembershipGroupGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Create, ProjectPermissionSub.Groups); + const orgMembership = await membershipGroupDAL.findOne({ + actorGroupId: dto.data.groupId, + scopeOrgId: dto.permission.orgId, + scope: AccessScope.Organization + }); + if (!orgMembership) + throw new BadRequestError({ message: `Group ${dto.data.groupId} is missing organization membership` }); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const permissionRoles = await permissionService.getProjectPermissionByRoles( + dto.data.roles.map((el) => el.role), + scope.value + ); + for (const permissionRole of permissionRoles) { + if (permissionRole?.role?.name !== ProjectMembershipRole.NoAccess) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + ProjectPermissionGroupActions.GrantPrivileges, + ProjectPermissionSub.Groups, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to create group project membership", + shouldUseNewPrivilegeSystem, + ProjectPermissionGroupActions.GrantPrivileges, + ProjectPermissionSub.Groups + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + } + }; + + const onUpdateMembershipGroupGuard: TMembershipGroupScopeFactory["onUpdateMembershipGroupGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Edit, ProjectPermissionSub.Groups); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const permissionRoles = await permissionService.getProjectPermissionByRoles( + dto.data.roles.map((el) => el.role), + scope.value + ); + for (const permissionRole of permissionRoles) { + if (permissionRole?.role?.name !== ProjectMembershipRole.NoAccess) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + ProjectPermissionGroupActions.GrantPrivileges, + ProjectPermissionSub.Groups, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to update group project membership", + shouldUseNewPrivilegeSystem, + ProjectPermissionGroupActions.GrantPrivileges, + ProjectPermissionSub.Groups + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + } + }; + + const onDeleteMembershipGroupGuard: TMembershipGroupScopeFactory["onDeleteMembershipGroupGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Delete, ProjectPermissionSub.Groups); + }; + + const onListMembershipGroupGuard: TMembershipGroupScopeFactory["onListMembershipGroupGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Read, ProjectPermissionSub.Groups); + }; + + const onGetMembershipGroupByGroupIdGuard: TMembershipGroupScopeFactory["onGetMembershipGroupByGroupIdGuard"] = async ( + dto + ) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionGroupActions.Read, ProjectPermissionSub.Groups); + }; + + return { + onCreateMembershipGroupGuard, + onUpdateMembershipGroupGuard, + onDeleteMembershipGroupGuard, + onListMembershipGroupGuard, + onGetMembershipGroupByGroupIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-identity/membership-identity-dal.ts b/backend/src/services/membership-identity/membership-identity-dal.ts new file mode 100644 index 0000000000..64e508fb8a --- /dev/null +++ b/backend/src/services/membership-identity/membership-identity-dal.ts @@ -0,0 +1,357 @@ +import { Knex } from "knex"; + +import { TDbClient } from "@app/db"; +import { AccessScope, AccessScopeData, MembershipsSchema, TableName } from "@app/db/schemas"; +import { BadRequestError, DatabaseError } from "@app/lib/errors"; +import { ormify, selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; +import { buildKnexFilterForSearchResource } from "@app/lib/search-resource/db"; +import { TSearchResourceOperator } from "@app/lib/search-resource/search"; + +import { buildAuthMethods } from "../identity/identity-fns"; + +export type TMembershipIdentityDALFactory = ReturnType; + +type TFindIdentityArg = { + scopeData: AccessScopeData; + tx?: Knex; + filter: Partial<{ + limit: number; + offset: number; + identityId: string; + name: Omit; + role: Omit; + }>; +}; + +type TGetIdentityByIdArg = { + scopeData: AccessScopeData; + tx?: Knex; + identityId: string; +}; + +export const membershipIdentityDALFactory = (db: TDbClient) => { + const orm = ormify(db, TableName.Membership); + + const getIdentityById = async ({ scopeData, tx, identityId }: TGetIdentityByIdArg) => { + try { + const docs = await (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.Membership}.actorIdentityId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { + void queryBuilder + .on(`${TableName.Membership}.actorIdentityId`, `${TableName.IdentityMetadata}.identityId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); + }) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .where(`${TableName.Membership}.actorIdentityId`, identityId) + .where((qb) => { + if (scopeData.scope === AccessScope.Organization) { + void qb.where(`${TableName.Membership}.scope`, AccessScope.Organization); + } else if (scopeData.scope === AccessScope.Namespace) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Namespace) + .where(`${TableName.Membership}.scopeNamespaceId`, scopeData.namespaceId); + } else if (scopeData.scope === AccessScope.Project) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, scopeData.projectId); + } + }) + .leftJoin( + TableName.IdentityUniversalAuth, + `${TableName.Identity}.id`, + `${TableName.IdentityUniversalAuth}.identityId` + ) + .leftJoin(TableName.IdentityGcpAuth, `${TableName.Identity}.id`, `${TableName.IdentityGcpAuth}.identityId`) + .leftJoin( + TableName.IdentityAliCloudAuth, + `${TableName.Identity}.id`, + `${TableName.IdentityAliCloudAuth}.identityId` + ) + .leftJoin(TableName.IdentityAwsAuth, `${TableName.Identity}.id`, `${TableName.IdentityAwsAuth}.identityId`) + .leftJoin( + TableName.IdentityKubernetesAuth, + `${TableName.Identity}.id`, + `${TableName.IdentityKubernetesAuth}.identityId` + ) + .leftJoin(TableName.IdentityOciAuth, `${TableName.Identity}.id`, `${TableName.IdentityOciAuth}.identityId`) + .leftJoin(TableName.IdentityOidcAuth, `${TableName.Identity}.id`, `${TableName.IdentityOidcAuth}.identityId`) + .leftJoin(TableName.IdentityAzureAuth, `${TableName.Identity}.id`, `${TableName.IdentityAzureAuth}.identityId`) + .leftJoin(TableName.IdentityTokenAuth, `${TableName.Identity}.id`, `${TableName.IdentityTokenAuth}.identityId`) + .leftJoin( + TableName.IdentityTlsCertAuth, + `${TableName.Identity}.id`, + `${TableName.IdentityTlsCertAuth}.identityId` + ) + .leftJoin(TableName.IdentityLdapAuth, `${TableName.Identity}.id`, `${TableName.IdentityLdapAuth}.identityId`) + .leftJoin(TableName.IdentityJwtAuth, `${TableName.Identity}.id`, `${TableName.IdentityJwtAuth}.identityId`) + .select(selectAllTableCols(TableName.Membership)) + .select( + db.ref("name").withSchema(TableName.Identity).as("identityName"), + db.ref("id").withSchema(TableName.Identity).as("identityId"), + db.ref("hasDeleteProtection").withSchema(TableName.Identity).as("identityHasDeleteProtection"), + + db.ref("slug").withSchema(TableName.Role).as("roleSlug"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt"), + db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), + db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), + db.ref("value").withSchema(TableName.IdentityMetadata).as("metadataValue"), + db.ref("id").as("uaId").withSchema(TableName.IdentityUniversalAuth), + db.ref("id").as("gcpId").withSchema(TableName.IdentityGcpAuth), + db.ref("id").as("alicloudId").withSchema(TableName.IdentityAliCloudAuth), + db.ref("id").as("awsId").withSchema(TableName.IdentityAwsAuth), + db.ref("id").as("kubernetesId").withSchema(TableName.IdentityKubernetesAuth), + db.ref("id").as("ociId").withSchema(TableName.IdentityOciAuth), + db.ref("id").as("oidcId").withSchema(TableName.IdentityOidcAuth), + db.ref("id").as("azureId").withSchema(TableName.IdentityAzureAuth), + db.ref("id").as("tokenId").withSchema(TableName.IdentityTokenAuth), + db.ref("id").as("jwtId").withSchema(TableName.IdentityJwtAuth), + db.ref("id").as("ldapId").withSchema(TableName.IdentityLdapAuth), + db.ref("id").as("tlsCertId").withSchema(TableName.IdentityTlsCertAuth) + ); + + const data = sqlNestRelationships({ + data: docs, + key: "id", + parentMapper: (el) => { + const { + identityId: actorIdentityId, + identityHasDeleteProtection, + identityName, + uaId, + awsId, + gcpId, + kubernetesId, + oidcId, + azureId, + alicloudId, + tokenId, + jwtId, + ociId, + ldapId, + tlsCertId + } = el; + return { + ...MembershipsSchema.parse(el), + identity: { + name: identityName, + id: actorIdentityId, + hasDeleteProtection: identityHasDeleteProtection, + authMethods: buildAuthMethods({ + uaId, + awsId, + gcpId, + kubernetesId, + oidcId, + azureId, + tokenId, + alicloudId, + jwtId, + ldapId, + ociId, + tlsCertId + }) + } + }; + }, + childrenMapper: [ + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + roleSlug, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + customRoleSlug: roleSlug, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt + }) + }, + { + key: "metadataId", + label: "metadata" as const, + mapper: ({ metadataKey, metadataValue, metadataId }) => ({ + id: metadataId, + key: metadataKey, + value: metadataValue + }) + } + ] + }); + + return data?.[0]; + } catch (error) { + throw new DatabaseError({ error, name: "MembershipGetByIdentityId" }); + } + }; + + const findIdentities = async ({ scopeData, tx, filter }: TFindIdentityArg) => { + try { + const paginatedIdentitys = (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.Membership}.actorIdentityId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .distinct(`${TableName.Membership}.id`) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .where((qb) => { + if (filter.identityId) { + void qb.where(`${TableName.Identity}.id`, filter.identityId); + } + + if (scopeData.scope === AccessScope.Organization) { + void qb.where(`${TableName.Membership}.scope`, AccessScope.Organization); + } else if (scopeData.scope === AccessScope.Namespace) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Namespace) + .where(`${TableName.Membership}.scopeNamespaceId`, scopeData.namespaceId); + } else if (scopeData.scope === AccessScope.Project) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, scopeData.projectId); + } + }); + + if (filter.limit) void paginatedIdentitys.limit(filter.limit); + if (filter.offset) void paginatedIdentitys.offset(filter.offset); + + if (filter.name || filter.role) { + buildKnexFilterForSearchResource( + paginatedIdentitys, + { + name: filter.name!, + role: filter.role! + }, + (attr) => { + switch (attr) { + case "role": + return [`${TableName.Role}.slug`, `${TableName.MembershipRole}.role`]; + case "name": + return `${TableName.Identity}.name`; + default: + throw new BadRequestError({ message: `Invalid ${String(attr)} provided` }); + } + } + ); + } + + const docs = await (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .join(TableName.Identity, `${TableName.Identity}.id`, `${TableName.Membership}.actorIdentityId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .distinct(`${TableName.Membership}.id`) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .whereIn(`${TableName.Membership}.id`, paginatedIdentitys) + .select(selectAllTableCols(TableName.Membership)) + .select( + db.ref("name").withSchema(TableName.Identity).as("identityName"), + db.ref("id").withSchema(TableName.Identity).as("identityId"), + db.ref("hasDeleteProtection").withSchema(TableName.Identity).as("identityHasDeleteProtection"), + + db.ref("slug").withSchema(TableName.Role).as("roleSlug"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt") + ) + .select( + db.raw( + `count(${TableName.Membership}."actorIdentityId") OVER(PARTITION BY ${TableName.Membership}."scopeOrgId") as total` + ) + ); + + const data = sqlNestRelationships({ + data: docs, + key: "id", + parentMapper: (el) => { + const { identityId: actorIdentityId, identityHasDeleteProtection, identityName } = el; + return { + ...MembershipsSchema.parse(el), + identity: { + name: identityName, + id: actorIdentityId, + hasDeleteProtection: identityHasDeleteProtection + } + }; + }, + childrenMapper: [ + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + roleSlug, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + customRoleSlug: roleSlug, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt + }) + } + ] + }); + return { data, totalCount: Number((data?.[0] as unknown as { total: number })?.total ?? 0) }; + } catch (error) { + throw new DatabaseError({ error, name: "MembershipfindIdentity" }); + } + }; + + return { ...orm, findIdentities, getIdentityById }; +}; diff --git a/backend/src/services/membership-identity/membership-identity-service.ts b/backend/src/services/membership-identity/membership-identity-service.ts new file mode 100644 index 0000000000..4dd3da0647 --- /dev/null +++ b/backend/src/services/membership-identity/membership-identity-service.ts @@ -0,0 +1,339 @@ +import { AccessScope, ProjectMembershipRole, TemporaryPermissionMode, TMembershipRolesInsert } from "@app/db/schemas"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { groupBy } from "@app/lib/fn"; +import { ms } from "@app/lib/ms"; +import { SearchResourceOperators } from "@app/lib/search-resource/search"; + +import { TAdditionalPrivilegeDALFactory } from "../additional-privilege/additional-privilege-dal"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TOrgDALFactory } from "../org/org-dal"; +import { TRoleDALFactory } from "../role/role-dal"; +import { TMembershipIdentityDALFactory } from "./membership-identity-dal"; +import { + TCreateMembershipIdentityDTO, + TDeleteMembershipIdentityDTO, + TGetMembershipIdentityByIdentityIdDTO, + TListMembershipIdentityDTO, + TUpdateMembershipIdentityDTO +} from "./membership-identity-types"; +import { newNamespaceMembershipIdentityFactory } from "./namespace/namespace-membership-identity-factory"; +import { newOrgMembershipIdentityFactory } from "./org/org-membership-identity-factory"; +import { newProjectMembershipIdentityFactory } from "./project/project-membership-identity-factory"; + +type TMembershipIdentityServiceFactoryDep = { + membershipIdentityDAL: TMembershipIdentityDALFactory; + membershipRoleDAL: Pick; + roleDAL: Pick; + permissionService: Pick< + TPermissionServiceFactory, + "getOrgPermission" | "getProjectPermission" | "getProjectPermissionByRoles" | "getOrgPermissionByRoles" + >; + orgDAL: Pick; + additionalPrivilegeDAL: Pick; +}; + +export type TMembershipIdentityServiceFactory = ReturnType; + +export const membershipIdentityServiceFactory = ({ + membershipIdentityDAL, + roleDAL, + membershipRoleDAL, + permissionService, + orgDAL, + additionalPrivilegeDAL +}: TMembershipIdentityServiceFactoryDep) => { + const scopeFactory = { + [AccessScope.Organization]: newOrgMembershipIdentityFactory({ + orgDAL, + permissionService + }), + [AccessScope.Project]: newProjectMembershipIdentityFactory({ + membershipIdentityDAL, + orgDAL, + permissionService + }), + [AccessScope.Namespace]: newNamespaceMembershipIdentityFactory({}) + }; + + const createMembership = async (dto: TCreateMembershipIdentityDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + + const hasNoPermanentRole = data.roles.every((el) => el.isTemporary); + if (hasNoPermanentRole) { + throw new BadRequestError({ + message: "Identity must have at least one permanent role" + }); + } + const isInvalidTemporaryRole = data.roles.some((el) => { + if (el.isTemporary) { + if (!el.temporaryAccessStartTime || !el.temporaryRange) { + return true; + } + } + return false; + }); + if (isInvalidTemporaryRole) { + throw new BadRequestError({ + message: "Temporary role must have access start time and range" + }); + } + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + await factory.onCreateMembershipIdentityGuard(dto); + + const customInputRoles = data.roles.filter((el) => factory.isCustomRole(el.role)); + const hasCustomRole = customInputRoles.length > 0; + + const scopeField = factory.getScopeField(dto.scopeData); + const customRoles = hasCustomRole + ? await roleDAL.find({ + [scopeField.key]: scopeField.value, + $in: { slug: customInputRoles.map(({ role }) => role) } + }) + : []; + if (customRoles.length !== customInputRoles.length) { + throw new NotFoundError({ message: "One or more custom roles not found" }); + } + + const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); + + const membership = await membershipIdentityDAL.transaction(async (tx) => { + const doc = await membershipIdentityDAL.create( + { + scope: scopeData.scope, + ...scopeDatabaseFields, + actorIdentityId: dto.data.identityId + }, + tx + ); + + const roleDocs: TMembershipRolesInsert[] = []; + data.roles.forEach((membershipRole) => { + const isCustomRole = Boolean(customRolesGroupBySlug?.[membershipRole.role]?.[0]); + if (membershipRole.isTemporary) { + const relativeTimeInMs = membershipRole.temporaryRange ? ms(membershipRole.temporaryRange) : null; + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null, + isTemporary: true, + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: membershipRole.temporaryRange, + temporaryAccessStartTime: new Date(membershipRole.temporaryAccessStartTime as string), + temporaryAccessEndTime: new Date( + new Date(membershipRole.temporaryAccessStartTime as string).getTime() + (relativeTimeInMs as number) + ) + }); + } else { + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null + }); + } + }); + await membershipRoleDAL.insertMany(roleDocs, tx); + return doc; + }); + + return { membership }; + }; + + const updateMembership = async (dto: TUpdateMembershipIdentityDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onUpdateMembershipIdentityGuard(dto); + + const customInputRoles = data.roles.filter((el) => factory.isCustomRole(el.role)); + const hasCustomRole = customInputRoles.length > 0; + + const hasNoPermanentRole = data.roles.every((el) => el.isTemporary); + if (hasNoPermanentRole) { + throw new BadRequestError({ + message: "Identity must have at least one permanent role" + }); + } + const isInvalidTemporaryRole = data.roles.some((el) => { + if (el.isTemporary) { + if (!el.temporaryAccessStartTime || !el.temporaryRange) { + return true; + } + } + return false; + }); + if (isInvalidTemporaryRole) { + throw new BadRequestError({ + message: "Temporary role must have access start time and range" + }); + } + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + const existingMembership = await membershipIdentityDAL.findOne({ + scope: scopeData.scope, + ...scopeDatabaseFields, + actorIdentityId: dto.selector.identityId + }); + if (!existingMembership) + throw new BadRequestError({ + message: "Identity doesn't have membership" + }); + + const scopeField = factory.getScopeField(dto.scopeData); + const customRoles = hasCustomRole + ? await roleDAL.find({ + [scopeField.key]: scopeField.value, + $in: { slug: customInputRoles.map(({ role }) => role) } + }) + : []; + if (customRoles.length !== customInputRoles.length) { + throw new NotFoundError({ message: "One or more custom roles not found" }); + } + + const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); + + const membershipDoc = await membershipIdentityDAL.transaction(async (tx) => { + const doc = + typeof data.isActive === "undefined" + ? existingMembership + : await membershipIdentityDAL.updateById( + existingMembership.id, + { + isActive: data.isActive + }, + tx + ); + + const roleDocs: TMembershipRolesInsert[] = []; + data.roles.forEach((membershipRole) => { + const isCustomRole = Boolean(customRolesGroupBySlug?.[membershipRole.role]?.[0]); + if (membershipRole.isTemporary) { + const relativeTimeInMs = membershipRole.temporaryRange ? ms(membershipRole.temporaryRange) : null; + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null, + isTemporary: true, + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: membershipRole.temporaryRange, + temporaryAccessStartTime: new Date(membershipRole.temporaryAccessStartTime as string), + temporaryAccessEndTime: new Date( + new Date(membershipRole.temporaryAccessStartTime as string).getTime() + (relativeTimeInMs as number) + ) + }); + } else { + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null + }); + } + }); + await membershipRoleDAL.delete( + { + membershipId: doc.id + }, + tx + ); + const insertedRoleDocs = await membershipRoleDAL.insertMany(roleDocs, tx); + return { ...doc, roles: insertedRoleDocs }; + }); + + return { membership: membershipDoc }; + }; + + const deleteMembership = async (dto: TDeleteMembershipIdentityDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onDeleteMembershipIdentityGuard(dto); + + const scopeField = factory.getScopeField(scopeData); + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + const existingMembership = await membershipIdentityDAL.findOne({ + scope: scopeData.scope, + ...scopeDatabaseFields, + actorIdentityId: dto.selector.identityId + }); + if (!existingMembership) + throw new BadRequestError({ + message: "Identity doesn't have membership" + }); + + if (existingMembership.actorIdentityId === dto.permission.id) + throw new BadRequestError({ + message: "You can't delete your own membership" + }); + + const membershipDoc = await membershipIdentityDAL.transaction(async (tx) => { + await additionalPrivilegeDAL.delete( + { + actorIdentityId: dto.selector.identityId, + [scopeField.key]: scopeField.value + }, + tx + ); + await membershipRoleDAL.delete({ membershipId: existingMembership.id }, tx); + const doc = await membershipIdentityDAL.deleteById(existingMembership.id, tx); + return doc; + }); + return { membership: membershipDoc }; + }; + + const listMemberships = async (dto: TListMembershipIdentityDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onListMembershipIdentityGuard(dto); + const memberships = await membershipIdentityDAL.findIdentities({ + scopeData, + filter: { + limit: dto.data.limit, + offset: dto.data.offset, + name: dto.data.identityName + ? { + [SearchResourceOperators.$contains]: dto.data.identityName + } + : undefined, + role: dto.data.roles.length + ? { + [SearchResourceOperators.$in]: dto.data.roles + } + : undefined + } + }); + return memberships; + }; + + const getMembershipByIdentityId = async (dto: TGetMembershipIdentityByIdentityIdDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onGetMembershipIdentityByIdentityIdGuard(dto); + const membership = await membershipIdentityDAL.getIdentityById({ + scopeData, + identityId: selector.identityId + }); + if (!membership) throw new NotFoundError({ message: `Identity membership not found` }); + + return membership; + }; + + return { + createMembership, + updateMembership, + deleteMembership, + listMemberships, + getMembershipByIdentityId + }; +}; diff --git a/backend/src/services/membership-identity/membership-identity-types.ts b/backend/src/services/membership-identity/membership-identity-types.ts new file mode 100644 index 0000000000..adce10237b --- /dev/null +++ b/backend/src/services/membership-identity/membership-identity-types.ts @@ -0,0 +1,82 @@ +import { AccessScopeData, TemporaryPermissionMode } from "@app/db/schemas"; +import { OrgServiceActor } from "@app/lib/types"; + +export interface TMembershipIdentityScopeFactory { + onCreateMembershipIdentityGuard: (arg: TCreateMembershipIdentityDTO) => Promise; + + onUpdateMembershipIdentityGuard: (arg: TUpdateMembershipIdentityDTO) => Promise; + onDeleteMembershipIdentityGuard: (arg: TDeleteMembershipIdentityDTO) => Promise; + onListMembershipIdentityGuard: (arg: TListMembershipIdentityDTO) => Promise; + onGetMembershipIdentityByIdentityIdGuard: (arg: TGetMembershipIdentityByIdentityIdDTO) => Promise; + getScopeField: (scope: AccessScopeData) => { key: "orgId" | "namespaceId" | "projectId"; value: string }; + getScopeDatabaseFields: (scope: AccessScopeData) => { + scopeOrgId: string; + scopeNamespaceId?: string | null; + scopeProjectId?: string | null; + }; + isCustomRole: (role: string) => boolean; +} + +export type TCreateMembershipIdentityDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + identityId: string; + roles: { + role: string; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }[]; + }; +}; + +export type TUpdateMembershipIdentityDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + identityId: string; + }; + data: { + isActive?: boolean; + metadata?: { key: string; value: string }[]; + roles: { + role: string; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }[]; + }; +}; + +export type TListMembershipIdentityDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + identityId: string; + }; + data: { + limit?: number; + offset?: number; + identityName?: string; + roles: string[]; + }; +}; + +export type TDeleteMembershipIdentityDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + identityId: string; + }; +}; + +export type TGetMembershipIdentityByIdentityIdDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + identityId: string; + }; +}; diff --git a/backend/src/services/membership-identity/namespace/namespace-membership-identity-factory.ts b/backend/src/services/membership-identity/namespace/namespace-membership-identity-factory.ts new file mode 100644 index 0000000000..be3ca6ea9b --- /dev/null +++ b/backend/src/services/membership-identity/namespace/namespace-membership-identity-factory.ts @@ -0,0 +1,64 @@ +import { AccessScope } from "@app/db/schemas"; +import { InternalServerError } from "@app/lib/errors"; + +import { TMembershipIdentityScopeFactory } from "../membership-identity-types"; + +type TNamespaceMembershipIdentityScopeFactoryDep = Record; + +export const newNamespaceMembershipIdentityFactory = ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + deps: TNamespaceMembershipIdentityScopeFactoryDep +): TMembershipIdentityScopeFactory => { + const getScopeField: TMembershipIdentityScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { key: "namespaceId" as const, value: dto.namespaceId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the namespace factory" }); + }; + + const getScopeDatabaseFields: TMembershipIdentityScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { scopeOrgId: dto.orgId, scopeNamespaceId: dto.namespaceId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the namespace factory" }); + }; + + const isCustomRole: TMembershipIdentityScopeFactory["isCustomRole"] = () => { + throw new InternalServerError({ message: "Namespace membership identity isCustomRole not implemented" }); + }; + + const onCreateMembershipIdentityGuard: TMembershipIdentityScopeFactory["onCreateMembershipIdentityGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace membership identity create not implemented" }); + }; + + const onUpdateMembershipIdentityGuard: TMembershipIdentityScopeFactory["onUpdateMembershipIdentityGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace membership identity update not implemented" }); + }; + + const onDeleteMembershipIdentityGuard: TMembershipIdentityScopeFactory["onDeleteMembershipIdentityGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace membership identity delete not implemented" }); + }; + + const onListMembershipIdentityGuard: TMembershipIdentityScopeFactory["onListMembershipIdentityGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership identity list not implemented" }); + }; + + const onGetMembershipIdentityByIdentityIdGuard: TMembershipIdentityScopeFactory["onGetMembershipIdentityByIdentityIdGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace membership identity get by identity id not implemented" }); + }; + + return { + onCreateMembershipIdentityGuard, + onUpdateMembershipIdentityGuard, + onDeleteMembershipIdentityGuard, + onListMembershipIdentityGuard, + onGetMembershipIdentityByIdentityIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-identity/org/org-membership-identity-factory.ts b/backend/src/services/membership-identity/org/org-membership-identity-factory.ts new file mode 100644 index 0000000000..06789e274a --- /dev/null +++ b/backend/src/services/membership-identity/org/org-membership-identity-factory.ts @@ -0,0 +1,130 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope, OrgMembershipRole } from "@app/db/schemas"; +import { OrgPermissionIdentityActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; +import { + constructPermissionErrorMessage, + validatePrivilegeChangeOperation +} from "@app/ee/services/permission/permission-fns"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError, InternalServerError, PermissionBoundaryError } from "@app/lib/errors"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; +import { isCustomOrgRole } from "@app/services/org/org-role-fns"; + +import { TMembershipIdentityScopeFactory } from "../membership-identity-types"; + +type TOrgMembershipIdentityScopeFactoryDep = { + permissionService: Pick; + orgDAL: Pick; +}; + +export const newOrgMembershipIdentityFactory = ({ + permissionService, + orgDAL +}: TOrgMembershipIdentityScopeFactoryDep): TMembershipIdentityScopeFactory => { + const getScopeField: TMembershipIdentityScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { key: "orgId" as const, value: dto.orgId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the org factory" }); + }; + + const getScopeDatabaseFields: TMembershipIdentityScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { scopeOrgId: dto.orgId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the org factory" }); + }; + + const isCustomRole: TMembershipIdentityScopeFactory["isCustomRole"] = (role: string) => isCustomOrgRole(role); + + const onCreateMembershipIdentityGuard: TMembershipIdentityScopeFactory["onCreateMembershipIdentityGuard"] = + async () => { + throw new BadRequestError({ + message: "Organization membership cannot be created for organization scoped identity" + }); + }; + + const onUpdateMembershipIdentityGuard: TMembershipIdentityScopeFactory["onUpdateMembershipIdentityGuard"] = async ( + dto + ) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); + const permissionRoles = await permissionService.getOrgPermissionByRoles( + dto.data.roles.map((el) => el.role), + dto.permission.orgId + ); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + for (const permissionRole of permissionRoles) { + if (permissionRole?.role?.name !== OrgMembershipRole.NoAccess) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + OrgPermissionIdentityActions.GrantPrivileges, + OrgPermissionSubjects.Identity, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to update identity org membership", + shouldUseNewPrivilegeSystem, + OrgPermissionIdentityActions.GrantPrivileges, + OrgPermissionSubjects.Identity + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + } + }; + + const onDeleteMembershipIdentityGuard: TMembershipIdentityScopeFactory["onDeleteMembershipIdentityGuard"] = + async () => { + throw new BadRequestError({ + message: "Organization membership cannot be deleted for organization scoped identity" + }); + }; + + const onListMembershipIdentityGuard: TMembershipIdentityScopeFactory["onListMembershipIdentityGuard"] = async ( + dto + ) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); + }; + + const onGetMembershipIdentityByIdentityIdGuard: TMembershipIdentityScopeFactory["onGetMembershipIdentityByIdentityIdGuard"] = + async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Read, OrgPermissionSubjects.Identity); + }; + + return { + onCreateMembershipIdentityGuard, + onUpdateMembershipIdentityGuard, + onDeleteMembershipIdentityGuard, + onListMembershipIdentityGuard, + onGetMembershipIdentityByIdentityIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-identity/project/project-membership-identity-factory.ts b/backend/src/services/membership-identity/project/project-membership-identity-factory.ts new file mode 100644 index 0000000000..f2896047f3 --- /dev/null +++ b/backend/src/services/membership-identity/project/project-membership-identity-factory.ts @@ -0,0 +1,208 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope, ActionProjectType, ProjectMembershipRole } from "@app/db/schemas"; +import { + constructPermissionErrorMessage, + validatePrivilegeChangeOperation +} from "@app/ee/services/permission/permission-fns"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { + isCustomProjectRole, + ProjectPermissionIdentityActions, + ProjectPermissionSub +} from "@app/ee/services/permission/project-permission"; +import { BadRequestError, InternalServerError, PermissionBoundaryError } from "@app/lib/errors"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; + +import { TMembershipIdentityDALFactory } from "../membership-identity-dal"; +import { TMembershipIdentityScopeFactory } from "../membership-identity-types"; + +type TProjectMembershipIdentityScopeFactoryDep = { + permissionService: Pick; + orgDAL: Pick; + membershipIdentityDAL: Pick; +}; + +export const newProjectMembershipIdentityFactory = ({ + permissionService, + orgDAL, + membershipIdentityDAL +}: TProjectMembershipIdentityScopeFactoryDep): TMembershipIdentityScopeFactory => { + const getScopeField: TMembershipIdentityScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { key: "projectId" as const, value: dto.projectId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the project factory" }); + }; + + const getScopeDatabaseFields: TMembershipIdentityScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { scopeOrgId: dto.orgId, scopeProjectId: dto.projectId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the project factory" }); + }; + + const isCustomRole: TMembershipIdentityScopeFactory["isCustomRole"] = (role) => isCustomProjectRole(role); + + const onCreateMembershipIdentityGuard: TMembershipIdentityScopeFactory["onCreateMembershipIdentityGuard"] = async ( + dto + ) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionIdentityActions.Create, + ProjectPermissionSub.Identity + ); + const orgMembership = await membershipIdentityDAL.findOne({ + actorIdentityId: dto.data.identityId, + scopeOrgId: dto.permission.orgId, + scope: AccessScope.Organization + }); + if (!orgMembership) + throw new BadRequestError({ message: `Identity ${dto.data.identityId} is missing organization membership` }); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const permissionRoles = await permissionService.getProjectPermissionByRoles( + dto.data.roles.map((el) => el.role), + scope.value + ); + for (const permissionRole of permissionRoles) { + if (permissionRole?.role?.name !== ProjectMembershipRole.NoAccess) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + ProjectPermissionIdentityActions.GrantPrivileges, + ProjectPermissionSub.Identity, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to create identity project membership", + shouldUseNewPrivilegeSystem, + ProjectPermissionIdentityActions.GrantPrivileges, + ProjectPermissionSub.Identity + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + } + }; + + const onUpdateMembershipIdentityGuard: TMembershipIdentityScopeFactory["onUpdateMembershipIdentityGuard"] = async ( + dto + ) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionIdentityActions.Edit, + ProjectPermissionSub.Identity + ); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const permissionRoles = await permissionService.getProjectPermissionByRoles( + dto.data.roles.filter((el) => el.role !== ProjectMembershipRole.NoAccess).map((el) => el.role), + scope.value + ); + for (const permissionRole of permissionRoles) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + ProjectPermissionIdentityActions.GrantPrivileges, + ProjectPermissionSub.Identity, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to update identity project membership", + shouldUseNewPrivilegeSystem, + ProjectPermissionIdentityActions.GrantPrivileges, + ProjectPermissionSub.Identity + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + }; + + const onDeleteMembershipIdentityGuard: TMembershipIdentityScopeFactory["onDeleteMembershipIdentityGuard"] = async ( + dto + ) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionIdentityActions.Delete, + ProjectPermissionSub.Identity + ); + }; + + const onListMembershipIdentityGuard: TMembershipIdentityScopeFactory["onListMembershipIdentityGuard"] = async ( + dto + ) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionIdentityActions.Read, + ProjectPermissionSub.Identity + ); + }; + + const onGetMembershipIdentityByIdentityIdGuard: TMembershipIdentityScopeFactory["onGetMembershipIdentityByIdentityIdGuard"] = + async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionIdentityActions.Read, + ProjectPermissionSub.Identity + ); + }; + + return { + onCreateMembershipIdentityGuard, + onUpdateMembershipIdentityGuard, + onDeleteMembershipIdentityGuard, + onListMembershipIdentityGuard, + onGetMembershipIdentityByIdentityIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-user/membership-user-dal.ts b/backend/src/services/membership-user/membership-user-dal.ts new file mode 100644 index 0000000000..7882b9639c --- /dev/null +++ b/backend/src/services/membership-user/membership-user-dal.ts @@ -0,0 +1,295 @@ +import { Knex } from "knex"; + +import { TDbClient } from "@app/db"; +import { AccessScope, AccessScopeData, MembershipsSchema, TableName } from "@app/db/schemas"; +import { BadRequestError, DatabaseError } from "@app/lib/errors"; +import { ormify, selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; +import { buildKnexFilterForSearchResource } from "@app/lib/search-resource/db"; +import { TSearchResourceOperator } from "@app/lib/search-resource/search"; + +export type TMembershipUserDALFactory = ReturnType; + +type TFindUserArg = { + scopeData: AccessScopeData; + tx?: Knex; + filter: Partial<{ + limit: number; + offset: number; + userId?: string; + username: Omit; + role: Omit; + }>; +}; + +type TGetUserByIdArg = { + scopeData: AccessScopeData; + tx?: Knex; + userId: string; +}; + +export const membershipUserDALFactory = (db: TDbClient) => { + const orm = ormify(db, TableName.Membership); + + const getUserById = async ({ scopeData, tx, userId }: TGetUserByIdArg) => { + try { + const docs = await (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Users}.id`, `${TableName.Membership}.actorUserId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { + void queryBuilder + .on(`${TableName.Membership}.actorUserId`, `${TableName.IdentityMetadata}.userId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); + }) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .where(`${TableName.Membership}.actorUserId`, userId) + .where(`${TableName.Users}.isGhost`, false) + .where((qb) => { + if (scopeData.scope === AccessScope.Organization) { + void qb.where(`${TableName.Membership}.scope`, AccessScope.Organization); + } else if (scopeData.scope === AccessScope.Namespace) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Namespace) + .where(`${TableName.Membership}.scopeNamespaceId`, scopeData.namespaceId); + } else if (scopeData.scope === AccessScope.Project) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, scopeData.projectId); + } + }) + .select(selectAllTableCols(TableName.Membership)) + .select( + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("id").withSchema(TableName.Role).as("customRoleId"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt"), + db.ref("id").withSchema(TableName.IdentityMetadata).as("metadataId"), + db.ref("key").withSchema(TableName.IdentityMetadata).as("metadataKey"), + db.ref("value").withSchema(TableName.IdentityMetadata).as("metadataValue"), + db.ref("username").withSchema(TableName.Users).as("userUsername"), + db.ref("email").withSchema(TableName.Users).as("userEmail"), + db.ref("firstName").withSchema(TableName.Users).as("userFirstName"), + db.ref("lastName").withSchema(TableName.Users).as("userLastName"), + db.ref("id").withSchema(TableName.Users).as("userId") + ); + + const data = sqlNestRelationships({ + data: docs, + key: "id", + parentMapper: (el) => ({ + ...MembershipsSchema.parse(el), + user: { + username: el.userUsername, + email: el.userEmail, + firstName: el.userFirstName, + lastName: el.userLastName, + id: el.userId + } + }), + childrenMapper: [ + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + customRoleSlug, + customRoleName, + customRoleId, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + customRoleSlug, + customRoleName, + customRoleId, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt + }) + }, + { + key: "metadataId", + label: "metadata" as const, + mapper: ({ metadataKey, metadataValue, metadataId }) => ({ + id: metadataId, + key: metadataKey, + value: metadataValue + }) + } + ] + }); + + return data?.[0]; + } catch (error) { + throw new DatabaseError({ error, name: "MembershipGetByUserId" }); + } + }; + + const findUsers = async ({ scopeData, tx, filter }: TFindUserArg) => { + try { + const paginatedUsers = (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Users}.id`, `${TableName.Membership}.actorUserId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .distinct(`${TableName.Membership}.id`) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .where(`${TableName.Users}.isGhost`, false) + .where((qb) => { + if (scopeData.scope === AccessScope.Organization) { + void qb.where(`${TableName.Membership}.scope`, AccessScope.Organization); + } else if (scopeData.scope === AccessScope.Namespace) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Namespace) + .where(`${TableName.Membership}.scopeNamespaceId`, scopeData.namespaceId); + } else if (scopeData.scope === AccessScope.Project) { + void qb + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, scopeData.projectId); + } + }); + + if (filter.limit) void paginatedUsers.limit(filter.limit); + if (filter.offset) void paginatedUsers.offset(filter.offset); + + if (filter.username || filter.role) { + buildKnexFilterForSearchResource( + paginatedUsers, + { + username: filter.username!, + role: filter.role! + }, + (attr) => { + switch (attr) { + case "role": + return [`${TableName.Role}.slug`, `${TableName.MembershipRole}.role`]; + case "username": + return `${TableName.Users}.username`; + default: + throw new BadRequestError({ message: `Invalid ${String(attr)} provided` }); + } + } + ); + } + + const docs = await (tx || db.replicaNode())(TableName.Membership) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Users}.id`, `${TableName.Membership}.actorUserId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .distinct(`${TableName.Membership}.id`) + .where(`${TableName.Membership}.scopeOrgId`, scopeData.orgId) + .whereIn(`${TableName.Membership}.id`, paginatedUsers) + .select(selectAllTableCols(TableName.Membership)) + .select( + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("id").withSchema(TableName.Role).as("customRoleId"), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"), + db.ref("isTemporary").withSchema(TableName.MembershipRole).as("membershipRoleIsTemporary"), + db.ref("temporaryRange").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryRange"), + db + .ref("temporaryAccessStartTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessStartTime"), + db + .ref("temporaryAccessEndTime") + .withSchema(TableName.MembershipRole) + .as("membershipRoleTemporaryAccessEndTime"), + db.ref("createdAt").withSchema(TableName.MembershipRole).as("membershipRoleCreatedAt"), + db.ref("updatedAt").withSchema(TableName.MembershipRole).as("membershipRoleUpdatedAt"), + db.ref("username").withSchema(TableName.Users).as("userUsername"), + db.ref("email").withSchema(TableName.Users).as("userEmail"), + db.ref("firstName").withSchema(TableName.Users).as("userFirstName"), + db.ref("lastName").withSchema(TableName.Users).as("userLastName"), + db.ref("id").withSchema(TableName.Users).as("userId") + ) + .select( + db.raw( + `count(${TableName.Membership}."actorUserId") OVER(PARTITION BY ${TableName.Membership}."scopeOrgId") as total` + ) + ); + + const data = sqlNestRelationships({ + data: docs, + key: "id", + parentMapper: (el) => ({ + ...MembershipsSchema.parse(el), + user: { + username: el.userUsername, + email: el.userEmail, + firstName: el.userFirstName, + lastName: el.userLastName, + id: el.userId + } + }), + childrenMapper: [ + { + key: "membershipRoleId", + label: "roles" as const, + mapper: ({ + customRoleSlug, + customRoleName, + customRoleId, + membershipRoleId, + membershipRole, + membershipRoleIsTemporary, + membershipRoleTemporaryMode, + membershipRoleTemporaryRange, + membershipRoleTemporaryAccessEndTime, + membershipRoleTemporaryAccessStartTime, + membershipRoleCreatedAt, + membershipRoleUpdatedAt + }) => ({ + id: membershipRoleId, + role: membershipRole, + customRoleSlug, + customRoleName, + customRoleId, + temporaryRange: membershipRoleTemporaryRange, + temporaryMode: membershipRoleTemporaryMode, + temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime, + temporaryAccessEndTime: membershipRoleTemporaryAccessEndTime, + isTemporary: membershipRoleIsTemporary, + createdAt: membershipRoleCreatedAt, + updatedAt: membershipRoleUpdatedAt + }) + } + ] + }); + return { data, totalCount: Number((data?.[0] as unknown as { total: number })?.total ?? 0) }; + } catch (error) { + throw new DatabaseError({ error, name: "MembershipfindUser" }); + } + }; + + return { ...orm, findUsers, getUserById }; +}; diff --git a/backend/src/services/membership-user/membership-user-service.ts b/backend/src/services/membership-user/membership-user-service.ts new file mode 100644 index 0000000000..82dca01596 --- /dev/null +++ b/backend/src/services/membership-user/membership-user-service.ts @@ -0,0 +1,481 @@ +import { + AccessScope, + OrgMembershipStatus, + ProjectMembershipRole, + TemporaryPermissionMode, + TMembershipRolesInsert +} from "@app/db/schemas"; +import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; +import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { groupBy } from "@app/lib/fn"; +import { ms } from "@app/lib/ms"; +import { SearchResourceOperators } from "@app/lib/search-resource/search"; + +import { TAdditionalPrivilegeDALFactory } from "../additional-privilege/additional-privilege-dal"; +import { AuthMethod } from "../auth/auth-type"; +import { TAuthTokenServiceFactory } from "../auth-token/auth-token-service"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TOrgDALFactory } from "../org/org-dal"; +import { deleteOrgMembershipsFn } from "../org/org-fns"; +import { TProjectDALFactory } from "../project/project-dal"; +import { TProjectKeyDALFactory } from "../project-key/project-key-dal"; +import { TRoleDALFactory } from "../role/role-dal"; +import { TSmtpService } from "../smtp/smtp-service"; +import { TUserDALFactory } from "../user/user-dal"; +import { TUserAliasDALFactory } from "../user-alias/user-alias-dal"; +import { TMembershipUserDALFactory } from "./membership-user-dal"; +import { + TCreateMembershipUserDTO, + TDeleteMembershipUserDTO, + TGetMembershipUserByUserIdDTO, + TListMembershipUserDTO, + TUpdateMembershipUserDTO +} from "./membership-user-types"; +import { newNamespaceMembershipUserFactory } from "./namespace/namespace-membership-user-factory"; +import { newOrgMembershipUserFactory } from "./org/org-membership-user-factory"; +import { newProjectMembershipUserFactory } from "./project/project-membership-user-factory"; + +type TMembershipUserServiceFactoryDep = { + membershipUserDAL: TMembershipUserDALFactory; + membershipRoleDAL: Pick; + orgDAL: Pick; + roleDAL: Pick; + userDAL: TUserDALFactory; + permissionService: Pick< + TPermissionServiceFactory, + "getProjectPermission" | "getProjectPermissionByRoles" | "getOrgPermission" + >; + licenseService: TLicenseServiceFactory; + projectKeyDAL: TProjectKeyDALFactory; + userAliasDAL: TUserAliasDALFactory; + smtpService: TSmtpService; + tokenService: TAuthTokenServiceFactory; + userGroupMembershipDAL: TUserGroupMembershipDALFactory; + projectDAL: TProjectDALFactory; + additionalPrivilegeDAL: TAdditionalPrivilegeDALFactory; +}; + +export type TMembershipUserServiceFactory = ReturnType; + +export const membershipUserServiceFactory = ({ + membershipUserDAL, + roleDAL, + membershipRoleDAL, + userDAL, + permissionService, + orgDAL, + projectKeyDAL, + userAliasDAL, + licenseService, + smtpService, + tokenService, + userGroupMembershipDAL, + projectDAL, + additionalPrivilegeDAL +}: TMembershipUserServiceFactoryDep) => { + const scopeFactory = { + [AccessScope.Organization]: newOrgMembershipUserFactory({ + permissionService, + licenseService, + smtpService, + orgDAL, + tokenService, + userDAL, + userGroupMembershipDAL + }), + [AccessScope.Namespace]: newNamespaceMembershipUserFactory({}), + [AccessScope.Project]: newProjectMembershipUserFactory({ + orgDAL, + permissionService, + membershipUserDAL, + projectDAL, + smtpService + }) + }; + + const $getUsers = async (usernames: string[]) => { + const existingUsers = await userDAL.find({ $in: { username: usernames } }); + if (existingUsers.length !== usernames.length) { + const newUserEmails = usernames.filter( + (inviteeEmail) => !existingUsers.find((el) => el.username === inviteeEmail) + ); + await userDAL.transaction(async (tx) => { + for await (const inviteeEmail of newUserEmails) { + const usersByUsername = await userDAL.findUserByUsername(inviteeEmail, tx); + let inviteeUser = + usersByUsername?.length > 1 + ? usersByUsername.find((el) => el.username === inviteeEmail) + : usersByUsername?.[0]; + + // if the user doesn't exist we create the user with the email + if (!inviteeUser) { + // TODO(carlos): will be removed once the function receives usernames instead of emails + const usersByEmail = await userDAL.findUserByEmail(inviteeEmail, tx); + if (usersByEmail?.length === 1) { + [inviteeUser] = usersByEmail; + } else { + inviteeUser = await userDAL.create( + { + isAccepted: false, + email: inviteeEmail, + username: inviteeEmail, + authMethods: [AuthMethod.EMAIL], + isGhost: false + }, + tx + ); + } + } + + existingUsers.push(inviteeUser); + const inviteeUserId = inviteeUser?.id; + const existingEncryptionKey = await userDAL.findUserEncKeyByUserId(inviteeUserId, tx); + + // when user is missing the encrytion keys + // this could happen either if user doesn't exist or user didn't find step 3 of generating the encryption keys of srp + // So what we do is we generate a random secure password and then encrypt it with a random pub-private key + // Then when user sign in (as login is not possible as isAccepted is false) we rencrypt the private key with the user password + if (!inviteeUser || (inviteeUser && !inviteeUser?.isAccepted && !existingEncryptionKey)) { + await userDAL.createUserEncryption( + { + userId: inviteeUserId, + encryptionVersion: 2 + }, + tx + ); + } + } + }); + } + return existingUsers; + }; + + const createMembership = async (dto: TCreateMembershipUserDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + + const hasNoPermanentRole = data.roles.every((el) => el.isTemporary); + if (hasNoPermanentRole) { + throw new BadRequestError({ + message: "User must have at least one permanent role" + }); + } + const isInvalidTemporaryRole = data.roles.some((el) => { + if (el.isTemporary) { + if (!el.temporaryAccessStartTime || !el.temporaryRange) { + return true; + } + } + return false; + }); + if (isInvalidTemporaryRole) { + throw new BadRequestError({ + message: "Temporary role must have access start time and range" + }); + } + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + const users = await $getUsers(dto.data.usernames); + const existingMemberships = await membershipUserDAL.find({ + scope: scopeData.scope, + ...scopeDatabaseFields, + $in: { + actorUserId: users.map((el) => el.id) + } + }); + + if (existingMemberships.length === users.length) return { memberships: [] }; + + const newMembershipUsers = users.filter((user) => !existingMemberships?.find((el) => el.actorUserId === user.id)); + await factory.onCreateMembershipUserGuard(dto, newMembershipUsers); + const newMemberships = newMembershipUsers.map((user) => ({ + scope: scopeData.scope, + ...scopeDatabaseFields, + actorUserId: user.id, + status: scopeData.scope === AccessScope.Organization ? OrgMembershipStatus.Invited : undefined, + inviteEmail: scopeData.scope === AccessScope.Organization ? user.email : undefined + })); + + const customInputRoles = data.roles.filter((el) => factory.isCustomRole(el.role)); + const hasCustomRole = customInputRoles.length > 0; + if (hasCustomRole) { + const plan = await licenseService.getPlan(scopeData.orgId); + if (!plan?.rbac) + throw new BadRequestError({ + message: + "Failed to set custom default role due to plan RBAC restriction. Upgrade plan to set custom default org membership role." + }); + } + + const scopeField = factory.getScopeField(dto.scopeData); + const customRoles = hasCustomRole + ? await roleDAL.find({ + [scopeField.key]: scopeField.value, + $in: { slug: customInputRoles.map(({ role }) => role) } + }) + : []; + if (customRoles.length !== customInputRoles.length) { + throw new NotFoundError({ message: "One or more custom roles not found" }); + } + + const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); + + const membershipDoc = await membershipUserDAL.transaction(async (tx) => { + const docs = await membershipUserDAL.insertMany(newMemberships, tx); + + const roleDocs: TMembershipRolesInsert[] = []; + docs.forEach((membership) => { + data.roles.forEach((membershipRole) => { + const isCustomRole = Boolean(customRolesGroupBySlug?.[membershipRole.role]?.[0]); + if (membershipRole.isTemporary) { + const relativeTimeInMs = membershipRole.temporaryRange ? ms(membershipRole.temporaryRange) : null; + roleDocs.push({ + membershipId: membership.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null, + isTemporary: true, + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: membershipRole.temporaryRange, + temporaryAccessStartTime: new Date(membershipRole.temporaryAccessStartTime as string), + temporaryAccessEndTime: new Date( + new Date(membershipRole.temporaryAccessStartTime as string).getTime() + (relativeTimeInMs as number) + ) + }); + } else { + roleDocs.push({ + membershipId: membership.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null + }); + } + }); + }); + await membershipRoleDAL.insertMany(roleDocs, tx); + return docs; + }); + + const { signUpTokens } = await factory.onCreateMembershipComplete(dto, newMembershipUsers); + return { memberships: membershipDoc, signUpTokens }; + }; + + const updateMembership = async (dto: TUpdateMembershipUserDTO) => { + const { scopeData, data } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onUpdateMembershipUserGuard(dto); + + const customInputRoles = data.roles.filter((el) => factory.isCustomRole(el.role)); + const hasCustomRole = customInputRoles.length > 0; + if (hasCustomRole) { + const plan = await licenseService.getPlan(scopeData.orgId); + if (!plan?.rbac) + throw new BadRequestError({ + message: + "Failed to set custom default role due to plan RBAC restriction. Upgrade plan to set custom default org membership role." + }); + } + + const hasNoPermanentRole = data.roles.every((el) => el.isTemporary); + if (hasNoPermanentRole) { + throw new BadRequestError({ + message: "User must have at least one permanent role" + }); + } + const isInvalidTemporaryRole = data.roles.some((el) => { + if (el.isTemporary) { + if (!el.temporaryAccessStartTime || !el.temporaryRange) { + return true; + } + } + return false; + }); + if (isInvalidTemporaryRole) { + throw new BadRequestError({ + message: "Temporary role must have access start time and range" + }); + } + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + const existingMembership = await membershipUserDAL.findOne({ + scope: scopeData.scope, + ...scopeDatabaseFields, + actorUserId: dto.selector.userId + }); + if (!existingMembership) + throw new BadRequestError({ + message: "User doesn't have membership" + }); + + const scopeField = factory.getScopeField(dto.scopeData); + const customRoles = hasCustomRole + ? await roleDAL.find({ + [scopeField.key]: scopeField.value, + $in: { slug: customInputRoles.map(({ role }) => role) } + }) + : []; + if (customRoles.length !== customInputRoles.length) { + throw new NotFoundError({ message: "One or more custom roles not found" }); + } + + const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); + + const membershipDoc = await membershipUserDAL.transaction(async (tx) => { + const doc = + typeof data?.isActive === "undefined" + ? existingMembership + : await membershipUserDAL.updateById( + existingMembership.id, + { + isActive: data.isActive + }, + tx + ); + + const roleDocs: TMembershipRolesInsert[] = []; + data.roles.forEach((membershipRole) => { + const isCustomRole = Boolean(customRolesGroupBySlug?.[membershipRole.role]?.[0]); + if (membershipRole.isTemporary) { + const relativeTimeInMs = membershipRole.temporaryRange ? ms(membershipRole.temporaryRange) : null; + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null, + isTemporary: true, + temporaryMode: TemporaryPermissionMode.Relative, + temporaryRange: membershipRole.temporaryRange, + temporaryAccessStartTime: new Date(membershipRole.temporaryAccessStartTime as string), + temporaryAccessEndTime: new Date( + new Date(membershipRole.temporaryAccessStartTime as string).getTime() + (relativeTimeInMs as number) + ) + }); + } else { + roleDocs.push({ + membershipId: doc.id, + role: isCustomRole ? ProjectMembershipRole.Custom : membershipRole.role, + customRoleId: customRolesGroupBySlug[membershipRole.role] + ? customRolesGroupBySlug[membershipRole.role][0].id + : null + }); + } + }); + await membershipRoleDAL.delete( + { + membershipId: doc.id + }, + tx + ); + const insertedRoles = await membershipRoleDAL.insertMany(roleDocs, tx); + return { ...doc, roles: insertedRoles }; + }); + + return { membership: membershipDoc }; + }; + + const deleteMembership = async (dto: TDeleteMembershipUserDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onDeleteMembershipUserGuard(dto); + + const scopeDatabaseFields = factory.getScopeDatabaseFields(dto.scopeData); + const existingMembership = await membershipUserDAL.findOne({ + scope: scopeData.scope, + ...scopeDatabaseFields, + actorUserId: dto.selector.userId + }); + if (!existingMembership) + throw new BadRequestError({ + message: "User doesn't have membership" + }); + + if (existingMembership.actorUserId === dto.permission.id) + throw new BadRequestError({ + message: "You can't delete your own membership" + }); + + const membershipDoc = await membershipUserDAL.transaction(async (tx) => { + if (dto.scopeData.scope === AccessScope.Organization) { + const [doc] = await deleteOrgMembershipsFn({ + orgMembershipIds: [], + orgId: dto.permission.orgId, + orgDAL, + projectKeyDAL, + userAliasDAL, + licenseService, + userId: dto.permission.id, + membershipUserDAL, + userGroupMembershipDAL, + membershipRoleDAL, + additionalPrivilegeDAL + }); + return doc; + } + + if (dto.scopeData.scope === AccessScope.Project) { + await additionalPrivilegeDAL.delete( + { + actorUserId: dto.selector.userId, + projectId: dto.scopeData.projectId + }, + tx + ); + } + + await membershipRoleDAL.delete({ membershipId: existingMembership.id }, tx); + const doc = await membershipUserDAL.deleteById(existingMembership.id, tx); + return doc; + }); + return { membership: membershipDoc }; + }; + + const listMemberships = async (dto: TListMembershipUserDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onListMembershipUserGuard(dto); + const memberships = await membershipUserDAL.findUsers({ + scopeData, + filter: { + limit: dto.data.limit, + offset: dto.data.offset, + username: dto.data.username, + role: dto.data?.roles?.length + ? { + [SearchResourceOperators.$in]: dto.data.roles + } + : undefined + } + }); + return memberships; + }; + + const getMembershipByUserId = async (dto: TGetMembershipUserByUserIdDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onGetMembershipUserByUserIdGuard(dto); + const membership = await membershipUserDAL.getUserById({ + scopeData, + userId: selector.userId + }); + if (!membership) throw new NotFoundError({ message: `User membership not found` }); + + return membership; + }; + + return { + createMembership, + updateMembership, + deleteMembership, + listMemberships, + getMembershipByUserId + }; +}; diff --git a/backend/src/services/membership-user/membership-user-types.ts b/backend/src/services/membership-user/membership-user-types.ts new file mode 100644 index 0000000000..b8761671c6 --- /dev/null +++ b/backend/src/services/membership-user/membership-user-types.ts @@ -0,0 +1,95 @@ +import { AccessScopeData, TemporaryPermissionMode } from "@app/db/schemas"; +import { OrgServiceActor } from "@app/lib/types"; + +export interface TMembershipUserScopeFactory { + onCreateMembershipUserGuard: ( + arg: TCreateMembershipUserDTO, + newMembers: { id: string; email?: string | null }[] + ) => Promise; + onCreateMembershipComplete: ( + arg: TCreateMembershipUserDTO, + newMembers: { id: string; email?: string | null }[] + ) => Promise<{ signUpTokens: { email: string; link: string }[] }>; + + onUpdateMembershipUserGuard: (arg: TUpdateMembershipUserDTO) => Promise; + onDeleteMembershipUserGuard: (arg: TDeleteMembershipUserDTO | TBulkDeleteMembershipByUsernameDTO) => Promise; + + onListMembershipUserGuard: (arg: TListMembershipUserDTO) => Promise; + onGetMembershipUserByUserIdGuard: (arg: TGetMembershipUserByUserIdDTO) => Promise; + getScopeField: (scope: AccessScopeData) => { key: "orgId" | "namespaceId" | "projectId"; value: string }; + getScopeDatabaseFields: (scope: AccessScopeData) => { + scopeOrgId: string; + scopeNamespaceId?: string | null; + scopeProjectId?: string | null; + }; + isCustomRole: (role: string) => boolean; +} + +export type TCreateMembershipUserDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + usernames: string[]; + roles: { + role: string; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }[]; + }; +}; + +export type TUpdateMembershipUserDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + userId: string; + }; + data: { + isActive?: boolean; + metadata?: { key: string; value: string }[]; + roles: { + role: string; + isTemporary: boolean; + temporaryMode?: TemporaryPermissionMode.Relative; + temporaryRange?: string; + temporaryAccessStartTime?: string; + }[]; + }; +}; + +export type TListMembershipUserDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + limit?: number; + offset?: number; + username?: string; + roles?: string[]; + }; +}; + +export type TDeleteMembershipUserDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + userId: string; + }; +}; + +export type TBulkDeleteMembershipByUsernameDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + usernames: string[]; + }; +}; + +export type TGetMembershipUserByUserIdDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + userId: string; + }; +}; diff --git a/backend/src/services/membership-user/namespace/namespace-membership-user-factory.ts b/backend/src/services/membership-user/namespace/namespace-membership-user-factory.ts new file mode 100644 index 0000000000..fb2cfc463e --- /dev/null +++ b/backend/src/services/membership-user/namespace/namespace-membership-user-factory.ts @@ -0,0 +1,66 @@ +import { AccessScope } from "@app/db/schemas"; +import { InternalServerError } from "@app/lib/errors"; + +import { TMembershipUserScopeFactory } from "../membership-user-types"; + +type TNamespaceMembershipUserScopeFactoryDep = Record; + +export const newNamespaceMembershipUserFactory = ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + deps: TNamespaceMembershipUserScopeFactoryDep +): TMembershipUserScopeFactory => { + const getScopeField: TMembershipUserScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { key: "namespaceId" as const, value: dto.namespaceId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the namespace factory" }); + }; + + const getScopeDatabaseFields: TMembershipUserScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { scopeOrgId: dto.orgId, scopeNamespaceId: dto.namespaceId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the namespace factory" }); + }; + + const isCustomRole: TMembershipUserScopeFactory["isCustomRole"] = () => { + throw new InternalServerError({ message: "Namespace membership user isCustomRole not implemented" }); + }; + + const onCreateMembershipUserGuard: TMembershipUserScopeFactory["onCreateMembershipUserGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership user create not implemented" }); + }; + + const onCreateMembershipComplete: TMembershipUserScopeFactory["onCreateMembershipComplete"] = async () => { + throw new InternalServerError({ message: "Namespace membership user create complete not implemented" }); + }; + + const onUpdateMembershipUserGuard: TMembershipUserScopeFactory["onUpdateMembershipUserGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership user update not implemented" }); + }; + + const onDeleteMembershipUserGuard: TMembershipUserScopeFactory["onDeleteMembershipUserGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership user delete not implemented" }); + }; + + const onListMembershipUserGuard: TMembershipUserScopeFactory["onListMembershipUserGuard"] = async () => { + throw new InternalServerError({ message: "Namespace membership user list not implemented" }); + }; + + const onGetMembershipUserByUserIdGuard: TMembershipUserScopeFactory["onGetMembershipUserByUserIdGuard"] = + async () => { + throw new InternalServerError({ message: "Namespace membership user get by user id not implemented" }); + }; + + return { + onCreateMembershipUserGuard, + onCreateMembershipComplete, + onUpdateMembershipUserGuard, + onDeleteMembershipUserGuard, + onListMembershipUserGuard, + onGetMembershipUserByUserIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-user/org/org-membership-user-factory.ts b/backend/src/services/membership-user/org/org-membership-user-factory.ts new file mode 100644 index 0000000000..523e85baeb --- /dev/null +++ b/backend/src/services/membership-user/org/org-membership-user-factory.ts @@ -0,0 +1,193 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope } from "@app/db/schemas"; +import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; +import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; +import { OrgPermissionActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { getConfig } from "@app/lib/config/env"; +import { BadRequestError, ForbiddenRequestError, InternalServerError } from "@app/lib/errors"; +import { ActorType } from "@app/services/auth/auth-type"; +import { TAuthTokenServiceFactory } from "@app/services/auth-token/auth-token-service"; +import { TokenType } from "@app/services/auth-token/auth-token-types"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; +import { isCustomOrgRole } from "@app/services/org/org-role-fns"; +import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; +import { TUserDALFactory } from "@app/services/user/user-dal"; + +import { TMembershipUserScopeFactory } from "../membership-user-types"; + +type TOrgMembershipUserScopeFactoryDep = { + permissionService: Pick; + tokenService: Pick; + userDAL: Pick; + smtpService: Pick; + orgDAL: Pick; + userGroupMembershipDAL: Pick; + licenseService: Pick; +}; + +export const newOrgMembershipUserFactory = ({ + permissionService, + tokenService, + userDAL, + orgDAL, + smtpService, + licenseService +}: TOrgMembershipUserScopeFactoryDep): TMembershipUserScopeFactory => { + const getScopeField: TMembershipUserScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { key: "orgId" as const, value: dto.orgId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the org factory" }); + }; + + const getScopeDatabaseFields: TMembershipUserScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { scopeOrgId: dto.orgId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the org factory" }); + }; + + const isCustomRole: TMembershipUserScopeFactory["isCustomRole"] = (role: string) => isCustomOrgRole(role); + + const onCreateMembershipUserGuard: TMembershipUserScopeFactory["onCreateMembershipUserGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.Member); + + const plan = await licenseService.getPlan(dto.permission.orgId); + if (plan?.slug !== "enterprise" && plan?.identityLimit && plan.identitiesUsed >= plan.identityLimit) { + // limit imposed on number of identities allowed / number of identities used exceeds the number of identities allowed + throw new BadRequestError({ + name: "InviteUser", + message: "Failed to invite member due to member limit reached. Upgrade plan to invite more members." + }); + } + + const org = await orgDAL.findById(dto.permission.orgId); + if (org?.authEnforced) { + throw new ForbiddenRequestError({ + name: "InviteUser", + message: "Failed to invite user due to org-level auth enforced for organization" + }); + } + }; + + const onCreateMembershipComplete: TMembershipUserScopeFactory["onCreateMembershipComplete"] = async ( + dto, + newUsers + ) => { + const appCfg = getConfig(); + + const actorDetails = + dto.permission.type === ActorType.USER + ? await userDAL.findById(dto.permission.id) + : { + firstName: "Platform Identity", + email: "identity" + }; + + const signUpTokens: { email: string; link: string }[] = []; + const orgDetails = await orgDAL.findById(dto.permission.orgId); + + await Promise.allSettled( + newUsers.map(async (el) => { + const token = await tokenService.createTokenForUser({ + type: TokenType.TOKEN_EMAIL_ORG_INVITATION, + userId: el.id, + orgId: dto.permission.orgId + }); + + if (el.email) { + if (!appCfg.isSmtpConfigured) { + signUpTokens.push({ + email: el.email, + link: `${appCfg.SITE_URL}/signupinvite?token=${token}&to=${el.email}&organization_id=${dto.permission.orgId}` + }); + } + + await smtpService.sendMail({ + template: SmtpTemplates.OrgInvite, + subjectLine: "Infisical organization invitation", + recipients: [el.email], + substitutions: { + inviterFirstName: actorDetails?.firstName, + inviterUsername: actorDetails?.email, + organizationName: orgDetails?.name, + email: el.email, + organizationId: orgDetails?.id.toString(), + token, + callback_url: `${appCfg.SITE_URL}/signupinvite` + } + }); + } + }) + ); + + return { signUpTokens }; + }; + + const onUpdateMembershipUserGuard: TMembershipUserScopeFactory["onUpdateMembershipUserGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Edit, OrgPermissionSubjects.Member); + }; + + const onDeleteMembershipUserGuard: TMembershipUserScopeFactory["onDeleteMembershipUserGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Delete, OrgPermissionSubjects.Member); + }; + + const onListMembershipUserGuard: TMembershipUserScopeFactory["onListMembershipUserGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Member); + }; + + const onGetMembershipUserByUserIdGuard: TMembershipUserScopeFactory["onGetMembershipUserByUserIdGuard"] = async ( + dto + ) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Member); + }; + + return { + onCreateMembershipUserGuard, + onCreateMembershipComplete, + onUpdateMembershipUserGuard, + onDeleteMembershipUserGuard, + onListMembershipUserGuard, + onGetMembershipUserByUserIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership-user/project/project-membership-user-factory.ts b/backend/src/services/membership-user/project/project-membership-user-factory.ts new file mode 100644 index 0000000000..0a9bb955af --- /dev/null +++ b/backend/src/services/membership-user/project/project-membership-user-factory.ts @@ -0,0 +1,239 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope, ActionProjectType, OrgMembershipStatus, ProjectMembershipRole } from "@app/db/schemas"; +import { + constructPermissionErrorMessage, + validatePrivilegeChangeOperation +} from "@app/ee/services/permission/permission-fns"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { + isCustomProjectRole, + ProjectPermissionMemberActions, + ProjectPermissionSub +} from "@app/ee/services/permission/project-permission"; +import { getConfig } from "@app/lib/config/env"; +import { BadRequestError, InternalServerError, PermissionBoundaryError } from "@app/lib/errors"; +import { TOrgDALFactory } from "@app/services/org/org-dal"; +import { TProjectDALFactory } from "@app/services/project/project-dal"; +import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; + +import { TMembershipUserDALFactory } from "../membership-user-dal"; +import { TMembershipUserScopeFactory } from "../membership-user-types"; + +type TProjectMembershipUserScopeFactoryDep = { + permissionService: Pick; + orgDAL: Pick; + projectDAL: Pick; + membershipUserDAL: Pick; + smtpService: Pick; +}; + +export const newProjectMembershipUserFactory = ({ + permissionService, + orgDAL, + projectDAL, + membershipUserDAL, + smtpService +}: TProjectMembershipUserScopeFactoryDep): TMembershipUserScopeFactory => { + const getScopeField: TMembershipUserScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { key: "projectId" as const, value: dto.projectId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the project factory" }); + }; + + const getScopeDatabaseFields: TMembershipUserScopeFactory["getScopeDatabaseFields"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { scopeOrgId: dto.orgId, scopeProjectId: dto.projectId }; + } + throw new InternalServerError({ message: "Invalid scope provided for the project factory" }); + }; + + const isCustomRole: TMembershipUserScopeFactory["isCustomRole"] = (role) => isCustomProjectRole(role); + + const onCreateMembershipUserGuard: TMembershipUserScopeFactory["onCreateMembershipUserGuard"] = async ( + dto, + newUsers + ) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Create, ProjectPermissionSub.Member); + + // TODO(namespace): this becomes tricky in namespace due to group flow + const orgMemberships = await membershipUserDAL.find({ + scope: AccessScope.Organization, + scopeOrgId: dto.permission.orgId, + $in: { + actorUserId: newUsers.map((el) => el.id) + } + }); + if (orgMemberships.length !== newUsers.length) { + const missingUsers = newUsers + .filter((el) => !orgMemberships.find((memb) => memb.actorUserId === el.id)) + .map((el) => el.email); + throw new BadRequestError({ message: `Users ${missingUsers.join(",")} not part of organization` }); + } + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const permissionRoles = await permissionService.getProjectPermissionByRoles( + dto.data.roles.filter((el) => el.role !== ProjectMembershipRole.NoAccess).map((el) => el.role), + scope.value + ); + + for (const permissionRole of permissionRoles) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + ProjectPermissionMemberActions.GrantPrivileges, + ProjectPermissionSub.Member, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to create user project membership", + shouldUseNewPrivilegeSystem, + ProjectPermissionMemberActions.GrantPrivileges, + ProjectPermissionSub.Member + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + }; + + const onCreateMembershipComplete: TMembershipUserScopeFactory["onCreateMembershipComplete"] = async ( + dto, + newMembers + ) => { + const orgMembershipAccepted = await membershipUserDAL.find({ + scope: AccessScope.Organization, + scopeOrgId: dto.permission.orgId, + status: OrgMembershipStatus.Accepted, + $in: { + actorUserId: newMembers.map((el) => el.id) + } + }); + + if (!orgMembershipAccepted.length) return { signUpTokens: [] }; + + const appCfg = getConfig(); + const scope = getScopeField(dto.scopeData); + const project = await projectDAL.findById(scope.value); + + const orgMembershipAcceptedUserIds = orgMembershipAccepted.map((el) => el.actorUserId as string); + const emails = newMembers + .filter((el) => Boolean(el?.email) && orgMembershipAcceptedUserIds.includes(el.id)) + .map((el) => el?.email as string); + if (emails.length) { + await smtpService.sendMail({ + template: SmtpTemplates.WorkspaceInvite, + subjectLine: "Infisical project invitation", + recipients: emails, + substitutions: { + workspaceName: project.name, + callback_url: `${appCfg.SITE_URL}/login` + } + }); + } + return { signUpTokens: [] }; + }; + + const onUpdateMembershipUserGuard: TMembershipUserScopeFactory["onUpdateMembershipUserGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member); + + const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId); + const permissionRoles = await permissionService.getProjectPermissionByRoles( + dto.data.roles.filter((el) => el.role !== ProjectMembershipRole.NoAccess).map((el) => el.role), + scope.value + ); + + for (const permissionRole of permissionRoles) { + const permissionBoundary = validatePrivilegeChangeOperation( + shouldUseNewPrivilegeSystem, + ProjectPermissionMemberActions.GrantPrivileges, + ProjectPermissionSub.Member, + permission, + permissionRole.permission + ); + if (!permissionBoundary.isValid) + throw new PermissionBoundaryError({ + message: constructPermissionErrorMessage( + "Failed to update user project membership", + shouldUseNewPrivilegeSystem, + ProjectPermissionMemberActions.GrantPrivileges, + ProjectPermissionSub.Member + ), + details: { missingPermissions: permissionBoundary.missingPermissions } + }); + } + }; + + const onDeleteMembershipUserGuard: TMembershipUserScopeFactory["onDeleteMembershipUserGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Delete, ProjectPermissionSub.Member); + }; + + const onListMembershipUserGuard: TMembershipUserScopeFactory["onListMembershipUserGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Read, ProjectPermissionSub.Member); + }; + + const onGetMembershipUserByUserIdGuard: TMembershipUserScopeFactory["onGetMembershipUserByUserIdGuard"] = async ( + dto + ) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Read, ProjectPermissionSub.Member); + }; + + return { + onCreateMembershipUserGuard, + onCreateMembershipComplete, + onUpdateMembershipUserGuard, + onDeleteMembershipUserGuard, + onListMembershipUserGuard, + onGetMembershipUserByUserIdGuard, + getScopeField, + getScopeDatabaseFields, + isCustomRole + }; +}; diff --git a/backend/src/services/membership/membership-dal.ts b/backend/src/services/membership/membership-dal.ts new file mode 100644 index 0000000000..03ee6af924 --- /dev/null +++ b/backend/src/services/membership/membership-dal.ts @@ -0,0 +1,10 @@ +import { TDbClient } from "@app/db"; +import { TableName } from "@app/db/schemas"; +import { ormify } from "@app/lib/knex"; + +export type TMembershipDALFactory = ReturnType; + +export const membershipDALFactory = (db: TDbClient) => { + const orm = ormify(db, TableName.Membership); + return orm; +}; diff --git a/backend/src/services/membership/membership-role-dal.ts b/backend/src/services/membership/membership-role-dal.ts new file mode 100644 index 0000000000..bb70112215 --- /dev/null +++ b/backend/src/services/membership/membership-role-dal.ts @@ -0,0 +1,10 @@ +import { TDbClient } from "@app/db"; +import { TableName } from "@app/db/schemas"; +import { ormify } from "@app/lib/knex"; + +export type TMembershipRoleDALFactory = ReturnType; + +export const membershipRoleDALFactory = (db: TDbClient) => { + const orm = ormify(db, TableName.MembershipRole); + return orm; +}; diff --git a/backend/src/services/notification/notification-types.ts b/backend/src/services/notification/notification-types.ts index a3657c6800..84cf35a508 100644 --- a/backend/src/services/notification/notification-types.ts +++ b/backend/src/services/notification/notification-types.ts @@ -15,7 +15,9 @@ export enum NotificationType { DIRECT_PROJECT_ACCESS_ISSUED_TO_ADMIN = "direct-project-access-issued-to-admin", PROJECT_ACCESS_REQUEST = "project-access-request", PROJECT_INVITATION = "project-invitation", - SECRET_SYNC_FAILED = "secret-sync-failed" + SECRET_SYNC_FAILED = "secret-sync-failed", + GATEWAY_HEALTH_ALERT = "gateway-health-alert", + RELAY_HEALTH_ALERT = "relay-health-alert" } export interface TCreateUserNotificationDTO { diff --git a/backend/src/services/org-admin/org-admin-service.ts b/backend/src/services/org-admin/org-admin-service.ts index 995afadc14..4c080717d9 100644 --- a/backend/src/services/org-admin/org-admin-service.ts +++ b/backend/src/services/org-admin/org-admin-service.ts @@ -1,26 +1,25 @@ import { ForbiddenError } from "@casl/ability"; -import { ProjectMembershipRole, ProjectVersion } from "@app/db/schemas"; +import { AccessScope, ProjectMembershipRole, ProjectVersion } from "@app/db/schemas"; import { OrgPermissionAdminConsoleAction, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TNotificationServiceFactory } from "../notification/notification-service"; import { NotificationType } from "../notification/notification-types"; import { TProjectDALFactory } from "../project/project-dal"; import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; -import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; import { SmtpTemplates, TSmtpService } from "../smtp/smtp-service"; import { TAccessProjectDTO, TListOrgProjectsDTO } from "./org-admin-types"; type TOrgAdminServiceFactoryDep = { permissionService: Pick; projectDAL: Pick; - projectMembershipDAL: Pick< - TProjectMembershipDALFactory, - "findOne" | "create" | "transaction" | "delete" | "findAllProjectMembers" - >; - projectUserMembershipRoleDAL: Pick; + projectMembershipDAL: Pick; + membershipUserDAL: TMembershipUserDALFactory; + membershipRoleDAL: TMembershipRoleDALFactory; smtpService: Pick; notificationService: Pick; }; @@ -31,9 +30,10 @@ export const orgAdminServiceFactory = ({ permissionService, projectDAL, projectMembershipDAL, - projectUserMembershipRoleDAL, smtpService, - notificationService + notificationService, + membershipUserDAL, + membershipRoleDAL }: TOrgAdminServiceFactoryDep) => { const listOrgProjects = async ({ actor, @@ -98,17 +98,18 @@ export const orgAdminServiceFactory = ({ } // check already there exist a membership if there return it - const projectMembership = await projectMembershipDAL.findOne({ - projectId, - userId: actorId + const projectMembership = await membershipUserDAL.findOne({ + scopeProjectId: projectId, + scope: AccessScope.Project, + actorUserId: actorId }); if (projectMembership) { // reset and make the user admin - await projectMembershipDAL.transaction(async (tx) => { - await projectUserMembershipRoleDAL.delete({ projectMembershipId: projectMembership.id }, tx); - await projectUserMembershipRoleDAL.create( + await membershipUserDAL.transaction(async (tx) => { + await membershipRoleDAL.delete({ membershipId: projectMembership.id }, tx); + await membershipRoleDAL.create( { - projectMembershipId: projectMembership.id, + membershipId: projectMembership.id, role: ProjectMembershipRole.Admin }, tx @@ -117,18 +118,17 @@ export const orgAdminServiceFactory = ({ return { isExistingMember: true, membership: projectMembership }; } - const updatedMembership = await projectMembershipDAL.transaction(async (tx) => { - const newProjectMembership = await projectMembershipDAL.create( + const updatedMembership = await membershipUserDAL.transaction(async (tx) => { + const newProjectMembership = await membershipUserDAL.create( { - projectId, - userId: actorId + scopeProjectId: projectId, + actorUserId: actorId, + scope: AccessScope.Project, + scopeOrgId: actorOrgId }, tx ); - await projectUserMembershipRoleDAL.create( - { projectMembershipId: newProjectMembership.id, role: ProjectMembershipRole.Admin }, - tx - ); + await membershipRoleDAL.create({ membershipId: newProjectMembership.id, role: ProjectMembershipRole.Admin }, tx); return newProjectMembership; }); diff --git a/backend/src/services/org-membership/org-membership-dal.ts b/backend/src/services/org-membership/org-membership-dal.ts index 2d7992d346..c52c2834a8 100644 --- a/backend/src/services/org-membership/org-membership-dal.ts +++ b/backend/src/services/org-membership/org-membership-dal.ts @@ -1,19 +1,21 @@ import { TDbClient } from "@app/db"; -import { TableName, TUserEncryptionKeys } from "@app/db/schemas"; +import { AccessScope, TableName, TUserEncryptionKeys } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; -import { ormify, sqlNestRelationships } from "@app/lib/knex"; +import { sqlNestRelationships } from "@app/lib/knex"; export type TOrgMembershipDALFactory = ReturnType; export const orgMembershipDALFactory = (db: TDbClient) => { - const orgMembershipOrm = ormify(db, TableName.OrgMembership); - const findOrgMembershipById = async (membershipId: string) => { try { const member = await db - .replicaNode()(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.id`, membershipId) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.id`, membershipId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.Role}.id`, `${TableName.MembershipRole}.customRoleId`) .leftJoin( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, @@ -21,19 +23,20 @@ export const orgMembershipDALFactory = (db: TDbClient) => { ) .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { void queryBuilder - .on(`${TableName.OrgMembership}.userId`, `${TableName.IdentityMetadata}.userId`) - .andOn(`${TableName.OrgMembership}.orgId`, `${TableName.IdentityMetadata}.orgId`); + .on(`${TableName.Membership}.actorUserId`, `${TableName.IdentityMetadata}.userId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); }) .select( - db.ref("id").withSchema(TableName.OrgMembership), - db.ref("inviteEmail").withSchema(TableName.OrgMembership), - db.ref("orgId").withSchema(TableName.OrgMembership), - db.ref("role").withSchema(TableName.OrgMembership), - db.ref("roleId").withSchema(TableName.OrgMembership), - db.ref("status").withSchema(TableName.OrgMembership), - db.ref("isActive").withSchema(TableName.OrgMembership), - db.ref("lastLoginAuthMethod").withSchema(TableName.OrgMembership), - db.ref("lastLoginTime").withSchema(TableName.OrgMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("inviteEmail").withSchema(TableName.Membership), + db.ref("scopeOrgId").withSchema(TableName.Membership).as("orgId"), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("customRoleId").withSchema(TableName.MembershipRole).as("roleId"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("status").withSchema(TableName.Membership), + db.ref("isActive").withSchema(TableName.Membership), + db.ref("lastLoginAuthMethod").withSchema(TableName.Membership), + db.ref("lastLoginTime").withSchema(TableName.Membership), db.ref("email").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), db.ref("firstName").withSchema(TableName.Users), @@ -55,6 +58,7 @@ export const orgMembershipDALFactory = (db: TDbClient) => { parentMapper: ({ email, isEmailVerified, + customRoleSlug, username, firstName, lastName, @@ -74,6 +78,7 @@ export const orgMembershipDALFactory = (db: TDbClient) => { orgId, id, role, + customRoleSlug, status, isActive, inviteEmail, @@ -117,18 +122,20 @@ export const orgMembershipDALFactory = (db: TDbClient) => { const twelveMonthsAgo = new Date(now.getTime() - 360 * 24 * 60 * 60 * 1000); const memberships = await db - .replicaNode()(TableName.OrgMembership) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) .where("status", "invited") .where((qb) => { // lastInvitedAt is null AND createdAt is between 1 week and 12 months ago void qb - .whereNull(`${TableName.OrgMembership}.lastInvitedAt`) - .whereBetween(`${TableName.OrgMembership}.createdAt`, [twelveMonthsAgo, oneWeekAgo]); + .whereNull(`${TableName.Membership}.lastInvitedAt`) + .whereBetween(`${TableName.Membership}.createdAt`, [twelveMonthsAgo, oneWeekAgo]); // lastInvitedAt is older than 1 week ago AND createdAt is younger than 1 month ago void qb.orWhere((qbInner) => { void qbInner - .where(`${TableName.OrgMembership}.lastInvitedAt`, "<", oneWeekAgo) - .where(`${TableName.OrgMembership}.createdAt`, ">", oneMonthAgo); + .where(`${TableName.Membership}.lastInvitedAt`, "<", oneWeekAgo) + .where(`${TableName.Membership}.createdAt`, ">", oneMonthAgo); }); }); @@ -144,7 +151,11 @@ export const orgMembershipDALFactory = (db: TDbClient) => { const updateLastInvitedAtByIds = async (membershipIds: string[]) => { try { if (membershipIds.length === 0) return; - await db(TableName.OrgMembership).whereIn("id", membershipIds).update({ lastInvitedAt: new Date() }); + await db(TableName.Membership) + .whereIn("id", membershipIds) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .update({ lastInvitedAt: new Date() }); } catch (error) { throw new DatabaseError({ error, @@ -156,9 +167,12 @@ export const orgMembershipDALFactory = (db: TDbClient) => { const findOrgMembershipsWithUsersByOrgId = async (orgId: string) => { try { const members = await db - .replicaNode()(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.orgId`, orgId) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) .leftJoin( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, @@ -166,17 +180,17 @@ export const orgMembershipDALFactory = (db: TDbClient) => { ) .leftJoin(TableName.IdentityMetadata, (queryBuilder) => { void queryBuilder - .on(`${TableName.OrgMembership}.userId`, `${TableName.IdentityMetadata}.userId`) - .andOn(`${TableName.OrgMembership}.orgId`, `${TableName.IdentityMetadata}.orgId`); + .on(`${TableName.Membership}.actorUserId`, `${TableName.IdentityMetadata}.userId`) + .andOn(`${TableName.Membership}.scopeOrgId`, `${TableName.IdentityMetadata}.orgId`); }) .select( - db.ref("id").withSchema(TableName.OrgMembership), - db.ref("inviteEmail").withSchema(TableName.OrgMembership), - db.ref("orgId").withSchema(TableName.OrgMembership), - db.ref("role").withSchema(TableName.OrgMembership), - db.ref("roleId").withSchema(TableName.OrgMembership), - db.ref("status").withSchema(TableName.OrgMembership), - db.ref("isActive").withSchema(TableName.OrgMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("inviteEmail").withSchema(TableName.Membership), + db.ref("scopeOrgId").withSchema(TableName.Membership).as("orgId"), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("customRoleId").withSchema(TableName.MembershipRole).as("customRoleId"), + db.ref("status").withSchema(TableName.Membership), + db.ref("isActive").withSchema(TableName.Membership), db.ref("email").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), db.ref("firstName").withSchema(TableName.Users), @@ -207,7 +221,6 @@ export const orgMembershipDALFactory = (db: TDbClient) => { }; return { - ...orgMembershipOrm, findOrgMembershipById, findRecentInvitedMemberships, updateLastInvitedAtByIds, diff --git a/backend/src/services/org/org-dal.ts b/backend/src/services/org/org-dal.ts index 925784bfff..288926f90c 100644 --- a/backend/src/services/org/org-dal.ts +++ b/backend/src/services/org/org-dal.ts @@ -2,14 +2,15 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; import { + AccessScope, OrganizationsSchema, OrgMembershipRole, TableName, + TMemberships, + TMembershipsInsert, + TMembershipsUpdate, TOrganizations, TOrganizationsInsert, - TOrgMemberships, - TOrgMembershipsInsert, - TOrgMembershipsUpdate, TUserEncryptionKeys } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; @@ -43,8 +44,6 @@ export const orgDALFactory = (db: TDbClient) => { sortBy?: keyof TOrganizations; }) => { try { - const query = db.replicaNode()(TableName.Organization); - // Build the subquery for limited organization IDs const orgSubquery = db.replicaNode().select("id").from(TableName.Organization); @@ -54,37 +53,48 @@ export const orgDALFactory = (db: TDbClient) => { }); } + const countQuery = orgSubquery.clone(); + if (sortBy) { void orgSubquery.orderBy(sortBy); } - void orgSubquery.limit(limit).offset(offset); - // Main query with joins, limited to the subquery results - const docs = await query - .whereIn(`${TableName.Organization}.id`, orgSubquery) - .leftJoin(TableName.Project, `${TableName.Organization}.id`, `${TableName.Project}.orgId`) - .leftJoin(TableName.OrgMembership, `${TableName.Organization}.id`, `${TableName.OrgMembership}.orgId`) - .leftJoin(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) - .leftJoin(TableName.OrgRoles, `${TableName.OrgMembership}.roleId`, `${TableName.OrgRoles}.id`) - .where((qb) => { - void qb.where(`${TableName.Users}.isGhost`, false).orWhereNull(`${TableName.Users}.id`); - }) - .select(selectAllTableCols(TableName.Organization)) - .select(db.ref("name").withSchema(TableName.Project).as("projectName")) - .select(db.ref("id").withSchema(TableName.Project).as("projectId")) - .select(db.ref("slug").withSchema(TableName.Project).as("projectSlug")) - .select(db.ref("createdAt").withSchema(TableName.Project).as("projectCreatedAt")) - .select(db.ref("email").withSchema(TableName.Users).as("userEmail")) - .select(db.ref("username").withSchema(TableName.Users).as("username")) - .select(db.ref("firstName").withSchema(TableName.Users).as("firstName")) - .select(db.ref("lastName").withSchema(TableName.Users).as("lastName")) - .select(db.ref("id").withSchema(TableName.Users).as("userId")) - .select(db.ref("id").withSchema(TableName.OrgMembership).as("orgMembershipId")) - .select(db.ref("role").withSchema(TableName.OrgMembership).as("orgMembershipRole")) - .select(db.ref("roleId").withSchema(TableName.OrgMembership).as("orgMembershipRoleId")) - .select(db.ref("status").withSchema(TableName.OrgMembership).as("orgMembershipStatus")) - .select(db.ref("name").withSchema(TableName.OrgRoles).as("orgMembershipRoleName")); + const buildBaseQuery = (orgIdSubquery: Knex.QueryBuilder) => { + return db + .replicaNode()(TableName.Organization) + .whereIn(`${TableName.Organization}.id`, orgIdSubquery) + .leftJoin(TableName.Project, `${TableName.Organization}.id`, `${TableName.Project}.orgId`) + .leftJoin(TableName.Membership, `${TableName.Organization}.id`, `${TableName.Membership}.scopeOrgId`) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .leftJoin(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .leftJoin(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) + .where((qb) => { + void qb.where(`${TableName.Users}.isGhost`, false).orWhereNull(`${TableName.Users}.id`); + }); + }; + + const [docs, totalResult] = await Promise.all([ + buildBaseQuery(orgSubquery) + .select(selectAllTableCols(TableName.Organization)) + .select(db.ref("name").withSchema(TableName.Project).as("projectName")) + .select(db.ref("id").withSchema(TableName.Project).as("projectId")) + .select(db.ref("slug").withSchema(TableName.Project).as("projectSlug")) + .select(db.ref("createdAt").withSchema(TableName.Project).as("projectCreatedAt")) + .select(db.ref("email").withSchema(TableName.Users).as("userEmail")) + .select(db.ref("username").withSchema(TableName.Users).as("username")) + .select(db.ref("firstName").withSchema(TableName.Users).as("firstName")) + .select(db.ref("lastName").withSchema(TableName.Users).as("lastName")) + .select(db.ref("id").withSchema(TableName.Users).as("userId")) + .select(db.ref("id").withSchema(TableName.Membership).as("orgMembershipId")) + .select(db.ref("status").withSchema(TableName.Membership).as("orgMembershipStatus")) + .select(db.ref("role").withSchema(TableName.MembershipRole).as("orgMembershipRole")) + .select(db.ref("customRoleId").withSchema(TableName.MembershipRole).as("orgMembershipRoleId")) + .select(db.ref("name").withSchema(TableName.Role).as("orgMembershipRoleName")), + buildBaseQuery(countQuery).countDistinct(`${TableName.Organization}.id`, { as: "count" }).first() + ]); const formattedDocs = sqlNestRelationships({ data: docs, @@ -132,7 +142,12 @@ export const orgDALFactory = (db: TDbClient) => { ] }); - return formattedDocs; + const total = Number(totalResult?.count || 0); + + return { + organizations: formattedDocs, + total + }; } catch (error) { throw new DatabaseError({ error, name: "Find organizations by filter" }); } @@ -218,9 +233,12 @@ export const orgDALFactory = (db: TDbClient) => { ): Promise<(TOrganizations & { orgAuthMethod: string; userRole: string; userStatus: string })[]> => { try { const org = (await db - .replicaNode()(TableName.OrgMembership) - .where({ userId }) - .join(TableName.Organization, `${TableName.OrgMembership}.orgId`, `${TableName.Organization}.id`) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.actorUserId`, userId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .join(TableName.Organization, `${TableName.Membership}.scopeOrgId`, `${TableName.Organization}.id`) .leftJoin(TableName.SamlConfig, (qb) => { qb.on(`${TableName.SamlConfig}.orgId`, "=", `${TableName.Organization}.id`).andOn( `${TableName.SamlConfig}.isActive`, @@ -236,8 +254,8 @@ export const orgDALFactory = (db: TDbClient) => { ); }) .select(selectAllTableCols(TableName.Organization)) - .select(db.ref("role").withSchema(TableName.OrgMembership).as("userRole")) - .select(db.ref("status").withSchema(TableName.OrgMembership).as("userStatus")) + .select(db.ref("role").withSchema(TableName.MembershipRole).as("userRole")) + .select(db.ref("status").withSchema(TableName.Membership).as("userStatus")) .select( db.raw(` CASE @@ -272,24 +290,28 @@ export const orgDALFactory = (db: TDbClient) => { const findAllOrgMembers = async (orgId: string) => { try { const members = await db - .replicaNode()(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.orgId`, orgId) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .leftJoin( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id` ) .select( - db.ref("id").withSchema(TableName.OrgMembership), - db.ref("inviteEmail").withSchema(TableName.OrgMembership), - db.ref("orgId").withSchema(TableName.OrgMembership), - db.ref("role").withSchema(TableName.OrgMembership), - db.ref("roleId").withSchema(TableName.OrgMembership), - db.ref("status").withSchema(TableName.OrgMembership), - db.ref("isActive").withSchema(TableName.OrgMembership), - db.ref("lastLoginAuthMethod").withSchema(TableName.OrgMembership), - db.ref("lastLoginTime").withSchema(TableName.OrgMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("inviteEmail").withSchema(TableName.Membership), + db.ref("scopeOrgId").withSchema(TableName.Membership).as("orgId"), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("customRoleId").withSchema(TableName.MembershipRole).as("roleId"), + db.ref("status").withSchema(TableName.Membership), + db.ref("isActive").withSchema(TableName.Membership), + db.ref("lastLoginAuthMethod").withSchema(TableName.Membership), + db.ref("lastLoginTime").withSchema(TableName.Membership), db.ref("email").withSchema(TableName.Users), db.ref("isEmailVerified").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), @@ -321,11 +343,13 @@ export const orgDALFactory = (db: TDbClient) => { } const count = await db - .replicaNode()(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.orgId`, orgId) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) .count("*") - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) - .where({ isGhost: false, [`${TableName.OrgMembership}.isActive` as "isActive"]: true }) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .where({ isGhost: false, [`${TableName.Membership}.isActive` as "isActive"]: true }) .first(); return parseInt((count as unknown as CountResult).count || "0", 10); @@ -337,21 +361,25 @@ export const orgDALFactory = (db: TDbClient) => { const findOrgMembersByUsername = async (orgId: string, usernames: string[], tx?: Knex) => { try { const conn = tx || db.replicaNode(); - const members = await conn(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.orgId`, orgId) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + const members = await conn(TableName.Membership) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .leftJoin( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id` ) .select( - conn.ref("id").withSchema(TableName.OrgMembership), - conn.ref("inviteEmail").withSchema(TableName.OrgMembership), - conn.ref("orgId").withSchema(TableName.OrgMembership), - conn.ref("role").withSchema(TableName.OrgMembership), - conn.ref("roleId").withSchema(TableName.OrgMembership), - conn.ref("status").withSchema(TableName.OrgMembership), + conn.ref("id").withSchema(TableName.Membership), + conn.ref("inviteEmail").withSchema(TableName.Membership), + conn.ref("scopeOrgId").withSchema(TableName.Membership).as("orgId"), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("customRoleId").withSchema(TableName.MembershipRole).as("roleId"), + conn.ref("status").withSchema(TableName.Membership), conn.ref("username").withSchema(TableName.Users), conn.ref("email").withSchema(TableName.Users), conn.ref("firstName").withSchema(TableName.Users), @@ -373,22 +401,25 @@ export const orgDALFactory = (db: TDbClient) => { const findOrgMembersByRole = async (orgId: string, role: OrgMembershipRole, tx?: Knex) => { try { const conn = tx || db.replicaNode(); - const members = await conn(TableName.OrgMembership) - .where(`${TableName.OrgMembership}.orgId`, orgId) - .where(`${TableName.OrgMembership}.role`, role) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) + const members = await conn(TableName.Membership) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .where(`${TableName.MembershipRole}.role`, role) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .leftJoin( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id` ) .select( - conn.ref("id").withSchema(TableName.OrgMembership), - conn.ref("inviteEmail").withSchema(TableName.OrgMembership), - conn.ref("orgId").withSchema(TableName.OrgMembership), - conn.ref("role").withSchema(TableName.OrgMembership), - conn.ref("roleId").withSchema(TableName.OrgMembership), - conn.ref("status").withSchema(TableName.OrgMembership), + conn.ref("id").withSchema(TableName.Membership), + conn.ref("inviteEmail").withSchema(TableName.Membership), + conn.ref("scopeOrgId").withSchema(TableName.Membership).as("orgId"), + conn.ref("role").withSchema(TableName.MembershipRole), + conn.ref("customRoleId").withSchema(TableName.MembershipRole).as("roleId"), + conn.ref("status").withSchema(TableName.Membership), conn.ref("username").withSchema(TableName.Users), conn.ref("email").withSchema(TableName.Users), conn.ref("firstName").withSchema(TableName.Users), @@ -407,47 +438,6 @@ export const orgDALFactory = (db: TDbClient) => { } }; - const findOrgGhostUser = async (orgId: string) => { - try { - const member = await db - .replicaNode()(TableName.OrgMembership) - .where({ orgId }) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) - .leftJoin(TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id`) - .select( - db.ref("id").withSchema(TableName.OrgMembership), - db.ref("orgId").withSchema(TableName.OrgMembership), - db.ref("role").withSchema(TableName.OrgMembership), - db.ref("roleId").withSchema(TableName.OrgMembership), - db.ref("status").withSchema(TableName.OrgMembership), - db.ref("email").withSchema(TableName.Users), - db.ref("id").withSchema(TableName.Users).as("userId"), - db.ref("publicKey").withSchema(TableName.UserEncryptionKey) - ) - .where({ isGhost: true }) - .first(); - return member; - } catch (error) { - return null; - } - }; - - const ghostUserExists = async (orgId: string) => { - try { - const member = await db - .replicaNode()(TableName.OrgMembership) - .where({ orgId }) - .join(TableName.Users, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) - .leftJoin(TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id`) - .select(db.ref("id").withSchema(TableName.Users).as("userId")) - .where({ isGhost: true }) - .first(); - return Boolean(member); - } catch (error) { - return false; - } - }; - const create = async (dto: TOrganizationsInsert, tx?: Knex) => { try { const [organization] = await (tx || db)(TableName.Organization).insert(dto).returning("*"); @@ -480,38 +470,37 @@ export const orgDALFactory = (db: TDbClient) => { // MEMBERSHIP OPERATIONS // -------------------- - // const orgMembershipOrm = ormify(db, TableName.OrgMembership); - const createMembership = async (data: TOrgMembershipsInsert, tx?: Knex) => { + const createMembership = async (data: TMembershipsInsert, tx?: Knex) => { try { - const [membership] = await (tx || db)(TableName.OrgMembership).insert(data).returning("*"); + const [membership] = await (tx || db)(TableName.Membership).insert(data).returning("*"); return membership; } catch (error) { throw new DatabaseError({ error, name: "Create org membership" }); } }; - const bulkCreateMemberships = async (data: TOrgMembershipsInsert[], tx?: Knex) => { + const bulkCreateMemberships = async (data: TMembershipsInsert[], tx?: Knex) => { try { - const memberships = await (tx || db)(TableName.OrgMembership).insert(data).returning("*"); + const memberships = await (tx || db)(TableName.Membership).insert(data).returning("*"); return memberships; } catch (error) { throw new DatabaseError({ error, name: "Create org memberships" }); } }; - const updateMembershipById = async (id: string, data: TOrgMembershipsUpdate, tx?: Knex) => { + const updateMembershipById = async (id: string, data: TMembershipsUpdate, tx?: Knex) => { try { - const [membership] = await (tx || db)(TableName.OrgMembership).where({ id }).update(data).returning("*"); + const [membership] = await (tx || db)(TableName.Membership).where({ id }).update(data).returning("*"); return membership; } catch (error) { throw new DatabaseError({ error, name: "Update org membership" }); } }; - const updateMembership = async (filter: Partial, data: TOrgMembershipsUpdate, tx?: Knex) => { + const updateMembership = async (filter: Partial, data: TMembershipsUpdate, tx?: Knex) => { try { - const membership = await (tx || db)(TableName.OrgMembership).where(filter).update(data).returning("*"); + const membership = await (tx || db)(TableName.Membership).where(filter).update(data).returning("*"); return membership; } catch (error) { throw new DatabaseError({ error, name: "Update org memberships" }); @@ -520,7 +509,10 @@ export const orgDALFactory = (db: TDbClient) => { const deleteMembershipById = async (id: string, orgId: string, tx?: Knex) => { try { - const [membership] = await (tx || db)(TableName.OrgMembership).where({ id, orgId }).delete().returning("*"); + const [membership] = await (tx || db)(TableName.Membership) + .where({ id, scopeOrgId: orgId, scope: AccessScope.Organization }) + .delete() + .returning("*"); return membership; } catch (error) { throw new DatabaseError({ error, name: "Delete org membership" }); @@ -529,9 +521,10 @@ export const orgDALFactory = (db: TDbClient) => { const deleteMembershipsById = async (ids: string[], orgId: string, tx?: Knex) => { try { - const memberships = await (tx || db)(TableName.OrgMembership) + const memberships = await (tx || db)(TableName.Membership) .where({ - orgId + scopeOrgId: orgId, + scope: AccessScope.Organization }) .whereIn("id", ids) .delete() @@ -543,22 +536,23 @@ export const orgDALFactory = (db: TDbClient) => { }; const findMembership = async ( - filter: TFindFilter, - { offset, limit, sort, tx }: TFindOpt = {} + filter: TFindFilter, + { offset, limit, sort, tx }: TFindOpt = {} ) => { try { - const query = (tx || db.replicaNode())(TableName.OrgMembership) + const query = (tx || db.replicaNode())(TableName.Membership) // eslint-disable-next-line .where(buildFindFilter(filter)) - .join(TableName.Users, `${TableName.Users}.id`, `${TableName.OrgMembership}.userId`) - .join(TableName.Organization, `${TableName.Organization}.id`, `${TableName.OrgMembership}.orgId`) + .where("scope", AccessScope.Organization) + .join(TableName.Users, `${TableName.Users}.id`, `${TableName.Membership}.actorUserId`) + .join(TableName.Organization, `${TableName.Organization}.id`, `${TableName.Membership}.scopeOrgId`) .leftJoin(TableName.UserAliases, function joinUserAlias() { - this.on(`${TableName.UserAliases}.userId`, "=", `${TableName.OrgMembership}.userId`) - .andOn(`${TableName.UserAliases}.orgId`, "=", `${TableName.OrgMembership}.orgId`) + this.on(`${TableName.UserAliases}.userId`, "=", `${TableName.Membership}.actorUserId`) + .andOn(`${TableName.UserAliases}.orgId`, "=", `${TableName.Membership}.scopeOrgId`) .andOn(`${TableName.UserAliases}.aliasType`, "=", (tx || db).raw("?", ["saml"])); }) .select( - selectAllTableCols(TableName.OrgMembership), + selectAllTableCols(TableName.Membership), db.ref("email").withSchema(TableName.Users), db.ref("isEmailVerified").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), @@ -584,18 +578,20 @@ export const orgDALFactory = (db: TDbClient) => { const findMembershipWithScimFilter = async ( orgId: string, scimFilter: string | undefined, - { offset, limit, sort, tx }: TFindOpt = {} + { offset, limit, sort, tx }: TFindOpt = {} ) => { try { - const query = (tx || db.replicaNode())(TableName.OrgMembership) + const query = (tx || db.replicaNode())(TableName.Membership) // eslint-disable-next-line - .where(`${TableName.OrgMembership}.orgId`, orgId) + .where(`${TableName.Membership}.scopeOrgId`, orgId) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) .where((qb) => { if (scimFilter) { void generateKnexQueryFromScim(qb, scimFilter, (attrPath) => { switch (attrPath) { case "active": - return `${TableName.OrgMembership}.isActive`; + return `${TableName.Membership}.isActive`; case "userName": return `${TableName.UserAliases}.externalId`; case "name.givenName": @@ -610,15 +606,15 @@ export const orgDALFactory = (db: TDbClient) => { }); } }) - .join(TableName.Users, `${TableName.Users}.id`, `${TableName.OrgMembership}.userId`) - .join(TableName.Organization, `${TableName.Organization}.id`, `${TableName.OrgMembership}.orgId`) + .join(TableName.Users, `${TableName.Users}.id`, `${TableName.Membership}.actorUserId`) + .join(TableName.Organization, `${TableName.Organization}.id`, `${TableName.Membership}.scopeOrgId`) .leftJoin(TableName.UserAliases, function joinUserAlias() { - this.on(`${TableName.UserAliases}.userId`, "=", `${TableName.OrgMembership}.userId`) - .andOn(`${TableName.UserAliases}.orgId`, "=", `${TableName.OrgMembership}.orgId`) + this.on(`${TableName.UserAliases}.userId`, "=", `${TableName.Membership}.actorUserId`) + .andOn(`${TableName.UserAliases}.orgId`, "=", `${TableName.Membership}.scopeOrgId`) .andOn(`${TableName.UserAliases}.aliasType`, "=", (tx || db).raw("?", ["saml"])); }) .select( - selectAllTableCols(TableName.OrgMembership), + selectAllTableCols(TableName.Membership), db.ref("email").withSchema(TableName.Users), db.ref("isEmailVerified").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), @@ -647,13 +643,16 @@ export const orgDALFactory = (db: TDbClient) => { ): Promise<{ id: string; name: string; slug: string; role: string }> => { try { const org = await db - .replicaNode()(TableName.IdentityOrgMembership) - .where({ identityId }) - .join(TableName.Organization, `${TableName.IdentityOrgMembership}.orgId`, `${TableName.Organization}.id`) + .replicaNode()(TableName.Membership) + .where({ actorIdentityId: identityId }) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorIdentityId`) + .join(TableName.MembershipRole, `${TableName.Membership}.id`, `${TableName.MembershipRole}.membershipId`) + .join(TableName.Organization, `${TableName.Membership}.scopeOrgId`, `${TableName.Organization}.id`) .select(db.ref("id").withSchema(TableName.Organization).as("id")) .select(db.ref("name").withSchema(TableName.Organization).as("name")) .select(db.ref("slug").withSchema(TableName.Organization).as("slug")) - .select(db.ref("role").withSchema(TableName.IdentityOrgMembership).as("role")); + .select(db.ref("role").withSchema(TableName.MembershipRole).as("role")); return org?.[0]; } catch (error) { @@ -670,10 +669,8 @@ export const orgDALFactory = (db: TDbClient) => { findOrgBySlug, findAllOrgsByUserId, findOrganizationsByFilter, - ghostUserExists, findOrgMembersByUsername, findOrgMembersByRole, - findOrgGhostUser, create, updateById, deleteById, diff --git a/backend/src/services/org/org-fns.ts b/backend/src/services/org/org-fns.ts index 30e67cca4c..78d52e8168 100644 --- a/backend/src/services/org/org-fns.ts +++ b/backend/src/services/org/org-fns.ts @@ -1,129 +1,66 @@ +import { AccessScope } from "@app/db/schemas"; +import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; -import { TProjectUserAdditionalPrivilegeDALFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal"; import { BadRequestError } from "@app/lib/errors"; import { TOrgDALFactory } from "@app/services/org/org-dal"; import { TProjectKeyDALFactory } from "@app/services/project-key/project-key-dal"; -import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { TUserAliasDALFactory } from "@app/services/user-alias/user-alias-dal"; -type TDeleteOrgMembership = { - orgMembershipId: string; - orgId: string; - orgDAL: Pick; - projectMembershipDAL: Pick; - projectKeyDAL: Pick; - userAliasDAL: Pick; - licenseService: Pick; - projectUserAdditionalPrivilegeDAL: Pick; - userId?: string; -}; +import { TAdditionalPrivilegeDALFactory } from "../additional-privilege/additional-privilege-dal"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; type TDeleteOrgMemberships = { orgMembershipIds: string[]; orgId: string; - orgDAL: Pick; - projectMembershipDAL: Pick; + orgDAL: Pick; + userGroupMembershipDAL: Pick; + membershipUserDAL: Pick; + membershipRoleDAL: Pick; projectKeyDAL: Pick; userAliasDAL: Pick; licenseService: Pick; - projectUserAdditionalPrivilegeDAL: Pick; userId?: string; -}; - -export const deleteOrgMembershipFn = async ({ - orgMembershipId, - orgId, - orgDAL, - projectMembershipDAL, - projectUserAdditionalPrivilegeDAL, - projectKeyDAL, - userAliasDAL, - licenseService, - userId -}: TDeleteOrgMembership) => { - const deletedMembership = await orgDAL.transaction(async (tx) => { - const orgMembership = await orgDAL.deleteMembershipById(orgMembershipId, orgId, tx); - - if (userId && orgMembership.userId === userId) { - // scott: this is temporary, we will add a leave org endpoint with proper handling to ensure org isn't abandoned/broken - throw new BadRequestError({ message: "You cannot remove yourself from an organization" }); - } - - if (!orgMembership.userId) { - await licenseService.updateSubscriptionOrgMemberCount(orgId); - return orgMembership; - } - - await userAliasDAL.delete( - { - userId: orgMembership.userId, - orgId - }, - tx - ); - - await projectUserAdditionalPrivilegeDAL.delete( - { - userId: orgMembership.userId - }, - tx - ); - - // Get all the project memberships of the user in the organization - const projectMemberships = await projectMembershipDAL.findProjectMembershipsByUserId(orgId, orgMembership.userId); - - // Delete all the project memberships of the user in the organization - await projectMembershipDAL.delete( - { - $in: { - id: projectMemberships.map((membership) => membership.id) - } - }, - tx - ); - - // Get all the project keys of the user in the organization - const projectKeys = await projectKeyDAL.find({ - $in: { - projectId: projectMemberships.map((membership) => membership.projectId) - }, - receiverId: orgMembership.userId - }); - - // Delete all the project keys of the user in the organization - await projectKeyDAL.delete( - { - $in: { - id: projectKeys.map((key) => key.id) - } - }, - tx - ); - - await licenseService.updateSubscriptionOrgMemberCount(orgId); - return orgMembership; - }); - - return deletedMembership; + additionalPrivilegeDAL: Pick; }; export const deleteOrgMembershipsFn = async ({ orgMembershipIds, orgId, orgDAL, - projectMembershipDAL, - projectUserAdditionalPrivilegeDAL, projectKeyDAL, userAliasDAL, licenseService, - userId + userId, + membershipUserDAL, + userGroupMembershipDAL, + membershipRoleDAL, + additionalPrivilegeDAL }: TDeleteOrgMemberships) => { const deletedMemberships = await orgDAL.transaction(async (tx) => { - const orgMemberships = await orgDAL.deleteMembershipsById(orgMembershipIds, orgId, tx); + await membershipRoleDAL.delete( + { + $in: { + membershipId: orgMembershipIds + } + }, + tx + ); + + const orgMemberships = await membershipUserDAL.delete( + { + scopeOrgId: orgId, + scope: AccessScope.Organization, + $in: { + id: orgMembershipIds + } + }, + tx + ); const membershipUserIds = orgMemberships - .filter((member) => Boolean(member.userId)) - .map((member) => member.userId) as string[]; + .filter((member) => Boolean(member.actorUserId)) + .map((member) => member.actorUserId) as string[]; if (userId && membershipUserIds.includes(userId)) { // scott: this is temporary, we will add a leave org endpoint with proper handling to ensure org isn't abandoned/broken @@ -145,41 +82,55 @@ export const deleteOrgMembershipsFn = async ({ tx ); - await projectUserAdditionalPrivilegeDAL.delete( - { - $in: { - userId: membershipUserIds - } - }, - tx - ); - // Get all the project memberships of the users in the organization - const projectMemberships = await projectMembershipDAL.findProjectMembershipsByUserIds(orgId, membershipUserIds); // Delete all the project memberships of the users in the organization - await projectMembershipDAL.delete( + const otherMemberships = await membershipUserDAL.delete( { + scopeOrgId: orgId, $in: { - id: projectMemberships.map((membership) => membership.id) + actorUserId: membershipUserIds } }, tx ); - // Get all the project keys of the user in the organization - const projectKeys = await projectKeyDAL.find({ - $in: { - projectId: projectMemberships.map((membership) => membership.projectId), - receiverId: membershipUserIds - } + const orgGroups = await membershipUserDAL.find({ + scopeOrgId: orgId, + $notNull: ["actorGroupId"] }); + const groupIds = orgGroups.filter((el) => el.actorGroupId).map((el) => el.actorGroupId as string); + + await userGroupMembershipDAL.delete( + { + $in: { + userId: membershipUserIds, + groupId: groupIds + } + }, + tx + ); + const projectIds = otherMemberships + .filter((el) => el.scope === AccessScope.Project && el.scopeProjectId) + .map((el) => el.scopeProjectId as string); + + await additionalPrivilegeDAL.delete( + { + $in: { + projectId: projectIds, + actorUserId: membershipUserIds + } + }, + tx + ); + // Delete all the project keys of the user in the organization await projectKeyDAL.delete( { $in: { - id: projectKeys.map((key) => key.id) + projectId: projectIds, + receiverId: membershipUserIds } }, tx diff --git a/backend/src/services/org/org-role-dal.ts b/backend/src/services/org/org-role-dal.ts deleted file mode 100644 index 2bc57001ab..0000000000 --- a/backend/src/services/org/org-role-dal.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; - -export type TOrgRoleDALFactory = ReturnType; - -export const orgRoleDALFactory = (db: TDbClient) => ormify(db, TableName.OrgRoles); diff --git a/backend/src/services/org/org-role-fns.ts b/backend/src/services/org/org-role-fns.ts index 5bff1e324a..96e01b4052 100644 --- a/backend/src/services/org/org-role-fns.ts +++ b/backend/src/services/org/org-role-fns.ts @@ -1,7 +1,8 @@ import { OrgMembershipRole } from "@app/db/schemas"; import { TFeatureSet } from "@app/ee/services/license/license-types"; import { BadRequestError, NotFoundError } from "@app/lib/errors"; -import { TOrgRoleDALFactory } from "@app/services/org/org-role-dal"; + +import { TRoleDALFactory } from "../role/role-dal"; const RESERVED_ORG_ROLE_SLUGS = Object.values(OrgMembershipRole).filter((role) => role !== "custom"); @@ -10,13 +11,13 @@ export const isCustomOrgRole = (roleSlug: string) => !RESERVED_ORG_ROLE_SLUGS.fi // this is only for updating an org export const getDefaultOrgMembershipRoleForUpdateOrg = async ({ membershipRoleSlug, - orgRoleDAL, + roleDAL, plan, orgId }: { orgId: string; membershipRoleSlug: string; - orgRoleDAL: TOrgRoleDALFactory; + roleDAL: TRoleDALFactory; plan: TFeatureSet; }) => { if (isCustomOrgRole(membershipRoleSlug)) { @@ -26,7 +27,7 @@ export const getDefaultOrgMembershipRoleForUpdateOrg = async ({ "Failed to set custom default role due to plan RBAC restriction. Upgrade plan to set custom default org membership role." }); - const customRole = await orgRoleDAL.findOne({ slug: membershipRoleSlug, orgId }); + const customRole = await roleDAL.findOne({ slug: membershipRoleSlug, orgId }); if (!customRole) { throw new NotFoundError({ name: "UpdateOrg", diff --git a/backend/src/services/org/org-role-service.ts b/backend/src/services/org/org-role-service.ts deleted file mode 100644 index 6ce2b22cd0..0000000000 --- a/backend/src/services/org/org-role-service.ts +++ /dev/null @@ -1,237 +0,0 @@ -import { ForbiddenError } from "@casl/ability"; -import { packRules } from "@casl/ability/extra"; - -import { TOrgRolesInsert, TOrgRolesUpdate } from "@app/db/schemas"; -import { - orgAdminPermissions, - orgMemberPermissions, - orgNoAccessPermissions, - OrgPermissionActions, - OrgPermissionSubjects -} from "@app/ee/services/permission/org-permission"; -import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; -import { BadRequestError, NotFoundError } from "@app/lib/errors"; -import { TExternalGroupOrgRoleMappingDALFactory } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-dal"; -import { TOrgDALFactory } from "@app/services/org/org-dal"; - -import { ActorAuthMethod } from "../auth/auth-type"; -import { TOrgRoleDALFactory } from "./org-role-dal"; - -type TOrgRoleServiceFactoryDep = { - orgRoleDAL: TOrgRoleDALFactory; - permissionService: TPermissionServiceFactory; - orgDAL: TOrgDALFactory; - externalGroupOrgRoleMappingDAL: TExternalGroupOrgRoleMappingDALFactory; -}; - -export type TOrgRoleServiceFactory = ReturnType; - -export const orgRoleServiceFactory = ({ - orgRoleDAL, - orgDAL, - permissionService, - externalGroupOrgRoleMappingDAL -}: TOrgRoleServiceFactoryDep) => { - const createRole = async ( - userId: string, - orgId: string, - data: Omit, - actorAuthMethod: ActorAuthMethod, - actorOrgId: string | undefined - ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); - ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.Role); - const existingRole = await orgRoleDAL.findOne({ slug: data.slug, orgId }); - if (existingRole) throw new BadRequestError({ name: "Create Role", message: "Duplicate role" }); - const role = await orgRoleDAL.create({ - ...data, - orgId, - permissions: JSON.stringify(data.permissions) - }); - return role; - }; - - const getRole = async ( - userId: string, - orgId: string, - roleId: string, - actorAuthMethod: ActorAuthMethod, - actorOrgId: string | undefined - ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); - ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Role); - - switch (roleId) { - case "b11b49a9-09a9-4443-916a-4246f9ff2c69": { - return { - id: roleId, - orgId, - name: "Admin", - slug: "admin", - description: "Complete administration access over the organization", - permissions: packRules(orgAdminPermissions), - createdAt: new Date(), - updatedAt: new Date() - }; - } - case "b11b49a9-09a9-4443-916a-4246f9ff2c70": { - return { - id: roleId, - orgId, - name: "Member", - slug: "member", - description: "Non-administrative role in an organization", - permissions: packRules(orgMemberPermissions), - createdAt: new Date(), - updatedAt: new Date() - }; - } - case "b10d49a9-09a9-4443-916a-4246f9ff2c72": { - return { - id: "b10d49a9-09a9-4443-916a-4246f9ff2c72", // dummy user for zod validation in response - orgId, - name: "No Access", - slug: "no-access", - description: "No access to any resources in the organization", - permissions: packRules(orgNoAccessPermissions), - createdAt: new Date(), - updatedAt: new Date() - }; - } - default: { - const role = await orgRoleDAL.findOne({ id: roleId, orgId }); - if (!role) throw new NotFoundError({ message: `Organization role with ID '${roleId}' not found` }); - return role; - } - } - }; - - const updateRole = async ( - userId: string, - orgId: string, - roleId: string, - data: Omit, - actorAuthMethod: ActorAuthMethod, - actorOrgId: string | undefined - ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); - ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Edit, OrgPermissionSubjects.Role); - if (data?.slug) { - const existingRole = await orgRoleDAL.findOne({ slug: data.slug, orgId }); - if (existingRole && existingRole.id !== roleId) - throw new BadRequestError({ name: "Update Role", message: "Duplicate role" }); - } - const [updatedRole] = await orgRoleDAL.update( - { id: roleId, orgId }, - { ...data, permissions: data.permissions ? JSON.stringify(data.permissions) : undefined } - ); - if (!updatedRole) throw new NotFoundError({ message: `Organization role with ID '${roleId}' not found` }); - return updatedRole; - }; - - const deleteRole = async ( - userId: string, - orgId: string, - roleId: string, - actorAuthMethod: ActorAuthMethod, - actorOrgId: string | undefined - ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); - ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Delete, OrgPermissionSubjects.Role); - - const org = await orgDAL.findOrgById(orgId); - - if (!org) - throw new NotFoundError({ - message: `Organization with ID '${orgId}' not found` - }); - - if (org.defaultMembershipRole === roleId) - throw new BadRequestError({ - message: "Cannot delete default org membership role. Please re-assign and try again." - }); - - const externalGroupMapping = await externalGroupOrgRoleMappingDAL.findOne({ - orgId, - roleId - }); - - if (externalGroupMapping) - throw new BadRequestError({ - message: - "Cannot delete role assigned to external group organization role mapping. Please re-assign external mapping and try again." - }); - - const [deletedRole] = await orgRoleDAL.delete({ id: roleId, orgId }); - if (!deletedRole) - throw new NotFoundError({ message: `Organization role with ID '${roleId}' not found`, name: "UpdateRole" }); - - return deletedRole; - }; - - const listRoles = async ( - userId: string, - orgId: string, - actorAuthMethod: ActorAuthMethod, - actorOrgId: string | undefined - ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); - ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Role); - const customRoles = await orgRoleDAL.find({ orgId }); - const roles = [ - { - id: "b11b49a9-09a9-4443-916a-4246f9ff2c69", // dummy userid - orgId, - name: "Admin", - slug: "admin", - description: "Complete administration access over the organization", - permissions: packRules(orgAdminPermissions), - createdAt: new Date(), - updatedAt: new Date() - }, - { - id: "b11b49a9-09a9-4443-916a-4246f9ff2c70", // dummy user for zod validation in response - orgId, - name: "Member", - slug: "member", - description: "Non-administrative role in an organization", - permissions: packRules(orgMemberPermissions), - createdAt: new Date(), - updatedAt: new Date() - }, - { - id: "b10d49a9-09a9-4443-916a-4246f9ff2c72", // dummy user for zod validation in response - orgId, - name: "No Access", - slug: "no-access", - description: "No access to any resources in the organization", - permissions: packRules(orgNoAccessPermissions), - createdAt: new Date(), - updatedAt: new Date() - }, - ...(customRoles || []).map(({ permissions, ...data }) => ({ - ...data, - permissions - })) - ]; - - return roles; - }; - - const getUserPermission = async ( - userId: string, - orgId: string, - actorAuthMethod: ActorAuthMethod, - actorOrgId: string | undefined - ) => { - const { permission, membership } = await permissionService.getUserOrgPermission( - userId, - orgId, - actorAuthMethod, - actorOrgId - ); - return { permissions: packRules(permission.rules), membership }; - }; - - return { createRole, getRole, updateRole, deleteRole, listRoles, getUserPermission }; -}; diff --git a/backend/src/services/org/org-service.ts b/backend/src/services/org/org-service.ts index ffcf4459ee..5b98b44b18 100644 --- a/backend/src/services/org/org-service.ts +++ b/backend/src/services/org/org-service.ts @@ -3,19 +3,15 @@ import slugify from "@sindresorhus/slugify"; import { Knex } from "knex"; import { - ActionProjectType, + AccessScope, OrgMembershipRole, OrgMembershipStatus, - ProjectMembershipRole, - ProjectVersion, TableName, TOidcConfigs, - TProjectMemberships, - TProjectUserMembershipRolesInsert, - TSamlConfigs, - TUsers + TSamlConfigs } from "@app/db/schemas"; import { TGroupDALFactory } from "@app/ee/services/group/group-dal"; +import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; import { TLdapConfigDALFactory } from "@app/ee/services/ldap-config/ldap-config-dal"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { TOidcConfigDALFactory } from "@app/ee/services/oidc/oidc-config-dal"; @@ -25,47 +21,35 @@ import { OrgPermissionSecretShareAction, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; -import { - constructPermissionErrorMessage, - validatePrivilegeChangeOperation -} from "@app/ee/services/permission/permission-fns"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; -import { ProjectPermissionMemberActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { TProjectUserAdditionalPrivilegeDALFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal"; import { TSamlConfigDALFactory } from "@app/ee/services/saml-config/saml-config-dal"; import { getConfig } from "@app/lib/config/env"; import { crypto } from "@app/lib/crypto/cryptography"; import { generateUserSrpKeys } from "@app/lib/crypto/srp"; import { applyJitter } from "@app/lib/dates"; import { delay as delayMs } from "@app/lib/delay"; -import { - BadRequestError, - ForbiddenRequestError, - NotFoundError, - PermissionBoundaryError, - UnauthorizedError -} from "@app/lib/errors"; -import { groupBy } from "@app/lib/fn"; +import { BadRequestError, ForbiddenRequestError, NotFoundError, UnauthorizedError } from "@app/lib/errors"; import { logger } from "@app/lib/logger"; import { alphaNumericNanoId } from "@app/lib/nanoid"; -import { isDisposableEmail } from "@app/lib/validator"; import { QueueName } from "@app/queue"; import { getDefaultOrgMembershipRoleForUpdateOrg } from "@app/services/org/org-role-fns"; import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { TUserAliasDALFactory } from "@app/services/user-alias/user-alias-dal"; +import { TAdditionalPrivilegeDALFactory } from "../additional-privilege/additional-privilege-dal"; import { TAuthLoginFactory } from "../auth/auth-login-service"; import { ActorAuthMethod, ActorType, AuthMethod, AuthModeJwtTokenPayload, AuthTokenType } from "../auth/auth-type"; import { TAuthTokenServiceFactory } from "../auth-token/auth-token-service"; import { TokenType } from "../auth-token/auth-token-types"; import { TIdentityMetadataDALFactory } from "../identity/identity-metadata-dal"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TProjectDALFactory } from "../project/project-dal"; import { TProjectBotServiceFactory } from "../project-bot/project-bot-service"; import { TProjectKeyDALFactory } from "../project-key/project-key-dal"; import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; -import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; -import { TProjectRoleDALFactory } from "../project-role/project-role-dal"; import { TReminderServiceFactory } from "../reminder/reminder-types"; +import { TRoleDALFactory } from "../role/role-dal"; import { TSecretDALFactory } from "../secret/secret-dal"; import { fnDeleteProjectSecretReminders } from "../secret/secret-fns"; import { TSecretFolderDALFactory } from "../secret-folder/secret-folder-dal"; @@ -75,8 +59,7 @@ import { TUserDALFactory } from "../user/user-dal"; import { TIncidentContactsDALFactory } from "./incident-contacts-dal"; import { TOrgBotDALFactory } from "./org-bot-dal"; import { TOrgDALFactory } from "./org-dal"; -import { deleteOrgMembershipFn, deleteOrgMembershipsFn } from "./org-fns"; -import { TOrgRoleDALFactory } from "./org-role-dal"; +import { deleteOrgMembershipsFn } from "./org-fns"; import { TDeleteOrgMembershipDTO, TDeleteOrgMembershipsDTO, @@ -84,7 +67,6 @@ import { TFindOrgMembersByEmailDTO, TGetOrgGroupsDTO, TGetOrgMembershipDTO, - TInviteUserToOrgDTO, TListProjectMembershipsByOrgMembershipIdDTO, TResendOrgMemberInvitationDTO, TUpdateOrgDTO, @@ -100,31 +82,22 @@ type TOrgServiceFactoryDep = { folderDAL: Pick; orgDAL: TOrgDALFactory; orgBotDAL: TOrgBotDALFactory; - orgRoleDAL: TOrgRoleDALFactory; + roleDAL: TRoleDALFactory; userDAL: TUserDALFactory; groupDAL: TGroupDALFactory; projectDAL: TProjectDALFactory; identityMetadataDAL: Pick; + membershipUserDAL: TMembershipUserDALFactory; projectMembershipDAL: Pick< TProjectMembershipDALFactory, - | "findProjectMembershipsByUserId" - | "delete" - | "create" - | "find" - | "insertMany" - | "transaction" - | "findProjectMembershipsByUserIds" + "findProjectMembershipsByUserId" | "findProjectMembershipsByUserIds" >; projectKeyDAL: Pick; orgMembershipDAL: Pick< TOrgMembershipDALFactory, - | "findOrgMembershipById" - | "findOne" - | "findById" - | "findRecentInvitedMemberships" - | "updateById" - | "updateLastInvitedAtByIds" + "findOrgMembershipById" | "findRecentInvitedMemberships" | "updateLastInvitedAtByIds" >; + membershipRoleDAL: TMembershipRoleDALFactory; incidentContactDAL: TIncidentContactsDALFactory; samlConfigDAL: Pick; oidcConfigDAL: Pick; @@ -136,12 +109,11 @@ type TOrgServiceFactoryDep = { TLicenseServiceFactory, "getPlan" | "updateSubscriptionOrgMemberCount" | "generateOrgCustomerId" | "removeOrgCustomer" >; - projectUserAdditionalPrivilegeDAL: Pick; - projectRoleDAL: Pick; - projectUserMembershipRoleDAL: Pick; projectBotService: Pick; loginService: Pick; reminderService: Pick; + userGroupMembershipDAL: TUserGroupMembershipDALFactory; + additionalPrivilegeDAL: TAdditionalPrivilegeDALFactory; }; export type TOrgServiceFactory = ReturnType; @@ -154,7 +126,7 @@ export const orgServiceFactory = ({ folderDAL, userDAL, groupDAL, - orgRoleDAL, + roleDAL, incidentContactDAL, permissionService, smtpService, @@ -162,19 +134,20 @@ export const orgServiceFactory = ({ projectMembershipDAL, projectKeyDAL, orgMembershipDAL, - projectUserAdditionalPrivilegeDAL, tokenService, orgBotDAL, licenseService, - projectRoleDAL, samlConfigDAL, oidcConfigDAL, ldapConfigDAL, - projectUserMembershipRoleDAL, identityMetadataDAL, projectBotService, loginService, - reminderService + reminderService, + membershipRoleDAL, + membershipUserDAL, + userGroupMembershipDAL, + additionalPrivilegeDAL }: TOrgServiceFactoryDep) => { /* * Get organization details by the organization id @@ -185,7 +158,7 @@ export const orgServiceFactory = ({ actorAuthMethod: ActorAuthMethod, actorOrgId: string | undefined ) => { - await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + await permissionService.getOrgPermission(ActorType.USER, userId, orgId, actorAuthMethod, actorOrgId); const appCfg = getConfig(); const org = await orgDAL.findOrgById(orgId); if (!org) throw new NotFoundError({ message: `Organization with ID '${orgId}' not found` }); @@ -221,7 +194,13 @@ export const orgServiceFactory = ({ actorAuthMethod: ActorAuthMethod, actorOrgId: string | undefined ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + const { permission } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Member); const members = await orgDAL.findAllOrgMembers(orgId); @@ -267,7 +246,7 @@ export const orgServiceFactory = ({ } if (actor === ActorType.IDENTITY) { - const workspaces = await projectDAL.findAllProjectsByIdentity(actorId); + const workspaces = await projectDAL.findIdentityProjects(actorId, orgId); return workspaces; } @@ -302,14 +281,21 @@ export const orgServiceFactory = ({ ); const createMembershipData = { - orgId, - userId: user.id, - role: OrgMembershipRole.Admin, + scopeOrgId: orgId, + scope: AccessScope.Organization, + actorUserId: user.id, status: OrgMembershipStatus.Accepted, isActive: true }; - await orgDAL.createMembership(createMembershipData, tx); + const membership = await orgDAL.createMembership(createMembershipData, tx); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role: OrgMembershipRole.Admin + }, + tx + ); return { user, @@ -323,9 +309,15 @@ export const orgServiceFactory = ({ actorAuthMethod, orgId }: TUpgradePrivilegeSystemDTO) => { - const { membership } = await permissionService.getUserOrgPermission(actorId, orgId, actorAuthMethod, actorOrgId); + const { hasRole } = await permissionService.getOrgPermission( + ActorType.USER, + actorId, + orgId, + actorAuthMethod, + actorOrgId + ); - if (membership.role !== OrgMembershipRole.Admin) { + if (!hasRole(OrgMembershipRole.Admin)) { throw new ForbiddenRequestError({ message: "Insufficient privileges - only the organization admin can upgrade the privilege system." }); @@ -531,7 +523,7 @@ export const orgServiceFactory = ({ defaultMembershipRole = await getDefaultOrgMembershipRoleForUpdateOrg({ membershipRoleSlug: defaultMembershipRoleSlug, orgId, - orgRoleDAL, + roleDAL, plan }); } @@ -601,16 +593,23 @@ export const orgServiceFactory = ({ tx ); if (userId) { - await orgDAL.createMembership( + const membership = await orgDAL.createMembership( { - userId, - orgId: org.id, - role: OrgMembershipRole.Admin, + scope: AccessScope.Organization, + actorUserId: userId, + scopeOrgId: org.id, status: OrgMembershipStatus.Accepted, isActive: true }, tx ); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role: OrgMembershipRole.Admin + }, + tx + ); } await orgBotDAL.create( { @@ -659,8 +658,14 @@ export const orgServiceFactory = ({ actorAuthMethod: ActorAuthMethod; actorOrgId: string | undefined; }) => { - const { membership } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); - if ((membership.role as OrgMembershipRole) !== OrgMembershipRole.Admin) { + const { hasRole } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); + if (!hasRole(OrgMembershipRole.Admin)) { throw new ForbiddenRequestError({ name: "DeleteOrganizationById", message: "Insufficient privileges" @@ -739,22 +744,32 @@ export const orgServiceFactory = ({ actorOrgId, metadata }: TUpdateOrgMembershipDTO) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + const { permission } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Edit, OrgPermissionSubjects.Member); - const foundMembership = await orgMembershipDAL.findById(membershipId); + const foundMembership = await membershipUserDAL.findOne({ + id: membershipId, + scope: AccessScope.Organization, + scopeOrgId: actorOrgId + }); if (!foundMembership) throw new NotFoundError({ message: `Organization membership with ID ${membershipId} not found` }); - if (foundMembership.orgId !== orgId) + if (foundMembership.scopeOrgId !== orgId) throw new UnauthorizedError({ message: "Updated org member doesn't belong to the organization" }); - if (foundMembership.userId === userId) + if (foundMembership.actorUserId === userId) throw new UnauthorizedError({ message: "Cannot update own organization membership" }); const isCustomRole = !Object.values(OrgMembershipRole).includes(role as OrgMembershipRole); let userRole = role; let userRoleId: string | null = null; if (role && isCustomRole) { - const customRole = await orgRoleDAL.findOne({ slug: role, orgId }); + const customRole = await roleDAL.findOne({ slug: role, orgId }); if (!customRole) throw new BadRequestError({ name: "UpdateMembership", message: "Organization role not found" }); const plan = await licenseService.getPlan(orgId); @@ -767,17 +782,33 @@ export const orgServiceFactory = ({ userRoleId = customRole.id; } const membership = await orgDAL.transaction(async (tx) => { - const [updatedOrgMembership] = await orgDAL.updateMembership( - { id: membershipId, orgId }, - { role: userRole, roleId: userRoleId, isActive } - ); + // this is because if isActive is undefined then this would fail due to knexjs error + const [updatedOrgMembership] = + typeof isActive === "undefined" + ? [foundMembership] + : await orgDAL.updateMembership( + { id: membershipId, scopeOrgId: orgId, scope: AccessScope.Organization }, + { isActive }, + tx + ); + if (userRole) { + await membershipRoleDAL.delete({ membershipId }, tx); + await membershipRoleDAL.create( + { + membershipId, + role: userRole, + customRoleId: userRoleId + }, + tx + ); + } if (metadata) { - await identityMetadataDAL.delete({ userId: updatedOrgMembership.userId, orgId }, tx); + await identityMetadataDAL.delete({ userId: updatedOrgMembership.actorUserId, orgId }, tx); if (metadata.length) { await identityMetadataDAL.insertMany( metadata.map(({ key, value }) => ({ - userId: updatedOrgMembership.userId, + userId: updatedOrgMembership.actorUserId as string, orgId, key, value @@ -809,8 +840,9 @@ export const orgServiceFactory = ({ const org = await orgDAL.findOrgById(orgId); const [inviteeOrgMembership] = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId, - [`${TableName.OrgMembership}.id` as "id"]: membershipId + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization, + [`${TableName.Membership}.id` as "id"]: membershipId }); if (inviteeOrgMembership.status !== OrgMembershipStatus.Invited) { @@ -821,7 +853,7 @@ export const orgServiceFactory = ({ const token = await tokenService.createTokenForUser({ type: TokenType.TOKEN_EMAIL_ORG_INVITATION, - userId: inviteeOrgMembership.userId, + userId: inviteeOrgMembership.actorUserId as string, orgId }); @@ -849,366 +881,13 @@ export const orgServiceFactory = ({ } }); - await orgMembershipDAL.updateById(inviteeOrgMembership.id, { + await membershipUserDAL.updateById(inviteeOrgMembership.id, { lastInvitedAt: new Date() }); return { signupToken: undefined }; }; - /* - * Invite user to organization - */ - const inviteUserToOrganization = async ({ - orgId, - actorId, - actor, - inviteeEmails, - organizationRoleSlug, - projects: invitedProjects, - actorAuthMethod, - actorOrgId - }: TInviteUserToOrgDTO) => { - const appCfg = getConfig(); - - const { permission } = await permissionService.getOrgPermission(actor, actorId, orgId, actorAuthMethod, actorOrgId); - - const invitingUser = await userDAL.findOne({ id: actorId }); - - const org = await orgDAL.findOrgById(orgId); - - const isEmailInvalid = await isDisposableEmail(inviteeEmails); - if (isEmailInvalid) { - throw new BadRequestError({ - message: "Disposable emails are not allowed", - name: "InviteUser" - }); - } - const plan = await licenseService.getPlan(orgId); - const isCustomOrgRole = !Object.values(OrgMembershipRole).includes(organizationRoleSlug as OrgMembershipRole); - if (isCustomOrgRole) { - if (!plan?.rbac) - throw new BadRequestError({ - message: "Failed to assign custom role due to RBAC restriction. Upgrade plan to assign custom role to member." - }); - } - - const projectsToInvite = invitedProjects?.length - ? await projectDAL.find({ - orgId, - $in: { - id: invitedProjects?.map(({ id }) => id) - } - }) - : []; - - if (projectsToInvite.length !== invitedProjects?.length) { - throw new ForbiddenRequestError({ - message: "Access denied to one or more of the specified projects" - }); - } - - if (projectsToInvite.some((el) => el.version !== ProjectVersion.V3)) { - throw new BadRequestError({ - message: "One or more selected projects are not compatible with this operation. Please upgrade your projects." - }); - } - - const mailsForOrgInvitation: { email: string; userId: string; firstName: string; lastName: string }[] = []; - const mailsForProjectInvitation: { email: string[]; projectName: string }[] = []; - const newProjectMemberships: TProjectMemberships[] = []; - - await orgDAL.transaction(async (tx) => { - const users: Pick[] = []; - - for await (const inviteeEmail of inviteeEmails) { - const usersByUsername = await userDAL.findUserByUsername(inviteeEmail, tx); - let inviteeUser = - usersByUsername?.length > 1 - ? usersByUsername.find((el) => el.username === inviteeEmail) - : usersByUsername?.[0]; - - // if the user doesn't exist we create the user with the email - if (!inviteeUser) { - // TODO(carlos): will be removed once the function receives usernames instead of emails - const usersByEmail = await userDAL.findUserByEmail(inviteeEmail, tx); - if (usersByEmail?.length === 1) { - [inviteeUser] = usersByEmail; - } else { - inviteeUser = await userDAL.create( - { - isAccepted: false, - email: inviteeEmail, - username: inviteeEmail, - authMethods: [AuthMethod.EMAIL], - isGhost: false - }, - tx - ); - } - } - - const inviteeUserId = inviteeUser?.id; - const existingEncrytionKey = await userDAL.findUserEncKeyByUserId(inviteeUserId, tx); - - // when user is missing the encrytion keys - // this could happen either if user doesn't exist or user didn't find step 3 of generating the encryption keys of srp - // So what we do is we generate a random secure password and then encrypt it with a random pub-private key - // Then when user sign in (as login is not possible as isAccepted is false) we rencrypt the private key with the user password - if (!inviteeUser || (inviteeUser && !inviteeUser?.isAccepted && !existingEncrytionKey)) { - await userDAL.createUserEncryption( - { - userId: inviteeUserId, - encryptionVersion: 2 - }, - tx - ); - } - - const [inviteeOrgMembership] = await orgDAL.findMembership( - { - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId, - [`${TableName.OrgMembership}.userId` as "userId"]: inviteeUserId - }, - { tx } - ); - - // if there exist no org membership we set is as given by the request - if (!inviteeOrgMembership) { - if (plan?.slug !== "enterprise" && plan?.identityLimit && plan.identitiesUsed >= plan.identityLimit) { - // limit imposed on number of identities allowed / number of identities used exceeds the number of identities allowed - throw new BadRequestError({ - name: "InviteUser", - message: "Failed to invite member due to member limit reached. Upgrade plan to invite more members." - }); - } - - if (org?.authEnforced) { - throw new ForbiddenRequestError({ - name: "InviteUser", - message: "Failed to invite user due to org-level auth enforced for organization" - }); - } - - // as its used by project invite also - ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.Member); - let roleId; - const orgRole = isCustomOrgRole ? OrgMembershipRole.Custom : organizationRoleSlug; - if (isCustomOrgRole) { - const customRole = await orgRoleDAL.findOne({ slug: organizationRoleSlug, orgId }); - if (!customRole) { - throw new NotFoundError({ - name: "InviteUser", - message: `Custom organization role with slug '${orgRole}' not found` - }); - } - roleId = customRole.id; - } - - await orgDAL.createMembership( - { - userId: inviteeUser.id, - inviteEmail: inviteeEmail, - orgId, - role: orgRole, - status: OrgMembershipStatus.Invited, - isActive: true, - roleId - }, - tx - ); - mailsForOrgInvitation.push({ - email: inviteeEmail, - userId: inviteeUser.id, - firstName: inviteeUser?.firstName || "", - lastName: inviteeUser.lastName || "" - }); - } - - users.push(inviteeUser); - } - - const userIds = users.map(({ id }) => id); - const userEncryptionKeys = await userDAL.findUserEncKeyByUserIdsBatch({ userIds }, tx); - // we don't need to spam with email. Thus org invitation doesn't need project invitation again - const userIdsWithOrgInvitation = new Set(mailsForOrgInvitation.map((el) => el.userId)); - - // if there exist no project membership we set is as given by the request - for await (const project of projectsToInvite) { - const projectId = project.id; - const { permission: projectPermission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(projectPermission).throwUnlessCan( - ProjectPermissionMemberActions.Create, - ProjectPermissionSub.Member - ); - const existingMembers = await projectMembershipDAL.find( - { - projectId: project.id, - $in: { userId: userIds } - }, - { tx } - ); - const existingMembersGroupByUserId = groupBy(existingMembers, (i) => i.userId); - const userWithEncryptionKeyInvitedToProject = userEncryptionKeys.filter( - (user) => !existingMembersGroupByUserId?.[user.userId] - ); - - // eslint-disable-next-line no-continue - if (!userWithEncryptionKeyInvitedToProject.length) continue; - - // validate custom project role - const invitedProjectRoles = invitedProjects.find((el) => el.id === project.id)?.projectRoleSlug || [ - ProjectMembershipRole.Member - ]; - - for await (const invitedRole of invitedProjectRoles) { - const { permission: rolePermission } = await permissionService.getProjectPermissionByRole( - invitedRole, - projectId - ); - - if (invitedRole !== ProjectMembershipRole.NoAccess) { - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member, - projectPermission, - rolePermission - ); - - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - "Failed to invite user to the project", - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - } - } - - const customProjectRoles = invitedProjectRoles.filter( - (role) => !Object.values(ProjectMembershipRole).includes(role as ProjectMembershipRole) - ); - const hasCustomRole = Boolean(customProjectRoles.length); - if (hasCustomRole) { - if (!plan?.rbac) - throw new BadRequestError({ - name: "InviteUser", - message: - "Failed to assign custom role due to RBAC restriction. Upgrade plan to assign custom role to member." - }); - } - - const customRoles = hasCustomRole - ? await projectRoleDAL.find({ - projectId, - $in: { slug: customProjectRoles.map((role) => role) } - }) - : []; - if (customRoles.length !== customProjectRoles.length) { - throw new NotFoundError({ name: "InviteUser", message: "Custom project role not found" }); - } - - const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); - - const projectMemberships = await projectMembershipDAL.insertMany( - userWithEncryptionKeyInvitedToProject.map((userEnc) => ({ - projectId, - userId: userEnc.userId - })), - tx - ); - newProjectMemberships.push(...projectMemberships); - - const sanitizedProjectMembershipRoles: TProjectUserMembershipRolesInsert[] = []; - invitedProjectRoles.forEach((projectRole) => { - const isCustomRole = Boolean(customRolesGroupBySlug?.[projectRole]?.[0]); - projectMemberships.forEach((membershipEntry) => { - sanitizedProjectMembershipRoles.push({ - projectMembershipId: membershipEntry.id, - role: isCustomRole ? ProjectMembershipRole.Custom : projectRole, - customRoleId: customRolesGroupBySlug[projectRole] ? customRolesGroupBySlug[projectRole][0].id : null - }); - }); - }); - await projectUserMembershipRoleDAL.insertMany(sanitizedProjectMembershipRoles, tx); - - mailsForProjectInvitation.push({ - email: userWithEncryptionKeyInvitedToProject - .filter((el) => !userIdsWithOrgInvitation.has(el.userId)) - .map((el) => el.email || el.username), - projectName: project.name - }); - } - return users; - }); - - await licenseService.updateSubscriptionOrgMemberCount(orgId); - const signupTokens: { email: string; link: string }[] = []; - // send org invite mail - await Promise.allSettled( - mailsForOrgInvitation.map(async (el) => { - const token = await tokenService.createTokenForUser({ - type: TokenType.TOKEN_EMAIL_ORG_INVITATION, - userId: el.userId, - orgId - }); - - signupTokens.push({ - email: el.email, - link: `${appCfg.SITE_URL}/signupinvite?token=${token}&to=${el.email}&organization_id=${org?.id}` - }); - - return smtpService.sendMail({ - template: SmtpTemplates.OrgInvite, - subjectLine: "Infisical organization invitation", - recipients: [el.email], - substitutions: { - inviterFirstName: invitingUser?.firstName, - inviterUsername: invitingUser?.email, - organizationName: org?.name, - email: el.email, - organizationId: org?.id.toString(), - token, - callback_url: `${appCfg.SITE_URL}/signupinvite` - } - }); - }) - ); - - await Promise.allSettled( - mailsForProjectInvitation - .filter((el) => Boolean(el.email.length)) - .map(async (el) => { - return smtpService.sendMail({ - template: SmtpTemplates.WorkspaceInvite, - subjectLine: "Infisical project invitation", - recipients: el.email, - substitutions: { - workspaceName: el.projectName, - callback_url: `${appCfg.SITE_URL}/login` - } - }); - }) - ); - - if (!appCfg.isSmtpConfigured) { - return { signupTokens, projectMemberships: newProjectMemberships }; - } - - return { signupTokens: undefined, projectMemberships: newProjectMemberships }; - }; - /** * Organization invitation step 2: Verify that code [code] was sent to email [email] as part of * magic link and issue a temporary signup token for user to complete setting up their account @@ -1222,9 +901,10 @@ export const orgServiceFactory = ({ } const [orgMembership] = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.userId` as "userId"]: user.id, + [`${TableName.Membership}.actorUserId` as "actorUserId"]: user.id, + scope: AccessScope.Organization, status: OrgMembershipStatus.Invited, - [`${TableName.OrgMembership}.orgId` as "orgId"]: orgId + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId }); if (!orgMembership) @@ -1237,7 +917,7 @@ export const orgServiceFactory = ({ await tokenService.validateTokenForUser({ type: TokenType.TOKEN_EMAIL_ORG_INVITATION, userId: user.id, - orgId: orgMembership.orgId, + orgId: orgMembership.scopeOrgId, code }); @@ -1249,16 +929,17 @@ export const orgServiceFactory = ({ // this means user has already completed signup process // isAccepted is set true when keys are exchanged await orgDAL.updateMembershipById(orgMembership.id, { - orgId, + scopeOrgId: orgId, status: OrgMembershipStatus.Accepted }); await licenseService.updateSubscriptionOrgMemberCount(orgId); return { user }; } + const membershipRole = await membershipRoleDAL.findOne({ membershipId: orgMembership.id }); if ( organization.authEnforced && - !(organization.bypassOrgAuthEnabled && orgMembership.role === OrgMembershipRole.Admin) + !(organization.bypassOrgAuthEnabled && membershipRole.role === OrgMembershipRole.Admin) ) { return { user }; } @@ -1307,19 +988,27 @@ export const orgServiceFactory = ({ actorAuthMethod, actorOrgId }: TDeleteOrgMembershipDTO) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + const { permission } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Delete, OrgPermissionSubjects.Member); - const deletedMembership = await deleteOrgMembershipFn({ - orgMembershipId: membershipId, + const [deletedMembership] = await deleteOrgMembershipsFn({ + orgMembershipIds: [membershipId], orgId, orgDAL, - projectMembershipDAL, - projectUserAdditionalPrivilegeDAL, projectKeyDAL, userAliasDAL, licenseService, - userId + userId, + membershipUserDAL, + membershipRoleDAL, + userGroupMembershipDAL, + additionalPrivilegeDAL }); return deletedMembership; @@ -1332,7 +1021,13 @@ export const orgServiceFactory = ({ actorAuthMethod, actorOrgId }: TDeleteOrgMembershipsDTO) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + const { permission } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Delete, OrgPermissionSubjects.Member); if (membershipIds.includes(userId)) { @@ -1343,12 +1038,14 @@ export const orgServiceFactory = ({ orgMembershipIds: membershipIds, orgId, orgDAL, - projectMembershipDAL, - projectUserAdditionalPrivilegeDAL, projectKeyDAL, userAliasDAL, licenseService, - userId + userId, + membershipUserDAL, + membershipRoleDAL, + userGroupMembershipDAL, + additionalPrivilegeDAL }); return deletedMemberships; @@ -1385,7 +1082,13 @@ export const orgServiceFactory = ({ actorAuthMethod: ActorAuthMethod, actorOrgId: string | undefined ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + const { permission } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.IncidentAccount); const incidentContacts = await incidentContactDAL.findByOrgId(orgId); return incidentContacts; @@ -1398,7 +1101,13 @@ export const orgServiceFactory = ({ actorAuthMethod: ActorAuthMethod, actorOrgId: string | undefined ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + const { permission } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.IncidentAccount); const doesIncidentContactExist = await incidentContactDAL.findOne(orgId, { email }); if (doesIncidentContactExist) { @@ -1419,7 +1128,13 @@ export const orgServiceFactory = ({ actorAuthMethod: ActorAuthMethod, actorOrgId: string | undefined ) => { - const { permission } = await permissionService.getUserOrgPermission(userId, orgId, actorAuthMethod, actorOrgId); + const { permission } = await permissionService.getOrgPermission( + ActorType.USER, + userId, + orgId, + actorAuthMethod, + actorOrgId + ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Delete, OrgPermissionSubjects.IncidentAccount); const incidentContact = await incidentContactDAL.deleteById(id, orgId); @@ -1440,17 +1155,17 @@ export const orgServiceFactory = ({ await Promise.all( invitedUsers.map(async (invitedUser) => { - let org = orgCache[invitedUser.orgId]; + let org = orgCache[invitedUser.scopeOrgId]; if (!org) { - org = await orgDAL.findById(invitedUser.orgId); - orgCache[invitedUser.orgId] = org; + org = await orgDAL.findById(invitedUser.scopeOrgId); + orgCache[invitedUser.scopeOrgId] = org; } - if (!org || !invitedUser.userId) return; + if (!org || !invitedUser.actorUserId) return; const token = await tokenService.createTokenForUser({ type: TokenType.TOKEN_EMAIL_ORG_INVITATION, - userId: invitedUser.userId, + userId: invitedUser.actorUserId, orgId: org.id }); @@ -1488,7 +1203,6 @@ export const orgServiceFactory = ({ findAllOrgMembers, findAllOrganizationOfUser, findIdentityOrganization, - inviteUserToOrganization, verifyUserToOrg, updateOrg, findOrgMembersByUsername, diff --git a/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-constants.ts b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-constants.ts new file mode 100644 index 0000000000..265e00cac0 --- /dev/null +++ b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-constants.ts @@ -0,0 +1,52 @@ +import RE2 from "re2"; + +import { AppConnection } from "@app/services/app-connection/app-connection-enums"; +import { PkiSync } from "@app/services/pki-sync/pki-sync-enums"; + +/** + * AWS Certificate Manager naming constraints for certificates + */ +export const AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING = { + /** + * Regular expression pattern for valid AWS Certificate Manager certificate names + * Must contain only alphanumeric characters, spaces, hyphens, and underscores + * Must be 1-256 characters long + */ + NAME_PATTERN: new RE2("^[a-zA-Z0-9\\s\\-_]{1,256}$"), + + /** + * String of characters that are forbidden in AWS Certificate Manager certificate names + */ + FORBIDDEN_CHARACTERS: "!@#$%^&*()+={}[]|\\:;\"'<>,.?/~`", + + /** + * Maximum length for certificate names in AWS Certificate Manager + */ + MAX_LENGTH: 256, + + /** + * Minimum length for certificate names in AWS Certificate Manager + */ + MIN_LENGTH: 1, + + /** + * String representation of the allowed character pattern (for UI display) + */ + ALLOWED_CHARACTER_PATTERN: "^[a-zA-Z0-9\\s\\-_]{1,256}$" +} as const; + +/** + * AWS Certificate Manager PKI Sync list option configuration + */ +export const AWS_CERTIFICATE_MANAGER_PKI_SYNC_LIST_OPTION = { + name: "AWS Certificate Manager" as const, + connection: AppConnection.AWS, + destination: PkiSync.AwsCertificateManager, + canImportCertificates: false, + canRemoveCertificates: true, + defaultCertificateNameSchema: "Infisical-{{certificateId}}", + forbiddenCharacters: AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.FORBIDDEN_CHARACTERS, + allowedCharacterPattern: AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.ALLOWED_CHARACTER_PATTERN, + maxCertificateNameLength: AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.MAX_LENGTH, + minCertificateNameLength: AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.MIN_LENGTH +} as const; diff --git a/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-fns.ts b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-fns.ts new file mode 100644 index 0000000000..f78bd790e8 --- /dev/null +++ b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-fns.ts @@ -0,0 +1,634 @@ +/* eslint-disable no-await-in-loop */ +import * as AWS from "aws-sdk"; +import RE2 from "re2"; +import { z } from "zod"; + +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { TAppConnectionDALFactory } from "@app/services/app-connection/app-connection-dal"; +import { AppConnection, AWSRegion } from "@app/services/app-connection/app-connection-enums"; +import { decryptAppConnectionCredentials } from "@app/services/app-connection/app-connection-fns"; +import { AwsConnectionMethod } from "@app/services/app-connection/aws/aws-connection-enums"; +import { getAwsConnectionConfig } from "@app/services/app-connection/aws/aws-connection-fns"; +import { + AwsConnectionAccessTokenCredentialsSchema, + AwsConnectionAssumeRoleCredentialsSchema +} from "@app/services/app-connection/aws/aws-connection-schemas"; +import { TAwsConnectionConfig } from "@app/services/app-connection/aws/aws-connection-types"; +import { createConnectionQueue, RateLimitConfig } from "@app/services/connection-queue"; +import { TKmsServiceFactory } from "@app/services/kms/kms-service"; +import { TCertificateMap } from "@app/services/pki-sync/pki-sync-types"; + +import { PkiSyncError } from "../pki-sync-errors"; +import { TPkiSyncWithCredentials } from "../pki-sync-types"; +import { + ACMCertificateWithKey, + CertificateImportRequest, + RemoveCertificatesResult, + SyncCertificatesResult, + TAwsCertificateManagerPkiSyncConfig +} from "./aws-certificate-manager-pki-sync-types"; + +const INFISICAL_CERTIFICATE_TAG = "InfisicalCertificate"; +const AWS_CERTIFICATE_ARN_PATTERN = new RE2("^arn:aws:acm:[a-z0-9-]+:\\d{12}:certificate/[a-f0-9-]{36}$"); + +type TAwsAssumeRoleCredentials = z.infer; +type TAwsAccessKeyCredentials = z.infer; + +const AWS_RATE_LIMIT_CONFIG: RateLimitConfig = { + MAX_CONCURRENT_REQUESTS: 10, + BASE_DELAY: 1000, + MAX_DELAY: 30000, + MAX_RETRIES: 3, + RATE_LIMIT_STATUS_CODES: [429, 503] +}; + +const awsConnectionQueue = createConnectionQueue(AWS_RATE_LIMIT_CONFIG); + +const { withRateLimitRetry, executeWithConcurrencyLimit } = awsConnectionQueue; + +const validateCertificateArn = (arn: string): boolean => { + return AWS_CERTIFICATE_ARN_PATTERN.test(arn); +}; + +const extractCertificateNameFromArn = (certificateArn: string): string => { + if (!validateCertificateArn(certificateArn)) { + throw new Error(`Invalid AWS Certificate Manager ARN format: ${certificateArn}`); + } + const parts = certificateArn.split("/"); + return parts[parts.length - 1]; +}; + +const sanitizeInput = (input: string): string => { + return input.trim().replace(new RE2("[^\\w\\s-]", "g"), ""); +}; + +const validateCertificateContent = (cert: string, privateKey: string): void => { + if (!cert || cert.trim().length === 0) { + throw new Error("Certificate content is empty or missing"); + } + + if (!privateKey || privateKey.trim().length === 0) { + throw new Error("Private key content is empty or missing"); + } + + if (!cert.includes("-----BEGIN CERTIFICATE-----") || !cert.includes("-----END CERTIFICATE-----")) { + throw new Error("Certificate is not in valid PEM format"); + } + + if (!privateKey.includes("-----BEGIN") || !privateKey.includes("-----END")) { + throw new Error("Private key is not in valid PEM format"); + } +}; + +const isAwsIssuedCertificate = (certificate: AWS.ACM.CertificateSummary): boolean => { + return certificate.Type === "AMAZON_ISSUED"; +}; + +const shouldSkipCertificateExport = (certificate: AWS.ACM.CertificateSummary): boolean => { + return isAwsIssuedCertificate(certificate); +}; + +const findTagByKey = (tags: AWS.ACM.TagList | undefined, key: string): AWS.ACM.Tag | undefined => { + if (!tags || !Array.isArray(tags)) { + return undefined; + } + return tags.find((tag: AWS.ACM.Tag) => tag.Key === key && tag.Value); +}; + +const findInfisicalCertificateTag = (tags: AWS.ACM.TagList | undefined): AWS.ACM.Tag | undefined => { + return findTagByKey(tags, INFISICAL_CERTIFICATE_TAG); +}; + +const validateCertificateIdentification = ( + certName: string, + existingCert: { arn?: string; Tags?: AWS.ACM.TagList; cert?: string; privateKey?: string; certificateChain?: string } +): boolean => { + if (!existingCert?.arn || !existingCert?.Tags) { + return false; + } + + const certNameTag = findInfisicalCertificateTag(existingCert.Tags); + + if (!certNameTag || !certNameTag.Value) { + return false; + } + + return certNameTag.Value === certName; +}; + +type TAwsCertificateManagerPkiSyncFactoryDeps = { + appConnectionDAL: Pick; + kmsService: Pick; +}; + +const validateCertificateNameSchema = (schema: string): void => { + if (!schema.includes("{{certificateId}}")) { + throw new Error( + "Certificate name schema must include {{certificateId}} placeholder for proper certificate identification" + ); + } +}; + +const generateCertificateName = (certificateName: string, pkiSync: TPkiSyncWithCredentials): string => { + if (!certificateName || typeof certificateName !== "string") { + throw new Error("Certificate name must be a non-empty string"); + } + + const sanitizedCertificateName = sanitizeInput(certificateName); + const syncOptions = pkiSync.syncOptions as { certificateNameSchema?: string } | undefined; + const certificateNameSchema = syncOptions?.certificateNameSchema; + + if (certificateNameSchema) { + validateCertificateNameSchema(certificateNameSchema); + + let certificateId: string; + + if (sanitizedCertificateName.startsWith("Infisical-")) { + certificateId = sanitizedCertificateName.substring("Infisical-".length); + } else { + certificateId = sanitizedCertificateName; + } + + if (!certificateId || certificateId.trim().length === 0) { + throw new Error(`Certificate ID cannot be empty after processing certificate name: ${certificateName}`); + } + + const environment = "global"; + const generatedName = certificateNameSchema + .replace(new RE2("\\{\\{certificateId\\}\\}", "g"), certificateId) + .replace(new RE2("\\{\\{environment\\}\\}", "g"), environment); + + if (generatedName.length > 256 || generatedName.length < 1) { + throw new Error( + `Generated certificate name length (${generatedName.length}) must be between 1 and 256 characters` + ); + } + + if (generatedName.includes("{{certificateId}}")) { + throw new Error("Certificate name schema failed to properly replace {{certificateId}} placeholder"); + } + + return generatedName; + } + + return sanitizedCertificateName; +}; + +const getAwsAcmClient = async ( + connectionId: string, + region: AWSRegion, + appConnectionDAL: Pick, + kmsService: Pick +): Promise => { + const appConnection = await appConnectionDAL.findById(connectionId); + + if (!appConnection) { + throw new NotFoundError({ message: `Connection with ID '${connectionId}' not found` }); + } + + if (appConnection.app !== AppConnection.AWS) { + throw new BadRequestError({ + message: `Connection '${connectionId}' is not an AWS connection (found: ${appConnection.app})` + }); + } + + const decryptedCredentials = await decryptAppConnectionCredentials({ + orgId: appConnection.orgId, + kmsService, + encryptedCredentials: appConnection.encryptedCredentials, + projectId: appConnection.projectId + }); + + let awsConnectionConfig: TAwsConnectionConfig; + switch (appConnection.method) { + case AwsConnectionMethod.AssumeRole: + awsConnectionConfig = { + app: AppConnection.AWS, + method: AwsConnectionMethod.AssumeRole, + credentials: decryptedCredentials as TAwsAssumeRoleCredentials, + orgId: appConnection.orgId + }; + break; + case AwsConnectionMethod.AccessKey: + awsConnectionConfig = { + app: AppConnection.AWS, + method: AwsConnectionMethod.AccessKey, + credentials: decryptedCredentials as TAwsAccessKeyCredentials, + orgId: appConnection.orgId + }; + break; + default: + throw new BadRequestError({ + message: `Unsupported AWS connection method: ${appConnection.method}` + }); + } + + const awsConfig = await getAwsConnectionConfig(awsConnectionConfig, region); + + return new AWS.ACM(awsConfig); +}; + +export const awsCertificateManagerPkiSyncFactory = ({ + kmsService, + appConnectionDAL +}: TAwsCertificateManagerPkiSyncFactoryDeps) => { + const deleteCertificateFromAcm = async ( + acm: AWS.ACM, + certificateArn: string, + operation: string, + syncId: string, + throwOnError = false + ): Promise<{ arn: string; success: boolean; error?: Error }> => { + try { + await withRateLimitRetry(() => acm.deleteCertificate({ CertificateArn: certificateArn }).promise(), { + operation, + syncId + }); + return { arn: certificateArn, success: true }; + } catch (error) { + const errorObj = error instanceof Error ? error : new Error("Unknown error"); + + if (throwOnError) { + throw new PkiSyncError({ + message: `Failed to remove certificate from AWS Certificate Manager: ${errorObj.message}`, + cause: errorObj, + context: { + certificateArn, + operation + } + }); + } + + return { + arn: certificateArn, + success: false, + error: errorObj + }; + } + }; + const $getAwsAcmCertificates = async ( + acm: AWS.ACM, + syncId = "unknown" + ): Promise<{ + acmCertificates: Record< + string, + { cert: string; privateKey: string; certificateChain?: string; arn?: string; Tags?: AWS.ACM.TagList } + >; + }> => { + const paginateAwsAcmCertificates = async () => { + const certificates: AWS.ACM.CertificateSummary[] = []; + let nextToken: string | undefined; + + do { + const listParams: AWS.ACM.ListCertificatesRequest = { + CertificateStatuses: ["ISSUED"], + NextToken: nextToken, + MaxItems: 100 + }; + + const response = await withRateLimitRetry(() => acm.listCertificates(listParams).promise(), { + operation: "list-certificates", + syncId + }); + + if (response.CertificateSummaryList) { + certificates.push(...response.CertificateSummaryList); + } + nextToken = response.NextToken; + } while (nextToken); + + return certificates; + }; + + const certificateSummaries = await paginateAwsAcmCertificates(); + + const certificateResults = await executeWithConcurrencyLimit( + certificateSummaries, + async (certSummary) => { + if (!certSummary.CertificateArn) { + throw new Error("Certificate ARN is missing"); + } + + const [certificateDetails, tagsResponse] = await Promise.all([ + acm.describeCertificate({ CertificateArn: certSummary.CertificateArn }).promise(), + acm.listTagsForCertificate({ CertificateArn: certSummary.CertificateArn }).promise() + ]); + + let certificateContent: AWS.ACM.GetCertificateResponse | undefined; + if (!shouldSkipCertificateExport(certSummary)) { + try { + certificateContent = await acm.getCertificate({ CertificateArn: certSummary.CertificateArn }).promise(); + } catch (error) { + // Certificate content cannot be imported + } + } + + return { + ...certificateDetails.Certificate, + Tags: tagsResponse.Tags, + key: extractCertificateNameFromArn(certSummary.CertificateArn), + cert: certificateContent?.Certificate || "", + certificateChain: certificateContent?.CertificateChain || "", + privateKey: "", // Private keys cannot be exported from ACM + arn: certSummary.CertificateArn + }; + }, + { operation: "fetch-certificate-details", syncId } + ); + + const successfulCertificates: ACMCertificateWithKey[] = []; + certificateResults.forEach((result) => { + if (result.status === "fulfilled") { + successfulCertificates.push(result.value as ACMCertificateWithKey); + } + }); + + const failedFetches = certificateResults.filter((result) => result.status === "rejected"); + if (failedFetches.length > 0) { + throw new PkiSyncError({ + message: `Failed to fetch ${failedFetches.length} certificate details from AWS Certificate Manager`, + shouldRetry: true, + context: { + failedCount: failedFetches.length, + totalCount: certificateSummaries.length + } + }); + } + + const res: Record< + string, + { cert: string; privateKey: string; certificateChain?: string; arn?: string; Tags?: AWS.ACM.TagList } + > = successfulCertificates.reduce( + (obj, certificate) => ({ + ...obj, + [certificate.key]: { + cert: certificate.cert, + privateKey: certificate.privateKey, + certificateChain: certificate.certificateChain, + arn: certificate.CertificateArn, + Tags: certificate.Tags + } + }), + {} as Record< + string, + { cert: string; privateKey: string; certificateChain?: string; arn?: string; Tags?: AWS.ACM.TagList } + > + ); + + return { + acmCertificates: res + }; + }; + + const syncCertificates = async ( + pkiSync: TPkiSyncWithCredentials, + certificateMap: TCertificateMap + ): Promise => { + const destinationConfig = pkiSync.destinationConfig as TAwsCertificateManagerPkiSyncConfig; + const acm = await getAwsAcmClient( + pkiSync.connection.id, + destinationConfig.region as AWSRegion, + appConnectionDAL, + kmsService + ); + + const { acmCertificates } = await $getAwsAcmCertificates(acm, pkiSync.id); + + const setCertificates: CertificateImportRequest[] = []; + + const activeCertificateNames = Object.keys(certificateMap); + + Object.entries(certificateMap).forEach(([certName, certData]) => { + const { cert, privateKey, certificateChain } = certData; + const certificateName = generateCertificateName(certName, pkiSync); + + const existingCert = Object.values(acmCertificates).find((acmCert) => + validateCertificateIdentification(certName, acmCert) + ); + + const shouldUpdateCert = !existingCert || existingCert.cert !== cert; + + try { + validateCertificateContent(cert, privateKey); + } catch (validationError) { + throw new PkiSyncError({ + message: `Certificate validation failed for ${certName}: ${validationError instanceof Error ? validationError.message : String(validationError)}`, + shouldRetry: false, + context: { + certificateName, + certName + } + }); + } + + if (shouldUpdateCert) { + setCertificates.push({ + key: certName, + name: certificateName, + cert, + privateKey, + certificateChain, + existingArn: existingCert?.arn + }); + } + }); + + // Identify expired/removed certificates that need to be cleaned up from ACM + const certificatesToRemove = Object.values(acmCertificates) + .filter((acmCert) => { + if (!acmCert.arn || !acmCert.Tags) { + return false; + } + + const certNameTag = findInfisicalCertificateTag(acmCert.Tags); + if (!certNameTag || !certNameTag.Value) { + return false; + } + + const isActive = activeCertificateNames.includes(certNameTag.Value); + return !isActive; + }) + .map((acmCert) => acmCert.arn!) + .filter((arn) => arn); + + const uploadResults = await executeWithConcurrencyLimit( + setCertificates, + async ({ key, name, cert, privateKey, certificateChain, existingArn }) => { + try { + const importParams: AWS.ACM.ImportCertificateRequest = { + Certificate: cert, + PrivateKey: privateKey, + Tags: [ + { + Key: INFISICAL_CERTIFICATE_TAG, + Value: key + } + ] + }; + + if (certificateChain && certificateChain.trim().length > 0) { + importParams.CertificateChain = certificateChain; + } + if (existingArn) { + importParams.CertificateArn = existingArn; + } + + const response = await withRateLimitRetry(() => acm.importCertificate(importParams).promise(), { + operation: "import-certificate", + syncId: pkiSync.id + }); + + return { key, name, success: true, response }; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : "Unknown error"; + throw new PkiSyncError({ + message: `Failed to import certificate ${key} to AWS Certificate Manager: ${errorMessage}`, + cause: error instanceof Error ? error : new Error(errorMessage), + context: { + certificateKey: key, + certificateName: name, + region: destinationConfig.region + } + }); + } + }, + { operation: "import-certificates", syncId: pkiSync.id } + ); + + const results = uploadResults; + const failedUploads = results.filter((result) => result.status === "rejected"); + const successfulUploads = results.filter((result) => result.status === "fulfilled"); + + let removedCertificates = 0; + let failedRemovals = 0; + let removeResults: PromiseSettledResult<{ arn: string; success: boolean; error?: Error }>[] = []; + + if (certificatesToRemove.length > 0) { + removeResults = await executeWithConcurrencyLimit( + certificatesToRemove, + async (certificateArn) => deleteCertificateFromAcm(acm, certificateArn, "delete-certificate", pkiSync.id), + { operation: "remove-certificates", syncId: pkiSync.id } + ); + + const successfulRemovals = removeResults.filter( + (result) => result.status === "fulfilled" && result.value.success + ); + removedCertificates = successfulRemovals.length; + failedRemovals = removeResults.length - removedCertificates; + } + + const details: { + failedUploads?: Array<{ name: string; error: string }>; + failedRemovals?: Array<{ name: string; error: string }>; + } = {}; + + if (failedUploads.length > 0) { + details.failedUploads = failedUploads.map((failure, index) => { + const certificateName = setCertificates[index]?.name || "unknown"; + let errorMessage = "Unknown error"; + + if (failure.status === "rejected") { + errorMessage = failure.reason instanceof Error ? failure.reason.message : "Unknown error"; + } + + return { + name: certificateName, + error: errorMessage + }; + }); + } + + if (failedRemovals > 0 && removeResults.length > 0) { + const actualFailedRemovals = removeResults + .map((result, index) => { + if (result.status === "rejected") { + const arn = certificatesToRemove[index] || "unknown"; + const errorMessage = result.reason instanceof Error ? result.reason.message : "Unknown error"; + return { + name: arn.includes("certificate/") ? extractCertificateNameFromArn(arn) : arn, + error: errorMessage + }; + } + return null; + }) + .filter((item): item is { name: string; error: string } => item !== null); + + details.failedRemovals = actualFailedRemovals; + } + + return { + uploaded: successfulUploads.length, + removed: removedCertificates, + failedRemovals, + skipped: Object.keys(certificateMap).length - setCertificates.length, + details: Object.keys(details).length > 0 ? details : undefined + }; + }; + + const removeCertificates = async ( + pkiSync: TPkiSyncWithCredentials, + certificateNames: string[] + ): Promise => { + const destinationConfig = pkiSync.destinationConfig as TAwsCertificateManagerPkiSyncConfig; + const acm = await getAwsAcmClient( + pkiSync.connection.id, + destinationConfig.region as AWSRegion, + appConnectionDAL, + kmsService + ); + + const { acmCertificates } = await $getAwsAcmCertificates(acm, pkiSync.id); + + const certificateArnsToRemove: string[] = []; + + for (const certName of certificateNames) { + const matchingCerts = Object.values(acmCertificates).filter((acmCert) => + validateCertificateIdentification(certName, acmCert) + ); + + for (const acmCert of matchingCerts) { + if (acmCert.arn) { + certificateArnsToRemove.push(acmCert.arn); + } + } + } + + const results = await executeWithConcurrencyLimit( + certificateArnsToRemove, + async (certificateArn) => + deleteCertificateFromAcm(acm, certificateArn, "delete-specific-certificate", pkiSync.id, true), + { operation: "remove-specific-certificates", syncId: pkiSync.id } + ); + + const failedRemovals = results.filter((result) => result.status === "rejected"); + + if (failedRemovals.length > 0) { + const failedReasons = failedRemovals.map((failure) => { + if (failure.status === "rejected") { + return failure.reason instanceof Error ? failure.reason.message : "Unknown error"; + } + return "Unknown error"; + }); + + throw new PkiSyncError({ + message: `Failed to remove ${failedRemovals.length} certificate(s) from AWS Certificate Manager`, + context: { + failedReasons, + totalCertificates: certificateArnsToRemove.length, + failedCount: failedRemovals.length + } + }); + } + + return { + removed: certificateArnsToRemove.length - failedRemovals.length, + failed: failedRemovals.length, + skipped: certificateNames.length - certificateArnsToRemove.length + }; + }; + + return { + syncCertificates, + removeCertificates + }; +}; diff --git a/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-schemas.ts b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-schemas.ts new file mode 100644 index 0000000000..eb9ae54444 --- /dev/null +++ b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-schemas.ts @@ -0,0 +1,84 @@ +import RE2 from "re2"; +import { z } from "zod"; + +import { AppConnection, AWSRegion } from "@app/services/app-connection/app-connection-enums"; +import { PkiSync } from "@app/services/pki-sync/pki-sync-enums"; +import { PkiSyncSchema } from "@app/services/pki-sync/pki-sync-schemas"; + +import { AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING } from "./aws-certificate-manager-pki-sync-constants"; + +export const AwsCertificateManagerPkiSyncConfigSchema = z.object({ + region: z.nativeEnum(AWSRegion) +}); + +const AwsCertificateManagerPkiSyncOptionsSchema = z.object({ + canImportCertificates: z.boolean().default(false), + canRemoveCertificates: z.boolean().default(true), + certificateNameSchema: z + .string() + .optional() + .refine( + (schema) => { + if (!schema) return true; + + // Validate that {{certificateId}} placeholder is present + if (!schema.includes("{{certificateId}}")) { + return false; + } + + const testName = schema + .replace(new RE2("\\{\\{certificateId\\}\\}", "g"), "test-cert-id") + .replace(new RE2("\\{\\{environment\\}\\}", "g"), "test-env"); + + const hasForbiddenChars = AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.FORBIDDEN_CHARACTERS.split("").some( + (char) => testName.includes(char) + ); + + return ( + AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.NAME_PATTERN.test(testName) && + !hasForbiddenChars && + testName.length >= AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.MIN_LENGTH && + testName.length <= AWS_CERTIFICATE_MANAGER_CERTIFICATE_NAMING.MAX_LENGTH + ); + }, + { + message: + "Certificate name schema must include {{certificateId}} placeholder and result in names that contain only alphanumeric characters, spaces, hyphens, and underscores and be 1-256 characters long when compiled for AWS Certificate Manager" + } + ) +}); + +export const AwsCertificateManagerPkiSyncSchema = PkiSyncSchema.extend({ + destination: z.literal(PkiSync.AwsCertificateManager), + destinationConfig: AwsCertificateManagerPkiSyncConfigSchema, + syncOptions: AwsCertificateManagerPkiSyncOptionsSchema +}); + +export const CreateAwsCertificateManagerPkiSyncSchema = z.object({ + name: z.string().trim().min(1).max(64), + description: z.string().optional(), + isAutoSyncEnabled: z.boolean().default(true), + destinationConfig: AwsCertificateManagerPkiSyncConfigSchema, + syncOptions: AwsCertificateManagerPkiSyncOptionsSchema.optional().default({}), + subscriberId: z.string().optional(), + connectionId: z.string(), + projectId: z.string().trim().min(1) +}); + +export const UpdateAwsCertificateManagerPkiSyncSchema = z.object({ + name: z.string().trim().min(1).max(64).optional(), + description: z.string().optional(), + isAutoSyncEnabled: z.boolean().optional(), + destinationConfig: AwsCertificateManagerPkiSyncConfigSchema.optional(), + syncOptions: AwsCertificateManagerPkiSyncOptionsSchema.optional(), + subscriberId: z.string().optional(), + connectionId: z.string().optional() +}); + +export const AwsCertificateManagerPkiSyncListItemSchema = z.object({ + name: z.literal("AWS Certificate Manager"), + connection: z.literal(AppConnection.AWS), + destination: z.literal(PkiSync.AwsCertificateManager), + canImportCertificates: z.literal(false), + canRemoveCertificates: z.literal(true) +}); diff --git a/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-types.ts b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-types.ts new file mode 100644 index 0000000000..717e86438b --- /dev/null +++ b/backend/src/services/pki-sync/aws-certificate-manager/aws-certificate-manager-pki-sync-types.ts @@ -0,0 +1,58 @@ +import * as AWS from "aws-sdk"; +import { z } from "zod"; + +import { TAwsConnection } from "@app/services/app-connection/aws/aws-connection-types"; + +import { + AwsCertificateManagerPkiSyncConfigSchema, + AwsCertificateManagerPkiSyncSchema, + CreateAwsCertificateManagerPkiSyncSchema, + UpdateAwsCertificateManagerPkiSyncSchema +} from "./aws-certificate-manager-pki-sync-schemas"; + +export type TAwsCertificateManagerPkiSyncConfig = z.infer; + +export type TAwsCertificateManagerPkiSync = z.infer; + +export type TAwsCertificateManagerPkiSyncInput = z.infer; + +export type TAwsCertificateManagerPkiSyncUpdate = z.infer; + +export type TAwsCertificateManagerPkiSyncWithCredentials = TAwsCertificateManagerPkiSync & { + connection: TAwsConnection; +}; + +export interface ACMCertificateWithKey extends AWS.ACM.CertificateDetail { + Tags?: AWS.ACM.TagList; + key: string; + cert: string; + certificateChain: string; + privateKey: string; + arn?: string; +} + +export interface SyncCertificatesResult { + uploaded: number; + removed: number; + failedRemovals: number; + skipped: number; + details?: { + failedUploads?: Array<{ name: string; error: string }>; + failedRemovals?: Array<{ name: string; error: string }>; + }; +} + +export interface RemoveCertificatesResult { + removed: number; + failed: number; + skipped: number; +} + +export interface CertificateImportRequest { + key: string; + name: string; + cert: string; + privateKey: string; + certificateChain?: string; + existingArn?: string; +} diff --git a/backend/src/services/pki-sync/aws-certificate-manager/index.ts b/backend/src/services/pki-sync/aws-certificate-manager/index.ts new file mode 100644 index 0000000000..fb30b5c71a --- /dev/null +++ b/backend/src/services/pki-sync/aws-certificate-manager/index.ts @@ -0,0 +1,4 @@ +export * from "./aws-certificate-manager-pki-sync-constants"; +export * from "./aws-certificate-manager-pki-sync-fns"; +export * from "./aws-certificate-manager-pki-sync-schemas"; +export * from "./aws-certificate-manager-pki-sync-types"; diff --git a/backend/src/services/pki-sync/pki-sync-enums.ts b/backend/src/services/pki-sync/pki-sync-enums.ts index fadd709146..46a7fc9756 100644 --- a/backend/src/services/pki-sync/pki-sync-enums.ts +++ b/backend/src/services/pki-sync/pki-sync-enums.ts @@ -1,5 +1,6 @@ export enum PkiSync { - AzureKeyVault = "azure-key-vault" + AzureKeyVault = "azure-key-vault", + AwsCertificateManager = "aws-certificate-manager" } export enum PkiSyncStatus { diff --git a/backend/src/services/pki-sync/pki-sync-fns.ts b/backend/src/services/pki-sync/pki-sync-fns.ts index 343afa626f..75f312fff9 100644 --- a/backend/src/services/pki-sync/pki-sync-fns.ts +++ b/backend/src/services/pki-sync/pki-sync-fns.ts @@ -6,6 +6,8 @@ import { BadRequestError } from "@app/lib/errors"; import { TAppConnectionDALFactory } from "@app/services/app-connection/app-connection-dal"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; +import { AWS_CERTIFICATE_MANAGER_PKI_SYNC_LIST_OPTION } from "./aws-certificate-manager/aws-certificate-manager-pki-sync-constants"; +import { awsCertificateManagerPkiSyncFactory } from "./aws-certificate-manager/aws-certificate-manager-pki-sync-fns"; import { AZURE_KEY_VAULT_PKI_SYNC_LIST_OPTION } from "./azure-key-vault/azure-key-vault-pki-sync-constants"; import { azureKeyVaultPkiSyncFactory } from "./azure-key-vault/azure-key-vault-pki-sync-fns"; import { PkiSync } from "./pki-sync-enums"; @@ -14,7 +16,8 @@ import { TCertificateMap, TPkiSyncWithCredentials } from "./pki-sync-types"; const ENTERPRISE_PKI_SYNCS: PkiSync[] = []; const PKI_SYNC_LIST_OPTIONS = { - [PkiSync.AzureKeyVault]: AZURE_KEY_VAULT_PKI_SYNC_LIST_OPTION + [PkiSync.AzureKeyVault]: AZURE_KEY_VAULT_PKI_SYNC_LIST_OPTION, + [PkiSync.AwsCertificateManager]: AWS_CERTIFICATE_MANAGER_PKI_SYNC_LIST_OPTION }; export const enterprisePkiSyncCheck = async ( @@ -144,8 +147,10 @@ export const matchesCertificateNameSchema = (name: string, environment: string, return name.startsWith(prefix) && name.endsWith(suffix); }; -const isAzureKeyVaultPkiSync = (pkiSync: TPkiSyncWithCredentials): boolean => { - return pkiSync.destination === PkiSync.AzureKeyVault; +const checkPkiSyncDestination = (pkiSync: TPkiSyncWithCredentials, destination: PkiSync): void => { + if (pkiSync.destination !== destination) { + throw new Error(`Invalid PKI sync destination: ${pkiSync.destination}`); + } }; export const PkiSyncFns = { @@ -163,6 +168,11 @@ export const PkiSyncFns = { "Azure Key Vault does not support importing certificates into Infisical (private keys cannot be extracted)" ); } + case PkiSync.AwsCertificateManager: { + throw new Error( + "AWS Certificate Manager does not support importing certificates into Infisical (private keys cannot be extracted)" + ); + } default: throw new Error(`Unsupported PKI sync destination: ${String(pkiSync.destination)}`); } @@ -188,12 +198,15 @@ export const PkiSyncFns = { }> => { switch (pkiSync.destination) { case PkiSync.AzureKeyVault: { - if (!isAzureKeyVaultPkiSync(pkiSync)) { - throw new Error("Invalid Azure Key Vault PKI sync configuration"); - } + checkPkiSyncDestination(pkiSync, PkiSync.AzureKeyVault); const azureKeyVaultPkiSync = azureKeyVaultPkiSyncFactory(dependencies); return azureKeyVaultPkiSync.syncCertificates(pkiSync, certificateMap); } + case PkiSync.AwsCertificateManager: { + checkPkiSyncDestination(pkiSync, PkiSync.AwsCertificateManager); + const awsCertificateManagerPkiSync = awsCertificateManagerPkiSyncFactory(dependencies); + return awsCertificateManagerPkiSync.syncCertificates(pkiSync, certificateMap); + } default: throw new Error(`Unsupported PKI sync destination: ${String(pkiSync.destination)}`); } @@ -209,13 +222,17 @@ export const PkiSyncFns = { ): Promise => { switch (pkiSync.destination) { case PkiSync.AzureKeyVault: { - if (!isAzureKeyVaultPkiSync(pkiSync)) { - throw new Error("Invalid Azure Key Vault PKI sync configuration"); - } + checkPkiSyncDestination(pkiSync, PkiSync.AzureKeyVault); const azureKeyVaultPkiSync = azureKeyVaultPkiSyncFactory(dependencies); await azureKeyVaultPkiSync.removeCertificates(pkiSync, certificateNames); break; } + case PkiSync.AwsCertificateManager: { + checkPkiSyncDestination(pkiSync, PkiSync.AwsCertificateManager); + const awsCertificateManagerPkiSync = awsCertificateManagerPkiSyncFactory(dependencies); + await awsCertificateManagerPkiSync.removeCertificates(pkiSync, certificateNames); + break; + } default: throw new Error(`Unsupported PKI sync destination: ${String(pkiSync.destination)}`); } diff --git a/backend/src/services/pki-sync/pki-sync-maps.ts b/backend/src/services/pki-sync/pki-sync-maps.ts index b667416c6a..5c416b5130 100644 --- a/backend/src/services/pki-sync/pki-sync-maps.ts +++ b/backend/src/services/pki-sync/pki-sync-maps.ts @@ -3,9 +3,11 @@ import { AppConnection } from "@app/services/app-connection/app-connection-enums import { PkiSync } from "./pki-sync-enums"; export const PKI_SYNC_NAME_MAP: Record = { - [PkiSync.AzureKeyVault]: "Azure Key Vault" + [PkiSync.AzureKeyVault]: "Azure Key Vault", + [PkiSync.AwsCertificateManager]: "AWS Certificate Manager" }; export const PKI_SYNC_CONNECTION_MAP: Record = { - [PkiSync.AzureKeyVault]: AppConnection.AzureKeyVault + [PkiSync.AzureKeyVault]: AppConnection.AzureKeyVault, + [PkiSync.AwsCertificateManager]: AppConnection.AWS }; diff --git a/backend/src/services/project-bot/project-bot-dal.ts b/backend/src/services/project-bot/project-bot-dal.ts index ecb23f78b9..2f1863ad6d 100644 --- a/backend/src/services/project-bot/project-bot-dal.ts +++ b/backend/src/services/project-bot/project-bot-dal.ts @@ -1,7 +1,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName, TProjectBots, TUserEncryptionKeys } from "@app/db/schemas"; +import { AccessScope, TableName, TProjectBots, TUserEncryptionKeys } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { ormify, selectAllTableCols } from "@app/lib/knex"; @@ -44,12 +44,13 @@ export const projectBotDALFactory = (db: TDbClient) => { const findProjectUserWorkspaceKey = async (projectId: string) => { try { const doc = await db - .replicaNode()(TableName.ProjectMembership) - .where(`${TableName.ProjectMembership}.projectId` as "projectId", projectId) - .where(`${TableName.ProjectKeys}.projectId` as "projectId", projectId) + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scopeProjectId` as "projectId", projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) .where(`${TableName.Users}.isGhost` as "isGhost", false) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) - .join(TableName.ProjectKeys, `${TableName.ProjectMembership}.userId`, `${TableName.ProjectKeys}.receiverId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .join(TableName.ProjectKeys, `${TableName.Membership}.actorUserId`, `${TableName.ProjectKeys}.receiverId`) + .where(`${TableName.ProjectKeys}.projectId` as "projectId", projectId) .join( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, diff --git a/backend/src/services/project-key/project-key-dal.ts b/backend/src/services/project-key/project-key-dal.ts index bb91b9c855..07d061e954 100644 --- a/backend/src/services/project-key/project-key-dal.ts +++ b/backend/src/services/project-key/project-key-dal.ts @@ -1,7 +1,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName, TProjectKeys } from "@app/db/schemas"; +import { AccessScope, TableName, TProjectKeys } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { ormify, selectAllTableCols } from "@app/lib/knex"; @@ -34,11 +34,12 @@ export const projectKeyDALFactory = (db: TDbClient) => { const findAllProjectUserPubKeys = async (projectId: string, tx?: Knex) => { try { - const pubKeys = await (tx || db.replicaNode())(TableName.ProjectMembership) - .where({ projectId }) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + const pubKeys = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scopeProjectId` as "scopeProjectId", projectId) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .join(TableName.UserEncryptionKey, `${TableName.Users}.id`, `${TableName.UserEncryptionKey}.userId`) - .select("userId", "publicKey"); + .select(db.ref("userId").withSchema(TableName.Users), "publicKey"); return pubKeys; } catch (error) { throw new DatabaseError({ error, name: "Find all workspace pub keys" }); diff --git a/backend/src/services/project-key/project-key-service.ts b/backend/src/services/project-key/project-key-service.ts index a884d25bc2..7faa11f2b8 100644 --- a/backend/src/services/project-key/project-key-service.ts +++ b/backend/src/services/project-key/project-key-service.ts @@ -1,25 +1,25 @@ import { ForbiddenError } from "@casl/ability"; -import { ActionProjectType } from "@app/db/schemas"; +import { AccessScope, ActionProjectType } from "@app/db/schemas"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { ProjectPermissionMemberActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; import { BadRequestError } from "@app/lib/errors"; -import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TProjectKeyDALFactory } from "./project-key-dal"; import { TGetLatestProjectKeyDTO, TUploadProjectKeyDTO } from "./project-key-types"; type TProjectKeyServiceFactoryDep = { permissionService: TPermissionServiceFactory; projectKeyDAL: TProjectKeyDALFactory; - projectMembershipDAL: TProjectMembershipDALFactory; + membershipUserDAL: TMembershipUserDALFactory; }; export type TProjectKeyServiceFactory = ReturnType; export const projectKeyServiceFactory = ({ projectKeyDAL, - projectMembershipDAL, + membershipUserDAL, permissionService }: TProjectKeyServiceFactoryDep) => { const uploadProjectKeys = async ({ @@ -42,9 +42,10 @@ export const projectKeyServiceFactory = ({ }); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member); - const receiverMembership = await projectMembershipDAL.findOne({ - userId: receiverId, - projectId + const receiverMembership = await membershipUserDAL.findOne({ + actorUserId: receiverId, + scopeProjectId: projectId, + scope: AccessScope.Project }); if (!receiverMembership) throw new BadRequestError({ diff --git a/backend/src/services/project-membership/project-membership-dal.ts b/backend/src/services/project-membership/project-membership-dal.ts index dd503c2a38..fe3b572267 100644 --- a/backend/src/services/project-membership/project-membership-dal.ts +++ b/backend/src/services/project-membership/project-membership-dal.ts @@ -1,15 +1,13 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName, TUserEncryptionKeys } from "@app/db/schemas"; +import { AccessScope, TableName, TMemberships, TUserEncryptionKeys } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; -import { ormify, selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; +import { selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"; export type TProjectMembershipDALFactory = ReturnType; export const projectMembershipDALFactory = (db: TDbClient) => { - const projectMemberOrm = ormify(db, TableName.ProjectMembership); - // special query const findAllProjectMembers = async ( projectId: string, @@ -17,18 +15,17 @@ export const projectMembershipDALFactory = (db: TDbClient) => { ) => { try { const docs = await db - .replicaNode()(TableName.ProjectMembership) - .where({ [`${TableName.ProjectMembership}.projectId` as "projectId"]: projectId }) - .join(TableName.Project, `${TableName.ProjectMembership}.projectId`, `${TableName.Project}.id`) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) - .join(TableName.OrgMembership, (qb) => { - qb.on(`${TableName.Users}.id`, "=", `${TableName.OrgMembership}.userId`).andOn( - `${TableName.OrgMembership}.orgId`, - "=", - `${TableName.Project}.orgId` - ); + .replicaNode()(TableName.Membership) + .where({ [`${TableName.Membership}.scopeProjectId` as "scopeProjectId"]: projectId }) + .where({ [`${TableName.Membership}.scope` as "scope"]: AccessScope.Project }) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .join(db(TableName.Membership).as("orgMembership"), (qb) => { + qb.on(`${TableName.Users}.id`, "=", `orgMembership.actorUserId`) + .andOn(`orgMembership.scopeOrgId`, "=", `${TableName.Project}.orgId`) + .andOn("orgMembership.scope", db.raw("?", [AccessScope.Organization])); }) - .where((qb) => { if (filter.usernames) { void qb.whereIn("username", filter.usernames); @@ -37,69 +34,46 @@ export const projectMembershipDALFactory = (db: TDbClient) => { void qb.where("username", filter.username); } if (filter.id) { - void qb.where(`${TableName.ProjectMembership}.id`, filter.id); + void qb.where(`${TableName.Membership}.id`, filter.id); } if (filter.roles && filter.roles.length > 0) { void qb.whereExists((subQuery) => { void subQuery .select("role") - .from(TableName.ProjectUserMembershipRole) - .leftJoin( - TableName.ProjectRoles, - `${TableName.ProjectRoles}.id`, - `${TableName.ProjectUserMembershipRole}.customRoleId` - ) - .whereRaw("??.?? = ??.??", [ - TableName.ProjectUserMembershipRole, - "projectMembershipId", - TableName.ProjectMembership, - "id" - ]) + .from(TableName.MembershipRole) + .leftJoin(TableName.Role, `${TableName.Role}.id`, `${TableName.MembershipRole}.customRoleId`) + .whereRaw("??.?? = ??.??", [TableName.MembershipRole, "membershipId", TableName.Membership, "id"]) .where((subQb) => { void subQb - .whereIn(`${TableName.ProjectUserMembershipRole}.role`, filter.roles as string[]) - .orWhereIn(`${TableName.ProjectRoles}.slug`, filter.roles as string[]); + .whereIn(`${TableName.MembershipRole}.role`, filter.roles as string[]) + .orWhereIn(`${TableName.Role}.slug`, filter.roles as string[]); }); }); } }) - .join( - TableName.UserEncryptionKey, - `${TableName.UserEncryptionKey}.userId`, - `${TableName.Users}.id` - ) - .join( - TableName.ProjectUserMembershipRole, - `${TableName.ProjectUserMembershipRole}.projectMembershipId`, - `${TableName.ProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.ProjectUserMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .select( - db.ref("id").withSchema(TableName.ProjectMembership), - db.ref("createdAt").withSchema(TableName.ProjectMembership), + db.ref("id").withSchema(TableName.Membership), + db.ref("createdAt").withSchema(TableName.Membership), db.ref("isGhost").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), db.ref("email").withSchema(TableName.Users), - db.ref("publicKey").withSchema(TableName.UserEncryptionKey), db.ref("firstName").withSchema(TableName.Users), db.ref("lastName").withSchema(TableName.Users), db.ref("id").withSchema(TableName.Users).as("userId"), - db.ref("role").withSchema(TableName.ProjectUserMembershipRole), - db.ref("id").withSchema(TableName.ProjectUserMembershipRole).as("membershipRoleId"), - db.ref("customRoleId").withSchema(TableName.ProjectUserMembershipRole), - db.ref("name").withSchema(TableName.ProjectRoles).as("customRoleName"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("temporaryMode").withSchema(TableName.ProjectUserMembershipRole), - db.ref("isTemporary").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryRange").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryAccessStartTime").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryAccessEndTime").withSchema(TableName.ProjectUserMembershipRole), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("customRoleId").withSchema(TableName.MembershipRole), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole), + db.ref("isTemporary").withSchema(TableName.MembershipRole), + db.ref("temporaryRange").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessStartTime").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessEndTime").withSchema(TableName.MembershipRole), db.ref("name").as("projectName").withSchema(TableName.Project), - db.ref("isActive").withSchema(TableName.OrgMembership) + db.ref("isActive").withSchema("orgMembership") ) .where({ isGhost: false }) .orderBy(`${TableName.Users}.username` as "username"); @@ -111,7 +85,6 @@ export const projectMembershipDALFactory = (db: TDbClient) => { firstName, username, lastName, - publicKey, isGhost, id, userId, @@ -128,7 +101,9 @@ export const projectMembershipDALFactory = (db: TDbClient) => { firstName, lastName, id: userId, - publicKey, + // akhilmhdh: if we do user encryption based join this would fail for scim user who haven't logged in yet + // public key is not used anymore as well + publicKey: "", isGhost, isOrgMembershipActive: isActive }, @@ -184,9 +159,11 @@ export const projectMembershipDALFactory = (db: TDbClient) => { const findProjectGhostUser = async (projectId: string, tx?: Knex) => { try { - const ghostUser = await (tx || db.replicaNode())(TableName.ProjectMembership) - .where({ projectId }) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + const ghostUser = await (tx || db.replicaNode())(TableName.Membership) + .where({ [`${TableName.Membership}.scopeProjectId` as "scopeProjectId"]: projectId }) + .where({ [`${TableName.Membership}.scope` as "scope"]: AccessScope.Project }) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .select(selectAllTableCols(TableName.Users)) .where({ isGhost: true }) .first(); @@ -200,21 +177,24 @@ export const projectMembershipDALFactory = (db: TDbClient) => { const findMembershipsByUsername = async (projectId: string, usernames: string[]) => { try { const members = await db - .replicaNode()(TableName.ProjectMembership) - .where({ projectId }) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where({ [`${TableName.Membership}.scopeProjectId` as "scopeProjectId"]: projectId }) + .where({ [`${TableName.Membership}.scope` as "scope"]: AccessScope.Project }) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .join( TableName.UserEncryptionKey, `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id` ) .select( - selectAllTableCols(TableName.ProjectMembership), + selectAllTableCols(TableName.Membership), db.ref("id").withSchema(TableName.Users).as("userId"), db.ref("username").withSchema(TableName.Users) ) .whereIn("username", usernames) .where({ isGhost: false }); + return members.map(({ userId, username, ...data }) => ({ ...data, user: { id: userId, username } @@ -227,45 +207,33 @@ export const projectMembershipDALFactory = (db: TDbClient) => { const findProjectMembershipsByUserId = async (orgId: string, userId: string) => { try { const docs = await db - .replicaNode()(TableName.ProjectMembership) - .join(TableName.Project, `${TableName.ProjectMembership}.projectId`, `${TableName.Project}.id`) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where({ [`${TableName.Membership}.scope` as "scope"]: AccessScope.Project }) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .where(`${TableName.Users}.id`, userId) .where(`${TableName.Project}.orgId`, orgId) - .join( - TableName.UserEncryptionKey, - `${TableName.UserEncryptionKey}.userId`, - `${TableName.Users}.id` - ) - .join( - TableName.ProjectUserMembershipRole, - `${TableName.ProjectUserMembershipRole}.projectMembershipId`, - `${TableName.ProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.ProjectUserMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .select( - db.ref("id").withSchema(TableName.ProjectMembership), + db.ref("id").withSchema(TableName.Membership), db.ref("isGhost").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), db.ref("email").withSchema(TableName.Users), - db.ref("publicKey").withSchema(TableName.UserEncryptionKey), db.ref("firstName").withSchema(TableName.Users), db.ref("lastName").withSchema(TableName.Users), db.ref("id").withSchema(TableName.Users).as("userId"), - db.ref("role").withSchema(TableName.ProjectUserMembershipRole), - db.ref("id").withSchema(TableName.ProjectUserMembershipRole).as("membershipRoleId"), - db.ref("customRoleId").withSchema(TableName.ProjectUserMembershipRole), - db.ref("name").withSchema(TableName.ProjectRoles).as("customRoleName"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("temporaryMode").withSchema(TableName.ProjectUserMembershipRole), - db.ref("isTemporary").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryRange").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryAccessStartTime").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryAccessEndTime").withSchema(TableName.ProjectUserMembershipRole), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("customRoleId").withSchema(TableName.MembershipRole), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole), + db.ref("isTemporary").withSchema(TableName.MembershipRole), + db.ref("temporaryRange").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessStartTime").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessEndTime").withSchema(TableName.MembershipRole), db.ref("name").as("projectName").withSchema(TableName.Project), db.ref("id").as("projectId").withSchema(TableName.Project), db.ref("type").as("projectType").withSchema(TableName.Project) @@ -274,22 +242,21 @@ export const projectMembershipDALFactory = (db: TDbClient) => { const members = sqlNestRelationships({ data: docs, - parentMapper: ({ - email, - firstName, - username, - lastName, - publicKey, - isGhost, - id, - projectId, - projectName, - projectType - }) => ({ + parentMapper: ({ email, firstName, username, lastName, isGhost, id, projectId, projectName, projectType }) => ({ id, userId, projectId, - user: { email, username, firstName, lastName, id: userId, publicKey, isGhost }, + user: { + email, + username, + firstName, + lastName, + id: userId, + isGhost, + // akhilmhdh: if we do user encryption based join this would fail for scim user who haven't logged in yet + // public key is not used anymore as well + publicKey: "" + }, project: { id: projectId, name: projectName, @@ -336,9 +303,11 @@ export const projectMembershipDALFactory = (db: TDbClient) => { const findProjectMembershipsByUserIds = async (orgId: string, userIds: string[]) => { try { const docs = await db - .replicaNode()(TableName.ProjectMembership) - .join(TableName.Project, `${TableName.ProjectMembership}.projectId`, `${TableName.Project}.id`) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where({ [`${TableName.Membership}.scope` as "scope"]: AccessScope.Project }) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .whereIn(`${TableName.Users}.id`, userIds) .where(`${TableName.Project}.orgId`, orgId) .join( @@ -346,18 +315,10 @@ export const projectMembershipDALFactory = (db: TDbClient) => { `${TableName.UserEncryptionKey}.userId`, `${TableName.Users}.id` ) - .join( - TableName.ProjectUserMembershipRole, - `${TableName.ProjectUserMembershipRole}.projectMembershipId`, - `${TableName.ProjectMembership}.id` - ) - .leftJoin( - TableName.ProjectRoles, - `${TableName.ProjectUserMembershipRole}.customRoleId`, - `${TableName.ProjectRoles}.id` - ) + .join(TableName.MembershipRole, `${TableName.MembershipRole}.membershipId`, `${TableName.Membership}.id`) + .leftJoin(TableName.Role, `${TableName.MembershipRole}.customRoleId`, `${TableName.Role}.id`) .select( - db.ref("id").withSchema(TableName.ProjectMembership), + db.ref("id").withSchema(TableName.Membership), db.ref("isGhost").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users), db.ref("email").withSchema(TableName.Users), @@ -365,16 +326,16 @@ export const projectMembershipDALFactory = (db: TDbClient) => { db.ref("firstName").withSchema(TableName.Users), db.ref("lastName").withSchema(TableName.Users), db.ref("id").withSchema(TableName.Users).as("userId"), - db.ref("role").withSchema(TableName.ProjectUserMembershipRole), - db.ref("id").withSchema(TableName.ProjectUserMembershipRole).as("membershipRoleId"), - db.ref("customRoleId").withSchema(TableName.ProjectUserMembershipRole), - db.ref("name").withSchema(TableName.ProjectRoles).as("customRoleName"), - db.ref("slug").withSchema(TableName.ProjectRoles).as("customRoleSlug"), - db.ref("temporaryMode").withSchema(TableName.ProjectUserMembershipRole), - db.ref("isTemporary").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryRange").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryAccessStartTime").withSchema(TableName.ProjectUserMembershipRole), - db.ref("temporaryAccessEndTime").withSchema(TableName.ProjectUserMembershipRole), + db.ref("role").withSchema(TableName.MembershipRole), + db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"), + db.ref("customRoleId").withSchema(TableName.MembershipRole), + db.ref("name").withSchema(TableName.Role).as("customRoleName"), + db.ref("slug").withSchema(TableName.Role).as("customRoleSlug"), + db.ref("temporaryMode").withSchema(TableName.MembershipRole), + db.ref("isTemporary").withSchema(TableName.MembershipRole), + db.ref("temporaryRange").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessStartTime").withSchema(TableName.MembershipRole), + db.ref("temporaryAccessEndTime").withSchema(TableName.MembershipRole), db.ref("name").as("projectName").withSchema(TableName.Project), db.ref("id").as("projectId").withSchema(TableName.Project), db.ref("type").as("projectType").withSchema(TableName.Project) @@ -444,7 +405,6 @@ export const projectMembershipDALFactory = (db: TDbClient) => { }; return { - ...projectMemberOrm, findAllProjectMembers, findProjectGhostUser, findMembershipsByUsername, diff --git a/backend/src/services/project-membership/project-membership-service.ts b/backend/src/services/project-membership/project-membership-service.ts index 301ce1bc04..b0949d550a 100644 --- a/backend/src/services/project-membership/project-membership-service.ts +++ b/backend/src/services/project-membership/project-membership-service.ts @@ -1,64 +1,51 @@ /* eslint-disable no-await-in-loop */ import { ForbiddenError } from "@casl/ability"; -import { ActionProjectType, ProjectMembershipRole, ProjectVersion, TableName } from "@app/db/schemas"; +import { AccessScope, ActionProjectType, ProjectMembershipRole, ProjectVersion, TableName } from "@app/db/schemas"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; -import { - constructPermissionErrorMessage, - validatePrivilegeChangeOperation -} from "@app/ee/services/permission/permission-fns"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { ProjectPermissionMemberActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { TProjectUserAdditionalPrivilegeDALFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-dal"; import { getConfig } from "@app/lib/config/env"; -import { BadRequestError, ForbiddenRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { groupBy } from "@app/lib/fn"; -import { ms } from "@app/lib/ms"; import { TUserGroupMembershipDALFactory } from "../../ee/services/group/user-group-membership-dal"; +import { TAdditionalPrivilegeDALFactory } from "../additional-privilege/additional-privilege-dal"; import { ActorType } from "../auth/auth-type"; import { TGroupProjectDALFactory } from "../group-project/group-project-dal"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TNotificationServiceFactory } from "../notification/notification-service"; import { NotificationType } from "../notification/notification-types"; -import { TOrgDALFactory } from "../org/org-dal"; import { TProjectDALFactory } from "../project/project-dal"; -import { TProjectBotDALFactory } from "../project-bot/project-bot-dal"; import { TProjectKeyDALFactory } from "../project-key/project-key-dal"; -import { TProjectRoleDALFactory } from "../project-role/project-role-dal"; import { TSecretReminderRecipientsDALFactory } from "../secret-reminder-recipients/secret-reminder-recipients-dal"; import { SmtpTemplates, TSmtpService } from "../smtp/smtp-service"; import { TUserDALFactory } from "../user/user-dal"; import { TProjectMembershipDALFactory } from "./project-membership-dal"; import { - ProjectUserMembershipTemporaryMode, TAddUsersToWorkspaceDTO, - TDeleteProjectMembershipOldDTO, TDeleteProjectMembershipsDTO, - TGetProjectMembershipByIdDTO, TGetProjectMembershipByUsernameDTO, TGetProjectMembershipDTO, - TLeaveProjectDTO, - TUpdateProjectMembershipDTO + TLeaveProjectDTO } from "./project-membership-types"; -import { TProjectUserMembershipRoleDALFactory } from "./project-user-membership-role-dal"; type TProjectMembershipServiceFactoryDep = { permissionService: Pick< TPermissionServiceFactory, - "getProjectPermission" | "getProjectPermissionByRole" | "invalidateProjectPermissionCache" + "getProjectPermission" | "getProjectPermissionByRoles" | "invalidateProjectPermissionCache" >; smtpService: TSmtpService; - projectBotDAL: TProjectBotDALFactory; projectMembershipDAL: TProjectMembershipDALFactory; - projectUserMembershipRoleDAL: Pick; - userDAL: Pick; + membershipUserDAL: TMembershipUserDALFactory; + membershipRoleDAL: Pick; + userDAL: Pick; userGroupMembershipDAL: TUserGroupMembershipDALFactory; - projectRoleDAL: Pick; - orgDAL: Pick; projectDAL: Pick; projectKeyDAL: Pick; licenseService: Pick; - projectUserAdditionalPrivilegeDAL: Pick; + additionalPrivilegeDAL: Pick; secretReminderRecipientsDAL: Pick; groupProjectDAL: TGroupProjectDALFactory; notificationService: Pick; @@ -69,19 +56,17 @@ export type TProjectMembershipServiceFactory = ReturnType { const getProjectMemberships = async ({ actorId, @@ -150,29 +135,6 @@ export const projectMembershipServiceFactory = ({ return membership; }; - const getProjectMembershipById = async ({ - actorId, - actor, - actorOrgId, - actorAuthMethod, - projectId, - id - }: TGetProjectMembershipByIdDTO) => { - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Read, ProjectPermissionSub.Member); - - const [membership] = await projectMembershipDAL.findAllProjectMembers(projectId, { id }); - if (!membership) throw new NotFoundError({ message: `Project membership not found for user ${id}` }); - return membership; - }; - const addUsersToProject = async ({ projectId, actorId, @@ -194,48 +156,58 @@ export const projectMembershipServiceFactory = ({ actionProjectType: ActionProjectType.Any }); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Create, ProjectPermissionSub.Member); - const orgMembers = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.orgId` as "orgId"]: project.orgId, + const orgMembers = await membershipUserDAL.find({ + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: project.orgId, + scope: AccessScope.Organization, $in: { - [`${TableName.OrgMembership}.id` as "id"]: members.map(({ orgMembershipId }) => orgMembershipId) + [`${TableName.Membership}.id` as "id"]: members.map(({ orgMembershipId }) => orgMembershipId) } }); + if (orgMembers.length !== members.length) throw new BadRequestError({ message: "Some users are not part of org" }); - const existingMembers = await projectMembershipDAL.find({ - projectId, - $in: { userId: orgMembers.map(({ userId }) => userId).filter(Boolean) } + const existingMembers = await membershipUserDAL.find({ + [`${TableName.Membership}.scopeProjectId` as "scopeProjectId"]: projectId, + scope: AccessScope.Project, + $in: { actorUserId: orgMembers.map(({ actorUserId }) => actorUserId).filter(Boolean) } }); if (existingMembers.length) throw new BadRequestError({ message: "Some users are already part of project" }); + const orgMembershipUsernames = await userDAL.find({ + $in: { + id: orgMembers.filter((el) => Boolean(el.actorUserId)).map((el) => el.actorUserId as string) + } + }); const userIdsToExcludeForProjectKeyAddition = new Set( await userGroupMembershipDAL.findUserGroupMembershipsInProject( - orgMembers.map(({ username }) => username), + orgMembershipUsernames.map(({ username }) => username), projectId ) ); - await projectMembershipDAL.transaction(async (tx) => { - const projectMemberships = await projectMembershipDAL.insertMany( - orgMembers.map(({ userId }) => ({ - projectId, - userId + await membershipUserDAL.transaction(async (tx) => { + const projectMemberships = await membershipUserDAL.insertMany( + orgMembers.map(({ actorUserId }) => ({ + scopeProjectId: projectId, + actorUserId, + scope: AccessScope.Project, + scopeOrgId: project.orgId })), tx ); - await projectUserMembershipRoleDAL.insertMany( - projectMemberships.map(({ id }) => ({ projectMembershipId: id, role: ProjectMembershipRole.Member })), + await membershipRoleDAL.insertMany( + projectMemberships.map(({ id }) => ({ membershipId: id, role: ProjectMembershipRole.Member })), tx ); const encKeyGroupByOrgMembId = groupBy(members, (i) => i.orgMembershipId); await projectKeyDAL.insertMany( orgMembers - .filter(({ userId }) => !userIdsToExcludeForProjectKeyAddition.has(userId)) - .map(({ userId, id }) => ({ + .filter(({ actorUserId }) => !userIdsToExcludeForProjectKeyAddition.has(actorUserId as string)) + .map(({ actorUserId, id }) => ({ encryptedKey: encKeyGroupByOrgMembId[id][0].workspaceEncryptedKey, nonce: encKeyGroupByOrgMembId[id][0].workspaceEncryptedNonce, senderId: actorId, - receiverId: userId, + receiverId: actorUserId as string, projectId })), tx @@ -246,8 +218,8 @@ export const projectMembershipServiceFactory = ({ if (sendEmails) { await notificationService.createUserNotifications( - orgMembers.map((member) => ({ - userId: member.userId, + orgMembershipUsernames.map((member) => ({ + userId: member.id, orgId: project.orgId, type: NotificationType.PROJECT_INVITATION, title: "Project Invitation", @@ -259,7 +231,7 @@ export const projectMembershipServiceFactory = ({ await smtpService.sendMail({ template: SmtpTemplates.WorkspaceInvite, subjectLine: "Infisical project invitation", - recipients: orgMembers.filter((i) => i.email).map((i) => i.email as string), + recipients: orgMembershipUsernames.filter((i) => i.email).map((i) => i.email as string), substitutions: { workspaceName: project.name, callback_url: `${appCfg.SITE_URL}/login` @@ -269,164 +241,6 @@ export const projectMembershipServiceFactory = ({ return orgMembers; }; - const updateProjectMembership = async ({ - actorId, - actor, - actorOrgId, - actorAuthMethod, - projectId, - membershipId, - roles - }: TUpdateProjectMembershipDTO) => { - const { permission, membership } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member); - - const membershipUser = await userDAL.findUserByProjectMembershipId(membershipId); - if (membershipUser?.isGhost || membershipUser?.projectId !== projectId) { - throw new ForbiddenRequestError({ message: "Forbidden member update" }); - } - - for await (const { role: requestedRoleChange } of roles) { - const { permission: rolePermission } = await permissionService.getProjectPermissionByRole( - requestedRoleChange, - projectId - ); - - const permissionBoundary = validatePrivilegeChangeOperation( - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member, - permission, - rolePermission - ); - if (!permissionBoundary.isValid) - throw new PermissionBoundaryError({ - message: constructPermissionErrorMessage( - `Failed to change role ${requestedRoleChange}`, - membership.shouldUseNewPrivilegeSystem, - ProjectPermissionMemberActions.GrantPrivileges, - ProjectPermissionSub.Member - ), - details: { missingPermissions: permissionBoundary.missingPermissions } - }); - } - - // validate custom roles input - const customInputRoles = roles.filter( - ({ role }) => - !Object.values(ProjectMembershipRole) - // we don't want to include custom in this check; - // this unintentionally enables setting slug to custom which is reserved - .filter((r) => r !== ProjectMembershipRole.Custom) - .includes(role as ProjectMembershipRole) - ); - const hasCustomRole = Boolean(customInputRoles.length); - if (hasCustomRole) { - const plan = await licenseService.getPlan(actorOrgId); - if (!plan?.rbac) - throw new BadRequestError({ - message: "Failed to assign custom role due to RBAC restriction. Upgrade plan to assign custom role to member." - }); - } - - const customRoles = hasCustomRole - ? await projectRoleDAL.find({ - projectId, - $in: { slug: customInputRoles.map(({ role }) => role) } - }) - : []; - if (customRoles.length !== customInputRoles.length) { - throw new NotFoundError({ message: "One or more custom roles not found" }); - } - const customRolesGroupBySlug = groupBy(customRoles, ({ slug }) => slug); - - const sanitizedProjectMembershipRoles = roles.map((inputRole) => { - const isCustomRole = Boolean(customRolesGroupBySlug?.[inputRole.role]?.[0]); - if (!inputRole.isTemporary) { - return { - projectMembershipId: membershipId, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null - }; - } - - // check cron or relative here later for now its just relative - const relativeTimeInMs = ms(inputRole.temporaryRange); - return { - projectMembershipId: membershipId, - role: isCustomRole ? ProjectMembershipRole.Custom : inputRole.role, - customRoleId: customRolesGroupBySlug[inputRole.role] ? customRolesGroupBySlug[inputRole.role][0].id : null, - isTemporary: true, - temporaryMode: ProjectUserMembershipTemporaryMode.Relative, - temporaryRange: inputRole.temporaryRange, - temporaryAccessStartTime: new Date(inputRole.temporaryAccessStartTime), - temporaryAccessEndTime: new Date(new Date(inputRole.temporaryAccessStartTime).getTime() + relativeTimeInMs) - }; - }); - - const updatedRoles = await projectMembershipDAL.transaction(async (tx) => { - await projectUserMembershipRoleDAL.delete({ projectMembershipId: membershipId }, tx); - return projectUserMembershipRoleDAL.insertMany(sanitizedProjectMembershipRoles, tx); - }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return updatedRoles; - }; - - // This is old and should be removed later. Its not used anywhere, but it is exposed in our API. So to avoid breaking changes, we are keeping it for now. - const deleteProjectMembership = async ({ - actorId, - actor, - actorOrgId, - actorAuthMethod, - projectId, - membershipId - }: TDeleteProjectMembershipOldDTO) => { - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Delete, ProjectPermissionSub.Member); - - const member = await userDAL.findUserByProjectMembershipId(membershipId); - - if (member?.isGhost) { - throw new ForbiddenRequestError({ - message: "Forbidden membership deletion", - name: "DeleteProjectMembership" - }); - } - - const membership = await projectMembershipDAL.transaction(async (tx) => { - const [deletedMembership] = await projectMembershipDAL.delete({ projectId, id: membershipId }, tx); - await projectKeyDAL.delete({ receiverId: deletedMembership.userId, projectId }, tx); - await secretReminderRecipientsDAL.delete( - { - projectId, - userId: deletedMembership.userId - }, - tx - ); - return deletedMembership; - }); - - await permissionService.invalidateProjectPermissionCache(projectId); - - return membership; - }; - const deleteProjectMemberships = async ({ actorId, actor, @@ -478,20 +292,21 @@ export const projectMembershipServiceFactory = ({ await userGroupMembershipDAL.findUserGroupMembershipsInProject(usernamesAndEmails, projectId) ); - const memberships = await projectMembershipDAL.transaction(async (tx) => { - await projectUserAdditionalPrivilegeDAL.delete( + const memberships = await membershipUserDAL.transaction(async (tx) => { + await additionalPrivilegeDAL.delete( { projectId, $in: { - userId: projectMembers.map((membership) => membership.user.id) + actorUserId: projectMembers.map((membership) => membership.user.id) } }, tx ); - const deletedMemberships = await projectMembershipDAL.delete( + const deletedMemberships = await membershipUserDAL.delete( { - projectId, + scopeProjectId: projectId, + scope: AccessScope.Project, $in: { id: projectMembers.map(({ id }) => id) } @@ -564,11 +379,11 @@ export const projectMembershipServiceFactory = ({ }); } - const deletedMembership = await projectMembershipDAL.transaction(async (tx) => { - await projectUserAdditionalPrivilegeDAL.delete( + const deletedMembership = await membershipUserDAL.transaction(async (tx) => { + await additionalPrivilegeDAL.delete( { projectId: project.id, - userId: actorId + actorUserId: actorId }, tx ); @@ -582,10 +397,11 @@ export const projectMembershipServiceFactory = ({ ); const membership = ( - await projectMembershipDAL.delete( + await membershipUserDAL.delete( { - projectId: project.id, - userId: actorId + scope: AccessScope.Project, + scopeProjectId: project.id, + actorUserId: actorId }, tx ) @@ -603,11 +419,8 @@ export const projectMembershipServiceFactory = ({ return { getProjectMemberships, getProjectMembershipByUsername, - updateProjectMembership, deleteProjectMemberships, - deleteProjectMembership, // TODO: Remove this addUsersToProject, - leaveProject, - getProjectMembershipById + leaveProject }; }; diff --git a/backend/src/services/project-membership/project-user-membership-role-dal.ts b/backend/src/services/project-membership/project-user-membership-role-dal.ts deleted file mode 100644 index b1cb55b9be..0000000000 --- a/backend/src/services/project-membership/project-user-membership-role-dal.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; - -export type TProjectUserMembershipRoleDALFactory = ReturnType; - -export const projectUserMembershipRoleDALFactory = (db: TDbClient) => { - const orm = ormify(db, TableName.ProjectUserMembershipRole); - return orm; -}; diff --git a/backend/src/services/project-role/project-role-dal.ts b/backend/src/services/project-role/project-role-dal.ts deleted file mode 100644 index 942fefa115..0000000000 --- a/backend/src/services/project-role/project-role-dal.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; - -export type TProjectRoleDALFactory = ReturnType; - -export const projectRoleDALFactory = (db: TDbClient) => ormify(db, TableName.ProjectRoles); diff --git a/backend/src/services/project-role/project-role-service.ts b/backend/src/services/project-role/project-role-service.ts deleted file mode 100644 index f30da21f53..0000000000 --- a/backend/src/services/project-role/project-role-service.ts +++ /dev/null @@ -1,286 +0,0 @@ -import { ForbiddenError, MongoAbility, RawRuleOf } from "@casl/ability"; -import { PackRule, packRules, unpackRules } from "@casl/ability/extra"; -import { requestContext } from "@fastify/request-context"; - -import { ActionProjectType, ProjectMembershipRole, ProjectType, TableName, TProjects } from "@app/db/schemas"; -import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; -import { - ProjectPermissionActions, - ProjectPermissionSet, - ProjectPermissionSub -} from "@app/ee/services/permission/project-permission"; -import { BadRequestError, NotFoundError } from "@app/lib/errors"; -import { validateHandlebarTemplate } from "@app/lib/template/validate-handlebars"; -import { UnpackedPermissionSchema } from "@app/server/routes/sanitizedSchema/permission"; - -import { ActorAuthMethod, ActorType } from "../auth/auth-type"; -import { TIdentityDALFactory } from "../identity/identity-dal"; -import { TIdentityProjectMembershipRoleDALFactory } from "../identity-project/identity-project-membership-role-dal"; -import { TProjectDALFactory } from "../project/project-dal"; -import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; -import { TUserDALFactory } from "../user/user-dal"; -import { TProjectRoleDALFactory } from "./project-role-dal"; -import { getPredefinedRoles } from "./project-role-fns"; -import { - ProjectRoleServiceIdentifierType, - TCreateRoleDTO, - TDeleteRoleDTO, - TGetRoleDetailsDTO, - TListRolesDTO, - TUpdateRoleDTO -} from "./project-role-types"; - -type TProjectRoleServiceFactoryDep = { - projectRoleDAL: TProjectRoleDALFactory; - identityDAL: Pick; - userDAL: Pick; - projectDAL: Pick; - permissionService: Pick< - TPermissionServiceFactory, - "getProjectPermission" | "getUserProjectPermission" | "invalidateProjectPermissionCache" - >; - identityProjectMembershipRoleDAL: TIdentityProjectMembershipRoleDALFactory; - projectUserMembershipRoleDAL: TProjectUserMembershipRoleDALFactory; -}; - -export type TProjectRoleServiceFactory = ReturnType; - -const unpackPermissions = (permissions: unknown) => - UnpackedPermissionSchema.array().parse( - unpackRules((permissions || []) as PackRule>>[]) - ); - -export const projectRoleServiceFactory = ({ - projectRoleDAL, - permissionService, - identityProjectMembershipRoleDAL, - projectUserMembershipRoleDAL, - projectDAL, - identityDAL, - userDAL -}: TProjectRoleServiceFactoryDep) => { - const createRole = async ({ data, actor, actorId, actorAuthMethod, actorOrgId, filter }: TCreateRoleDTO) => { - let projectId = ""; - if (filter.type === ProjectRoleServiceIdentifierType.SLUG) { - const project = await projectDAL.findProjectBySlug(filter.projectSlug, actorOrgId); - if (!project) throw new NotFoundError({ message: "Project not found" }); - projectId = project.id; - } else { - projectId = filter.projectId; - } - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Create, ProjectPermissionSub.Role); - const existingRole = await projectRoleDAL.findOne({ slug: data.slug, projectId }); - if (existingRole) { - throw new BadRequestError({ name: "Create Role", message: "Project role with same slug already exists" }); - } - - validateHandlebarTemplate("Project Role Create", JSON.stringify(data.permissions || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - const role = await projectRoleDAL.create({ - ...data, - projectId - }); - return { ...role, permissions: unpackPermissions(role.permissions) }; - }; - - const getRoleBySlug = async ({ - actor, - actorId, - actorAuthMethod, - actorOrgId, - roleSlug, - filter - }: TGetRoleDetailsDTO) => { - let project: TProjects; - if (filter.type === ProjectRoleServiceIdentifierType.SLUG) { - project = await projectDAL.findProjectBySlug(filter.projectSlug, actorOrgId); - } else { - project = await projectDAL.findProjectById(filter.projectId); - } - - if (!project) throw new NotFoundError({ message: "Project not found" }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: project.id, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Role); - if (roleSlug !== "custom" && Object.values(ProjectMembershipRole).includes(roleSlug as ProjectMembershipRole)) { - const [predefinedRole] = getPredefinedRoles({ - projectId: project.id, - projectType: project.type as ProjectType, - roleFilter: roleSlug as ProjectMembershipRole - }); - - if (!predefinedRole) throw new NotFoundError({ message: `Default role with slug '${roleSlug}' not found` }); - - return { ...predefinedRole, permissions: UnpackedPermissionSchema.array().parse(predefinedRole.permissions) }; - } - - const customRole = await projectRoleDAL.findOne({ slug: roleSlug, projectId: project.id }); - if (!customRole) throw new NotFoundError({ message: `Project role with slug '${roleSlug}' not found` }); - return { ...customRole, permissions: unpackPermissions(customRole.permissions) }; - }; - - const updateRole = async ({ roleId, actorOrgId, actorAuthMethod, actorId, actor, data }: TUpdateRoleDTO) => { - const projectRole = await projectRoleDAL.findById(roleId); - if (!projectRole) throw new NotFoundError({ message: "Project role not found", name: "Delete role" }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: projectRole.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Edit, ProjectPermissionSub.Role); - - if (data?.slug) { - const existingRole = await projectRoleDAL.findOne({ slug: data.slug, projectId: projectRole.projectId }); - if (existingRole && existingRole.id !== roleId) - throw new BadRequestError({ name: "Update Role", message: "Project role with the same slug already exists" }); - } - validateHandlebarTemplate("Project Role Update", JSON.stringify(data.permissions || []), { - allowedExpressions: (val) => val.includes("identity.") - }); - - const updatedRole = await projectRoleDAL.updateById(projectRole.id, { - ...data, - permissions: data.permissions ? data.permissions : undefined - }); - if (!updatedRole) throw new NotFoundError({ message: "Project role not found", name: "Update role" }); - - await permissionService.invalidateProjectPermissionCache(projectRole.projectId); - - return { ...updatedRole, permissions: unpackPermissions(updatedRole.permissions) }; - }; - - const deleteRole = async ({ actor, actorId, actorAuthMethod, actorOrgId, roleId }: TDeleteRoleDTO) => { - const projectRole = await projectRoleDAL.findById(roleId); - if (!projectRole) throw new NotFoundError({ message: "Project role not found", name: "Delete role" }); - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: projectRole.projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Delete, ProjectPermissionSub.Role); - - const identityRole = await identityProjectMembershipRoleDAL.findOne({ customRoleId: roleId }); - const projectUserRole = await projectUserMembershipRoleDAL.findOne({ customRoleId: roleId }); - - if (identityRole) { - throw new BadRequestError({ - message: "The role is assigned to one or more identities. Make sure to unassign them before deleting the role.", - name: "Delete role" - }); - } - if (projectUserRole) { - throw new BadRequestError({ - message: "The role is assigned to one or more users. Make sure to unassign them before deleting the role.", - name: "Delete role" - }); - } - - const deletedRole = await projectRoleDAL.deleteById(roleId); - if (!deletedRole) throw new NotFoundError({ message: "Project role not found", name: "Delete role" }); - - await permissionService.invalidateProjectPermissionCache(projectRole.projectId); - - return { ...deletedRole, permissions: unpackPermissions(deletedRole.permissions) }; - }; - - const listRoles = async ({ actorOrgId, actorAuthMethod, actorId, actor, filter }: TListRolesDTO) => { - let project: TProjects; - if (filter.type === ProjectRoleServiceIdentifierType.SLUG) { - project = await projectDAL.findProjectBySlug(filter.projectSlug, actorOrgId); - } else { - project = await projectDAL.findProjectById(filter.projectId); - } - - if (!project) throw new BadRequestError({ message: "Project not found" }); - - const { permission } = await permissionService.getProjectPermission({ - actor, - actorId, - projectId: project.id, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Role); - const customRoles = await projectRoleDAL.find( - { projectId: project.id }, - { sort: [[`${TableName.ProjectRoles}.slug` as "slug", "asc"]] } - ); - const roles = [ - ...getPredefinedRoles({ projectId: project.id, projectType: project.type as ProjectType }), - ...(customRoles || []) - ]; - - return roles; - }; - - const getUserPermission = async ( - userId: string, - projectId: string, - actorAuthMethod: ActorAuthMethod, - actorOrgId: string | undefined - ) => { - const { permission, membership } = await permissionService.getProjectPermission({ - actor: ActorType.USER, - actorId: userId, - projectId, - actorAuthMethod, - actorOrgId, - actionProjectType: ActionProjectType.Any - }); - // just to satisfy ts - if (!("roles" in membership)) throw new BadRequestError({ message: "Service token not allowed" }); - - const assumedPrivilegeDetailsCtx = requestContext.get("assumedPrivilegeDetails"); - const isAssumingPrivilege = assumedPrivilegeDetailsCtx?.projectId === projectId; - const assumedPrivilegeDetails = isAssumingPrivilege - ? { - actorId: assumedPrivilegeDetailsCtx?.actorId, - actorType: assumedPrivilegeDetailsCtx?.actorType, - actorName: "", - actorEmail: "" - } - : undefined; - - if (assumedPrivilegeDetails?.actorType === ActorType.IDENTITY) { - const identityDetails = await identityDAL.findById(assumedPrivilegeDetails.actorId); - if (!identityDetails) - throw new NotFoundError({ message: `Identity with ID ${assumedPrivilegeDetails.actorId} not found` }); - assumedPrivilegeDetails.actorName = identityDetails.name; - } else if (assumedPrivilegeDetails?.actorType === ActorType.USER) { - const userDetails = await userDAL.findById(assumedPrivilegeDetails?.actorId); - if (!userDetails) - throw new NotFoundError({ message: `User with ID ${assumedPrivilegeDetails.actorId} not found` }); - assumedPrivilegeDetails.actorName = `${userDetails?.firstName} ${userDetails?.lastName || ""}`; - assumedPrivilegeDetails.actorEmail = userDetails?.email || ""; - } - - return { permissions: packRules(permission.rules), membership, assumedPrivilegeDetails }; - }; - - return { createRole, updateRole, deleteRole, listRoles, getUserPermission, getRoleBySlug }; -}; diff --git a/backend/src/services/project/project-dal.ts b/backend/src/services/project/project-dal.ts index d64977f8bf..2abdebdbcb 100644 --- a/backend/src/services/project/project-dal.ts +++ b/backend/src/services/project/project-dal.ts @@ -2,6 +2,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; import { + AccessScope, ProjectsSchema, ProjectType, ProjectUpgradeStatus, @@ -24,9 +25,11 @@ export const projectDALFactory = (db: TDbClient) => { const findIdentityProjects = async (identityId: string, orgId: string, projectType?: ProjectType) => { try { - const workspaces = await db(TableName.IdentityProjectMembership) - .where({ identityId }) - .join(TableName.Project, `${TableName.IdentityProjectMembership}.projectId`, `${TableName.Project}.id`) + const workspaces = await db + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.actorIdentityId`, identityId) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) .where(`${TableName.Project}.orgId`, orgId) .andWhere((qb) => { if (projectType) { @@ -74,11 +77,23 @@ export const projectDALFactory = (db: TDbClient) => { const findUserProjects = async (userId: string, orgId: string, projectType?: ProjectType) => { try { - const workspaces = await db - .replicaNode()(TableName.ProjectMembership) - .where({ userId }) - .join(TableName.Project, `${TableName.ProjectMembership}.projectId`, `${TableName.Project}.id`) + const userGroupSubquery = db + .replicaNode()(TableName.Groups) + .leftJoin(TableName.UserGroupMembership, `${TableName.UserGroupMembership}.groupId`, `${TableName.Groups}.id`) + .where(`${TableName.Groups}.orgId`, orgId) + .where(`${TableName.UserGroupMembership}.userId`, userId) + .select(db.ref("id").withSchema(TableName.Groups)); + + const projects = await db + .replicaNode()(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .join(TableName.Project, `${TableName.Membership}.scopeProjectId`, `${TableName.Project}.id`) .where(`${TableName.Project}.orgId`, orgId) + .andWhere((qb) => { + void qb + .where(`${TableName.Membership}.actorUserId`, userId) + .orWhereIn(`${TableName.Membership}.actorGroupId`, userGroupSubquery); + }) .andWhere((qb) => { if (projectType) { void qb.where(`${TableName.Project}.type`, projectType); @@ -97,36 +112,8 @@ export const projectDALFactory = (db: TDbClient) => { { column: `${TableName.Environment}.position`, order: "asc" } ]); - const groups = db(TableName.UserGroupMembership).where({ userId }).select("groupId"); - - const groupWorkspaces = await db(TableName.GroupProjectMembership) - .whereIn("groupId", groups) - .join(TableName.Project, `${TableName.GroupProjectMembership}.projectId`, `${TableName.Project}.id`) - .where(`${TableName.Project}.orgId`, orgId) - .andWhere((qb) => { - if (projectType) { - void qb.where(`${TableName.Project}.type`, projectType); - } - }) - .whereNotIn( - `${TableName.Project}.id`, - workspaces.map(({ id }) => id) - ) - .leftJoin(TableName.Environment, `${TableName.Environment}.projectId`, `${TableName.Project}.id`) - .select( - selectAllTableCols(TableName.Project), - db.ref("id").withSchema(TableName.Project).as("_id"), - db.ref("id").withSchema(TableName.Environment).as("envId"), - db.ref("slug").withSchema(TableName.Environment).as("envSlug"), - db.ref("name").withSchema(TableName.Environment).as("envName") - ) - .orderBy([ - { column: `${TableName.Project}.name`, order: "asc" }, - { column: `${TableName.Environment}.position`, order: "asc" } - ]); - - const nestedWorkspaces = sqlNestRelationships({ - data: workspaces.concat(groupWorkspaces), + const formattedProjects = sqlNestRelationships({ + data: projects, key: "id", parentMapper: ({ _id, ...el }) => ({ _id, ...ProjectsSchema.parse(el) }), childrenMapper: [ @@ -142,7 +129,7 @@ export const projectDALFactory = (db: TDbClient) => { ] }); - return nestedWorkspaces.map((workspace) => ({ + return formattedProjects.map((workspace) => ({ ...workspace, organization: workspace.orgId })); @@ -153,9 +140,10 @@ export const projectDALFactory = (db: TDbClient) => { const findProjectGhostUser = async (projectId: string, tx?: Knex) => { try { - const ghostUser = await (tx || db.replicaNode())(TableName.ProjectMembership) - .where({ projectId }) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + const ghostUser = await (tx || db.replicaNode())(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where(`${TableName.Membership}.scopeProjectId`, projectId) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .select(selectAllTableCols(TableName.Users)) .where({ isGhost: true }) .first(); @@ -177,54 +165,6 @@ export const projectDALFactory = (db: TDbClient) => { } }; - const findAllProjectsByIdentity = async (identityId: string, projectType?: ProjectType) => { - try { - const workspaces = await db - .replicaNode()(TableName.IdentityProjectMembership) - .where({ identityId }) - .join(TableName.Project, `${TableName.IdentityProjectMembership}.projectId`, `${TableName.Project}.id`) - .andWhere((qb) => { - if (projectType) { - void qb.where(`${TableName.Project}.type`, projectType); - } - }) - .leftJoin(TableName.Environment, `${TableName.Environment}.projectId`, `${TableName.Project}.id`) - .select( - selectAllTableCols(TableName.Project), - db.ref("id").withSchema(TableName.Project).as("_id"), - db.ref("id").withSchema(TableName.Environment).as("envId"), - db.ref("slug").withSchema(TableName.Environment).as("envSlug"), - db.ref("name").withSchema(TableName.Environment).as("envName") - ) - .orderBy("createdAt", "asc", "last"); - - const nestedWorkspaces = sqlNestRelationships({ - data: workspaces, - key: "id", - parentMapper: ({ _id, ...el }) => ({ _id, ...ProjectsSchema.parse(el) }), - childrenMapper: [ - { - key: "envId", - label: "environments" as const, - mapper: ({ envId: id, envSlug: slug, envName: name }) => ({ - id, - slug, - name - }) - } - ] - }); - - // We need to add the organization field, as it's required for one of our API endpoint responses. - return nestedWorkspaces.map((workspace) => ({ - ...workspace, - organization: workspace.orgId - })); - } catch (error) { - throw new DatabaseError({ error, name: "Find all projects by identity" }); - } - }; - const findProjectById = async (id: string) => { try { const workspaces = await db @@ -402,19 +342,26 @@ export const projectDALFactory = (db: TDbClient) => { projectIds?: string[]; }) => { const { limit = 20, offset = 0, sortBy = SearchProjectSortBy.NAME, sortDir = SortDirection.ASC } = dto; - - const userMembershipSubquery = db(TableName.ProjectMembership).where({ userId: dto.actorId }).select("projectId"); - const groups = db(TableName.UserGroupMembership).where({ userId: dto.actorId }).select("groupId"); - const groupMembershipSubquery = db(TableName.GroupProjectMembership).whereIn("groupId", groups).select("projectId"); - - const identityMembershipSubQuery = db(TableName.IdentityProjectMembership) - .where({ identityId: dto.actorId }) - .select("projectId"); + const groupMembershipSubquery = db(TableName.Groups) + .leftJoin(TableName.UserGroupMembership, `${TableName.UserGroupMembership}.groupId`, `${TableName.Groups}.id`) + .where(`${TableName.Groups}.orgId`, dto.orgId) + .where(`${TableName.UserGroupMembership}.userId`, dto.actorId) + .select(db.ref("id").withSchema(TableName.Groups)); + const membershipSubQuery = db(TableName.Membership) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .where((qb) => { + if (dto.actor === ActorType.IDENTITY) { + void qb.where(`${TableName.Membership}.actorIdentityId`, dto.actorId); + } else { + void qb + .where(`${TableName.Membership}.actorUserId`, dto.actorId) + .orWhereIn(`${TableName.Membership}.actorGroupId`, groupMembershipSubquery); + } + }) + .select("scopeProjectId"); // Get the SQL strings for the subqueries - const userMembershipSql = userMembershipSubquery.toQuery(); - const groupMembershipSql = groupMembershipSubquery.toQuery(); - const identityMembershipSql = identityMembershipSubQuery.toQuery(); + const membershipSQL = membershipSubQuery.toQuery(); const query = db .replicaNode()(TableName.Project) @@ -422,26 +369,15 @@ export const projectDALFactory = (db: TDbClient) => { .select(selectAllTableCols(TableName.Project)) .select(db.raw("COUNT(*) OVER() AS count")) .select<(TProjects & { isMember: boolean; count: number })[]>( - dto.actor === ActorType.USER - ? db.raw( - ` - CASE - WHEN ${TableName.Project}.id IN (?) THEN TRUE - WHEN ${TableName.Project}.id IN (?) THEN TRUE - ELSE FALSE - END as "isMember" - `, - [db.raw(userMembershipSql), db.raw(groupMembershipSql)] - ) - : db.raw( - ` - CASE - WHEN ${TableName.Project}.id IN (?) THEN TRUE - ELSE FALSE - END as "isMember" - `, - [db.raw(identityMembershipSql)] - ) + db.raw( + ` + CASE + WHEN ${TableName.Project}.id IN (?) THEN TRUE + ELSE FALSE + END as "isMember" + `, + [db.raw(membershipSQL)] + ) ) .limit(limit) .offset(offset); @@ -495,7 +431,6 @@ export const projectDALFactory = (db: TDbClient) => { findUserProjects, findIdentityProjects, setProjectUpgradeStatus, - findAllProjectsByIdentity, findProjectGhostUser, findProjectById, findProjectByFilter, diff --git a/backend/src/services/project/project-queue.ts b/backend/src/services/project/project-queue.ts index e557b7c96c..30ec6d29fb 100644 --- a/backend/src/services/project/project-queue.ts +++ b/backend/src/services/project/project-queue.ts @@ -1,5 +1,6 @@ /* eslint-disable no-await-in-loop */ import { + AccessScope, IntegrationAuthsSchema, ProjectMembershipRole, ProjectUpgradeStatus, @@ -29,13 +30,13 @@ import { logger } from "@app/lib/logger"; import { QueueJobs, QueueName, TQueueJobTypes, TQueueServiceFactory } from "@app/queue"; import { TIntegrationAuthDALFactory } from "../integration-auth/integration-auth-dal"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TOrgDALFactory } from "../org/org-dal"; import { TOrgServiceFactory } from "../org/org-service"; import { TProjectBotDALFactory } from "../project-bot/project-bot-dal"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; import { TProjectKeyDALFactory } from "../project-key/project-key-dal"; -import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; -import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; import { TSecretDALFactory } from "../secret/secret-dal"; import { TSecretVersionDALFactory } from "../secret/secret-version-dal"; import { TSecretFolderDALFactory } from "../secret-folder/secret-folder-dal"; @@ -55,13 +56,13 @@ type TProjectQueueFactoryDep = { secretApprovalSecretDAL: Pick; projectBotDAL: Pick; orgService: Pick; - projectMembershipDAL: Pick; - projectUserMembershipRoleDAL: Pick; integrationAuthDAL: TIntegrationAuthDALFactory; userDAL: Pick; projectEnvDAL: Pick; projectDAL: Pick; orgDAL: Pick; + membershipUserDAL: TMembershipUserDALFactory; + membershipRoleDAL: TMembershipRoleDALFactory; }; export const projectQueueFactory = ({ @@ -79,8 +80,8 @@ export const projectQueueFactory = ({ orgDAL, projectDAL, orgService, - projectMembershipDAL, - projectUserMembershipRoleDAL + membershipUserDAL, + membershipRoleDAL }: TProjectQueueFactoryDep) => { const upgradeProject = async (dto: TQueueJobTypes["upgrade-project-to-ghost"]["payload"]) => { await queueService.queue(QueueName.UpgradeProjectToGhost, QueueJobs.UpgradeProjectToGhost, dto, { @@ -227,17 +228,16 @@ export const projectQueueFactory = ({ ); // Create a membership for the ghost user - const projectMembership = await projectMembershipDAL.create( + const projectMembership = await membershipUserDAL.create( { - projectId: project.id, - userId: ghostUser.user.id + scopeProjectId: project.id, + scope: AccessScope.Project, + actorUserId: ghostUser.user.id, + scopeOrgId: project.orgId }, tx ); - await projectUserMembershipRoleDAL.create( - { projectMembershipId: projectMembership.id, role: ProjectMembershipRole.Admin }, - tx - ); + await membershipRoleDAL.create({ membershipId: projectMembership.id, role: ProjectMembershipRole.Admin }, tx); // If a bot already exists, delete it if (existingBot) { @@ -272,8 +272,9 @@ export const projectQueueFactory = ({ for (const key of existingProjectKeys) { const user = await userDAL.findUserEncKeyByUserId(key.receiverId); const [orgMembership] = await orgDAL.findMembership({ - [`${TableName.OrgMembership}.userId` as "userId"]: key.receiverId, - [`${TableName.OrgMembership}.orgId` as "orgId"]: project.orgId + [`${TableName.Membership}.actorUserId` as "actorUserId"]: key.receiverId, + [`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: project.orgId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization }); if (!user) { diff --git a/backend/src/services/project/project-service.ts b/backend/src/services/project/project-service.ts index 8dbba2b4f1..58b3c5395e 100644 --- a/backend/src/services/project/project-service.ts +++ b/backend/src/services/project/project-service.ts @@ -3,6 +3,7 @@ import { PackRule, unpackRules } from "@casl/ability/extra"; import slugify from "@sindresorhus/slugify"; import { + AccessScope, ActionProjectType, ProjectMembershipRole, ProjectType, @@ -49,11 +50,11 @@ import { TCertificateDALFactory } from "../certificate/certificate-dal"; import { TCertificateAuthorityDALFactory } from "../certificate-authority/certificate-authority-dal"; import { expandInternalCa } from "../certificate-authority/certificate-authority-fns"; import { TCertificateTemplateDALFactory } from "../certificate-template/certificate-template-dal"; -import { TGroupProjectDALFactory } from "../group-project/group-project-dal"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; -import { TIdentityProjectDALFactory } from "../identity-project/identity-project-dal"; -import { TIdentityProjectMembershipRoleDALFactory } from "../identity-project/identity-project-membership-role-dal"; import { TKmsServiceFactory } from "../kms/kms-service"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipGroupDALFactory } from "../membership-group/membership-group-dal"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { validateMicrosoftTeamsChannelsSchema } from "../microsoft-teams/microsoft-teams-fns"; import { TMicrosoftTeamsIntegrationDALFactory } from "../microsoft-teams/microsoft-teams-integration-dal"; import { TProjectMicrosoftTeamsConfigDALFactory } from "../microsoft-teams/project-microsoft-teams-config-dal"; @@ -65,10 +66,9 @@ import { TPkiCollectionDALFactory } from "../pki-collection/pki-collection-dal"; import { TProjectBotServiceFactory } from "../project-bot/project-bot-service"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; -import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; -import { TProjectRoleDALFactory } from "../project-role/project-role-dal"; import { getPredefinedRoles } from "../project-role/project-role-fns"; import { TReminderServiceFactory } from "../reminder/reminder-types"; +import { TRoleDALFactory } from "../role/role-dal"; import { TSecretDALFactory } from "../secret/secret-dal"; import { fnDeleteProjectSecretReminders } from "../secret/secret-fns"; import { ROOT_FOLDER_NAME, TSecretFolderDALFactory } from "../secret-folder/secret-folder-dal"; @@ -125,7 +125,6 @@ export const DEFAULT_PROJECT_ENVS = [ type TProjectServiceFactoryDep = { projectDAL: TProjectDALFactory; - identityProjectDAL: Pick; projectSshConfigDAL: Pick; projectQueue: TProjectQueueFactory; userDAL: TUserDALFactory; @@ -134,13 +133,11 @@ type TProjectServiceFactoryDep = { secretDAL: Pick; secretV2BridgeDAL: Pick; projectEnvDAL: Pick; - identityOrgMembershipDAL: TIdentityOrgDALFactory; - identityProjectMembershipRoleDAL: Pick; - projectMembershipDAL: Pick< - TProjectMembershipDALFactory, - "create" | "findProjectGhostUser" | "findOne" | "delete" | "findAllProjectMembers" - >; - groupProjectDAL: Pick; + projectMembershipDAL: Pick; + membershipUserDAL: Pick; + membershipGroupDAL: Pick; + membershipIdentityDAL: Pick; + membershipRoleDAL: Pick; projectSlackConfigDAL: Pick< TProjectSlackConfigDALFactory, "findOne" | "transaction" | "updateById" | "create" | "delete" @@ -154,7 +151,6 @@ type TProjectServiceFactoryDep = { TMicrosoftTeamsIntegrationDALFactory, "findById" | "findByIdWithWorkflowIntegrationDetails" >; - projectUserMembershipRoleDAL: Pick; pkiSubscriberDAL: Pick; certificateAuthorityDAL: Pick; certificateDAL: Pick; @@ -172,7 +168,7 @@ type TProjectServiceFactoryDep = { smtpService: Pick; orgDAL: Pick; keyStore: Pick; - projectRoleDAL: Pick; + roleDAL: Pick; kmsService: Pick< TKmsServiceFactory, | "updateProjectSecretManagerKmsKey" @@ -201,20 +197,15 @@ export const projectServiceFactory = ({ orgDAL, userDAL, folderDAL, - identityOrgMembershipDAL, projectMembershipDAL, projectEnvDAL, licenseService, - projectUserMembershipRoleDAL, - projectRoleDAL, certificateAuthorityDAL, certificateDAL, certificateTemplateDAL, pkiCollectionDAL, pkiAlertDAL, pkiSubscriberDAL, - identityProjectDAL, - identityProjectMembershipRoleDAL, sshCertificateAuthorityDAL, sshCertificateAuthoritySecretDAL, sshCertificateDAL, @@ -228,10 +219,13 @@ export const projectServiceFactory = ({ slackIntegrationDAL, microsoftTeamsIntegrationDAL, projectTemplateService, - groupProjectDAL, smtpService, reminderService, - notificationService + notificationService, + membershipIdentityDAL, + membershipUserDAL, + membershipRoleDAL, + roleDAL }: TProjectServiceFactoryDep) => { /* * Create workspace. Make user the admin @@ -345,7 +339,7 @@ export const projectServiceFactory = ({ tx ); } - await projectRoleDAL.insertMany( + await roleDAL.insertMany( projectTemplate.packedRoles.map((role) => ({ ...role, permissions: JSON.stringify(role.permissions), @@ -374,15 +368,17 @@ export const projectServiceFactory = ({ } // Create a membership for the user - const userProjectMembership = await projectMembershipDAL.create( + const userProjectMembership = await membershipUserDAL.create( { - projectId: project.id, - userId: user.id + scopeProjectId: project.id, + actorUserId: user.id, + scope: AccessScope.Project, + scopeOrgId: project.orgId }, tx ); - await projectUserMembershipRoleDAL.create( - { projectMembershipId: userProjectMembership.id, role: ProjectMembershipRole.Admin }, + await membershipRoleDAL.create( + { membershipId: userProjectMembership.id, role: ProjectMembershipRole.Admin }, tx ); } @@ -390,10 +386,11 @@ export const projectServiceFactory = ({ // If the project is being created by an identity, add the identity to the project as an admin else if (actor === ActorType.IDENTITY) { // Find identity org membership - const identityOrgMembership = await identityOrgMembershipDAL.findOne( + const identityOrgMembership = await membershipIdentityDAL.findOne( { - identityId: actorId, - orgId: project.orgId + actorIdentityId: actorId, + scopeOrgId: project.orgId, + scope: AccessScope.Organization }, tx ); @@ -405,17 +402,19 @@ export const projectServiceFactory = ({ }); } - const identityProjectMembership = await identityProjectDAL.create( + const identityProjectMembership = await membershipIdentityDAL.create( { - identityId: actorId, - projectId: project.id + actorIdentityId: actorId, + scopeProjectId: project.id, + scope: AccessScope.Project, + scopeOrgId: project.orgId }, tx ); - await identityProjectMembershipRoleDAL.create( + await membershipRoleDAL.create( { - projectMembershipId: identityProjectMembership.id, + membershipId: identityProjectMembership.id, role: ProjectMembershipRole.Admin }, tx @@ -459,8 +458,11 @@ export const projectServiceFactory = ({ const deletedProject = await projectDAL.transaction(async (tx) => { // delete these so that project custom roles can be deleted in cascade effect // direct deletion of project without these will cause fk error - await projectMembershipDAL.delete({ projectId: project.id }, tx); - await groupProjectDAL.delete({ projectId: project.id }, tx); + // this will clean up all memberships + await membershipUserDAL.delete( + { scopeOrgId: project.orgId, scopeProjectId: project.id, scope: AccessScope.Project }, + tx + ); const delProject = await projectDAL.deleteById(project.id, tx); const projectGhostUser = await projectMembershipDAL.findProjectGhostUser(project.id, tx).catch(() => null); // akhilmhdh: before removing those kms checking any other project uses it @@ -511,7 +513,8 @@ export const projectServiceFactory = ({ : await projectDAL.findUserProjects(actorId, actorOrgId, type); if (includeRoles) { - const { permission } = await permissionService.getUserOrgPermission( + const { permission } = await permissionService.getOrgPermission( + actor, actorId, actorOrgId, actorAuthMethod, @@ -520,13 +523,13 @@ export const projectServiceFactory = ({ // `includeRoles` is specifically used by organization admins when inviting new users to the organizations to avoid looping redundant api calls. ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.Member); - const customRoles = await projectRoleDAL.find({ + const customRoles = await roleDAL.find({ $in: { projectId: workspaces.map((workspace) => workspace.id) } }); - const workspaceMappedToRoles = groupBy(customRoles, (role) => role.projectId); + const workspaceMappedToRoles = groupBy(customRoles, (role) => role.projectId as string); const workspacesWithRoles = await Promise.all( workspaces.map(async (workspace) => { @@ -1346,7 +1349,7 @@ export const projectServiceFactory = ({ }; const getProjectKmsKeys = async ({ projectId, actor, actorId, actorAuthMethod, actorOrgId }: TGetProjectKmsKey) => { - const { membership } = await permissionService.getProjectPermission({ + await permissionService.getProjectPermission({ actor, actorId, projectId, @@ -1355,10 +1358,6 @@ export const projectServiceFactory = ({ actionProjectType: ActionProjectType.Any }); - if (!membership) { - throw new ForbiddenRequestError({ message: "You are not a member of this project" }); - } - const kmsKeyId = await kmsService.getProjectSecretManagerKmsKeyId(projectId); const kmsKey = await kmsService.getKmsById(kmsKeyId); @@ -1875,7 +1874,7 @@ export const projectServiceFactory = ({ .filter((member) => member.roles.some((role) => role.role === ProjectMembershipRole.Admin)) .map((el) => el.user.email!); if (filteredProjectMembers.length === 0) { - const customRolesWithMemberCreate = await projectRoleDAL.find({ projectId }); + const customRolesWithMemberCreate = await roleDAL.find({ projectId }); const customRoleSlugsCanCreate = customRolesWithMemberCreate .filter((role) => { try { diff --git a/backend/src/services/role/namespace/namespace-role-factory.ts b/backend/src/services/role/namespace/namespace-role-factory.ts new file mode 100644 index 0000000000..87921c25b6 --- /dev/null +++ b/backend/src/services/role/namespace/namespace-role-factory.ts @@ -0,0 +1,47 @@ +import { AccessScope } from "@app/db/schemas"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError } from "@app/lib/errors"; + +import { TRoleScopeFactory } from "../role-types"; + +type TNamespaceRoleScopeFactoryDep = { + permissionService: Pick; +}; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const newNamespaceRoleFactory = (_dto: TNamespaceRoleScopeFactoryDep): TRoleScopeFactory => { + const onCreateRoleGuard: TRoleScopeFactory["onCreateRoleGuard"] = async () => {}; + + const onUpdateRoleGuard: TRoleScopeFactory["onUpdateRoleGuard"] = async () => {}; + + const onDeleteRoleGuard: TRoleScopeFactory["onDeleteRoleGuard"] = async () => {}; + + const onListRoleGuard: TRoleScopeFactory["onListRoleGuard"] = async () => {}; + + const onGetRoleByIdGuard: TRoleScopeFactory["onGetRoleByIdGuard"] = async () => {}; + + const onGetRoleBySlugGuard: TRoleScopeFactory["onGetRoleBySlugGuard"] = async () => {}; + + const getScopeField: TRoleScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Namespace) { + return { key: "namespaceId" as const, value: dto.namespaceId }; + } + throw new BadRequestError({ message: "Invalid scope provided for the factory" }); + }; + + const isCustomRole: TRoleScopeFactory["isCustomRole"] = () => false; + + const getPredefinedRoles: TRoleScopeFactory["getPredefinedRoles"] = async () => []; + + return { + onCreateRoleGuard, + onUpdateRoleGuard, + onDeleteRoleGuard, + onListRoleGuard, + onGetRoleByIdGuard, + onGetRoleBySlugGuard, + getScopeField, + isCustomRole, + getPredefinedRoles + }; +}; diff --git a/backend/src/services/role/org/org-role-factory.ts b/backend/src/services/role/org/org-role-factory.ts new file mode 100644 index 0000000000..50ffa5e43a --- /dev/null +++ b/backend/src/services/role/org/org-role-factory.ts @@ -0,0 +1,160 @@ +import { ForbiddenError } from "@casl/ability"; + +import { AccessScope } from "@app/db/schemas"; +import { + orgAdminPermissions, + orgMemberPermissions, + orgNoAccessPermissions, + OrgPermissionActions, + OrgPermissionSubjects +} from "@app/ee/services/permission/org-permission"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError } from "@app/lib/errors"; +import { TExternalGroupOrgRoleMappingDALFactory } from "@app/services/external-group-org-role-mapping/external-group-org-role-mapping-dal"; +import { isCustomOrgRole } from "@app/services/org/org-role-fns"; + +import { TRoleScopeFactory } from "../role-types"; + +type TOrgRoleScopeFactoryDep = { + permissionService: Pick; + externalGroupOrgRoleMappingDAL: Pick; +}; + +export const newOrgRoleFactory = ({ + permissionService, + externalGroupOrgRoleMappingDAL +}: TOrgRoleScopeFactoryDep): TRoleScopeFactory => { + const getScopeField: TRoleScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Organization) { + return { key: "orgId" as const, value: dto.orgId }; + } + throw new BadRequestError({ message: "Invalid scope provided for the factory" }); + }; + + const isCustomRole: TRoleScopeFactory["isCustomRole"] = (role: string) => isCustomOrgRole(role); + + const onCreateRoleGuard: TRoleScopeFactory["onCreateRoleGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.Role); + }; + + const onUpdateRoleGuard: TRoleScopeFactory["onUpdateRoleGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Edit, OrgPermissionSubjects.Role); + }; + + const onDeleteRoleGuard: TRoleScopeFactory["onDeleteRoleGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Delete, OrgPermissionSubjects.Role); + + const externalGroupMapping = await externalGroupOrgRoleMappingDAL.findOne({ + orgId: dto.permission.orgId, + roleId: dto.selector.id + }); + + if (externalGroupMapping) + throw new BadRequestError({ + message: + "Cannot delete role assigned to external group organization role mapping. Please re-assign external mapping and try again." + }); + }; + + const onListRoleGuard: TRoleScopeFactory["onListRoleGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Role); + }; + + const onGetRoleByIdGuard: TRoleScopeFactory["onGetRoleByIdGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Role); + }; + + const onGetRoleBySlugGuard: TRoleScopeFactory["onGetRoleBySlugGuard"] = async (dto) => { + const { permission } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Read, OrgPermissionSubjects.Role); + }; + + const getPredefinedRoles: TRoleScopeFactory["getPredefinedRoles"] = async (scopeData) => { + const scopeField = getScopeField(scopeData); + return [ + { + id: "b11b49a9-09a9-4443-916a-4246f9ff2c69", // dummy userid + name: "Admin", + slug: "admin", + orgId: scopeField.value, + description: "Complete administration access over the organization", + permissions: orgAdminPermissions, + createdAt: new Date(), + updatedAt: new Date() + }, + { + id: "b11b49a9-09a9-4443-916a-4246f9ff2c70", // dummy user for zod validation in response + name: "Member", + slug: "member", + orgId: scopeField.value, + description: "Non-administrative role in an organization", + permissions: orgMemberPermissions, + createdAt: new Date(), + updatedAt: new Date() + }, + { + id: "b10d49a9-09a9-4443-916a-4246f9ff2c72", // dummy user for zod validation in response + name: "No Access", + slug: "no-access", + orgId: scopeField.value, + description: "No access to any resources in the organization", + permissions: orgNoAccessPermissions, + createdAt: new Date(), + updatedAt: new Date() + } + ]; + }; + + return { + onCreateRoleGuard, + onUpdateRoleGuard, + onDeleteRoleGuard, + onListRoleGuard, + onGetRoleByIdGuard, + onGetRoleBySlugGuard, + getScopeField, + getPredefinedRoles, + isCustomRole + }; +}; diff --git a/backend/src/services/role/project/project-role-factory.ts b/backend/src/services/role/project/project-role-factory.ts new file mode 100644 index 0000000000..2ab4e59d03 --- /dev/null +++ b/backend/src/services/role/project/project-role-factory.ts @@ -0,0 +1,203 @@ +import { ForbiddenError } from "@casl/ability"; +import { v4 as uuidv4 } from "uuid"; + +import { AccessScope, ActionProjectType, ProjectMembershipRole, ProjectType } from "@app/db/schemas"; +import { + cryptographicOperatorPermissions, + projectAdminPermissions, + projectMemberPermissions, + projectNoAccessPermissions, + projectViewerPermission, + sshHostBootstrapPermissions +} from "@app/ee/services/permission/default-roles"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { + isCustomProjectRole, + ProjectPermissionActions, + ProjectPermissionSub +} from "@app/ee/services/permission/project-permission"; +import { BadRequestError } from "@app/lib/errors"; +import { TProjectDALFactory } from "@app/services/project/project-dal"; + +import { TRoleScopeFactory } from "../role-types"; + +type TProjectRoleScopeFactoryDep = { + permissionService: Pick; + projectDAL: Pick; +}; + +export const newProjectRoleFactory = ({ + permissionService, + projectDAL +}: TProjectRoleScopeFactoryDep): TRoleScopeFactory => { + const getScopeField: TRoleScopeFactory["getScopeField"] = (dto) => { + if (dto.scope === AccessScope.Project) { + return { key: "projectId" as const, value: dto.projectId }; + } + throw new BadRequestError({ message: "Invalid scope provided for the factory" }); + }; + + const isCustomRole: TRoleScopeFactory["isCustomRole"] = (role: string) => isCustomProjectRole(role); + + const onCreateRoleGuard: TRoleScopeFactory["onCreateRoleGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Create, ProjectPermissionSub.Role); + }; + + const onUpdateRoleGuard: TRoleScopeFactory["onUpdateRoleGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Edit, ProjectPermissionSub.Role); + }; + + const onDeleteRoleGuard: TRoleScopeFactory["onDeleteRoleGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Delete, ProjectPermissionSub.Role); + }; + + const onListRoleGuard: TRoleScopeFactory["onListRoleGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Role); + }; + + const onGetRoleByIdGuard: TRoleScopeFactory["onGetRoleByIdGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Role); + }; + + const onGetRoleBySlugGuard: TRoleScopeFactory["onGetRoleBySlugGuard"] = async (dto) => { + const scope = getScopeField(dto.scopeData); + const { permission } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: scope.value, + actorOrgId: dto.permission.orgId + }); + ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Role); + }; + + const getPredefinedRoles: TRoleScopeFactory["getPredefinedRoles"] = async (scopeData) => { + const scope = getScopeField(scopeData); + const project = await projectDAL.findById(scope.value); + if (!project) throw new BadRequestError({ message: "Project not found" }); + const projectId = project.id; + + return [ + { + id: uuidv4(), + name: "Admin", + slug: ProjectMembershipRole.Admin, + permissions: projectAdminPermissions, + description: "Full administrative access over a project", + createdAt: new Date(), + updatedAt: new Date(), + projectId + }, + { + id: uuidv4(), + name: "Developer", + slug: ProjectMembershipRole.Member, + permissions: projectMemberPermissions, + description: "Limited read/write role in a project", + createdAt: new Date(), + updatedAt: new Date(), + projectId + }, + { + id: uuidv4(), + name: "SSH Host Bootstrapper", + slug: ProjectMembershipRole.SshHostBootstrapper, + permissions: sshHostBootstrapPermissions, + description: "Create and issue SSH Hosts in a project", + createdAt: new Date(), + updatedAt: new Date(), + projectId, + type: ProjectType.SSH + }, + { + id: uuidv4(), + name: "Cryptographic Operator", + slug: ProjectMembershipRole.KmsCryptographicOperator, + permissions: cryptographicOperatorPermissions, + description: "Perform cryptographic operations, such as encryption and signing, in a project", + createdAt: new Date(), + updatedAt: new Date(), + projectId, + type: ProjectType.KMS + }, + { + id: uuidv4(), + name: "Viewer", + slug: ProjectMembershipRole.Viewer, + permissions: projectViewerPermission, + description: "Only read role in a project", + createdAt: new Date(), + projectId, + updatedAt: new Date() + }, + { + id: uuidv4(), + name: "No Access", + slug: ProjectMembershipRole.NoAccess, + permissions: projectNoAccessPermissions, + description: "No access to any resources in the project", + createdAt: new Date(), + projectId, + updatedAt: new Date() + } + ].filter(({ type }) => (type ? type === project.type : true)); + }; + + return { + onCreateRoleGuard, + onUpdateRoleGuard, + onDeleteRoleGuard, + onListRoleGuard, + onGetRoleByIdGuard, + onGetRoleBySlugGuard, + getScopeField, + getPredefinedRoles, + isCustomRole + }; +}; diff --git a/backend/src/services/role/role-dal.ts b/backend/src/services/role/role-dal.ts new file mode 100644 index 0000000000..9f3d7cf610 --- /dev/null +++ b/backend/src/services/role/role-dal.ts @@ -0,0 +1,10 @@ +import { TDbClient } from "@app/db"; +import { TableName } from "@app/db/schemas"; +import { ormify } from "@app/lib/knex"; + +export type TRoleDALFactory = ReturnType; + +export const roleDALFactory = (db: TDbClient) => { + const orm = ormify(db, TableName.Role); + return orm; +}; diff --git a/backend/src/services/role/role-service.ts b/backend/src/services/role/role-service.ts new file mode 100644 index 0000000000..41c825b2e9 --- /dev/null +++ b/backend/src/services/role/role-service.ts @@ -0,0 +1,276 @@ +import { packRules } from "@casl/ability/extra"; +import { requestContext } from "@fastify/request-context"; + +import { AccessScope, ActionProjectType, TableName } from "@app/db/schemas"; +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { validateHandlebarTemplate } from "@app/lib/template/validate-handlebars"; +import { UnpackedPermissionSchema, unpackPermissions } from "@app/server/routes/sanitizedSchema/permission"; + +import { ActorType } from "../auth/auth-type"; +import { TExternalGroupOrgRoleMappingDALFactory } from "../external-group-org-role-mapping/external-group-org-role-mapping-dal"; +import { TIdentityDALFactory } from "../identity/identity-dal"; +import { TProjectDALFactory } from "../project/project-dal"; +import { TUserDALFactory } from "../user/user-dal"; +import { newNamespaceRoleFactory } from "./namespace/namespace-role-factory"; +import { newOrgRoleFactory } from "./org/org-role-factory"; +import { newProjectRoleFactory } from "./project/project-role-factory"; +import { TRoleDALFactory } from "./role-dal"; +import { + TCreateRoleDTO, + TDeleteRoleDTO, + TGetRoleByIdDTO, + TGetRoleBySlugDTO, + TGetUserPermissionDTO, + TListRoleDTO, + TUpdateRoleDTO +} from "./role-types"; + +type TRoleServiceFactoryDep = { + roleDAL: TRoleDALFactory; + identityDAL: Pick; + userDAL: Pick; + permissionService: Pick; + projectDAL: Pick; + externalGroupOrgRoleMappingDAL: Pick; +}; + +export type TRoleServiceFactory = ReturnType; + +export const roleServiceFactory = ({ + roleDAL, + permissionService, + projectDAL, + identityDAL, + userDAL, + externalGroupOrgRoleMappingDAL +}: TRoleServiceFactoryDep) => { + const orgRoleFactory = newOrgRoleFactory({ + permissionService, + externalGroupOrgRoleMappingDAL + }); + const projectRoleFactory = newProjectRoleFactory({ + permissionService, + projectDAL + }); + const namespaceRoleFactory = newNamespaceRoleFactory({ + permissionService + }); + const scopeFactory = { + [AccessScope.Organization]: orgRoleFactory, + [AccessScope.Project]: projectRoleFactory, + [AccessScope.Namespace]: namespaceRoleFactory + }; + + const createRole = async (dto: TCreateRoleDTO) => { + const { data, scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + await factory.onCreateRoleGuard(dto); + + const scope = factory.getScopeField(scopeData); + const existingRole = await roleDAL.findOne({ + slug: data.slug, + [scope.key]: scope.value + }); + if (existingRole) throw new NotFoundError({ message: `Role with ${data.slug} exists` }); + + validateHandlebarTemplate("Role Creation", JSON.stringify(data.permissions || []), { + allowedExpressions: (val) => val.includes("identity.") + }); + + const role = await roleDAL.create({ + name: data.name, + description: data.description, + slug: data.slug, + permissions: data.permissions, + [scope.key]: scope.value + }); + + return { ...role, [scope.key]: scope.value, permissions: unpackPermissions(role.permissions) }; + }; + + const updateRole = async (dto: TUpdateRoleDTO) => { + const { data, scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + const scope = factory.getScopeField(scopeData); + + await factory.onUpdateRoleGuard(dto); + + const existingRole = await roleDAL.findOne({ + id: dto.selector.id, + [scope.key]: scope.value + }); + if (!existingRole) throw new NotFoundError({ message: `Role with ${dto.selector.id} not found` }); + + if (data.slug) { + const existingSlug = await roleDAL.findOne({ + slug: data.slug, + [scope.key]: scope.value + }); + if (existingSlug && existingRole.id !== existingSlug.id) + throw new BadRequestError({ message: `Role with ${data.slug} already exists` }); + } + + validateHandlebarTemplate("Role Update", JSON.stringify(data.permissions || []), { + allowedExpressions: (val) => val.includes("identity.") + }); + + const role = await roleDAL.updateById(existingRole.id, { + name: data?.name, + description: data?.description, + slug: data?.slug, + permissions: data?.permissions + }); + + return { ...role, [scope.key]: scope.value, permissions: unpackPermissions(role.permissions) }; + }; + + const deleteRole = async (dto: TDeleteRoleDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + const scope = factory.getScopeField(scopeData); + await factory.onDeleteRoleGuard(dto); + + const existingRole = await roleDAL.findOne({ + id: dto.selector.id, + [scope.key]: scope.value + }); + if (!existingRole) throw new NotFoundError({ message: `Role with ${dto.selector.id} not found` }); + + const [role] = await roleDAL.delete({ + id: existingRole.id, + [scope.key]: scope.value + }); + + return { ...role, [scope.key]: scope.value, permissions: unpackPermissions(role.permissions) }; + }; + + const listRoles = async (dto: TListRoleDTO) => { + const { scopeData } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onListRoleGuard(dto); + + const scope = factory.getScopeField(scopeData); + const predefinedRoles = await factory.getPredefinedRoles(scopeData); + const roles = await roleDAL.find( + { + [scope.key]: scope.value + }, + { limit: dto.data.limit, offset: dto.data.offset, sort: [[`${TableName.Role}.slug` as "slug", "asc"]] } + ); + + return { + roles: [...predefinedRoles, ...roles.map((el) => ({ ...el, permissions: unpackPermissions(el.permissions) }))] + }; + }; + + const getRoleById = async (dto: TGetRoleByIdDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onGetRoleByIdGuard(dto); + + const scope = factory.getScopeField(scopeData); + + const predefinedRole = await factory.getPredefinedRoles(scopeData); + const selectedRole = predefinedRole.find((el) => el.id === dto.selector.id); + if (selectedRole) { + return { ...selectedRole, permissions: UnpackedPermissionSchema.array().parse(selectedRole.permissions) }; + } + + const role = await roleDAL.findOne({ + id: selector.id, + [scope.key]: scope.value + }); + if (!role) throw new NotFoundError({ message: `Role with id ${dto.selector.id} not found` }); + + return { ...role, [scope.key]: scope.value, permissions: unpackPermissions(role.permissions) }; + }; + + const getRoleBySlug = async (dto: TGetRoleBySlugDTO) => { + const { scopeData, selector } = dto; + const factory = scopeFactory[scopeData.scope]; + + await factory.onGetRoleBySlugGuard(dto); + + const scope = factory.getScopeField(scopeData); + const isCustomRole = factory.isCustomRole(dto.selector.slug); + if (!isCustomRole) { + const predefinedRole = await factory.getPredefinedRoles(scopeData); + const selectedRole = predefinedRole.find((el) => el.slug === dto.selector.slug); + if (!selectedRole) throw new BadRequestError({ message: `Role with slug ${dto.selector.slug} not found` }); + return { ...selectedRole, permissions: UnpackedPermissionSchema.array().parse(selectedRole.permissions) }; + } + + const role = await roleDAL.findOne({ + slug: selector.slug, + [scope.key]: scope.value + }); + if (!role) throw new NotFoundError({ message: `Role with slug ${dto.selector.slug} not found` }); + + return { ...role, [scope.key]: scope.value, permissions: unpackPermissions(role.permissions) }; + }; + + const getUserPermission = async (dto: TGetUserPermissionDTO) => { + if (dto.scopeData.scope === AccessScope.Organization) { + const { permission, memberships } = await permissionService.getOrgPermission( + dto.permission.type, + dto.permission.id, + dto.permission.orgId, + dto.permission.authMethod, + dto.permission.orgId + ); + return { permissions: packRules(permission.rules), memberships, assumedPrivilegeDetails: undefined }; + } + + if (dto.scopeData.scope === AccessScope.Project) { + const { permission, memberships } = await permissionService.getProjectPermission({ + actor: dto.permission.type, + actorId: dto.permission.id, + actionProjectType: ActionProjectType.Any, + actorAuthMethod: dto.permission.authMethod, + projectId: dto.scopeData.projectId, + actorOrgId: dto.permission.orgId + }); + + const assumedPrivilegeDetailsCtx = requestContext.get("assumedPrivilegeDetails"); + const isAssumingPrivilege = assumedPrivilegeDetailsCtx?.projectId === dto.scopeData.projectId; + const assumedPrivilegeDetails = isAssumingPrivilege + ? { + actorId: assumedPrivilegeDetailsCtx?.actorId, + actorType: assumedPrivilegeDetailsCtx?.actorType, + actorName: "", + actorEmail: "" + } + : undefined; + + if (assumedPrivilegeDetails?.actorType === ActorType.IDENTITY) { + const identityDetails = await identityDAL.findById(assumedPrivilegeDetails.actorId); + if (!identityDetails) + throw new NotFoundError({ message: `Identity with ID ${assumedPrivilegeDetails.actorId} not found` }); + assumedPrivilegeDetails.actorName = identityDetails.name; + } else if (assumedPrivilegeDetails?.actorType === ActorType.USER) { + const userDetails = await userDAL.findById(assumedPrivilegeDetails?.actorId); + if (!userDetails) + throw new NotFoundError({ message: `User with ID ${assumedPrivilegeDetails.actorId} not found` }); + assumedPrivilegeDetails.actorName = `${userDetails?.firstName} ${userDetails?.lastName || ""}`; + assumedPrivilegeDetails.actorEmail = userDetails?.email || ""; + } + + return { permissions: packRules(permission.rules), memberships, assumedPrivilegeDetails }; + } + + throw new BadRequestError({ message: "Invalid scope defined" }); + }; + + return { + createRole, + updateRole, + deleteRole, + listRoles, + getRoleById, + getRoleBySlug, + getUserPermission + }; +}; diff --git a/backend/src/services/role/role-types.ts b/backend/src/services/role/role-types.ts new file mode 100644 index 0000000000..96fc9c0f35 --- /dev/null +++ b/backend/src/services/role/role-types.ts @@ -0,0 +1,79 @@ +import { MongoAbility, RawRuleOf } from "@casl/ability"; + +import { AccessScopeData, TRoles } from "@app/db/schemas"; +import { OrgServiceActor } from "@app/lib/types"; + +export interface TRoleScopeFactory { + onCreateRoleGuard: (arg: TCreateRoleDTO) => Promise; + onUpdateRoleGuard: (arg: TUpdateRoleDTO) => Promise; + onDeleteRoleGuard: (arg: TDeleteRoleDTO) => Promise; + onListRoleGuard: (arg: TListRoleDTO) => Promise; + getPredefinedRoles: (arg: AccessScopeData) => Promise<(TRoles & { permissions: RawRuleOf[] })[]>; + onGetRoleByIdGuard: (arg: TGetRoleByIdDTO) => Promise; + onGetRoleBySlugGuard: (arg: TGetRoleBySlugDTO) => Promise; + getScopeField: (scope: AccessScopeData) => { key: "orgId" | "namespaceId" | "projectId"; value: string }; + isCustomRole: (role: string) => boolean; +} + +export type TCreateRoleDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + name: string; + description?: string | null; + slug: string; + permissions: unknown; + }; +}; + +export type TUpdateRoleDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + id: string; + }; + data: Partial<{ + name: string; + description?: string | null; + slug: string; + permissions: unknown; + }>; +}; + +export type TListRoleDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + data: { + limit?: number; + offset?: number; + }; +}; + +export type TDeleteRoleDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + id: string; + }; +}; + +export type TGetRoleByIdDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + id: string; + }; +}; + +export type TGetRoleBySlugDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; + selector: { + slug: string; + }; +}; + +export type TGetUserPermissionDTO = { + permission: OrgServiceActor; + scopeData: AccessScopeData; +}; diff --git a/backend/src/services/secret-import/secret-import-service.ts b/backend/src/services/secret-import/secret-import-service.ts index 30cd932912..36f3459cfb 100644 --- a/backend/src/services/secret-import/secret-import-service.ts +++ b/backend/src/services/secret-import/secret-import-service.ts @@ -385,7 +385,7 @@ export const secretImportServiceFactory = ({ path: secretPath, id: secretImportDocId }: TResyncSecretImportReplicationDTO) => { - const { permission, membership } = await permissionService.getProjectPermission({ + const { permission, memberships } = await permissionService.getProjectPermission({ actor, actorId, projectId, @@ -437,7 +437,7 @@ export const secretImportServiceFactory = ({ secretImportDoc.importPath ); - if (membership && sourceFolder) { + if (memberships?.length && sourceFolder) { await secretQueueService.replicateSecrets({ orgId: actorOrgId, secretPath: secretImportDoc.importPath, diff --git a/backend/src/services/secret-reminder-recipients/secret-reminder-recipients-dal.ts b/backend/src/services/secret-reminder-recipients/secret-reminder-recipients-dal.ts index ec4a3f807d..384de47e8d 100644 --- a/backend/src/services/secret-reminder-recipients/secret-reminder-recipients-dal.ts +++ b/backend/src/services/secret-reminder-recipients/secret-reminder-recipients-dal.ts @@ -1,7 +1,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; +import { AccessScope, TableName } from "@app/db/schemas"; import { ormify, selectAllTableCols } from "@app/lib/knex"; export type TSecretReminderRecipientsDALFactory = ReturnType; @@ -14,13 +14,13 @@ export const secretReminderRecipientsDALFactory = (db: TDbClient) => { .where({ secretId }) .leftJoin(TableName.Users, `${TableName.SecretReminderRecipients}.userId`, `${TableName.Users}.id`) .leftJoin(TableName.Project, `${TableName.SecretReminderRecipients}.projectId`, `${TableName.Project}.id`) - .leftJoin(TableName.OrgMembership, (bd) => { + .leftJoin(TableName.Membership, (bd) => { void bd - .on(`${TableName.OrgMembership}.userId`, "=", `${TableName.SecretReminderRecipients}.userId`) - .andOn(`${TableName.OrgMembership}.orgId`, "=", `${TableName.Project}.orgId`); + .on(`${TableName.Membership}.actorUserId`, "=", `${TableName.SecretReminderRecipients}.userId`) + .andOn(`${TableName.Membership}.scopeOrgId`, "=", `${TableName.Project}.orgId`) + .andOn(`${TableName.Membership}.scope`, db.raw("?", [AccessScope.Organization])); }) - - .where(`${TableName.OrgMembership}.isActive`, true) + .where(`${TableName.Membership}.isActive`, true) .select(selectAllTableCols(TableName.SecretReminderRecipients)) .select( db.ref("email").withSchema(TableName.Users).as("email"), diff --git a/backend/src/services/secret-sync/railway/railway-sync-fns.ts b/backend/src/services/secret-sync/railway/railway-sync-fns.ts index 07862aeb5c..731691acfd 100644 --- a/backend/src/services/secret-sync/railway/railway-sync-fns.ts +++ b/backend/src/services/secret-sync/railway/railway-sync-fns.ts @@ -12,6 +12,8 @@ export const RailwaySyncFns = { async getSecrets(secretSync: TRailwaySyncWithCredentials): Promise { try { const config = secretSync.destinationConfig; + const { keySchema } = secretSync.syncOptions; + const { environment } = secretSync; const variables = await RailwayPublicAPI.getVariables(secretSync.connection, { projectId: config.projectId, @@ -26,6 +28,10 @@ export const RailwaySyncFns = { // eslint-disable-next-line no-continue if (key.startsWith("RAILWAY_")) continue; + // Check if key matches the schema + // eslint-disable-next-line no-continue + if (!matchesSchema(key, environment?.slug || "", keySchema)) continue; + entries[key] = { value }; @@ -40,60 +46,73 @@ export const RailwaySyncFns = { } }, + /** + * Syncs secrets to Railway and redeploys the service if needed. + * + * Gets existing Railway vars, merges with new secrets (keeping Railway vars if deletion is disabled), + * then replaces every variable with the new values, if variable is not in the secretMap, it is deleted. + * If there's a service, triggers a redeploy to pick up the changes. + */ async syncSecrets(secretSync: TRailwaySyncWithCredentials, secretMap: TSecretMap) { - const { - environment, - syncOptions: { disableSecretDeletion, keySchema } - } = secretSync; - const railwaySecrets = await this.getSecrets(secretSync); - const config = secretSync.destinationConfig; + try { + const { + syncOptions: { disableSecretDeletion } + } = secretSync; + const railwaySecrets = await this.getSecrets(secretSync); + const config = secretSync.destinationConfig; - for await (const key of Object.keys(secretMap)) { - try { - const existing = railwaySecrets[key]; + const railwaySecretsMap = Object.fromEntries( + Object.entries(railwaySecrets).map(([key, secret]) => [key, secret.value]) + ); + const secretMapMap = Object.fromEntries(Object.entries(secretMap).map(([key, secret]) => [key, secret.value])); - if (existing === undefined || existing.value !== secretMap[key].value) { - await RailwayPublicAPI.upsertVariable(secretSync.connection, { - input: { - projectId: config.projectId, - environmentId: config.environmentId, - serviceId: config.serviceId || undefined, - name: key, - value: secretMap[key].value ?? "" - } - }); + const toReplace = disableSecretDeletion ? { ...railwaySecretsMap, ...secretMapMap } : secretMapMap; + + const upserted = await RailwayPublicAPI.upsertCollection(secretSync.connection, { + input: { + projectId: config.projectId, + environmentId: config.environmentId, + serviceId: config.serviceId || undefined, + skipDeploys: true, + variables: toReplace, + replace: true } - } catch (error) { + }); + + if (!upserted) throw new SecretSyncError({ - error, - secretKey: key + message: "Failed to upsert secrets to Railway" }); - } - } - if (disableSecretDeletion) return; + if (!config.serviceId) return; - for await (const key of Object.keys(railwaySecrets)) { - try { - // eslint-disable-next-line no-continue - if (!matchesSchema(key, environment?.slug || "", keySchema)) continue; + const latestDeployment = await RailwayPublicAPI.getDeployments(secretSync.connection, { + input: { + serviceId: config.serviceId, + environmentId: config.environmentId + }, + first: 1 + }); - if (!secretMap[key]) { - await RailwayPublicAPI.deleteVariable(secretSync.connection, { - input: { - projectId: config.projectId, - environmentId: config.environmentId, - serviceId: config.serviceId || undefined, - name: key - } - }); + const latestDeploymentId = latestDeployment?.deployments.edges[0].node.id; + + if (!latestDeploymentId) + throw new SecretSyncError({ + message: "Failed to get latest deployment from Railway" + }); + + await RailwayPublicAPI.redeployDeployment(secretSync.connection, { + input: { + deploymentId: latestDeploymentId } - } catch (error) { - throw new SecretSyncError({ - error, - secretKey: key - }); - } + }); + } catch (error) { + if (error instanceof SecretSyncError) throw error; + + throw new SecretSyncError({ + error, + message: "Failed to sync secrets to Railway" + }); } }, @@ -101,24 +120,37 @@ export const RailwaySyncFns = { const existing = await this.getSecrets(secretSync); const config = secretSync.destinationConfig; - for await (const secret of Object.keys(existing)) { - try { - if (secret in secretMap) { - await RailwayPublicAPI.deleteVariable(secretSync.connection, { - input: { - projectId: config.projectId, - environmentId: config.environmentId, - serviceId: config.serviceId || undefined, - name: secret - } - }); + // Create a new variables object excluding secrets that exist in secretMap + const remainingVariables = Object.fromEntries( + Object.entries(existing) + .filter(([key]) => !(key in secretMap)) + .map(([key, secret]) => [key, secret.value]) + ); + + try { + const upserted = await RailwayPublicAPI.upsertCollection(secretSync.connection, { + input: { + projectId: config.projectId, + environmentId: config.environmentId, + serviceId: config.serviceId || undefined, + skipDeploys: true, + variables: remainingVariables, + replace: true } - } catch (error) { + }); + + if (!upserted) { throw new SecretSyncError({ - error, - secretKey: secret + message: "Failed to remove secrets from Railway" }); } + } catch (error) { + if (error instanceof SecretSyncError) throw error; + + throw new SecretSyncError({ + error, + message: "Failed to remove secrets from Railway" + }); } } }; diff --git a/backend/src/services/secret-sync/secret-sync-dal.ts b/backend/src/services/secret-sync/secret-sync-dal.ts index 57c6581ced..64d2c0bdb2 100644 --- a/backend/src/services/secret-sync/secret-sync-dal.ts +++ b/backend/src/services/secret-sync/secret-sync-dal.ts @@ -204,5 +204,19 @@ export const secretSyncDALFactory = ( } }; - return { ...secretSyncOrm, findById, findOne, find, create, updateById }; + const findByDestinationAndOrgId = async (destination: string, orgId: string, tx?: Knex) => { + try { + const response = await (tx || db.replicaNode())(TableName.SecretSync) + .join(TableName.Project, `${TableName.SecretSync}.projectId`, `${TableName.Project}.id`) + .where(`${TableName.SecretSync}.destination`, destination) + .where(`${TableName.Project}.orgId`, orgId) + .select(selectAllTableCols(TableName.SecretSync)); + + return response; + } catch (error) { + throw new DatabaseError({ error, name: "Find By Destination And Org ID - Secret Sync" }); + } + }; + + return { ...secretSyncOrm, findById, findOne, find, create, updateById, findByDestinationAndOrgId }; }; diff --git a/backend/src/services/secret-sync/secret-sync-maps.ts b/backend/src/services/secret-sync/secret-sync-maps.ts index 04e91051da..1fbc66ccab 100644 --- a/backend/src/services/secret-sync/secret-sync-maps.ts +++ b/backend/src/services/secret-sync/secret-sync-maps.ts @@ -1,5 +1,6 @@ import { AppConnection } from "@app/services/app-connection/app-connection-enums"; import { SecretSync, SecretSyncPlanType } from "@app/services/secret-sync/secret-sync-enums"; +import { DestinationDuplicateCheckFn } from "@app/services/secret-sync/secret-sync-types"; export const SECRET_SYNC_NAME_MAP: Record = { [SecretSync.AWSParameterStore]: "AWS Parameter Store", @@ -99,3 +100,104 @@ export const SECRET_SYNC_PLAN_MAP: Record = { [SecretSync.Netlify]: SecretSyncPlanType.Regular, [SecretSync.Bitbucket]: SecretSyncPlanType.Regular }; + +export const SECRET_SYNC_SKIP_FIELDS_MAP: Record = { + [SecretSync.AWSParameterStore]: [], + [SecretSync.AWSSecretsManager]: ["mappingBehavior", "secretName"], + [SecretSync.GitHub]: [], + [SecretSync.GCPSecretManager]: [], + [SecretSync.AzureKeyVault]: [], + [SecretSync.AzureAppConfiguration]: ["label"], + [SecretSync.AzureDevOps]: ["devopsProjectName"], + [SecretSync.Databricks]: [], + [SecretSync.Humanitec]: [], + [SecretSync.TerraformCloud]: ["variableSetName", "workspaceName"], + [SecretSync.Camunda]: [], + [SecretSync.Vercel]: ["appName"], + [SecretSync.Windmill]: [], + [SecretSync.HCVault]: [], + [SecretSync.TeamCity]: [], + [SecretSync.OCIVault]: [], + [SecretSync.OnePass]: ["valueLabel"], + [SecretSync.Heroku]: ["appName"], + [SecretSync.Render]: [], + [SecretSync.Flyio]: [], + [SecretSync.GitLab]: [ + "projectName", + "shouldProtectSecrets", + "shouldMaskSecrets", + "shouldHideSecrets", + "targetEnvironment", + "groupName", + "groupId", + "projectId" + ], + [SecretSync.CloudflarePages]: [], + [SecretSync.CloudflareWorkers]: [], + [SecretSync.Supabase]: ["projectName"], + [SecretSync.Zabbix]: ["hostName", "macroType"], + [SecretSync.Railway]: ["projectName", "environmentName", "serviceName"], + [SecretSync.Checkly]: ["groupName", "accountName"], + [SecretSync.DigitalOceanAppPlatform]: ["appName"], + [SecretSync.Netlify]: ["accountName", "siteName"], + [SecretSync.Bitbucket]: [] +}; + +const defaultDuplicateCheck: DestinationDuplicateCheckFn = () => true; + +export const DESTINATION_DUPLICATE_CHECK_MAP: Record = { + [SecretSync.AWSParameterStore]: defaultDuplicateCheck, + [SecretSync.AWSSecretsManager]: defaultDuplicateCheck, + [SecretSync.GitHub]: defaultDuplicateCheck, + [SecretSync.GCPSecretManager]: defaultDuplicateCheck, + [SecretSync.AzureKeyVault]: defaultDuplicateCheck, + [SecretSync.AzureAppConfiguration]: defaultDuplicateCheck, + [SecretSync.AzureDevOps]: defaultDuplicateCheck, + [SecretSync.Databricks]: defaultDuplicateCheck, + [SecretSync.Humanitec]: defaultDuplicateCheck, + [SecretSync.TerraformCloud]: defaultDuplicateCheck, + [SecretSync.Camunda]: defaultDuplicateCheck, + [SecretSync.Vercel]: defaultDuplicateCheck, + [SecretSync.Windmill]: defaultDuplicateCheck, + [SecretSync.HCVault]: defaultDuplicateCheck, + [SecretSync.TeamCity]: defaultDuplicateCheck, + [SecretSync.OCIVault]: defaultDuplicateCheck, + [SecretSync.OnePass]: defaultDuplicateCheck, + [SecretSync.Heroku]: defaultDuplicateCheck, + [SecretSync.Render]: defaultDuplicateCheck, + [SecretSync.Flyio]: defaultDuplicateCheck, + [SecretSync.GitLab]: (existingConfig, newConfig) => { + const existingTargetEnv = existingConfig.targetEnvironment as string | undefined; + const newTargetEnv = newConfig.targetEnvironment as string | undefined; + + const wildcardValues = ["*", ""]; + + if ( + (newConfig.scope as string) === "group" + ? existingConfig.groupId !== newConfig.groupId + : existingConfig.projectId !== newConfig.projectId + ) + return false; + + // If either has wildcard, it conflicts with any targetEnvironment + if ( + !existingTargetEnv || + !newTargetEnv || + wildcardValues.includes(existingTargetEnv) || + wildcardValues.includes(newTargetEnv) + ) { + return true; + } + + return existingTargetEnv === newTargetEnv; + }, + [SecretSync.CloudflarePages]: defaultDuplicateCheck, + [SecretSync.CloudflareWorkers]: defaultDuplicateCheck, + [SecretSync.Supabase]: defaultDuplicateCheck, + [SecretSync.Zabbix]: defaultDuplicateCheck, + [SecretSync.Railway]: defaultDuplicateCheck, + [SecretSync.Checkly]: defaultDuplicateCheck, + [SecretSync.DigitalOceanAppPlatform]: defaultDuplicateCheck, + [SecretSync.Netlify]: defaultDuplicateCheck, + [SecretSync.Bitbucket]: defaultDuplicateCheck +}; diff --git a/backend/src/services/secret-sync/secret-sync-service.ts b/backend/src/services/secret-sync/secret-sync-service.ts index ecd7d04a50..6a2f49386c 100644 --- a/backend/src/services/secret-sync/secret-sync-service.ts +++ b/backend/src/services/secret-sync/secret-sync-service.ts @@ -12,6 +12,7 @@ import { import { KeyStorePrefixes, TKeyStoreFactory } from "@app/keystore/keystore"; import { DatabaseErrorCode } from "@app/lib/error-codes"; import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors"; +import { deepEqualSkipFields } from "@app/lib/fn/object"; import { OrgServiceActor } from "@app/lib/types"; import { TAppConnectionServiceFactory } from "@app/services/app-connection/app-connection-service"; import { TProjectBotServiceFactory } from "@app/services/project-bot/project-bot-service"; @@ -20,6 +21,7 @@ import { SecretSync } from "@app/services/secret-sync/secret-sync-enums"; import { enterpriseSyncCheck, listSecretSyncOptions } from "@app/services/secret-sync/secret-sync-fns"; import { SecretSyncStatus, + TCheckDuplicateDestinationDTO, TCreateSecretSyncDTO, TDeleteSecretSyncDTO, TFindSecretSyncByIdDTO, @@ -35,7 +37,12 @@ import { import { TSecretImportDALFactory } from "../secret-import/secret-import-dal"; import { TSecretSyncDALFactory } from "./secret-sync-dal"; -import { SECRET_SYNC_CONNECTION_MAP, SECRET_SYNC_NAME_MAP } from "./secret-sync-maps"; +import { + DESTINATION_DUPLICATE_CHECK_MAP, + SECRET_SYNC_CONNECTION_MAP, + SECRET_SYNC_NAME_MAP, + SECRET_SYNC_SKIP_FIELDS_MAP +} from "./secret-sync-maps"; import { TSecretSyncQueueFactory } from "./secret-sync-queue"; type TSecretSyncServiceFactoryDep = { @@ -696,6 +703,61 @@ export const secretSyncServiceFactory = ({ return updatedSecretSync as TSecretSync; }; + const checkDuplicateDestination = async ( + { destination, destinationConfig, excludeSyncId, projectId }: TCheckDuplicateDestinationDTO, + actor: OrgServiceActor + ) => { + const skipFields = SECRET_SYNC_SKIP_FIELDS_MAP[destination]; + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.SecretManager, + projectId + }); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionSecretSyncActions.Read, + ProjectPermissionSub.SecretSyncs + ); + + if (!destinationConfig || Object.keys(destinationConfig).length === 0) { + return { hasDuplicate: false, duplicateProjectId: undefined }; + } + + try { + const existingSyncs = await secretSyncDAL.findByDestinationAndOrgId(destination, actor.orgId); + + const duplicates = existingSyncs.filter((sync) => { + if (sync.id === excludeSyncId) { + return false; + } + + try { + const baseFieldsMatch = deepEqualSkipFields(sync.destinationConfig, destinationConfig, skipFields); + if (baseFieldsMatch) { + return DESTINATION_DUPLICATE_CHECK_MAP[destination]( + sync.destinationConfig as Record, + destinationConfig + ); + } + return false; + } catch { + return false; + } + }); + + const hasDuplicate = duplicates.length > 0; + return { + hasDuplicate, + duplicateProjectId: hasDuplicate ? duplicates[0].projectId : undefined + }; + } catch (error) { + return { hasDuplicate: false, duplicateProjectId: undefined }; + } + }; + return { listSecretSyncOptions, listSecretSyncsByProjectId, @@ -707,6 +769,7 @@ export const secretSyncServiceFactory = ({ deleteSecretSync, triggerSecretSyncSyncSecretsById, triggerSecretSyncImportSecretsById, - triggerSecretSyncRemoveSecretsById + triggerSecretSyncRemoveSecretsById, + checkDuplicateDestination }; }; diff --git a/backend/src/services/secret-sync/secret-sync-types.ts b/backend/src/services/secret-sync/secret-sync-types.ts index 6435e19d39..478c44c92a 100644 --- a/backend/src/services/secret-sync/secret-sync-types.ts +++ b/backend/src/services/secret-sync/secret-sync-types.ts @@ -324,6 +324,13 @@ export type TDeleteSecretSyncDTO = { removeSecrets: boolean; }; +export type TCheckDuplicateDestinationDTO = { + destination: SecretSync; + destinationConfig: Record; + excludeSyncId?: string; + projectId: string; +}; + export enum SecretSyncStatus { Pending = "pending", Running = "running", @@ -408,3 +415,8 @@ export type TSecretMap = Record< secretMetadata?: ResourceMetadataDTO; } >; + +export type DestinationDuplicateCheckFn = ( + existingConfig: Record, + newConfig: Record +) => boolean; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index de8f930ed3..579b19b19b 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -2395,8 +2395,8 @@ export const secretV2BridgeServiceFactory = ({ projectId: folder.projectId, secretVersions: secretVersionsFilter, findOpt: { - offset, limit, + offset, sort: [["createdAt", "desc"]] } }); diff --git a/backend/src/services/secret-v2-bridge/secret-version-dal.ts b/backend/src/services/secret-v2-bridge/secret-version-dal.ts index 0282fa5372..7d25dac864 100644 --- a/backend/src/services/secret-v2-bridge/secret-version-dal.ts +++ b/backend/src/services/secret-v2-bridge/secret-version-dal.ts @@ -2,7 +2,13 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { SecretVersionsV2Schema, TableName, TSecretVersionsV2, TSecretVersionsV2Update } from "@app/db/schemas"; +import { + AccessScope, + SecretVersionsV2Schema, + TableName, + TSecretVersionsV2, + TSecretVersionsV2Update +} from "@app/db/schemas"; import { BadRequestError, DatabaseError } from "@app/lib/errors"; import { buildFindFilter, ormify, selectAllTableCols, sqlNestRelationships, TFindOpt } from "@app/lib/knex"; import { logger } from "@app/lib/logger"; @@ -191,11 +197,11 @@ export const secretVersionV2BridgeDALFactory = (db: TDbClient) => { const { offset, limit, sort = [["createdAt", "desc"]] } = findOpt; const query = (tx || db.replicaNode())(TableName.SecretVersionV2) .leftJoin(TableName.Users, `${TableName.Users}.id`, `${TableName.SecretVersionV2}.userActorId`) - .leftJoin( - TableName.ProjectMembership, - `${TableName.ProjectMembership}.userId`, - `${TableName.SecretVersionV2}.userActorId` - ) + .leftJoin(TableName.Membership, (qb) => { + void qb + .on(`${TableName.Membership}.actorUserId`, `${TableName.SecretVersionV2}.userActorId`) + .andOn(`${TableName.Membership}.scope`, db.raw("?", [AccessScope.Project])); + }) .leftJoin(TableName.Identity, `${TableName.Identity}.id`, `${TableName.SecretVersionV2}.identityActorId`) .leftJoin(TableName.SecretV2, `${TableName.SecretVersionV2}.secretId`, `${TableName.SecretV2}.id`) .leftJoin( @@ -210,19 +216,19 @@ export const secretVersionV2BridgeDALFactory = (db: TDbClient) => { ) .where((qb) => { void qb.where(`${TableName.SecretVersionV2}.secretId`, secretId); - void qb.where(`${TableName.ProjectMembership}.projectId`, projectId); + void qb.where(`${TableName.Membership}.scopeProjectId`, projectId); if (secretVersions?.length) void qb.whereIn(`${TableName.SecretVersionV2}.version`, secretVersions); }) .orWhere((qb) => { void qb.where(`${TableName.SecretVersionV2}.secretId`, secretId); - void qb.whereNull(`${TableName.ProjectMembership}.projectId`); + void qb.whereNull(`${TableName.Membership}.scopeProjectId`); if (secretVersions?.length) void qb.whereIn(`${TableName.SecretVersionV2}.version`, secretVersions); }) .select( selectAllTableCols(TableName.SecretVersionV2), db.ref("username").withSchema(TableName.Users).as("userActorName"), db.ref("name").withSchema(TableName.Identity).as("identityActorName"), - db.ref("id").withSchema(TableName.ProjectMembership).as("membershipId"), + db.ref("id").withSchema(TableName.Membership).as("membershipId"), db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") diff --git a/backend/src/services/secret/secret-queue.ts b/backend/src/services/secret/secret-queue.ts index ed794a664e..61507d1275 100644 --- a/backend/src/services/secret/secret-queue.ts +++ b/backend/src/services/secret/secret-queue.ts @@ -4,6 +4,7 @@ import { AxiosError } from "axios"; import { Knex } from "knex"; import { + AccessScope, ProjectMembershipRole, ProjectType, ProjectUpgradeStatus, @@ -43,6 +44,8 @@ import { TIntegrationAuthServiceFactory } from "../integration-auth/integration- import { syncIntegrationSecrets } from "../integration-auth/integration-sync-secret"; import { TKmsServiceFactory } from "../kms/kms-service"; import { KmsDataKey } from "../kms/kms-types"; +import { TMembershipDALFactory } from "../membership/membership-dal"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; import { TOrgServiceFactory } from "../org/org-service"; import { TProjectDALFactory } from "../project/project-dal"; import { createProjectKey } from "../project/project-fns"; @@ -50,7 +53,6 @@ import { TProjectBotServiceFactory } from "../project-bot/project-bot-service"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; import { TProjectKeyDALFactory } from "../project-key/project-key-dal"; import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; -import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; import { TReminderServiceFactory } from "../reminder/reminder-types"; import { TResourceMetadataDALFactory } from "../resource-metadata/resource-metadata-dal"; import { ResourceMetadataDTO } from "../resource-metadata/resource-metadata-schema"; @@ -92,7 +94,9 @@ type TSecretQueueFactoryDep = { projectDAL: TProjectDALFactory; projectBotDAL: TProjectBotDALFactory; projectKeyDAL: Pick; - projectMembershipDAL: Pick; + projectMembershipDAL: Pick; + membershipUserDAL: Pick; + membershipRoleDAL: Pick; smtpService: TSmtpService; secretVersionDAL: TSecretVersionDALFactory; secretBlindIndexDAL: TSecretBlindIndexDALFactory; @@ -110,7 +114,6 @@ type TSecretQueueFactoryDep = { keyStore: Pick; auditLogService: Pick; orgService: Pick; - projectUserMembershipRoleDAL: Pick; resourceMetadataDAL: Pick; folderCommitService: Pick; secretSyncQueue: Pick; @@ -173,14 +176,15 @@ export const secretQueueFactory = ({ keyStore, auditLogService, orgService, - projectUserMembershipRoleDAL, projectKeyDAL, resourceMetadataDAL, secretSyncQueue, folderCommitService, reminderService, eventBusService, - licenseService + licenseService, + membershipUserDAL, + membershipRoleDAL }: TSecretQueueFactoryDep) => { const integrationMeter = opentelemetry.metrics.getMeter("Integrations"); const errorHistogram = integrationMeter.createHistogram("integration_secret_sync_errors", { @@ -1165,17 +1169,16 @@ export const secretQueueFactory = ({ // if project v1 create the project ghost user if (project.version === ProjectVersion.V1) { const ghostUser = await orgService.addGhostUser(project.orgId, tx); - const projectMembership = await projectMembershipDAL.create( + const projectMembership = await membershipUserDAL.create( { - userId: ghostUser.user.id, - projectId: project.id + actorUserId: ghostUser.user.id, + scopeOrgId: project.orgId, + scope: AccessScope.Project, + scopeProjectId: project.id }, tx ); - await projectUserMembershipRoleDAL.create( - { projectMembershipId: projectMembership.id, role: ProjectMembershipRole.Admin }, - tx - ); + await membershipRoleDAL.create({ membershipId: projectMembership.id, role: ProjectMembershipRole.Admin }, tx); const { key: encryptedProjectKey, iv: encryptedProjectKeyIv } = createProjectKey({ publicKey: ghostUser.keys.publicKey, diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 3a5ccc6672..723cd368cc 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -1283,7 +1283,8 @@ export const secretServiceFactory = ({ }); const { userPermissions, identityPermissions, groupPermissions } = await permissionService.getProjectPermissions( - dto.projectId + dto.projectId, + dto.actorOrgId ); const attachAllowedActions = ( diff --git a/backend/src/services/smtp/emails/AccountDeletionConfirmationTemplate.tsx b/backend/src/services/smtp/emails/AccountDeletionConfirmationTemplate.tsx new file mode 100644 index 0000000000..ff4cb7de92 --- /dev/null +++ b/backend/src/services/smtp/emails/AccountDeletionConfirmationTemplate.tsx @@ -0,0 +1,36 @@ +import { Heading, Section, Text } from "@react-email/components"; +import React from "react"; + +import { BaseEmailWrapper, BaseEmailWrapperProps } from "./BaseEmailWrapper"; + +interface AccountDeletionConfirmationTemplateProps + extends Omit { + email: string; +} + +export const AccountDeletionConfirmationTemplate = ({ email, siteUrl }: AccountDeletionConfirmationTemplateProps) => { + return ( + + + Account Deleted + +
+ + This email confirms that your Infisical account {email} has been deleted, including all + associated data. + +
+
+ ); +}; + +export default AccountDeletionConfirmationTemplate; + +AccountDeletionConfirmationTemplate.PreviewProps = { + email: "test@infisical.com", + siteUrl: "https://infisical.com" +} as AccountDeletionConfirmationTemplateProps; diff --git a/backend/src/services/smtp/emails/HealthAlertTemplate.tsx b/backend/src/services/smtp/emails/HealthAlertTemplate.tsx new file mode 100644 index 0000000000..46b919f113 --- /dev/null +++ b/backend/src/services/smtp/emails/HealthAlertTemplate.tsx @@ -0,0 +1,47 @@ +import { Heading, Section, Text } from "@react-email/components"; + +import { BaseEmailWrapper, BaseEmailWrapperProps } from "./BaseEmailWrapper"; +import { BaseLink } from "./BaseLink"; + +interface HealthAlertTemplateProps extends Omit { + type: "gateway" | "relay" | "instance-relay"; + names: string; +} + +export const HealthAlertTemplate = ({ siteUrl, names, type }: HealthAlertTemplateProps) => { + return ( + + + {type === "gateway" ? "Gateway" : "Relay"} Health Alert + +
+ + The following {type}(s) in your organization may be offline as they haven't reported a + heartbeat in over an hour: {names}. + + + {type === "instance-relay" && ( + <> + If the issue persists, you can contact the Infisical team at{" "} + support@infisical.com. + + )} + {type === "relay" && <>Please contact your relay administrators.} + {type === "gateway" && <>Please contact your gateway administrators.} + +
+
+ ); +}; + +export default HealthAlertTemplate; + +HealthAlertTemplate.PreviewProps = { + type: "gateway", + names: '"gateway1", "gateway2"', + siteUrl: "https://infisical.com" +} as HealthAlertTemplateProps; diff --git a/backend/src/services/smtp/emails/index.ts b/backend/src/services/smtp/emails/index.ts index 066744596e..06ac31ab69 100644 --- a/backend/src/services/smtp/emails/index.ts +++ b/backend/src/services/smtp/emails/index.ts @@ -1,10 +1,12 @@ export * from "./AccessApprovalRequestTemplate"; export * from "./AccessApprovalRequestUpdatedTemplate"; +export * from "./AccountDeletionConfirmationTemplate"; export * from "./EmailMfaTemplate"; export * from "./EmailVerificationTemplate"; export * from "./ExternalImportFailedTemplate"; export * from "./ExternalImportStartedTemplate"; export * from "./ExternalImportSucceededTemplate"; +export * from "./HealthAlertTemplate"; export * from "./IntegrationSyncFailedTemplate"; export * from "./NewDeviceLoginTemplate"; export * from "./OAuthPasswordResetTemplate"; diff --git a/backend/src/services/smtp/smtp-service.ts b/backend/src/services/smtp/smtp-service.ts index d64582fe00..652f565679 100644 --- a/backend/src/services/smtp/smtp-service.ts +++ b/backend/src/services/smtp/smtp-service.ts @@ -9,11 +9,13 @@ import { logger } from "@app/lib/logger"; import { AccessApprovalRequestTemplate, AccessApprovalRequestUpdatedTemplate, + AccountDeletionConfirmationTemplate, EmailMfaTemplate, EmailVerificationTemplate, ExternalImportFailedTemplate, ExternalImportStartedTemplate, ExternalImportSucceededTemplate, + HealthAlertTemplate, IntegrationSyncFailedTemplate, NewDeviceLoginTemplate, OAuthPasswordResetTemplate, @@ -83,7 +85,9 @@ export enum SmtpTemplates { OrgAdminBreakglassAccess = "orgAdminBreakglassAccess", ServiceTokenExpired = "serviceTokenExpired", SecretScanningV2ScanFailed = "secretScanningV2ScanFailed", - SecretScanningV2SecretsDetected = "secretScanningV2SecretsDetected" + SecretScanningV2SecretsDetected = "secretScanningV2SecretsDetected", + AccountDeletionConfirmation = "accountDeletionConfirmation", + HealthAlert = "healthAlert" } export enum SmtpHost { @@ -128,7 +132,9 @@ const EmailTemplateMap: Record> = { [SmtpTemplates.SetupPassword]: PasswordSetupTemplate, [SmtpTemplates.PkiExpirationAlert]: PkiExpirationAlertTemplate, [SmtpTemplates.SecretScanningV2ScanFailed]: SecretScanningScanFailedTemplate, - [SmtpTemplates.SecretScanningV2SecretsDetected]: SecretScanningSecretsDetectedTemplate + [SmtpTemplates.SecretScanningV2SecretsDetected]: SecretScanningSecretsDetectedTemplate, + [SmtpTemplates.AccountDeletionConfirmation]: AccountDeletionConfirmationTemplate, + [SmtpTemplates.HealthAlert]: HealthAlertTemplate }; export const smtpServiceFactory = (cfg: TSmtpConfig) => { diff --git a/backend/src/services/super-admin/super-admin-service.ts b/backend/src/services/super-admin/super-admin-service.ts index b43e4e0a27..84a53f4075 100644 --- a/backend/src/services/super-admin/super-admin-service.ts +++ b/backend/src/services/super-admin/super-admin-service.ts @@ -1,6 +1,7 @@ import { CronJob } from "cron"; import { + AccessScope, IdentityAuthMethod, OrgMembershipRole, OrgMembershipStatus, @@ -29,7 +30,6 @@ import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { TAuthLoginFactory } from "../auth/auth-login-service"; import { ActorType, AuthMethod, AuthTokenType } from "../auth/auth-type"; -import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityAccessTokenJwtPayload } from "../identity-access-token/identity-access-token-types"; import { TIdentityTokenAuthDALFactory } from "../identity-token-auth/identity-token-auth-dal"; @@ -37,10 +37,12 @@ import { KMS_ROOT_CONFIG_UUID } from "../kms/kms-fns"; import { TKmsRootConfigDALFactory } from "../kms/kms-root-config-dal"; import { TKmsServiceFactory } from "../kms/kms-service"; import { RootKeyEncryptionStrategy } from "../kms/kms-types"; +import { TMembershipRoleDALFactory } from "../membership/membership-role-dal"; +import { TMembershipIdentityDALFactory } from "../membership-identity/membership-identity-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TMicrosoftTeamsServiceFactory } from "../microsoft-teams/microsoft-teams-service"; import { TOrgDALFactory } from "../org/org-dal"; import { TOrgServiceFactory } from "../org/org-service"; -import { TOrgMembershipDALFactory } from "../org-membership/org-membership-dal"; import { TUserDALFactory } from "../user/user-dal"; import { TUserAliasDALFactory } from "../user-alias/user-alias-dal"; import { UserAliasType } from "../user-alias/user-alias-types"; @@ -64,16 +66,17 @@ type TSuperAdminServiceFactoryDep = { identityDAL: TIdentityDALFactory; identityTokenAuthDAL: TIdentityTokenAuthDALFactory; identityAccessTokenDAL: TIdentityAccessTokenDALFactory; - identityOrgMembershipDAL: TIdentityOrgDALFactory; orgDAL: TOrgDALFactory; - orgMembershipDAL: TOrgMembershipDALFactory; serverCfgDAL: TSuperAdminDALFactory; userDAL: TUserDALFactory; + membershipUserDAL: TMembershipUserDALFactory; + membershipIdentityDAL: TMembershipIdentityDALFactory; + membershipRoleDAL: TMembershipRoleDALFactory; userAliasDAL: Pick; authService: Pick; kmsService: Pick; kmsRootConfigDAL: TKmsRootConfigDALFactory; - orgService: Pick; + orgService: Pick; keyStore: Pick; licenseService: Pick; microsoftTeamsService: Pick; @@ -127,7 +130,6 @@ export const superAdminServiceFactory = ({ userDAL, identityDAL, orgDAL, - orgMembershipDAL, userAliasDAL, authService, orgService, @@ -137,11 +139,13 @@ export const superAdminServiceFactory = ({ licenseService, identityAccessTokenDAL, identityTokenAuthDAL, - identityOrgMembershipDAL, microsoftTeamsService, invalidateCacheQueue, smtpService, - tokenService + tokenService, + membershipIdentityDAL, + membershipUserDAL, + membershipRoleDAL }: TSuperAdminServiceFactoryDep) => { const initServerCfg = async () => { // TODO(akhilmhdh): bad pattern time less change this later to me itself @@ -589,10 +593,17 @@ export const superAdminServiceFactory = ({ const { identity, credentials } = await identityDAL.transaction(async (tx) => { const newIdentity = await identityDAL.create({ name: "Instance Admin Identity" }, tx); - await identityOrgMembershipDAL.create( + const membership = await membershipIdentityDAL.create( { - identityId: newIdentity.id, - orgId: organization.id, + actorIdentityId: newIdentity.id, + scopeOrgId: organization.id, + scope: AccessScope.Organization + }, + tx + ); + await membershipRoleDAL.create( + { + membershipId: membership.id, role: OrgMembershipRole.Admin }, tx @@ -741,13 +752,12 @@ export const superAdminServiceFactory = ({ }; const getOrganizations = async ({ offset, limit, searchTerm }: TGetOrganizationsDTO) => { - const organizations = await orgDAL.findOrganizationsByFilter({ + return orgDAL.findOrganizationsByFilter({ offset, searchTerm, sortBy: "name", limit }); - return organizations; }; const createOrganization = async ( @@ -835,18 +845,26 @@ export const superAdminServiceFactory = ({ }); } - await orgDAL.createMembership( + const membership = await orgDAL.createMembership( { - userId: inviteeUser.id, + actorUserId: inviteeUser.id, + scope: AccessScope.Organization, inviteEmail: inviteeEmail, - orgId: org.id, - role: OrgMembershipRole.Admin, + scopeOrgId: org.id, status: inviteeUser.isAccepted ? OrgMembershipStatus.Accepted : OrgMembershipStatus.Invited, isActive: true }, tx ); + await membershipRoleDAL.create( + { + membershipId: membership.id, + role: OrgMembershipRole.Admin + }, + tx + ); + users.push(inviteeUser); } @@ -915,23 +933,32 @@ export const superAdminServiceFactory = ({ actorType: ActorType ) => { if (actorType === ActorType.USER) { - const orgMembership = await orgMembershipDAL.findById(membershipId); + const orgMembership = await membershipUserDAL.findOne({ + scope: AccessScope.Organization, + id: membershipId, + scopeOrgId: organizationId + }); if (!orgMembership) { throw new NotFoundError({ name: "Organization Membership", message: "Organization membership not found" }); } - if (orgMembership.userId === actorId) { + if (orgMembership.actorUserId === actorId) { throw new BadRequestError({ message: "You cannot remove yourself from the organization from the instance management panel." }); } } - const [organizationMembership] = await orgMembershipDAL.delete({ - orgId: organizationId, + const membershipRole = await membershipRoleDAL.findOne({ membershipId }); + if (!membershipRole) { + throw new NotFoundError({ name: "Membership Role", message: "Membership role not found" }); + } + const [organizationMembership] = await membershipUserDAL.delete({ + scopeOrgId: organizationId, + scope: AccessScope.Organization, id: membershipId }); - return organizationMembership; + return { ...organizationMembership, role: membershipRole.role, orgId: organizationId }; }; const joinOrganization = async (orgId: string, actor: OrgServiceActor) => { @@ -947,25 +974,46 @@ export const superAdminServiceFactory = ({ throw new NotFoundError({ message: `Could not organization with ID "${orgId}"` }); } - const existingOrgMembership = await orgMembershipDAL.findOne({ userId: serverAdmin.id, orgId }); + const existingOrgMembership = await membershipUserDAL.findOne({ + actorUserId: serverAdmin.id, + scopeOrgId: org.id, + scope: AccessScope.Organization + }); if (existingOrgMembership) { throw new BadRequestError({ message: `You are already a part of the organization with ID ${orgId}` }); } - const orgMembership = await orgDAL.createMembership({ - userId: serverAdmin.id, - orgId: org.id, - role: OrgMembershipRole.Admin, - status: OrgMembershipStatus.Accepted, - isActive: true + const orgMembership = await orgDAL.transaction(async (tx) => { + const membership = await orgDAL.createMembership( + { + actorUserId: serverAdmin.id, + scopeOrgId: org.id, + status: OrgMembershipStatus.Accepted, + isActive: true, + scope: AccessScope.Organization + }, + tx + ); + const membershipRole = await membershipRoleDAL.create( + { + membershipId: membership.id, + role: OrgMembershipRole.Admin + }, + tx + ); + return { ...membership, role: membershipRole.role, orgId: org.id }; }); return orgMembership; }; const resendOrgInvite = async ({ organizationId, membershipId }: TResendOrgInviteDTO, actor: OrgServiceActor) => { - const orgMembership = await orgMembershipDAL.findOne({ id: membershipId, orgId: organizationId }); + const orgMembership = await membershipUserDAL.findOne({ + id: membershipId, + scopeOrgId: organizationId, + scope: AccessScope.Organization + }); if (!orgMembership) { throw new NotFoundError({ name: "Organization Membership", message: "Organization membership not found" }); @@ -977,7 +1025,7 @@ export const superAdminServiceFactory = ({ }); } - if (!orgMembership.userId) { + if (!orgMembership.actorUserId) { throw new NotFoundError({ message: "Cannot find user associated with Org Membership." }); } @@ -985,15 +1033,15 @@ export const superAdminServiceFactory = ({ throw new BadRequestError({ message: "No invite email associated with user." }); } - const org = await orgDAL.findOrgById(orgMembership.orgId); + const org = await orgDAL.findOrgById(orgMembership.scopeOrgId); const appCfg = getConfig(); const serverAdmin = await userDAL.findById(actor.id); const token = await tokenService.createTokenForUser({ type: TokenType.TOKEN_EMAIL_ORG_INVITATION, - userId: orgMembership.userId, - orgId: orgMembership.orgId + userId: orgMembership.actorUserId, + orgId: orgMembership.scopeOrgId }); await smtpService.sendMail({ @@ -1005,17 +1053,17 @@ export const superAdminServiceFactory = ({ inviterUsername: serverAdmin?.email, organizationName: org?.name, email: orgMembership.inviteEmail, - organizationId: orgMembership.orgId, + organizationId: orgMembership.scopeOrgId, token, callback_url: `${appCfg.SITE_URL}/signupinvite` } }); - return orgMembership; + return { ...orgMembership, orgId: organizationId, role: "" }; }; const getIdentities = async ({ offset, limit, searchTerm }: TAdminGetIdentitiesDTO) => { - const identities = await identityDAL.getIdentitiesByFilter({ + const result = await identityDAL.getIdentitiesByFilter({ limit, offset, searchTerm, @@ -1023,10 +1071,13 @@ export const superAdminServiceFactory = ({ }); const serverCfg = await getServerCfg(); - return identities.map((identity) => ({ - ...identity, - isInstanceAdmin: Boolean(serverCfg?.adminIdentityIds?.includes(identity.id)) - })); + return { + identities: result.identities.map((identity) => ({ + ...identity, + isInstanceAdmin: Boolean(serverCfg?.adminIdentityIds?.includes(identity.id)) + })), + total: result.total + }; }; const grantServerAdminAccessToUser = async (userId: string) => { diff --git a/backend/src/services/user/user-dal.ts b/backend/src/services/user/user-dal.ts index 4267d13ee1..41b615b5df 100644 --- a/backend/src/services/user/user-dal.ts +++ b/backend/src/services/user/user-dal.ts @@ -2,6 +2,7 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; import { + AccessScope, TableName, TUserActionsInsert, TUserActionsUpdate, @@ -60,11 +61,20 @@ export const userDALFactory = (db: TDbClient) => { query = query.where("superAdmin", true); } + const countQuery = query.clone(); + if (sortBy) { query = query.orderBy(sortBy); } - return await query.limit(limit).offset(offset).select(selectAllTableCols(TableName.Users)); + const [users, totalResult] = await Promise.all([ + query.limit(limit).offset(offset).select(selectAllTableCols(TableName.Users)), + countQuery.count("*", { as: "count" }).first() + ]); + + const total = Number(totalResult?.count || 0); + + return { users, total }; } catch (error) { throw new DatabaseError({ error, name: "Get users by filter" }); } @@ -118,9 +128,13 @@ export const userDALFactory = (db: TDbClient) => { const findUserByProjectMembershipId = async (projectMembershipId: string) => { try { return await db - .replicaNode()(TableName.ProjectMembership) - .where({ [`${TableName.ProjectMembership}.id` as "id"]: projectMembershipId }) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .where({ + [`${TableName.Membership}.id` as "id"]: projectMembershipId, + [`${TableName.Membership}.scope` as "scope"]: AccessScope.Project + }) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .first(); } catch (error) { throw new DatabaseError({ error, name: "Find user by project membership id" }); @@ -130,9 +144,11 @@ export const userDALFactory = (db: TDbClient) => { const findUsersByProjectMembershipIds = async (projectMembershipIds: string[]) => { try { return await db - .replicaNode()(TableName.ProjectMembership) - .whereIn(`${TableName.ProjectMembership}.id`, projectMembershipIds) - .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) + .replicaNode()(TableName.Membership) + .whereIn(`${TableName.Membership}.id`, projectMembershipIds) + .where(`${TableName.Membership}.scope`, AccessScope.Project) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .join(TableName.Users, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) .select("*"); } catch (error) { throw new DatabaseError({ error, name: "Find users by project membership ids" }); @@ -182,8 +198,10 @@ export const userDALFactory = (db: TDbClient) => { try { const doc = await db(TableName.Users) .where({ email }) - .leftJoin(TableName.OrgMembership, `${TableName.OrgMembership}.userId`, `${TableName.Users}.id`) - .leftJoin(TableName.Organization, `${TableName.Organization}.id`, `${TableName.OrgMembership}.orgId`) + .leftJoin(TableName.Membership, `${TableName.Membership}.actorUserId`, `${TableName.Users}.id`) + .where(`${TableName.Membership}.scope`, AccessScope.Organization) + .whereNotNull(`${TableName.Membership}.actorUserId`) + .leftJoin(TableName.Organization, `${TableName.Organization}.id`, `${TableName.Membership}.scopeOrgId`) .select(selectAllTableCols(TableName.Users)) .select( db.ref("name").withSchema(TableName.Organization).as("orgName"), diff --git a/backend/src/services/user/user-service.ts b/backend/src/services/user/user-service.ts index b8058f327f..b54eab8eff 100644 --- a/backend/src/services/user/user-service.ts +++ b/backend/src/services/user/user-service.ts @@ -1,6 +1,7 @@ import { ForbiddenError } from "@casl/ability"; import { Knex } from "knex"; +import { AccessScope } from "@app/db/schemas"; import { OrgPermissionActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { crypto } from "@app/lib/crypto"; @@ -9,12 +10,11 @@ import { logger } from "@app/lib/logger"; import { TAuthTokenServiceFactory } from "@app/services/auth-token/auth-token-service"; import { TokenType } from "@app/services/auth-token/auth-token-types"; import { TOrgDALFactory } from "@app/services/org/org-dal"; -import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { AuthMethod, AuthTokenType } from "../auth/auth-type"; import { TGroupProjectDALFactory } from "../group-project/group-project-dal"; -import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; +import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal"; import { TUserAliasDALFactory } from "../user-alias/user-alias-dal"; import { TUserDALFactory } from "./user-dal"; import { TListUserGroupsDTO, TUpdateUserEmailDTO, TUpdateUserMfaDTO } from "./user-types"; @@ -37,9 +37,8 @@ type TUserServiceFactoryDep = { >; groupProjectDAL: Pick; orgDAL: Pick; - orgMembershipDAL: Pick; + membershipUserDAL: Pick; tokenService: Pick; - projectMembershipDAL: Pick; smtpService: Pick; permissionService: TPermissionServiceFactory; userAliasDAL: Pick; @@ -50,8 +49,7 @@ export type TUserServiceFactory = ReturnType; export const userServiceFactory = ({ userDAL, orgDAL, - orgMembershipDAL, - projectMembershipDAL, + membershipUserDAL, groupProjectDAL, tokenService, smtpService, @@ -183,13 +181,19 @@ export const userServiceFactory = ({ }; const checkUserScimRestriction = async (userId: string, tx?: Knex) => { - const userOrgs = await orgMembershipDAL.find({ userId }, { tx }); + const userOrgs = await membershipUserDAL.find( + { + actorUserId: userId, + scope: AccessScope.Organization + }, + { tx } + ); if (userOrgs.length === 0) { return false; } - const orgIds = userOrgs.map((membership) => membership.orgId); + const orgIds = userOrgs.map((membership) => membership.scopeOrgId); const organizations = await orgDAL.find({ $in: { id: orgIds } }, { tx }); return organizations.some((org) => org.scimEnabled); @@ -347,6 +351,23 @@ export const userServiceFactory = ({ const deleteUser = async (userId: string) => { const user = await userDAL.deleteById(userId); + + try { + if (user?.email) { + // Send email to user to confirm account deletion + await smtpService.sendMail({ + template: SmtpTemplates.AccountDeletionConfirmation, + subjectLine: "Your Infisical account has been deleted", + recipients: [user.email], + substitutions: { + email: user.email + } + }); + } + } catch (error) { + logger.error(error, `Failed to send account deletion confirmation email to ${user.email}`); + } + return user; }; @@ -380,9 +401,10 @@ export const userServiceFactory = ({ }; const getUserProjectFavorites = async (userId: string, orgId: string) => { - const orgMembership = await orgMembershipDAL.findOne({ - userId, - orgId + const orgMembership = await membershipUserDAL.findOne({ + scope: AccessScope.Organization, + actorUserId: userId, + scopeOrgId: orgId }); if (!orgMembership) { @@ -395,9 +417,10 @@ export const userServiceFactory = ({ }; const updateUserProjectFavorites = async (userId: string, orgId: string, projectIds: string[]) => { - const orgMembership = await orgMembershipDAL.findOne({ - userId, - orgId + const orgMembership = await membershipUserDAL.findOne({ + scope: AccessScope.Organization, + actorUserId: userId, + scopeOrgId: orgId }); if (!orgMembership) { @@ -406,18 +429,20 @@ export const userServiceFactory = ({ }); } - const matchingUserProjectMemberships = await projectMembershipDAL.find({ - userId, + const matchingUserProjectMemberships = await membershipUserDAL.find({ + scope: AccessScope.Project, + scopeOrgId: orgId, + actorUserId: userId, $in: { - projectId: projectIds + scopeProjectId: projectIds } }); const memberProjectFavorites = matchingUserProjectMemberships.map( - (projectMembership) => projectMembership.projectId + (projectMembership) => projectMembership.scopeProjectId as string ); - const updatedOrgMembership = await orgMembershipDAL.updateById(orgMembership.id, { + const updatedOrgMembership = await membershipUserDAL.updateById(orgMembership.id, { projectFavorites: memberProjectFavorites }); diff --git a/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/create.mdx b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/create.mdx new file mode 100644 index 0000000000..dcd58cf32d --- /dev/null +++ b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create AWS Certificate Manager PKI Sync" +openapi: "POST /api/v1/pki/syncs/aws-certificate-manager" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/delete.mdx b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/delete.mdx new file mode 100644 index 0000000000..73fed2cdb8 --- /dev/null +++ b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete AWS Certificate Manager PKI Sync" +openapi: "DELETE /api/v1/pki/syncs/aws-certificate-manager/{pkiSyncId}" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/get-by-id.mdx b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/get-by-id.mdx new file mode 100644 index 0000000000..9191bbde36 --- /dev/null +++ b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/get-by-id.mdx @@ -0,0 +1,4 @@ +--- +title: "Get AWS Certificate Manager PKI Sync by ID" +openapi: "GET /api/v1/pki/syncs/aws-certificate-manager/{pkiSyncId}" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/list.mdx b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/list.mdx new file mode 100644 index 0000000000..821ddbd616 --- /dev/null +++ b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List AWS Certificate Manager PKI Syncs" +openapi: "GET /api/v1/pki/syncs/aws-certificate-manager" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/remove-certificates.mdx b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/remove-certificates.mdx new file mode 100644 index 0000000000..5ea989f2ae --- /dev/null +++ b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/remove-certificates.mdx @@ -0,0 +1,4 @@ +--- +title: "Remove Certificates from AWS Certificate Manager" +openapi: "POST /api/v1/pki/syncs/aws-certificate-manager/{pkiSyncId}/remove-certificates" +--- diff --git a/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/sync-certificates.mdx b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/sync-certificates.mdx new file mode 100644 index 0000000000..b97b7a9ab7 --- /dev/null +++ b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/sync-certificates.mdx @@ -0,0 +1,4 @@ +--- +title: "Sync Certificates to AWS Certificate Manager" +openapi: "POST /api/v1/pki/syncs/aws-certificate-manager/{pkiSyncId}/sync" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/update.mdx b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/update.mdx new file mode 100644 index 0000000000..9b7382ce8d --- /dev/null +++ b/docs/api-reference/endpoints/pki/syncs/aws-certificate-manager/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update AWS Certificate Manager PKI Sync" +openapi: "PATCH /api/v1/pki/syncs/aws-certificate-manager/{pkiSyncId}" +--- \ No newline at end of file diff --git a/docs/docs.json b/docs/docs.json index 210c5145c2..444f74b5de 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -221,6 +221,7 @@ ] }, "documentation/platform/sso/auth0-oidc", + "documentation/platform/sso/pingone-oidc", { "group": "General OIDC", "pages": [ @@ -247,6 +248,7 @@ "documentation/platform/scim/okta", "documentation/platform/scim/azure", "documentation/platform/scim/jumpcloud", + "documentation/platform/scim/pingone", "documentation/platform/scim/group-mappings" ] } @@ -723,6 +725,7 @@ { "group": "Syncs", "pages": [ + "documentation/platform/pki/certificate-syncs/aws-certificate-manager", "documentation/platform/pki/certificate-syncs/azure-key-vault" ] } @@ -2523,6 +2526,18 @@ "api-reference/endpoints/pki/syncs/list", "api-reference/endpoints/pki/syncs/get-by-id", "api-reference/endpoints/pki/syncs/options", + { + "group": "AWS Certificate Manager", + "pages": [ + "api-reference/endpoints/pki/syncs/aws-certificate-manager/list", + "api-reference/endpoints/pki/syncs/aws-certificate-manager/get-by-id", + "api-reference/endpoints/pki/syncs/aws-certificate-manager/create", + "api-reference/endpoints/pki/syncs/aws-certificate-manager/update", + "api-reference/endpoints/pki/syncs/aws-certificate-manager/delete", + "api-reference/endpoints/pki/syncs/aws-certificate-manager/sync-certificates", + "api-reference/endpoints/pki/syncs/aws-certificate-manager/remove-certificates" + ] + }, { "group": "Azure Key Vault", "pages": [ diff --git a/docs/documentation/platform/gateways/gateway-deployment.mdx b/docs/documentation/platform/gateways/gateway-deployment.mdx index 40b98965a4..cef258c417 100644 --- a/docs/documentation/platform/gateways/gateway-deployment.mdx +++ b/docs/documentation/platform/gateways/gateway-deployment.mdx @@ -95,7 +95,7 @@ To successfully deploy an Infisical Gateway for use, follow these steps in order Ensure a relay server is running and accessible before you deploy any gateways. You have two options: - **Managed relay (Infisical Cloud, US/EU only):** Managed relays are only available for Infisical Cloud instances in the US and EU regions. If you are using Infisical Cloud in these regions, you can use the provided managed relay. - - **Self-hosted relay:** For all other cases, including all self-hosted and dedicated enterprise instances of Infisical, you must deploy your own relay server. You can also choose to deploy your own relay server when using Infisical Cloud if you require reduced geographic proximity to your target resources for lower latency or to reduce network congestion. For setup instructions, see the Relay Deployment Guide. + - **Self-hosted relay:** For all other cases, including all self-hosted and dedicated enterprise instances of Infisical, you must deploy your own relay server. You can also choose to deploy your own relay server when using Infisical Cloud if you require reduced geographic proximity to your target resources for lower latency or to reduce network congestion. For setup instructions, see the [Relay Deployment Guide](/documentation/platform/gateways/relay-deployment). Make sure the Infisical CLI is installed on the machine or environment where you plan to deploy the gateway. The CLI is required for gateway installation and management. diff --git a/docs/documentation/platform/gateways/overview.mdx b/docs/documentation/platform/gateways/overview.mdx index c04f2f7d3d..33945337b6 100644 --- a/docs/documentation/platform/gateways/overview.mdx +++ b/docs/documentation/platform/gateways/overview.mdx @@ -6,8 +6,8 @@ description: "How to access private network resources from Infisical" ![Architecture Overview](../../../images/platform/gateways/gateway-highlevel-diagram.png) -The Infisical Gateway provides secure access to private resources within your network without needing direct inbound connections to your environment. -This is particularly useful when Infisical isn't hosted within the same network as the resources it needs to reach. +The Infisical Gateway provides secure access to private resources within your network without needing direct inbound connections to your environment. +This is particularly useful when Infisical isn't hosted within the same network as the resources it needs to reach. This method keeps your resources fully protected from external access while enabling Infisical to securely interact with resources like databases. @@ -25,7 +25,7 @@ The Gateway system consists of two primary components working together to enable A Gateway is a lightweight service that you deploy within your own network infrastructure to provide secure access to your private resources. Think of it as a secure bridge between Infisical and your internal systems. - Gateways must be deployed within the same network where your target resources are located, with direct network connectivity to the private resources you want Infisical to access. + Gateways must be deployed within the same network where your target resources are located, with direct network connectivity to the private resources you want Infisical to access. For different networks, regions, or isolated environments, you'll need to deploy separate gateways. **Core Functions:** @@ -40,7 +40,7 @@ The Gateway system consists of two primary components working together to enable **Core Functions:** - **Traffic Routing**: Routes encrypted traffic between the Infisical platform and your gateways without storing or inspecting the data - - **Network Isolation**: Enables secure communication without requiring direct network connections between Infisical and your private infrastructure + - **Network Isolation**: Enables secure communication without requiring direct network connections between Infisical and your private infrastructure - **Authentication Management**: Validates SSH certificates and manages secure routing between authenticated gateways **Deployment Options:** @@ -59,6 +59,12 @@ The Gateway system uses SSH reverse tunnels for secure, firewall-friendly connec 3. **Request Routing**: When Infisical needs to access your resources, requests are routed through the relay server to the already-established gateway connection 4. **Resource Access**: The gateway receives the routed requests and connects to your private resources on behalf of Infisical +## Health Check + +To monitor their operational status, both gateways and relays transmit hourly heartbeats. A component is considered unhealthy if a heartbeat is not received for over an hour. + +Infisical automatically notifies all organization admins of unhealthy gateway or relay statuses through email and in-app notifications. + ## Getting Started Ready to set up your gateway? Follow the guides below. @@ -75,4 +81,4 @@ Ready to set up your gateway? Follow the guides below. Learn about the security model and implementation best practices. - \ No newline at end of file + diff --git a/docs/documentation/platform/pki/certificate-syncs/aws-certificate-manager.mdx b/docs/documentation/platform/pki/certificate-syncs/aws-certificate-manager.mdx new file mode 100644 index 0000000000..de064bf4e5 --- /dev/null +++ b/docs/documentation/platform/pki/certificate-syncs/aws-certificate-manager.mdx @@ -0,0 +1,146 @@ +--- +title: "AWS Certificate Manager" +description: "Learn how to configure an AWS Certificate Manager Certificate Sync for Infisical PKI." +--- + +**Prerequisites:** + +- Set up and configure a [Certificate Authority](/documentation/platform/pki/overview) +- Create an [AWS Connection](/integrations/app-connections/aws) + + + The AWS Certificate Manager Certificate Sync requires the following ACM permissions to be set on the IAM user/role + for Infisical to sync certificates to AWS Certificate Manager: `acm:ListCertificates`, `acm:DescribeCertificate`, `acm:ImportCertificate`, `acm:DeleteCertificate`, and `acm:ListTagsForCertificate`. + + These permissions allow Infisical to list, import, tag, and manage certificates in your AWS Certificate Manager service. + + + + Certificates synced to AWS Certificate Manager will be stored as imported certificates, preserving both the certificate and private key components. + + + + + 1. Navigate to **Project** > **Integrations** and select the **Certificate Syncs** tab. Click on the **Add Sync** button. + ![Certificate Syncs Tab](/images/certificate-syncs/general/certificate-sync-tab.png) + + 2. Select the **AWS Certificate Manager** option. + ![Select ACM](/images/certificate-syncs/aws-certificate-manager/select-acm-option.png) + + 3. Configure the **Source** from where certificates should be retrieved, then click **Next**. + ![Configure Source](/images/certificate-syncs/aws-certificate-manager/acm-source.png) + + - **PKI Subscriber**: The PKI subscriber to retrieve certificates from. + + 4. Configure the **Destination** to where certificates should be deployed, then click **Next**. + ![Configure Destination](/images/certificate-syncs/aws-certificate-manager/acm-destination.png) + + - **AWS Connection**: The AWS Connection to authenticate with. + - **AWS Region**: The AWS region where certificates should be stored. + + 5. Configure the **Sync Options** to specify how certificates should be synced, then click **Next**. + ![Configure Options](/images/certificate-syncs/aws-certificate-manager/acm-options.png) + + - **Auto-Sync Enabled**: If enabled, certificates will automatically be synced from the source PKI subscriber when changes occur. Disable to enforce manual syncing only. + - **Enable Certificate Removal**: If enabled, Infisical will remove expired certificates from the destination during sync operations. Disable this option if you intend to manage certificate cleanup manually. + - **Certificate Name Schema** (Optional): Customize how certificate tags are generated in AWS Certificate Manager. Must include `{{certificateId}}` as a placeholder for the certificate ID to ensure proper certificate identification and management. If not specified, defaults to `Infisical-{{certificateId}}`. + + + **AWS Certificate Manager Certificate Limits**: AWS Certificate Manager has limits on the number of certificates per account and region. Refer to AWS documentation for current limits. Deleted certificates count toward your quota until they are permanently purged by AWS (typically after 30 days). + + + 6. Configure the **Details** of your AWS Certificate Manager Certificate Sync, then click **Next**. + ![Configure Details](/images/certificate-syncs/aws-certificate-manager/acm-details.png) + + - **Name**: The name of your sync. Must be slug-friendly. + - **Description**: An optional description for your sync. + + 7. Review your AWS Certificate Manager Certificate Sync configuration, then click **Create Sync**. + ![Confirm Configuration](/images/certificate-syncs/aws-certificate-manager/acm-review.png) + + 8. If enabled, your AWS Certificate Manager Certificate Sync will begin syncing your certificates to the destination endpoint. + ![Sync Certificates](/images/certificate-syncs/aws-certificate-manager/acm-synced.png) + + + + To create an **AWS Certificate Manager Certificate Sync**, make an API request to the [Create AWS Certificate Manager Certificate Sync](/api-reference/endpoints/pki/syncs/aws-certificate-manager/create) API endpoint. + + ### Sample request + + ```bash Request + curl --request POST \ + --url https://app.infisical.com/api/v1/pki/syncs/aws-certificate-manager \ + --header 'Content-Type: application/json' \ + --data '{ + "name": "my-acm-cert-sync", + "projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "description": "an example certificate sync", + "connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "subscriberId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "destination": "aws-certificate-manager", + "isAutoSyncEnabled": true, + "syncOptions": { + "canRemoveCertificates": true, + "certificateNameSchema": "myapp-{{certificateId}}" + }, + "destinationConfig": { + "region": "us-east-1" + } + }' + ``` + + ### Sample response + + ```json Response + { + "pkiSync": { + "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "name": "my-acm-cert-sync", + "description": "an example certificate sync", + "destination": "aws-certificate-manager", + "isAutoSyncEnabled": true, + "destinationConfig": { + "region": "us-east-1" + }, + "syncOptions": { + "canRemoveCertificates": true, + "certificateNameSchema": "myapp-{{certificateId}}" + }, + "projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "subscriberId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "createdAt": "2023-01-01T00:00:00.000Z", + "updatedAt": "2023-01-01T00:00:00.000Z" + } + } + ``` + + + +## Certificate Management + +Your AWS Certificate Manager Certificate Sync will: + +- **Automatic Deployment**: Deploy new certificates issued by your PKI subscriber to AWS Certificate Manager +- **Certificate Updates**: Update certificates in AWS Certificate Manager when renewals occur +- **Expiration Handling**: Optionally remove expired certificates from AWS Certificate Manager (if enabled) +- **Tagging**: Automatically tag certificates with an InfisicalCertificate tag for easy identification and management + + + AWS Certificate Manager Certificate Syncs support both automatic and manual synchronization modes. When auto-sync is enabled, certificates are automatically deployed as they are issued or renewed. + + +## Manual Certificate Sync + +You can manually trigger certificate synchronization from your PKI subscriber to AWS Certificate Manager using the sync certificates functionality. This is useful for: + +- Initial setup when you have existing certificates to deploy +- One-time sync of specific certificates +- Testing certificate sync configurations +- Force sync after making changes + +To manually sync certificates, use the [Sync Certificates](/api-reference/endpoints/pki/syncs/aws-certificate-manager/sync-certificates) API endpoint or the manual sync option in the Infisical UI. + + +AWS Certificate Manager does not support importing certificates back into Infisical due to security limitations where private keys cannot be extracted from AWS Certificate Manager. Only certificates imported into ACM (not AWS-issued certificates) can be managed by the sync. + \ No newline at end of file diff --git a/docs/documentation/platform/scim/overview.mdx b/docs/documentation/platform/scim/overview.mdx index 5b85079610..21f06cd8d8 100644 --- a/docs/documentation/platform/scim/overview.mdx +++ b/docs/documentation/platform/scim/overview.mdx @@ -24,3 +24,4 @@ SCIM providers: - [Okta SCIM](/documentation/platform/scim/okta) - [Azure SCIM](/documentation/platform/scim/azure) - [JumpCloud SCIM](/documentation/platform/scim/jumpcloud) +- [PingOne SCIM](/documentation/platform/scim/pingone) diff --git a/docs/documentation/platform/scim/pingone.mdx b/docs/documentation/platform/scim/pingone.mdx new file mode 100644 index 0000000000..b7263290db --- /dev/null +++ b/docs/documentation/platform/scim/pingone.mdx @@ -0,0 +1,149 @@ +--- +title: "PingOne SCIM" +description: "Learn how to configure SCIM provisioning with PingOne for Infisical." +--- + + + PingOne SCIM provisioning is a paid feature. + + If you're using Infisical Cloud, then it is available under the **Enterprise Tier**. If you're self-hosting Infisical, + then you should contact sales@infisical.com to purchase a self-hosted license to use it. + + +Prerequisites: +- [Configure PingOne OIDC for Infisical](/documentation/platform/sso/pingone-oidc) + + + + In Infisical, head to the **Single Sign-On (SSO)** page and select the **Provisioning** tab. Under SCIM Configuration, + press the **Enable SCIM provisioning** toggle to allow PingOne to provision/deprovision users for your organization. + + ![SCIM enable provisioning](/images/platform/scim/scim-enable-provisioning.png) + + Next, press **Manage SCIM Tokens** and then **Create** to generate a SCIM token for PingOne. + + ![SCIM create token](/images/platform/scim/scim-create-token.png) + + Next, copy the **SCIM URL** and **New SCIM Token** to use when configuring SCIM in PingOne. + + ![SCIM copy token](/images/platform/scim/scim-copy-token.png) + + + Inside your PingOne environment, navigate to Directory > Users. Add any users and/or groups to your application that you would like + to be provisioned over to Infisical. + + ![SCIM PingOne Users and Groups](/images/platform/scim/pingone/pingone-create-user.png) + + + + + **1. Create a new connection** + + In PingOne, head to Integrations > Provisioning, and inside provisioning, press the **Connections** tab. Here you'll see a plus icon to add a new connection. + + ![SCIM PingOne Connections](/images/platform/scim/pingone/pingone-new-connection.png) + + ![SCIM PingOne Connections](/images/platform/scim/pingone/pingone-new-connection-identity-store.png) + + Select the "Identity Store" option. + + + ![SCIM PingOne SCIM Outbound](/images/platform/scim/pingone/pingone-connection-select-scim-outbound.png) + + Search for the "SCIM Outbound" option to start the configuration process for SCIM. Finally, press the **Next** button. Give the connection a name and optionally add a description. + + **2. Configure the connection** + + Once you have selected the SCIM Outbound option, you'll be prompted to enter the authentication details that PingOne will use to authenticate with Infisical SCIM. This is the **SCIM URL** and **New SCIM Token** from the previous step. + + ![SCIM PingOne SCIM Outbound](/images/platform/scim/pingone/pingone-connection-auth.png) + + Set the following fields: + - `SCIM BASE URL`: Input the **SCIM URL** from the previous step. + - `Users Resource`: Leave as default, `/Users`. + - `Groups Resource`: Leave as default, `/Groups`. + - `SCIM Version`: Leave as default, `2.0`. + - `Authentication Method`: Select `OAuth 2 Bearer Token`. + - `Oauth Access Token`: Input the **New SCIM Token** from step 1. + - `Auth Type Header`: Select `Bearer`. + + Once this is done, you can press the **Test Connection** button to check that SCIM is configured properly. You should see a success message saying "Connection Successful". + If the connection is successful, press the "Next" button. + + In the final step, you'll be prompted to configure the mappings for the connection. + + Set the following fields: + - `User Filter Expression`: `email.value Eq "%s"`. + - `User Identifier`: `workEmail`. + - `Deprovision on Rule Deletion:` Enabled. + + ![SCIM PingOne Connection Mappings](/images/platform/scim/pingone/pingone-connection-preferences.png) + + Once this is configured, press the "Save" button. + + **3. Enable the connection** + + Finally, remember to enable the connection by pressing the enable toggle. + + ![SCIM PingOne Connection Enable](/images/platform/scim/pingone/pingone-connection-enable.png) + + + + + **1. Create a new rule** + + After creating a connection, you can now access the "Rules" tab under the Provisioning section. Here you can configure the rules for the connection. + + ![SCIM PingOne Create New Rule 1](/images/platform/scim/pingone/pingone-new-rule-1.png) + + ![SCIM PingOne Create New Rule 2](/images/platform/scim/pingone/pingone-new-rule-2.png) + + Select the "New Rule" button and choose a name for the rule, then press the "Create Rule" button. + + **2. Configure the rule connection** + + Once you have created a rule, you now need to configure the connection to use for the rule. + + ![SCIM PingOne Create New Rule 3](/images/platform/scim/pingone/pingone-rule-select-connection.png) + + Select the connection you created in the previous step and press the "Save" button. + + **3. Configure the rule user filter** + + ![SCIM PingOne Create New Rule 4](/images/platform/scim/pingone/pingone-rule-select-user-filter.png) + + Select the Edit pencil icon to open the user filter configuration. This step dictates which users will be provisioned to Infisical. + + ![SCIM PingOne Create New Rule 5](/images/platform/scim/pingone/pingone-rule-user-filter.png) + + In this case, we are provisioning all users that are enabled in PingOne. Configure your user filter to match your desired users, and then press the "Save" button. + + **4. Configure Groups** + + This step is optional and only relevant if you want to provision PingOne groups to Infisical. + + ![SCIM PingOne Create New Rule 6](/images/platform/scim/pingone/pingone-rule-group-provisioning-tab.png) + + Open the "Group Provisioning" tab and press the "Add Groups" button to select which groups will be provisioned to Infisical. + + ![SCIM PingOne Create New Rule 7](/images/platform/scim/pingone/pingone-select-group.png) + + Select the groups you want to provision to Infisical and press the "Save" button. + + **5. Enable the rule** + + Once you have configured the rule, you can enable it by pressing the "Enable" toggle. + + ![SCIM PingOne Create New Rule 8](/images/platform/scim/pingone/pingone-rule-enable.png) + + + +**FAQ** + + + + Infisical's SCIM implementation accounts for retaining the end-to-end encrypted architecture of Infisical because we decouple the **authentication** and **decryption** steps in the platform. + + For this reason, SCIM-provisioned users are initialized but must finish setting up their account when logging in the first time by creating a master encryption/decryption key. With this implementation, IdPs and SCIM providers cannot and will not have access to the decryption key needed to decrypt your secrets. + + diff --git a/docs/documentation/platform/sso/auth0-oidc.mdx b/docs/documentation/platform/sso/auth0-oidc.mdx index 4b54c053d7..0f616c5196 100644 --- a/docs/documentation/platform/sso/auth0-oidc.mdx +++ b/docs/documentation/platform/sso/auth0-oidc.mdx @@ -6,7 +6,7 @@ description: "Learn how to configure Auth0 OIDC for Infisical SSO." Auth0 OIDC SSO is a paid feature. If you're using Infisical Cloud, then it is available under the **Pro Tier**. If you're self-hosting Infisical, then you - should contact sales@infisical.com to purchase an enterprise license to use + should contact sales@infisical.com to purchase a self-hosted license to use it. @@ -55,7 +55,7 @@ description: "Learn how to configure Auth0 OIDC for Infisical SSO." Enabling OIDC allows members in your organization to log into Infisical via Auth0. - ![OIDC auth0 enable OIDC](../../../images/sso/auth0-oidc/enable-oidc.png) + ![OIDC auth0 enable OIDC](../../../images/sso/enable-oidc.png) diff --git a/docs/documentation/platform/sso/general-oidc/overview.mdx b/docs/documentation/platform/sso/general-oidc/overview.mdx index 07ddaaedd5..586f66f26a 100644 --- a/docs/documentation/platform/sso/general-oidc/overview.mdx +++ b/docs/documentation/platform/sso/general-oidc/overview.mdx @@ -7,7 +7,7 @@ description: "Learn how to configure OIDC for Infisical SSO with any OIDC-compli OIDC SSO is a paid feature. If you're using Infisical Cloud, then it is available under the **Pro Tier**. If you're self-hosting Infisical, then you - should contact sales@infisical.com to purchase an enterprise license to use + should contact sales@infisical.com to purchase a self-hosted license to use it. diff --git a/docs/documentation/platform/sso/keycloak-oidc/overview.mdx b/docs/documentation/platform/sso/keycloak-oidc/overview.mdx index 2c75fc6fe3..727bf9be69 100644 --- a/docs/documentation/platform/sso/keycloak-oidc/overview.mdx +++ b/docs/documentation/platform/sso/keycloak-oidc/overview.mdx @@ -7,7 +7,7 @@ description: "Learn how to configure Keycloak OIDC for Infisical SSO." Keycloak OIDC SSO is a paid feature. If you're using Infisical Cloud, then it is available under the **Pro Tier**. If you're self-hosting Infisical, then - you should contact sales@infisical.com to purchase an enterprise license to + you should contact sales@infisical.com to purchase a self-hosted license to use it. @@ -82,7 +82,7 @@ description: "Learn how to configure Keycloak OIDC for Infisical SSO." Enabling OIDC SSO allows members in your organization to log into Infisical via Keycloak. - ![OIDC keycloak enable OIDC](/images/sso/keycloak-oidc/enable-oidc.png) + ![OIDC keycloak enable OIDC](/images/sso/enable-oidc.png) diff --git a/docs/documentation/platform/sso/pingone-oidc.mdx b/docs/documentation/platform/sso/pingone-oidc.mdx new file mode 100644 index 0000000000..1fea5f8154 --- /dev/null +++ b/docs/documentation/platform/sso/pingone-oidc.mdx @@ -0,0 +1,108 @@ +--- +title: "PingOne OIDC" +description: "Learn how to configure PingOne OIDC for Infisical SSO." +--- + + + PingOne OIDC SSO is a paid feature. If you're using Infisical Cloud, then it is + available under the **Pro Tier**. If you're self-hosting Infisical, then you + should contact sales@infisical.com to purchase a self-hosted license to use + it. + + + + + 1.1. From the Application's Page, create a new OIDC Web App application. + ![OIDC pingone create application](../../../images/sso/pingone-oidc/pingone-create-application.png) + + 1.2. Enable the application by pressing the "Enable" toggle. + ![OIDC PingOne Enable Application](../../../images/sso/pingone-oidc/pingone-enable-application.png) + + + 1.3. In the Application "Configuration" tab, press the "Edit" pencil icon to configure the application callback URI. + ![OIDC PingOne Edit Application Configuration](../../../images/sso/pingone-oidc/pingone-edit-application-configuration.png) + + + 1.4 Set the Redirect URL to `https://app.infisical.com/api/v1/sso/oidc/callback` and press the "Save" button. + ![OIDC PingOne Edit Redirect URI](../../../images/sso/pingone-oidc/pingone-edit-application-redirect-uri.png) + + + + If you're self-hosting Infisical, then you will want to replace https://app.infisical.com with your own domain. + + + + 1.5 After configuring the redirect URL, go to the "Attribute Mappings" tab and press the "Edit" pencil icon to configure the attribute mappings. + ![OIDC PingOne Edit Attribute Mappings](../../../images/sso/pingone-oidc/pingone-edit-application-attribute-mappings.png) + + 1.6 Map the following attributes: + - `email` -> `Email Address` + - `name` -> `Username` + ![OIDC PingOne Edit Attribute Mappings](../../../images/sso/pingone-oidc/pingone-edit-application-attribute-mappings-2.png) + + Once done, press the "Save" button. + + + + 2.1. Open the "Overview" tab and copy the **Client ID** and **Client Secret**. + ![OIDC PingOne Application Credential](../../../images/sso/pingone-oidc/pingone-overview-credentials.png) + + 2.2. Still in the "Overview" tab, scroll down to the Connection Details section and retrieve the **OIDC Discovery Endpoint**. + ![OIDC PingOne OIDC Discovery Endpoint](../../../images/sso/pingone-oidc/pingone-overview-oidc-discovery-endpoint.png) + + Keep these values handy as we will need them in the next steps. + + + + 3.1. Back in Infisical, head to the **Single Sign-On (SSO)** page and select the **General** tab. Click **Connect** for **OIDC**. + ![OIDC SSO Connect](../../../images/sso/connect-oidc.png) + + 3.2. For configuration type, select **Discovery URL**. Then, set **Discovery Document URL**, **Client ID**, and **Client Secret** from step 2.1 and 2.2. + + ![OIDC PingOne paste values into Infisical](../../../images/sso/pingone-oidc/infisical-configure-oidc.png) + + + Currently, the following JWT signature algorithms are supported: RS256, RS512, HS256, and EdDSA + + + Once you've done that, press **Update** to complete the required configuration. + + + + Enabling OIDC allows members in your organization to log into Infisical via PingOne + + ![OIDC PingOne enable OIDC](../../../images/sso/enable-oidc.png) + + + + Enforcing OIDC SSO ensures that members in your organization can only access Infisical + by logging into the organization via PingOne. + + To enforce OIDC SSO, you're required to test out the OpenID connection by successfully authenticating at least one PingOne user with Infisical. + Once you've completed this requirement, you can toggle the **Enforce OIDC SSO** button to enforce OIDC SSO. + + + We recommend ensuring that your account is provisioned using the application in PingOne + prior to enforcing OIDC SSO to prevent any unintended issues. + + + In case of a lockout, an organization admin can use the [Admin Login Portal](https://infisical.com/docs/documentation/platform/sso/overview#admin-login-portal) in the `/login/admin` path e.g. https://app.infisical.com/login/admin. + + + + + + If you are only using one organization on your Infisical instance, you can configure a default organization in the [Server Admin Console](../admin-panel/server-admin#default-organization) to expedite OIDC login. + + + + If you're configuring OIDC SSO on a self-hosted instance of Infisical, make + sure to set the `AUTH_SECRET` and `SITE_URL` environment variable for it to + work: +
+ - `AUTH_SECRET`: A secret key used for signing and verifying JWT. This + can be a random 32-byte base64 string generated with `openssl rand -base64 + 32`. +
+ - `SITE_URL`: The absolute URL of your self-hosted instance of Infisical including the protocol (e.g. https://app.infisical.com) + diff --git a/docs/images/certificate-syncs/aws-certificate-manager/acm-destination.png b/docs/images/certificate-syncs/aws-certificate-manager/acm-destination.png new file mode 100644 index 0000000000000000000000000000000000000000..42a20fc996efb14ed9ae7f48500786f1f8843629 GIT binary patch literal 531810 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 ZfZm;|WyBE=--Qj}<>rb!&HOs}=3mxCT(AHD literal 0 HcmV?d00001 diff --git a/docs/images/certificate-syncs/aws-certificate-manager/acm-details.png b/docs/images/certificate-syncs/aws-certificate-manager/acm-details.png new file mode 100644 index 0000000000000000000000000000000000000000..483cee003d281b9774483fd8c82e5fdabb12b72b GIT binary patch literal 537770 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 z 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�#GF$?JE+(!=*LzaE0QpEuB)7N#^89;AulZ^ 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%0D+U4TDVk6ixF{1g*PcUL`jYup) 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ⅈEJa$AAZJ9M$0d>AFNfe!2Qx`=w6 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 -0X&C_c6asO2I8aDUz2@u4~ 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

y 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 z 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

  • *vsUN!#00Y5Bs>9)pa3{yqE%v&az!_ETv` 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 g|*-d() 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
    c`Dl4dEfhG&7aZ4yKKQvo>Vd`pkse3$xRHG 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

    *smW#Zv*jUR}w0TLSF7 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μC3-w)=tLiZlZ zu#l7(O7o81zx`YPh5rx(T5A$}c~v3sL4R3ZfgTO`+Pjsmzwo;Lli2f@&yaRvEKA0) z&+;x!(r*zm0P>CrZLb3@#RvB(RAyS*z(6T*&SCqQ&*ob#DIQIwxD28%jmLc85>-C# zdT{un$>iPT)99oe=%whW`0?(T73=5y)G^(~{&mndpNZ9g=22>rx=ljiPpAIJz5M6d z-@lGJ;PXkwm%d~m{fja`wb-$6(e=wrcEAAPH-HZye)O=B5tU^hCR4%ODyIARQ9rh7 zY8n2!6Hst=}ajiVEW@{TYNz!;rxzAOIsBvgH2H zCM*QMJko;UB^rw`gfIye=uD{l@ot;(^`nj*P<-GNperoo8N__ny7sh}B`|rf-)??b z8o(a=W++SMm?zolG6f@;!FWbFrk}|U@OtiyQtGlJ#6UXuEB)5{m45&DN<0nKm%D^S zqSbA*3ojjxB%S&H{jq~3ez|E4uH5WP$?*&oN(Gx?_nFktYp({6LXMVt}{L zfd4>UWdu|+MImzo5AB-`Zc08qh3dV|B6;u4WPx8`fJsa*Xr!=xl8qTgg2hg~oEeFNb%M4YeU`xvl5w~Ca9xA#0QEoRsb|SQ%M5p-`al+F-;%dWgbNz`>3OGi_Cay z>*jD!slwjhpzr_MkXzBbO)u zD&t!V0ff-L@8k+D+wDm1ug8M}bb^g%{{|V7@+|H1BEk659Wda^}z6;~H0cJ)BUn2SHVsWPlFD+F!KG z;3kB7dE$Q8*w-@Kp_0owW0-9+shk4qR`%~HroAuy@@Likxh-W2 zC@Qd_(f9XJy(kFi#@YFIL5swR?ox9FFH(FQ=&&fuJOjf||5eHRS6g|(N@Vf|XHCp= zQ3WWYQwA0(zqy|#6o&Ugcv;h+8h=lS$WTg#hL_hL99r<__O*sE>-a$~xz|`@Z{Xa4 zlj(^}L^s{%iqb?#`{mU}EySfL=%yrjOCnS!oJM3Q>AE_rD9S(vBK|zR?*V9P>LLnT zOMUmmm}HDSZUu5mm+1EIGNHZ23MO9wle&{~?B-UWDUK@h{3j)lNrD%ggP`m|bANhpd{EnHdXj4E8eWz^o}SOL%xwey z0okTkxf6C}EA3~oe83%C&mAMr7|5y8)Y*8-3< zW&D~`CxaqE2M;T2%4_rEV>XqtStY#7xju_z%MZWWrYf8`x7^Mx*cA=INBi_tiz1;Z zQ!#cHC{p}zaXpy;T5^+fEb0@q;reXm&TFcCj_cY}s}e!CDga40BLfF%_HH(6xU?Mf zDa+^Q=S?owCtWAj#><|Mhw+werAK%0-l|OYI3E>u z#(nMt*$p~!n22i=IGEb{V%?x{%}OzKRHMhGOIpVud*oOcgRdHEiKJ?E;klc zNz4dSpOdk+uz8*9YP&+t(|2@VPY)0YDEoj0=|ukXs>y*&rMG{emVdo5fA=~8*crYR zqZxP0$`hrCs3mtdbj`Ibvriv%X$({GIb*aD^#Qilesc z_W_807Neef3BL(M zs&Y(%O7|MD5v4+t%UCi4bmd9S;k%NTvy;}y)+{nz_r1LUXezq~$CUY4NqY!638E~; zNP?WpsLKlIrq_;F*hX);U!QyZ=yyc;@6Pkj#BI8T?lG~R2n_Y!n~%?kfa!HGgv>>% zO4{6YzWt7uKC;)kyy2d#d`UdO=#*oPl0k7gYv8^dn{JQg{>BoTUKaT?m6Sj63Z)6e z%lxTarE1U7)yxZcNoh4H0Qjc(sb+-_k~Buj*x$?2-)DEgt`u$vMilGwutin^<9P%^ zXG0!e%9#NwZi%QKO%!tONaVNm8*RGRR*{jTUs_V4vZS)VKE4sf_RQ!k=0{J0Naw0_ z54+$1m;MR6;H!k?0&M`xQXN!Y!MRnAL&9DTb^;U~26WCxZGAVNW=j!pl;(jp=*#

    >}IXj({@}b#lC7*~mP0>%a7dz+*b0Vyj5RDA`g4SKWBh z%WP}?R+*PBH_y>44^M$bz4!bsVhXFrWn}a@sEil_BQF!x+||!MdJN=4S!rxTnTqXx z;9f3VlDN2J(C*SWe<;DX6{Qy>9ga;_?}zPu+bDz-a(I^)LB$0R8=3V7>w2Qw{ygbmcmGiX%tr85DL_WWh|Bl!@~FVgJM9ls+OG#$hi6QzVwVS zLB{gCPSv`PZ@hYCVN+}r#em~`q$g~lRAO=pBufKeqodB9liX4#(5F!ZhJb9kr&s!D zycKR~ec9UsaY#);=fzR`t->1nZ38~@Wfdc5e#ahdPs)!UM0%bJ@z_|*@;*#d-2A$- zvSJGeY`Bgm=JNF;g-G>-c19|x6Scg>0LZ*?chX#3Yor>Un87h1bxO=N;+0Ui#f-Gc zl)kBt80vRkFO-20nBksYtkx{qYLCVuoTbq)uwTyM6JgZXe4XuKR?U{B&!)2%Oi9f& zwC^gZbgiVAS%)pP+z(qb?G3&_fv>SAVJSJ$xM<;@_!zHZ!^h93V@=8ipU8YsFD$}6ZRf`JI1lFmfDb98g#tSt>^@=4O1@W#<(IJWE_BK&Ty8c!Syrm!!< z&WDbU?m!@NZU3sfIMcdwTPwaRRlIy+4GHPV^n>Ks&#rf6OkbPde?6Sfb7=3!sN^?M zt(44`q{|>(ban5)&V0O&s2@8tx(#86zFQ<23*?rgOcm8+%O}3_it*iwdJrk+@z*zS z(>Cjl$0LfawGlCsZbLCl^RtyMV@wf&%RO-0C)(|9Z0~K2p5QWHz0FG9YE-A$A;_nT zGw(Jik5lHue{a>lv}7Nnd}=Y)fik_|Xw1|4#Ba|ua!an5NbF&O?)w|MOob<4jT!He zlm7cb#C#%j<7BkVGkLVyG+cKs-FK`89&vK8ff;z}dQfXHRG_=D9NKj@kbK_tyl#I?J>l3=y0um2 zm{s(sUAOAT&fW@dj1T5P@z^O)o{WtQfEgSN>t4ueR+D}KeC@JJjlm8nLMx{i~gAJf1u5D1kXNXUO zJ0W;WBui{uUFiMR(SotU>u0&Sln@ARoUZ#^4^~}|=BB-|o2^zytQ|$Ilr+EY%y-An2eJ1Qxp@Q$z*Tup-a0aI@}}C-U_*YY>(sC{r*+9_`CG2O10bjGJ0>4{SJZ?&{6B1{Yht*lC3e|+$POuxzLR(@ou-8r`J2I`v7yFwsP zrg=mB)VgHnZfj20O>YKQnyO^^2}`AK`F6*Gv-PHP3%$B_nTE);_4Br~;zrj|hI>-< zoyD|@6CQw%Kao9|7t~K7SlTNq0$(m8U5*;@EUY=2S7&J*|Mu+#!e!<4`k=L_QG(a` z{`gcvBf@ zAz``)4Q%ie&M})PzmwJKgK^s8^`T#f+M9}i{qSVma;nHM2&mJS>E6_))vQfTrRAKV zNSr1nV0q!`*SWHPCm7hM8YBplv($VIn;`PPV^7I(F-%7Vc+#0if$A9`zFtnM&cl$WBn~kA8wt%b8$DyK6iV}xL^LO z1$Ota@+@?p&zEWy2?-wTBRHHSB9lG|H!y9ONWF0f!^eWEwUa%=Bjx>gkNUUbEvxlB zw$`hRjN(q3c&=DV#~C%4?m`pE8N&{Q-AsTMyTG+i^LbrtEZM;DFp0L(=wWz7LG5{^W<}9w-rcrJOw8nw7)FIE;kU_w z<8o1~){OOFWlNN>>wXlyhW;mXhgHsaUwB~v;T8RZRp<7k>hs!SOGKq9*Z`z|n=Odp zAkZa8cm~Ig<4Z)j`7{t;A#cZoUxbrh`R(;mBX4%`*z8F%FJT| z0{Dn)pV8(wbR5OXHjyUN!@F#3Y!>W=?q+5a6Q8%>aCnt2w7!6!)gIn>`=k?ly!-p> z;ZfDNP_d^^ZCgWcGyInr@aGt;K{h5yVzsO7E@R(sEImCZ9WyO4!xxatHB@{;YKkTy zzt~Gus#)hHYleFVn21`)PVaGE$9Th5iT?L{D4=LJbzOFo7|DaHsB8N0U6oWX;bKu+ zAsKUy6j}0j(3)$6!hj!VZ@wzZj3Y%|Eozdfn(u|2H5+35E_8xhczD8M#uzfwvJPw^ z1y^j)bjy$;hjeeRv)dxxs*97K-xP6l#NHL5dW+7@(cYe)n6Z0fqOeoD+R3}Sc=w|M z>|(VTS-ech5|&xFlW2Lx9PG9#3Oudxe!e!l)7x8l4^YBvu)8^~?*tMv=Hjuv-dI|? z-@RYraf{Aaf0FlgqN-6ZLO7!{=@snFKrf%ggb8uS#vL3)(rsNAs~MmnGe1(;`^LJw zzI_||g(AJMaQAvcHzNLOLH@c$@j`mP>C&YWA9y+!cy4QLsV&x01`3&2yp>^0f~y~H zGd3XK`eSZVH-Y5(dDvl$147!d z;fy#Z>6w{=S#5DsM@NDUx5^EvdKNz)oK82O=MxMC_)}1hoqP&Q6a$;*_Zx2i&Zhg{ zPUD}y^VtNeoOqs4foYD}(@amdByp@P_NAghY`2RFC;NTH9e<5cADk`+nVj9$^O6Oz zK>vKx1?6L!b!hzFPL6}#1iOXK7=Of;U>yqI6ul7Rn)H`QTy8~T&lio3PPMms-dc-{ zY4U)$&n=2NLA*+QYs@*K_Lgk%Iu}fTLN9)=Ul!y2=k;hQ_zwNXF?Q4DNrOLCBt1*& z`b5RfRYr5Jt*TW0M`n#eit8}hDF5UZ6<$Y+dpHYCaFJ3^@{R+#p%7o2q{p>@R{OBA zdhI}6^xT?5WVz(5Q$0WC5hy-Iq_-_BOnDz6+P4~}uaSJI<(tWtOb&@Vn7XK^Kj4~4 zbl>zsAv)h`Y$B2ttMj0!d%|%t<5yejf3KZVfASHQLybtMLcGA@&=DCqIo|4KOIxy= z!0U@dA^S169dccQN`MhyVDF5V?qlqgL*0+%HH(CnDMek(DE}X6UmXzjx^68XAcCT_ zq=6t^(xn)b3<}aM(jeU>ASkWUjS?dzF?2W5T?3K=5<@csGYot$?sLvP``&xbcem$H zhXG;U_xHql)>_X5`SJLqWZ00Ya)H_X<~oB|t^$E5BsGENCY+FYTP26VZ+?D==gvr9 zp2WXnL^K|g5Aay_Njvu5`SbH%RC%FC%&1=5O|D-d2_m1ytvAjTMgX^nfef=#zkfX3 z$M+T+9IQIfmuKW_FSH)T&Ij{N?nP@^QU{gcACyWu*Wa=plg-U5wY5uyp7+yY-HvHn zKBiZmV#Djnb5f8l-Ls6vcl`9c{YtqOPl`0|JodhL;g}`<_MP`R$uod z7e?)mlva5hl&W=#JFReQljjrT><=sjtZ8WpBDE;oKMXhvu!zQB6!o$OZ1Z!BABIHw>4K>>c zxOt1){RGsprf`-YdH;Vb@t>x!f4rIE!UXItahry&>|}mn=Js;M@YhW92lkHD75;j; zFO6l+s?%`!YY$Y~;vZ>Oo)40(iM?pxcpx)PXeuOC#qMsa!=|RC7UyMu!Hrk?;|i++kuNwe zj%ya}r-n7cp#5E9UyFl#-MdOmoD+h0bgDUrD~zcKI#E^V`uHb*to8P zDA|ft3TNaUs)d=kyROXrOyVv*$3IwoZDu@A@dC&XvHs*gTJWJIu+p-!ouL$MWn**m zi6=@*gZaT|BJ85j2Wgvx_;_B>F4SMUTyWJVmP)y!qZ8~&?yKm93m!>XSs1JO{@<8B z{{#eS_MD$4+PhE`yYe*1dobep^PAK?Yfqk8u&Q&W$KK|DDt=$rn`;HK8hR)a=E4ksq6Q$Dy73irTEudgCL>OIS1Zy?xCEc55t<2A zv!0V9pO>Y&T&Q11wTeqL@9f;&)7qNZWHGBcT&Cm|k?i!9{Q+yBuyCP*AUVWnw!+q6 zGXBE{=<*~CYU*U&GneV;B?h*)X^*iM6w_>8f<(&790}L&I0vZiKTBTtgcrFu$}#># z*|ox|LthJK8s4OD10)~LZZ-CckL~pGLOVOeT;w`%Rs4kKtqH(=YfON8&0M_=LiTYUnzGIn1pT z^H$f^N`jw^k|X+(kEThat~p_W7F1NNHk&A!I2f(%WpMozxC$?Q=A7S}lt ztw^{tIZoF*veFpjh1z?{co`2)?k;5!O5emTvXr=Wp5)6c9D~g`7Kvb~P`qC3)sHLB ziemeel6u>ye+ZDh9tix)bBu>q>{xpQlz1Vx+GEuCvIKJ+crn8fLtnY{gpRxwpR2Z2 zf8`3~s}m+;>20CI%gv@V)1MC4OpNnaQ;^^pgGq)vv`tHc1l*#1$rbK`c3m9ed_#PJ zgP|nVC7Iu_e7G-nKT593&?P%Xc9jEC#e4ROk#uQRXyiE*<*kgfR}q8|O!yC~Bq_H6 zv#2<6{~~?&rFTb@;?lyZLLa1Zt*7d_GZy%K2Cv_gPceqA1z<>@B)NuQH^0~P1`@-@cR-JY zkD({MdAwn^RmnD9XkZ)5+2)#o)!iqB8(g4q9(Sv8-Kwvtm_0&P1e9&V$ef1$`T^Fa zpAWGR&SGAZp@me1SLgHCh3{(RFxuRqiDR84l;6`sjtulPK`$j^_4Y&exae>G0wB)9 zlYNNlGyDG7@p1eL5{hoLjxkJ9&}FvUvzJ3QGO^|D<;2YeJj$Qrl_k@J1R3=oKTq01 z8Sc=Fus+JtBW`1^-{KT%PZyDPQvcGmRZA7R@6G#kY_KmwHxJ+(Jxe}|sdM_BpN*K# zFpke}#`V99Vytn^8bowlXhq1r&mOL=H_7ibUGTh#1b|XcAA`6*yDsRB_=*bOGWxg7 z;-r%GLGr9sFd7A?k~|2P!nk}>F4bXGlLz2)T!Gx=$x9|&Y(H2xfdRa#_3quf(QBMF zU`a7y=dO9B3pUY;iII^A?T1Yiw8EvMKEzLphzK`vHZu0IuFbbxAKT=oYuBAgBJ^G& zmDqQ3C1mZx_|1Lt)6jQs%hxQv`K7&({$Wf~g#zhw|IkyzrZOvhmuHK+BlB^Qb{>+7 z%E}d5HLnY9~MT`D82ZMjKQW1@yNE7u$T5mH%`ncU&TQ~6S zzP-P&rS9$R{R4I8n9>`?s*F1>5_7VjAh3LIXA2*Ke+nO;xoeE1*!(bWv~C=zlx|Cc zUR>~xvojcb-&)k!D-y#%GroFRO$jPjWodNzxiY;0yr)alK}ERG;rr zoNs5Z@9qzI)K+*^t?{9CRaeFzDZ>hU_2>!C#q`QlJM?_7qEj1*lEpP}AA)#P!`CPdBFeQgN0Vcnysw#U= zXyQ#DvRuYt86aTGU{oY{VBl%iiPA9ItUL(|Lx46g)thR@z)0NIns$r4(sAXh_z~^w zqR);pE^6K0dvh8e} zHz^qF_u6l4j>VFY?z>A3>HC}t|+DU%e5Fuo8{))O<|*xnXUe|TcTAV512Nv*D1N@|L@C^6?pB2ha> z-Rg_pzve2f<=ez^T3C!pPNNHJ35aq#!Z+?Ws5Cz|px&Nx{tcj(_6(>UKEGH>OOeU> znR!%ZOT`y1s7kOP$|-IkH4PEZ@$gx}IDqqpeS}-;l={IyyQH{;hEGUAygB=32dEJ-(tnBc(_kc=%} zl-xvkgV{ikCk6MgP-g>$U8SJJYZvt_-v}u7*s7yF+_aktb1stWkiIp=>-adI0(Hlu zfpTp!^>LMlkD)~e8%kb1%OC>ERUinoiCghEJTD&4NO~e>iw|EqCe!#Fw-O1wjH+F{ zNS5+}B22ZNm~=lH)oStGtl#I^L8jf|7xg}G`@Sa=4FV}hSZJ#k6{<}0u9x&P?!2;= z-mrvhE2seM^Se78X^D7*$ZO0SaYq-pD%DXe64D!cD}6PDeU}*} zuDH*Nf``CtSruc;#EjNpKV-aoYE$cQ-TPzTZ)&%0Y}BEo-%V>M#%eP4=4~+2 zgjhqR4MfLv*OM3nP~RF!nO6y!r+LigM6%oils-SaMnl63mRt3%4l?!OmvH}@Lu|o+ zK292`cU-x=LIUMpd^4*ZlbX88qt)zH@U16?X_FNV1x0Tt(?fWt^U*HB_%-?OJeE1O zny<#D49F}>8WxJCPyF$HY(Dj;ZeUwkyr5hnTntbskB<5ZS=ig4AYC#iZE1NlPg%pz zGh1J_^S(-~?H5U{ZeP>blM-63vrvl?kMS}!?UL}3Fk}i-q#|{fEW_BEn~R{?a@cWr zib)&i>y_ZG$7~qe50%YT%L_BtgU;6LEr>zjvi^rH^|Hw42Zw}Q&Grj#khZ=UohH0< zARjKLxcV?|3PF(}F&s}69YeL$D|%8#q|H+!o}VmT_3|v9(=dilY1BxHiijAds=MEN zy_hM5lV+advo(X)M?>?IM{P~v-@#6)#<(^%fd(94mFX~FUZXEYC5IAcFrQNX=ufSt zAN(q4SXxrjq%_4*_{vWn$!F?c7tlJ@cyq8b<2fil89dg0Z!*C}WvP;O4Yb+WEva|9 z`CpLdLQ=(+KH_>mkrR99&qKEU!7$Q)SkVY1pqdRSWBS5~WN$kxi#eflzO!?~j7z;M<(wEz!z$ACaDhWnYR zL3-YSc@@lZ!T?~ArHO*v;dzjAC|pcP;MpW$Qv>dpHLbj_ES?vH9f-}o@fw5<5ra^F zLek~+dA#IlDWMonzB(!^KoVf0fAGRB@rNBc7oR6Nv9FwFQ`%$E9%r^ATQ5-e-HSt%}`;q?)_{j2f*)>SePRNy7&d03paAYJ})O|Nv zoG-OfL;wL?NfN>0P(VJT9UmDi9=zQH`#w(KIb^HcukOk38I{x0StUedr38eYHVqv`q9cC1B`gZ&4ji$}%qdn8W@X$rza;i^n+!I21DV5Y17yubQ-Uz^r zpC6e27`ZnlyFGx9S5ZAeP@Lr%DjDMv?j3Jf6-or%jtnD70*>(s_H>?EC0(ftkx|X| z4zKDYjmDR`st-U>YzA;Ho9w!%W2|5_pNLAI;frbhdtq(ZcQiHCHPf9{2M2*=k>TOh z!>B^Nn$48d4Xz&il(uD>uVU7)`bBhO%yD+s^6y10L?xM?v9f0Ib8_=Jj=hQE{%cXzbXUDx+ zba=sfdcuh5-t=63ls&&BaXq>1Ec>Z2=~U)#B#VCGU-bs=VzlB*aT`mKtoJS|S!vo9 zaY`@CCi9CoO;e=O?haJ?6bp=g{Zv(T+s@^vi!#oR{&}meZjB3f>8%ri<~K%}x6U z10Bws_4f2V)h5nDleO=8XGfmPv6$jc?Z)rWtYFNGi1y{;I}khGl~aMj=XE(bxZd89 zjhJ|7T{u)ef8XzMO*UBIHOag#zT6dKWkR%JS3j~VZfBV0U6h`%iCa)u=t%S`EDZ zj@@F!u0eW=So~ZulbDmpeJ@l9UMMk)xK$bJM|qKPq45E=5K7|C1Qeq`v+i>nr*oe0 z@`fuah#{7{04AmVeI2+*!D#YzC(Yfdkyn{$ENpET?Vy$8!23lgp>`On&@#MG$G-l& zX`;v|Alx%a(GXR0<32;0--EaCo($Q@>6IYhFooE}A%;J14{62PH6Md}>EF+T86V|x zBn>lEQcfkA6s@--wJJ&p>2LDGBQ$OMCRyr(^>Ex-z#kshSdR*>vZWz9tK#juux&1X zV5-m0Kb-5nmkxt%+ZniV0j}#Mjn2Q!@xZxy`0>hxp`Zj9ZPu5)bqm&KcDtBCNXAc{ z;RV9y2wL(CQU!Icu)gDnmpUxUw~EWR?i<`R$jC5W1{IeOSYuIqG*I8%xhr?)GHdsu zll$p_4RaqxzT4>hg_pgFWhR}wfja`oyBlntYsga1BOKUeF&pwjcj9BIFG;)Y7`{(w zTLG*i0zzo}a&Kd-L(&)TiPU?_u|EkLw%h!FAe54X62LH&qTRk|)ElFp8Ur>(wiOdl z9ZEUijBrN4wJ;*iU0zofV@~rKS6D`5E=g;)8!{1~dKkll&o_SMBLpe!IRPfrg#*D!o zh>5HWzcPxEmev89yU2W$r5KwCc!ZO043bakT5roX)VdamI-{L;CGdn_y43+<3{96xDal48Fb zy#>t@`quJRQNC5~dA&PqyiHtG6hU@k|Jl{iF^VoiwRKQROl)%_BH|K~89T&w8p(u8 za$M;HxR!|X$y^imk^Wpo({#1-RLb4cCc;MqwjLxQ&S8|6dvl0YR2B^@3ri1}$xmA> z%?16~0<*u#Otg$YDm6~Og!F;eOXEiKsV1CrRSPMXr}ERXXcps&^vrc$MCF@xxK6gC zCRjrICl2A=i&HI!FODZY9e`<6O?&q%T;|Fxc-e3PDHNMw_+8`?7WhE*>DRavAYk1r z0XmxH`8pMSB&4J@>kAA#`bp{ijg9G5E{I%&@Qdv{{3Hb4)g%NDtKsZTd#}RpQ(%$$ z#dfvoi3TQAuFjH@-#5o;4EGNX682VjDm_kZ zT7nKX_dUnH!@@jlXYR_awbpfX9;T!u>FssJaHM#zk8!!Ul6vtz-nh}zyLD;51CLiO zSC)ynH%&~<0#WJOhF^0HT)m)+4ch|0X8HMIvpZH&SFiXlPgGv1WcHLFt~f^IECW9Y*#{mHsD50G>+%=79FJu89X1 zlU|ZGc;Sa57l1GJGWuYhJ0}iNkM?dkD9X6FPOOkOGCVp_!OtZ~c<@EW|L(^(TEOMf z>J|JAQa+j6mLY7awJJ);KAzS4Rzf9UZE12c-f`Ri`9VC3j%dNmh747@^pM7FU@lw9 z($vDrii^P1O82$(PV~W}@3mC|@2;}?GfCSINq8OJ`L?va#l*{M&7hpr!L|Z2R>W95=EH_um!~Ub(Rlr~i;FgPRc*%6spL4?-+=7w*`1bG}~{`Ja>8K1IPsl2U--yfQtvahAJ&p)dFV7X!PQ; z(zPqBnJLd(7R~!VjE%>U)qVJx2sI3@jFgaPsE14rmuYRSx4iWhnk*mQeuF6=6LPfO z_bF25r804F=#nVy{4tNcT25SNmd2*EVGS**PcNO&-ff{`_Y|SC6}plP@AZFa9CxSV zoaCbgX~=~JP*^K{P9tHt#^_^NUjz--5WA8Dbu&%{n=)h2L3qa3^Lf_L2U#>9eo8QU zh~TztH?|_CT>Z)0KWymfhY(+8x6l|$hq=z9c%Ju%*d{kHzpfATZ{3{SDNfP;i2>d= z3wOr)E6I=Sb0w7JIs)kC7gz@{q)~4$O%dXfSn!M@ozP`X7T6?V*LXT%j||=D(F5en zT{ks$Rip+(EEk8D>C}|YccSAMG{&YfO|DcnAvxKpbJs__(4PMc$p21sBx1wFx}>a3 zEwW%l919@*&3S70QwfUQL0Kk@nqci?lEZt&XE+iiG|)Lt+rmuEW5Ers@|U6azn$Qj zQv`!5T^<{Chfir9o62P@Uul$O^r^n*M^{_hgCFY2wbNyRtahHM$FFPGzIA8%p|L+N z?4?VYB_t+Zl;BMe`XcA<_x}CM+Bera$6i@kMIMy2VhQely4G3y#1MH^$`g6FvcpI6 zaUi0yx|t-)HR9G-5!B8z$Dk_m+SFBVI$BzPf{LIQl5jmX_=A=fg2MEo6w1`PX0)}9 z4PSV8cy>-sXKM3ovp#;k{%pD*wYBk_y1l!&+8%Ma>+ar*Hvbu{0Oi4FJO>`;o?B7BXNR5 zE-^PSHnuD=e`3O>X{D$Lt2^y|#WV*$y&YiEy{1y7SLfk8z_e~q!QB&|yit#gotmD0 z!GwFw$#{qN0+RWn6bx*KRYO(PfofpVV(;sN-r3spWLvmA*IAnUq)GolFxq$ zTmJ77m|yQ)_P_UoXfOE!TZG)L9-U?>bJ^U2mwh}_8Oydd7U8+vg`tjDGz_GwUl#kS zEXg6EDbG6E9|wH6bSZ0iIY40xSCwCoaH8FtV(<1m|ZAoq-?i;X>d8h6)*3P~xbY27=j-iur!q%9|QG>zne8>})rm8*7- zYgSL$BQ^|Xr1<#yg5(%zX)ls3W0_Ik`t)!6NT%1+bcYup&k-|v$*CT{Wm#Ka-!OA@ z{XFkx7eKTpBI%2O3pTADy|V{Ohs{8@?es=4B)Q~cal^aG<2YPdJTg1-=Ipy|$xkV2 zdyg^(eQGQ|OgtM@xt3V{n~u zv{#G@gbezSX8j68dlI5zeI{-erQQXw;7YA7ur<;DxfVJjt*94$=Kw?ITFHcohHI&= z1=BKDiI+WG%J(3X69CH6o8#-&O>BBAA9uP(@9(-~=1gKxBd>5k* z^}SA6bGasAYV#PrzBP?cFD$l+&&}g!7Ei{J2O?y=k%x1U#7p!~`xYxQ40MeeDv`S$ z(~$~o(%v(^H0eX}m*~clKY@4vD#xs8 zUN3+;$7C#D%WCn4*+%j0&G9Sm-_4GewIu_kQ);UL8b8#b@R@q2#-|t;{qRH%MLoAP zkW91|2L5d8^{3qMPyCes<#oR{nd`f6+%u)r6?k55Z^$Nv6#IN)fNpfV!0p9E4qE|H zg7dEN6+9x4t@D~XyI~4t!4s*^&6J)_g@9=i9rMduD5~IMkyY=PKP*P&V<&D60yh2^ z#gC6xl%*t1O|zlB6Xt9Y+- zcJX|C_koinh+~5dn_=8G+`;$GPyHz~4W@JV45|Rt;Mp(>6o3hXgZ2TcT?U>AHHd+> zxd<=P(EHi7TZv%dg*o|l9xJ~xL=AG0$NM8zzJ=H%sSwumGNk`@!CNZYC*)tD3{DsH zo?G#3%?u1Y)xTPjn3NQdXxVx2^Bv*iGxvaMD2VS{Gb_Dc%m7UN&P zFN5`FJ9r^ndOBiyWWrCF&)?EwTmq;)soSkYWfw1m&~6RZqvA>s$xea-95Mr`a*05xEp3&a)b?m!(Nv~-Rf$SSLb*0nI_*H8{%xlJrreKZoGPI66m7YEv9vAy8fk$7xI3@%fR~P zIxXc#;#4%;<|u0YoVpQp4GjbSn_su*h`J{xXn2gBzgG)x`Vl)d)}c3G{ZB?J(dZ>V zQi;qD*@tOLByBDH?q~bEyo)kstF&G*-E?!`Vs!12V86+9r%T*u((S8s;Sd0l`tnZd z{Q!}!|e~iOz-0gXtI>Ny;Jh0 zYO7kNYn^M}i@dUmM-m}`t3E4yw$61nC7nUP#L;k8Q&}AH;e2xD)`rxQpq~lPw9h9G z@*1f&G-!e1LBCxymYVv?vHvS8jRrlQry-r^%dh9x&Z*LO1M3Z7vEk)_r@=0Qw>j6b(SqgW14R)mwzB$ zU?4f`@_cyXrL1e-_iP+8Qqan5iRjhA9AVT3r42(8_6VmQ7xwj>d??jgQ&mmPln>-p zk#V|`k`hv&guQ5MittWuOl<5}diTIU)VG)J%-=AqQ;W|}4qxDr!~lFD9*oYbv^T0i z4LNBLMMHGJ9xv{)QIxi5?}*y;7Ld}HJM1`~SUHn$4I^)SP>kb=3umYxB}f)^9P>KJ zE3ER^@8~=l9v=1WO`p54zOx8;LftaD=K@f7^7vnZaU12oe&GI>koiw<)+9L}%YQJa zp=;)C^sK&+SqPn8X-}{FCB$2n->Xbx!_e3MCxr=2D)@6heH;eG6hA*dZwSPx;ug_VX7Dsp<*9aHb^45Y4V7h%=oeYFtzMn` zir(IJlVvsA+xK~^7-nBaMF9!G4>GvMS6!n?ICu!CJ)P3*e^W)ox#zLzKXP<<4&fD3GP5yRGz#8>^$G`)mW5tU{4=R&9-{X_2 zIXT0vxViuC1>l@e=(VJVQ6zIIgqOT%yBOeI?1L494VL%Aqso;%J=u1c8fxE5XfX;z z7eZgcq(WajDbNr5aPoJ6=-(gkzxpbGl^%jP{JceB1z$slvwu=4cfaGLbg>k0K8B}s zB=qWJ()ExONbV$F@w_*zAuufiB{L;nVM>543KrJxhG>;rCnOp6CIT+s>Uhu3i7(ga z7z7TSolOIk_D#jb=3lS#0Ja0vD2}ZD8K}IR12V0d5jXizS>JgQ%=DC%8kFdRcqGD# zJPs1CA5pUo)u>J)G&e~Pjc`8O)!7=Kw71866({pxlJt1#%_A6xAex90vJlRFQ~Vb5 zW(o`}VLPUH*8mX3y1V$&CmIMck_3^=n0JML#o^5qNVwTYwcJfg$V*Vi9o<{s$i)D$q? zRo)0*misA7BBvnRR9EM;N@f;1c=Pp0nz^rTlXKhQ2GNP!lgNm|3x;Ez2lF0qKE=+b zdU9gY){j#o;+y>LQyV)vDsJ-<=~f$%$jxB}Gny?w6+Vmxrp^9H-rOZ>n1; z6gs~t!`egY5qu=~Mpj0G@l6wBE#O$txd4;zy|ui;>bFLAg^`TjZ7hSNbjOM3E<)a; zq7Xo8k09D3|B9G|nQ_mj5@Eq?*P-)(W@?~lI^4!wa~{2L3FG@Jv?1~^{Jr|M8y$lY z!`o7yQ`8ohpVj?k4$R;9*^PVm(l4{UyJJzt%Z~Mg?{`*S)7DXdGItyV7p%N67I(Wu z60cS|e5YgiIdg$8dX>-daQjBmv9^daZD$P!B4@}gkQfr%;B^$T>O0N!%0YC)>Z5YcE|!XZ(rKd z<=$M;wDnd>0NI;US8u^o+K7h_m}EIHQW}7>jp<=*hlhukM{9$Va&(;Ytz51CdI5JBZKgA;#0fu})fJP)ByfbkDERPU-sUn`rJo z5HE0GvZp^A2fVxF^Zd6PL@IK>hpav0VusliETh}Unm=TlV4 zU%^tOE=ER1e!%fCV%ex|5}Cs3Y~ifr*2?D^mqor==g=rjERd9JB3k|FH$0iZsZYx{ zHQUqUG!T{(aAX(WXic;h5(}Hu9|@)APGC!V54O9vm#DUXcbg)FRvFYf4W^cC-TplF zm|4_!x05gKUF{Id_qW6lgN_IIg>}e8D+f2-b6Kf!ef17){1dcIbNZ{F{6eXDYE-+$ z#l)=redg~TeWW&4CTDU*0m(?Kx}#rUH*VlUii6>mhl3G=4&^`l8%6un-SLSg-P|%f zyjo`N=nqw-+@5%l&v7T0*nN5FAgl5xahKG*l`#t|>&A(c?d1(=-t`}@5)}69V>X_j zPcO|T)Nr>2(sU>7gkBK26_njN8olyqLp^mhAUg32Sv zZwWqlHP}W}JPS#cFtL-7P!2USxbvcwN9ua2-F=ml4kq6h$gL?e^-0y!7W`S#NG56i zl|H>9rBC=l;u>XqsTk%w2eJsLqz0|N03yFjL^QP=%!vLXYVf!B8}ePz+yxE^)tu7F z<`UHSeF+2!&#w`prw+}>p3HilV%-c#;w8b!rL_RzQEv0yeot6qe-|(fgdpzx1^x^&Y zp=mPaTepZjzDd!)j?axb8#RpPO@Yof9MJjAObrbOoTX7U{rb+7rmtRWa9FAO5go9=5qJ|EB)>Gi50B{XLMiLf1lhARQ0io>FD2aNvH{;`q3G>ra}ovRm(e zzH!ecYPTq}ix2tue3cYy@8D`>MV#lrag6_#-SNIrAxZQ>X%u@$Z$RI~4;SXsg&1ff zDOnidM)xU`ttLO8iCTNxPKNO!L1Cp#4mqL4@`-26dIx+IaRSp|xWVAY+d@T0E=QE?vYk!AD4}5hkN(?T@6uBeSojMSs4skOtiRE-X%3 zE#UqCK?b)A$5-6?Z48R|!Sz8PuwbC=-w9Vq_L%Y9%eJtw=ye{FfRM@VN**t9lSD_D zv#LcT5k8WWo667Pw?=2xUALqbS_GokzKpg&kw1$$^ES_M+dZ3pMn^*3ReAP}QGJp? z%(qFl*HQ3HB4#oxA_qw>GUphEF1*W!}~8pXL9Z33HUwDjnbpw<=& zHsdu^AN-oRK|K4j;@!nK9jhg>)i@XZ+otGG40%H5TCbE2BS(%xinN$=z7Ewlxu-Ta z{tWmfOs10HYP<)_-HIMB8;~G&Cf@hIFr^>GP5tiP7?z5$V_QoZq|k;xQYhS)`NnVd zQhqDJ_db&^C$P{!N2$V|KZ?%O{+Y5ZsmREz=Xk#~hvcp`Oe%lgr!)=kwp5TpO{~JK zedQ$N_6&gcO0}2Y67O+b(^StY6frrY?wx&(vTM5B@r^fGk?b(;=*6GxXVjRCj0{sR zuVyt8(#U99r?PwJsa~80qKFXr3QqLOI)F*?=aBG!{pYsC6*;eF2^HgK3#9{zCk$-w zp42Gin!sA|pBJP;CL&z~O&T|3Yd)6nP|JBB^Oy5@&hqPeL`vb_Rp`Y~>ff>SO_+D1)<}&QDTLX}K5Jh7`7yX@k#&Nr;UYbEu z_0hU@Sr#lRYSkzYZ^el_WKF;1`)HA zk(AYY_aPR&YUUYW&rpDt8qzh>I)|;nAJC+^&C&;{8KXriix-kfV+SJCYIyUxfU`!< z9;FdXN<}ZrJ77;D&~K3NEPp~;aKOo!ME&5cd|C}OjjM`cry#@t##t>bQWjixgFi02 z=B?u|zoEMP<6AgQah>PqN;0nodB3sArZ62XYT!@8fqitLU78S4q7%W|(IZx#4jaBi zn+x71K%PN|VWlwk75l}V_IoAl3=R?i^P4-n>Z`0#_1ow8pADzy16LSeKmlA~L;`Jr zOf7f6ZKpKr|9Xl4$JG!0(3tdArIpl4Ke}t~}6xsPa-$Zd#11tX$vN;6^l88YGhgA%4^A zNq-6meU5H?cu(0dGMecMAwf#fEp|4IPM^{h#j8mM=4NVWF!CEZ1{QEz!Xz0NetCO1 z7W{Je=yR@}#QI_p2a|+Wz*GAkKJIb-mjRR1MAK!FXoK2eVP%fNyMOsq-UDHyDnp*d z7~6YjOKHcGu11=3h|;bd3&Cz&5kl%Go;cC*B7z8Q4(zzL>S6_P3*6rx2-Nu=|A*ES z_p!fO^@8B~@t$3?M8LO?`rnG}yP{k2X;;Qa1q@w218TJpWS9UVO)rZPeR?M41~SUP zVWk!!OkfO+Ro4F2@sgIN8;(&Dd0-5&5r`WK(!tThreRX;PHQA5xaeQPWPnsq_=jak{?-4aUp+e; zuf+XEZNi@D=7*NzH>$3+9dyv`ku8oKAkl+gV^}UuL)v|kg{@&emt!hLK-r~W(8^>6 zs~@9nmjg(*Bj)y7etq;ONn7pm>*7}IbSa^(ESl%Go~tY=Or{}q*{J1CLBzt!t)!kq z(V2Y)fz;}2G$!Q4!ff;(CFWmAPJgQ}{Q|FFNe0N9=C2CjL{bsXY-Yb&O)^l}D!9IQ zcRKBlYGYlBb#rOk*X_GR#3g{z9L&YmF|yjH(XRI zUSBYgu!bU{aaPpCvY3Dg1o5)S+10v;pxc2TpA*+9Vl8CZ@l0+Z6uRo|kIG4+v1e7H=jE6Q8Zm@6yLSg0A1uX1 zDVn&rFXb#g`n4li%T>R(l3Wh}G;cr;zau_;7EB3W6Prr^L27i`A^*GAK|v}8$dJHk zNcf70iXI)~7rc8khtJw*n@dgq;8GmVXTdjY8viCH_2c+;=2V_ay*VBGmwgd0hmq7V zsVm$<(CVF>PLr-hv}2V$$;dw)OFEEjogK^bg%{?a1ll*SD)6A&kSU5yXF^hY7jESc5} z^V7nypx)7nu3xe8wX1(3Ol z86nNwXd;+-P;}%N4+&y(BLT!jy|`0hgG4* zFv56FE5;`?H0>Pf+AZLpcBT_AoPhixlK5>ec+SVTFtX(jyKB_&(P-mem3|`g8RwUN zJsKxdO>ABSyzU1Ew0FCTL!Sm`jCExV@gQmyHURLbZgcM4jbBA*OrxoEAA?1lAPX-I zO$}%t_m`+5grjSZ{OqO+2OKtBwule3$loQ}CI#Jd+(Lt)Y?zUEYh!uyzvM;&!4g9OO3#cB)v=4sGevPq-cS#%4^B zI^rBkR)6UtC~NgcPr4PKF8*e7ZdgpNsm*mSJ0trU;Q0(kUZ>_g)Ce1F2=N&k08+JV(d&BA@02AWAL_o=~S0!{|~dmq2YXY_En4a z|9^|f|79L161gyM?b2Y-(ve=|fot8S>k$A9fsdWuHN39v;2c2{Rk4vN3s zrk}<4l1waLQI&%5qbGpnl2h)GO>?14VsX;rMf&sEBVApAr|4`3D1aGO?p?*@E&4_B zYo{xpwACNw?m-Yk6vQK`yzw#N^(%_@FwkbIkaIeX5x#Ma=;{QLtQGAl-o6Kagp_60 z*Pi~~zw80WW!O;HR?b>A+5hNwkB7&rU!(6hyZK3fyZQXD0rzfl!!1&zz z(%Q;qu>#u3Gb56i%1P-yQ!HoMSv%kX5Qf=55C*ugNWUr#&6zLHe&B>Z6raXi{UBwx znkv!k(;AjE(2*%#3efvdx=NPEM(J*%)8Y5=Mm zU+d9z3F3E-sdt|ufAO>)<+pZR0qxi-z!@fh1s+tbZ@qm!ysFL|wBe%n|EJ61Cf#-V z3wXU?^a_&ZS!g$4Tw)*I6pmP|@66r5^_x%>&Q;B@^SLZN0x?1bz`;niCK0gEuxI$Z zbJw{c%Y-P3$BFl@g7xztMDV1O(E)0;Ro1Dt)!LNNnJ?I)x#!x8uwO_TKX5adA2>US z==y1yo#p?s{qz54+rQVCTZInzASDzoPnykRDa-fTvv>aGQ}{m`_5b!x`3oa_4DVAc z!0%fS^Ws&*K*Vz$QPrLYnXzUPI?6q&VXD3*+Pbm?mJA)Ej*#-kNMRi*vIkf?PMxNup$p_Z`1v1baa^k{E(0Ww3~E7-p|t(1Z5{(Rk* z=CSB3Mj05b{4VUUEpheBp6a!$B8bvN=fNk?o_q_u@O9}l;yK-SfuiyGNoKb%LlkSq z6i&;=MlkK%Bv!=jgUFFKnqN4M$)y<@8oj~3e9eM?g!5k}oS=-qLU;UyliqLp1jLi7 zo4+u%esBo1OPZ|8t3ju_J9|@ zpfL#zRq0tA2fYZOxW@yE`#}yk`(t@3Xe70IttJNjiE9)8 zTul4pvW&}tix<^<#Kp7zo?T0SW!KcG<}AMHvr7FJ_dbKd{_x(K(lS81c_ipE>T_pU2e%wK*CGTKAa#B>pV$P%W^B|^x%`De)ceH@s9B^|{W98o&{_<0p(Jy}w_N%is=xX1SD z0D}~-bwoukAjeWO6DWb(SLAj9yrazvRnuTvzBN(r=C8thbNlx7ZIeUcmbf_~bE0b( z=%t(nj+IXrrFj8Edz2(Y@ZrB0qh5cK&aLYw;P8Pl{_$$SqWQRj`zzZsJDMlfp;jF_ zd{;EKCIQXtmD8nJ-Rr5+aQRU>vGKUp7I%;+%$}iB^RV|%?L*?RG60)cl z5EHZ9oT;<=YS3WRmn>=wj07!3v%G>|E5fC`4&P4}Tg9zzuJJ47sV4v;P=Zc{ZBlm} zcM@=ks__<~{&F%$>N9)hHvJWNM-hxiMUgLeMzJp2`!-bB&HIPmHur+?yuW^mIz5>c zP>iGM^P8x*Njd`mJaykx-+Sx3FKgO@cIMvHFu;TyK~I0ANx53NeZbYP^C%N_`0);# z@0@fQQ-Mz^L2~I*!n&{rVrA{~nW7rlhNY@9i@PH30uGFjT)w_73i7=~jJgGomV3(9 z$9v5>q>^A;38H!v^r9V-7~pRuB&k!8sFp{oW9>bonrgSMVS16OD7^}b-qL#yMMOkFMFpgUj`Sv-5Q;QGKvatK zB4DHUl87K30@7=!p(d070YZ{@d(OGfbKdj4&%f_y#$XHrdtd8XYtFgmM3p$kp3Z~M zfAWI73)6bQFTkLac9ww%0{)V8#>bB`&=WmqcA00YAru!2lEWXj@y=c$&3bux4Fmp8 zz31Je!@N282Rl{ChaG>Mrl2P*Bqv3@3GCoXixJeG*bgS8Q@_45`v0DtexyhJ!M;lr zN}et+{u$w%-vQ7?RSd95^NdUL`2*fEzr>6}z+<5%2Ji=!SOMO^aV63>#Fx(A{Xgg) z>%=SjQzbvxNZh5;=!wUw=+=*cLcgX8&tz#NQtC$=sXu*}^!?beNU;(5hhy73XIs=* z9{7V)2>_Tb(%D_(D z2HpW!TY_z-hCJFIp9CxZ!+{}>G}nqx241NmaD7z_s3 zaALYEXyx|F&Nvoww`?$4UP|gk%J5G5HG?#&-h(nv50`5Cwyy(#O)2uhWWuW-{gQAu zn5V$`vJN-n*H52*U8B4zwD(4FK?-{8M2ZD$7_EH=FJp;aIJoC=TWdg?QD^w1fn=LK zjDYsc6d;_!v+IzKOlPSkW8>qQNWwf)dbRq#6WIj4M6 zHlg0%sb*2Fw5Voz6piZzHh`yg4)>Ni?qx^{AFL_BNLlcUBK>xsPE=tNu)Tb9@qXKL zoOT`jG-wixMluHWyoEoh86lz-?qwhn)HtCVi{zs-Gu%_yporbMZR9qe;0MJ$*1h872k-vCvW0rqnRZ1G3C5Jc#12$D&$mmPr9 zQ&!J$JI?D%_NSG?=f8ilKu@9sgVg6VzzV5&QkNvD`VJ5>;34x&uRS?Ltd8GV_ z+DbH=e8*a|x_(G#s9KqZ_p-fLo2dlM32xUI1125q4qk9|bnLQd^0`*l?fmmz8jF|M zmxSHWbyZYD*tVk6wf@+s&fa0rc?;+z+~tx-zuk%|4ZMu?gP6c^OKVuu=?aJ_?7K1C z?lsC_x3UxgBG5v)GsOg`ZAu|!n?|HVsMLewf)7o9oviVM31|krZUiA?1;RG6P#wvA z=;}LM;J+wZb|go4reJm>-<@H^wuflXFe@oU2b}Am+`B5NJE{m_aEeBriDOksXiv#6 zUZiD7qMex<>6Anu^|^8VSNHwzkDK&=tc5=&d|Rg&mFylZFS%=T*gb6cjc9%Uj_UVk z407e_-uZuOLiec^)seIGbu{8r6$luVTmS#UhDx6%rT=}8rDy%fJMR@pzeXdhd^vv0 z_i579J5wBH-WWx!L1@TwNLtAN=1>^>$@JqL>8u_7NHM)+n5|)sie0%?Ti;)w>58xK zAZ}msfLQvfx;w|5mI~CKlLGJ+9RJgl}Dg(SM+&JcKARa-SCiP+DCpR~p zRY^wK;7}B>W#KLZZJDlzm```yG7kyfp%jNZ8FdnCK6Xn@GFNp$50i-;HJ-?R)JRb` z3NQfkRbR_KA(@c2z*#xRRAUYX>Eq{@mz3#Gs9!ewqn~33J;RFJ)&SGX&+W)`A~CGS zZ~GZmk%R(#h<{Oi8q6&YIox=JZKoA@|EAXtXi<=UqJ^WhhT5bi!iPAXwl+t{;I73( zJRmWohRo^Mz=_)^z%LuaaZL%MI|8a?p*%(QnkvGCheC->TpI#X?r3*M5)9IglbP99 zKW#wcmPp44lJWrcO~5e@B|ut%+WNz5XDymSr-`#`y^);-`s?Xrh6>#kCStdPE)v_w z%E4(+S+P$3UR5UuWD^9+)qu=otNHyku{O3kN9gNbT`gAC%6+$@C6}#eSpQZB&?WZNX*jSBDH|dg|Tlc;0_w+d&0iB1@)M}{=X1@PA+wGsM!Ey0-%MfW^Dm_`5M1i2`l;9yEq`;nbiL!J9Wj`0L!*W zED-&}oUpt6LtRnZ=XdvCjq+l@fi=3hu6;QsCT1Wx>`-!$C2SALBSJH%dpcw8`Jst` z1(Du9Foj(l6Eee;f(V%pD(9WTu!?YjG5FC@#Z4QH{C!dlj?dcXipj*Mw|C6A*RpF~ ziCkvY57*>ObiYqSo9*?}wH1&E9|aSjNm;y=Zzvb3XGM6}?k6dXP()}_tcCjwdCT<) zZ&n!3uluzrRyZ}|{Sb+Z7LZZg{DlUOoG|A*r5>AtU@9*S7JfOUje5Ymz!wO_;9-3( z)SoUM00N)0?*DnVL2ZjD~C2SXuXXSK=wo#6X zeC;gl-PAx*oWz$*;?~R23NQ%Ugn%dnN^UNE|Ej#6?K@EGJj%^@Ye#1P*xXZb>V&(I zc=2Q}R#M`u{BqOKa@zrnOl?7Ym$50V;Z1=h{uu4Xd4hMpmkV9em4%$W{CM;wnOE7C zKV)ZrN*YesMasOp{@}vaP))+>@g~|)rf@b`jA2Jd&YJDfdoEYz@f-Oz*r?-5W<@k7Jj9H63Yg+l` zZI)AN6TWZ4r&K&o(4A5Z`2y}nEu404Y27X+rmtB3L@K;{apuEagNycmjK&YFXRz4` z%;?KOYz+5=ot3Bpt)wYt^!>&J(4q1OS%49_J(@lQx+*08uP9rC!OmH;@Yr*pQzP86>45->z?^&NWeJ3waevK+W`91qkT{m~0( z8Mt8{@%h9+o4{$0-u+pB_nZnv$JUEiO?<+EU5}5+VEn$|HjynEWK-`k-{+F$F1NCB z&EOE}CVRn9&7qJ>)-iF@jeZhP)ha*<+d5hyyn^P-({YojWL&$<3BSI4_{zIaY5#VH zihxkxwHU4N1W%HHzQ+-pChnm{j*76P5V4_B3Bd4%#+GGD+uhMj!D^+&gGh%a;ZuNu(O!KUJjSrB!)+_eBR^t_{K?v)I`I`vDHWY7@=THanRd#ADS>*CLArJQD? zX&^hxkrFvA8IEgfj-C#mrhyft!2|U{2QD1m*A1$ez^@*hftda_nR2u}kp%}jLQG&^ z(|U%GPE7NP{MX5h^*kdq5@6gzl_xYPT z$J14_8vV;uE!Lr1#(8oNeorng>n2bhfDrD72Emr?-BMXsNQa|FihO9T-bv}qfo*^X#{l+#ow7#_puMXn95>)c6UaYnE;0FMbJ&tG!2vur>~t+1 zt@`7Ftj#i&tjp?+(XS>(0rTO*aogKD0Sok@OV+?P*D*1uesf0t$g=W)E${sH-T-ti zRq0|8l;w6ytUz#M7a^KZH1+f;S{CrqlB$@ACY#1MKO*7gAjzr?rS~(J{cpVR4A7eb z9J9=-+%hv&Jz?{0cC@hx<4p^*cB)^8g~FXWZZ6ct=iI8?h@SM)X@4TH%RoHM=$Fki zUB%yb1d&vdV6v4D+_@9@x)b@_k#F%?81?2^kg|ZHIohu!Y+fb(lm|hp&lwS>5Yi$E zY;f%l-tj$O$vYoAKQ+Q}o_o-60jp;dQ$r02)eF!O{QR!15=Yf2WA3$NjpGb6M~>dJ zgQWyXh4ty<_dK4hBS4zaTgSVANqOJ-dUBY3UfbvBwG+s41TDYR)EY_^d1^R(oDM&a zHgiG>uZZMLU7yA+B|~;rBC?R@C`HE)5P`!_fNT~uizNC#JnRup9y7fgjvLK8U+peQ z^q!?|WKlcO9M+@#ze?JFe0Y&a2Rxq1EA~Qi+GhiI1QLnqs%Q&&LbnUez`dE%7srDo zzD)1Y8=@{XtruN?cCk8(jvQW52Nf#J>dM=QrIkR}C3`yy+2Uq+Z+ua{m^Lc$WYoy; zBb%e$pNi%{8O~;>IupHBCNT5+jR1M>A6W3x1MsvQLUsc9Q9Z!$js0Kcc5gw)+H=hc zJ0OcNwZ)|d=c&aZ>w4cP5?kwCOacyi?FPq9z?MaPJ?{wOLWEZAkZiz$U%K#+F3%fo zd6^zl2HUEARSwF2gZpw4 zNXyJ=JybV+3Fye2v8b&5=@>0y%kn`#B;9&Z)n~u#t*|@EcMyyr7-)%fRgMOv`ae=kEjVD=Gyz6@ue9K{pr)#Esb<}z(QCt-@wrB*}qDYCGds}#%dgDQ7(f%30Bmcpr5ORVf5iOV^#b%e9+w1t}xr)BO zxkA)@nJw>H5_C9nf8sIJ?JNSt``3>8t5>HNJM@~xNM)X*%@4$E_!DGc2M9%~>HZP+ zNKVZ@+9bg7+mnOl_AeatWZ0&~x}ZoIcoN!!Dbc*3uRA{@KvVbUQl%(x#M1>YE%vWL zK?(V&jjEz{?@3LB1_NoUG%NHo&9(=r-5amYS<}ufj~HqyqP>8yeB|vmOCBx%aru z`CG5l`ve`0zy1rsSV`Aj>v_i!8BJrY1u-&?Yu6ng5AK5p6*?)q|SxWL2d!j49@y*`07^iCYr z^)M+q2Ie-!YQ&D4l^c_e+i9(6aGxEz^rK%pfljLgew3EQ6vlE$4MzYe9R1?NpR()g z@RLtV6l-4~A!tIa=kWQLTNP4p;-DwxEU58BM?is+hLP@di4k<14@ghExk{PfR`}{P z()R0@3#V-xgk8l3A|{~yL@5x7A7ZI%Z+R()C1yHhUsUTKcEV&UKfLt+YpQ|Zyi*G3BRd zG6WiC2J7}awTC=&r+ry9Rye}(W-7@)|IyN4qaXdHsgPagTK6GfEc zz-hbQW3*@yZivuGQ|Y}Uvpl-na7v(roUw1ynx4R3a1@T{UHw-Bv^f9fhoqQIzDDnX zs@t>Y7i5T*VW*$u@0Ne7Fo=@!9)D^wKEpT-0ueqNMc-|#^S}F0*>5W-$s&C)Isw-= zvqHVUl4>BKP@3caoJlb%ma$wvExDFL8HZKS@s~63D4q@(x}Am!!8D1U^rqDXO;s)l zxlK$b7Bk%(b#r_PKHnJ?gD*zn#s&LplDIqjDxM!WzJHj6MQ4$Y-*DRp9T)Mt)O>|5 zvrYaMi-&Dca!ds0SOqRoOPIfWxo2#oKA0N4U}EPn;$NCA)0+(?j=k`HizvvH|k zzUSc4`g(3ixmIgk?+-0Xmy|WaF(oadlmKC>`}`{3dK?)h0itfZI3b=nukG{lZ5>@O?t-m3rsf~K1b`0#A8}Qyaaoxrx*>);Z--z$=7&yp3 zmU}|+y~Gh-yBzCM=5(-HbG;?N-hyqKiotJBq9|ZhO1rHs`j0JxpS|y#2@wY+&Yoi? z%m;8VoTcyh2a^fGg4njPWa?#AYJ>)R!&YC?1~LQ&ov4aMCjTD)PCvn)#YL zA~q`?G!!Q=I`f*PcPDaf%XANYRPJ|x3_6IV%xhpXjcCn8w4R$*`9ufdzfYHB4(_Nd zT-u~z=3KOhQ1T}nf#nqE4{yDDb0eoe!>`V!%fi0XqTa3P^PIW!m*Zzm9(BJG25Ny9 zv)v&d#o5EGH0wC3d)=6>$4iiCthp129n5qjo(GkDAN;BAzthVOko(-liAFPSWu}Zm zy?haX9Y|&kBA55&kEZ2!Pa>uQFZ8hpYK*Nc>DCswPM!oY*)!v zirq@ePF2R-Ds(?~z%JRL`kU}*jZvpXm2Gt9ao;UR^v62KsmcNrMOJU>^rxyt%JqE! zY8m|AP*QD990fsca)z9~UPCp(LAyKJ<+5GUogTi{V@fp&3m(zYQ#D9?PlpUy1?FsqQ2Z*nN{;TU$fb z-)*QP2pi}nX&=p?Gl25hRK|7%?2U{7WUTJeks+zq#?I{g%=u{E$E2J_`Lpr zDVOWTQ74;`BR9tqo!J5bFXd0!uB_UhI*kkqsh@5M@XRS1s9W{ki6hhU_npIg51vN4 za<#BOOp^rX9$Edu-pt#+5C&{NK5yut>Yj3{ptT4A{L$ocT3*UCH)j;{Mf{ScJy9 z8@8|3WWcooA+;-Ji9&_;UK3!pP(K|rj#;_d50UUe*9j;>fcyNiHE!Zt!<^~`nSQ%T zmeAOgrDJ}--fQWmza3Dpfv~a0hVV|6QJC-&|9r0o?N9?(^y$29y*9iMkfm^ITMjRX_vc?gjQ|L?Gu=8*xueN-1c^)OS$cB#VTH&kit1 zmMj!amBL=S#3l_a=L1#^u`x9CK;Ve^rSfvPu7FWcR7Gc`mHXU>ll zz-WoGfUjGZpGJsQA7CXKhqoLOAXB|^k|3To<8-GSE-DhwggAM-IbQ;xeUDcN2K zRqL#+cYfXyKZ5(-2ZE*0YrgH`=sG_L#ot~4{~xg7pH*o%gSG6P6w3uM5pd4dhfTc} z38p@wZf*0KI_I<7pwv7wcBP_G3%^A{MAXb5TOsJ9oORYuZiazMH0WZLEy=9G0}J^j zN4%Rtzv~NC=>hQ@z&^pcYL{csH~;8k%At33ltnCm`g5WB#Ymg{Xcy$ot24r1uiv$Q z!H_8>^sazwa)B>kZnJNn{9w25!`A^t_$kvm+q%=c>g$+~t4*;dcQxi4ZHzav8F|;d z_W(5M72SS~6GEDFRsn9H8ZjJV=(z_AzYN5Vs5&nGAg7@c?S%WR_2tvk!3IAn)VvzI zOkNMn4d&Jq)vWqGs{RNf20(JV;7Fg8_gY_oD^OpHi|#Qnlrp*Tjon_11)Xcf9d@%TO$vnURJFog zj}avT!5c!d)|$|$Uy7G4LImHf&`$EP*8p5uW2nkF3*& zO+H0fsp~Mvc^REf8$sFa7pdDJOOd+%0k1t(s@1x31E(_@JcMh0_Dk3n5lTK2ld z9P-~V2+evU(RJs@8}Hsg`_!~pCiw6Lb|g7Wk+Cn)55g@fKI| zTzr40%DgHxI%w&XW1s;5>@aOqOx~7o`@ExR_9u%P3_q)lUUauz)CeS@M;pLW*O@Og zHN^7vc+rIpU{DcG;#9~Ez&CXxiDyOcCXyr2ee7t!=-|F#*5i~OtA)kMwB;CJJ^791p86O zjH6nH@khXZpWjW?Zd z#(d>U`HP;E_M{W4pFuaN>>HG-Lql7+s@3eYXqKhzx=kYwwQ2wh4(w3s6L#Yi%8;Y2 zUyhE=*Jj?eUcNjNr6&Lx8009nz6;>mx)}j?#|ZnMjiA3BeK6c|*`77o>mQGlHl7ql z0bY$6VT8x8PM>Xl>*RDf*;^{u1{!SQ<&-t93q9@u3qk4R&bg7k@x=!v5Bg1ada?xl zE1uW=b%QeV2t>ldDO%psKE)qL_Z;wUM{|IsOu&A1vRcarvL3=%bQ^AAdn@IUti-4& zJM)Q*^$)Td>vjtGjgft-mMm)O+dCoZg{u7#H`({^S7t5?N$4~Z_zSrrrin{%jm{2D z5Pqjd=;wKUJEd+0%WyoX=gwKk{;%}8$dnVS==5bgX&T`nmu_`tV_=%g$?Cp&5vl6W z`-6quNp0^(lsrZj@D!4o@_UtFQAybkBo!HQ7)E6ql8?;79nB0ad;Hd%Tw?NCc44A| z{iBkovkl?o8C~b~j5Ppfh$j2Ier4Nr6fpLo`{E7l*9+(IXAHM~dtafwZI_=X;E5Mn z5-dH!$fef#G~&f- zAmsb;sVcCjO7#rPJ=!*(ynS1R-&NKns@NdtptqC{Q_E8%v4+={z`BeA@P^BEg31RL$B@p3&z=u)U-yeC&?~^A@Iqh6Xrop&+3*}YDb5o9^~>D zW^0}K&aE0<#$Alf%$zxF>jKc;1iiJL8smh@M@hdP23GXzrgp_dzf_!xzHp8xziB+g zOoyHN6;o}u&OEBzhV8qJ_qg}-ylKJk$qV4oLG3u4|2_!+eN2JT`4SsSOY7C@SK~Gr z!i&jITA)SK7X~c~5ArrRM8=L8yziGbxf~-*CfUmvr1%n$5=iN-D)ptmxr3QlWuEf_ zAJ@(qF}-Ud|Gc@WL%k?=?y1I?NGd)u?2+u0?g!2*6c`b*ZvYbh!p(kiO`T>f)*FZC zuaE8a!~hEqj^NyDd?tkGzl%r23~PqGYuaEKp}zk(cxJOS6Q*D;Bm1cuj6Fc1E@YYU zafJxfcdFe(xuisYM++$&SFIu*@C(6KzT?A zU)*^Y@!VX7KE5GLmG_-k@(KW%>gaE2l1=0Fb8n9VjAfQZ&7Fy*<{RVaTaQ=ylvG1k z?=Jcd=WDe~GXpe$eZ0))`#S}%<3?JHcEhETec3xhE>ydF%r_6V9vz!IPXBh$V)vg& ze+*ox8WV()H(5Gsf|q1fTfth@YBHaeKLUoHHJdg^l?69##b(peMTu-YmdciIubZ@+ zx(2)^i~q}T;p5S>jb=V2FHHdZvVU$rl60X@^Kn<<)w|ty>j^JHrn?-NJZHW+Z@}m* zBwF_L(F0)VV$mgdzn@EWR)hpn^SpDeeLk?r~sboNQoa@W5) zPGT{TaKwd*5;zZMpk^r7oUu%YY3wlyXYw;SwjHIprlX5ew!awV!6I6O$MvcmJGwFS zC%q3STtB zU(Boj`Yn?#xH+I?o5qO9&iExba(djy9lK#&2G&f=0#C1`QwuFOod81&mA{?(4dA@N ze9I9|GIR^3_6bNH!N6T25eIhyVwY`O?D}6{xn-C4^>k=+euj7^Nq84B#KW8RlI%mK7r+6ljC7NKU zz$dl1YU%k*t#gfPh4f4!QqS-QB-| zp#P-l{+z%FHu4B=QkLGCKvZc?vLo`bbLTRHdnuY$f4{cZ%YW?#mDBIZmt8(HpMFbJ zzGUPql4yD2-Fb3N>{}r~vY9~I`}ci*``fBXUYOX7n95tBs0n_%p;>EJC;pG+D0O!u zECv1bPEUy}l$e=O3#>LPPLUHp2P~^V?whN0WX9Q|m;bcY^6ybWsTCe&f%4`5ViO~9 zG!%mDLpAp7=izf?Kc_m4uYY`J$bBWnD!lVmJlo(IQx-+_YB#^6*2V97Vc?PyAqZX5ZPHtE^&L zh3YP{CJOBP^wUrMIVkUiBsWG?-zsm6d|J1as~$pqB#6p&=6LVLLGwg#lt?Sl+(TI8 zwybmc6m+`gEM)t5F+YwLP}L6((`;-5AXc9yHd=k2u zfN}!0Rf(7tRe3D~%wD5_m=9UI`|sj-pexoY_+KHzhH(jseVY2-N5lAp-`tj29 z>4)~8bwCVxyqW;k!S)e5hokOSZ>CTJAg06+uz8WXA(Sp=t88enh3XZ9!<;XEU&jpZ z^KKjGor|!zju+i|bAb-a0y?j}HUM^+EnN_nY&rZ5)W2VKFzeV1i%*#d)D^tO-lh?B217GE;jr3`ANuXkzZ23;Hhb$@f4by)LG6Dt*neM6 z-0BpW>eZtKcS!hTe*n^DAZT%(CVpU^y*ZhjW2V)j@J0pL-I3s4IYGZzFB++TOJ`%P z1aQ?qDf84M(vr@Kb86}%1ldFFN6QSKI*x2?sFcd1ZC`B5thTW7Km;Z3(0u&s9%e32 zgm%CGKt1U!Kj(H)MX|Tw!#=De()Uf(2_gJ(_TYiG+}YiK)9ev3x5?}i0n^8YAPAq1apTM<*q6>TwH{nA+x-GY zB|WRnOxIi7y0vuA$f(BKqhdMjbK%RcFFz8UDJeiFhn?He6t672&Ee!Uxyb>#y({`O zqyxv(MaHxY+AFE8l9{&GC*E%P6L2w;3w>c67rtmT4TlP_B$VJV z-x)(~h)oih*O-ZABnxHiW|U6sGDl^>nWnwBxo-&nWrKru%n#!I#I?Z$4ocL4M`HuW zwrcMr3%jR`FX#;BqF?rFCPENtdf*J+!bMxyIhQ%fup<||*K=q(Pn6o1-}@qRY+(ce zl1Fghbi>Nbmv7f80+Rp*utwRUZC*Z50-)8Mp~Tk1gMJ~z__*F+z5A@TgVcG5=bOIg z7tVFB6JOAREd)q7mFe6O7 z;KpID`V#Ehp?@@60Eo_ep(|j4Yh_^K3J$ZTF(QGXZxWt z+s~7q2uQD~rZn zc+g2f><)%mG!uY8GKrKlud0VSxcuc!VWH8p7q5QB2A3-xjg1bx$l`k+8Pfgb=~p22 z>DIvYEHq@a>w(8)_%4(b;`aCnpJmEu8~Y`zSY|#7Teip^f62dG!hN1mMx4lsRs@JI!uFzeTNryd0|25`J|^$D@2f}Eg}*d+1eCn;g}VVo zQg5Lu@K53CVG~gt||y*LO8)5RO@r_1QhRV_Uno$?(s{2nKo3_P1Ud z(4&1MPt~n{-CZc$^#H(Vd&ux-X=j1pGFL+;!hI_nCDTKxz#i6y7CKD9 zd(_(Cpi?0&9S9}F$Ze8Y{ZCAboua0yNz{3cx<&1U@KE8ZC{Q`MyHn1g2 z4eOTC%J0K!cUibTCyf>Sv~JQd*>nAl5+PAGk%V8HQ^r~-``2e?EJVAVH+nnb6-YS1 z?N5M|!Om9j`rife-?R2VtN5_e#hxrFq=*d5%;{EKR`!E)0r9Rrz0s!aZcTzVZ;e`3 zQhljqx?{eZo~png?9D?qiI_X8pOemta-OjH16xE-XXC9Uw18Gd6|6kv)?HNZeL@T`_)k9k)oDoei{1dW@QBHU10hLbtKP-A)aDG?LuZw zU5?ZLChrBQUPu2J12}nO@kg0Hcr;wmb>drrna=Klu`@mPvn}g8O)EXr{0(Iom=p#u z2#jy10>(-`K}b14-iJwiAjgk0(3B)Tm1?D8S|(<;L+uaB-15tH4CK|n7%mCP(BO+v ze5x|ic0CYJoI{XbTIkMsrxOc2dZksAbXT zR?n)YKcdl2hAvcEmUAmDwk|h~ms_f0+gZY--a7{@chYM?%EJt%Jyv@LA|vg(lbZM_ z3Mb9Wr@u19v)M&*_U;t4?JVcG{YEa7hVJj`hBYN&_3}So!$3wZZS1_JnhaW)YjQk0 zoV4Y$5v2#u%wk(PeF#UBSult(i&!>?;NbGd*K8L3!10n1fj87;CKpjGi`riEhRiiq zrHQ5Y-py^clEp>6Ac-ij`@SqI^OBf(o+{}7@ke&y?=Mep8RYKlvj1M3&i>kZG%<@= z_<6kBvIucR4VYn0hpNlEJeY})*?E?AM<}!Z_Kf`2)k^%qud9~Tt~gA-#HLpHl#PZU z=J9JTO3359IGlgi0_%+EPrLK79P#V*MMD$im)DL6uoQP@;J7$i1abtANF@Dau|M1x zLA|~u$x^O7H(43y9&oV&k_0JqKKJk&m4sf*UQY&{76&P$4rcpuOL>v8)My|hX>`>Z zH%q{o<{qctk1~S0@&Ni2g#mDu=c~<=m^~etQ$Qv=Fp5w!en@2+cZ>ix2?-)s)I)15 z!}Z&1)_XwJ{)!Q^ z?Obb+!FR-TegX6UdQ$GP-uQZpd6-P-A1t!yu4(I!`2wd7lbudZv2ACL!Xm)30qAlf zUU_*30x!SKD(6(i|a zcfeai=bGv8&Or_AQqUI%DjnEelseW?M2MPW>DefLMR38tY(4DAp^TvX^emKC< z?AKtJs=30nE+qB=VK0TcL9_D9>f#z!DbM~;epx`)a>euNHI{+t^=x$4OtnLTa;S*T zLAIRpLSRW)g`%W~^St1Y|^NRV>#%>r68pJlJRr}Yc zmpfA>g^?vIu-JvK~DXJ9Ba;2PFJgxyMNa@ zFP#20uqFSMk_3bYO9O#$jBfnl!-N7BNLQvH=W z6~#=?d`@jCNV4+jjkRmDA)l+8v~sPC>VT8*4cfS`Q_P#%V(dR8STD17S1pnwekir8 z?^X0Q>r$^d<>ds|7c#GQkAHopmqqPgpAkv(HtL3dx>c}# zv2I^0>f=|PHD4zL{j`3fEpqlDOfc1R3*YglRZ`Zp zg+nu89RM<2e{`u%o*K(C)J9zh z3IFA!NZct!so?Pwl?6J4FN;$MmE?eCh52*ba=x)R?XTBpPbkS;>YlD{$mq2; zN=8`6r~b4im2;~aXXDq4$xf)@g3klzWufz!hu1IuOSSdiirF9WuQYQ=cIkZ;Khzka zx3#s}^HMMBxHlIE9UU@}mHLM~mcv$+p9x4kM6>){ z(Uubhe1!i9Y{`aGJXonxbDee&i$w|mR;E8x^QXmQc%x7FyJ)nwTqGk;yj`n^%y!NV zT#nDa-a0^Z(jW@w-R=UWf(%L1)Hw*W3E}WGmMuk)=K14YQ4R0!H$BsY5Z|rZROGs{ zWSu_NTsQJ}*bA8Vo6J<*ZI$g&praUZ64&P>-l))(VFn^Ehr;bC$%S@D^N81eN%<2kthmBv~(T?qbt6blfzLP2nC8snwl^^^8%m z5q^q;aVHSY3>%9i3Ej@PO+%t*yWXh4CTb`LM2gBKYn(OK9NF+Ltx*b`Xp&Li^=?3h zwOmVcyU@3#LZ-ZSwhe!w*?ikkF9p3q*Wh=m1^JpLPVrj|<|%d-PKsyi&eDpai5;3J z;Bm9N2URKN_BW6o(B@+L`)pmwiY);c8A;gT<6&ldgi+YmJIBRv@`-i9^vnZH%dRwF zpYG=_0Xxwlr#}KXq{_^~^jMi^%g=ASy}y>gu|K@IRWx1_WcHWA!LW_s+G@I=?CLi% zO0%Qc2BWtpE#^Nt?)Ln6Ed%JsWgYr1f2=wSpM)8t549VzSG}>jP)b<2BHOvpf8!58 zfC5Bb4O}F}=BpO7CSb_ZJ?`}6+jvp1GzruP+!8~0*D?a z%-#*+7jUrQ{2Ir$D^vRAyAAFWhx;os4BsS(!?ft5xoL;3UlLTT76yX9p&L<|c-B5b zj$9#Zl{mS6!dY-`Z{D9)KxS+juT4}fM zkpWl4OjisQdRCM1LfyC5pB~Tu6a`^s8zfiRL`FW`GKuMPku98BGE2mzEBm5UcJ>lM zD~Y4%$RA4)JYr-PfU?Y*V?}VYt&LMUyG&y*@h~rB8nxfH3sEc!-jC)O_vnGvU~4mI5xGlirI& zlhI9_L+BXj!@^b&0|9WHI$p!?hkSjNp`h+hGETpy9G$BtvtzmsuSp~Y6(KiZ@Xl54+#M6$Ojf1iKzs> zuYIk`*g@;SR^d=A5Ax;iULgDz3B5`7w$h6x+3iAyMKjFr@qSXvaabptF!&#$>Td|-pXWZmO6Z}e4Xivo zL0@!0fxRo-ew46Nk4=F=@XZQ>-Kw)`xEcr6+Dy2hqrsB)^+mNAmUHoBttv*9=XX?1 z(0G;hBS%4ho@7O>^<@7`gXGl@hM79=Jo}@Ey#kD% z`bBIMpN0XD{#I7fpP_Tmdn&K~<%$j&^3ms^1~(3i%hb7|(Jp6p(3$_>*)K;Zq*cZ; zu3t`R1Xtb`$}8?`E~B~0=q_0~J8OJ4izL@dr7U0-5kBvR8Tsg`vYHomCODy?XHh3o zUO&jzznC|aqs)L%e8 zcWLU*91Vr9dt{PU13YG}xMxo@`4zqj_a1O^+};4vEU1OlPFLSaMEL-+a|2WJuGf z?l?+;Aw(z=iv|?V$to?8rVwCeV0o)Dy?IP(8FYwU_h9Kc2?bUcEc|E{<5M|typzB?yX!xUo7@wyg7h(hlX6G#w@&3q+o2tv!@qMZ8n?Yeb}J-aFq z5>pw{b~J-2072T&!rwBJ!w}l;YllTWp)rHEnsx_1Bkd;#WFVkKU-DcN%b*WU%Ll*= zuPRaL?$o;uQ^UK3A$Y`;D4dBit|0!z2s{%z_o8T4cuHcldy|+_dsBGg=nqoQTbI!; ziL!la7=O^oMR*UH?|ZD;Pt~7*ue-&xI_~_lVX8Z?zll}Qr}@)0pLHIb$XVBqMi#rJ zD_vq~msb|7zL^@{2AOIC8>2lA%&|N8Td)vt>YPz1NXcUZN8M%ok78n<^dUL-k7TQ_ z$v85a*)(6JSK^sji^umilRDqbQNlJe&J|c#xJ=P76Ed6}b^>vg^QJzrT;n$g?uIl+ zTRyZviD%!YwBLaqd>)|aO+YiN2=?m?9}7=f7_Z2qEKC*+Vr64jEwBR6+5At>{$K5lp$Ju9DoxgzF9&Jo zX@();b3D|i&qz4T?aEzpEq+ovOQc%wfm?^^^u)B-fL_se%cnpu`O!Lz|J!~yYqWLUK=-CmF z!Zgc?jtZWs+qiERa(OGe{t+sDRN}Us6kOnsYL?O_Ukrd-@#LcFcPwCkv^{6{xM_fw zhBpT&Mp#OXAPYcXn4gnyhv$F(xJBW`cg<$}CSA>C#BNYYCN1gAn#qUrZi%2E{uTQn z^+l2i{LC-q+7vEeoi9K|rT`ox)~eyn>(?U@0v}}O{BWh;B!ffT?CM_{W*X%hGa4p% z=FS#7y)xzM*SP9TKM12%{`tIkL(ELXeHHBea6Zj zwmjxy;1KgkFxU`SNv<}t2lSJCDQj8}D;}hL&f@wp!p!-ylIs~Q6YmrAhKGC@*D3c7 zj-BThuk}Z*ChR6~#SxBG3}eXrU!NRRK#lG8*=2O`Eg!tzo1ksqwqTmGN=8Svm0e=F zyE&(hgoF9>xpHq>j4cOrV6uSTyX$#;R)uby*9K_iO<-i(uIi?AZWbWk0rxQF8lRYh z--{*V$vBo@sf^hOemx^i>wW-Lkbka)4qbvFm<{u#-^`p6P-ZmaeVo7XfL>d6s*b)^ZuM}?aMRK?A@5TYOL z?>#W-BQ$MKds*etnV3c6@SpWmmNo_<|2aIM3~ox3A`%47rR3^L9(3&X5qISZV(6K~ z_>Yj2d$|eohBr*Vowgw7?~FQU(^9&(VEk=-ws!kJyR^!l4{1QFdyzz<#hWjiZ*%%w zT))i~BqAwPNuyA;%WTv8sQM(*J!d>8NB#9huiGRtubMp{W~U z~W3C&xH%!dm5i zUe`&o(_J`>V8Q;)B`c_#BW1CB_WR;~UI*-lRgJ%;p~iU_X3B6+iJ}0w`$u8fU@}wW zCBAq5-|C|o<+94L%s=SQkT?3dwS5bDv-}G_0)~IdWH7c|#b}p1zlgQl2H4i+z}oHK zZcvIB20P9!BsSQ$Z=Z$dmb^zhA)ca|I~N`Sv}f?0a2#x)Qrx8#Qt=AM3;=0?>CennJFV~9-IZZ+Zw+Y*@?!}Nt@evnHISso@1 z_KjlteA}!CYSnIF{?N8kzg}?AC-kV zUC&J(%-u$XV8u}~S)bVx-W6eW#lC9!ocBX$ZoBByL}<&#^VgUaK>ncy8!ph{CFc-9 zaD2~6K3O-Y71&zzCBX=3q0IxWwz4I6=(k2RDo0T4Ay$^b)1M@ywQ8A$c z2+Dfh72lJhZtrRl<>OAEkkJZ@v@M&CnDNGvG;y#ae8BYnHTp{0k;+#j`UFg56kj zrz&63x?|aV$k?4*tIk_FgY!P9$k;%9V%OaA-AvlyLh z+D3^#5(Qkq1J+|m`)MpZ2uL*UZauNhSVc9g?9X~4>N9O6=}{4`j$PZHl`79f+sZdC zb4HvHB3QzP3F66XW5C9ktdTn5efx5awgchp2-Qu(v&jY>WTNh8U6}!w>Et!u0oUBt z74zxw6PjY@;mKW^w8Ui&N6MUZ$`g8uk{#dRcM-%vA`_-D(`{uRk*BfAXH|$xDSIQ$ zF8?bBO^VfAgy^#Bo~#xPa}Eey z*1J!fzY)Uu7;Wy`WU?W;91Ck|UA$Zf|7Mc_-wg{>ihq_Y zIQ4|v9lq5;s2h|6>D^ai7kv8F>+MM`9iEkl_XTntEj+olc3B69^L(MtbRuh=?0mMW z#qYHc(1}(B)GV`(KcZx3)TyU|Lo_R#8O4lN`;!<;nr5}{978&Cut>N^Z)+5L8p%XY z<;#N_Y})!EU>%=n!5e`EPK`)@=gFj{C+_%TE`N~uoNO>-`y0dG+6r3SYa$kQoiFyg zY8IBJmk^;Hlcpn1(i>$qTeSCje82f1tYzdX19G_FvYG#USF-F!v611B9Ajj*`iL=n zo{Y|bGy3>WAb3_`c-LlGTA!EEXz510^cl(5Hh6@FO};Tt0me1HRD8Yhfz%fOe}4KC z=<<@JB)qB7S?bZNg1J(oys3KEGDH$hp;aaOt7u8MD6W>6-n2ePjZFm+T=ZW5%P&1W zawf8+EgyZJ3}aLQm)*ELiR)H?&oT3JNcDI#{x*U*V68;8VXP76dI0> zV=u_EB%Biy{b1PUs`r{ZoeZF_IB9#| z$^_{Rf@_R!YxC)K2$C^61W&G3VSs_|!lYfA_vMB4H#JA-t|#%)DaF|$;u@RF*v1%I z+}5V%9?x7Me7ZS2k~iDV`@#3q9EP1yq5M4BnyQizS$K_!Vc|somHmm{(0~QE?AeHd z(DvI_#LWxI5cm7v;4Wi149P$(S$lM|ezWa7sl4zahu*o%zRATV%AMz7N1ZaWVVNA% zUBL6{Dnztom;OX5qCsl-D4;g^B-VY{#2&t8QPk2vu}gi-XS?U4Zi0XOy>>Fod0;n5 zL$FSs*anQ*`AX6+=JTSa}|I6JTb8Mf>j(3ra?QBd9AN}}U&keDcv^!!t991L#84$oiMJwdc z6g|tQZ?9X>q2;bBK5nI@>-9JE(|rP6Q|!2Z{9eJ?lV@IV-nugFWO0yyB(>OP zHsRlK7DtuRs?Ubjg>#%n4__;{L)pK>=8?J%Wl$zsT5Z!UsM#A9i~*) zOt0LK+ZlQfXv@($J0932;+QYDf&`4?BpQ`H{tEdP0i*>9V|f#5b-fq*rx6X+;nSB| zdF$!pSms##6n)K8fzH^(>IFe9c}4OATD*s254h+%7EOV^b_|ICH!xaQ40qAB!}dyW zJ7&AO5G)#NW9)Lc$MNHS4^1-1PUDse(l>#KpV4ANGBuK!xR7g4pW4#ddgk$)6Ak_6 znZG|BTV!gVB#MZFWcvXjZ}#2E-V$g$#w+UH3CrAn68{ZW<5B8gB++7$xTLZTJ>kP; zlY2q)tL*N#ZYxoLs=>B>x0dDWfkdS0H=Qf;neklW48Nx*ERXOOGG#}<=sYQeuuDaE zik`^(v;h57EvIX;rBoevlC^;8U@ES9V{PrU^^Mwb%jxpq`DY9XFHP4XT3W^<9~9=AL;sg=O+G6NStfdv5nU zK@0mh#boA9OY&v1;r^_GR&Fbe1kmk;RtV-++N|^@X)e+5>s`LLn6E$C5or=F4&=1a z+1b*ntj0onN`Xrr4T$tIk&1;BqiPNK>sKeKv*dcP8`m#u0x#_RLYNaE)$j+HC#4Dj1F7$9cxE=r?3+ll2?cdq;3KT=y2@)s1aHQ17@QzV0lYl3+P zivmBSHvt_ld80`XT}|a?AKQ`HwZ{lJT*IaN3m|?GFL&pCtZZyYU-i zC+`8w<+hxxeH|U?aD)yO%b!;MzOVn?bG<1+*)AY3{ymnqpT{9sQ&UZTTE7P&6m2j{ zu*TzBRe$3kgL@?p^VV3loJx7ogGcJ*-w|Hth`0)i31i-bDLR$V8xc+FF)M18CRPy( zHDi-Q=~8`(e9?@$n2}&2og6cXC%83}s=$MewS4267z$Ll<#AIp@y2jeAdRc$d%fo~ z)o7SKRjrSbZWq7zqTI#?4fMu;;kKE7RcSqA?RKX+^vr`O^sO&+5OIJzO;eUvDg&C2Jr1Xb_UhL(tT1pPEGWt^PmlG z?vP8LYv;h(ui%-hYt1=%=w_KGg1gLm4o#M`0#(_ubhy;W7+V3+v_+U(0~An$Mhm(X=1%5VoGYl*wT6K=M+!7~>IOd+w3bX82cby{I9u{0R9W6S zT1u7AM#1?4j+Srh8}!5nb5}H|Z0!Z!qHBAk8T~IU%z{P0j2z&GFxk4^A2dBP1n5D-x%>{_={O8+iC7zr#8z@F^$T|xcv9DZp@>KMcixrU^Hik3vrhpNOdWpT! zAmlu9`Qm#?`nJnZ_#Cpf&U|lDHt5Ewh`U^k^?b=q?tZ~(LoR|Ya$(%OXzOI#n1iL9Wi{%KvRcApwRy~yF8WcP||yW2G2wav6@YqVpR*n2`4 z7pfZxpHTnPr2---GBRk0pV$ z&SKfpZ?QA*Jsd~T5xi6+F9rBn{m&7M1t zWEnkh{LD@`Yv5~}t&!1B(Ilc0%Suv?v}ibqy*AFU&h%?-A( zu2RmZ+c+D!@)cc~7-Z0Z$b5xB*9pQwh9aupD{ym|^gCi+Qyfs^Lz^z?B{Rem=b!ws z(%0Kf54qK7Gm5VeiqfJ6x|Y}iu_?IgoVV?b&Iq~eGqh=jg0nVzNU--&zFuZ1QTLr) z$5h5&LM=0MGZeDQR%W}7zbNrz+)?IATyUJ_K>-4I2QDTOL+0l7YnOHHKIQK>46Y9x zgkIsHO_D%sktdN)PVfU)$n$9bxfOe-^V#q+7LcfjH{b z;!^t03z#X|Y^TPgPEN{YJJx(+g^~N7RUw|jKmDpL@bO{t7a`hiW(tCyX{XI^H`?sN zLe$Y%sni`4xO00qO-pSSgmXR=3vCm69-5v72Uspq`n;EDm@tmeEwPX4p@BR*oU3)_ z5`Rm1AlS7i$JpZbA&$pJCrGsa>mo{q_1P*(X&FUn+$UV(2l+(}7qufm&6suI?_4y) zJ}%yQ<4YtL`8n10bY+?PL}#rbBWf()CXx~dj)d*h}Al$ zP3v(@LHKr=!)qq4!0z`PgvFs3sVy}ri|wz!cj1+JoZKt}CRTwqo#AA?z%=qIly7p| zx7l(Sc93wt1tREbztaBX0iX$VVf!YqW#xiN$eP-ew=KoN$OaBe0`FNGAFH6XGY>MR_u)C{>Kdtz0|Pysh= zRx3}h9ku(uLUDw!uiL&wGxITLRxmf}zX->Fb#i^Cdk!*fGTf$v0EWxz$gcHQ{x7^cXEHe{ede3zt`*0PFnd!-YeXfcgelVra(s83Ee z-1_#G%Xe#DKD`@j4y*kRuUsd2@v1DR4CY-;h@Q~{c+SCONs1L250jl&Hvq;@+g(2% z7z%OCD3y`Mi{$$o6IJLEs8UQ|8(CtO@;=?avOSB3ZSoLCED!Az_l*m?>}VxKT}D{= zJwXEF(H(tL$uVz=YDsk*g8&i_x*FAQyVG%;&3|f0J17?qd^f7N)|>J|y6=ah=kC0x zA7LcyVtdM=*BSh}*2<|0_o_Inp5h)P)bE$Vo~IdSnswrVaBC&x4be*724gGHHS}Ds zq`Aj#GnH1>tJf^4w5?WeJ4({iW1vALvgz*}r)dWnGj7QW1Uvgq;T(V9WJDg?^||Wv zK8Iha{nCBIcYpS2AHFXo?lCFL%5`#(f{@A0jS$P~y%YZz(Cc5~)IVRz^LH_PY%s%# z-y~L?CaWb8t!&=J7}ZWedn!PoJwa%}7)f?<3ftCH9r4>hDHU{E#pk69hdbSv`Tl90 zWv+47`ibZ@yjsG~&o=hBT>59#VrHsr%7}&$u>i)_0hu6KZ?wOrd3ix$CC!g*0WH4A z;Q|yNlP3Eoyb>&zEtOS;rqgbr*18{A?+{W@hVAC&V_7!MUGa3d`=%F zJoJj}d$1d_83;LaT{OAGalXE{ao(7Az^FY`ph?#Oikk_oY$4RedIqg;!=fK7%)rbi z3bk34@@vy5F+CsopMljiWL7WzAa`>#5x4Fqk&*D$M%NTvc_HA0@Cc*sk+sh$sp$l* zFv>cithzqw+yBVjL!vknCDs?8=`vS*WcQES%U|vOe`@#q!^?c1Q`(N&kH&M`Z17r0 zePZ%vNfNBRW7vN3>{;wlZYZITb0a@9Z&T>SSt*p%A=Sevt>t_3k%WrF&C+-1euS8d zdX<(_>|M+_x@7#0SXz=e@gMLo3`P4TS59(Bd5c9Jd?}Z|`^1X-mFo+WJQF^rO0WDt zV-nIT)5z{&2w!pdUiz(9K=F`UD#8dXD9VKy9zA-tIbQG#Y)3iZy{9a{Wr8m&(N5UO zhs&iom{qxaA&=Z?g$mlc0?-lul0@1n(Nl!Th7Rm65tg%XG`|um0AY$T$v^c1u}`0K zUFz4IK8@X);MzWG0ULO0z}M?rUjRBJrOBm}2M(h^^|pR0<+FNMDk};2Mh*3=9@PJ| z8Oa48<(_(%7(u0HVX|8dE2s^Inu^NQji?cik z=or39W1%1!O1Ppvg%fE;P6hq+C7Rb)Jz1`dsbV4AsIfnD-Uhi_E$lZh016i@iVt*h z>@)`;mb^_pm`MXy@pd3}gXS%Q26q@Y_--+(2P1##(d)j8l8Qoht)))hS9^=LM)!KQ zg(Khr?c4z2v-_jt*caeY1f7B4S0>V-=i)~u;1XY9F;4vI6OO{Dv;H%xThyN4@G(F; zBU%bvyzEsx{vr~H^M};hZoqxSj^?TnI7;TA{-ZZAJFK+f1q-L)_CH6NMESu1_5w=MF#P`;{*c!0}uZ zeapH4Obp!~sqt7uAMxMdxhJpq`8HYN@|2_YHf8|?eqh!1I9A#kJ@@Q*{|?`1kx3o# zH232=I%h7x%PfKHhUuKj&+xdQu#kIs8P9TvPu}1Qk)hUsrIDK1(!n@rOMDfv@7)!V zmKF+I)78R*BF-Z}o`o^S*=7D^6jmNuSFlZ&9d3KYeKJw=DL*45fc~*`Bo|W&2AMec|`0 zb&V?|`bTsW(dA-p9|7#qU3+dEebm`v_XP0{t2I8V2DQI(>bP?6E9N#S3=nxt-7`Nv z7I;U@MXq};G@dthP8vqk(9Q)Vn%3Oy|B|yiYxa4C`SNv*3_))TwpMrCp@xJMOl3JT!GO z_sdaGFa^1jan^ZZ0uKuhP>6DXE3-UqWhO35PML>L4_JEPUJ)EqO_!n_4z=D{lrhxu zZ>+Akuqd>*#;NJP!=SN-4KWgJeFiv&CD-RUD~wYq&fH`|3SbS&PKuiBt?PZ=A^(a} z_`_5FLwx;nOb~sDN2wY%Tk$;nE==3;v*3fkM!*b>be^4HVwLs+Csh+AY0j=z<~l)? z0yw|S#xv=rCO=mQh6+G}#=@Pi87zygw3^(MfF8u#2w z&=x}fIx*PjxpD>s&1LG122X;rFjWgi7I5Ya&X(Z*@yqg3Jq4bJYiuNj%Br_6Hn3&8 z2BcX%_X0SfE2)TRrPsO`?^gGZYCL({QvK6yC3oG zlTo!rCMm;~fX!#Yb#F)UI_|#8)RoMvFVI>TfceH3ekX-#)crGzd+js>{t*y1^W{GF z-p6#!jTP$;9+V3;c%8d(IIbzKUME^X9POHn=c^}-S%52wiK`PA!Y^-Md>{26 zek#_66@P;6mGI?@%t)>>y{Zs!(J14?)b|3W9$79$^Ul7X#bmj4O@d*XWa|y;Wj~r> zpT_cLQAOW&O61gOKCWf4_83J3z$f)_m6P9*lPyMwqhOb%9m$y4^508z{B;Cm`w~W*9!9!h}refWd{XyRq z{38Jfo{G|x?RaKQh<)}XtaxjpIqWM3jLWq6T~K|@PCXow0JBUgu6OjMokSq!Xh^jZ1!E(dafU5l$Dd zT8`y7+aBdsnBTZDHa~zSyZA_IDKzyFb?mtYcNY%pSzcw8w@6G(lkA@+3NYVqR$2GG zQrlhd_F13JEVJ13E-%eMfacUVK>Mh9(`(KN9h09s^U8;P(54Vc{$dTOynFX<8vG5O z)17Fgvc&jhr9L;)QL)sC0?pmi-1q&Z}|?Zp){GF~VQIeCd^@598FX zbz}ov9cQ{!$_H~pfp9{$S*DC;zuQfTY}18VPMe(4^OXw~76gH^W^JtFU)?4*?qftNi*f>d$xP-&q}4fas(4*LYHfI(oGk z+6l&*io|jLF-C)SMqZw2os{=fCqrSt>B65aLW>JU&wYAy=*D3G%k1;3c8)~Q%AW;v ztc4lCI-1+!)NExj%^!4oi)YoFaf}S#Zcv9vb_q9{?i*;PPs&fy6lgwJek1kQebBOguJAG+7|6vB9Lax)7Od?-|Bgv^!1IO_OZRYBMj$VfRg9 zWEdWpGR~bY==ITlYtpXlRX5bsPM-U#8kn@w6BI5_dHCJ~`~E3#e$fV+G999EN7br`C0!k|L|DFR}*$6zRj*#I=(z^q+Lno%?u$hrU+1>eu z&aiffkozOo*!STUx=Kos8=L5FpwpIUU!2P^hrk&wTQir92Yp4+>NWOJd>+Rb8e_P) zv%uWb*tj?LYu6eVaR#PnEg+LCsnwTwA3d0{;3#W4SxI2-snNw@7rx$EUb+sj`gE)+ zam0|Pn6onmB6H*Og`&&sW?-7OdTok#;s#{k15OimCvajj<_6Gp$>;99<90so&4Q}l z3lxMh+Z21bpee_3lNkX6DX%T->_e-svtZOpl|O$+ti3@<0lr?b!IOJftWQr()`ypk z&rff0A9xWm@QZjH7lW!>IBjnc=4tURKseik45j@z85bu9s|ik<K^Uo0>|JNKA(;K%5_P`u*s9)Fw%Rah}2GIgXCpCJ16&lgRdSQ@wA9OtNgHztoES z^)dM4Ph`SG--Dq-0(4YCBlLcU73wQT8NmlpQSQ$W@Vns24)FzqV=Y-&s#s%`jH;9H{~E=N6P|H&}VJ6k?EeAs*zEa_Dm(StYFt*R8&;7sVCkiwP*0b~whBK-m9W(a=&7NtN3ZmhkzZvsGe-dmBEKWh=n1W`H%bhU&WpvQJ_nl`zj!NuXOFr&~cOJpD^4mIchwQ%~v|*g|iyt%(tu}#QL!~ z*zkGesZ~sePyTeONqjgMfZoD+m34@i0HcY|9Q$5{ zx{i5YupQ~IX5rm<%`SciZytlsS@d>TaDdlq)VSs!iu`|@xBW4C`~gBK-n{Z;lD6tq zbzuK_jZV|dv=o+0oSa~;pmWL|zY@S*-bc}|;W%zV`Z2bZQe>=mVj7Moa7|?#Lida` z%=tMPET+%cwJ@Hw%oD5|S9ucQ%DoRG@bUvP!!kjYy2prXtI}_Lhk%c9d?T)Av4)TD zy-%Lmg3ND!3aMFwehR6RaTib8zk+J$Va$sIk93NE(oz564gc345`;*D&mP*>R%EFq z+-0~=KP{kHfr8v&r`t52nWF(^%|GsjXImP&5ek+k#R|EeW zQ;Y**@0BPLZ8DQ%F-J*gfPrU3rKIC$E;_}v>#bfomb84|->fA%r}1wDRyyv3v+?HF zvvDeX`EiwGDdIOFzM=;zNK^nZYxQndjr?E0pj4&%fIM(_0Cs9TUncK-z|Fxy-KpPX zR@TRSYYrAz$sQ zMqgtKh3u1!HvBG^=5Lksq=zzflkpcJ1qW{zB~ zG%Xx%E)=bKEh}OqKE+tGp`stIax&<6RC*SC((usyPoE75?*U(kU%A*XD+x;dV!xF7 zfhnS}ub(^7gz$KYYOKYgWoIFXvterZ}7m-t>+1VR1VO8nN@@QIH}Hbu$KPX$`N zn$_7dC7Z`P<8cM(slqW@BA_pe~b zpF>>cV{m|kWiCNcmwD{_8bOJuK?M_P98uIL4VIJ@s7dy_-w-iC8Q`X3!G<5ayAW~T zZCU7u%y;K;z&4bM8X2bRk4f3_PvcslJ@M4OE=7*Xz%54)hL zFMML3Mk*@=$zVeFdG|dHx2v`YdOG4-sXV}7F=yhsI`;bK$GV1>Bd_P~Ugt&+`*p*B&-XgTN$o0$EMD4EPAW@w z=kF6Co0#aI#$xzR_FveV9mcwm2bWyD-mtrUa0&zOJM@X2aCH@760G8B=zgaXBoC7; zIJEmYr13#Hh3UhEbpM>yNWz3eKTR(ZnBZ+gr8S4t_45a}gXXC>Txr1E`P@$FtC6@v zL#j{yVzjI1fBL>&(~a-_th#+Iroy@#>P8i=&}qCcK{cgMr|p+Y`Qt}ZB+I@qhC8IG zuktouw6#9WU5!$5A3c!ymQA)1Jj{%0abqS|HKLyzEsdr-wPI3UC@;g1RO;&4A2;q2 zt@EiDKrxqJgSTrXO)hxNOOKZWR?lt@aZ~9Avo@8IV9?*E_Wj*25KmHft{n{7if%;F z5UhT)${kfQu>SC3*kQE&!p+T$rksn=iT6{T`sQBr7dsnYr`S>z{I>S}tL-w)QeU1z z6P&U=npAExOJ5-~%`~H+FP_9wjTE1mEMwo|T)YXX`kX|Cw2@0o#`mB*z+QL*yecwZ zYZ`>o zzE@;L9lH!{d7sDZ;kCqe;&+6vt0*r}N!m_Mrp2shrkz549S?>j3RPEobj0 z-yD(I0q{siuCyrwBgp6f^aq@H)7jk{AK`eCYXo31rq7%=?3{|XC$fiz=$*RF>!D>8 zlYZ$#cDYF+Ze;1Qxq;Xujbz{uNSwKCIK6j7MN+Lb-^pgm_vKoP}52q@2)#;P_8GSj*4!zXvr%Y;?zsaTV< zZNqp8o&c|2gi>9$bNW0eBr1 zBXo~xhRB(Q_&3aqMs*f*cOB7L0I7u!CSghRBw}oHT!;>hObY#Q}yRGEp6L zE@6D%wTskbRb%^)k4<)}ZfcLx{2zD5eMMDd1bE+j&5Te6i6H8ZWhNz(QNzpv30sbL z7M&zy(hPHJ{EhAWGU&=({I$>f?%0)3z}#e}SGH5V6rokEeI`+BUUvMO%1?J#!Z9c8 z6fwX1nL`O**m7zikts0L7{If=6ic%LG*@}Uy(FE+Wyc{%M62-qA}YPvmb?=ajsV%13-djv-&Sdqfr>=cYEJ4J;LbK}2tp zXlLpuNY6+k0=7RWg^pT8(K^?#HbKM39+@#n58G8L7rm6+R)j<$YV?ppk|y)=ozh69 zl&^4sR1DIQE_wHu(VPuwrzd`tXteM)R+GtdP`SDn*)5^xIjYdD z%{7Uir^Hl6y<2HDm5VSc(H}Mn@uA_aecUk5Zl2<%6L;b~8K7_Vm3JfAQMi3A9}-nq zif!WiCxft3IRdG$seF6%(5ybSkhOvRfd z`|@zRfEuD|^$WAicxG&*!#!BK{5% zY3@`=Eh(8QFR%1C!yLLPu}Dql)B5POm6i1r?|sz%ygSG%M>weBBxN#gZFZx1-5Q_i z%$Lc@|2bgkfoqxH;A^33}IDIwEO%@hfA1ue{zJW+un3=KZdh7?(IBmKd?9ADJ z^yDHH^o7HnN9O1C`T6;`&e@F(4O{EIAp_mDPLkPgaW2A5CI4HnaqNM?IaM97Vtl>F zTi8X5L1+Wj_O;PWN6+r!HU~?4&L?qXyj#@I(nnstdD;=sQNmo1Aq3ARXBY}DiCYsD z3JE0+mwzTy5IT(rax_Tq8QpwnCLn#AV)zBsHt0NTYh}!U}MvVBCkZUU4*b$Px_;WZRy-U zKLu?H?WHM+f>syDOAx5tbL`~iwY69x3W~gAB41UEMDKIA`QF~eZj>_}{@31I>HqbX zY|fTKid(+Rc)32OTClc6?=!HRd@J*GmZOgVKsAgYC^seRnl{A6+t@8a(%w28gqi!C zL3z&@%tl}k`KKU-8Zw7smr?xOk*OfUNH)wv;RiAX|2yZZoRDvj;BRkid7b>Y)71Y8 zhV2ztLo62`KRlOytsV0HF<-RXz3vk0mKXVHn02{(cpuN+O4$ z#pS;Qmryv}H4kB)@kpP;1DVGg3t^9&1^vX89-tJE?_vpLGHs~SbdJl~N9AU$=7gNX z4q3^g?MkHCi8(Tvh;w0V-)MhAfIQnKyN~D4ex(6k z*b69T>5{g0{as;LSSVUQ3NVjO%@3+dTdB z>S4{@@3XN=W2kY3EzHc#*+F-0#kGTwm448E0fxI?W@Q;40G)n%F9e+4gxuWRQnwfN zo`{b9cih(2){=RN;k^gylgunE3E(1P*JNPGGjgKPypG(Dj*c!fJ3lwabqQv1D?fJ` z{m{}vMZ)NvNmsQ;RAayV&h^KuFZHkY>*+{{{|=a<8JvBN@x&+qqee^{xvLo=ngENR%Mf5!STpjLV+gqr z7Q!Q+pa70)^}*%2@kM%R$NYR_y#Mk!*PKb?C$`8LK_m~F49cE{%R!3+pekq$A?LZBfHGlkW% zggJ{SC4o^|2suD;ZjvBY7UWY@uX&}DbwBV;OH2FI@&f~PVSe6OTvOwVf0AbcM!bl_ zN`7DOMO)DYP0{XrorO-Ln;A#TQT*JT5C;#B37=JaVMRkjL%x@ZN%rTjenJN$3L1=friU zcQ-d9`4hq4z+(2ua((S@JeCVS;a$Vyl|kKeotwJIM_Iu;4*ZPNoP(utw3Ng#!VPxK zQrQ=9L-PfufB4A<{$US(XcM0Rcj`|9>M9uKUg6@m^h7k$CNsZfB{T|YOTT1(%n`Nk z9eIlw+2X~&J~s2aijPoq1s}va4#1(L!*gU;XnpeMyO>j6_=T=OdOv@DEFF`aOzyBV z>q_!qUirDga$E4y%2b(2aLdxx(ZjCgWg~ypirX<_o@Qpb)2s)lT*!GZvEPe&dwWY~ zc`w9NRB#=1QdIT8`FD-+u~A@d zPpqB~+#fpfxfvbyTtWInx$HSB&ApWYS)mw4!Z&+i)Ux?SyFE^?Con~j?aO}E`Qv`>g;MNeM&Nqj>&7!90 z>pkh{$zN;{aEcY+{MLSLer#|sHJdD~Cpy~Loi())feL?QG$TUH5JT|a=4g9%c&4T~ zm)<0o)fioxc*n0XJo-~6R?Zvcuuys!EMWLlkXV6`?^@Pc1>p$E*GZDYO7P5I!ePa? zJnnE=LlF?{*ha8n5@uvRIQjxk3jCUE{F{cEdF3{MgcxL-P6fI9Jr8m7Gbq578A^b; z1N`=bm5$fZ=KKh0a?)!%ka{RN_zm^!W|zwqi1ly^Lc$>J*^P})eevf~mI=CiT(GuJ z?knHB-+NWm2|I78scV-T=;;kUlTYSON=oVwIj=WSV5C|k^b&Oa(RO`Js`DNU?O@Ku zn*(F`s0W~&zS-GCA~G@{v3pjVstuo-nrCyls5NBP!SXvjukj?o_^`9dV2mNfy$^sU(3<4gL5@3?l9KwI6&7~u0I}O7&`?&^qt)ca zWVzI?>wUglt;iB{i`o5Te+i%Ysc@j_u6btweXX2CAWVuy&7<;^Qli3_n_WJ3CTVi#%BHLRj5U7`2`e zI-Rj;y5~j{0>(&w*it%d^KDx2ZZg{Kt^}iWGv*A_D+`YiH@T~A%m_A|gc(n>vk23wOYtLk-^HL&cevSv?o*n z()^nik!=xg61G3Ywz7b0p?tYxiOISpzvzj*AI&-)oH%#lk=Z*?50G(ur^zZ%CKU30 zGT-F`wn~Gen<9gx;V8Uc!ij;sp{>Q_gE~X@aXM!b91}p z2bYq3cWvF$!qk#go10RoE24keKA7v+bMd_{E)w~9dSzAB#PwbP(_=zmo%_Uaj|4AD zz7^Q&3Ss_T^c&y4Oisq$8Wy2&*PWuU*jQh;E9&l+J^=Hv=%!lWEt{1iDW@oDB>dH6Wmnh)U|LoZv|G{%TTgSH|7#mW> zygC36*rTIc21Za!uKD~>Lf?q7be>=e6XRvw?x zx+QhBrqq<_Jqp9>x_RH9^Ci3KNN<&k3n^)!FN#mfH~2YLvSD1^3nvTfgiK0B>cjfP z&p@R@g>K5wQ=>beMC2;1D!%s%7E?I%anm8HkkV$yx%Mh5oWW*+xgD*h6LxFExerLk zwNpW-v!9)AgPZzu&#g(H8s}|u^#~j3>>xj^h0A>k?<%4yn<=E3il-L!(+dl$rD>g2 zUTzfxEIOsvHq+zoy%n`0ecC*N`VD!6-csenTx@XY2A*XYB`hmT@&H)ym^#Qew4m*J zo1xUWb4;~RA(P&Iy|*ZqWw#Z&bz--CxIXd{Wtt5;?u^0cKvzpE^!#iQ>2apdNn_*1 zFDVV{gP`QBK4EEtUC;gYTSskg zqoR&cD5VWw{>yUYzu~5B4{vayF|+4zNRQi4NprmTB$cor-#~tw;lL_py|N@@PI)#n z+tAW%)h}Ea=4OWtXoDvocdy<3_SNy{nI&9;q%;BgSv*D+5#lU(^@eI#zOu!~hUHxvSC=Wcqf1|9GBh-_COgn?AY^Q)jApJAN_0K4<}1f(sH-FS zm?5!URAlp^JX=XabEX#{PW-z2lO#m-BqSt>INRIXMxG@Xz?nJ@=t%>u2Gh@mg4`=g zO7tg=`Y8|i{l0;?_Sx>@I`WRqTejR! z-NirN&oBrw$M zz6_heCL!6h7KGR9#wR4qtsIn(>i&CTfc_!;-bJK7Xzi^54l?$#-nTrXDQAN?De`CtAB9w$n3^LmR%peCU_ z7FeY1j^Z zC3vlD$8|;<8yihlL~DN2WvtksWjQ4hiSM+mtSqgZxOnTz#ux*wlj7UJz`k~+89CBIhvC2&P=T?-msG_wU3fA&*^sJiblJDi=OOx8LZ zPM2d6jOPR-d>R`XJed*Rqd1olKHgnl^NJcv4Q0v(S}O-IozLwbQnm6SFZXnE#qKs; z_Lo;woY2j3VH3T0G3zDVB>~{hQ?wN^mm50q+KU9*T2@YCS*dgbCkei zlgrP?%WKN4Q?K|OJ+rB4pk7O~ewBNTy~)EcFFZMTOH=|OEr2ZyLaT1aVHn$2cXe(t@c z#(+AIaXb@bPEjDAp{|x!5Md%gDfIV82{=Xb?>+3o z-2p&r(^|b)5REcHn7v<0_BpFlxh@wOf{U3$*l*Yy!PKRvYi>AjhFEBtM!CI=sHyH4 z#v3aaxu__o(5CEx6>ebE8gctmjjFIH_6DB195q;`rnz|MVw?%<2s}E-wYsa zWjxgL_eUGDL>wF(tStA$l+f`D2*_+KvCpQrZf#kDx3IB)_%1H)#{lQ_->$O@Ga(1~ zxEjYjgTgc&hq0nIhAMSg@_Vb~gg#W_Z5#1#$`V@@fi*zDZj#By3djkZZYfh?$6wuc zx~3K-A&4zVI!K*T<(xIm&nO*dd3*hDGgui(3ppv+7jLdQg>P(iUXNKPv>jyO{dz)r z`XO`v){iYkPdK-P!IP>%Bl=h~Trer=Qv=V#k3jb8JwYkZ_5wx{iq|@*y&!l}M zd!$6{OS)nD7W6@6$=OPu_YB-IZVmqy+1Izp$vPvWqc2vdkh>{>TuWu(oykCQ+}xZ! zb34`s2JdCn32?xd)fuvcm7~{`mVV3IA-;CdrIAtv2vEWCHlSX{#}Qfdk%K+ZoD|Z4rmqsJ(vL~NcFLCW za&$pzWv)3J63ET_MD0Rx-VhXDtN^YrV65cUe8LB{A^iGg>@%y(YGArFE<*qaWr!CT zzPGAGA}^j5qfZcfYzr67Gz0)b`R^{gt|<#PrV(x7s=7J`@^3{&vPaV8Chgtr?aSkH zI)q1V?wA*)!HwINPo;|8HTg-Wu)iC`y}Z3mLjYJ+~X5ct5)$#SAV?)R|aoL6BNEcphZ3u(FEB#KdHN=fSB^&iluQ z4GwDb{2ZRDewoYy2~h?jttQmk!(+S_A*cBa(ua<0uW*?Ce3+d9`WEBI!~NZSw$t$T z>LdM+E9o#9cnuKaB_MC`HFWF4Ykl%^pD_Ggap6C6B}6!Y04RmQ@8{oWn_f*^ZQ1>v zTb$-A-TmZWvSFEYuak;fl%ZVFpv1+dbM0_MnQjCreCtl8K{Pr^u6FRF4iDvPSrm8I z+rlKTylA&)Dnju|U^*;~CG;l;5=2?|5BBwF;{Cz`yCOI?CTWa! zTXILe(MQiwm`!1BS8~>eeM9wo_ww?(-;+9Bgl1PO-yowYL>T_4EOlw0HrD2YHe0|< zMh&l(b`9i-{)9ReH^Nw9tiol3`N z+$4o6H;PGQcmAgf0DE}oqJoJNw&(+6jp}-8ctpe}!d_}h$~cr_TW@d4_(^4VZ0tzo zdZE2VmaL(?Z7CC?+_OP`TZI5olmAb>YI$n>x1_?vzZKevs5satX6bvsyeb%JsT|?e zc$b$It-A{tleq(K5q`F}x%P5*)nyIKHGqNEOl$x=RTnE<&U&P7Xqhc60; zI?InQZ|1i#w%^A_mXw&41o*9g&l8j%#tjX<*8d!-fGVgzxg{!9EfkX>@@&T!IXe2; zcywKVbPN`soz1uXb|x=x3&c5dU|>@yo2`5tAxdvLzh$iJcBQN z>@3^qM97_C^FDR=#!C$?T|8Dhf_}s#FQc=6{8KQ{pYSr?0mWUF=uHDZZB=ILy1Iut zuC{gmK`jm+(Ish&3;$ZjY_kvMprg-9yLj!cIJ~fE@annIPB(pP5W4_= zsUHsG7JuwaA};gY&~sFjP@%Xr73zprD{jTZZtS;y%2V}p;zIal@51smV%rn`BGjs8 z3EkY?)t*1MQaWyLS4vc@<#(O4(}AQPWUyx;V#($ZZ489!D}pU8Ez7_`UO>E z^M!!U%I+Kd-aXk00qDYsy?uTn*kvo3CTPba!}pv{A+A6LH+OaY-ufG;*nP45ajNT% zDK*vAeG@t#804=$jp{Fe3x5hnI`D+f_dmhaRm|4+)c*sU-~yj(#L++O6lpl8cP4(* zm}VN=^kZ|U?2X!MMy7mKW$Yup5_y%s7_&8zzaT#}DKOaifg|#xjynlu#Uonc2M#e} zR!qTVZ&6^;we48VU75;0jPAer>6hqaMe87ibk@Ab`ja#|o&t*8D`4^cAKC_QTbwEl ztjGoiUD(fK{aJSq!1yKZaQ`f5@8i=ei#V&yt$#*TY{exarIRe{X-p8PNh#*k!9WPk z9t9l|Z(T_Rlp1$OM_*}aM)~jl8dvrS@MhMGWZ#f~ z=bf^OLQQst#!u9P2 zFs5^^T{A}mw=YE{&Dkixo(*Uvk-S@c7tVCvvz%}s+dg{zZS(Pk2@{2XDJfR=3ce>= z+r{qzDuc-ANvsrpNr^MG6Z=@3zStOsIBOlvvT)y9c#tSqQ`5^B=uInfj`Q_tJUctH zIhbq07CZfXsLXklv|j_bF;)1>!g`eo&v{-uI}gix9d;50C}TSQ{9$ok|J@ahLp_5^ zR_H0zJ5Vd`gJAz*4tlM6kb;7Zzof3T)D(PEy4TYgCMR`;PES`?AC`83** za_bL>hOV2KEb^e9I>J9p<2ZXxynGsc)YYT#m#O!aEQS8r@F0~&NGH}SzALQ4F=ai6 z_vjT%csI^K^@!WTsdV)RJk(~CuglU8kbCUr;Iz%%!J(+4=Mv#n$Fnu2`>Kx8?V6S< zIFAvn`5aDU$34s%mt-DzzRGL|=uQB`Y&~GlNY*@w*{x;-xUIm2R>gMdR&>Z+&K>zh z4`~RPA`*fd!4Vs1!7*mqO&we~VjvBMYim1c_ojn_K`c-j%M}-D26?kE7);yf zSo&)M^=qqJH$~spy{W4xFV}encQ6C1u=!+zo;f3O@#CJHnw7o%`>oH1Z~PMyEWmQy zSvWgBZc9v}O0Z_+fk4QQ;t;P8M>Kw;Vpb#hGxb%>aCNbT1k~?)D$2A3N{hKU zA>k7l$*(}~At9^dHBw)4Y3{WP#dsatta>V;Qp33&_QlM|I5G=j=*r0>O^ed9;!jE+ z6(0jw$1NuwDl@4s9W7iM7dC1pDId@qU3xEq@ zM!?IbMAxT9=MaWiVfuRaT zWo-c4{L$f|PHEJb^qbOjI^Ei}Vt+sl?yuLRt9%5Zt@T+OdLVwsv;EbB9p_&g<3)G} zkn=tF;nC4{Bc9h@Csv`6;ZuWwp7mHXD=TyOF3w+aI>aO-NX-*NhY*MuU` zr`bvV1FM(O(dnkvpW{@jgVm7K+4u4NZBzECOu(b_h&s2NtH1zqd_l%-8V{3or=?p8 zX$HuCjwiM54J)%>GE3f!%0*A5@eVYSo}c(Wy-=x=qMjOuwmuV9p(s_B`ws#YQ12xD zDknn_@V(pzLT}svPku|~k|#G`ceP<;`r<|4K=uU4534sXR>NpC1OpOEK#U4(1m<8u zVq!(p>QX>ADXEgbkl0<&3NuRFQSbf>oS*E>k0Qq(k7c~y+%G99_#u6KcC5 z6;vXQ*pmda=ItG2-q#b?RL9Q2@fz=!llDLl+x{&YOZGTdZ1dX#p+?^s;%zR{Gt|Zd zZ+M`gW3Ttwk<-8<$51&ia4ez+z?RASb!JuUtNN2C6RBJKLCjhf-}$b7QZwYAqo%UE zPrkWW*a#c}tU%r!vS4sZ-X0knW2*5pBEe)Fk(mE378Ms4hj#j9)Lwf=FiVxw*pZ`I z@L4Sii`uG~{Q?||>H#XTGYkgeoU&HjUyhHt|MzF+xnbVj5lwg%QGRZ2LPr#YS}5U)R4gO#6q#Qw(qKOwgUHQ+-eJVC)z|Z zm|qPMeU#+lO3%!x=_##npYV9k$!lt3GuieuH$QixGVEC7ak**X71~b4RKRi033uKO z2)bjQEA}b5kQH^ixS~S1_u0hQm<=dpSnlQY=e1KQIl1wjZqkaa&EFDa-Q`gKf21tZ zOI0Y=?Sd|TazPinUXp(UIR7=<@4t{y&K>JK5jU?$x9497m?6D1FjfJ1FOr$A?JG?TgCaLK8W49 zZ&g0W&$L;^)T1W--pswstMxlazyn8VQ`wo0B2q2Q`DQ03#9(K;_avC8OMR`@^2qBW zYha|WVZJA&-Y=ckXX;Lk;;O2u#zp6XHV;);*6$I#6neD@D_yvZpT}YwiEeLKULMJb z%imb+h?>TGU+Mj((WSOO1qQJw&)5ci*F0WVm*!hK(2z*3Q0>Dt@nU4w%}${x)Qej{ z+1~b7n)1Rr2^-Yzju6x#PTjhQTB#{0KJ|s|M1X~@l8LowyK?_e7ri**%tbF|{l6;I z|Mf$8JbXlSb#ih(SJCy>z|!*1ybJei!4RYP^{xS5qFrsM17r++Z9hR3Nci!&1?lNr z2Ofmm@Ji4YqCr72WhwG(y#qu_UQKiSXzwOP?a(Hj#KzpRwj|8$l* zVFdUsKkhk^QwgCE3WS}qQGe-B7YsooX6HkSB%4h5%VX*h^xp4c8)&J6m?Vj<)XLeC6JepD zWX{-$mj_$3^%8JD)b}2N9&~?Xqms?MDgz4TGspy{x*K-Nhm@1q-q8{HDPwnjmcT1H zuRiF|frDJcMXd0qw!%|}Z%t2Fc$ml&Yx7?!T@2ZxjBR+NLeJ~ns|Olyp0eDK6O4ad zSshC|C)deURblvb%+o9({pULx1vCbZIBpXV5V)^1ltWs1e&H~HbMrzf==%Kv?l1h3 z+tkr1;CHaxfDu&iFkjB5JRHES=DZJ+D{R+402c)%e*bR#%lk_0?x729d~ND-{-XQOAJh0G4x5RY8BymF=Vfqx1AxC)gqo64eiSqjhZ%>z zC;c6!F#kiTY_kUSMW}||BluVABf5k?IkC^7KXB-j3X__by1u1yqYs~%@pQy6D(Tv0 zJ+ZQbBA-97;N|OUY!nTmSE8hpIxVzlxL9YRk zCaWdJM7vz`?2-?-e;r-Kn#YrT&re$1@74^(U9=}o-0x-|}k3KGH8{ z#3wawR~ZC7#8-VXS+Aa*GB`K^sR2ja-%6<8fl(I3UuI%tywLl8_7i~mI@m*Y(_U?x zEt(W%09uo+WQPTZ`w4(m?dz??-0KH4!I$On1$T&gbwUQcmG^2L$AmGk1q z%YIquM5?4i2PNOQ6!y03yhX|RkJ|U@1@_*P8}gu@g(|dv{Ae^r*5s|Kx^tP}J$5&Q zfZ(yWmzS-~q@_$mM*3!AMu~g`2p0$86amt<^!?O!QC!4E{Z|nM73CL3R*KNM-<1P2 zrz+;xXr_U)|L6n&$2=f;kva#=^O{TMUw^d4FwST%E*p#bH>rqpaB1SGM6}7bF4jn!XwrQCRmwOnZ2^K{(;Mc0I9bql) z+7|oKxdm!MPp2y2*5Cp_mt?1c@^ZJDe)}4~>M7VEuu~|+W(slzYVJjRUtCYG^Vn;i z8!<>FMdr7WucN=O5b7vm5I|HcwPSZWQ-t;r{nB`hR}%Ayy$L!q3W1khk-m4>28? zScwlX(XC_Hp$7I-?XkwT&toFQOUO{K>|}dYS)YF>zbz?&9RIxtW?=qs%zdBB3zYIc zH@Jt?Yh(cL_hr0FUfDlpkaNGURB>g0FXRBczJ2qx!L(PNV9NbzJ zqW7G>54I!qDm|{*dRZ(!GC&fBlh(sb=&eC*_fhAATuv&wBBFO;ZK0^_!#AM>c<&+gu~!q_b1&j<%VOv|C7fVpq{!wzx52NlwY@Ds z_BjONv7oqyyY7FvIGFmeu5L(`PhG2 zsMZ+LsRE0~cfDnzncL$eq4k6XmdKfzqOSe->Io1Q_L8nEDM~eWd_6oWGj?j0IPICc z0(@E7p;jwZB`bQVGL#Y$Wi|Imf}rzTzhn58_3=+5(NxZRLv3^hg#q_S?A&~PvA*U@ z(?31W{?Mwaa)@0h)rZ#S1cWRT@h^v3+*$DFka5mUN`gk8zD}xK?YU+3X7PvS2aAEP zf@Gg(%lZ71<&&KF;FTYqc+;(%9XoH6U(Vcpi$aafGMg@!-cbr`>Sb8I)5$9Y(N;f4 zwNPhvBtO2(`--vLeR9qZLCd9ki=$(n>ChR9GqXFqV&_;pE7>D~A?X03pm5A6-jV-F zbhDQmv%LCB@#$f9H73G^_)WtLgvIOvdkc-1Kg@pd;Tje|hN1c&I$8Dt5qDQw`$Z{p za`?@ELvNhQIsmX3l?om^7UPI|!3n-Z-8MEMO+DFKY zzPCN3hRELD;Xd*QFC0~R?#W`)CGIAYcobQbw4F5V$A9s-y2&M` z1tJ|SUggiXCn#zQ73Cr_rn$*j5h}ps;Pz#$G>47Kusc-l2wWWVA4S_67ku<$SS#*g z3YIHLDHwj+k$M3#fLN@@fXgwD^hojC51xta+g8t5H*8`L!L(=**BPH{c)U4f4GHjW z7oO1Ju~_i{W9hlPN^!2&#gqHN7vP6mOvxPNsLg%FA^Quq{!{c>%|G~h-zRf%b*p;Q znF|**6;r-$CaYHWoriR1Ykix7>+5)2ab4Xs1qH=3*ViV#Ew%byCU%?5rV%^)(F}1e z0yo}yN&Bw5sL&Tz2@47*l*KY6e#6D9&h;vwq9bp{g0Zrsu4J*ez=SmVAh{&;8%Vm? zy~0YG51Nn8BB!&hDT`b?ry>JQhaQTsQ<^*2gAR4OHVX7Z)0#v>Rs?6jL2;h~^`u>% z9W;CHA@ipw?t%35baQL3TZehsMP25f8~%(oK58u$s`IsR6iMwcUsMkE=6$EM>Chne zq3}iL>j6=aM!9$|2+pIq+0A57C#t>v&s6$*d*fLp^GVq0XHt;zr5}H_y%hI}_PtR0 zH@NxwZdqlBY=aiq`L(a?r)^F>#63I6x!vLi3~au~>)&PWi%2p1utZMMD+?Qp`ya=@ z1#Zxnt}bz?xOYWU98vMxf&#xn_+5uU(ZjYFkJffjeyZ2Exydhn?$yLrp?DHc4R6++ z)Lky8oNDkw{oDu=X1wyX`uJp{U|Qnq@xcIWI!@+R{mD8%h9}_h9=Mp?8LqNPCWo2 zq$Sr0xi17!tBqvb;o4drb`Y8U>y^T90}Q=U>k?VV6z_2)6wobdHlOJdhY$T7!{|R_ zjsDnq^3nRDqHQXI$7*Vm7DSuD*d!;4yEi*cI!>mT+%+{Tmd34j34&X$fXUh1&0c<0 zx5wM)oC4WVG53cB&?mu@d`*j5;o!FV#R*4`YxWII%IET+!Fk{yqw)iY0C`uh*V?pD zUr)~ThosZg&%FYZx)S=NCc%ei=Jw?N*hv} z*w55jVP-Sy+AY$LSS~Sbx*~`lp$8<-C|I0Nq4M{1(K5SAol8wYA#U|AEyTAeNvzx3 z1L?g1vz-9ag_ZUxiuz6sL}7U^`EEsK{VPZg5ym^a$8_$|0;7oO);*1qtNkYg*W3-7 z#^=A4m4Oy9eB`n{_4fTVFotb?khX2|Ww#^4BR^39;MnyCm%q2=jd$2qzZwV|n;1D1 zEv)n54NH-gz{A!}3vuOIPW*bTY2T(Q(jjP_)~CO?q{L=>s*1i{v0h)NSkyUbIj!eM zzX6i_I&~%oOmxLgmXn~%2(KuUzJqUy91qu-0fWI-@Yfd26>@J8EDv%}nk%y#ADoG8 z7@wYfS&%Tk4vMr*O_ax)AGHP;)VT>BmH-LOwxz8yqRz(N{_=)=?YZGLtP--$54EQj z^^`AgVlDaMe@rv@O&@6Y7KV?bGaA4~2XDSE-=O_xzs4+xV&7xxuHIfrPe+;ZMp{l9 z2frOp;8zVjnVDjt#)$m0(c$O4spqSECPB8Fq2K3j;ODT2Lb_i1Y|6fEgsxIT?pGi8!D=6b&!8uzT0>dO3$}t6s(ITKdiH{F5`>!fg@)N2nb55 z*f+U09J9=VTL?5Dx;oWcC)N6?2PUVB^YxwS{8tN-6*W@j{v3+Y>h{5v9Fe#X`mKhSXtmDZ@r{L@v&U-((9T4>gF*>Y zll}z|HJ|!yHo*JA*Vsfgov6!@B$6^7$_iuFqzT`N18k2`q3p)T@4ik(O~*~uxv#gd zU#e_O4uOni<4d-%=))=~s3ufTD;oKbO4e=>E?E(HzjPDRWS)U3*})t#jt$6nZ0cx# zxPsAt+q?ZRaD$}BWa@L@Zj={ys*+VvQ7K|=V}tr7;S>N7Zv6JdGjN!#72Sd+JGHfI z-e9@b#g;F?MsB2F6fG;o_ZLZ9zVv5^-IFu;0%}TvHP1zmX9r z{1~Ps&)l$5{ADpr_9{?QANpKtV-TR$9z>2|$gtYfp~4D>QT(lhNb8`9k4=dJgAg~P zAfl|i3p9l2v}G--4FxP@K-YfUnuQbC`k|KM?1jRSd!vnaIDOBjJtkSOx;lw{ad3pj za(c=%L&Ee&PxjO6>wiXaG#>>n70K`J9bcP+VAD*Js8;4k;lJfVCD0zQQelG$KBjRo z7+iKfIEeY1+*r3Hb0mMR@FRocx{rMvn`fxhBw1Q1gLNN~>H_KjbQ1*1yfG_&*w{oT zLV4MOiaT(A@7>8G7ai6ua1_Zf)C!*c?n&8FWrJ<9zqh z92J_}T1_0IFXJDv2t-w-AX}7D>~GeQw5fHS=y10mErQKGMaU`dF$fqB^ZCzCgiu2g zV4#&?7@qs;#@}`)cQt6Wv~QYUF34JZ{6+`d*bG$>O+M=n>|IAFrXFRgHTMJ(=Ju(z z7Y{BRjMqf35pF=YHI{bCuB4^f{m$T5+23XVPO?h_r`PC0b9cqIm6hbZ zVzCgyylewuK4;UA_sVlmxQRuWyNLETHn2ew>|xlspg*{h@&Qb+(F8@i`%a#*UcDi zr$_I6o#@s9B=4xd$Kwp7>}iS5>pLMo1j|j>L6))1*X7}EdVs>B1)7`;`NwJ6m>{{p zpo%W}a&x-$uljo0uTQT+Sj!R)!?ba;wVpQHGj$ejm_S2s!f$@ZZ4vmwJr1V7Wh-Pq z9OK|b#OG_GhDkfZQi#RlcM9&Z+a`N`X})Rxq8*!E*{V#!l+;m`mlV!}ZkzAOBquip#u#+EL=BLSN*O^4 z@bl*a1Td2JdhW>6Al!HP4=jk)tgIAi*3v}oy^KIV>;^pl7zX+aS_Wt~&YYZ`5739x zo?|2!Z_Cc)TcueiX-j{)o*Ru!O#GCKe|FY#%l61txYCc*|F3xVg_Hy`xs49IxTc8N z(7ry(ppLqE$$wOD7HBk~Trf8`{B2N{@Q4S*^c| zfFJZElOw3_`p|kqZ96z;K7PLwO^Br4H-~g%pig?o1yG>*qIz~hsd?gPzsdYvfo4F# z@bGZIo~m!_v{FQgdppOCE{@Y>4%Ap5?mGHjv2v0^;sW$JHZ_QI|@@$WRBr}r!8QO^}z6EYM^fez|ROG?%#6mc5Vjnts-^^(f0Ek<| zEX)csb7(PUzjG{RTbTlOcEp9R4mG^vjTR7|HhG0RJBS<+RSuG&5Rs5r!Y9K9kxI?c z$z~E^3wMq23cN8K+Fvj!sX5|ga1e$Xazy1CdE#U}qlyPsc+xQ- zKY8q_@!J|O%JP)>C|n0FOYuR@->31Vx(VN(=gHh@^tH9^oom}a+Pi1K@y@oe$U+|) zR1GJ-EDA^HA9@)Y7IGWb7k#_EcoxZoVPx06nSE>Vp(t@tx(X4k!#j>>vMbi z-N^kwjaI9lKC*;YgBsN;V)Mo*wtH{cz(p+5h(LiIATjS)1%1K_{3?AA3Ox+y%M~8~ zu^MLQvc-^bkRDB2`qD!*U23zETI+4SnVZNB^X=qh`_jtS8>2f-M5hevOty}~VtOTq zDAYmm{p*dDqlU+wpT6mjJ`c9JacJoKBAB=qu__Ks1>d)+OJ=MBQ75b9Q6~z-dnt&M zuE$7$Ia_!c8?KmT2?$zIuVyGWkW?&$DkSt=mJ<#wW$^LfC;5H#5gu9XpaDz2uy!^Q z(YcIUSnBz8C2;l*t=LkD;Q(il?BosFTx^f-o&`Pp0;(cxz?>~^f{{7Mg zSQFB;yj1;l#~3p)IdS(u_oLx1+Kp8>{;9N`tjRM)HWpQ9RnZoijT^eQx`GI2pQ}~o zCFAN<%r(XiFw*2Q=L6^3+mz5Q#{v)-EZo49EC~zLQl0+ZFt*9LJ@2CIz19@s)yE}s zdN0*+s%aoOj8kE?ek!HQC|2B=81#8I?e)%0Tc}5v-psQ7C2Iht4*pliw&t0pWrHKi zt`m+Zr^vK>qh41dKFZ82vVZxqmCXs7HqW7VLTvRJLMi5OOqzavqKhsrUOowhoKma_ zE9pxuA;wRAOY^=Mlp0LLpg!@~lzuT zByk~S?qoU9!ItLy=S6>%ww9gHBC+MY&n>GP4LX2DUlVUDG#}^4`$rXTfrWG-pLL zY{Uu;a`c1)B<6*q0PPR#OPz)vEiAAmZox=D?W`{tT|tuv2b_;Cgzj)SUVcx zV=k!^?54Q*^U)PHuBbQ6aiso<4Twzxd5?ejE-BaXaMnKWZHB-6R|4g~en=J9_)COt zkdb_0$jyy8@l|feOI=oDxiHsss5lNRv-(8F6j+ZYs4%Wj>U!mRxM?Y7(!IPwKNqt8 zA)Mi3R3W>d98{@zbRU$E1&ijqYpe0b6x@IQZsmX+AC+!qW!1$SK21*FO+`h)3~Q0E znr6?#<8{6UZU6!GdL z;qEWlOKn5(*ci7SFYayv=PmiL@Z(^Z(CCNjW zy|XIk!R;ciBNM}j#{L+-=gVJxxyddgZqRo6?JW>F59)y)U2y-Z6U*UVdW_a8jm*=E z*QOcFtx+ANY%uwLgKvj^G*6PGt?Xy(>C0a>G@4e@KahVyHv4|dD7MD1PB=_1aM;C? zUl>PLl`65i0x=||dh6&@)f)9>n%&;R#zxhM4$ZG6s2&Di)r1FhT;8jp^o|8kF?1*S z;nR5glQkD#KHQDGc@CmeLB|v@C(#t@R+Efh|NA8r|4AZU-#wg0= zxX0&3oZ2pN5iwH-3tAsN+#0S|$optf)3NI+)9_0<+BVjD>L%B^y?#AZ#$`*BZ~&3> zc{s*H9qO<4G9quYVUEn@Q>oZ$9b{+slJ?RDyTH!r``!adTZMY{fU(uM&-kZ<<-^(u z_Yk}F%u_0m@kgicwG~vI=f4uNtKDSXibH*4*bkFxwC;ZByf?!jJ=bI5;83CEK$04| z=*b>?G=IE2>Cgwj^6j1pSeaRfZen|nLgbg%iHdf6(<#F!iw8xjBm9JlHP2{-;dNqQ zozKFG-aP-PFuDiQWuR+i7MXfJxX>&LZOh528OHqpm!mVYrAm3DZIS$kU0)s$<92iJ zHg(Xr&3W!kmz6yK2rnYY4@4UamlyNiLiQI~M%6Ez-j-m%oM!e=>`Z1xH0GZ#>ic*R zoSveA)vfl-yVMVg1qn`jnDG^{m4jqZX&K@tHQ(4;jh%lLIzs@0V;6?Ye9kHvOmdto>InTu{29Q#v#^15*Y**JT%^OaBW(PLI-*s0d=aS;JNyF%F#o)UW)H~zlUiTSbqG1F6>%lQx{ z!zB*Jg*AI4Cuycu+;8&NPV*5+8HkVL7rR35IA7WJiHXyP1+UARgj<8Hm_|JFzQ_*j=wIHz?e7_=_b63Dgfb2W!5zA=MHJ%+! zTSi=Dvx>lN+X-P2QyV`34gz>w$~zBwdOq85F2u&v&p!IepwjKM-S;kJaHA=RggC3? zCj;gN$>qiyjr-#|r{zO(FmRma(S`QC4MDj)mMd zP1IXIutteVN!0S>l^^Y!G*ojtj04{uv0%dLg4}B3J}*=bdBOQ1OBKXptMrHDfq#M~ zo?u=OM`rz5l}oIuJ30(YVxOt7Y%o5byOo`UwT>B=1Zw>D8h)WaED(%OTh~Gtx@tg4 z=cxHvI)rF>9R8Ov6#efz0RC5!^#3*J2AJY^5EDPTy0WtJ=upbc$Y`+rS2Ag$l2S)+ z_c~V=h?XbL&wmurV%zgt=}(cYflf*<(6Wd#Q$<#dPfZjSz3CCUBb3;|*WNdN6u&3l zQj*7be1>$kXc%lSO=}zgfE;FG`T@S_DU6pI&8wxaEe@$AATWrDKu#4pebp6uGE_jl zurhk~v)Vvd`xQuaX>H%@7aDzyYbNSo3)p+dg&GSy-Cbx4t3Kg0DWko?mTh>+h~`JP z|A?vfq^XtCAU!%_J$IHm^f9{PyjGudOwGXe)3Z=v7pa^K+Q@YKrT*=58J;(`gEs&^ zEY>i6(x)GScO1ajdcw#iYu3QMH-8UU$8Jsgm5B3ix5sf?iQfw;x0JKrNHvEw%KX$| zK_zVghRTTG6Aou$Zl8Zb9pTX9$K92qSpu-Lj{F3p^7yP0M?WblSKEJ&E?5YYX|A#Y zVyf~7yM=$O$g3NPy1L8A1E%e_KZ}YqoM(u;CwD9`(g>esS)VJpK_=Z975*mZ!D|Ab zXo(ossshT)=;x!h-uPY#BadIXTc_9tF_kv>gvEZ3iXsap+S+`1yX|VXvFhH>XSzk2 zj>?-We|-0x1C<+JoG9(4_y@FHQEc+b-ZuQ^hiw%P zzVn2Wn>O5jZQaW#hol(#&}h{V1na+s6bbRQGdKT})Fj^j&FtdHNfO zI40rb#8-)f^#u*Eua|q%ZSEDG#dN6ao!O6TFoh^x5ZI~xrTcSda_=_x2S+l#HzEf2 z7+fiuF;5w-YG8i2DTKD3V`fdYbe|RLR1~L{W?H0H-LUyL7^2qWXD5*)(}|sf-K6m3 z*6s^h{466_{#*~?L0^AA^6`3(lfKvpLw$*Ogi}(wjewSd>z+;Bl)&U{owo(?<*X83 zKJ`RxRuPChEAPPLFN@Gd?`iX4KlEloLJ42tQxLoP+B*6B@P!KVZGF}+`@Ls^1~;j#JD7(?ZBi~*BF#>kUD<0gk=?5TvK6VcV_lP{YmxX-S{A) zy})3NougOz3pc1_#t%|fhP~HR@^-7TJ8LC$9?-N*%LA%xYyC#aRqJEz7&X;mbjiA zTE#UXj0VjqFpTdMEQl$hA|et%Q&CmwMl>qp1$vX|r)ZN^y8NkGi2wTIx3$-U=zg{s z*ebW%5%+Q(9S^mUF9VZv9;?(K)N@ej+e=daMn-yK+UiE+?8Ie`SiF`Xf}m{@?yrQd zK|w;y(*=uKqsJ5{ zfD~shvEZxmIgVZfHDkm24T!$8vjgG$nU~{kY*!EbXr@(u{)lmbURVE0ioX1Fc5-w7 zC_um|97|5#yu#S@inJMD-SjJvCT>r`H_)Otr+Pq9mc%&@Q!tvz9==zuSM@sk&u#su zVVK7Gq^-QdpKZytEz~Z%y6r?7!PA$S22Z5qek`VIJ6@+IB6-zl>+D=(NNzkpoaC#q zuMM_#!P1r|Mv8C0C;+V>qN()mYd)U@lK|)KkddVqz@rI*W^|x7g^v z;A-@a)_k3O-Z7JSN%eCQDru$eXT?rg-A_$GH;lZT9tqQ#wsuv`dnw$-ex< z^+e~|_}exSN#UR|EqvL1x{vWGqvqzBd0LKkRPo+TuP^QW9P3Y(S?ovV45I_SJ}(4) zP-SdAYtJIhOXP`WV)b50=SgmM!kUqZ*W|}cUBV6grD+9#@kt#1X z?(d7SY2?s_iDvuA4~54Y6e~Zg#cnxZR665}r*CCCcyF?!wIa1oqx z9?5wiw>dx+lSN$AR%>Vsl?w7+=0NT9yS-eY>Td3fKZ$+UX7w&8RX^V^L>Dm*_qn0d-3}|J{DAA zpHtt1!wb}}EFeA#_-;?#fiXJF1>UiApY^TiV=tDe<<-~qPGl{vDf9AHWyAXKvyPd= z1&OsBrVzV(zb~~*$;#S}%!TCoO`UgKBE!B5h~jLr2xH|vO7uI6keq6vmirUelCI0) zy{XaAke$tnC;*6@n_cP2LA>*P;Is+@b#xQ)dsbnQxGf(agDGWXy?NAqWSLD?O8Ml^ zos`m!^4%~e?1|+kky#{iZRWV&{fN+!+j+jEQH`>TvR_xg%C~728@zYa%i(*tC7-|^ zJFLMjQPoDEcJ-}jtkV(oS$dTG`uT@OohT&64)DAk?+4One_}&YI>LnOnO`^*9Az7X zVqYXjOl}HWp-|57W0~Iz4fiS$3zU*KIE^?WBnJd0AXiXyTZ;&Ld)CK2Fk=K)Y1oa> zMu)9|aIWwFex(aP5`rf7DfP3~j?JCGq1obavu>Pn#GO-!nW!Ve-*8CF+(C}UO}-s)e6*Rf7*CH3JKlO5ZDKMpAkoP*;c5XW%s~#noawVdb={7gHyLPjv z!Cr93b2b<*Se+ZaV$AA^J6@UQijrOUP)Gs$aU)8zR&dgU58QIixYKX8*w4k?oqp|G zO4rK6`wga1XAf;!nf23_0yd*;rl<$fAt|EU3-c3|iPkIq>m6SW*`o7Pytj{k@_g)! zytSVjA9>%Dm&=3-%m#N~rb&)c4ZpS#t+b>N;gGa*adVU6?n!rbDXq~jXEZRn*L-SK zV_@OLb>A~a(w_69cW?A23HB*>A2l_X=uhc8mz_UeDl<_3!EB<(NUG1c zbT-!r>)RxmOPUhN4j%gN6xH-+ZuZ~2z1xbRR%cZp7y}vmW0U%MQ4y#1SbyEK#TSoG z39_iXOS|o14BonWrFD7MW>0fY7TIH+9^Us`PO!jY2vt^&k~uXv3Ou~AM;l9~hs^Je z8i}_6WK?;YcNL~{CiBTfyl1mFcUtSIrx^aSe${J+*Q{mT7TOcHx6&THIlQNP>)(!W zVpJo>cXl@C(dYAS&H7E;q58S1V@yiP`aZP|(Fyf&>#?94{Wc7nb>8Z`Ko6@qhNi#! zuX5mj`7l+5(7w#{nAZq-Xn&GhDf$}nF^YMa2_Ws7ugxT}LRaRLXm0TJa;Y*3s;Pqe zAgv0b(yqUb7m2z*PnJ_1(SA0g(|zOPL?=7dA$4U%?Gj${erUdIoF*5aHkCC|_oc8-)R@l$M1RY%cFx>+UsnAR zhu4O#?~vTeQz!b4B9nqj_u57Fdh+^8@^uN5-S$L>>L3!TTx0(?o{`>Ls72i1b#J$w zqSn=C4?OY-9?;#Ek70fOJg5GWaP4k1D+_XqibM9wONJG_*3!z#IRnq7_^n}kX)?)9 z#izv2wpnLhKAH&$h0&!&1ui~w@$$-C=MAj$R^BWU?&vW{^2QxA{eP^zbyO7U+BPm= zp#lmb!VoGYEz*raZ%P@EmXK!XjsXKiN*YNeq@R$Y`F?Bp2e8Jq;EDUW@9Vy<>qfJDNSFN1Ks;k}xP=C6azzMddePF7MAsmPnn$$ zC#30YZ7p5EM2&jKgOcvlq}ti9U%QCMDD9L*9uGNdl(*AKJbx~fOCFn8B7KonzG!1@ zEu8%w5ItiOiLO7d8#ew~shtLogU+WGXKe8*l^A}QRQtH}hJlEh6X`kFcFqG?Yw)<$ z#89o9HfZ;G>>Vjy-j%%CL9*!3U5m;}+j48~ALZqCF3&Z6e2pE`j=xb~rpio~vxOmA zM~7aCo13i%_`Qp)JPN3ieLV*&798hUx~C4$r^yAPt;6F^ypq!5W>8^5s(JIo?U?>H z+k-+)jbA)Ifw5Q@_3AI5Jvm`&v)!^YJ9~qwT4W!~@1D1(`!ee}{i6*cy@WyuKD?IC z1(fT-6xkDHuDdpSDd~rpm+ft`b}65&pPnc+>?!q+rQ%jnD;fL^}K&f?LtGd~a zAGY&pllsDzKub$2;rXlXux@i(_0eik!EQ=f3!mOY?@BQXe0s-6iOI_`7ww%Em3ZnFQoMKU za@o;Z%AAlRFRWKRir8(rPyfK}WkaHnFN!DWPzb(im&ath`adUE{sCZ(hMZS(zJ?w$ z;jwMovTD0|OEphKjrG4yt6+$<9BTDm2IN-At@=#jJ8?TdA{g@y+)q!k#qy0y@~Sdi zes;rbrgVT07MX3`F6vv8IJrcB_V#?=Qhb&1H5!bPCLgdXd`M76jeEkNU_I+yo9fEa zdS~go+0cV*(e|!b`%os2+Gn}}(s5d`J}xdAFAUcJ$8?jU%3M3^hWGvh6MZH-|1ozi z7#l$v@^r|0B)K`yKR}|JhNu?X`pz%^IJ{#@vlHSs*Y-|9N%}*Zk(#~aI!b)==hPC~ z@;q>8_)_h*prb-a<|{dmwv>)SQT6_rVo_FUrB^7i1FMvvTbT`3Kpv1dml1HB#?%wpO*{t`P49EVE z%N>41YlOh#Fq45&SSdLSN(3tfiax+HIIKTBZt)VYzMmtp*Y{?F0Y49aCNUj5T5pmi zk-wh5vFWop?UH)Dj(TQCF29o_`KP|WPZW~s*DR+bpRA0i`Ox_Io+qr;lBLE zgak|NQHxZ!me$+GJ1KHL3ge5zPwg}(>zxn17G7NXvo+owLS*1Aq zbakVOQto+)_aN_d38~Upw0fqArf@;l!gq(V5fxQn5z|3OR4_KQ7{N(4J*(1Wvi{yx zvs;EhB|`U;+#1(M0kyF725_F0zqPboAGA3TO55uW4{}W~4lU}3X{>bhwnGSw()FLN za44TPeOEw+vgYE=Sr=sYVl^ps?WuEGZ0_m#RFJpmCc0YLoo|U1e!ghSJ;fP9VKILS1aKkPIn;_dsJT?{Yu0f4ElLv+4k5nf>MZAP(p`oUB zU^xCkhOye0ug8BO^XWS^#II5$!A^;wyM`W%ucYt*3_lPWzLf`qr}CcOO|_pM9-ful z`;PDTIdE#A>mKp{vjxfTE@(^lUJ~#ACY#wtWZLwSJ~R9qaSm;2LH4tz?v`n;Q z{VlelR9E^%y+S?VLQRnlqXlAq+;%IPwyR)B%{U#;pLiN-l>k2w%Ebx`r@H1MFBSzZ zi=$~)eN4!85@LI9!OdUpJw+J3YIK%IWVfC6_vB67M)h;2?Y)y|QauQGdpxZ9laaw( z6?NMU4B_eBc*;mbNEw!?f|L<>@i_48AQll5pBZg1{$z(%2^qb=!gk5uJjJ7jPJBz? zFy+uUF!kN}?RI*fUkz%!r=dbq&Z-jo%7+t9JQ~c&fl7eUQtj4&nN%O4YB-WP9082M zAF}t38L;1}^x%dK2)zF#Z#*b4;bmVz=@5%=HN;j1@iyR3@r|sdj339ws1I{gPjjKE zg&Ixm)3Sgt*D&LIU@o=NzK_HKV)ZemO6~{FlUYVK6eAslA zr>fU`sdOWq;WT>_KEp*;gTwh^4p)&9lw4P&|H3T;%TP`HqDh?MVUB{NJ9pl|rS`#| z!Y#jFE#jR};c(Yd{(26i0opb*NlE)vDMRu#PUS>Oiv$LS_~f6td(GQrBho>E1(sCm zC-*kMj;-ZZ@EU;O$4Hs7T7pfgnPEihNJet@aEJ6D|1K2^j<|57t(vz$4xt{3`J!(K zxWZj)teJT9c`#W2tg*Rr?7biSK#hcD$3BYkIu=mJYkId76S5!JkBt`i_f`kq0iqt4)vRsy>|ZO1}^>O3%`@+XBXLV9?VzTfEp_Cr5kkf%l$8PNZZT zuB{M%F-v0wkWp8syyvULoJWkN8-PQ~;ao6}W@yA;85(o1NaQluP#TKMpX_y1l}gz^ zO_wDW8kugT44E;}sv=Sz+D6V>j64h5|221YpeN5cLCgBWDiMF6!y?UkRvm%jZ+Z!? zV0)BG$5Np|iSr;<7CsxleQ;}kkn|TurD!ZQyMAzLrdB?fkdJk1=zaITNJFQYpNxQW z=e(H(BVg!uUv+V#tF8-bCO3(BUAfUaT_nCHrVsXJI*i#=a+d#tkak>Rx8c)4|)wKWg^ zn0h+?bOES6hV<(knSEssL~kswZSDeq0=5>bIWjmn|Mjaq;~QkY^f}_G)T5T(6UEi( zZMx}MFuuWH#GG<=%znOyLe;y{t6gkr)^`Ji3vGyahaw%d;~&4ulfn9qk@xiH3ZFW; zi0}9?yAi#@h62gZR;3NwY0u2X452A^M$7n3uQAxY_m%$s{@FF+J#@nMcO;ogbi39* zn@rPTq8~6s^#7H3X~Rvp7{bi-F74IOz;dTMa;@%JT%nr7MB+7SrbyZLY<*^2O8-@`rJCo58tTU+QHKV{043L_O}BL#6ts zgi~A-madE@wX_fNV8CW-S@H?~41HEDJz)mdqjpbMgeR%$)*KUWop7X0yc%8$owt*+ zoeig}Al0MR*)OuxiGsRS(p~W`ig3G|yUuVdz6w-`vlM@ok*l3k(0)Ez2DI4@| ztG_HE6-lBRtTcD~<~Hh4^!WY9uh76g=bPh02?6Mk5FelZtLa=>H@C`hzLIu437@2- zZyt;fIdTEn*ZDV zA&wrseFbgCaVn&{=1W^~W1X2M&a9N-O+UHKf!87gMAy7)Advt8^RbOGrpZ42m;DWT zp|pwnXDQv@B0=9r*ku9(9+{Z$gJiZjm!mI#&UG8Tm~Vy4kA5H}u9wW&P*OVw2IVXP zzlcfTd9}8&;_6dZS5TVQWwN}w;V2hI>)JjoyrCHz!_QyRzDlTVXP+upHlf(Jtf0U9n)%K_^e=91x^*4SlbWu1(x-$UW{TPUU%&$5ogZM#y4 z$HB(r8qlVo&<6(x7KRiQlz_o-?@5B)g_7YJp3D^d@{c@eSY9Qdn6viCtdY9=_w( zvJmS?&gb^lbO{Wk5|WZ?FG$oZ4*&95XZPn`2sB*k6($GU_T|H|KwdWB2`{+nGJAS+ zMU>T!lcRa`gyDl5r)DJH4i4W#!wedjYm_w`<+qqr28HEENHH?xLeD|pwr66D0x7))Mw6H&B$m5XGTYP?ap^<|#g2Vdq4}qnGWU+ge@`%Wee54~$g}Y!c^6r;9#h zuN(<3&m79N64MxRt*DeKJStSPY)B>@YBM)CpPakb8xy$jF(M+uVh@Y0WgbfjSwH$d zI+|U$BT?%WCnfOU0Z3F|e#GjIS#7&HJ69is30BsYEi5fjO<*T%CTwFSkvh5G404kU zYA()zX$~WN9B8*MRw@=ZlNnAN+vj=uDpGyW@eAWLGCSgg%GTL0x>|@noaV-56`vvE8;0*&ATyqlp{`&Qtfr z57#;)1JHyzwkh7+`-X=#8>VQ^sU340ap!HJwo5;?*8}XuC0ybln{4}&9emtpF%J&q zn*a%v4DoJrbLQqfmXNTp8nMmV!QMKPh86g!U5>BXrxbL_o6Nt%`UpnY=;=GRvZn?MT$8sg)lGQ>k!T<`miahH?vO+K<1sG%ktG-OtHqtz5PW;1hD1hl@-@puD?7zKi0z6%2rk^ z@jl|&Qz+I&{3FA{(>Po{hqY{?LKEGvADg*C4sQP^Wd z-)+pT%CSxYKj9P+J}}6v$TG^xoHviDBWieafrfl{TlXQqMlLsKy*Etz%w9E=-#aqF zui@u5M&W^CzF3mOK=_dy?vQBLfru={6U;-Fo7$*9{v||#0w#mHwhf3$zFzTpFyk^w zST^}D1y6`-<3r_-+0WPB-D%z}+r8gbp!~$tC_P!Od2&&r4e2qgLuozLp)kLDkuHp< z#NVDTaUtIQHYq4*^q$6;l}d#V?{@6wSOptN)Mm1&fWENYhag`^ZA+mi#q!ID8xW_y zS_V-L7fQFO5aj^L+xIabS=fNq;LZ=Pdg|hnC&D<=R`+Ka4e?y zD83Kjd;Iudrf=2MBjici2EEe3IvO3U+VzSt;!{HectHf+T9v2nGgmN1-0YZJ$uD6G zX$~dGuA;M(hfOuW8wv^OrAC@s(JdR3&6%qQl$HHkDtSNQTQdZu6e>D)I%}Ikl8bEe zrm9MQ1t|@4c_OLhiPT#kru+O7uYvwXbUY`SlziE=CGp{SWuZ!y47sqbmmC7xHPyhb zO^;Fd+K+*L5$t8-Y#o3ENTk%ph z#EUlHE5?S3VvkHthlDs9*>dYPX{IcNoHSCBK9=3CPnCZb#@c1FKAdmcw%N#z6Rxx# z;Z`bP$We)H4|0SoGdz$C^u8yEfw}n{jG3piUiL#vVE}FjGrh|&F|ji*g)=E&J<@O1 zs{raz5zp5|Fyzs)9G+TL<^!vP_kx_SaEWS)xTVnAZ*qdZL`$8j{>#hD&iKhgINX`^ zQk5@!HOqHEvSFy<6_kkYwjl;NlBT}tIfC%M2mhrm>7K}pW2jjxvbJ8c2L)g%T#>LH z+a0C4(|1ZHbwsrB{`8P(Dqvj*`-I`-?qS_Drfy@N0bk{{rppjQ76B0Yf8jj*AHFS8 zxSXL8A1+4~t-qILVLnvVur8>1nZm~c)xVx6AXvh3L9F^U$@x{G=$EBZAJW8mN=8;c zFI`kD#$<}X^5^8Yf|-N9Xm`F^4nGLEUr5BQA~x!dJ;||-^KsCdNeEoa8@;NN=GZK* zDyC*Y&>wKrk(p!IJ>{Nq;K?S`xo;tqyT@oNN#M;=t3m^nZ9Oi_gebp6^%$jkhX~)w z?>u>TmCC!xHI5lhrad&1GWCpd#YpL<9P?}ux`=(v=XBB31@RkT9!xB>kSHxoTE$Fb zXvu$^WkRSaaff?~_egw9Md)cbp;B$5{r%6brH>RM>gxxPuO%f7`I)+TUS#eB zMQ5F}r;YR|o<2VINPWA(p*z23W80FOoht5;X4*1k-NO^EoUmEQmG{xW>OFj*J^bmC zFQVe8#oq_BAzxLY^X)N?00d{L>HPc`)cXVFA}gYzVtNfe2J$atn*}8KY*RC#dJH_9 zWI{$W2{KQZF;3L%IL!C{#C$mGFweH(MK}iV+HkhEL)h(Tzt(p$PV>+ z$3}?A$D{DK)`CoyWVReotn9Q4reH>az@o0r8FPRx7&;g=<8&zPTHasXEN8gwg#aU^ zeGZY|I=$l{_q8ZelaouQ13RN`7(a)JQmE3oZ?{rSydjItZJze&mDq?%#lH30AJUox zhDVdb6s%0K4wARYoYNXP0_1gl|7xP{qAHEtqKwsoOx|yL+qS&?`5q zsuwrBHe3VA7!FVm%sW%AZ6`JyCnnLa5M#Q5>Ais+K6w+X;+6_6gYOTS)YFJB1vWtX zGcJ{v5G+)bu>({MRJP zo0g2kZ>=jiWZNk%P|%*4)#puRx;Pn)Wooq&++d$J8R$x%Q3V;CeWVsTN(e+Bj zb&E-f$@*MLZ*xm|Lh~+7{gm`57kBr#C$HS6IXwd8hP=f{dp7jTswdBbhdmkaax@(Q_>9v_Uv zc2Ap+j3wG>7UYAnpt>iFbknPqdtFGicIDPO@=>$7BYG7&j)y6Ub2G;<`qL8cc69~A ztgZ+dX!xdod|)8)u|V?-?C`(4V#eq`y+g`L8}ho=g+z1KzQ3J-iRM zkR`24(aE#2!MgdUJ)77ROyi}mbnN-*v%vrMlqs(X(kw|oZGUA?b*~3IKVf`=J?uz|g{A17|+8)$;*+_a5 zT<|v?3T#1wAGjjAHv8*?Xwe{WzO{r$)2)^{E$t~Xls_}g?!9@e+B0x&;5@!;``SrMen zO{f0bP8|anGp6hK5Reh|Ooo6z)wm>jOcZ}z%w;D-?4Xka*J|o<{WeXmhL0SfqkGuf z9^F?Pi;m>>2f?Q%lV6{*5qSs= zABok=q#x}W09O>6yIlc5pKEG+kbciqqkHP; zu7haKY&iabc8ZA^SI@iS)=10UZ4LhnO()!A=2@DU$O^a-NmePWtCbm zVZZS2cZ{&u>Rt5`@zW>8@O1)(_WXKs?_J!bApb`Qg^Y=TBg1NAZ2n_}T?+gaDeCce zp5J0o)t^3T3pJ?K5T6U$yo*1mxT2)DyB(0lSbMN)UGM1WzANuNfwp*aNL9aeLFo#f z4zYsrbS6^&K{)ag5cVfgQuyN*Q;#s2S0|u@z<03lTHO`80-RbWcgps(0VTBYAu{Nfk?Af#M%TifWDPc}>n6PW|O~zYj|mG|Q3d3aoa;&WJ?B^HaCo zV0o*m!+cT}@L?spiWHC5?w0xcf44YVws4taBiGSZh72_sjaX&>>}Fa!s`^Bo z_rgvgwaWjqrXzlI)ZN?4G(Ga9!tpg+%iMFohyRPWpP{6nueAkg z6ikRI)Ne4!(@ah+REZ|N#5qcGsaA8Fjs*{hO$T-Nee41%NIdAPKBW(vQ=beKJN1h1 zCc*t%NxhKYai?zXoUAHIWxbaBhfJYkXDp2^WW7(~c%4@`Jb_U15KLbh!NLX@V6dZo zLp+Jy+}AteKC=lD%;!=iXxPW_i-x#Nsjvp0ohT{DX0By3Y7@7yiG-6OCw}~Re;P}2 zj3?ErvhRRhuZlbwSIDZuN#c+3Bc~WR9^;Es@ggLST#NVxAA;pR`*);|f6*@497Su$%i`(*l?c^XS~SZaDQG|F3WIFPbAg9BL}&0$2(XlBS4 zEy-tjefbJeZdUi@hkM_p$K=HF9H&I@J2>Q=H8Ah{?3#S8Gx!kSEIXc8w=HU^!8pBE z{s`uG6>u>oij)uLx7!*a(2FGoouQ5rpy_-np9qc|mBb)8kF9Gl70z|UdKHS}UWe%Y zu6zCNhba=ccTZ0MRd(Z~d@XjNUevNOGI|}5-YyL`x5??jX2ZvW~r-YOBYjQUH-9sn2WMtHtD!}=$gB4aTq)# zPXzAZ!ff?3r@n&pGe;(ro7+GajgIl*WYK6+arjjRV}g`&aWZX&qa65%$A>?&i(@{Q zYQ7TB=gQnltl?d(##oQB9Fpx}sB*h|d%A0g5qHhJy(i#q1KxQJkI!{X$xzf6j&0sI zkU@^Vm~Xi1F)TBO&3T@M<>(a;lZnIvGf`}?&$B-jTCV$(`)9Vk>XN%o0syN-|8w<) zmDZ)HY%GgvpYF>um07d3H(hGW*EfmQ^LLd94bRe7t+oyW1-{6Lb)EEJkJj(a>YLWA zp}oa=rGey^PS4&ojX`W_gF3THPgb(F?UPZ8$i=~5m^Otney-&Fq%3_6KD!KB-2wNu zMv{Spgo-be)`t_;hE+X8r_mhB=_bUSlkz{AACyZYJRIZWfPqPc zx$m?hebkF-C_}d&mz=B&W_`yG&rgCE`WW;0|{!T^x14v-$Mzxdtxi+ zph-MqB7(lv15a^DyqDo#%a7P6AN_VcOKRDD_7*@>ip} zwcm+$8~#XlQL>(Uu%0DvZ7P|I)zWd-TM1>@Mqb%$G33;m4GY&-5?g4fiuT>TXdHhP zCTn43N4r0_ zOTavmrD#3%7cCASo7dY#PHc?XrZ=bR2pJ=q)pbrGNVdv3zfU$Qo@A}8YbTXLe z>rZ}SuLx8ao%KGcb1)f*Y-Xj447+skqMoX%9h(Eh(9K$2Q_6Yd?qS>ZyrxT?M!9z@ zj{M~Sw)HBN?ahX9U&Sp=S7TIGmbI2U8OxYaaBKhbNoYIG?c3izJ(%`i-4@V!LFer% zSY0ASzS7(|Gqe#RUwuz9*TdX4dr#679~hhU&?gdKwCb*_i#`nyj}`h%PR~UnN_(JE@smuUqrjtfA)Bnic=f+8cb()lBlaI829C= zh*hGTK_F})FnP=3jAIV%NvotkP56+0MCg8{j(q9r<6q7XEfTA{`Ngv8 z!+{gS-V;PNInQaI3iRqZ-lr(bORGMwibTS!S&>jyzT4MAo}AGRb|CE#9d#~`oTD%L z8o@Td>>gac1G|*vT%`hb%t7RDJLZv>FbTLp2v1M1iKC+z?xNe^HZZP|<>|;JFA{0c z%I$C(aB=0wsv)}36V=W2JFy1Vg*Y66+v$mb6bTS$Ew9z*7)2Ee|Vj~oIEo%yP%IyKzEF|F4oIUdJK}Ug5n$P zN?l5zu|2@Iyknp{i_%2mPjEta^%`u~ViS&PYS>jN8V5;+(`E?>C@7+E7w}ac7pJK- zKFL97X*8N@S-%MV+57f_hp-D~t)i8Hcg+ads9f*%sgh#$pJwuC+(#xZ*f-`!) z@%(nReV`yyI55DYl}2JgT{bwzV}dgjlR=lm^|oAdY`sv_GCk5}FMo*R3g;^{CyLiB zl*XY?0&TXc^ToD>M-pXE55UksdG7h*L#ondCuOm=OH>6<#Gtkh+T_4CcSiZ@4ZReL zGEKKjH|UprX58gSZ_-y)8JT%#cKtnHrv6i2p(ItYUuG@7Ysc{^xlGRv_YbOvho2cc zAXU`$X^1!Lsi&%|iyS@kph>XZ!rXOdNQmOzNP)hKR$&bJ0&fE%E7D$)vZdb+x-y8o zrQ{9UT;3}@qOo-9lj1Mq67|_w_ejkSH$BZ58RF1NFCMSdehpV#+t^TC9I~dY>ad)` z&nB*$+S@-ke!CBYutS5|!5Fx8;@uHSRcJNgB~hHItNMUXqATW|fl2b!#Dg)B457p$!_SHJpync>Sh7@Q-e6`l#B6`9)r z2x7A0QfT6X9f5C#)m>GEve?<`90(S>lOM}ZqlZLRuxK(hcGH`yq*ibg>|w^OgxYL6 z>e>f#b#<(#uYbImc=Bhu-G6+BlhVzDxBO%3(OC*aOK?-M<#5;4E|%-f(}b-HObUXS zsGB|(9SS0uPTd};D<07Zqqk+H7T%=jpPkaY1fj0<-Q*U?c-i4S|BJ-~Q|FjjxRnu~ z5&{aSPv47aeG{y*5=To*1fNel&AUmOxc_>$j|zS7L$&&w-6D{E8#Q`_-%t`}1sn#( z4XvcI#r*8r-JqEkq-8 zBQEy}J{a93We{06bfZ&Ip)t#}`}rxQfN9OJ!8aM^&3sZ{j|1%VIZ+#5GCI*^Lp1ef znC#*Ssb*_sor;P|->bB+uu$1kAD`Hxjl!I44pHeCtQgsPxDEZxSAQRZEc;a2Co+1? z%?L}`E5q5t-2qmc9>{mQsPtaSj-E@T^hGNj9Y~4TiH6OvPL!zNhtoKoD`GT|d~uhT zroHd2f!oB?YDN1=I%3FnwZ+}GZK!l)xYN@Xq`l641zcY5MuuP5OI*_xaM6Hw%%J7Hd0qF>kW;b@G*KoL@ z=`P^XiV2uG9LCAr#z?%-$;Gl9_0ZVOjxrSpd|i$H^C4aOWygov7s3L&Qj8=G~OFQS2$-KEJ~#co_6@2aaGRcJp6;JV&$z>R?2?L#11H{XXV!*zx8KY zIVp$4)5I4+p?3#hUkBWf`%SwV#x}8<$F^;4%MUgKgbSD3mb32albxHmL-ZS<9cis- z0Yb`5X)D#cP*;ORZ%YAxO1G5(W}#ZIQ8zo#sAO$RV;3Ty1N1Td-_?4n^U3;;(uyP` z=bPSLg%-56w@s!@#$s)Q7UTycotHm8c`S*w5%99N{}Dspr!?3m+n#=0s(IrSIb;pP zgrV#03ZXKopT?HJ5T)78*Bh&=JG&liKXqDNT4FP8ujY2ek@p^ZMTkS--+Fqxbt%1+ zu2m}8z5F~){*j|NpcHhjzvUiHN)p3eU3-N0Yo_Yyd(X|s-in)O4UTJK%L@yvAUR&$ zh@yyc1!dP07ti%LTgROMl(bmzYZCSoyJ_{@kKv{Z>2jN{>9JTz0b3za&caceWXUP+ zyl4giUA&^25yL6)WhjpKT;Hv9Xd_DHNV)9SYnC?|;+IA0uK9`;7;xs)MBLk{dvvL) zV$1Xm-T3^-aE5MCZ_T)&Zk5QFJ+U{rE3@S;-AgA|u#@ih2w{=JGj<2@N%2K%HIs0I zWLLT(pfh?G7{SfMGd_4(QHaxzp@3C9`R;FR;TPLU0ob={|NKduPr&=F#z$MJj?Z(j zy~yl!g|*^E%}?^9)0$?15Tcq;B1tcedY~6}7IWPQS(+%a7EryKs@9LxnM*aVZ~O3H zGXMYE7aEs8NA6Fom-O~a;{t&auJMFI`b(=!SB{0*M%&3|S~Z6bXfi*}-oN$I_|ETi z9K=DV{sL6C&Es#W1)sI|Bk=eWEDZhhPcUhDyKMswAtW1+e=US`=W&)O=p5>dkdXIF zFrY5~m)fS7uqr~a&dAPw_-6(COQ#K@o-ZMRyB1!r8f9Ws0B&FaTF~KVE$FA`#M$(z z2)EbXxEkoky|n9;0VpeiREd;F3znc8|NqxDx1Zl?z@N z_m5BOy4W3A%ew@*aX-FrXmMlM7wbQicgx*#gFbW{yFrcwxNXdWU@_0PU%scFnV#Nr zGmfZi=9BaUVdO{V30CHx>EvSZwqrHS##$)`cxKV&09Y?*9 zG8!xl4|b)v5Sb&Si?ABe^wLcu&wN+CJEYof(Xf0*_jP>bX{4EzMZ2X|u5_*7xM@OQ>ca=S|bnbB({JX8FbG z-`+l;GRP?jfxMyIrbv*hCPx7>c(paC;j)K=7R>nJ^mc%za5ARst#mD#faQMNk~nhh zb4zQch0ybrM21V~@&VyC_VJLT{W;qMb2S6QBr3E?ozRca#b?*JFVWcg`I|#G;^!?3 zV;tY?{f)N(nq>xdd%vCG{`?#SOvrov9`5d{Y;2;IX+BJYe1jXnjVhKi75n23)3mCx zDgqESbR6w+9(yfxE-~iZ+Es5A%bBGmpNn`;k8h{JHP-r~YoOu{3DvJX5}Ac}3oL)C zDw?T$F!8qGSB&R@4jZ282Cz@h&qu*bO-(8JG_rv^MXf`w{so4iQ~#^n=8Y#ll5uvD$%dp+?>a( z1fOZVYoWVJ&IT#ZM5ugCm6W=0rPG!%3)|7}V_z`4W8c^{<)RJiy*ujTwujcn-S2&O z&3id*t;(+E^X877xx=by=v48 zISU&kW7nyAb7cf+re99<(7b7zv^lRvO+(Vr3>kYdiiIcvk@_EvS> zrfk2l847v+iDIbw9QkmBaQN!tRd6t}?viSzq$DTnLL(%@3(Z35=%?tQ7IKS+9UaeJ zJ6o^aGAyR;=-4-wa9-v%^kLwo^ID9#UzV>st_R%q8>o$X+zVgabL4}#gAv}xS;UPz zFrE066iYwr;O0Z()NVkho;=TsvU9XB`(}-{UeiQyk1IjD*L)1}OupmBZSd&KUMue7 zrSPF$MTsiSkIrGeR2@slx|TkAJXKRm>xgojnCbUtfP4S{oeJ)zd3V zB)>JFLbbu#>lg+nfX6b~5uYX=e+~Cce6oo59KsL!yu|O~VkB8kuNA}?t4_05_ceh{Ba5WdNn}vZV;}CHY8+e!8TTnGSS4W_e^klgx(93JseXw(T#U?bq77 zxV2Y+x?UI@P+of-<)r^WH}00<{qBR)gC(N!AGtOM>7`f&8OR)K+}8=_-a!MNeF*Wb z^vUc2O4MNNE!J~it5inM4nySM5|_pk@?|tycltv4zZd6EG@XY{#Mi!a%gX=PnUjtA zs&}5eJC-HCFhWNA9CFsSxb8s0W$YXXm4J8@5}c%K@ZC-gS5c<79RaT}JFE6w33V%xQv3hM%lNQVB;xf^uxM;Fd(Y+FUarLU;|`(W}vfB%=0mrb)D81lr{2EG1` zJs(vmf{NJr5UZtBy3;@fcE*YNe%#l8*_p@8f&rja5A;T0XH=xho(~DWt^?rI$UkL} z1{u5$PCf%I+127Nd%n>0WUZCAy8|`{=0o=&GMw?fw<^bYCWQ%W4R%)BWWL4xAvJ|D z5C#VaSN58fKmTj@Jp0kvO`)O3vaz_B4SC{9Qtiw{tq!2p;Xf6>hhG((ae@;eL@AKN zA*e3!tQ%#fzG|d>bk?T02-*~uXML`OcX7B9_F^Y-+roo3+HLm4Q|jmub>}*VFXhh| zEM}5i0sqpbo*}$)hn2$CFI7YH6(_B#S3dustnGH0Lr5^nQfVYb+P-ePrYk?hv93U< zfb}nNEB-lB%P{@xkU!mQly`g8si*UwXKe-M;^4_E*+`qyw3{oljYP3VT7uZ7Zo z>3;w1qx3(|(eFPQPLQ@{z8e+vsc-Au^+>SU>LFwCw>GZa;5QCLgfj@uMKRsJihjEI zS-kTOH7&aD5=NLMoaLgYlQTI%I{5YG?_096@$S;1zp~NBB}!%d4du!qvkp8B9gTk@ zE5*z)@8wN?hM8FMyroP5Vntr6P~JGsIy+gy?cVpU5|bfb>c9O3=GZ@z%IvMl<+C58 zRuXcP6E%yJ0cQC3SEe%M{g-#uq(g4^E}>h^qdhuL?rcE<4e@_}Kxwj=3Uq-E}Vh6m+;Kp|EJ*-@|Hw6oG-N-X~Xy zMfaRP4NUyYd(x;wQS{b>$tq1aR3_a^UZN9DjN3i|Egjv;S<5 zd)0IYV~JAlv8}&%;YNOTZ0!QP_sLye{gVDhYIf9MLDseS-!)sx6X#T6A&!`C&5ZzG zODd@GR|aH`6~UbVpp2BRD+JhD(5e`kq$imFqAUaOq4Bv}u?!=)h|CU9@wk@RP{h;g z5D|Jpaxu6SJrhkT^!^+$?daTE39QigD{=FmZ@|lZ;mS$-4McU!5WhHYy8Zq`4@AOu|N0P5qV>TaKz zR&>pbVuk#AFmuFvi};ND`co!&GxHb3E1WFtZ+AlBhKg{-8BumQ%XH<`?9O%kPm7Vk zL?gQo>i^-N0V5$Krd-<9Y?Lv+v$UYz1Ws+Y*2dRtK^kp(_8@*5k|Y8rNwjCDpGcT1 z*Wzdk$<{)fg*OH;)*;Z1u-&tr$ogM)B5|v&aruL5^M}cRP*?R#Rd7wTs(E|PWX4yE zzlS5+ZoD^SC|g_k$1Ctxqt4SASH?4;ZB>TgYd@z__K_KPWGf~8C)osOHGBIYEY>kD z$SRp*aYFHrQdW>d?ZoIafI=KX!_$FmMo*9Z3~^PQ#tK^$#@$=W{&b_kptc)#t#d7S z_a5j~f6pZuTP@>b6Z+v1-_i&fdf!MxXK&*CPqnP!AGPd%eu5+}Gik&ZR&r8Y_+xd; zwK9IDEe;KQ>l8=smkk&2Wo|xH<9;eu=;&);Yf7Z|29oi+Oi>j4=IIGbsUWCqgWb_6 zCwWQM?}7C9G$atAxTu0*Fq%EV$BW>*+*CPe4Pxx@1X-1&a%USeb&ac4;+Ks zxqJWlWA(zCaPi8nJnkxmXf-Fs@;R@dP1ztnEuy%6mb)6^+4){1Oi;jfL>sfhs!sht zbpX6riC?ve7KKlO#@8Ey_{n5_ar@EZC}E@}O}jioeNog`a_Y8xx?&(`a41s?_YMMW zde+@KGy(rpofO))TN*iCBU8&) z=3zVR>9b(LqY>b@`6N((2VL8FZpUg#x|`Ry$-UxCI-lXeYev`0kNP6Ymt?E z!SA-FRrVnzXmDpv6$uGjn<;JSx1X^L5AZM*^zzcd0XU+&*gGd(Af zp_hLx$N5Ks;7@oSu#091f)cx}_F|wA!?=~Nd(vXzjvG2`Y<*H7feA1*D+3wKa?7#K zhYss8@0S(Qf8;A9(Jz)0eiw@3QxagEETy_84|P31u)$dOv0 zhJHNic_VA_KzW3NXt4%7nkdwetYD)6_M(MN2swq;|D*Iu#%10$<8Mjke-d8$bQFG= z8nZ<6%*^n{_;}nj5&C*}6-dU?Cp;pX+~^Gz=9`Z+=>|nq`+CxECmy_>7O%f8C(N@x zzR*6w-uy=%lL~YXpjF>v8$iNfF=fY>#P?D(GdW|M7raqRW`NJk3TO}tkXH=Dvknmg z%YhE8W3wW3cBF*ZpVTBE?r#4{X2<_5k^ReAKB^g|#5h$u1Ho&;J@xBOI~ECrbEn(O zmSC9~JD%K)pdos7?jOrubr+c^9TfVdk2}`^4kCOhh%Vj$(1BV(ny1cAJKaA{yDnvs z$RPnrt!*CFN|d3mQ7x~&7yyz`P=2kPP|Ucr#(<(OEbh+(-~Un#e-j{3ikC}cp(!_| z^vWvyrejlXFQ{pnd+)>&)!%2x7gqXgYkr-iquZivjpce=fEIbErI3=7?VT6VyRQq% zC0in8q~JfZQthvXobF2DPxi`L~_`w zF`nM2;SR99f? zGGOpRNE|4Er79g67hN3T6-f;2L}m}lqM}Vc++RxL4Ty}{mXHhr^w$Y{NpyzfTj~QL zV-r%E(`e4R>1*eYKDF+fz1Qdc4^L8K{v#0fy>&7tWQ9VWK05lD9$El})4R1t{BiEZ zZ_0;SyC?bwBnyK}($@aBj1y#}lW!IEu7$dm#^4h3U8F9KUp^oYP1k?o6Y|{y30)=e zdb4{k)W84I*@C|($vn)X0R&1A^1+cw2V&{>160Ou7|KH#8`l^MAXE{W{|&tRpSShj z{ltGf^h}TaC9>w$OO55H5f-P@S!jt6KhK$HG>lnoEQeTSCR|@8NDyE)4c*!c__{?aB ziV=BTs+wOvPJj4Ciyaf_38`mt^ki{$tDd_S%PpXV{462{Mb!hn3M zya9e^NW`t304P7@34Q-4g*zs8&R@w=_&&5cp9F~FLYCI&Su1p`>9-we(M+M?Uncoq zeYSrui+JzIxChwbB3}VDoW_J(n|fL#=e?uJwb!nZZSCNVh|hC%x<2F5X7T?+7UZq7 zI3fGwQQ95v;b$jH!pKmz+@Dzj8)3ky71~pnH6idj!muV__nB6e6{O6Tozj4x4j|-< zWvz1nbw}U2wKQ37Jp$QM^Sa`|uUpN2I`DT;h*0|4AE_v{P1rm#$aSdW+C`#ywX<3n z+qNBW25GQ^A{YQd`;cpd@5jHh(G^e-7?|sYx$1cs{O9%LFu;5z*^ElZx{OKwPCYbK zSC;(7-Aldcdx)4ko4P(aT9p`oTXlkYP-%_LM=*Cn00ro%x1-5l0=osoW_`NzT2G1u z@a30c80)W9443kp@yF-`+XgA$Rb5p?%;Mtc`}hv&F=YTE84#UpHQSZGKwy8K$+fi% zeYoP{XpZiQv$_9&w0&h%Tx+&15E3N8LVyHK&;)mfLV_e{g1fuB7n5Jh`pD(I337$>noBI*uX3f9tYEj`jG8Uc}S7gI$wBg;a_>5pI{|XNvVGH>H zt1-ZH@WT{8bHVQc+<#Gn%aY2bx4J97mwdVI{GduGGgD1--&zUdIRHlg+S~z~@9xEC z?U55x6GfQQK|I+*C4R0-HVlIvTJP`gj~wwFOaoIdke@?rzMiH7-#a_2tz?I86;uEQ zgBek;b&|aSOsv{lqWpA?xiUIh5jct{4RUpKoD2;QFN&X;Q1}R(No;BPsj#{0U=0-S zg%VBW!PHD+7(meihbe6Tz*Z?eNm#3POw({+_HAkA{P6%Gnr!L;0mR?x#!rI}5>&hr zZDO@~!zOze^3hFq-Y(ux#s9Q1@E4f&o=Xz=_{D`%_jBMo%QBGU>U)y?{EwiS7diM|z$>n5xbk(DMv(babdD6GMlVot~Z^BrLg`PIQ+XGjYf-Ze~c}DJ3z? zdKbW9s69kApjpN=EG?Ih#SQ=ukLzn^8mnr+!hx*!@#r|ii^N}llJe5>&rC0<`oB!> zVsE$}qjgz?MOqRgoEJ6?VCRrx{k!Dxf4}an79|i0u-MEQ&jlY4BC`%-_^6VtkZH2M zi>uJ+?H`*ZyHIy<;e|q>oXiLBHRH`s{R<^}SqlCPA`SKR&xz7^ZcCK33f7UcEJEOy zdAo{>qM2pGeriZ?;qGdy*BGc=WZ-GpCM9WD8W{8p3=G(rj`)PWp(ebAS@rdF$)fN(Bb5564QZ+$-wt=JTEN#o>;09bByaPgVP$ z4a$=M{!aSR(c#d)*8-k=INo1&N9cbU_Nkj>x@!#wx{B#rjsH=2cjF z12H~u@!>cS#xMKqOG+$2`j@1X@FHyfzk%f6|8kt-ArLIoY`}}Z(5G0-|F{GgA~mLc zc8_2m1}*3H>lyqlX3Bit*P{r&SSrT*iZQ@r`b1~&~gwS>9Sj0uaS z#sQ5wa6_+DF8savBVQi@e}AVMK)Y2P7KT1GI=Twk#G5}m`@!RK@(XZx&vW0iw*+6P z5CYQ{Pxy)&F5=ZRRW5p9;_FMb4tWGb4F`p4=5ChT?C*E$lbIAntsC23wkwUyF6^)HL0ii)N0 z3&HI2*`B}|RZFhKLAq2=kx`V}TSxVy6xQY-Aq$M;}V>062W{lI3d8Swji za4jaV@%CL@B)*?5Giv99?v+LFfrzd*;42q(pziAtVz&cN_WUo-&#$M3hrh{m8o4J` z`kP3^hU-a{38#GMV!EA>v_Kf*$WGj@%T-U{=k=k}>EV=?hBhWW8V#-!O-ELN9UUDCYsBt-YV%=48402(cNb$9Rafn~ zOk35^gF0Af8SixnY@d&td&lZz<7R5Va|Sr+6(-F5&N6zj#?BvB(6q4hf(P&^Eu3qz zTiykR%UJ5@yopSq^#yFU_^aw}4|A;e0XoTMO*Gmh!M5LR@zk;kO@_GaBGk&gEvd=6 zg(Q4>U>FzMe()ct|BU3jQ0Yuzp_rJVpb)Qc{o!Q|lQ5H~kyeyeL<(E;%WY8Qt%#@1$y z?UJvRhqXfKEuez9rbT;SdUvppv3|SO6&?eL;lQlrc0STpK;U^kr?h7Qwj2b8ia=k+ zU4>_i_*YiPG8{kVZ`F5c4+^?E3#}$`-6}Z9$!e^i&UunZ48HoQ&~p-i%|HC@*P|4j zHU2VF&Z@XBmqLQ}AfG+WeIVI^xF0;CsB#a@TM0PcE0q%{S_Yt-;7wG60392_pM8{K zv8zvWoCqdUGo2!T<8&+;5S$TkESaUuc=onG4kpi*>)v0kM|!SBZnl*O&wWk1-rpx$ z$=Q18c?z<=hedd-uA`*ThKITCibd)oWq-R1bK-@3b&9$hXc?y;-7xho zV_}JY*0@DeNH#z7kY(_Hl$;2=k#dn@VjH?%j$LNPR5tL)x#bh_*| zvNc6$D?I2+W}F|m$9Y-9joICE6linJTaM2H+tdd!uu%vWoSr(BIiPCn`de>O+XF>% zXz=E-+J3kZc}m$#LFPfjp+`92K#^QdrJ$kbq#@FA;!ooG7T@V^RphdtWk}SK4C$&4 zR@byyr{QFz#Og74SHK7yHu&Cvq;A%SyA6sVL*MH^NYgEmSk6(euII|j3{T(UIV z!b!sUbLpY1O7vyq?sd<+w|z>}l#bdU6B|CjP?v)|7}I61Jkbrf%e~(OjDZdLi^Mjw zGP4#=hky~7z{ChGZ{iO-fSG{f5Z}GKf$)g=W?m@>wx6{yZ~o4kk8=ZK_e-?LH#_la zPsrTR6}e}j9biy5Wufo_a176^@b(sTngj+P6tm}2UtC06q6;hqVpGin^Yv`DhGe9r zXTd2>;rutT`&G5Qv=$6X|sJ*VRFp5u3e z_ht7dMkBGRNLK{Vq(gTjR(;@BoP3Ig(z!6F>@Fow5 z6W@gszi#IhU}f?pD?@ZSae*^5=HH7{{>8Ht2>i1c$b5Hv%xgg%$qA4r6O(t#BPSJN zll)IXfQc~}lT_c7j2nPOhuNKKil`=QLQ^_IP?5almygYTWr>ndP67W-{u~dmC4aOa zk!zVAt*WN;;bOx`Ps#D|=Tcr*U2g!$^c}4DOGJ_Le7a_GOqTv;og7U|QoC_Q>bgA& z*lN1m2&ExoLq5F$0Z1t9J*0f$nU}tcIYm8jzCfef$``zOvhW|&D|QH72A>84J=Ip( zyE<^pQrRRV7JKhX&Aq%c-w~bg?z3))IwwCgYU6$oK(rsq?ol{vJwWvIU_46q$8j!; zJ8_(!e`Fg#m;)yhiBCl2pmp7=G=B+$H5~#p*?DDU!Cj9+1@hVDWzFGL*rlj2rIln2 z)jgzX7OiX}!6lvL8l%#JW??TV4mc{U5=9%{czld<38c3LzGDrUX25Y{0gIyFYN3|R zwe>~rARtei2}fD7*0WJk%5jAO#}_~AEtVPtH^n(aFDxu=Y)N&`#6+MKJF)*_wXZv z!!|^p>_st?u7|R{$O_X#-Ue)8;LUd$$Ro-N2pEV}`h7!0M$uo2IgoZeJo|od@3xq` zIax60PSVi41JjAD8ZJuwYkSXi*I ze8QeGYcR;{up|GDqo}8F!EH}!9ACl;eKNBN!$h))U8fZh3jN%eGhO6H%wtz z7wReX-8jUEEWO0$s)rWQSI3+@QxUu0zHJ*553C$~u4C~MHG{%Hk?^P6OOIe2R!)ZS z?cKedAJSys7~XbQnT+>mM-$M^X=JdM-Y&Yg*;*Qkl}xSx8p}Y0gXK4W+ZOam-0rN$;3ZcmhTtIMS@@ zk1G}(!2CD9s@fgyAQBiXpUW$`B}X!)xvE41cC?o7&>#7vPk%S27{wABT_+-3V^azf zTszr-QYcr#$vD|6(?yEAe}vr(HNRrfdGgn7fkWsDBZ{Q7W3h2LgRJ-V=5`;xid`f`E+_?vgihDDjY}@;>XRx=VM&HP& zFDEN;^;uPUxoXSp?e(etX#0msEjual*r^Jm#FCGhQc0`%T8y5J*A)dalSNCzR$7v( zjkn}+ENmS?%KDq3G(v5jd2LnRFwd+0&7 zIi%>wkP6eK$%0QU?oDwc=nK5@0-BnViJw1x(xD-{p%ZR0?S3lBCWNzNmT3Hz$Nkp1 zyp^0=Cq0;tUZ`_UAo6{f!x>(!aq42@6?F_g`l0EiO9DQbkIN+|BxfI(`-uZ3bGHw3 zOSbW^Frk-b3G--5eFVmz#6gV_HnVB=!$o3wH)C@}AFM=p|7{tnN{Dd?cO`7FFQ}f- zA~R7dbj;j_c*fQOB@Y>}#;3BcHt*>fV4pB98<3K?ksUM#R!$4bvRfA%4T9t=ZHIZ; zC&C>ap-^}hFnQZzYSQaA7ejva6mb6M@{QP{8nBdAG#_Afos{5Qfp7y1Ns5>KwvR`q z;wdMWPPUrNVie69+q(e`Enb)__qo-s7?TD~1dTQvpWha7Y$}yBsu?#qAM2`AYYWcX z<9u7o^qDC$oIBLnoh)#IY+aU@4RX``RMw=*d8^rRf5T@zS7|ZGt!_-eDAUrajL8E` zPxLbyPjpzixL}uC05uBT1IK!>gEkyM8dbX2sHcnFkyDy(bULVjTld#C@)bnK?{FyJ z{?+RlH$3b|yEs8wQ_Ztc_E%^GZN$|g;*956L@hTr?ta!;i~)Y=@0j!1-2?4e54)oUw6-6zT$muz$Ea+MG^z*+Z04+ zFZD9G;kF=Xo@K^5H+<0_C|{{1Jz+)iK-#jLZ%51fxi4`k^_eG2+HvVoI>zr1F*Qi=`R5~PYZ7*gsRQ8BIBU*!C`)r1d zJJzQK`dDHGsgjawU?}d8J7Axrxyr4!bIqOn#Uv?K{^{umNjs_Hy!U*P>%P;sRM?{P zQJX3u^6qk$9#$WMmoN`4qEBN={pnYVnNO7_mFtj=+1|QzTANIXhk%ITF!$ZMydK5^b9Y2Z?TpWIWa*M+W9ZQY1tmuKugk*hFj+J5YIvBw^Dh|x2W zJ|a`nyPlb>TwA1Q=()WSvk#7>l={BW7bEfWT2J>E^)1)QurLN!p5Z|JhI-T0s6=M( zjUyCAVFH3(H^>Dw=V8xtjIKZFr95?$%Q{yoRHmO$P`FUF;#IcFEjwIlTDk$e8?lm# z_J2i2&rt8V>Xlb*-*1iVoIh|THrNW^FAKfHsm~em)r|a(kuvJ*h2*ca6jV&IvSWck z5hT_pN$eK!w3_AJVcYk{DrFEC=m*4JJxG6C8qQTk&O)7&RqN%KgPg;n0<}uEwvNAhK9Xc#nol*EZNnZO_mvn~S37FhiLzwi=oyzV~xD?-K zsB7#HPgUA=GVw&mXHE=LejJFxJjb_G>^>On-4W6FO-JDQP%IM}2V$UMZ8YvGN3 zVIjJ(wgeOZ6I7R>ETska5O)r?G`* zvbYZJe&0i*1}g8A+zx)n27VLL%#Q0VnGVs`4zFha3W64<$ssXM=3v=aB+$1Bkxy`r z{I~YzrJ)Uhtuhn3pnQKBo)hFPvmaY9_7i5J53dZ2Ha}{fVe_#vz!vT2dCvyLPR|UB@?dH9sJ$u9 ztA~|0uHZB5;*Sy^^+#GoE`Hue8VoJ+mAahfp@_`HbqiizLFHt)qE0XO=coz_3QjUl z2g_EvqN3ttQhKY_R3junHczGUTGpTwD{cN80HYD*(~6K&WEG&tQ&x#9u|Bhz%#wC4 z999&y1&F2T4#V`ifUIa^3)I6#gm^{fv-+IoUkPUU&(FpnPN`4oq&@H5X0NO~cGW~` zcHM*?-&2F9*nyefX6M`6St&Lr6Nh7}pBk&H#mm1pR;rX4_H>3qoMdIpI7eU0@L&IG z>td0N`8TOc8yUIW=?bUW`d-Qm`8iih)$0N5+sBaOzb86cc%1$`WxlT41(o}Y{Eo`A z5sSO9`MJ5K*UFS7BJXcR?+7g-a(8m!Wj(N5yQ0|`{7qCXKqs|ZW|1i=78Obj4G})0 zdcorNWARSU!15SoP^71m>4%~VG}Qz44lV<7kFP>QrAFuHe-)0ker|TB66g+2eUT}Z zu=D<4f1d>h_mZ>mQn%Ib__N`A!r9)w^a;|4x3su9B>QqL5}!Ur5cM!u#j}!Q8feGq z*}&~H+SIS?^X|9vR*Xbj(?1cOI~pmc2HV(_EPN1oJ6r#0e5kMQ(5Vao^0urGH{1fdwb_2GEWgANK(l--sZp+%^`EV;ch2X{Uh#sk0Z;=%Xb4S07oOy z02G*8&3IAao)Bdk(86}&)69T^T@zRXe(IE z_Vw0iin;;I{`eDq@Y5>ug`I#6rmUQt59s)xp!#wansZmjIHIiJ>Lp%-dXq6jv4F<= zW_UmA{Gb(^NFT*gr{E2y?V3%+xkGQ)$Re$|8oR6|+0nc7P_ZOJCY7d3OJ>Q6_{K_< zwJshXmxjqngOd+G4gm;6*iwJWldXZ}Hd~@c)l}4FeH8R>R?t6#B2hN@i8Es+W{>Pn zs-YM7ax3+?y{w+D<&T+>*1S|hSEEqkPMOyyb`i>Jwg-$*==o@X^gUfS^dnIO(+#r@ z*4R+4b3-{Rsn--t{)H|LJn5V832HB+B!|rF>Zc8ITcrUE_n4OYo)r$qfi1|!&he_D)o73zh2@~H~q5-JNmzcvca1Am3SDCNW zxXQPDV#ZY*oLXZV8k#7ej_-Zb*6cfmEE+w-bwJf_a~R}s;390ZKPY(VYgOPo&=sUo&bIWlNZdjQbBrcuf-mg`gsi2*od2jFZEBWf=Y=<~t?6~aM)j{l|0V&o={lV|qY_)^@KW%-I(l``$Ls4hTZ*F-Q zYT7lSe4)X2(%VFU6a2B`2-V+E(cj_GpKo63B5;YavdrS&)3eTMGC}@83lE9WIt|+k zUEp3Z7sJ9-;c(1seD)e5S8Hc?`fI5BBa4O!|7R8c6PA4&GStH_j_2?FiBH^bO1DCv z-8dP*hy<({0k_~Xp_^|%rL(tZn64SejRNy8GHzrw19fYm=c)t{5nc~s+LHQCMH}bq zYVpU8dx_nqDRm@Z%sgoIW($U1mUPliz@v)Vdhibqb)jVK8%n2OtjxG`7-SdUqHtZF zvFNyB8}uzwM)TFo6q{IAG_59ilqfHg(*YsZe)-s~-tIcQYIvS%nxc)&RdC?}QTF46 zt>la-ngtw!&4C27MXNC>k!$tfjB)vGkjV`5J6hVk82Huf4q>VlZn;SUY_PW3^AYv4 zo}nFU{o$@1p*l{}6{FVpZ#E@z#}1+F31rVh?K4PtvHk741k$#AQ^Gn_O#D*>hA)?n zjJQvjyDObyOf@x2>S0@%iQQd~w=V^^0<}=rTI_WS4&VV5gT~PK z*3)h4Cp@SH)!*f$r>PHM#`MP^16$uSB%+b|3wpNuk3`(u>dfaVrHDOmQEGrOG`|{K zZuwtW1cw^)j}?p+e;A)faBydi8FT|6+D4RA!mlcZ3noWZLGbMr3dAX^!*=B{p18%n zB$d92Nub@r2p0AzPm-{;O~3oBVj6_sP3P14SoOz`y4RGdYx^{eO>-p?{|bBmPe7g+ ziuQuy?Veqf*k z)rXVK(F^pgLtWMvW0w!-Hr4TDy$2a5CU0!JF@Unx>5yNgp7S$Z<1{j%ZGV?6;UU|E zYstIGY?A%mzMaUJ&}qFmtiWA7Hk_aon@(z)#wpX2Ysk}BMV%oIk|b{c1WOz7t!mT8 z0cBf>6Rt?^li)FRdr-`N8=&+${fr%n9@Qn#^(cecWLZ;X4rD=n5N0fNO5 zW=Ix0m0S*fD=to~oNg zVQ7J)b;oPbIx2f(_WoU@G5MsDs_IT6+a$rYJoVL$8+E**ge>LF2knW8i3=th-3sH! z;PObNWOIIsy#Uxk?y+%xZQTJI;Q$Q9@Bp@OUH;xv=0b7abG3(RLE=WkECYf4zpAhQ z7H9tHOYagv0f%VnM5WM-yM6g{(2Qt!4uZu5;<-H)Jp?B@4A*-y(^JCG;ClJ&M-;C6 zSkq52>VbsOd%bcB%>KMBIW=Vhm8jbpnwNel(+7(UYVza!^r|TQF1O1p@^6cd7tpdq zNpAHgc}T#_!E$=U?$f+v(hRh;&BZyl)m167bFapOjnl-!h?z)ohRvEVxAA@f{qA0R zJ{oi%k)67mc(wS@VZAb1<>Fz~&U2D(Al+YhQxsDta@udn&bunTl?)D96CifGvQCnW zXB`=&W7Nf)CoBeRs-Y2>C9iu5pC2TeM_^5!b=NxVO0mHr*AR~_OKyJ(`-^-bqo9aD z4aR>_mthJ(oi>>%1cudS01Lqnw7l{^EM-@OBRMU05&~H=dil09;()nvOZHmMKd9BR zKc~P&0@t!9`OZG7eSUOP_(l^Q3%-8nt8v|@GO5aIO`L1*$~u~pN6Z~3>5vY+G$4rU z1vKBmkP^ps?$@0mGe#S?r%UGGpx*DRt)zBi`=4iuS451Ysqt<=l8d%?*Mp;=CC{d6 znq;0w5FwC)#HAxgm9b{W4!+F2(X)7P(};RxMQ`uN8Nhn_%fmw1>k7Y~gxZ0)8G_Cj^ednx-;UP*8w46(4_AQZlk6wX)^!WgMB8 zzoCqkc_uNQJJ4uMeKeJ+&NFbi<+Bw!hL+jd)QB|wcR2jNyn#b3e_b+CI@d&z`$YU+ zGtV=9e|u8bXgjF9EGf;TVI*jKI)xHuuM^Teq z3};56JM9NGaW$i755p78qBBjrARwoKvc>V4MHfuI+;gyR2Ytz)pqSb_{0{6WD~&^%%@+^{RDO!e7%A)?2)*+6I;kx(hD<4nDC_Gx z7&;L6wZU zV^!qz9-mS_6U!?ohzdHftyXL=92|cqr$6(7>ca<{lC3QF0?o47xb%=&RW))?_xFim zy}Pd1UdamgNS{is<%=Fa#huZB8z90!$DE4yMR$g#gY5h{k z%)c5!phS5J8SpjZhtZJ6PK7-=qAe^-dBO7 zaHw5?RAH6?_4%T_wxXG)v1?T*2YTl)21sMK19@pG9+4Hvh_JD5Ht{)7y%}3%xr{Dv zvyy*(c{ElMkWnK@8_rLqL!O-LfRO3p?Mn(#wKM#i7r?Vyds^KQbUyg{lwy`!ecV%% zC^&E`A8`R(K8UmIPk0f6jsT3UC>Ao2rvTYaP`fO*Anj#wX1Mw+)LnA=T)z@M($vr} z@Y`}57|6G%)U5-P;`puCb~VDFtCifk)J`&bA(_r!vcoBqnhB_9b+s{b1W0Gl1l0bnx{LWHPmoaeS3IpB zav^Uu=e~CY4`k(r#&|&cvjXD?5OC?$*Aq+f>eSE)dAIWW);m^3f`84sf1mr==KrhS zJ#l<6-=Vb%f6>9=JgjNP9d+hMPUL{hlnOIIe7%VM2!rZzH*fTCjG!4(`XJsJfO!Nik zweo7-%ljoLKh0yBM{7*!P!DOtFf{6qjj&!#=5u>~fia%*DqEf*M1(j0F9?NegD}Gw z2&LGY6&E?V5uavu_X37N`OQ5u%o<6brVi48kO|CBP?cm6GjULHNHYTCBZ+rl@cqRB z`{yHv70n^wtDM%K7Zd$YKQzh=G7*-Gq?#;>S zDI4OAwAIF0*$pj!3K^(rBfOQKwc~TbcN}apISW8XDGH3mHG8J1rR|Bb5 zsi7R~?6U+BT26ypjyv*pYd-w-QXQAjiw>Z$P7+S}y@$NqPMM0}B+ul}{x%6)Y(s>y zeL6oR8NF^=)gXq9DY_)0#MVIGl={S;<4Pxg5bb8TVcu>9L*GG?z&6O)`2xGs4VV;m zCxFZ2SHc~L8917SInO2WoIFXOo#NTVsY@6<~kZ}1F zRRlsx!vDA%+Ri9jQ`_%>5o2xUwKSe znOc6YV5on+J7u*+MF~{15naS?Lh{pL6*s4KVACnGaDM78$wuP?mYVQOpTGtSw|nYs z>L*h&MYcs_%G9Zz;C)r78-i|IWkN!DipPbD%k@Ug$c8fPeQ}Ir(_Pq#h5s&kUmFI9 zR7|SF-HC-HB&xh-XqCeSFgz`VTyJJnF@UWM?y9l+sA^4ALEd{gSt;M6Co91^QODeN zWvy~Dd_)|$r%3KY!l)#tE*U3J~W0RaPc}ih3gD(D$7aeiK;XB38pMkvV+O`k;>z z+DJbYh2P23>V^h9B7Fr)=!LgoRBpex*~+4T$83fU?52Zs0g>;%A0T{`B*e{Au&8iw z=6!_9vF%!zT8ggrBy9DmV-;Ht~+MI>SISG!`;)M1k9 z8-C-l`{U2b%5QVPLlfs~ol$XzGF*;J2L}hg)HXLZKA4!~z*0ce{9+S+-ncvbstQ_7 z9G9_ts&li?gAS2`A_ikm=oq7JqvT{2dll>^?|U+eK47wMuXk7cI~so*D?9t8)uZ}a z7d=<+uR0Y$1^t>RdyzTEn?w)xF*FSUL9uAT!;0LVmvq|q( z#F{}H2wE}Buvqiaz86c4BYy25)+B+o8BbYF1AGx}l`e)985PwW@|MJ2TT*mTL#5Rc zJCUqnPcBLb({YnNGJUf$0`m|s|Wq0 zHd8OW3d!pm%>rVC-@_fUm?Qm3ZG8)@`>=5A4A58)gw86aF$;pNho1#CM0yj?T%(9X z&)?(*WL&SX5?L_i@tIGrbXu@eZbpq}m?~F@L?1Nx=HHM;|5VJuKj%C~k$q~v+SHl8 z?+MgjyPI~Za@t)iMNK^##6hUeD4Kvt(o1FlLM2|w*yXOA~I0rsRv zR~E}sjB(+dz#>MRZd}xKS^47dS%pi`)XYreQ2o;Hs3#Gc;{COxAnBr3l#qfPJmbj z*7WZcsQ>E6#9zlc1&iTe0w{)&2?Nahw8ivg0<9sW(3}!U`WE7 z`X-=EfJg4fBAX^YY=%V)JMtf9XC=h)FfJq6j*gKm&kwzez{KWt6}-FK&MnBu_3ZXPIGP+bsY2LH<|(nKskn+WMHwT_#~6 zQ{F27la~2kt_aj3WjRoAmIrKs?l6gl6e2n?1b-?KDMwAJniQe?kityZ=|0qbp<~AySq|BSk729 zap5k)rsuTcw5C8)bHtB{|MHmt=-#Z2&FJG20R67=%g5y?Ql&_iF(5p)HfE5d{_B`u zMK{ngr7Gj(gS3!z>lS9LEMNjcl2o02fxuZrDS;xix~|uQNR;OA0QL>t+)M{$Kep`m zCz+1--JX%BIWV#?pW?jbG$T6wCCEI3K+W*g z@fKn663M*?4d+MXhks`5|CfsPAAWfB^|uAj0#wcgv^xRCu3KV!v($>f&I%cVNs;;$ zXVE7B5^xyuPsx@UT0f9kH%npf4|e7sTKoVcf~4KcVT-o*lMi;~_G{VQcwowc&J(w- z#sj9SS7n^y_9??fbdz;-&qcoM*!_auCnap6;@}*(EH%c*ful8L zESwn7W%U2PbzZ|`$>}W4$)e!FfCti#VWzO2Q_?nF?DmTvG?N4CEFtS$p(;!Da(Sqa z%-*?j_>oMK8Y}b2rm+iR51X|eF!`N&qp7tHm5ba;&i!KW=L$&fh(q#(GqbY~Z3{1( zWRk(>P5Ro7`RIW!VdbD}AenmDFTm3P_RHJ9I!X`wsjxz| z@p>w;Vl+y6VLijS*Xb=ff6<1abIfnMXyxm{n2>FTedSGyZa6u2ee(i_v`p9x#UPCf zR|f)$whG~kH?|B6RRs&?Y6VSIbe)9+yrGGpb0w}MUWBP5RDf{7S}(+J>9x>cju zubo!tnMQV#Elw&4dI%&il!E>KX6)y}Z?E2|@fFkod5n~DwHd?AhA|%?$VF%eq}Gbj zNZ{*1^^RA}tAqb8bN?^b87Glnwz!u@2U)X-OC~*HGGb1kU0e=bJDY}ocp6~#neB$P z0AKJGibd@EpGD`he!z5Daq?^jIwFgh=D_*~KKAJ}%>B&GLUvDZ^G#z?%3#YVpR77* zCyFcFA#Xd1zKyoz*N1-?6zs=@4g&frk5Zz4561ti71l}Y4d>&c(D26{{|*uk2#R|^ zY6JBhIasg$relkb926@9|LtxM!nYoHQSV0_?-9F^t_Im!Cq-Ub-@T4_! ziPo}IEiFyMblz{|a8<~NZ*@wXwY2T7wx^A0H(`%S+@4iT;C)gP3ij0nXoXdxWkTel z#FUD65o|HE) z+a<4bXeSL9zw%Wq-O95(6&Adlyf&V^lz6Ms#DiSut4tnJ^YC}u!)5Cs2i3;>eVa3G! zKqmGg@lIR)%p(uzMlEbUm6SV`ONgl@oX^b;IJo64*r8fBN@8#24AA zL*`u~A@Jpd`n!^MeU%Bx4b6bIut(DP6v>5jy3B8hgZ^n9S|dDvOMg)Gu6LbjP6|t= z@+TRPFfcWBrfEZ()Rmw`F7!eR4>GP`ogC-A)wK5=&&-BW;?8531ZwOgkTNXvAjZ^w8*Tg_0}mwiD+*T7{c_34R^? zD51l#k^jxHJl*qGw86e__;2M4IMCf^`vHCF(})KC8xwzD0fmY8Ir%~IKQKz01}Bid zoC+G-p#R4pD?}PWK_N<%N}i3phhuyyfixLSxO7T+sT~=jK)z!MXwsZQybBwA1g{>c zwEL#wfFTysa(evC$2VJ-Wt?oCKmc1rTk)?Df1Qt(n2nOpMG+4O{htAl%kS)TBqjGe z7^p_+tabTrnnGL7}fRs~Q3jlPeN`D9E?a!)s?~lZ7%KCv0M>-8zJ|yF$(n7)S znUFyt9jYJ#)=y0?U>h+(&zB+2ut*g`f>Yr4w1M9XQ6?NFA`Hwh#d^BC(ne|nROQ70 zCS9aeWYE zu3wDQp}eZI=%?6!zKR)hQ2?%3{FBYdw?v(6VD@BN$dOcO3ZP>%8BawxJ=6ul@NhU9ZZwf!&M}0pwW|{~#}=^+M9CRE5>uU5q)_H`NUE)RhxE zBOrMraSxJtvY7zGz!vzQ_vS+o#a~+>WF@->xu550RoW0cFALV3Pab9v z+5LJ_z2?*uF*_T_-hf1M8|;2}!@!+$*L1i*UAEaD4OHaUT@v(>g@yD+A$Y&La~Qv) zlvhbG8#>!X6Cq!PjNikA$~^u5EiM?9RL=yfTvSnirQVsJPFD3HIHn4f7qL{ zV)hBzC)^c~Z}x*HrsO&tVnOhc+VHQomD@+lj0r1O$hj+B4AS06rNlLZwzU=N)|=8Y&jL z3FD5SIE66SgXQyh?7RDUzB4YEu$X3W-WAi-OQurdCiD(i_(0UG*P){^Og9^$YmfG?;8112Dt>RosWQg=!)NnJlyG4Xy=ev(-eYU zChh8+^EM&v!lMof-9&ke08XIB3F&#r$s3P-z=Zt(yO4k0=`ACHpqC)Le;p>#S(0PgW`c9_y6dy3m%)essQdNREx z<81h>h-dVaK$9Do24j@sCOxQL(M#!ax!_4S)5Fa3yG1hc2kpy)1t5<`+Kjl1xgpW? z`Mc9GGx2$86Muedjs%K39|U@Wxt#KP{v|!ShL*e!b+X*R>t|p5#=l`c_ad3p^-u=b z+F~ShL{CIzZDH!8v5H0KKTf19cl~uDB{sRh3eHTgu5+bJWjB@zExKotK?i%DlCYJO zq;4?b^{st@8@76uu8ns7mxpQxP*8efdwT`-QOP9F9=^R%5F%)d-*!mO;RTgBR_@K0 zC}?C=R8)%BVAYt>FdjdzAhkm(;E5i5M?(@L%UGnaHX=`Zh`VL<>J2Q><#ZMCoLlL1 zf1i(@>(ff(MO1Wj?~k0Z^=2^6z+aueXB^%#;FBd0njI$x#~z@S=FdZP@Y~Sq6_u=( z76Xf^p+0M2r#^uz0?Gs4B7FrQkN$xl6Ak5$Dfy z`KHJV5XKQ>r1Mb71a}&_r7%D&44LJ>6^Jr2gfx*)* zYAJ87AMzEmd|P=+_?99sI4zJHNnllwZqOHK>-GT(RgAxD3#(d|0(s7;Wc71@rn8Mt ztuU9LD@GRO7Dn^csS0QYWA=Z){<0_#KTZcviEobJ^AorMx66}9y zHB&KRzt_uH)$_~`KaJ3?og{iO6<3@?_!8-h$OEljE-VIjSoU)+f~N!d1s+aUB5Tns z&n!jc@u*~%N^(q=(8=0&Ko||(83=_(J3q$ptgGcV=(?a|wrU~Wl(3(v4&nqV#I@rI zu}7ga42M*)4DSLJLd6iSuc068E zg?;)nr4$!>+qHFd2Efd#(u*$+C+Q@xX?NTAd%ME9*DjZY-3;{f-!Gf)J#0^UXbdj$ zRUn2xdEM@SLp4&Cb^A!8*6ZR;8^B0=C4<4enbEl^nul|x_6`(xuBW?NFdlM{9KGTe+6Q1tSQ~)(Q1^wrFA0sLF$Z}$&lPt8v?{NXiDt?n=0 zsni=sgphzVxp~3^gU(3+@%Q!lJ?zQYs(EZ#JKZng--XHa2-Ma}Kiv!zqVhOyGdhQx zW=hd8yb*zn87Lrx)A=MY$Bs3#QlFjKjGWj1C#HO1{NCB3jkN&i)(;m&5A%SBE zOR#M4Rr)Xj!Ds)J55d!5+*qaqfNB0Q(eo*^NMrM49}ECt@|{a?D`)<~G-r;g6(LXq z+TbDyQ$3V9XdH0sfs1QNI zQ8Z+Babb>_s=sHtzT!3lN@3)+WPB_|WlG&%$mf)>f*c>u62z=%MjNLz(qa=Dk5 zMk*%IG>lxl;B$R@>wdjPa=@w!2|S>H$i4ljKbfz3?eFOvd3!8#*^S2GPWH1KO0sn9 zcwKZ~J9t|cc6anLlo>c#s#0T{q3*cN1B{71|2Wg=;ZKB;pv9`LU8dcFPy-WNidkK~ zBFH?8q?UIF|HN|jTnW~SZi4Oqtd2D*qCoIyW34tN6W9k-o3a3FEL<+T ziQMWH=F^Ik+&q4IlDi}Sb>SG#cAe)OJ)By1qvy6GB6uARySq#Vy)U>n6U){|B^V-T zit1TLMZWNK4 zgYpiO%nGk1=iMZ@!*!QacZF#6p2eXvwBzJ@$dg`rcz$-4^57f?2j^rgW&VH`Eg_|h5ts~x<$S*r z0}99P%R5?tl{iv=y|2xo1Uc;dfWwkYNE5QDQeGSoCfh-Krkb-zC)6cP%?KR(fZp7^ zkINBJtF+IVcOT^VMq`N`u*WZ9JfR(`OJsk z3t5bm$l1n?=?!FODh_Cfmp}3B1Ur$*0Xz7Q8~RTCGotcQ6e>5V%cE#t|Dr_F{RE1F zMkFbA*BTl++x<+oGr|vxwnbKU#(~244^(bcg1W>rt0!b-^twkRFzd5T!gY5>#B6C< zSw?a8G%EAc|HIl_$3?Yo{o{%lV4x_VBB68%(mg05-JOGUBb@^RA_~%-qjdMs0~mBl zH`2|(3@{7>%y;9t=brmKzkBY_bMEtxFC510-utuiz1Dg!!eH9jD-2GdN}_FQ?-WOL zl0$1CGKE&{F7x6lqg=2Gr?h;< zEKmS?>78{eOymBO62e{G%wgfm`=?^^EIgMjJu}3_A^H({DdKnx_qR=0#E+@9?tVj|$*UhD+Kdix0J$+vl>^5@AK!sD>%Wt|H{R zbxC3}asCn<;ZfrK;{pOEke_=p$>%Hk7`H>>@VQTLL#_?iq3BBw!gTc6z`Q~+e&{B} z;>IIpA)lkQoW$T=Sh>@R!p6p-z5KB2RB7fT4Au0haqUKN{pLm<-|gJjkd7z-1N7m1 z-74z7^KpM#u~RZ|t?78UWT{sO5p{wkstLLP-ngf}=rbrk%Zn($ZVL2zEs!sQP8V>| z9nlQq{LD$XX?sNJhnrdjXkSGAtb>7U5w-6EpM6#A;{NShj~jjzIc~wAFa+E5f>8C8 z4f8ziYFyj6Tq@mTMv7m{d;FeAo~1qIhI9T(DjZ{WoowdAd$~E60q2+`T6uood{DEC9S(stR+HwiR3Q?g@jUjrXFGD=O5)XWl6AT zxm~ei`OdsMK7PwDx1Jb2^ClhDur*fZYH9JV#IXpc5=I0@zEcoYdTp12;e`-J>BM zPAh_^v6}i@@0MUr`$@x&U$4({;6}(7=YpsrS4N9nmT!!-B=-vS5uBvzHm#g}D;`62 ziwZsuUVL|J4}?3`sYMmnr`85Il$rM#DAO~?jk*He=iVzLx=ZL6ufwXG*NB}^N}J0- zD`c^A{#T$MtrG|X#aTEd(uy>tTqHRWpy{3IZm><&-*~9ONZse+H3K9+ad&k zdyQhkPikWTVF=`^4+_ATD3Y%Q8Mq5;;_={@Er7(QfKJyaYfrC&RYrM>RzbGwYBeV| z*}Vho974ZXdu_erCsL2b7qw5Q^$Tz`lEHrzoUJ6Q{E%-ZU&?^$_Yq#e$MjoGY1e9N zd~|)3YF(Hr5eN_?ZK>EW7h9_qJVPEGy*tN!g(wwaM^mQbp}tR>SNMT|ZW=RR*QOTU z+ac}aWDF!wYMPS0*CM^`>>5>hPTdg>C`9_?+pSk+Y+UJzMf6}D!5g|VUb@LnTkzZx zAzE8AZ-D1OV+cVps>piZoOx z+T6f;UemrE`CJO|^|&1dWo4iAY;dyrSeo4+`R&tFbk0$rrJY@5Npdn%<6&UmWElxd zTw9NJgL~wH7t4f2-A>}qLhO%kv>#_zDhG~t(-s(( z&$qSb9c)g#6eR{Gn{?Dd6zP-LnIDrBNfDKa;L+*^d5D|J%5)vQUlJ0k&n$vV2!2>q zW@&YElVrv!q;dAV<7T-eS5%w#{Z_ZRx#=V!BFps2EpJ_GIsDmysm-150?Y}c!3P%d z^dn;O_7-Ec6~jK|;)&W|JryfTx^$9_XVnUx_06A1S&XKAay;$40 zg_~x+&Cohqx~N|b@T}=V9-LT@Hd0rZ4ePj#4`d-1Z-;lnUvT@5>ifPc;I(JCHm@oP z1gloqnIa&&VlB`}eOV6-9By8-pQ!AZ$qh=r>EqjGzX-I2N8_+P_DhkHlswR}Io}KY zF-)o{{OB34CP1>?fvK_daKE#K^Ox`65U%pvzdu{+i|GPWeD?l?Y5W9o+CMnxth5|V zN#=0gy=VTMpN@_izZ-0 z6C`%-v$r>$N93s}OILUbSxn+@CBths&KGgdCQq|K;75=M+e+dwxL5qp(DUc1o|i~^ zHpB~Bye{rA$FMU!u3DHuS;3AXN7O8~?Eowip$R6(e5YukNH%BuWh z=2uNe>jj(Q5(^t6CGkM|;i~)+t5iwegkkd-OrBxn*9AtZ8?gHE<3TfbN?kU1F-z>e zY`y@O%VnNaK@{Bd<3ah{`On_51<2Qgt@e!=Qp~0~$Tpq@5qOoXU9<660&BqucB1my zbimAo+qoHB*o=;k50cexdI@(*?Uc~eTvUCoqP<~IVRs@}P3|^rn!mO|0|Lz+6#M`= zUU(rt)j-~OI_uB~4Uj?2?8>FKkjIPu>LJqg&&({dBv93>z1Z%!aAnyzc9Ev-9lE08 z!kfFbE9PeZC>PvJ5DUxmoG`|R+hoMQ*5K515YF#fpuO2!P-5h6&*RY@FuZ$@%ly4Y z5fxKW`xGoVdpPLi8&Z&A9CI@VRx8cis#t3GKJTa)&$SZRgRGZi)hse#E9&>K&zm@4 zMoOEvcHgKzUEq5caay>=V)dGtek-?ivT+F zE>8~k5_QX+!eN7J$(i>3Hk9cWH=PPPXoilKA(4(AZ9+44 z31C*fsU46bn(8!jy2=j%217~GGkp2CBHw0Qu$!Hp-nz2vU>t|0FFk*u=2A#c&#m8m z;jh#(f6zr#O^C2el1Kf1%qbu7H~B;emnE?U1+j~h6O#+fJ@tKy4D^!f9v{NFzk8SD zU9wmE^gZM7>X2+#XHo7n#H?upXhxRg0Gs4*nM+EProM=v!VG;H>#Q0v%LCeOg{aFl zB@6l(teCx_2C5rsr66}hXdWw7few}KAcM&Ciw{t;lQLKdAMZC7z))5aaP#pA#f|~w ziZ7Lwy&|eiyW(mrgKkjq&ZAfgcQC-@8mqngNo~0|Mq0rp)qC!ueQZ3~b3FL-0x8jt zW29yirQwjT6ibIMP`sLGW2PAc;d*e?06YY(zhdvDsFB11<{EW`ZYHxjV{DNP*YD?BRZk}ptFV&xXvoeqWv~Hs~ z7T^U3XtC;TXB|**F_x2!vBi$)r5~RIs(ksOF+xb$7|AlssektH5{!bsluCc(w9VIt zz8CFuuoVJc;R`?c)dCtYy%!>O@s+|K^X{h z4+?k@A_as?8yoA-M=b_Bku=KOvsU;Ufq}PfWoh`cv$651FE6yLn=X-Xx^!|QZb2YL zJHXV?oei(qlT&-U_v#X@MkKA`9Eh}JE&Q|kh~@LtG9h+`#D&<1}TX`OKbaY!$I8kE7)#RKAq}__L~P0I&UNyF z3}B%8hzj#9l1l+3e-=RXQhs%D7?AGrMkR=N#fbzgXRGh-uF(NJy&q)J0FlR&St_Fv z`6=pO%wK-?1xr1n&Q?LDz9Y=?8F71f`Jb`u17MT-y7P_^{>^?X6m!Zf;G(#PM#qB) z7xzCwj>amigJ|MLV}>PR9{b9c1|>li9xSzrTxWw0B6Zw>%y-b@j5b;W^k+fBIh49&ohn-$A9A&TOwMfpC_x01j|y|O9EPR=!z zm1;AV_*2#1STmMISGKbFjnO8?Y6$MK0{RWXE-pLuyi+722<;wW9r|f_s|gv)eoq<0 za}sAkcU%C%*ef(?7`OGjn5aFQo!;DEN!!q?XP>djAHHnKY=(;uhj7mgUA)>oT2t$k zS_YaW^P(FHChJ~|a?VktqpMEgp0O}hRs|$v&C<+r!NN%6Fs$indx=xn3e)omVV)#1{ z=Z^vp$RFeBh#0h>j+CAXKS$;=BYLc9gO}^;>la^5f2vUf#w9We!eAvc@og|-v?Lx-2EKpgZOsHnHud7eR(SclqCwE$ord({cu@xuM^EiYhzX`e z{>G1P4!*0F7cp1a-3uB9-(hEgao`h;R6FL93|Mt_8-zlq+D_!{qBzyj$6WX6>B>4U zrOyq;*s-?a2oDsnMQTe`8HcvV7OQIOHvv24D|CWvut%e(y2W+t3*`f9O-)-k2+?%d z@P36^kK=I;)U&nrbWPEBTTd~8<7wkz%LWA%88Frrk8VUmH&1zZcsLu=@x%j+LV|-A z0VAc*G#0Oaq@WGpYJuCfpUL_D{PMtnw7-P+fOtxbB8VC9>cS&kEVIb(OV zUah41HfO;)kRizrn#W;Y)i&eh!?*H$msr3tU61RZryXNeIXwnwwSkyOSy^PlsjubD z`UHB1CcIq|baYFo(EMnS3K0ju8L=-=`!;LkS)8Uw6V~e{u+C%L$x(c{>4t_b2{2F2 zkXqS2bth(}uxTkyH`N+`*cv)}hs4)fb(=`|6;v3t$5rk!$t$q3Sz$U}ZmOcDX3+)! ztBYv28Pk$|fZBqu)3*AgnQ(i!>Cl#}gM4QxoZ$S8TP&xvo- z_q>1!4PexFR#Op#Dtxf98o|}G!Qn9f+`JE{lGdIaK=~UD&M*|ymSEF^hR$8`*_x-W zn^Q~$P+b}<(Pn%si$*(n_qelMvPNdpq}r@G%|C_WKmXwO=@F3K7*^*O=HJg}t5pof zXG~DM^&tKaK87zBGS)e4j zqzY}AII!e#D0*H(WUpGbH%sZsSS%#v<8T#^AAEu+0pLl;dMC4@p<*I?A@9S|<38Nf z-O(Z=EMRtdYk?fcrU}WvHKe+*T&R!rzvakYExd3^xc4f1Vf0d$VmWHLFPY(Jr>YI= zuCm>*v0bw*pUfLVi0R{BaGnI)p0;%Y0l34|0~a+`-$~oq@Pdev6VSxG8$BE`JvByS;w9a@@s(QdE&dyc+5$oL8Q+EUQs?fdODjz zj!)m;v}e(j1xcekEKPe^_eVs>@%9XEhi6O+lxZYU5y%HFv$4rL?peTd-%%Q2A|sN) zHF__lq zD)u?F0qf->8qg4`h~?!&#r1vyW)0l;a35A21`2gpu4fl@*w3-a^5_|!RD0tC)MqiP zZKvu!2Pm+6P!Y})r8B*Y73#UJ`hK(oz`lVn&9r<_&Bl$-?G&C?QMxqm#1HPCdJi}Mz@!luRMC>-AA^qMHpPdLst-ArVOL_)5ay6A) z>?T9EcIn$+w(BZ%A0J@=1To=DOiA{A|BXwLVj}=Cm@zI2{#Zw!W79wV?sp;7XIflVF1CH`b7Y>=YY z(Ch-H*U#+lfLUYJMa#gzz;dG{!aRTv;RJi2{mH2xk@^&MHR|&68NX_}LU$HcSgGNV=`^CuBwWvT`~9vKL0M7%it5l=jDk+3`; zFwJEmN^Yo4=~DpBxcWc`d{v~Yp%&HM$KJL`=X8T)>K_d}|Er-J_$w`glJb)o1;V5E zZlLNj~ zcD#<-{1;{Q#^=ns>ffB?kJ&TmDtnyJ7xv>TTW#su(zx`i*r@#7FKL875PM~7Er~VuJX>{vK+PiVU=){|A?A-nqSVWf_ZS@>vZ5;*exAIObVpqSn9qoVt>D*%H^@uyp^ zweGu*l9ho>y0WrTN>#ODbF$k0jcLa(Hw6570`xZcwIm0Ew9A^%fC_SRpn&2u`>dxt zV~ytx3fN|}n*HC5%l;s~YRaN7iES8DYQqQzPXV&XO1 z0R)AP#oFZ9tNrl&y@)e={Pvv~INfXSt%beaFE{7>q1h1vctd!mVRSU6Z(rwp@iz0n zVH)Gd+|I|7%0IjWaKG8xU1Kb>0ODI_V9$s6`$R7~Y9(D=7J$>Xl14RKE)L*_U`S|r z{NEj>-`t~{MI7PlW2I7U8yUVP<3O~7mbF04K+5fB8+}ePVB#%E4-b!nNGKG#YaA03 zC*!jJ9NXU8(cyml{qC#d!`(PZQ&ZC~do0Y%DLxSS@^Zdle@bir?cr0q0PiQOH;m5a9a@z=a=E-o(Klu1M>%*bUvGIk0;vuhg^ z6gYz;iZ>Kz=fQz@<++d4a;PNDk1RvNKThaZU`pUS5v1n{mj}PJwFHQrnY}md;&&YZ z5jt^A25=$*^_Pva=f|IH;;V7YzRG;+=;WA{kzqWBdik5XxKFT3)TXVieej8oF;Vsx znaTduMEfbrP^X^{e)pR5VG81Q2KxX`PAasAH0>O>cBf-umGZ*`aD%(D-u@vq`v|aV z?m5+V6+l22ygDuBp33XDU2OLq_m6>76`KChQEQ)so+r@NNVc|cs`!+Y%^^GolD}@x znoDo5Zf)`0|M(y|$SPpK_Wq+TnczL96Zf@cF2PYrZtZ*S0xwo}ot#mx30J$i+B#TDY&xYHB8g2pW0+Lb)lCP-t89}W2)W9cbtgPrXw#Ik zvn$@)+mmu~3K<$6mIerO_0DK}%bkKlLQ+lzoR+1`&2#pFLOu(y(FNKQfmwb1gUxa45z4RJU~+BHcwrycMukl;z&d;I_R`6>*TAyE37AfcKI#Q3 z4K{kbk;>^2tfm$->GVKkf)Sv`X>qm&Qvb|sv$uChNs|OTvP=3n0W#l+3zu)a^Kp1F zhyu9Tn(M~LBYnv{&3npCyV6yUOa`+xdyed|jfF);u#@Z8ub2DcPFGXhGgguXUGn7; zI6kLo;vj3*0}~U>_2^Afl4%C3nTod_`taSDJWh5drm~X6U=HZ!uW9W*n@dec~-gSv4GTu--%0#^qzVl)`1}ZwtA!O`f z1^oqX>uQ>036ilkvyFpS`iX=l<6~oWKGzMtd|X*qa=Y(JA<&7(in?gtf?U#Y-ZF?z zPNtEN2-LV!jE4p`uOz)}fKG8qC=MUQ;L#?sRE z#K}R`G$jtOl9EMleIfKv)q{kTRLayeYjXmodV?YuPCqsZ87VDcG0II9@v2%{-yS@< zN{HMFy#!cbZocz2z3qJTXv&}Qk{>mG7iQ?g0jn&0I~)6KaqUwf>5POL-5Wtn+lx&;G$L&2RqQh z>WHdDHelwxg};35!WS;wy6PGdrBMN{vXM?%<%%+9rCH(u(r?USK(Lm%e*y3UpLIh) zAO+SE?1uHWk1iukYTM5R8(+mgj%vh>!cpBh-WG$1tJ?^+s_37jZog=EfBzay)VXiS zqzBw$`J>!C%Ulum&-?QI$}5~WZ`#`go~wBGnD=%`+v*}&5eG;x+I-}MAom>LwhTP> zhc$sl$rgp&+*}U-RSyllV!SOTReB-y1+e?e)YJ;+H5Dc%rmE2rcvZ_iHv|X3dutvR ze9sMs+k|^Kn~tmJc+dtuBMfZ4(jwe<@1A(JlPi7I+S~H$>V^ynR>m59J#sInd^wzp z%t)?hGZN++m3?F~d@`mk@MA;^)l`<3QP09w-6hQ369u-KiyZRfVXu5MoD4IpgSH_`yspPM0c z@z$)a{E}_kUq1(6#d$orU|xISj@>lUo06D*-WY_~2U>1&T zy><%A%#fPuF%!=YCTOtrMVTWmgnUj?Ka(A8{-%*f56_*y!g|N={qFmnlYunWRAdvQ zB+-E!7Lhu5ihTt+6s=V%D<#6G2EHbC4)5mcbHDIoMCj`!%@^;-A|U~NIAs@)E`ogZ z-2@$KZADeIHEsj4B(6a898iH6O+wd%9o zywA!Tu7^!gH~{-n+>DKlKetAWSKCjLPU@OZ*SVC5a&W8~3*Kh1n5+Y0mHIP}!t3P1 zYKiOr^tBk>8tQN2q01-Cy$G4U@qYc}^!VW1Q)F^^k1k$q65WTs zaF+7%4lEjCbF$q(_f@oUl{|v36bRtpCRbvoG`$R)k98^(2?4U>_xJABvuG9zdRfc? zizMeh2N8hvp_hR7`Q!BF4%C8^6q4Sdf|I5>${IH+Lrfp^EAQROSBEx%Zk4nA!rT7i zWGG$m;_8j#mypi|L@?i6WaI3SwV;u7y^qIw`%~G^ZYiJ!fsL2CkN9m}@mkxpv@7tk zPm2RjGmfGPI7&7vRFJ20W%wSlX1oF%95*i;8Rwf(5}9pk`8Uwb+E3MdY7PpeL$|Nm zDJM?Dg*I=0lr;Y~G&;KCx;aKkoJ)Rxvr6|7Y#V(Ib??H)C`0u0y1GYl#U$#2g; zRw_^Oq9eMsDAKd39SGr(m8nK+)X8J1?zV0?fY)YpfY`&(#CxD93TqXcILzwNq;=85 z%fj#M#Tq`jnUIvU)07|pWu0ARwQOws^cgoVyzKiqtT8@O&G*SS*=sjzsPK`XaYWlT z(L&ly$Xx`px&NODx6JK?YZqsNdn5zLf_peLM9*8q^?e}uT^WSO@C!@r7Y14*(8dgj z33t&1`!Mz&))zw<=+}=$uRpxi(7W<^LMt++>oU1T?04PNB~P#1kD{Kr&CFerEolYL z$FJG@=(;yXU7|x+92SvFU5&(tOZO7k{Cp5IZDt?L@0C8s81=Mj^Bk=0SYqZE_u|fUz5rhtB(gN8Ecmuq=S0DnpqYoHM z9JTS@Rp-53xdZ2n&`C5a@iJm%`lbD^TM$5|pX0Nxd?zk1%5PZ8$k#T-V5H*Wak-2u z&SSvN$}VJZ;XGVj$yY6Ug$*~9)8R$=9de7k3;sx3G+jCUOM?=dfdEzP50)aWrUXW9 z&LeN`0;S@S@89PNPTi!~n6|F=6SuW_2mZ*;_Qvxld$W^yJGn24g9;KLTP%m(n5uKJ zo=)N^fIN_Y_)x_53D{F#|8zn0?OPepH$&_sAMGwI|G4E)%@v$84Yb-!j}+;Cd9vj* z7Jvs7=G=P0RrbEVzK464>Lt0)o;k$t^@)m?y>lmg7zKx1|b5Epbp(*%S)Jffu3Js!-;b7P1UM0L#0&d!V@dDtq*_ymc zsl%b^YOhhGvs72F3DoZU>SxILn8*C+&Te-(;59DL*1H>gaK~zo7GR`}Io9T+s-M68 zi%#bsW-uZ7^^%8zqOK{LiBI4qka<8E!FOZn-b|(`+eOm#=%y~zMWFR8FpL(bcKp6V zUrydRYLFfIu=;cYk6!R0BlAYo2#=_5IpBM=m(YM_klB>K{Q4FT{s1sg{nNEvKX~m} z_r4FR)<_D7Qn~7S9Z7afK_Jz7U@$nFW)?0)yxDr(W|PYn0@WFn`eb9Nt--J4SLM{! z3wRdUi6+3~HzBI0`}&D-lutfqOk2{G@8qKUCD4d186@s}`TvozTD9dbj%Mow?z zZ4Ta@@!TkSg{#wasqYQz1vvgbJtJT%JU|r$%-&Q zDHtE-lSp%a3PC$~$ z)!Id&RZa_roy@m{NW_;Qhes+Zjf9tV__(=Ofrj&daUg7zrSAqp1`*oA`B1oX%@{RenIa?#~yr~#Om15qnR1<;(9L$ciiNd9ucPn1@T|gi$4N4B0|3- zMx_E)`=Xc+W+>DEnZXFNw&*>94rDJwm13(@%qj)Zp+d|trHIl?f-Qi0a3{mFX^{;G zCztB#1kY^Uw9w41iSQE<9(|=)pO#>f-l&#%wvhY=cKx~`pv2HpWB_M2P?a|~G7>hJ z86GA<4{MjDcNOUgczrqEb3Ww~-24>msMEK^Qsw~!X#Cc~5gQ48CIdcz3Qc4(Lq>Zk zdZYHYtm!e**FADvp7@djak7F>Fy)`x!vCMxloAiGmJpTC3YJ;VOp0%GU))__c*YTT zZ1=uBj@E``&2s$8HKN&27POn2TYYP5mYuhEH{fxAeW3`GiBx`vFAN5V>m=Wc?qj(6 zgqPmFefumOMi;1ytd@p_ka-PVM*E!%{zbi2zZ^a(JG>H8oPai!$c$EIW zp8BS2oTA42>PCGE3gvlkzb7)vc<~U4JsxX~pyw{K8i>u!E3R?;AdXj@dzUX?o}RRa zx&n<=gdNKomNQX(TQYpI<%lhKB&F+FqM|73(GR4*ElwR%hmn!WO|ukKT}keZQDLcV z`R%$NmYeFmOlzVVTie>M5+6r9jR1S*(kCm--R|;&WSX0t%$uP_e72(EO^!>!)^>Jb zquS-Cov|$DW58H`ZH8oc@7)sDAKN>niv8h@H@Y?Vl)iQop2o4x4mx%Cc8WEo`@p;^ zDF61W@e@-s5LAd#r0>#ow}d=-qjxue&VeC%DY`;LBtClm!gO{1hE+#nC|$NU$ezKg zV^Oc%9tCVx?WGhhrA3;k^0z!qTlH$JyAH%|Jv zj*B$7??wp$T9Qf1|JQ? zhfLUvm43FJs(IO}$ArE2HhfhKUXndiUPz~AMs=XxDXUIt5A6AfQ?ehPmz0#8rhx8= z@(5`2!1U`~kJfis{GsH0p3^`ak&n~{gQ@a=u9by3c&N=2CQrVquA&klz1Ht@1?BQ$*X}#zne(@KaKQdQ218_KRk86Hv`KnMi}2K>+{r z2L2g7{>O~J^auWW21QYN15bxka-OyKoJkzMv23ZGy*>Mtd@WNCuGO_#J;R{#SNI28 zUQ@QybuF4+_HI}-!bzi}v2?f=u!uD;zy$hRBSp;RQ%m>+fA2PcyBChamr+X~yQ-cN z-?%ft+}5Yg)~KZdr)$lLUhdgOni4OQoj!gcbmPYL+L4iwkF4OvDG}73YU8sLtz4Da zAJHqiIy!m~$o9P(_BO3JH@jEt9!O-)UP6oh|Q z*{RR@ITDx@a)66`LrdwIyQks zSMD%~m3uop{_yNS%H@9&=iyuJblu6(byHbB0s}Udzb5E^azVcqaYJd*7!w|k{ff>8 zGSC0=Vq(+)2$tWa%R-l-ZSZ$>^0!+BLOi`M$9l1gR51%T8UFtJ2NaU}QA93>{qT~k zdIHq?LCSymj1q>@cf!;YG-Ex;l|cm`8g>Z(w$7hfEG<@iVv=RHOqJM0lH%non*Z*t zg+v2kj!&@+lF-0)Ao9O_Qt4)fZr$O-MN>c0K^_CSiM!YTZiw;oMoQhUusSHHFVL~o zn1J%Eh1tmZ{NCaJSC=%z_YU;1)=-|&VY=6|yz+nY_C)och!(N9hssL+eHA@>UQ&kh zP!4~-Mf~O#3%C&u;&+l$_tF1L!_s#L5Hh_>aPp8p(w%O8xPr2S%a!n zV!V~OK~>Z}%Eo_)PDoHQH)xNvuZNoWulq!?OL(F$XC}HkcPqjrD-HxDkcO0(M1Ee! zJ(oaEem7=J91L%fH zLo_C5N$IZ(u3u2VYsG}>b!3IUYyUV)zb@WfjABa8)8DKtQh;aeHo?Zm3C>AkBc%4_wckW|=k+ZBf}-tW4@=enYK`mb z=|RWdqoCfL%SWV=-p|jUr{SQ$*q&RKMXR9uF2by7TjUXuIHn zMp2gX{k0P=)w(hk5EGX}vE-F(^Xg&Hy)CC*&AENJ^n77}%3J$-DAv*QVqs5KJPnNW9;o=yoh8E|O>v#h_*U7q`(Pyj z=w-eB0F!CC%W?2Mt4!~Q4|jHMmC|C4j@}*`sy0qE;dlZ7*qjv)FJxV|EZ;C+r{T&r z{=+|y3ELH#Pe(W_#=%i6HtMWJuiB!zNR=7sj7{+V)gqyue(c3@+6ZVU7pub+Q=r#6 zP^hxefXzXM?hWYmsI>(x;`cqVG=rjMgE0GA6;YVNkzRR<)9REHrf|AJLAAJ$+h4}w zolFFw+IcB;O)%_Bd% z85wx`T?_VoVh*$6!aL{{Z#I=`xjm9~A;zF+h<;dxLdz#plV<5EfuG|QEp-np-Q%N) zgi4&dwY~WLzjktfyZwe=cy4Vmv#$i1r*Zw^N+)5=i}xs6{g#9j#RSbuNhUs=vx9mX ziC}>WbJ3UwRuu#0(OhsfzNq~Nc(`|LJ8JqqgWwncC|$2e$qi;9Gccse6u@BaiVC zMH~05vcl*=SqQdAKwCWvGe&O?Q6S@wvhyX?!f;{%?Kk7a#dH2WxD zsl1j4sZ{WcAS~5k%0be=bp#OS@~=nihd=PEb|$LF6>au+$HprxiW+W4-}RQ zcOYZ?jj#Vzp;c_oL22KJTQbsCAZ1fa&}=d4;3k#zm+J*?xihGUtKKo`fLSxHLUO>h z%8Bu`Qmz;}>r;Ej1Z=4`+de2Dy_rq#P%5Gj1_vBG&WUUGYl|Q}ALKmH!3w}TJ6sB?ZDc(6IsVj%z?(}fH zq$DJQ-7Dn#zdMrum>7NJ#1p;T3On}^&O~? zDN4R<`EaakSZ3{h$@5OM_gpM4I1>~xLq^gy)v8m%|6$m_a__}Jhz#g1-hO1D#~MK% z`-elZI;X5f{}jhK`7ck2QGg;kX6+9|hV%LzM}Iho6#H2k`b!d-8zvSLGJG??JLp+< z_$xY9AVlgR=GiJYlm3uJ%qJTf6nGC@saVUIfxTx2Xxu&WUcry5T~eO4DjQv~>Vu4Y zN`P~(EZ$X7Id5&?DWGDF2#}+yjw#-i$qLKfA1DBn4FnjEGgYgd%QD%qjUJKdu;2x; z!*vod)U{*5<1CjblsqG{Zm4a$`wcSRp%8og4@25XpylFWeemS(Jk|B{T^&}r)tMdz zoVe9xbBTLa52a^_>9@)?ia%%!FT&C>RM%`FBW>NElCyWzfs}0VslZ$#2OUcam7R$s2rVRed})E`Ro$-p7XdRBHi<| z$t4ND4z)7{`to_JMF+--j6ws(PrK*o*Ymf}XYPNyGcB1Urmw%ZIg@d`H&1hN>Br7r z61msS4aB8Wg`Qy38An)lPR_DRNz3{aVCtV`0;ms*_pqKu-f%f!w~|7MnJPMseDd$9 zretM$1M;2fM(bm8K;35Cm%26<{9b=XA;hU&1?ET0){vNFRyd8}Qf z3l!O0iM71?t(xO8{92wp(Pzb1QK)LA%W|8Epm#U8TwOt-~S}ucl#62zx zWoJ4UE7NkOQa9gS85$n<8utzV!A5+3j^tm1kY9LOvFikkd|i&Pp^{J7%U@#IH>}=U zb#%=?&bDqys4SDwjbS9)vJ@>}?KoUs@5ByT9K%{z%Ufvu2p3`G_rdQE+WoO4qvQ7+Crecn%TE z8dK_bW(xgm@HeT@XZZQnR4vz}zk~(Mw2Kryq>9*4L`y=ylwT32rTw)$#+{l#xUNuQzi`dC17$SGA+1Qg%okCC}S zeOWNUS^8qk2v1s^rO+DD>pP->Ix?f~bSjOqb0ZCzTah+rVF<~{WXQ#NT|dCym@F3W zS&uP3VS}qMX#(;PT`3`O?z4d>k7IG@pr1^MniZ%hKJ1N{1Kz2skHyb3_T`T4n5@9sK``WDPiuOplQZY3A{rW03T^ha0GgR=12BHik@J7BLZ zb#x~S)bnE)Kq1*U3I~S5iJs`<;(alil(~llq`xLEr0jkX1w1hKh2*|=?=KAlCehMK z6}Fbr5gk0*d*jDFJUKPXQAir0HKz{N-JCua=>2#Due?Du7M9S$`+_g~WG-kn>##!} z=e;&%fbcTuPIhgQD$7ze{bqg(f12ONpaEGKs@E+y`(&XKmu9Ql&r)*@Tz>PS^qG$P z51r>`gzGT*F3C{*l$E8fUK1aSa6!Mi!>edzhR>L@EVi5Id_ko_yq92JUfy_-&ahtT zcVJbk|7o!sye;&@l#B1artgv{4l{byhBRaVAVFdHir(9+IXykS_X()p2~c{?zYhpu zemTS33Lwr4r#?fqz+6GSZ2aSvvV2r#xVG*7I#2PZPoDvp-RjD(g0{H{%^4{LOB;2} zFTb0_b@4NdntbocR%02}jJw-aR#wv)`qccp;M$U`2cu+??SR3Nx0H~wW68Zb=rt69 zC2z&!@{1@JOM6VbXmX{1b(L9~uIJS?Sj;lZn&Qz(1gVrGcul<{Mf~=~-e~e3O%Ob1 zFKXa&x|poAF8RIK2*D4Vne1=m5KQp1=;|W1a=hm6YC-y;d2cUfFm}dyyqpwGF}s_( zjcvkVQ|R2-s}9248ooki(GYOW3@Xiy>^dT}1b!>L>4>PL^`xbLZFP0WrU~>7Co+qQ zOn-Rd>x*{VJ=|SrlZp$s?Ek5uzu-sI6wZLZ2f6-bbWie;_8QtA=P(eMuSTLvpH*)L z%6z)OyS^|-e$tX5R2C{5{PxTM!FZ)EDiyQ7QhBSQ@R2lnydcXZl>Or!dRr#=2bVnDL)4N!IWl7`DFw*RPqSG=3fdF_bI$v|G!5cv>(p9xGlS&3JuL7$orzWSTX zczWhCe!~^cP?(E;vsn176N5s^JL9tTB^HgsS7#e9z0mcuORNCW0j!XoLi-?atD?K_ zL1DI3F}={!acHfg?=qL2kX+BaNr~YCD<}sXxq=)cYI(2xgbv!}Et1BYdAakZ8@1k8t*t5yVD{j-ZRjist z*T!y4ZJO8HEI2}#wThxo&$TsR~h~#{{F|QHqSF~2nehJy;9TWAgngJ0)%aH1V71nVakN479G_cChf;)P$l9{>wUGR3C0PT?Yfo;Y)UghRynL$6?4ERnw2&R3WfqsysI@ zZyitt>;*~^)3y^e-_N?DfZdbZkM-9ba63e}AHd>v@)F##{V6?qEKS5Nxmx{9;ud)A z#%>OMl?L`G@^*=l5dCL4qM#i%Z+zWqkWM*e$twfLCJgQKIQ=`LFX~}>Cr|nx_wdordI;m)+bXPY5@%>cz;+x7w#&izVO zMMam3tE*rEKnyp#uTSNO@LmbI__e6W)();H<$IK9KBWx(cADdRU~cE^T-n?jbJjqO zYhhSsM;~+moq063UYF-1gLtq ztpkFc@4!J65E3r~6Gp2x;cIJ5(A=gT$X*7Oi;K&t_^6{TdRwHo7!Aikwl#g0W=V>W zGXOb~&(3AvX6-Lt<>T5K#hb3-B2}Xdy|VxfR{`#^g3fHErRoD!$I$tySABOS2vE!5 zg#dAJiQCKQt;v-}9JZ;1+7)Guw#FV%Y(q~6?Fq2x{b?CHvLl!w$5*BczYuEv4B8|V zn$0h3X`pQ4Q=6BIOk*Qmsx&b%u)Xoj9=eq*^T;YiM_bZqo8=rPVvl%(Fz!hi_Q~oL zxY?L>nY>o?&kssu4k~#@?igoI$B#N+IWudc-ujn{3bo)4e(=3F*Z9%_YkzOx!N@x2 ziZpnDC2pB@{5O-AB*PxURtx0Z10yz~x>!46FJW)DLV zX_2hH?6i=TqJynjgwG!M*usZ;v_fVNhXkLNT0$Q~@Lej-cbOpv4I%l5y;j z-O)E}q`LtHdBuhq82Xk|S~dz-MujcopY!fUfOuj{+U>BoJw;rMF3^PT*K~B`i7unU zSv)NV8jXo=+&El3d_U$ITOx>C04PYy?1tCbdKW2q^A52P)5F4^D8wMZuQ@ueRB`A# z&*1Y&t!GqAN28N^>oUc!MRL?T)HmC;UN%n2e1QqqZP~t$Uy|A?aT)l3oV^89l9mQX&Gnm5>zaR#6cUP?YYFW=6VaL+w3h#bzV?SwaIa%oMK(UCw!8jPUL}Q!_>B))HfwUNl zg4{B~9J|c&g$oxNwq0sg_15R34Je7}>1Hm5B=3*IAc%)lUou~=8GZ=juV+rG$Jt!O zR^*<{_Ls18Lb%2=@IO91#*qDI z5$yjgucjW~{`?(O3tHXIBmB01^IGO#(mcC`At&{MR%+8%-MD8WaR-)xPbUCe-c{P$ zf#WepGT^jrs0U9vyVBn5a4Fjmp{5(4a}#0;Kf&uFciC&MTmA}P1zQMlhiI$=80~)61!hR*DEZ4nD?|yXz(M8Sdd?qOQK||uzYCbs0!ipKd^;=!l-oA-oSOx zGVM5*Rc$?Wm*pV8vO9bpTWIQLefRF&^^N1>jRe-BY_H9EsvnGVeJV24tMDy)Byc?l z4+9y;aU*=+)|_^J(tVW&-^2&wFU@tzD8u^^awiXSMYSf5;Oh>EOKl{K^N_;ut^8-SV;x9wI(jt9u6QY!OhlW?Tp3H;;nnY)N86rR>hk>T-nMbM$}f^ zI!z5LJFG<%iV}!7oeBAsC9do7CKXRRsfdWR~u_=FN0c7WRnkQ&8pA@;ywR1T%M{|zr!e7I; zY#h?yL{&CI8x#kW%6yud`{B_+W%ha0{2|AU2$ni6Y->oiHaIb z0%y@DQxGZ8Q_#KvuCq&d1qE#yS_X7k2o+`J3qf030mIwA^ocIO>KNj*s#$`E??7Rh zhBne)hYaB3AaA_uz3nVt?Y{AiGS00wXE3(Fe8>j7&^6)e-V$oNzB%1kps$pXm)DIQ zuM%L<0-yF2cVC`we}Wt-v9iz%w%c~7IGuql^4GP{ z+B;1#&Qr{G8KdD|@(`=yUZPq)FXwKyOl4*sgiT{N-PC(Jou7(NKKe`y_rlRAKSOS8u%2d-O^PN6I^ulslQ zR)=P{qTY4PzzRZH3y|6+?YRc1!H$7xU3s>U5XB&#Y>S*Onet!1u8z~2z(L4&I1Ip~ zCt+NQn1PRvcTanWl@tG4@as+H zTNg;HXZPdm*|J%fhPnCJ#?q3#%=TTG>#Idh!VnA%dnXAyd7KL}T+GJP!403|rBbQG@UH0xPPLW@#xcLjbge

    V40RU0h!Iwm>6T)vT;<7^9)F@kSWO$DaOdqtq-qr~xEa&ovULS6!B>R?2 z@#^1~lI;KLc>i?;(_Qke@xV8K-^DLdFMxn0WH~dRf|GWXP|Mw@&&P_WUFdijoKRLl zp9r7ev290d+2bJwB@=l&z_l=WkT7XCJ3G6DA&f7ttk}yC`()-7?D9X6+S=rYzKXud zHCA31lk{{^E~8U4F?o}3ZDDcIuB+nWUz)*xTU`J4wEkL?b+QU4C+6-lkJ!VJ)adZS zf$Cl3UYjQi77T?k2&-lqb9JpQeP3%Q_YeiZzS!oPs#DbSUi-l+=1=t?Mv?Q?h&(cq zd-YU+QVB1=;H2JkpY%yBB4pq?j{@uND|0Hmhmfkuuu=7jtp9Xz!R|{{GF*^PP0idH z`cuo_($2WuKD9JOp1J=o6%6-9@Gn|!RafKfWRr>?c` zZl!5(ISB%kK9|Pquci5co2`SEkJSenSFEn^yy(Dfd7!s#`Exp$#F486S8D~eV*w=7Es=LCAQyh`r5 zDn^wJPE34p$dIB)Vi*Ili1Ao{vBgsuxC<51Xos+;VRc>(xeoNkpKv#+XM|BJU>9UQ$7ovz ziuFFMwR$b2>i_0yZ%|ut2>AWnw7+?5P};k$k1URfcs5qeydoWMkfhgj7QsY@0$@Zq zu^lzLSMC557)@}$f3M!UJ8KB!95s4Pot<0;%F@!(GmLK%J-3rQNQBA7+F6O(KCh!$nGJ1i?T#bFt-8sjF4 zGPfPGp|P>KoSD>;%uIPOsbK*!SuqPV!Hek`$xowP6V42L*v(O0U3jd0v1z@mwAT}m z0-SZZY3~%X_YWF&(7yMQcyxpTY^72j=jAos@t~S-u7~C2MnvGd?&v{w-E0X|FGRTz zAVW@usM~*)#q~eQdJ|5__{lJs=%18tz2A0j-(~t6qkNQ0euSPR$W(MlZ;i&XR+p8P zRm^up6XrG+KIUE^BO3!f>jq7*`~gvBUluPQvx7Q#dVtGcHy~ys>@t)SaHtI?mp8{P z2i`=&*hEcO$Cww^+Q31*0N#qLQz!hmz(j7m=WdH$75w($RQ=iRaQr|m zY$?C;v3{lF{Xw4lNB*!SvJ^ zvXQ>`4!|gsPnI70Q-^!jpg6w^S?+y)(w%|{JsQ=!ZxHTjrmRQ9fBvqXdFtBjDS^<) zJg#rjC9M2W3jN$dyeuc=AZMuRL#(Xx@>a2aJ8#FqT!&{TRMlKuVYz8;p)1bQ_^0am zMUY~%lo$2w0kW?n;H0d)pvCTy=2 z_>ZF(pg^VnS5-<-GR#y7o-DN`dp|k0u?V_S<)5u7x*aPY<6ZOT4Jz{Y3*ZR=zI1^9@aNS*PJJ zk}GCl>c%-aHA;XU`*2u~*_|fcN;JN}^M+bUpDv3~HKoD}l zb&lTT{0ywX>nLIwx)M%A!udU~zqRiTpMb9~!X^@=y*R~g;agfZD$wv_hZ9g%W43*F zD|JJ2obIZ*3^PQSE z0HJ^!haUuK%%wk4??|d+_+7`t)ag5~@V$x~6mF+ZdQjgxqxOo*9CGTVk!o*G5aa6o zy&=?9d|v_}5%`(GaRo*gFn`NUacF&h(&)_G_Bu9o!E=I2cs;+qzrPr1e}nbUv1+%z z1WC6-Gse|^dyW&xKJrDj_yOQEnid6E${>4HMds+r*N8Eb+-?%I(eKLlhFY~a4G_4}^v&dKe{rmR{diNjzo5_rJ9B*+s)TEJyuF4-wD zBn&KPn~3m%89#sj#ZW?`6>9SJ84MtH3JlQik9&!vlr0F9^^6|LrlZ`xlq` z8dVY`)#u*h{M#vXXcf7}3g!x*(I~Xt_#e$`9r0e$5hfs@LWbxmJ*!(;e7_tW%knB) zGm1u?Ij=wWx>8}gJ&qsonr*o$C~6)+~eN-N)zo3GU z$xZ0Jez%`jzj~?^GJdl^FOSxaXIb)!mO7i0Rc=(Ge3W>d%`B$1!z*kfBw{}IW-_bU zWc5f~e!k0Q@#+?BCy&_NH}mbtC2%g%v38nM^jC4e)5srf;4CugCGu#joYQ6pkb$Em zi%(M)lr7|_;Y21gCF{Y*TJ5Cuyvx_Yp(T6R`uTA z`1UF`D<>o@tm+ay@2BjCR5|}K9^>CySjn3w&=aecc0_P-FEZeq3afkfeMOHrkM!;m zf|YNH#aWjNf#sPCk~@f`tg7&@>PiJAB|`B{;jKvBikn&D+P?LEe(q)VO%w+2_!X*u zRnFCemT(r-iBIP1W&LZ{*DSAO-+&C%7LXFE6iyvgk9hitcED66tw(98ZikUKb&F7FG|k zQOy$~q}N3zTpOkEV>@}>qr-g<)R(urKcF_AL3XkRvd0dcR(0RJargld6BC=x{vPJ{ zDWbl<{ww}Pi7N;~xkjV7UU2UOKr9F5IuDs<2xdfEVh0Rs3L8Lif+T%ntkfcdS*q*iaJP(t4nYH#ok zDKRG2jnVT|Ht}$8HE5DdLe65M+gQ!MW_)PQt9)jovGO{8+C6}9Rm>R@K#Cp7H!^WW zj#R81#kJhfPE*PLEWSYfWk!9@i{|_S&yx=fsqw5-G<2h%u4r>^ zu|;hxrIqo?%n|UdhkoAmTG?HGkkc0{$kGulC*K$Kz6LrejY{X&PV^`_cU%)DwP13~ z4(dhZLHx4QR=q-D)+@fSxiUi0;B z62LD9-2aQ~`nSX3|K1WmAOTA$x9VtXID785oQ3c(`_vISXvxc{GNwP^^YLhP))62Z zGCPh{6VzD6?$Hi;tu8P3d{&8q?2xw~4<4#>Za-LL=jj;_|CXzDrbe#~463p!vmVOZ zXEJiwzAuq2o(TRf&eb+E`2`i3z5ZaQ`sdw&t?TRS!%Fe_HqH*ZV6cpx!BKB?gA@RzkiPcoEFJul5c-Aohiu@eAnYwZit@1s%e0d~7o-&#`0SQ72)FVPRc%bJ^hI z*Ef8NwN&GfjCCJ64@*S4A=Ry6_G>>zq~hZ{-{A<4tH=Nh{nOHVv9j}Z?{fgq$Fu$g zr3j){G&uXD|56$XCGhvU{_kwAkyl&QV#?AE?u{tiqRsn)%z0RW8JweL&HclZ2bgXR z4$QmUDMwh*Z}bcV@A0$^WhLnpom zqsuA*bMQ%F*UXY1x{IKBznr`XEz=<5WOK-i=H7y$b*t>>trkYj)VkSK+g7)CVvw#- z+O6Dx$#*P8tnOupfh%#skj;T<4L`SRWf{;bqSx`IW(91qYA-}s%+ZNzgn$Lr8wErqVbf z><7Y0!J(lCDr6Q{3RpK9TmM8+X{6xmiYH_$h>k4X`-J!7lVnwUQB(TwS=5o+!4w;f zetWAk?Z-Is3;skOy2eHqAB}87_-5Vl=eJONYxn}{cu%&1Y4K{CPi*FHaxc}&qcl^` zMW@Z;w~{wOd7(8JRCZ8XTPykjoT7fUAsNVFjv+BHzTxX; zg5pEeJh6IjQ0LBPYxA>&{qB#V8w0}o=XM#C zxkatzExq7c$)%VjsSS1!>Fnb3@&@GN;Ul>>D?m;OGhz+KdoOEr__GR~4D9G>ydcB` z=-32a7iyg+WNW0Dx(O8iB#2CUa@|A6LFBRSNp-u9jEszcv)VGd<>L#RZfN@GG1Akc z^*;3qqp;so$j&=FsY_(?GA^nby2^7fzK+N$(Yeg%(6%KE)hKj7{`D*W#6&HMT0k09 zt%ov6tn;J*c$IF@QhzqQZOhbPhs|~@RxO*aoa(smS~B4QT`-6x87t`b8U`&;vA*)X zyV1({JD%m<2*xY;>8=Jse(L6^-Zu5+ZUTONQxCxng%RIv=qP?JdwK|xIrfoMh#aI; zM`Xo~**!p;3~BLuFe-*BB7KW*N7Qol07CpAK=5D4-|tdC{~$A-T-{_yZOS?|s+rl* zz*%ZmY8O{U!s4(J(tqw&aOWwYQ=Bfjl$wS^e^@1sV*UuoT9i8r*r+?1+Sk(4{wOt_ z(jk@^a|%OBXQ`>zJHM5^TgZl$p_5YE$e|vG*uJgmW+morwJM%3qp@niP>5A1O-=e) z#U*vIF>Ou6jWC~*f?Zm=;UH+6kiJ@Pxsq1$q3;fTjzkL6mRf)AN^Oa|L3fSyv!Tn3 zjQOT}aUve(ogoAYLQ3rnO55CgYfl&s$|lhQJscah?{t3@AM~|ID@b;1IjnFvzH=T< zC&c8oJE6J%_Ebn&NvUsMm(F%oR-cY4u_xu2dH!<5LlDT`MrfYh<2y1rZFLY??9^7W zVm*=CEDRZ=q0(7f&Lyb~^Wzwl3RO9&I8$BIU+Xxh6gA zxgHMHp=W*|-}$X;X-Uf98>wR*#CRM_yOD&Uxw;Iw?Z}8kc`Jbv-VlSCb3buA#1-eB zh!W=5|F@_7rN_55>_>M@Sba z-}O-HS4W12r3^A95t22QeG4DmbTT3|Cu3PVqyMnmS?FqQMQKOwR*tO{Q>lF!a#hvd z-k+O$x|WfWBDLhl;Wi-P`7kUD}Bt zA;llO13A6bn8J6N{^taz=evGpoVn-c6-k)ZRI{(T0OAz-_v|qm)&{f&+4f!$P5~4| z9-fYdn-a#+tci;lDMY@swDgys%x3l+4YD^t-<9aCv&tGYPT3{jo?cS2DQ$r)2Jj$f zHC4i~v}=kXyUB*+nE$S;GQy6^al=f?f31B- zIaT@sDo_HJX>oC8KlA zY#W>43F=a5x5R63WhM`GGKZIDTX*6b2%q63UpLaj1dqlz=~-zD=^Jv7M`RhC|IF`h zcGzI=GavK+SqU(beX=X+mCemdUPh=T!2k2=s=L8mU55b_+NOczYq~ux5c2|kujci3 z-8AGL<>!8WnL0=6jLJg=oKUz8Adl^?E~L` z)U~d6e!W;SO3O1QWIS}&>zC{2W7f<`E^y`4m_!WTOM9Wx@c`l4Q_ZpswZ((Uq)pg~ z8j$ief}L$w!3;%9&20^vRE>iIWq%KenrB<{%E3qIDj+o%@WJ3Gb zV}P7_*}n)~@1{o}7gMLOS|}oY)W`Z?(&PVoAK@x^Q8T$Zt0NmK=K0qjp*riW>+8nK z8x`)rq$VGhmO2P5NzRr7)7kPdXpLy}bsw9;_O-hQD$PW}FbHl_uHat4KV@aA!DJSq+EwqfrKzbYxN(RNWCI9 zg&00F#O@*iq`x_VGM6%?rlw|nZN%X_ly*f;sk)}7YrJ-xrFr)3eM6Z_Pd979MFaDn zx6qw~@}hBF+!LPaDIevtVG#21K>&CrAglR8&kufiD8`_+SoR})v4H(d?nrr5#=8eE z0BzIGoe`;YD7`yb%cN^5eP2gloD9`Kmv&Y}YFyPB_oy|1I-`2v{!mGBU+#+jytp{V zi}rY7zy4EH)H?{s@Ef0Ql=}lp@v1gWgL9reqW`oh_lYP4$WPLN{N$fX#VI59UqCU7 zkr1CTQ9gjbH7I{yKY}iCw6^%+0(6@}ET2!*B=mf`FXNgHfyzYJT;sU@N!*PcL|`At z?=1zCK0X>yaxiW5XZWwp<`7299Zdt2k&ogrBqbm*Q4xmb*H}adj)6Gku$p12KeQIp zh{3h*kDtIk{8rMN_p_%-B_&-YB_)*$@46tCCMjV#AV)sTSGTaf{*F1^M5z=&0_ADa z`1CQe^U5B)do65_ne9twq(`@KGxi#`yv(XG4ttQKDVRs zEOih2c~>e+53xOa5QS_s)De^XCpi%L{8rF%;LE>R-kd_A?$ z6`{6fQ20|r2j2w?s08W(n0;s>HmaJetLwnST#+^;l~zw>f!|89Mk#YEHNl2rLsq9c zV`PPx;&dKwbkE&T7G_GFjPnteP6&64(^U!T>s7(yCn=+~goSvV!ZyYkvpPY^ynEgo zV;GfwR_$&{7$t{P>+WODfq#?jOg&~dlwSx5IZzR^t3_dCt^(+zgh8$-b*DMaZIt!+ zK5itIxZd}fFv0;c{M2Pie<~f4Ed&Y?&VBpnYX4kMFJb*T5~N%}^)k&6y~&dWs&De{ z;O~p$iUba-R4}}`BIz?g`1D)nJ%|qGhIVe}V?1G6l|YixKk}}^+^3cUNYXWCZrvq} z<`Z*E$JC*48>JFj>H9UqlTNkh`YsnxRD=P}KWz-#=`YzS3?!;g&qKGkJ zbbEm(?o3K*m^k7?|60T%c4ZeHR|~^FuU)e4{Ve?#wALU0fz+02bGuD@?F){z=4*dq zY&4{|c})&eTm@3`Knfu0O4LB|+_rITQ689wMDS&P3G3# zqU~wxNK9nL&jf8;R%^x52dLFz+%pw2$H5%!^Ed&By_Hq-!pSJqmNjze1Yzb*r?qGw zVbZP;Z3rU33>-TMsF zOX{NboaT|WPKEL{%b$P&;H+F7%yXy_aSt-K!6TUSjT+tI8y@4iFvQ!9gc!u?5OkmO zXtbg6DlRBaZ5E}U8lE>^>QcM&Ok{qN(Z}cPaRfzZRi-J1aU`oaHb$sT7J=Y~iB*(7@yi#|Z7SBHiV$+Lzpi^L?Dhi#Bg>G9>ia@*yOTRQ(Pb6i$2Nr8 zo+aoVP#m<`9bVN8K9|!=_BS{8|EU*$T=6z0b(ISzZvC^C)J#3+iD?_O9i_1Uq3{ed zII$2hP}bSOZe6wz*qn}E--TaNX6wvY+{l2m?TnV{K%(Z?J0}Kn^stvQc(>p~>j~qZ zwf>T;|A+<7lOYkawhB+}UXxyRz-dX_CWNyI2}k$qJ3*$pKS+4az0i{1F@vsBm?YYw zN4mf7_t^`>2f9X-aRm<#4=e}fq4VMMT@H!L#VV;Pgma7ao97TAkj+((pnFe8b$yV- zl>mWt+21sJGh6D6)i!u6gfKNBA832i;#X@@@GXoFOq!SeE{=FLR+!UdJ5enr%yjeS zwu_7lDTpjl<`rb1V76tPnvCi~S5}tHPN%?n|9z0Z&i;X2J3=LDw8lf_ExDu!tPlP+ zl(mcNy<-1FfryL_p}su;-!lEz$SC zyymkFLLd<$4<$U>i>IW=N(c`U;c$z_DVeg?!}GI7g`2D*(8xXfA;q>;84>@dKB?zL z+u#U;)K^23h=_;-e}zteO6`Dtwt5wDL!dUBV_VVq!|73OB+!;2Pd%alRK4pbkZQOT z4`yo^pTS+#%^aMj-tJJ2!FN|4`B*j`@AvfRyCYTkhp9sLsqF)AjQCiB5MZ*?1ghVu z!`?ngN~tkQrHjEFJlC{$t3&t<!%Y?Z=|FqpwC9NyjN`;qsUHxOX6jx*{8L^S zXlreR_-Z^eQxCdBDa*i^l5ooP{d2=X(Y%MIZiJ=C-3kTX4keE69D81{a&@*VF?ElQ zQ%r3-|9FY$-c3yGkTw!O6pfFHnm?xh#0q`{7(!RWyTZRC;KyzVK`)87)MY=5OnvtP z0s>x*8(2SmRw=J&2A}q&f5N)`{kxGlt%!Hp>rCKwhM}g_K2!v(C;b8ln!F?}T zP0SR$r{Jl1P#eslSZEYmC|MU+`Y0+nSJ|Vrrm&TXS5Abv4UWT`ru4gK?N}M zK-}PIig?1~kc@ZU2^#i0E?#G9r34LgaMFlQ2r)yx7)D1VXZZ z=bhvpi@Gu4dIFGzAEAG^lkzpCzm3Cq)wi#~aQCH$@(xwxzdttgCa3XOGVzu*l=$0_ z^PidvZ?dnC3V&rW)of0TKRYZ3~2y=^zx8?}h#e`eBurwZ}jFH_FH9?7jzf1o9-xB|fYDCPk5V z>DtxP*RFa$JyU8}yGsQ%Q3}3xIqA=Ee*ULbi5KqNjNyoFncZD}?eX!THml*Fr{}eR zSmM6Q$pPz$Wj<1G+{PC;4(FLa zHl5i%ko>0cwnj!1B3)Thj#tRS zDX&mICyM@3`p3U&XiGi}w|rgKN=7&9q<_WaS6;>q#nI37+VU;cPuO-FcxgKbFgN^l z`jkRp2aBAT2qYHcq$qgp{HEl{DEcy`T`AoBX3+FPA%`hLPYVVaMlkgbB{?QJa zajeJRh%`-@$*ThheFtsq0kK?PS62{OgNr4G9aX4?>b7K6?b?WlbeDQ@3?Hw%AY9m! zQj&OVmKylXkkyA-Jm=uwcbz2OUt%d;4dgl160j)j}FE#DvF{t#v*|vm9H}5aCRZ3 zbp>STFF5H8hq_Ilbzo=DMuoQ~ELp>i=EWn+S+!xo9U3=Ll)!c6C17npbx05>X@4| z9dPtiGmI4$(eW~2sjX>(HXbXf;Se0-;~RZFB^Uqv@Ef1H(SS#qw^1W7SfEdb>jef} z;8{s@f&`0{=Fs3}%Jp9=Q2sd|v=7lf9O6-D;V9eZ6IP6>(tq3r3t#xotHnm(xR)S+JX&ipFD-`uJIBD=cAroi2 zk8iZY?0v1(yaemA7NupT5?*HusRcToc)I(G1!r+RDbSIY*G0gq;L+fU;z>#@VlN1* zI^(z=d;GoYSTUOKTL+F`RMhl+I2Y^=fZPQ8a9@YAn$HzxU3n-XW3BInRime5Z?CLc zTN`&0z(s%mrUhkc_G71}q!A(4t#)kN9YxmFw=E?k=;dwN+S@mDjvC}=EmY7dszCI8 zkY_)#L$1HD0vYJ?H?vkqgJp?Xg+}{2K3>~DPsmBzJq# z_3Ks*S@zSeB4y>|GCU@ghKG#mYyFp6sAn_d{q2TgOp}m)$g?dSeROLHx#-b2inZvw z!%~;O)qg+jLeIV~-K5$7(d{+-YZBI5g*mQ%?CAX+%(KWK8a2pgI}7^P&EbI`E{@rp zYsPNe1dvzHeXJMJ%gpfo?XBnOqSE`&=t;IU7TPhE>-*?%rk~`yQqBo(V;|Hqrm47L z()(=mM=rD?>C%QCf9N=*Yzgf_xI0GQc|hV=I|`Vn8R~2x(yN+KdSiWJfm; z#m}}~Qy~`@=;M1JNjnZZX)}eXrbp+Ns8a+=lUTxrpOc2`2Up@_V+%z%-Xd_JmkWFa zWzLt&8&0gIYsEMv?g(56dJGSu;!(>ct)74nZ4 zN|0u6pr}OcJ|eYn%{Ss@s}hZEykb#YIWeXJjOz{f9YT1X*kq{)^fAOQu9eWJMpq{u%7fAG@))R zMwcnO0r7=G+<$><>HCLUh7G?1HI*o0fnK-@nEAZRH z1twKBMTt^vfzaZuI1;UssO1DyR(62BhhS3O%%a!a(rh8#RE9{J)_HLxEG%tAQtL%2 zN>l3v{oao?67=KX73;W13~{s zKv{mSQKoyJPib4Gce8!yhCuFN_5(g#5AX6Pp5mKKOhN=4)5Gmf}qYAnBEhMbO23?^UrC8V4ijLr?e zpmDu9^;qbojE6-npJ;^h>Afdgz4tZq6fe;yGi8?wV5x$4WIv~BL=jgDJH&&2Li!Ig zu;vzreNkXLRO?*?eR20KNyi76?$%Z_2PqESunRRo`4?f%knY{D8@~{jlx^hhz(|i! z_4hCCVRm_A%vR&C$0!ol)je=QcWgnYIHW6N6UU(%Ren zl|OL0Z$Rx}ZDihBCiX-*Cg!|WuGPLT=9oxy9*w&sE-v1=ywa|b(&DHQOG^?s44=diU;UhRO*MLt(Hbz|=y3Y_LiHm*F&KTN zXW|qq8?RE;Nc(=*VCO!zIls(;*;Yj_lwX)>*O99 zyRrC-H#yi>3WNiLd!S3%aDuKZEG&f4Q!UXNhw!%@EgNe3*Z`%eCtQIGl9S%ggh2~t zLns!u(7pY0Um0%lCUArqAAFg*N8tA;GK(s$F0=tWOys-v*nKc+sjCUQvFhTxlhU)% zy&P>)AZa!w^nf!)g-Rvyw_e}-v(%a~1`ne7^n~|Wq~(~HnS~`>u#Q7xgHb#>FMB?^ z{ai0=8iuWwl4USSI<{_PRZa+2TPjg3NZ3AhRh2Dp#rUB!54409Y{x4H#tpA_@$FOt zpsc?{ot`5`PL|oVv%A|&Kd@;#I6~|L+euYcci|cb;z8KQ6!-I=LkdlLOtfuj_&P*) z7H(m*zB*)%$ypT1^#2OO9a_igp*vs3N$YU?mKGLXkIdQDyK2@oUdVz=tzpbZ!Rws5 z(9z0DX$C*y>9gNAH`o*xaV)Y~#=N>4XSXCrxbOep zTSLG-C$7&Ow6?oUQ;NuvEBXyi^sLuPdDeD|z%$6pigk%fvo$!zwuqaxk)u#aCfG07 zV9mJ1ZAd4q)^i+oq028~9Lzxq0MQc6;WyY#~!V+3(u7|%`e&Fph?#m-z4e1ZFH3vCiHP`^~toE z!9y@1M$l}h{w7?rrADT}8udq^qJeuhK2@ItICkuI8qQhLtHH17FTRGvI9P)E&i<6e zi)W9{O_-en(cGP41hOb850?zg2pFJ}%W|B##YnO=MdU`Y+_+W9-l|f_uD-a&w9D1O zbpihN@hr=w_fjGvP!bi1f)`ruH{(jvws=1l$rFVT(r~Oix`JnZ)$m(8=(As4Ad${C zex=)Ql`9$<)713LSq!_BBmJ(1p{Xx!mQv-C%%$d)`o;SF=B=GYu4hEGfONt4fwhzG zrvN28+6nriBZ!CiQB)TC3;&-`b-Bh{2&RRw5Iv;W@D&l(ecPT1&wS=9Ow}iWT?6ZMqN6(Lo$M-Mn-<41K==L-r z=7z}KK@ppM+2@0U6N8ZVfsa%hyUz6Cxb_EA=I_UbaYeB(G3kXlmiYZfQ}@>qb5*m% zU^K+og7m&X2P$RCJDPm3ylm+remFJtfmph3t2P2cFw{o0LWBt;R#52PViU(l#0|s` z@)DC4N}Y23gO@HA7C+wCOF}Mc7N4Ke8;^`TUkVwuIwU*1g1f-GzgC7q?RHJPq{vxl z&lp9&L>G?Ur?jfVmX3~RZf`EHtq9(Yd%jkdr~&tr*~$Lela6ys3)>6!Z-1XP>1%wdDX}nHyr!@p(#=9^U6VjWigCsx6YRRkaMvI zlA8Kh=C7_Xs0qF10KIYpyu0V8AL{oj_OohsH{m%)}M|#Vb!Tcw0`3aN0g#HtdzYh-{EezwIx@KZg zxk}A^CnL1_wM+FkpOR-gUf{IK*2o*=ek1;+cAG5o+c&Kg@pQkin$E&S}X5Zx95yr0fzm+-19R}y8}Pil1HLGdij z@_wzGP3L2i`0zCIlbb4{u8xdF3BK&@9F6o9L-v?GtQ!w z1;alNjl;@AEk22_g0o55_zB;M+($i|!$o#T7U;bRu&l?$=9T4Vt#qTupxy zLy0{VIB8euk!4S*v+dp3v#_{$iJyUiAu~3NdgS#><{>(IY`v9Yhng%n|B`LHVZ5F* zKjn)mucPuPyKWm^T5uD2OXmy4koE3*S(?AzPq)>=dB?yYZg~uMgBo1C zw6EQ4eZckQJtfvXkY6yGi<;LdQbH_7wTKN%FwtB1tj?eDjIpe4*FxmYHS1jFR*5%x zgB9(F(u~k&!Cl8UpVd`U{U6faJFKZ~TOYO;6j4FCprU|El@gE=8=%rfLArp1-g`?# zRHUo)8l_|&HthBb!VTvn2+N3R}kZN0u8a^pnYg5&e&YT=3;C{CWDYG=|-U88Wq=Uk=S z_yLppH_iP_^k`p<>b>?fL$?p_z!CiKYw!(yci-4guazIiu~dCVRNqw}OG6|~f{|hd zX`C#c+Af>9rq8fOqQ)I3BhJ(yB zE}j_x>jAmpT_nd&dO_kULsu--5}et&Zw2mXRD~D4B@*vE7+fm|U*V59;nK`a3Dm6L z-caRJDo^OzkahLA(I@iA(9m^ICM;L$tj+tN*DO?4))lE?EU-tE2yW!`zNq;jExQfg zLD@08*7BDO^!_6gx~mPd^Yiu>iRBRijoqH$B&;4V=8zpFmi7A41C;7P zN(Adsn)IfSUx)U@(#JJ%^K4)GShO60biWPKY+m-nUBxC&P^|H ziAfl>cDW`!E1cJs!%}hF=hMYyaF6e9YD!2i`aeVdK1C z{%Jd4>1K$1U7URR+Zz#&_Yn7I9LL5}wo;O|n0C&2f{|P-?<0EY{;R3p`+}+90q%Fm z_-M1-%wEy+bVdAw2izq63#O*72nn6vRh*NV6t&>ePSY4PVcaOrF3p~35i zN4Z_^$tN#O_&9(>%#2PNZEm*Gq*cZ45Q6D|1W_Y{%!bctq{qu(xxdob<<}dsktM5h za4|LFw*WkXVoyKc=UW0tFtbQQOtI?G()dgMrDV@RJAWqQcN zO1W4;lNoEwi(^7#pP!=C8wgEi>0o*F2Q}%ccn9CUp6TREx_E66t@2~0>0|t-UM6xU zh_=Ol5+$cWo)fmur&e&0SiQr&N4OS`U;KXYO`)N;Lvdsj1HRDbH;9SJLVG)ZT2lxGkmZh3@wXhKVl zLc#v3M`q!r9msVpvoAq|4WYy+h9)z4@Y2B@#whNSA&^KU7>;v?xdGJi>Pkz+;)wZjTWFdsy3_rinTT5ik2)p>EF($s?~w- z7nwtHb$Qn7n0Omu)oRk6NN06pLx9G;y+Ln}9XT*>vAHM=>AuhO4rE`~AT4eb<0!sQ zIOW&s&E31zurhZ@tM$J-jbD!CR>0YBGb`ql|GnhQ(V?eX8;JkdafUabHj<`|+G@S& z>UKv7tl7Lx$Oxv2TWB{xBGaLIIo0A4&9qmn-mDQz2x3{qb16~7N1M!=uEpnZdwL-T z?Yy3LFDe_=O&_ruzJ^KHy(id*RF+W6%^p*xc+8mA8mWf<`S#=}YqYTKqWYz=Niln?#X(suh#mA;4u+dH4IEQoOFz{&cmHln z=YcI%#mjz;G>vmU@02TeocDoza=6`~X1Jdn+aCB+y5G5r?@OS@<5JbekGl7m3gOSD~FGAP!3z9E=l)wxq^j> zzQ|Bu8QuK2xwz`J>j`&bNu9I9&$>HPPH>`Z3ozHFvwSXHF*J?1Vbz#idC?s5bM&ZA zobwspCjU|Wz)C%T2DD9qkw}9qOVz=Wr}7m^qD*cXgR!P3WX<9H}tt!!)XfN|mUqD+WK6s;wB1mk6-8CWy>shY~TcMqLcjnSM$q z{lRgOS(DS-An{QMgHz5~Ey&fqzDT3Ts~9%9^A**G*& zTxn>-nB5B;1W4MJ#H}N4mJ7qk)+$Lsq4!G+isetESgoM+J6-k9YvYu6j&ukZ527E} zuV6ca)h-Zr0H%SGaS$&_|DZebG;n9=Zx~9>bfSh2~mu9JKM7Qv&Kvro-{rOXkR!BR+19(y40*LL7wxqaN4a|ZMT!*V*0I8op?_SxWSlaruFg{}{ zMh6ni#TlVa!1^Pb?}ZM*{MuQU;WHoN^6;@BA`XpnOa(MNqIY5g4OZv#1OBB(1{x`+Zo9k5OL# zZ{FkInxFr2@m>52-Y6RFgxW>{SyPTZ^8}eL{SH@o)e=Xttd$;oFxx)TZ}I%QZfcJ# z6Bqub6=GylAxh~NQagBWrb!Hxvsv!vKSOQ9KO#6-FUk(Oh0m34xf)(_3*Rq}bpCL| zE*Jw0P^i3(`@YgoW*`1RM)be;2)OcX$oE$1vxM-te#S3%I`hoU)YqrM+tyTXE~D9Y z2-g><#VJH4L_>EdhcWw!xACA?N66N5 zjfD?Flt@GO`V^m0k8@HK6FLa9USKd`YqmWoRbC(UjLMiZPR@gxPJZ(WssPMMe&t|1b68Ed}=ctG4)cx*l3n?{8hv)Rz|VqvBJw!eBw$TmEBhL+JVk`#@ub` z6tM6A=Y#AwvaFG8wPG>T)8RIJZUECl=h0IN0YSp6z`pdkLxXyA*rxe_d&sbdtE2B8 zER`WdaWkatpC zbiq!d{(E8odTN2`HSl`F-~|)RAL;b9-5e4 zf#D!cG|TO0fMy5-t#M&MR1U*@=gcoNL>12Up#cDhn!%)_Q%KPzX9g*#_EB~ZRH}Q^ zd0%v7)oLosMXM?9-|ym&xAHe1=9Dg^J!5&2-9A#4kUPe zqz5rD=S0gpjV5gSf7(|7)AoGph;L7dnA#ZB~^$nX)JqD-X7RpVUGvbczzn{c%FQ-4894PO~}m z#k=&DoIG`sQPO!xt)r>25#X3V) zN(VHCTo1U6d1*M(-VIaq6&$i!7H9LN88b-mS{L^)+=(_VdBP9+3ng_gIRx6=c&eG( zv%43S|IG{f%dUGu*;@&B8on?p3IKEPAwu>#wg9^-+pk>GUgGs*4!a;8OW9d4vy!2* zqVxCcgklJFwDay%Cc@j{nK-HPdzK{yE#WiD9_PcNO7;qv7e_%VnJ-d*f9SK9{bJ;S z7EdPM^)j=bH}hYjEyW`B{Y(#f8h2fDd59RaNFBa_rI_e{#fbMWEhTJJG|i6{=fGTH zphms6-ap2<>SEJTmBq3%u1hsX(V$OX@>)b>Bp$+}5LHzL#|&Yx+slNd4v(=p>z9n@&j)#G zFHZu-XTC)rFU%G5)s0lx2cQLi{txzN|Cxa@Jx(E$K4yKdi@~+ORNBT+VhCAag$zz< zuIH{F{yZ#|pYjWGNvpY6Du9<|-o}8~Gzw&6+|xzC1gZUNw+Vt6c5k<-Tu(^hD}pGM zKa4j(o=%D8U6Y+pvOXx-;wh#ybd{Fx%gGioN;Zeu%jOymj3@pPNnG&$Hd^VC;XeiR z%P>9AYa7tA&uQoc(0-;lfAjh1R@=^e4u@4*b#b5MYR6q1=+mb3_R|8-Ax=(Clt%S> zA&=URa@j*i=8wF*P$Xdym!x?K*=$qQ`u*?j`L z5!%*v4man6_G61&NkDI94X<=NfBwAn=+e?V^v6~OMa2O(4bs(G#=~og05Ce zgL+k-1L!7;4E2j&jawtWGqSK`T#IP>Hb0-~wq9z2UXUtR@X+@4k}A4PW*r}5EE?Ld z1LTnC=;*?nwGwPqS<9GPa_Vq|*TH@6&5#;AmxUhZOp&%eGpHH;#VY;nk6%>} zJ)%P;bD!nSh=7T}8;`c|R48Nw0#jlpJSY7V$>|)Y97D3xOCZ@=-=ucAE0K|=oz;7t zn)*?qx{N{6e9FlEyNJP{u;Z8zidCb3Y-nU&5StY^W@)u~qd({w|9f`)%~|`^-;2n9 zs&t9DSAPM#jJ*?Q{yxai3T0yP9HacZe}vHNr%OxTWU(@K8lZ1Qa1?z#kL6Bim?3Ce zz87Hj$0)~%O=K^>5@X-|mJB>#mMS~HIvx=k!s?cm*1;e%zUV$J5kExWm$YGX9fxZ_ zuZYK>CL|WV3TdDrRm+MRL>B7)fTQdcW9N9=`FTo`w&d8{s!2T=+b$siq9$?K=QUCS ziDNsX8{McH<|buU2!A!vpLbJ#CDO6a!+BAZMvAC1Uy)ICj4UxGZm7~7*vJ~M3NPCo zS#;LO847J}YSI^x_R+vMlMQMlm85o;e4&=^W#uG+1!fP#N;8)Q6_JL$stz=7!E7Zi z?Yx&``<#H-7&+ol4U|UrN_!7gAD2+s*VYRQ=*2RR%Igy+Ba@J^OHwZxLk5rs=`g-l zz?e&J%;zs~o<^V$l`t4=e(s4IKX$Dth{JR2*{Htf1pmB8)q15H7-bjS>$RL3Ioy6y zsbN~D0$O*;m2MXC^Dg@rI3g_cZdJQ9K>^*)_J%+vhTWC_OGfm!KPFBcE6|`irRf?a zJAuhO8kM4n*{Bm?o(|9K650W2ci*gcCiB#zmWoL^iE{fZZ7HAxhYP{zosiKZYl#${ zcf=;trY~Gpunlc_2uN;)OaadHuNRp`tYaqt&N!`#S_XC2!!m|^#h0{3k6}w*ywzAp zujKS+Xw&y~PP!y`au63*l+OA?41e!6R#xg=n0&#DOGiK&o~ac}`aN7IaXU6YQqDCv zpDM30-#q2;{=CaF-UiX+xdvLy((Hy=#61p4nlCYQtG|75XNL_gc2iNBZ@qksl>Nof zZTs26QRwDVN5h*tK=r8m??S=ht&K56_1ILlUGlfPi(WRCof53pQjQsJpk*BEKxD_v zPkW9lov`XSHUrm~uR=TV^7F?oR&FLqD6*w%jKO!#!}Lo9c5|DgfhZ-Fzc21>upi#) z{DPws3eXcpj?%CRi@C8h%xtpzztTsLoDiBW=*hLkYGR(a$9g8yKtc1c+w{aI*UfL< zB;3|CG6ZMP{@n*(*r%V*HHCCc?@sY*!!+iOR&IF(9LDuqd+ioW4cY>c3wmM!{WbQA~)vVs-U1GE8T=I7ME11+QN=| zgNgTZ)lYZu9^v@fhJXcyU`Md%4^q&BVYg#klt%kPAvNMw&syiew3GG$y zGxO@r+xS*w4btM2|59!Gtlc}l_F>Jalg4k8WH#U3T%2Iko0YaqquLd$HaW$JPrG_x zC&>8>b!h7O^rz+Dwd_iFyr^>m_!exa0=Arooqpa0KwtJRMmNAKZm}Jxl&b73nCoL< zK*_b$H0;+NZd;G%kVAb|OV_F4qk4z*SkM#_m0ozGI$Y(kVO^#^(=waqwlb&hBGW9U z%5r!bRB8h}LF>=6y1oqD5r|fL#{zZOTp#g4gOv#*H(9p&FwnzXZN9109hmJ5mL z)AJaK&kVVPKuN8{bG%>|*0Bd9r>*XsLvn}^>N*-Tw^tH{r1Dg!r~ zy1T8v~ygq#Tg;Vu%kPS0Yp#)|#y66UO0 z#Y3q{UELMHSHY@cBC>+YKhzcWk+} zeN?ReNsUglMeQ6j0(8=-fQS-r(|1bLVX**0MXT)9^>Cs(W!?FIgzp?3*2?TA+FI8b zn({bOC+XbiKVTgf0@fWZsy{y4OpVm@FDn|vbYcff9T;>4OQ2v1(9Cz%y!6jpB5^#6 z5W4VWl{o73Px%v$&PBx(@IvJi>dxwfV)&gM{7|u6HW(lD$Z-WCVW;*@A3h_GYbVb; zWOK)p+`_rSjX-`i~d%Up^F2?e_>|l+Ii`L2cHjmKNex$i8kbTzNxQ%lP>=CRlA#puK>ZflFRL ziUEJw*fJQym;E-%xo;Kw1wfja%nSa`*D5C<@50p`NQ80hTtW)!9k!rPeyhrEPSfa| zUq5c!%tVF!qC|}EzWAuSRfl$d-Wlsp@9mRU?|!wP?0i%5zQFu$i7X|-KJ-o_nqhj6 z4E_tmN42+?Vw!IoK7U@XQ|T@uL|3h{v)#Yezr~$mLO9_xa5O$HZb{KaN?LVhZplCN zu3Q`sd(m>PUA~w0=kFu@mg~xock5}$&&0A?tZn85baizX3Oo^`u3PoQYbF*;!b@MF zA(h4!sb3NE?yr&Ttva$n~Ht?fh@rOeCcAbj>_7K!N zXJ+bYP(4@*(u$}TY*xNeK*~*-`;9<^)5_DDjJ_(O<`=A;Hgb~Ms7vW_Id^YRqnSs` z?dfT8Ur|!h#_2y7;Cqfd)ZI^g)A+G9y`WpX22(Pn0y<;#)D z%}95pH9ThBbOY!R$9$Hr4#GLtN;e|snIsAy`z!8wU4i4Qr>Idj@C^MCB zZKl2E$tvb2uYF;_wuE1YeI$<7`K^d)vf;-+`kd~Yw2m2%$}t<&uY%@~kO$X$)X2nc zLTA)}IWvEhmGFKr=rL72l^doDp5lWM5;5{@D@bx7{G(p&uw?=Ar$jH zs{9|rmr}=p2tR97c`d1LUahy+N)vi}Qm{0q&ux4!_-z2CVfr1~bk>{^`?6O?3 zh@@Q)+mfIen=xF>hn92Wrgz+G;T(0{-H%6{#G`N|8GU__F>MMu^8V903V!z{>wuG}{E(>vjG}1r!tqz9fu^05UOKs@zoTj5qewy%lk%3>& z5e|aFAY!obTP+$tFQHh8_hib2+s>rqKdfX#;`*O z6FZAgq}|!g+B;%#&7eQ)7jeg>cd_}PL6F02_ve@`K)DXu9?ww^{FWRdZT_Yea*@>y z$E0y=OkmP{X5+!GS3y~xW$&yPe6qgz(=&Mc!pM`c3%0}bm~^Y2#T?$;#T=ibG-bA+ zH>_xd-Q~r0<-v*{T>o?_SY#3_AE|t=trezX9}967qT?p^1A}zAP&hXVVz^YM*%Ad} z0aH}v^C>sjE1s5kp@W0y4gpS3UkWhPl~gs5HPtbBmTZ&7rW3pT%XIa9DCBIPI7^{T zY!g6Ol9PT(5Fs`Ax`6fcqjSUhrdio_B0%`1_{xv-DlQ`KY*_3^cKlk0t>T{Ki}hVs zYQk@M+BoNx7cZBKgV}RnEwl))UD+8UEyPr=52^itZZ)%uuzL{g2w-SA z$3ryIm-I{@J_Lprm(I0GpzCO$meRxtnw`6yP8u5N5)IJVPYx3fH(keH-0rLxE3zCg zJjEu)=(I&vP3OCDX36Gd$;PM$b=89lmH-a(Q;KZrm)YT^HWd?07*qf1MxZ}f{Z(q| z8wn?e_#ubl2$3`twHakSm7Zs}BBkUjR|h%G`gM`I2$L@7HlRYG4uV(kkexkq$@ zhD!8SborxV1dEhFK;I4$Zj~;vX*_AQ4pAz`bSA$Y(4&`0*f%Uli z-KbG1J+kv#UF(k$hTXq(5`RzU&QSRJ>2C=S@9vL>Yv>7<;~(@KEK*^`x7E3nHGydc z0GKQp0FWr}LKYn+dvGkXiiA(kn5^9Fl2=tFO1X?#O$SDuU}$5Z8<`9LChQBRzHWfnKZ4R$E^?9gm{j563{=H89;`bHbmc#btG?8OjqJorUINR?TTUH z$tH;c?yD%xd>fn3OWUApQ(^iGWD!@Sz6kJH>7@L4w(}xO8rNl?b=%kPFj#d|xj>iw z*oD)T5^m6jhGsuw9pm|mF1MSAAu&y$FGUeZk<~V%q-+;#mn0ED=l#n@xXA|j1-i|H zMcnZ@Q=kzx`UHQ)IB`YtJQQ9_t_Y`EaJxhvaG1`pH=~1iBD|J-*libcP5^4Tcg<~w z98%FCcx-)i{&bR!!uK5lhMPU;pVBhE$=JECq?q~t4QK4 zd`Mkg9o1L0E<(x2vTlmA$gIFWN*ZQm^2MenY&$!aNn(*Vomy7c)?^wQJ)Fl3mzG%k z8qr;o3D%94Bg45%pq#&%CU>^jq)mO^qNDvltt-!*(EEwW%iq{-=#d8S~aqT z1F<`EH>1A+iQ`t=dyaMO13(Qk$<5eA&2C2xc`8X-EzWqO@_iJ8Fh0Kz;L}9by#8o_+P77PGz8uXK!x zdC6SQ^ZS z@iLzp0_sU|_xY%;S_U%I$OtD3`d`G)EEewkj z0P57BQ|a6@a^dWwTl=>HgD2 zt@pQvKy-kUR?6`-7E_>OhIOhBGdr~8(JaI|fG`yjY`=kuq7)yfJ9+$8rl_3mp0x>* z@e3K~uui+-EYA&Td`^+pm_L|mjAEq}l8LvIc&+HY7Z$7;zI<;^Mt?udbvT)q=Q0CC z)F@t7@TNq0oV?C{SaK;d!~Qe`Mr=`$sE=AP)*lht zThEGWK*%lGY=8(+al)-@IOyl%?5r@5qNiaJL_;dmNQ*X+YwWD7!gxI1x($U=s9SA5 zLWPK1Ko)@+BvIbp`+de}RXzpjtc^7mtgh@#)Ng+LcyU8WKv3}gwg}c@1dQ;}OK)y& zj(}GZHyErfYj&=qcZ5LXL)N$_^lu$wum892_h()J;LueBcHEOMD*s$mj6*}c8E@D_ z!(itBK^E~2y8HqtYa=4Q&_rr4#+8+O41X|#R@0H?mGw1irVwqW z>VX)h>Ji3udUP`WbE{w@43SyZ#wjT%_$Db{J6D^c)D3LjtHCzz)nG3|>Q(<>dVhbo z@9+xusWyzQxro2jGGI4MPJUowVQ-JSri849OART~J`Z&hl-S>}?4}E3DNqZ88@V4>`|?AF`KqiduAA zpY*7MFkSxqF9wGhEaO4{5f?w03a*a2%em!MfccY-14kgJ(-a!agMYh2|G3%z@WER4 zfZ$<*8x?JA&?#|H;Qr7Ri7oi}^ZH|h*`pR+A_Rqutw=!H@ut{;!Y;tNz2G0ceB;rU z{Tpzfj#+0-hRayErxtW(7}}C6kN987ui9bR5>njm9OcfcHK*RFdUm7W#3u&-$hnN+ zXPNd!qE{eFLuyqAZ|r`v?7luPIw_bIuTiN|_74RY|9fkd%p9u+h1UCfg;ryP?3v3a zghInq#erjjfrG>(0f><)X6tocDxrqw7HRTtyIA<4ML%ay9O zrBWD&`x7tzQ?L5JkA(MA$|`(hKfyAfyhkRuME@JZCHAA{`un0=LT2m_Na%jKD#l?c zlRe5t%7b#Hy@)8dhhm*ih=_jeYrfa@1+pevepv~pNTJi`Vw4^k;>7S3TIYOOa^v|Z z%}w0-C)oq{qah?yilU&( zzAsSW7g6rce(@S4dO(v_amAz~6GVxceOgBmlM_HqWzGnsKUd(5Ksn;f(JwEoR32Q` zAN49CCAG6f44>Ij5Au;S#ymf&a9mvuxfLxz_CP}OCnnVYUZMYd#XI)>E&rEW!ms`B zO<%iVMyHZF0~vhqP(S!D5Nbh;an^R#uv8_5#rT094>QxEYHOG8?jgH7Pqwz)(>6S) z05b|JDY;3x9gEkI%b|3oJ3&QiJM|k6^nwg?`i_+D=Tndfx36=~BQ&Xr+Z{-Z*NXn` zeihQPX8K!anLqHU|I>%zz&*l3|DNdM8oYqzvxdIw3+mr{0dz!{z7SGAY?17BIS4W+ z*X0Vx3)Xw&g{g&~iodC{T$J}@A@QOQh0Wq_iz$`AhdrRn#S&Sva)YrG>!3zy?G2h1 zJ(&c==)Fqi9&JeUNau$FVJ#*=GgY%miPMgQI*cDNlTaK~=_Lb2@k#3!7bypi(&*^_ z^hE#q@-1F(%Ko}cFPaCU*3_JgpD7bpaY?B?A6y!c&TPh`aeLJK52Aw%)19Cx!*v&Q zH~=2DMctidnsn2iw8^Kgoi%>>@rJ;TnHmQ8-zG6gBCh5^;Dd)JS<~ZF>Rapv6;-V} zXxi#mt{DNb%VplOGmXaJA;b3hb2GG*8MGNqx`o@NKyG?BG&HbyooLZNWPR-bQKS5d zs4jQ(oltGVorib+lQ-%*`&7$+NAd`gFlBi-4W}b$r*$IrLsasS|6$ufk=fDF(elR% zOOJBf={CvBli zaMFwc&L7?Ygzvig{c?+KyKq2#R-MXb@&!k!!2h*XM&3Y(5@$q;^*Xb3DPReo(#3YS zYz|*Dv%O-VFl(~SnqGOaW#ceIy6&xHm6{_p_PSanr}2PSZ-#gl$NtjR=s_7@d1n6o zdD$$)ApA`l^j{F{|8Z2Cld+>xTLr*SSmBm8kn+82oodYjggU&wB+Ow z9zMR9*RKx?2?|=PM?|*X&Q(u6mY0*$-V29mBRU&(w6yZ<1{F+9B4=h7>~jHl)jC(- zWMN?=R9WdPH6*}p_t2`RaVB^&Y{e*{u&(SBGg>=)9+FBYoZNPNl4gmw?Yl`~Ayj+CuO5 zYH^5Ok=UQg3MU_w5A1RDv9_EB&ZPCv=5c_boK9gVw**~qecwnec!Xlwl9eR9jZzeaoB27PXE>i>Ata9|7|*9{oM`&|;3;8Uqrs}Nkx^jojTrx;tXPPh{fr{b z1qKntf5`j%H<6Rwu>uq2o*bn{%fU4|qagOXMTsnju|QOeaso&pYuTE!%O%gxAr=^p z08X?q;=>z@Zy_PJneTP=eB^uVY>J!OvCnr79<>pYl1imr@Y4J`kJ_!35LMj{L~$vVLQD2I|bl;?TjE{yZExpt+~GD`)Z-CiVZRQNVxp(|`9{ z?^vG~QjPIkC%LSmu$p1HDv591g0wYUiU$fUTz;t?FT3RERn_Dxz??wz-yD0j$ zHcv>efpS>W@x^o{w*1~NQoLSQZeAS~4?_ZGxV18pe}q9m)EUjg!?RrnbB3i^`nq+c z)n<*tJ*!*JVuUa-ck?e@XLLXnY%pO(hyM^Ce;ky>t+?1JDq)mO=tkba+Qm?>qo<;h zZK~L|#toZ-m%de|+yyjmz~QE{q+iPw&4M{fx@W@LJHFGYljEzx<{Gssbb{i&u*bCi&3U zE2IXuPU&6?pJ5fgh7|jx&LdH-T2sM*HeD&)*Jx!Q*CYwBfj@w>zk8v7cOCS)1VW~e zOW)mtu$tk5;vvozqxP+%U%WdpTxjBO1^)Uu&$fZu6@p276kfvlo(vYS!(gGj7uea$ z7l;qF&NT*FjvAJ=9wuP1SeOBuAXY1i%j(+nD`yfpdge2C^(Wi#!C#S6W`> ze_;>nLw8(aabj8haLmf)e&k<*>D zCyJiJv*&#h9?pXvBN0sUem0 zV?NK!d^hSyU~U%`5cn>yeUAoSNa-Z2Q)%A-?BKwGZM(T|wF6rEs{%eeRQh8`XC3_* zk#V2Ktt;0j#2u63WhP=*zvXEfZkgF9jP*_S8MFWu&fBS`xNz zysNn;ZkCHx&*)4w2+n~8x8+YA9S48ncWv$a;KkUcMpog*tN$-*+5M-#a-kTkcuLy7 zggf~{g6=hTt=Ox454v=}@y*Z|!0f4zx!XGn0__?7W?PM++iLOJ-dx$|%^5#n z?MM%dmW&hBErvTLf+T#OOI`zj=_v3IdS2IuqRdjL5(R})eH?Gw5;YR-lj9HNfvR@C3y~LaPBq+eR?; zn6>xM9bnJM&OffK5ctt_T7ACP2IQzlH%@^hCg_(E_dB&+_a8xE?}uCEq@o-y=`ADN z7gAa#7n0bh#h2Po*+D9i-@v@^t~YH-rpL}-d7bsrV9uTrImTOCm%nt@O<^_+uXs% zt23azS~{j3-8RU#{d(5J2*p2{f)>9r22egs?&3etMbtI!9o;-M>5ed8@TMbJIG z$zr%)HH&ocVBAmXuc?AU2aklmiKT+U(nicy!2BzilX2>er&V{JBlOMYV=gEzj9W8B zPy#$H_?D@|!EE;UAkq477O8xKERtC_XtptW2d}WbNdwt>K)+e>tHGdUulL%mEEAp! zCs3j(uTOyD`cQLysPGyMO183gn9&RfK7KVy`(@6&FCW;&g^19B6)GQl{<2GiJi<(;6kh* zFAY_1njlG5gmDixN8MfWE^z~=ygN@I+xDyhhN1<0af2+=y}?i3T8!bUPVmHhZ-SBq z39;2%E^)iL$xWzq1hzT^w*tmq^5SxKC-sE@E87eA&D#g|EOCqyD>_WK#cJq#pgr4g z1mX$)j>>nFut?<208$XS-AxM{D#}VLE?#ws{rveV2#eeZrR}8Bt@hpaU2W5#wYcGt z5i5#(B?f2$2y@kB3tTaLZZS3oj&F{kBX2-Ar3n2-?4M?<(c~T9ms~%Mma6IykRwN~BQ~~CCS(S}$fER^>6d@ToK57Tq;6BQ z&ov(VJvGCZ&8bs6yQQbJw@u!2q=#`{S4vu(=Z?=F?df^K7nMU5`wZaVn6!v(K=!wW z(v2#m(`iW|X^U*e%$7i_-;gSU6Ur)^X6(xsAF5e-gF%n)1|;*Y3_^}@ayH6i7u*`) zD)8R<(Mqn_xkYvX*F^7u?jNs8;iMQ%Egf4gof{ct&Eg4P)iT3nN&{n??va#q@}XJw z@ICTCyo`A9VF2e*QQ*8}-N$~>K+~aKE;vtJIQd}K(Bn7Jh3*v!bVyQNGxM z_!|>REs4NYWPtPx$e?ei^XxnI@DDtX>U7D@LOBYAkpVAu7hkJIV2TbNU6;!akz67F z)MB{QaqSQsyy(1vDl6@&eBlZgSu9Uof;JzbQP2m5i9Jwp<6!C&AVe)2y1fC6$9-H{TT5Tj4(sWu}w+aP*9TNC=LI`QWhOZtZ4Lsoo2{D`UQn3u5K)j?u_nMy%A(Ya1@;JS^GY-6z`k7A=o=a?l*!p z1>Ik9^a5!_fvtzc7F8GTN7N2m6b9@?>`*rgFCAKfa?=1d;` zCtC{2ic$F{>ge_J68IUD9`+QUKG2qQBPu#N7oLvSvFZGB|H{E+p1X<}CxKAoadwn? zom+tsXc7MoK&3j@XhCNQ$fLIM{o(ylH}}ewSC{SMoYlfua%*%cf^a`h(mva`S$fz3 zabd9f;r7Xn6w7q|_&$gN^e>9W4yr>{4nN)k8vN+=qb&@Sq;owbh4o&d|2H6`unn(l zNSFk~Wna`Xmg~#50WorSMTW46Wp^SKkLg`&%eK4bBDuPB_sQLjftL&J_=NK7ySuyc zMdM&H?$QaU4Y_=5(}ue0c!<@&=xL~+;DnMC`%=~G1rr1=ow|3MrF!+cBRZv;D37Qk z4(5=uV#LLo+0gv`>`Y98V(&?q>SY(ynVtNq_jq<9soG?rpkdI|$jC?p!sR(VG?qJ7 z1+f;j8hl>;z_y3D%)V=3(g!MTw85Y|8uWPN0NN7p5WF|PW|;M*G6AFo6Z zq&{*{dG00jHgv-Q8r!J2*LVECDh1y~gZ0nx9FK7;iv6~wS(wKx{nNOv&r?}Rp{v0E z62RzPniulYKjreu$zYd~q2YQ1j&OJl3XSGex+CbWuRn7a^C1*zWIRY5j*HHsHED?F z({GcIzIWy6mU#ob!~?ck5RHue%yhR2g-Q{3vhPap>@^l0IN%m1Foqd2x~fk9vzUEz zVF=L?m>_+I#V0=Q{gb*aO43{ipqKAwxcoFk1~m(>-9PW+*R`jF{X^NK|JX0y&XnuR z$g%aaK)0FvFF9SseIr9ks~gZC#bS`=B;?^5!-Nytl&p9pWvdk%Fst7kV(Ci#-9_KR z93#HrO&KY+$#lU!K7;DmAA%KKg|F zmHng4*qigLX*=7A*Z!t}l+;Y)d91Y;GsLiISdX+&)SiAzlQ`horD?CU8i=uFzk>Ah zo5OWA5Z3MZWZR=b541xyFIiiYX+yENmDCe{G+3ob{^@UzTO692n&y3HQky=wsMQdO zI)=Fw$nLJLq*C{(57+&n+qgNHW5KG(o zyxjKcIGE@1dhv+JXz&S3DCpqj!WHEf93TInCkZpQ)MmaQpDIDPc17tB3_3rExx)xz0`nbV@%3FVP ztHrE$cYTZu$aqE}UKh&N`2j&21PvTMOGw19vGsC3>TqJx;gVGSajcXQXKLPI)!MxmKgorKHd?a^}{S{-#V__0+S4T_Vk{o^WwEzn4g3vJdYopJ(l_vmi?dM$P!FBwAYc@LAd@dBEjIpE(Rd?fz698C~i_o0pGM<>k(hw7>3J3ZFTnGV^4H{@&q3nHTPVx^w5wi+wZU zt9rWx)WGyS7@O(bJ}~0pK%21T<%}e>RS?=F#-u#9h$s)(Z;{D(vf_A^2f|9Lz|??K zF~JhPn%s)wlUTG=5}y)+b$?Pl!X?A6SJ6*gTHs<+ zCTy+j?)aBWlU6aP_obI6ka`3mij*gf`YQB{smg&Yd`@o=o77;I_ko$CY@Xla;MIP%flUR9>&Q9_oj_LcO9f-DMlWx7dOq6e34%ml=c`6hH^nC=2-A?b zzfND>7`GdBV;J;32;)?WzG3XYMczO>=c^{lwVC*yceXvsGXC+U>A^WdyF}l7`IvN? z+{S{nYj5TN?4_|!wbTO-e=@1|^OhVdJZiwY9B*mo;Xs(dDhWjDuXDKA?=DT$)fyv+ zSa#-mx$-TXHmaIT3M{W8uCT`%-1Uu7jDY@@Pdv%C>B8O+cBcrrABmrCoxG zeSw%xG7HKl`}3zRtNZth>o)l2G-agp0$i)eGCEq?>rLr$n)XSm1$hzTmv52Pj($uc z?qM?{8IdHG(JmhSDpZB#E_~DxgNBibhYw>)eT7dF{p8L&rHF5(&?+vDRw`KRR5$QG z{rar}1fS~+hpmP4VMmFcyP16ie2)KW-d1wFL)!q3eU}(nuH-I(+8O0}TGFvP-^tP3 zvxdD8)E@7YM#^5mixubZYEL}eNo?{^8xw*Iw0lj~yS5Qe+A%gnuS@U4%JY+ANFD+$ zUPobVamIR{%f^KAvE9*8x%`K?7f1I?6QV;E^>?n*#LvwR*D->eMr31T_njM1dCIpn zT!1f+f8dALoMaX5aQs?*sMK?dYDc`bYOB8Nh4}lGWpw4NKFN^Bs z=t-d?=Sepj$x?MWPoC*-E|4)RRg2`KhSP~c=nadHB-VfB(tjk?fBo=G`=ZM28c)YL zfHy<&t7V=8k9I;#YudxH>=o{Vh|K?wwX+V3x?A_Y0)mK$(t^5MO&M`mQ@9R1(}ZG#=9=rhqIIvKu9m-AUkFP|ILJ$IzGvRs5mVya zaiajaM%TDyR)yK&?;D2;?=;BZUfoGkWR|cqSpB-yr+~jhG)PxD3}a__Cn;Vj6n#n=J+9jC6k`>loCRAo8kEEz z1VqggTBe?`&luKll2(bKkogG-fB4Z}l|xv;6#3(KsK!SNfir(}H9Q2!txCr3muzG=XE#m+C}ESDS9nr3ouf%I=&dkG{5_LL>;t1O26aazXp!U2n2UzN zV=faNx&Aa|Uks$~r37&+Og_O(o>ZoV1O4r&`BIk@2IAPxm*5cPxt7UqL@|G~@%?J? zZS=JTezWexA>Gydwoc%zppNSwb(zSC3n6oj_Q79egO+PXEEy;korSz1;k#L{iXFd7Uk7aCmfJ=$Ao<>cWfgLpjhQU+L%b|rDtBFm{Q zvPU8v2yu2X(^{;a``Xli5AW8UB-p4&u%lGA3(`FOCZd#a!%(^hcNM;$wKP(~TM;{L zNV0>OL(gVg&uvx5QTv25>x!XMw!1yWH5YR-vdfY5jz?b7dG7a( zUOjMqH5C?y<>4|hy_CuK?7M+u_Z_lmsMH~wV=8xdsQa`ZQ@pW~$dt%}FBx>> zQceEzHsf?u*Q4(Zxq%#nI%U<6hf}M%VW)G+7klY+C`lVZQ5aUoYO~n)SKPO=RmJwU+r+q z@qPvCe4^-4Vfe!XLoQSh1p(mZV@qS*(6D2so}%)k&@$81ZP260J9OD&^7Md?YIk>k8p1?s$^ARr@@w+|3+ZYgFiLJ%8Bv|ooL#T zp!#Gn+EdewzI9U&{04?Jea^%jvETUOMB~;(iOe4S2m{T3^ET(C)j1;ehbEXd<67@4 zE)z7g#VPRBp}g$eNU0~ZU0e5@Xyw8#R!I8Af)Yq)+}3Gg7`udi-j)3c@kb58G|f2D z3f+oHFJ}+7qwUdce6HKvkHNdlY+m}VQwK@9Z9#_hzP?jyrQ6vX<)e+Yeiuxn+$L++ zc6TQ5YLnx`__4BuHE~^gF|yodVD{YW6pYwL*`B9W0Mm63*BRQjZ3lfRnMZkz8{*Q! zq$=ro*gfx}RWX*Zo!voG2rZj$y0y!go4ZOLcKL_pDg3w%0>`+$QQyc0Pk7mCs(V}z zGFuZ}>ZdmRxDV$`WKR3Cz@Dn`>!|dH;|{Ye>pQwYnZ`Q?XOr?=<(rRjj!Kv$8@{-COjeay$SU#xf8;5Q9j~FXop9S*f=BDY2uVC`uBpQ{zj){i2mef_Q);<6%yt& zP%hU#6l}(i@?SNItM*(`1YrS+{7IamU+6_eb@#h{Zw>2FQ2!Hbnf0cr-1+)N4n9@W z?bm!m6}=MpDs4A|sUn}={M{$OVN zG)JMsz*|>Oe8+MkyJ}9b&SAwyd1=`Uu2$X|KRVGIPcIbAV}d)RG?_`G?Bvn;Dxop~ z8Km63>wwpi`2`pti(5^gwN{*!T3^2xm6``5reT_;_Vm`QPnbc7`%N z*uls7%~MKWlnXw2+)MmK@^W|iJiTB__ihOS7e@g#Zc=b3Lf>);F+zqbi}5)Rb39Ia zgA>^tvGu$7^1hi;++lo0Ja%9>~Cjaxmc?|?R zX~V`{%B6#i5gx-_T7~R73(FbVH(ifi&dz&<^?y zRb6h;z4$F?OvDAF-|FNe%|A6*C~dor|EitF5fJxj;FqKr_?nn@7$SQred8Oz<6X_bkbG)hW0Mjvl+5 zQHK?48y48u@x8s>!K2rGlrSHn30}k$gC-B|aIh}hWg^a^+HNyqRL6sU5RVm8cMU5F zXIhKU$4?)=t&g#-UaDpuB3>(M=wyVH%&Io0|$FV&gcuL zGX$!cG!XMT6*p`7$kS z35$DsPg0zd{csrE?2L%Pk=;I<`cXf2vj^%^%yTc1gGOXwwaaHINrQgkL@~k*@pdxd zZkPRH9~|Ru2D91=^BF7^*`M^5#w4IWTNS3qzeIA3qeomOHkcSNt5q&$pt|G;cHqWQ zg}!S~;|Wpcf+O)7ABI?4JT3=OG3_R?sH$kVJy}a!7OS}=`5EG@W@q2Dl)cA{a+tsoCgn;?$ zTi;d@WeRLp;bO5)Pk>oy>`S_=NtD=DI2l#!jbqvi&HF}|FbM~%Uu6)j8;!g$QEc^O z_1!x#)q3)Mwm9rC(SY!TL&lT~!?yE?b;;``xW{amN!=TA^x42&G=Ej=sPo9h6Elds zgM+;#Jo>XcLicbt#~0IBe=|J}mUbQrt8}b2wLij9MMH3lx8M(ZcEjL1-W$im0gI`^ z$Spg-o$^Q$KYoO}6k9SADjsg0 zBNrdN>p1;QW$l_$p25J7!uxHr|Hf}NQl@g)(Ajw8Sw05t@`yy?EtVG#fn56+8~5?&8H}0{fl^DNme&FMeH7Qj ziChPcN9)6;M>J@V=A_rHlm>x9zDv8I-$kY~IPAjU2u(R0f-FDlm8LZL zR(eYYg(zvvfz>Y!SP_%%lu)hjC7xf_$G?XPy1&9bmq3J^=NA(=+F3x9uCT?s-dY8b zjhSmm5QxzI(2ygIND4B$WZY#x78{UHr{?ZQ8neekxBTlnq^ZVDmA7F6#h0S0A86T9 zaTsXZP!w49gi73kJK#Z$#^A^$7F&-ChIY}LKsRdY1v*OYXX;iKfe%ZLp}?H;K$Pj5 zrKCx$y6`wH65sd(ii5Wz0AfI`z!EZ_l(Nnr>x&qPaqj#bT39!h)jh;H=+7Sh9=Ik$9k##QtVk zL6>9t7If=-iW6sdRKXUN_&yc+q<dnT{jMeJn#Yqm;ljnQJ>bVyCnvV%g>j-=Itqg-*q^?JA{`d$+cRlmWzpo~Kd3C$()cn1)dtsi*aZkN-!D0wF zu0mY}OQ2(;#n$3|t?}KVkG~38Y1j@RiPnqOW`&_bf!7S1R|K@dY+px=_{ikbA#Bl2 z>Y)s^tXu1qs3Qfpab77U!~V*~%ASJZrUvCAwskV8J094SOSqfD6KXkn&&S>Otlf>C zI`$33pB)Aj0u0rwm=30qgtYrokbsITJzS(__5-${Th%GyM;fo!3X36c2F*VN0CNQ( z<7WldM^6ALU;W#I&0+no)Zz<$V8H+Q>g5aRx_5t#Hyaclx)8>jIn`L(UlGi!EL0`X z=}&Ef@!-yAs?+-uCn_aIg5T_dU$a3En?9=hW;Bp?Th**IhRXUEgOjh@S4_Jxq`ih=i@|J;6jGwYs_%G{9!gIM4sq#KiWJ67H%9WM)D`M6 z9vQh_tg5N9!%+&~t1z}6)fZo{OgS&*QF`7`pS`l_>$+M0Pyl%xo|v3@)$sI#gaBw& zc6O&QXLjOn>A zl1$Z^QFvfyhsDW!Fx%6p6pr7X$TJRSor1?uXpy-;^!)0p4Ct~( z7ankM>&N&Ii`i06@Xp`(qgC+Vg@eC+#mnO4?2*s)7qs*@z;uo3!-<^}f$ST4MHZ=i zu5^L~NOkftJ+f^R1_E9Fhl0Ul z8qBk#r8iMeS}8|bIw7_Sm8#FLP^OMD&h%wJN%<3@XfVS1s%{d5)z@scz&S+TjGeB| z<#(B4XiHgXNskXL|4#44syG?z*m-7Kx^|hIZC1HtzGiE#t^W0aw3Xo@s35+PPO8SX zX3Wbc1o1XH1I%g8 zGmDC=$RbNKRMA2_X^sQs-V;#sl*jL-=maz1F|TWhuU!;(wriX=jdv?ALlujU7Iwk$ zb#{k<%y7XS>ApCro7jy{rsxuOU(KuF*qz|AeYiRYFp$QW&D(dr`ud&c5joQF*3X#q z=1;|n`o4A(l5l$bt?CeY)ZW6D@MMYWFbuW zhYB#^($Azz5LFRr3cg4dy6F(O-BoTvi3H$OL{71r zL9@?^ZT#LQxZh`++Nv(vH%!g@LH7|GpV42SN}J8R+-eR~vc`?W01hDpsw6g;j7aMl z-!VAV=2%0^UeCa{r`5J8yBt3Ta`YkMqhB9CPsf+!^yJ7ju%;^g`>S;5)JcIFglvB9 zyNYzM%rTz<07{K`9a+h5D@!2YMYMX}vqsAaF3VMH3btkIdS*u$_0OMmVJ;fhR}$q_ zi@HfhK!GdvI*@;2Rt~J7+cB;E-i3&D7y*5?&kb$%NWot-8aJLcO?x1pu(A{lCp-lw z1aN2mB3t&T*H=_&jub?o1vh30mWzbs545?CvC*ZtQl&p`F4A=#zP_roxx-E^M=<6sMwNR4SB-!&^ z>Pe{p`9j!v{+CboJsWVsZd=-^cT4$bzhZzxRrb`g!-aVFafMvO^2UJn<5Bp+TKS4I zzs>4U{^kw)(%nzY6oGSj^Nw9mTc9X_J5z*Ly(kAdBfTqY=1CK&;yI5z75T5(u8MnMLqs3I18ATfp zOmz#+;R=itR=T*m6P$}4RuZJX1T%;Wf0{w0drEIuXhlX+zSj6Sq?52sVa2ME1&|fG z6j{&eN7+BRfrt5bysyE?<(oF68ie*|lg)SDcIiBQRq^fif{qU*6GBxlcW<%9+QmAK zfSyWw*+RTEsFQYnHeY7&V!bmN+^0;rU9;3tGUn`VCdUgf6Z!=>^hm{8*qqYaJSek`0Z+rsgqP9c11W_V%3D4hpmRs9`c3;N@Y>+I=1kp!9Mie@vGeCHdSVh~EXiRhQU)x)SfLbM!ib%!6xk?zqn>NcpGCwj1L z_pR!v1oYZi-_(oDRe-~*a~ufEH10#htc)2b=(z;ENhuvFm?}J%?pk95$<`oRYdHSy2;GyMAV0>BY7YC>1cYxA7uWX}`gbCX*r; zYd|tx$Kye|i#v?cESRAfc3~9e+1cfl+Mgtz5a(UMhcHJkZakn!m~D?k`@ zzib>{wEUtTsZobCZ<^}69U{UQ@6274)U8I%kN{{Sjon4Nh$ekJAAS(s4RfhK)4rd%&d)Har{u<|8-AI+^2_2(7bxf0;!ViSc90OEw z{H7fa#_G6P3((77_k}SG(Uhu)0GD3HkH^-w`HY+1EP1W~wU*4(-nD8e7qr{jJy(UA zuRC%q_O2ok3`a#i->evPosRQ%1o1Y({qVSU{-mx5o&zISoT@@CH|b{38OfJBc5J;= z7eu-}@X6CO8TFUY)3f19rxjy2^p*#&+-)8O+1xlvsmYIAO?Ygd)0+tOnKVHkx6ClL z5qzGXkSX8A6bA@pMBr`eDUq&saV`! zZj3Qxgxka5>T0|0WC3niP(5ZQ4C7S$U|9u`iMB2wL%?3SVb&1|!-jr|moB6?On7$X zJoXteUx>R4l}O}+<6n2rpFoe7*aD$DFlO*GJ4=g*KC8|ZmM4iGB3A9+FleuI+pfop zua$D6tDE;~;f&W~4R|*;YC(;-o=0NxeZNxSM3pUkg?Y;R)C1Vx7@7A9Bl4Ps;}k|E zm8L-ZOEoa>p}t1OlhsoDomA^!MK}SjXbyn2d#Sn)`36KlVEyhLBK%?Y`4pq)bthlR ziU+B^7g>0cpC;em_7M%l=F`1}mS6AvI2%~WKW7m~K~R@y0Qd&4DoN%Kidvio$oxpQ znL$)UeuXE8^M~2bCRMV1m{+RH9~b#dpih^`OyLz;fWu8s^TePHkAQZWK`)|Q1hh9- z$@?>6IIz{ylj5`Ff4a^tWI?#5Las)xl)97sTMOUCVa%^o+F zr&no0p`AL@lC<8BTMG(7IVoCvt&%e~ABQ$>hd>VEYB|8+L8x8<=SJ@(^Pq!ao9Y8K zJ+Z2lwF+rw`~+sLL^_6ny}f#E0m@Hy(J8TZB8fTsNYwAv3TO=1i;7es@|XjA?DdnT zoQ_6ps=l)OfEk}?&<`CL^Bb#hDM1+A6x)fy4rov9vbe9Z=xr0Rz0-GVoD(oExDp2Y6w7MZAoFNBvi?XNgEf_8`I74(l_e; zs5qlv8y)zuH00b8Xb1ng=?(dm_jLme^}(;~WVB!Q*2XfvBwQ>Rf62^?BIX6PVP%&?}N7wpIU=M8^V{w?I zzhTu4c}~P_iExWW2f-s-ljrikzkF?1=Bn95u*NpQe(8X%u~`&AzwL}{X;FrJUQMa! zuwZL^f&0S+Czae$Pj!@aNZCpugdjxdv6b&n1B%Bywbp$eJwfImn@bjsNnaeUuBPjL zy`^+x&UZ~rP4#L)p(w6|% z?xZPppP>VUP7q`&kDcloq3XJZ>ln)xIoBA*-YULqMmP6yIxUY|`q+s%D_+FbDPH+y z$vte-Dv&sJnl|{KBW=v&RG+6P0LrapC40FkVP+*~_-@gl89lp_p?=lN5Ripi4^bU~ zWa=)sZr92&ERI8le&y?or}7Y%6kP!Cc7gwSD=ohz+KS(5@e#k%Q1|QU7qLU0jUUxz zq(2s^>{PEyxyQV_DknApE547J@?*J4Va12bj4DtF`ow+uR7nNExSd_8C4&elOYJ_n zGqI9`FtjOOqOT9%3(NDtgMor{(56-IAklU@9WQs$?Vf9^s6+MYRPy03Uco46{$Hu1*le zZq%PbV`kd6PHe#Q8dv=;c)V?!I;M^F7>p~40)r$ml2cV7!!Js7+ifb=nCK(fu4{!J zcc|P*=8YV&t!SJR0YS!g7hJ+xujIrEZ{@~oj82%?)_wJc4#8}M)Db7qYKClr>vYb% z>w1O1hVYn&{PNqQe5$vTdUx(ftkol=HY45krzWE3I6uW)bQ!9hq{Ww)m-lbxi%qLT z?CyFbNLA^cQO57uZ+A;01pCsJ`Rh@VRn2P z$jI!jR2{vd`XdGSXY`NX6hV_I_Y#kvnpdF>`1I6Ub9h4KNz2`KFysF*6O#xX^hd5L z_xg@2_m(dm0ti|(&&xdZ>jH1JMZyAZ34r;X15H7N1|_chnQuA-0qC2YJ&%tL`NKj$ z50H-vA7XcuK~efMaQPXTr~WxTKmjb5C~GZ-1F4H^b?eT5I4E`NAu(6az+b7%zE@@l zFccxbTbkY`DYhmO`N6=ppImd+2ga@!B1GE=!}Z$UtB?npUfhy0+=QoU$Fh?u5B_rZ zsZgh|d}m+cNdZj=U$GRrYb=cu;%U^UaPVzao6K_7J%!^!=?1-#Rtoe z$6+JE%;G}9kJp~CeKi;B*d;8CUuGzF6=N@K-aDOB>iZh& zm<8SX_BqaB`TTrz0=|K6#6e2w{ho5TDfCnX#C_G?v7;;dxw_YM1L!my`oeAPmeJ>m z%`WgFE}tpwj1wPR?{xB9v34oFyZVV+yPRembV+7xU?tgOOsNJeK~tZ1Y~c&;=xh6J zqeyn=aqAM@v9=epG$<%W+EDY+}W|wa{l#qGQr^h)zR2c#>cG=N5J>{$z z?4XTV5qJ!Bypy}YQvQ})Y-3^-qVFu@%Il*v-YB}DX8;Icey3SHYDSZ!eM=)2rg=af zw41YnXi?$G|6@Glze>}7e^{knl0>T`p3~k)ey*}Vu>A3b^?roKD4C~OM6VVqwV&xb zn|W;6fL^#7*N?C~t*YDz8r1oQ8>4f5T$mhwRSibbe8-Xx_25N8ePHa8)V7tRSJ>mHyorL~M z=$!{Vq$heA^mg35?>*K z45}gkBec-L(}K7#v3QBaObi!XKrLDar6k_R)n{*xt>Y5?>6*GXF4ist_AM3^hZKKF zpge)^DSp;MO$grKjJZx;$+q5+@-~ajfH@SEfsGVn2A$5-F6s1GsF)BAXG75Wjuo04 zgRYQ6f}xjV1H_o17i!l`5HFb=WECOHgS=ccbZp};$!nWbzc!8B1J!s(wCKWcAFeq@ z)NwwtF^HjJ{RfUp!VHwT?r(cZ@>M^n_k7vPkzR3tj~5~H+!yqdrV>w{mA-0Ttsne1 zfO1}0QMU_}J&YjgxDBm3WnbHaj?0qqHo;bArajztoy0$ihET*y4z7|}&v{54#(JTsERQwohm}P6)R(F`q4Dw;mL(#A(Z$aId@)WN zHdbDweTx#b5jaa=s+U{n6_tWOpYj@Yjs7BQ-?xWpu3O(xO{H1fn)#(IR(a9)^k7RT zggxh4KbjzLR8E7SJSsqTasNSIktKt6>3%ln=OE4xIVQRtpdfB0LL@@x5jF-jA*Ez8 zORL_i=8Tj{vXd?ZCGD8YB4sZZ&w3jz3bQH*P*`s|U$<_L>@k`3KbK~WLC*ub>>&*r zqo8=s094oU1R$(JhR?^0)Gcvb4{FD`6;+cKfGjMsyj;lyy*fO0ObA%JX3CM-h7z z32sKgtG;2mRFs)~G_2K2cuc&=ou7W-e;K`jJRs67cY1+=xwn3f#LZ0f+^~A8kYxwR zXNv3}8!ia`rv3hQ5Iy(k7PC<1#C!9|fvl0zUFHf{_PJB@oE)yB$q6!1jU`36 z55qQ5Q(2*;H1pMF5vqqmaWAz^3LC-j)Jc@q4P)DLbF!r(gd%NmASQtMc`u7q&C7wD*`@6ljDqHSK-Edm5r2ZgljMPU+aF=(uNOtv5?>!^^*-VHBkv)+7!o7* z=%<*EA%ke!C*4O$DM>ZQ$V{~{+-kWs*cH2tt+vSd<)+}{k>Bu5=m^=_747zc$fXO0 z)D-9ojl9X$!;{)GYld+ginwmyY09IWBwKR3;!~i;1Kw#+&yMC0CU|&f^qA!r&J@yH zmN!(5n*TD0%22VP<#SUEK@VL8I`{OPsmhcMV#aEWiptT9To+v05Z^&=du#x;Z zRO;|ct_F+uk=t6?708P}2|527TJr2__bofqP2=L0&2jeXy&3Rx2fuN%Z^W$1X9UZ^ zkwuRhp2eFNjh46bXMGA9w3``~1XchKm*lm8Qtw5-30!op@`=_B6;{Tlq$W`78#KYl zRo?X25;}|PA_0640=#CxT!pKsQUz-(H1 z%d)>;bA*p<&_?aLl&anyWg2S}Eof;X_G0BmC?*|#$13>$h?E4fXo_r>?oyZv?ate`BE`0oKP!w>1;{f zP{iD&2TtdzfqVkKF~EV^ExD)bADNmUJ;T24*m9t0%vhjfrE0)(dQPw={RGB>5v z=lI4j4ZuL)7GMf@PDaY)*#Nh+$7jT#U7{9!yp>7kX+u9&C-VVu=}#{NySGZue|jMl zJ!;AXT7(X3k<$K(-^afGvV;Q1yf$Z=V+cZGtD)Rl8M!Hs9K9+KwxcYZf%y%{EB7Xj zYA)cuD#rjb8o}GFr~ZalFoc`%>&O@uP-ZbXjZFPe&HiZiYwc>rz4KSI94P<6EI@!4 z`Ji}?K+E%Kl6hOp*NO0>0^%`9{YG>8x-+> zmsbu6og_>k2$VFs@|$)dg@iuq{`PR!s3}eE!Cf1$yDbFu_cpisHGOq;Q!puE4v@)K zcFEXSQO6D_kij{wSeMw&i9bF3FDJl1`D?e+$^JwGmY5`oy$_Eo*RrLHqyi^t@v z{d~kz`No~*QV1GsmK_Y0q;wQegW?h)BtVsJMjMF4P)SjD}AMy4)9;^dE2$D z+g!GdbWZ&Z0hyXy+U@66OQ6(Wy=)UC&r zV2TKUoCH+`%elXrwEp?I{(9K`tJemWtOgYG8P*?ZSsgljZ`^8k8%&V|NW0M);Xsi?F zoXQmP7c16(3;G|why~6C7U+7QsF{uO zAEO17_kOvmGXajuqTcKA@9zBp1XUZ}18E=V<{=C!$a&wU zREp#!`UaafnaVd@)vVsPFLeAu>_wCP~sS2 zAIHj8XgyZ|c*mz@mpfBH-Gkmi`hwtpygpfkv2jyF!>r<3SIt5-Oa3!K7l2fy(fpI= zJqoTAXC177r}^F;gaBXPf!*E?Q0a@7s4729_}%yPmaWYITB=+P2`?{?)V z)9ia@BRk|j3|;-Lh4{<0?_V=;9~^2aU-CYMZ01{}iYBtZ_lYtWY}3-*y93WY2io1A zDXS7bznHID_5AyS1sh0VN=q@bQK6;-X_gvl%1_RTXsgMRVuT7#bUtV!u&;3jBz>r zAG`K{`C>@zBrru_uGnmt%8V9LrhR%#Xucc7%DOE9^*Wpxhn8DnA)kbr5_LM z24fX}QcSaa{{jSFro8#6@6oiOP+`Uovr6!cn19?~N&pSR`>3W|VeI=mz}9bE1V!}1 z*HikfR&nwhYr6~B3UbC*pd?1H4iYbV70jZ8d(pTJ^4cq4;+6u@uOLP=64 zu6`&3_QJ8o_nPZ?2fRW!tgys?t9o)8$O$M6lKRi#&4oo`oBmajduZkqK#YJOw})F&`aDSAxcKVOUycCUF# z1TU=+=rn`znqG>$w#Mm0a1ByCZwGnBX9kB>>I{1KFA}8u&q)Yfzz4hy9n?W?`yd5P zUdgPT!G^yN+uo&-XX1V6u(CAyDUy#+jl&%j&Hzt09Edvz69AQ{5$oR85;HQV}QUXhZI7*)hhCP4)ni> zNPaDhSJu1RSHV8{PMsA?s^>oGZq$76c^Ia)3lzxn#(ugI>!i<7D>9j$1+H-En$$9@B1aCE0@JQen8J*opkJ^kfH?m+L-C|& zl7`d+U8~c{*UfK6L(+A#(#G%el!(CRYXHkUx-cmdcj8XQFH6$D^f3N+Auyp7pna{o za#Pr+P8Q(qQyI6L%`u+-Q3LabJL$Rsvc?3%GsTye(;a{h5x^f-%kqOl1tF;qU8xVn z;st~}R7)~z<*#c$;JU^X7a?|#w!k>{klU(ZV+Lrr&u#)AHHD~?M9HA=LNKEUeSG)? zB<4-A#DoCtY04;Lc;fH(%kT4?f4!am-fOE25~is)2kc_;3hglDoWQbjMQrjSbzT9x zu>%WA5%@2-opX7gIFvtF4Ft=sp zooEh78EEC^15x}(*FTdJ5CwDkC_=L@S~8qYyBW!-OE}NwghGW2Ed>4Fhe=mxf$Y-8 zTaQTPuaud;_i6qNVQz+`{$VapB=7a*@lRH-iWaTrwT*ecGjDgGGa#v2HAR(6w z7gz?a#zsDc6=@Ll0OV?pTA5{25~{!2x~YzkAj+}P$g2uh9G}oJQphE;p6qw{M{cjo zho9VDAK#=a%p`5H<~=@U&EHT87$1As$-0p1<|(WB4OjA*i}2={^U?Ufw3YvTdh(Ci ziZ=02HCfM3HCZPxoH9aTjgZ_<9VFTE>wFfu0f75_%giq69H3!Xsr zO6OcsU?HLv5=1xHj1`rw_|O}HN!N8(tQh$M;Ws2~FHkc1r;O?ca2E)nTz!!S*tcC2Kl*tCLfm?@ zQ-LEMuFl?qdf*|3VtT;H_;ln8=~(q80{iwxZS=VuQ`XaR0!Yn5o%g9toVtApek-iK{vk`<*{RfQ1CuYZepU8-@`T3U z)7Aqd&m+Db#ZC^C7CZf>vHEXQLu+wy;Ep}qHdjx+-zZZ!zg)9oCk5)rw?D?- zR&Zs1)DH0u?wgb^0?l-yqe@<5S_|C;CAWx3&W3u+;ajmPR zz1rC7bO~^?iBXCZ^CfniZx;j`;3TRcNGJKCnA6RXu=6zK*5j4Kl{>v{2Vr~*gZ>cP zND5wmPKyEred`cb#7y`Tb%AylQxB$bcvU&65+TAnDrao{migO#K8^^p(&Mc0YGuZU zeKzcKvgZ^2&xMAwW^aJ*`a$yZ9|meL7E~{?%rQ>0+^Ouv)+tHNjq@rdPi`5#dtB)4 zEIN0CP<9C4;{*DJzVa6vmrNqKz>ef>)5lWCbhp8hd5GmQqKJpqd!ts z;aZ2Y?C$QGG_~Ka^$55}M#ZFabAsZcPB|s*t`HCd+N&Uo2FyG_gt^Io2Ke7G*N@i$ zH{5a!J|T?pj~7T`lAJU?zNSR$BI}WXH2DY~n`guMb0$BQe~imo2@jyL(lL3XA~cz5 zxWvkApC;=|=Ee^I?q=ryaH@?EdChCXXxLrvapr(Gq|}kGod-CPSlj^mP z1a1%nXrCEW{S(@ZG+2j$M5?da(>;1zA}8Y=?+m{(QswfA&rGS*C_>HLw@HVHb4qgg zo_N+vL+xTK!*b^(ty1#f<^~HB%NG?+ORF8BWwVu$Nohzr#VBWPx;(5a2u@>x?J(FB z$z>NtwG9@;MKzKR$>o05G)62Eq&(aG&s`mD!-76V1Xo~z#I+_KY**F$}@)&@!9}?<3fS0RFapEr2 zS#v~;VZRSe%QrcT1-}`P8cscKX*;nsjxA!Os)xZ%V#3SL{1)PKs@V8Dg3BDlC>Mz3 z*Z;To+aKSr7=F9WSDB)5l%1XZ^edkNYsY#Cy#C_z@1V0=wMHs`uVq z(^8`}k(sc+fpzS{4bqqGxk$%Z-;oF$w?CBNj1zasc9hw8QT!;LQfAwAiUb`%!=?p~ zeKOG=e+$vB5POqPgnSg8Si`dUUis646l0XLXviT5viGgdisy912n$~ncXFZ;9$6bM zScp74eA!3Xg2^(DeOcPV1!g_T4qjuferMvW@^H8NvUT0XOMD2fhnf}6AyMG1qo8ou zFyqCxcID){nmDl+w}5;~2w1hgSg{=~t^g%}es1j3Nn zLV430bO8Lbfi|JgW(?URmn?!qlsV!P0%^XWpv@C%KZx0gfuN<%aJiP}rJ<*q? zeTO_etfu^Ut%~qBTY(`AB!w=cdGZrN>;Pavot$FN1H?d`NIh-TPOQrq+^kxXyZuV^^$qcoeTQSzPYsoS}1h`oD z+^NDo+V-#uqP>Z4i*t)|PYh*Q9lv#I$uDwHA3jD$#&AfY_UXX>2^fGx1%AK{fytHJ z6SdY>wN4D`XC=&gpB2FBUrsctfG0h5*xt|ngiNj7-6^5KX!o7PslfRO_oFI19*${4 zZ~K|1^65FdZoNW_A3b#A-Yp~RmBvBY);%sd)0r8mhj$zX!CZnJ6<^J&F-4q81B(#r z`#v!6=_B2?%6t7oxyzJ@$No)><{tU_aiykll{cY-V3yyy2cvVwCy>a!P%TTV{K_Ul zr)FGw`?#duB76zR#Z0tGAl4Vf3WdQlTIGJJ22xMV;A&=Ep>(z5ZLRm12W<~A4YU1P zejCr4qY;#L?}FZBn4e(o8K$i$ONxr_o^$Rc@-9p$k34()Ob*@=am%ERb6$x%<=3x36xgPm0yxlLf`VL5RA-Qzp2g{JsY zBuR_d49Q<<8!9bdm56=SXsBd^FkTlnN2oNG*K zD{m?R(sRu2n`m#NZ$EZeLUjpPXwwo3+B<_ z5d}P_NI$?ga`)SwDSmC_F3~?J9G@8`g+<;z!V_Z+Azmx%MsV^gT3nD(#DO_`>_n~9 z6E8Ay|Cooo5|LihFTmh1#X59U-gn-h^7Ntc*?{51O+X>-GXa#X12I5BDDd43bu z^v>pTI;X7ISsEMZY;Ku2IG|beSgS6PJYEGqdg;p#v?7ixIl3hSg%-oDai{h4C%QsX zT+6Gg5mBO?N4Ia2X@3vC;v_(8jt~S`NI)Bl3z=S28L?ha`Xbj1#?U)r%W5C2e9ual zGwO4&#vSh3=yR%PIhZ}VB1KWb!W8^paz-*)lPd_T!toOb`=H|++B^#@jHv`afabzh0Si z_=&7ngIeV2?(fo(gK?2l&rFrih+MD3J!&6*)PCX(>+ZRz)i@!0unyOFZFwIFAP@I_ z{*dYWiAByQs&?6c%S~kRAdLuO`r0yElyJut`g`xwz6Eg z(UHn!oC5K*?hbyiUDzcmns8SJ>NkgZkSZJBIuOn?kK+=p@w_|Q5sv@OK6rIO;AoFM zFlTIjpkH9B@g7@WvoU?zBCoEUFAqQlBJP=di?<+z2n-EJxyw`CxlHn{ry?`-Z(@CC z?^%5H+_!LkFV4hLg3v`cKs+^*IJRS7ec`bWzmpWZ&~wO-T^St97d4Z8gO%RT7;djd zKsDScEss6H-_dv+s57zbK;=R!40A8jE*oC#HFgzDLJ&Pfsv$&!Y5gCu>u#iKznM=4 z!Pb&@TOU%^hqCnW0v(OpcpuuPMAKg8*4ePH>^;}And?@p*3w^KH4|AUAh%y6)ONpQ z%SOYq{i9J8fvbX;8AxX&Uk7RZfrU;C!?XP@d`NkCZcc@8pQ+?=0(S0*$(5khUK6Wg zwaq23-?;H61*UCwCU-fTLWRT(KZ_iX)INfmgife*@T=dNS(1TpZ=d?5FMEY3nQ*sG zMOa$0XTSf*a8MY1{R?yVAu)l7^H~ECR~JXQxM$9XN1U-Pz0U5cu#z<|J11*?gCeh+ zb>V^dCm*9LWQUd~%VF@x0jb}$j{A{o|aV$QzY;hLo5`# zI4Hjk+ePwF9#GdUqV!~==j+?Z${~Vby`l3za=Q5XGkCL0^-_+d+*n|Y2ELTNrgdIH zw+{pyZ)Hn0C}KJI=OoVN!HoRsG@Sh7tR>=^>|$s?zg4D;;%)nOq9^f4O;BZAi}&`R zi$Rap#gEDmE85bUy2826oD07{{doI*ccnrWRk8Ycq&Kkc8%uv0K%43Dt$wf|c#+*K zKnv+^x=q+H^U&NUAa_nEf)_6FHS-Im&c^1VPnP<1wS=ocH@dKQMYz$dCoANjwSeU$ z)2tI0*R(JA(QXaTqxzX?VA?jp1z2;Ml66PI*0w#bt2)vL7=>}}Z zGn)L$`69c>&dNGSiPj09_sZUHG!LksPAt1$M6z zEr(+AEzrZPlAXHCTJwXSa=m$l{53otdy?^}6y)tgCxmRbR35@%iZ z1rbJLkC5U7xfe6@{n_E4?>M*OsD0(G$}#G|9{6Hera+ZulNBWLRf24z6MxFb5j;OK zGyPmZVeOi)1TNDypzY0>iiEI|X213q-E|>%ZU1;5v{01|YSt&}I-xPDvue6?C?*8+M;3FFL5SR#unlP;TG) z;l&A`BnU5et2gdcpk-k>ulVT62uTgJ5ys>w2_RG`Yp}drqB%%N^R@py*9Ur`PK|>y zLwNf5^UYp6x6P~iAG>zzrc5CA*B7epw3dWL@U~#!9W!sIL|SjH-&wzVK%i{t%PH+I z^R4Z!3%6)8?_1B((?xe@M(^D`&*a&dFx#w(Nv3kO{swwBQHHs|)dZ*(j^Fu}Wf=e8 zZpGhh&bOm`-)cOq7C&Bk@O8a&c8`L@my63^p0E~jeqP+qU4DlTXAcTGZDHl2U^{jD zAjJVY6R+1EqG9j4ULQP*+qPpfC@ooss&S>evVT^$?7?fFSP_!XF51^a?xnI>=z{_t!K?OQbVQu7_mn#t6As0LnGwM_<_S7kuoa41Bb1qg7Qy}{1)YG`od`gY6av+rFw-(@A^30+s`r7cpeX`jD^N-oe z>b3U%_k%`Xu|qQ9w-LVl@87ws4=tX%0dgZ4Kge&`&RV~8<-0!}%6KQeWA{&q8&czW z=H(?HY&Fn+t-KR%nKwRR5MJNa?C&0G#6pib9K$+l$z>(4|!%oXg_k)BN&8fBPI{_moL|vEOyHZDMkLw#R+R zy9*{TEEG9)K4v@l-u2btqwtq;mpQ5`Njs%AAM0;b=6Yvtm0pf_iTc%hpa_er~aM?I%#TcKlNL@3Gc%ifVpL1)PwvBo`YqVlv!#w z&xt-WA){3uHN7bM4cS=dF;JBLI09-MH4j@m%1DI`bq{Od>>J0@chn?7BH}{unDWI8n^!wr8d7bRyaq-ZhI8L3pdl@v zsxS9R7Ij>Ukaxv~n5-ojba{vVCk5`5gn9HMoyo&oF%$m}bj$0@j_*(nJ{oQu*`AIA)rF0_!82m$8{`p`3&aMW@a~pI8I61)lAZl z1+GE6w3AjID3b-+Cdz1evh&QJa;y#DU5!tDY@-q7*zqg_KH@W-m$$xi>s*ob3F|~lsU#ggO5xx4eJ2Rqw$06ly!n^3s zl3t=0ACx7Yv%6n#br4pPrgV$cIb>03>J`ZR`dV!0G9Yz_WWSB@GfHK_8UX&pp2+SY zQ@n^eu=)TdB+lpHph$br9642S4)HFk6wLCU;V)~whW}CCSXsQQ*d)(%?9mr_rBT6M zjLI1>ZDV>A4hDPdY=Rh<((PQml`m0J)Ub-K{Y4$KA8*C&BcI+ud-49Z&7l62vSM$g zpShFh8{0;8HU&fdE|b%dATPi3a3Jx6r5ah<`}Jf8kR*Rw$rR4@Y7coh8cz@&DF95x;wmDqykw?84;$^I)ZcKkOQMruWT2e8OlQ@q^oYo8DMq zi%PvNn~y$wcl^NcWI<=4S2okPISFbP;f0GM1V(E;~m1E#nlNvJ5Yr;9LH;oi}) zbE<~v)wh9rbUkmV7Ao323m{TEm%LB&F?}@f?nrtlI*=gzrEOX>eE<27%@uDC<#J3x zL7Z8&TcXxUPL8~F$$(6;yscYLb@Xxdz_+T7B60I`4kI;fgQa>)ty7 zoD2~#VqyA==eC7*pB&_-N_%t;#Ia4n3RcFP4KH==Jz=vz!XDcvqV(cfOJacIekm;= zSP%K6cff~Iu%`Y<^qHS!tqN9ec!I6gw7l?C((=XJ?tFb)flf&UV7dLrJ|F&tNX2T~ zt@+sYowIsCKxYp|3 z7-+DU)JeDI0a0I?{f4eUo57>Sl6fN05&MsibLU!=yUgm!@U~=(B_-Fc4feQ|>>?;{ z1TIgut*tEU$m!;63@J(ldw;()qgO(6_d{DCettXYQ4E-ILfjBB`Q4g>Z`sdm)!>11 zr5>!ni=GtA(mvI4p>Yw9*JXTh}kUCDT+SzgGQ;$S#^`dJuZ_ z+D5d{n3Ep6!TzDciWXCI@>8(+bR#cRK|N^A zR~H;8C1sWfPxkA=W$rdBrxjTNuI!moT;fGl$#^ZU{^G%24VfpW7Q&tVsv^!E6q0BI z|L+|}M}5mJ&IbSK2s-dx8{py!$1oR1ziiDUwR!67g~IO(+l82y?O8u}px?~1ANYAc zlO5vKuu!{sp>de%oo_Qzm!%o8_MmGhfU**_x%2o`{#DfxytMOAdwGBC`b2uHFw%*B z$@k}72$|xY+}O^yw!#_O9U^Qe`ti%z6`z1upOdJlr`I!c&kWoOtvsuI!*S1G&JUGC zk7=z!(5fvJ)!Rq*f9PTEMYp8O{@)$%{(pM5za&@Akvo$F;xS4$BL8$RC72N9lz2b?X zNHuBsjdr=rXcZSfC1S2gp>EQL1=z-5K6$y=r^hM!xj5X>f#GVOB(%)a3KPSGE1tur z5X3Ha%UTrBA@B6|MU!Bf7{w0aF+rDFn?yH4NfltjIwDx?V3LA|dJPfn$qT`_B6DgB z79mYU*`;~bj4zlstxhvjw;S%O@F2_?7uGdE9?+}61d=!{^1Ra;IV;?iRcT8Zs$%cn znAe=x1YIo>x2tWx_?@oUy6e%&BVa+Z3vRjMcdShLC0ueL53YALOu#x1$Dn)pgpgE% z*FUuk`|e-(j7MGyGQL=zwepq&oTAiYbzbVBMK>AvP3jfdIY4f);P%s>OY*k`uaUb) zB<}RqX>Q8Mw1Y|Ap{(fsa8ZqcO*c-J)dWJ@4yhCP*|5jN`qCR2n}Dg^qD~J5(a8|F zwX->z`Yl?uf?3dud5u6x&qJdKe z&bqKNgDp(w9QU2iUlXRI>BMU5wz1HwJ`Z(*Ga{<-qoa2(RC(1m+!(L$$o$+_GtVCU zp_ZR zO)ujLva?%dm(X|s>Lv0B$*DqzQDG>Y#nS*Ae3DipK5b644a_%_fKN>Dgs&L;1yuv; z`_pS&Y(!bxzn~Rtk|`SMceMwudmfAmcgoLhdv?U$o{&rglJoke&HC%BUdNt6T>Y_= zo@3}1SYr_IUA}~w4YjrXeP|r(zm&0PR;IEE%n%=`!pM7&uQ&2di%-?$9m29-hb^o% z9%R&q-}r;IF=MlbGrSgnPW-y~<|YjDde|ee|MSG# zOWZ+$RxwElF4m}ko>t(t4XGbF%#QA@n?OIOR)+Mu$t)rEe%MeAy}(oqn`C6!))R#u zSg0=r@6cPkJv^teCh(gAx%FsYC8Ce>bG(KVbzm$)FtS&d?^^?HUB+P`(S{yvA=ySB#_*;!kCX#U{=loDjh&T7&PPwzD<^e0;2;i8OB zDP992SpID$hx=wBV`B%`foj*nkaucBvppv_sM-)G@_vT(r-+aT(V~`r$a#RS^qAJ+CHmm_!xSj=VA9A! z;T~saGZ&uOHO+mDZBG|c0m19vX5$h~*Hd40IC8)FmEK@qaNcq^LZ!(yP)RhOcN1X` zJaPA5;@^mw4^qi^_VHvT#Nm#gvw5Z;BWmZ`j_uwRyF-Eqyn7B{Cpjfgc+OZ}cYW=0 z$vh=1{W%KtR4RsyGXLb&aYjzr-2@lS`X^7=_t}>fkDX@)#5~TGrIuLaGzMpO*3LOU7E@(502OSAS++=i$ zoOR7Xk9v_~m9`z3Eu*8h&c_hIR75MEaLt}`dAfRynoIRevGl?I^prxkJaqjHFW9%v zTJDg?MAWUyLVgO7Cn6(QIx{27w7yPH+}Nz04?mqa5;~B&23c+m!l$WD&_ju-szGwK zvIBj#A>;vXES)%J%-Cawvzci|?Z|l1s2O^X=BNH>@)J1eXt`UXI%9T4OTJZm!ilB^BflpuB=>T0X(8?Ez!`{QbMXkmq-%Ln zAGjbF(4wIO9RIQ7@afLu2v^ppMKF$B1}uAKNWeXQj(jmjYrrJd9v{A>k8faeUsll~ zI{EMu>!8^UyhmIvJy-4yU)=Fb(!-Q@Nob~3!}#X-k&yW1?&{gFsI`DHP7HMY11BaZ z?WF83y{Y#nlJffB#0)WKC_cLRL~Jpbd<~pwDH2V3Ug1M4@4m;n-&0M#$#;5P@zTsr z2y#Gg?b_!vqBGxLx(B&Q>f*+Q|GgaY=RJSYcExtk3QiKPX67A&qoO^OIxQAhEEZ*{ zm9G70|C)CgtUoZV#Ny%no4~+8Ca$N}1K1f*mPZ}oeUO0z`yC)9PS?M)MX-pXXDslB zm(exyD>L}LXuQS5%9)Y7HV&q}wCS#W3>+5A(f(S?$3xn&Kz$Dfefq`1jda2~i0|p_ zQ!_AJwrNJWwdEOWXbl=a5<`VTFx@1OESpM^5PbBoXM&X@D3u&m|ujdhaSc=TGgk$6i#*-)8IMn$^6F2j~q z{Z^A^au*Z8Cj}*t3>bKAp*1t@$@i*o59PX_h~XHcf;H$4w*ecd9mwJa5sz6Ciyx1_ zdvm-tU?K~bUbfzv9hYT%_{o2p-M?*n0(@j5tn{eFJN1d8@FqDRdlb?RKo1 zVD!cz_%u0j@itY*?aar$1V_UlTG{KnxXe_m*dD5`nAutV^LY-Vk|irV-J)#J;4Wq$CEp(c#aC{N93+&qDl zlQr@6#>syIm?C$I+cnlC$r4?M42eAJA-CcRR19ckoevl0KVQGYnB9--@W@V8$f}4U z)cP427^~tw91)DSDA9W{0^r@sjk(HqHq0^!;)@_-0C z;~7axHl>Hv*b*(2>M^R+dSq49V4#%w-NjW&!KU;EF-acPAkR^=pk@A$aJUp*_U)i5 z_&6Wy7d`p&lI;x}H2iN?K9@ok$)|oGqfnYC6u0pSf{|hI-G3Vzf@>`<_T<*Lb0fDh z@AFJO*}*jg+IrP3z2m*%Qx0N!uDJv%N-Gz{`(VtcfPfhse153g+uTTa)0Gup787&N zUA%CvGXVM!hf`{(uKjdGn^>>997mGHY5(BDC-+yGC#WBgvQ)WUvEqwBd_RY^t=~?c zGZ~?P6!3HRZn?_Di%yjrw3#gjSyv2Jv2KLNvhtvtUH^TM0nv)l#cgXhHW`QAZ~}Ly zazjeus8$!w-{6({ELN_ws(0$_Wu&&gk=1g7x-sf1pA9S%J)B;2^1TJw43uVF2{DJ+;bJYEKi!emU4_7)Xnm^c z#YVj_T#4=Z@@+I$^o9( z2S}v%$}hYYx%8+>oz@9IyrNX7ynO4=2QTyYgSWkOnpPslQ+&}4H&4C_i}TqgcB_-2 zbjG})@BE;=>Svw7&!}?AXyuaJx%WFhC;iU&Cnx=w{r0#Ic6C-^sS0XY_U3>1f0aWm z4Wsa+&l0Jc-71p_!%*)vhYbA}F^Bmt5b_P{5_wuf&xaI|Gf?XW*XRpDgFw9V4WRGb zp`j`t5-6`ysmXA$y5aizEAX*~$EyB|A5=q`*D?>0`o)7C%Z2&v;%(CMH}1J~#TSX% zA<0ta`}%)7rK;ChfBVA@Bg^L3RyU14r#PDEH-Cp*0a0j4*T}ovMv431uX-MTG5r19 zF2U(}Qr4V`Y~J;yTyFz*Nyq0k{_f%e@aYm&B9%U5;eQUL-B#Exd?xRWBf6&yONOCh z^+LB^rh7^q!LA|JGKx=U0*y*#dU|?OpQdWw^?trW;^3P7;$HKZmq;?d;G;kK93cWd{?~$xNXM$^k4N5G8BJ)e4826%U3h18olp9=S5L0~o0Z$v5j}Thr}&k| zV2S9Lq%6lvO`0%$9jZ~LgMKtUw%G?fqW*vb{8#de_^-o`FECf`s~S0GZMJ=z5Xw}ot&EhAcVg>o2d!OaCN1|fNtzWF= z%GoQ)iG{o(Yp=$g)JK|`CJ5(fw0-7$49J1B;Hw;7I^|2fzE@5}T* z|5SVDRr#yP6xi(c-Oc5Ru;(znM9fA4(rGNK}!LpowDAQGQR!B`B6- z`Gx3`m+dw$v)pkrIfwhI$rn(yM?TCxqPgMVC@CF=qlu9n2!LU|AXu7t`lp2tR5)*i zu4q4kQMuR2)u9sRyJy^Qg%t`vl+bjpNFS5Be9{4&u&e*%#=Hl)0Xz;>w^Rj{|K`So zR-pP{ZXKcN9FzN0Zlhprd5eH!<(KF67yMHefW ziQ%r6`gf+;C{u8`^>X<$DkH@(uedMs^0Afu$nkz%SQA=~3MOXO6)AIyC$3r$UZ2$AJK_x8Qz*8SxU zBPK_q%%i@)5W}F1&ng@}cIH(@<{6QH^rfHM3RBiRQTKnx{Ndu6?czj`L@83kv1A!p zgH}^T%Zl7P0UdfUzlD#1`mc=f8JC`-WIm=I{V-8&^!TumCE>aeL;SL8y@Xo;>Oz@Z zP>tb0W5DpS;%m%3w30iYRpvBP4t^Bztl|En%k5~!)4?3>cgS725@|<2UX4WY9tvkV z#=hgeoQ(;rDZU!9zHEL8PR^V7!RoxuWW=WsldY%Dd>xxGyJJZc$}kGkRg_o1(vJ5qGwjUVB4 zxalspjajlb=3(*U^rlHEOr(^t(G}B$sE}6kFdYC?WTin zL42~{;f~K6E$ougY4TftjgE?{V!?&3E_3vyS{ZqDrwy0dcY}jXf9PI}p*QztBlA%M z=oeOz*9fEDPj6@SrUaYk95$9K$$p$=&{e89@^UcEA4!%`bXck(OSuHOKR?l65uU%H z`(tgg*0-n+93-NvW>sI_Q|hcvN$%$bT#%XhQqrF*ZFR#`Eokc@>ez3ypHLR$G^<8I~1uY8>5C)K!U;!~_8B&&WUt z3x<2aVUvDWnCciB=lrn)4?ai^%3&eF$|%gr+hGQ!_vO*eK1cMogG435*PcO_Rrr~# zo8ax=-(|Ed3FHO7!aUTug^p51n`?X>E*B8H|H;QVa?AFxLTBza{bLU3dmAxEni)wa zqEO3i-;MnwIb{!;b1s;a9oU%7E6d*)H~$oT+IDGhbOfHiqj{m?_7)>5d!%iHg6 z0H9@LlmRZYUQcLA>t)$p(iWO9h*5DXcj36eJsZ#t@ozWmnPb)J#x)-IyPY7R~= zPp)dQc63Wf^x8eNpxNh3Y0pd&l035mycJ^qQI1R7ImbhD`RxQg(=T4}R*NP~wO3@L z%_G}5cj0X2!u<+!lTgQUqfUPvKWE*oFJAd8r7k|-oZWuf-Bm-+sJzcHL4SbT2{`l~M;lzhPO88%4>-9elTV*@5`Y#y7O*nM+2#UDB)u% zh;)4!@^D`b`Rs?;w~lZFS>xf3gUzns^Qh_*?Zti^9d?1)--{A znAIJ3rPVap8!MpVuCal|o2wLiN>nTqrz@{%RY=G=I?lYXK@UN4cZ}#oeQ^Rqn_@q8fh{ zcl>A0-1gL7?S}9TT|quf^j)2p>*c*0C@qaYYn)y$v#mSB+`2O;sd7!&@!nyNht*Pq z#5oDAIrS<#((p?0(O!=;1w+eYul0fy@FcKF8-Y5+i}xIZD(23=QBr6VOn zrA!N^s>1+vslAmRhL+rK^yz_Pg3*F}ZtAz9p*JD74Y@kxatCdU5vuU%i zhp}WSl&NuC^A>~gKZCvh;sxgt_i7^pc@QplWiqFe=_Rq*+Ib#`6i0l_{9THfkGXUP zsUXK+&8Segq{G=VWV7n#>O$8&k3I;|(;|@Y7jLvPR;=J@_`KzXlDh_PS{{c>qn(%z!au+U5 z&q*GW_dv@NO5DrSAxp@<=J)nbOsjaS$W9< ztj>5%y)&r>q;{nh28J0M8!KoLKlY1B#ujyC5nOS1-|z30`xH%el_Fhmm^JH9X~ix@ zGUgG?@xXTV+`xr5TlH<8q0s{rvh2YF#!p(A`;H~kGX<52FZ&-IkegivSHu1Ttjs)J z7NmBRLhGDO#JGUb7!P}R&&Uz?c&jU!cLPt@7(GcuH3Z+bvx0rxC83Ns*807W|;u6yM+08({MGNPl3`IbhNYa-tm*Z^E(XItm zEkM-93CB42Fw+*b6B&eeko{D@wC0`dl?8+Ekpg3YFaM-^>l5Q4;CeVN6aR$S)U(lfW^I)MPUd#;6#50o+V8$ zg)&Mh3!a>+&TlrG%L#EC63C$ro4q%kfBB30eCYjiNGF=%>^tFQ<}Lv7Bqhm!P?P3T z*ykwFUE=rErnskKnpSpG9i^Ehkh>YI5=3w;@6kqm+vD3Vo-_ls+vOX$I6yukavfmP zo+SqpqY%VVEtuU_bXiN-zpT(yaa}0D+`>H%9M0R8e^vY1YJ@T~g+xSjrz;pj?FeQoVhERVsbfS}qleXr zXTA;MFc9iy9FKtYI%-fpW~n9l%_DruEF8&RaT)?$k)%#A;P-9i0Vbr5MU{3FQ| zZQYVZB8*Ew31(7A(5C{8bzR4t@0Qfl5FP_l2p<{bmxUQ&e}U_`nZm#ApNAcp6` zj|cBk6kRQcd$ig?`hX0}gGsFq%`;zhf5;D3*ZQH_wsE^WX_*1-$A=87HuA>$d<8Y2uxY-WqXk?T#ZsU$T|`}(J0 zlwr}$nX!P3VPHY8Rm!|pKV$i82=D#MP9_hnx(!}3jbgUDbO+|m-Ya&GB^#p#D)7wq z{i#OA9Vv$x6)4S(Y{lUbl9N&XXMn=i5_;PewkU!#NfnC7?AxaETbzgPcAW%y3<{+H zs63-EGj9h0W8|wTg@+!mOiq4p2wUe#f3@F8hEM805tsnb_5BIx{^qa0OrExdd~j7; z{Gu6n;!|PGa%9l>OLY%0OJ(N{e0?dCZE+qT$WeF-5mxVsSk7ZcrxR4wrBFOeCwV%Q zGQ)nCOzJt3rLkEI^_#&X;XvU6f&G$D_fE>f3AITq{{N+k`1ZhUv7gMM(e zI-6M=M3=HG0Bc4YYC%5O<1LE^{T=wqPklPhQ{%2P!gy44{fVeoPu9jr9OL{sui=pO zMp2lirlwhe9r&$Q9#fG4L5-#Pe)mFW5r9L)Qi-C_*FaHw-9) z_JaLOCI}Y94iDC{3UZEnz(X{;0NYNg3tqF$++mcg(D~W zE8NTuPkbBGq!g%9Z<9yKBk^(;6zh=ITv9)ltw={B81N*KPhbg!CM7MX z4*hW0!{4SZIE+{m5al_nG0Pt1)tKC5Fp`4@kApeJTb3FdZFmW76n0rRMwcz4%LLv4w13)+5Udvj53M^}%U^agL)Uo{{rdz|~J6d$RvnN>; z4}zqGLT76*K1Ds5a1QI(!B3axOyR{xb^*sv=VHv}oGWu-lk+2FbO&}OMiiR<>Dq+K zmgI_+jG)OuJcpk;kk$*$O8Y`a=(SxTWP4GcSSZ`SgdfVJA=dCiuGWk}|8`l+fq5Zz ze? zTPn{DW&wo13c&o3tWN9O)Lgc$s;XH6>FU&pHAVL|=?C+lK9s0-`|jVu{)0uqNx9T- z#&(es7$MaAt)J}K)h`kd@fTA5Lu{L?f4@JGI6TcSYks=)RULD=BYiI^C4Y$>qw0Yt z!Re%txIFb`uS{>X#1&rn4cu~HCt_(l%%2c~rw=W7#ukzWhs#EzL6hIfu#|ZQi||@} zG(Omm9;lsB$4=&r)%>hnZkHzInUy}nG!J6vZC5R{n6lJZwdI@RLAjorT|%BA^RbFR zOvlSTUToL6o9@Y3;G}93Vh_t%9@|ss@Ez*hwNipjuls5W#w7qo85=w4#8k{t{)ebs}Ze{@yo8@dkjAPAA^YEdpV2$?iu@287X5||qE zow??kTilFun~1d0yFUx&mpAtz)LT{Tn(^90^3yoikz=2Q6ITP~CG!CjDOgC2=;|=A zJ1{@|jsDR-U-TnO1wDI0CnhY5_f2X}=!MgBNA}K_i1k9>|J8rszy9v!ac=!9!k@eD zogn-Rk_7JwUModJfcP8W2 z*?nvB>&fH^J9PgDSTWW1qmdUu4B6_>*ks=XPUe>E*s^?4e3B;1X$U^8mI#iV&9>QSm-ra@aFp-=nRo~BR ztg6kq+#x)NsoD^GfULzg5`-sFz%Fn1cFMGchc;O+WX|BvM51gDR%dsGIxl8IH#6;6 zU}M`OBx7g<6DOf3&Q|*`>iqw*6hIw*za7$iucZLJrYE{*L+kh3318kz2Z=wiic=+fKn!E)!-loXVC<%l8U4WKL}L zfify2hQS?o325Cy99Y5{G5JTQ%vJ|oDIDkbj`Y%e5%A1^G0cq?I1g=?V$J9y1)FZS zn$K@hWgUMLN!r%ifzs*#ZmIp7V3H?|r=1!~m#-dSkw#!t|5hR?8sY)(t4x8^E#W-H z(XZvLD%5E4o51Wr{b9RCDETvx{rOuf(?{4u1RMiX=Lcyd2a6qH)r*EoR=Ecc*X;6` z?wlThaRy>pHxE;1v*}fwB`EvU!+3Pqmbj0#B#Ka8s$y@>$IZZaqY`9vEp<=G_kRvq z`C05ht=XW(&E!SMhb~1?q;0C?6*`EU(uFnSAhB@9to_Hrnpg}@o6wsX54D;N96d0; z^r|H09a~d$Qw;4nqQMD>Sx?^JV)1OmRzo-S5GlcR;1GGkNq#1j?!Gb(2FrNz(QNnx zGKdmD&qi!6IpC{T=ifL5nPOn>kDhHQ^@dpV5v0N-kyl(K@aIV=92pz%Erd-&!V~1I zTn1ye{bHZ?^X=cU(itw3=ZVO=PbM(w@^XJGn3~gGfpVi1rXxIK_ShB}pRSe3h84d> zGaX{FSr=cCZoA7`C!{Jm@io(~yV1_7weOCN!v$76Q+;`yDxJcd^vN?1>=ggAQ;{N=xuWUI%i8^R_ofg>>oOj#M2ULj3ht0zO z$_v`tw}aG#O#4XmObA2?sQLi=lHb)W}5g!QtwrmeGt8mUzb zN?DX=N!`Un#vIG$PFfGIfV}k{9^xzzH{dZqODNuBV&!MF9Nf%jqU@T1KChtgGr5!_ zV-_W99lUg%-jAR`>drDXDeBY!&zc|0RfUD}X6R|wg$XjD^d*K=f`oK|vWc_E%XwAB zd>tEn`k^Ux!D@0m_yXi;N{W(uQWQdYQ3A2758qgx(#OP#sLu)Y3PCopo4x4R%%u%5KGoOPX6o44xU{aK2@$zF;RAYG3ErXU<$%K>RoxF{pYDt18-&5r!q*qg<{X*NO&Jbw&7Sj)Gbref zE}cF{EmZSp|0LO@#4R~$1{|5&+CiWRKr08o+L+Ymz^5Yt;(?&V@WU9LT^*PI?mABB ze(~S~>yQv6)-aW2UD-_(tegPTGW+S({k6la2+ks>8mvHSx-+&>$DrJq_NZNrpCpI` z1_hBK`J@|DNSE28&v=#cTU)^9ofFAA_|{m6hpSE5=kBIZoMQj!P_38~-U4!#H_0oF z&v?~F^StXiE6<&KRf$iARIfRlpRija6WZK{j-_e$i5@ti{3`9X8>9F#GXR*fD4FFh z7lFBX&W;y@I;_S7wH}7n}bx!10_2E{hzcJwy%(2R#bh5autD#J$iWT^-QLu{W z40D>tdPmpyQ+^L^(DV93FuzYM2b2C&y}2$qx;j9vl8drtI0$@~+V%4b%3M+(aWl=P zmnKc7?nG+P)r?et`o~(Tb4<XZ*(T()Zw2A2;B$x%R1cpt!keE!N8D!wx*^v{ZO8uI% zFCe-|jd$R?>_{l3%f9qD4GmuR8Xw7zI3ghgq0+BMZ(bj7MStSG7EPb6<>LKe`f0`y z%l!U&@?w$20OowWoO{ztq2<#1L|NLJJ(nvCdCA8({?2>VTR8=uCF^W8U zT%KujVLhj)xoe>Ep@Bc4DaSy91SV_7DOgUZz{mhHCYI+HW9HAdUyg#d<*>V8l4O1- zxLZx3B~i}Z7w0dmVl8=Lco(V_T@o++ZrNc7QZE;$8{Dx_krD%KTw(aGb{bd^s&9@4tb zzYZ|m=^)HfkFL0KH@hMq756;Tjt-iC^e;MBX1)a47c9{Obje9e|yp%XHd zZ1)JH)71p3=e3cLphQmN#ghQas_s6G z0GY`5qVJ2<&Wj^^(YeXRUUr4xUq2kX=z(FaHPK(H2fdkDX>>t|A#&|bD2@jz_P8->e+TOId)69wifF8;-D;E_X(4lRSARh0g*Qg`ZP!1jXbC_O7ufj5;u)Y{L_0f)Q z-o06R$g$A5?9ldR^qPsvE8H)3j-IGIp;%f$(v|&kJyQ4L<(a6mFTH4F;|I z=2u${->d_FH+)G3K#%$E$r@-LXPks?iB_ITJt-MH`tiBGxPC_)Q}KJnw8Y&oowJ}} zO*N#AyVe=>wx+X6e0l|J6;Fe5gQxg{8_vn)J-H$Iuz@5&IM)bF!5A5x=hK3j8QFn1 z5Glp~w-D!8(02Gp2pY3cVbOR+RW#&B$c8k%Tx|u+z}_rZEHWudo}%Z10Oi3P zy9cp3QL#k^#K)=8#dOVL$$1e<2>t#JO=G&!S~KO>Me z?f^jQ_6P#$E+ea{IBH-zGrbnH+Ra>ifQZB6^VFeMx%z{x@?zw;;`J0a8yvW)Vr!Fo5xu*ZvJtzN{ZCYMBJ_KD?jK=|Rj1y|LgR z5f*4S-NQjs?{35eUYHfF3*@j~24JvOU_fNyWynZ~jZPY7W3lN-P@K@HfUG%L$j#;^r5%`Gv1Jp5Qy@j!u3?Q>6)x2EfQyQVEaMpREgfy8ig5|Y0Ved7&{ImHjxeVoGad+9 zGF7Kn#goegZbz|B$i*J;C-SLYZsSi80 zPqBsQ2M&C$yAIh2;y#ca21?e zpx)Y2B{YD&d=DVv<)(KhcD8E})7#TO52oF^@V4ap7QFVXf#UmukC&_2|D{>=tYEd( zkZ+bBVE~>6xY0GO^IPRM zr`2NkjrIZB_{Spz$Tc&@h1PMMh$(5CTWOf3 zMKS1dBSkB8J%R*A@8F=0RJ{>aCaRKWg;7cz!JwBeosRqE8d~b$dow%gX@U!Szr}>Z zarcDk=8`Q+h7@2T94QVYWe~lnzLU^qAlnm#x*PcoXBUvmzBjot#TVf!^36J)rstb7i(>kkxp&q@Nrx z^adgDq*3~#_$^5Q6}qiV&S*T(3t5#k&97M^>0u#5Y!qflZ3X(E>Dt*&0mwAnK-y}8LRVW9ywE?0pH@H7k}qCrc< zZ(_NN&OA2_lns7ts2|0Tw6H)*+%S$vx(nu^@ShRWSEp7U|4QX3H|)Y`_{^s zuPm?Pw!-P3JF?2j$0vTuyQ$oRp^cU>`R>pIHZOYLthafjpKNuug2nA_#F{NiX}&xg zzSR|sC*D-K0(2o7*YK&IxqGeu(+mQL#_OQ}`8=q@qDvKHH55)#06cZyVte~2=tH0w zfNJpVyLW*OdWdHfI$iHOJAZ>*qQ+kmcZnVY+nN!+)Ky#`EUHE^5j$tpA8xYwr7(0= zgZ@=4_G3125L8%R*rjCb)bMHnTpUtB#4XPE=fk_KbL=1;h)FTT;n2&k%mp1O!?hid zZ0epW>OgTLL0Wx_fPbJgjG*`+R}tGrt?Ef^?k`(x_abv^CQ$Sm`BubnM+Dg(F&7GG zv(z7DkEW!Y3Rl)Q`zi1~+mVGO&-ze_plE)MxSgsTk#40N+ zX-YO+u>w3h4v8?lqU=3h$ykhll9SuvSqV>BfI-DTIW)bkR*gcw=a9d95phXzT6FW9 zXjn3_RD%O1E2`z0h4PhH7Di98IpO?I&b=o$`expg$Foy7Og!}Xd+Xc1wn4HI_O{R$ z{y)K?B&FK~0RfS2knSFu5kU|ol_ns5(rMlrm)~;iXXE>-4wRLJT#1 z9x)y4)paO7AFW=uQy@)i28gCLHaw>(JRZA)4qXhvkwaoGggu|-dzrgIa)}d z4}+dwoPD8NKQeoWn!QqyuKAhBWA4JnQk3onB$jOf0TZ8{jjo^A+h=#&7gyAETU`oX zGj;u-8_#9n2ZS8&HA_vuz%@5OTITm2AfB<-R6Edr+FOJ0<5#ns0tNJN_d|U=KAQ8d{b2RW8MXey!*>7TA+sD1$A(2pDbeX_#NilINT+2P`$n@UHf4K& zZPQA;4=h?{Y#-~gVBhi1Sl%nMWij8dxyg1Ll_~IE>0%d<&0?)+P5;e`7Uuu8*q}YW zPKXBRk_-k|p_ttcJDbRgTF?tzNpxL~k(0S!+w0Y5M7XrSHc~`K?ufZ?!D57Cq6ikT z2}*-z!V}kuT@%#me*B5JCTR->*=TYc8Y%s@oKn;~k)h7MJ$aSDAc4KvpVuZ=L6rRI%5%AovYAFXD9j5P%^ z@HHFWnbX6Xo4@wz)Qrtt!VapO4-}PH%?1k(PWu02rwMzc>;;S+%vfVb_y51KLsJAO ziCUGYfn4!D(6?ZrK-_=nK{Ld>59_78mO7PX-)q%-^m~Gy`vi~w@3scOs|J=tw`Pyw zjOGAV*`T0K?0eENtL{+v1HqEADN6QVLevWFEaxujS{3G~-u$&=c?#ERU0eIB*I%-Q znPL`XCWUVQGO7tEK6)>oy$s6zXQaYJ6(i{o2@ybVek27wBF68MVStS(C1XDmrM}7b zr?ZLt^`sKs^DG?ft+?{PuuKsv#)4szDF4XEAoI8X8oT{%wMBPqPYwt1PpAqcA{a! zYj1%aS>LtxXk`t^+oY{Z^0T=VTsy4OcTg$>4%NjHki@m)yAwIrmS7`y?EqV8a|n!y z6RO(Eb$7A9MGDli11UG(>4yLKKy02lEv;l1ZVS$8;o*9_SMvi3zf|$9Bki}{YlrNE z{nwLDWoN_WcmqUrF6Nx0VXgU`qt_sKFc}BLA`#zQvabxgV)w@1Qey`)dNX6y*b&>G zr{&5dvFdjw!i0}zCfNb69Z*V#5yKF>vH~~2I>D9d6NXajT9uT$H2;)p=cxR$8eX!B zGM#Z#{7ftn^9;4ldPdytG^s3blOGh`NHG-1ZJasYoruXy-J#N9lHRM|MOMw@9tW#6mY#)m#C_l?jjzV zXc!oX0B?!rr%~WqAcJS+qXBb3BHR8MG;>rrfO+A$0eCZAv`|@-KU=lJ7CkHq9>;H%LI2Y2@D8{;XA?atTTc@4q}bsILk8NIqj)PbGc#}ECR~7J z^($%?%DJQ*>CdYT%nPwXCFwCefZwxneNmbv#KQ>6XySfwVUccyg$HPLRz$x3Fk&-wBq;?hvi}q z$z)r1xPr2U0;Qdy>aZL^z8m}BGVR`%{>tAie_HHyq5&i!)dfuET=EHGD2)71)j%s? z3;3niF7T5CJilS?nS62 zvTUiDz39f}SG}d6&9&3) z;`>keFRUb_?WM$$XNI{7b6eMji+(3#Rr^uUa9YjqBl)R6R)D>BO4!hH$MqFW?B|3` zGhjS(T4)O@;5feDSk+E9yMR>)#krkK5o%WWtvDe^YW!*4z7Y}P0E~U7Vj`T$83L`$Hy8cB1 ziQ%rFsr=8S@bn$q{q>j)+`Cu)JDK_NvbWSMXQ45&IGx0qCrUIsOrqzZNt#2LDBD!e z%-~=ct|k~_V-qc|RYBzy@HE+fW5ggxsIxfJLT8?B@ zUo-BBU6t_jp9Z7J!VVpk^Fc3tMc|VaJxVps>WrOoCtO?2sR##{BY`i5fNAZ5rrdJj zmvUZlZx&1G#}H-NcC1BD>AmjhFWVTfCQ+Fs-+`2}*GT!y&$6oVw`ci!Zhf}JR~FOP z{U;`5LbYyIdBGZGf)-z@_S4>)|v9?*;i+UtbUHzgl8cD4=;QU;>vnh z+K^Q)^x(wx8*M&Fe>A_sV==-C^n6;*r^kmGhdUBjKlqxjB@B#K0$OxcU%&n2 z+8$jmmGF(Tf`K;o4~r8hd88L)CwGwL8C-nhGcTaJ@A40EayFy(84p98y;<_YV;w~M z)6OyKC@B|XEwed~TBH66*as4xx2~n6DtPw0h4&-9wHv^SGGcfzE!N5Tfl_4n$GA$@ zmh8&i8uchPOJAYDgIDs`mZ`6+NXu*x0h^@~~ zPe9x0flr;wb|}UJQTWB+d*b#h;Ab=P{h?=W=u-I#?vdMP7hx_L(RTDk9AR=eu2C%w zvQ%6&q7t%~4e>0#{UU}znY;Y2ys$c!7w$4w)SA@VJ4)rKSHfHTWyF``rICbW1RFIP zoez|0jJX-@`^BJip>pidC% zd=kgo{<=czdEQ;#cX6s`MuvF%e&gR<>X zgLa6`O9w1lh)vdVDJToe?RSigTXv|jKXHRDzlM6DkUX56bJys+I%tF;r8ig?%z(Cj z@8E*isbT>LD+5wqhpkddtC#2!gZ7~L@tzs@3O>JpOO-W$&R}MwiePzMly0P49N#n$ z5AzL;4Gxmnmrx1!#tSYaLgz0!9}cAV8QPfqn7p3bs#U3%e5TNRiQjpH`s@~Bi}z~P z>FFT0C+qO^)c?X{g%w(7@JaWk$WcOflS;nUDjA2)I=B+9ztO6898VC2_S7w^|0J(W zpWXTPl9R&@;U5%+M!XL6U$?gKkl=?cYzEj?C^d|g0zdv|U2v1VM3vqrO*#Ru?o-yA z_fJr4v?aMYZ$KDWNzS`cd5Ca?_}>Z?P$P*RAVh;qVRTS8vij?{SgPE>U9a)yyke94 zEwb??RMl>K6MdytH9bV}&Je{K-fx9kRd;bUY9RR)^1ds16(GQf5rG=Hx-q2}8E4Z8 zqg!6-j#1RLDafpFPM$0=%2jlzdB>_%*#|P_``9#UzsZ}0s8Hn`fEL@eunhEyCOs7W zVa2#R{ubpj70+wJ7KA3r1MyESjA;Fy_^OQzDjRC$g_kgYJN0tQD);>=lj$yw2Cdv7 zI-b{O2Td`jDCNTHHlVT2VXo&zaOl>H@XT*c*YN9$IxGh&d^7HjUM;t2NIs?am!RkZ zgTbn-4@->Z@ve+`=$c-ZP++@RDl8ZI8fkO(qj&PSj6)_O=GajF${xP|rVMF5d5SPY|AT8tGH?Q zt&QEMAfPDb=i#A_M`d^rB4R`zirmbg;xX4TtKpk;8Fe$bcf_2**~OnW`@?2D1bRKm zevQ!&v}!Pv&a2;_JA+W$G;+26!piR-6%adI^tlco068Bs5$3VD7ocff#eBSXE`QRi zCRv9cGkLr=tXg^gY#|^@$E^w-Y)`}K9eWxNScZr+kZ_Yz&jHdfiZH&cOi04s!RwP` zR*PmJP|LThTeZ;00fBEIA-(fo)H04}| zM5=+VE)4hw5#xhfR46@*?a$gu3w6VZ?rv`J)`k_!DDat?ack$|(m8Z#ugVUMbXx^Y z_+O*hx9BV$uG*2Za0?kpz@8)ntTwLH0=Bmo9}2h#a@GUwZFByrd7`{zXGt$ie3RB= z%e%-CsGIyGoId4O<%vdqnRqowdDQN;?J?r8wa32+9&}_y+?aRE+V7`@X@WpV$|Asd%L;et z`cW>%DggejWNe15i;x4s|gb675Pc|KN6ck$( z-$uc!sLlVPQPEonw)PC?Y(`?yR2!32*Rg~L{qegrv)M?XkiF=9uyyB5>5~Dhqd+^P zYSOx;?3#lfK*shC^5&`vAKATYo2irc-Ha7O86@uELsO4Y71Ly~YbgKo zRQx(f$i@We{b(4F?T3(CUcGj$8Vm%ing24e!n6u!k1EFCG8h0%(L{mTei^Zi?o zGPVPk*A>ju!lKtDZ(=eb`|09U#(Sz**zsh3pNt4#O|H^kNCj2em$JS6yHxPM+`%l~ z%+s7UtrgbqI6k(=(*ALxmkp1THOGorR9lV@v>YzcONP2?R%p%)bBdevP|t3Oc4=2T zGH>^KTxMqJeHmg}vRpC2A7*j&s#X?%*W^oTlQER1ec@!iRh-s??B~|6t_O`!(ovX@ z^{$9wZv=HAx7{pZniI~a#p~@?fd9>jf6Dgh7D&UaxA_d)knm8fT@`@}*R~~!$`8dZ zDZa0@UnH%VIOBZ_It|~-y!*+g4j%hD?2{8eIbM_`<{brr>3sXfqRjgFfZ?6sKM!)p zH2$b$3`3%>xC``B(MNuu(-#Av&ToxQ;)B8CwfBsW4`O~c5MvQT^4FW;mpF6IdA@$G z+yPSC)Xb8foXndw6nFYp{{G4FkG0!^o6+9pyb0%3A@jVI{%5ILUbx}F!2-I6?XE3IKG@P=G)%mq|FRcQ-wV7NM2~Zu zc%WSdmD>Ftvg8VJ78HF$gOa9fm}XlR#aGf(E`gb!*Z2a7J3e*`I|jX^(8(o95nuR9 z&&YQp+|^BSMa{t);@$F-;d4P)=d|#qOIeKFi}9LPT;*>?c$k8X&af9i1H=fI3WFuyf+oYebV7D(%jdVq!%ydq){Z!?}tu zBT@aM$4y{R>vSmNr>B=KLUpSRrCi2CZeU~VbX=D{2-|Lbrs_warC<4XV%OfqVd>Id z-CtRRd7BXgC@r6#oIaDF|?Qx|x)QjpH%{4C3&3tvh9bA;-o-yEJQr$4X~Jz!RMM$BL&# z5_|6n+&vX*ru7mFa_c!>TCj<$7@WO88KbL_pu>bLh9jv|NSt%~NJqk56ImQ*s+X6T z%DN`4)D)|EQ&tYuhe43tJwi0xxaV^HU%~ttcV)mJQTL;N3}6p3F;ai>yi+I*51gsZze%(EMOG2*L`K~)yf7esX$zOqlAl1uAIl$~!*Wt19+j}4gsWmr;Maj-EQyKZU z;{Oa}llq5+N0?;S4o14i@}o#8+e5Kl0~*^Jj=Y&D@H7h-uX zh7eKauI$EuZOfGM3_Y|z5^t~6`VGXunhN2K1Fhcgs{8-3yZ}wt7JH7r8?VWTvOgc6 zdp~MgI@cqx3=Rsi1l(JIWWu{fi&egdw#pnMb_kjr0d5)<(2XnCvM|6RbCA67ux@0n z2z1w4Z*9xYM;#-U9h!FDT^!+ri2{M>xI!3Ig-7|73V;$o*?FY!b{d$g`cs~7e0v~? z)0!vm+7{R*o(h1Dzvu;p=Gqh9a|=%M-`}@MCi~Xz`_a+(T9xtV$B>G2$V-! zd-!VCIzTt?Y2H;$bPVOalYfo&yWf~Yi8t)PUn-rP{Pli7DGl59<$nU{zx&s((KqJ& z4sr8&B_=qBA6QlFe6fj~&{}D>j?^tm8aZd909v~%*JuUQpfnWeA)==)_D7W{?cz68 zv%}v`jt|>VD_}%>K_TyGt>yS@VHRF#e%3)KBW*tTVNb(oNZGCd1G%s3{(guxVNxS=FCX($Yd^4}0J}J;T6?>{UYRxmdR3 z)~$e^0C91Oj|Q2$HZnBw1OUJPFZo`7xv%8JC+}Uk~0 zw2x{j7v;N|X}o>ycc17#Emf@ksK7e9BI5_h^Bj@NjTu+s&>V13_$7`%T=+Pg8*EkjkJS2z2dY&@U6G7OR77Rm zIv}%?e{s|pwZBVcJ*MHTaIJ@JpMQu$*E$H35cK8CyrF^aYzlB|B$1$%PF=w*z9;1J zYL;LHNFkIh0_6|ccU(a#{1eH_R7neQhCcP9pPTX{STQwt-|?to{fYtI;^tZY##rHTJ z@`!#wj{o4Qs1S3h3z|$7yd37=Xz_!l0eh)GUuqLMi#{MZb!D|aQSMI3(Skd+d+s!l!LUIU{5+IS*;taY!b0iqdF!@u)W%GyB z=i5I-{kh|5;N0-#*lBm&AKK*GyDvqUpI{!Jh2On-g*okVl{@_|-~RM;ottnC+@OPN z(U!XIr|+E?Z_nw6&suuq!U>e8jjE{#cj8EOpJ+ItmUH~~gC!ecS$ z>D2Dt-Z(DinjHB+lUot|5GX$pTb#t(L96TQJT`TE<)R!R2>AFdZXSWfwI@D`F>ts; zMompu5Ex668R(+4HJ4UuY_qrFAt9p6Ibxz9w6gcKM(1O+&zqq1C7H(ILAm4&WG|BLpkNe7 zd#*9BwNPy&O8Js?dySWi!JPW=r}TUNTGtZ>3)0p({`TmUEJknM2u>(yXes}1 z>9?a-SIrzyv9gzD)n8na+}Q_tHBzr$cx`TO5`-2L1V!f-&42`mF|HFn{hCo;{X{2Z zk-M86zYD`iZ+CZeVq#*`*3C^Yp|uSE%s#aMh}`(} zG@@Az1?N|s(v^#r%#7Q2LzeJguq8hn8BwXRIPFaMxw4FvE1S>{x)tiwEE6M7ruR<_ zT^VL|D_uIMTQ;`6)OF5YOQ|x&Py|mzS&8gghu`I|C;{(m|o6b>^ zI3mR3GBO@hBqR%uN8hA4>(hX*WQ)Js3nPaln6#&-GdgU}c!JA!G_QnGv>iN=ZcrPe ztXC{Ku019`T!BI7AqFN^&nlKOA{N@)+q*%VVtoVoiF)Iva81;M-Dhm0&d=iruP+>r z9ukmugPLxdeQW+yji{iPqyAvvp;}oAZyemDf$zmWEFr;3xKVzbX5D7G+Dhzb zJv^qEpEK`%7lB#{@@yS0j{sO|s$gf{>%;u&pqazk5VO10SSHayBgfGPLe_$Wu%d*0 zN+tH>*ekmA;u8v24825AA|H$IvtRltL7)2Ykx)8K`n*^v`hJ@+yTz?X%g-&6E`NCY zxBh!{1xI$X7M<870AdC>6tCv$jvBNFk0taR`QU#^S||4LiCx6Q&J7W2CW2_e;^VKZ znLC`T9itHp8o3uLP>4XtX0&hI3|Txhfk+UA)bsJXK)=C1F2#hT)ySsbo zZ@`f3o5im!^rKGXDhy5mfo|#S+@V6Lvb2A%V!_L~Vw!E1-C}>7JC0S{XqkN3N7=s2 z%&FNgsPP)QH*acz`*wm7z|n;t530rn>r*6EpSp+P0+JvD5Dc~|&)prqJv_OW%8qYvPB3x@#PQx0unWH58iWfRPY=O}n|#+` zj$4yvW`dk+m_4LGz_hnlf$de38wAniHT?_9!^ETl_devVELvu2UtqjcouMt8zUlX> zhSOP_lVU<}$f30v!y-o}oo26ZnTcW+2f<5y!OHw`o}UiR6=xSvR&7;FBz64P)W`qb zU*?SN^=YYzkYFf@E<)ZmfYu2Dhl-k_sQ!yu%-;JxPBO-9GB+moO!@tc1c`qBRRVO{ zHlorzHPCm)EK^|@foZBWTi!Ve*`VeH69TyFAU{vTm~^>CyJ`kgi4v@5YJtVIs8M;| z%EP19c3nP}*JT#3_FfsmjhjbTHyMyB&*=|7o z?$W#Q7zk~8p}l?*5GCCI-7EgD+0se0xF5%>_oCTWs9(hL8w(~2WEOt6H4I2m z8hBE;yQxkrIN1G~d7~22(+HV}C>=p&^FYnq1>7dg%7!fLbE$(m0_+@CcNpO&Kds|< zW*3Q9CMPEeb><(6iW=0PV)AONn#*{baIQZc!nq|fX~zGSnCfYAf@4>||0}ffn$y>smy*)j##l@1#6J^NO!PY?uqa^*fJy%{9 z+k?Q|6%Vj?@mj;betjYwGN4LfGiKaiZb3nBmAOyYu_ZvR9?S| z>wbS)_F#UvPcB!TzWa%RzW$8ISu;`V?o5X9C$o;w9W`Z*a~F)oCnCbn!|6~woyCMn z^Gkz0xmuJbE#rCeIW66%c6>RspG^~f5e(C;%*-en6x)s+( zzHt9mMX9N0->2DThaPjtgG^KOq?zP!W1%jrMFPgFQK{r7UjwdjJC1H-MJxCY`C8w0 zM6!F?+K)Ql-nxpqZv?|$?19O8j2=WpDG8EXBXsh@IoI?tduEoq$~XRp0e}B;!~DD7 z$>Kd<(=6h=k-w)Dv<5@U=Sq$G7)l?=rS2l^O2bSioQj~tvkIOAc@MhWQkDY?2@3rn z8bPpR4;fm@;AbQ_I+YG=GKtb*OTigEe_xxd8Zv%od1Vqb)yI$&Ecm1?hR!= zA4zvms1iZlrxUY5yifsE2T?DPK;|I7cBYCd^WY?K29~RQRC{%ISf!d;S3YLD+ik*| zY>JdS)l609)_t%{a;Q}=JiqMKX&;Zkuyz(5W~WSFHz#jF-i5Ps_%2kj7v;#{%Rdu- zZIwWWLe1afZz72oIyqXZar$_EQR+I!bKT#8g){R9*cW;5^mI8OTH(r`aZ3Mx!o zbfCT<|9|@QjOQ7<+pRkS7o~2RH)@!{#pK`&_5-Q|xN`gc4`)i(j$Sy#8+z_W8HrNI zy{s|^s6$1tKGc41T@pO{yuniM67d9ItC4o*3r51f&Z?{y1*@gkt5FagMhFHB)aETINeHcsSG6v#nnJZ2R=D_)KCbTYb3>F{Ow2koFvu}W`o{n7k%0XL?^t56 zonHRPT@}gwAyO+gVa8)~5KVwZR^&&6!2>)<+glk5a`q$28syX92tJNA+Dm(cpnC42 zTuNdVd69F@PwkwKIt}7o$k_Mr2l~P&H|9brei(1$^$%c-EubQJgx# zPXzPtSeVH>y==>=U5akAGh}O!7Zi!3G?>r(mZ_jS3jeHF!kIW9K76ykF;3!$S)Q~( z)Vcq}IeIRp*5FkK2wXnoC}E6u<9T?gX?L`&Ee#bF_h_MRMMtqB$Ig!Kk1`r@NVnx! z(H;As5R@xT#md1KPgyy+*mTBI9kOxl2xW%8>1iuKV_5*R`WrVlAz4L5xGTnSVlG~* z%A-oZ!F|T_Ck@=%G=Y8_%t(x$blwPmB?v~u2zvZ@C8aGX=`Ryq$Ww0k`RZ>z;%e-P z^@7sli;RnB>7e;*37scQB*G8OU(YI>3>5gBq+-)A zRi5`CemfvAu7;nOMk(&MYW)~}^uDXG+&*AeM!1le`vkyks&j8HgQIE9gRy8l#6fa` zF$n+arM3c44SH6+UqEnxgTQlu2vr*Elnj;{^v_S7Me7anh~rM{>%Y#Qo*bD+mVU%t z1~I3VRn}9L)?pEJc<7O%xxQqd<-W!NT-Cuh-4ayvI&-#bLuL->WrUl5#$nDQy>BzP zfV!br#owbBhE$esZ*!sBiB1j4$jI&<<&?PLUZWGU1nh88lfI37NTWsEiFI^zG$+gh zlO28OaqkX7!2lBF z0VQ;b)=~Vey7p1?uWQ1+BXsM9@r&}716zIV*MuR383~4-@r46!V;rm1V<8J`g;FZL z%I#(XYg;*{Ov6PDC6LIAeRs&8#dSUc$5J!ph9p44+gw8eaeM0F^$WJ}gpY#9PXN@7 zq6*>1eIpY9?hOrF^0SS5JF#Xa%GKXpCcb=>>mq=lz%d+lpGn$XVx9`Sn~>UnLgO{5 zr1pE+n2w!j_XWS8jJmq%ZUjPE^d>{s=4?gpq34dF`7rS^m``d3nMl}E|IB*gvQ`Xg zXTAi8s%iMWqgg6(%$Mo&H62rxc0Sta7N5T!AJ@jfIl}ixR0hp;S)W2iw?J-f=5h%1 zIQ6l3#Kd)%lf6-&xSPkfGGLx$1>=L1;h?Xi*=Q8*Go&&txMK~F00G)j;M->72GR~ zgr$#3Q|2XuT`^)d@^#gB!A$k_rB1KXF6N^*?7J38#5!K!*3Ro>bPz$+O0Vxe6;`o2 z_u-CdrnW?a&DAFXgHJ3@oi9nqmvTS2kkJfYpcHQp9WsoCyzTU#07w>*cYlAsUP?BT zysWNG2;6yWx`IQy`etd}3%p9Hukw*+*aL`2{P;TSjT%lmVYhC}S+Vssa5m-p9=`3F z5IHyqlkW!f&AYkDiHUBIYKz!5XxEya`}!7pRE-vB6JUNMx#5=E%<6=)iW@ucoq>t( z>w>PPWaQ*v#1?$K%pywA>o{5_escrRwYA%Rhd)w7a>$>_$z!Qkm*)}Q-ls_zFn{g= zq@9DGk0R^B@18p(SO6ZA6fNOO`&lc%ZkT;HMyU${Gt{P@HAT*2Zt1$ombewfcB(h= zA<^dGM5iBCVQ0g8!iI1u@8^7FK6CCtkVz7_-sGB3Oh+Hxz~Lq*@uZKEn5FDx)8 zUoIe!lNJtPKe|%Dk12@yZg}_}l6Ft+$48>ez0?t5@2y5gHL5s!NXpg!!W7;UB##C- zyP|Zx^u2aw+Acs<$)BMew z6b5x#LT+yE<)KwYD}^m$ba>a(Y}< z<%-Uj?5F0xlk}FnQoq7v{bdmD$@aEgRNqPWM!9x@_Vx7S+WCUjEMM1n7*JfQE!S;OM#snV5YdSRdf;3rbP#B9Z7lP( z&~NtJvknGK%mn6WgTe;H(-?!q;1TDFx=Z)E!QqSmteDS!)`i{nO1YW`M{pDP#zdn) z!)@dB=-`LK!WP!E^(cP4_DTgk(?j%Ec!Od%01OoD&kRUXKJ+S$39~SwRiRHG6xZKqB-8udFBMKyb zd-&3n0c~J2!R(~sel`sWN!SME-e``&Z>@CGn>ZYgn>+>|B1=0JTkJ|7Fo)jfyceXh zqh64(t^69J2kJ*2gixh528$~b?Rm{2ZrFkYNSg8w*{U7A!{!0qd2=mX(RhM$_oS#a?Ttd-|Y7-h1~0+DBUV16!r$ zTW@3KS>}-3WOZ_lpsJ;(e;)V)H*BRU`1C0*c9gupkqBiBr3K1J?bi^c9d=@fuAtXc z(9y^SF%2N>->v5|={TX_4i46;#?U~EBAXXE9(yhLCK!Mps6Bs9J9lH8-ZL2N`?HUq ziJk1i$8hx;Y^JzI+6N57Oj559zdJjGL6M(V#evh6e^qifk`(g!l8JDh? z)4hk@;`VP@XwEZ~aqD|6WCT6Ps@>_d15`^Q>0aeEAR{&aS;VggmUUN58crwfG28Gz z^?CZ3?x2Z;&^A~eLC*wUF=DC=g(6rEi!v-G~TpW`gzMB0Asy#GABXh!E_KPNX9=L$WB#R&uQXfDIn-MHlqa6;B9d2 z`pI|u$LP@j5LQ#s9lNcYpT*YQXl$q-t9RVtb=Y4YZIqQi{YiB6=vD(1{%ph{Bo1fB zb;Zg#?29;Fa63xyWUSyZ|Gsa>H?n_Mo&UE>RLu$pkxTP+tvAG1GMwjQy%%)COPdn* zLo>gL;ztNX@Oj*<++?9oLmI@zdSY)h?Z(lGEwz#4u>Nx|Phu)h;;7P|{)Q<6lFYph zJ;C68%0Am~rMcN#q(5=)Hn8;=dy=(M+^o3wQ>Exrgk^WuDNa*+bW33>;2OvnYa^dn z{SciBfY7$8K}Asap9^@+^6+7D{zP4mPA&&Nd^#%UYT=5v7FS_?>HO_&xH;n+rv3Y~ zFUrqA!U=T@Ysl#fM^7Yz--l)+)k7)gX~~1GM`v%b5PEvG{_~?QxBH>OcFpH>rWB4! zqH1d#3^Qj%1!$*vDXDeKYmEK705-oHwglq14yVc{=$z-idXE{p?o!cA8_jqfSwTMp zlU(1jNsNX)nC_q+eXdj@GWA_ZWV;hT?y~k+f|z+usw9!*J#IQ7$FJHBsa!A)t=X~c z8ICdhvla0(SHlt!%$SNd;nU;ySG|I&^+4`0p=R|IE;A@(MgvF#i~lx?O=k* zyr_?VRI87y@NaY38@9jT>;O046qlppN|vz1lT8qWM6%oAU<+m_`HU*WU9X4Eimj}D z;%MMJ?b*o!huj0>RN33lA2%(jLdb0x5c~W4v7qXUq3PE-`pe z(a||~w2VEcyjasnp8*mjVnBsfod72%C#SE|F1OG-p7g7rTwg@}Z0$LoPSCby{oX)Q ze8JN}@zW#~9jg4VEC92kA(Kp$^~3@e>9TuQI|z=u0)lnfZ~A@WMX5r`YjhcAMY-ak zabNlx99BLUsf;0@UCW3|0l7r$1^X-!_;cJvKo6R<;N$tj|l9rGcyLE}u< zEcpsyBDdCCuDP3=cUC=%9|JO=e8hNI2vdHq&9u`;LnOWAHL9rtZwLe9*@kn21Ha4M za`31Qn-*0n-|_?1f=FM15(7!S*)ri|ai~tE{+#d0Rckd}m+IzS_^q0_W3vh{8r(qK z<42Kf6FbA#hQpD#W&X3{xH;p{uj)U}EvSKu-i0C;4u?O0C`zuFCxrQj(8hd%_@A{$ zauB!LIXn*C%&`3`Abxfrf3}#j{VY(HioeQ$;pm9}fp7aE-`HGD;LZ4 z)lO%7`fVKdfu~24*RmZ=vK|d=B9r(wtp^=&vG7#(8*I*qZeR@aURt&bbnlI4_u5i~ z=dIAf@FPJtg36;}!L2EXZgcFJ+mvDd;Ivgyn3zq^8))`#bv5(uc}Lm$yE3q*q$%v? zk32w4{m?B)Q^z|#Kwh5o(i||ryh#1=scDQrCGuwx9+tk%-D{%s&@D9>hDbnb74*ph zeLs2+yQL>kov2UYm<~xcD-IN7G>w|qJt{V28~ISG4tq2mvyB;cw9`8Gu8rV*dp!a} zYAzhHn~Gv?3y0+BH79R|L)gNL`}wW1Kwt6K{um1RnjuT&vp6+gC5S%QHsC)5!XK@> z99P#h>bwN)%5}b=N~JKYurY={i_wCr78!;rP=0m3d?{CLyq;8xxTkB(M(25KC-wRP zgmSjdJ;e2Af^+xmDQY&_dFIe=k$wL~pz%XXrK>Mq8dtfY%q<^oZ$i)Tq6CDvxeY%1 zo*k}a3U+TyX}?%BX)VxB72yF{Z#=WmvpShRi4?KWqy{nPp0eKF-ni4gp2fzmQOD=_ zA8wTa;~E@{nMa4gYE5jz&Ub;0>8cj`;;dhit|rZ3>-oc@bFA(kuIN&B<2O_)ET#P9c}IvO;1AL}_g$id>q_Xl`0*BfRBecz zGm7w5kwVCT1xZmq-Nk_8DJN=S4|=m%4zE!3QdcX}ojHkHHxG`RkD#^zhc8&6JBtB= zM&dp%`Xm~I?z~tlP!bXr@?l?Ch#*<^=}EqDw(OU;vWUI28}aDIs0=nL_in3u@eu`vcux2davni?ASd9yZvo-<@ww1w z7wVI@;x(Ajgusbj_@4f$5kdX|nMx$?IIFOEHc#}0|2kuUjOTClzLHdMb((0F37|== z>&;j5q)>U8=K?~b>4P$29+(}^d&T?g0jfRL$#y!z!`OyMQeHUUIOsM3;cL5CzP`%S zJ*{&q-=CNkz9YuV%+R(O6`MRbn%9u2| z39|@-1p#m?oTUFrN57)OW{6+8SFP{dX#6;3If$yFyXQ;O2Kq&gr=hc9fn+25&P&?o zuQ8%E$THpQlOQz$AwT2Zt6W&oQBA%s*MDDl-Fo~e(z(EyG?{;Wtf$_zX=8m1pK<|& z2V0Gd`@SJ-DFT@5XSEecs5m^}=#+hDEC{n`QCPK+nkuaQ=3#rV3qCrELs#D^;BNmd z{2{OTpetj%l!Xv?cvF1cm-DS5D6N*@vnb0H-q6%99)-lRb3lxdN)>5gM~@TQt3E;p_Q1;gY*+s%8WATsy*@MBQY`3dSd-;i8g zW4Tx1P~kiT#IXI^H3G(sWge%;&nqlM*KETG3OJ%ZK+%vQdJ#x?gWhPsfECHsExbhE zuW=WP=mo@mKt--?Cp*vWf?89q`EAh=4#H*nw^H-pTm>da}hdEP%pEkgd4vg&DdK7OY~ZU zG`3S00&DdoKArrf#-H~JTxUKjGhZtEZ&dKVXTToS;n(`&qa&`XN;?Lc%YP^FJZPVg z*67fU-OqCQ!k|%*csd@!SN8gN9ul0}U>^}5gYDx85Ek;~)2xgRXX1xvKFBj-Dhg7+ zuv{s9N|lu$aElmQ+qBS{z{T=f)Y#IYD;&K|JM38u*DVaSZ=W!{W{*z5ve#EG=!=q* zm8;Wb{+H0odxH28&eGP_h#oOREyT&`A|J8qCww&hGLV(ANKp_8sT_WtMR<9<5g8D6 zc9u+qy_lMuG`M6y9M$i9w~a1L4zMX&DXUxM`fx;v{=il_n`SqXNtYj%fVpa|_1GR` zQCPQzv7D&v&~tWUV4^>TAn`8Zr%dgQE4$bzD!!jSu49S1e`L63_PJ$hO3P)7s)wM5 zymJ>G^9}trO^LDVh-Z+-z~Af4_zFz0XGQ$@WH!oaO#IbYzv$HJxaGVbUV~S^%*Zt+ zu6D+-LNp`}MgiNJzSw@c@}>?Il1Y}N$8?OE^q=Ok_R?=U{``Y?CcLiEh2na-stIua@tT1eF-=gveqVkxTk24i;nqogV(D_Oz z-rPLd{q?Kf=b|1vv*8d%R27yeLI{hW7RM3GKXqA<6t{18p*(LbP~~+JTNhxk^iyYo zVp#XLI_^2LkMPkCKHOy{X3Qs(NQcUYev>M+!;iBJ87M{SK`~b*^Fjt0kn=)WcJ(`> z{;8P>DsYL=_m{E-WT{NG&fM7FI@sMQrFsXh%bfWex>mV$%?9Ti__xQDnrvfaWe|QXTOa-OAzFDeU=Z3g_C+1>6 zr(LUjY%sDJlbCon%w*zmqS|Yuc3f#!!gsK#-`J*J=&I|J+Y)owXU?RtLM_EQRO}tX z2x{Uyl(uc60qJ?IdTyC~Jv5~E3dEG5(AaU*w9mg|FYBu!?Lc@>!FMgYg{^U| z2J1QtT8)`1@d6ty&(wslN`b+VqgnlfYtkA;RL8KBD0P4BuP62&+KAvsPV`&E_qw_Dxq?P89=FND z1=vc-Ce0kK66=-Z`7d}thXsN)CAB>F1*^>6{%DL+R+y{W%zo|;93;pNGUu>AR!d6_tcgksHuwQHPP?{zycInL@^Sm;YSHn4XT zH@HKzc8pC-GEV}6VdH#KGxttQv>LpoH{N(87^}Bh4+m0pG*4;A`4kx(jTbiXQSn*Y z3cpFE#VS(Ykk|P9Ouwz~)gF8!ic|by$#faL{vKwJ>hY`y-f6+0sOV~F47&R$C8+h< zj!P&`Cm1r>4RVCJu^QNQRUJWnv4gn_&Vl?e!F6#rtDvdh3k-ZF~1G<81yTzfu#M^&4FokmlWJY->pTdZDV36tMwy6_kGrBi8XjM zu2%yZOWS=&AU6U;UPgAdS*uCUW=I+m%sSH=9*67JpodLYT0;1Hx$2vX=!LJ;Plj$i zo28qao;qB_pL*ul;RWzboZg@%UyoC08P^cXYRP+l`lRGH}n z+J4El^-&Fl+YTm{9#f1xOaYR=i9cuo{_s6~()8RecQFkzGU&bdqFX_3HSWZesXuMo z|EQlIX{I{xtL>b>$nE}1WW#HL>uM?>ZFV6D*+5C~O~{0_y>I$3Jyy23agL{j?Y32&IDQEHK6y(qpy`hO zQi3Lx<4#OYA|&FD5%x=Kq-d8NF2o}|lw6;%P7C5$ekYH%}VVMuKmGYu?JGVA$t|Ru%*^_ zi$ef)59+&Gj}^@@4)ODoTHmbnLwzCZcu>!iNRmndhqlSVaR zRyZ5Bf3Ukc_@%&>n;>+_Rq-n9N}uTp!^4BC5tYkskqstxgx`(*Yy~|IieloUIf=GP z&mAQUj*L(;jB~KFMeBkzOsySHA1dPN_5Y8u>kMdW-LfhIB27gErKt!Onn>?zQ4x{eYk<&^-XsuOC=yyiClErCIe4#c=Dzpl&7FT3`9aS4zFpQ{ zYi+OlH@`^cJT(SIZ}{v*;v-~U*ndBQGT zGKD=3VA!pNBx!H8jR0d{`x^mYHFu)@u6z}3$Sn!Q$g|#*1E%>)Y0IJqViztN{&~pw7bD&r~AE3De z{|5s`d@ZE-P<&kZe8BTROKjl46t{?WmrrpV0IK;?7?Y{V=E321zwyv*!omC@M`6jf z=iU}W=ThXGPHyogk;47(j*M=YQQ3OF8lBB&pDML|S?`U@Y3Wz($X})cQrk2(tc=g? zCOkVbl>~tpVgWN62GH)~2|1v=tTw8geEM$EZ>}}`qg47Ec2O%?@1Hz(;k$@5zB+b! z|L;5x;d^T^^jJwI-?(;3d}H<0^1(FG?_MyN^mJK7!EG+-BNrnu0CFag*2#T`0L~-K z-A&W)m{)l)ieKu>piN^EZO(GzloOt7ys<_D`sIH)2_mz z<$W_AX9SDtak=<3FtKP#aPa}IJynGgx=hO=L^V}BaTv!P7R)h(96+ILNSJ;SztVfC z?^e0h9>D;b;Eqy@DjAm+*QvXA9ObkhvrSuA7EH~M0w6QPhmLrv*!S<}I9WtQ+SZ@M zwCsLoW6)FF9UYs}^6ok|Q3@eIAe>&)q_uSt;&6@yehM;u9NrJ@hq0+kb{rm_VEo-x zT>eia*{cI*PDX$O9NxNKy7IPMhPezpG!|#H9Q(;weVJ{3KuB%Y$WCmTJt~d(i}Kds zKC<%!;BfgHs699?{7E6QY?$iOC{%se9zyvgBaeX?9;P*TRE+=w?oEK{qE|uNWbhg^ z{^AF|{qmm)Fk73d-R)=+eg&7huGHUIdW$91v#ve-Pqa$<1W#w_Ss87@bTQKgFb_8# zSz7vL{(2vOpcOm{BHq7g2 zcQgih`6g-O(*tWWvw_KazmCf{nS?K2;abR1JAq?D8NX<*Vv}%Y-G97X5eWE1le>&y zzP+-Qo0impn4P*NRTWM)F4}W=;?2gz0rzKMuqo6bwG5V^;Jwkf{+_T;;A#*7KrQL% zRqPs3fsF6(*>xE0-RX%!+I?`GDCJ3+Zw|4raDSQ;taJj{i6{o&?}op0k_0QMqs4ZK zjHtANiAqWI*i?Os$#4~B4JGm(54bw^0P6hUZMV(2EG6~Qzp0?FiLC-EIi$bt_HDCw zANyagCj*=P-hLehj;RU&r#3zBtah9KigeL`McXhzIus%`2UZrzHfHv-cjctMnRF zcjM(Dmp2OQ-KZ7#X1uno{dE{ldQ8{)a7!YB{uZVrdIBH_v1qAc@vaw>&vt3GfyVWj zl@oq5oHQfk0dCV{ys{QcOeE-;nuspG!AQ<;P%s;#YEYh+rF^qG(Bz}w-e{Sn1|Nmf zTguxhBbsw_n4{AnZ7)*h@zBzBXrR59Q(y}T^mL!Gb6@j?g+;Uf&R~b8n&6f5ojXdh zFJ{#!%kw@ZB*gYoa~*ab{;c0ihka_g60BQ2V@;uOMSM~amU!&kmm*|;W8VVDoT<+O zv&SkzAlSItZJNB3%}5WzDmJOnkfLdJ-Wab4e?=_pENkIB2A7?GHZGo4KJ>;fG_{0L zX@tJLRekoDObbCK*0koC_x=0T3h}Elj&s|efd6u-x`APjP|Yx3Wp?cjlRXEq=fzYKXXS$qREtr5V$zSJJmv4=kX zT(#F7*lz@sQlVRW>Gz$jYF;is+u*42>gNnjHf_AULSRwGBmlCg)5H)c#aKNjrQ6Ko z&-?&_nGE=Crbqs>N9g6X5b)vjF%zw5zGSteZ~DxhJgK8UUw zR{!j}9;;@N$#}YhIp1oXJpo9^tF)ThsgZF&I$m+`rW#*3?-VG5y%xc|PXx39JMqMM4;7fE*;+k$Csf~pPJKS%5G*j%M79UKZ>`Vj>lx#da8!Oluc=6IL-dBLG zXb+S*X%vK^ ztf4RS0Nj1j$&LETwR;leMbngt2e36pg@bQzB&g@u0}eZ{Qz@6<8a&x7i=>r-mc1Oy zrj3eO`?3rLbAm`@(!A1*X zuQm*z2xL_IIMS~ul#VK}LoIP^)~{b^6~PS57t{SF z-vxQBlIuQ#CuiPdQ`C`3T$5U-^?uVV{^N+zmi@#mTt-aYsv`Ewa)#Hm2NN1s;$ zn2&aLcFGy8)7D?6W&LFbj z43k_JzO|w;8~nwm`D7t?REtk^>UChihauu%<;VkQs;?uwOn3UFrn8(q)4#l&Z$d#$ z3)!p?^6bRh@J+AcD4vdiD3NvshmTJ!ET0GeB{${s9zUG2b#v=%(Ais;#$q`b9@K9y z8t5_wTJ~{}Y|aA&?U7p)tWcJA5t3+W3XhP#_N&(AA!STWb8u;RS?VCxm8OrKt$Gi@^lom0 zz`&%vM!WtmkM4g#O)1Xab=LV*S4U$YWZo<*B1}w(}mk`Xa-%hw{zT0aM|?H z5m2{|9EFBU9kbQ89XA)PWUxD@8Qt;#eFZ=$ht3q`l+xaCu z%E$}?9#72p5xV^ zamW@06aQNqL3M{RejhdUV>HqsLyj+m@ppI6|8aJLq|dN&OxaOUQ}@<>^88v<)zK^I zl#t^xU8f(06btzq-}*PT_<8U#_cF%=<9B)5^iYTH4)L(&SR>YKUwx?0XAD}YMU|qv zoET`Un)m1xKzK@3y#M+4+!QFiCtG*(Oo_Q??`zWi1E2W6e|Q&u%)Rt!;%z7mDpK@@ z@?%~R;T$9In00``Bf1;P6$3H{8LQ@eSof}m5fetDj)879z;QQl9x-y#lj2(i7`=s% zc{|12f`{%R5e^+}6w0~IFPTwSDPFvyDUbN{#WRW0l&2>u2%tx*`bbauBTktL0sNX1 z3%hM@P0}kBcLi@GSPZy-Y&yZ}{cIru39T$|IQbqUWJL=~#$SMS`){ifm!JpkqmKXg zSNWILTIkmCpBA4kOXQ_wVscGtC9t>G;|1KN)WqmM6KYBbhcH*fYrr!$%VI!0 z^n2OH%G>$W!osSRL$b(mz5?mOjIxpp5DyPME)z%&ql2e3lw=Bq>*?J&yMcQ3jc>}G6LU%FH^ zV80J|!<}CQG~^7O*JZS?rg{YxhNCmPhh{_`8l@oU{I?j^+^mM!YPI*s{Y z3MiD8w8F37l?UqEd6Sfz(M9{;ODkNRW4;>yDx7hvGeS8WkTeic%&s+1fn5=)>8TfI z%Jm|XA%u8Zr^m0F2@5c++=QN_wI_4&cHlkf1KAlq94SBj!R49fs}Ft0ea>5I8quv4 zn6dC7Q#6UMTK*$l$`sXJqLOlK&B~~hJj)_BJ;l1lZTPp!{(lZ#mm$Xz7UCkc$BgA0 z*1Lx+yiyj`>x8=FhYJ(@hwR6F#<)6@Quw0X9nURDk0t;4c8BwWR||iZ`C^lFI7a(U zjj6-pbh&|8$8Jd%_gOAkw#;k}7zjP{p zyxh{$E_6|awl+HXh(EOiPIiGORISYe2g}R1)*fR;q0k)Jf1h4|Cz^lzzjgd453PKD zS};ol1n8f7STxMr1IO^F^74MTqJM5a&v;2B=V04IF8}CYR-GMf87sA`(e|h?UwD!a zq})eO0zYAYGzgem7}|=oAV)IegW7V~j9VmFSSg--qzgHkUxbGh9+jh4*8uvrr#7s3 z!}Fd@i6C_kDT=E{C+p4iuN*m*@j)GSbBs^+>595m#B#WcZ4=NX-TsjicGD>r_LM$m z@tB-!zV;tst$(?he_rMpCR=;^QoK%Yp}kw2OgGZ1HMQJ0$0>k ziWhEri7d9J`XoK{zbUJ6K-Z@O5LW3&)zYO=CNkJ_o}mH33HI+>X-g7nDIeaLHYiPVn~-JNIW!++xB5+o`)*RY1;5HOft|uWnfb30N7-dw^hosDr$Jop zF1TdMrHPG-$Cl^JY7fN>SG(m4X;QTUB}1a+yr|$n^?{^n*JPt$>c3CBQS% zPNXgA%TNGx%R%h{$Hvq>nM7XEUBW$(iF5yid2*zEH95A!Eud%y)Q6<4&?)q$DhIg4 z;ikkxr>n&)C*QwDt?S4owx4>XK%L8~rfsCtrp(O3qx+u%^Hb^*W8ZF6&h(o~sWKbo zM}6c~*Htgmu}{rypdB~RubKO^VEYy5zCHZ-&Y{81 zm4llvLn;h{hBd4{Rtf_dT<2bRq}FiZ*P%UoI~tI~ZNbmDre99ewylBg@gO|Q;XH17`W2&Z=#Gb6cYVfCr z{BcThHYY;Noth-aA+@aBzkFNro7pIU8O8_Zyj@yAQv(GwH3jbG>@0r~aM(IK2y;Bh z04d_{#2OU_u%=#leYdRM=TpGP;c`&b2jr#=Xwe5N$rW_dEvay~_1ns{=BV#foWuRU zMdm*f^x{PCRn72Y=h%t&WuiX|nQpYrf036|06NvsA)8B&P}M9JD)V`l9KNpw#|=^Z zk-YcS<|Ezq=MQU{JM1zPcVlVgbBnn2j0h2zN7X5lTi*gnAZoXx1DU_a?6z;2XWl{` zv294dNSC5+r)XErcx2oV4ggih%eQTR+}98D@n(kv3o8MT#8FEAh&yReJN{(!D<@C) zD5q!P#dk~5+i$kB;-g;`?mAAc$f=C_)`vUD|Gn=AV92_4RLwGU!@#^OZ71Z_VFMs( z8h^^F)ue*!6Sn&iTQnp*Z=nDvF_9{zJ9D{G?*X1pSE=o#(@{Csbac>z{6QX1Ae63G z=)bgne`mWmcsm!!Zgz?LQlTJ=3JT#10G?+J&j5X7U7`}=!}6cbCQ1HL!bJUd36sF- zcV+46p9j+Z$;YhBwwHygxtsj%rfMf7O(k7!EuUI4(CElJ>$_^;@}}$~>pvGK|FCZO zpFhkjTpl=Z=P#SQRkB(HeW)xG{eByo6)khtgC8qNzn4i5@R40-*c)Q&I?SQv3HCU= zFokZCc3D5f(MtbxrJJ3U>n)b^0FkJti;|jIO!@}wn2b$z{bTcoHElmyp9(C`pu=M7O~n5izu6w0bV3?P*>95YoPC5170P}N(D+E ze@%19-u(H3*EQJz316Tw-bv*NO7O_i?$cMkDDewiF$_?HtyGirxm6z=_s9fBS@S1y zpRdczx}AH`hymJ4cSj0ao+tVfHGh~YefW#1(z!8AM-4YNzWpQ>g{AJ1F~?-{=8^MA zl048`87$nF5_Bvx`OUegxH2$}GEX(!d0H|)P*9+oE|Cte>9ncHSfbo4bO^vgl#Ev$ z_9kz-|E=??r+P9`PIJ@oO4FbaKpH>TqBNCNUkTnWQ}}ZTyg)0wAsNjW6I^K0d8tI9 z&op44m2aECTcR91Z>xAqCQEZ?7f=%CwtV@eO+YBk4zW4|tN{K9Vc=Y9Mo9j5fi2K{ zBuz-EX1Q)H^UK~Ss^Xt#z)zX~{HwnS2cda~5fdi!%0C<4pPa;(Eox?+0OBq4F|ok1 z!rgWS#fabM`#&FDg!FOjZPQJ*#cKvKq>smhYN25Qn5=dHm< zrAJA-K3R(>$2*f=~4oYW|mIJcz8q40d%>%cDzl14i6|M znW#ro!4b_n8doh}M;RkC-rC7Ae5#OtiPDBKG_XxF(7aSCFp&@+a$X-CV zu<{0f2H-t|K5)Evdv8N|!mW;lQPDgGXm4?bLh9?V(({hxaU%Z3@Wnew~jOdVZDRo6?=RLF>K(?`UUQ%b9MnI8wt%M<#4Z zLBGSOnbTQY?0~{90&y`i=E9;T&Gw+9UYe=5BZ!yz;0 zy|=eVJ?S!8Z4TJwTpUYceD{2r1wbz?kCYF+@dL`xlDL+W{SmkW3qen>xlqDdU?({CfSK1@C`RIpD6 zBW$$ietIAI#GG=tU+NE()wU0hM5aLZZ17?Ra2tsoVqsC5u$z26gh-a`HFy0aWn}y9 z&scKp+Q8&=da+H3p_WGil8k~BGw*-UZs32?pB718tl7%2|1mBz=@LqIui6e=CQI6& zZO}~p<@ji<^~MI32zkGzW+xVPjWaoWz5(nvDe5JbR#LR~f!cIRdEr*K&l9mG+5sur zOf`i|;tv$Xc@2ofSm)HuZAPZu0#J7TsDp=U8FCL*XVId6$4kE2nbY)A9>|vOuwu_E z#hC2+eFU|?ODPgSUXGAoxK*0o;ZFL&`?n4nP#wz$vGAG)T3Nw1nHFlk1JwSM&Q4`Q zs)e>X{dHO3X(xTPy07vqO97Xi@#vyN$Iy}K!!HbNzP+R&Fx7fQP+^o-z_BbmkKvc? z14|BFO7xLFrQI&;7+*yP-k4(7?)KK9?lVDvqttP8^N(78Cqtw-U&WMNBdx0ukZKRx zk1=8&svPr4WNH&g!9Ev!_mALj|KKA~SAG>x11b5rD1J6qor(-U82PM~7F|+bHC*Ei z)HA$~n*A4R1tlsgG7BzzdUSvp8*oa+6rJV(t(Eftk5{I{U>zEwIeO6S`OXT94GwV- zP)6DBb^6zjrBqsoFSf)Hq_DtJa2idTgX(eJl~)e=EwK2}%xYq)oVO zx|SFn6_rv1FGQ>bDMjqiVpUdRl|9mV;zXjs?Y+WB_IbL`3bQ*Mk)=pLH~yhS7z64! zxKVJ_@Z0J3lANT6hJUrxUcH?{PWL|*U6u` z#(x{O=)q1x6f(qyC9YetZ1`L6o-mHP19eyfJtc*^uN=kRn)#zbn*;h~2J;OE4t01*Z3 z{6r%oNkAwYq83q1xYe#*#{Xf|#IN_ICo^cpZ(}A%3QVfYXpFtMJyjWj^ zK@7V_n*%rX5CB~88NeGJ1>SYEa$KZt-F>jI^#M?nGG1sC;e5XIy9@&IutuR;N*Z~g zOSQsU0Jm_>mFSgh+85$5@^_!g#<{ac7Eu%wMBESl51pMk@mit)#c^jZQ=s-EeE<;b z^oPvNKDvYy-M^ECqE}A1kyJjwM}#FeUcBabN7EyVQ_6jej-jwl>SIAcFCE>?h>Mpq z%DyjM&cPZgw>@WVm4rAuYQl<|9&`?+qR!a#w(sg0yG9%;wF12QdfVyQ)Dk>*d)jYH zg>&FlMgeOP|9s-i%+s96O9pOvdC#F@Uxu{9ZeAmN{g{4;1l40*K#s4ontUY3Pm)JMf$F7M@_$w@4$#Jdrs%H)MN_i% zVlN=mfsR1`*)!8X|JBB@sKC#H)09o3AKKF#=0jKMoOcS3+$=!~mMS_~vk>fT81@KA|h^1qv{^s_6mp2~e zge{^E7AHZR0=`z{_4dem+qZ+g^+3H*rnR6`+|xk0k3QT(%Zt2pt=CUA zy%Sp$la}rEwda{D1);0LGk?{6R5x4uaEs)4_~9ZM4fz25V2YG_9*ieErdHc~FJHFd zI2~BYnbxW5ZDAPt+5v>}UCgV<8wo^M_av|-SRYI$l=h`g81&S(uua)i)MT~E*5JpU z7{}L_6PX30M@c z#7XwYnZIbZyhKkpHL($LuBf0u06n5>S|-y~#at^07vkq1oBGM32FzX6o(f&_s;sC; z1@z(zKi<_YeoI3#a#SUoP&;^uFR4e4-r7#=%2 z1WbWKG_D^O17hdC#S2qshsTlDyh5^~X(kiazE01Cx*JK+)@jHWYyPgiva%jwBa{^i_p8YM$rokI zkyEa#63((Uy*-m)3qc|Z)yjL>t8iUhCa`4ma(MEKrFX)H;M#5@e20tC)}2*8I}e8h zkx zdOJ;K(*3K8#)m<;lx?a(YVbk<*fZ|~7&np^=@j^SNm!*&s4inE{AqiRPV zhcKW05o3=<4c!*Cpy;$`p=5uJ&P6NYrhsz;EqV2#h=QTiETr#UIeZVrE`Xn;!-!ay zMO&iRm^`phaIu7+tj*qC0*E0sgPde661ZzDNI{Tb^(VQ&!6Dkeqx!!h?f>+Ntt8;! zfe|;d%{tB@qx0mwA}!NQ!nJM!KioPb1rYf1vu0oeH;~s!}J$T2ju=n$WDth5oRYTPr z=d^T-E-`D6BjdgW46z07Fz&F@fjDX}qi?5F}HL|ogm-+Fk0*m&2pM{rx|ZU+}+ z*j6kvxQM6B*;u&bCm;?L?>tPEps^4^PuKgQJBPE;t$ZCB(HUr1ZEa6aPgEJLixG9+ zk<}4BU;B)9&KtscjE%_fryvXq;%U{b)D*kjerNN0v)YQ|mF{*@jLjAE1w$vkM-pvy zRkshgkdfZ4M~e%0gDG!s zeCc8?Q*ip-h1HFnEVh&ZsmJndi}Z7Q1t`W##=8g|y4dv2Z8tMau$dt3-|@$mlD=DS z?+>NOJl>Luf1`N;vo@AYhPw2Yl{CZ8reX`H{K!PNVc{`5Ul3ijyrxTv%gV}|8d4gq zv-~xBmvWfDOQ2sXkH~sucoT}OVfv6>AZLPP1EY)I)@+BvY@F-CBfQuN6i+^xzJqqt zQt;Y3l#J>>X{m^fnRSv2xpvUO!j;NKMkQU2Q7d9hQ*${F>0_oFxYu&_hF1pn#X$4Q zm)YKe$3|NUz%^Fw4d9vFcW)ck6&mIs%MwTVp`;?we&}WNV|bvEws*OkO%V_Xk6H+5t}@Hj`%k&UTJDIJ9y6@p_gNUKHg@Dyvj(6He0xn5=L zDcv~jCreh`*k?|goZEq`2<$@NTS{WY!g9j(BML81S7v2>ylwMc zv{Ve8pk918$XB0BES`Cy=?G;ZuzXtwk9Cd-+nULZDjo zQ8|<1dBRlRv9Eu#JmXGdol5r31H<3wl8|6fPyid9iQ58VU1;JBatRdz7>GxKz0onq zt$7Z?E7cxan1`;2EV*XZr+Dg<35YV$&k3f?0&5J#3Xd!@3{Oq+xBzr6rvQoVsBTeeWpOolIUaEi_=oR44bXsCCA$obn- z;ao)b-W_rLI{p`Jl~?#M3Z?00P4r^kM_pq5%gBSujU?H%n- zx|PEk_xd5k+VZPbViU$JfWg>u{4((?;0&L347G6XJCLkxfJH%$X)M^hPC9z}@oR_8 zTnM7DoLtD8WFEH5?ZYuE!xi5*RjplJFE33@4a3rJo9e})5Dp1HVmV~&4GauUBp2Y^ zb}}+D1ZT<3ZIS4PDSd_9%lhPsQT6eXUY_270C8knLnu`kruPK)9y><{$Gv7*YRp6x zs!vM^W5a<6PoqN=u!$O0Itl~p;6!L~!ninmE&I=#{RYn#p5n4Oa+ZEB?f{s=%kx#Q zHd+DXidb}yM?6#=ma2ksQ|WO8^oUTEK_9%Y+dKfUQC;$qE6G^lt$eIQPxu5-sh@(r z0*>^2H;>_d`&BeX-kZS>Bh74lz>mf#8^Hb2X)hDa$Vq$M8oq60W zs{#xSL_7nAc;@D*j1#G|T_`)Z3N7&1X&Z^2Lbw7(cX^-k%59$)7Hul+*uvE(DeL2t zOxJoc=XZ$NYYU9__I7us*!hATRC8}V?^P5(u z(7vQ%yKDE)0{OOE20lijI_VWFFM{JSOd((0-tKwC;)91E< zULJE!UeLJq=L#SPoJw)s!oQvhVW7m8m3e^nb|0;Fkm8_{j%)-ooBgZTqi!Wy=&~pA z!hoG(69>0;?mm-uW;aV`t@r9T5g{MeTx4V8lQaxe{M-a=!qU0c-9k-tnyhXzn{rzK ztdnu*Ad7egbi2>pX4%oOR>FfYhBTK3sm00jqvsYY{N+Ah3HhQDTL_jsHlFmut9kw! z;CGw+|Mk07ojqo^s0}{HDFGRGdF~fctW$UFAGEcIlMtgcy$|0_9L4+FZDjMj_x;@q zZM_xCm_n}WZSL6?b-ttnrP5!oOyPvF`5Bt}y{lW>3zvbED1X;{0jjHJ3+Tr+l+tX= z$wVl(0u4$(X1`mG&sdz#V>z>HCwOW9^Fgk&=P9ED_-XR{$kc#M zpIH=4)2W}6xk$LOzrP0tE}N6y6TB!6yUyh(+0gmYc}>ho4qK_QS$kT#ja`;4lGFoq z&!-;)F?-JTd|h%s*<0(Qy zu(jQYRKx`T1YMg16R;9Z(qW;94@dj1T79lvrE@_wTs0>#`)M7M{4^7L@OBl4l|k32 zjjyk-N&w5hYmL#wpML(NGsm?Q!$L#zwQoo`Prj6&RNoTcHus(o7m=O0wx;M`r5= zvsvUP_AKp3CdC>(n^6=!E6_cr9(<)Ld8(V>Y~+e<^w-3%}N^66)s z_08+gWpqD|b&sXO(zLyqew% z?Ecy5ORn`<9eJvr`!*d6N8hr|i|PJQn-C8P#Ye+R z18^exVuH{Hy^2=Zf8GfHKQ~nVUaS~&_by{y<#dHz?7~_w(j~F1eGk|#A|vL(axX`? zLDHqNKwE4=S8P0XPOsxl^z&Yj7@WOullF`h>*AB3{XcU4mC5&&fJ0~uBp#oz4R&ug? z>aFyq-PU*n&Aa^DSHtBL&;FD!s6Yo@hx!jG)XV!_%_?A52<)lfpNm|Z_FJckF|3NZ zWaMZ;z-8c*PxJ%=;;jesaN`LYKvT6PCWl@1?-~6d1{+HixRpEw11)Nl!ZA=Y@X|n@ z`(_q@t;DqV6tqM@bP6izHYBmzzvvfi*=87bpUvYCV$;{xx6U`4s2ZE;h&A^L7sRXWgj3s%syTl6JPgO8J}^D;e=0TrHCx@(f~eALW0 zWNfwXgEV;0P;v6Z z=%Ed9Ov*+h3q=k}o1*8+Cl&bOyta4K5U`MVAv4Eas9dy%%Lur$El>v|acxX;-vzq4 zj$0gFahsjO;g}^>EuPN9%r-#?H zPd3>1U`aU=m$(DWZr&spaO`SCftRy_NfcQ`q)*jky4=NSeoG(BSc%2eX%qMUK*Ge@ zpkirzqJZJfN$E&!oYX~y%xh+EKlFC%O3NGKxK{fiaxw`1qJ0;5z>g`9{;Ao{?`-0% zwA})ce%rkgT>}0zjgWY_JAaK0#D^Drt^pzN`cVX!6|209JBi;W(QFw=RAjGq;BHVn z;?te5%q*~;<_06Pa^IBSfT=GSYQH*{1jSV51~@!jEvC`UJspheEPQ5;sKwlSPTAg+ zq^GORk4*;r8EG|*fPsjgw1sQwA z24)UNlF>K4W~Vk$W5Bw@B#n8&p>fbKgBJ#06*=roP?OoN5pjWZ6?F^tH3%D2JtlZ4 zuCig6=P_xS?FU#1?3M;j{!^Aw73y{uH}vORE_d;KrQ9cU8=i6xOP+Tjx+t)cTUOr( z%$uGNqA16wJib!3LVwh!r7BZrO*nMgcbrbfC*aQMK2+BMYpn`v|vF#QTQn}Y# zvYN;G0K`>MFMf;mJIlh4kGIqbR--xiLXw`|T0CIu8!bryq2JTU81C>ReV z#vRUWCPl*tT$}-CD~*KnB@sLV&z$jDKHUA_t8Uys*eJb=cNzjvn8e zS`v5U2$0fuCal5xruI;9)D(`}3l=RS9I$CULkTj~ zN6_R?yd#Olq6g%76vzU2>RQ}<0@9m z!qm}P)Pdj0QBh&E4!Dcpe(>H~7@pd>KcK(vB9<@+)5T28frnfAV5O+gWS6-UzoOs& zww(RX;L*q$(LC&VVM7_%8dic3nF%$ljyullE5@6g3#rt2rNcYM_he7A~?tg^r1 zK-x0h?MfOM(pdEjU%?*d@w!fq>V;P>fpA_Ic2u!>JrF~T$^=)r0b>jpY!Bj>4lb`R3&6c0JqR=L zWDzosxQc^6PbzqsSZvsJPWSjo?)e2FSl%s7Z1R*&g$uK2bCo|TuY^W7A(sx{33>l( z(ekXvZ1im*nR}GHWPbscXXV#*OqFCK1Yt?J1E(4zUcby9&vlQ3W5m9ZxIS-_IzQvq zBX>y^PxntCF6F;X{B;S}w)m07d-!l|^$FVg8123W?u>VnY!ehr}g#?b~UpZ{^@mk5UbRNwhH204hE0A8v z97=>uB3rTp7*>h>Qw7e+u@06KKy9T)B5r-?UOSu>G4KD%VQ4hAH!|waX*0P7D{=!g zw3V{4{!A=?YeVzZ6NpUf7GFej!tUn^JEOu6WMAMLR8><@Gd#ajvil&ci%d~cpiS@a zrD!6pqQ4zhpgi(M|jvPAHqx5X1ZgpF_;c2=`byxO%#_fPQ&T#Dz zPurkC60Gvs-q+%jI0&Wki-*g(O^}S3UI+Drsmc-Jzy`EVc4=8zK8;?%X?V0`6FBNzz4=&Rpj_i#44!Ti4@7v5_5pVM4Gdr)Hok{6FF%@C!3E`GyjU2m+@V8=|c8QVZF{ zb@fR)cJK$k3(`;|K;P0IT95s99^YB0Wf(d7BDq)p!lwTRCl4f`PEVey@mPFOOC%`5 zFUa}xS^6vh0$b01xjm!2QKW|rQE=g1m`THczow;v;cz#4Aq^juKd4${wIdiodb%eydC89aW`7Ru7m54!k((5bRD|Pd4I@Z(MI+sdhslZLb(?fC z1WU&i)GJ2~tYD04woo;TJo$OzgI#1>eGSJ*YQLMX`bUb)L;*|avbW_hHVVZyYSoszFe&jAe)w z6ybuu93W4oaUmUGAxMg#!P0`z2_qj9KF^tNFJewGpZEeV>w z^Kkd8wH;m+ez*WfEIe5*sN($2hC&7G>Df;9)jq*4w}S}nyA6aj4`8%TFP1LpGbBgo zDVse2oGo9%ylmh)Q**N9!zBe<>aYtgRnxwCWcT~HR#Fuzup?j(hB7X304#3T0@nRR zdnOW=;iO%c{0*O(Ai@+x&ae3paL}2X_TQ!lXN+t%QZSxJOz$|jW$0ITaFI=HG<>Tz z0TFvIIW;tYd7DJwa`oG@F42I>&qI7y43VMDFgYpmW(QZd4U~whnhKxq0FvR{!K#a^ z7yhx2*bd;2)2d)cYO58yjm+3i7)w?m5g#iUsT}k2Nz!U#S5mYfo-iNGr zLMr{|9>Nq@K#g~j1Pu3FygbrMU2HTK8X;jlPDbmMsA_ImO;WncScXC}5!v80Rzpu( zo*2cx^k7?@4Dsr#>9*-$i=1c|Rv?Iw(Df6OUyaiMZ}Bv+nc(2gx6K{LYMY#3fnkQ# z)k}Q@q0ldDv9YNWw-+lh6KHYF*b;yx{KQCz=O4x^*Kxz9mxxtHWm8bBhopPE{sSnXt>~zlhKG`Z(=Zsk4jvX~V}?8uXXIHh!*{+OQvw5`-^td3$Zn zg;Y*Z?HMw~CR9-EC!+VxqpUx#v?gW)kAK?P9v*1c{a(O)TTNnW$;4-OBp)mbW-ni` z;MNjro9GGI&SV@N%v9VC#RCAwVsBjAdk2CU02cU70`MxZ2%4%(v!(V??_(T`Rz?Bx zb8at8QlV7w>|7~%&3(wM0WutEp!t?%_QK&i=QC!%XWq>4q=V*m&hvb*SV6A*e&amZ(3hoY%#6sa z@y`R=0K{rXkaWTBegG>H&}lrgTSwyCD|eodW65iayoUnM z8gO|6y6bwc7mcmyPPHq>$U6&Dg+BP?K2QVVy1081F>W)}KkO-u=~@ATa-|bGZ?w(=2y@bm+=`rfvebxYH{J{18W~hqq0aF4;X9c*)TAMt|nad z?LAg0FBc06H>mkoCQ~ zFy)29I@c_`T1=1|@#*NxSZkt2rGaU#$ltr@-|sg)kFh(zEksgtdf)EX)6U-(bDF3W zK>1E8dLY}dPCiN^0j@0zFziIs?c+j zMLzg;FLM5S;d5YFIR1}i;qB=}6(IKlsZB7qwOsdC^LIaHR_(E(0Pl5JtikItG0fr0&6kET^Q21oKMw|6=XU3FEe>-D$;!U^ZC54n~!sgU9nQW^{IBEeR|sUqeRg5vXEA{9oJf)bwAokaTMw2yZ_|hBI`e) zhf6XH-CiYcD9Oa%D;0|>mooeU+)7CbjCm4sPpDv!RC!lsOXlms-hjPTiG_Ug*m@45 zkvoA1+;U?i>@;Ug-@!r61o=_dwJ|$R8CP33FbOGI#%b)CjMuWUyUse8g|GN~sYI7e zyu6R}N<&HRnq`vDsq;Z`adKFiR}IC{ZMDVPZFq&zvUPg-{IYsnVcmTarAavNv_t!( zjN|>qu6hw8NnC*U0*zQC&$7AQ)rMReKR&*(laypp-g}W}<@H*>BM;Krx}$2bQ|*oA zMXP;Kw&w^ow`XX5ER5Dq2@qp3wQ(nYI4;7^yvEAnDCCI%TTIvNetELn6ZAwqEmu?tZpcrM>)vsnk=!S0qef;=*D| ztkBvWwTN3C-QLA;PhT zm0eL9g}1f|%ekN8pB|E6-{83+>8FsjlDC73cc?N8o&WxV%Fl^L=0SI9;Y?k!G`%G<|U z;}jDC6`LAoR5RbWa`TQ84}3K4t>0MsNVY}y`nm<>bJ$Q*QkGa!*-ctQM=B^%7GNA7 ziYzyxc4<8G#jk_OVEuFwXr^*uZ>eSbOu=0$P|2uHY;S#=wZ!7yyBLYg(34Lbi%jpe zK%tw{VFTBKya3OFA!m44lx)i zD?(ne>a_b&HCIb$8{2CzJrKPeWb&L(`7z!_3ejNP&l~vi<{qpW@?HUwX4iXbXqohJ zQ!aJr@Y%30VTZOL{GnaO@>LZzZ8@QP?;hVaW9oG)AJL9rlPgCSxf?Vv{&xz*ZddPP z?D!Rjn5F2Oc`>o0n4PVj9d}c14hqc;fMMh062W_`^4*miqhgy_Qk7SxjK{ol;sd!O zv~D8@$DMnRHjFok=BUW~23Eq2au#__1Y>bHA@d1O!_Y@r#UZ_W>%P1 z%gzqEFECTUh_pz*T~4#rYq?&Z{MfIARmwrt7ueXyDqnZPyBDhq+cFb9n+DuAeeB1d zb5Xm4IhQ`GF1XF$*-iIo+Se@iZQS;l87S(JqSeTCH&jm~$tDHc=J}*veVeGN;8{3l zCBIy1vlhXO2P54)D1SZ#cxMvXkQgL6G9o(zcNxC>*orL;l^8vG_fhk5%k@uS-|-nt)h9Br|}EIK(L~&GVt7MSP@~NBeE`o3uuYiYlcTG?bu z0pR?6@l#pq=df6#u+>3|{72X6J}4F^ah~E8=xyCAsNOeSP(#Laft*K;r96=Zmn+XC zMf#c%#cp6dNtG6AR^CI!9$~nTlq6Y~PLUNBo4A5DDJ}b9){Rf@@EJ&FkU0s8fuWe`6@R^qTfiPF}z5S)N;=^ma_Y zPT{?AIORz(xxL4rskgFy)5CkJNvz34a0zbh(vn0ODpb&?#pUM~!vb;x+E?FS<>w4( zU%f*;!1cE%+;^~dgvZu$B>l12yAMPcJaQQoZBnj~_@!8IZ~lCR>>Vn(X`tobHIJ~9 zw^(o`#ZO0i ziY(iyV|F%|X5~dq%07}IIrLOM3pM6k_XU$2gN{O~(|F*;=RIc-vU#xvm4_0XDE&@R zfTVoswL~yblgb^+=RN=0#?c}XR*>0fdLNMGuAOk!2<`CsY&4qG7NrbN#2$S`+4%ZHz2UFOyih^r61BrFbaMR`i*__a23wksYEHJ020xtnw}b-;=}-Vx%0Hx$F!s zkXT#Soh}L~{qpAV&icLQlYk+ufx44Fz$`dDkSEw+c+uWPz1C=T|-Z4OnwIGbp9s7h~QF0k?zB;hk zHfYC`DV#hxcqJla-C`$H>jPb8RhDG>R$fPQZ?ma2DJ%OZIWtHe>s~WuuZo%$$RM*W##&*R%xvqM^z*U;yx& z0^g^7eAU$X%X=~s;j_KD@tRR?v0E|DMrzEq~3634IdOW?@#5lFMBgR zgiOHQ`{W%xROt~$DzWn#JneupMQ#M|OJfP1JMCYjXMtK(vAJ7fWSSlv{Pt}+j2m@+ z?(}$mN?EQzY?RzK?1^EvyF|sw?VU5+o$PG#{DH@C0oPKTFT$~L7O8qrbhm{vnrGj} zZ;iQK_hON8T?(6rc>KQYfjye9V+*FSW~6JSW>eQneTz21t-%2)pF&QWb8XvHe(4vq z@F}q+DOJ0AFEq)Kw4`T#aCy8)-t6_0fWK{`e-A(Ur;6QWe1>^JKTD#Hg>=-^Uz3Xu z1!K!@jo%b&_PCwFaXzkC-I$uz&AU15OH`Ns;#s(m1h@g9ZAw#1$bk=Vq~A2CDc z#wS$;Jp*o+ z{hVVxSod=FWsNtr5L~w5Z5642q#0XiL1H_Jg6Jx!FY?j1)Nw=i0AX5a((v^G#izxP zABY!;iYs<$h!WwAD)keYuS$S@ zvc?+0HE;0j6^1HgryDXEs*k@v(_7&7R(Qd1d~E&0IZRCTw7^|48Hki!X-{#n}dH1saQOxeS z0DlHmJ!;k^;^l~Yrd+!N=^W3$B(9(O819uspEu&dG>d+~ zYH1d<6-qaaMS2%iE=OW4pLB89aN9h;7M?G0u~g`iz-KWp0oM5vw9}}V7n6{;w5lr) zl%w(qS{D*A59jKt`Qp?Gx#TW4C&oT!{j7<>Liy`09@MtaJ0>)+5F~^o3jD-Q`rDT; zy7a)GI_UN$_9XqYXH((K3G?9zulh*Wbf-d*alIDuf-b!`#}vx7bFR6fU0d^|g1fGc z<~<1l=~<7_2JRY&nB8MlK+mb^g3rm-LM?$OaM;x+r}?K?^E&s*{79{L8agWWA*}?G zuSSG0g>&gKQlK5s(O-M!Z1r3A*n?&B?WNB(Ib9Goa~0&m@(e?ZDM_iWKb;Dr?Z{<` z!!D%51xfI{HZ80)ct|$JcO`iBr|GgV8^qVb&y!=POfF5SW)2I)OW#-y#2?`F*wW$gVrZRw0e&p|;-XQOTe$$Me z^~-C$E9Y3I!m8$57}pgmW~Uh_l(F1spV}k_k=}_eSnEbDyP%Z4NGNnE>4MDh0_qndnDWNw$an_ecNjp~}HzvudeNq6sloEF#NolDPk-#nQcH`y68AC{1dhRIm;puCmTm(%p1NOaO3x#}0s-DKBt!n5?Ave~s# zAU^bkLK1pe{gTKIVWZThZf|yoOyA`t2#L>cIq~gkg;hsytR3|Sc=Q~2124EgCPosi{{59Shuae5u2{5Tb;YMm}X{{b2FA6yc)YF6lsC1R`wHthrPk6(i;EI?ox%AqIUkX`#{h#RViE6r zPW>4P{v^6uBj5}6e@})y?DVw)SjGd+U&%66yS_f5nyfTQPBp%Rg$<-BA&KgU)+ja^ zC05>A`4dUi0(w?}Q2@OwneYH8;P?D?SyZm-vQ} zadMst&#EhqX1KixeEhGV^k)P5eI(dHb}G=S%a<0t{P!;eQv+aoCHoL#a`RE}44+Bi zpq{%LE)52*5o{ZGC_VB779TfAoz<_CdQ&L*{AE+`Qp)zTJSg_4cU5$U)e$*PKrylzRhhb$|?GAEil%B zEGCnv_SCvsk$E)P{h!fbW5eDaDd%Gs=Sa5fv2Z2ELx6dXhySW_9rx4G;q|CGrIu!-B`OLg_5{Ed98$y5k2R5hKHz* zK0FV;HNbX7r%3T=gboDRB#}?CGH>}6nbF&Ipv%RYu3;G`5e2QLsi5j(#Txp4OG8+Y zh6vMIM~M-W2lJ24yAUNf%t@y>p;*i^(!f0MB(6xvY)3eNt1RD9`%fQV^kjOgb9)`< z7zP#k;(D?gf5!9tjAoTf1}!CM@1|mPpFSy@r7Yjks9Za=0YN80r&wahAP8#QJ2@0d zzNJuS+e%71klmT@^~izu3}5e+h`{B>#0N|vSDI&11Nr))lCey5wYZN-ZF%9^#Qkl& zxew!(1rh~udK+m6FrD2B;&>U^>Dr4dzjAz?WoTwzm^^vf$t*YVfrLumb%JdV;P_8r zz0&JiO8P(yRN27;LF!TO%j6~uIbWl=Kw)TUZTi|+HE6mfG)cV|;1-a9SkFUK2bdXG zA1D!y#70#y3Ehx}xtfa9Wfw{e>H8Vcz*`t(fugc`+(MbdJgPTVj3EByA4hQ@B5%}u z?ffIm_BF&&y`Eo$YqvzzuCzWX3hj)Dd@Oxlx63=*q>i7j`@O77$#By*LqNR~TOI~3 zYqY$GwW|XlD2iy|q^~V&dY2T>OtsL*dv&M)Lz@Gk`MLU2)=ZSoT>mpucHKz1G*}Kg z>eJI6v~4SYHq%Xc{+d#@2LJ9gE8|OZFiR^F@R#zKN26~F+qH&R6Hc|dX-^-K+4cLc zED7U&L*Lr<`-@-S4KOA+6Z{EL`*pCw;x=_%!M53gmZ-hcFTUk|P|U@)<(WF5D-dvP ztmwC_G^JPV+O0EpiHJfcqhL{1*Wd3vjc$8i`J=|y$Me8A9RkGOAsRQp%fuB0e=FK# zDh1EjMF4@f8F7TX^Atns$}cT~F0c5YxP!X?v&8Kc&WL5%`*_!ZhLVcom(F)&Ccby% zz)yM-OZHM-!WMeX&)UNniYQY*oNo%^OR9} zgXRx%;-`!yKOoU-#JK+q1piXzv}15;4k08gmmAD^bQ9^KM(Jb(NAr5X zQBa+fLoQY(@<6`JKBrfu5tZ-?U3o*qUiI|o{@I{$edEkO#1_QVjGY{hTX;2hN2IM= zF5I;3APcvu@di0v;*km!8?0 zfyM}|#ATkla#5=^^5<7_Uu<&&SI*d8wokSD)XUs;q(s>@LC7_VGq*?wvdlohxteOS zP?p6M1419K41`sH*52<5*Exup*HkyARqfVFCTe}smMmODoG}5d~G`p`d`25yYf_WXHr1?Njwii@-7Ery=Bs z$A}zjmMd$@E7M%w-u3*(#-bEeSe@Ev!b%vw643mdsb@S5D_Z{&c?cHu0m{Z-L!obB znx6wyS9xrpT!=Z7Durpj_AA)mkeLDa(h%|9_(W^lFqoYKqAWO!= z0@hh^RyNhDq^?xyG^k*;oxLb30S!O*I8Mvp>QF!~n z^o3ENZb2Y`4Ia+H3z}t5?G&X;g$xCMp0Ht9|{btJWDI%(G{=(1b zlz&5?6Y9sjYAd-P*`TXy22&VA_wO^Fqesx~g%XHqO-5Uw zGr$1CG=LV1HC+k6N27OW9B(uLt7CdOPLHu!bBlAxx+f4JWV8Us3RREc(D^nsWYwh| zhRi^f=K!r6VZlPJ`pQ$_UwCSrM92P@p$DfdGSSQ5S-QVH<^Q=RH)0<+L{k!;s5Q6x zcI!19j=mJ9q0VJZG5a%4>lrUj)up=IA__$nXfJ`W@mu6ZN0Ccn@9S6Pp`)V6(h+%9 zjohjvon5}#uRhhw7YaK}X+0Hsen7M@)2>q{g<$t#I6;84;zL%H=aLOkwl#h1@LFO^F1os zReyqsaCJB2i|RY>j8cnREiO=#>mzAE*h&j2>kd=bFtq14DzDNY}=QjrO~~mGxONRNpi7g$^h~e-1Z_>QWcANj8cXK?JzjsS+YT zIsRSn`0q(IS!&zn6Ay*qfKk|xse7k=8km3g=Yw0q@#Iq?tIhVEg`BX;H%d6cyOp_> z68s?V*Qh`t>p;!+hBC>YAV|3I+b`-sA_{aUaXIb)2FA1d<*l@n2+Jrc|4}Ks9wB3& zaVTK8VJ5pa`$C~Gf&bRU&r^jbm-1lTE)7}#k}bz9UeR1YC5cyZEs8P_AZ{MXBxs_ik=7X*9nQNHfr>Q zql4UvtTK~Ksudv{$W?2zq`1FX=B~})sR+Xep|5G@PmVoyBdCmG<2%n*-&5r@h7MflXF)#c`= zGf+^oX(lT`NGLSu`RRtqYPq68m28)g#bSFgf|{9lF}X%uFpZo7%>{IyjfbM&Rw6l# zfPK25;9a*jYA+Pcq$5i|9O@4Aq;=$X7!(O$j7d*^%mS$VyY243$BVcRgVP6vd4xiT zw9E)EV16)@76p@lXa=Bvx;e*w7Js-9R0~Umr=15R{m(|#kiTS~y{^3wyg@e*E6sUx zlDvfi9yMP67DU4t?}Qdg%O%e0p*w*q29|Rnk$e^_Yd*wl8)SCk9oO-)0|r_|3)td| z0cAUf@ebBYI$<{3$%Y3X51S}o${#&}QyEP{&jp_z>=lw3-7|`j zqaOxwdP`g7nA?0T47(n26Igd5&fXpWLLpb_WQ4C~3CszgEy3Xy5>~@q2p9V5Qsf z_vyEFcSg8cA)dKM`jz*c0KPS#lp>+ZKb zkpq&vb+#GhfkXOJp*L*Ow}jMFo&dJ^yU#%oNEkdtRod&7+l>}P^peD;KU|D$pH_iq zC2Jt!B4@9fJeav*1ewi8{Tk4wqohiWS4o;D|ImAkH~|&GQ+*2K&Lh6+rCO#+0+t90 z7`yZBTv$fc-`9z<{cv%hI}V)->#>G`{()D#3iP+Ulh7@Tp>oA+Bh4Dnr|xQSb_;j0-^GqD(DT%{a$(Vdt+HLqJdhU`A{05A;jsJjQ=w0K z!H*|7e(B8P*gjUbx8RgwT{z<|&#j}OQ}d~WbGfvUBS0M(sOq%Fz+jDV`~l%%Bue!-%ol^AMz7pi1W0PHVSzlz)&Zpdn#8(|%R_O<}-qU=eF@j4r@t8iJ< z1^W?9KS-n90{?+DQitt&%=inz@%r7aJDSlUJdrj&zMmQ^UQD{THecI$Y~S0`dv?<$ z%2WPLrT`2%a6+{Ch=H_uO+vWz>75HngI4r%`3M5^xd!@g9VNdf3_k=BbXgZG+7X(} zV%XJnE@MK>R$7NHaVpx(Pk;TtDz~sYuQLCikZJ##rEb04UI7G~^x8><4Gv+}xx)Qj{Dqhd{x{w!t8?E)D!+Y(prWkx9r=?ltaA&p=&qY;?B z@`5gU})#${!`tH0on{>b)iAqn+U+&9u3MQhT4ZkT= zBWMcE3Bl)nPn8jbB9x34eyQ3II~gj`qB;L0TfXEQcVw`DbMX)=@n{Cud+1){p1Ub2 zj8jqG-6wa}L@(tYSx(tMA;8Ob45t!A16smAaI3f=>kl~+wAOr+BbNgI zRWX>!#_Yb?hG{Xq_=LgYI$bgls|)+Jc(!J63X^}ZqP{)nF`YHdGwCw|#N4%3%d8hV z0STzeY(0A6Ty*B{Q~&!YK3(UR@XQi6&|Vr>^mc?QSwhX}NYRO?rZb=;8-OHj3myj| znd-YOj1-ao?-+?*C8+nEm9_sBWU+WERL)G^*D!a9`b7oTIat3hIrh??p~}8K!v1;# zXGIBNpa7Hxm$cSQ^qg{y(NyJf&7f*J9Llz}acj+I3BIJvD71~J4qK!*F&TbqV$$+c zM>Wo5Lm3m3D{|@T@E*OAH z8Kh1LmcFb`+X#xr_O2LIE4^66q3v^)o9(mv3^D{=p6vZlcua1*uba0fv0jM;Rb|kn zrM>Cs!iZ~6{Rf8{xM!a%6ImThJ7!=H4iJ2acF>ysWj{4#I!h{X$OLbbT`P(tUfziF zd{=MVTB_yqe7-$yZ)~{#)zptbFkqTrdt6f`G89w!+W@MBW3-m4II1J`eg0oP#opC$UlSclX=Rwitz zJAkr|H*$Za(vLp*uzX*C>@K_O=YlAxeF9eiBQ%yB#fOPsJm`zti2{kXTUM0X2_zYs2NNJ*YP$S6!|T#Cz*FE4{R_ymBF;fGjUmc|`zs zBS;=7Wvs)$`>PRsx|ZwK0DeO4qc&)0FJMzvVhHn9Wh$=PM*eS^e}xzw+}@NV&Xbrk zb=$yt_BNyV@nn8h8=$-+kYTWq4D+}=vb0^`%~C)aVMXs&X3#4JC9In}Leq7SDUdUbijsp%Vm%fH10P7A89hyZP60x&zAOl%u3d4^d1W5 zX`L#8>mM}LN!n^}#QeF3t`p{RJc#9!D=MtXPh6hU+wFC=)Km`p>!f4c3k{Tf9^RJw zNEZuuspB?%enj=40J090;;U#F#Rd8mJuX)`>2T>6OZ*ypr^3(-w3>tmscr2liS7h^ z$*D&71`Wc6YXjH;HM}H1IWYD-Yjw+Xgsw40cow)*B+*rGZ4d;A20v$`Ta|EREjR&+ z(E3pM2td{_q5br3Jt}%1@m#VH(h9QPQY`a>g zEOF#)#*O4%@P8D?LU|mT&}q?l}cdV9&##drN~8 zt{#_gk57JyiVM?B5HcG*?!|0%W|YpnbS=MIyAy@t4H^e7A(G9B&-(_?dYwn%pL6gV zSC%M(mI@FaeFEJtTiFJKGz#O2_x*A3S3=_HH?3g(>s2^%Anl;qIATu@KWnz@_iW$Y zKy-c_G^KuKsyl8n3zipjBoD>iy7jd+h;MBm7t{j$Ty|>mWRSG0KH}B9K`7ly1l7W# z;F?1jG}U&)x7#ErdQGu|Cib+yDIKxw5iB4_+d z6`IP{39*~*-jbS4*p+ooH;!(Wz%c4csW`#)&h#M$jx-s`e>*iM-}?gF)neFysV-V{ zu=Uk|Lfq*qtbXFNLv_Ayt|l?~YZ%TUc87);P?dDUst<`K=vvrR2MH~w$@2u7rbjx- zSNJ#-J-rhm|U{R{Wn&nfX@-)-RMB?Xqn*RdoZbVo(3u{`Wt3Y{nPNCJJOaavLiHjtQFg}no@qLo>~xn%gC{k8q> z)h#9E#KY<_pq@6C6$6A4`Wc;2(!F@-#$I||oo&J<#TPmMCk5|hLzc!aO46=~TrF%a zo;U%71`|%+p0AO_R27jDJwE$w&X}?SxMZdrJv_A5TM*P-btSuUE~#I65zm8PHKQq- z?}B*(ZG3$0W?Idj-z9#0-_V{oJDZT>Y4G%ZD<5$k4J}$9D5>c{)VXu%e1d7spq>k% z;?<7|p|pFeJYY;iOkMT4)!eu)0qnPy*LBa7EEzlnec=W!GKc;m^Lr!^nz)_p%|1W% z7%I4W(3UH8qwsNGTJWp8MZd;hczjbDIEp)u~FE)dmsiCUt;2j_EgH|fm zl-sy}9aT|WQ!+G{j#E+$0&Hn%`l!j^8KVVB)YWXghy3ZhXLu?xLM+tgZxS=TG4E6t zdq%rjgR(0N1h2D&{P&7NtYhbP1D1@ya{ag48jylOtZ9VM#a}Q;-6L!j{~_(y3X<}y zEKMpY$B*?g9p9ob>^LsCq^1j63OG!^*do2dax=fIuP$|=M@@OKp4i>YGUtX2Zd`Ij z>t`C)yyPDqs5_8dz^Y9vG`Q@iqTI|4V?|o2*Uj!O>YMigmGZ^NEmisA>$n5D0>lIY zIyis~?u7l!@hh2C2{G}TUvxc6hmNngURngwyJ<$WQ7HxrY@Ms8dP>C@)FF6 zyDq+a`Z)|{i&BLFm}K3dOmC0F1Tb~~K~y40fA>}YpVa$bq4?`G#&89*LGDDG4Ic=d zQ!L8K_25zuKf9Y;#mu#-KiDNkbE=oDkfd|`a7~hI(}tcpI#Sstar(;J`^^+VZ7#ko zl(cYly{_OL!Zrbj{^ycwGxY9I2@abiEfu(wS;IJ!-RoYgm&4 zq`Ora-&cetw*$?71JxIBEjjh7Oa6CeoA2}%vkg`v?O#?R`X4JH`ByLLH`Xrp{|DAC zdUwGO)-I2J3h01S!1HEjMK0+?%~@=D%C)GY!|Opkkp_sC6og7h>J6;!KL}DC?zw7r zdp!1$&EXxqMiaBL$#U}SPzd3U>IkKp9Mk+9>*oMC9Yg^u9J8oK@@FYu#c z!?k4Q?j1GlD!lNvg*6)_BzO^!H??$Lsa|poW81KhLLG=qqO=SQDDLQ*u=BO@CNeZS>m|Z-Cfo>3xDwue(s_)LI)XUso8Q!-sbNZaVcV+flJ)I_+D{d_s=V zG7XhyPjD&UH*El~LkOk1hti2yUhSlt^eVzveEyO1xOsxA#ZiWD?A@;I^3=v8XP)(s zI|nLUoMwjcyJx^90~ceOqr`9{_0Ms)>xW!G`z4w6gE6hV-KTB9cWpYQjX!Zkjp8S^ z?r5?ww7I4*wfE?SkCBm){SLG-hjKqZKkwk5M=`lK7*hFLjC>pwk|cg_sy=Iz^a8!7 z@Y@K#scTJOdjdjG9ivFIGmoOCb(vYlY<|90zySnYiMNC2bq+?<(51(J7>To!@%QN> z9u$$W0eBK|z>{=O9xRN{k*ZWxv^Dxp-MO0D!5i+|ThN*=?`YZ!gS0-Z8}8fl4Y0hv z%GmEi833J&dx@1EL8KaFbFYWgfU{G+!fMB?+jx7D6LK{ZIa$4!E*3)FV-0SNDPNnd z85%EcOSs@zTLoI}75!NX>~YiGvSV*q6wY^xBYWU(6$3bm|I*S_&j<0Ou%DYL1rpW0 zQE;ZE-waFM0(PdX43HFGV(HXbfY<{6q$9R-UDxGE>r*EGkBG)dfNCe}Wj3gG0!!%n zAnv2>l@pcoVekwk9^zvZQ}F{yU=Cq@Ez#cS>4$r&(sYj&HwUW1IA@x5}$DWHV^yToU!!8Zl{O@#OP+L+d1mF~`k$ zG1}Rhv7efsMNi6L#Md!~c>VTnV_WCe;odB7YA~(D!9R*pYjIu<1eJ+5D{8zrJ1xn$KHc zstLwF&HhCH_ORpN80PYO6S}bj@5RsX2m{EsE^k~lxj(!p+_F+EQP?E2ZU&}IsJ_sS zHV!Z9wxAd&kyA_DvZA2yaJ83CyxLsd{8aNjbS5bKe8tBiy{To!%=J5(ib0mJSFX8Z zPISQ~PVuOhkuQ+`SkS7*<4yJ$-`m%nFV6Nh>=xL4*Xc(oI5_@~h;Y2&HF zj%~Xp8s9R}K~0ScCP=rS)xb4D5}#w#a}xz)KWCyl7#l|C-#`@xA03h?I>h8!LJbK< zKZzYiGdr2M63!kc1b2s%g(8Md0%NSSTb5^_ix6!QtGm}T)hFGN!gCtU>O5e`I!4stGX&Lf*Q+FY$5o~tJr`@^b89g!sD%A2L^xDX>+4l? zb^UM=@Q4)MBg}qEwz}zR011G(a;kP8&OXqmUHIORlA-z04N0N&JFM3^Jb6qZ6Q`ER zL@@he8b8;lNlROMA3$sCT?F^m4S-QA(wG+57tXw(R@?7XGU! z_K?UY&hAOcL28OMLp>RivF8^!sEt4bd%wK~5Ld$v_eEZfF*UXz9j&`iJaA}Da6gwQE|`td0Nk=gDM!!RoEi)gga8Bd zs)T>=+sFVq1(eXLK<}tIVTqI|@gSCzraZ6KI!DsSL zV$VpkCZe5x9nZ4xulRc|?3W6N?XAtNbZA>4%nikB{GrUcaq^jp=VPM@sH}L6*8*|XL z6IKNlB_m&5$kcGfctVTl<9tz{=AlcrMh)b+H;5A0{32k*v~0E>)dnsp{oA(7>RV=uQf;-1gQPmi zq}&rrIg%3ZlnC(dDII`Zm|yX!&hw!gSq%aJqMPb^|t5Q z36!?LA}Hoe^iG9f3SccYwI3f^1OGKm@hzHe2exxG{-e|w*`Ucb4$!i0+I$&R^xp+t z4SO8U9_V5a|6b}9seK%cGHnbaRoNK$+Oa3m7AL+;cAs_-15-X6Y3m-8%?)Z24#3vt zTO?A*W+_sv#@=ggDG&J;%>6nyGd~(MLqTq`)Wwd9)Jav(F@wB2)b;zU$F>pPs%y?Qk$CC@6)v`IMhlTQyfVl`^IlCF&v<==0NB;fljz#EobjwO#X827JxZU}=2LZ6lp zGlJ!)x*9?8`hA%X(7*Sc5>mi}X1XLZR{3-Ruj>%7DVYNge-c_+id-bM_7MSkpaP-v zPamzczhzoDdQ4CM9_n1!x5s@L!+USyeTr-pmyFw3k5vD?$DrL>IUmd1H4whWIExR@$2i} z)poOkK5dClOuZkigIzm&pXcYheGFx`OMb5Mp8TSVGz~-#qW79$0H-ifmxg}cDG&Ok z?vLR5znaT~6W;^)C&Peuqpffwj1zqdig*F~4|O_#ArO>($*RYIQ~2az(CGtoJndqM znm|D8T>c4@0NtAPgB8CU@YvHIE&}_xG=QPu6id zIOo;SJnb`0=(XZBeSEF+2WFEzConQ@t(V9tWv|LyUc1@w;)J~~t&o&&cH3|*b8`{t zEapwwL3w8?_o;eH!amEiAcpbhPwd#&{*@_R91IfRhzMHy#=5j@u`VT2CcZ9jR=aMu zrrWh;$qaQLO2r5z0&z22=})6O7MWJ7s3n;|h~AA@UTl2HuvBUwvILf-v5K&MC4YlZ zsqwzzUmg5RHd>qd|Mcj@dBRgdC-lGo=|`1FL$Lzree|`t^6!J4T8=&RSz8{v3GmSI znn9eUrf-!O#e^bUGcQ~YcXMoh_Qx4%ARnk#TthcqN!~ z=h7_P?Ym^K*#Y2$Tg?I&WqLf(DX)4JE#tkCk8_`Uwe~SUenNh!Q4`ZkavOf1qBv9P zJB4%t`3sEW_?nEHrOh(Rme>!lU1@K{xG8KdD9qBR3Y(_=b0hU@-1WXc9c&qwZYjDS z&F9iv`e?L7NzXdqKzc2J1dwAOOV4h9MOS)ja8I46lq~4Ht+$-42rfY>yId!|n;z4J zg2zaR(hsTp57&M}OR7X9AE4XClh8i)nM~?(PLF7{87Dx)34R3_npUuRP2KBE^yv(0 zpxF&LzU$8)2Hl6u7xhn)9|t@+s7HO`qsX82@jF+0>jHxUZ3NklF-`KxTdnn5n8Eg# zG(WCcXp^BXNe>w!zkYnv&pm0rvAQ%9Ym?jhb|V|Plvj8EeXYdW@|XL^J!kqaQm}bQ zkxKG|0B+9)siw{NB7dsO)L8#Wh{8aZg3ET}bsHjmWF35Dx zlmrJNd$+kwn5P7rmd>r~7wBU>SONYTQ1sNn5TdYLw$`95AInb}N7BZrSh(yOxv0DfL>>KRh|jKb!?$_X z%0iaRz?i=0!#ehPMy2!3cfi=M+tt3SU5%Z0J)GRXzS-$i!z&7=7L6vsHhC#A?dy*m zdQFMXHoJ5+%N;-nQnh;1HEx|J@h z;)NZSp7B(}G{HwQIbMphN+Jf9fN~?}ND(H9qnWt#MO~U5^dKa=Dupn3o$>I9t04_;kF7iB*@8 ze8{(XcqYTBsS31%l!q*p3NivUwe4#kcPf13_98n{zP@F_oggYqisBXzxOFJ83-{A8 zviXiP(%ddF=JA5~V=CN13F(}P!++Q78iQ8lE$+@a7YHSI**Q2;jm zayHG~z^Jzhe9+FFo70yz0ay>Njy%Qk)A4rVl=zvEhh_L3F4ba65hs>^OC9dm#qb9K zhTeNuqGs}%uuioGD{0I>b4GCvb`F|aPFW3#t+?jx?I<;m;;0$EcZZ!LQ3nC6@NX^f zI8n|&O)YF+)TZtj#Uailc^k0$j=l)#w!K{t?c?1q~cyr5h<8GFCOW-ptLsR1;lN zz^`!0l;GOE$B>6`1N4D7gY%J`KAWh_gc)*u>{8A8eDh4+=Bh(sX62>>?NSwCy}Puk zH6%a`#Gp&IK^`Mc8tyPyN%Yy6qLdj_O%mioxMB^0&CF#^ZyF$%zL4KsE-yM)$^uJlTv)6~i1(kPV7iQfi= zFMbzd56eAlRM}9p9fP^9tbKg*cqTo{gqXl++nEA zc{=ZdzTY0WT(F-t@vCFmy-y4ZHh|!c-LmKYdHfcSQL#K@_(5=^QS-)eFmY+Zso=I` zν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�J%AR)?jQx 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

    6hU>s~_HW<)!au;b~{Y>$1jN(K&{{s^Q^* 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

      gk>zKf6TQ5@Abe#M;ki zK6?W309ZQ(6p$xq3g=t##Qz&gEL-Rt2O_a?)paNwkuddQT#wQ0@l=k#6Pgm*p~tEZZZdyqRh}K=9yqSyxdv;X0bAd!P zb6~Ya@;N)cXAGdfSeqPXXa<{-y=eP4-XuHHf$#S3*2SMZ|3AP;6%3?nZ?mLy_Ip3< zoXxN5go`QM&!1C-m0f1A!rk|BPDq+jB0#Sms~Ia^VBBX{h}H@Ey0MIZnk+%CtL035bV+YP`nN47iK-_95% zVGWGMWtjSa)gC7gp!s4W_wPXn?C4YLGH!|Wpuhg(O&CwuX>FQ!zAQNv(4?@n;Ts_3 zE*5~lYz2Cd1o+7e)J57OhQ-%`3rwidyaVSrb4AG8T-I!oxI|A~*fr>Mq4FgHGcz|@ z<%ACeIdOgH#>vmxlnTa{Oufm7Ump}1l*IvIgVP?oxTEXLkRz{`oIRH<<3Ize!!)Q&N}4pUxR5hJW^mT7qG;#mdAvIZ91aLNS^R|!~rP0 zow)a_rtn&MUI{p0IT#h?`5XwVcclIsD3P@1hk5;nt_g%Ty>C=R8(h0J`(O{5Cx8~@ z8r~&gu|X`v3;f8aUwys?hjLgBh;NZiGR$;)i!t|}I`)DVyLEPQ{wyDEOoNnrQ8EhT zY5Zw2JzjOW&%Wq%p_)K`!hUu7Y2=*1ss>YIR^iGklZt|uQtdHv1e$HmMg$$zs`COr3p*Ak? z4%lJswW)ym-!(u{%(wEG%flFZQG!Y@n>dh(87d^y{^UKe`c@)BSnbVG***AvmH^iw z|0V#!>_hcp>zb8Qjc})gJ>s>RpzGgq=z!nhAwZS(WfQI!e0RFq>xQ2CPnCSRk}z1H zPg+sh(&p6BAKhtDX+5!rJ2?y=UE zrr^!p_Vjcn+$VrA=sJL{ja!>OCLKN=s|`({6pd4kz%K~~P;cl6gYhWx-E8Zn90_TN zRFX0SwWL!?`xQGhY{Xh@kl=>0j|$b_L7n=Hy%sspdV3J)e*cok-}RgUDBxG`OKUu@uNH0C@yvt*y%;p8u_>-2=(xMmeWF@4&PrI(6t(0ymc~ zT(zbF;^^P!(!<(@B`Rp0@)KQu7BAxX2^;M*_J{L-1?Akx&Ck46$D|bKFEhx9Z$Q1s zWc!Dl49ZV{1SF}5GvGq4y!Jq&Ets0F84E%h;%-CcnAp3|Jit`GIv5Tl6ZJcI2$byO z1@&5y0k5K*w{NMip6Kf>Vp;q!v^<-}MjR*pa5jCMUHjgW3DLp?8#|)ADzg>b-r{k2 zr2~T@jZ8a$<;|197)Y2N2F@ zjSo$wH07xiC`p&2Dx;~cJ8Ob&;#=@~vBWGm0y}I8tv^^dDW=cZ<6gqtj zm_(m9w&;DTEhYhhNTO8lVJK@w7MXmFNp}&+SX7rQ$Wqe>k@Qj>JRonzI!RB>;LK-8 zkO?ec)n%j6`XH51g!-PjtC_rxYRs`UbB)o1fO zax6K((Qb=71~$k8^xy)3P}gQ^UM-(S?>jdt>F0v4BtK3Oka%t$)X?))s$Zh8{v#vK?$%KnrP2JMj{tGmNN)wxQ zq7HsvTk(51pe8sW;J*KE@LHLdn0`lINFH!{MG}y5cy)CJRP{KvF>a35%AwC3h~Xp- zmdeT^A2qsJ?;u5 zI-V%pYq799#0ASt(TuME*feB**SuDBOeWWR zwQmZKjPr8jJD94DM}g)gpVK-LHK! z8TJ&8scTz6d0-;|x2r1CVfR8L%`L8tKUBh&yh}9+$KS!<)n@-zwFz&cI;Dm3crg^4 zs_P0gMwS_)TzJTCs&#XgTn8k8{BO^fP+_(ticXE>Zm{tiFh$0BDH7WMm+o@Oa=iWN zo>IqspUj>vEmdZ)o=CMgcq*($Oa^u!Jt*$PU6F1*B9F$u>a7?i?C?yPGHk-OqsfYT z2kGG|<(D=MI_o*s+ArNz3H}N?`K+Z=EGWX*jdpghV!Jh30_+e8GxuOo&z>CsKS{C} z_(`M}i_PCNvLD)g&^)z5BZ2qg^|nWiSxl+)N?MQ~=;ezM-}yT6{|~+{wm{?P!SZ9} zf-jV6@?%){aj+QnZ?+J48|tXSceFCY>KZ3`ILA}_*Ewy3ma2$5 zYs?>I3JCQjXOgk*^Se11rvq`h!t)YKM6xcFlBs_Ur>FVqkIm^hauml?Y79r@J9QfZ}27TIr^$? zc%5}NRZdLKu5Q3@EdRZ&K$~oc@KCLd=BV@tQGsDENI^EstpuQzK&@gaNy*2G6;QaHuNo(0W4r4Xi)z1>R{4P3vbry>etnH zBaOar@!b-0eN|ZuSAV^VRbGKjFa7zlAqmoVVmIW3xz3CcI zbZ`CQ)J%skG^M(zF1Szq5)4urBZ2Tv^?-}&Rq5-`(9$CX;XsY9AgS2Q=biO<$!@d< zj}%^&m$XKLk`OZzG^g0YYZ!;gpAnj@MC|ISm)AJMGr0x*(%QXD+VZC3WX}EZ->s$0 zY{6ld>8M$5o-%lHr>|um`cZoJxQ(MLK`Avwkm)Q<|C6)yA=nFoq#kO*rHYSluXeYI z>F~X3u-7feS2~0N}X+u7;3T$m7zmTcr%lIx6rfO;v})$qq-I7wMj8og4`! zIjYGmwJ#j!9l29DKUHVDc4yJLr!QUe&HTO9u32~X=0+SY_g~$sXTO!!{gB#!vA0eX zzKI9KNni*26+AvuD_9ntx*anMblaQMCd6CDU1@UJ!9D5h>fAXBs?qr1Xb+Z4JV*_% zf#F7FKCpt6A_`)_;WfI|lgx=fHl>>@__zd+kua3`6m!1?lRXtvLoWR4K{0$X>!(69 zc($sK>mFNxnK(1oETKL1rSYb~O&Q{EUu0&@g1e)za#xGShxm5X*>y~deR@zjZYA}G z3r^CaT8GTQk5ml=$(w_O8UG?zX4am}M2J%ck~CgZ+lidSna^B}E2*UkqGBqK-AFEB zX10Gn^vwwiHWN6SITiWdGR=3{J9m(5Y}f{}G;^w!)HTY;yE|hi$x^1k-R-K22{CjBd37^CEE|bbm?mcYY$&Xdb8^<(lO-wFe2tKz2ebD;DnX_>q{rcF0BDBT>6|*)Gm3`hh?!iO ze>G^X^j|R+*b6<@3QJQABTRL0!mGSlgjg$i2Z+Ij{Tn8NNYMx1D#UyBQUvlqTsqtQ zdkvJDQ=7D%I`6%jm6vV;W-t->hI@`a&7ODm>&AfbogI6e?PO z7b+r|j;&hY*z$OMFjQE|Z!0uMdEdzdM8w{dFb;41!n3hWva72p0zNv3C~xIJp#+Yj zJz2xg*v4YEFf7Zr+@jp<+eiE@SS&e-JbW~;PZ{;359fGTHuQI)E+9bHUY4eZZB_PU zQRjZ{F#+Z{Y0m~|`%7ym7=}Cts0i$BLN!fPY{y>rkE2{bocpXU?zmK%{#Mx#4XKYz zy)XVep_~1hPGNycenR(+{MAy5C%Wr-2Q&~jzdf8R?jcbwo5E044CPQ&mBjo#%Fb#S z-=M)v!}cjIf#C3az@~Nd{Tb#jVJ}hxSEHY9c@F+emRre5L&Xp@yL!Ww!@AX;A?TgZ z`M3P*JPQ1!U>+U(+dQgzzR)qNZm-Ac)at6C1qm`=BiV+vUi9bnIq^}dWIH8ozw{Jd zip;;%P+KHZBV)}-P1sTCO-+PJ8j#1kFIVeNwozL*QNn@Zo^i-`RNG(bjj0Cl>D2a56t}(E7*Ex*)y;P> zb~x$^qn?*UtbZV2JR;Sf*89D9=glg&d|e&~s3E^EaX>-%=u_#dB)%c(-zF=szNJDjsR)o8{5r(b3^uS>#QuRhX|{V8Rv09| zD4SddnMa{=1H&F(u%|;w9sEnvo^RQ560Ui@czEb)NJOepXjkKr^~|L7FK?fjx`ZVs zm7-}VAO+A4Hg$p1W7i$H>aD0$xe6+bZn>Vm;OAl78=eC-<}3>D9E}e*TSPP@7lAn_ z%Bwa@CYMJwSDyPhBrH;nvqjOu9!EoU9(8goU?~S0^8HrkP3U>A#Qgu|c{BI*nY7W} zS49_%gCRoclOV$5n?PT3-3}@(wPbhIC-EmT1fHc#n?v5j`bRee5JPFN4CM)nPd^VV zbZ}kiIMQ7erKUzY7t`q2WO{O;o04ukuC5x?6B==8zO;*}XC&rlFLj)0Ly^aS`)zb9 z;`ZFFB~ zX$BO)0w&k^Z-}_J%jApbbSGQ9ZK84@@49-0G|D`^}ol z;9q}TxT*65w)C~1O|^2Hg+22)dwPd`yE)qF6|@*6ZQ^lmw^HKbGgJAsO~h-Mv6Yn> zy!;kUsJ#@ojWv7qN#hM=jSCM^85+r;b)g>v4(-;gb&S+_-PvO`rZz z-PX-K*Y5!TRLOYzf;Zf7`nXrih63NUa6s#1C3OAHyAhDfLncmZ$VoHl_~NY85<3*o z@)! z4W>&eFkPZE9k|4W05Z#1vz8-%^$!%z>J5J)z#&22&{eBgW1g!25HY3@Tn;0+pDp#$ zAf`PU<7mES3+@rrOb}k`Vd~A~(Zw$oE$#MetzyLrimvefrLhoHGC3h=NbKs=IOj4F zgpUh#KAITOxH5TykSz^ds?fr1%(;AC1TUc^s7H4GU0Ijx8lk-G33=sRvaoNhpRJ#kz3RT;?*Z>$8f`&q3(L5k zkmMYY`;#cIp21^1U%iXY0XDjvyx1WjuA69L`-2l)m3x*py`n2Oc$Q>!V65)kZGpmh z7g&QI7dS-f9hsx7%G!z#FDP|=s;JEYa(ohGO0bjXF6E9O2!SPrGgEV&(i~H9B~F94 z6R_SJOgC8bzcw$SisG8bT@}$ELnp)8TRDL0r_Z&G#kJRCcgP>qCuqNylSUUc6%40s zme));Z}-lmC~^L-z!iRJNeynQ<#VJZaSbG`ns!sg94DPbpn8<~I9f^DZq|NEK?P|X z7_cVLa>RSD+9p|FDw8JOd)mEs6F%wv71Le&Pvt+wahVf|M_Z%53RzqAORuNYG;hG@ z3b{f%Kuki%=RmJ5sMLzIk8LF%Etwg{l0dHFAjvdD_lE4`?fe8}M~G7$rz6cwOfqhZ zNhxWz+WS=|`)05cAXmUPuVELk>PRUdUVK$0$&%BnVTfd%)5hEKteYoSaC*bk zo#zdT`#CEw-6ah68QibhoG7ebOiEV*0cez$fu+!7`4?X(IzBqdGxNhQeu;;AvmdCM zxWBjuJf)W*&F(1od5W$kNW?J!i8!l*wP* z`RzZRay+i7M4fJ#48lPE&{avd(Fc4~i|TssTsI8|=U+7QW_uI7glO7E<4X@V%&*q1 zi+CxoQG6=3{~tYg>qD@+L+00lqN~dEuoBa8nF)cEj_A<$xd&#%g~4=LiRkM=AJG7d zAjvM7y-Fc=amHh{uD?L-xB0f?Yv6I)auWdRXe|@lihgBoi?WAB9rMFZ^S=IY{lAYA z1z0i4mM26+NBa$WE>)hS&BtWwb9gi&5tvB~_CCCI3uEqo>tnFPLqJq!? zd*>9No}fN)qJ%km-SnD|C&4YbrkRMu$oBRmCYp3H1r1 zttKbxcx}#8i7~A!wmqCnC(kXl#IPs}?c)XX8cH)=M$L@F1?)b8s{j0M;rxVRGvZky zViBXzfz!Pdv;;pUj#aTY=pDc4w7RxSn^m~2b@ZOFri#)ZWnp)TRTPTh#;Di6ztEx32N z=5BIF>bqVnnpWz&$zSm3nCk>cO5CTS5T>|xmdkP^F|AX`c0b6G{&?~oO`6Y|JPji# zzHeAw)AF+q{4Xd9WuH&~hRLNo)OAMvmHfU0&qY?$gwI;a0EKx(yeuEZTVM%*vXSq6Ip@+JLqdE=}W=4KrahXZweJUVuwW=b+MrUtW&eM%QNs zyB%oKku!Q z5$}+RuaRUNKuJ5CQJNUh0wK9zul2-b%jx1H{#x#j(mf-BR&bFazzlX|jDJ(nFq@5? z`L>U!KIo(wDYAr8B1C^Xw~oGDjCWj%uu4cdef>T}ls(sHo#6zT3ha=2WtLgE#ICMQ zgEG;1b7Dj0N;40hD+X0GH!ax|7Ta>JQ`mMAU}MSp5G-CbY$K&|lNos)RLAk2Sw7AR z>z*j~?vMxLq<7|LX*n)IuGedpr%d3PU`nyJosGDQ{|#E7Xu7Jt_S^`wg+D*J@ zJ(3zSCT!HIFJw+r)Rhn^fTaYW`;$?-%!mdgkoY3;HsJ=zYAYzJ{W5xvnDWA$^H}>m z4g;@7VGbp)pFm?IVeDK7Y;g>o`hM<=Tw;G(+>!O(Zw?s}K-+_40}9~rHHf75ItWcx+G zsg`Ih*)d+?54`v*QHg6<%mbj%5MSnGQ_YN;cN+h4eLev9D}#I>r*gQ33tJ<3TQcIW zdq=o0rs?uA?8NY^0?ddYk7DwjH|ch_4+F`H;xy^4*iD-*==`-8Q6L^s_vL!MD!Tp>FK=*OI|{$;v^r!vgdKb7$&$(O)pu+t&~{TKBJ0e9bb$Kjnd+)y4U z)b>FeC!Yhy+p~7$p=a=`*Z}V_D<}`g#xL^LdC9-ZYC#2g&8#3jt7|mipwZY$>Si_? z%|J~;twb4$Dh@~oH&c)~_xN&f4Oy zuS)maPpVai!Aavbuv`U~+1qa!t_0Y(Q`77 z?^rNs&JR5?W76z2IS?s^95UxmAxnM~3PP43p&Ss+W00=Rc$$S3#{uWV>=&DSd5y5l zwkiFVtKc0md2>wDTf>7;RV$dpOx%{Ke|i3|hELV=8qL+!^?S*y?L%G)M1`h@I&L>Z zGfJfJnoBUB{B!FiBVh=z2y32OFY^}fi_^nqW zTe~6aCnsy(nthOc*wSU@7*8o2^f6$=g&VGBngP-Ht*NTxAp3vq6n$(#+EOawlkCQ{ zQL~Nb4>A{A*w@IeEVx)53@FPP!8U0h|3#|cllXK!Zy(VmymDzAxZv_#Q7=-0zXWkl zjTSKa4rlIdJIkAs`YUi7E(XKwZoA zk=bg;t@%%rW&^kF%cW}-xyrvl~QN8 z3+sFBYWE^5Y)bqIhngaEecFp0bT7vxbru#}&E`tqPTv;mSb=j$KtD9F4zcK>c* z38b=R?z-5+3%(Oh%Tid*QDebk-hJNhZ6|Y;T%P$5LyFIq_jYztr3ipm+VCf~HSgsI zJE66tBD`p^V8sZBoMu2~Hj~r*tc70HIFDQp9r<^Pwu{; z4=6dS;klORKBRJZ)`h6z3-(aL3hGcO7$I-5V>{JeqVCYZ?dml3(xV`ydZ6=R<;*d< zc`EME{1r&z*@*>`&%Mw_i`(a*!Fj*t_aNi*y+EM=xeUA9Ge&#I4UG55tWrm@g%*Aw zkSz?FFe{0}M4AFV=t)n_CnHq5zbz^-uxGE`#tj}R&uX@+EL`AvcG|e~%VKO7|3jr= zDopsA|B-yKhN-~V4CNku4Vx{lO&y(4o7t2=bl76>axg)6-F&SfZXm%>uYQZ)W|z);gsZtG zWxVhg=p;YxI(f8hufAtm%^2wGHO~gWRR|LQ`v9K2tExENU`rWF?JR%_O zJV`J>ti1bI+F`K-$T8Y*F9$CFICQ=)Wlf^BnAf~CrxV(b@7 zdcZxbq=NO{bH|HxXj#_k_{bSGYRa~Tlfb;b52SG*4!MT+Y+=!um-mYxRV?66^xws6 z?9hhJcAVa{Pwh32o9tU@dNoo9GPYLZj*~Oqg{x1E=|C}I+N$@OKOm}mSOHC+&3fk@ zCVdk|(C%RVT*m|h6_E9i$mtYlrJmT6_15?o%zzlA(jyO!0b3-z(F!r;G58Zt@vjV~ zjA-U5)VkwXtf|;ZBhQ}AbcD9vj#ny)Xg72ndi(uCxAPNn+W_^XfthIiM`}#_9qp-@Lo?a2rl~cuRaX;S8i+ zVo&+0t9x>9V^+*Hf%g(rzwzsPuY31-Zxt2WiwStnk)l+pY4lrZfIdI|S-r$;vGEGC zk#KI!EzpoEqJU#v44}c*@V~8;!@+2c1HQ08SbfsQb6K>hLg@-YGe#J6ipn;?X4s<~ zs1276xrf!J@y?n+f3+JDC9&tTWl8(qbp0Ol`)@%tFg)c;pixOvh!H`IoP@UG|E5_N z%(2|8ej2v$HEO)CesHHBZrjq~(){&ndDQBL!l`58fM2o`@R7G{(dKrA^9XU#QV@?| zvhxOCVhEH0Xg1=3knHlP(1ekCY7Tuhb%!}FFxoyT$*{dl$VfDn!zLsx$BBD{M~$X% zi3H7w`(DwAP&0M4hCCaZu+PV?%>_s%5?tLWn;bO<7PE36s8W}s(Qo$zDu*k#u=X{} zmEIdu_nAgNm*#KlL>$mpjtv>dkLS}QRAPUSbA&46DMt$xBMBAOpt*`B@<$cqaiRV&mcXhWl#@;y|2|Zs( zNlnzX&K*vsOo$(bQ&`0IWhlr#C&a>V|RMq{qB4)Y#-S4FfsNZNkk>VRM!29!EA>i+* zlCMIoxyOGvmOdqANq7Og*Z)jNI8kT~XjkSzVtCUcSmj@Xk>~^0#sKgB=UV_KsXf9& zD`@L@^vxSzfr@==B7(QDv^u-X;kJCSp#GbzH?@6vf%mn*B-+>g!9GGNu}jq+!IdcD4fb?SHRzIhh>Y>Cysy_jN@ z@eyb)SP$*@hiW5a&y=&4XbJZ38eGK)#6&UQALX(_bF;6zAvjrNrI5u4;jBFZf&V=t+g5_=9EN@8c1YXJkpc>^jNU&*tMFmB;-yke0-t@!$;$2e zHj66U)DGK~gv*)$){^+Z>EZV zjwsXM@GM)Jqo8wOaaVWOR%@}{FKXyj*1l{PkA=G^xyc1L8D%FRmxAtJfFk8+4pAY4 zLsUpSBnNpFm1(=tg!)jx-)(1y+6jo6>;K)>qp(97&m}wGXG~)eMjdM4HeEB>{&8LM z2JT@tTcNI??rs~Y6|Afw3_T6Ey#KE_0RJ~D(fi;!fazco$MwC`1<$SeN~%5zFLkqf zct#A;Qb=kwMcx|PHTa;=DRfUCr*-*;r?y8o=p)+>DhBKY0d++gc01vX zJ3jue?@O=4S_2KhWW<48+)(h@-6NAM=g> z1t{Yg*MvWf-X0iL@IJ~nmU38P4sx@lb{294Yze0xRPlK&X z%4uC^bCZ&(n)!|ZQ|{GT*LJocPiyj0V|g?Ctux73rwRXDYTu+G=+g^3&rZ?C`O_6pzv}a)CGc( zyuJc1K47nytqlaxe6OM0mixd<)K-q-x|$ip)5tR2z042s6C+>ar&4qm_m<3KF{MSs z+{lRf#H&}mU)>CcbL8F%DgEMn$mUAlYRNf!&+73tkNb-I!S5DYkXquwU~0YnZ>Lt# z!&JuK48@CECLVucqnwKyU{UG#2ej&puFgNC_6oF4ebVav<>g(>0)oy9wn=qL?%{!p zdcCT}`MOrWyiB}5E|F}@_kb_W(|bQ?w14@@>qfBE64R;#C;K~f)vo4+q4P&(M6zTt z#E==$s0)nD^V7uD|6Gd*$>IRAZW`f^SN&MM#YT0%&*imJ|;8iv5Yb zWP7UmdLiYXhcpI!?RFuJ99Q}7ZVZ@OPwUUDiH*HSN+#vq7X!H$7eMZXL}7vuUdx&s zmRt{D_CEO>75gfUYxmRsE3R){db6?Bb9JSrhi@q_tKdK~-*c6vE8IJ^LqblbbU^IM zRmI(9#L)781oo7zE|@Z*=VmR7SASmpj6H%+o%mOp+*8h1OmEqXt;XtG-n7)4{c*}O zesmj%jcm`Od1-m7YWf|o%hFSC*ySxw?(R_#NVS!=TlvAT*F}q>AGKuwJSa~pUQgy>}U)G&k;2373P!Q+LVLn zFR|UT#03**>32|;8}+G&)iXm;BmR;VlM&QUOxlVi02M=ZmCJ9uuXH?$#mCro zwY#V1!NtB$E0eC{WKrtAk<~Z7x}CGVHMhEI{D_vGG4TLR9SK3r7E!o1aZQvU zZ&QG9M)WW;&rzA`aB2BLN@6z~YVj!>r!Kf>)&jMy20mleCIi6`^^_4JxTaX%+*s^r zm}Sy`_qVewdg%C`ahG5X^N0dcPvzPH`nfVuyv=h=Sh?mCb}Ma^nksLIrY+N3kLAY1 z5w|HKrj2M~B@gYajR{Yg!(g}TOJy|WCj5tvT^DG5m4KSdz4+NUm!Q4v!xlU#<|5 z7vR-@qo2QIZY2_y92~Gys`b}pB*IH&jg30!ykE`T@6mwOvUguG`myucGYR5|cgGJ| z=J!V*a?X9}>j6yNg6|vSh_6dudx7@{`#aaeRiwLymvlxX+dppZ{{LrwvyFVytme~Y z;scrhPOR+dAgvOQ&?5So{tdLlywu z^oMY;o=D_~+x&UVMFfG5|c>nhp~XaKbaI+N96*#k};zB{uy) zRDIt%aHM0Um3yAp4N)VD52=xYX1uH2U=+CedlaCl&YMrL9zLQTfDOE>5l`4)ukgH_ zGO&y}lu;$eO&>*N!s@^!Q7wKn4&_yBgujS}5M4 zs}EDN3P_41VVl8C-ne|MNC=8=<(5OD7@CKEm0q{uPWfII%y#uiep;~^$n{n8^5Ry% zyTFFchjS8lpZnc$!iy%XNB!fvtWo3BHMLMl=VR`F^#2cL)2z#N)XzGEmZ>)`r8MUU z-&=n&%scu;KZ&?ou0`z2%5$YfbpE;HdS;&i;=1?1b*vF+8~S;+U_Ibpcp8gYF|H zq!3_20^|v-tbjzhN-UaZ&g3i@0GxGa6COh1DNfpnyAUp$-fp|I;r~LJzxHE}%CkJ! z(eT^7BaI(SP zN<=>DEa$pOQI{rrCP(3P0fIJ>iF@bH+jl^%(N=kEV#2q!jqS(_vz-hJ{m>63Gvn1j z(BYw44^rZR!TBQng~3=ag?HT1cZ`;*HXEIs{a*M~inncQFHGV|z7Zzyx(bgo2(;AD z?>J~eJHrKLX{m_^6|MxCR-WOKEDG7N7K_ZOZp3UAwdb3RaK3W$JewG%2au-s^Lt;j zWi3sot~JdEoLbK9KX=5lna}$sI6qVcJdee-13-hcLhV|b*wV2Wbl{d^=+yN0Ob4j_ zpEulCG(z(V&%?XE9#qyAWF1s0Wj??ocMSzdk^0Sh6>+zwf0kKi*fHfcGKbR{)BCgb zaJApHRc#YX!g(v%826t!uIFfYltd!FN)Tw@yV~7C10G>ulSB?FIS;w0A1$3~kCHO~ zX0S!QV}AI#y&u6PkvF30hkF*(R8y|BfscZU3*zJWAC$zYat&Uo8_wqR@#^ylW@E(w z@hG-ugI}!JW8>$39#Wvj?S~;9O8qp;F|bX)NA|KL_iMOB zKoh;UH0Sk`f4Z!^G!jl?{N4+f609^2XhnR&J7bi=wp-!=!!gdV;Bh4E`PvPb5EOy=C zwH{e*a^Vi805%%gWyZ#*LGe(aKw%_avg2t&puCH{ZXk#)Vr@Cf~CPeYQzDJ`K znnyP%YPlCVW*@;%sq+FM3AS5*wm{icn>4H2R|&*!6*qvxzP^98tz)nX>i*$e&Wj~2 z01N7a;53r8&^zA!tOaf0!Jgv5Y zLzsT2bxEMl^YdXU_Tlh_lMsgcK`Gsr?o2hkA^cm)vx6n~};cO*h+IvW#~$UBoL9Huj1Y5d+)S zAF1-o`mQwR1`5*hhg3{>+uq^nzX^x@~Ue zc*&~lPCFS7R8$u|zYX=G+{PFClCx)v)zhEQd1=f>u5TV9UnHuoXFvbeW8>FLKqWS>~_{v7Gpg=c12DfiziASYd}kKl#o~h6_5UA0LKrl7b5miMIhE z05*hbXsEaCmueR1Ks{asUPzl$mqO~^FPXVd?mcmH9zeh;IdQ?3s#_~!Slgc$yKo98 zjKy9Iz4|fLBec)%anohs=|q~3P^F0UlO^vGE~$Ce&d+xSiTx6L+;~CuHbh82)UN8& z%j%XWU+_XL?nDoAV(&*K9$;#ecZ6){&%VOal|fb<`s<##_{Gcz)XJVBCKPUuQoVSW zN-|BehN%YeaX-ns3@=0CT1-INub{gwqr;A(CNc|2&e)nQ^s;EV#)AZ&x(0V+8K(q3N*nr^fN?jn2l*A z(|{EL&}CnpEn!H+o=2}MLZWO>$e%qq z2&kG+18z>XbBnVN_ZAYIaSj}suz|p((D&LEvH|C`4h7kNvXTE3K~2Q4&Dw`re0K zzUZ$CbDV|e<$$MligOo1ldvB#DX#c1doQB;X4@vK?y41fvq0Ya$n}wu&}Hn1dl^A| zsBp4T2BwdU+jK(nd{Zi~5ns5+rSWP2{MANSlAoS8SVXME?U$ zDrpy-w;#aKfP~DRywIRFt6s;_0}dw4+pc0;@mkw$+;`sUZ1$g5v#~(zSFqRAWY=QG zzH(vzhKsIdjHjtEWLr?>u9+ROM=sGfgv;Q4>5A zdnkRCiD+r=+Dcf2i~f*fZT#gNkrXInMIQp70mXUjB}Sf_wU6pQkR?Cx^Lbc>>`goi zjp=p+a^_9KK-Js-%*h!>G&N@}{? z{9D?}2c)emhX-AM1v=>6isu0Ro-+qJ=rJh%lJU3ox4+liWjj~|(3bT^Ds9pe0f>oT zEtSm7J)ENds2KMDht~eNzkhUobIo^)mzXfa{UCupxXah>Y&h39TSyb2uf1)~<`Sgf zu?@_^p>v-{ClXYZO8U87UAym$^TJn8lmySnNTa{&(b0E8@^aN$EmoBRt;^En;APP+ zWlUXp`!r{HS-R=X%nGZD#jTR6){9CMy?`nX@|A$a0&V@lv6Q`vb>c!3lK=lw@E^w% zZ$MV`8mBYbqmK6rfu`B88mM&_YG?4J3K|+jx>)^mU$~^-ckgkgH5{tyG3^wOzy5OO z7YMwWobs(NU$bt0TSWG9*np8@mOIgL23o|gkV22rO}Dc~pw^>SF?%nAaig)RIJe-u zs_psGsx8*-n4iMwRwfCp8;&_cDy?Nd`o5^-SGk@}5pt&o@f)(`k@;0kkXY(r8jwlh zY4Q7)8?cGKTU)Rl$@>?onv2vu;LWcCD1epApXv{1Rle1vRNWzTd7FGo>-*S9e;GnjG@RO*)Rp>I-nr zMkb1I_;CXpqCj-VZH*wbDSsqr>+9KnoT@i1jCGHH&k-&J48-i#r3s>m8M#`U?_M?0 zSh5Q7{N@kF3&dUru^p7PvFFy!KT<5;6NpwR2LH0YQh6nu=??(c@ao9Nwh34o%!O7VxL8UG z_i3>Y%026e&7y#tusqYnln-RBWFRpQv}H@c19!qANdahkfP{*Qb^=KagewjQ5=BAd zjO|Zo4kGM-<=`7b$htgBx=Kg*)DqC(VBuY_!nS8gS1j{8R;=3|0!j#I)3fy7o$FGe zAvz4eJ4gDMLWToQhu{wW3xZYdnJd;FYJ#(vZ!m>BwWaPvXQ401MrGC?1-4zY7y{`V zmm&MYOdH=@q^Q%P%NS{~{mWDjt%7RsMhAqGQ#}DBbEa zky!Nr|2u}j7+SCbbdeWEUU{up_E+Bn$pkWl63IK!2lV1F?)m+ei4ip6Z88bHxM;t7 z&6%SE6A_+ndo6(d8oxJT-yxm>3XQe$>`EqXCDQIR%PFvF#qq&}T(y9yDM0wY{tvwY z)Vr_{9~@COgda-$W+Oahc!=;UTSt!s(ojHdNe2-`*oMaV=Qp{eSSN?L*Nr2XfjbiD z(q(pP+Ddu=A0h!h8vo&Zk@Y-VILDz{s^m_judOfrQN9U;&Eg%0M}qMLKc#h?T_)G= z;koX5VJzVZ6r|nMld+C)>xzw(w{R80GrIy+qgI}Z`%~0mi_R?tc6F!}Ti|~y3*xI9 zGFVR$Ha3#hh{sXF;8Dv=rbV%4(VIEz4&C$9!sVt=QqpKjp7Ue1a>A{pu7JL1{RCc1 z@O$8yt3~)q|9u++;VxBMDtwkmGOgxUzzW=wPR2MhF5(>TToe&t`JH}tNMzbRcAVib zSmXETa}=zx@jF;!xW~z-?ceDwp}a@16~UBO?zq&Ip+b9sur|!5tVAoSV;J?P()d8<0D`jAemwNoljqZiGhO5Nn_}= zYkMFRLg+k0zgGxv#z{Y}*q;|0DYypOSCAXidc*ZKa_NTeZKzzkdSJ~ecsw<}uabg1 zicvTGd=e6_J*wtDa2CGAU`pTinC_TZ)++MBNE@?$-U#B$l*(@C1;bXcWe+V2i(aA*!ARX-hjl z{&6X)VkwH?JCx&?29EDj225tcq0w{<6C?(4pHZGk&Gw7AJ(!)i;n;Q>(mIFBaM&%( z-Tnr8?;O+lOJ2q>Pgjo;?^qkQa7QTe?gTB%y`jedkjZ?9ueKP767m#1*m6gm-gbJ8 z{^p%D$hgyFw!cl)q2D1y|dm%jb3+wkY8& z+n=VU2q77K;-U; z(=$U1f8{FkLi-u8eM#2u7d1=w55Xq|d(7PRJ*_x?hv62dYe$jwr^*^^QeC z;a>$JJ4yaViM_mfmY+i^^k&=+N>f`CDB8sK%OSs|ne`i^yzP_W3Fgli7A>CN`5pjn zl!s439d&;t9!f5XO%cGX&rCE+6mN8%dOijdwc<-l1cn^hv5)t?4jyse2dkHr<9oAr z`Uw0}N1>WKRj^F#?C_a7ULq2U;Nk>HN{BLC(~O@mqyYHa)r)Q4 zz+dAZLn$hTj)kF;3ln>m(t36A;0zta5=!7&*@GW7#*~_@Ul8A_&?F~jab8=H+PQr& z)klkN--YSyrYFl7T0`(s!fwzfQI9I>N*g7*G+3JulnkQ*L}=SYgbD7)2Z={km5YVD z7os*+n?KK^jFEgA8g?3m8_ZwY-k>>IXuWha{7kTKwi@UXp zjcFjtOq!rrjU(P96sxhidbn+Q=BqTYYW0h%`FFnNUuAx<10VS!Dtzdjhgug$=V{@) z_Mi@LI*a$eX7DiZ*a*N{R)N^Nh}5q_)frUs$2?WZ8Y1Pk?}cnvtxLBnXHYc@{m#`O ze*~bRh{8tnQs=18Vi4m3BBds|GP(?kakK}wZ$4r%(XISXi7V%ahQ6YaF&pI%6JIv~ zVOTOrNUM+bWSqEy85m@b^Y=0C!h$8iCgBH zDc(X48PP6$_K^Ubqv-8{ugBe6@!9`zePNevb>M}z;E$!Uq0?{mRDydUqDW*OVIO|l^r zcL|^^XcX=k6JQ8eJgWV)O|&iOW)$YijXiTUA>%K6Nw4U}0%It^A%Z$7s(|6|GBYwf z>tqp=(;(6j^P8^<9wbOh>~YA>00aWaR~!Wb&0hYu=HO!o1ENFXY1YO|xHAo+%x|A2 zRtRq#V8#0KHk6*fbUrzy@?Fmcwm_X$;de}XN^s9vE=9E`KU%qm_UJ;@E}Sp@h$0s^ z$*|{eig-mC6wEuw_#DMA^LZmy|E2@28;k9Q|*fqN@XF0>19#J_u zhFBs#k<9CrISya zn-Vz%5#`Aj&uj%?w#$stc zb@0rpuzuTECpY2f8z_s@Vq~Thz!;R*T*7!-XA7R?oGl$4pq#qaYONRcvP%XgP&Ve5 zr9pnmtTMVt=RA&?nqlG{MVu?9U2X2ezFnomaF}TpLk(*W<#F%{BVgt7R}?w-^bFls z;Z<3U{uMe>_BW<~!uv~-^5B(UANRxF;AhgaKq(|-;CXcP_0-%Q5SY>m?(4bK;go1> zgWfabg4Fj9MK#X$FWgV(YnV<@tv(*GQFQ#Cn3Sax#_gYsQ5g)(U?tabtA(MFHm*NN z9~De%j4G@)nlSv+;g7#_&AwR?o2P48pW@~5L#<8i^n00Y*e&i{VO-=mUa#A;9YPR! z*)c4*2zv@^%IjFB*Y8(&!?oI9K&#|<`PB*Bi^KCD(XcM!SO)U-d@q^^dpvQL#u??dyoIJ3!hf3kY{oVYKTLqrlhh(6A${B_~C~?oWbB5fz!w{zRQG*q2S$s zMP4@KVq0S*Z~>DOtUGV-g{l|O{C7hNx(K*b2{r&37;+CHdTJ)83M1|CPB zF+obgKq5V`y3s+`_!dSxsBSnq+J5E&LMcQnd1X$0jQ!DI+GV-9~OOyQ9;4S}Rs~Sv!dn({dCF-?Q@V_p|v&3ZP*>MAmN}26Qzn=2a26H}N?xP&cvtj;b0Cord>7MlbQNIq zeehxFld_5Nl?168+367;LKijdfU1-fNnE5xb${5wvBto-auju-)w~A1!s<|{DA`;c zBSH}?{+Xe-m%Zm#(9z#j<@fC8_%WCX^XF`#eCdkeU{Tr4g@qU4^|K#5AOKPHU&OY_ zwwg;!cV`Tjl9e$}hwo8NK9~gvtZ4YFwYbr5!S6lZpGcva%FBSid!|!lkfW3;H+P4O z;<`$qNXIpLx%ZR(Mc`XFMQ}Wtxa!kOV}_l_Iy*^NBUEQF7J9r`M#~DDNfB}bQLY%L zpi?RrsBtmlJBsZO{8tbpS)StT6T`I2O@|MB!j^=pna8Nn0dK02(0@PMJSQ|cMaA0O z=3;fGgS-FZ%jUBm9mzCqur`tLY{OwciM=R{k0GQTd^`!4rp^2HpCPS3T1CKbcBE{{ zy*-)C(xDRnlZX$KWl7|nLaY}|`Nj^zAr2HL*SQG)QjpTpLg2{mhCz`Oi^{x`!ZqYy zF2>*dJN<~(8iNXliWfem|HCr|ZU)!-mD|-3GHcvTf7a@0T4p&b8FRC?yiPG3^TXRs z0{;4I=zg=tZ<;y2{zD&e8S~69+PWirxPol&+bEWBivSgLsuc3P+{cs1-R>&hl{8YBXcTTzOxOq-Ua3=jzD7FAx-0zl7sVHzCGwaO~xkgr^_1 zwdfT$a0#on{Yskn93D?G=sK`v%=1>3ML2c5rti!ATo+sY{dOBt7Pa{v zDJy_BiWirzMp8R)5`J9LV&vZ12=KAARiv!cBcEkqrkrPAsyF)~$Yh%aDWfc+k|1Ki z&)Pd(d!oNHtH11vgvqAOKw|?LZ0|H-bqe(u-J~j6UTz^X$i~pi(@5x;MTERrsq>3- z;hyr9c^O3tFDFOXrww?jKR}OwCR}sx$+ju^{$uQ|CIR#u388@A^4Eh?zq?M>^|9aY z!>E%uY$vD9R=tW(`Hv|uQqgW2KZVQkeCC+GWH6-mr+}KqI`ARlCb^ft9W+(@xu|C@)IjIq@*J?*72NkX&AG*51J zn+d9Yy^;q>>vd>l`IMH;ccVDcM^ipkDH8#VxX1)mWemK6OQ@&thI#?GB_F&Q!IKti z9)1~2!O}1|M@QU~(^?ku3?(xViI_9O75^ESYlloBmJgitWTc(DLEoIqLY?^8@P|({ zEfnwW+q&crj5NP{_wf%0jY6j!O zH`JI0)ci#ftIDy4gZ9oG0Tu?KeW>4|Wl?qq2me6BI_;YMse>G6Yv?k(YBsWE=UZ+7 zzXoqS_)?E*Pz>e6;|kUzcfJ1m;`5x)lZ`-AaP|}~pj&-({mSUW!TYnKVnySx#jC-5 zb#`>ECCXJo;=xmyRg#rt?C)KWolU`paHyw>kX8Rfw4ZnePyck{Ji|bst;K|6tEE6k zVO{5@@Wwt8xh)Fv{cbJiSw_Ge+~mb~kqH4qw>4nIo*a379%&3*n2W{>Wrdj(2n|{P z?VYqe$X_R=r4%o(TCl--W3p9R-d2^*f(B12SU}{k^Ee=^%C6vE*uM}XdcswTc1oJy zp8XWUWa*!}rAE8vu-SVrYS)i|)>dFHHmk;tbOd(lmiSl}Hd4H)nxE^~e(2rJlE*Mt zu9gB~=$Td{gD1gwLK3+OkTyL=yh6S*pSxma-W{M+YV!~YcJxB0w81d_-%n=8NroA` z6$bTTeD28oeg~t_Z5Q{};Jni1`ApxoP7;K4@&|GKDihHWE(;;#?t=zFjPSz9omac7 zgBL_aL#Faf;WxEf+?A?Pxs@S`mWF|QI8&yW4erFRN=wbZHHIPyk)G05ZG$RNVT zGc8gW_07(5mkv%x?bECkH1hFR#Tum@%rF$`GU9?6tLEQ~J5XJ5s75zNPLaKH{O{o; z5OC&o+xwAiEs{Ke8H&(&? zjDJC}a`y67^MHG8FxaIFpnxZ_GsFh3iZS>&+FXz4`xND5&oOMeFg0gy=&`I-`FmxG#TPQDI+<(y9(j^Q2%sAlQTL9s$L7~wsT-=%cH1whDGk2rM-*8e!UY0361@f6{@Ufci3fGZWq6yv+puLbB1KS z0OqtLa5xP&Lep?Yg7-19m`D9tKejn0rO{AtB%}1J&%UVF+iQVgB1rP^`;g~Poy&_Z zdi0vEA@SxA^18&idXJ!Y+|^K_vz3Zk_BfFijgKyr@$T5lb&=|>9*#^Y%4#Aecj8Q2Du_wmmqox zJ$?UUWPS^|;0kW}3k~-*v28R-`1MY4<6?g%=6y5Az>E@;gVBbCCL+_ylMXs+9+$%8 zX^;u(aXP;*ZQiU)Wz#uEyyA78>aaYCxIF=wXk*OAP7*YbQGq7iyKB&63ml|=gd-9iS5N}24 zP&&8xRbuP1)qCT!Q~w}~=qh+Gqm}aZ`raPjWRD@XQdGnYgsDe5q-N-yp>3A?9^xcID?g1*@IJ z((jQr9m~4g{-qpwQ@cjZ&}(9lM~{nX8V0Y4HcV6yn9k;97XynrTR}q?I~#n-thtAlE(Wpuk4MY`~{d z8@vgB8LO*2tg~pnZr`+SiV9DUMjm#^8Z6!#SxS6F!EsZ&u#IkgeCGe9H?=*5Ub&(M z`&Z!?oX|Uz(-rB4YrE7chrLu#Fk4Va3O(9xZl|4Edysv--{}34^$kNhgo+#$F@|W8 zdArh8hu2O)Cfmmj6UxB+@FSb+aHJB&^^TKOS(TpON)MAwpf?Z3b#IS6K<^(cyAS`_%F*hsHjM<0P}3bA&0m8+p^&o1q~wu6^Ts(6aD?pA`9s7(U5J6N_w zlTochp(wp-zGQwjwOScN6A~1CbR%dC$auPY^LjvPS7PB-3(&osmxE5>lg0Drx0@8`1{pw8>bp&dw#(l3?uF50kgr z%`I6go*x+W@<_1IiTDEHa7Jd03=QSblySIidcZ9FkOG$H?<-l1SAR|>H)b(t+aJ%( z*s?ORx!<@olqrFGW2wE$?CbeRwu&xWQ%XgHsHTBXS1V`-8!DKm5z=o0Cn3w%=zF0;CIM}|*Nqr6ir{0; z7>S|z-t^Cds{TKOaC!0(>M?P!|g(Ntg_XatRcX@9Zm1&9uX1)Bmbwvu@qVq8i zIqZ(USYATT#%PtLTR}`l!5d%)koVva|L=Zdw5k@X3V9y-hK+8IDiAqLi6^V z#>eKcXXdLE(%2A)7fX`BYQ5E9$u$*zT69+zk1=#9{J7_1gGheT>Mzms0! zTHSRpuv+jH%B}>^+8KF%`Xy>QO%snuU>w?8d26%qV0A38W%J%@Q}TJt#j~iC#8V>_ zmf>$oyokMf{nRBkzqyLN0>cF&dmiNJ712@7KZeJ#w(?w%V!A!XV4QisL6Fma_He+d zxZehmOr_-88U%T7UUw z%ZTBR^LJL`2yf`G`ADifiakL_cl5b~jg#>?4){HrUkB^iYUa7s0%$d}ry|g^JQ%|b z;cjQ}syvKuYSsJn`{S9tLSv+-F&<%N%?Srr=MLAb1Gn3ZLL7(f7*orquWvq6n$M57 zK@`Zx-V7YGQ@>%eX#|S5aaDH|vVq+tkRKNufNd?WYKt>Ft)Ed6^<9!_Wm9_fdCA(a zmP>o%SI{5%s*)K&3vFw2z_XxFBvz+5!ky(K3Sv&yl%bTFPm^PGj7K!vAF%IlxZyz) zWL{oB^|+(5kDc}BQtbA7NdXpG!jRtEphcQ&borBO@nN*7k@f7hd6$3ui&kHwoNu8f ze>9z=fZcdW1Z^)!e))m@in=YB8w%Ae)qY8%L%^T2ROV`_5eit_o=B0ae#YCZ=;e?r?TOsVRdL*ssDAnuPX~`TnR=aC zlzn-FS$dnyS3c)auYIAMQOl&u?#sGUFPPnb(~>pd=k}}t146^$YVsw}rp6P$4#K$_ zp7ZCfPHDJfTP@*TMBH|QtEl-MakG$9R{kQLTd>;?F^l=yoW}?2R_Ug)(5UxL)i{fS z7+`%YD%bO%?W~$r;V?~whJP|1WLf6r5N2)wgQ~ZYtinK%Zy3t&Jtco)<^d~fYby5l zCr@`>qKO(8nST;2vRSSiqGod(z(uv#!up1o*)I4YP~X^hb+UU!mTd=&Fcnb0Eu!Z& zx|2_f(GVBN05?FMS)SmiAhDC655G7(m?0FKS4hsVHaqY6#&OqVPhUTeK&q#FpZ#oG z-Mo)Ik9(m++Zl#x)YB6ni5l+BiF;t5)?JqckuIYA>1Fiwvk^~uJ(Hf2Qe%uFUTTH> zo)}J;vO|rJ)}(X+142$g5+iJ#hJMWD7>!h=S3pm0qZf?Q{RrH47gujar6$BdVpiz1sGWBz&xq1fnHFbL-s#*Sa}`&fNH)*TBlv$^`;Cjzy$^X=vuz9ouKmM(6prA>|2x` z-82F`g|?hO9MTzLwMl)y@$8o6dsvO5nTGq=NYDY$wZZGtmn8?Kejxrh!NI&;$((AX>k$8;30^u*z_i#efv(19I zpzeP$)l9wxR7LI5|WWm)+FrT*=6Nx;+B3qnc?P{LWm35C154){PJ{3 z5+y0P=9F@Br$4#VW9Dqo!b*7y;ZCD`ji(D6h-{Oik_0z53u zkC$n3Jgx8A&IYGtn#C+_lL{M1WbSQNlN4WW3p3qiI($wfRKgn-M4MR8&ZflM2aDt2 zZ9}msp=`nZ5#@7{*V9N@es!9}@twmMj5l7UxPAtdDWxnX@<-^ill6cvm!M$D$meOf zQ`}v5&|Tz$Y>sd>$ zAxDy6g)pNXn9;Q|;eu&3T`DOlS^Ov)DqashD^>(~rfSVJ<%GjX1pM4vEU}I`Z}lfJ znklGc_21mBY<-aA{=7d+CzgVY)(ceR4I1mL69a@~wpYCJ; z1_uwTK^}rWhP#11`wnSAoJ4K~Q$*tV%8#v;B%Ut;6GN`_2z}G2A@H`HB`OWFx12LV zIaIYPa0%_Wi)W=Jq^snE!89$q@DfV3SADkR(J_Bj8vL4W$rrU>3?v3`CU3Y6{(4=N zjnL2yud0G0Z8i-+ttogXmEuOQ_j0tj&ZmwNLYqw~JoQYOA8mb1+*2mc6o1CR=O$lP zw4Mj(jj%ygS#4!=+l3wpW&W%mO25%iP?cK1=0cvl7mzpo$Ds{ilisgs7JLRxvioCm z*Xi>-L(7}cw_LZ0L^CWCmbT9bn^&uqpT>$tJQzrRt(&6zLRWr=;Nk)VMo6P`W7q$3 z%5AqlcVMU)FTjg0NR3Cx*MmKh`K(_SgY4kYa93^J^I#F{FnRGqEVLviOC9ZHWn!r=i)q;cEttk$3{fsMks)5_!|q$c?9b}= z5lJJTWem&LrKLVK zvs=bBf4~V=@g7*!~svilm}ZQkx9LYcFxj=IXCm!_5DY95FW#_OlFWTL!cscs0N zoQKTczUj2j>V3(aZ47@Be~-Ase?$DmtNx)_yfZu`f3b|~9g#h478$ZWUH#*I zzjhZ=5oINucPT`gmOgBX60IOwMrD)XWkRS*TC=OS zTF^GvBx*PwF;YciU1A>7a`hSDb%xxd2(v#<@?|Ui3`6Hdqby72+D+W$l0ivtAg<6s z23$J^U^qiD&qJ`s%qk*h?p~PlAhRGQb*M5Ed`D^&iV|D(HtM}47DiQfDJ?LR!cA^D zycA|0%bSd`^@qEPiN5qk6M9_aAwfWS`X?q22B$3=6?r8yA&_YaF-jyR)281(piKar zY|7(aR`?BV?`kI%9UaN2HxMHzxYD0M!PPlvzn?f~d2REN=Tg*yW6hU5yXFu+_lAV7 zQI1ammtwNq7DlFhpEMhSjVR~dz2Qi$2_8K`hSmK@l0u2h6ymncP3hhy2~+Cocx4s&F+YRXh0Zrb z&vo4Y)=>d^@05`@OpV9u+X3w{Dtsgw2@&O4yooq|BK4jz{=eSdJE*CzUHezRDmFwx zML~#yiVY%4Z?ORa0yaRTL_vD*gfu%MO+`UzQCcVh(o2Adl!yUB??ng@YGMc^gplOj z(dV2q^UklFhqw5bGcxMlYpr|T<+?t5_6#Ld+X`rgr8Mc-O*#Oxy7;%-{tD$w0If`g zGBfP3eRc04;86gbyzys1C&pA1NnE=ZP$kDw{xcd?_K9YEb~U#bDC3t8O5A7~0EVMz zxA7Iw?G0|HHm~n7fZ3ZanQ?&w zXYHb2SS$#p(?wy-g!(6Ts6Sfyr+~(9LSwsFj8z!R2PlU8W{%bF^Cvn&*S>bkZtJSr zFuBwBuUWwe_y9}+WeJ`cs?k=V5ha-#0z3?mlc(RYOm7Mst(*Q0$0CFa42psNvssR) zX~Hi8YQ6L7Al+Z5L-w(HdkhwvgR}<E} zd4N_@x$-@$17SR`j)~QH!}D890u?T;t8I z(g#GeZcRwb69l6LQb2c?7(9}j>0n|s3KS8%AV}3HlI?5vHNR?Yv5?5EBd~A@MN>6P--tdt91p{dtfc+xccb$< z91+G%`DOwgb9WbE)qeJYN75}o-w4cQ&2v9*+~QxT@0PM6mL|9hMI8lq;rhxE8`1I< zuh)9!^I0QHkpqmM1J%iKx)Y**b%Pfemaea&#U|tO)B<$!hLlFd`-WcE>_d1UROrR` zA85S*-^TKu3W+R|l5#YgYOc31RBeqP50JyeZkcm{FVmErBZBB4kE*E#w}J}Z2% z$hPa!4MEdtdq_Y)31_(%>iaBVxN{iIV_+_*CSzU?HFo4IA<*3AURghpA6k9)hOcG9 zRvlRrO)+Z@&+o2MF!_PKy_nA7j-72D-h5v5FqsftM5hkpY}T&ZPR~|W2A8oa?g)|R ztp_4{-LAgG{&)_gu!~CtUPf8I=AB3Ip=~XMYbj-B8^Q`j1Xa_zVzEF#;Mp2sZfx=n z+KaqR@keStowiIfEi~^x&cR0Gf@llL5P0M7Y?JsYd)hY9fuGv3QrW0FtV8}Y{VQR(d?CcnI>}e>@6r)46twEGx2Q%U2)C*O2E$LIVz}%= zLkl;hX2v*)7C>oDdeDM3)ym1OikqUa`lNGnyjDR7&DjF!JA{yb2~ubOOOTp;M9|;^ zYJhcjDvoaVx2d|~((Z7u*A|ECkcPiIvwPug^^({KXFAl4GNqaCX`?jLqe3iFh@S!? z%6XjSQZgl{*B#5zHEvam8-_Quy6G{V4lkUuVs&Co9TO(;2=-gk541SPFz}B0rU{E6 zy=X-_(S$sA(c5HpIi`rx__G8EDMO3P)M3t@%W>Xc2UPEmE;jBTBiq1}d8?P!tcNQ! z?$UX~p$1e?=oI~*-d6zUDX-5>!jB9C+U50wh5cd;AkJaK=08pFA6dtH)Lqqdwtf`d z_&>$1JJ8(P-nUYO?_kkG(Y<}$O>^r2+rR$Cx^};-S`%FimTL*Jd1)lq=J!>d(FfN) zV6vp6=jgY3Oj!nE*g_-Vz5Po6g9TvSu7n0F58{K_DOMwKq%cNeSCnwl@#8{(ct}hH zTl2{|g#eQarnDD<*A zy$jGN#4diKtjQc;*e5Y^rDXBuxsj&HEB1iKvnw2lN_Um9|2r}KSNT3?o?^t<40K@s zqa(Af0aTE|{jPH$sb?IfdG^fe4qOo~6^3eU1Vs9NE^(G|R`t6yO%`-YEt9Lp{a5+y zUjDpoRd7N0?dnt?ZPl+V_*E}Q3)&q^k`^Xi}p_I}p`0_6C;dOMgn%m8JRbi0*QI1McQwDNm#Y;BQJ#h_j8wyWmHVBdspQ$#q$S;Fp}3qJToc8_ zwGD65!p6L%4esMOvN}644Dp>QpZOm5AO>Gdmqw~_uu)BmppL8=3mgfmL(_qxTRF(J z6_?^c9+UT!g9}ZyCWmkI8AnYFPSVx8*L+y?y3nqDd>G!_pT!{Ac=q=8;(GHtCLX=34E==iCHd<-h25LaGR6i)fJ zJl|hrQ{^wf_g_(*M7;>GQS-i77(TlOd36gntX8_OTeniId?sr?B@sJPYJA->Dl( zLegXypGg>PQ(%46OQ+FcdBhzMX7S6;2HAx|%34MV=K4-%7@yS5I+* z#D<+Ff>f1%=|{Gom6lr-*%d;7&wPCA*0sFG23IJIU(I7thX)suwPtuS->#FjD|9;< zj<*q(V6(U)GQ=o%g)(|DKzkw zDoD!B&=VtgF4OH*TqRRqoCAR^uH5IhE}ZZ&num#WX!3|)BljTf!D#MoZn)w=^asX0 zjaV;tb-agA{&FP@q?2}kV$ek?w{F>JwL=f#B7?ueEw!+Sn+d2KXyDLKYvVqENBJBU z6|2WxidkuZYgRLtwNZ=ytYh5wq4b8Lu<~{#5c-f^Pz=8NT%hKR&iN1K)gDDh=f1Wh z&4#xH=89qs@y~%C@1}xvfvr*7HX&Ia#U?-@oTMl&zVJOXQ1!dk8I6P=HqR!LeoLNl zqo&`k_R6u;VZJM!|-z7|>B36@&?7+?|yHKYN2Aa>mX$P^ zG`r6Z4}8G=OyjtOo6@*%`{4-f9t_4fVbWfKDRWn8b6m@JSdEBiB$0%MsqF60Z3)X5 zOd~DE9lCX!GyUpzDZyu)xZCGvNX^NI6QD8@3Zs{% zzF&mKb;2f2VONYckaOS=7R(0Q$u`3Lj#fl9&c#tv^?AKek%UQHe$Ko_1CQ?Tct-j8 z;d!!UV@W;pH2UcCfX~Vh^@nuDsJ*w-ZOX+R5&gg7;ww8jd(eA7W97s?wVtMH(B)6GyvV5Wyc__E3ii%UJO;`C5*b6moxB4n zIq1>t{7WkSi>rI7fh^lh6v@}XAS574AlR;{~rUVIEv+5U=WCG(aKF`DrJ><^!lb#0EBe+w>i?|Wp zqQFFJ5VjL~0Gl8ZmiFFfb=3^2U$q6zWn1WUCx2pfHZ74*ROZVm@^rt#YKxC?3roD> zvzEzHO${%Rka~&7W;oRWcg03_C)VFCsA0d{m^r5 z*T-Yekhm$Sv|vK4zqYq`b*CyTE`UILre+2)K}Vl4Y2nk*Xj9T;h|0+TK97UOImL}k zX2yWS>Y;is=Y~1{qKJ^1+DVxO?sPl(^C6w&G0Y)iO)@Sw&aUZ%t97@FAX* zF~e)b-1MX281>$subi?QLg4a(Vb* zdf_&X18X(EH!DvFR+T8C^QITiTeeEZC)8NKuJOECuQn0^mbiLbt2bO+sgm$Rmozy^ zh2puf3A5xwTChbW$Wu>ax=dQ_slo6rHIO@*&3hZ??=I3CKp%e`C9MVaRs9H&HGvuO zokPkat>f~X&qBW7IEz;S+#|9IL3d?YjZ5>5;*#*gSrQBRgSD_f4@^h&OPh zx4?h9LkMwu7grVXeS@Lod`=AwR-3k0D!@M*|eWe0g|f(Ng9TU zu8@hR@EMrZ7qD$5r_}{43s~h}Bb9i|VuUc>=~|k3=!QsDx3H-zx2sP z4NAfp4Pmleo5POc#G| zT`kxrs&l1+3OR`Wcz<=z_!2__+Ni1hP?GEiDIoeUjGTDd6_Y5@SB7Gaga(O#BIi)r zYw3??Y*n*dc+n4h5Eb{)Z|qe?p*yDIC$Y*%!$_7jCuY=gaHdbLX1aDi`p}aYetsu^ z(5FaC=d)L*xK|2HC$ANgN7wT2ASiWeCza4YNRoiTxUMgmuCCcQ{yo3wfR2&e-%fE~ z>G2*lR|%5!bSab3(c~k$7$vW$_9H!l{!{1n5t}RW zu-?<^-H8|Z$1x$px#d5w4p@#fT&bHjBT{#rlJSr^fJQ!kQ>}N!zvk5@>QF!0NhZEM zm9FYl4%HX}c)N<2BamHt+zwt-P3=7%PaqRF(ES2fu4?JpLtuqYyB(7GrmS<|7e$BU zW;@@ZKH5d}x3IyHy5z+oCr)QA6b~y38Rx2*+^fXJm>kCYQCx%GyGo+R?#~BBadO(l z^~U${)6ekEUsQ4+oSLTNsjc0Ud7LNTmyX(Co%(DdXv#HT_R3`u_LH2JY$7}jCY_Wf z&?e|p59W3RzM%~%>)4>~sj>recF&q9rbaCuAHm=5Tqg4`V8rTtZK~Q32KE@I`tn1( z^OvMe`9ahXBj}x%EHra~CQ0*B`i&vWxaJh9&H>N>{>b0M6$hBRuB@v|u)ey-yV7oJ2dt%jf_ zf}|A?sgJprH1=}G>O!xOmz`lg2?xaId|qa(OuAJ$Bk)yro>PLGHBNXue1liV%z~SR z(i+4tK>Hf@16UcBp9=}3`gYw&#*hp@IZNZ=WpL1V^-9&wsM~t*QpMKrb7D&1guEnr zywofFt#gP=_C2YRh%N&7?qMUUxIGci01F08os;H{iYa4&~ z*?rlh&3BcVk<II^@A2B6#ZX3g#d&)` z<2&Hwg1Y`WCxky5*mS}?+3PPNCd7ARuH-CuJ&9$R9`HUPp1USdR$i%~H#U!-N1jKW zxwmhh@InQv97GBnDECena5+z60c0Z;0oe%Q%SqA<3LHMw4>c^aY}(DE4+EgsNi$rPUxzoRZKL z2G}ASAQr*F1vPmM(lr&ta8ci&nr6^#z)D;jv~%&xQ}ZIu>&do8zc-#X`*w6_>FQFHD=L9+SBdJWXOsHuR->#Q{-CRj!_Wpwb*AgWLhx zf~%Bh1=B9GbZRH4&QunJ*Jp#(VQotI(q48!fX&L~Lls3Q7Y?YE47qAbb#R*-c( zPgXA!o!-dOA%#&!%F+DV`-qj5&zg~_O{%`v($gH7gXQCv^>HW1UxAf?Mw^RI0#MA8 zDH=8xlZ^)81phoSyvsX}@Bpn}>hh_(5~hN@@39CS6=mQPSPpH@k?-5zp@y5O*2B?#2-}^89=5Ju#a_If1Lc^3FCu`;@yb#g?(? z52>z6<#2e4Ke9w6O&5NR!)L`G?R3~q#CN@lC-H&g4Kuo=6>Eb)j{t|82zxj9;L_Mo-V$lJXs6& z){|nd6;jN1+sLUTz{QTgqZdR`tPqvpimw_q=X_!P$bzwRy~EV@RKg5@scxy^6+KSx zZuOTtkwSstQ90Ty3kkyu@?x?Y6i2iD&tP`S`R7D!rjs%$Cb`I;;7tCsH~p`biCn zaUdUI$0cRC=)`}sCr{I=(R^N7Kf;@8j{wS^bZrxL{6z6`yL5XSl0_|lklb{1V6W=3 zVlsE_>|{6nmE$6We_d|H!kR2LOfz1j9nfzE=BK%Om0{rXOT8<{P>nrH3pnI$^qTTx z{b*Js{Y!WTZzX55wby849Qgjz^WoY(_gQ_IzA^{!;^CeWg=7XqgS7BMNy$8f8#m-9t$4M z%wlE^Q;)HyjUx7!NNCnSM>{P*$^u8>(j!3Icg*`MC`@nFS;Mya)#dR!tRbz@XeZ4r zAIgv0_fQGIhj#|bd8>0IAd$uIjvV$030$k6q5Fg|bqyzg8mSIZ=32&KbYoJ*8VY^0`pLR4RX5)lL&gVfi{v@%5I%CS|WD|`c$E6c>KyvL6SckG31hsY&edt$R zsJ{$41V#?uDFV{@aQ@WO;~Wj7i+$Og#4x#dNi)nqi}XucZZY2mlaB`~-H;NZ9AA!r zHBF{U>jb}(C>h1#@BDTMf@ouXWYJ3Acq9&zR1LpC(EN7x9slw450SF5NvRg8q1~+w z*VSzYo^yVzC6-?otg{G6ZONST{wH zslK${p|c>9=Qibv)tPlVZi~)X#hT)#IMsfx*`|?z zd#|U{PE@+#5XWm&?EWz0lEzUqqT$pEy~w{Ii>K5Kg+gf~*bJE6RR*JcqlVqpe}c4r zG{tS#t4*!o8o2sLgSF~S5!+?*oRfKT`Mt6v_Mk}Cc3!?FdeV{o`{j_!I4J)mSib&3 zyzO!8`Qr-~BF^*#z2VZksv)&~9P#I+%wq1=jJ2+D#L<9m}=*jVGq)HPzI z`>g$BmuS_oh|~rUdLCsA6%BjA4i=gkdGnHYs@h1IlyKd(xcLCi%#9h(u!L8>sTa@l-bZmK~1y|trKAzxOxb`&3k7MF`BCA|cZ&c^4a zW^s%(91_ojhDTRiZGEbp{CsqSG>F)oRgeS_BsPgCEOlw2BC}PrL!?{lKRV z-(qmzP4fI12Qf7p?33xiOc7^=R9|McMSfmk<>E4Olpnls>k(%Ndd8g$J~zgABO6}bhx zW6NnG2d7SJCjft{qdlZ%rZe)Mwww~OC{RK09+HwvpGRP|g)C zAJC6({hl6Pab;n3FN>U%1izOv=o}a5fB+@EQEtEyAGG)ddZs?g-O8%cLPpd*l=TQ~ zkG4;}(&>NJ&;p!vLRNLFzMr?xn8mLAgn~@>ZN^M9*Q=<+n%8^eYSCfO8d1o49E&Pk zklGKApFa0K{-ak%7-Kl@05f$a>X}iJ8gfuisfj=;uuv+6V!AFO-!P*cxrb`Z4CwcL z8UZj2%;#(S;$zSLNsak{mLZY87*)3dKm%qpaKm&JAA@OGzV&5L3hNqJ3;b+ZvI5FV z=_d?Oncqt}c6ZkN*ZI%p@G~`xb%pOvLHKTe-iNZeu8{-21rF?`t99q;YwF;9=Bs<= z*G|QM1!><4-~x4pH6*xowk1Io2-wN;d1wZ6LFcIVzWCj*sd=^q;bVzc)XtCO|1@UA z)JAS?&)&-2hmhX|cRK$0jSgbvzF;uCxYXSZ##!Xsrk&vO?#z#XP2$jtEA&0HSG0E8 z?Ml6%daQBZUpT_!#m|5;-3nk+qyyd!yHGUIYznY~m%wj{@C2H0#pQxhlPn3Z{}X^U zz#4Y54&lE^+SZTzI28F*6$u)vqNcXe3NTPSXJv-05I+DSDYfXQuFa|D`)vqp0uWTI z&&qnxYby`pB)e|EyDQo98{ko0j`;{KzYjjWef&}Nr#Dw>LXti-{a8L8suiW(G1Mm= zbL{T)GM4MpXJHW(i07>iDg@g?(LV=)G{-9_pagAJlP1;ysp7w;Wb63a$(jOyG5O`d z@C_mo5WqbVC;rc0f}z!5Q10$UaDe=XqMt)Dfc2Dawl8zLdNK!)xNHG*lP;F~1ACTy zW@%Wz$%=zcZ@m{?OT_=tT$ic5?BbDtOPzX$LV}G=Us0Z|+`^rt!+vgG48;Xihm&`W zre&;@&B%pF5CGfsL0EEONaQkb?@A>e9L+!TeWF@+E4dzbQmodtEynaUOYfVW z1>P3*tfbOq1>0j!{t5gH=uL*WEIhwoJ7g(1h=$U*$!qOy)8YeiME`-cWolih2p}{Y z5p&6}$b2ZB!?`vxtg%sAOH#mAGa6X^6;`J)Z~v~!Qs6YxC02cn^LLRVLrtx+r&x;p z0Dk6<%|L|LsX52@&py@zF;!v4{D~FA$VX~@4d^4@4PoOP*}AgDjF7y@g6Sy%vh4^@f$i9=jAn+1ZZ7bFZjz|qf4bRIy%5c0 z*#vq)Yw{7ysEl0Tj8j07cF`D|xvO@b!|GIbmFr zp8l)1y9VenV&@*M2P9DTM;Wyc<7eS7+;I=~hN=O#!R@E_vlqw;3x%u?BL$kNecgYI z)IxGUSz+$-a--q1S36(rQ&OGQ|BbQ%m~vk&&dL_h?+;zD&H3Wh-53&@amP1eSzspO zd^3XFx({eo|F9Jah>s%7SW!v9lPZ8K&ILl9vt7)x1*-nb{|KUyYUfGSdQY<_rL*@^ z)NA*By~DhJczu;V?#MaU51=5?*b0KR^`J)7_prsKLkce9@KNl`$U-;3QV544HqpL5a8DP`~Vxm)!hQ;dv12zRMTq! zvip21O5je-02p1v*+98aa@Ft2DL}dgAU)Qly;BwR)6273_@02@Tn%IBPD_l@ot z89}$EMm+fgVQ-235Ab4+$!pW2jSqgj@$L(c7n^(ftn)>6$R^}Hs~#gH43P*>j4MA( ze>|ZwtC@-MuoN)ZGhx5VxSQUI?8ccB9RB*?!2xy{Be%J4G;59tns#G2Hrb2CzUJ^A z@Ym=wXmX{W&&>~Z0MNx4`2?-sb>{1;gH8w}PpOhV)K>}@HTJ9TMHvZ>O_CZ!yv)9dYVE}aNmZ>QLjs^NV9ow(bulD9 zC3(4%^#ov!pDHU4yk>GM%C$9FUUQ0hO1`1Ojp1sh6e ztfOJ5)P%D~-KWNDgXtKSkyKrLhCGN1Og2K*e>4-d`+GjXw*XJPg~?gR!;-?I4}(TkrZYbmjmSBKp|TB!X;b8Jw>A=x`I z0c)|&ceFi3GbDhc9yGIjR<$wDY<#_jBOu?*)o0zJ6~`24-b{{}j9dEs%`c^7)}O_G zfml81RB~1l2Vi$mxFb{YyvEQJaIJdH>w*G54!ybXQ>gwch&Osrleu?ZQK&U5A&S ziHOQ<7Rb=G|9K2r*s`KIdkS=AAv^+F!3$294f~_Pjl1RWK1wu~$Gw`eHqxkLZt!kd z0IXh@7s~6cz(86l;+A(a)PA;@CvEZ$n>_@zj12?WeMcbm(*Q2cj|N-W&G;p=Auv6; z;}b~z_v9nwWu(lNC+}6*UZ(=a{snxvIQNu*|4-vP%3ksG`?Y%|=hq$&-jkYu&R%+5 zBz!}8qrl{t8?qzvdKO@x78q^*7Yz%7pc$>Xwaiy!w7fLnu(Im43^S|vEBOd_+JJmx z^bNr0bk*R)rTH!CpS5w=?_cGpO&>})boqz^mArckRV+Z+qhau6^x@pb_Y8;oq7H`v zJRcUdWmDA#_veB<3D%b00tj_MO!eaQ-L~_&Na9-Ad~R@=s_F8)U^Q$ya%YLK@pDny zIr3q#(fP&wpZ*u94>o(IC8s(K=;Co%{R!0i*dajul>~%F!ub$Yvc?VXfKFW}q{Kti zB`3)x)z|_vs+{&UAVx~bO~>960;FTW*WGq)4sLrU@Y#8t`kVg$&*tfpFI#bD(Jfz| zUj~@4f^S9a*pI*gncN0g)q`gmxeEm9SA78EZVRacgte9<5^vP+oyUnCp7zn2e6?#P=8GAV$UAl;i>~{md@HMin!#eE8-M2pn}s6h+w&8Y z=4qiHlg&zhK6p{jX}EPTlbst+3jd1hBaR+{ZUR&;|n6$v+Feu47Moa&h)8O=CA0JfjuST3dq2 zJTpbs=<<9Bsli*_^HGy_i$#6MDLa^_pDbAk0-F&`K z$n8(tI%F=jcV*eA70CC$@-UcB97Z|$Wdnp zcLi)nJi1}ywu>7!?Rm6e^O67VZ~Igp_aoZR;lG*eCgX+` zBl$$BSk1|)d`^}`w5t$N+hXI#pTbKiaakdXzHtjT8&V{Xd;(RLzFjbD5XqwGS_x0# zTYo2C;Z>*yNVAE|Ogq(ljh0G{((@u)a@yD2?A^x(uF?xb?`$EOmg?^hzx;3hcLk63 zRcy0koCV{nc)|`AbKHTEv+(MvZY=T{BU`>^s5YKF$KW#Wi(;QnmcB`M`25_j{Vb-h zVRWOCJ8p|@WKz#rXi-jL_;T9T9DN4US~6Bvs_;Tdue`!+^oAV}PWFx_b=oGod!v=4 z(|0*PTFn|h%Wj(%`gEfod3v-J`t|U6WtJ{6-^;379@H;wHhdF0QMfxkU)%N{+OY>(LA156-$61=WUG69MjLTiw z-+JLyVcsRT+_U=p7JB6a+r7qCjDeQ??8elRvl@mOQPnqX)#Xm#5i8WZBg}pd|8g@h z6uum~qaD1p?@d=kwtu)q9Bkw{-|inuUCQf&7WU&WVB;qG92D(BrjPP|(%+yAS3{xZ4I zJcjM2B=ZmZxr5pkWn~bTQ&8?otB)SmF??h+ApmPMY@BuDb)66 zdCrt_*?5;Jw#0S$tVe4TGm{;-d%uhju-*k8uAC6&Eh!gk4Z?;0{we#f6RD|xpUIn7 zYK|7E10-rWxFKA5mFJQp;-D`%&yS~n?}UJ{IR4#?Z&kY13|7Bj~=_>1P{~iqZ6$N)@*CLWLI(1YuF`i@cKrL%@zFQ)ZOtP!Fe%9ctnXuEPrX^xYHt)u=f=wtbp=UJj#m`s zDydMrFyiijVd0R$1@1jkjXS>^5!G`(^U-x1)>fDoe(}Rrq~^~jPg~Qk5SiKI)s-iY zZSC1HSMdG{udrQsPg{7eIS>zdwl)-@*D*!`M2k|3{g5<`=(UHeEJQxE8XL>+`?+f3 z0T;p7YNQ-*^g6kXN zeqgCakrgADQ^Q94mF@l98BNkIw{}W=4IdmyjrK(5_p3k`3OO%+k_^4f;`~k*I39TeZG#7urj|EB9L5wTN<*U*{7>eLJQ?FwM;dl(jV{set_I zfy!Y14&(fl63S5YbFe*84rf`D=+&!a_t8Mp@;ViJNOmxF3U|<bz{?<`cCC|Teu zEQcuv>T2apV~WLm`CY60Lsx1Qd)7QeLJz1mSty<%mD*IEz+E9P6{2#EmKga}*vgxG zP9j>Sx2a&dOqnN&vzyXlQ%MSmV(9+qZJTDoOMV}Qi-B$76I0i@^A&EHs9YlTc6Z_S zk}71yK#$qnRJT>riEU}{;-u2Dj6eUNPnpW#R0pg-;Rb8t*-sML2J1VFk)mI9*!s~? zM9HcAyu9xW3aQRtW4oMObRCbEboV;-eU&+Dv2t|LWhip7;?Qk;NMKQi>v{M0wv`%B zQ{iS2`Yl29f{>QhJ7+o(9{bddcjj2-Om>*ImNY#!el`B~SfO9n_gfIbRnVxs_iLPe zUFytEsgRzLMIgE`TBI~W*Bn?`u9B&-ST9;>KzAT_HrIXEW2KCR;w#E8FOSJl1|BLY zjb^CCwGvxz5@S{cH^=$^b}IH?m&Bev^-UZOr{DoE&HY0em5oO7ZORjeBFmaV&#auYThccEn*CT}Ptcv{L#K zv?^80W~m*Cs|o6=u;gW?t9h(_(3>A&9;xYKCv5|BRFZ%om76|SI5>6IMFV4>Ao9<; zavYg+2`#UZSL*8O3LlJQ7g|6Q6;(HqtlWa_rA5I?hvi!v+gcd+ zOl5m=J~iJvW}5BYce;94mUwId%x5QJs17*HEA@vP{4#nBvt4`lR(9FB@0;^Ijmt=oHsj`l3B42LyryP2btF>RXU*6}<%bWZ#tE1zGKM zhvovpjT_fJqq<1R9{WnNzWM&N_^NVKQGFod4X`sD{@tWou+rZ4o4*M0R#wywA3prd zWj+#fs%ZE;e>DzMX9`B`hVrI-5|cv#gYFAJ8X8I@8dc}rP+^w7jy_`k^ZqT)Cj8kV1qQYvehZLk(@L6bo_QFF-_V|tUBoTQ@ zkCcgnxr?UBTH8gWwYGtwH7~12W5Nb_b_`b4bP9hp0soBr)KX0oE^b>LvVWuoDXE~K zps}OaJK*$`E5Tegqqix~RX=Um`Xyt7ZXK%G_F2O}UG6QacN#n=t28jLUJGiKve%Dn ziwy;33pFLAwctJavFeV6p7tBHDaQs=Uj9l>_!$gQu?ca}_AGbL8j7 zpJ__XUVC-2{_WE5SCQ-<@N1Et1QsyR_V)I^F?2THk)4y1)BOS_d*7I$!uw5tgo2ZG zb~AEd!7QrH%48h$Kv@eB>pjoChpj6JB7bQJD5PCQr!zK`NK(ifT?3ExlqOvSUiay1 zx<7!*uifg}H%3YVzAd9VoIp~?%+?4~ZswAeLSLM`MsOIo@oq;?pkPm3b@^a=|M#~4 zkL;|C`xvre!#^~GtC#Nlztk584ZcZC2IQnL^QG%qh^5fIdu8(tb>5XXo#^eEb1Fm#?ealz|BFYWNk`WUd9jos zCGxsx*t|6>O?^wYpILTaMlNjWz}_~Ii^m0(ZO~0^%E}t5&E5pOqa(MbTT$pnt)|b0 z{kJV7rslN1t|RVCZ|d2Hrj1m4`!AgvIpKv7(oJ1+m=EAnAT>Mlp?HPTB1f2HOp}sI zv(;@o!q-Oj%!uvEY!G@IDOr1GCmZ{{GoAwYw?V*;BU7%dtkCVt%geXL#fcY$p`;;k z?OwMsmEW_FKO^`38os*aj7eZdj|7t}t^UBUWWU*CLj|DT!_^6YJ-t^- z=99QQM389P-0998cnEA+3?}5{d_BZ#{}+p+z|YO8Z4hQWd9jW->+@c_tB9z*xeEX9s{xV!cPaU zg4k@sp4OU76EBarT;IdUN3FLO54>H2ZIooL4lT}UN$>CQ!Qa;%jhIR_dO!4nk=diw zqF!w>oDTb#*W}i`@y@H=$2eQNd8UJnp&}s9b7!*FvCbH=$1pVrL0c6V#^ zN|+-Sn4lf{7d(}ZlQSfitJ+T)4Y-UJ;)UvN|XC#yn z%Mib4sHCgzmPQjXQ_Qj$w63gaqLf;D_$4%dq;|*Vcql~Db=>eO-L@s@4e>)aJv8-; zcp15=&bCYncCM{|hw%O{6NQ{RHBEDA4{UF&Biw&G{kTGT^B~_&wiv09uTVGHpj(y6 rw0D1t1_8_=F%wf$c)~=d4PWGgSe$q`E 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

      I)c!yr{{@ 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%0AUA(jSS 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

      E8o-g|WIW6ge1TE^eSVoWG&eMV= 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

      &*lCL{3#<%5QgpIG8174!~M3h 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 literal 0 HcmV?d00001 diff --git a/docs/images/platform/scim/pingone/pingone-connection-auth.png b/docs/images/platform/scim/pingone/pingone-connection-auth.png new file mode 100644 index 0000000000000000000000000000000000000000..c29d8b702473b89890f5b650dcf2b496e1610d6d GIT binary patch literal 177296 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.xKpBFZ3wBF>K0YKw$!%OhLvmP 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

      q36mXe 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

      PUirh5%iueZW;Bn)t~F6LeJ-DM2gLF*DP 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 aZ81!@p5|SDfQ;V<{K-lwNunMZzWN{GL*hXI literal 0 HcmV?d00001 diff --git a/docs/images/platform/scim/pingone/pingone-connection-preferences.png b/docs/images/platform/scim/pingone/pingone-connection-preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..e8372fd68b6fc1274f902497c7228cee52f1f2b0 GIT binary patch literal 186701 zcmeFZbyQqi(l<x=J!4TiO`u9c?5T^##>I>h54$2S?=qPg|V;4PEO1Cu>m~MrkP=2|uw10xq`R zmh^ru&aPf!ev*uTqbv4s{YN(sBmLhV@ph7AG*H)~2fKON(hG5exIv6kIP?;pHg;k! zU5tmv*VmWZm!I3s)1HS{R8*7)#K*(O$Mx_8mzTe*x1}GKs~6KB zB>qlA-qy?7)6w1A(an|q51N)%Zm+#185tkO>Hj2d>*x4S>aJdYvi~3moRgFtL08F~NNt>x%v>uezJ=wj>Y_3){OF=2lGe;YRZAH$*oyo@}5 z@X7NhqYo0}`AcLEH-8D;*7ZTso)03`@ZRTpSdK?tFO=j^Du$_lqoBy3JeQZ%^?S6N zgBe7kK-R+pd!t+W0$u(qJ*h77qu(JB23063Ncxw=>|;e7>H+#dZL~*(=;CZD@1I2& zJd%|OxZTgPNgvvnOo7M@4aBOw7+Di3OPOb_T79x z4NW=hKeeSxrLx>}qe}3=p#Fm;F-S9v8%AJ~#oF`qwXmie#E z5-1|-_GXud*Gxmr)D4Z-CJGd7TL$-eUKC9@P_IS4(SG0PYnzhSD~`$f_QFxP^PKOIFxCF_XCbejwZl>$ruMhSto&GS zqFOGqCDmZF%=|JcE!}2+NNSVNh<7}#S*pQQlLNe7FCW!A`z%45x+Qm5Dmej393z1?)Sou?Y~dA~a#?{NUUJt#H1l=3g?1;?#q z`ltLQ&2a2?e!K#}U_jJD!J?(lOh6LD5LX*SXdADWa==EVG35So6(bsiW!G|IJu}N5 zRlRfmA@&>7aeO7Q!D_ts3b*j{ER{rVbnqWKWAVImHe~BSyYxjR*uXzC6Rkq&arNzj zCw~O}S^v^cyO;O0G?32BkNBH^t_1xdVOY#`x8d=VU*S81!l7p#0SQn0`9~sI9ud($ zwD1A6`A!Wsz+M~c??6$nlqQJ`GeGJ}zwrGb;!$4?|Mhz^Vms_*Ph8>P%t^~55qkH! z3NG`Qv9Hzy=HEW+%x!2m=;UEHrlNJy1C26bKsX7>Meh_(Q_>Uf$>>^Ak8I z>`ZVqVu9|}Nbji!owv6~)c~uLRi&Uc|DnT+x!mscW}=xxtbe4Gz-550%}Ms+zZ zUgyI`V@jd#WR+VxvXyq8cGc6&ybG_Pu*xKf>MxxhFI%;+H#Qlpjh#22!KB3GqCJ%h zm~b?;S%|cYmyK}WhOBg)bJ=cfkVh`?4G7AitYq*!8mtIh2^F;VW(LmQ&4y|{n>SN& z{gJZhMgcHxWpmgy6A4cEC9n@zE+SwpUw~(ylMZ02O25S=ZC$aLUe|@gn)w%OZENF!S<Sc!v6a zs710XCEv2TX;SB(XQthyDj3rB2Xm=ljL218BcpK1ibh6xBX&rIw${l$Z#s2#-2pt1 zLZjqX>^eoj8%1hq54k(3gJki!mwB4+pM72%dJh&SzsYZVO=hK=Cj+M~e4G{c4_m+V zfzhJt(qFQhKDG()`ygCjrCv;7t$X7155qL>(7ZDVop;Xcwy-4J^I40@)Ry7+etZZDO`aXDeqvV)#YM3%b?1R1!L2d=~K_$>-w4}bjLSACx}XWF|hF#nxF z4cZ{Gf^oG3^HoW5Hhh{fg`B@UW|-svUwNlKJx)wzfQ1r*iXtT9xJ~fNWsz;GtZU!u zq<>5_;U+Atuj6!lbIL=ggSjau7>wi~m)A?u5sE$r$#-44v10VXwgZfgFP$UoHO@o8 zwntwcrC#z~pRYS`}>4?EM^{R*aL5`(7=*;%1)MYjND7X(I-}7cx6% zN44GLb#8XNDg@2Lc_h5a3&;+v%lB%&+uFPEPqrBgXxeL#zVnm|C;i!b5E*kP2yfCv zw25w!_>Q6RhHmT{Iu@>Mwkaj4Y)_P~4bQ2nzH%8gz3dS_I`x(AM~2>UbzS*n*z`pZ zOjGZMozY1!uNDuzFNnf5;V+m@@TVh}<%|+)*Dv=@_6M0ZSk~Npv0S*qr&={>=}1~| zjrl?P)gNii{(@Qfmq(EFN|*bfuubgZ95JHry-^U|!22m-mdiHtHp2t=8(o-DhyrgA zs~HX7>^%SR=EK=@dzmr#;XeElf68y`?o-R8v5_+AZY!w@L&tubwDV0LmQ|zFvqg^< znc9e`D=H!t8s`u9r49yr;qj@=&xvYq+Va3~4c<07gST8xcE1rY*wXdX-RDP1pr{PV z3Ae3G_M?Hywk#+(z?bkw=#wn!@xBJi#qC1b2+=!x9*`q+?yXzfT{M9DGX1h#BSWa% z+i_gp(`Ll3zqc)?<=mkpQZ(XMq>p;u+pa6mIj1GI8rY>5C1bUX$GE7&DdLx?zX0P`5geQ=1AFuftP z_DJ=*dNsLeym51{#xFyNM>#iJxJfwcaxkl)olG0l=KB|U_+j^H_SwBx@(YDVeN@WP+5C0hO$%!}3>Ez~ebe3%4dMyYo z9E~BqNi+Ji$`jY>AR$7QJQA+se;Onw#*x-^?3If~#1U>0k-6^qv@?^d3qdUGBv5R~ z%c4bTJ||~L_Ql!!l3}WyzPr}xsw|7{a#q!D`__I3X%>piSx2KY-{61=o3c4V{dbRi zrCn1y+~oJF?HXo&!@sriMHsAK@2A%DNLWjBEU9BI@BH{_JxhMm;5Z7!bi94q1r zy3t)VtUWq*Lz7hZDV0J0D6k^PgrA9yXtTHu`+<_2BO~N=$5_*34=3%tb`HmR?=>0e zc2{6K1~cV%u?QY20of09OIajOeSJ0}!4pGd(BxFfl3SQEjlb%=&sh(mFKmw!F6-$4*PTx)HW~! zb{XlS6cFmzYD)HV{JZfSS$6=g9JSx;A5?^hih!MYKX5c#%Za{Tnmn(;kMyTCO=s3A zlYK-Q3r1hbSkbPuII}&q&8n;qU*=Z6UTp4RRH$rX;rEPr;1E%W( z${#nW`nTfv6MgyQtBhW9l(L<-5O$BgjflvM%;W#dv*dm(RFr3G3wuGoC=vmHP@mF9 zro1a~@#(wK2o}9r3lvhVWv?%3_BxZvayuSusRX6**%Zm2Q zg*m<`QF-dcdU5WP@IBHgs3UN9u?xGN<~R8HDwlA5`jc$74g8qcs!%=Z8d@u0mmIb& zxp9~QKDG%injA^@ZZ(7>;q{iF4Att{$K6Op%?ZWwl^2zIf)paJBI23YEH1589U)ODZSyOr%?v0;i1GG|`g!YEgK?mL@SsgND?v97xm+XcdYO+Y zfmtRdXkzq(X{yeOS>Ix0#N00P`JXZ zfMd3MLfvE(bpg3Vq{Y*C5^XoA_s0Cys}ltp%a?*^lz5vI$5`x5uB#gyIO3QD-`rY_ z-K46YCcsJ<=q$=VNUUR784TyFvbY$8D8qU}K#6n0rJIZumI7M^hqM@G4(;$RBSgJ= zVxy1-Y*)y6=2ffol0nNX>h_}ffPhL{Ii3aZ+&$6P@it;P{J=wJ1Ilr&8y3l6V}HDv z3(EC32sxbWNaY1%m=1HPN?n@3q`5N#=mByGu5*_)rQ#wj3nvU=t(D8l9=A+3OsxZF z`JSf;r_+{Nldg%Ef@U6#v;nVQ{l+q%=E3`=Pu{KUZ_$#O1`K7dj>n_g(yUk>qC_-9gjQ5 zS-w%@$Y?{0<^u5w zqYuBH5#DyhYJEA;g^%I(!Y|V9#d4kXK(BUEPx_`L-Q~$FPPbs%>YFz^tkWTIjjUA& zlWCP-RM6efIiH=oTUW;|vgP#SU;&8-@EIurfA~p=u%}bjy*OvmGe zP>-b6u|Pq*e0xHnF`s>rz_aXx0H^4t42!^OW1OrcLf%t92m-X5dY8}N2mf~Wg1fH} z@|H8$m^XYH?U1Cc##I|{8SilJ(Z&Jg+3cm)W?e-_vTeI6&1s02C~;MwICRKeTDcMm z9K$%L@Fu#n_^qPD8A5OfYxl*sqLmnq{_RV5l)%|5BTA6dyh&u4X>qglr?*f2_T zSJ*!|iY*EXpau#85D9*{p~oPZrkmME)?yubrgr|-X@<(}8b_8V9ZNlnk?W08g>8am zm5yD8*IkP2FQH$c-)KA!@!n{>%sCD26Q_`4Pzk{i39%r3WgD>R$-psfF zhf^>&G*B6a0zPFWUJ>{^Q=RmvS%HHnWAGdbu?m<# zj-}wy^;)S;F)vP{l|vdhvH+loMTlwLU_l=!z|slYJDdfLXC^CthBkTilg*~Y9q2n` zLR39OFbJrO>ldU$8mk`mPz-uv2G(-SExi{#!yovV+05 z3dzIstw@rPqJS?KLV@#Iq6LhENrx6TZnwXYoC1IlAj{YJ&<1BMH@evHw%fx73MM>2 zxx*JoWAxQ06KAEa8%{1B>aH%tl74e0ClFPer*avS0MN|w8p<6T2&7rYPg=Zn94|^Y zu4@SGx_Z4f?D;vT3`-hg;I)p=c-5O2;WSIQ6L{e;k|3YpxZ_M)9fo@lKIt?+rM7V2 zPN3Jgv~Fg$6yX)^6?u$(h!t(!T^+z>+aH@^=_gW$afs%#v}D=xtXC)2^1)blfC=De zK3E^O>UuS$o?WybR6UZ);=9{t21jyF&7_2(D#2{!wf!`05XgniUlsfW%MM|~A4GL( zog|usY}~XfId&Gpy$F1-=!9Gep=|9sL~<&UAEnH_IpFvcyVu4STwz^n5V~rSwP3uWe7Ix0Ql85i$!6~<- zqMe9Hal|2Q-J%h!tQT^-)2%yX<#XP*xoxxxx;}`Ww6@?9-}mv!6bbZ>mx({gI8NfB zI&imcRf>Ia-!v}AZu@yRvPy&XSSzfI_+}aUs&n~3&U%US%l0l;P(?nqxrvE%$Jv{h zy#(PR;WlvAr!8zZNn z2P*l3=5=ANM<0E@-`7e$-eYqxcPw0;mo9g4ePTDrpOe;RC`M4BX?NWgVA?VI(=!&Q zf?OH~%biP>GUQShhdEauaBRWiBU@WR ztnQ1-=f>mvb0x;&|B|0WIX~%33`sWhcXeoyg4jgI6v?#*0{gNWa19Bw?Ex{3 zI)-qJHYLvtx17iE?FI}G>^MulovKix8EmaJGvi;E-#B(%_3UIEtyIF)$#?JO6*!s> z%BLQBQ=Xe4RoUj)OWZ|(N=bg0VpR@4R@7LX6sME-tFWM=bb9m3=;T8cU{SR0r_1ad z?rDr|rP=XvoRv@LK06wXUy>|Zr#evB`NSfo0V^QWH^er@KUOwVsxrUhiJsQZd3JR1 zL!#vK?+%ac6GzeF#3R?PWR!sR!f>zooyrephg*-vnvKoJ-Q%OLP{q;#ofmJI-iKBj0aPUf#eT}@_Eg^q0iD&Bz+U$dhQa)w!o|_iuciUpQ6vfKY}Xe| zW8h=nQ`%?wi%;IaOz0Gio`%E_31kOWdPuZ)wD$+R%>POEOB{-~wA?!@bIQqCv`BtX zR(n~TK>4M*_Fa~iJ<{pod*$T2ih%XNM0yNaa)dNx9>bmBD+CyvT@IpkuU89FQiM$n zVEyvR35>t)DKb1pGkd?3NC5FnOFRr4wZDX@XA2CEh2*P ztitAiV)zdR*w4YrnS&g9;@&n_oGW{=c*!5TcG1YyCbZvWJW5Gy-V6Jw2zZZf&QNPY8H88}-~x z4G0X+m*v#LmyJ9>p04!-Qz8WLXc$I60x&8q67p;TjC}hgz!aAsrZ*e;UEP$ocZSGm zne)2mSDyIbX>;%XFj?lvbMlZUyKiFJu6dx<@1ClYuKO(@c2X8ib8^2`CX(ArxOpI> z;Z|y8$Wh+MZlDua$TVi9P^E5Ny1Y|k=fQeB&rW>ZwPd*1ub1=jID z^9d-}-O`WD3ldvMnI^BX9qCW}sFqQc#*_d>YEN^2G2BL*a=yCb!ZNJm`!b`K_ zt?4atDN9I_=AxlOTn1($pNq)B_7M)=lbCbi#1poX?}{T$l^WozFUb5wOHn(g%-6N& zP~kmwB~X~~kfdOqz;dhk&dg6;+e)7RpHMSgiX{2`gY+hfsw=qxW|uyj5u zKu70?j_8jj)w)`8R^wW^+BLR9f61PoO=l}zli|5gJK)OKQez1?jQcO;irY4~Diyvf zoV(ig8z6s25q(AxTNJAniN7_a;ph+Srq5<%B*D`*znc;&e~7g!wb;2xA&GNP4zX?W z&EVnvnQabDm)vThURC3L#Q1;_U%$S-bos8|=ONXJ662pL3}c4jbPn=d3F`oD&S@VT z&(Mrkqw7e*Zr}pkCqyxD{XW;pWi~#W1~V(J@0?xsjg^@;jun14Wu+yIq-NL0&4>dp zU(J^?4V@5sB}H(DA&Rf;!nVQk)y_I;UDcw#Q43E|RKA*Vg>i};P0Ccj8wS8&ylws6 zK|;+nwovhh1+ufqqlMotmv*eVq3KcLFjj1`%14hK20f^tnJb-3f>wcEfdlX^m4`DX z5r|6gY@WG1(~hbO>fdRqcp;3%37XULH;GEu!doQU3Jz0L@l#p0OIDPHSRUaROyREU z0ctRKXviUtB+?AQU@l7S5peBCG4ps?(u%5)~ZaP2uFAZ<_ATu zY&XcKi2O%15%A%KKy~ZGcC(xWlys&*p$?RKLqTswhz2?3<}yR|(Hl2!wTxI^n<}Yk zsg&M~aKhan8|ylCYsvfnG(tazMnD8P9zqK5F#wG>GZ+Mk*;)(^&3t`;L2=Z}%|e#7Af)@o-n6YTY_pgfgQ%El)KMFe*84@6wGuy5ypUBH#^!9a?aAJVP)L7LE6g}8>O23`yYu~%O_!i66^4(AzH)JZ)4$L9KWSM%XOi80IJy}=`bo3w#7z{J5QM_x)*p{Z`v~S zN?y9dox!#1+J&uv{OBRpoY043iHH2*Gh<4-xtiN!k5z7m!*# zHP212kwP;)5wFUI&U91zs9}_ z8TB$btv5^J7EfN#U84VV2Y~D`nv@$}kf@5bkT+cj+d?!QOqJ4$JOcfw!FGc3}_%gVHi$|PsRi`^LxC~9WW1x_%O z)8h6zH!%c5e#E@4&nKx^%-=`7yvYJ2M~#}eUbA{iu*VvA;5mCpO}Q;T!>Y!p#Etz{ zvuJ8#@-1?mpq?gzoKvWm7<|D?4wcqY5-4f`yuRBV5G?kX(f8|7oz2`8@-tX5lCwT0 z1;8*dE^ZnxS;IHqAx1~>RKL=)xPr;CGf#^;Br52f&OTa$U(TNTyrSD5ozCN4SVzi4 z&8dE1-Ur2zBjI@rC+&Cu%-B);p%cp|2sSD5JX|YIh_PS!Ou%e)hO>Wth#7C^gI1JZ zY?~sTM5%p#{@P}Q%RVdnSYhz{SHnddGO$4KLzZ$Q-cWX9KDbjTtg` zcw6f2>)%C^YoUh+iD5e3RC?o)kkPDlNm=lrjy zbG(zcl5%3_*Udv@{Q}uYos$-Mw!qjffhpX67;da^egKzY2lgfJuTIkxd)m43CUh=y z#<%J*F8M|xj$kf+p>e~GA=Bd12(QXj3G7B}`T8dDZ>a&sE;(FQy||q##{fG1NIt8O zq%#cjH(6*FSl0Cq3Es!Z#H+e*Ss3lIg{&VAGe#{oTd{v-i)WPb%1JC2CsLjL=C}X+ zwzn1LcNj59DL&DSp~!fW@Z%##%=0$aRXhH~H=zd_vIOZlvo((`sVs$t57eIxQ~xx( zz+w;UwLH0kPpi9vIj!;7aHPPuCaC{sWQ-tOd# zBmH6}_feiwbW2yG5xFW(Jz_mNIXtjjHnx-8=pi*Tbum6dskfy)@f?g*arlH5Pon0_ zCS4LPBH9HKbIypDo50I^jS`&^HO%!fb5&l{>zA=}fQVrwUm32qW*A%eaWa7fVRHc!Xs@rAm51u~5_iG9Te1CiDS zWcs^WKF$=-bs#AzV{b&yfO_@I{WeyM!-umR2N4$4<8Cd2&}3^lczx&G%D3GCseaNn zP9T?QaU<(Tv7BqFtH2ITSPFp%)Hl#T1Ip>6J$KJ-ass~0rjP?I>F2GW!jMgXw|Un& z8f{SH9Z0H>1hl-|;JD+{mo8d!3B&TauY<4U>`z{!>?5ZNXOc+bu3gmdf?CHq-W?i` zepZJ}CuMw{L58rMo-`2hDCq&gmjlwbW3g63Wd#eY@&bNEvmT6l0kLzM(t2>t0?wOO zja(WJ0=UY#Pwcn|**gJmHas%~R?I4G8xahfP^xISi{JwiRgM+;(_IJz`6c6!vq?4O z+Yh4Zyik(m#4}J+`7>LMzi^9)2WNIpe-%px7mq`@{u8T~-tA6E`X5!_7!% z^JX{5N97m8K>~Jl|A)jc5w_mk(Juq53hH}^g^q#SiW-@&i}0a%(A`rXSv&-81)W-O zmZ@8b@_4C>*Cyrhd)A59H5)v9Gy^}Y@e$Z)yjW7fEp@^QOVHd2{6Jn_Xj_*GDbKT! z?G&!5jo_*Y2)o*c2_MaRV=F1Zx|pK9H*>=l}E5CZ5rAEGHm|Aojj`uoZ5Pe9)J9w523K>E(M z;lftpC!^%(yqRNof1O;0u@-I`?VMJ9+Yu_Zdq+QPZ10R*tKoI7M~@r{LuD=gVCWt& zjEWa8(T_m4>{DViq42qklEv{uZ65A;SmXVYwA~HIT1O(8WLsr@KCeejGZq5zpba{U z(Iyc)P~%TwqbNL_3Fza6_aG8&S47O$*NXGupQ15d?9hOWVd3;L9ffeAm9A^_Rlc6$ zd?gGBK?1stJ{2ZI#iwP`MSZMWw4WmZs+sgL-7(u;&B{Z6aTY=Wz4`h9NVfZ zv1k&`X(_b=`ulC&Z)KK%bP8ABou!X?+n*Xh34|o^>j+>LFs)ZJR7nyugn#vC2Wmx{ zltE+Q9OOm1Fkslp8QZFUw}kGS6EtVkeW5_rjaB1h+ii+cmc;sWI>sY58LRrTx5$vP zO(HpIu5N#A-@U_KNJ7n=bIS2tE?Q}Ppc8Pg*2qmKw%I>kHGmqMe-7REB#3pnE^ zkaU=iQI2*Z>+H$7S}1kDetLN_;D%1{#(`dGci0HfIdUs0a$BJd~Uu`V*fc6&vO%D3%Vc12xFGs zb)1ZE4GEc?@Tt>xEMutHjG}`y!y{9;Rvh~~7aGfVv4KMSkyxRR57&QwcsYd2JB&_y z#_w>Uf`xRA6oDLmKPX5{$!+qq@$KbxE?Rxn8L@zHC&&@=4NvM5oY;MG4ocXIacVex zcPiI>-@LPy18*Nr-tv8PxJ797#Ll`ZaJ)I=@G%ll7{BLra>pC`lP|m~Iz!fP{h?4$ zP>M_<&iM7-D)&?t+;m*lE~7@wej3Kk6^#!6=UbQuT)m2m^(3u``fFP@J_ZlEmDf%y#~Hd3g2zc z^aR`ULFobj3{yV4i%bU_vW*>>g3y~kG8c#0EKVg~NfUFuzt?VGeTB|9)%^~Nvp2=E z^$7y8z8w}Q)1Q;SaU3tq^F|DJ1Mx>6;V$pxp7RTli~U+hRR0!ll~6X@pLoG%JNO0p zEw6v@lJ3XX0RDv@FDa}?9K{&VNnQAR?{W3XulJJM)FG_I(dT&bhnH%FRiAVgm}VbQ z(Ww07ZgeTZX$i>55%tn2{;CXdS{}K@EbuN$&|{$E0G;4eRNi&Lv(7q=-w+E}vs+WI z{zMJ9{6Tp9GT#K=@QPJC0XsS0+|$u`LLivcC&oiQkWjul{i*`7(!{D}tozH-I$P!Q zC>93@>Q>0aAhv@~!#`7Yt-$oukZ|;u&o!+*pZpz|8Cbis46ABO`V}L@2Nf=i^fob$ zc+vxXoJrzpg$rTVi~?cF0*injMqLha<6UI2Y_G)eLw6Ql#}D}L{=x~KPA2?eLhJ3( zYfx*qIK651}eoF@5=#`0m$NatPJB$ezoiNPSXD+n-qY1SQh~b8tpt zB-1V#ffn$|Xi8EHGdU$E)l?!J%9)Ywxg z)44#q2vDSeI0sdbkD_uMQbmd1^{ozyJ*XhqkerV&i?>Wda^8MTIvlI((bI5{09Itf z-1kye0A+GZgB!Qot5sgg(8G?y!WbCfkkpxOpKmW{!YE$i(m@?y?{3g)atyolh{U7~ zSeyZl>M|jli!r3>2SZ)E46>BuU;r27qt@5fT1b8!yEp3 z4Hr=9rC~PW-R!F&{%kNXvFV*OOgXoCgP*W6##7%ARGKJDwM|&OlD%LL=r>#VrKm&iCjP33Gm{E!gja5|S zbBJT)d8QyTxXfv;_>XFo&fz_OTYh8LMKRGirc1dcuR!LRJ$Mq0u;u0M_ncYJz0G`mT!DR-~1ZQHgEqkzF!rRPZ+!Eshw zz%Y@6aRCe{%$&Z+92Y=?3sxT2;G)_&_bSH6f{v9%Hu|mTzS7~=v*7HOetqX#}vj|>A@y??c!07nmsSO`^TK}ZjfSyL=M9Zu4Z zzV?A{B+`ti>Zd!@ke7^Ruth@-R=(5f|Ku}UC)sLTu3XI51Hd(y{+{G{M5GKwqo3WK zi1yxTBL3RA?pj+}Zp$o$oAGfy;OYDU_5J{<8U+_kAOK_?R+m8Bet@5d^|(v0A7|Fw zBGx8i^Q?D|aW;s-8}A`#MXX6|EF~5NE40Qu-;y@TeRWu1n0U_Om!A(V5xnM1vc<9= zS0qTweTYAdYw&zzZgBh(BoFw$nluxXjlr^Xc88PAcco`ytuSHDsSA$jOX6|k@AF8U z9{mm2o*EU(j6L7fZ>fFnI$K?RHcq%leOe16*wc68xlz{JnzmT1ielq@ZnIeQoN@N$ z{Aq{yucx=*2}1G;uGj|hb4gt<^T4|!h$l@U3_a(3?kfr&IIZx*m1xPLI|xeF#_s_k zJRI$yN@#YNNU~fl-WK=70ib4?=Q?U3L@+VE&o$Peo%!SjHRq){!1xg3T(oGAJe$iHv0SR=ep}@!2(s70(|qZUBYlYVdw%HBfp4XuDu?)Uo8`*C(m$*~a(asu?_FY|z| z{C)8>Z>*Ynb8v+vNC{%=)pB&zpIj9e>c~TQBlBr9W^Ty{z*DTd-GPcEo!|Ai5s~tv zGKf4+sx%|=3H*{PtekutVa9<~W8dXH<0+TLC@s%%07uQf#_Zo{8w>tKP0io944*|v z?Y7>i6KVjhQNs(xYd^Q0U|UKKUrW)f0+RJbTyK`H`5+1qt=~J3aCZsr19g+`&hy$= zd!yC7G9sPG35*&s${6S>B!k>K4_Urn-m34N5_I(Go8GJ+S15^I6Hp7RqS*GO^|@tY z#~J}qJl7lhn#}zMJbAj9FnOz&(YFTLpH2sJR!m=h9ho#D<3>z>wRbj=Zd^R1BHoe; z^NJ1RmHV_LJm55q?QHzCDtYjj{c-7GKjXPogf;SLzj1k>~_ zB4=@!iEjUzoQZ2baJ#@Zum5PIwN~M2JiD0~-OrAnj(-)}#eEFZ|5E)pN&4Ax@wvW+ zbNT&hCF<31NRuf;eLp}?qmjB(ozD4w**WIZS(f6EA#Z5>@6kl}Z9h8v&w!OL^)K_) zS+jjepvJipuls8WqI51VG@jiGEvG_C9#dB6A@uMv%zrP|6 z;>ew;&DZcSz4f{`pU9KP%364NnCDwLYEK)9Gkh)8!bnS5PfNTuSn#k%aeFBOEjG82vGDWv7do?M50qOt0(|Db{PF>!!AD_%hiz{S2HFqv-0erNg>hxC0fOPmmmbZzn>b8LMF949+t{uz1qL<*fX2>m<9 z0%m{owBOTZ{GU}hJbWx(pPE^UT!2Moxc;94(8ai`V%k?V*JPVo<#pF;th>->eH-T< zo8B*{MR`7^Y2dS#~R!%M)Km*NzjScI~0Mx>hkB4Tmz`=ChG?Y)gyNf7`W?zv$Cki<9z@|6EGTbd<+OuzHt+r_ z`yzV$sG&XbN@mGJb4YGYI-xY`B$LJG7(PUn@vV>RGY;i%Z)MckI$3&d30OrUlcrx? zH;{F~J2tLb>;}*~6>a$=)6oqNr)fN-Q~cSzpo(`vCSk3K1ihM}*GM2b=SK`32wAs* zjSwe8H*@IY40R`T7ULw6PgAd{o%N$6qLj$aFsu7<-12SknO$eBm4eF+M|fKX+5bd> z{T&bXKYvXI(C81AB0-^`2K`KucD85*=`O_MhGDS~kd(lKdwzf|5L_HC;Arp*Z~3j1 z>FmxdE}wS16*=8tyiB9SE|jDK1YnMrjg9a_vmDsy;F|(-g8egNEaQQR2KM7tl4F>& zm}3|GY1l}iv>3-KV9GSvSONZ*8XD=r^yIxS!h=%}OVuz8%Q^nb+Wh;4I~QTt57ck3 zxn7Drns`4?)c)LpM43Jbi+P*@1(Z8`>iWE2_mwyMv}`BSGoiiF<-!-A7uOFH%h;lV zFNkcR*Jtk+5n^k{6?w$$ckQ_S94eL{)#=n6j;7crY}4rad81$CmOFh}N1ttwgah#$ z50%NqgD6W+#Yb_?yWXma>JKsEmzdniNCtUXAxeP9INpq0jj zuaI_C;l1VLjROnW*jPPz>{0PgTmQdj@%Ns%7#U^jc++H&GGF4P^6coB-Q?C&?{)(u z%tGO4_;H7gw}-LFQ)(T~);O=w|3>6bQtxF7NP38Nus1zeIUit#L{pa*E`RNy|9DYh z{`h(2FYxNye;S*AgpL2FHvf4ogZ3!i3QF`JDg9e#Mc^Me$7`KIROWxUmw&(l|4aMC z*6Z}&rTkCQOUpabrwSlLouhueGEfq!BX|2~OuG{vQ{ z&#Inh^P-}`R|(nU?CCsDtHi#G{hN>x+z(76_M5DS{vCw+0Ea~(++FE;qX-oDIx8DC zPi0cNf1ld(##|rX7s>Fiyf%uVkxLzJyKkEPJDD)FAfT4%pkJ&ku*EO#ElCjl%Cmpv zE}Wd`6B{Ymeei$lHc%KXJ0)&dZGJcA^IyQ!zb_Xv_a8cdxZL>pZv+2nWeb>Pv^lkN zeP{*#t4aIowf~>+|5s6@KyBYq#vQf$kN%sI{m0t}({O}6p8hnqaQ$tn3^h>X^-UGC zW|r7)>PVg>S7NR+&_~MdpX&av`u0~pRvtLtk`(GGlMn2%F$-_^6kE=`#3afn8Wmg;Hw;%44j!FJ;xXK!7yYBO^>ioYa8ZJUF zqggEy*3bAvI2`Zyc;Aq}r}AuV=~Kh+HXD)tWnDslM}+_1Y}3t?hdpvX*aY9nmPsF^ zxTUrHUrf{g7SP{&!u_5;>{2ri zFZ=(fFaOr5A1QP6ty*XQ-G5+%NG!bTp7yQebx4Mquw9x&lc#b&F*{Mf`_<1O8Qi9P z*Uujyd9}Cbv!q-e66GTP+i5q@P5tL@C7RZTa#Y7kRH-xrHAGsT$8J7d9<@~ei)o@K z55_X?xAU>VA69OOlA+3a1pU(WSahcO8hUevKo<>=C|G`KeZ`zAY|qDT#@3|EmL(TY zs_c_UP5AAv{|b0;O$-`sniBG)l+NgGSXJtbrSHom&Myj6h15T=?W_hois()L7?S#c zYF2(IUtiylXj%=(2pK>MT4ZvX9hS~4maZRbgP*JhR_h2Zb%l^$3 z0dk<#-+G$aaf@*o`{bM((soxDHUs81d8E0Xx<2O~kxVsm<@%AwpV$5XcmGq8^qh}@ zIRPi3rc!37Q6oXC#lu8cT-F$;Z`Zb86Px?&-}pO@wSJqSk!QoA(jVY{E^q&IH*^hB zdNdk*Zu0W&FkOr&u2c$xTkEjiX3OK)VsT@RZlbadH#KZ6|wCJ3MEBz zRjVQByyj70YH%(EUG`C3)<1z7$`3psOJg!gy7}yzwK2}NpWzlKy%T`r9^+VF!V<00wsHqU1_?E!kpYO6vloR7mg6kyzH+Fw~x%L*gA4QH`WTmDvWrLr--qwvc2n&u$656@bFZ?i3 zp*J(wa-SIF^tDE$45|8JFZ?=tUAq#-s43uNFZZnCYTNh{d4b)RB9$|9H=bn5=RYOB z5k&KVUUy$~k~j$y_+mT`VURC)NI(9lekgPYh$|)0@^7vpe%*mKiD`p;-*Y(i;|S6a zG0oesZ2~QUaLtcgJHq$OBK9KYFF6*zF-Y$8B~rMhOf8tbHEr7!yoR^=NSeQoxO7d& z=lY=BX6crBnmk#-Fi97WWs0`%#=iQ1SrA%Z_CuCx4QGcAti5q-d-s1Bd&{u6x@=oG zA!x9|Ap{Ev?i$=71cJM}1b26LcPF^JyF=mbg}b{IeD&V%cE5d2_r2#n4?i{~yK2{3 zYpyxR9AoU1Yn;?J`i9?BR#KU|cUe@5RK>PlBDZSp0@h>Ge@`P~!24tH?k#SZl>m}M z9tHM+qzyhoH2)B^=W3nEx>nPo)e|OVtb|Y6_0Qt1{yg`T*l~$`5YlDa`)v^ z`o3}zh&t?6U*Utl=~9(p+HhFXmIjAqs4NHL7^eCl+6;K`D=6Wko?{kT?y~sd+?QP0 z-irNy@of<#sk(0jMSSzprpJH&!<a3AlCoa#miyxwPRWW2Q;2(|+~Mtk6G1@b5jf^`CP94v z?`~xPjPe`}jqBkA<0zE!liyN*=jUDY?<*Ms{V%bYrZg!7rR`@nxFM4u9ARU3u4Csp zl}`0CuM19Ww2wxIZe&RMIWO#K?n3LyI)W&k^+p+_PvNfRjpDU8r>0U%$Fqo~m-11= zEeS-N#|#CF1rtfbe)sFNR+6cf(2UMUqlA3ZCxx}H*ImR&9(TL!QoQ%09iTUB|43sZ zFNLa!Z*~QrWXE?DH_0)N7usvZVSW0j-z~oY9#7c3XcPux)f97@u{)( zKB#p4)fGw+yr9ym3r=x*>vapMNAC}Pz=YX^3AheM9SHQ}zdMSKA;TX>;|5!gZ_L5@ zE&5ltwB6|)7hJvGAczXruMjW0(8{#POl(dvVq_efzf8Usc%G)RF}3j}=*!DK!7w?iOoIPP&gT+H1wRv5IF1A{fu?o~tWW4GNvvM$rv?Q5jdqAlO{`4V^f z-+8Qe+B<(n{GXS<;q{6TMHuh#HvbyUGPJI+=I3oXToR?s^F>XDXcxiiJn^``pNg?$ z%`J^{i=2@vK4^K-r=96I{ygCpLMaq!|5Ao+0-C;-jB5A@6q(FDn7ZVNDk57o0Vye^ zE7Grq_q9_Tl7j^L9$Y50FrLm^qxb;9I4*YkEF_rZqshlRJdmo9`P^*pk2EiHX&5%0 z!APH{`68FO%IgwNM@_M@3SGD70*y8WvVC}Q{U<2ff^i*h2BmI84} zH?QJ*6r#%Vh#S$~Cw>|L+terSxOuCmVY<{qb}BYV=X9Q-=VP!*N2bRnC3c0yO8p92 z@N&tdyGg|UrEAa?Pi!ccR>2|TJL%Jp*FZ$-Ku`;v-&Ikv0>3Rr! zC4yg-O0}Sid?y)I^4;OQ?34Xzwk*fhq9$y{R?Cy4roZ#Oq~9A}rHDUJIC(he%S7+d z5V#o;Vpdbn%Dr##DYLc>(kPrZ_w~lc*gLc3kp9Oe%MW!a?!Aez9mjSr0u|!lwYF=O z)EI~wY+DEDO7wVYZo}kIdgtoBmA^y);`GSVP} z4RAyyRAca0whvONdqgGVG%)@nNkTR@Uj>ri8?_q=jwKEcnE#cTfK}STqKo>B>cy<) zl2cP8(-4l}1Rn#Fsp=?MJI-k|2TyQ}yorG}Fqw*F1?elU$J3@|uB>|Ii|vFmaAkn``T=mzcB#r&e}VFPb_PH^H{DcFeZa#8$>K!VR+Z*!C}`~wZwAf zVe}(OifKJsV3NUy8@KhnpK~knhnTl2)7p*`qG{{z#$(P1@I>f5_T%CljxSBasSu*O z_#xUN-O&Sjr`ejLDfn&b;l;$AQenerIF>Tb&Bz}z zg-N}Qe+qMUG2;q)L42`_DJH}&v;>pQaR(Y~!`=-U590OSrPXMoR4z8Uk!NXf2VCuA zI0vW-AnBf;&0S_*netH0yCU^N*WElJnITW)uPxVCg^jah@X|jsITMhW6O}y)CG1pl zvgUc8-PgzHk3A?D2?f7dp8yh<@0?kGHVLKiC}0DQHo&ZAug_GWBK|*w@f3-g7Q*jg zbdMYeT9E=h5<5<*G0F&t**ElYmbG08uU^EFv!Ni1WGcpMl#m=?Y^SfCrizSFv z?GKD=%H7#C?@zz+$Lsz2DV>(lNo!8aUc{^DbsouWxcTQR6#K&aaj(Y5bSK3!dVM0y zemw$e#QzPO`Wz>|;}mg_tIS&v4QCvDPzbx*dn~I8RW@U3BjzqGn=4UU8h=Vpq*0nx zjbaF4E#)SL2uGqH!xD!^9}y$=r`yD>Mx<99Q|%8-=4xbxn4^pb_ybY&;7Q?qdP4aC z;Y^_9DSzwKCs~Y>95WSh&g-?ZhdtEKaAAEiZe}k@#nQfx6JAaY zf9A;jy1p>uEDS7Nv)vxUV2FMlq149t?JE=Bmp2FV%Qm$Bszr$`KSohJ|IzkNFx@rZ z!;pBWv9)s^7Nx?ZDmysie&fFQ$Fk#j zQ_iK$^4AQB#o>q|le>mLxn3t>M(!N!LT05aDa+S&`AKn(rOv%EL!$Di_2k4*Ww z34>UF$98}`)GIV2b!2}b12%Q8%2I5jux_=d-A2#@MaW-%d(lPk<`6RpyEdgE8>Isz zVN!_W-$HNc;p5$!IT5K_qiXrvn~Y0=$_M8R0e%}n9X!=&$^vk0d5!O2@tD|$CFavwk?U; zdnAIY6FUk)_;uM+G#5J=BA04Kd9jybu)RE~xymN|VW~pNL2c?8{QFbwBkKH6oSAK{ z^V##!l#4-+)A@z~_hJV-K5G4a$Xr=w`ex}6i2-EO>&w_3`BceS=J&`|5nQeZokeGn zI$Tv9H(J6dZxkw7txj41@R_7U4!n=O8~apzzlt;yQzo}Y{xvQ%JUH|n1U6`dkZ221 zqE5XaS$`5|eGCq#J^TIvq!Jfy&b-xL6I_iUE3o;P@#a1F*5g zD6US18t?fI0jFaw#(G{No1lvN-QjO8vw{OWGknC2O-zat&|pRP@YIF3&0y6zgzaND z;-BrXbHMo5WYKTriL6HU)AzdEAQX3sMhq+|?6xRz|=^ zSk&PD@_IfN48ID9qlC;RDUalTBA~c0&7ajECSrr7i0mGuFT%|G$WfKyzg5-Mb zT*8Ejx*jbK@z^oz+A0IgxS7w(2h5s5L&n8>6Fijg9`JsP0sB9lB?SC^EZ$riQ?|4# zr7ZsV*S2O8)P6Me>*m4$G31oT4DfF2wUrnD(Z=z=zB5!jt2_u7fw9Vg2}>G|U|-Gd z8Q~%0$mH3y!HyINKb-1Fn4rn2;upPea@*`~MTFHI`;;jGOrSEw0ZV1MwPlXtGOy}x zO9jItT$4wIpyzKs21*Z=x~|LeMuI--0oaY(I3yvyfroU0tJ{E9A!D*%sWfGO6_8xB zc4k*a-Q)GTptOzr`}qr>SP~E6@4xIHTE%*;)r8=LobyyAV!!6%!LM64iJsIO!7#$- zolD{2f3q(dJI-wB4f^SQ5p%}<54}8uN|g>x>{{=V6Qgno#DOs{t;lM^?yEZgYDmS} zvQvugGvCdOB&b3$pR-Sqv#&ytm%OL;&HCs;S3HxcULL&F|B>^$!>GYB3b*e0Wof2n z^B72?;-250I4|IQv~CqFZ|Jn@R#r!E!S>#jnJ$xOsqMkF7emTTzvwS69$7-G*{q#w z`uJxqZZ&v7uYGE%K6GwfJmQA~ab^)RGgIMME%}aqpI(cc zCubI0(yd?kL(1$VTg9VAnyc>75ILDa+-s-Lw5=T{{?aGeB(_@4Pd4P|*aXUDy1-yJ zPRO47(!J^ucymU_O6b~E*7yd2JJ&9ouIDETF4@axo`O4nU9FOu?p)#Op$-4UiLf?b zZz3%TS}GveH`x2~wjEAO==28!w*Du;&)-ApeJLw#W}F4F^h}oGQ{lY>$zq9wYA1~7 zy-)_js4{_yCR~^P1S94s!4F>SgWyJ!>n-UC(}-k|h>bG7+sN7O4Owyzov@u_no5`A z;AA>5Y9*^Df3J9ymGZ=zg$ls7PYQ|D#QpOzQ;yxJt-GC4YR|7aI4 z3VXRLu0OoJ==YfP_{IE7Y+7LU38oX&{jB@l7dJG(c@Mb~ci=4d>#skI>*uYdb!>?^ zXrtQniPr^XSCin~oyZldggR6DFzN;1<>hyD^7p~AXHjWTu0(n#4BGU^@M7E8eKLW_ z-L_^iJyXz(@z4IQTB^0}rm~J}M~Wv$6dwXx+j9uZoRi`P79;~|(Awpz%NM+LuNJS% ze|;D6pKad0lN&fj%+!8$-TVTY_>=}prkWL*qWj$TqLLTBX;B$&@kVi=ekilsSR8n$BM2jE(PL2NCFT_$zB~LOp^%>QP{j zu*+&O2q2l-Wc+E1w1Up|E}GuB)1^TotavypDqPqP_Y1YtUnjjFUS71g zC!h6sx&T_RL}u`Z)2eU=PKXkYX&I0PNi`o$>!4ND3Zsa=e|`HhezW=T%1LgD(bbe4 zPP?DJ-Z~?2^1E(t-{O^2Cg-m6QV!bS0+7X3VsMtJK>CYV)U%^PN3;kk^%A(P=;B^3DrOG8KekwZD2g#*yO!E^($b?0I7-qCh zuXcRiGU-`(%j@|nI4y6QP+H{UJ}aR~oS0*hvHI9Y&dTX%RPe4K!{ zfMCw|io#{(Y2Rzo2EbBgclDQrS^5008luG1+6~D_Cu@SPHyJv2yXD%F)G~#xB3SRw zrnRh6DpW9Q9jphX8jrt!d+$GuU!c#}*T=9?zp}c8CkXq*I+hn>O|Cj8aJ@DU)a@;H0AKQ(k1$r zYU-b5)jtoapnEX;>4GR~VRSex&cuwW#e3B}`x(u{LMZ0Tg@j0h37*gWSxl}%(>Xl` zP7rl5;o4R;-~z@-M68C%xg0g`Pz0cYP3C7t4B)qkA_ocMD$SMU8ffVy_QFL0y;m5& z+<>}RTRK9|b%|U+P{HPQt}8G(!t)iTRJ!W4VNvJM*P?OP`X`jK;JeIpOJEYYUbIcw zN}WR*#FLp)?I0C`;XBk|(rQem433hrmJCC1ma!H^ZBJ67%BP;uUgnQmnhad7G+V6* z(hOXa>;p|IwU+JS$qfB?-fsOz^!W*{J&#PzL%JLGi;RT$9y}TxWN1uPE3h5yDuj=8NYgFAH z(KdAKQ}~GCLNjOwGDXuV024?{1J!_ru};dBl+?kx{YhqQBl8(<`IBSKdA_bns#^b=}KdHW8$sd^T_DiG{>Jyaw559>aT~NI3T=W z?zIhF)w|(FCfBXj8s{^BPhnrGgL=MFz1vrjD}!a3HtoQu3~GF@P+U85u{#>3GB0%t zmT@xp#d-;zOG2}`N;HA}~B zB%X4Vj#`n16u6I?boA*75NI7UM^r*wET7Nh$5yFw+m3{P-LMqs#X8$sCIlQD>mX)% zZL$ffjbQ!?Sb%2AlQ!knPAX63yGE;=J^_Nq+qZbsf@3vt%K`kqv?%v*LqE&nc%~XM7uZ*W;Mf8bhkA zrx`GEkFRc$;a;uio4Cpzx8<5Q_~0BPp?RoU@iy~VX;N@hcyN;;#@@HB588`-1D zjeuIlnvdV)hhBC&cqa7}vZEvy;UfM~P5paB@`k4IDWb!3JjIgSM8+NhQl;mfQ)#b$ z<@4N%f2ji}nW(Be5>hD=9e=Ie^D=J`0JuH&iw=A+OZ#Xv6l7Dkp1GXa~7yO`0KT>vC`Qvz>DBA zX@c{QC!qKfkE{@!iWH^WJ(zaI>6OZKrXVqrHVfdKO|puAr(P{6P8v*dvIEIacFheA znjzGUk!~R|$pm6dy_Y&j>*c6P+)a|yYwhTMq)Rz9?Q~f!NGEYo5hX_0noZMbf-|^V7>IV=`;Er1RgN2F_|erT`j%$gE9g)WbjF} z5_-%YTeNOR z1S1LQ8n;D@OrZ$k*EsY>|5bV+w$ty%yg7+cHPxv9S7M0@R8HfM<46u%{WRKN{8nKE`ut%}H>WwsbS&hWs} zpBKpfz2Fglb3Qj4AH)#-z^z&tigx{knn4GuSlOx_FIV99E2_V`c3|>6dM;>lk$?KM zS)p;5dj;}J8hlLQuxggftY6G?5$~rBr-Y4aRECpI#Ahx@f}=`IxZbB9ddoZ{A)ig7 z*+xDzoJ#MeDoS92Qcp9w{iWsH*S(D#$T*(Lqr5PBO@z<~=Rl#uJ)o>c~NpUP$$MM4eEw#r=xg+C7okW_^bjdL_88S4Ddt0ClkP771 z=u}^uPNT|nI8*P(a=a?vX9pQ`dUk&UDwxWGakGVv<{ZSH~r;&}|bKU{z z-a)l?HB?|v)ECZgiw>KT_z7YavVi_KEhIwzVoD2+(j5JuXga;MQz~p) zwY&UUUNUAtpAI08_;=_@6sE)e@$EIozI7P%H)G5`x6EpSEpH*vZ9 z%82*M?8o94s^Y4?rkWn5@o1`lnNOh7lCd>|mskvMq<8BZeX~wr@o0z~#`%VUgU;&n zmCV`%8tS}Br@L#z?ei$C$w5c!83lFk;4eo(;$?0?oNMQz*2hP@nd9zIS(sAS`cko0 zPsYGR)>ZW~#WESK0n}4^h*M=O?FxO=vtc72q_1eYa>IcY&z!6{toW`LmT^=qL_KUI zsFrNFOLlulo?vCv0vB`=P?!}>Ce1^3#+_qrljP^(HHa2hBSQ$?5A}HU+hl(C6P;t) z$$G2wS$l1pYZ)&wyrQWHBYq~9i(tJTOdL>uPHxy2%UEy>U5+z8n?uMshf&EM>NPrQX8N1y_Yu$rnzfQod$Pxi}}~%g9EHLM8G$Ad3Y{OO{oK3OqnF zJBMxhRe5y2z7}52(j=c7kxIdhgfRrC@oHmJgkUytRDxIl0~Z2KLgD!V7a^)lhOuqU zwxTQdU0RwBC*>8q_X)IS*mw}U@CnR8@8|WWc3KlKHGjHR=)mnbTIN;lz{5-g({gBF3nTMJTpdt7tq z&+$pLzzAEAWK``Vp6X37#1u{>GF-&Pn;QcL(1W-On$e4!f*X%?^L=q8xa! zh%Bq4;N96`xyQ8?$juSP7-!36WeY~Na&zVVDIApATdR;WsXE^tqb6Pysn&Gooz89p zUz#X;>P9+ON%AN*`EEMv@TaWa!vfN)U;&d*OgCC>UbQw zB}=FSzmFlUfZB=L{qf--A~FBkz7h40drl1jTr-=h&NrEDdb&uyD#EIp^WOik;Q3F< z1o{Ub29fG~UXg14bzSVOy5^+b^CgEI$!C<5FMr@1W~)q^4VPYYYdjWsk=2tWEos%d zoaLK=D%HQsAxs=uh(!z?QRSmkpffC(pIB(677m7qaI|@BjO62 z+@vtqSc2KI9C+>a$`Fzko5$p@@&nD=YBg+Xt-e;s?pmrgIoA*GgPp!ir%kv5n(-Z@0NX4Qg zcAtSRVS7xFJN-EP$o`%G{8`p~+%3#tA+z1qZFptpuNyO5TP>7Wzcq3kL3md~kef{q z=|dgPki}@xP7jBpO7(w_-_l1dj1`TV6rvd*_rd#{yYb(CbYe6BJYZwue#+^9W8^;Y zotb{@Aa2Gc&#hbsRous8RedIa8a_t|r=SnS)+T6^> zjA|_$R6iWrt#6Hh(`Q(7Lr%6oRKUdymfv?053)o>PwEt_w#Sx%F2s&pb%M7EtLT>c zyxI*l1obRx*r-Hv+N$V;I2%E4a=+JBf%gM%9ZZ5+v}5~$F&=ZL>a3dkgS%INLw^%6 zPk`!mQcBI2sLbDUfz}`pXfos!L#|j)6^}C;Vhi8(G#)~qc5LSPxTf;xBMyfJdeU0z zE=z!&ii9X5HnzxQ{-|L+ZrpkmD%q|Dj$L(17k-3hg49DijSE>|<4BdLp3_YrYEm@t z)6-iA?A8|HN4?^)K7zj+fd8yi|8YPM9a?u}6K721re)b>3NK%^enrj?0G_DntxqE( zBF4-ou|kq%(m6eIuM(3TLZS*db+%G^Sw@>0i3RlDW%coQQ)TfLjQ*@6C#=%@>Gu!I zRw|W&tE`^MC+ki!>lrL7!nBGtO{2<)40&F+MIlB6bXKMcB??lX=8G$^_1<3vwdiqs zUP-nTo$Vr`P?6ErMWV?v7CV?P7ezv2BS+KzcG#oVS*wB8oT1?4WMfquM%SIzD4#|7 z%xzgVC`X?T>i%RrmNq;0k}Iz%-!j;&5T*Y`T0%$W$M4&;Vv}QP^BIRr0Q$DR;Y<>QAsb*Ul=#j+_Sp#^!f84S=qy z0%bI;$f^NlVS_q*lbKnShH|w=5kjv!uYi0i8e?pD8B8D)%ldykB_ZU|>vsW#{|)1@ z4flTIE#Wpmm_qcb`fL}NUV~&;pc;K&eK%iQ>HY=dykopc01`VbFQPJ@cM}>rD27Cg zm;T#H{=>f;vBc4|vZLrNv%(DOR{M^_q1rHBDnvBG3%q_Z1OJ{F{`(^`4DdU_6iN&w zatuGwvZ5&-{^t1pV|M-#5`b_&{FZ&DOKcb;S0KS_v~v-I5;Fzn zn~$#uG1*leG;BZ~c8O}7Yw>fYV}k|AOp1J9aHK#H#_g}CfYjN}+Qc{VFP0k_V zp|RiBw*Fd6byglr--i7X$b8bjRNd?3N~!~>B^LTiC$WfS8Hah}=m-mJa^v!qgNU0g zb%JM0yPZlrps0y)md0W7NNk&N&G$86HTYx2xF%jnq_E#G$u-sBhIb>ve)_5T$kpq4 z^CJm)e|Ovwt~q(7mSsEt5j%&!ov(ebgXgHoFn9_z9Z4hF4H4~>=`fd5PgC@4 z)KH1qHC40!G%KP^E8UDIP+|w?(f2wc( z%K?8RV6lc-;LPJS{WEW79-Vk?=Wp0)ezhMMrp%Z~Q0Du-Qz*@v9~~28FPL@6-2yi$LM3JGB{#HS$CQ42d%yz1_(ZPO(0A z;N8X^2=h8wrB!dRNK#`h5$E@|TJr!8jLGHwK%-R66)q@gx!S))|AhXfzt{a)^p0Jt zfXR4AP;6r`OGzSSI$tttSaP%RY?0EqcS8Kpwj=9sG%sbX>GkF?ovM+~#jue#;PBPA zi=fvNShx%9sHvChj^%e#ZYmB%L8r|KeHzLW&$$ga_Y>qP?hxeq; z9lgA?X(``1#mpE=u8@JQtfy5XWC$sK0nBmagE&X=8&<{b@S z%4xcp33CEN*1qH>Rb9;6WfnYvyx(rgI0t#KDsFu#RssV-Md4^fi~tXZr8?cJ)-tsF zgo^gExr!SkWJ&(D?qj42$KqW;uf+I`=D>@y<}j~GghnvlfL#=WTX&=F#f9ws%poL% z;o#$tdwJc7aJaq*w>*P6d|Eu&z-C^#Oj3ks)>aswiTGTYW|}Kiz_l+eE)oUjz%l%n z!x;`mORuYuv6elj8PQix&6q8LsHp!A9J$asGX~?XYlGIVX#1$#IRTD$>BmvpUHFIpkAYw@X~M^C8DD>+X((^Oj-tAEPAav(=IoYesvYB_Hcxa@YGrkti zagR3df2n1bzE=IBHQUSngLj>euElg)D7~-H3?2qbFw%$4{Qp00wNVC( z*{Te~REP0fmRzUQso(^s*5JBb49>u0`cbFL`vJ($dqqQY%jx_OTs+X;7@=%-{^jc7 z!~GAPsoai|#O;NvttFu3%43O+XeWs+6_K`~wHCE}Nj$gfx&N$u+6_#;bZ0817vXn` zHLm)k@za$&E#MJK*^#GOtCXlVGsQ1gfXqJKtJYw?+7WHGt5V#)2V}2-TsCA2p-~~E zMhIDw9Ew`09>Bdi@)C)bsNnum@IPRc@RlM`797&fpUD8j9+RU%faL^3m({-{RGMo>IiQL%~rH=4B zu*O?6d;2ECIS@zH`$IxPY+bGkjy~=8bk1kG9y-_&O$UdEChkSxiw`!G8$6{yirSZ` zHOERexs-JU%;29($LfA~`jo^kZ#0@1X#vTDJ>qaHqSRO{zOZZaO*dKAU8b`ArU21C zi+j$pcawN0P-tlcq8^baP%A|{k$V^owLK4G9HZE1mPYkzwjU8-?<)83Pt2}CwH zInYH%|7^ahL910GnX8bEh=deRsL45!-O;{V=@-<8Lu5?IX4wiy+ONZ_gK9h_@yK#SJR>T)^77YfYbN5 zX{z_z_wPT9=rznW+)z&J@((A9-mH#3-E`#$U3tAZ_k~FFE_eoedYtr$>pKK{E}xHN z8ub7iGC7=bG}cOk#IH*T*Yf5J$GGp}^!lN8``OnMNWf1&juXdz5pvz1B+%DO^So~G z6nk`fu5mIs?0t^%7*w@vT1u-ua8vCxt!>Ht8BLWyHIj_Bfa}>X#_a03Q825_H&V2g zp6!0S4UZ+-#=`|vGD6M4b zzf#J?vvVl3b!*7j4ymk>O66R$4t!>AqNXOqrefFP64b^nG9Ks~)*g=*5{oQ|{DxcU z>*t%E%zd^^7%tGbZe1?EPmVRz7NQptBF<#i{bi}@(TRCau~bfVAo7#Zlc(bo^uVE( zCKu4QK9}3=EFClv+jynJ?WY(`Ak+;t!J$#L*$k9YT_bs|b8L_7=1aN!FtK0d10J;t zb~f``qX5yVS{^~m>Q2tJ=a)wYz^@-6=}xzwU_n@CP<^kRD5;!(;ii`OZW#*G<=4$O zb7C7tHhbv-1vI!5BnCR%7nrs!QdKC=uIpdou#P-{$bZI?SH!bY?#k)!IYj?RIsBfF zrfzj&yeFmQcEask>wIQmgj|>{pKk{|J)Ab`UIYC z2{?Z4=BaqTH2j61Cf|AwHtoprT(1&8Yd~Jm**z6cCl4STV21w(s+{S|4MBGOIP|Jn)n^pfEc(d!A#UO zNpa!@A7($OU*2aJh<|0LUuB%(bz+?hTU3swJIYxsWkA8qr3&Axb)VR;BZwV)gL7;_ zr`zASzx2Rk-f{Y)z^gBmdP8r*2%?cSJ!#KLoHgHya^%EyC-(__&(~8oH*ZVH?*7WS zuGXnIw>5gf?01?L~yX}YqeccicUZk zi)_HpIsy%MUEgWE)fMPO6nGV57!OqNPMxjB%eJkZ=h@adbezAA>-~d`?ZYDD#-hH#<40HW+uIjZxs!0nQMS-nXNvyDOmNTi;{&$UP{E zFM$H9!3K0805)7Iso%r9R3wxJ4_yrvl^tkYbPDcs%yet9HN$(QFr|X-o`OE)S@Q zUMKnlG@E3Y+ zG40}^=?Vu4W|YR?Q=`GFkVJ}6+_|*2ux1;NuV8|685@Md$XI=~HjPC_VBFqzi*{2E ziFolX4!={+skj@R#oza|xD7>cvX&_;w;V4Z6 zLCsYe*R3#DWL|aGdiChXAfE3tc&`p$#m~T<@Xh3h+sd4 zm7-J#>QUq!2AOjyK}9>UaNPoeXnHUHe6nyiC*B8zjUI@Yc$rm^RP0N`RF+mfJIv(_~gfqj3By%VOI-PU3jYeR8N5-G<;l1b~Ens4=(_}Aed*TlJ9Ji zz&%2p6#Jj#p9f2c7x+Q*utdR@$zA@zzU=e5kG>%TTfbuhy%Ff~nYQ$|b;G!SAFsSB z+n@M(5`(x+BDez7#Kx#9xx(~(b%;9zTBvCm zW#X$O>DCZ!Ydby*D`kGO+NJz6@p%A0oEBF|H{k$jiMI3?Vxk2u*VA1~&knoMgUq!D zG$BBIN~%gyD2@L{^qF4s&=ui>sdI^)3jyjX5aoD}%c@17v-T*}7!!MNym~PaPF>mq zx>r$0M;2>d>XX2G(4YGf5yk=X`)GWJ9w+#+c7VnyT576=QReMz+Gj3Ru$BX_8(%3y zKnD~eTevYG)6L3S-a?TX}9wiZe250 z@Y;_Cdt7jb&d=a2iwIhHHPqK*)$98{#L6RAjnaIHpoZd3EAyqQTegCVnad9g0|#MW zA9#;fYFl+qguB8>;2#L@Fnewq@#k}EyJu?s%u;q4%)92;#4RC^qB}sPl~SNn!p<@j z&UdkiB*)fen?I{Z<#O_!z&etPkoRdid-^pOPJ^9iBmeqNl;hbnC&i4Cp0)OKpSo<# zn>EC~gv)06?G{FtHjtaca{m`TbCR!wcS9^pqlF3+I)wuC#sC6FBP!3Mm+44^!@yCI zPJm4L2u!25E@w3~d*JxHBqcV?IaW!k5=DPxkq@EEYxe3Y(u*>ZYZtm#V|W`qXpr$; z_x>Iv&MHZ_P$@6=C%>Mh$HUqM#wiG1Bn&qBc0kMPUTAwBttX`M-R8&l7^Q4Ff(Y-G z$l%B8bk`hSb|@cp`+w@+`XVSu-U)5k!KzS_@W*=JD&_jq?;5?FLz84%m)xsw z=c06B0ymDAe1NoE0+DRO-X+_P zc-K<_6U6z*wh65~py$hK_vsVwXY=Wyv|w@Be>W{TdG07?m}jQA%%Ad%mtVI|EI9dG z6W)X6seHG&P?T!fW=mwp+);bs3(V^jb!s8W3@7^} z?Aw{C;H1MV%H_?8L0|VPicJBs+2PO-{66Iwq^06ad~t2{yBaIw4kSRB`{*$8QICzu zpE3Q}d>m$TMJp^+9D8T2)oy-3EDfdc6-|fhd9b)@P>&1e4*RC^CC%~cK^WZneoI^a z)z#pXEhqQ!HqVvt`sc=Ww7o|O9|(3Yk&~b*hCXBnrNRY$Y^l37&VhF|oHS$DtY*Ms zH9Zvn4r4ZA;`k!~at|O3D)$`J{3$e8nN-3CZBi`edOe`aU;H!j)Q+~DUz ze&JWKji&d5j-M2J!+~s)BX7r`%0-}QL;hSo1{4|frrgxY@eaB#)=avozAr)|jF5u| zi{zxfk86{%*;HM%s{G(;5mEj)q9WioLrB0o<-nlG&ojdnxiy;*QvwMF6?Wor=E^qR zEsckZv3)`Aw>zEsgamGnY8u6nZvz<$WXaqj-|cTqe*1J)+6ZZ8jgb&{wd0W;y&xz_ z+6*8gIv`}JoDWw_pyS|JX(T9?y9;>N-FFFgDSvmoGDroQ$QMqAg$VnHKOrn*&I=v0 zna5rk0#gy(+$zVqltI-t#N4DhzB8~Y#{s4Jv8PcL*ROX`H4Mt8}a`cM(r8sze!-(Ec1le7{~M}=SI zb?ey5zPuIhYE&O%rr#mcTMcG-<=|T^S`OcnC zq2tjw4z_#y6Sa|-{jg;V`$*&GyxJg`aktg`%aed(r_Y(1D`ezSE%Q%(E%ES~O)Z7n zr;97?+N0?ft33K^GHsYpK(R8X)TQX9^Urzb$M<36)HBi98}{_`1`X-f1PIjT{plkZ z+u?>tVP<7X^PNug`b#D=gXjD&Y=_13ZfuK=HG_*r0e*>nDbV+jeW4AoSj`6pdTQl9 zai7u!lU&6&GZMlurpZX{TFh+EbNQs}jXBBBH10tAv3 z6n;1V(OMmTK~O~>_^Jy|gjk*6-^-5Sv&TMy=w)&I#1xRi<`D8>jL;eBOI%d?|1|QY znv>x&;`t#EK&ymp{Q3T!Yk&2TJ&szLrqT*bKEk94g26^op@(^Iso9Ssm1kpqoYh@}4aFLuj61z{5CO^}XA&9u($rS=R{4DXORTc&eGO47_{_vfCZl z)So8aY9`U5g?CKL)Mj4m^qXtVUYZBwA~*|FQR$ zL2Z3)+jmRR0tHHeQrsO1lv3Q?io08J4KBsKxEE+C6btU|ZpDJTTPPYJ$g_Lt|C;x@ z?|I(u55r{kFqx3-ti9J-$N4*slV5sOS7=C4n;oiW@1R|%-$ zab?!nn(P$IC7CvuVtj2~txQ9Et`k;ZaZy?`kQ3N`t>fi?SsC4H_hwLXREp- ziw%0}KW(u4(Jbfnp^5+@?hwH1CtMR&@xfXp|L*ne{YDX($LWO$ z(e;@2MHZpZ+xNy8RZs2XjME=(y~&!|bl+rfxy$5aeVYdN7x-G5!M(xH)!=M(#Xw3?(e>9 zF+cBL5l??NY+ea3N3#-O^K9;)^4yAOA(UQIp^amat2{MDF2sgN&-%$YSe*_|Bb^OS zhoo}oLb4E9(Gb!;%vaepYsdDscBR?s)tIH*1l;0?ZT%Q87_>PE#eSL?4~4LeaYs_P zy_y(QA^JKy!qaLtZXDQa^UFr70K=xb<#B&{`V;oPPBD2P+Uo|I;NcQz*q5}!_xi*} zt=L+=tq&_wJ8zgd-ZHda_is-s1J0$6I*s1aNAF`6&+UEx108ej3@^d^Gkijnsg|tN1$fusVo>=#yDq2GajwA;=MT9CoqHV&}MV+ z#NE>Em;`bgpTj>L61ot)F~%%ts&TNPU3#3WWm2%cXapuDM56GbG;pbAKTXO{+FXT1 z<<&}wR*l)U+oO{7vz$j?TYIV1jwXF<+Gv9io)jZzR(1ZTc?ot9L{N|9`on5 z-m-CbEVCgDd4bAFEmm*hb%D7mz!$#p^ftBJvels+dIkwg+@9B5eRq%773ng{N7o(Q zhTbCJoec76bGkr1KkFIFna#|lgbq+V8)@S%+sR!F^Ip7ZBG^2xnRnS;eW#kb3+>3rA6v_gE#F0i%?p~qeDD37c1*AI4Hx$ny?Fz!9P1)D6_aK0 zMtO??IqThJkDSt)ZLgRIqQ}t++F7Na`vQ<%j#d9-6V%GxfK%J4OG@bE*uFa0Yp@BJ zVaWvo8m^BbOtkT2KPDXQWVOBL-;5D<)2_~Hjc3u?1+LS-m9cS@8T`uW@JZ7tmD-MV z_#XOfM7OF!wR0x>n@k2W0}xrw5hQdj8yKdPo-%j!#S(t%sZh{$%a1e}^F_aW=wJO+ z?=+=|x?r=E(9tXWPc%Uz|G%OM&dNDK;mEVN9ls<%omLbI#GxW1ApaFm7yaxr5vo`pe5K=7XB5i4 zTD`!wdixvK^fG8ryJ3?l-@fgu-Bzh>`aWIu8*a(B^ZMXrH zRp~VI1*=shsjkLC7ZHk9Y~R6k2(Rf<$7y4@BVLJ1-_X3~y=M&KbIt(4`kx?_BZJgo zB7#JxCf2!bwgN*wZa&cnZ$bVsLqG<*+s@H!1n7ZCSLiP1$ub9_MWDZ!;DvMW(JiNp z4i{R|E|lqed$NkzbWjFdkB$gmLU%#@hzj&;)mjf29$OfsPU7!vg)IG?#p zIp;XiB(PHNW1r9mesi-~oGvc;aPxOgD8~J(pBoPgR~VL#a12bLaL9lukP*Km0%lR+kH_q(i=N56Tkf# z6E}Yu6NZ5W4t<{=-COG{6W zx+rOzJIg{WrYbkm1gQ4frq1~X})`y;Pd*X&$ z4BqyibdzUX+1H7w<-0vo_u)A+t8Cem=b#r*q4iwnU8wJ5ixt(T!NuQ1_0p@03Y9)^l8-?RwumBxWPX19A~!yZD@uS6%-SGT(?3@aed+W99v);Q z@y;bKBzDKzlk;&{(`@2mcI(D}nIfkZ9?YC|UdR8obNdZ5y3EcTi($)S5;*Pg%f;~w zMgOFk=pVAlk>O>U2kdyV#Yt>a5_*yDNXYHgaIrU8^zmEAf^p27X_i;!qx+)xJ8r{P z`0}xctQH795Vjpi>ql;_ZULWhl9zAZ*e+FfQQB|l*Y7VBspZ$Ao^5V@a+=s-YG^Le_dsX6LD)TGrUibytEk_6F|9BnC$5eTo`m5I-o*CM0`zl zC765tYU^&WTXUi1FQ)Uqf^UR4djNt5v6D$EOuNuP(b#i-ZVKHuSH}jbw&efqgXtF8 zEaJ8I4S#0x*+r==xi_~;9sJyzhFM#Jl-F!u?zv#U5>KsJv)ynUfjO?vi^xF}DRS4f zU`)W=i~MGo{g8ITB*-ZAgIg9ms!0O@#EfWMH+{aLt&SygMziGY?5z;2h)I(9%&yzg zkR|0o6QrU^inr}hADfhH!#&KxjgfGV@?{`6qI~WX$MFwKSLLGwj`i=Uqr7GSS*mz@ z2{ppc3frD{mzy0fdAy(O@rUO}Oja0RrsrC%`sn+ky+E5pnm1Kw6YCeq&UmbjU8N;i zc*l84KE&mqqm=D)N~H}ue4qHGo*((@m=b2K4TB0Xy9=EaN1$uO5KSi#y7(o<3gxh2 zZ|wM;<{B_jiuLhle0Q{bxsC!{8$VHPm)le$_ixE#4h(sr(29@uKUeDq_p2@Q{ZF#f zH!w^>78fmyD~#1Mh*I$QdicWncVjC){u%~-R7NMwNm~fIg{K0;>+~a z{WBAlR+Uaic%_|E?p-Cf%mNoy(!$JS+kX1D?U2~Vm&OuX2W5Btmf5Z^E&c}erjiFJ zmPQUnk>wNgFh4i!($YX;&m+OhV*YOwJy=rA%wR`M`%TP>m@d+s3S^lY!xQwSwq z6=cLq9fyl}mn~BP#ffJKW+`Yek3ELqkC5s*jby{z7r)za;^MJB$08F*ht@SlX=J#7 zY}Dh;nYd-sZrdCng+HW`-6B6U)3!5?`Uv8zL0?3JZhKIJ8BR6;7u<;XMS zzJcMor(LTvC39IVd7g8KkK2dKq$yU9czZoqWE_Zw1s64?t0*7!p>G;8FQ?uBndwTly0z+K+bis6z%rfa~ zDY_x}K6kpiR5B}j_CHx;0Ix6cE;S(WY4>?*jDe8GX(oj&#yf!P$+?C3w9aM4aqL9z zpM>o~BY>J}U#RY+ZlR&EQl77{m_A6t&`+B?{#J*(A|j+R$V0rt@3p-zP5v_rqcc^4 zgKt44nTv{9&tV?$Y$2@7bDGGo{oo@)9_JA*2JhpFm7TjiW6g}?jLUYS?_kSW2y01s zrN8EIrKWk0!sELx)!7#;`96)4MV`VK&61lJL|n=#WlKh5SWOEwk(YbUjflm|2Sros z&TGF;r@bqlv5#qzhP&L_20NidxGvOMQ#w|Lf7I{g3l?l$$Yep}2JW15Xw-BC(t18E zkq8GE=@go1NASaMt|v<(_OE%~E#8Pr^$#?L57-vCFwj*zc08?hEz7n4Tt3W=-VBgr zOjO91uz8F>AXh)Meb|!NpH&ccEjC%@sp_ALzxQE&A3onWix#r^Gf}d0@eyPbC@yK} zXdd`-%n<77n;NL;l@k6pNAb4`+y(#w_Colrk6!RLMPCHNlR_!9g$CembyseZi57X< z2X^h+y33xYXbbfe)oLyHi)~3V#Qgy#FsL1ia0k|QRlN8uO5cLM?_nr1arlq%ZC)?* z^O~U2$c1`FYcz^#y9mB0LASoP=u~o^W$DgSioH5}*y5Q~)+eU);kApev03gpB2dP$ zo?ML0^o0kw0Qc1Du)gH=dB@q{6FNiIqyS%DxqIFj8fpJiOp>{&9^Jdm@uJh?FG8MR z16U@;!QxD~Ax?Z5cTL@0rKV0Hx};WJ?I)d8YS_#XnO)UVg79~8$F*O^>9?1}rkCn% zwuHX+UUC3%G&2N*3$I>eF8S}Ws5F_$Y<6Mc%TXa?#qF<-aDu#Hi3|s#WhHtuKQh6q z4ca^Y^*!ON*qG!SYNdKIep+oRV_z{-V(N#7b{8crFOuydHE*$Q{_wa5WoqcAT*NQ_oyBIYC4dmQt5mAJ_hZ zGy$tXKGE_~a00Llz#j@!x2tGl@>H84XF#XQ0Z=!}@SQ_yA$;zv$!`NSz1Aq+cJ8iu zus|nyh{J9At?F!Eo>@BV7*=(a8k6wtp(o?LE%~M-R_fYXjYD|b@117nvuUe<%Lw52P1P>upuE_Z!;WwU*s&=(xnyRF z`?4d3ti^iv?U?ZBX}2t?cvN0lFy9*FRF5JsZT^!pn>hAQZ2u)_s0gQp;sqp6pgXjf-r{A~CeX<4 zReR-o91aut!S(-1GP$(Z^R81KY#e*~Y~IUo*a{ooXWQ&?lHLM3r{h$MLPF9w9^=+S z?q+`$_wu)t)no<2qyD_2sr)ZjF-$Y})CdbNO@Ad~t+LT6<;4F3JbN>IB)QNAAdD&i zeMU{mF|^5499SiKoxyI|c9)A^y4Tk+EG~%4>4{Yf#_fDCq=J@t(jKXuLGOXnbZrd$yU$NDKW-KwEec!U; z@xs7bTPvoL;gLYh41nfMvER|1>uqWizpu!tX&SjC8eL2~0jpZT#l^Q)RIX5QeL~mtKO)HH)4{390L*+ZT8=e8BO#J)N zs6ndD?hC&Cu7-GR$>_hQygE9)EYzg>hitGHk5OI*;;M*@<$4mZ#|cW_Bun(52>nb|!2+S^*c^_< z@?93r6vJf3l$pU@N!~`n;>10iD$7+0E_9GWsL@LfUS8Hqhn%vLki&xUuW|~0u(qHg zcz!Nx@~xqf$jGVLP+3^&ux8?(-ClUlz;34+8^IpPvyotWnSKBmeokU*e}9O zGUl~1x=<@|3K4)a@P zs~;QKkn_N|p}$UsNc$qUu<*p*7GWw|=SCX*;nZeV;REu|#kRVF`Dq8>m(Ze=^!yRT zLj=5KNen2P`_hNL2IN0jSKad{5jr-ReZEmyIsNx(2ADos4=cRAk5PaBse% z>zO>^tPERu$6b6ILro!*`#nnc2XIOBR1y z0#so0U!N2PZPV}Xwm7?qp06^6ky7c1TYK?F=Y^_Tj_ry2<`L>T+D#Hn(nOgGjiNjy3`xTy2c)u35icHs!`vm!WnyzYlgSjEM=E@ zxfGgT%nrf}w?aS;j&uF~@<&x=9rg`Xhf7pkcJ9`+rjBFhV2$C}5fyd~x9+~zL{@$7o2fA_g; zm#|3{sjux%v8HCW9R%0Jr_}GBCPk`MRJChLmx z{>=1|pZmS=SII1FixF)jakFTt*U!k))*B_@Ufw?iDr>Dw4_9Eo>P%P2d1ZIsfGJRv zIq+0MIBEJ0=WF`Ch9Plfh21ozDIix4D4!y~717jR#OE703Jp^Ri9 zeYdIYYEVgCSW5Ti%{hts&@}78z!(&5r!(9`L2*lR85&R-nI(~OGHbD|J-Rf3ugx8mdWRF83NKs0995qJ$ra ztp)+Qo%W7N(oYMQEq3`0?W4Ot+Ppu#OtvrE5Q`=0KkQPUqdEjkyGGoVB>Ag=FcdqV zb_%x8yFa!lGN@-3(;`oK#IBN``yhY>Uk3IQ$nCZQT3!S4fjF=ZellE! ziA)d)6MB$rGW}W&#lxAs|4`kLT6R4HK13o2ViWLn&sbdd`=wLpd)DjY!eTIMK40hC zKJWivh&$pocxE`_b`H_E$OPjC)vv$;quXJtJ6M5lATIL-HecrBz9zXR>4@|bnXX7}?+1aL8HvMI;2!ZyW*Y!QJoQ)*>M|n6O2(pmN@n$SY)E(r zo!cE>epW{ZYkRpJn=!L5)V0VPrPl(Up`F)>lNED;5{Te7WLT@LXkbu&Wuzi1_LNa) ztvE~io9Pl$#Ohyh*tNw+cC_9805;YWRCqtIN}IP6lvuIW2(~h<6}I|jbHOF2zgTR# zsL|JyC$il1G7mz5{hZwT8rLXd=CRnIuXv|H=MComs#GbaXuig!_2l=mo`A{#Wbk?&{5}P$1JG_F38)&R#&T4jWW%Wd}Pq!-gSk{Z3*g} zWP0FeDYu>t?L_>pY;D@%MB|T2(tyw59^O|XEsf-_$i-0K7WyYg;>CR1R=W9W?uh^9 zvM>+dmS!drO+yG98M~!6sNKBAv*Vy3D6+WXMe}9o;fR&i_ZwW>=Iy}byV4c)iZvAKewgYa{MpLJ@d;LVI(EISV;vS^b&0x`eYr2L$pOh`U)m?^xKrY_ z#`!kydLEP#g^T=LiKvA1!)4vl`pn`GH#@xk zsvYQ*R&ddWXL2I^LD&VxMV`NZ8=qduFIMr)FSyJ#!F=)KJUT(d|^3zma5zC*NPkZvNyXYsNaofcWm=u4H!(6iVm#lK5h4 zkcPR)h7LS1i_D4uR;x^2Zr|OJ8q&i`3<{6}SSfU7K(zhWv6lZZd+A~F@%<- zA@yq~Q{3+{6~FC9K-pBSuY#Ui5CfA-P`H} zQ7#(04`37xJ~(-A*>OZh`7)wFutlcelo6HkeaAmsC;jlz-P9$vG&- z7mzipFCV>&3o&eEY`!9$9vtN09aNv_2|4WCF5xa%;odIkW&F0Bk2}XYT%~mR`l-qE zcPctpm6BZfoQtnu2&hk|-j=%7Mhy}%{^|Z)P+QOis?vD>lcLC~i*i);H+Sr1W}RFt zYw3vDSrg_#sQe+CW_&VJGUwn}TJ^N*8NU<)Qc4FJ-fN@$(-ZC$8CA)KJJF83cg)>j z_2AkBX0V5_L#}-31?*M_JOC%RZKYD_3p}^ywdpS;rh-K+G=>r`c1u zQVk*RMg?j?CZ4-1zE)$Ne4i!wuV2h z`*~YQa=Y66cSeN(rNt#W2=h53t@#Wkc9$54d)50|7MV-Q{~rfK~)7^X|J( z3=`;$igfeE(kxONluR5t5anbt?umQoL)szWY-jg*>(+7bd>lEjz;a>7bbi6qVKMp^ z$Kc5Ty|8U91^uE21l+2&{AJtV%6fiAcq@f)cR>g@L%WZ zBuG#nx(8;vqT6NW-&^Sw>3x1MaFLjFN0b}y_a_;awr$?bh1^SJpeA=;1CRG zwEc>-a@9I= z9oh>~^X^mI$<%``Q$dM9CU}gl+naTpyR@f8?wkByN*BeK5@#x0wy-~)1ud?0{63u@jhQpv{ z%$wwQ>~X@zlpo9Ftw116*=(qX}Lg$(hcC)b_uvjJoVK%HLP&;8j62A8N25 zdORVEP2=))d|}_ccE!X`Daxo>Xar&F>N(H2Br@xS2|Y(d1*boI+DrJQq$2Eg@Mcgw ziJiRT5=+K?m{n_#BDg376+!Rm!V}mRt!m4pCROo{4AWBGcieC%-bHk7e|4q;eeXd% zSD$O<)f z;X~@gI?M!?gfs4^%6y_q_TH2uocJEF;;wQ6+j|X72g8!XF0yEkt&*I~;4%N}?m5C$ zU$RTLOPtv}0YnDWat-?GV^jFR;Q6)`uVZpJT)}_Jw4pTU!?fA3##F3v?;b|mZ53y> z5a?_g>#NnAuhOZlKTp{)G7ic5z(ftc=9OP_tv!Vku^($!_Io?Nvy7)Ivc1MyE`Fz% z+)X>n82XyFNfDd->2=(?bystX08?Id)Vgdlu3Onlx_C^$X$kDiDlEvr9L6Fju$%{E ztyBuFpV`?WsLuYR{Ckz~z=XU9UtOj^h6;akWl}yVvkt0fz6EuP|}{ z$4Z}1USje`WeMisqVlAagkJq;&{Nex=erskJGKVOuO2RG7q(<(J!R~%4SMzqEsIC%(f_3s41~rIgWTWMmWeYm9dX?t~fkkh}oFqwN_OnLiMgKk1YvlYi)z8CU+Dn zdnH3)?ZkoFu36r8FU#MqH(@UXmN$5b^^e-J*?x4BEqUuUF_jnY1wzjbt$YePtwV5u z)cUPiLIA*yA7AvDAM+gMYj+moYcI23F?{%-a#e^Doe9!6gP#P9q%cr2_JUQBQzHPg zyPE|X$3w3o`EmQ?eIW~T7kB`uFg-UM^VN!-KM%Jl9k`QTF?|JQdH=gfYGjp@O(`Ms z#M8j*#e*)d$jHi)FzQP`;eXf|0A9qH2zvF9iy`v4ZDidj9Y!4%egA7$ic< z=%#HnmsKSjHm&S=L|S>DUcE!mXsbo;WHwoeCwaMq93(@Pa63RcvmVM01LP2Y()X~| z-#H9BdhN=%qwGS`-`?VUrgyno;;FX4V(ud!X}N-iN%98{i-ISnYfbqY;Si!2q}l!) ze{;wcLvi9ADz;Yzs~QUEGW4>#0*X7SU1l>Uy!4ztq47JTL1`B`eMd3l$K@Uotsrzs zaOI}L-BnMs#^r&ecv>;;LB&E~c;IDtg~rS}RsYs;EG^LlBJMc$E%sZhC1sYry5l(- zqW6zwp0sIbc3OL`wo?n?Vc{qQ(S=mZqb8=Cj*R-kI$Hjgo$f+!xE--UZ2$>pOac}) zjIvO;*#3NiDU@_FtnFexwsE4`JK&0zEwomTIi9kE=~`GH`*Kb_rFRBgXpr zlVGFzXo;cQ$keLTr(yrVzFW5#exjKG5V0Izx$WkEb{zo-pr;&YeaBi8e2z?kL`f%3 z6)vdGq@MDq@F3bY<^0XRtCkLo8&#YhQSN7dUbA?_A=z5Vs#a4L;=VVaeB(C%+-fB+ zUO^Cq-kB>g1u*AEm_m-3?Cx#r5S?Xe$__k=uGw>ZncXY9(YEt$O+&Z7Vf(DFR-OxC zNLJ^4G0_dtf}g#Vvbg$H)m+MK_a|?e?KzK8Qp2PCv{K%m@Qu~TnTJ~JCL{|A6tN+pGjh#3{&rNe1O}m$A;8($Rd@W3n*z44|TX-16=9j5<71Ck5CN9mmSo51#C$ve#?O~w@aQhF7O5dD{>Y^ zu*DaBgC3w7j9ugBrJ(!%H_s(4XO7eVxhu;2Y%a$OfcS z5ZB-5_j{zi3}C)z4je!d>9@k%2}X90tiTUK@BNB_6FD9&p$>oDrZ+xBuG zir;5@+=eEPSPW|}5Ng>OI+%%H;Hg*dfVHOBGk?ALx?MF;;6+Ou>z zrjWv-pZ2F~I~DNnR2;TzGkqLeLE}F&Hc|l_cbR$=y_PJwRuqzp<3slpPlIBQ4lh0W z!&+ZuY1!zrPP_X)g&jrtcNVY6ga7!&eLifl77 zt1^$MoOzBe{gppy29t>W>{Mkk+le^bQaGcm;>udIqRiqQI?C8?|VnfB3(e-}zFP(g@O^(8MKm=vN?$8yc zN4>|Yh-XZ46*ZlM@CDDOdUm^-SYrX}3Jz|C%i2OiKiDXxF) zc{r>UG>Ythu*IC($_6_0*lFo)HdrJAiI54yyN8YoY7hCJxB7a6QtMrr|A_kvdSJpj zzaNMBDZsufZFeVUyxpX#UfxGws_yH`Q0O7l7hreKwkRR@2H?~KmU2OX@;Ja$Kh&)x z;BXKM>Q5;*V9FW)nt!+&^J=#t;u2%|*<@YkBIj!`^o{T3C6QF@+gxf$sJQTr)C)qR zE8j{fM9Wq{Hn0u$jy6U0$ObIe*32G!HvYj}-wN2t0Jkw0%Pk#*%LQ4tb$qw?IbduF ziJ;kPgv$<8pGXeQN$G1CrE*~;If;pm%xQ^9R7bEif}dA@(MSMYFZO+sDs5EQ#Kt;yS7%z z#0Qth8;9%;996Y4J`|xjh5aMKmmj-9s$K5(@J;Fz;1Stx^0o&f> zp`+FI0-+`xB8N)1zR}JQbXH2~Z=t1ehY_chRaP_He+znX>_tvB zACs9FfjqN6r~Hu{y{%|*0_qD(R!~tfDK3$0U|?1zHh1Yeb0D+f#+%Zl&aydLQv{y| zS9Kke(ynAZE$i=iW)E5NBo~N(b&q0|c8*^TuXrLm@koB%h>}Dh(#zZ&nh6Iv^tTP| z9%qBIVFl5D{9;r)MlbnwZjv+(-@@w7QWtf}{7k?>ZzEzsd9qeS!q`q&6YT6i?UwX+ zIw^O*){!jXd0A8W!#y=#cgxykMSgko+7q1e|Fr}49d0H45c(}b5G$%4jA-aPpKhRW zu+_3UD<~c(i#K$5o1^|t2d9>Ine9X|gL3@wd_v7VcMQ(1@f8y*mBX5AhgH0j@zps0 zP}CJ{I+b5wYV6{E83u{HYh6|4*GiWxLi$9gZ}?&p<<>8}jKFev(yOU|md9cIn~-m7 zgHE@o9thd+DC_h{@a!oaJRwLR)=n|zX6#*MtUvhy6?j}}L4@qkN2K97I)e!~teZ+@ z`VE&IF|5XU^R@3qQc8YHQ?Bz#PWD-pdI`rde$nHTt5;#W(rYHymc4}inj?; zr@vYrzliTrC0-BdJh=*e~^cIvuh;rIpFMOGUuczCe~TADO6#aJ?a$L|bS9NcqsmR| zPxAa{pJfh_HNaY*XL3_hM$PHuol&U82lj9p57f*ENBaHEpftmp3S<>JF^iEfgvT`G z1|mWGj%Y6hxH5gLx{ONyr>r&SuYjS8SZWCI?@y=_HJa`r;omMTYlPU|LSz|zqCPrg0}S>NOx-t zOpf?#6xd&1@UO?OsQ*NSsn}F7|CRgtpN<BEi zbN%&g#0i&Sf1^)f(n_cQzj?9M7`j5BwKb-LYcdGyM9R9yk{hy=v|8`VwF-JB0GYjBvuOR&YcZ655 zM7CabJ!@2{z&l^XfonFYMYwwUJUplt&GyH%@h)G2vjN~2M7!)SI}03U&F6#E~^G4D&zlJKK*Z@ljJZoL<_noz;a}^>(+ik!dVsD!foYdeOFO| zU8G%Va^R#0{mMf`;Z%9*{GNZ3da+Q1g;3x^mIuVE*QR}~T35yU4+eK*W1}khg#&Fs zpd>jBjRYm7{&;k?t%!&S5X^MMzYP*%k@+kZ_b6qO{;%$@7tFS5@eJ)R0T z`GE{epp=Nb9^n%%r#lq)mFyH)p;IM5eQ@R_&p~-O{W)&7JiHNobeO?O3X>rhLZzmo zle4w8Z2~(%zh2$T;xXnm@Ay&j@=B7I;UO#AUj9V%y!k;dBa4s5s3E?As{#}aKUmGv zf6Q(!4@NXwM4ru393yTQ5|B)JAZE*H*V93Wij+5e#Y8tot@>)1uth%PAM4ov@tpFjo^!c`&T)yn~*7fNW?Yy5R=$)=!kk%Fkmi%j$`|<o#1duM!aCmaP6l#!*4%-#(OMrHr$Q5z>8g~&L&w&7 z9|G2I=TZ<9a<~=?y*Q+;1k!mya6zk;nr!}?4XG;VtX+b#cHGB;tI_QotQC4kiilh0 zJL4F=`PNdM%--P&qDSMijj$+T!1rl>_xeQixQ~TT{kNX9UZXU*@XR-7^Wk)26_teT zBcKm@Qd%KIdP0StnVG<4tT_)LWY`0>CUPaV^1~wKHk$%ol4MdodU2}wEvD12mPWEw zP);=tyo!jFQ9hmMJ)DO}%BiTVRGKROmzm&Sb3;=QR^4NzUuGQ8Qov#L&Yz(DnFNmsa@k(tRqxnHn6- z7SZNBo}dx>bejTZUmI~|RCz5b+u7`ADkT=?MXDu{{5~g`9QIw+DwU$zXy}+J#p=VE zyul?zy+B8(gC3_UAR18;h{iKF%3(d5yXQ``edKpki^OMPjYIrKwBL5&++CR-jJ;YNXRiP(D-lNqf0Jl$?$H!u!9KLLOZvJd*;eleZ zKrW6cMk&`Ez9QcJQ?WMp>^F3P$xI(k{Xj>7>h+coQU z;M<1khNZh;YdhMHkSGl!)G~{CTsWAHK>UuDe1*&2xV1+=E}mbhHI>#^$+y6Da0ybZ zW>+6-mVCy~&n}nD_o2HH=!oReB1s@*R1;WZmW#oz-x$tkc((`Mms0{<+#jN@H8RA9 zk%WiT_n%87h!Tu{nz7Dtma#x%A|u};=zjWC$m7XM*%fXRudJL<82Gw}%S9n9fLJ*JQs)Yxu@g~{fXNnDLh zf7;|dTef1aQb*$dO2$nsPCg*;gYwP)x{L=FcoNY z8?;@K8)Qd5*>O6U7b({!$P7IX`f$B99KvBDt>ltTmW`%mjBy_qm}V*22zoCOa!_r3 zzm4(KT86L~-#`&((Q|pqPffl?_>5JzDY}uE_?6jYOmyUQZG~Pp{!(V>rv>w&q={X2 z?b1Px{8R5CNV&^84l52C#CW9(X0s99J1umAk$AJXA3z+@G(TVsvj@j4zKnj0eE*wC9|hwuP2ioNy!NYjT2Rzb>$udw z5sj0Ib}tv$rcl_W`81!y3cgMaqh=-lMdtDvEGv5N?7!T6ZF+Vxv`)GGK+b*;MyJrKG{c zdeBnwH0a;6_H(WP0Ein}xks6n@USYNSmuc9}K`QEh-r=@l!1F(E$AepO4?xqcb=aewims;X4Ev5=T2 zo>@wX7VxhV1b+w@uUNC5Z%88+gnGGA*v|i|@%x6;>sXGd&e+hG?`*EOFZ`>jGrjJx zNlspD;S`Ml$c^3w?r9;zVlyy>&jS|S*T$^Iqom%8q%+RyznnYlaxq71MjVq-MXGJv70rIhN>X}TR!KR(Qg?@v3_$Ux)0?UNV# z8?UM}{0x@sA3G@a`3~@7=eg`ZYL@LS89+&eB=x`V5-Yj8J$hdf#@?J$|7AnakuS5> z6n^5i=m86+avmHzeYmx)!{;Ae&fSb#_0aW{9Um|kr8;PYrK(m z80G5NWCJSX_+eQPY#d9idgxX1_zt(pnAvCT(xt}Pf^MG*zIb6%}J1S5-xDs{LQT&;g zn5yqiNy0CL$EfC*^-+QLJ*x)GkH|L!k>9^lSkDt$Plo(P4#3a_^QA0)-`wssyFWp* z(64~^H!cxSDuqiCJxaf`N2y%FM*vrmhf;L3QUu~9j)>q34ka;CPE<;m4at?&q6Ih( zkBJv)u?nY@MsYKUk~86GOrsu@`@dn?mL-Uf?qSzTGQQ_PwXYBtyOtZq2w)Ot8TCOz z4X%$tO}=fqnuq8|oMkuJ1mh7xWLzS>+a}kz{=LAbM@9VIeD(q9Wg|_m(n?Xe;*q+9Pu?2q0?D@x{2Kb`V+4p(yaHlyWShinFf2+W*z|ZJA zlM7)D*H8Ntt^o_j9!bdhsr*G22?Yt*mwVHn5s6v#Hm7idwb=y zw9?42w0?BfS{Vcb=EJSS6O-*QuG5!zi6%=gNmUM6!iBLDkuOo-?>gQ6i7Lu@Zt2K$ z9n-`eOrs&7VIeGkqjIB_$3S-9YahB7A#1Qwq7|cb;0=N5vOp=c(>}zKrk}#0fe6 zi{vhCdbF|pzbFVL$*ZQ#B6#d(?if^Bq>cGzq4nrL7e+l@3?H16rWj(F52wMj&$9g| z$Jl+&F0{|*z1q^N;f6L%pXTe&fB@B5Upn@AeV7c-Qv_7<&rkk52sgb9ztx-&U(%6( zS}gu`CnM~WB;=kXBi-40ckA~AuJSFP3tsD6M{qRhf)t}Vz4CIpR*=euIUYYb=l%bHUC5vE8}oC`J?J{=i4Q`$@@+XO|lMrM3wKK z&yTfP+zUs?lO!4)DWnmevCZu&N~Rq~+<4vyCFt?EEUcxI?hsfM3qaL9P`wA)%&fiDJlK?f^Z|1jBUviE}X9A1J zGCr$O!1d(r)l2l0?H%B8zHJwoGth5o7S0OktsmQT&r9yAL19_mV2j$J$>#oUl{#0n z#mB-&wEf2`xZAyq>aAnQpg4SecU63s8EEv9-2yow989IF=jS#GKU!)XznUU*XyH@L z;A&Fft>rQt^05RjuQd9~SuM7t>kBzv7e?QDL;`N9c^~a5DX9JAM|(y?jTB#4V%DSW z+1~%5?k%IDYQMN)X+aSb1OX*PK)Smv8Wco2q#LARXafWVq-y|?kdC2aKn3X`h8kLG zsA1?~$me+fZ*S3Oz0dde3u{;>u6?ev^S9%CtoV+K#ok}cC-=C{r!Y-q9=excH<;fmJ$Sgm zx_@)@@X6gknfxblzTQXh3WLVCI?_T*mrbVS0l z$!hZ&Y=y0SzD^-97kJ^*h!GM0i}9OSk8iB(It8!x{QHi19L6iug!uFdy!n+nwt(i@ z4;s0BRqbnr?zD3Lm2L`jlkOKPrIs2?pQX$spRMPP3m2sH9o}+OQp)RlooSlP=TQy7 z3{QkEsUHd1>gw!zbzpJl>Mrca_zhmhZjJ8k3lD0>4ZnAbD#0LTxRHijzuqJcz9Fu$ zFaTC47O|?;+S-1j)$Z#4_>FDu`sIi|wZ*RFDQNH>SJdZZcF~!qBQW#*8Q95|xLU|z zWnJFKNssp8?cUXy#Z-oo3G<1XMkC{mDeYsRIfTgfvT{FmIZX=pOK@Hrn~Dggv+yYo z(m2Z2a&2GQ(@l5zA)?arg{sluN%dojb=M`FcWYL{ivFDzVOWdpx7#?HQ3LNFE)-HD zG2zqG>=b?j93uKuPw<|X69h%te}75^w&zZ`t7CZK#X21O?O5YYgq7t(UT2%J^)&0( z+n|Y-B&4m7IIob9rXQqDihinek-RD`D^e1wR_e3r@G1#khTWkgRdx8)oaD_zrhioq z?e%_MB4Z)vyOl!K&j|aGNIaO*l>TtcNo4iL7|SgNf0%Ked11pslc-7EY6_cr9W*Tm zEgM0}VX6X>J$PV3S5{j9LGamsJ+fLKw!}d31`AY5lj_GDuXiQHBs08^BP?cUEYPSq z8b|ol&{m=BFye0ED}L6+^-@f?XN!Mhr4mS*k~K zDh*K7=yehEZkkVo&(e0P?FV`YJtR_(-sSIs4*7kS_(#XG&@&BZ(Usn1c~g_)_@m!1 zgL1b4DlWrNmjj}W7$14lBiCY;OVPdf(Ge5X%IadH8{NNH{n-u+UAyM zG&<@sy->bi<+sx7rJ68pC)u3rh90+Foa_X?!&~Xi5IFph$N9jemC<%!-SemiF5`RV zMc8B!^1k=sOCvD-nj@akz!A`Rt-$KPS?yDb<~BDB%As0 z#>4)hY#Q>nx~Ja6U=sbX+il(%>^q4IH$r3F>4YWMqux)%a53gGOES2~OW~Q-t3ke< z3gbjBTnt0(q>=@B*l8yOpU}sDIRSMg{oqw>wl-vlkx7krx1`eI;zgr;5_-?d{|elCTw--s!;} zq296ZX?Ft$9DY>cQ3SO>a5X-D>#kT+F5z-GH7jE-z0kkbQW1np+wwwxF?E1mm=(oqY^pPvynM^DxyLfY@bn{22JqGH#MfFf zaRs8d-X~y7Oi(0~RA;vi&{}Op{(s*{V+tin+4=+tV1decB@4c)No-5Bp+IV^8 ztZ{PUklx2KjI&$qC66pmI(xI9w1JRrt{UE>6id(IYS5WH-K$gy>yPXY#g)>1EX$6f z4{N69j7Q^N8Jje_Q>RY3#tI|xTZLw`OFs}sRN9(u!IO8^>vz5phwb^yT^%^3Q?oL> z7dg7KY+t*(^H!igZpM9l)g+*%(4ZRSLc}brSbds`71>-mR)2rp4{-vEYEIoFRC0u-} zq;5!+(^0r^itCpCwB;z;=CO_tvwaD7#C0|Z4w~IT2rLKXx}EggHI$gd?r3Hfvo65YF1zEcbELnDZVM}qUEcy=iE0&Y z>y^q;6Te5>N#b+6{HI{ig=Qmt?bdEsUZce#rh1|`zAF_ACmT~x*HWLhrCo;)rmCkx zY?6Dg+3S{8U-rp~8iMB7H5RyuwL>2K>3!y!!*0sCK)T&b!!6 zIb`8D%Wd#-cf((Oe?g8IdqXE(;X?&Q|n)Ld{NPz7V`?mpQCI{?6lHo z0-Lm`2RiWM)0{N3bgyFS6NoevfikGdm1EuX-kr4ciBF}WZ7-TYJ(CvdRc}s0BWuaP z4c>Lj%)XKyhpM}3I?|(=gN{{3G|!V&I|;xIDk>^=jJ&=oU2Ev^hM9C@!4~6N`|`Ug zh@#5n3T+`^!0)O^ zQ>(*dvP91)^6uCta0ythyZG!hkvRsTy##C0WGZcQlM)IWi#^{jhi>2e>GuBIg^qq) z{Ij-|Sun?to)=|JP z+LhuFI5yKQkA4@gy(8mx<@wuR(#L3uU(yJFiT7*gemRGiIc8J23y(`N6dMibU2kW- zgFOyJek(DW z4ZhbwMF~_x?d9G*>{O)@ZT&00rGabQ!;{v-b$xcvn)E7L7aQ9+*T?b#w{j#oVN(O< zi@s49v3R3my{ZZjJPuJZLvaH3v0w0}+1sK_whHiaUF_L_Wx`vmp;C3lKAmO{7jJ1r zKIsiSF^~1X#VP8*E-LE45*me7L0&0#Ap9h#V-zILOZwlIFcw@$HhUuN{pP<-`-h#P z0}wj!kmGt_%Xa-EzsPQ19Dy&GBChYVynR8)kU{wVa%NEm$+RV|-X z-;1X1v$wghL=`2caSwJY13C&i3Ei+~gHZcBc3;}36T0^%fbWad6YZlu-|cqoIe#3-6rZjFHoytXNmlo~17mg3YsdJ?P61s#}d^ zStUse{P}GwU(|gwHpWvNcP}aCzi$#R>Fi}WiFm)HAR=gzX5BD74|cQMf8o!jhqO!G zoHq4Y2)^Q(NI?!CUF%KEpx}OzUu;%4_|p$~Q2|X0zz8|s$*W;==Bv4_ocZxKz{q}u9U6I{GA&g%`Q_8X&9yAcLW@1#=2U*4?iT9wiZ7)u z^TP!yypl^l{kpI04E3Spe*6!v+?2SD-B~Qh%uj!4iKobejn$PYC*DnHVUEo`+B1~h z9b`%6&)s18G&FT|;j=|&N*hcX*>j1y$z=95BV8DmK|yWnh(e%F zRB9c{Pt{Zh?;{kdBlGEzEJNR~=p}fUXBLg-#cmrV(~a%~uxBjif06jlpZJ%%5($Lp zIH5T>!rwmMLuiWjsN;F)FFl#427?wN4?QgQ#%CP+6>6ln~>cHj>c8u}+%1ArIjoxWrwJ!|z|R$RJtSC^-B+8Rwj96FrD)5uUTl*|K+4 zj!})c5;P)AB%ea-PIAR_rQJt!bJdXcmx588!JXQ0<^_*eM+1X@RZJh3*(lxT1|t`* zdqkG)7Pm~DyRD03u%I=p;{&t8tIV;g;^p8AxTEA^9)}CUzS((G$B^V`9YOOGr#lbc zK>rm`^4K646V)|Z4rsL1$;@NKVOd=$F>(W9JD<5<>$o3M`;u#`}Y+F@mff+;tR-ao;W_ zT0vq0uSE35lHu@#p3<`GWEiw!X)S7fek)Xe;v3izw(}}I_VjNaGb{}v{QmW9Tvcw} zmr0!dH?hHS*TTZ$IsntZ^1we3eY%~h*PNd4S(TsEceu!Sz<;Wp!Hzlg6hX6CCzC7z zsskC^(+SX*I4uyWjqX=*?Kz9POe3!Cxgl<$ft`aGWt*>k-|j{Sb{9HpC@)*iO*J3( zE@mrz(%(M%UcBA@-Em7MGV(9tL?5+a%N%6+LSLKI+2pET%U{&7Ie$uYJ%K7;52x6e z@b@x4FFvk(fwpTjl=c+N<0fb8E=1jS+NF22ShnQ(k+?{_kULybhOSna_#!<4m6e!> z3-EG0i&+B-%c(cqu1gLacYT3JF zBggf%hbdR3v^y`t;js=+lXSn#&M_aVF5pCG>GJurqseiOEJdR5)2%4C{11aOg66by? z%*>1sKt){NZp%Vj%n_Z%DlaOJ2dL2w$HnhFQtF2BB9Q(W8(hU3CA`pFN`)l$zVfr^ zX7>4mw>S4>*=wG1^P;Z=z{b|2k9}N~7L{`rL&Qs=E)eRX7#gd0p#`{Om&w;Cr?+2`z1klZ1ai_8N_hR>+bC7YU}jJ7ng!SuC(`Yp=el7WNo z6cn^WKVA297g;~$6Nqk%@;YSoO#YmiL`bt?bCmXgOhRlTM)2Ymrn!OTuGoWPKghU) zFt_#RwTBT)HG~f@)uqes=@Lcc_@^efAcCmrtNVn@a&d&g%np&n4?O(5gD5#QXXB@No%|qYg`Q$l1&yEYC zz=!8pw>2-^)W`}klVAjR&flezhTN^>`i&bFFV!rSDPM>fRSlWyCbCVJxxM$7w$7e9 zi|M>PQD)m=O@Y3o~ei=a97IH+tPn?{nk*f)|=%<7dY8#_4VPLKG z8d8JBUN2Ua^ht3CIaNuF?~hxEI%Kr8x*$}jV+4~=WU<#5h;Tf-5BbX4XUGu{fUszr z#IOWT8)^>XPYaQcG}=l}IR6+N-Z(9~W85Ohm}@;Sdn35K736y7oC3BrY7r#QUDLOk zA$}v?T^SJdj^Q^C1Xr@oS_H4ug7eF6&({*80-Mk?6qJ;3({J-+Rc}3H_(zY8yVWvA zsxx+^B0-8nB@VfFvZ^Wa`jp?Ay*86-KW32~3rf1T)U{%LbX=;T<27T5Fq*KNagB{* z*B){**&L4AI6+6A817y*Xc)ek*L!wg3&2(xeFn!bZIm8zw=d(j3Efx4GaIkunukph zxfAGOOco~Nusfz#oCUL^KH)f%VbFx`P#>TiL z)t5v&DSYn9*?BY3ozjrj-8vt5dJ&$=nwuSb*>Te@+H`B?h23li5pD1=|}QcNL;`&)TT8nWG9)~ zqjfiEIhd&LPfdX1xsnAZhRZfxtYeMdyfUolR!tVDt0BV2uN(ESJf!Bd99z@qLRqCl zS~5)=G?2F%o~#5vA&iBk4+#YukbeI@+c0HxF^lldBJj52>UN}}y2X`*D+6FBNHV9x7+;P2$lN z`f`<%tG1^|M8GM^x$eeX3U#qj#3RqqAw7N~SE(rTlX2XEKun20zVshHDf2~d!qzmo zBnUV2q%0=vx634FcP-4AWWdLnUN|LYml+!KD83ar(!{Uz?^5J)CtzlL z)g@A}Z6pibmP?#FRc^T}5dz!yM?H89VFHCFdEu974qi3#n^o9|=)bODvDmP_4}@!U zIfg4))ec$om><~>HFGW2-O^7scOKdLd*O9Dgm~asMGBE_4v;Gr;sTH;P(K$newI79 zD$VEg)7cHCW6N}QkD%t}@Yz|YdqKUZ3@~y~XwXiuLE#?e!i^vH?aN1nO=4?zojaNe*!vjuTOFCnx5pXR4(U&gUBtlS=?aN(9^Ucvxb#5J~ znyK3;gJ~y>?fzI8zu;nRGKDI`&lGJ_eNByj<;!%hrAFt4T|FJ8wudHXcY%3W6~W@Y zjPU)hE#(5fHVl%ox~U-AF~^i-k%bdm*P%0uH2HG&3|@#lzx48vaNxK(Hds#odVi2^ zRVru7nT+AiNzU+*>HjpT=%ZO625~@C$7YVb|FOhzk&#>@xaE@k_8LQ=QvTe-9M?A2 zjZbD18ynFNIL}by_8iHE`C@Zv&r~`m{T1-A`*|igx<5iRt6U!J+{Mao4{pA=*3Go2YH~ntEr;ficg=6Y0K* zY$NBsyz-K$bUvNkAC*8J&Gp%oO7TPN>O^cSV0wl=YZ~+5hjyq7CMH>>i93#jXlF$! zUsrx>Qq5K2*d8#zmFT>+Ca}>fI@6FED<1}))lnu$+CJw_88$bH0MynJn`mb*g6H@(p6#ixyA+ zDd9@&hQqY+oMi&_~ zafwO7b37`_%3Kh&J_>0y<=^nT=j>pU&(r;d{>ctWiMG{m0C3|w`qReF+njbs4in{l z;P+H(^6Tf+&p-GFIj)B6NL$=7?*ddOZ)m<>=SX>kEBU8Be7s``BaaO(jLNo40gD{O ze>Qol#+k#Kf!+%PhcM-HiIM$!V}P%6t>dwL`OxMdHl?V7Bfe|wV;X-B4H0QZ8tt35 z8|M`Tu;?69rsWlDZbJ?>^>ivydhMqCklkg^4DPBxrn|aUFq7K`HRx+-)oEAz_XUGh zT66|E7Ml$W%3%FrHSL%w*X0g=8o^!dPTKp}twtYLl`qHGtalF}_6q(&51pEF3MNNO zUV~;*Jm@S2Dzx{pafpZ>_X|}yS`$mvjdNK!g$q4(JDS;#aRlE~Yv%jWAj(0ds;N6U zLXJ;0o}C;N9$+nFnNBjiGWy(D4sW>6tU!>eISIB_F!cKN93*OD7EZK;Wf7GA!s+ju z!hSJ9F`9kt^G>ky^kD}0euF$XWn1njVPy3aJEV?!<7LHtT>ovIUx1N3R zh=fiC04P0LfW^bp6-Z%8FP2X>5P^>?1yr}PUgxym#~@7SCfmAuPj{@OG{*c@n)SG4 z&-U{SFOmqjg(0hCstRVfJ|^{Yo3cKvYVT6z|Ag@`hN&irDB!BGpD0LpMc1=-?DbXO zs+cWw=ITw-$nBOj@KQ`&Qp-{L=Ia?*(Fvhaw0MwB`q=+yUZ414BjcW0=G|E0l(r$E zuut-$$a3`T^9eOPLtt>`dsoH$YY!Kf!WU811_jf1v{i$gj$qQ;2;`+~)8OMl6x7pm zX8ElIdXJbGdc&-JYjGQWClD%C{nR3k!Z;u+m=$>l+ZNRt=g%M>13r7IvQIB&fu{$d z4&Wy0k+SJc6{!s71JW7mdtMs|UQ~)`tZR-+SCsu|gt12I+1uC(+inposM|ANr{N7g zzG0Y0QS&i$;Lx@ifP6Vqu8LxJu-CkQgpekn#v4o|s_FpOuTkX+!(L*POsWT#Hg92U zE7sHhBfEIrc4$Vgn6hFb$RHxICQ&tof0Pi&-M&pOELQED`zM(OrQ-5vO4!Fg{w-&U zUO$1W7L@{q2YgIRh_!}D$V6ka~3wHdrz z&~?50t(BAI{uY0-7FczbJ2p-j=i^5P)o8TpX5O2XLbao&&4o|=;K3#ohIC*_R8Y%x z&Ci}zYP`ZRugLhQ0cC(puoLM(%JdfgS>hjI-v!=bTJMn$WYwlh@YHDvtQQ4bA5ejDbc#u z&wd<;hHsyQHag>4Hg{-6$=KA`&X%~fKl3z#90<+kCHvUs7-ruRll`qW=D6h^b4@>W zKL?-uR9=duxay3`$gF(_ecH#Vql@pG=uun{Dz12+2%Rx*D563M!*grO&A0f#>HYFI z2w27+CexIE4)oFV@Qs znRQ?{t9L&oK;8Af;9}FX2d=&U?NJ2p{@eopX6WRt|FrHuaxN!@PqNTw4_cAZPEWp< zBA#7bmYk|07%!x?jx~-7%WxLKj#_xw5`W2eqw0i2c~zabpB6o`a^iJl(*S<}ijS4I z%wD71NHbZy;4OV^(d0gu_lZV{0$Y{0K>LWnP&SQ*F3gctcgpf}8yEZUlWij8IhIsx zy-92@O;#KsgS*)h3c8AlpFz+{iabNN(iKCqad#+xUYqbU?qKg!cJODM_HPQumRO9v z>YMQ^dYE=rb_-lR2}~j(nOBNHxJgo7dqN;aE6z00IQuV z$q`5bvb2}?L);q9g$_Rp<8&_Bls!^ev3=~Y+qzOcG^-~VHHxtxLBOh1J>#wJsHL60 zwsBDrOdv`2X{fO3yscMZA!13QGLAASJ$yov9OM6k)jRu(K!&P}fcxwv9TUE{)i!S* zIHvX*TKV**nb0Z@`jkTr_rXJgfTMVPl(9YWMs53ZGF~s*HFH@%al|x{@JK3E=`iL< zmC^2_cn#rb{nU*5PnW$^r?`3)RAz4Ph0*9~G;-XqH4|v`L|~z2-KxO1^Ayw`t3p~* zgo^CDpHT73EA`%h2Tf;L&WvlulgaiQE2p$1P1jg`wWUgd3#q7ev)JV(!{DB7Ij*cO z)!(h6RvK;2@y9!MfIrNk8-IjPz)r~t1?Sbv-i?(tVU$#}ikGPrU%Uzy08KHh-xUN> zWAifLmFb!Jk4NiL#(lEbFh42FYQJ3sSA$0P*4_r9S6Vin(9X=h99`%7s-~te5$VGb z&uiZPdB@Y}B1ug8)CP5L#o-E2OZ8Df6fmH)L&YqCXAM*7Jv#@S)=~Aj$cSl<1WsoA z5yxl}OObv$2fR||oZU@&knZ?ajM zn=S`s)P>5f-zV$$f$u)4bdkrpY$Lbpd~Q{)2z$T;dZl(6YeE@ptRYK65vmO1`codE zy?5b7{Eq1-D8hh$t0n<4$+pKSO;M|FZx-{Z&z)T&S4{g~j>t9VvNDh(nv)tBL4np! z%lacKY*BM!N4fDpjocK6hrPB6=Qqo=e;6)bZZ@j98qjCjnqL%e-~u;g#p!)qZxeDo zn3`won&08EUrU`mbacoy6m~yqKw&|nIUHkuABB22ZESK|;c~?n3ewEw`!AWw2_A%m zyi^kz((8OKP$+bX-B*^I$-8SEv(;(QeeKaqDUFrHo1{p!E6z<`q}w*%Q>Ig^`Lw=2 zMl(5Y7(NmB95a6i6AuOQllZN$P9kTrGE3$v3p2l^m2mr_!v=El8x~w{580bOV~Sva zo1k>+=cD#0ozomf6M@upgc0GV1o%wKq#x-i{8XX;m?=dX0E27f0b{nVDnu&h!laGx zI5ZV+FKKu*1EMqq17T|)t^b=+lJuOC(AguBexq7myD%1d0ax^aTr*CATJ!tD8JS_{ zhQZ%jn_Q6{2S}|8n#9|y7bJbp#7X*^`@qbBJBs+hR7Y;$%?>KZbUp?K20^c9!F1y9 z?v8e4h-$7-=5n;>JNvq2Ip z#FY7^%yQ<`raQ~~O0DBguGN*0-1Jo4-_Q6HqUUk3ouSvx8$AC_uX&od5Wf7 zthcJqRE%wZzufulQl zEos-EZ%?7c*I8Ca3KG&1=guR67GlB7?UCK5c%j7MmbE(RbdN6JaApRV-2!rrvx)b! zEUybQewQ+fyr}XYQNeU9n|m6`PD44hSI#{Oje4f;hkLFE%UhJq&H`-++cbNM#l+*)u-!8!8 z1|2SqoE)ApFcZ^%-$@!t4)pK)_12%K{G#Zmo{hWU7M>F)HTv*EFg~%3>AT-4VBm4joe0<^GlC9Em7<&N z|DU}1&nnq8I3Z@XOF3qle_Z|7%`V`+y{K41|HTZWTnX}My z;(spve_i|pU(@3;SC^ts$p3Zdk5%Pv6AW5D?wRQ3RFAYrjlMKrrGQt9@wTe}$3MR` z>iHcHe#$f(%kk&~{>zRSgaRQ3&93dt!JOt6Nq(k??M~h@Y>^7{#XQ%!L)BW>A`9`xqrFrLvslH=rCXgKi$NX>5GVDI% zltuVn;E(4(XJ6whW0F|z3D0g82$xntSR-ZxvcE6PxIgG-)RU@ff+%0h#3v+Bi3gHI zgGr~J&85yFTYJ46HN#K@z>f!7)_tAbeI8Xf<=_UgP5`596*YL~Q)JJXZ}ds?X3_e+ z|7_6zc8t-7Aff2km}A(P38)jTpsxSqFM1?ZSCTS`9DOlb5BbzY)Kt1mHkCN$`P~mX zxcBtfM_Ylzn2$mL9Qs8Y{n9Py;3S=Mc84;o!yWxLkj-srD5X@yBb-n zE>XixA-@WsEFE5=adsfwnIT$JS>FInlk$K$!5LDBMck&9>4fY@K3Bg=Evg`sHDUzq zGkj2xs1cHf%!$-4$pl^hZ?%6}#i>jVn1i5J6-N>ysS`=(x46)3n5@ZirvbZNVBH-n znTUk18IxTit3irUli$^7KF)QwgB$8kBXosaw5y-K&=Ss#n36q(^yNH+Ocd|!84F2C z&G~A4+4{}7qfF6OFU^wuvRLbikAHZrAc~87clEci7sc(BSx+JUQGOEU`Q9Lqih3+l zZn0PC(WIgHu_4P<=X`y6sL4*=R0)k4Ejhf}9~n?*D$rGNgzc*JIvihz0EML8qnv^9 z!fU71{s(_^Sx}ywg+;cvk$K75vVWE=Mk=GEy|UT%lW$hkf(^eB+P5UOf2TM707}`B zh)GFQUG_1T_^}TLtuOIlsuNO%okZfF7jzvqpO(v)7fX6}hNDM2Mj@=<-EHC=mG~3x zvMm7U+rO$vF6PpM_gpO4l~VL89BQ6gjmL~8^qBe*$_})zTajC+?a}s{@b-9_hQ<8S zt!v~rxB&DvPI7hTw$}G6dkAub#j*+CUr3y)80#P!O zPpSM*VsA?MO$K~s*QrmEIvYCKKDh5Vd7^th2@br{jxpRrg6^khILYOOsEammqybW;q~*cm-IZ^DNhsy4?M z`|QVm*_ZHb8Ubdw9+y57oBG7ne6*qiTF1zix;f93*+xt)`Sc_>N@iQnjIJN-$$a+{ zm~o+gPPNA31z92m*@z4)8O!?nSSmFF+B7$+kYOi$Z~PE+^7vliA6G zB@YGjpF$npA*CI=1fUY@cs0q;Q#dk!#@s~YH>Q-`C|3ZZyhL1QF~emITW6N0cVb4r zPhF&HsM)*ac`~%JnxNRt@bbfQD zIoDO7YW0wNEQ0A{47Yv4WmHS=KOkzW1_0pB>(fwfNm4WcUQO^2bH7)=3wFP~$`y&) zb0mf$tfmWye4&gceiHh2I;FP*Pn+7F-3FvRs?ymfk94l*%r1vmqF89>d15q?WOYJa zL?ST#f5UdXUzPZA3%(9j=MjTHD@z1*JR8FbSGz`fOdBUOaXwGId;RUF2guIxTHrnB zDSflQ_cZ^h@idL7QiVk)kWY5?Pd`QA5APnZ(Fe$d^inG_tPl4^mRBK6N>r8fDz=Fz zYU#{NOnUrepe$X&>R@sEs6E*id7z`ZpbHJf0QBgYO4uqPJ>CAyWX1A(vs<4G)_c`K zE8a3n)$fcO^Mb$Frk_&>_Suq&Gme{OQ8`g4-r%&1<;q^I6Q(M*cjDBIXx~gC(W%=` zrqCTV^k{XY$O-x&b)sa={$sI4d6s9L<&iqOc2*Lpm58lwpK4Q?ntMrkyc^rZ3IEBB z&HbY+b5#E}54+~)ATHg*_m}CUpHx;_0c2L~TQ+h?=z?y3X&e3NH<^9}RE2?mGm5d3!Lf`=jsbN}P)qVev-Fl-zgktGTSV zo1Dg^i67t5V%51lxo>o231nK8cdYg-cKfOSN%AQE@LTG&eP|G3hB^JFnVY?)R+e}4 zGeIrB*I3ts-Cviy?ctp7&~Q`Cy$8a%cG1EncL`D{k9>$IYb<=xhyTt4U#TIbNAJKEHHjj@6&hAO!htFW zMkFZ(!hKTH!#(oGU(&nTo5oP5o+1}URyQQq?cP!VQ^> z-edic9-_BfvD8XD6k_o8(gd$5D~$dASQ4>YFHs1DpRmmnEy;BWs?QA`7pcM#BF(ae zt3oi}d#l%eBCz~3l|AMRy661W=&J-GXGa-LC@=_vxb`-k5SW1)x4G$pVa>ao5epuw z4Y&oo-zz|Y9^?dln5!hWLTO6+>2#r=-l1TX&pOnzqQ#G|XEwVijr?)*t zyR!&?=7pGzBb-RP&}V;=E`n3H$9iM;?fSG=zm-K@iAPSBvR`R2j#QJEBSWga1ghmD zv!^zm;|qeeM^^$KZZE+WZ(1ehsF|wu719{e&cYef;T!dzo~Oz4=b1QkUoCC6!F!H` z5p}6u@9Nq&0<9l38}Vr`ap|*ul1aY}0CDC^%qDD8=>d8pJgMe*j$p~kYMeTl#%@)z z8R_asOarZGv{g;R=?3}4-q^YPfB-MZ;onR(q@M>FIA8+cq2vW-Hw9C+XBeLk++xQt2SSSXQ$LeKsH)Lew z>$~PG%rKL=mrXG9272~xAnh~O$atN38`6j41l?1VvfmFH(*Zqi+y<5}g=nSLEW2)A zVGtZh5PLVspRVEV#6=p;Z3KL5TG=iBN@KH;3aApsHc~wS_cX$@^00peSrS|+`mI4aw9op-Qcrg*M~ki7z)pmdymUh`F5-qMZd6dzfbDVb@Q{8 zQ$^Q2Tt2eu^Qt)8N!UHbQjTOuRn+x421SquW6VC?Pvy(k)vt@iXA zhPI>h2{k9IAyi|Qs3RoxBQ^Ru>6?|C_C#b1@l8i$N{B(0^&e}elX21TRs<$-=B(2Erm#g2DzDTsay`Iv ziWq7nRH~t9^SM!a)m+kg97v_TwVGc^(w7>8Lp|}^<}9rKLlUBI;}Qp2r{DgzkoDVO z{O?z`dNAwzRfJscLLYKsRvV$&X1NuPMjadRO7D1Q5rP+8S%-ixuUM|8J!G{nEaN)% zjXyG^t$kZ)yRTo!)8vp?YNcLAqkfp}cJypJs?&9_CCegO&-kx)@ErweU+thi;VKwR@!_&9_s?&jPbN{YS7TO*teE}^l zZ&3h^fkL3-yaunWb>HDbE#79PWd9P20b3&HSR+yMLDKFRA@NhwxuRvPus=#JAH0keh5vLr%7KLz(z54OA~OfhpDu;(}47|TMS z1eU?&`+9(RZy;-KHoD|CZQ@9Uc%x>p?s@Ah8)%xFG$*U{iq~_$($6>^gv^N3=smq^ z&W4cFi3;6_Wrt9QyRAePZ}7v(@W;iwjA;Z0=?lJOe|UMMQj(_Ar7D5kHME=M$)&Pd zvIZTT?z3vGC-o%NjQR6U{p{4B;(5OkjqhmSsLZljB^!WI!@SUN2etH6?S~3Ephy;e zT3GfcMPXC2o?~mC^x~wftM?5~B!n%;3jI+M=W3L{1){fOa%>jVkms^>Lq|k#RsQaP1xK=ZNXAU%y&p&_r3aw^f=PttFA&61Ng8B%$tM zXp=s~UfVWw1k#%|2&crJBxidB0;aRymQ8leHRZ0q@ER8oHe19=-spy!z*Z^o;FLG@Qel8>(L zIiuT3uS z03huDONP^@{@q<#vsv*NUhU{rugSB zxC6Q1d=yKQ1poW&fZ%GiuUcn}G)(7~vwb?-Q9eJ1T8y9jgi+eM%6H*EbNesUqN$r{ z&&fbcLK2N0MMle>j>mlc^yB=4W%J^YhQ;$}OSL(NXX=JG<6r(8p2{HrlC7L48AG9w zcTAMYLf6idCMR$acs#VGw5MEerlW@gqx&)%RpM=y=)>?5cw+uejO0d=)Tf6&Uv zOtMVmi2QIBodE(c>tDwhg-OJ4%IWru!2oJ}%x$WAZm)jsx)R5%Uk5NghTPd1eMef9 z?Kh+c1i7y+i2;{9Od>dYT?ac8ss zSh29Cwe~kxlPi+prhh3@q`0{w5x}A69FeJ8vF+;mi^%_x8yrWqIbNpZNAEXR@SG1a zrhUiZ93(pX=2B8=$y=Ec?LPVDG0!HH{%Gy=j@$pmv7&~I0tO>=0ct$w>Is48WFt=& zUYUW%vM0Egl3D+SAu2NAoQ!-+jqEx>8h9LRW$cRZ&(Mh%E!dl-M`@p#^}4i z>wYMMU5>|Kl%iR3@szaW`Av4znp1{36r=Nrn$1U<0PHp9uIiP)*O0|c$Km%f<#Mxn z>pdTM%?j7DTx|qQxu`Q3b=&J4irn&^I&AG{#a<0*ILqSa!3U3v+&gaz><$~phypc$ zO`Jmsjv&iTP==CX2MfmY*gG5BT|mj2=0ZPZ{+>a^j3ePm|l_bBqXZ zk(>n3Y$AukZ*`}csL_BA6uX`80LrEdPQo=)@^Ax!h5h4L%tVl`oN4s#vfx)EfpU3p z!S=YyRF1{gJ8tC-tEuaWpEW>8yfunPi=4H{V+*pCqmEv4tM?j!6N z)1dBn)9n7$@&h84FqQGyE2-ll@*~4QReC`=S7aB@6o@SL9>I23$CtjYjT41Cp&6w# zTF)oY3oAPU>n~|Gf+n@5CRBE;Y7lFyp(Q|@hUJigNk=ZXJVnjMc$7w@II9k(XKhDs_ElwKZwXvj>O(O+ML;|XGbnk$-m4~ zhd1tk?432Y5HlJyCP?zP)=+G~g@F#o5=Pyu^AAf?JnWuTV?3GejvfE-JJZGh5IET< z2Tq3&9Vk?9vAm>sJv4oGmfY4C#O+gJ%{GCa{V^ZI9$WLX3xKeB@c#4-emxPV=^s}T zeA2lBp@uO)kLH0z*PVbRvSZ(AyZG*Lp7zKLk-!UmtOPsA1hVN3?x_ra1G|yWcToD% zJU@Q?sIWXTW;YgVUg%9#nWpW(FCo2O|0?t~C_UW+e=w(Isd!@XhxMTn@`~fa9yO@l zHwwUipBVd^e_jrpz-}*n0LmuEq1%BtFLku9GE6y+f?UjG#A`tAG=DfHm7TZSdd!>I{rlaz-8Q zXiV|;rjEo;H*JWr(1bQbMf7!T0@c2wGiT*SvbT1^DY*^he5FU^aq&Xdt071{%i2!* zOG1nEN6r1cgm99@K2C)bjqk|aU3o?|lA@V|nnux6iUF>2`zi>s4-iyfJb~qSD7qT} z4wN3dl$A7QL6r%HBUht>C4-MXS#{q%{C*E-iu=<#8Uth19=Z9jGRV$-$!5u-*G@b89zvkvxMBFkbk{LUH!6_9`Lwi@G|bkTTY9Xy4=!?l-B2z_ z`qWP@^WBkqieHUYG0?!G2u=}R2<+R7(PRmau*xQ-JNYmOTqDe%_5;R z;3B{L174rcjv{q8uCYfni}p1=)Spa$NZ&l_G3~GL^&y@M=*k-v=;ZX^N_x@Y4_Fa@ zBsv59T)-O9b_28Wef7G3wtXt+S@TtU1`7R_FZc~z+kt(}lLdt4vkf`mj&s1)0<6A$&G zSUO|$G=9O9Uo3axSOfCYXk%5e)fFB`poIPXV9kT_+X9|rblaxw)gsX+S?r}^&Yc22 z2d9y&H}5Qt9P2Xy>6KZ zdCU#juACjiT@Tmw=a_{Wfs?qi(^M(@^PlL>ZP&24xsO#+JRY9^@AHk?u71!1o zlQ+%#vOueXRx-cy2S2GrH`}MBkw6wvRx7V>yhT5WIOz$-9q)L@_@*B=_aS}k`XQwrTc6eUv8%K6+2Qnjbb7mM1NpGH zsYsh1=xc{}L5WD}^<2sNG{&?LWQ&WtX~rU*dwNvKoDm!)p@~6F`RHbvDrIP*!xn=J-@U@E~M$=T!% zDhV8kKpbW+rFyd*#?dDRi0(Fa!4_Lw+n3eddUz-3Q8 zX}7jX?b!}4P3O5OL}=O1mpDSwOs(sOl2(a|{5)(M`Fy=N4$m%m@~m-AO4JUd#nm1S zmUQK{SqK;^Rse6b&Rp74 zdQ&81XJoNTVlvzkc`{m`Rx~ruoo8dd;dH|W!zG{3M=g%kzj=8S{;|BI1B`wl(zmV2 zXd&1Gq^2}JYV$ekUUa00Pi3vM7%`LK+<*9&1N65m1Y9we@#WGcXBYLS5_pLlqN0QO+z1@6u02Y2`;evdt6q z`;NF$Ok0qyT^)w`3Emv>Y1Jy;RE?{ac$PMxeFDgToaI-oFr{S|rYnpQ|@rtqhd6a3IuPj+1(B!)RDo6S!F2c!%p1C9;NtevP`|^h4TE?s~x+$ zN~KQNYN7{AE7ZdiZRr`rm8R35nV?ZInEq4DCflQK{nh;|)!*Sbvo>7xZ#npQcNx}@IHpKh-6 z!D}liE8pAL?+vG?@2R#+?Hh|-Lj5^nC5m4_bO!Ha&}HMS$9q>T zV52{4cr`x+C?nayBe5k6eN;Ko@a$P=iRFf|%Iyy4mCNa`J>5_9-%qda@^iEL60j1X zLa?U%a3(H^$_?V)#2&g?w&{msx6`&wyp&4Rdfq1X>J7oWT1V6KC7bOheH6f2UPQzn zsaI%FZxCH|yC^?)uJN6QwwE_f%DMwJ%~qSIEV@WIkBm3CRi_eMcM-6vzQa|5*ASMs zRFWr2Pa21Nrz_&E-7fS_RL2{i0ClUZ`-RSL+mokKrpmo^@Uzt#t-=lcKGGOvoAuv% zvx2GADq_~!N)me@0^}*S_Te8Z#MApAtR{+MN`Y?TL~F?w7>NND#S~_?$MG{f|U&3P@dB3 zJ=HOWlJ`a*B+~-NdWnj}biM(+#7`0C@vvDM4QJFSWb)>%unX_gTkk?pgV2U<5|EJ{ z>6>J8(!Cokc*_7zGFtT;euQ$-qU(1aD_)GbiVpo;GORAt%?5nrfKM0m})h@&YP0E7(5 z;-Oi!pf@zTrmukv>e6;Yik6tE8dL(kDcq+k6;qWH58_U%^Q;7>%Uvdi^v#RASevp5 z;@H5E0p(m+7o;XQbQ|NdQa&!*adhHRSf*auQ?GkLo(6ruiOWQ(c5ZaDcE>G|?zkrx zI`Pse>$fsaecxPGJ(yFlwXdul~j9bg;t@dVfyp z=NV@T1`0j@&HwRDVeX@NaBN*_&Z#uc)mEQs5fq&vi#WJQ4+w_)71PKVj69eEbY@U) zR;M4-6@6AGPamU%1;yL9*u9&6)`0+gQHG=3cmp}AdH98X-5r7{O9s0pI_G_T zQb7a|=-z5cWEjazN8dH_Y^y5^C@3z9#1nX@dCT0#C3iBcZfY1_s@8sF0jhCPUwrzd zTMK(Ne3sO$GlH5pRTk2#RvAw+Z|2vP4}RWjR;@N`44hD(8@tl)uHkuGS6#P~yiEpb6U04CdvBS}QPM-mAWhDn!DD$XxA@te9cVapojW1!UJ1 z$2Y&H>&h$-(Af<8Tw#PKpLj)Su{*;`K%Gf2F6*0`nyMenJI<}ca3a#fO5?lfzLdV6 zpg!15VC<&=!+N_tqYuC$gJA{}zYp`KN}5OOS0{Cx5EVs(CF*`OtNdj2#}Rk#C!eC} znmrmiQ-(U^oVXHtb`%sRlR0Td3W|G^=8I-+5W>+;c5f%!18@E{bqtEARF{MuV$VH>I^6=! zb#Hg_xO)5`d};WoYo0xkx9`wtz8&lN(Q^Z$zh3-Db4hvu23&7#5$}0G$F9Mi2*`TN z*U2s#W9|pra;{=b7xQY20q)^B15!QFi^H6~Y76zDC zo=dELu?bdckGn6UK0Dte_2q@9gBPN`y*-s8p=v&RS;j9pI&4*c+;?Sy0Ro;l6w<0Q z6hCJZQ}~x8F_WD87@PGcCEy=UH0|BaZ};@gRD;)QZ|eGe!olY9%sW%=G1sFtrGm(- z!>H6m<6P;(eX&Q;@Ajuqb5&EBtM&V?JF=e{OMIP03htP32;P`vHJ=xpbgj>E2=&60 z=XN?onSFwm@x5#DI)f^LtduE|MuD5h!mpU*0o-H02k;mk4<2e-!O=W!o9`@lH8T-! zZZ9K-?(Ma?zBC}_FK!=vul46`fBugjlyEz^24*Hk*4IzVHXv5>AwMittM#!ID3tvD zak`3IFD=wq@Xoc#t4nJS9~%yo|<%4qtkT6v8i!i6*xp2~u00``?7| z8SP%PNmR`t`AS6Zb+NUjmAP03#P?6N)6J0Jk0bH zoOPtXKA!~0!ayv0pkzD`l_Oeb;39c<8uMu#?cVQyT#iwt++gP%pp<`#DJU>2X^OET zzDd|@zEUlr;abE79k|3HX#(Vq z?gw4A4EUETzRSB&k(3b>{C0MBz=W$tzkL6%-u$DRNLb)@uDC41!@^{#!F{e}pHz*Z zs+^FN7&1IU-v>`I{Xfv=B#&-c{dNR6gR_u6ubV-6oFQ5=%YYafb3t0q{v=acQm zDqm;Gzd2b=!@?-6N+Xq3akNwK+2mC|IG&8~I|Wv7FNUerp89SwfCH?oUFTs2?YWP@`fr+qlDTjg7c z7)IZ&yalE7IM^Ie%JMqKk7=bEr$}9_TE4oilCvVrJzcrlj%jD290D95Md6+_Gm<7p za47w=v^?IftsE2I zsN*AxqxFviG)_0=m(Pi?#I`E0g$9d@M~-?cp67Pqn9tylz~$#+cgtpqpLXu1_4@6# z^OtFjC_gh!ENwe6mJP%=S(`&Rggl&qw7)#*wph;WqP8=heh+UZrc@xOqyL?9MT}rK zW9&(uT75}AR)rIk6+2s1>ZZ1lf0Qyh{6SPBa>Qt^D*tK|xRwC(W8`Rgbdh>m%Cvn> zA@Yw4C+EQ(F8faYpzb5p!Y*p_iJEX@rM&b$$07ew0>kAmM$Cut5DMzoUhn1ogp!1E zmcHg#de(I&NrBsN{#eZa?ilK(pY#Qt_Malj+U9MaJs+0;@%8sk1D1a}Kc8DH>qZu0 zVqhh?#?Ub<1%ux?j9o5Q^Y-Z>oR%*70_~C;d(+GoAA&aJ$LDpB?)Sjz!@$N; z6TN2_6V1}G)p<#`%7+$JQlOU~|1o=jj!=&DIDJ}~K_fM$SrFe!BZF99=622d>QyKk zC0EbK;4{}P)JxaS`7(!Ae2(4i_G2Zu=rN~-&!XxY&rA(oRgvh;SH&whH+6up20 zdug+I@k$$>FF;m}wKn}f_v?;t@N=3k8F!vW7j@7rt6F~Z=9{^8sVCzKWNPJIpAJ$_ zNL;T{~>VlS*4^N^drzeL8 z=s+&iN!N}ye%@lR>|&QXZiQ+=XVv5J#>*FxT~X<_@%97PtyDR)TR{}kh?%$Q4RMrF z6e5l{;LV$!or!4z#-+ZzHE!_jYwWJ%arH`};Db_JDs_+GL~hcp?28MB;iX8E_05xb zW}AT~p-bp*Yb{@W%31)t#AxzHubYmiNk}_ zbaCULf?bPjSwCZ*;$-)DAt-r&7{%%4jAWndKvBG^Z+9?x-+5wYkLCwLLxKqyO?_EP zl&k)3^+?!~6ZEQXyf!a?<7B!HWVFr7JY3row_^D<&wGT@GHGaA0fb z*47n8?9941L1hf_sk}*wMC^_4-2B)WJ%ZS{Rr^beick{{uH7t((u_czeo3>=Ztv1j zlyMX2I>PVkP4UeqxeCcMgL?B=Y#!Q7c+X?pZ+9G``_quy-3fJjviVZIF9hLJl71i92d}?< zru;H}s0u5;i;k0nBiA~p52F6Fzmp9A!Ubo%2Y?|P4~jhXvsQ}=GNNR)hQSQErrHj= zZycSSFyg=8AG8ILhv!%Mr_J-pD{GgiC0i5I^y;iyqN?0t4UI?k4m-7V8G8p)gkD}= z9mB(N&SG$IKAY$+K$%io9H2%DycDJ7af{#E`sd^KAIgU-3={xAI9sA1Czq_aernCC zMSOF8G`09Zem4Q~D7EYgOwuV8DO@%(Gh3p{c{0(?L-w@$TJIVHm+b({4@W*{P_EpJR}3i zjci(4r2qN0zai_tpD{+^krHF;MjL~DzwQ6+1$>;y6IoE@7s$W0^zOYOuMl@5(%9YtbcYOH+uk0>A_!)@51YeX60Pb2zkUv-Q&d0Ffl1CcDIkA z_IpDY-Q%63t+9vaSDm)@@?&E^tiT&HU#a9v40-XdRp>bF5Aaq% zU9r8s{@7gtq~twW2)^II8-+jud!b-zQ$#O3=tKH&#f)gd!ED*ad5QiJm)?<{X z+}EG86l#6l-Z9Kw*p_k@`n|0yGKx(L%`;_>mrb{BEGTyDn!C-sf ztP_+~MCtp2?q|+K6+5N+Kyt%vHkY7a`#|CXeLdHnZ!TsCp)izzXSTGX+Cm<$W1L`| zLB6JOQ`)U$o;?(BmTt4`(Xg|8y+&-8F+_%p zfrJ7{Xn>kGZ0$=ZO+d!D_r;8h+!t+~rQ?3b^K-{C@R^JwZ2G+aU2QVk z$P0I;-0Dqie? z^R)83c0dNAvt2na|LDNiZGgQkxUw4_-=>~ojgXI@`!{;_e{k3(9&0~XoiSC21f71Z>CWNNSUE`x# zN59S}utwJ+zn*QB3fnl@`G$x2fl{N+!^NZa^kuZii^eCAZ{ML=bX^CcdI23#T2;)c zI2h0~D%cH#EkY_%$z`TZMFpWTjt|Z`IHx3lhwSlLa|$nGp#N+}P9%kl^yO>~RxVP@ zd6U0;W%t1^MC)!v=S7bfm9?)v%i@HcCCcN>#7WdTD#4pltwK@;=j#PR2aA~?5Vgk@fY93{~kVRsrt&nq2*Bz?WJD$gH4M>p9W;9B|C7 zmDf_U^c}|W9GIvyQ**zLgD*ntbkdDfm~1O!Me-FNVqsu-HAyyAI)OI};}t>(iXXgc zR5VL_8eJ$;JHC}O6jt3K5UHQ9QI4XJC+)>~difDO1y3v3_5bymxsP>YQj|rBJMa`T zLl9&XD4%C(Wzj_zR#a5TmngeUf~+pX+&Byptg2fG`0baKXX93M32eAx%pc80x}H%N zI>D9%k2bF|xlW9ufDwU=+AkP#%>IxRj14f-65E3$vD0N;yVQLXw3((?4aRL_uvMh!yn>m;d+@r_FYL#4{U3Jw(#)+J;BL2mq6z zso_2ZAs!q{^c{)Q(7f9@Ie6^{@oTJaa9Xp=+kvg#=z1SresvVpSURuHEpY=4(i?=J zN_=cmbZR={^x5aOkhTw#a2mYuhK!6nG_js2=(++_Fk7coIH>7m?mN)hw3X|kgBHiI z_;jk_ihiXxG7%Z~SV`~o-tcj?yNQO}jP;mm;WjU`JYsvrHoGw4^>9g#WMXZ?QaSsR z|7Mo%HB{3MuDcwrV7qhgtx6I`(ay=ng2;3HmpSknNh9g}*oXTaqLrhZ8pN(AVkJ-a zavA{J@r|j5outh(Yd$(ZZJ2U8aC#{+K7E8Fn#44}q+BwQjW7!-@@bIR3-h@OEqK+6 z3f5c;y$$y*$;V{bw%ywb82JKumyD}@_3gT9CCYHQN@)qK5roiaI$v=)J=`Ku`a-MO zE=-JofLfvE_TG&6O0N^QD7&z*-QfipCcQ)kT!XiFNMJNq(Faq3-h4A3`+30_j)3=X zX8m3Z?=H#8dLVz+0swZ0q7n~@NzPdboZPMn!UP5dKE$%VgxdF^GJ}`RmYEald-Dn_ zPttP0jeFUj+}yjim-vLF)YH?`g-Fc-{bXuDbdij(ayqY11`%z043jTgB9HsmU%%2i zT3h`@pLYrw$nyowgTVlyP)JMr91~wssdIG<&k*`kcW)sbUB1rH&2@gJ&rc3_+48*$HPNL-bv13#3`2yJ%L=bG zH~nAehMuaaF}}5}HE(|9`#VXq3s;8^FBB-1hD_agvu_q(pRL>gKI7!nm~o+2c-akc zNpZ2vDD$>%_sVJY0Yd@H=FL7j=6L`92%6fcU29y>@rHfcMmPGE9N-!C_7$k#j6KIT z%Qn`YdR3ZhXl*%MdO_4;V_vRiC(}4Sm&#N-7AJ|Y_v&vPt107Ij|3sRGVhF^uV040GUR1`27%y-RIg61=~8q}hwHzC|l!_>xnO>DBZQ0ZU% z)t>-p8{%Kcc?)3Xwp2Ft+Rr}O2BOBK>P?hDYc0$gW= z5h)Y92)+tN*HFeB6E+JO$#R@uxhHDN6KBcwMPniX=~1(Dp`Vn~YFOSW*?}&>t;U;Y z2W$Y^O_s?cM_t!m0Ce$N&HR`i0E73Xi`@ATsWHH(}ahvJ*;>wly$v3kL3v|8S zu)2uPKV7OR++Vs+xu3`6bFHo{O47uSyhWQhxW4f1rfnFk!MiEG*7}3-&s9qV?2-bX z1s=dfcwd9{m44O++idk|s5Ur}&ejl!Kg|qO*fQ|#bRihcxwQ@Q`{ zI=ixQ&Oy+=UU=-Ua(!+E5BQmnJb&%ghi4ikT-aL2U8er#*bJ$qX!cUJz^Z=e^t)}2 zRB-G}*$X$e@?#SoogAj0sNIHp$O7j`86Iwb#l+ak^Abx&qo;n|=b24zahw{8l_}Fb zzPU9HrZ*k?vbdZ-hNM=kpGLU$Kpt|&8@*lp+53^KZq#xU7SO>2qOorxPOBAZToE7@HE z)J85@!R=dEl4YqyCrkx+=@aP9+~zwth8vHmSk^tM8?)I>g=1GJQ6Kw}Ww)`*x5MnP zZ*4&c+B4T+-DtCdTx>FuHj6q15{McAZB6H8R`AZYLE>ALw?cqg?7Kj_l-MUJ$tA?U zXEsUmV?$3mXwyUY75>%jyQrPlVNF}O8&o2Lo)=}+)F8Z`BuL-XbsJGpz=xk+U69F9BvTNikzaa>6 zop;FkykmT5x4)hoguZo^aMNlMhzHwuGEjxG{4CSgG0E;;U*EUnZOg!~o>yvi`@Xy9 z&JQ!6poA-J(BKkQ5i&zDy|;%m20uV*W5;OQQ9%B7aP<0J8?qsWN0S(tN7IDZiPh5Q zzrLK$2P0dn8zUW`*Ui7D(u>krSpu=GP`#EPNIVP|FOh8x=&1gl`{i|I0oNG-ro9wI zTFl^_S6tD`AH|M|d&{|8H@jI3o`2TrywoD7K(RD~H72l)l1>A~{l@GR!aT>3s- zZrAgU)EEhcEnIWdFFn6 z18K~DppM59Ts`H+sy!hi-tET1Y5^DKLU-&eB&tv~ zORGWW%*~aU>#u$B0X&{iN(trsO)iVBf4y-sdlD`@ohQ&HXOXMLCMCWz&CQzzp`@NX z>kOgb`Yt3O47CB!t+@$O9eF(-27kA(|3lN|@ zmh5V`qM>2{wyV0#;Jk&r;cEX$hvpT_swos$+8jt=5D}{%V3i`im8BQ0f-gsqx0ot0 zwToqz$6|IRY=o!Toccai_PFu3KAW$B+vY|egT*loX;kKE28?m3_H7L$BcKpz_WPcY zREmeIPdRlJF%0`aXzy4NW+^v5q_<(6;BC3%L=IDTSg_tCw#-$?<*NtE{x({#>dXhd zEb2PU&-gm*mWe5de2{7|#Jcx5r6v81v2tx26CSbmpHp>z8D3=5JxvF?q|ij>zcdmx z?<@30Cd1k%kP1vX-)M0j8Fh8&_8s|hf2=|gT<<(|>i)*C`6m(DgGt`Uw}wASb|&hr8lI_ND9s`S*xzMI{%&XON&veex^#H`=Ha;1vtGRZweX zi%w6-75_pU)k2Ne621{xbGnr!v2`^_dAK5qLnE#*N_bApcsu(emY0~(ABe_DTG;Ph zr#FMfY)_08Ni~^oTVlaB`|D3GCW}qzBw$AARk}w<*a#I4QDy@_h+Cl@W260ttUxWe zKbK3oh=;cb9$CtAenU4-N4%OlEiF~W;HyaF~I}f&B=F|Cj za&}|xNeI`W7X8`fKGPGFg83TnIm216+jAPnP6BAoftGmsF)l__pHvcy7Cc|kXr4q` z!;LyDZyhISYq&PqRUllyFU_u3iET0=JMatjOyZUWnX^8P($ zfA3d!)axe=cxAbs8ea6CNAMU9AK_QW2%SGxiVpu!$IsHoZjLixlXq;Mw)f7tawZ-= z&tY0|LQ_1r(zrsGg`9yh7;WPRh33&n(a4R0hW!j^mBowfcSzSj*T#=&lq+Nlr;DA5 zHEONG$IK>aXB%(Vd3Z?Lkc<^`gbU(W!@y#{T}6l~baM#||z@^UrlL10~7=GNBs?%N5GVWZPuWb##fyeddLrF%jc zNbShWy#hR3w$iS_VwRf&#aPz0H@=XZl##bK*CTkFw;#CxVGSWbCj`yOwqu54=1AYV zT$VY20`l_m7Y9?%9;g;O@kCOoB-GfNrs33pr1o4Hl;J&G_$>{yd)C5#Hv5ggq0*>( zx6%_O5p3isw0j1j6zl8{0YN~Gg7+}&{m{UJhxx)ln5baAxk(Ty3oz{z*n3*Fcrs79NlZQLD%kU7?Twc0g^Re5<546~~Ni901@e`;$+j!xAfO zq%=X=Uyy4K>fMtWHIp)6YKb|W@jQk@`HmwMf>=uz>E#@poWkyXGstL9${p~cHI`30 z*!KZTCl$7M+Kfvq;*PdmzIQ?^k#xc(LBtj47Hi%y5XbEFE|N+?{nCZaiQ8Bg)-WRZ@De(?}Azl0aw;^FOR z!fKWgNhwz-b~T1Mp;loWq^{Md$TE2!ME)LI{Q*=wZOvaRZ4w8%(*|?FBgQI9nG^MD zqSD@R3ZG1FSt4t-p zhX^N<+CVMp&WL2}iCY;IXKjdLY5{1VorzAS5+3&hMpqWoz-<#cxGOZ_PX|q*I@dDSK@BwkPO3%(J)J#X3n3JfHO8uMX*D`~M}*?BwDQUm$W`nCpC~I8>XuPXsS`L( z1|2IA5h&oQ_-$*tx7B-K1Gz~`3RH0(5{TW2aacGP>EH(QH%HWY;r*#+o04; z4{_T&yE-KSARb{tV!}JXxJ4G*$+?yBI}-iqDk{&!qD<>nhng~*6LOE>8;tKv)Jx6j zpB)XNfiUHv;ymW=`RBfh7BjE6k|JqT-tR&FCtKg-^e`+7Rk^>89_wz@^%2=$;0)A9 zPlAhv`0Xq6TU12db3gUO-^^vHDo_n4A^3(NdYj7g84WbSjX-at06%x$Xg)PfzF6I; z2G1to_R>Dl^29kWJmP_P0FgnpmETY7yzya!c}P0vXdXs1mHOeCajs%<-NP*EAn-*O z%hJO0qC~qzYmx(JbFu)O%;17}wHoTl1K@2NK%!+HN)0zg_I^Rhr>w)!F8WS7}?`q>&a*nAyun;!8^NS9qO@EF5xdagJ zmVg)N!3+Sg9c&+(n#l_Hv2=aYeg<~s=xCLoN<07BHMUeH(%WhoB-drniF&gHSSu786~oqhre~skt30I3kV|%^~al{&{z`l1ldMHWlL;cJ|Ze zXyVR>jerB4g6R?sP_K!bLY};*lkF}a8sL*!?OYs7l5@>ibj5r=?)_Fwd9;ImLk;-} zno(^S6NXpQA;0|y3cL{vwj!T+i*VV=+i3a2^!!`|^PLUg%bKi7-TF1)^ZEeEc3Ecx z19=1|+qy5ry%T4?1^GZ9IaW;IS^XXH3VZ z5_`*`w;KP0M*WvRv5NB+m7lOcz)8;^4-!8W1B3*|=7v^3(M+p6#T5fYUEHbznXq;( znWhGWGVM9$uIOpdq&#$KX+wJf`|$M8C12LJ^O57ePkW6WlQ81=Ob3sNB3L77gQ0J| z28-~$`cz0ad0a($`kNXjC^<)73NENq_O?l)%)Kr1Q|`R4Xj~NNfi*3 z)Fr*MFf-xl`6xAY3%R!7HSjosolZ~T-zs;WJM*Q@`JC`yeB3f{P^}}D{JkHg$p5=r zVCnq_X&dF@zP7hNW$y^xJ6P4ne4c(gJ9M;Yf9c`zpq_xS)du-a3xd(14DXEoGSs%H z>cgk%uvUO`M8L$zD-eZ`d(?8?NjO@gRoAEN#Qc&9=FQSDq*K>U1f**yMUt%K8~uQxt!Xh9DUx4?&7z$2R%pcB1 zm3KIJsW*grhyL{(U3E_!TTG)B{o25*2QeJ?fq1_1!ey^o33Ycs(rbXIyu@m{xf>qt z)CbWtgr}o#0jX3w0OQ1H`}(BVF=?GKJvSq}hLg&>Ddfnnn4?u)!mbwZ|7<`KgfA=e z^f?g`KfzfQX0$E;??`G$s!1`Dp+B6<;1c!x3+bzOr(Z0qPynyTqx`WYs>Z_>&7Q2q z<>hm2^T66a{mhWvJ6+tdBj|Q9mADWTvdi|%Zr0FY=z6%|Ap}+{-9T$6P;|%0_=Vm4|+KYpX%8ty7SQ&T6lWn5Y zt^>FC%Yb5<{)}%y#E>i^u)6f&UB&)e%NQJik6SPhhnE(f)m4{)5; z*LA$Ao-Wndwxz1iF)<}!h3FyB)!+@>7du~kgk;rcc#zQ{jGULpwHi}wVUl;#9aitu=o3%KhdA5!^Zrhx{MP!r`CyG)7s1a^C=m;+npP?5@*|he z#;%-|CU2ng0Ef8MX=6T4uOi*E)GNpF*~CQbX;gkRv6zNje0;{1ELYN0RZgOmnM;DN z2g{R$i<8gNJ#njFtM9F)^u{LFldD(J39Pf3utfUT_h%1D2oBt>`R(f|F|6m{4qd5v z*SUBgSR`h5Y8Men^S|F_x#2bZKiLqN1+x4iIhjsaL)C7V1ffnP6YC z4)g|X2?|MSl1Noj%V+b^KCwo{=R67R|JqI`!(2p2%(7^|#OT`^u$(2ndCtQ^8!cga zn_~LiS4dHn`v{5C<(g38o!p1Q!Qh}wWlqhs93bm`F2=rvP^R^kSTSqU0a%Sp zwd_};p`ONUcSw|z{&YJ6r%Wx5?S{J+OuWySC*f!E*>`P3aDbY_2j<>u*T|a6SKu~~ zFP-a=5qj6|8d>89^4zs)@ctWA0yd>&+~3@HV43MYgu88>W~YyOwi?Ls=ajz-JT2&9 z4>TkbSR|j6HZb!S_k*@6$xw8(m)5T*#pK_)o8Rd-f^Kg$Hn}XBt@yT~a28#3e0O3G zEiH6PO?Em70vLy_v-4vPF0LG6pBRQ<$=UcrMCdrAJX(3Y1(cFB>7B+;V#{v zT-Gz6jEZe|HiRBoAp_mDZsr{WL+I{9Um0P;bJBKzjO*;57TBFmlaq@j=$~)q$s;^E zIuW&lIhA(-(g^0SImKZ8vsAeHX<1WKZa}QWN9;RJGaOe0$qIySgnk92Tcid;LQh-- zKYYmH_$pdy1mz_IfLG~^A{jQv3-R{w`C%E|b%)kkifXnwcFuALs=1cRDvd;=n z@H_cW4%@Zj4d;?g$|@nI@oc%Y?LZQ#as`|-L>5{TnG@TE22GjJ%BvV$q2gy=4wx&U zo#09i40T)SPH-BOHj?0QmnZ|&Y){;&ozLCliKky@%ud5EE5{(qT;KW=Oacs9_G z6>pxrV#;VL-P1S68ru!XIdbfyal$srwQnCIE5u3(Nol0auinx$?i>D0JiDwIE&|(H zh2AidArG~gUFjt=wa6lW0|d6xtXfhV@hXUcm-VAz>In(U^+lCjdPhg;@%*byJ?Y_J zqgV3m)A0>eFV7TjHs|F(0V4B+)|2#t_mkhPDGV|tlJ^BmK2HR6^S=byiZJf;uFoeu zIyMrh-1{;ZJnL)pv*e`n5{mlU7W4ql1cM%Ty=3num6t_DZTn~K@`bJw?jQF1?;X2e zhVNEB2xcfTJIuP6)XEiqRcKLM`V~u&=y||5|Dmj%osGiiYp6G1Y^;OF(V%UUD!8;7 zX?8{9X@IaQ2lIJdpdVaU9x^_+7F$qN~H}T5efQd6mm? z=0x$*7eik+Hd&gTd9$N5qQFs_#_|+2SpX;(t368^s2$By2tHRI^(Q;lfs}$l3>2fg z1#u(kdU+M1jru`(ovh@niWQ%Y6Y1S8ISh@ zq`LL=1_nZoKGp8|Q3Zg&D}t&P9aZ6HF%1`*ERGT`_6Wm=XHto^;_;PxN-K}3hNT2R z5iC_zJ)bATzNQCX13JWaMecTZZ!@C1Rsur9f%62I^v0~Qshwil?3a4Tp7?Wc>VMx< z5Y1ufdaw7+KC<|<_brdSNL%@HJiU(hOuSJ;H{$&#+cSaw&yS;F4{{Z$DYDqiSt49# zYK~I6Lb^pH6cnQa0+XqUz9qQ?MVQc=qnCjH>B)CC%jC_bsf!%}w5c>mB z4m|(hU~CiGH1>;jh|zchRQ|g#FCOD-#x@7T?SFtBhei17?vm5+<7TCFx6ah71FJ(W zLaDyy=FEldC1Y1Eyn%uO zM=Loh%AjE1O9IdZdby;cVVsvXk?Lr)6`guR5;ef&HY;R~oy6O}6JoV69{*13dfiLM zNNZrBkRzRNO32P{!nWhM98+D#3`N&6&(^FGU!D!Id{SrBjz-KSwA~!kZa$TgJJa|% z(f@F}as+(9X`o6Lik(*poX2IhqKq|a-}jy6cqe;m6*}pm6MmJ*(EUl2I{Xkd>9) zYB9g9zFyzHpz2)hTI0a%UaRVlG^yP9I6$<+Xd1~Uu1i13#lC^ls_>*cV(L!VWAiUz zkE5uD7203%48YJ7MexbWVz%ZU?t~h<8Wr07+-oNNl`YF5kbxrhVv24M^IW#^?V;^d zLq)j_P4Mq?af~bl@s~J)juC1w;$8eEE9+Joh~Hc`+{uucR`Ltw4CuNcc0Dt!>voS1 zAQ^32+A7E|RBBd@f`vZdi<09*KJUgHTtu8Y@-Ul8FoSQ{w}RZMS#DQC5PULe$k@<$ ztx3Y%2Ywp_AmkeV0A}6ulWr$k_g06G=0%&D`PA6dYVgJH_7xqmZ11>^cUrv zdrs5mi9gSrPAc0!jMU@0T=*%vuDVgL&r_!gEI+~b+ekwC_=S7)+Qp&sjgnb7qFsN4zn%jh4QAx6gw z-~)ORurqg#dK`&kweg@#E!2Pd;=l_u&45Q7#C@sOnW}D|ef{pVN_!m$J^$WZMVe37 zVx>4JOuYJ|;qA-6^_i!x`*KtgA&_g3Mc(#LxeHt#CLeuIE-#um5as#XF4M_3oqnAo zV*5M7d+*2JE}Os@eA3$-Bv72+{(QG${`rw~ia>4x?iQr>ejop~Vg30CZXlJqH3@;y z90;8J-q1hq`17y(+K7ORqxiOp>%YA4x10a}f9ST>_KubPe>BMBu`fW`}*|? zl?{l(52!yc$U+%S>U;@3>ouR%9?;x47u0p8dqv(U zP9Z1TBdnt-{chM3&<8T3$a?wY@9eIRIe^d=sbiI%1kQ6VyF=;%<4 zUeyCz0VLE2n0|D=I_b-6j{3>W*g04~c3!8F>+NIzjW-jX|6ULa*x0~w!M<5In7|O0 z@&t4%S!k zom#`i68CKPGqxlL+Jl3$<=FG;B&F#ZFuD9_@7Y5oV@uz?7d}Nlw0>ct|%a_ASfv+AuZC4Akqy(gLH#*w<6L~ zLw5}@Al)D$-3%~v4I$lKzuWU1^Eu!1y#2rUzkttuGtAt3*4}&V71z3!WfnU5jvdz3 z>0{fTb)g)knBh03cBTV5R}K5mQ;=NjU}qjR=o;tsZeN;ufLtFeO+P2sedS#vc*j_$ zRKle*`td~MZN!gQ6Z!TaIuIrv^el7!uVPBE{A*xHtp{~1P@T#cCpYe}q0XAU#$j!0 z{jJOnSMYRZVrp@;DTCUyxbyQ$4w8`-ZKTDLui=-h3(iz9OYMV$)ydFaEzC>+vJ-jf zp6rKjIb5YlW<5P0T~e+XXPTvaQU{QG$pMMGd8q;b{sXj@jlhjU>@jHP=WLQPsmWKc zS16U5A)8Iqecf0bGkm6KTMjGV;j5Nfeu0TEik?My#;Y)Cg2&C+~KrtV#6 zl6F2%c;^nybNUFgsJL9W+v2Q%tbhnl)W!gwF-1ncVdSY2M3ZKv&1Z-YAUJSmsjZURYjw!g z4xv3INj7+wqCpqbKC#>R-cRq|u$P@Wz>@K?DR>5)i`jNv!D!%EJEu=8a|V3La8++N z1HeuciWoQAI|c@-h<}8N0jL(ut6bC_1%4v3f2a;)_vun86mJWpy=6GbY4VBkvW&hM z0L2A(l@Vk;D-`cSu4r zT6{Nt2k`c3J@OnmH?zzKaHt;W9Xyw({aCe-9i)i8$S9R>hxzgAoIj0em5CQI=h%|-sTab%k8r2}aHVu> z*3mR-QR9u5L?WVXgGH-$Pb=mHaZx{x+U$ANuAFBHRx3;F%^Gtnf8eajNY~YX=9cb?(#* zBJAXxZ9CFaxh$ws$}~j;x3{;OtY#y*l6*p3F~&S$`I+wAroBb3xUPI0wG;e{y8i1j zJpCFfq{@b?f!Y!cfCl`sd`^PNW4}%T#QA(VOHF&SH*iN?YTFVb zAT37=xc)qjTe2~6Bejxl)yXWeoYw|x)NasheBD?~D=8z$PaP6bd(h?FtC{|RWfVBC zBEauz4PHa1KT7+83?=R=kG*a&z+%P*r~$R4ONx)DTlWyJNH~)7D>lI~T1M_gvNLOx zYp?1-jZ_|xl7@<{aq8=j5d7I^Bp**ydfM1ZS=b5`lm4p0x0NOy$p)(MC65v+tzf#! zxZwi#VC9q3AT^hXArDTxV88J5QcdJ70DmH=c^a|&$?!&P0C_wpes!1(_- z_thouP`R)q&2l@TMb6Oj-P~jrRpgdq7MDTb%N&dbYXG_E1-obbBYCDb)L26O?9XQs zZ6qb69$hwaMmvnY@UQ})O7d!Y*sWUM;D&!2J=*Gkb)-EWMu78QFmzM=?Y)DTLJnUm z#W^IGNG*1qXwHR$gsQuG5>Um2rTvNXmWZYnHBAyuQ-#Kuo8?kPwOJBuwg^l*D1Q4I z({pAIQF>rkRdS4$|%1!qw3jSuQ{u}nBSVK#e*`{9*VYNhRm4K-BdF0Vx^5Pi`JYkqw% zFlgvkrLk2n$OSM^R|m%vl}&{uL;TniqqCtl4rf*$Zw8MtQc}ZqCZ{lcAlM8E z0emUTukM41_EoZ|Lx_zvY-nEeq9bN+qb6{kL2XYI6lmozCECv>&QOJC%sS z3~R19_ny{|9P@cSVo_dcn+<<@YWvDdEyxm4aZPQxyDH^d$p~dF5Nb4*l$zkioMo1OooH{-RN@r-A zs$Q+osu^3I_di$X_zC;{BuVF;Ix2ZKFyHh;ynmZV|j{f(@8#T{5@$sA~dVp^j1S_k{HO`LddD{Z0x)09F} z)kf{1q+sEzhDo!KGNcH;a?>-$`Dc-d(C8?8oxT!D_SAs{cUp5M=-$(s?sY4BsREKP z`3aU~rVisS)Z;yx%q5FSbcjL_$t1#?5|s-G@kd^xGCs7S(g?L^xNE9(I&iG6EfB1c zd%D%8xt4vYu}~6|$Oo*d!R&4|ioP+G=DTEVv1JU zjtO0$Y`ympSDUTU$&||qbXa*f-aip6;Z4XEog*ukCeXK-mvXWEHCCzZwoEJD zO{)Q%vlxvYRv{iPP*!X~n^M-sD5@{;*AQV(DoYPW#AQrk6%Hy17jYO%bXlt-FH>(e z%W~lXg2A})ZSEz>?LDOnX^k>kOP4Ke-!YfCLpG1UG!w|JFU3Jj^}fw);1$o@$*!yU z(o&vQ^K;4G(|P`|(!&Ht5A{mku-c|H+-nPNSw=}CHUl_6R;{X^pq$)o7gyI+MYLPa zs_(9UCz1HWv=KwP*}BFV$1*2HX&2&$LDJ6*KTeE{W2-5%cwh(T?b0WSg(2y=Kakv$ zG{trgp~Prl%(Bz`Jh1;*Ye-!v9L$74`-ZRr!WxT!xlhx1o!F1rKz-?Bs&-=%TB%I)9Cmsx70bz6OqJm zWb`=zXV|xeYlUOjON8h&fmk2Nnk#73i{$imCwVT64%wvSozC#HI?g{DuS0x#yey4l zzc%_J#9FxYULiZ*f$G*&iBUE-bTxkv-|6ej0ZvA87+b*GUcfy`E#lv_I$ZBbeRXQw zEOTl;%wD?OL+Y-nXs18>TXEW-%K2MzgTx23G<$SS+Wc$Z0r1v?i?a36alRA%mm+PD zU4o-QTjCWvAY*ZA=doE<77AU1oK7DM4zjiI10BWFM|#ZUbJ(#I){n}lg@qoAd45(J zd-vu==hCuxeQjAPiUTeGMt{|B2>w5&?AwrdS$r@*&;a#O*#u07AcvN%d|T{Hf`kK* z!_?GDXr7nlxP|gN3S}5CLr+=JiW^x5P+LilZCH4fnx@!u$N`62h(`Kp_WG_th%2c{ zyPPp4&uBt=o`1C3I#1Q<^jMZURgXsL5W+H3P7Tq(!r(S1RUndF+pC%Y==2c1*Z%@y z{G7)>4F#a_1L315BU!@wANbtnXbn3JL{Ih>QW;5!2j0*GIoL2p9+%VZEN>X*PI*55 zYE|+!s2bsGIwNl{MXy!s8Pplg_~<%2BL}D6xjWIhscbbnKfe!9&qUL99PdK=6)_w8 ze)=n4Y)#|X8};00p+IGgNO?Y(@_|E9Y%J$^@p1q^_@T~Wn%>*p{s6SSl}~f9p++}J zGtDA&t~_Q;3`S82QxR-O53Y~-Ll(Ct&zw4MhEXJ5TnSC;HbrGs0* z;az!ZEw6)RUw<;~4!>@8UB@XfBqS%F_EvM8;h1|QlY6(%L;lw5#X&xB${RuOt5b)e zD~gYHmxFA!uRrDxnXUWgkvyy{FoPC$Gx~c+RDyYc{JsKE*)H~aGZ4LS=j^2et-L(` zEyU6?;$a)F^3!~6=6n@2TjzH}Le@apVW@R9 zO%&{Nf)7!98qNytMKfus0+S$349YsAeY`QUAzHeXnGpw`f4ipu(K}h}Mq{J4n#rAg zRCKlUbyjehQ9H|o?W(T2bReoYCBkM_iaY;aa$ivfe@x%vc*unP#**dOmEpqGmx!Vh z13_vR|I+0mpi4*suEp8_1agTvuKFh!;Ac$v@2xC}1WKW4Z6e0zwP_tVOnUboRy(~h z3_^O0--RC?oKwNTDQ3u|_Dbv2LpD*Qg_6LF_$qE}nQRB9i9YI-IBlYs0)WRKc}#!Z zgBBpOAD1QrK@Mg#_K>8q_Vt5@W_(a9Yn%^uk5LW{1XWjjR{6VPkPeuM9LY}5cr_#Evm9I*bm?dCk&>DT-e zMS4C{Yim(DuLqRy*MyS9p7J4nYOv*^M;!Qq1pokqgqYI=Nvq0T>o6zmN@#=(QNYz} z!D4mgR_oXKwKR>5*a=ny19w9DqU1O73{3=69Lr2rP^xjfE*o<(ImjXfN`;VZBg~D2 zKMp$c{+TWOFX7uEfgap-%dor=$6*Yzi4(NaobPKHd(T~N`s8`B(8Q0D%;-6cD1aznpi7KWih3OR>>`dGx9yf}dJxqU@Z>m*y&$#F>eI~M?Q zzztpoWr!dG2y8V*$t>)?ncRdNdd!p0j}en$}IzE0u;h@UK5OVU}S^8Zdp&V-b^_bWW#@YDggzz zhQJr+OWyG3MP+!&=x`ZrwzT%X(%Y{ZWRQv0TQJHPVP&!6@arx*GMuEA=W}Yj3K_xK ziPyEG_F_Q~wWxN3sB%0cN(h2`0AYeoYX`rzpR#y69o$Mh zbrb6JP62!vLg~j;n*uJNX(P1evODfCK)z~cbN(Lj{@aDvW<|nKq3-ve@)yV}P%2!2 zVZJs0CCde9Ydjwy7Cf-{$^2GeTor}eM7D?}4YW;7Q{b|Me5{%Y#WC7j0#K@hZzbWw zrwSsu064|Z?3^gG6tIaC zwNj>wlFMQs&OK<^Z1)Uf?4j6`qQihhdlx`P;)Uhb?LE>YZ!dSX9*){Ws{ifV0!C1hC3cOi)C7 zv^14`m^lRcuN=iE8SVRF(qbcth_onRM?X|PX&To8T1RD0R=d+Yqg5|-P@%+XJjq1u zIkRK9sCPsKfH1O9#gX@Uc@`{g<(ulm=q*_@pHZ(rDdlhv_S4n%pN-EE1)eOaIf?@a@@n?$AX&qfFE85LOFea@g&WqTlg8PU`sS!F@_-O$LcvT8 z*lGrgl6@hippX&w8dRzE_Bm#q>)wZ**MDRVKSkc6;G@5_O9B2R8}Tg%Nq*xNMNyiu z2;Sk|jvOV@l)=lO%kks(Zh)vzJk;iCD?<>S#}&dt%{uVL3*exnyhn{XUkKbT1mKRoR|pz=wcG)~70vR=wf0(vJG7&3 zPgblw1;AgTFGs77Vl5;I=mZbUq7);g9YtLLn28R+n@YEqYjdcHkAIuTV>2)janMN% zW_oTsbT+Z-VyUFnOG~@0`~o@s_;O7tRhl$ief3h)|HE=EVBnlOd3?&?D0%(D>m?8m z&|x$1TI@=a?)Bs{h>vozcXW&@?*i&%2+aX9ljy;)Y+-=2LVc;@Xg2jh9}GlzQEHXb z{Q(X_0LZDX5=spD2?B?9VUHyr73+boDUrrF@u49{|6p+cYU~Q)eWcOIsf~LY?8uF< zys$e4h%LJ9=l3bq!a9kP$%8sy(?$v0YXSJd0O5#*w>xWV&i4J8-w0uH;uIutb`%~fTrpYhnX-SGlUSuIDkQX1^ z?X{u>7aRZzO`!fvJdTA2;+-;g5?o{>r)G6B>;fcXxQj-VSUmX=o=kcIf7keGe6R5p zGJIw$84#8we8s>4M{fJoF5H$tr+^5s16&DMqAx`tGcNPP585apCF=lGch0!6RV8B@ z$IDtxpm{HPzfJhpwDqhS`Z}NUdbN8c4m$cH*}iu(D>snHsL<3LPQFk#H3ED*TGf{n zD*UzPj~->LeEPsbVErjh$;L*PpwFC|leoLe=3@uz?3bfwmg2NnYeQpQ+3!+T+&r_R zlE)@{xahhS5Z?29o+y%bO*Vge7{9BIXUX2fF|ysxQL)VbD+BIb4y5LcpedM3|C^i8 z>Kiv9F(t}>;RXI2%|{Rrj4n8cY^uBLoAzi^kuS3(X~Yx4bw#}sMOCi?8N9h7{gFJ7 zoHh(g`(s+VUbF8Lz2_n?l3XMT$)7cJbYW<;X<7 z+S1b6nVtuyn$s-5(3bzwXvq8T-Uy~tf=^@0f2WAmc-gx+Zu>bf~ zob#`x#a1>DZesjSyZ-w#1<8AE-f9^Pj_~>3_U)hlyH43#u3KXU^XQLeqJIn_+z1ee z>B|nme;m>eIZx9HK3RfV`=9;0K*U(C3l+0w7?A&~bgx_Eli%GN;b`{wcY$QaT}xAq zmw$HqU#06^iGDlKWi4T@;ok)^DCI3j-}8j<)<4VZ?>B$aK)%&dchK`%=ideL|1Y=S z_rm{|mYdH$?QB;gX%1Ya&Ewau1P0eHiv>EA>|gx8quO(kNaMBJbHiHgep!#Ndyp^r z++VnRxEG#y9Bb|I%%c3czN%W0oGK3@_m=xQt@CX=R~-@xccxyu{Id3+#dxFWQCiVE z_B;rbTaRxBT_GNZ;)+Xjoe_eO4@o&cR@6e_`qxknN-~=cb z7x>w%)t^KBeUgBNu4$vnf`($h4Dlb{v4sn4&%&dosUO?_*D?K2AezY68#6=IO3l#E5&n<2M4?ldp1y$MN?J+= zF)O&?B>s<{++4^Jnl#zG12FPUu?nS>L}G`p4}mG|NrQF z_O}$tWqb_Y>gmWNCasq@DQG+#saLc+YPIILJ_cCClR>c|K+!WA1{OGy>aJw|NU`)| zQ&>sEUE0__tQKFOi@TuLRawnV#J`LE%j56@Ir?Pg!tqU@C9cHI8ix2#OVGT2p+bSl zLmCUAtjBFK*{ksl{QQpH$0%bvN1mp`7gzJViKEr73JRwtjiG!g17VyR3aw%VvU+WZ zx~DvUwB`71N%&wsnH^43opDRg(VDEVD>69Pi!8|slAO`rSnN4!EG|lyg6QoIO!yft zZ{CPt5oM>*O3$70+8?EHxeVzutmTrO2*aDc&HQ|{25TZq4WT~23>NY2d)uCaFm4a7 z_8R3+ZcMZR2#zQ&Q0w(^98BRa$m)tB7dqp#7~{ibiguQAtqpokEf1X|PlpZrGn~YM z=04q7?i9R_6bR_GA6wTQl?M}^L`Bhg_-(+;%!Wp@X!QB}f#7 zcSv}5q1Utz4Gk+2ZKf~MI;XpGhGmxtDj{W(*Xuy+bia#>FwWcfpPQ%swWfWXZ@MGK zw(x5c5@tmwqT(rH$Alh>WCkfJtVtT0zk9I1!+~D zFpQO=cJ?f)FV9E z*t7UYCGyu=r=XuLPmA^EB)TT@Qac>E@rtH&iK$eP%&c9p(Q1({+3f3f-(oK+K*Ebl z#%n+1uMj3M`S@icvR6U$p%WkF5ihTlQNm7{>8mJJz@H5;B|h1qSmD@aSaF@PV^@WF zK&ARY5KVC|$N92?3-fpOTYJ8|m)&9~E_1Ye^lbUj(Yn@Qku6;#V_S4179ZTMj`F4s z&kxq|jz-<4YxKiN8)v*Z79n7P3N0W;W)a49AsbuX%YEbu+T6Gb#G1ADDk6hsO1)pR zjE;}5-Up!;*ILnK0~?#i#Hiecn~q(yjNZXL|Ot82_Tt4VTZ$t?hmHre>n%j^1Y$%S*M=QQ2kqCLd~&G*3vH=g!W7 z%~4DFo!OM(&4$+xX2f^d{kaKykmnrsJ zm?Z57l2N>pH$K0`I5bbaT2#q;mm-EZC}@knSjM}6vmCN5N>k%sQSBQ@&1cZO+!$n z=@~WuaPaa=uVu!K{H%PAjtG2WJx#%!X4pY1_wrRHOrp^+RI>UwrTlj|}zK4L0jT{6Jcs}PY z3;S`ePF$L3O-HI?_@E+)aa%@CrNDbk^gzX2`B`V2DURf{a}wl9P~o+Fot%ieXPGH= zobDFEk{(Zu0s+0B$!e)8Jng0LeUp^$Aw&F7g$FP+syV7y$pTX5oaRiwq>(xZefhBqNnpen~V}-@oj%@Ir(-t2^57BU0Q)Cg%*r{DJ_Q~t@q5B^D zl0%DxXdA^&FJ+^$=&m9PjMUpeJ*yIc;-5IE(e|?T<-44Y?MTNru9+T7no^g@a8>Rp zKN{74i@v}%liyLM7G&`e|NiY)TTNv9$5}_GBd9aud1dOuonyuWG(-nv@9MazYK#lc zN_dzyf}U~IBepJfH=<4)iCVbXXxp`>tjg!6l0DunE^@TFXog7t-&^yxAh{jd@sPoM>Ba7!{I&v5E_L}{8L+2uXUv)(W8Dek-WQv1}D41-D;ri&nV%eAc4r_0Wo@Ijh; zc;;?6H{V}omYFV2E=e{?O0>=L{;TjGqfv0()iCyDxY)_gzCzZ0qh`L=J+_B7J#rE* zhlaT=`w<8A-^?|j1#h8XgfO!;#c1`JciB2O`GAJG7hLiEVcLx!V)!YLpI3sd_}e{I zVXcw>s^xBx-)0be(yD{>@1Ny=PYe#DHaf0szVYb4Rb|KBfZ$-D7h$iYiAmK95s_-+ zv(rB z_BbDI83lB_k{EdOR*^+1eYsHm4E#d7iX3Zgq%PgsY!e~ZFF#i0@a~J_M7?q2`gp1A z>PP|Y$?ihKd^}{V*a`vSa##vxwYD!^pEfVlzs$CR=!jloanD7);$jWd*TSyfuM$Pqc$1#?>-bc1gT9nIpV_uFH@nnuyk0rA+rF{pj66U zKBmX+9U3KaFNJqCv=_Z^-?WF7dKK$$9lM3`9)9B6bO8L2$RaA~${D&Cy2$J_)&39q zhc#n2ZWOsbVP6A_;F6KuF@6#ge|9`^Q^5>8{6;WYcRn5~!C)>Tn*CgAP0pg}0iDJD z?6gr=yzqlRP5>ro#c+cKIS0(!T#w!*X4!L%hdm@*@(#!)~*s)q%?ak;STSI}G zW*nAfSF#H8(3a7rd*62_xgUlcO-z%{)39Ik$2X~mSA9ypKs78nq0y+xEVCME=bMW` zad;61v}0GW=gU690Czs18xiZ$AZi~{+sk?%hg~GRmJMiQwe;u1$gpL9J(0x*9`3FK zIDQPN*VSW0p+Ng3w1D|WbLLXT4^kDU2iWi?+ZvtB?(ha1AB8CY|N<}|z zHmUG|R#1L5$9(aJ;l4f;2lK0OdMrk1mMV*3Zl0D5W4Y`j9{p*g6a5n+Gz=W@GfL|y ze!kkV&QzDii-$oyO2OskN_U_pgLzfhm24c!>T|nm^NaIq2)d9pc#IVlx&3(d29M!V zAI3sKT)KRYeBD-Wufnds-r;tW@bd}<%c~~g2mq2{KAJA>0rV~i2hR{OICSs7(QrCv zK)vLnXW~1E-8t<5$*=I4ErMo}D>ax%>7VWT1}AVTUrv5hW92l1mAp^-Yo8)9?>0T%)Sz-kvgFE*H9vjhYJ9b1 zlhhip9<0NI?lGw+%y{Zp&GblTNyIYyBI@=_hSwH2^w0MZ7Ypshh{LT6(+t-V=P@&u zsd+VsIwWzQRo7xulM6cY1yX7NE$$yF*y$;0l`r6pbVpHRgvvmQo~=mX^`Be ze{{s#%Km*FhTlQXz1tOF9c}za3{))UQ?duDB|x~4r)`rAl!sqBHDW>RL!KmQ@4SoK z%M4W0m&^yh^xTaum?=|c9sN4E2|9t_d|@4WD%G1L!1ORpH{Dz}N#MbJsN1NNXs*Dx zZzvhqlEh$EM!?_I2fRe0eYMAV9% z7t6zGT!>13{N!|6`TCfXp!Nf*P_ZYMoHl!#O0o!X4 zEFx+7z_=ePpZoW%vYDU{a5>DgCzWWy0vu*&t73Js~Lv=Nk)z`jB(#8nPfFa=h*v#&wcNnNAN~q;~ur6=uXQMG4Y~_H4CDMC| zRLx-9ud~oDSe4et)1v9sc5?WR-o&l4&`1k2UkuRPJy5(M@}sA3c-*)7?6yuZ{=*pj zh-BRRQsrQwJ$VY>Wj{{E!XdU4(L(*ef!%U@AkS1-gW3Mc*MP4z@8JMYNTX?}k5nyA~1 zPV=L;JLh3SCg#fF06H*72VYFSAM=7n_sH*dt$SVP75Kgd|8o?0$6C@#eb+&t1b@9oEn@u)YH!qg43rDqcO!$2vNS@<<~ zlZ}{{kz@1t>Ki~^rnLi7Z7XGZMiRXX?9kgVhn61_y@s@u0u%f_Bn;U5r5I6kii5cH znl%dQlL|8^cn9VxmCAy91m`x$VR*3%UBsm0CgrhWh7)~pM9e8_I9+`=wa4uPpIfRc zXDVK~u=B9JQmrEXY|@|kT;AO$Hd&*>9u3dHkYiXYXv5x*+c3qrEADa4JTwrpxeCv( z<;ye&uf*#Rm3%pnN?zufaBY;~vDvka%{DIp0$N3h#w6UwcX&3^H)ot?<$`HzEqr`x zCfKpU?HL&B!;*}MTDEd}DwNGulO_SlQ96-q2)JE7s%1)w;lnML@TDMC9>9DvJ z%e{i{%kXbQ%Ld&fcVMI-iw!Pya&+pZpJ^D0k`7y0In^eb{{pu+cqPRVSfAmiy>+~_|4d;zlLtXFbR1)=FjIP82nyP&scC#Z zMYNl*hLF%$7Zh&}4P5MO&xZ0?h{S=?SBBo#9FCgzVU;aY9Kn4BKmj0H;BPvz$-1)e zv*3V$kLF;Hy=JNEdVO=^d8uT6l~tu8J@`zZN0KRE*&U@R;!nTwWyZo`6SVbh9lgLi zB?F{pFXP_U`}RfA8G%)@D4Z)ncf^Y)R>_ znag=aAgs`7|@-!j@N}<(a7*EZ>d##HdqhZ)$lkEcT;tWkya1@piw*?oQQv_S*v< z+@$G+^~z7Z_%F=hfrB)s)5I*(QZUuyz-`gyFg$A6j)1V%u}i={n3@`&u42#S@KrJ;J#f=pcH64032#>Rn zvM@}X=mW`&D~!RLva{sBDAc$Yf;k=-Y_MA>DLmA=ONxytTyE-sce0y;@%65M&70Ul zw56MO-%q_Myq<+Gaw5H`xSri-ySh)W90(unUexSx><;(mn$Oz55pQLz9 z`9&(hnTm7N-@bRqlZHgXzCbY>DeohiyIxq9BExD~U`=5R%YlwNe4t@9O<4_D$~m@Q z>4Qy3vE{NA;lbF=>gB`GrLBxSC~MGK@;o<3ng{pAoctbUwXIPlOmTH)PTVeq=#p}A zOE9OE*REBS8nH!{b~bR0o|jiBafMl>XyOTiN+ud`6~=Be71|w;0u{GZg~H5-iyVqx zMl8eOzqDINyNQe}et8at`)W0~SDyta1yz!I`r}qxtp+(444{zNty(u)MhGxJr(+R8aP?yGYPoiJ&x#{+wu68CWr2 zBhMM)40HQPw&c0HzVl{SKtPmE_uV)R>09^j-zKl^CbCekA4!$L>a$|5I3UIESfw`Z z;dV?*8<;DBJ-@RQH^zo(75zW1E$jR_&JDdTMDUN%z@)yfehevWlLnzoy(2=;JqXOOn2S5OLBy zZXLl6Fir4cX8aI?HaP$QKxXpM_~ZC!PecNo-0no27smg~l%ygIeB z&Jo<>8=P)|vk0#R zH>C>C^irUBD#l{{C;DaE_Bxhrvin&j#K+o%zWW zGAC{-m9CvJm6;Ef0wi?OtMC|`jOp+Pji+MTuDkMT9}V8xHyqvJ+TPMFGVDsC%Nc^m zi%T6WXI52eP99sIc z=jCCC!*=_VnHA+;mNE6HmmvceUyJeB``;I{#OW|<*Tr_T6v`Y`kytK{@)&0g-=Lm+ z&_-V!nozMB4tRQ{!;aSV$5GIad7770)j4j|ahyw98eE4b9Fawx%~>O=eMKNhUA?Sz zp;0ZZGiKoTwXLZS=nC_5q$=LuN9TQX>noA&IBp&gW2ziifs@$vhIsHE9x+-1>5MyG zr!Km|!gii#Q=W~blC}5GgoT<7zKH4s$keNrirgdIK3^*_zIr~fJex+oGJYmMR-zB) zJvtSG4434qX{;5TmmYcZp03kXcy&!|fq^7y)TL|#Md^}G!x9j85pUDJ$kM!+SZHWV z{?O8;(pF_<*1$;+n&Gd*O_}BYF1bfWz%)C5D2AjBEixk~hGf5ye;$EAaAiV2tvYMi zomh=qpgntzAiY58G}dXuZ1;@if`8Mjo-=4_yid1XzJ(HYSKf%H$5_`1w8p1!I*ivB zp02prjHjh$RP+V1tu0mx#7OpC`fc#Im~6{c?=@XTVkK0LAw)w-E8C2EHOK)5v68bG zsJ8LD0aJF=c;s(ds8lj@TVc@RegdmUsJ;1&`fe=bfH$F#ncZQ;-KA`cZ+AT0r=(9QcIu*^ zTmuWAj7+yV%7+OP9BqD8f=K2frk^_HH4=)w*xiMNbqOC$KYZLhEJizCs58qTfa&#QGKhoEZ1AlHpkLTdp+-Ln;+mj`Cz^%Jh``&^9@K#8m6j3!rU7srFJa0{R7yL0z|nx(ym z&ph`N=B4^n3QX>-@XT^esL=II6J1nex>r^54(8-cIhn)!ZI8d&oLGD|fT)zlPk{$@ zIvn;fn<7@LjAyRfr6?onTOPedAJ?xbRIS8@8it}3j9iqrfIa|qQtc=Tvb@eI6vIMA zmD_D->7nCRPe4O;V79?cpmLB@Tcs)$t7hK=vN&&;zv0#i<_Oy;YK&(qpcY0I&}(D@ z)Mc#>-Hq}=rbmxH%UtE6@-tu8G*OLJqqD3cj)-Jo&}Gq0j;j z)D_VFpQxytNW*j#S31!g7D37WOc36h%VFs(E7mo=3$x}zLc4nbD0D>OF8+ENPM4PN zNcM)0aNR=av4#@m3XCg5*>A&oYov3yhQ%;kPyG>PH>=s^U05GR zH*4g^iyRrLz_+1V1z#PQ83$Hl{2jSPuo%36D3gq$%la4b6Tl~3>92`{4w;YSY6sgT zu9n~DL7d>a%=z9#xf!r0lW0|*ryTJtOM+A9=Abx zpTO2eRL@1cQkym(_ZZuty=7S&SydaK4#(w~n_#Qwo?n@zOOO_a)X|E4bc#%@!RIy? z$JH`Gkg9$zHO z(dlGI6=+w=pB~gSL$C3=FT}bZ9#8=3l1+ypT%s`jpNf6}34F!E^5Umf`p;GS0uo@( zjRj_-u?R)b&+QM}MZ#Do`&V!rR{4`QKfc&mE8^6GgM z3zZ_kl9@N-v)+2;bmX;as8(f=rR8SPAJjZmSZ%i$l|04Wp1X_3FT8OFMraD3_sTs=x3_s!+%&8j4ZCc<|uC%6LPxR07{jXbz0k?0(#1 zH+JGcho>+)svN_EE?T$l{b(SA9|1s!0zr4o1W&w}>U49ehD-_H)g2a^ASdE2P#U|R z{!IM6z@XSl8I}KGCH*Zl@*5Z?f_v~#vG;|lyOCeAcP2ja%`40lSXD*dmK`ZzrW>%@ z>K_O39()~Y<&(Z~FK1=QODEJ-*gw{+#PjONcM9s$8=%`a%2voKHn60Bxy*_MZ@99^ z#HuIr+!Z0d&37WEL%6fUiMAcqaLFReOL4E~iq&Kw+uWXS@{G|Gmj0eaDvuvwJLDmA zjlgYtfqV7jv9{++pbUd9CBggkZgBNxI1y{Z>H0MqrKgPmx@Pn1&In z9-H3!av&P~VIOW5yS=R50$C(s18 zh#~<`(XznpP|q8dl^R4t(Ut!EhB{rzQ#jZb`5+5m=+xYmDX}WW`?wg5k;$$y8m)1=o z8l|0Ht7+GJBCS)(;X|w0$G#*`i@|NF1Q0JJLF!m2QSB?%x3{fY^h+l5yIyH>Wn3KSoHdPX6SH*zR)U`2#TqorcM*G==W0S2upV z{}4~nxWQ)pi~i<;przW9f`&^ z_#xRb92AWOoWmxR<2#W#3(=(rI+zc1M4V6msW%|FsS5PU?uo(Q zjq?BaG2v>+yuwUL*m4tI^7t|8Tb}i0gj$=&S&WVIymop-=YRPU2`LUYU1BVIQSAUax6&*k^gZ>-v|6D=v&m_ zc=5IQ9}@WE*7PwDHDC`7_Wkc+|8Prhk}Xvge=gvcw<+MdVs)0S?8GZ~#l5m%kJbmh`5z?` za0T+Qv{<|Vtoyr{_`huA|{ibJ-JnfiAq_U#Am{36-is<8$CkF@U$YiixPwW6qq z8w3QTs1#|^K{}{N2LNH&;v-X0RjXPn)Hse1PJ9W_Bp!I zb3VU&pZgEcthKVTyJ?wKHy)~B-pPOh(~*I;v@>DG*S za7!}3o`7w3Jn zu^g(M@ytVU;}m90#h=U)9^x=`dcsbXXOqRaO+J1*3TPX)yyZfZ3(@ByKr|$VW_t;9h{F_ zpCOD5?)P)Vd?+>YeFE67S#h9TV6QF7C8^ovLZFeFmYA1wK{d^Pkt4nJ= zV3I;S|3RgQQ%&Z*cBlkT(>1e)lFZYJV^0YSt}`mW+L&Qp9pA+7ug{#>R;mnH+k1&WjXlce!9~u^@-$uHNeg7h>E`6`@O(TyxDQY7%K}i%h5qZJ}`V6 z9<1-)-YqN{!*7Kgf~?_;yS&`jMrJF5#gsoM6h0S1@DBY+wlII6u@%L-@Z>Ef@zD)8 z`5EfBB0lO$-Bk+qVhw-u#?!ZI0S4#vU5pqS$ccK^&n8?vDV>^j7yuNbW-&LR@{|ppC+oG2b-{ylU z=le1Wh-2srCn*Fc7hUP+v6?OwUkA;ui+T?esbWMpIfrpQ%T=CE3SHNSTr~1(@=}64 z@d}lQp^x>==3{lYgbYx;Sa=S%r_*dC8tV7x!c@Ec%0{H!;9hBUjnIrvXjkW?4`MO! z>KD8gBiI3w^e(yDE}-@E=Zl4|&GfW+f?3*{h`sNgkYPtV7iYop)-#@!ZVX?1HtEFb z(w66@YX;)l9*~%Cfdz4)qh5OZhF&74OMj!}{7BRO-liST0}MJ;=9Lmz?aAUIil<#( zCTnL+Y1FNqPYDv3-_Vhp_`IQGwlhG8L6 z;QX=AMuI(A{IEvhrZ1(`_~7E**}KVVQf&NoOh3E;979Qxwem;U-KDk* zH@!S!I}R+$t5p;97nPVbWZgQ>xOpK*2vv-sQvB+^MrCbKqar;#V z2%(i|SpGy?k*}BDyMowmdM3v7!k<%~tSSC<;o4dzX8GR%}6+P5pLq zEIVu(sO5^PvXF_NrmNm1l8 za@gJ|zajRrT4_Imgv7oRP@AfVkmi)A7FnVAaiadmx#yqF3TTr$GItkHMb$a{n!@401hd+^J}J9Wj|&Ad}@Liv{%SfzOC}L{uVbW zWNqE@GC$WR_~*~Ji<-1!A>+vshnQt@R%97rg0_A+toEUnMqI}7%S=<}`275QpP5Je zoo3ZE6w_N&sW6Z@z$SHD!hkdMI#`(<%DU#Eb5;X6J?QQ=aiEjU%l!rS`7+<0Sy#O$ zk>}nP@zeQ;*6BDM;(B{-Ic5JAryTz^?2>46SS7p|WMyN4`tsMLnF|9>*|^8G-pdWde33H0pm{ycwIWd~cU`5+G7uw|_ieBM9QQy} z4OASt!lA<$N|KA%|7Hcy`-*QoCJX?*utOwpWvx+mSX%^xh}YM=vl;#BQ5}8ny9(y$ zyH@AOQ<-)*-dT;soIa#4!S|*clGDDO_tGaN^}<5KB6%}9^~_hfco=K7{6w^!B(?X; zWhLpP>a|h@5#<$qe02%%eAYudG|mg$Vb1Sk_SsNwxyymeK6YB%_#@D|7jH{8yCFiw zlWg+suk|_9Em`!%%7cm*y_qUzY(P&~K}Trgr^?FAx<)9E_ZsHpC1Y^%&()rdEn>c zEu%Q1!}rgH3@#LSh_O6l{1-#r=5*e6h0V0KTahYefDU3GHa(P|O1xfZwGpF&#lKZ$ z(=C>lDX)7HoO=j*Lo!kfR)=zfp@~A`!?sN#wAT$~WT@mS4!W@oyjaEw+L}Xuyh9%%hHxA zKMHY?W7$$G`S}YM!uNJIDp`+m?GaVS+cQBa{U(APp<1Cf??IxnFz)2@<`00ZEofWI zljY~?0yLV^x81n<%2|$GjarHE<0DR8P+((Y>WynMItF}z&(Qz4l>-0pozmYtpKXRq zxXb5QQuJR(eWeggbXcVqjh^#-J6aCp#@MCI0kZJBnYGxlb0B_GQ|*;5hOpy z0(cQ+S-_)eN5#|~10;^luHJ;&keb5}!TN4xrTZhrx?~hlg@FZcTja}U{nXlgLM3iV zbtKM)WD;zSf5q=(7q<6HVB*o);ZL1!M_P9Fb9k)dlvWdN9t@yCvIc*X~PkO-W{=sL#WU z_$z9wMF4GoDzkZ4p}s=U-gtSV4yai56lxY8j^AkgAd&DS_leQ&s86K;=n0Z8^!OX+ zdk>7Cr6)@KCn^13^FliH)Ww*bNaxx6b~SPYTx8q^WeY&{ZrLoaY265*{~%uORAE-N zc5n?yI6_z4N4gQa8#CQ?fH2br*uEnmdqA7Eq2T}y2x~&s#y6_od~MR9&1O#gb&?XdoNZl)>U94~ z?bqV>!Z z=?mno;`(hURu?d%zQ%T0b&0sIDTfN9;^oW8BfJ&szAW^{n~9IFcRqY>wor3%Sn}_3 zP%j-)axKNBeDyIzIlD{oYR%{}?AsAl9lKiXNy!RW(S#kWKPC42D0sH`<3{IFcjuy=P>8@~!$PG5S5R) z-iNUQ66(??xAifGAZ7G?Z{~$0tLlFk?##3uHL|V)a~sIFOxOCFULY~ z3@)Xv_v^V}hJJ=7RvLE<${0@`9Pl~x(XRJmKP`Kia-a{GcR#7r7vqinjE-t%5^sK) z%K;|s=@@LZ*{pL3Vx~{(LYL)8RX>_1u*Qxbgs4$+r zpNeKg(JczwN2#$Y7fM+LAcrIsb~LwpJuqnJDl=Bq3K$iaddtW_aP0{{d}U~8Xyvk< zK#soB%ps4eFLd)&m5_PLaBoVUL>ls_T%jr~d2C2q1diU@e-ZYq5px@cI_tRK`wGJ2P{N8`wU{ds?%Y???_CTIRP3uox6$XscuhjaVB~iAWSFtn_g) zn_ZCrSkWwxA5)nvp}7UK4Cq(igJGCS%qlS#?(T9^3F+?2bUzq0zg@_rD%D&tBC6o4~M-kC$77;&f{LEh`w2 z1yEuk%e|xzly3lWhz<}B-r!J<#nsJ{E9(f!U1kuOafxYWsM0R>QbMovN~<9Ci(R6g zfG`S8LDyz*&O$EBg%2$|^V72j+U5$3+Z!^ahVH9ALRU}PtEb=7g+Wr2ftD*JD5ixS zpL61@UI&>dtEH=9UQPgCo{TQw^07H+E^xGvFtpR2$G*$a!4b~<4D&>#bH~0w0yY)g zn18-uQyQzEP+_Jj3<}-Z-ECn7*Kp!-b9Q(!e}GWLEwS@?b7`P%`4Au)V4rpj{pEV2 zZOBDRP?|88OO=is8CjAfDN2-HI@}%Ou7~=5U0$>^U#s5B-$c-(Sa&U3Z|WB9wz?+= z7uO}>l7Wilk>mu|=di5b4pe34F4Z63X5${#!XBbVwY#ukHuTBoWEr=9)IaDxtH0`9 zaWkORhcCk`{~a7Tx&kdF|M|{w>Wu8{ZOYu&?$ph8Da7vdty*$-!4^ zZ>$M}ybZNKKR4(7_+-g#Z99r47>z0+H~{UZ-2F{m8h+KY5i)eURu`S3#t= z?VS76oTJ#N>#K{3aJ!hpeP-rKpnujsHy!1?a`h_H&c>`e*l}ll?(nX%JC9H5vBL6? zsG^ms`%2D}cN4_W&o^|`>u=NL1NA`i>)ayeHm2Ixb^&XtpJ5L`$~J(4ZWJkf-}~oA z|LrGgEg;&dN9fW2Q)Kz)D*yac3t-I7Oxu43eOtbq%GA@yvFtDGg;_x|O(aVI@&|k; zF2bb1gXefe@}HUWCR?&m>iNDF1mUdeH~ttu&MPtMevIYUJQ8Ond;wV{s%4$j zS$ejlq%ay8_}g-@w*W0)9p5L~R)44H+tTJ+{@}Y?PN%s$1t@;Dg(``P*7dkCd z>Q=jf648mf{fp|KrAIkJUcG$X+Luh(YGvG6HKF6=#xzYI&JRVEs`_ zB*eS18M?p_rs?hNJvGtzo{XN-1fRs;oHUcrh#uNQN{Yd4m}uxJ*kidzA9a++ed&Hi ze3`h!*x8))h@#S)-E2>0i&KjgK+Z=mA*Y7#I}!PfLviY9&wPif>`O@+0r2uc^0zeN z<9dMqc);hArnox3||QtHj$*;iG0GTt$v_WP^a}qvrK=QWsJl}#S9mp0-71Q1R~R(!A?aQ7n z1$61{y!@uLP!wGy0O7h!(qR2&8~)Z8qNJ)3;T%EJ!A<^IMV8GWQ5zL$GtAlNN6IXA+v0z z9Xz~j0|EKy>rzsC$^aG`;j>2jPcEOOQ~FMSWZaQyn$7Be^5oHJwLz5^{TBn!KSqy= zyh*~tn6)*EzcLpg=Cu@AC9*(!l>c`e9MHAK-AY&{?2QwqR~&Mua(l+w^_A>g=nJPJ!oxpy11U1ow!vFN;l;{=`Xv$j&f>S# zt9GETxBZ5SR=?O`3$z9Ls0R;KkFt6Iem3~35|+Wm$!QQmFJ)00vAY=kTF@T75p(J; z$xI+6+igRPP{GI18$}N>->C>nKuL+2vDVlvwpR6i5g&7Y47ll137%|B;>a<;dTx4h zl0zSUcng8hwd=+;b-!5>bX6wl6xi-{6zpI(xSbs2vBk?~m+?Xzz^x2;>QdqSR$Z+h zCRv#)<5nKm*O{UziV4_KTkCzm5{8YS{K)-#H}B#)PAOD=M32Irp?UuU!Y~)PMh*j% zVB+i6V-BgBX4={FVNe|G18{p8=l25f}N9QKI|Jkz~l zGTC1fGqBLQ0Dvl*XNj68{Rh%z_lo~I6AWrBOM7jS1d-sd_qr4=r_A%o{!8X1$lw#n zd0!GZAa!LqqHX-^b*l@(WEnDa-MG z`IzNxU)R-cW#2uoGUdY=l^qKVK|NbJN6bB#dy}5?c#3aq2Z;`r`B2}fYIF=FWEy}TTIiQNrW0#!i#B&9BxfQ#a*>jV;Ss~v=1!q<>!%EXH|(~N%<*T zGEsFIPHlkrhf2c!n?~r^vYTTDUk>npVn(lXB*2%V;kgdc`BK#EuawV5@dukK1}3_+ zJMh0_Ev*#0A?jtsdk@uWMBp$2CFP0KYyN^KX5T1Nt&>&Ja~6G zrf}ETcX(s=6F_f1m_;&_z~&=gs7bn&COJJioh3oI+?q@akF#Q*%`2fmZxb&Q+}gZ% zT)bV*>fhThCR0xE8<;!6wf^q7y&;Wll0C`&~HCp5`K% z>kZKlfOS{tqW?~U&G|Rg{9Sp}8C1*eU^#&4nYtthG9Q6h(Lxvkpoh`}2NV)plfZ!x zxG}1(E<%Zx)~lWtXfFD!Td#y(7WH8nq_-Wb__#k@BqciKv@3@HV&c3h5dGLv<;ywf zHHYl3VkCg5EBSkSnq#|s$V>+Aq1divYu~v=D|Bf8W_vUzJp+_pExFEd?9Y5GBM^%zfYiKv^$I&rc22^p zbg#g>df1>coCLN>jTyyAQ*!BAWo4yiABV&fEJHoETO51Z;0cNpF$%_2HvvE;s@F29 zC~#U41G&CGBml`RTlqHr@zar;S)BNarY_toqEBEkChE4)gRVpguy0rEo^1BAz?)mf zkb9I|hOFsIltn$Vs-55U}k7 z&gK$7P_VXWZ6kqWGJ*47=*mT5iYNI&*SO_6M2%KMLb%ShUj=Z0>?ybPToOnYJ3}!vLWhs#7aW z_QAt=!K!;BJ~rhaQCAlv=JI--lhZ7%@6%=rS_W@BuG}O9vRC# za9ftVGC5QNRMhgPI+O0d=-dEpQ)zDqZU|{{8Y{Xi7cGn7oBEkiOBesv$N8^pXk|UZ zjD-9Rx7U399}Qy!!(DNKM}9G!^#7NBG2HH@8rK6wZf(vFb>;D9jJa0xlC!vO$XGaTT!MVqsW{)UqMmU#lNt!C3}@^@hW#3}9jPwR2#cf2e=+YM5FNd1-# z=(_N37a|v?i!$cCRgXJH_-6y`F*jEO>fb^0qzh>*S5R_pUyB#i{t8S-Nu6}~=Y28; z0M!qRZmM>(-+W&xznPphpjPW*X5F#=jMn-{3Hb) zGG?&aNM{hXw)=f&&Va)Me$0dC0QfP9{5f&{z0CX%tyWdXU9t|&h4@)@1W^+ZuQ+wp ziS3!pTlM5WzNP%It*duiUEb|NX4uW*9@C4NVQ<4EUM>;%+=_TN#K!nnCgYm<2~UHN zJNs79%0$SD#42IWnA@A+tHyU$Pw-N>$p~LUNy7^=@!n8p-vXb|4M*+)Wk$c_I1^cuURb`)qi&8T}+t>)?@#3#-u_lZI7C zlr~0+6(vc_HYw$y7BBFbDYy!{1=&}M|ZcvXAwW%%fAU>NcP4k^I}7y#TrS$0Oe z;TZF)_p)Z}Y;I=NMXrjxp7kvxs<}*sOvESHjg`w0;k;C!9>wrQ;w-HSq`3-RgfS&o z6kR1=u|WS~dDr|y)7hlK16~Kpc2(1+zVLS|_NW@H1*W4sH5n5xl*6hfl(V>yx?g0~ zIf1eI$ptQpK4l(gsARwLn}2m!#+l*MrV*AeTc+Y}5XX)VbddegsrTX3J(DzK&4w~#OXIvYgS@_Y|M97 z6#lf;39{5T&!1D>f7+sRSALCBLY~C3@0dxT|; z$=L}#R?f_myp7$pNPF3fN}1R|#St3K9OTjtu|B_DWBgWc>OKg5X{6-b&PPa0Yd77@Ly>2pwIk&lyTBzR+#v1Vwk`nY|n7X8a&2C;hx8h@wE?lNfWkX z-7S_Hr&}*|FieCNZ+9I@s^NRqr_&lQ5+S~$L)RL6L*9W~ci6#-2MZE*h=yShH+ME> z;CBSGpA^dE^ELtVtUcpogCT^p1)J|0W|Z$1_Dbn6Je@-eqRQQbfD9>gUe>^iDMmf> zX_~Wh8zw-YW(+?L>@v)$NVO`=*P!1>iqGy}xGTdArheKbk`!CI;i$4b{_PXssH8YQ zP!PPFF})#h7q=DaJXH>hZ_t1JtYMHlt($Ad;_GMsa7o76kdG%*sVX)jMF3IY0;%TJ z&O|-9Q?5Xsv65EK=+o2BXyl27sP7LInt#|~xt)!c0(KhS= zPucc#1a3UtIDR^v3%rsT6Vh<_Z6(FOx@<``wxrxP7QbhN%nRp`a}(QUXxEOfMN>Y` zk5&_kM5<)yy{c>*v|s*y5c^JjZPY1GBkUmI!VfKM1if(X*`oz2dJf6O-Y&H$YnqJ`_6e-Bs`Pg+&;zywU4PMM0z z7=jcNq8CxmLxgHv=BLIa#4LhaXL_U`+Nmg=wr%}Nm29(c;jN7^Nw+n&(Ed%QQ$@D2 z0-&NB6}XKfBy%VaAlrpbE9G z7g(GUreceFsY3Qa!`aGe#|O=U)9rOUQEa-C_}E?`ecj$%5* z(5#{4TO@yuc9C9?1C0PGWe`qRX+{#*k1xxB6Vup~KOkYDzZi1IUS#GycnZa)VHUKH zuL#yY(^zQOR*M>sDy5{RW`>Yn7x1qO%0sPOUK_IM&USfcTKKHh7?%WM8DH2s9DJGy zk}f5wPA1~mm~ORbzajWlo{R`5IC;X247BaDduY$zUbn;LQIOwe8MtDu zp9GP-^T&#`3CJP;A;kcSNB=oeRAZY;6qN*;(0Ag) z!!W&u>n^(lLV8icUsS09PF;?8wOP8m&DSTNX|#0{&&(SPHxKN4dpe25lu5eM?}i-m zId2;$MCVO*HFZfq(nmGy)4}+z)O3ato9HA|aj}JgTfEKo1V^>q6(#;AJz)^jD`ld@ zJnETTS%pZ699^fC)%&G_+c0F-Sf>l3M|H*Q%r>ENmBkv%_UUt+**^{)g2Y#@Dye`2 ztbS8S$ZMV|INKCXb_Mk=*Pv3SxOlW%awPrnNIdThW~HQ5rM%p;_fxwPZ%E~;b-5T9 zZP`?Q&2$tFS=n~MHY3b(&)O{tP7^cmo<`Uvi{$xqS5*BOHfj=!QZ)?6Q3<9i%@`ns6EC>3io$aWboZLqp(3tq0jZ>c0_@}xSg)l`5 zZg!xdAdjwnr-6(>5}~Yh3{z5>=)ZsGY>taxUHEjWu6Ys`PRV7p{SXH4wVHdgzC|k4 z+NuF#)*s;PvM`dmm{1swi9W3EB08C*+O8ZODP-jUj0RFlJEuU`t*f90Eq5-qc*+c? zgwHjsE{tTOrkm?IF?=qA$pj#2Cn}kGOPUpy7YlquWWS*=V{H;K)KJBq#z(r+xx2qb zs-opl?mVu0^4iZg0p)vn)B14tiDXNE8zOxem43PEqMk#=L87meA|?0DNtkjGvygKv zSrBGZEIsZS>65pYhs*D{V808RLGs8mWC{l3aj>5m30mp7)H?%i&y}AG=3m>U==B{ijdU zG;Zk-VW7`iLTa|%7NRC$SgIMr@98~sZ{HRPP|3sI=)V$6 z$4TcwFC1y)+4VCbxzsXcKIc^v>4gIRdu_EJCY7Iqvq%m+L(&O)6YA|03wmIh>nPX0 z%?kYJVMAo%o{XNLJyQiVv6M17sit*Q)N83M#|R%eg;3Y z2s+`!C!%QqY_7_Cpi0%)zJxK|-S1(HkB0Y+L-SPdeUl_hu5=anlIVrZF%FWT#{N^M zKcP!DmdN#=a>5Uw=%Sx-fB}jBoRox7@CWLDG>ZSqrThhMj++O~y9}3-^H&3QuI&I3 zN}=fCma;V4T%b~R0-pyaqbqi{WD4pmv#-~$oH9{$=^F2VW%RsbXW#DTzVAe&WS!0 z8x5ryz>`p0LnmRzltX4TRSWxGatW?!=UDv2`-leOs|Wj``Fit`)O&8i8ZUT~wqtXI z?ImaYR8b|hLiYP=ul@My4(8VGu@FGR-+l9P?!xkYZJ(*4AEFph_sGi#{2L0BVcRqSHpdMS0r3Hnrm_Vk`AL@U{*@0a+Hu?qsgb zKMq~bs?T`0X+nf5zHDxJomzQcOLFImlaS8dsZ)kUw>2taL0D{42A9~E;Jx~<(@TF7QC$x=<1|=4JI@Mkd8Da43mjgJK{}zYB0ZO z!`Pu8#+A27=B3JCiUR`uBJ((sgE>)cs0x3u%Lt!g1iO3JlF<0{kem{Oty=_)nZUU4A*OMD#xGD`S zMNRzJm76-tul@+5e?oY9A<|F-k^HXOn1}tfVMVICcEY{2ir&b-#`K;-%|IejB=pR% zc~QNc&Rv^#Ht~N^jQIqdLRAjPE6oksKBW!xLHkcwJFNE<@#Vl^nnBIB z5zU(l_~h^XYJA_aMHDKc-~Rvxempynal6OhVqEoahPx`!1-!29WJ)=izr<3nS~#j) zWSRGG*x=bGVy4@-wMNg>3os6(H@|&=RLh4TWKZi>nj~bp(^Zc<+#}lY8L-wbt#p0k zTL?nl$d9QST;R1Csmjwm;g;>PEYb@~ZlJGP#F?t+I(Zg-|IVUY?p0Ln{Vj-8#pbke z=B~9|rE#gH?1pjM$jz}%1Ex12*VX#CpbqLvM!w%1-@Pqk6l7Q>o5Vm??yxazuHMvZ zOY!>D1%DzRba`#53iFN4#-Jup_knxT=8|w1pbb`q0O6-t?zB~eRr>}~;EM5v@hcJM zcUCPPYF6#>3Q!w8IUL>HzjcQMKM{Co<_=VDl=k3NhjH1>QQo;t%CXlxS_{nrTz(qj50F3=UVwcr`Pe}%_>$$hmqwBYV-CgjcS=VosqUwnf&4M z!paw>71x|n*ha>Sg}7+tN5w^^7>b0Rmf>dtv$4xS zDUDT>F@p+v*Yn|5<+v9Sur7>ap=B#m)M`z;19+%H{{ZVF-32B2ONxA4DN}15{vyN%+inAcv~RBK#k&dDp$>ZK;ve}R3+#XRKQVOo8rD{o%9Lq*@rlkyqh%VPr z=UWIugZn5ocV15Q%aCtDjX&q{uS4*!s3MH)l)~k}sG97w#RI*Yj{{71=Y739U+2Q@ zQnStYg!ru57y}^gVSMTD2iN^z$ix@`|2O1KjlPnjzu`-)oNRPYC8HN8ZdnY@<=fY| zA%!AYLM1u*XAXdfV)&LPP(RzaVNz&4Z%Zv;8W`kRlMuwO&y0 zDzaXFP~@gx)C_7JHjY-DQiM=F}(LvE_qZ|4?nK>d?xmldp#hB?8k8R zLdHFM)>aUo$}X*-9uMRkY8PLhTuu*EoNAOG`r`SfN@83?#Ahb4TF$#h;Cyzvs2OP2 z$K1Yh(BJ~IdPIr=B{lwhtuq` zEHgV_8&SPLxBADW>Dt86$q{;Pj9>}Cp|U{Lh&7^xlLT@IVZ<%PMWJEMXMFk2q*ECJ z#kVt7ZV7y^DvWEin1NQ7Eayn+N@Zx4uTxUq0Wd;+cut(5|Cd{GYAv$lUwYhjH$_Ce zmtI~M^KA=3?PgZs$_~8R&cIyk!2Xr1mRta&K=LArlb-G+XyA5*%S6b?Is5M0i1H~U zxkOA16vT9Le&7BXw^fK84hoP21&}W4s)p>JJ|iK0;#Mz-BW=1BP6uHC*(9^s>l%j_ z0U{m4p{>w;Ii>)|<);JU*;b13wmi$#r5MGoCEboKR*Mm-!=c)^=omX&DBk*e6#o20 z(o&gwNsul(OMgQYf(G4u=7dsgco>z%#(<$vS%w82Ymjd{6nW*Ud2;3YX^Uwg^2lL? zS@QBHbk$QuO%|YUj#fU*kaMa zB}30{BoPg66>ZkONmh+8+LwxA8|y5cWw>qJC&Ju~z7%nLh;1uOuDPkK=6O)<-X3;NZ*+2T9i+zB?gjjt5Ab%1l$QYy9Q z)+kY&4?&TA7*dIjiw^eAnNC>m&Az`3dB;O-`pTj8Rz+SsY7^0E?4fV8#3$e6%Ue&M zckt-!tji0@EwRtj;v)$}AVGPhKe2-nv>6qq$z3IQx%Od0cQJ{V3bLc#P3EY$&9yi> zo)Xi00p8l>TJJvXj}FA)acF>D6mlqb(6R-RkX#I#{{EJz`=2BvboW#-gPKy1q=bGV- zkDU10Os^|Xg+z?Iy`ovZTLdQCtp^xgD+4nT3xPY_i36+@@P1=w39V+o+7YX#Yq#KzSKzZ%)`Rb*|wW zi;XS!;6PqmRFP1f!L)IagH zb$#8fYh!m1C+sk4qBdeWP}}QTR(v&Ch>Lfw*!A$iIjNhSySnzGq{X`0UJm0}?l{4M z!Zy{=UjHuF0-yM)LXQNZuteN^TAa{rEnLWi&>KbcTD+vyyQ9(rAZmY46o14i>t_gr zHs^Tu?344yw7gd!rJvumu0ZGnV4|kRfW9mIIM2zmi&=4c)O-)l(Uhc3hCS{{zjkiR zf%_eCp#5l}K7G~dot~|)uY(UTqxVPJMyQi4%1ksiE2~f4K6{yIRxIXJsnz*kqLW_> zck;5Q-dzY3IeF(OX)R7BV%pSD8nn5>C2}&5u9CFn+pW5AVYSO~Lf<5G%cj5@>t9}S ziOq?>iPjwU`~F!%XluiFeYP!F9buAIinVfUB092gEM7(F2i{@`fbQ4D%%<0)r&sEmy#Ic#e2t}wmg{PZ9-3IO4}aFKa1 zLC8U}n^^kH#4>cHSu*af;p?sC+rf*PAAs;(o+!c|w#wNi-rh}G6YgNy$!jl2Um@3( zL=yGl?8e}U7&Xz5I`KrIDYZBx&z$De1! z?UZS&E{JnMow_;%2vg#R(m-HAKAGzzE!O2S_B0JW13R666|UAk)}P3C+-DbJ%m6*9 z-dwl>83m;`D818CEk`g|au+gRI*o#bet1VIA-%Z@?5!AxZCIYk$QuI~B6+_O1ewrw zHoz9xD<>ejU2O?|1k*^@An=`-jHL=A;p=a%otqrgUBk0bi#fjT%tDn6vBxr|!do@` z;2;Rl5kl<+LEdi`9dFnH@OIOxQztA%%Z34mjVyJ+6_5DI(6RnKch=6wD#& zPIPS+xX&qak{66`jTVfE?D_tx;^AyfW4dljGXdj>?x#3>Qdcyf2eiXe=MM7yinGYxPOz6CV&krwv@UR5i z8SU4#C&;HTTr@3C;L-$X?bj(MhPGGlfby6bF2>~)lq{B3%s`o)AFgd}eE@?03S$~G zEJDmVxzqAG7ekzuUdzzawTtInRA9>Urg`>Y+64H6n4qdF^z5J*Rs6uKWA0_=ha*o_ zbbZm9xeNK*Cu&5>XC`u3`=BeKH$dSyb3}UL>}3W?P7$Z6XNF~VLwsnr)EB0C*<@e7 z0eXvG@V7nqVfy%je`BfxEJ)wmtvzO*2)Vr|8&1Zi$orO78gWrAh~01n%mnPV{HVh`jyL>%-E1 z`(0!7+aszQ0Cx?H;A8yrO>M~;Z%1QB&m#kVdz@c?4VyT+YhvWd-^wt*-!uW3fql4# z9`t`WPoz)yU!?->I+1qie_;|~j%sXh;je#|qnuAG1MYg2)k6BuH|=8q2EU~GFX*{n zM)5yJzwzvzy7z02oN*z4-r81P7eG&eE$%gU>y3ryzJ-woSpilw*Wrd9|oWF9l zQZz5*nuYuM(AYx&cF~j$@)2} zIQtWjqVk42`{l_p3Z4g|dzr4pf3b_Gspq|zfUc9omo9~MQ1ib{W;hg>eqr*1+L2cQ zXi^PbO&xw)($DzMTMsof6#JE~Mut-?%BOpEP6I+1-aGrw(=-r=!;iPf$Y?A}tq!Uf zA0}s)@UJB>Ebm`tkZ^0{iZ=AhWA@wkX)IrKl(wHafa`=@7lTe=lSQ2ey705Fl)}Yd zmtMryjOyD;t|gXgtbf~X#X$kbyDF&KTpc$e*jJl)xyA&grSQ%j{Sm^@v(wmr4`?m+ zz31uQ%p#y_(Q_h>9=(AH{Rx2@Z~*HKtr$=Eby1&B(*^LM0CSzv4oj|rlrzY+W|5jf z1mN=@DHYv(iBCjV@Nv8$IfVs5)^Jz(J4yK9n%)TOyHKjh!U&kEQcUS?d$hfnDFAqN zF>5!AKSqx}O{z(d008T~9Zf&m&MOxsJw;{kJ-(Rae;(!HNvFR2SA6*2W{-T)DVp=3 zk=x(ucwU|VpO`%~Hoq}@TJIoe+}=@ZD6v$OsvJ7R*znH=`r3jpU!dYcU-Giw3=aVmv96651og!K~ zMhLz<$c%JfG0E>Kd{ZyE+d;&gk=-t1xZ0>S#V5N)F8%; zPRk8CC5UqSG~3RN`V!3I#Mkbzf?z(IVuj9lNo=|-0c}20b#^_JSb2WG_yG+5Z<5YZ z6$2!rT6udH0vX;Z@tLK!!DFzv{kf`hA=j;xyhLZKeHLg;S8`XoNtYc~9g@HeeMq3sV1Pm&~X_+)$#bqkh`-LYjXvHjolP1u3E`1haIChBnCI zmV_S@Xi>*hSU^4v`PY?kZnM{06eJ!wLtk`_R{0w)rvq^%VoAb7o~UXot22Ggq|rx2khY(Gg6)SYHK z?tCKJ41euv+fvr5kxoc2pL0#}+KgDWLdJw}7f0f~T%rI}wFSk(_<5Q;0<|fzK%nL^ zRnEbO1_g!BDnD1M5nk34j`?eKEAo7V{bzpx*gTCZxBKEPpe9)~_8zFuw7*t4Y^!~2 zW*_s=6$C(bvP(Ox4B0@J(5Z+LTH$sLd*cs4OG5qZcun@96!bN-&njqJRLVqN^|`5K zw5WW(wph#8bidYKitOc`LErM2)V?JiA1e1q_HVnJRbACJvm&@3hn#=pRryCd4LBrP zsTIOUc`8%&X~)a*%#}C~#-E!uumZ~vr&PP!^@(DgRg=51J7v(l1~j^vNIN=T4-_r)K0F_hY{6e8$sqEm z(6Y;%K*{FvUK~BIqKijTwuZCq>Hq~9^S0)CrrSK#Br7(}=Tsi$*fv6z)o^yY%Y$ww zN{wx!8-v6aPzvg>-TOk@=|Cs4Pebne5QHg2YW>;&VeP%6n%cTPToFZ45tR;7l%gO- zx^xtg4hkYQpi~0{gixe|C`ge`AXKH-&_geZ^d>bxXwq9kCqO87bE=2;d}rJ{#^nzN zJM8SX_F8MMIiLBPrex)puaRt(xTnL(1->%bsI+TYFe$_larnGD3o+B4cg$nm{mzc> zsy#4?0c=}tbjHRZ#mteYis^p5A>?H*gK|@TIo5OX$91{~eJ{1$BS4vX!Ol&9_Qc0p zEy#XN_N(zjSBWY`#LZz$p%g4%z&oGIvC4URKUv3_R@rjTM8^}Mpd`(fy4;+xS;@-o^e^u^J+N;my!=-sx3SuAHns{(N6sH!<@WaN%DU=dk}uo z@7@`myMk!W`I&giddqrPufx;9{wXHjE2hhQu6kmnq(nc7$i8GRP3g`tc9`8#c~12N zB{ClO02e4IQP%D%YiLO;e%tpUOMiDUg&d~OCv8f_QI*R#%$ z#U@?Nd&8FD`$|46Bn-|&K$Tz-aKU3jPKcghskcO@dhcLf_e&Jl?c3Z#m``zKvGrP8 z{AI5ddy)F)p&sp1{zZ;4y>W&d^+f{|wJqeq?3Lw#psP1U+y!3)CxwVP zHq(;ltlFwT$e4QV{Auk)DQ|*C>^i6>S~4`!MH@!C>rfEou+Q51I4S#?%o?rI3q1K^ z(OoDMY{LGX5$*GPpyU`%{f+2DhSxj8Clt>ai=Yd&B`L$^wDld)ccQsM7PfjOV~MB) z$y9-$C@L7@NfFNHvp@_l@7Cy=H6kJISMv`Tv3B2^V%kP=oBn zA+ZB#7#|Obnc=xl5D^KkESy>0PazGo<~z@Lx%u^yjavI-M_cIX6ETHF+WORXiaOKUA5-qh>uHPMrkjH;t^pleU31 zo~ZMWjG|#m!yrIj0#P_!dE6Knwqu8LT_*5^*7OPB*BZ54hM8byL8U;+OPGAWU_*83 zUH>9KL1@<@{UVa++_qTu1Pb7I9I?g=&^t&GQ*uFQ(BCEs&xy69l!!kC*r&R951lnu zApW>$qJfR$~EuDv* zmwHziIuX4urh7-8PP3_$5)=R#z4DE&e=t179{t9pInC54_l(Te{$3&I_*uQCABTYY zSl|l63<{a3XwJ12Y=*t!behLF=H|h1NvZo_MShO@sQbsB=-*Z<%HBppnxX8?wdvjlBC^D)a zd9dmrbaBC6*NiW@L<9;AuJSypF#6P41Pwl{kra(dWo0ZjthB)_MWrdXE_@Cqnv|sG ze`Yt=GN*rIx>!5xk)!8V#&$?kB6MS=V$-ox*j>xRBl=i}4S^R+W7CQ$McID>rX*ZF zc;a9;!X2g29AbZ7#S^eG0H2*2$v&7;TZruA$`&9J;tZO=0OcNK>-bp%slwJZ(ua%U zM3iZiAo~)1E9DnBMlqF5&<0cxra~2X{f#XDVO@H+d+t|KI!!a28k{bUzC4Td=5^mn zCHlTKvTEMhN9vq9;)Oej(TH7jGKMaA(2A4*Xh`&h9CfV!S;-c+8~TY$NlsUR<` z6mJWDeLzAR#ih|k^j6^7P$^1!aa+-qjHR7}U%9nKK_jF68(W09UlE=}030u?=#eP)kOjDy8ojgHu*iTM=3Uv%1h~pS1nODEFm`ZU|FoPI( z4(gCOHVyfD(GYNUd>B+kvGm>ec;s=E%*wXy>L|B(qc^=VVy9}WmKY26SK#W)oJfmh z%gkOLkl21pXgU1F)o}5sPH5)^qx(@5NstI`dxwUanhB_&Y+%cQtdIGX>3Zb#d8qX1 z-08L#F7YCx?o%kYxnrgtdrQC_YjXlvw_YQ+Z%i9dX%&Oe3hV)NpjN!o)&6|V&U36? z?OxZ7A!fiTN;yw$V%3~bMpcR=bkRiv2k-SC0pM>|5;HK<;?9l61Zyofi=EyD@70#c zXVWuc8ePwTfP#Gl(Z)zS&k%^D=*lwQ_liLGdLK_9P~ga5+oL9>^L{U3gcJjZ1ip@^ z(_qD-+Y;6{SylzV@qY1p^SRNJ=!1v~>MXisTZ-nW^&CE>S&&-5`mL1Ki+G^+nuBDe z(8&9I&(IIFPviID)x&8CfShbQ0A=Ze=ukP}LCxjK5gf87^&te#2T2dQNku=?>o7u8 zw^<2dR7rCB)^cteuDlG{Eq&V{hXnk-h@}AA74oNNOWPl85~P8l>5xx9OcpE zbgaNgQn*~~urS`dgDS0G8p!23|){Fxx8sN^lA?($53Zpsgb$eyl)i54i

      ?_;PQRv1#Rp6?vcFhnm!qJGxGJEW~gIiVE^7vpYk|To9M(19Tn|e zmYny1?P}xZ*S8hl8&=#{^Cto=sM&t2RrMh%^G{p|f0h5j(P_K9j9lw#71AY$)L>is zk9E!4R`Rr*FAg&7yCHd5*MKF9%M`bN318@1%PsGn6kfPNC_8xW);Kd{)mC2}?0&b* z%B7a5|2A42EI*gn0WsEUp>WUJ74aOzgkgIF%OC$hm5P?2T$TSl8ghE2bRE%QHaGTM zWKGNYHW9Sm*9uB_z;OPcUoA}f-!S`y-zK?8yEz}MT+!{1tFWRWtr-tzhh#9ZH{FNY ze~fR}x+wRZWev~Vcib?0{xfhO+}id^!L7sfyxd|~=X0*jwEQguCz*qu%S1px^GZ#2 zyJC9UIN*o*f5*kooRYGnFrrvYPEL#+K$CsiT|$|7!7v1-!Ecfc_n#C@7!_w`Rp9g5&C)Db66sn z(Zy=QW!h}*nF!r9Y{*Wzk;{`{U{<{IG93b}T1I=fhrFf$H}!-N;~gy|r4?sb+9e26 z#Y`1pbnj83laGFd*NhlEQ_v*TWu0TYRu&!0b{e&ovYpSAwCRz@-B!+<^gk~(^OCJL zGysHFzVh?8)g=ARm6;DvtqRI)cE&pF<%4b4aIqkgF94hYwL~lzv#P z&rWK~;haH-8D^;bAPRINy=X2tvay-JVL2y5#8_MXN3`CgDS@Mmmy84u; zSlUq7&wME+HNkKhX*pvZYVo7`*?E`SJvy-4H+uoZR^UHz+}z28>5P3rt_D}kPtJVA zmi;eOFE?NiM*5HwwhT|jK8rL1R1)0%^5R!j*tiPPr<(oOp2+tK6u_U>PbfMQaw|pg zhYWa)7LkD4q5FxO&%;FF{qG-;o_zxbSHMra5Vd&p3bJXl=`i{g66K%?UIv(v8l*3h zLq4>cbM{@j&M(e8U@5kW67r5SWKjTL7jBTXJ@kCV8a}KtRJA!jzx0y95te50Q#H?4 z{vOxP`xM1mvp7WzJ{B7aWP%Y@PrDpDukzsDM{o5M>utstiEJP9YVTQFRpmL7{f(G-YDb72&(|LPe?w*1)wnc4CsF zHD_s8$&qn2?Hk9m9O?J$K~&AEa*OI?Fc8QAFW8 zCmTel=6N`9WMpm0@wqii zqoeMG1>dzCmA|ki++4K>pANq3CtVje2NHtFn=@OB1Q1?UOf^GuGwh54(zuzX5|qr; z1w%%kLfBwDAs0i_I}k0pi6w%UpU}`xsksqa+2)NoR!w~cmzcED)b0QqKN&po4b9Mt zfZ&V}G=vQOV-7S{V(X+)K2Z2e&e(_0;eN50U=xd5bn^gkD~RpE;dCl7ayl!fte7F> z8L0IKZiGEIbj{z_JZs4_-t7YuoNz3GtD66#yt1mmhr}fr$9mvKU&IGDpsZ#%I}7j8 zx5^;^9#UjW-`OLW)*Dd{C*LRN$I^@hu4Lp%kdy+HCmhq|6S9YbfMlAUKIVHPZUB*C z#r5v6o_L-Asp3F)bR>_03Iz8<9s+i}+QUcfP-{Q|xLT&_Th}W(bmgoO?mK$NT-9+u zpW=n{b2sf&m{CAIaZ6z6=ZmEOknkNHmc)}GqwB!mZnlCz`J&r*;V+V0_~QW^YKuEy zXQRqZmTLS5-1ND{wX%^h71-_Bf7K_1PtL2MnssV{D^uv?Tmdx7I)rbqFK6qQ?oM|J zaMeta8VLR-JsCVq7z-jip3MrhY{lu3v~X0et6uW>d9A%+(8Y+rpL$0k`<;fIDP{=Q zdTpI|y@CDO_77f2o#h<`9%OH43v}Mm{cwCtNBF1h?_s4)U}ygcw9~XA@Z)qyTnPBY zdoH$kkboaPWzp!alnzu6x((WP9ENy^;+X%3#%}Hy{~s8eUE-S$X_CpjeVo?M#;~yu z;IWb70^Vh0=weG?S)wQ<2I}b~+rtk{E>1``=Gu=FN4H&N+&zr0pcQ)4S@h{<+%h8X zNaq7zSX%UY>XG)OPRvmB{57W`%{wcdArnUh3ihAh4m?f#o-olzh|j>R+T79p{^whF z05;SaS>YNii(3xC_e)n+=(BI)-ziRCb5=-|;YNw)lj8L&1QM*pBHrTrZJ%9kdNd^} zg2Edu#&Kpz7~gf5b>3($Nj8SEWJ$KZbj}>K4mYp!vS_O!u~p z!Ujei=LGOp{K~svY=}Z3NxwahNRwFy*n1P6a_m6c2Z55G%{^1Ap%xmy0LLriuth=y z^Q_pmq2P7AxnzDZVLRV`r~Q{ll?(^D=RZ^tn0EyzT+dxT-_ocp(y%mR6+@K5{ zQxQ*T>kGN3pgjkFOwe zsz7TCna?&glyfB`Qnl3P_4oZ<7JgqyTWx6>A5BbM}jxwdT{O3T11^)1jRCM|<7N z{-XhZ>)ByZy6ad83=5oJq^tM?-*SQ5u-kMBq|=&Psmb&(~7n-wOg=G?9TD7kJp&*YNLBrUV0q zg+6VFnjJK;R?h1Y@A_g|yYXyl)CMhrpMv`xdfKiGw<$qC1Jma)7g+<+?T24Zi-Dpe zyKXR^`L89DlQf0dL}7wixQUJ5?QI9`!IRsdgITleeGO^SH+CC|I}vMc)! zu%}lw;4p>T-3LA*K92pPYOzZxAt!3u-)ptawwU+ZjP-6iu)xKT^nc~gT6BmEp3|e@=gII~OVU{?*33=U|i6hZ@E)jJS*k{;D(d=oQ?8AtIHh z<(E$V!96S=l6hiNVKK?&>OZrNI{5(yEx7f}<9~7I;$FSSWYaW7lIspr?3Zr#{%KG^ zl%@usLx}hF&RqPCCds{)0Z`eqb)B*roQSh5C}Smqu!=C>BAyz8mV{UsU+SjKR1Q}E zv77>l&5Ti{(!h=n>8cJ%pkCAWZ@5@*)*X^Q z4g|U~?SZr8(Wy$qrsX5{)6`y|x*|4F>_a;yug|El8%eM~o^YzbHSU_$Ow%#DtOKcp zko}JH_EXivtTy;llvZ0H0<^zxy#N1r^1lz0gq?&0Nuikboc*&7;6TGiOnDUx6Z0$Zj7}f+NyR*;16aPMXtQasph2 zX!64VPj@D^GrK`8<3274D$YH?UKc`ppmJyfUF%JuLk!Q9MJR%%*S+PPEeVRauVY{T zvrrpvnk@rA{RBne+ND%)LQ6qz+%ujXU)p^*K$l2>|A^;%a}Ug|nCw9iZ|nciKp z7k~M|&n0H}oqzR}m5u0yKEzGatJ$HDtoU!V;=E%4G<@BBLq?Eh!&(%w z0ka@e_d5RMClzdJq0azf7VMMpGysv|-hbkyFFO;Y$2EQ%$KH7}K`8KI@wMF7+**J|FNbV2?=6uqQle`DcBbOU~pq za1yxpeVg=DsN!Mtn)~uj9{zONMGtN(?`^p*1^=>^S@QcEff#4aloFRCkK~;#8}BJ( zg_ojDNHvC6A2J0x}0UVvy0m(njliO@Xy<~Vn0JlA^IW6T_qiFL1)8~1F0yof%Sf+l zuVp@mZXI{LZOI9=MHHh+jW_XfD*}K-UBz~WL=>0NN-3ODi)H;ZQQiw=r}EZpw37w3 zEl!*356d0rLIRd@I|G8AE6KD()GDRD|Fv~kX>|Ai8>v$C>Y!B_@}o2UqSfsc*FNCx z&b{-%nw)Sv36{R%WEe|H3nn#gF&=8@wLs?>k|Kd4V^5!f*SJb~$M*so+S1)*w@1p( z9;Yz^uxXxe(VDlU&s;}9Utb!o_QLUq^i4&HV3jY%QC3fhzq6uE$oN2K%i2pCWwOuj z^_C|Ow3%}h43oHdH{sT?L0dlnCaV459bC+!E8qfAW8(*K5>{t_R-l|&zxhlTLgg61 zG%e@;n$!2s^{(YmAeM_SC*R;t|{iE8^pQ@^0-)Ta0Z znpsJ*^Pm4}R|SeZO=4rxs|b9x@6iirvuS5e9;O=qo1A7=PNxohX2j6T%Qt^F*ZX5V zrS?_=ZYGD+i<6;8c3A}B@z@1n1_Bk9|lntMnJucmO8*vsqyBBMjyl-%WHQY5V zv>Z$Yc#LTcwNq;Iw%RTW9gWPu2W1FXiSwRAp1>@pE937TfMaWygjQsONe^G?rhU{Iw*RK53s-N?6%>Ae0ij17LlV zbd>DN%N0H_Wv<Fd0FIt|_G*~IB{jbSo&mX}QdY-oYpEpBL z+^d2(GdAmemr*9fCGU{a=7APDs+}?@{d3#wZNxHB9T+A4%U#j%-^alJiEo>&&y(@+ zt!Mo9=?z*|az70&WLOF5oVQI>ioJ4PerSn*&PaG*W}>)1V$9lqrv&@r@^oBOmE-m6 zu5)~sC0Ps{WJ9ghcNx;rJ61z|&G$STkJB3N)8&N`R!RL)?!_MMudxQ9u)ELm%=~w% zx{33v8(~@!vxIB}Z0P;rI=dltFH_!QR*QOCE5feNf?d4=$x1@=BfFpzOqky@^Cf=H znu>lFj`Y0oZXD6(IJjD^tt#_<;+U1JldBoSV1ng9tT*M|qS}b8I9IiF#k6+Lw9Hdu z2<$G0O#G=8`TL_MI!7!i&o-J_?FNT24Wj-4_lIg3`(<*Db)1r=BgN zEh8UpLo;{37)q$5nbbDQnsBgViF{Yxi%08kwlQ!G{l#KC=KBhC^T{Y(T!e9T7VTw; ze{wJs4x;{ou8*~5j*jE7-$Nu^%AjEmSnSUc=t75Ueso_+GfCIS-^}FGtk(44@IPX|3ZV%M&`O9$R?hikui%)$undooq?+wo-B<~vUk$L)2$p5FAM zq=^%cQEywg1c0>rIeYM)dgkW9msEL)T0M5XPHY5cI-+35R@-y|vluC&5C2bpYhP~> zW_umx8rajsBKa=;yAt%Y3C-q`O56h)J!ZGS6VX zLJi1FdqP3|CZn`nnP&;L}1x1+nV_RsLkWU zCDv`5*5uf=vz#l2fk(|ksJURw*4?~;hi%h1g$>A^Ua2H0sBBHf+b7+>1nK4yMmQ$O zezfVIo1ra$J@_PF=Zzm^8#5pwc?A*5<(P-$ca8QfXR>tpDi%3%i{E@|W0KqNhuOpT z3WgNXe1ZNWyOGf%5^ruAvE&ps&H^ivm_Co)$PPUHapTPvpi!1rnwu3gG@K-)nIrMN z3!E`Y?VZaJodxy%*wsRe-3>P+weHMtYry%Kbyt3i)AOR3+S~^HB$-p823X?=lilUi zf9NK_NPIAu+8ANP9uNrj>6Btq@h)R7wUH{Qb~;uddnZ)Ke%+e$652X4!WdsuNV=o;R9d6yiP{h9^Z$K}}GfuD-ZJ5apkiN^MGmG~)~Q#t*;7w{swFLreq zTK8)0iJP>yE_#5QEoHqTlhUH|gGI2!gjXKCH%DAV#Lg>F(aN4aMS90|4T05A#pb)v z$DW$5yCK+SRBvH~7qrBVY zwM%qKTe$HOQc#wUr4GJ1EK{EiGBL9S)*OvHKCS$DQp9W3RHK(YEW05{(i-Aa`8!v> zu1XJKnEt(Ahzq1PF$Uc|OE+N+i?`0#TLH)0ETF6%uz?(!)kps`t1CL^H7L7Uw+0bd z@XQ^(`JXq)%^ z_s$M;_MTBg%0>n1ZJ}2q#$mu}j2x*kH2zuzBc`t>S+k&qNl3O~STaPhYSUIuEWKgI zwTZFjJTB-3YQYVu!`&?VL0uqt(DVo^WCsjyGwkaH_aAiH zFLbjVN#yJdlUq*3>bNjbgL1NP1LKE1C|x+(L^1(rgV?F* zK-pPN@9M(8@PWxVS`pAUP(L+@>oeTrx>Gdj78Yiv$L3Sy4VS=BmMzQX=(20?LYMr- zAZkrPv(OtN2p{Iz)jOsOLFbgVIB^(xew5-!A^*(LxnNpD{h7b z9&L7`f3pU!uiKF>yoUJT>QLk?ZDh2@8-gdg%gx(So%F%qQvDN|)B2d7T)YPqk4+ez zq2pms+WyVE=w-xo-SEKI$G^w0L`))I+*i_b&E12wpiZd3x5|H1B<7U7{X6Lswd}N9 z*04Kpj;Ad7LbSN7(3>}UT?lScBlyj3u=Sx;gm@7hyH=4)Gqdlwa0{+4u&>30>=H;m z_wq=CVXVou|8R}pc**`0m3xuni5{izwy^ht!%;YWP=n2cwe7BuG3zJ5b@h6~Mu8ks zpU%K8@fkQ8o+h$gha)=hlOoJ%7$eCoH$&EsqX6g$1=By^3v%i21!U+T4t@7t z{sVnbJciUST@$}zXbqw^o^&wsVd#&u>zNWuW?_a^)kZ6gy%>%UV7@DVo#}Q-HMF4&V7CN zIf~lwrLt8{FPu{8!LLO(%UKv0m!f*yFxF}93+(r1xdHDEUflWNMY_Mt9xJljn_fv% zk1fBmnerlRzHTn=UhnS74ZY=nuZAl6C0EB;{TqN8k~0BVFT(TqYPIk`ppsEDA*=ww zcRpyOtJ>}0o2V?CT&dd-P@%HpP6zqjKlgEv&S0GD9W@eT$lB7Fb|}VW;3$&Z*M`JA za9(pBh!5Btacl-QllL}@kJ=HdNAiwgzH&KU$+d0kvKK1e;Z`S^sqp&r9vtuHF!8W6 zU}`clLO=z>w14uAOXseENY7Q)S=h4Jn0L`&>@!+cLusE1s>*8=G0p%!o!N=_hsVU9 zRA5(U(PtP|K@TbT8$qthq!i#p1Si|WPY?m8x{q8T|@q9E{smEk#;#~2Z9!U^ZF-O`ojB#U#A{e*AC;tfW26%`-=4XnJ{VkLqK@8J=7?m*T>MU& z8g2fGD)f!>-?E=@NxLpD)b~t8_2p2p{<;0AiX%b^}UVOV*zXZk|#yIc0!S$+>%D({J-!XZ^6qJ`pgx(*`U?+Rq27u zcOb9*Z*unE5?jX|KpzwdkE#Fr{;*q4XO$rec!jxfOG>dGYA7lJJmwK0IbeR0F=V62 zs##&F$ER~onQP!j1Z3#B>cKN;-ic=k7fAREBJdQyw6&~F#}n^OI=S{fny)$IQPd1+ zCh>y9s)qfYFFgyo^zQ9k`$2xF{n-^@k9t!Y+8=jOjW+hc(^ap?cDWQWezsp(6%|m| z92;(?zsXl2#N1gPxK~FRgKpi0!N8exP05&tpy`n591+q`9)(mE71-z5DD@ilKw-Gf za@RKua25CRgr**o8{2HWA+rB!ptNHQaqQTpQJzOuYWkG-5j9w8)5OC-Yb{-mYO*!u z!6yLmK>g;gZO^&>7d^D_|5ZFT17?q?#)Jih0>Qtak5B`4c>O!YkG8h!nbT61KDWep zNbI*Y_P*)par(1EhdW#t^2>WI&Jq_J+9gscwo{7M+L}cj<%U2_-9Xx}N^S-q>vB=^ zVe`M5j(D)oUil!C8ctEZJKWUEUGi^xvirg%+}jpe ARrM(qa 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

      ?w2V(NBP*8Mo+++a*)Nd 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
      OIG&I0oLSe*YfHZm+6*K$-J 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 z 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
      GHrNlR_lL`-d876OrAg_bA2Zkyk_jj>_3G6 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

    RYviB+lsTsDIp)( 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%0Dpds_0bnuo$ol(l{r8p~^<*L`xTRdqUVXv?I0^#{ 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 z zp9yzsGXTTTvhX(6FNjFBz&UpPb}E|C;08#J=*px`8WPAKexYkdS~(WYl}rK1X5mm< zGy;FM7JY>vU%^eY!K|vlxd>YB2?)w}vJEhE4}Ux$k@@I?l(oNdq@j-dZw=L3J<~Ub z4#?ZSi&<>SLB~EphfSchprJo1ApeTSeoNV6m1{}nSsY$->-a|=A`4xHtcs4QqSduk z0;2LCWf;yqDwy~9l?&-0dv!>E*?0D8A;r;4pm=`^2YLH-)%H6y8?X^hv3JiWWkBuG zoaUQUngS2$set#4D8E|Nq|pvC!iU)=YMQf8ybI1M>;xiT?F%pgPLKGIgHfwOdi6q~ zb1q^!XXwT?f`XT*TH1V7_5afM-X~|BGSZ*UoSrqp-P1S+;E9= zI!C{1|8P3gtVuQ1@mnS$HEMDOTub|MCF@sEGb(XTR5B@YE`lTImiwa};rd`oZ5JTX zrTYZn?W&>Whi{;@Q6s-FNjJI{2&pTGC0F*pM&p1U?HMzuN57CK?zw=x*mX^T3pHEW zHOppZW}qAoTA<+kuffpp_z_rDRe^^bfZ4U=#Q%C1q&+ir^Q4&& zSM~3tPa(-5pR=db|CmDcHoI|)h6dQN$7BU^93b#U-tQU5p6Yz~j}b@v#km6a!1DmE z{@dxjsmNIujU>lO{FyO^o8n*>03jE_w=T|E5XGr0Gg}UIry|3US?%aWj=>pIcqBB6 zP2MA^_6J8#hYmXlPt{9!>o}#kl2rNz!;uccRw4!CA3 z(xPAX<)q*d4ifM7El0e%(+%3;Tq^;pb{o=E2T_re2ZjX2&iO6`kK(K&wM76ADR}M= z%hzk=T@P&lyRwit@SMDfsq8Rj0M;D^O?D@}FXf(g5~EZBO3pFeecqV-(MX z+&KkSJy^TDvo{vi1cbD2nGP4;{2{0fZa+JnKpbNvke6m>eCFuy-Cp_{qVr*>*I}#= zti@JxIcK^!SLY13%uOSY%}8wkj6teJr=VMQW`vFaE?XG!y?kBW3jg#OLWoqFc}V-A zm?4`v!ylF0KaT+lkTy5ZIQ%K^>G?f2jo}KM)*E2yD=#Z6QwJyc{vNP1gkJx-!Of*= z8lw{Wxqq4K(NytKAj~%ZZoGlRL+G(!#aAbbpKh^COa?DBVeQQ(F~4jQAKGG-Y1*Gw zpG?(U+Y$D=mC3biRpn0)87Azv#zfS|C;Yp}ze zHAiOVhPAbEx0KAkRU`fu&;GgQ7pJ@K*ORH2nLd49N5br^9+9j*3l(L=8vogpKj*D> z@!r`2trtId-~0#1^KZKRr)`El^8Vtt@9Ouk_b*w4{D>a(3wD{04y6MrPp|u<)6=5e z34^zK!wKt;g?i43Cew-V)5ctU#vNg-axKm9c~m64;GQCKSQ9yWubb|4Yo6(A=}=s+ zX4IrBW4C7E+=9?^=F!48t&eX$^uH;4;ojHBv+;Bcy}@!o^Iv^ZC&PLY*q7#*cHWar zW3c)#-eYIv(B4LaQuQz~U{p;xLN@|4fKzmq9)b)+ym8V9t-vC6ES3Q#?fH--VaBB# z(NE^G5~|u6d7GqfUK7$uB@EbKEH`cBtWQ;X7eyk7{UIaF` zPNieSuJWqn%1C6-R%(5|a%aii{$WUT*tYsPp^W(`C<#@mAESFM2X~nZ?*8r(j;pk2 zp=)0%C-XABK1abGK3peHuEpglRmc3dChF8g)|`lQN5XjNEwcO1KbdnXbv=tBrP}mI zIjcS!j#t)GyZBW4zx=e3E1--d*C=FzEPY}vkGJdWmbLE9Cx35kv%to{5Q(#C{1xo` zz0B?%)~e>>&zGOQ?N2{H+}m3>HC9_I=XBS+PP{0CeA(sRf@=%~>*ZMdut>}gcCAX( zxZ|*%b#JOH-(}$T-+145#bXm}ECPn9z2UUC5w;qQy&7si{Fq&rN6FkvHD*5P*kx{} zi6J-7rYs4z)c2W=E_?EEbxB?~b$kDMxg&U7gzc+5sqouRxm?TM+x9mdb{;&Rv{bg$ zPv_x2NYu;d?nPsCYikE|-} z{!!{6ICy6uP=U%Sy>rf4w;4<0R>>sV(syscHvV8t@o8;1T9WPgHM)S-Xc(-#pto21 z@ms^5)z!W)T4s^)(a(6j=?ei0@Nv(>-0}+$xPXKNmI(@l_Vz)cBuCe_SyQEKrwqT> zXx;5yU0J_P*nIHBQ898@MmPMz;SayJR956$n^MeXN<+@_nNQ;ixOrt2>OWcf|j zwwe|TKYU%;rgHmpe+iD(oA_ z(7W+f0kZCuAdq1 zD+@L=qxD`z3zOHFqth;G4aaP4wQQv~B6Q4O71F`uE)N?ZSn^<5Tvh&3-JdvB`6BQF z--8YHrwa%1%HxWcH9>t3k5#zX0`GM^eMlptYhLs1%BOe#<%iWfmvtk0AFkIMOwW5orntS3W0K(b7GM-7Gf~~@y7l9T6H08 z2>RMQFrRF@JL#2#wW|IZYBP#NsBtGfREY~W(htRL{rW zW5kXG2+rQ-msujJY_2GLnx zUo$FKlZTB(0C!ByGBB3o5q5Is*beY?9b_n_!?K_Iz*4Kn4v2;Xu~x4(>Ov5GE3G6}KaCCoF-dwca20_RmjJCoPC! ziH=L7kdP6`0`v!u&SLi|fFF+!HtCVTHiB-RTqY!NYjqSqFsH8TH09SUe%@<$Edv`{ zDvIORJO_rH_>#6RoOjtXgMEr@!VBk3y9iqgDZ-US$THNrWSR=>Nw7BQ086M;$xpDi zp17efFYgS%#5sHa{sYTcX9o2PeB?}qm!H`fJ@Mqd+~Xgm0Wuq$SLI?OKe6R~@ceer zo!laW|A&ZW7Ao!N=R(D+Ca7~=_KSsg)xtPm!$8CCBzB~ z5$s6L4@7?t(v3y2D(mr$#iU5+34(%Q;qje-fRFD-2*p!~f) z3q5~Lt~rGs^T;b3=FqAv73>Y6;)ImU;G3dG6F{?G6B4IKI7f_%s93a|OPaGM5CXzp zVt~zz!s058Cjfy16DJE3uhR}Qj< zL6Vk!dMypcE~|x%f)p{6PU}^C^DcCvil4JVIRRr&FSX}`x10}Rs@7UUrPi1LLM*ka zDy5p0Tro3>b`$xd{FEsVfQi*;IH*x0N1KKsz=Uu2fbIf!wTHZ^(1EKwC27T!U(?nU zm9IDM?e4hKJ{{Q%&aRV8 zt?2H!UmQuP+p+1We~qN_o(vNsDu%JT>{>GlrR=|lY1-oJ{=frIBwX)Lto-&WqO-f< zQOSn|?+B%t^y_1`?+or5Hi*Q>W`TBe9(0|Dwe8v&TNe@1`v?w@C<>F%;d#T)*K>si zww01Co8FsGH~(+(!ucDlPm;?U#M6fY-UJF~CCM0QnF`a{Tls{eZd6Cg;x?kC zhT$$foE;fsJeDe{KdCE{(^8}l0GjXOM}n9%Ig;rdz06m+S!q==8Iz6S!Nr z-k?MS?8PYox9(u%r;n9{D$IA*5G_TX;z2irpq20F$Yc3)N%@Ypq@5W{^79*V7(j#Cd}=u<2_yAw0A*#vJGrE-5iOIL`#w=Q<@ZI-?fU(Jxz z2=}*>0PyA*nd7tnUVVNlpQ#TqN0DUy6-aMkTYw|d`~a@WguJUyv5ZVj(PTVXw)Zj5 zjZx>NMZdDCnkD`+-AP~qvgp+7La^RX zpvcYk`3&@=it&?0wjR}vknx`*A&g>HO>2biDWV6yIhseng2Yb&&AkAe1AQ9sWmr{? z&!lK?xZ<;`EP)uM?v{~P6|-S|$7n-NPQC{0u?#SlUi7=hkSi8lRpsIM5Wj1)?K8IF zgF6MbL%6t6teZ#%Oxm54>WCSmG&w?Agc+yT_8S_Q*MPZp+`j$MKmAhYuT0Hojs$FUmJq;~f|3JQ-5nGTyK3-Pp)?sX()Zq$3wj zRIyOr008@xHy`^}2QGg7ASVTEQ~WP8E+AForoIS&&u>X>xcyz?I;byR?)X;44tA#L zG0ELT>X}EeWDA{o)<$7@lY^Dz{C9t>CK@bh7QXT4$};#J*G`k%cNoWNu?K2&zSTmPa<+s!g5k}2qlLcFTDXGQK z_p$~@(+{RvwS`+=Qw5t`@mcn}##lccgdB#cw&WgKK#>WDTa@kQsAPhsWq^x5hDXp+ zY&CQ==TWhVBuZ#M+wKqp}ntg6{ zeQ9me@0R?gm{W$l>TyvwS|p3sw{Kn4rs;5M6Gi6r+Ar4gArDu4yGe*lp$(?lI}^C3 zCjMH4j6P!wEYvoTKsYKQ_4Wxf?j!D<-kOI=O)C)_jI6uiZ9HL+2Ge%1%gN;k!>fWA zOf=N|B&igD#o&e3BNKX#Ja|V|XIkR3w>-43xR`l_fMER0c)SPsDMZ9#`&I8Y`+pDX z?H?zX&+$ghtkryWVT^AV8Nex^x*p>m@^-;*+U@&`%&yM%naXyviptB}*l&IHVC8Py z*HVaB7@<>`xfiRdxTJt1%U1tr z1-s}DVG57vg#@1+zE#6lQ@!JZSiR|`dY?c?@V@sl`jtk;GOT&Mh+!gvmN=`Q78Yx+ zQ_c^II7j#*k<^p&_99YmP5y3V6LuBQ93C>Im!sC$?6j8UWuDphhJGhqUEe*gsp*E) zg)JI6jVF@CG-{4Gat(;Cjp#>Vhg6 zf;-Ek$Tm;1Br)QK`gm_}QcgxjOVtj7tPI$dR+ejB@%T8zb9K+Rhf)TqlpulWyAa0^`&6KH41pIbFTI+u2dY(ocm)*l_ zXAYNDrZy|DY=z78hSO%*KvA0<_+^FShiF=wH;fe&6hF-pXGx3ZA6K|f&}lU=x628U zLax5Z7%xYxT&Q~cX?%j3Yi*+~OPy`J+Aw;Lrg_Lab-Fk+1F~SfIx!C7s08LU3+QUZ zB^!W!IRh2xNuri*dwZoOVf?V_(4eqeL9b@Fx7AAwy(yPR_v&|iu9ZbvGB5XAUk#3=YBkV-w5sDlhg zQzRY(lOa^PT(p<0bnKF;=jAz;n4V27zD={>jhQIDNnzb4ebbZiAbXe`cy#A0un?CG zmR9$?#6oqhyq2(vly2yd5H`UCj35JSoq1UOq~_Zjz|^~WxEaO$)o!`Z(wTe(>EYg> zW0eGf)~99X@Tt6Oet*K#S_t_q6#tZHG^b;liOJf}Y38D;_@ltzt`&6fT~Ne|nGC2Z zDGl0)ignk&7C!TqpX1(9cBEzA3@%JH^^#M)N5a>CugWgol}gJW+(R7i7TpAU(9K(A z^3R|bmduc$? zCC9LucgCrtB)GrfD|dbUrZ8#VC^?MS91I5M(f2(g@E6jfS^+Lsq7#H&-dh*8PdW5a z-#<*)^LUru_}$T{#8Yr>Sy>|Pjd3Tu2(5lpODlAJ7N}fBK6AD%i6cYVt`V1FwiV1a z&(p<+?70}$MDI{6N3V2!&=b4$H0|3H3C?5ZjYhkbLdDVJ*#}aNLX++hI%RJoo7CwV zC#kKsO6Q{D#_zK+jun}gRJ>pLI!vyo#>EZ>gLKun*l2Dat8}x)+*&xRXOR@tg~tA} zfm-+5?-J%z*+VZAF$m@U@c-@CUnzPeStYTe9d}E>9pK!%aMzakdgdB;cYPE82)jC! zMEbL?1!4T^&5DNThhOusoJlN~(QhJ0aI97|T#KE{zyj(Bx3x0!G*JVy#(fEpij-)S z{?#TSX_QHZb8%^CZfq|RMF;o&?_?2D2OGw z6d5(A{&ub~W82z`g*r1sHF4X;O{$^>(mPz08{t}2vr&1A_SqUau&Szd2=xg|Z!l3p zg5r2i$;5o3iy0hGBmF4*QLS6`s=W`K*> z?1lbJQ@D1tBcE4}Im((}+~dGuOuSEMd$(evh?Ed0!W)BMmR^EoOb>DBu8?E95At;q$AqkH`265Z`lM1s#SJ>zfw%4h{kvx|51E|7bZA>Ja zI{WmRi*3&Vuv@KZ;1|PMx|u5y)n&P{WHs= zSA1SW`<4zOJH>E}KQ&SQt+m~VO_LUcbxY#y$Nl`0`>OoDWDhN>2J89Fl%B1aBEhG? zj+V@!XRGXO+FS#LDamY-OynvmLB0j|9yO1#{KyGkg(%T)4l^4G4w!^U!sK)YU^OS zvK+?^Dl_`vX@N;YzT8%BdDEHh+SqDm*+9*yyG^FasXsPtU4aMHw2M1X^bTJN=wc5h ziVV~BBU0PtO;k{=>aryA@$b6?A4VI{ zMeR5Mp+@Vi2GdF&7Hdq>SpuP;1kd5{3f7>j*1+|1py`!>c6DWUf~3hMobytEz|nIO zDU&8&T{paj!^Q-S=Z^nq6JEBU6ocsle$Q`pTc)(HOOM}L&Ub}ZvrmYMiqbP?O3)Q5 zsVc_{GY;OGt}t@fh$}%%w-0IR7|AX@n_My0qlhmuGTUR|J1qJM5X`t0?K%BK+4AMw z+2zjNb86hPcIlr#-_5#RP)qzdN^?`3(PL+P8z|_2GX2>WK&un7mfS$-KZqO^P4l}t3LpRvI~UEso^6kb z)6GJuF9dXi9bR({SBdkubTff2B=(63{BqU7t-=bj2M->k-O6v@P4$6A8yk{KRhuqw zs1}IB;1Z5~)|WHUeicorx2)~t=Ndwo7SQ)Kw0jvO2l5ldRjX3YdGeOPn@3hHF40T` zmwJx7GN}rOTwC13ztgcESyFlW)7WM^Nz_sF;9UTjH7c0tc#}|aTk>cFJT5~fF$-+C z>dbAp6c!vK&#_A8@$~W_K}e@C87RJshknn*tv-(g0MZn%K`m9P#nRu&aYw?}ET~6b zlVzEd-qVOVO%R$~wMG|Im0OrH&g(NK*}CmY(sjy(U_q5j!#M{(9j=n)%PW2v(i&El z_#D5AT@HE`Uw^+iO_KU%o$rbY0IxNaEy z!7TIk$Mq!qcRbp`VzUouGhh9lW=UVPzIXwoQ)Id_)M&i#>?+aj3Kw>_udHBkb#m-S zl@?XsoxIeN&=DRovk&n63=T?s=Rm;5X-ljImy3 zlwzbm(JVqT_PtJVEvCxNUgVvJsnb69yj+W|flg7OCZB|cLRnA&uP5koQ@aI9@8oFT zUg>T;j8)KlrN#Z#o}tv63M{G|Je+G0B)Br1gS#|bEa7;t9V8&)i<(O7BtC2yDl6`X zqKh9c(=sw5)wC)4wHuyTJPUt}+OY4ITJPNWs5iJ?b9&O2i!1)|eD#WF3xgAi@Ka>i zvDV=adWueaQVOdNOti$w>y@~W0O)msHR~};*s>~^6g<5uDz7nh0zCjO2Vu1i5dLCy@yUnh-xaJNX9N~YtrO+`vE zxi9i(_afO|^|~Le-aPE3VU(8}^jzG;*#h6hm9L}Wjlx)gmJ_3#9pmaek$(EeKsgEL+F?fA6P~7R%R&~Om11M0hhhv%3TquCiFR(@Q&QB zjEM5Cn_by;!H zuC^tsoLdh9>CFw&t$=j~mCDP>jh7WIjQ!mB6xdRHckXbBm&YRa57_qN z!p`Ue=L+d*V`iEp&4;47c%T7aJS&Vpx@q&8_5Jz^){%gK;K#MgoogFm4Lg_plJxx- zqD6B=YlVy2%ud>Z(~_gH;gq^Qq&J$2K6q{~^00l$J)(bUZXWF+t+|-1ox;yY?2&xy zppKAfn+cSwt;$W@U7t_|EVETBsqhLXqfj?_u$7XcXpNcxs)+1ErYTa(Lj`;%K~YiC z2qvi!dtl>q=GWYD$;IRz8lGu_tHe{A4DCpaVo<%cFoBz5xOe+`*@=F4aJ|vC zjESDjo&w(IZ+n-UG2eRXr8_h-*esuOj!B609VNOe&gO0Dv)Otd+zGlR_h`ENk=|3D zG_vGnf{1|SuYt|`lpGj7@^2z%@wM+)%a~<&+Wi;o%L82q6s6iXkg1b`Q&_gIGFhdX zadAZK(0EIEEO_yD!;(W!F^X@J-u9F^{HT&gjJR3g%^nst92$ouZ8VT-JWxjEeark^ z++OSWBsnAFM59dA+-EZ%hsqnR81&6x*?O44?MU65AwO2i_E(Y4${kgwBhUsC9?+D z@~oxPrZLv+-6c@JV-eJLnIxmb)*EUOARLzTXWp@TBmez=ej5cz0j&UM(Pi(u3SCX~ z%fW9zlayi;<30%(At-GoTfEfU*-sUkRXT9vPR$wKmDr%T9iSZ2)ybt=8uH#4$y~QK zvlwVD%ivS<>XinRa9{9rqP(DHGGKyCc4yn~iQ&;xQsOpHo_^DsLh5ag^@#8$q$Lg?DZ(Q-#NsRw(`7^aRz`lc_W3+HfGOre)$yX$JW}7K}5-ly=$a z0j)ApvDG{zS(Nif(x$CayNgFXwBDnHvMS&@QDc4KDe@)6_V-s*j%TDvLjM?Bff0 z8O7}jTcZso%zaK+(FRjYrM{b=N{A{N94D(a!l^>yhV<8j>sQi)zHxEIoD=&I9l0H? z!OPR7*guja+eiKOeH9>-+HCK06Ezzy7i!*zXG}AZ*6R`6U)3D&%j-dXLaSgm!u8jO+ z4-b7KahK2=8p3|Aj6|cx(D8D7?^B9ed-HWyV*H5lh2{pae$A`hE)EBk*m}>lwILZJ z$I9uh+Ot0Obcp0tztA2kr%Tn_eeKmf?5i!Cv$NmaPWBhDN++dB1}=r??dPMnl_?o^ zrk%gVkrE@lc8VSxUt46g2o!Rd{xDM1En)66r95JNfMjOxm?2vc1z(y%*-2n!&_JPQ z(%WMUmcJX^9&>d#G30&DSD)?_hJf{c9q0m@KaP96hn%=N6uov>${9}UygE@e%1}V3 zD9rVxl+CU?QNlChPfr-B-u&w!gD>tLXz&5c`j+D4GUbu$DtQz#FF?UDN~ z&Ie28V_y@bH~jVBRFM~$ZgsvKSD8(pIS@qXug1`Mh+ z)Jb|gz+fW!1oOewto3P@WMx`Mgvi7DG#wCyX1PgA(ZeDIRB~O$nI;9lFzoQeGF$CT z^iI~?Q7d9>3`A{?n6mEJyX^g_Wrw=MPnsoux4?S=Xfve}uAsH+>TC{Z*nOQhJZv>z_8HLyAxG~Q;Bxf*p%lY5 zbmPFXoORLAPB|GE22;1YfaAE+#C%qz6}sZRd=2;0SL}_NS?6`x;I9$#eL@SW-FImW z)Yaw&6c*02kj6fne=G(h0nh@fRqf$?HgQHs$NfO}X&-7~j_~-FYm0|FRgh2*YalU4 zHaKTcs)UZdT>VgeE{jf&oBTBsx_Lx$+p2hWY#$ES-(v1^-;Z`829 zW7sK(@YF2scCqs(3opHKzUEC&5xj+CO>~ zDVSmYwz6@f__k_>xIfO2%$>E-#lps5F|R@q#&~~KMgUuCBF?g4G$wSJCZfBko1i7T z|2|~l-~l%M0_6JG;2@^lt(<;srg1#uR-iUSe}L(dg+%_t)c%+xCWB9|TCK8e&+jWp zos~qwDbC+;M%=hn+)b+(#qJNYG(eXP0MxJFCw_iuBwW`ss(5pnIdyu+n@dsf6T>3) zsA#ku0qBFTmmv|Rj;n0SgHkAcI$F1$fx^8&+#r^2uTiDqI9~s>Irs;tG)%c^_lGn8 zZ;r9ql3tlQ94l99T0QJVtPGU{h~r@Wjh~;qyN4Fq_q(Y~h)tp((9r^?Y>Y1(A96-R z%P2QZWIFZ-RIb*z%R)a0x|>VnTh>~Ir+Wm`3GQzr^iW5yfHVfkdJVg-Xx53d1<76F0W381V_0{2n#gs%z_6w^w zY&v3(?Ic#23h%mz^9l)*kaT4Vg+;e;X#}+Qy(c0_R(em5c<(8GlMYKxxS+8B^r#w` zCq6%ks<|+BkK1lXH@AlBK-TC)r5+u`5)$UhYG=|E6vviz?TMJf;F1cluGHq!&Ha9Z zis{_O7x}dES(zlPjE0vJLYDko?>{?ddXKs-j(dS;BQ@OftW=;6y@*DmvFSfvS&tt$ zsxBYX9USM?K4l=i7R9c$yzJT5rSH49!p$0MQ0QRE@7A<6xAyV)n_ikPU9GRY{Icgx zZb?b^G5qJG7wr2 z6g&;;+@Jpnw2XxBd~tc3M%I-wp^EZ%@UJaNOt2R5uD3-Nu@^9*;e3LQTju zk{zxe{p9|irI7#QTw`g$m3UD{G=rGyn37)1b0vss%aa zs)IZ(J9W^CfK4B$N-a`34p66S$mNa~`K(-{7oO@G>Dv7yku#nC0a$uawzk%`+h+;; zbF9*W^vpxs`cj)$_J6BUXvoq`>xT2{`q&kOy2|PoKFMa54=MHbKF_s+`-*k1|7sf_ z#e{8ZKUj?@G9CJ&E0CMUbaG1o`&QBZ`oUB|^sR>ap=F1iv&eB;$QL5XttMuhlM)BS+~)N2m39HjNyI zgoNf=&%wF)Y1| zYPj?(OLLPMdf5#M#=NLS#Km<*OXmvoun(|e>YmiA329fV4ia(=Mg?`mpiRfPoc;CJ zST}WdjVic#Oe-f){=-(7Gv#>*j02kls|@@CX@^6n*HMF%f(vuP$r19fgAS zJEG(5?vI%U1kYaR#=2&+9G7U%H{1B%DY0P0OCQ`K|26VF^8UePIgPWRvvqUCFW6O! z=AgsAqY=P`z_9aABF_Q9QR`zba_ZO}PBlIDOKQV)>NA3J^vAE05Z9<)WD-0|dv?V1 zvVN0NZ~|_~$fejI(~xVfWh(DN(Z1URE3B~)0?%6lE!43T8NaO;F_fd~Y#J^#35sGK z(??;8MfN*$n(U!8!h|m`;YOxge{YU2*W?0u^n z8(_eb*DG>-_uhrS(YpnO(p>wl$*wF_#$fUOtkR&%d|{AbUe$IW^IV~p1G{U-qqzNc zzOGUc06({ued%D%Et28{=581C&01X@92z+g#t(t{`I-n`l^3$0T9oq^6Biz zFcnsu7Za;+AD(NE)O%$~9UULdY82!%lDQBTA9o*fUZ8);4>piT@Cft9Ut0YjoCqUt%LYN1n#;S9h^CJLa5c8`)`c z{oTF9`%)sn#@A>%jp*?lo6{~sv7bVTt|#?AnTCu}do2O^q-LmN$>JogmNb*J9Wuqp zZm-V-ajU~IZz(!~ak8I8VuRVgnO%=L19=T~xzdiu-O+&MYMI?;!g1!?WCUjVu2NGukbbe)s3EE;yKeAWev^a(-qi? zwZXc}cGTFzIg%X)emWRT%HyE8ruX((CF#k0vi`(6d$+Nd0!7Wj!&tJwxiIoA)w3w& zz2YPNfnk2XOGb;IJZ~fq6j@O&uR2%|s;N<9hvhSf`9Hwdd z(tv#Ri1AyU%K)F^%Wq!GE-VWRkud}UEuV;XAi!|>u*yw3nPh!X^YQnk)$T|BNjm`G zH&;-+TBaoQdBTbNWz|d9ro<`WGMHTL{1{=p3@@V;7vpVwA+PSo7TJ5`^SVG?&co&0 z>odq;&3&Q2Ut`?vkTB{bn2y(UXuMyd{~DKo5k`^u5UyRFUC{#j%w(*bN?#(jnDn;KF z4KAN37u<|f6GwDslLgN3Uoxxr7l!%3a>ck7ryMwMC)vR?vwKV0ghHP|HZdnKKp>Vo z={mv+HlvFUdVdVG2%Vz_$iF+LmeO>FV*I_|M0&zVl5P^1z9R}(v}eSNd~R&|4veC2 z%N_wz(c!?{T5)(aGaNWPlJt1%V5XAw#JRp#I*{zE${qh_gVJdiZ#jcn-7S?wL(EN1=j&ZUD zCHc)~x-(x+kXDSPokPqlB9GHr@p-BQ=vR%wJpL7@2>gW9#5C@~!W_Z#I`$^_yLfIL zeX*yM=supzX%*0Pd5`^ve!Kf%X0!bS9!uCOhh>*jJp4Qj-EGlTha`TZRewACN$KbA z6(o_ZZ6?}*(;IfO8HK!8GWdDF5yP|!iByQ@=FWP1q7HqF3;9|~Y1?Jh|0v#E>`z?@ z>e}2)@0Bb1NtKyLp>9&kHRK@fByY`3(18|J z*~H-P#G;dfHjtYP&y|JxA{pPSx5}(hSw_@Qv~9M|zPrJQn>7Mmdx`3;UM|L57v9_y zPdotVV4&$5P;{nl#9-s+bG3BP$`Ie0WJD3O$FhU<=`#s_qCx=!<5X^#=pV6b>tEMY_l%8-Rq+AKmC zec=m2UdzzL6=6HO274tXUe!IPYbhf1|Cuz`2Y0Sn+>c+ur}?lI_xhAO>-&U+I2e)c zY~8{~VfZ*N+4xog+Hqb;D`l+3dC%!qx% zU5k62xbPEWuH7-{`rY~!Y zvi0}(fVLV23cYr$(3yhE+N9I>|EJxZac*Vp+j<>gBnBb$Y|+0xw77jNRJ1@RQ~hIp z=jY%3y*ebl*t4PK6tQB~>byrJwZrgDH4IJoF$0HJohmOwpwUu3@#PWQ%$(9k+NMPA znNNWqO&apswxSbm$2DNNZ-ZMdzSL-4JgC#!5aSmSFrzNfJ#{P(cemNi0NlpPCrgzl za31>)2FcEE`ic~ub!+-l20CpMW0PyfGBu|$?|pagoGF7gc8YyJg=4%5%(I4VhMTXhRjlca!c&G#7~*IJASBv6E{yx14BSk zB32BC_n8H)x6wN%07id7K;ec!`b`XF8bs?)Gyw=Fnsu-as@S}JmH_p5p6~3IloB2XX4KF6Br^`rtcErUCl1Kcw;Kdm+xj(9MecAeIqbrUn zP{9%4MoxiQ6>@D7%ND{s7JpO1RbOqQ_#MN&Vih$zohw($zRScJxp}VozF?-=ZvpdJ z#9q$g*dLHB@Hh*|bR^j0^>tUnP-V(7XEWETBn%>S0Tt)0s}fEy%CjwK^?LFd>a)YZ zsd^@j^jSo6`W+DAooS-Ropw6cE~j&bX^gf>FUn+@+_!ybVEZQ+u2egrioFuglqsH4 z8zlXoeR@g}%?&*fy{yN>FT>UsdFvIR=5=jk0XkL!@*LJW<8oPLbBY$>nHU4Bzx)#e2c8_rOp zo$Kgh&b0x~{b67v*?nk+rqeCkOYg+1(`~s4f14EfBz%r>te5>t<)Q{|IqSPFzza+P`Kusw+{NX}SZ$F%k2EzwmJY?q_PZXu}PATXc30Z$s#7!loGgo(vu5)s9ebE968en5pWdKVdFE2m0 z@@?IY)nq`A^v|E?fBN&hpHOh_;r{+U7i_?y^ze!cW&JOn1SX(|1&yVQ%3qTDLv@TF zg9RN-@`EdlW*yL`mFX{LtMVw4ur(WFFJD58T1w<8t5C(v2`udc!VrBzr3URo6G~VQ zQl&?P5mkls(E+PALK34)0B3jdVuZcIU3}9dlXVq!Hqm@H3TRh8pzZXfJe7M+4JN^X z+7^ZBkEApsf&b*Gq~2g2a7w1q-BJBBWS__X@%dR${2fQG|8%FO6;hYM8h-BwN?&bN zD=m@lH1F`P#^i3xcL2F*G6&k5R_0bOrz>GKI{5}IEjaCDk)Pqx>8v|R(yeM<{R)~g zy|)KMu=BEji9;T+fq_-XR}#ChZ#Qh|ku6iuyG_ZYzss0%7hpnxBCF;PgFG0Tvbb-h zBb(s&*n(BVNhc?0GItoF+IPSMy-x|+D!SIwU6cZd5}_G6|EbywD6;?M*M~nso=5uX zVB*^VR0>MI68dwn#mGhq8rO+kzDrP3YLi%QQ=%+Ljk#oIMTPwf-zyi@CM$g#?dLzT z@Yw-p1tnGovm=vaxh_!Z>;yj}&GkJMMFV4jZlMc>NZ?dWdz~UInpf=x0ADIJ5T5{6 z?V+C3Y%I!$S0qJ^F#TN^_pk5mU*76pefeA%*mH=-pJhF)zVj9R9)VAWR<(podYE2Q>iI+tc7LD?n<<;4@rWs&{)|CEzZ{W;RkD zv~y#Bre{Xrcz2rg#utFs0pjS+z|pVQUO)<@eem}t+OnSYQE|${#2_GdwLerI)Bi*h z%$e&3coH=IJ5Pd`P4?#>RBcw?brrw0VaCzZ-fhP{*NFT-5}tqg4UgX5F)2R98J=Ko zBhpSup>T=aQnw|12XJCheial{+|qu6kmL69eH>#*lC(W1RgZ2s=LTS(eIJ)*wXZT zrfEH}aNp0ibgY1NdH7%J5>u$#_#^4+s5q`7X%cAq ze62chPUV)4;#=g?&_UAuU-Bl~?aeFEewI;AZE8S-=mJTMq9&l6WE@su{Qr59{cpQW zL*zLP*61|HC@(9wWump=ls#LgE;l8%+20#sKk!aOt*wjSz`js?x>V3Fsb`FNRV_S0 zp+s!ncen{5UVPyB(**!?hnXWa7x_RFrN9eJ+cU!~5bq9fi=O*-ZyTCq#e1zwn2WT! z4GVz`ba${#kk0mTVO6tlHSj2?((YKj5I`7)l5Ae;eV) z)J4ygkkPC%oq_G12lxA~iH;Zh-biMOe#GU$sojv^mvIJTK4X2qyQreq_I#mDb~XGX zg!bWO%K8-a6orh$2LUx->E(1fYvfw^{(x({1mKwQJqMZ~Li_m1$R&)vZt|HdK=S_J z=&GOv?!;-mQNjQ9o8^wYbFW3=>%HOK-rk~PgzD+r*rFs5)3iri-5}|f+{|Hqab_`e z>gW5Z21M1hdsOABSk5bE`Up`u<lZhl zdud{|9%U-Q~f+AJkB-v>!YfM z3Q1A2)VQtC%Z&V|@%jh>pic5XieFpTO*Y!KA*46 zr15d_q56{FIV$6fqFCTEZIPa}OHiL2O<&eE>-{Wk#e|=;hCMztjGo;0-J~*V+gSG0 zm^X7 z&C46Soj;_`3pGn68%XL;>qD>iQ2&DZ>1ite??YPPW-?_6O@o;-CHgmvfw(LOis{d! z+o(Lyspv_j8xJL}SNq5SU76hTDFrQexK8{nP+m0uh98>>Kq`3jIrY68grco_U{#=q z>mOlOarw-qoBUrLm;CpCuEIrN72@^rNhed^zj~kyU=HE_-gNT$&kkObOWhx<>~8QKQi|CU z%oICxGfxbV1!czCsVJ8A*GxbBCU#3Bq+*bP%0}d07w27j=g{X`;}OU=o6*tdQ5RFY zOs}k~5G=v85F*AdC zeNRk0?>*lf^5hKQiQ(>zbOSDT_l$7_W`eTi{l|%;%EU@QVSaCwhY_ef-iZti4=-#s zV9yc=3M;_PCr^lP&r}N=;xVYm}qjou8F>CvC`X+e**Ny zksr7|2{R3)QvIug1(=tm#9@oow=nBrYr`I#gD$VT(odGowzLbH(;`c4Z|?xSeCn23_$X@dI$;a;)iABZd!8VroErl#O)87HGTRHx;o3&q*r$M<3Rf=~jUw_+AjdaLPnt5k?4dp) z5auG4_AV(OREj{B`G_rfJrS#HA#1^RM3GxaoX3{CJQ(?_k_aVZA(NOKt#m0}|2f|^ z6XZJbsHWCe8SFQjIcKL#nCixSTauQ4@QhAi2zafMzunI8MQTQyi>`{tWZj5cF9iOw z-;@5wBq&jgx?5E05OkSUVgy7Px3i3l@ZAy6P#&6(a$I`PXez_=@*N#Ip)caB7Nex& z?T^TZof`n<*`MP@Nv608qYn<~SFJ$*Opxl+ZvwP5B(^XU*ejo3yv)*VEE2Q@Fou!w zoj3H=3l1ZM&WnG`3aRhYS-y0pyg+cKUGx+mW$vA^z*N0%rCtgB|6A6n(tkK0gz+B- z!w8!&ySkONH4mRzx2}y%ZLnV+0j*4e1FoP`F+H}jSzWwTRNQ$hF16XqXd0~O(~?*G zH+6QrmU`dUx6U2-h~hRkH$Q(SAMCI+eOB0n%+xpowpKPxu;OB8bN2qcXF<4CgPozv zfpI1q33?x-Zr%DxT7wXso=oy_P2F87v@_Cu*`iRg18m3%;=si$a`sk0;UFf0k$ctU z^@q8DR3i7dx)@*`1hZsVb_)U|A|CE|MehmXT(Jpk9Qt*zWbiPkx5ObJFtBkLHv<1i z&gjhTQ2ihlV%UIkMpnrkWv;BR_Zk3Ka@2cd21YzLsVs1(5&+9)AxftX`pY~pI{xCX za@xwRyV4@^|M)5Vc1g++Sa1+FQGT0Ur@Qq-c;7(ux5I6+a%ECl)}I92zX3XTPKWf4 zn|X$bIlU0UsU_7k(+y;>Ab)g!jwrA%9JGwb zuBLkeNkpp0H~mH49j@o5BNBu!`oGT#+azp>iV?MlM1iIiKt|otY~U$GGWSrcV9peM z&KC#zXu^HM_uv3?lPnl4nZ&T9ordKEoE!fsQ>*^*>eZ_{UGhHo`wzo2d^N+vdftbC z-RbBk3)`36KM1JfOmZ8s2YMWZ@>HsVpO5$6LT+r9pK`A1;`4V>d*D6iYc~dxky&m6 z#!(;k1fa@ z7Rd|G#?iU~i)hb|-2~u1r7=u>SNSMP_vW zxe~L_-mrR}g}cwMrBuvPoTKLKw%nFAKjAa~ZNMpXZty^Jf0ZRfjk+Sh*15xO%U0<^ zhwO~C5of>G85<%Zl1#pu8MgeFv-5ZOPSMj~uSB2W#@Qx$*sC|Di#_hvgg*PW-y!eM zt<{}kS&hXXeec6YD+pA>w|^S`v5m!t1VAKcz#o2Lsf3Kft+p&oaynD zP7wAHv-&q7{ZAGEbSnP`|M?rMp1HkI=ap*?O1o?M{MIK5$EnMsYj0!Ip*6sStEhOG ztJHEaxQ_44uSb95`^-D2k)-|F3AR4SmcOzqd7BA^qxsTa(dYGm*kN(}Ry+#~obLRG z-RiTD;{7Z^0jZ_rT-^@%|Lq z4i^s^Zgc|il`UMDsd7l3@$J*WA5An40uG0RN6@3OLZ`w*@`K9$-7w(nhy5zZ6d)9? zcfJ7!Vz&g$=q8v#$j4AprAei2oIHfoK+HD(9(3wyK2WTeUONTz-r50;T{mx-G^=x6 zFnAA3Vhd5AHr|k9+XcZFgTHt2Wq+?cszfNQ=|Gh>l(6Zju=KXG`GJ9f zlssq-Pt2jE6aQ4evKi2{weoR_zy5$NSjAuI{50=7; zHq4aqH@p#Z-s;Pfzwn|KqzCzH^GBD1Cj@?TM`>Hs+gge~l%b|u!b8yrWL&^4bF;jG zKUT<)jPoOPe=)7z9H-WNdRdQ^O9sdzn4x$-DK6Gm6=juQoR%wxWzl`2+=pkn(wGPo z3P$x|S!QDjz`{u7Qs{!7A~_uZQkaT!-7(h`$pQl8#fK^i1ZQ__ap99LK)vi?{gn#P z#{Iu(;}dT#U7$!aM8kCCOR_&tFxo!irP zf3Pz4_fODtJLw+p(en+ywHwTG1ANYM*HCrC37(#wKiK-o)1}0(fK_7)6aVd>P1x+M zdPZ)UIy$~Olrzud&w6L??Ut6ikpfuY5^4YR(>dVpOYHceHl}*EzNd9(W6s0spt3=& zfxvas9x5s-Qj0O(VrKPYjlTxK?j|x|uSUb!1c7zzG8*t~dIj9oo3Q3Jgqii<`rb9? zfoe1-j-vwmfSKg}fQI3XNxiA;fXWTO!TmmdvW@rtx=|@#)#4`PAQJM5a?!gPqJj^F zk0TQq>1-V~N?=>B@F?;H<>QeU@$dY{^K=dcO;ERs{52Cw$7Lq)pvI@r+Bx9WZT#+^ zbrww+(o}GfH!$A!TjKgPfWs0v3$_R@bO_NT>U)*Lj+<{rX`T>)gI^5d$_nsb2@8h4E z-oW$&zRt{hbaVkT(fjy#M$Y3Xme2`mN~}}zG9Vw~Ne%q|%fA{oMU;INhRx(i+q?4+dPj>VhXCf%{U2 z#q?5$Fv8J9(V~djG=s(v2y{Nlp1wW$Ck#8^#Y_E;wpbnkFshl}@;m9^r(~uRkOj z5SC(m+SX*u!-ib77wS8!*}?q8Np;>qdMDCx3}jPy-B{!00b61ue^7U^>Gu&c8D+YS z+bxbu4B`!MUzkrsPNah1hXXF7%i8SzrQEgL#yU`ir5t~fQ7z$%qG!#M@hMa%425+m zRU)CgoJBTMXXm_8=*>E;S8Yp)(Q#-qP!g-(!ZX7ac7{}#>StVF1J^B@X7Sld9@D%E zK10NLLV`>K`znvYdtT6nE2YG2@Y?Iv!*75g@;&|d>(9!X0~cBNy%{*J?;fR+7PVZQ zoQej4y6MOARvZZoxJz`!#U;QPFo^H`GRWD2XD#`R@~kcW|Zu9qJ- zG;Vs9de+YRecM73`pxkNXekR5m+GB~4Blzrtg@3McJpKDOXW&^2OMWNyk|EN1Fhi< zb06j&c>{B#cm(+v@kJHAfMP&-{E~W?ps@SK1a8?#hLLm4x-=*J?D>^DtHUPRXI!cs z?K<2evA%oV=keBko~S;;;_~(3HphU3#t6loc7*$3L2!rBU=tgNwaR|_ z((Ay87EJKL+9)^bK+St};61_-I4lbHxiG(;Y`q~g!ne(p<0tmXIC#@~LYpIV=|Y{v z9uDl2-BBi5ug40t!7CAB$qzH??|7crQE-C(Fr0K;8xhhvCj5a^hm(o?2i$s@17I2R zaY!PL~s4F(DZiRRa?xst>7@Rm6w5&=RQ1WjR z?x8zEUk_@GpI$pSti-HK{m{M8q|?S^4%&p1mAt>1CCEavy_A5#fOdvI2F0Nsqh7I1w zI1p)?th@|E5#InMb|#se^-)WOl%=q9e}nAk7B?G+m?M!hU2g!cpo=+xvy1=km%_y_ zT7T`roLbfvkafCg+vcN{p(cM-p-zu@BG7WnWK0)QE}0SIpO)?ubx{x8v`JY{mlnzc z^h9?1K;sR_BsNLdODAc2+do^-B^_|S1bW#5Nll|A9P#>AaR38(?N=Y7i{(_gVIcr* zi|Vu>`wTQ~0LNXw7_b_}toGwI5opZ;#j0Z78QIdGep%}OINAG-xb)jq?xoL~MTRt#CC|g=*Ok}Og%xaCx z)Z&2Nhq%x~6EEZ{E$uZB{SecOggNS9x(lZt>)k}nOmMTk2aecMZwun;#IeuFs61*% z2d=N&`RFF9=u=0F4Miruj;oboGw8f4tn3$%C526QwBa-hTp*b2%)nsunj}J7JN^u>AB*oO27=> z8^-pm5qVmN4C@GPZ7bUW)2Tjo_zlF~lnl^|YUqfjZLK_844Md{x2k6I2xpWC=5@Jn zf^PN>Gx$o?(GLqETdiE(RVta|8UKTik+a@S1YUe2gcKC;b;4xFI}%=vZ`=wzOH=D4 zdfiKg6^rJ$G4#m({X4o&S5iz9ttE+o#3NTC*jMb$va_3pPOBDO5hm}Z!q+>CuiSR} zeIU2`E=Zi-e)K$YLi{+8JO?7Xs3p$afaM(2CVU4xk6!`GYR0)qRR2rSb0w_zEWW!7 zl|Ks#k+^@?X@#NoxJYstaF&L%9g@ZZiEBL|x982Wnb~+Z44p zj22&BekSGH6QupxHw<(dhNkJ+b6YE}J%IDCBtI3l%Suo$dc*{}37{4R+1VE$(`-49 zapD3$$#M}l-3uqX2J(2DEGT&d47t3~xR%zXO_j|qI(^N54)_An*a$6uzWY89N3&el zf|i1lxhBd#w-M%9N~l;z7S&?mN8iZcP8>aKdnR-;eU}e$9&2*E zoGm#KSf@6jm63+ZpY4i@JfUAflZ@JbLSb7;>)wR3{$zOX~|%eVerROBZsj{)f;Cm(-n|8?-MquU#G0J^%-Mfc{23tTuHcz%gE`!IP z4<4M^X~Gjj*H%~eK&Jy{U2gvLzwW$^jP3IC-yqDuftdcAX6D~O_F$3cQa7_PpHrdq^10fSD8h>I*p1IF?gr`> z-}s)1?Ws1Fy=Zm~R%?uX5xl3~_$HPB+&5r#Yc%?#gsX4u=j;oKTD%I3&+CXig|Uy878}?L%K#&NORGgrldzJy!eDu zH%!BvIGpj52nY!q)$z6Js%SYCR$cjMxZdh;A@RJ0sTOK7kObT~1o}J}4NNzA|6uFO zs{=V*@l!qd{4t>sMVPC%@@38If`rU(kQX5IRM|Cd8%Gs5smTH2xb;%inV?p?(7Lji9V=f`@WPtn=}u*$3DljJ7uPZN zv6Rlq&YhK~VnO;^!}(M4?BsE9V13EFoC_710=(Ck3r^NMT+@Xr@tUE0EWVSa@r8rF zSFS{$D*bh{=Nz3eyMQGRgO9_TH)+>jBdmP)R1!E|=R%sj z4sHE+dkTG47+BrHOaP7x%in|uzFv~7-6CFf|E%rd3Dwan#_=fo^Ev#pH_KYQN}=M6 za3vP@KINlH>rJ32h^*f>#$8~$-DnS`+3^)n@a8NH?ED-sxR5o~w5hj#fxQo1-|Fwn z$?wAIM<$@U-X53AZR6-b&*m!)jbWD$VpH}RlmQeYuGX>Zqa6*0E=t>J;c!w-gCapo zXsPHWw=gzzn4*gnVIUMr-+LrZFyh`pg9)k1`w~2AjE83F8CBeNqR{NTkkz{zeh*0f z5Bvus0~=J8zCs((XidKnTr{G6!SSS0DjA^v2!=1_3^1oUCJq8vnq;i_l+fWAY!Iwx zy|{&(c{B31UBUgGE~VPkLs;jUtWsNeDaJ>cpO-f-rE6`zG+>d1Lfg7;Xs6Et(^GXX=gvGt*Gmq~JTpfDxCQJ+!6UgN)Mss3z#&i~M8 zZc0~kqdLui)yQ2`SS?NxtLwhTU7RT-J_rRL-h_0fTG;mF80over*Qa^Ic&K54%wqW z?p(<`wf&h{e+a2jPp?f~X;*6#MT9{to*wVz;2T7)y}aW# z@)Uk#0QVR1N>**@l}F-$;sq3XZ}`|n)Kme|WY``a`jbMx=2;Pe@t!(3nE>}LUH9+c zsD57ih?V~1720qmxP8YX@&bw+86g*R*k=*dsq7#Ra!;L8KFUMD&|L}Y*0MgNLymyE zY|)RKEnypeZ>rH7IK#Jn5oVj{4sIR>A@rSL#N`Bq#mJz8JpS)s(gsMSlB=s53pmhi zij#N6^US39D|jI&?54NBNqbcG2dGc3;j^fa3XGN7MWNfYGW+V4<(D0eRTf5QXAW^_ z_;Ft%eRMc!8&0$=;f>1ckvm%!BRM05SjSC}CMVOjrtLcl;4Uy9^wtS^4=en<2xMPy zz~q{d6R8*snJEo9E+0MMM(wG2Cu{^qN6b0vP2yf}MD#|$#gB=33*apTX`NwM{N{(U zUy574wQYl|_V8_nt>T&M_3t6xbsuR}oh%M_pAt7=MkJYlM=dM?AJ}{u@10ym5XtM= z^bI@)>HE4a`-&lAcQm@szUDn?^yHk|t4HS_xpMG!4X3+xIhTCd2CXXg`6IDgtE=%1 zp1s0P%Vz;MelHNYYhZt4#;js?3X|n*ZkJs7XuHWu#9uii4gEoNToQr|@Q4kBJ}QeL zpc9^=M8~wVe0T(}OA4P^ zq=V02ShaBEm_{r)L+S=L1QW7j%1yR@Jhj*u^fhHd`TZ~%(BAJ6(4@&a*S4{59QR@m zm|9ky8`}TKWZ>42 z{I);Vn@AT5s7%^bG&FZF7pIExtSnurGw_Mc&eluJ4TQVq0~AL%Us+JyTAUl zc*EAaZoQbZ+wWKf4;K}iF`Q60GCfCO)?Fztw@Q2Mdev<3E z4^j731NaAOb#LF1{FSen+%M#{!6F>%jjH88Xoh|l$(X0VWoCe+ROsdCtb^h?RUg3T z`-UakM9ahsignVH6XT?NrEX{GYppq3_-^;*gnER*6HBJv2DQVWo$S}jrU>%pmeQ{b zSH{NuX-A^VW}WCDVN^%?dIla3CpR{hZ%g3kUSl`+q;wKouE}mxjrQ|;&pOC}fmYN6 z$A*5=fv+OM92P{#M5zV&+;l#wS`j`SfXY`~qQlS(t^w?czwLXXVpJ%ijevy2aVMaj zVrE3T=DkZSZot+h@jn^H7H)e2Bz=Za%JnAodF(wxU_W=FD|+}#Vb06tflLg{-p6zd zk`CY64l1hAr9X-Jv`;V7u)hn^Spgf~$b$P?f(RP}5)RWV0Uc?{>v7fxO|AZ6nWf0* z5PtHyopQ|V0-hV`$eP9Eb1j&BtE9GJsdoi`-le3TkmGM=QF4hPEEl>awGKXSUg#D_ zCgDpHNP({rd(so8XqSg=x3{@BBlmm62Tr5a;Y0Wn<@v-E6_a!n@4;M5;eAu^L@cWG zAjf~y1}r&RXrP3_3*$;%ess+TKp@=6;uL`LGDMN0I~G$)hm%m4_vFC8l-qnxUw~RSn z=QM^RS~*1xF`}X>x3oSu1Rme180-n2f_j1M6{x3GS*?jX4l-*htZ$A1Zv_5*S6grD0{sWyKPeJ{DZRR!R=hcFN=sx_w!KBmyE%3bo|&x;5=+gWD~i zydCR%ZMpvDU;`XDBW7MTDJ1rB^d-y@n+gwbuFCs)E^|oMYkkr_V3@+m+`atewHii~bOc&+W84N!6qN zFd{sYBcb*m9ypKrD)R_`)*J2gLsTjZHJHe=eX4N*q_MogomGmb~>Ky1#v zPkat@c!+_5ygQN#`;KQ9rguJxlS+M$eicg1X|!^pGcXsZ`F(n68Isz!nh1QUKi}LI z>{Wc8{K+lvGz0V6$b-b{`2rz!LHi?{vCn$L@kk8~l@=Up)TWrmF}Jn1w0eu@uU~~6 zWnXk4u5FB)w0{WS7O*7Ng9D@<1hkjbYh1wh*~oCkO&DjPK$F~JW!CbinaA11d^(S} z)qlKh;MzCd>cS9OC6Wkl?KegG^7x|40~Y^q$vL1fql4N-^fo}Zbh&=5iOp=Z9Jbl# zl;k(Qn?_U^;cz*p;n&*RH|S^dPAm#h21y=&|J3}vb~u7I>9EH#Qu{{Nq5E2C5F4&V zTeLw!=&RFC3pVB(bV*vwb{gcz-1mvecnx2Gw-$& zF0NtXrYe+Xk(xXYI;-7x)PM#SbNOlx4QO6*f71HKmkXX6!JTn;8%_oj>$P-c7pMvE zUe~IRA~JBVwYN)k_itb?uxYdV46S1M0I)60#46Z|$T}>OSGPpp4u9b^R$Kk)KKb`=v=5H`8HABADu*2 z3`Y#%oA8QHK?vl~VH%zQH!}5|;UzKqVE-GdTl z;q`M?iF@Nkvqya!vY3U#&ln3jN6~xK~@D@Dd!M z@xW>qoWyD8?Xa&kjBmxi$8h$*Ck?n^UQIiU@8|Xw=%T)BZe7LPX+593{w(r^i{Q=b z`h(c=HJ=8G!{IUnejtR+L>&u1_#B77+NQQRlrNvF=x89(P&LUVRlg8k{b>g9^v*mj^|25Wbu!h&uhkM(!lI5bDg1qd371N zJxr{AE@CB|aQW~oeZE+sAN_#$oWa~7@tyux`Ci>x`77wgyDf3|>Kv|q$u|pgZR?6= z6V1ES^<%?cS^8z0T;dZ~=eCkkvB^Z`FY9HxcelYq+k}R7n;%jz5P)(XHaNUIS!9{X~7b8SomvGHz|YzU5kAeRczD`Tz z9K$80^EExAXxrQab9gYy5RXq%FV~Xko3b-V4h23pR?NJ)Ls@y7$l;DPo3(foS7={0 zZ+l50QP|vdu5-Y5&I}j}e2K)Bc&k~?7ksiHRrux6aQ8N;4TIl!b@*;sl$OcMkQQlR zgOE0*Uvv`=NS+8Kgp!Hx2vfXUV9rg;Q)lx+*KqH8^aW;gbK|bbGo^_6D%GDQI0N=v zu}K~~X1$KrkFq?xa1Cu|iBfikrCd!+vy&0LrEs7XJ)K=%2@O*vrV_i6U8tNaayA;0`iYog z4f#hN{uh;d^MdLJUF?z}>2lT_y0p^K@RQws;oQSS)+mWf)BS}gzJy3GsZUJ%d2y1uci2iU!@!gmreA!Tnt!vP+slGO zJO~MLjE9=kb#E3JX@>5xAVqXCIC1i>&*67Z8C6R5&**W%Y$c~oYPwEtNEV9)xL6wN zFB~y?se23ZS#en2lwTT49!U218s$eS!B*NnO=e=y&02iEldBqaebOw^Mnmjl!;1f1 zxDhS`-&E`HbbWn&>qN$_;HWeWp2f4!AxETloK}(61%1Q0uLj=+4tCzZp6?Tf&t^eL zG|MfKe76uvSSM{s3nT2OL!Gxr2!ypQ-mn`tY;>EVE7UJp?Gm)Et-1MGUN z_RVbTw^wRrk77kGyCqd9d&jVgKufd4zb${K)y|QWb4R(b1ag~&P5T+(Q|{bDK7ft7 zHL#lX>3gLTv4e^e-xYCH`gw9XdtNkM0}Q2*xi!<)IkziIywSOPxC$2zx#@ho4J?qQk}%XhspdE!PbiVxRm7cM`Gmb%#oTj+y)rS^Ic z-pj6=Pp3JrWiFDdX&ewtZPgy1kF;KoU#rsz6}HQ zP-&Gw`OgZ5W~Myrj4wu($$-sqJ=dHHt-M`gI|d%6aqFHjf;VM!cL&*s4uVoTVn)Fa z+x+SHj!E-rC6BYz>m*)lPUud}m4KTLIif~W1LGcK-F}P|(9HFm$i-)vw1g=@e{Z75CbBy(!x;C4aUqili}OSD}#P ze0azYF_pec<|2I86@6xr_kvjE_GherXD8+8Sf6{$@7|=e)6SA^imvy4N6cyQZu_if z-4AF7U*^=bWLindRc7}dm@0!IYy1_~lfN%lBNkU0?Um~n;E&Vd?AasrWEuN~)&D`m_ z+|SUJEHCpo!pG}uf0x6YIJsU&(t@cdoKCVt$Pt`U1rdTXEi&o*m-!DJYefszSpDxV za(NwVivopnOa`sz=5lQGC6x#@oL!b%M2kgb=+B52nJ@g*~51dAP}IBjbu?P+hH~ICIm^9v!kj^mSQkuE2D?t?V(`jn~thzr8~Xxf4ql53{c zs%kFZX|HxwcMca}E@zgkE`Rwt-OSrU(Zn7(UA3;Auws*%&Tj(p*GUI1h)Y=l806i& zLbW}>?rZgMzZQP|w#zHmeC_VDSL;GfPs9ZU622Ge@i-^~?2IK6Qlav*A)HQD-PNqQq)Ve$?bKDTJ>?$%$1VC;02$uPvIf6Vkvn{s z+#iTXf^AMMYi+MTnY_ZbayeZG~@Jk2WT?sJJ z`1Hwv@3x2%rSM44v5Hc?J?>mHHzZmflVTF&P||dCjpM@L%vJq@dgUihHE_qAEUB*f zTEmeoZG~Tvrn*(S8qHvF((-~dTafMa>qRx2zU7}NT~3dSOQ0v+z7zJFRW-S!K2jjY zf@RcdbMWXbwpuT%ZWv=w>K88eD?d3;B<9vC|A=8H<_JmH1leWz+U|ibDG+}qO_(l{ zw)q7b2h(j68|5lQA53r2^_%T`(<#rGmERcnD+d(UgL9u4D%eKfnzb@6yt zwzM;F=teGQOslk^SmQsWo3B~!EFR9`XRS$Va3%0&9Xh`IWYUYoCuvXiXXX~T-)GBv zs}5*bS^WZguk`D`Wet^l-W+W2^Z1m(*dz@d#Zk2CGAN0ai`y#`lQA(VxP6^5$pCh- zf9z^>6UUc${R?G;Z7nal$rZ#V`{7t9jm&q`^)q5iPsWG|B*Ei7>o&aE&A_gJE(omAFJF@% zbep~3p0;h?i9+O-A8q-*5nngtGp<|n>XwDz2}S7R!r&}O%i(ZYrD}WV*iE&-xxJ3*{-DOm_jhYyg#X?Y$}j8y+n*bV0TboB{xuuFXQVQ!iEtpM7HP{WV#tIq>yF}9*H=;e{1slL@v~f`EJqPpr4Bnf%0cyq2VKgx;8t0A z2_rsTj`?b-0rk8iNu`N2vX;e>g%oxnG7rU=#e#~eTcFnUIGVQzC=<5K4y=Fdf8?$H zv|`BgudtzF>Kz>X=8O3AFp_|t#QjV;ra8^Jbokr-x1O$Zd;GOVsO&Y%GgI%r*@34o z^_Dwiq|$bMI`qU{3fbL=c5I_}x=hvcb+3z5#dJzYC*lF6AS^GODoPNQNcpt4byX=M#hZW;Thh zW2iq>QQuzg?62_NGUv}x8)Sk!hH_w1pv^Ykr`R{GI7x%sVDQZyC;5=||=sX=?@ zYNNj$0d8AI@X6ScuXX{b(n_OOd|KP-NXJz1 zm%UDIYC`32hyfAs4S$PveLCpd+=8rDi@uz(0s9SOU|3(GO{fQ*m9ezi9>G`L1D|P_Lw*q_5znIp2ZV^W?i(U;b{C$@FZjR4AQ?eO`~A%? zL3a6v+wi9&N9}9;Wx9knUQd+|1+g)i5WVk*AF#G>fSHylUO$VkT+3U7kUfd_W@N|P zJ`v=`R7_`55flRM&1eHOx@x+LExxb0Yt<4;W)F5-lQ_&QOgVP4m0V_JJ&K4b>9TIQ z`T^t6a^0S71{C)}>!|$&#ik1)cw*`pZ>pOTQpPBV~v1XPTZzC^t!QrYb*1kQJ$fG$6`@ToAqe6dAcL}Np;rY9X-a-Bxuee zZW2)XHg|vd$#muGI*KY2x~+Z)Dvf48+N4Y*@B6VK7JxZN3sAW^aw{)QT4w8}_ZG9g zcw+LAXk5_gG{G%|9b*3UAZub4`?_B%tEPH~fNNepfi?p5Q; z0ZnUHrFm}^=rcGC%T>AZ{wK;M#LfP;+JVcmcPHZgQ}E)*c3BU<%-fM}BKTQ7GY;!z}5$75+> z(Mq5;luJqAD>~BMiBPyB^+`x%JN%|X0C~6uyic&u(qp2+wW^ut@;PK6%P`t~g3R$m zK>@v|o-D&P)fT0uBj&LrB#Sb4j7L%Etew%*p?1ozKRq|_Ey*3d$Fr4f&Ae}=fXdfY ziUEQ2DZi|-NaUbd)G2%pHm|$k5e+-tm0ZE1lin$^f!WQZN4&c{_2sQ-M7Uy{;mlrT zRSm7^rt5k)S06i&AS(52YDTTlu2Jariwuawo>>|&&rV|4tpVNaGz2FZuS=tGXvNaB zQD~-X-?nyn4%T~jUsv#R+x@FcmV;;xE&s%CjR&9EZipzDE*Bs3O_$Hx2h;j& zI)UXgwb{Koj=S1DYOpS$^CF_tnw8W7Yz6?U|gE!Nb}e$k&R z`UrpamS)8u44w=n;KQP=Y}&eK~e9WS+?HOLtg)S?IQ;Yu9})%VOzGIuxFi z)}zmlQd{^W*naUrw3(YCj)PJEwXU1nWG;5yXXWZ$7xHTyt6O{)tvu}43I^V&cx<0G zvI>SU>U@XGJ+rQB2y;f~<{Syct98$BRJ+dyh3kA`m~?v^+QsHsCUE#IoCNCeyt(j` z$F(IOIR)!OZ$oLYV}0(Ub^CGqwTb0O!3gE8*r?J8D}!0oqKsI4$nZ3lFo5*!J3M=Lc>r-Kt(Nso4srWEfLIW^$Vk255g znWF$X=IJLDOeMf6*w!492uTdyrtZj>HSR2zOH+LuukRG3(5oarBaF3W zyhbB@UFPIvwBHpHi{@tgzWYHo>#^*1Y4v*QNl7LBFz7QlrM~k(j|Z5&k>p!ko30wm z2a4&D=)*Tiny?~GMNtel!|2NG?1X2m4F@AozU|J#$789oZ?W`VERGqM6B=#ZhG=^v zx_*%jb?NLTFqLZQ6+}Kl)7w9O4yXZThi-4vBp2RSw(tFtDq)+iPoL?YSW+|Erx*qw zq)*gH{xNe)S=~`uptISPdpYZL8?#>=J1p7!kGjhs!|j3Cnd6n@29X)Mi6VDYvcv|V z&CaINxPI+UX3lIzM|heMmTAMawn=-#d~eaW`L^tSQ4RCqegLER-BA7I2N8ick-F}|tH!o^LD8kX=xY7hHj*=@iH=b&XvpkE;Tui1?crRDqUyrQ z(!sfn4Rf-hfs|~}miPBO0gRPaQXe;OwC|cZOx!w5jvQL+33EOYd)&;kHH*c}f~t7S z4(;<^f}1m$FtZ@qF7YL=QoGu)w{4AYI`KB7VIf~i1i4dsa;M9+6ZAi zuRiq8q;0t9rE5F8ik-DlbrulU+#($Pd9=#+b zwoxvA$$k68aOQmtl_@u?!;8n*x@MNc06fcLcF&8`ZV66=!EF~=RQg%P5hCWMPiW81 z`yIKygIF185KLSz(q9i3?U26o)GFlts~yRYn#!5Eyqh@`5K}dN#q&wKS39Zr-~Hf0 z+n$!}-1%*KQd!C1q%J!x(d&bdT@TL&$9ST!p7Q>Z=gDa*_)g2fTpzx0-KvuwNM@48Zb6~Ch)h0(~u5PWgE6tptdgEl7f9DjWp!5;H z4IY{N2iLF*hL1u%eO4fY3p|#^krTGhLh&B}n!>Ib1FyGd-vS z%X^D>WHwc10~t+>lai32SMJfzdWVRKqvbBL!;s&Xlsuk+Wt9u3>L z%?w$*4Qzb_$mf(QlFx`-eD=0}h3U2|`7Awd4@K4|o>LuLTi+RIX`uzu&8lok-^txo zG!~Z_PX;@!Hqd+gFa+?>LNgOGUn#Sit{q{DrCO*a9NCCwp-A%k-Y-5vOZ>u~kQ{+n zcnbTBeoOfz+>6mAy?FyK~fc4 z=lQE{sTt;(6>vouF^MJtKYN>$eVNh|>u-4#);hwbsq|@d@mZR;iy1Mk)}v!)GAVB8 zc`XEcvjLMPPxI&I$C3#_(a?*TY|pY2vs$~MaF>cUGRkLn6Gh>Y5fmBs`xROh6RKYi zs!y>YY41>WDwYS{a?dmuQii)kf{hKPD)<8JdBqK1-BA|7(009j@|Xw4YU#M#UAv3oZ70_Kf;6Gtv0SEbADHZ-4~623T^S}#BZ|yqkJa1W z5)anc1p!zx>ju=oAWpjkoglzX5(sS6*(Yi<&!-sp>aM*?s=BAIM;|!d`XQ*oYUOd6 zM~hTT#zb9%Kw;4Sn}$~b9za~l=ZW3-TVGc~2GbfYz)aK0mOrdh=F0_dB zw#>oNlIJ1I_F5THj|B{dQG-D+67fu3&yl2PvwZ!N@1r!)`!i0-4`1FqPaaxg#3$lP zkD}*Q`Es*VF^=xWSKFy-4!K-OY|>th_@i5?V@yFcfYR<^SqtVDU$Yr@e%Zu=U8mSP zDr+rmwV7`derOO^Kk&{tq(0=Z<3&E3>Jogqp2fMt=D=-!>N^os$D>PoW?my!ploS) z+?a+;X!EuFH{q{72;HF7Ba*190nxum6$Zkoj+)nSk+9{oLnxdZmQSV47Nw_P3FQJe7k+mev*VrTTID( zKI;^eeAqAk(Z&Nz%}v;U3tx9@c3enaTW_ttYOeUmbR6O?C8F;#Y5fwr8QSS7Q5oPdih$zQztg{yBe$|)b1asJQurq*_9^Z zS2lNOgg)RCKi!1Q&$zCquUwk#k})%Wn^Q!lw+PpJZK4(J&P#^Xiwvh>~A zkI1niuIiI{bJ9A2bIEz-wET975}ceiN8fDO4|Z%@y>v|;3XQpMYlqMt&|7tTAb74z}>bee80hW_+_eL_fI#ds4E0FD80&R_MgG zd=~q4|3eogO2NV4-9EYddm+sG`jT@?m&5v%DwQb3KD|m0d;9Q1A5T(YMQai=oJHZK zVI5j`gR^gZ*4CMv3NF5d0tsHe7Hepq$f~kJ)vJJPEi%DJP0cfwI4vM1dk?a|mn;TdQ4Dz=xEkGs&Ls zkU5aQLneCccR0N<817nZf0exO{nMAj<0b2C>!yH@<|X_-wq@b{?F&w}<S`}GSK2V?ixR_ znkXGXS&6i@HGPk%;^IPzUE;fwUoP9P!x+}S>6_73O1^keiF!lwORd&4C7;yse3X7n z-ps4W`126P#`(x1_VIx#vu3RM&gAUz=nbouZPCq*wh;YNfx#jn)U0Z+_rnx@yQ!KvZn7J=|Dm{ z4rS_|eUF?a>nIS#m}8c*Slrh~C!de=(mDXBGrB)g)tBXP+l?HkDc(em7%r7`&}W zJGCrMq4zep_$H7qXTBdGlw!W_Wqk;=DisQVWx0;2X_)I5FY05D#!S$AsQmMzXw;DC zd-lFJ8OZYIIy=qlYx?NbvF>)!Esp(I@yEt+Q-b6V8S$B&$H!dj-0pidZ+XUiYV4Eq zkpbI1N-_Edwrw(ZmB!;er9yGkUYQfr($f1N8w88y&I7yf(aI&B3k* zMs~27NtV31eF-y{rgip^_~p%3!b{AG2w5hNW>eD|%%jgvRr_d%1&-bts}dLd+~1taZAuT1xm}PJC}0nySrf^J*@bY@C{A$qkn*vJMix(XoU3Z;-c6NPI0f31f>p;b(__++F8l^q%0te zx)x9Z7Q*SKKJ^tPL&;cQhi`>xq!TV*3eno7O!kJFEQmpj^7Ct-T{z`-xT}DAa-X+@ z&B%xrb#3)Z4&|?s3w|p?CPRV_q|6&hyjyF|58pI_ne^_S#_AfwQlU1(or*D!&-XM- znb+HHxb^_G+##@Km?tk>6&ybw1lww3to_!P0cA#9Z(cS9!SLALm~s|~F_}_D%%duWgMIW5x(lN2-J zjkd@9*3qxiHYD8`X7^^}%MURp=IvKK7DWV#Zu(O}$jB-o{?RHXlhbvL&nOB$a7U`W zn7O8ciPE16bJjZ7wFiW z(^{Mw(ZXC#>vhiIXe*Deo(%>-(O|wATY7yaopMbvFByC6$#N6(th-8kr^bl5|K1W5 zeRAe);X|3~lU#*2ZLh-57t%V-I#wMrb`kkIdu+`HW?1^o@*z2T>9OW?&Y|I*cxZ02 zD{E%)do|yY;WL&;o0?Vay#hOS8#U7$^sqIwhyVi$6mb{!tDFM)5Z7}xrk>92?~$#714gFWev~luVHCx_T0|UBg9e(qiJ2igd<+EQv%n$^feN{B2Ns`yf$9!yI%S= z7826+S|qD?>sRL~ijepV!FLdKp+GJVvMbxv#$fsO`5>GvOZ)`y)drR3A@<`p@uz7b zO*Tl{k1+EI{RB#}O}6S&n?QJ0e*k9uHMirLKk94gs$eBOW_i%vpN(wx;zvwlcj`4K z_0VWv`;onmSWMD_+vi4a8+41c1N91ENi982wv$3tff#>g<`FE%^@{A@}SL$L7kB zN2fPt-M9L--1qPWuN2E~H;X*}UCH$4AH2i^AArFb=S;L`&7w2bFw-*HZ>1#9&W}?p zBz>BKr>mA~zqy#9El#24)m|2;Y$os1kl&hZsD{eV`L<=W_Kozjs;{ZY`d*-AXQSX{Zc-Hu+Z#6LVq?Oe54&dzwAg6WuEalx5 ztX)~}`VI|WB_s*YR)gM|u5(c>+$4SXP#R8uDO4DmK(w0~9aSrFWMYS%#cI2#36r~F z5m<~bGGwFtqiS}{={<;X%Ml5yIcJgq{L2Q|nA06oV$}Wqs&`LRkM=Zc@l{00btb43 zy}-*1`PP=g1X`>4#$<^BvlC8uaoI{{wBD*teYwL&`8%vFY;JR~iyP|64es5G3h~IW zg046M4?sB^w+#-t8~XO8qbNv2_+Mr~Y@_dMUx_f|GH5!*^{n+57;-I2Y-1&c!)R@N zw!QlK5SXzXW7g#}@;l_XV*EKEGPdya&IE;sQ_$P7lm^TZyzfiYoaKcXA|3H}WQ-=B z6dOG9(X3n$=vs=aIm_v_y7P+ZQuOBG=gF#B)aJA%12|vpn0eD@ZzUCK!)AKa7kMyc z*dyvHZJ}rFJ^He;3+70g=g9$hq%H4A9Ft)HJ!j1vM=qx4_j$%)pNt^h6_h|Jo$EyT z+en=A)`pbD8p4SQz6+Td%6Q!7 zlKd^&@hPGN5$dQ!|H<@xns?7;1_LRm+ z1%_mzsbAEe++JFiL~iN0!Abis?U zkIu7<(Y;AZsegIY8;-ug=R4`7>e z`K(kB)yfpBi-$_R>#^$_-f{C?Yw=b6Pd+7Wj4FL4AhLF3C29YT~;XM^zkwDqN1 zXM!w4wN81jP{$FN(%DWec0N^tX-5!!`-X$6yME_5W4P~^_8;IOpzwrTjZbbUfhHdp z)UsNaWYjM^4tNLnD;$~1?7QCCjQTFEnA8OJ^J;e4(<+#_JLTFh`s&LYU-PbQ3B>&&l%!<0$Kd=5pv zZX&SVDbtSxD9{5oSuW&)D-`x4EX~CgXz4uMERGI(%=ds)7(`}S>(o`Lds z^Ey$KNvC=lBkID!)9fBR1Qh_oA*TGH3P$+eUL|*NjJnNN=ZCj*FSDtG62Ria+uC!lPPbYY$^MN6_j~WA z&qW@N5%)r;>62X+C+PIJe=h7u89Dool->e2dM!CLW#1<}P(q4(QX+VOk?d2(;y`V#lo(mjyo8OW8*fs};<$WoBmEa#^&Z8F(;u|sA zTn=9hxL(XX7|NqO>9OptL{0V}LPZB^WfwGm?3y~-Ls_1zB#T<_txucclhIu2;jo=? zE3-qieHr!oi#FMBoN&fP8JU=(V}gv;Q}CXM>*JwNF3HEI+lDQ$r!hTq&Eg7;9+*cP zGu9@v4eoo`3$vD$Hq+0-DM%dz7pepNv8PP1L{Ck%c_&QW*8z_TT{k}3S+P9YLn86l zC(5$zlb(Cl!(YXoKC|XlX&`j0Cg;05#P*#+Ut?+p<`gP0x7com9KuM~DQa*`z)Xt- zUYsg1xn2LrlXf=c;Th`$??sn--$-sqU)q=I=Wm7L2J^m*zdZ=qVQNA zk*g?W<5Q_|0?J4#jvKpViDj)PtrF4YU8B{Wa7i9QQyLQuTYU?-IZzVI;grNWza&uJ z*13QaLG3JXGccjjw76tXdlO|6;YwMYUDvOF`dZPqnc3VN(~H3lt|?pgeMmmnH-&iKiTEp? z?l0~=Q2AYO^-l>32gvCS(QVVSXH)iSSB_1# zarCgs%e%XJi^6K2J^cAy6u7PI396|L4ojo0$c1f%azY4Hg3haiEb_zE4!#qi@>fF( zASNkRDL$x>>-M{O}Xhf@ZXCm&c>)DHZ)YRzJjdRv*MNOEkmY zsh284OutnVbcFfZRWm!Ke4ItPs)toWU%#BPoN2I*pD?$TkkYi)>`oHy5)v>iEZhA# z6I@z?U z`@x8)uuXVOzR0lBUyMNiItaaavmg0}NY9+>CZsz-KnV)*Pi=V@mmVT`Q{jIIUMAnoBiy#M{^WLq(Ai>~vY=Sh51Kmq z@$BV32`yIHiWl*6S;Mz(3tQ%WSgc*kr0hu&hFQ?OBVjae3lYxEV(l>7FsnM&D~9ab zn;vKA6%-lOvYMv-hVCeG5%Bw7jB(-LQFE(ilqyH_lTtAGa+$fU*9d6zy_98U-O0NM4s+7Fxa&3ErSo1JhlE*P| zRe8@|o7Nwy`afgQAJSa@OTPqBaSYx!`f5)^9_5XFA5(UTD$c%b*iiUZ#4y#!@6q(* zhiTaq;H7ADBsb%@FF9DG@5$$)vDD{igP2)PCUqgdLP+j`3|AgswbYM)u*}kBG~5P? z$kBp$Yw~H2p+@W}uJ3*-CST^7ZJye~z!H*C{a0HqmQK~v&#P7IHk^iY23TVm9OLt&lCLl0s3kqJVNAJZ}Kv|Bap#*MI%IwZxl)2h&4jEa+EA)!K z9Hy#L71fAT7dQ=w!@QZ&L?YZB0AVk=Ur5hJ%$!#{aHD}4zw;EAnSUy`y`&DvTaPkr z8|cena);3B!~Bb)`UyQp#GTuLh%`rs5xkldoq&glUQ$E`bDEKNO+4YcnKf5zyb=6u z)K!{nzl)*&1OR?hNdJo$`6CD&Zg%r&T?=FWq4*IDftE73@09S6bVb3Zhn$SYCgnaY z*}y0^axZuFEOQv8Wo&t1j^e)VDK6i)*>4X~EU+_@3KIIXQ`RwmOS{sF!*xFcmC?0p zCuD6=m&D66Q}npezJ2dj!!5f=!hE}39bm8-gPN?=WYG&-dSb+DJ!NoHA!#*XzZ8Mq zXQV=Lh9dOp?nl*N3XTxj@M*DW) z&}MWp(kXTWT2NXQIBfK774#lKt1|t8?(0!Q9RUKQxsx|JMRt~MWgBJ)z!W7MOkpLq z48)~>#?&NEnKf^o}%&xUa3RV9)|=&YEDewnEhG^aKHq`Ydv^aK%czzNBMY zT8&g|Pb(3|c@A~pGqT&NeSBc)-mj587(_R$P9=2S5FJ9V5_%On<{Z`R?Yr53bHH2Q zeFEH@6U83&^)3cw3MsSCAnbOP4Qv)v5B<`LW|N_hb)y9O3Em>^KIycqqd;AdoGll9 zL_6O_7LGWsW$>UQi-pFX*KZJo%bwQ(lenPsbBh)Kx6wF{rY)mK^J4=zbuhWUd?xQ6 z&4vWb?^(WR5;W`@U85}nt&#F__OliBf0-|TX3f9&`vFr6>2}Wpj<14hc^q|OhLtU~{$wylZRIuT`CUZ>>v-BHJn{3P+wH^l3j!9zT=-D%rGxb4v z{HR9j$LP`6K!B1AL~VszjrQCsUO6eEQvg&01h+~!F2Rj0r$m9G?HD@#*3f!@AD&bj zLvA(7lACw$>szmZ%c!Yl{=0sM6OguISs52Zlg`#C5uNd5gJCix!rF&P<+8^w=-dtqj1-ukK65C%4MR8{Kht z-CZ?)Rk6!SUm0f}*#MWC{U}^WuWv2ku0`wWSUKisBw0X8BNTJSTI_gc*?CEkJ?F}l z8u0cdt%^Smp`TQcc6F^N+5RO7<7ixhOo-5F9vQrkgTLw9sPvw5)vwfewJ*?D$>|!5 zx;!za19;?|oREXU4`uDp`b7)Mw(Vd9Gq^wv`_UTYfqh1!B* z#}^bDQX%};wD@QMpnYuaRD?2F=)AlbW7H<;=#5Xpdmw(g4CJpk0Nvs+=sW&<37l%_ zgm`4dkGn6YC434tO7XZ6qM58N&=AY1yqAuje5Z$8xUDecS8 zL&JxAaPzSot~H{B2u)75R>jpT?^A+&QRRu8b7^wfJK_+v8iNopkh*gB;wjp{o}T^l zRr&``{q1$%+o$8%^~=A>I^-vo6%>RWguva=#jZkbX&Fc_cXV2-ou`|zj#C}yXmJfn zWDg27{f(}y@HNu?p{(Tb{)t*gOHhtrc-)~@vldV8ZLp`e2k~Hzb_>i~Nbs*q1vz*E z-?DN{6dYZ+1Bz<+-BP&PTMeHE=(QgStTU-SGg`(? z|0t@?8$(c!BZx|Rf6(S$S?;IC6&)$KUenR+i$lU+rmj5#2TOzI6l)B|Y-yyL5&l;l zu>at?W6$#OabcEB^RY0#q(?TM*r$n4Ol44MJuNkKhk{R2y#&37Y(Ec4l0`h~-{D!k z;!tebr&s2>UpUMmBgM%7;{90fuB-aqi@x<~6OA*XC>y84UgvP#VZrhzuF}4m4OSm_ z>&psBE<>DbxY+8edv;ca#)zv3zmFR>02HxDpR34j*3ZP{@kyf0YK6#O?C=1la_<2|EAvi%W!MD zD$XSR$xSBhS*1@a1|7R;WA$wR0THGB!3`7bDr;+N6<>E~)uEhWW3`kn1!;ekNN<5Q zUu+L3ZFn2&;bgMQh>*m&LqvjJr0`U&b>MDUNhN1bK+SlmvHh_9=KIuvkR#WJ4_hM0zrD=`J7b+@g<&`_Z_E`iX4bLhjITa#@hkvo9HX zO|1K4W$9Hs_g{=slEi^!0jT^=yXlnH&mYaBKkiJc%dI7ZR;r>u(QVPh?@~uBsXH{- zr9JsbG;FU34%b6y9Wpe!mqJwQl;|&-ktM~Vs3*56<*?;t7H&FmJ+J<1(Dk<>`L7>Z zszgehW0H%yOqc{vk11d$EAnbpUtv8kM()TZ8tx0SyCbEx8%c`Z9O{#CjCRD4*UeaN zBgZKN1Wz(Y>~#W4;iT=X-z~@TD?Rh3W;-u;UC%y)QaC5$L3ST@e+f8?r<#nXG>cnW zy}R&3trqUvy+D9$drPXg8d{t0NgRVQ_q}zr_g;*S*cTcrr)GR>e&$Zx~NibF$W}741oQ{@JR$FZIPUGzQMd*w=Ag> zI)1{qI>C~~Ex^5MIu-IAwx*@o#^6XycAcK@r1(63@NZrK{9G=p4*O$c)6N%o)X4kjt?1xF6(e!&jQ2# zql`)rS&kxoCD^04Y?mm*amFLm?1_VlgU*aN%`6usYs?ul%7KixrKH=N)nDj#TB^gX z8Wr0AG12~qulN$-^05Qu3>cD_xJ_RGnHFc(5Z=K_L6<4ram>5PP$?wAiel4ca{U88Dfv6`*z zp)(UTz-fYilpQO&06!asuQ{!cuL~$mrj8>YJ1rNr*zUL+0_L3m9mZV4;b8M3??ZP3 z>r7KaCk#DAFnko^*1If`e0jPGK;{M`UusV0;%#=5wE>e!-k^eVTX=P|fk?!|GX$}+ zs#&;9Ha@+wAEQ?f?@npn5eRCG=|M``1&5)DTD8f-6_ay8iD3oJB$l0h&@$; zJjU-lH^?ea&5juWhB;&B0^a+j-ZLKGk%nmxvlcHJNy7Y~tjvOqW=}<}8jJ`pON45C)b`_}M%As>{4d#Cno0bVP}nt$7(~sTakm|XLYYhq zMt6e^6jm>tKJU*x^d>n8>jZJry&BnNq(If4(eYF@ms+0y(uPFvqE#joVQDfu?fP2g zReWdGUdUp3*99qaa&-IPJa>EEcMK)KDl2(G`F)+3d_e^qGfQ5pr?w$NFC)tA?3=-4 z@|4~2xjK!)r!)#3AGa;0JfG0!A?}pjafh8qo>_Djw9W##%FOpx``)RA?_Ez=gFVbC z)t_ZC!arJ^c|fcJu~tefIvc<1zj_Bn1ln_8a~-acA!fznM3mxnno`}9oMCC;8j&N> z&P{6*S6#s@SP@fk9OI5yM$t0Jt^F3ur+$W zTeL^aqpqHqdwV0WM-OJ?UiRsifLj`288M>6d`6&Q z=HICZqSV6^F6$UGT-5h0z3<`UYVLROV3sEISr7=muxq4%tp5>$-mbrg-~q?YEhKn4 zL6ZJOnU85*gPr8cG?OI<+Bc-Zx}cC*zR+NfTRW;HtJb4`({ui}b;zIJK+1ww&ssef z$=dazH$gzyVj2`<-9VeJpbvw%ZdA^gU{BmlLKQY=%3Q00!y$yGBMcSgPuZJ79gF)( zRYD3zaAEY?>x=^S1cM63r#IOzOpFctW?Ao0bXm;H^vv~;$$Z<7oCb=x`SB-OF{es~ zE}}Ri8(Z#0c)%YEzZMFn9K|9`y@Jm3Nq$FmIDhRvFDgf_=+Z+#Y} z)X%-+eHou!K=3w<#Vz5|DSl^eXc`6mfdcpPrXsnW0?_S+{kpw2JTp}8@9X?6J5dASVfH_q1xY*s z^2HBoE0lmDFv3v;J>mTmzZ!ky9Es4<+Y7G&m02m!4oIRr7q!iOpx%fE=mRBK6e8CleY;L?SKA=BCehy=A& z*e6@RqKuOu6w`2;yb_I4w}d1_7U6Cdoke_sR0SMcR-Y3yw1{TA2!IwU%Z<;B-4;@= z(dZMSn2l4czyarCRiFN&3GnCO`?s%?%Hjz?V{F^JAQXVMGwD1@4QQ1+ARTxwK*iVI zPpTebn{^dAR~vtLuSnQoWUcR)d0ymD1oyZiq^yl4gFcs-NsWuZg8q6|#!0F@)DWv2 zq=~jC1QmV`IUA;5QJwbGGrzy@ocZIGDbC#u?Ku=^Xft^&IpWlb;NdXMBpYxo-DsEI!qhSHB%x2r-@S-GxzwhNAeiJ_$6rVqf!(P7x9gO>LDOm1M znq0R>l>@WDRz3sf2R3j9ve(cY z=mH);C8Z3EHX??f2UQw*(lwg3dTU3AD-54rKhF8@k$f-id*Ew{WEtQHRN688Zp3B1$d*z6<<%fLFSRHlB{6Gl z45Q^ErL|+8*Q=GhI5xs%0L76IKs-d-4%k*3- z`toU>$Zs;?R-w)>Nb@E2qmB$6cE}LuoJHclCNdI*yYQ_0R{k~!`fpGF-@jq*1#|zK z-wJ-U1Ir|d-uIefW6dWC*KNu~6twG;%3aDv?0Hh-dR*O$gt#wgbBA~h@}QI#4wQrO zO3ql~SsK`r0t=%v5#v8QI6uZ&$wkp%fV@Z*#-3l0{x^kq8K=B%(`XG5{{!k!T1v9_ zP?evR_#04(gDHXkp_r6O@$oqn@((ahmmtQC0YVNVk%o718U|zYQO9E7|1*jrOn#p*mfS5Dc5I-q8ns`41XWlf zmbw&!(xxzb-DA$5RH>?#c4;IaIu}%S6$_^V@N>5QQ+)UjK`xx|KpTk=|8!l>FO3b$ z&kK%JV49NVjpy_+;da@#(LSL54jK$MV~=|Gd_M74)4K3g_8R?UFhu5E{^BEXGOp)t z?in*?D_^F`n6D$VB-Ffdza8EAni_W>B;&g9L8;)12qsJWtx~<1^*fOJV>0X?ez|}1 zsa`l=SbhVJ6ok@<7`rLub2Jy{c!yIBMNolDP{BVMd=3@Xey851?|0nogize~YcCvSGQwjcP6gazIj_s!&awGF zo&J^&4~PI}y7af02`p2K36zb=x6BG+Q;R<|hKx~EX(j{6Xevw>uTW#Lm-Xw}FO2$8 zDhXO&G1G!17AHcvj8oR6aYjo7cW_diJ3pj2ivP0|=l^(|2=03UQ>fTt8GPIg78RM| zSEG!(sw+fM%+}?kZH!~gqE{Vt2-^DpDVts%4V8f(%}IesSE-PUiIqwfY8A~ zL-uWrPf);Y3fWG%jV?c6s;qtmKiwJhYN=gdWoJyCXlF5>)rZI;OXn84S<`fG;7#@W zd<)&`PbcNtnP=Z?P*b)K{STzV`Llu)i-FANuiYMGE04e3UJL+Kz*CN!67h#t!@UP$ z6(5uugOLXGxU~E20nCjA$b-1TfINtMA$LL%dmHKb^a)JGE!8?99PxWrnj8DgI5Q8TNBtXTNI&{*%oMo)+7mj?+$7}4P z0g>PTmN2~c{{dkLl<)mDEpB%yyPh8_gN7y0{am|EZX{M7tJEmWK!!4rW5j8J-sPWZ zz-07SPg@mkLJM!I2~e~H0bEA&k2@rh^R;p&1&;rtz6Eq~8Eb(x{Y3 zp3K7W;fq$}`!CGx`JK*T++9cfh1mtZNK?13amKqkJdtH!8j*73AlD31!A2i59`yt6 z8knz2Rc(Ggw|EGK5!X7Q@cYV-2K@V6vVpnNO*?>BHXc_HAr9vkGj$~(lyk>;IvUXj z3FQtbK#Rxj_e~MKSm?+#viTLhy$%V6(wWN zEI*C3%fl~yJ#gP1r}7pPy)0k!Z!Y`4&gQ-Zr(rEZPM2&(-mHkKQIp|fLnfd#=7RO& zkZowYI4pLM04Er|ihR9MsBnJ4LJXKx;PM+cDE6-#&q@e_g7F7i4sO-I<;w43q6?aB zeRZiuuLP%~J_d3$o4BXdcG9sC`-p?!GF3TxN%T2T-;7fID1#ByDd&FHDSjj#f6}`C zJ)r-W-x{e29xb^Yp{O{Oo+6E|abHN!kLI{NTK$TR5y~d|N}_ z6P$gba&KGdoR?{(+#JeCp@O9C(nKibtu4DdaN|4fPSNCfs_6M%3ff1(I4Mrh(XyN6 z?kAm;8D^09EQe{f&W+t?+8}s`s2kUM`Q_Yz0ICjfmfHV)wq_?cdkA{9KcqN!jxWo8 zc+}mUd$r7`&>JHl4QkT3%2&eX+c(GB)3fPwJ7(g?uB3WV#S+oE3ARy=3k`o`cuVUWeE%4n+T?pEl0ubhHM zgg=y?3|^((@VZsqQTxUg$0;DT3l8h$jT-YNQB;u{Q7;;@`H zOeU~o$!+cX>2wd|MlIpQgMVWCSMe%)byH4vI#)k{D^kBuDX`OOntQYI=6@>`n`N4A zc5{6w&fi>Nljw?z_h7HmHv^?eX(I0>$G4o1+)Z!LbM@xOd1@6VG2oi+m2$M8wJ2lK zHYu|(36x~|*#+klJZM={$YID%k1e}$?UWeKoi*FhWJ7>xY*dmc6NG?qHtDX;cCqD1 z+nQY3%ZHV|KZ%PuvPVw!EjCvZ1K;)c<|W;w|L;3L4mj>GjHc_}4rQ*3(F1a33a+7u z1^}`G-+@?If#9llAXG=D{G9_8%MS;tlGkD&u;5`%bykhE$A2*t;C|>aePi$%R z%}Hy^N3$PID#^$LVAh-qe`|1G1@Z^P%0q$w?e+6oP^>xi1mLV44YeBOBj8r~rzWp2 zi`PuOYdjF$c3MqU53Io}kefa!>VLV-`X7jEy5Y06Ook%zY1gQ)t&n2^qpHc^=ADP2 z9F!gK1+^rucG;>nGaY$fL$klIIuVF7L>o-gjWWrcJ96=YvZt7IK9~rFYSNUyF1^{a zBVeWF;mp(90u2JT zWY@bdUJqrjNAK{0<-Q!Wyf(!h)A8Nk7rGP(u1vh)^f-0~MkvfnF6&b+CfkcW_hT~A zx_hf5U3Fgv~@rjgmjfLg!E+T(7S>ml&uqhEj9Xn z;&@&n?t((q7IR9B(!bg#C8#1OWY_D{7!_5jQqC}20FT`Yn{L00*NIQE9`TyQ=~9q?-(QAX+Byy(q7MvPXa?ulj)!m?eEYlxUTZ+-=efDESju_0Ck>R;&6z@P+i z%n7Le(3e0aGVK1bbm6iJYtX~~-^3Gt7>+UZ8#ZoELP#Y%x75iPd8c$7zP{xl9NZG= z0j66*Wj8fXK4vHLvej)qD>ICp1WPcjS?e~{9Xq~HI<0|2Z<{OIEq!etslPAC<#tfq zeKJxK)f9DKJ8gQ~ZoO`2P`-lxIoSC9pB}rWhYwPSpfRAm)!Uj6JnDb67MXQFIr$B; z0KwYhwjN#pOSgJJQ&RN*ud%3Atm%gEETX!UyN^ixH51|Mv-Nywl(!#8M9Zl^c5>Ws zP*B*&p2j$3?a#)#SME!|&{1bva= zA9Y1`xFK}x*997hb55_vmWQb69z7RW<*tDDe(sQjF)`lz`L3 zUTkbLc0<}49OCsBGLg-<*jvS(V5QPDBlbX=RGx_Z0Fiw1?Mb1|ij=hU^v;e$^GF=) z|ADP1QZgV_j48TuM`C55Fq?{~-MmWdqU16pG+4k)hf;F@f)2Q~Sh@Q4mY9Ay@^)K4 zmHl&`ZACK4hyhMKctL-L61)U{bKEql=Opf7e56UbZK0l>0k!KAb$fzR&jxq5z;vUf}zr^pJus(SwdWoEt!qAdwW*9Cm6J)qI;tUq80+|ZPv=v zDPj9-{<`i?tN)L*_l|0^OV@{01O&vWRHaz~1qGBUB`5+`iYUDa(n~1P2>}ri5D)=D zS|}~)KdXrv4uL&)X04aQ%nR(~TdFPumbI$KSR#>k1u%Es6eP8!gqKF`p$0m4Q zWOrj)fk1?kE+z#=F2o2KagSB-t4w`MoXR!Xn;9><_aBq1jU7+(Yf?uDm?w#Lv=(t# zImuy1M$zb1kX1D8uzzthTd#DyGrklP%y&fM8A>n-J%nB)?{sgqc%+E8UAB?gR$o6K z@NL`A1NXyM=X8})7@0Y}lkeIbPeaQ^~uH~+%MX%1zn#v)(8IGv@fc>uZUZ0e(y}|9YlrJVUfwSnIcuI^v04n{A_K>+x zEAol|c=-R%Kj+H&N%6#Cj+&kV z(eq92a)<=v_Yd)=pzs`ecFwKO9Pum?XW5NnZ9RXrtmAkDubmQ4*Ik~&kx&LbUlw&U z$odi;aP0Xa(Uaxjm)Yd=(Dp;5t3Y&3;Tnj%F3b}jGny@B3F>{>`?f4+6{!4$HM_I>{WIWEZb>teMZfb$(=PcDK_$8I)%}Bnrxz=3M$^o|9cm^-MdA8jb zn!{wwNMXkf6*%IKv#s(x>=E;43zm*t?fm-Swo*@?$VjFy)Hp8SNeK)NtUAKtb98P` zx$106a$ne8h>y(RD{_1Ny37sjF=RJU5ztVV>}U9`#3Q4*F%sN6=C5nvOIa z(ct{4?#+$#+0R(jEfHK>Hz@AQF0965Csq#(TO^LXDsBjbRQhWs@Q7!j^L+frN@2)K zbBKI`tXJ1l6_s}y`VsoptZn~4{r0~Yo9t#@?2$Y8@@}AYIMG$MNqhSdYkT14dXdJW zRPN8%2yA6O$|11GW`BVlC_KtNjE4CV9#cu7lrZc+l-&nT(=XN>rm!lrYwsEyNApcmjP%tWD(NgZ1b!r!vqt1X zCLB~TVj#Aa|E0P49UD(`gtj1r=lxY%<#5i;0NhKST*vG10&TetDxB;3D0UKY0KfTg zKy&`nivIs%lRf@iE0Z9M?x1U&3p&y*^D^(ck|uP(ztqiHZ`~ZLqOC zkv>=`g8bS^5uG0&^&ZyKPm|HiSt(|sg*3Or(B-RZ6V;}!qJ{(RkJ^R$3d}z1v|W%? zsnjtm(N~pzk?l;wp@*AwH@)C7kefty{iTAyU=3Ix ztKIkd;G63QNuI%X7K`q68^nP$Nd8#6RJ@1T+%Szfu$stt7%^H9JlkN zlw&=a0zqt;wwB^cPD#j#yhM0;&kk86UO?){6gd{iki3al2|V_AIJw&Q9{IBJs`i*>$k%X?nv4^EAT(u z-I6NO;pQzUQ=;q8zyJ%X1U44;Ai#^aLeJ7E@KRgWmvdN|IDG}MzfX3yETJz|j<(h% z#GT;}o^R-;q89P#caRe|J4rWD?5x$fuaj=(B`Ip|G?{? zHbJkLXJ%qrkb=xp9s1j)v@xV`1YK2Z-YK83(Vwn5yE><+HFS%RX+&pF+eHoM8%Ut0@fJ;s{cx0Rad%}=%zAkh2b#J(-SLk-{LeRIpDK| zMwRnr&ePX->!K$r2{Q%|Zkf|Yv&RC^wlTT-K_T}Hg|x#$iDTe<7PfFcG1fr zE@1z%sp%RBRr(MzFS6bg!nOu1Ki@+m4W&c56}PPz`DTFKFv<;*y;L(|;;~N#DU29y z8FzN5q#x~(8q$`4(SvZQ-KvcXcZVlE788f>=aX1W{Y*SW9m;&j6%GDpZDCx}&Fwm) zZTjX?TK~$N@}C=*+D})7A$%PYCQJ#&7>1h#*hT!nHvim@p(Lnk5>5EXG9N=>X%cG2 z^aE1BYDlB2^O=%vW~Nqdj!s^O%67xUcLV+Vk|^`hs`EPqN_3A$C8_2l?W}JJjOxS{ zhmpnFe1{)OhdVu0l$Mqz1x3hQy~V9U$GjtxsYPhfcqUYK)5XEj^(;qP+Qg%8>siEr z+22=`Mmw!Tjd)pIZ{?Xs*AztgIais$MvJad7Uw~yifQb9+=Ibt3bZ}pKdb(9tA3!c@r?0H% zO}}+u)-N=c;k4NiQ+d|1F42@#m(7U`*u=sO)K0(*8BRV0X$lJuCzf9{m9Y&;bx)Y&DT(Amo$B26Y{7GF?r3QW z^6bwX3GO^FF?Dx8f@c4?-RV(kKLMmAMz=lZS6D!oUa0f-oU}8vDe+vxH+&~lw~TE85KBWz zgJH8at7BuAk^TL*H^sR5%iPZdAC6F1hgt$f&qxBMa~ z*DP2j@=Yr_yv1Xe67B3qi=>FmPk3UpTc1_TN@5k08=KWEOLZeDpiuWDFggzXIF}(# z6nX#Iq!9W7ZqZsQEL?FtA^FBhaumgn&UZJ~@^&q_#H!kkOCb*z{!Q}Vm%B-IN()6Y zYq)?sCFf!U-+3|NA^2JOqNu7=V9f!=YpokWc|1{^ecpR(E{F&Wrj}HnqRXAr$ErLE zS68v26PKGy!?;~QQj#NLzn^C|a&VUJMwPpD{;OiGTwXFdkN>lB1G<18udHxJdhEIY z=RwQCmeKgUK+FVotkeMOKb638EqG1(PAVyN9dfnFD*q>4HAf?mCTG?xdVaq|6lE*U4r6)d?^fZwe^;hC5c785@|4NFcoE|Fv3yfdOzw#y^qF3K zP|_sVZ@;>0*7rSprowFXGw>LXmly|KN>#NvBmJqLdy0{tTz`)R69#=MvfuxRldT?j z1*5U?h9f@uu0t?o!m(j-yStj%D=xs()ZW@U*zlQ)&4x!;+!R&uq~QFqu>K^ftK1de z4V0EM>8kYaxLF5n)>!Ha^g7D=Qx|&Jjel(Gv`YW!a%)2{6rr|D#~aO&j|3G0)2vTX z`~aBO{lWdx-apQ*rw&d;(&F#_w#boC)hA_Wa9rk~DU6ta(0@Dv0Coie(OZ$D@V3?DzN9zgt%wTcD=ev+~JN2yCreo_Cj^NlA@ z>Km{+j9wo`TKC(thj~Kzuz}@MW5?u(1GxqIzqe=W{EOb~Y0f_@{BrU?9(4I#RW;_O zUr@gir1?DUMXOr^{lOv>VWqe>MmkL|sUpB~Cd+>93R%Kl*%xVo$}t$OXgU)}C*Y$f8LhQ(6GcFFXG z|BlY{rLrLvKk%(F3Mt3w?|=W!JF&F%WB&CJC($D~+E=Zy#$`+sp?ZM;bR9@Sd(7pv3YKqGo?>SLejR6b01e^l9C$TJ2Kk3t1$0_ELE_XsPBPYlO9l$2Ybh{YI6p*@yjd z(@;5~1B`ZlYKvU_DMYUCPPD+#_;yE;Dl^Xesgw*Y-7Gh{+9us` zWs@MOVlpoaYIp9IEny{+;AC;PDaiV8by{IXpr+*R`khu;@%BY(@LKOTb5vrT4eauB zdhxkfPjBSa`dTp#6gIrz-#u=g?1A9pX+Wa>yShr6nqr5^T6eOlL#oO<*(&camj z1>wz==tO(&1YUc@lMkvNfctCjI+|aud(5GNSjHkh3wsCd|KW9w-gPY)3O&^U>6L&Ekp zFy`yTd=vYh(T9Kh?PFxE40DIXo8M1T(lQg6A?V`twls^%ME1juPRN!WVXwHQ9&IK1 zOg7P{1m$2iySlKIvCbyfdugJ;EK}&CQunW=_le??*d#fw*P!o{j}hwW(hx?WRc_tC zXlJ*YcMM}zlYBhjmqk~?W>a0U^QFvR`=ZwaPjPQ4wxz6hb)7N!xt+)=xoVw}64|x`sv(lXNnr_{l-t3>v(56?E1Va*+)t$68mx2^aRfjP zrf`xOO{M=~T>Wj>P_%$n))HAR&_vNsb`;b_H4nVoKX-1j-&B(iXWK{Z;iV-^A!=8~ z+M)%47zsk`Gk2-Sp$$SC!cU8LhRJu)HiKDVArz^!>gs+plwa~- z?Kh#>EBD}})G6%p@}`hX)+V+z-Md%Db$SDCaIajTBjF*!Hv0lQz%inNWBTRqR+h|MzsOk)f20ZU!Uab*fY5SFy(Y#Iqsw zfZBd;-k#KGr4i}ZXRldEDlqzE(wYnL6GD;tpblE%X&Pwc7UW1@Hw0fg(EK!h;t`Qd z7cj{K-;N+Q@KDs8uishhiZQHoo$wKwoGa1vK{u_(TJe1v3Q6x($kHEMA`ohlPjf@g zUE$!KYGgn)OuKnBRt#`IF;kaPX+0Q@rA)@A2FPjd;IB^Hhz&*0w=_53A{Z6_+?VHb zKCuYp@?KFv%0-sTan@4RTL0tg`)_{!7$fgB8RRSx-t>7din?0zOp?&HqGG&V4J7^c zkPUloP7u8lv4fU;_vH}ln?W3V*nE513I{HvTFtkUHF0iY!5&@Hc~fA2tym*(v)8<7 zMsO&xFnHe4dgo+VR<0=X3#8;`3A8Q&{yTLwG6GYeF|Ur{5NFm3WTa+m39F8Nv^e3W z=3sE6OnzK4U)Yv^f6_Lfd3sWEhdi8b>bOa_U}}`m)%C7EmI^O?*UimMyuRmJj+ItI z@>D#(`u#BdXH5BfHbXhHgB0f{tiCNZb`bB#Bf;qnQmwnww&95zQo?HO5|fQL9X@#; zA}Al&aJ9>C6Hmq2+Sy_8d3C*UCLUQ08Ozhv4Lfv#axBbavnlWLHebQFr;CVoW2rFj zDbD?roD$d@`LJS6hXW^SC+&sFg23w=7mf}F2zAx_pW`=Fj*t6Uec*t=j+Uo=*Orr_ zC7i&^+2qgzvBb*9THq`2j|th0C005Rpk4xIJ?6CdIzC? z)6=6SW+Wc~<0FEY)(g?_a89YSW7!q8r2+7*))q=}yU&pIZ^Ppdl^k6bxPq3`Q`LF5 zx>rz)m`wo!d1_G^q4!R+1q1bEqfD!kk*)Q?A z0ASs8La>$&_rtOY!7r5B#g@m@$zLHq-3Vp?Z!{JQ`?B%4C=ccqQ+PpsZa(^whw%EG z{T?rgq7wa+d$aeV%;iHfH1Gf zcBcbJN^Od&MpdPItU^}j+hgz>_g<$;t3*J~IbG*IzqIr|N$;-6?O+A-;w4k(_R1Kd zx1^kTK(9r2lFO`V@3m;I&qQfHmEC)ejgV#?w5U9dB;CPQbf$e9{p1*?&P(ZKgx_k1o zo7)~zQRehVna;vDwL%Jh(sFzYzLEEG^~)DjKfy}hP#8G|iO05!?!X#mWOgv;kh{B8@1;`H136CZ)SVGq} zSGtGcm9%x%wzlLc=MPGnd!u4Tv#%vYG;m2Bl!>$rIdt&_BNC&)(ueo#%Apds=WfL?RB^ep+ghAmH*O_Laf=6**jt;{sBr;ciqb$24_ zMiulUg!1kL&xt7+eji#MWUK=OGnT$lnh^IN51@Td%w1KJdYKg9?-3LICGgV2B2sWF zKFeh97n@3uas*6Iab)blIR!kZkW3CRN<50p&hcIW0c-qMVw0L%y?ZBBlVpM#KG6G| z(-_AJ;V~mzZplAp>jQ9_?&>$j-HjE?*?dSMNq~4Z5>ewb3^7$^7QQlc`|J|8z-wcL zd{Q*%kKeMio7y^UMOXTe;}}BtH_jP<$nDfiHSyeK=j42?D&V2K$~UoxW6RPuYh=qh zEa&g>>4x{0jev%3jiI>OE<{;L*;`#SSSSgKun!<>%QShLeoViP5!OKM446-k0|&xedQQu*@g_fC|c;%e(hAZyI+m;*`qUmPJ>bd9gM(ZsQ|O^GI1zS&4lH z>kU5OY1tdd~8zRA@q8?fWu>$j}v#eW>)lME8~+_h)C1hxnz zE-qlq6xP*9X2~MNL=UIRUxtPf%ini_;b#`(P`|y>8LhG~*KYOllI-6JsJ^Y}$adI%tpr|gA$UVa~G9WVL>DVI&@ z+6#kwu^>=$QU0`${Z#MK9cI3CFfZXN^iDnvUh>JHn8_-SF&{)G1xsEQg1W$X5M$i< z@zqnq3aHk1FuN^?g(l765Kgt+Hf!V*x1=THTTaS30Sa%ULLC2ai-h+#mV%Z@JqJJ9 z_&x076lodvJe#4lveo?^4uC+tDT7OUIxurW4@kH;SmDh5-CBu&>I0AtQi>vX->A+l z3;cuV^zWhZshz8888@|m)z?0vw(N*?{R$^nZ(eKNjEV~RfiZ4oyED7G!clxtV6Z8o z6<*U*L$PJHg%<89bZ08g?`XYEE8e@`BI@r}O>ux@U9>k0ZtTA=XrUX77gyxFnJP(@ zu9}v2$F{l}UQ@;j=O2`GyLl({PJ;ich35M(6U&4wFkdv5k@14>%A;)WLl__I% zWw7^^rKN3{BH0USbxepS+PGiCFhqGL{fE>*nvX5yN8AbF9>yySBiJ}{4>*p;A4xkh zV*^;aXXX>MKRZpi^sao@N-~qJu=d1 zdwV$TdbIN#j#)2>5U|tB(T39sANg_LuM_s&*5E!9u zi(y=NX*?^Di}*QlTn>XkG@@yDH8VEcrfu-@_FLP8K)lFr|@eCKFINuf>@Z!FpnYPj2rP+)F`@Z5QY zQXrHELU?vj{h+sB1ddXy2ZmCTyG09inxyP^=v+4~`d;V(<~EUQH$U+TVhH&;9L70z z#yfHpB>Z5G4lKoIKQCil+BaLY`XAiFDy2Lc_C5LpSO0T@Jq6P>uFU}>I_0)z>*?rD9w-Juz3n9yUW$%l z3{bV&kpAX0R;-_iRYKpy#Ke4MDGWWWdNdp_ziAntC{tEZ(5%u{vM1Rqo0)P1I%1xS ze4-MBE!v@~YYqJMl3cN~Nt&Y$t{G8#EAy&}#gcz`(xhq8lK%;1DGfq?h~wAx!DGJc zTpIeJsH3$SJ#E?)%ndz(rkd+) z{4#g*U33{#wHB+R#3AruDzDi|{g+M4)!#EU6&2^$VX$!ew+@|`JoUrJ{OR0(U1Stk zV_=@ZIoEr4t?JnGHPHs8JdnvO9%)^-9gYtm4j3k=LC+Hx^ex@@c_kg6?uy(;ubs}m zmoL3w?2VNd`+f-kN%e^4K&P^lJ*p5%-(()?w55!6z6zvc8(aqB-`adcf#>DDY4-@9 zwb`M-E)n_4ET_nVw#KEvL$v)5^3nSvC#DFIxixo|9V%o-c?Dc2t(v+d?8i4;M}R&B zdyfepswVk@ixI&SkRHQFMxq?*5PGTwJc!Jb!|Qgi=fUfaclPTVudQnn7p5CpzZKeg zSF+MiR$}kF?>|=A-)hg5iO=IvT!#&p!ltKHimg4{Vi7rUqj*#PNR2H0Ng{FI;NYbd8b`TLGN=U3sibOx>4u%bn!Xpw78DPOssHvDDXAMc-v~9cM9^YfsZH2;J)}2BQLM2JF}Br|P}#J3i#rVj*NmNN;fY6z4Fqq%*5VPT+Wp)mzJ+bX8io zAA>Ek8sy~3T{ikC^{@Vs=Nx~&#J1wP-1Uni*@s43r`q#=vyHEoWy+G((>~GrY~n$UuZ6nycdS=Qx2$PomsQ+*FGdZJVkvO@r#K$8b@6 zv*Rf4n_PtPZ7?vLdKB|FoFwlA-4wx8oK!Pr%Mc^J}FmNhEU`9gHLi`z2gYS-7&uRXcIUQIP-0mbt^?2|K}D- z`n>+;h6fEc3FC>ATk~gF0_&+3)4k#+LS_OiJ6EPe?U;ksN2+b`+sU*|=Rt8}?_T!o zt&OQCiarxBN0LS^2B>#u;aj@ zFH`8J``%W7(9yde_-Ul}I!o;jYN|CQQ90kIIG;E^+dnFxJyK&=Deb)QAwDiCxc&+6 zuc;B$_+THe>EG@$v9tW`Lm#Ae5oH%pL+n!}* zZf-8?Qldi@#wDEPEEix`t)=0gYw;)7WmZ?aa$fTl;$W~Fj(i^GEZ5S|9cSvn%s0`X zyptZ3`IE0X7-Be;DtekNzjs3Xa+ed^+ zRVUL?GqLfvL!FlFWsuD73bv%C)9yX2X3fI8Sidg!Drb|c-~1F#3= z7{n%OaTYeLh493g{>S54#?5@i?9UzC!PqVF+v^bs=!SqxKXD7`+d z7YH&=83guu@@ZWnQCiLiMY~d;pEK`R6weI<%mRCHUV!qO#Jy333jFvuDe&qBR+SGW zWkqxd3+qf2Tf`ir-e`;tvH zYnjCpZpNj*G@v%k(vQKUcRF4tW?<6yeY_Y#JRHK)EcsPAxVdx4Eech?63p$+chlW0 zSSUb6^sy}Vs=Rn&vMIy+Y6R1rHqH+_D(#&rmf5?q;`#R}>S@1k_l^V%x<^~>%Ce%m zKilm#U$2U@;@=i}hT&QBtM_33JX_qusJKsAkK(1Ov+$$k`Tg(ProT%ilV2RqGL{o` zwT<aIZK2^si~I>2i=hRL&}?-?b__rV8@VJS zNQ2lm|KrzQf*Wmk`AsH?wDeUG!}7GzYSC6QKNoPBSF%!9$F3`8b%^VS&upiwA~h2w z%2LDUiXtLn)|y?sMvkb61K_K4tjH=7`7ZJjAm&XtOAnl0jVz-PWP=s)Ny*u0XvyV3V^22y?iqk3AdY93#8uX-+a;C=?H)P0BR&1QF3igvM z&J>9&^2C+BluS1?o+fp8q})CpYgP!&y`|HYZt(n^BrwKK`-|7}{|1)*Z%b$_!j$)B zZ_i%v`CJX)TrUm^sbLB=>U&)=vG58pS^2>0>1)%+_kZLsi98nQe-_~A{L%Hy{OD`N zl&zmH)Q`%T1GJ=#iL(+v*o?L^2@3U?o;D z`U?)9cH1L<)JpCxufb;-CBQV&%i*Ag0~!0C>VBP+ieAeoAV}+J4vSf9u&x6E7%5{D za5MB?^7W({bBkniy;q4s#?{M6?~Q%#GB&lDbv<^61mCEmoos%%!_~|!M`k@KoZ;g- z!+7yUgA*v>9YK62A@Xo&>98+*Uga_m9epd@Vk>)wHhr-WJc`8i&&sp}5d%}m;a-oS|CKPaTE7FlPkI{J1i3xkY`iO`^2i2Y_!Dn(DRkI_?{LlOn;wZ zj|Tom&*JYN@sXR{XpK^*xuvy2#hB1w>vWYlotT zddJZhhqNAP&$;)A9l}nzXD+C0rK{xj=1c{0&`BGivB9FvO=3kMmSW-j-MU`wpKmyx z5mku^S20`U#Ke!=G_#f8zLXWN8y{cr#x&tq*Slj2U0pZh@@w`ME=p%qb+Wn6zIA18 zPkZ`wz^MDdq&Lo?)04TKxKjdEJ+I8T4tOl2)-`?FCY!><)8QI3Zo`Y)YnAKeIc5em zJf_N%GBYK%Benq}uzf$Q@YK;EdsjQvc zoFtN*m>3HHDt&Q%%y3MLz9|01Hh`JbQPsrARe?dk_4{cPDOZ--2PMr=d!?psH69Dg-JTkaCeS@+-unD zGktgHFj z?EEIAEupnFqpZ;F1x(E0L)!d+rK_17+rVp9hvuD>nTi)ejV$}A21@yw|MwFmxamuc# zGFnqM2)e>w$bBYB)=PX6HKF2gsQt;R-3@4oupHe()+_dgbm9HVSjH%``Ch{p&I^! z<^H>X?K)3`+1^`QoA)^h8y=!%E)U*6V?2mG*ZHHX;l=#rb38n5rlzKvk_J0a(}6{| zweiqJ2m7UFBQ5W#_#=aQHI`tq>C!Uk*$(t2!`x3SOYa@{cs=-vhJKym>!{kfTnz@dRQAv)s*D1|>tcfjd77sdl!gI?|!%X{gMNI8w#irAZX7d{TL z%?lXLHK<%eOm04<(stgcy(>{++K4bTHJ!~t*I1bt*9I>Mv^!psRrz9(IrUYF!OJOu zX++fw8cpuu@!72loNUC3U28R zMqhW{U_4^$9(yc+D1=D~IYU&UJxHd3i#@wDEi+oq9K!Bi*cMurf1z?IX2Db zKc+hUsaNs)CU1O(wWE+;6gl&DccXF5Jb6~sbGO_BS8}6UV@l^0+d`dK5zb0WtCU5@ z%{jjk&LQGtH_oMhe-q3Fi;wMD2}HpN0S$WDwWI}LrweP|Paj|Iw-^s%;`3I&MIWMm zzw6#s?H86;(1Mv!>6bA=RWMiCOUly}0vcIz&jW*AGnL=G4UmR61W-sfpED(Qa!5=x zGxD#5+oQ9F0e2LTyk88}6S|>B`5M^p^Gwn@QH+dK7-2}mYL3u3Nmp? zFbVgf@tUf6B<^iKKzq}i&uyXO+`-5D?nVtfW50g=5b|j$J(1@a8~oo1LG9>+TL z-QlvIsk_%uHsf5$$VAe!nGzYcZ!oG)(J)GxHP&(?at1wLf?fAqHpK8TJfjr3Vq>{)k zRb6QCo;qie?UFwlRAE{l3CyzQ-1!4l2r-&jyR_EmWOILMHJ8Afwu7(PALK$9_e=B84fPZVu@Yc zr@p)!irw4YG<9nZ9^m7%SobTJEGNB_?WujIvD{n6!HmR8pnYs0LL>~BY-4}#(;ax? zG39`C94GCv64hYADUQmSp&hDqZ_}RAJMu}yglm6_gV25Z!1x}sKY>Yb1HyjXhg?Q5 znt&$w-=C4HvuKs#3=9jM#aViXBX*)EW}Ev16&HipXP?e)@-G?3!Pi)wO*o;ZKx}5~ zR6Ko`$;dUV+|p%$#-`bd_7R_tVdvb*#aO1UwCdBrQw`d2`S~=VK9?S^{~IdGzt#+g z_{)z0h385pN$q{*Z(RX~g$QC#&qtt89KY1!8{QsMsX6o2Ky@|!_rQP|pDLkzZOxuw zy%p{ClDZ@xuIjC9B`KNtJ6mIRs0e9b0_IG@&jjCzlki zlWC$ny;EDOJ7g8?MT60~VB{JOMp|Vqs~aB!3u*bd%i3dvEGldZVb_)lVSKf%ME>*2 zDc*zr><{@mrxsg2ejE3n&8z$nad55>77|<1zer176sya~*5JJ#&QduMHr*m2GF3$E z?Nul4dA^W6ljLW94SwTM=YwIkT#Ku}e;|VZX?pM)i=KCLZ7lPR|%$=66v`8mMT9@5#JonnM z?wkHiy2O}aH&Qi{Z6G}b^p{AT!SSIXwo0yZ=UNkJ5w|t39ANgG53mgP1DkZ9viY-Z z)I&v&meIt9c5%;R`IbW%sE;H6UmS`*U-DDb7Vb7_Z$8gDP;$%%q5rkL?YH2K0=-$8OR!dtaep$9 z$KDRe2=y+pPZ(hyFu!d1j>aTpNJNcBzVe3?Ts@R3KS0cHAitb;vET5xCuvyEwa+s* zd=4BN6b>$jpQ4T>V@*KY%cVNi+?XC6c+H{H<6#r~dE#Z862OOlL`p!K6(T==Ohagn!3FjT1@{RN_YC>F7cHg8HCK>vhW5Hn(mb90NY zK1{@Z(^u6T%pea2&6tZq!%AQIJ{;>lwa{xH{hh|Tt8l+usKu(=|14W+>QlI!C^L{} z>K3=bcc*FXy}idn!@|k|pR&|x{?X9nWY@f_HR&S<7Y9x}-&xqI5H%3jsBIb_QDs!s zN#SgBFAsC|MmKRezpi^5_e}7o_gTkdq*q(laWmed&flIyQLH2~w=e&nZA!F19A~{- zClh?7H~6Qs1Z)zYYY88eX1F7zBK=q-JRtsgPG?$&zq6IZvo4{ZIv&4Qg({SBI1aN! zu}MtWPC>Jw)$DkC`0eC8rXfss-<&s)P8@aQ#$IYG4v`NEOzHV3{`68n89S3)9cIMbA&WCs;Mls3F--ql?&0)2b~SkDmpPyHsU z`zdc}k%5jqDw?tlLSdb+G0nd^e5u{}db*y`OlI{74gEj3GzwB5dz@@s^USX8 zXa9H{8~YY$^akHAx3Efa2_P?XYj#!!_)6KZ zMTC9$Pq2UF^)3oP5BSt(~;{>5&m8y_)~`*;#mRk>=TH&jo68T;C@S07tHF`{};& zNpMXjU73Bm+iJF4^-9Nr3Hd-6%-O#Q7syty8dcq&S)P8la18-0zZ3yHm~#ReuZ^_2o{d@XNh&y z!PWx``I(nIE&w-`%I2(cDr{=oj$*NBXsVx+9M#iNO!qUI4#&T&qI~4C`3MH4`Q<#Y zBFSt7=3vg5)Nfdm>dH#E!ig7se=v)LDf#bmL(%`M}*yY2$xt^cg%tG#qN?*#n< z#~G{dJtE6Ya`j5mx$kV+4NET}U!C;8O;ye9?-hQLb^B^?zg+zB7c;}ot;kWMD{4l@ zobC@tIZcuQ6d4+|`Z-w~c+wU|u>*zYxxX5=W70R-wr#|8n6lu(n1X9!2IXUMYuwj*A>{5B}7m&!R8h7UJm4joli3g8wRigGVu& z*8I!k_=mn@#n+G0fak7TxnBa)GV4<*VAC|7Eh(p=Oa= zG2&&K!E*(kogAH>R;feeT0Bh=H$|%Q60rx^`2F&doi^Jx>%s_@6km1`)ORrs$wUWP zV2$f5749lKKmPl;WSMZ=wqAC}J0GimyCa5LZSG|2#9(y_Z~l)o|fA9m82b6Mu)ZO5eG-n+NSw z0(>1Muk_HgaG}Pg)uM9F+;n!m*g@OI=?Y=uoLB+<;zB+{1pkW6$&YovS7#GEfvYzI z_G)tL$3k1YM4C2JPFmu3c~;O@r)h^Qm~Oy;PfEOcR;#C@DLA~qXU*D|1s1)WK>SH? zv5wGNmM}180H4NQ{(Hlh$4)0$8ku)zRC>HIla8fbs2TD=x!5_~#K~LS-bGVaR zV|l{+bJ7M{U0)QInWW{u5VB?c3(zTU|HPN8sNIs?q1UGIOipXT2vS*uHdIRS^W-0U zxrVN&xEM5`^FCt{Y(fiOURb_=smXjCcjO@PJcWycVi5n&oZQ+z-k$P}>Dj2s4ak$x zohWtF3H^kv$4HOp&97F~GVF+F{iLYn_ITPw$6O$4CF$~dJ!?hjIp6+b_EUH9$<@<8 zQ3k75n}rv^_HBb(T3CT5QA*7u#bz}7`F@f>)i(0+4H1Nq!!7JB-AxuWY+KeS7$RU> zq#>r9%0QuF;*E6eY?SD^WdO^z94w=~ZG`R>{ndU#l7q+!HtfjRe(12@PvF;ULCmKy3k$YJ5F zSe(@D@WCVRa5w5ZB~N(Xh!b19{Rup^pxGej;SL@Y06ssjfkuMEDnfpm12+P2tVQ+6 zqQ3U$ci_wM(c8+bok!@odx0Mm*sg(aMQ@We{bCsr5ue6d8|wn_te`<7 zgk=S|TO3yu6~OfX$I56mVdPYUE^c;sx z&k|q3_8(qXA&K(J%Fl%ltW8Yv1Ap%R`DFdCGg zaG^5^>r5f)%&n1can@;^E1`>>;c{T}UcM0t!NH1@akCxYe>f?FP5a=XKMq7bI!gxm%Wr?*6MzymKcLdI&X3X#5yn>Heq~=21LJ=?HWN$4Zyoi#oGO8Od-WpB;Wt%e-j|--A1!D_hH4X&9I=0rS4q7TQ&|3}()hc%sUTidZAItVBTsEmRFqEdpis3*AIdC(vx7+-}9sFKl0-by#9ait!4YB|?^9v6Mp)Cg3 zg0Nua2_8z4#tc$mtlaCX1bvHpfp^&kwJDw94XwfK_kSrK+y4i}WAV@1p2Wmd_vZDl z4wxz6eukdk{5L5ARQx7U$M1>*0USJ_dTPWwo|4+el`S?W@N15f8BYD}>3RISpC<3h zFC*pLn)EZW1a~}~I_|q>D5&)qZ}iJk+5XSz8you+9z=$Mdfl#js?ax zv7Qr|5%PAOMW;WSx;lyeCY>!QhdR5u@q(sF66rj$PG`@Sj}4dQY>#mMxyAY8-TpI* z|Cc{MnaF=1T5Vp@o@FntHGHaTud#M1dKKcU!?*;>zc1CDvR>q6uFG!OrSNnuov)GJ9ao$c&7? z3*k#(rj3pxV^^o|3)f;!_oP+-7HR*3Yr-!gA{wu}L{5vaOU{-6{M5HY z+Gvk`0arbmDmnRa0En@GQHV5?a8!G`JP_6b2r)2yE-v(lGf*aOY3vwid8r%PDSWBJ z^P|S2*!3W3HvICuyhr6s6hdAE%TG5kdU356zCA}IADsffwM@aBay;?URC(m^(nPI=*lR@vFU2g_!T-?}^jC0tgf>|8Omyx=iZEGIKy_sl6f&vd~ zw6)VGL9)xUzn12?J5y)*!hcS8%WK_^n3m(3Jht6?^kp+Yg8iv3@k3$u-+vqN;Gn~1 zut2NIPadheH(Dp?z3%lJ^mxB_>6gi*1pNRcxCQ(Q(c9vm*chOXh>QtY4m#*A7a|$GNGJg0MfiZ1|ow>b|FqBfcA6 z0w0J^zpeYwu+f$MfBD~wH~m9gB8Cjgsig1al*tDx6`{_l^otdCQcs{c7a5UqB&;2IN7JAkU;)eX#6l_VX&CVvH!;Z{f7fbg}A;=zXd){6=&SRmh$ z_4#ICD#EHG?b4CTa^{nWZC~ig@z*|wYfNZ>Ah!*mg8$PKXuRaG4RBg@3EADh>V#dC zjXBF_Aj_TyoVkh-;rsIxsSPIjP4?<>Cjs3aAn-jys3>jjZ2O%D39q^Jyd0mg^FE*> zGmgA#Xz2z*oNKLhVB+o+Nc)M`kN%|L?$80Od9*1Cit%TMpNHQqY)ag8O|RPE^Zn|l z5&u`_*zO+KdHCg(>X)15fdDEGUO6O-oKzeh54-tVtF%d1`eGq%Tp!gjUSGj{j`vgh zo}pER1h2pBn=@9q)|nmm9XWsaj+_yDJbw}ZkHQp07_0B@-8rJbKd;%N-*{egU$*UQ zQt`iFWZz{h+_hr#?X9|HUB$R}M$evJiTjIA>wkX%eh5?%XJo*AP}rJUrhQq%Eo|kv zO}p8-!*sp2yw7tpVS~#b)qf`&B_;TZPyZbU56X4tFN(`< zesVa%X}+AfxzcOJbo3=zA%)Z7nSi20fdAwQAQq3@PrW8_bp?C<&$8xN&p!3fUNDxUgr^YO1X~9UiuW!iVKnlY=as_Tmmwtd?QhF zwGmR{J>xO^DCyzNY!Clkd?Mkdjv7xC-+OhJTF#YCyFv^N>EBs}g!UsdJ`0@}T~*}I z(4&B!IiT{@E*aPVORg?nw@J-saD2;_Eus$YK7Xsc{^hlQN%qmPchXMczKR>kxefg; zMyvO@?(!;d`D+O*?|JSQ@PrS0^;!Y8=W{|@OkY?)YkqYyLdLK&n|LWnbqZKg-`Z#>0a3VibUe1FPLQ+^FP#;-yD@v#1=L0{d7wk&?y zLD*TGA9*!|xLxr#IpHhE#~h$Of9}rI=xpjMu$fZxA&vJH+PW826oSEIFw68!3VM4K z>_U#hNHx=LZguvXtP@#4?2wbbz{`emJUZzfwhfJ11wdsHbi<;OqK_VxC4T#408w9U zC)W7Y*WO+^9!Le+fI|@*1=s^%AYup%*Iu70p$%v1!e$c`Rfu3Jf#d$@DOf#tFDRk5 zS^}mO-j9ro1e2Vw-{$9o=CQ0op~absJnCStSM-^o>m|sgX!|N38z68BP1T+aukk%Z zXT0aNH$0m8k2QifeD9+q-M#2Gkh|fcXwbMBwTlS=hf(;A{+Y0Ez(kGDYAhwohPoL} z6oQ<1G2SXbl5)fP=z5r?dBA4R6qgQp4C>KJ$MD!xde+XUvGOT{NBDX7rkxu~CRrY0 z*UZ0$LP@`j$8toxs6P)0W4b%DUYIg}9^G`>yE7&0icco=^NnrU>zvp(jQ-)7QY5f` zFS&HLW;@toSRd7oMY4uI-V-3=I0RgENlA(CWrISn&h*W^$c}=nK%;?XZ%)Fh&x1H1 zRfG=b+!m0Oln4aswc9baU@pIY(Pa`?Vk_-VM>92|}$Y>M} z2))>p2x%?c5s)6ZrqJ~QbOI8ud<^^K@9W!bTgIy`^qK9Oso$kp2`@VK!oD4&+)eN+(CtH1`_2b!_#R`aCWUyc+_>%zyS(Xccy;J+o|l;gncRiC*8UVE0P} zrlZcSZ_BQx8~+$M1!MnU!E}U6 z@5iN^DS!#etWb^BueGIdUHEI=+zb@Urr-XUw>xjPQ0^#L=ItW7XCNm@NLdYhjdy2H zkIB=bq}5-Va{GlyybqM2>as!Oh3#HOH5^3E_Qn;y)|>aNlgI9=;Kl0)}Op&yyIHs zrreei|I`8iD=5kBkNF@19N36_!KE#&A)c-+JI)qPHU4(Ivrg2W~I12+L?nCKr9 zj40-hamQzck2yR;lwG#q3#^{_<i-d;;@s|%+fsX+h#aJsLLltjRi+S(+4Gn}75v>qet zDnh*5&yBtRlpGyIz4qrzqX1tB&Zggvjpy8@Gr3#rm`_Wrd(judyu6?EbB zN{)i!No4!OOkk7f8FvaQ1!_Y9PEB%)+HY=rig$}13RGKLb_(1C1n+5JA0_8JYCQ-D z3V;PIH(}qr7*2`uQ|oH2 z{hgHggrPV@uC?sOjxR&dlPyNU*q_{;K>1qsPlHvr_z=AY_!{Kn}i;Hk;xsf62%#E5yaJ2;;wZV&ZX&~1gNDi#! z%hLtUnxhd!>!=rz6y-+Flc?QwaDx{W-5R^w-h#P&pvaEWc4Dk3NArL<4RxeG%EMq3 zs}>D!ek!>udu=Qn?p0Q+Xcrd!VIo5*dy-5b%sxGEW)yh`%s|J6%{@dBBUfPGn9o>f z9uvw@UmKRDupiLE+a->{SCbmLB*XPsYpkIvkwGYO?JLT86SY@QaMll3R1q2$Po%BR zZ2?-Wq*@l0nx^?bm0!R1>@R&%vwl8iz3bxWX6G}me86354v@5QG!Mv^)6A1Ry-*b> ziLc&C{lr)ARQV2$ZWze`@y=J5vq3rdQs->Ii?6Rj+egBjMn%D7!WVlG*lI2h{V{Rm z^huGLE%}a-_Fb|wyY^#9lBj^&)#1GTDXai(pCSN-z8nMYD0v+}w_nJ4a>(N^+DEbx z`&o^d1xsyPAKM#$OYH^I|AhQQU@0?{`A*9liA0*4*7nwhj2kjIjBH|8;)w_K z)rB@A5{*+CNUl|?62z|db_~JeVvFq6nz0@682~~>tre_GYiv#3;YuD@wQSolIRa(x zytXNJNJ0e3A1C4zh~Q~usllov;XEE^HZ}bU7EBZ|^15__fJEfsxvE2x;50G2SY+I4 z5I4M;!E)*V}1(O_AP4gvi+7t!`HcQGM@TZ*%f`!#0k zyGGYL2dpi7@F;tFKMv*@rl?ihb7vA4IrYX`n@SilwY#9g_V{|i;NU~v7yY;OPh0=U zA723C7k6+0T^Uf`+R=CIe+M3-sb^Vt^{;8H+pG0T#JIiVw#do@W`TG6Jspq!p8Oj# z1rfab#c@*klzrLZ{Qg+J;FY!X>Ful@@8wKCI~Ug)Sy_OsU!<(mRbC8py3weeD;ES+e+qXhb_9AhG(+B3%NhcPn~bM2>4~b!h80yx}8&M z&d!43oD2VG*bN8DE(~4W=pM?b4FXIr7x z$s7*3`l=>T(&x+eZeH)>i8Ac^m%rk)#@gmomdNZ$Y0t+KAN^Mw+k($LM)M}&yr#gQ ze$nU6!q&beUJNSO4%Cv{trix&?(v`|rOZ%mZ+TSXl0yvq{8s3^b|}dgeq{U1hya&6 z2}jwQD8#PFQQhk~T&m`L6_Uj$^GcA?348a}QYzHQu=7M`M#ag`dqmr0o}LuAq74%g zdFiWDkof^>r6BZlq&BK9WXO4SOGJKO?u}A*-rv_U9TtUG$-G!z2d5vkRz%I8c-sg3=-lq`I1@r(}9ZY_uU-j1oq|eo8&)T!dJCi2?x%8r$+0dlu zfwrE;^$sqK6<>H}pcRXdTsgJn4^Df^Rea-XA^tqqZo-w*XaCryl@p!-3H_ggi(mwW zy-;t(XtU>jkv&!H_JK3TTZ^TR8i^4ry!sDZ#dQ*VZ|^hOr2mm_&s`E@40DmF(~zr~ zI=8+(BVdAxf*ABiXd;ky9s2a?(g}tulCiv8#mlILz~jcMsJAx8AmMYGTkmRadv;&$ za>BbtY-y8otSdBqHiYd{I5j);D<_JQ#JZVSaqZ_uv!AQ($Ul@kSRx#%1i5O;DScI{ zoOk+k+3j<<%|9O)bll-ijoT4_q>Em}3PlS6@{G>2}( zbU@^*VYL{Ak6umF5DCve#F^)D=XDG1!xn+SLs7WdvHAB`fjL)e<)9DE72QUt5l07> zRjHogjZQ%`{Dgx=i?d`A_tpk1vqRRtOc+ob$+#D_=}of_#O$`l3^&mhdZLJ4y4bXr zFl+iD0SW0fxS~2@&hnGv1NbBvd?;l?cLtbEO{9P#?qV<2St|SuExf$N!Y-sSP2KNs zjXh=Kj?gfq`MsFtuzFUBkj^KaI}WpaIo>j%9hPzI6nG7_GhJJPPKes}^gu|HcJQ#n z0BZbG8TCF+lG~X^iqfyUi#i!ePp(~?$)mPUD?iX#l6+(S8mT@pk!XhyJ8@%ch-DmW zBs&A4$%e=e1W)4Khk!D6S%1sqT*YHt(r{UqPT+hkBRrUAnMN zsMefqDD2bg6msg|y7gPnuG_Ht&bm$CzjSaE4qj@J)$L(Jc~IVs>fK%mXrx-Y#`4eT zuNFt6WPX3upMMb1sPC|zbP^u(Snc}PuvzXm1xjMtt4SNR>odjsT4hLLU0FI7?R!