From e5229a5377ec4621ad52d745a4cd11f0c801fb57 Mon Sep 17 00:00:00 2001 From: x032205 Date: Wed, 21 May 2025 15:01:54 -0400 Subject: [PATCH 1/6] access request bypass --- .../v1/access-approval-request-router.ts | 8 +- .../access-approval-request-service.ts | 164 ++++++++++++------ .../access-approval-request-types.ts | 2 + .../src/ee/services/license/license-fns.ts | 54 +++--- .../SecretApprovalRequestBypassedTemplate.tsx | 9 +- .../src/hooks/api/accessApproval/mutation.tsx | 18 +- .../src/hooks/api/accessApproval/queries.tsx | 13 +- .../AccessApprovalRequest.tsx | 45 +++-- .../components/ReviewAccessModal.tsx | 126 ++++++++++---- 9 files changed, 289 insertions(+), 150 deletions(-) diff --git a/backend/src/ee/routes/v1/access-approval-request-router.ts b/backend/src/ee/routes/v1/access-approval-request-router.ts index b0914d5c4..b55c611ba 100644 --- a/backend/src/ee/routes/v1/access-approval-request-router.ts +++ b/backend/src/ee/routes/v1/access-approval-request-router.ts @@ -154,7 +154,9 @@ export const registerAccessApprovalRequestRouter = async (server: FastifyZodProv requestId: z.string().trim() }), body: z.object({ - status: z.enum([ApprovalStatus.APPROVED, ApprovalStatus.REJECTED]) + status: z.enum([ApprovalStatus.APPROVED, ApprovalStatus.REJECTED]), + envName: z.string().optional(), // For logging + bypassReason: z.string().optional() }), response: { 200: z.object({ @@ -170,7 +172,9 @@ export const registerAccessApprovalRequestRouter = async (server: FastifyZodProv actorOrgId: req.permission.orgId, actorAuthMethod: req.permission.authMethod, requestId: req.params.requestId, - status: req.body.status + status: req.body.status, + envName: req.body.envName, + bypassReason: req.body.bypassReason }); return { review }; 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 2b2758b2e..6215937c2 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 @@ -6,6 +6,7 @@ import { getConfig } from "@app/lib/config/env"; import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/errors"; import { ms } from "@app/lib/ms"; 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 { TKmsServiceFactory } from "@app/services/kms/kms-service"; @@ -323,7 +324,9 @@ export const accessApprovalRequestServiceFactory = ({ status, actorId, actorAuthMethod, - actorOrgId + actorOrgId, + envName, + bypassReason }: TReviewAccessRequestDTO) => { const accessApprovalRequest = await accessApprovalRequestDAL.findById(requestId); if (!accessApprovalRequest) { @@ -336,7 +339,12 @@ export const accessApprovalRequestServiceFactory = ({ message: "The policy associated with this access request has been deleted." }); } - if (!policy.allowedSelfApprovals && actorId === accessApprovalRequest.requestedByUserId) { + + if ( + !policy.allowedSelfApprovals && + actorId === accessApprovalRequest.requestedByUserId && + policy.enforcementLevel !== EnforcementLevel.Soft + ) { throw new BadRequestError({ message: "Failed to review access approval request. Users are not authorized to review their own request." }); @@ -363,6 +371,11 @@ export const accessApprovalRequestServiceFactory = ({ throw new ForbiddenRequestError({ message: "You are not authorized to approve this request" }); } + const project = await projectDAL.findById(accessApprovalRequest.projectId); + if (!project) { + throw new NotFoundError({ message: "The project associated with this access request was not found." }); + } + const existingReviews = await accessApprovalRequestReviewerDAL.find({ requestId: accessApprovalRequest.id }); if (existingReviews.some((review) => review.status === ApprovalStatus.REJECTED)) { throw new BadRequestError({ message: "The request has already been rejected by another reviewer" }); @@ -376,68 +389,105 @@ export const accessApprovalRequestServiceFactory = ({ }, tx ); - if (!review) { - const newReview = await accessApprovalRequestReviewerDAL.create( - { - status, - requestId: accessApprovalRequest.id, - reviewerUserId: actorId - }, - tx - ); - const allReviews = [...existingReviews, newReview]; + if (review) { + throw new BadRequestError({ message: "You have already reviewed this request" }); + } - const approvedReviews = allReviews.filter((r) => r.status === ApprovalStatus.APPROVED); + const newReview = await accessApprovalRequestReviewerDAL.create( + { + status, + requestId: accessApprovalRequest.id, + reviewerUserId: actorId + }, + tx + ); - // approvals is the required number of approvals. If the number of approved reviews is equal to the number of required approvals, then the request is approved. - if (approvedReviews.length === policy.approvals) { - if (accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { - throw new BadRequestError({ message: "Temporary range is required for temporary access" }); - } + const allReviews = [...existingReviews, newReview]; + const approvedReviews = allReviews.filter((r) => r.status === ApprovalStatus.APPROVED); - let privilegeId: string | null = null; - - if (!accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { - // Permanent access - const privilege = await additionalPrivilegeDAL.create( - { - userId: accessApprovalRequest.requestedByUserId, - projectId: accessApprovalRequest.projectId, - slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, - permissions: JSON.stringify(accessApprovalRequest.permissions) - }, - tx - ); - privilegeId = privilege.id; - } else { - // Temporary access - const relativeTempAllocatedTimeInMs = ms(accessApprovalRequest.temporaryRange!); - const startTime = new Date(); - - const privilege = await additionalPrivilegeDAL.create( - { - userId: accessApprovalRequest.requestedByUserId, - projectId: accessApprovalRequest.projectId, - slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, - permissions: JSON.stringify(accessApprovalRequest.permissions), - isTemporary: true, - temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative, - temporaryRange: accessApprovalRequest.temporaryRange!, - temporaryAccessStartTime: startTime, - temporaryAccessEndTime: new Date(new Date(startTime).getTime() + relativeTempAllocatedTimeInMs) - }, - tx - ); - privilegeId = privilege.id; - } - - await accessApprovalRequestDAL.updateById(accessApprovalRequest.id, { privilegeId }, tx); + if (status === ApprovalStatus.APPROVED && approvedReviews.length >= policy.approvals) { + if (accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { + throw new BadRequestError({ message: "Temporary range is required for temporary access" }); } - return newReview; + let privilegeId: string | null = null; + + if (!accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { + // Permanent access + const privilege = await additionalPrivilegeDAL.create( + { + userId: accessApprovalRequest.requestedByUserId, + projectId: accessApprovalRequest.projectId, + slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, + permissions: JSON.stringify(accessApprovalRequest.permissions) + }, + tx + ); + privilegeId = privilege.id; + } else { + // Temporary access + const relativeTempAllocatedTimeInMs = ms(accessApprovalRequest.temporaryRange!); + const startTime = new Date(); + + const privilege = await additionalPrivilegeDAL.create( + { + userId: accessApprovalRequest.requestedByUserId, + projectId: accessApprovalRequest.projectId, + slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, + permissions: JSON.stringify(accessApprovalRequest.permissions), + isTemporary: true, // Explicitly set to true for the privilege + temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative, + temporaryRange: accessApprovalRequest.temporaryRange!, + temporaryAccessStartTime: startTime, + temporaryAccessEndTime: new Date(startTime.getTime() + relativeTempAllocatedTimeInMs) + }, + tx + ); + privilegeId = privilege.id; + } + await accessApprovalRequestDAL.updateById(accessApprovalRequest.id, { privilegeId }, tx); } - throw new BadRequestError({ message: "You have already reviewed this request" }); + + const isSoftEnforcement = policy.enforcementLevel === EnforcementLevel.Soft; + const wasSelfRequestAndReview = actorId === accessApprovalRequest.requestedByUserId; + + if (isSoftEnforcement && wasSelfRequestAndReview && status === ApprovalStatus.APPROVED) { + const cfg = getConfig(); + const actingUser = await userDAL.findById(actorId, tx); + + if (actingUser) { + const policyApproverUserIds = policy.approvers + .map((ap) => ap.userId) + .filter((id): id is string => typeof id === "string"); + + if (policyApproverUserIds.length > 0) { + const approverUsersForEmail = await userDAL.find({ $in: { id: policyApproverUserIds } }, { tx }); + const recipientEmails = approverUsersForEmail + .map((appUser) => appUser.email) + .filter((email): email is string => !!email); + + if (recipientEmails.length > 0) { + await smtpService.sendMail({ + recipients: recipientEmails, + subjectLine: "Infisical Secret Access Policy Bypassed", + substitutions: { + projectName: project.name, + requesterFullName: `${actingUser.firstName} ${actingUser.lastName}`, + requesterEmail: actingUser.email, + bypassReason: bypassReason || "No reason provided", + secretPath: policy.secretPath || "/", + environment: envName || "Unknown", + approvalUrl: `${cfg.SITE_URL}/secret-manager/${project.id}/approval`, + requestType: "access" + }, + template: SmtpTemplates.AccessSecretRequestBypassed + }); + } + } + } + } + return newReview; }); return reviewStatus; diff --git a/backend/src/ee/services/access-approval-request/access-approval-request-types.ts b/backend/src/ee/services/access-approval-request/access-approval-request-types.ts index 51a5e0ca2..162f8b3c6 100644 --- a/backend/src/ee/services/access-approval-request/access-approval-request-types.ts +++ b/backend/src/ee/services/access-approval-request/access-approval-request-types.ts @@ -17,6 +17,8 @@ export type TGetAccessRequestCountDTO = { export type TReviewAccessRequestDTO = { requestId: string; status: ApprovalStatus; + envName?: string; + bypassReason?: string; } & Omit; export type TCreateAccessApprovalRequestDTO = { diff --git a/backend/src/ee/services/license/license-fns.ts b/backend/src/ee/services/license/license-fns.ts index 8ef91c6f8..a8807c61a 100644 --- a/backend/src/ee/services/license/license-fns.ts +++ b/backend/src/ee/services/license/license-fns.ts @@ -18,44 +18,44 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ environmentsUsed: 0, identityLimit: null, identitiesUsed: 0, - dynamicSecret: false, + dynamicSecret: true, secretVersioning: true, - pitRecovery: false, - ipAllowlisting: false, - rbac: false, - githubOrgSync: false, + pitRecovery: true, + ipAllowlisting: true, + rbac: true, + githubOrgSync: true, customRateLimits: false, - customAlerts: false, - secretAccessInsights: false, - auditLogs: false, - auditLogsRetentionDays: 0, - auditLogStreams: false, + customAlerts: true, + secretAccessInsights: true, + auditLogs: true, + auditLogsRetentionDays: 3, + auditLogStreams: true, auditLogStreamLimit: 3, - samlSSO: false, - hsm: false, - oidcSSO: false, - scim: false, - ldap: false, - groups: false, + samlSSO: true, + hsm: true, + oidcSSO: true, + scim: true, + ldap: true, + groups: true, status: null, trial_end: null, has_used_trial: true, - secretApproval: false, - secretRotation: false, - caCrl: false, - instanceUserManagement: false, - externalKms: false, + secretApproval: true, + secretRotation: true, + caCrl: true, + instanceUserManagement: true, + externalKms: true, rateLimits: { readLimit: 60, writeLimit: 200, secretsLimit: 40 }, - pkiEst: false, - enforceMfa: false, - projectTemplates: false, - kmip: false, - gateway: false, - sshHostGroups: false + pkiEst: true, + enforceMfa: true, + projectTemplates: true, + kmip: true, + gateway: true, + sshHostGroups: true }); export const setupLicenseRequestWithStore = (baseURL: string, refreshUrl: string, licenseKey: string) => { diff --git a/backend/src/services/smtp/emails/SecretApprovalRequestBypassedTemplate.tsx b/backend/src/services/smtp/emails/SecretApprovalRequestBypassedTemplate.tsx index bad823bd3..a07110aa3 100644 --- a/backend/src/services/smtp/emails/SecretApprovalRequestBypassedTemplate.tsx +++ b/backend/src/services/smtp/emails/SecretApprovalRequestBypassedTemplate.tsx @@ -12,6 +12,7 @@ interface SecretApprovalRequestBypassedTemplateProps environment: string; bypassReason: string; approvalUrl: string; + requestType: "change" | "access"; } export const SecretApprovalRequestBypassedTemplate = ({ @@ -22,7 +23,8 @@ export const SecretApprovalRequestBypassedTemplate = ({ secretPath, environment, bypassReason, - approvalUrl + approvalUrl, + requestType = "change" }: SecretApprovalRequestBypassedTemplateProps) => { return ( {requesterEmail} - ) has merged a secret to {secretPath} in the {environment} environment - without obtaining the required approval. + ) has {requestType === "change" ? "merged" : "accessed"} a secret {requestType === "change" ? "to" : "in"}{" "} + {secretPath} in the {environment} environment without obtaining the required + approval. The following reason was provided for bypassing the policy: " diff --git a/frontend/src/hooks/api/accessApproval/mutation.tsx b/frontend/src/hooks/api/accessApproval/mutation.tsx index 9fda2377a..9ba895311 100644 --- a/frontend/src/hooks/api/accessApproval/mutation.tsx +++ b/frontend/src/hooks/api/accessApproval/mutation.tsx @@ -129,22 +129,32 @@ export const useReviewAccessRequest = () => { requestId: string; status: "approved" | "rejected"; projectSlug: string; + envName?: string; envSlug?: string; requestedBy?: string; + bypassReason?: string; } >({ - mutationFn: async ({ requestId, status }) => { + mutationFn: async ({ requestId, status, envName, bypassReason }) => { const { data } = await apiRequest.post( `/api/v1/access-approvals/requests/${requestId}/review`, { - status + status, + envName, + bypassReason } ); return data; }, - onSuccess: (_, { projectSlug, envSlug, requestedBy }) => { + onSuccess: (_, { projectSlug, envSlug, requestedBy, envName, bypassReason }) => { queryClient.invalidateQueries({ - queryKey: accessApprovalKeys.getAccessApprovalRequests(projectSlug, envSlug, requestedBy) + queryKey: accessApprovalKeys.getAccessApprovalRequests( + projectSlug, + envSlug, + requestedBy, + envName, + bypassReason + ) }); queryClient.invalidateQueries({ queryKey: accessApprovalKeys.getAccessApprovalRequestCount(projectSlug) diff --git a/frontend/src/hooks/api/accessApproval/queries.tsx b/frontend/src/hooks/api/accessApproval/queries.tsx index 1aa40c588..0f666af7a 100644 --- a/frontend/src/hooks/api/accessApproval/queries.tsx +++ b/frontend/src/hooks/api/accessApproval/queries.tsx @@ -19,8 +19,17 @@ export const accessApprovalKeys = { getAccessApprovalPolicyOfABoard: (workspaceId: string, environment: string) => [{ workspaceId, environment }, "access-approval-policy"] as const, - getAccessApprovalRequests: (projectSlug: string, envSlug?: string, requestedBy?: string) => - [{ projectSlug, envSlug, requestedBy }, "access-approvals-requests"] as const, + getAccessApprovalRequests: ( + projectSlug: string, + envSlug?: string, + requestedBy?: string, + envName?: string, + bypassReason?: string + ) => + [ + { projectSlug, envSlug, requestedBy, envName, bypassReason }, + "access-approvals-requests" + ] as const, getAccessApprovalRequestCount: (projectSlug: string) => [{ projectSlug }, "access-approval-request-count"] as const }; diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx index 9afe4795d..9f56b92ef 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx @@ -83,7 +83,7 @@ export const AccessApprovalRequest = ({ }) => { const [selectedRequest, setSelectedRequest] = useState< | (TAccessApprovalRequest & { - user: TWorkspaceUser["user"] | null; + user: { firstName?: string; lastName?: string; email?: string } | null; isRequestedByCurrentUser: boolean; isApprover: boolean; }) @@ -118,7 +118,7 @@ export const AccessApprovalRequest = ({ projectSlug }); - const { data: requests } = useGetAccessApprovalRequests({ + const { data: requests, refetch: refetchRequests } = useGetAccessApprovalRequests({ projectSlug, authorProjectMembershipId: requestedByFilter, envSlug: envFilter @@ -346,22 +346,23 @@ export const AccessApprovalRequest = ({ tabIndex={0} onClick={() => { if ( - ((!details.isApprover || - details.isReviewedByUser || - details.isRejectedByAnyone || - details.isAccepted) && - !( - details.isSoftEnforcement && - details.isRequestedByCurrentUser && - !details.isAccepted - )) || - (request.requestedByUserId === user.id && !details.isSelfApproveAllowed) + details.isAccepted || + details.isReviewedByUser || + details.isRejectedByAnyone || + (!details.isApprover && + !(details.isSoftEnforcement && details.isRequestedByCurrentUser)) ) return; - if (membersGroupById?.[request.requestedByUserId].user) { + + if ( + membersGroupById?.[request.requestedByUserId].user || + details.isRequestedByCurrentUser + ) { setSelectedRequest({ ...request, - user: membersGroupById?.[request.requestedByUserId].user, + user: details.isRequestedByCurrentUser + ? user + : membersGroupById?.[request.requestedByUserId].user!, isRequestedByCurrentUser: details.isRequestedByCurrentUser, isApprover: details.isApprover }); @@ -371,17 +372,24 @@ export const AccessApprovalRequest = ({ }} onKeyDown={(evt) => { if ( - !details.isApprover || details.isAccepted || details.isReviewedByUser || - details.isRejectedByAnyone + details.isRejectedByAnyone || + (!details.isApprover && + !(details.isSoftEnforcement && details.isRequestedByCurrentUser)) ) return; + if (evt.key === "Enter") { - if (membersGroupById?.[request.requestedByUserId].user) { + if ( + membersGroupById?.[request.requestedByUserId].user || + details.isRequestedByCurrentUser + ) { setSelectedRequest({ ...request, - user: membersGroupById?.[request.requestedByUserId].user, + user: details.isRequestedByCurrentUser + ? user + : membersGroupById?.[request.requestedByUserId].user!, isRequestedByCurrentUser: details.isRequestedByCurrentUser, isApprover: details.isApprover }); @@ -453,6 +461,7 @@ export const AccessApprovalRequest = ({ onOpenChange={() => { handlePopUpClose("reviewRequest"); setSelectedRequest(null); + refetchRequests(); }} /> )} diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx index 37239d987..d739d8bb6 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx @@ -2,13 +2,15 @@ import { useCallback, useMemo, useState } from "react"; import ms from "ms"; import { createNotification } from "@app/components/notifications"; -import { Button, Checkbox, Modal, ModalContent } from "@app/components/v2"; +import { Button, Checkbox, FormControl, Input, Modal, ModalContent } from "@app/components/v2"; import { Badge } from "@app/components/v2/Badge"; import { ProjectPermissionActions } from "@app/context"; import { useReviewAccessRequest } from "@app/hooks/api"; import { TAccessApprovalRequest } from "@app/hooks/api/accessApproval/types"; import { EnforcementLevel } from "@app/hooks/api/policies/enums"; -import { TWorkspaceUser } from "@app/hooks/api/types"; +import { twMerge } from "tailwind-merge"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faTriangleExclamation } from "@fortawesome/free-solid-svg-icons"; export const ReviewAccessRequestModal = ({ isOpen, @@ -21,7 +23,7 @@ export const ReviewAccessRequestModal = ({ isOpen: boolean; onOpenChange: (isOpen: boolean) => void; request: TAccessApprovalRequest & { - user: TWorkspaceUser["user"] | null; + user: { firstName?: string; lastName?: string; email?: string } | null; isRequestedByCurrentUser: boolean; isApprover: boolean; }; @@ -30,7 +32,9 @@ export const ReviewAccessRequestModal = ({ selectedEnvSlug: string | undefined; }) => { const [isLoading, setIsLoading] = useState<"approved" | "rejected" | null>(null); - const [byPassApproval, setByPassApproval] = useState(false); + const [bypassApproval, setBypassApproval] = useState(false); + const [bypassReason, setBypassReason] = useState(""); + const isSoftEnforcement = request.policy.enforcementLevel === EnforcementLevel.Soft; const accessDetails = { @@ -80,31 +84,54 @@ export const ReviewAccessRequestModal = ({ const reviewAccessRequest = useReviewAccessRequest(); - const handleReview = useCallback(async (status: "approved" | "rejected") => { - setIsLoading(status); - try { - await reviewAccessRequest.mutateAsync({ - requestId: request.id, - status, - projectSlug, - envSlug: selectedEnvSlug, - requestedBy: selectedRequester - }); - } catch (error) { - console.error(error); + const handleReview = useCallback( + async (status: "approved" | "rejected") => { + if (bypassApproval && bypassReason.length < 10) { + createNotification({ + title: "Failed to bypass approval", + text: "Reason must be 10 characters or longer", + type: "error" + }); + return; + } + + setIsLoading(status); + try { + await reviewAccessRequest.mutateAsync({ + requestId: request.id, + status, + projectSlug, + envName: accessDetails.env, + envSlug: selectedEnvSlug, + requestedBy: selectedRequester, + bypassReason: bypassApproval ? bypassReason : undefined + }); + + createNotification({ + title: `Request ${status}`, + text: `The request has been ${status}`, + type: status === "approved" ? "success" : "info" + }); + } catch (error) { + console.error(error); + setIsLoading(null); + return; + } + setIsLoading(null); - return; - } - - createNotification({ - title: `Request ${status}`, - text: `The request has been ${status}`, - type: status === "approved" ? "success" : "info" - }); - - setIsLoading(null); - onOpenChange(false); - }, []); + onOpenChange(false); + }, + [ + bypassApproval, + bypassReason, + reviewAccessRequest, + request, + accessDetails.env, + selectedEnvSlug, + selectedRequester, + onOpenChange + ] + ); return ( @@ -115,9 +142,15 @@ export const ReviewAccessRequestModal = ({ >
- - {request.user?.firstName} {request.user?.lastName} ({request.user?.email}) - {" "} + {request.user && + (request.user.firstName || request.user.lastName) && + request.user.email ? ( + + {request.user?.firstName} {request.user?.lastName} ({request.user?.email}) + + ) : ( + A user + )}{" "} is requesting access to the following resource: @@ -149,7 +182,7 @@ export const ReviewAccessRequestModal = ({
+ {isSoftEnforcement && request.isRequestedByCurrentUser && !request.isApprover && ( -
+
setByPassApproval(checked === true)} - isChecked={byPassApproval} + onCheckedChange={(checked) => setBypassApproval(checked === true)} + isChecked={bypassApproval} id="byPassApproval" checkIndicatorBg="text-white" - className={byPassApproval ? "border-red bg-red hover:bg-red-600" : ""} + className={twMerge( + "mr-2", + bypassApproval ? "border-red bg-red hover:bg-red-600" : "" + )} > - + Approve without waiting for requirements to be met (bypass policy protection) + {bypassApproval && ( + + setBypassReason(e.currentTarget.value)} + placeholder="Enter reason for bypass (min 10 chars)" + leftIcon={} + /> + + )}
)}
From e3725dd3ab30bc242a23482a108da5486a7c2ecf Mon Sep 17 00:00:00 2001 From: x032205 Date: Wed, 21 May 2025 15:46:36 -0400 Subject: [PATCH 2/6] merge + final tweaks --- .../access-approval-request-service.ts | 26 +++--- .../src/ee/services/license/license-fns.ts | 50 +++++------ .../ee/services/permission/default-roles.ts | 3 +- .../services/permission/project-permission.ts | 3 +- .../access-controls/access-requests.mdx | 11 ++- docs/documentation/platform/pr-workflows.mdx | 2 + .../pr-workflows/create-change-policy.png | Bin 136194 -> 131697 bytes .../permissions/project-permissions.mdx | 1 + .../context/ProjectPermissionContext/types.ts | 3 +- .../ProjectRoleModifySection.utils.tsx | 9 +- .../AccessApprovalRequest.tsx | 35 ++++++-- .../components/ReviewAccessModal.tsx | 83 ++++++++++-------- 12 files changed, 134 insertions(+), 92 deletions(-) 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 6215937c2..20e954d44 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 @@ -23,6 +23,7 @@ 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"; +import { ProjectPermissionApprovalActions, ProjectPermissionSub } from "../permission/project-permission"; 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"; @@ -340,17 +341,7 @@ export const accessApprovalRequestServiceFactory = ({ }); } - if ( - !policy.allowedSelfApprovals && - actorId === accessApprovalRequest.requestedByUserId && - policy.enforcementLevel !== EnforcementLevel.Soft - ) { - throw new BadRequestError({ - message: "Failed to review access approval request. Users are not authorized to review their own request." - }); - } - - const { membership, hasRole } = await permissionService.getProjectPermission({ + const { membership, hasRole, permission } = await permissionService.getProjectPermission({ actor, actorId, projectId: accessApprovalRequest.projectId, @@ -363,6 +354,19 @@ export const accessApprovalRequestServiceFactory = ({ throw new ForbiddenRequestError({ message: "You are not a member of this project" }); } + if ( + !policy.allowedSelfApprovals && + actorId === accessApprovalRequest.requestedByUserId && + !( + policy.enforcementLevel === EnforcementLevel.Soft && + permission.can(ProjectPermissionApprovalActions.AllowAccessBypass, ProjectPermissionSub.SecretApproval) + ) + ) { + throw new BadRequestError({ + message: "Failed to review access approval request. Users are not authorized to review their own request." + }); + } + if ( !hasRole(ProjectMembershipRole.Admin) && accessApprovalRequest.requestedByUserId !== actorId && // The request wasn't made by the current user diff --git a/backend/src/ee/services/license/license-fns.ts b/backend/src/ee/services/license/license-fns.ts index a8807c61a..d91529dd2 100644 --- a/backend/src/ee/services/license/license-fns.ts +++ b/backend/src/ee/services/license/license-fns.ts @@ -18,33 +18,33 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ environmentsUsed: 0, identityLimit: null, identitiesUsed: 0, - dynamicSecret: true, + dynamicSecret: false, secretVersioning: true, - pitRecovery: true, - ipAllowlisting: true, - rbac: true, - githubOrgSync: true, + pitRecovery: false, + ipAllowlisting: false, + rbac: false, + githubOrgSync: false, customRateLimits: false, - customAlerts: true, - secretAccessInsights: true, - auditLogs: true, - auditLogsRetentionDays: 3, - auditLogStreams: true, + customAlerts: false, + secretAccessInsights: false, + auditLogs: false, + auditLogsRetentionDays: 0, + auditLogStreams: false, auditLogStreamLimit: 3, - samlSSO: true, - hsm: true, - oidcSSO: true, - scim: true, - ldap: true, - groups: true, + samlSSO: false, + hsm: false, + oidcSSO: false, + scim: false, + ldap: false, + groups: false, status: null, trial_end: null, has_used_trial: true, - secretApproval: true, - secretRotation: true, - caCrl: true, - instanceUserManagement: true, - externalKms: true, + secretApproval: false, + secretRotation: false, + caCrl: false, + instanceUserManagement: false, + externalKms: false, rateLimits: { readLimit: 60, writeLimit: 200, @@ -52,10 +52,10 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ }, pkiEst: true, enforceMfa: true, - projectTemplates: true, - kmip: true, - gateway: true, - sshHostGroups: true + projectTemplates: false, + kmip: false, + gateway: false, + sshHostGroups: false }); export const setupLicenseRequestWithStore = (baseURL: string, refreshUrl: string, licenseKey: string) => { diff --git a/backend/src/ee/services/permission/default-roles.ts b/backend/src/ee/services/permission/default-roles.ts index 9461227da..2a422d55f 100644 --- a/backend/src/ee/services/permission/default-roles.ts +++ b/backend/src/ee/services/permission/default-roles.ts @@ -61,7 +61,8 @@ const buildAdminPermissionRules = () => { ProjectPermissionApprovalActions.Edit, ProjectPermissionApprovalActions.Create, ProjectPermissionApprovalActions.Delete, - ProjectPermissionApprovalActions.AllowChangeBypass + ProjectPermissionApprovalActions.AllowChangeBypass, + ProjectPermissionApprovalActions.AllowAccessBypass ], ProjectPermissionSub.SecretApproval ); diff --git a/backend/src/ee/services/permission/project-permission.ts b/backend/src/ee/services/permission/project-permission.ts index 27cd33855..5d06e085d 100644 --- a/backend/src/ee/services/permission/project-permission.ts +++ b/backend/src/ee/services/permission/project-permission.ts @@ -39,7 +39,8 @@ export enum ProjectPermissionApprovalActions { Create = "create", Edit = "edit", Delete = "delete", - AllowChangeBypass = "allow-change-bypass" + AllowChangeBypass = "allow-change-bypass", + AllowAccessBypass = "allow-access-bypass" } export enum ProjectPermissionCmekActions { diff --git a/docs/documentation/platform/access-controls/access-requests.mdx b/docs/documentation/platform/access-controls/access-requests.mdx index 76cc4b74e..bdbabf9f7 100644 --- a/docs/documentation/platform/access-controls/access-requests.mdx +++ b/docs/documentation/platform/access-controls/access-requests.mdx @@ -3,10 +3,10 @@ title: "Access Requests" description: "Learn how to request access to sensitive resources in Infisical." --- -In certain situations, developers need to expand their access to a certain new project or a sensitive environment. For those use cases, it is helpful to utilize Infisical's **Access Requests** functionality. +In certain situations, developers need to expand their access to a certain new project or a sensitive environment. For those use cases, it is helpful to utilize Infisical's **Access Requests** functionality. -This functionality works in the following way: -1. A project administrator sets up an access policy that assigns access managers (also known as eligible approvers) to a certain sensitive folder or environment. +This functionality works in the following way: +1. A project administrator sets up an access policy that assigns access managers (also known as eligible approvers) to a certain sensitive folder or environment. ![Create Access Request Policy Modal](/images/platform/access-controls/create-access-request-policy.png) ![Access Request Policies](/images/platform/access-controls/access-request-policies.png) @@ -19,9 +19,8 @@ This functionality works in the following way: ![Access Request Bypass](/images/platform/access-controls/access-request-bypass.png) - If the access request matches with a policy that has a **Soft** enforcement level, the requester may bypass the policy and get access to the resource without full approval. + If the access request matches with a policy that has allows break-glass approval bypasses, the requester may bypass the policy and get access to the resource without full approval. -5. As soon as the request is approved, developer is able to access the sought resources. +5. As soon as the request is approved, developer is able to access the sought resources. ![Access Request Dashboard](/images/platform/access-controls/access-requests-completed.png) - diff --git a/docs/documentation/platform/pr-workflows.mdx b/docs/documentation/platform/pr-workflows.mdx index ffa85f6c5..2649e0454 100644 --- a/docs/documentation/platform/pr-workflows.mdx +++ b/docs/documentation/platform/pr-workflows.mdx @@ -33,6 +33,8 @@ First, you would need to create a set of policies for a certain environment. In The enforcement level determines how strict the policy is. A **Hard** enforcement level means that any change that matches the policy will need full approval prior merging. A **Soft** enforcement level allows for break glass functionality on the request. If a change request is bypassed, the approvers will be notified via email. +You can use the **Soft** enforcement level by enabling "Bypass Approvals". + ### Self approvals If the **Self Approvals** option is enabled, users who are designated as approvers on the policy can approve requests that they themselves have submitted. diff --git a/docs/images/platform/pr-workflows/create-change-policy.png b/docs/images/platform/pr-workflows/create-change-policy.png index afe945b0a536c5416ad11de90f36e0210786b3f3..fabcb671695683ed9965bd5f443611f8bf0affc2 100644 GIT binary patch literal 131697 zcmeFZWl&sO*Di{?ySqzpcSwK`EWshTLvU+?HXfYdZoz^REV#Q9+}&Lo=XUn~w!C?B zZk@WnZq+$dH@#@qv@wT1W6bqQSy2WRi3kY-0s{55?8|o$5HMumw-o{$_?r{l+D-5W zq|-YYNrwZ z5HSC9k0SW<=T9{F{j<%VpHNv)f87B?mIeLywbjpCg&|N$z#oYAvRY0M5O}md-;l50 z(VRj+h(o-7DWM90JWPi-AnCq(&iwdoYdMt$Bv%gip#rfRL(W$j`!fV0?PlU;rlPC` zVm2)h0yyS@z>0`Laf#N`jsse5{Gg>?x$o2B1XB0#@F)=4Q=HywLEl_T2mjn29uE(t z^4W1ZI-aMb=4nv~2+VPs4QclGVH6e4GFnfURId5Mp?((i`iPvvs@L>#fB)bE{}UrC zYfMfKm8Gp!g8Rh|wXCC)lY(Hb%>&!c@HfLiSlD;GRV*}QWz4Lsl{+(~I&2Gdc6IkR z1wO6b6F%ZTsXd;twz2(Ng)!8$trYsawu>}6b+$DQG7&_yx3}(99w1w-29xA|qbwHK zZExz~M~Y&N(uDN*_|J)n^tm!oRffphY|%aWbd8yoNbj|^nY8A#@`tSR^7DIwWbWWi zr3jnd$++eNcDCfCyqZ}!(^3>ND7BK4Ib9D4`iBNS?|-$@YB35#CI3)=4W~g}tWh45 zF61`i%$E_W`L4A|jLVoNmPo zPKAt~2x8`0+XeL(#JnFWMk}kUyYzNgQ%^2J{6(o{39LPL=}$RD^&`Y@bM zBvYeo7HVI&ws@JgwLu0M`?I{S?)#LOnaS1}jQVYK_OT=#p^Vf^8o-vwqRZs+LeU=% zEl$+ye%8(5>~r@!yJP77fg#RO%W5x0q1uz^nuF;%d*Q~kG?LWJS7AB?+ezjeJ!w+O z6c;6Nd%0D={f{YHObuet$&anAbK~+K* zC?jL zq(T86v?~nQ6xQ;+OS*Ur=wpR`IIt&^II7$fL#`GT#xQabrui`ld2-fr!ELxt&ys|Y zT7gaCTo^bE{L?8_;$!aDNJKN045ap?I0$_^Sd$FkG3{+-D!96Xrco!dC)MU(0(JIT0Hp6N=s|fF`a1^ zM~QZ*5R>YKN&m%>BF*I z@l`o$bb7s2 z63>!VlQ1XUYm7(ZFF>kYOiQTOE|7>>R~Mvs8o*skKLND9`I1}J%^j!>0}kC$6e z4n8e-0xr}F0cY2hcoXyB1lY`Q6UAi0{h>FK6sVg^90-*r`4=aMLwSUXzpCtnh4OAd#MOuyg)6Hs{Dp2gTU+WT#hV$qjem_g1I8Z36Oha=az6 zuaymu-A371Odaxoth-x12J%{qP8Y-_CCE^)U6d~%e$xDbOz)nr`SmjB zAjS(t*f^B=>}nK$j)#nc7nyccH0=av)!)L-jeaaJ1I#IwhPZk|EOKr>aFGt!E`^rx zbZHvn0?mDQfIF&7p;J*pQI$<$$2Z<5LdRilouwuLR~TI)w2Rps20;i9?B)F9R5;)`OrgGj}%N&3`C!38pN!4TK!ATs}C^#(_ov^+*xGj8@M+ zsJGuy_A*GG=>#g;yDDd!Q^8O*JY5xIV+5^ShKG-#akoqz(|I)oD|>f_QqbR!Hhy;Y zCO<=Uhn16gc>eb28fAcf6jXps<@11e@j-rPusV(lK| ze0A(%6UCC_Jd+E95Am9Fj9lXjtPyYxb~|Nqn-Pf236^?d&KpK9Z@RV}jG6?JX`w48gRA z^m^ySC(1SvKVl9sI#M+j+E8@q!gkM9U&w0#3NKBlHT22%39R~N85#hY*I_uLjfFD? z2Qv~^OsJUUH7lgfcxSfNbPi{s8%rUe`_P2ZT2H0%iLfi3umowUk+pOpEp@Y25MbiM zLuM!pJK^PusMn#L+w3O`NYPLaV!>EV&m^@K)RNy=`L8>&AiM z{*ivWC$WI;Mb?M?fS;9%r?CD9l|AfuCK*qIV_t{9yXGK;=dKPL>bs}Neb6FLv+~`; zJcafh5qrS63V`LdHjo`!$y#@fNorz<1G z6Y184cY-E(uYA`Y{F3D}gQ)T<3y%-LoMS5A?PNI;_oby}5sz_HTqa<-Th{U=a<7F@ zi3k$a!*N%R^Vp^F7Vb>r+TFJCZ3{P>_d>0=lDDO$X30uQk5Uib3U^%i>74JLQ-x@| zN94%k?szVgx|U57M}`1ba313(T^L1{yDE<%25g9Z zpsbPp1ce+7i;O4e6mN*OhzES-zug@bn{sJPqb2iW-jQ5^m=t#iyH{NXo)lYm(mBW= z)Q>4@%mIWX*ti<@R!UZQlv?lFV#vRFgsX?-z>%vPs)flFZU*_~pTT3-)WVnBrI zLmn1EEfg<#F;cDe<40?~$IX2>2;(IDj=6FRC9>McDokVS_BvFjJ=dFy8*Ta3qaL?> zfpwP37tc$Q+EWEz;XRK9bIrjWyiSM$8k?Rw5s27|3JdpyH}U>CDsm*!gp1)QT&DXM9@$ z5{~%Yy?H@F%|`y+)7nKqIps~@*ox32s{?)cK#=$2{ldxXQ6N4^=|`}dn(*+_i4r<* zSzZaK-A{rhfKSDu8BA_hTjpw25EC6M>!j};?p9jfSq=QvTs{zLt}27wY(?T$Qi4X z60kytGYY`u9%$MaJOm)-uMs9~1ML?GQJAO~siXMuqb&R#3bpduhjA5$?})9D7!X#Y zhgrXJ+Xuf|=yk?_?|->8K*WH~zSNaUCJlud6eAH%QrzZ$zuN9!k_Qy!6Grdqes9pa z1MCqlo7{oC4iWosQ^9_Hswnnxh#^=cKPQ}&ujiE9y!p&p^t5Dc7Gtl?5t_4uK?(z( zI_FN2f`rtm>zjkug9SxoXwRfE2+y0!zNNr@rjpYaiD)e^kCu0Z)~whM4SBs&s%e3S zOzx{*k8u-7kG~d)?pt>?mKvS7gKw4lMlM&7B1^}hbba#OEC(Le&=cGaEI z=BUu}dru_CXlDtFFKCJtpso$)R_`XZ?1ni*y(H`BbbO&4uv*`^cKEc^UKi#zLM-;K z;p{XNv=p*)FZq`c$UNDx5=)vEW_{71{~s54jegb*GaFq+ufac zCiWGBG7wZMEj7sXb7|^It+EG{Y&`v3(ZE? zbg!NYiez>N&)JJvg7;T2XYFKzi0e-bZrs-l9_hD(JQ4HRok4wVcaXd`+>Y^4FJh2l zKQLruSrCXBrg

#A+t>jhB_`Mo~6t$=Y#nHG{LH!kSPli9R$f&cI7cpc40e{5Bsv zu&-u)*cj*;$%*O+0{OYMmqJWf8@!8T6o!@FgE2)Gd@ayp)qd~E{S>;zJak@8T?%F1 ztHofy6VukERw6dCR==v;z3A+`v#P)ZLcDpr9iZ==hI9QaMh-tU;sJUIv zW&j&srxh{6`x}wK30!84RS*;V66Gmr*WClv7IK0zfc#V^WQ7;R=U?6Iw}RqnZm$`( z@`j;CZD80AYMJN3Rf;kPYt*f1hQ=uM@LuvYS{~!<8b~_PS9-b9nbW&qjg4^NSySV^ z+{^FDaDOYH8QSPiia62_H5;LrO}NbJ0r3Q=ADoqKdZ)P6vz)~@&>~h$2g9)iCxI?q z1ycnI0&clzXX6t7gd&1w7)O@|Wmi@kFUQ;*tHK(ZLQiqKYoCoyWbp(bgx!ESuUeGXVyE8Rr2rQ1m8`dD&O6K6>=PaS^SXo)ayfOaznnQa3^w6NxS6~E#&)7LUkuVQKbCu|{QV!n9sRXCe zG-aqe6qTpc++on|M`?2;{1tgwhhQ8}^ zUhlH}QQ<#B(jt(0QIsEPQ@Q=fHIs5(4l2GC0XP*%z}ig>~f z^P$Qgsavy^r@79Jn5SHHbkw7{1(c*$=~8^F%lRtE53N;W?8s)mzMo0v(B=3NCqjrN zsXn6$SBV{^mE-2ocb5;Ec4wZ)+K)q$?`DL(#&++sY1JG*c8_EI8$32thI+4RKd|CD z7OFW#4!Vo$C0#idf<=*s4!;6rZRwT4bYP)BHUl}c7k})0EdACI^1Y0z{*r#=wiIGL zmfQb-oI|jSn570qI4AIZ*cFj8S9UB?%~~US1GXEQ2=ECf$y1Wh*LfVlF02iOSOvC1 z+OrxBamZ_`NnL2p=DU8ibu@mQByrF9dhJ%4C||g3&%mG}2S=JQqf^r;wfZ#!^Loy= zFf@nioiFabM#$5I{TMeHzEm`LkpR1_l8(MoZC&{^{&q9#_6OLOQHg@3!?LhP4`3B6 zQm8C*KSMC!whfVr#jmJlH7Z1HI z-oB4_+Q}`95H}g4?)2#j>_exAJen-?ogQ-&+p@l~Sr?MPB{`}Sz}zw-`a5#jlWJok zn<%JfVML_K5VsBu?pldq1f!H)Zy=ZnP)UhS&7qi4tlQ0Tc6R{Tn zC+##G4|&P?s-1_&){QI2=-rJX?WzYp#Q7$zZ@ZFDyZai2DYJp5B%5vqQ&v4#k-~OJ+fHP ze%F)^N>$i7zo5P8e|)OH+x?vU|5;6=n+pbF6BF5BVFN$M#u`^eR~A&Y--8+DSJH?R zVOS*G-F+-7DoR*tv=*vv`a>W|-Fv|(G$Frzg^8)@8!2OdS*LH#7I1=96;1g6)dvKk zGZd6-y%@Drm4bfL_+>Yr?Rz#gH8s-D-_X>AQApTj8}RYp=<23VRXfWfx?}(2!~E^c zP(TJln2~L6Z_90sq*pmi!qE$B36bUl2!u@vH+S%5Z4?x$20EPoi7fvPF@0f-XrlEE z?sjW2naH*o4bk|=&;FYN;vI->>=0fqmvga~VmAK2-XM53GG{FSma%DsDxw{0!0toD&c15E$5l)u&o zd?EG60OM{-2{gKA%8R+0L`3_s@jm%){)x!`B^YQ>yWet8GFVEIXDmwymYpv{xkl2zAu+`j0$A`rj)n`+{dZen93@yL z2ZWi-;{J;I|Ft*oq9Ab5i$Ft3#(xpzUp@TaLI0rG|1ZfKot~JO*fzu)2J@t3kRl)Y zo4u8#n1cbQr_yyy49d62>6=)E<`g0#Y`(wP=NTTBz89zb*H-_{Yv4V%eH51tni8a; zIZ3mM!3dWR_+8&^KN-hcl|cG;k`j#p=2jXQYV6+*aSApP{^YnpdECIN7;4jwfKQwj zV_DIT;e=e$BhS-yUkVEuXwu;S5xl>00sYj`=}li$*tWc`=QKv{d)zqzrv`gd-x5{T z)cTulFE;(rMWgFhKE821nvee&I4>peGy;p?cWF79*O0HhJ(P_7IV@$L$bBPX#`I{u zhH~wbAYd~_h6XI4yms?6^y!yssfRab8(S^+3!9a_WT>Ae=g_m{85#N# zj~40%{a}#=X&RH0lO5Y(@dZICoThB%`fe}2U%o3UFOR*w!0+2yX_epK-@jCSS1Uv2 z{w3Dd!J%?94YCkG*RNm+NtT$jGcwW)Cm3WH-q37JD(5e!Na;XaLVr zYzm6>LWbN!Sar`J0lKuPC`KCeF4v4P=0xB7`=b3ugkPk~*S;gS#TR@l=Q7`?7!(9k zH#av2^gNDem7X@p*Y((V32!|QD|^FpvU})6c4CzZon_%n@?ZZ4U33E=a1cC>nxn!Q z7~?G`qd1X5^hy&-y1J&Uujf5h)He!L0%$aazo3bRe|+8>^+`B9gn(lpBCCJ){(jQp zkyljIk7v>qf_2-?=3^<;hrs`EO1;U~`dIp~J;1C|kmbQ%5Fa0ZUV72Gw+Vq1G~P1< zm2arY43j%X$Zn7&eBPJq*h5$#bcWUZ&A1m$!12ymTabo`Ws>^ej1J_cfC%g`cM^*y z6{@{Yz>|Y#U{qzI>YBXRt5rzPzNZmRwk~VtHTm+W(fSa$=rp=Qk_T=3-D*nicG->X zbK~({ajbuCq%c!n30YeB36S)rU$f3O{i4pO8_9iZD{(6^=&G*8r6r{D1rUX6Qn$h7 zzzh_7i(a5X6Z>NFKNK{uOaiIfNgpjP5C)JmKw~R3Bq?4Z7ZEh-sjlFE#8kGzn=vWn@pErn{1DB znGPjYPD^YN7G&amK7@oPVc5y^X=$coV;jBEXGk0sy_Y|(f4nY4V=<((|M8Z~@>euFnHEWZdZ_QLhvS_l#VP8MoIV#5W?BxrQmUm|KdHvNz+9niFX$!Z*nr1`GC`? z2>$0yjLv%xeEkmt!rC8`I8T`3By zN=fOE?K@Txba#i*4K27hDtwCxMGD zBcF)5BZ_gO3hmyF?uJM+7Ki&m1l4a2}fLiX; zEcrgFFr-ALa7evqxxvb1xyx6(UR|uO+%Q>ry#6+>D7Jwj^h&1O!H%u@kW<2&(rv{h z@gC>DNGAZa7=Y)`aAu}e#$h6TAh+-<(1sb>ezcqVF3HhQR^`0+ZYiRnyAM>d5%tZ7 zVC!1WThBXWBD*XE<{im&k zT7gL%3{d0BV}|GBfqq?Ld}88Yt&Pr6W^82gM3!OF@oEA*nJ4?pJ#c#9Mg{274c7Z# zf)SUtH>-DBDu(irSYRdN(CD5SxZ>!Tk}}R_V4Sz%3A)=>j=$4`hgiXB)GgNYZI68h z$YJ0+K0ksic{gu1BHgZ+gl;I`<#mpv3kiKt!*nC7SNaeAMl&V~1(sBWMp^VcDWkg^ zM0Mfn6QJwnl-J#*gKc7kDc$fT48p@p5{H{L&W%Fqt)%j#JpPC@!1^c0{TV2g7hpGV zGg$0FjCcn;T)d?WiLGGXg^e)3egKttUUl^kLE|otviohmk#CAv=EH)^{N`z7oJ-=Y ztkY$>%=AMkrqA}MCK^*O=nskMP~*iO*5H893Vmg|@zYg?+u^w|KKdeOFu-#dKgB1P zna7c1`twXFberVk^B!Wm*)JUNoBP&fuD1S`>@rDv1Pm8z!Q^!KJ|~SMq13VTN*qsA z9r5BL-5iI)V7(hz9>rrloy5rVZIjvT>(J%iB+7{$KN1N)WwWpa5b_Ob@Nk8pD^nOq z{imJ8zTEfGcewuki=B+thIxoXKgJrHXjh>26tlraKgG{FZ+#vfUvjlGRP-q)6ba_> z*BKGLC)qjOFD^?!7rSW_C@U_G4SUg~Y)}NzjsqW_P%M0Lsp8j4{{9JCs|ipEr$Y|Y z+ITG3d!GHJx=R56U?f{Y3?CI0)v+b{U8UuQ^v(pUPVFo%qpG{ZDP{H~Us{OGVml68 zdKmr#G@{}*cmS+%GT?RZ}wUxc)H*5&hXmK3kP#kLpEgu{@1^=g;1oj%m zZ&!D?v8FL%)Ei}+-_gwGnR*x7CnwB{);?5ykH9YhH$hvebmshTb!;&9$o?(grPT1~1wh0T8R zDaSu*ioU7p8Kqqn!8IiNoz5?C6gu<6S5O$?FFA5T1)9 zN60{!cyu`$&s6(vDSMZ$Qz4fsj2m`k^H8wMP-j;lw9I1MMG^{8-qt`h%5NW#b>Xc) zhWLeVnccXm+_4P^ui5QSW*laTKbfzT*dI&x2J8~y;NhlRhLVUu9oJVLk{|CopBN_u zeTrjaAXP;ZKBaI6ExBD*OxdWbCm764Se)PPWcHgT>h8aMixv?P0aY9(TV=JyR19dl zg+}8S7roofm3>PcbnDy=65*UhI=hmAJ zxNz6aa2%TD__V&4IFnRs2}n|PV`qnL`)OVdax+q8-AsV4Ik5@V=k zh-j7SP5X)Mnhez&5rhj=lmyhAVPor7ymew%6MnG|fe4p}bIde#F>z=_{l%Vz>?#}# ztT0&oQ#rKbs&gLa{jGyV`a){b;S7~p89WCtb2BB5r(M`eeNFEA0}$V|AxV_ToDM7f zXo=O>6{wf6kGwyd7W%=tr6Z}Yi$gI z(wk99yu*rhfc?FKEz@r}JE?XpwAl0tIGY-zCRWQ$IyWi|yrS?F=)$L2!eGX)vR{Le zFef}G-tbw=PqnSx%lx=MGZY7WeLf;&H~6_b%yeS2-?70VsZf!1rc5_AdP?jtBKP4U zZVkMSg4sw>9P%iU>-r|U5-w4|vk34zHo)S0`~FVrjeFdWoXmNX{Fa}Q*3e}lvQ5`d zL!a#M110x^`|I=bbCbJEYSW1?uNA3$9<9Tw1`xT0PMYt_NZfzCbqx&(TJabaX&7Yv zPef203DfsENX?8WP_b9T2W>nwYx2cqiiN}E(R*nL2}-&TU~r)ykT^*q;_BxRH0xd? z!anD7+8+F+i$!hjYf?vc?8lSl>`6{NpACf#gvvI>C4R@d%aH!KWXy|TvX8TZis1zP ziyOUSPcco;Pxrh7g>Q2=pYF*q~GeB1q=()T~i)zo*%met`~q8{pFbs4Ig-(@U^iuoti*T@VrEx+G&pGuS<2YT*;7v z%`?1S49QW`!**RO zuI?wQ&47c|(z@li%;!V%vgia|;RTstRg`#e5$*uuH?uv;x?cg7u_DAvc6G8hc*E#} z#%*ma*tdXFCejYaMMP)=DxYaB^MPEmJO4XRgu#490>RJrNPB966t+$ks|pI^F8qTE z!Jzv@T{>cL9cv>j6dvn)hMjb`vRr5J*@?V2TPTxjE7g|9Z4$Il{(jCcxZNES(l6a1 z_*Oi>3Ev-bL3K;ev^z%m+-UwzNBSBoml zO?w}sI9!YmXDeNay1;q262I)4J>m+QS+^ChBOG7%i){fjvE^!NQV`$Zt8IcoME-`w z8tX(mZh1CBA+vB1_`Kdb1Uamguvi=f_>^4fh&YL!8R+~-miP62S`BpLbub%-ok6L4 ze4XG@ZgtVeOCL;)Df<=Tnda-e1E3}2wp5aUQ_zN3Cu!9Ee{CBfBF*GFFf@4NrYpH1 zj{5ZRME`|(rc>lFUxG;UVbvRzGL#|qU*zKsE2Innkyxu#CmZe5zpH{W0UEE|)J=vU zc~9oh#honZ^0nsWc-7Of+sxjJ|KgPBYZ$CA09lVnnCKvwit`?Uoebi4=Q|l*wJP#T zi2XR|zZhTHtR)x&`!U|)U>F86i=(mQonDxCpT!kyB3wM@3=%H8&IRq2L-REMRrdQA z<_Fe@s~g#`&c<-l-qdETk^Sd7{;(Tg;DOU#!oE@qEM%P6fn!R0(S_B?ze_+xi(6sI zCaqKQgpIzB{l)hD@#jmbXas6#CNipVQ~uu!6fNEe&ajQy2FU*lLH}o|6j+eprZI;9 ztEMyt0>iF5z~6NYfp};L1;zv4sjAYrySu;B(VRuJdcivpx~dT?=hV$j`34`G8g zh{kTQVTIv$T3UM~2P4sxQZ!u5?Cm*CP4DLgrgF3> zyQQ7?5YMR5(R+A-uOJWLv6nk}hI2;v^FDmAs6JaL1XxtM zRur9*|BB=OvA!2F5XIVsCa@Y`3(I&1KcwKYQfR{DR#c1~yPZr|{m57R*7k{)iR?ql zHM!z93&VDi-}JI82Lra8Y3qfs&}qVl^HWvfW)2{u0~1a@HUmr`vU3XT^+G8?oC@bR zZ7G0dG8AHBD~zhTx`WkWM`cs2s|Hv;OsB}>KW4uKs|xee)c+Fa|3N)Vd2r=(0xqL( zwp-@%XJhqm%5#|S^PqZdwc#xaRx|hBLRX61M1gm3mK>bD8ZD^$>}m|a!%j@NGa5IDiIP=W;L2l%i7Oxpu1fl;C;(tl@ zM4-5ru2)EW=kbzD)gS}uz~G=4=8u_~H~w0jTtY&F0w=CaML@6+BK|LgutcwUzDzMD zHkR7u%8YQBK$sOA`825+IWUnK)ms% z|9K6(q{K*dfWk%JyO6H<@*930TZ1VC?AmWOQT~p`=sRV>94y1o@ji&nm`}-Ij;F1MGgaLmhneo0XADQrxk?Gm!~y zQl8TNhUn25V4};8?u@+qje!vl#>iUFmSVs7ZOc0tBi*G5-3eZ1vUx`?P{j9Nz{fu+ zJ9dTGl?4bnrpY;=HbVUE*38RMz;#RM#BRI%W`g2Sdy2lH!OlL=n%=*my#*hz?;9;x zLGit(`*Xlweq($BZ(K|td)n^^3^wyWn@awFXi5<-?quSIX6S$kP7bo+!Tsu}{b5FE z{KQjn(9f*+uwvfkOZ;YgXre#D%!56XW+Tqt-!9(64?KMjKf#m#%v}9>ucc%bZnsn# z8TAAVQP}Tppur#ps)NObwnOu`z0<79_=duZF`@iN#_2Eq4~g}CETkq=I{cZC~ z?5uT4SM~7U4^0m|EIB;nXZytS@f-KOj#gI+#Kv#xCcwoW7?8X0oSgPt_eveda$&&% z*(Q>|9ZwIOr3HLCP5RwdQW(Ni5fc;T&}@ro_^B}DP;4;%hFxSOpvJGDvtg0s`w>u) zNdlE7Ll)M7a`0jmzbC;dHAdZfI~%x0`A@gtm*2kRU=Qk{kUjjjGot({S_sl~|2h!# z&$9mCDKASw_8g@u{IaVL`=2KN;_M?@aE*iq;`ztltdRm30vGx{p4@oO5w)u1j>EYq_L1wKV4|%=vd1KHQwGtMgk( zB4}*++g_3U;paym!z^AMfiZB?@tjwsR1zY|sj1c*thx=VUyF;6ys7q;et2-1kHnRf zu()3g^O^39q?c|N6u;V?Do#Wp<{iRAwux~z8JjlWpDDAp);>PqE|BP zZ*;3W87P*)aiii&jAEDDzQz-vW2`5TMXTz|ZZB!J5q_(Q3)H0EA;A{&&XbD?L`Ri^7)^TQfy6J%Mh?(hJl_@wHI51(J zs_qu~#4IE8`Xvq_AoW27NKMf{!}Q&XESe7`l5=H%M_f6VEt6kucxRO369re z#$N|qnZ^=o6*!|oS@;*ZK*yPY;SBIe=sUU543Vuq>ZrIGeIF4@_3!;mHdHN>CR-7E zV10ck0A*PYu&}a<>kh*Y76F2*G-Tx7yn)>|LdJg~ZxI-7Ns?~pY}g%&OSvU&{1O+P z-KO*_lJl$-RbF3vK*#(3QLNjuHZn)K6ROk$!X@O*;$|co9ZuTbaF%MiGbU1Q5hn6D zm_L{lLoutm`Xv~Wbt;|(Wejr<_+nBAdHAPqy!??#plngjlN+0jvp7C(k#vlYv-!r* zFb0K8SQDH@OZCg!OVN_PAF}=gjT{fou*(_vmXwPFr?qIod}z)}d;zxlW3E3J5)y!x z%b_eRZjkT^NgI~b`NoET+ah{g9K`!X;ff$HaRyJ0S=t|hN&R8IaC5xf4LnM=0={Lg zV^LWdX9Up2Pfk{b8jRZ;Rj)LccEeP!>j9-bPntos5e;C}fR9q!Aqj%a`)18gnv&(^ zDtsq1EiJ8|m}LH;?Hxjt_ncj^n;Y0<2)a&#;7oi6~_=1$FEEI&ymF^;f9&^cO6I z%GW=0V+LKoqOutfbcf~DDqXJ^SmvDRl~q)13iwUT%;r8S7LYf5&w>uWIE95IN12<; z9>!_CQ|VkShG-q_3`Vabwfup5QyNrMv*3pgl3I$3iD3k?>#rqY?A| z7{SzU@eE|qZ&~b-B879hSzk9QPV244EFVQ0R{A3N)CP@SZ4(Gu@mX2MS9t@@FXkkF~5w0P38U+0IzLf}tF7tYVE(N7FxSPa7h7tbv>q}B( zZ{bcs)&;9X_0pLt?(X0DtQLEfxwE9As$(?j)+Oe$ju3cVT(0~)j8=#4 zj}IcU``SRf2I4-0j$nOV8{yJN8LVlo*_1h-KV{eX*lZz~RO`RvcLH$&^Ku0e#Fu4g z5V`|9Z6TEHRjlHUt%WvB{*&v|gT*Z(mfg>5dY$~>kiG3Wa3SNP)k_LLn2)3xN+Tkr z3mcJ(Er&d>JU`9wCZ)xS3Uy0oLv#bxh3U+p#D!(EGxgqbeYu@f=_KkDH8i2Hy9 zG*zsT8u_{&+Ttezg43q*@ZOoxf;gdo8x_gs>~seEnFhoGXIxaF%P}dbxPEYnMfH*I zz`y{;3brhcMu99yu?=)+ z)Lr?n7Pr}BbKrbv3DxV-?8)#*ri@^Zm*gOs7CMC#6QN2XawLd&aB{It^o__1rhT&u z7<#``58sA*FkgKsO`u2-&451-RCHlc|EeM{Dh>OHWI<$6K&jhA{wZl1+7yQXFL`G- z!5>YquU3i&rQpm~vj4Ijo*W?#$rf^lWBYq?+kRdY;buEHE%tcG<@9alCqM1h5cqZq zMVyGg`jeYN{BM{5@M>6EXbQ3514_UVDX`0eFbXABuYD_Jj9Qs;*@^Z|4qkO+j7BOI zJrg4-$5+nk?$R<}(o4ivhPU2zzIyMPOqsyo4nB_5;yu`qEKl!rflZz{GluGEVg0zT zMBc7C6h#z49`J^d_V5$$)3*9$59-#0Ex*6&z$!J{gP4` zs0oy2Lep^?GU3tBo#Bj>6CDrINu83NQ3Dte$imp+c+FSSIr@pS!eqxD99_~{K&$smn@*uFn`Y+8{kLSD;hY=XrCXC z7@E3ma#e+eecOoX^RHv+dh!4e*a(7;27zLW$mwEn(9@LOevynY?!NC3j?g#JsUHY5 zecwsLTU>q&FZ9PQp#d9Y3mjw-g-3yrTJwB`R64fS2gjrw=yXqZJ*>3jB2og1VTj%dRP|opgC6(7Wu^^Iwh=9vK+5~S`3raK|iDQE=2Xcv5t?iUNU2F z67J(>ccVT}8%>!EQB0&+DD8D{flwLraO0m@Z+gx$a=qa50nZdg>X9Z+Mt3x0xQNw- zca27S^KbJX{c%M;j}5@#8kJ`y;BA`~hA6wU>9=%PEu7`*n{b~JREB6s6Ej1pzAHQ& zE9yaj<6bDlS@vKvi2S6;$3(`BqdMm+{YhsGp>JrYD!w^$?u(FZ(|zGChn&AKfSG<6 zUejHH!GSz!w!;%w+l>Kh4B|b}ht({~9H>|^_8zZg?!mNdAo%GmOw#YsCAyI#e7M~Q zB+lZ67P#WRtj9M_VQ1@+B;&AhU1+@*&fGo3L1OjNR@* z))KIB_D6U$5eN}iDfqSQDk!13ghe@XjgQ>N1~dFi=OXbH3J!+VT`6g;=0pG%qzl_V z=Z}kuArvs$}MkgI2_TXEp#ZJ2auq#l7f6A`Q;B|WDrrg-xx4B>nIBv%ObYvVx+Ow3+Vc3x_f+{iB_UJtg+PZjs*I(EdJz& z7HG`yV&cQEGVOZgO-1{PqohHzFa8mslHT~6B&_~ANQt~6vyOGglIn8|E@)UP0M zE3;!kj027@N{)t4}Zz>lMF<9t1`Y?RH5Ld z^3Bs{PW`sZs&3QVZ1&>TY|`LnskTKjW0^?z3?m_nUi^`d#GwmQ(YO~oF!;})P86m( zW9&{YH!dMzPS^Q*fvS+&`BJrf2Cdd3)HfrnI*>M3hZipWMuKoXqa{SK(pBCta7+)_ zp?kou@Mh=iz`&o6q*vQ#|GTUX!{JoPl86X&sF!REA^)cy#3SswERmdIzgtwetjU8G z^s??YL>4Rxt0g1w%vaqlg=9K8tk5ME`mAGsuKkPOfw=Ds&e0_Z<}so*=b0>8+k1Vr z_0|Qet=p*B*zkjEH|*S~9{gR2VA4G`zkKa3;e>(*HDXf|(i2Q7D2d+E+`A1h7W9qF zkRO%2gxW&J5x_8o_Awylvvn-%MO#+#dgdXU53_1M{~iS!4I&JtNy_ps)u{{cDoANn zWs>o;XD7sxWrnIO?r&tr)9r89eW{997_x{;QTk)7{tUY&T$$ESKTXz9#Gm>mWn&S(bxnLe>X$_01F}#mW zL108O9ns(mc5CKtTK0(K4$&1tw$HTgBn*cGX~&m9zMC?9u4&mf(r*ggCT zh-V-wn=$w#Tb`w`iff~CTSJYZG3kE=FFn$Z1TDevro;xfT8e!ODv~fP%wx6+aDjP5 za6(vu0gl$~O2rHypr4lw)a;`nnE~ zQNevGN7J(mI1&g_Q7->tB+z8K`qPvhz~nHHQ3)+ui_HB9g~S%Z<>ohV4IgWiX%TtNv$2zM#%%Y<$G#RpJ z`f9bWUtP7B(F#h9;1np9YmwkY+oTo@L!fDqap=3dmyVqA0&3`zu7Q??_KOHIVM$~_ zu^Vq+(~uc$YH)2aUA7#ACNzoJLzsl4qh#ul;1$$PPEB&0z>T<(dj_u&{NtqBz_>&` zfEerlVec*Ds$BZEVJRsI=?+mkq`SMjTR`bvbf-uojdVBCUDDl1mvnc-dxGwL?R($X z`|WwYJ$_g}T#H#V%=w?0e;mg#V(Q@OEqWB1A=RJoR3Pd@WX*HgW0p@FL@5Z0<1)V7dx$k9Smt=d?7i)QGW9avj>G3A7!H-4 z6I2T-WhF>F$JkskCD7?lc+AckP@3Y~-x7`W2r%KR~A{1wnPE z6qMO)QjGE3NiHJ|6X5Azd$EwrO2v<@szeD%K&)W#jkQseZy#~#;WL?x8FGdSq4V^; zoZ=~MJdvn;yU$*QXtM7tA_230q5)Y49r8wdTEj^+F0<E0vGdu zQ?XJ;G9`_jO}@2GLH*q+3l4BoS&cV5aw^AC7Rnc=lZJw;)3@^$YN?T3gc z6{FeZ^rzYEwC@kNskcIB-7QDbyoX?X6AdXj<2m1Gmo6uYeIc}(zrd@>Ve;w}%!;8q zYuZekHLXKGNs`|#lk1k2xm8jT`8c%`Y8WG*tKN!om>s7R z`;^J}g;YqO#|-;fgWlzIb(2kVj+=wyu=%Ag#lbra8^mEv)d+IB%hc)}8Hn3iT0R$# zK4=S8=W)9lWoy}a+%K^EzjoYR&f%^i;?3NIy#QCqy4h;UYl$Kh*95*3p-6_=Qx2!K z9DGQInY&c+K+NRYzmQSBl6!KLbk#(?Rh>p~e)>lu#8lF3ia@i{HND%_dq<^)(%6bc z)B?!kW{CLNsLw3wqA@=-X$gR;f;}~mBwbw&4M3qpCI?T0QeB7ea7w42hEr)W?vAX? zPXm|1rKhB~{Uw$g)yfTI)F=_j2^vquC&f{xXamjXs+on>2xSRAga*Tji3*m5U_ee` zjzac-tQSRC{=Dl2fmj(wG^{}{SP_2zX6+Z;uBn+(&}S@c&R-FNP%?27al)0Z)t6dK zonUB4qttIQwC5Jxj-T_UVj%FVWFY2Gpb3~luuPT6*W%e1N`FW+jx|s^b(lD;578Hm zMY^2kV4Q93__CbluaWL_`q?4Cp~wdD7&tEV>T^@2l3nr`V^Acpqy**Q{nh3qZ1*`c_<6O5^Tm}(OQrQ&4CXCFeKyf_CegbDG9CvbVrC3@7 zre9}l>Y7YgRm8roLS_TYTsSY}rqaxRs?yENeE_tY0zZF%iV0^B@dXc|kMeO2oqgez zA%ITkqRmiU!1cK^)%W(HR;CmbX!pCymFC}i0!SfjS?E#l`R%}fBts_V1<79HGl#Hb zl3-#n!La!TB-A_La2D7f$eT++e140S4ye808)>bTOoOcTxu6n z9yqJ3KSatVnsw7d6n;6T#ADoT!oD!w(XjM-{WGg<2v9SNPy;tHJ5Gx+Ze-K<39l+t zzAa4FS0Yy{ohdw@u1op&GRuyth5OqCC@Xz{&*+N?d^KA@CUMIU3neUqXhH@v<+oQt zKZ62cV=da1D{0=c9YByiXtMHyea+ zjBVbEqT-DbeokwSO6*S0#r>a(kQzI&v9n0d-Wk~EFCaCU>o{OdZFrkS1Fyvnh6?t^Q@~@QH%(XTn<6|| zmB6S|-kQ8F2_nbz*0&6V7e@ZBM|^7r!I7XVQ-MYKz)ZVfFuaMc!GjV=mO&~!9X~); z&DS{=heWh!$i{>#_yQVRQn#?PqQ+$WZ>p4m_=_P*3^UoW$j`eP4o%;bcx5PcDJk#* z;Uw@b?VE8;8e`b*(L8-sb`$tZQ*@;dIqN$w!phq!elU7x`%>b|J;dpH%;ruv&;r^}eQZWa1tAfX4A{7U)|rmoWpRN*&1U#NAT)hC^K3oeI&U5q%2#n%BxI^DnduihonFV1z$&YeEJ^V)`1lLx!@ zJnqD_V38-wL_juy^em^}CFK4XvTtp`_tK_{;8L@lez6>SY}axY4FtPhuq}{2n&N;T z&9HSR7+Fm=OB3JcQ=az9(#VVOQ-^O<`@+b#5 z$=Rvdpy3S{*OPs{HChoztibK6v!Ym}?>eYvTuN%+Lmu=f zUrvPv~P9s@%UAHocI*W^S6MNT%$NXHP%)rkTv0R>ZSxekGbsKnAC z5b+F*CgO&*uL_F*B+JfCGEQ;D#b2A@95{KOIn?{2l&9v|)5}E_RqInj`L`3R@F%Pd znw6s?CSE%Ak7Cb$NpyUIJKOhB%;Eyl3QKd3h6i4fby#fnILSVu$n^rL%O8x z%3Ch#n(9PhwKuQ+=BNJs0}zCq9Y+5L(7>ob70U^Ks`=lJe|q>YH9(?X$f$fLvAK1ouXh9Sfcx{WswVJX zFMxv$p$qX}tBYB$fvT^Gal*eKdVjtI9mx&)zx3$^86^VDT~@kL`|l9-U#~MlBLYO6 zoSNkoc5fNsZ{kB@QRn{@r2*D^ntCEmQdWBU;vMr|q{8>+1(Ki6iqC`dMtoPcxjTnQ zV@buDx!U%kZ*VZCz1=b@GJzP>;3#Qe;LF5XBM_GR*L*_38e%oMsHjwlj=`hc? z7sD|5qYf}K1M`!EP7OMPRwy|>EUNlTppOr@*-o8-t1}0WW9(l8#sklTr@sdS8Dv12 zB=({y=rl{)h7i8{OFtuv1Z=`P4_=;(G_!esPikD@I3hBELinR$?uYJ+p$E5k-akgO zg$$mDD$kk`CKYY$-e9q-l4&n?JChvL-e>=NN)@7C>Jh-7 zz=tRnQmzS=Q~28s7X3k0@SVV<$p|fc=3tQbsidTI5Oct|XMg*JV*EGWPR!!DE7J02 zX{a|Q`A%M{`?HBVN=`fjB!7(C9t&(DG>-)J9Xn}pf%f*c5S9F^KafklX%esc*C0a< zaScj>@`1a=8$=Bb>SP_#*qG->NK^%zW+{Z9K;Fw@!pu5a|6ZQ!@0LXWX}Qc7Y!;9^ zZZ=f@d(0gIFF+(aJwmW!ePaEwA{j6Yzsu*|C1Ni?25)xfl=M0__$ayFZAAWMDbaiZ zW%-dA;bAksS+`;+-u6YfGdN;n{T+sX4EP^#FJKn^ejvNS{`b`;>V<*SYtSG4U)mAv z1AAe_Md=H$|FZIdsRlmes+Ri89{&0DV<`X{#pDqV`G4;iFJRw3G3@{UyEM$@1_S?l zH{3ddEH7tRpI{vN`ud#_ODRzBiVi$zsubnTfRly!JPb zq^ukEYSxh*y(8 zCY|y+KU`zBAE>aDD-CfTa#7IH#m!mXOa8pJhsWY{sQl(UrLNyuGGC{-ffYbF{Geu9 zVD@9E8`t`5lyQ9|Kd^6JcC(N7@tV%{I^6S)g#Fiupy6>w=Sjcr1Lfjd?B5>C0o0*ld>capI%@d6ifR=n5SvX8p$@SffHj(uO&`_~s;4<(&ur6Qh3lC}>Cq(*vm zEw7v0&K?>pWc^hC#!T(egI79UAyHYzYwl$)CZJh;@xt9DNTg%mF5C}j@A1h$s? zRaM*G&bWYYoBZTpA?6D=n{xsXgQK9929>Tbd@5+1VE=F5%nc~UkTG(L!3aIBBA3H| zLvKc$VcZ_J@tik$1GB$>&p$Q%!u~f<_j52{wKgj!;f+fkw-Nxgd%yRw`DE#RHiQg7 zxr{s6$_(!VXj4@2E~AC2vH-9}RLlq1m1D6t23WcV#0Y-@KKPU z0V(B(LyyA-hCV6jCv42b^ki>eOyRHeK*FeO$yoo6mRl>wnY!Nl+%y!!*Rkdltc`ovr?tuDrG!Snt ziNi^SabKvhFMHh^EvNC9Pevc2GSaN^(mjY)TP|#L1XtP()qUy*7_`N_VVs9|W@435 zW3O!oRKp^hE*2$SF1Cmp3JRXkC6R#yZepfpj&rpw*ZVOH0LK&8V_NqRv5o-RNw(SX z_|p8!A5#m>AqDLBX`c?6n3%Xu7|x4@(?jx?Z{Z#Nq`?GEFcUT(W6r$8Tya!VT<)mR+1BXEcM#9t8zkmCxFF;e8pinBeA#mF*^Xq=>q1)!1?fh|fov-25(aK3h>iqz@EDy^A zjpZx$=~&-|hF!oXX`^KB3c+6^Cjg{%`=2B!oM}A-r5=u0&8DcY+tzs_q?1@gn~Y4v z^W|aAqsq(2BAnz}?{215n+DyRPhv`YUI!A=^4^Sw8=Y>@fJ4XEKICPFMKuh% zE^FhjRgTM6Y*JBC365=o{o7ZwH+m8-S>8s(#@QOMTEuGtf~us#(&nzqu=t!vGc**s z=A(>(>m|GddV>Hw^Bh#7yH!bA2Q(xA1aNYi`Z$mkNsJ&edi?o&M(Y>st!3Sd`~J7Q zyt=dvdkohHju0ff2TAC&NXI%NjZ9=x$HZjrE3IhTOU4CNMr81dh$a84v(Jg#8 z2viSUbM~%+P}yxogC@ss^ih7JwEf;{k;{2IJMJwNqofSS^;%L^O(3(|K&;<$>!Hjkf1iCZrd`CcsN%z<9It zwLp9F`+QdrL|}T$%{twnO#q+%(TOBozbK)*p=t-)^{=lqEmR>2t0#w#d?`+=hoo)= zdK`n5+vC3mSr=``_zCor!JT&pW39=+pUJ{Usuq^x8C_|_Hg(}8~0;?yhRn*B(!iLI|CLW zzz%VsT9X|YiSI-FyIF@HbL@}~&%fgtysO$RX&4H++0IR!byvdzn0w;~OSY#pLle=% zypQda#ClNRQ2i8Ssc*u$P~vk|-j4MR0c>Nd7+!#AJZ1V}bI7Zz{R=vk(T@NG+unC^ zV&3AoU!b^rEj~(!rZ&45#rSI;zsQ!-qhK>&xkKZGF4o&L0X$J6?;upNu8udz;Vm@u zZ6DtLy~q*CT9s)~yzs`~60Ohm&&A+~j4zx3g?WxZgRYS3Tk9N{)K|PWE8+OSz6-?V zv3q{45*c}#eApi#d>$Kbb_x#!)oZOI_gMO%U~=U1w$Q%BNqH!3r)^p`G0(4%M8B!` z+tRhX4Hf}a5A$G>2c~BGq4rkz$~@JB$6J@^JV-t7)&@_m*22~M5ry3E&!_Rbqv~Hh zffDhveMzA`G3(tZinvx|R!9QoBz5i&3o|63rPt1<7bEP3ctn>=!G@tu`aB_c=m3OR z2$Tq|Pm!L+OT)>6NgGY=pYYd!^cxNTgtETK18?XuCGex1IAuM`d=SUlGDwiU$37NA5ViPwLzCQ^M+Z)wo*LaCT z7I_VI%@U>)Xz@{`R>oweTrT(P=bG`WcU#k?slPTLIeOI?n>1_Qd}F}BXjOXYihKt> zE^KOMwjYg%pz04DcKD!K8y?&$)}j_1(%$a#-Y6hvZQ;PP6>O2nZl3zE@xEl<<~Dh# zZmgW4p~ZGxf^49v!tfZS&3IWZ&J+If+W6L54fc99n9eP;ZPQP4xqEGZakz2{f$W=; zk1`5z=#!L(@i6!8H%^Xc?F}MIFmf4ByLGEy1%;(wu#h&D+i>VnWdGx9^1XsgBjoc$ zbsrIuaL7zRJ*3+@3J9Lo*KrCtgZEbCFQTR&xPma21~$|La_pxIF!;%IvW;W~?`q^; zwd%ILUmNGo?v;YbD<}a1A(q~rG(s>yMCC(0pBeZg57abU2CrnBCL^?Kc z2;&NkDrk#WF0TTkDbdlbTTCSNQ;pL*5 z)s`Ut>SlPemr}xQ64+}4Cu#5))TZ}uP$Bw5+E?D9F*uPSvY#QlE|_Psr9VA3K24Y_ z3c@^lV|a0$znL_E7WT?cuQ^gg%0~`-m$h=T6jje2rO2II=y>}HBnswT% zDBZwzUip$!liZ-$Wi04*9oy@W)WB9daH#GIb!QyE?=61iMbXa)S4XW9FGZfiJiY0u!5_Q;? zZt0+JdSQD|x7qV>d$=j&?de-sQZLbb9BTEm@*67beA`Ka+?`?4wb-sXTN z!-m8s$}Y3gCX7q%CAT$c*TFP?-vN|t%$Z4HnHxyvR3&iP(&r9wy*+3+?CZqz94^s1&gH$Aci78&A4Y8FQz%i}MA4C4 zX$KZNxyPHF_KY3!&n(pZwd$QxSO>@)dA6xH->|Zza0?H4hx*pgE)QZERvjBb;9=I7u zjZ+(Zi0cyp_c+HdYFb){zVl^YqyTn>`&(4cIBdp`Y`x8QC;dY_|JL>Z3hpo?tHj>2 zw>L|V{3CS%Bpn#AY*SuqKjt278?Yl=O4g%i%uZ~&uuzDdMkcVVXJH6m@!ro2XLU(c zwMGX5a{e0Gg1$B=F5UPvRNPF=ft=1~O{#LLE8LfRjKi>Za;@QzeZDQg0jot@_iL!dhYOeH>~aLkIcZvQ)s1JV*4YBi z*A6qaHYBvHW7KNdH#UVJRZ->G8gbWWZ(@h^9k

*=`LoJK?ag@S5CAF*5LF72&PniMlEL1Ee!#wkaath+h?awzX#Mnk} z{_LnDZICGHOQe*$+%6YU?}As8hI#>qLbxS#dt&M!%o*K}Wl;bKUq}xVBd>(|jVs_F zb0k~)R>&R?$)*xl9xEIPy+A7GkKHW^(n$vx^7Bq_{lhD1ShW$ zlNVkjYyW@6{J=xD~qLJbRE_9Z0rZ_o-(6~ zEiHSZ%!_wj^qA|15&Zp^0)O*t;tTJK1u@;0$DN|BWRfQ#U z+@IU|2L^O~bpgrRP5=IIm!{wD$Z-)Ni{^6|Cf$wjgCrvK*c?9_q@7}o<+ijLO zl-=nSl)okXGrmf%9ihq4KdsY?DktD(YyMknQ*QajPc`RTHt{j|Jw>G1`3%3m!u#yC zoOT|EJjj4j6RR33J>(S^dHqCsS?2n$vBOH5yGR9*r=GlXFy)f->ggwC^(apZ%MQ3* z>X!w9%sNvOjO*{&BLaaJKqzA-y5pDu zAMdRP9a?f$TMa9{48#3xle(BH(Q&NXsPRpmow0GHx!emh-Ju)Wd(CkNbc40iLC2c` zPft4n8(dv|CU%K-2?z!Efg3BT9j$C68W^jYJ3|n-wuJU=+|AAct<_3(s&n&tw5?+* zt4>9o|2*w7K3CQp!S12t1^*EbLKtIf5pm1BW0JGXRzXXh6wp?ylcf0Acbq2+=fg#l zGYibn=5$|9N5J6C79QGa^?iHZ@vgLJ01gnM8q%)U$ZxpfXnmnZaZf_R_&m2$?;-&1 z)AjZK-5lw}FUA-M2~xW(my=9Fls}8cFo3TMn!r90)K*2c11lA_>nkYm+jz90m|A1% z@oZ01OFqS~{eCkI1dHtSnS+qaJE&a`<)2IU=|Q5w82-|vQCJqi_~(LrHnj*pU}Xb! zZK!{>0fWRL1B2<@~3qI1I9r7Y`GTd)G5s?7JrCES`@d?P^=Uc^6X!24~ z^>>9}ubs{T;w!}(RRvv*fH;&fzh(7 zDY8;~HP(8>FdhPJSM#Ojg}JT7tbBz)M11p}2;yq1B_3BGL{+H9g~AgF!O|ZE3yi4S z2wWDtdewg=^t9;3th_@Ix$@eJX`1dY=Bj}(cUC3ePMr?ZX~g5?^ppmYAdKrotYzV~ zDBkF*cc8H^5EyAl^ZTa@25JD=|GSgKseDvl^yk@PP~ZbCcPPqyx1`-dPJZHywv?!S zZ{HYBwF1KJ(crlWdjLyW1b7V9HfthOl#~S(dvIJr(``X4Bfb%U&Z-8WB9hT5K3JHq z{sJfy#D&HeL*f z#Ws7$NAMQ|dpUe@xY_GGJ-;2G%s8CHN@sLyeh`9|Hm&GUr6xvtgsjbz5FH(TrEaSI zGgA}^2wszhtpJgy3m`ATQfp}`RhQAPHf_(qAGpOO@WN+Vuo7+@=!)+K&d_Z+z41=3 zoiqTIRH_U}mL%2-Q)|~(%FE)eKDybrWiJbwNy1fcfxnB9rq!IIS0H%a%Qw)s#b9U5DpeJDl|1ENutOsJ zFi=bY4t~ruyr`K!(3%L6&<8U0c`WcxW64o03MPaih(4R(zn2pPG$KydSn{qvgcB?* zd`(KO1{kG}U!^<;9`0{%8v$u7v;H_bq?sGp^E##Gbdz6;O`X*a`yAuK;>M=zKq$7v zt3pG17X6k7v_Cu96;60aw>TlhnDCu4mPT{K7ZKoX+1_fJxn3TG4p(;_?hNPWDg$Oz z4P1jtMN50JrkdwAI{5L2jTtp8l&(EqJ<()mG~Ps((x46VL5F_edFA{(7q3-sRA))B z==sOO6|OUo&ccF!LJ>eE+=C!%E9eracs{_=)FGLMBBQ_&NBINGPU}iyes~wq$0$MX zEw%7cpA-`@sYLB`EH=5So0udJKJtOVgIsJAG$7WKL}7!%Z*PE0M3<1yzjn0X3nj< zG4HI-f&dB>0UG3pZD?nN)Cm9W7+;)Aea1aL0FPq<(y(%V8oX7OSQT%I^0@5v)8R9= zV)0jMC%>uCNC-qFd*}cVCC>8+MQKbWVr3n!i*i7snRvq_Vk&{fLgN=j;uNnTb4QBn zL7iB|WCZ4u#k~L@q(cTjDX5qTCF0RbTLxrsh+i%397!Te2B`#t$qS{6TMj8d>jL7kT2HDhmgTOsxhOyGLk}kazJqHEQTkQ(g(AQG$A#*2gNxGu{3ya=G_UX?w!fP zHPztj5{y^GTWRk3$^j|$#+p^%MshV6AY008jNqe+OXv$w7U49+agqBE><}$pDA*a<_iu5NJkh(qt17}t)+MkRjUfLQ?w=^_S zKB>2vMzDj?A}0j7%JK2BPSpP#8GobAwcVv9%bEd!WU5hs3)0Tp-j*pBzb+WlZLv%~ z2dz&dv?OK+kSPb9jC!EEjdsQ?zCek}ne0$(gM@SZF#6~z~Y{x zQ)v|jd-V>Ar@o$yTd?5e-U;IZAR0tD?0b@MkkaJ`R(ED7#*Yj2zET&8&7NQ6*$X#j z2b)wcV3cKFH`L{&;44a9UFB}3O5drw!T`W0DrI~oQ$?y;?n*P~{O83xDHTH;{nJ4% zG!A*5(Ya9sFpV2KF%f86J$-!_G|=ayfmc~vxeYF?m3||(pj|olRCDf3j)q#NQY5at zp%Pig&Z`r@LkO+iP-G{V^Txis8c)2Ho$YIQ451xf?3RZcTo%xd5@EDF0i|O3y36^b zs=K4SMQ%xG!7Y00$OFh7*&-8^@wG%4B^%jZZU!Aj9`1B?x|AaP>ijC~DSR4nfO^_3 zlkB;b^QF{tf>D&cTtHb0XS+@IjD=abtjDaCE)p5JZ3Wj{ zNrMKCt?ovkz9hOmW;DI7F;g|# z?Q__tTrz#VBU^R$^FYIpJpWt4(m87Kncf@w%Mrm>_Y<2qL>_nW$w-qQjlh?Sn2hEc_Xx`I&H6dX|I!?(K$bN)BA4ep+TdW`x!E~e1e@I$2zFODCF0@HkVLawGzXW8VnQ5ZrA?F3Gf8dBuVI^V;5B9G%i zM;=kbI9^xPE8x%`>djXrp4BNy(8XO}9>FJ+7?>~jC z8|X*JU}p0z_oMF++1C%2baA+Op~jWl0;*rz9d#E5r$s1%nVCZ|&xDtLK1Tz#drg#g z$`ca$=AVUj-zMhrB&}o+&ybN-0U65HP75;q?eUlx>ld$Q^0AOd0&6wV|q-SYFO!O&j*}3 zO_twBP^6beJw;h5VU^FwI4Bf7Eq50VPpHPWaDVAq?o+_|n(s6MjU`}5F7au*i0|-y zHQ2Vu9-Nex3UpNBh9V5pFg}~o+f2yc|Jcjo#nn_T$o^o#@1Iz&DunsIxys;-A?NuB zNK{Q@>VOvLAQI;P9CB!yt^#qq0AcMnCRIS%_0@mzx6(3CkkQR#*od{}7R~+Tz-h0werL(n?4#6(^?=V7Vr$ zhU;Sssf06FmHqaCngubh^QbVUzxpH(wpuw3EaQ^}RH9nnQ;YS&`Kg)~j7@h++m9jC zCUR5ypJ&8PGZ#C4q(T6+Q#?f;$2$FPL<)EdHAMZga!GK$Ns3#=!9eJmzTE|G6A2yj zkBGWi>LM)Na0Ik&pdA+*YwmtN9oa@Mz^+l%{Zq{-EChmoWiY zlZgOp&RTbm4)_ZtdlU8XjRZZNb5`;8*Jbj({@i(PO6d#(JNZrpI#QNpu2r?QF;^oWI?!Z8GaE zT9*4Tnsw1EuoQc{;^4R3qe!f4E>W4ekM(>C3SWC~asW)%mGnfnB7{;vFvY&$ASK8< zyH)T`4T(xcsTsq(-47OkcgC_oGZrk9+B?V_|oVVMPsk{xeXSHKtEH8-wxa)(v3JN zb5;s$F?Axt3*>qO<2`tU5$vci`RR8-3U<+j)vey(NL5vz^DO3sx_@vz2T|1&$hSY6 zEeHfFVl*J+2EVb7tEQQrrx9vn2`?G8T+Et9lChjq{0ukh-zfW{^ut`Nz|1?W*IJ7)X|3#I^ z)FoQdykc6{QJT$<15TsRk)W^cK!Nba5))^bsIgaIeAIwxn??yp&)dj8xZWHGG95%| z9QvPwAeyaL+Oyu{C=BNf$?FN8N2MGU>L_T(^kv0jaac}PxFDR%T$1K$O=}1(FlFv% zT+ZOF!?pPucG-QVO{#{U6B+)5^K`Hg-9s`|cM3|Q+iT~lNy9O>+dEOB`XJV~#&f$m zRH8Q0%K>%Iz$s=>>@FsVFMA?=*wjt%E{ITG0X)0q^)zL{gn}=pQ>tfZe7DjOFwdlegL39lx^rD zc*$gVix%@4hRvAS;HEO&-)`y-S(?j^Kc>zRgt(~&4Z+!AmB!filKEt+2EpSOF{s;I z+0=ujy|gK0(`{rQn1ag`m!16h?|9ME{d6rK3RO!_tc(??g36jT-g8~f+j+eBC3kam zLpp$zdS3iVr9^9c*9MAaf?KEY;SAR|*2&bf-@3k1o>6uW!D60r*q@Kw>#{KA27Mn< z1IKx#AWNi>VBe;srnW^Fh0?S`<)ZtQGJkwrnh z!vUlHbDL|+M}@@o>vMKRqtpu=@rG4%4b}Ll$MCCVnetLziugv3IwP-mnwklqWFk~;lDC?d%%XJyg@H%dp06}(EYFMac5ratcyKn8JUI|X8me0R6vCs2;$4-EKFj{hg~oTcS;jH@6c z5%AP337zO@L_{`O#|FStLhHIPb0#x>lELLh`4akcCOqempI;(|fZXrw)=V<@t@PuU z_n_jD7ZJT@jux4L65szC)zfnT;BO;5}De{~Z`0Is1ipW4WH$i_h z;fL^F?>)By(#yh-FkF=|oSgsufQS+Jz_81CgZy7TAsfF2B1D?@A(?-F(DMrTAi*Yu zUE=qc{&WHKs3GK4qapNtb7Mop(lW(plbqlydX=B}?_V1ePHXQ&ik$;$K?j?B!FXur z7Qtl|&xIrJkLbqNH`VG$HDSrGovit;udkxL6>yPLH%(Y_ds4!WtP0QEjs zPSTj+DuvwVaPXCKLI~E<%gVk2?#$0Fgx$e;GXB7+n@!%?inY_&cju9h%JYSI)Ng=7#*9IwANxOC|h-0wMP#O7Y(nIx#YD zrRf@rHc}D@q`DGbGht_EO*Y=>*Utv*{Sj5}e~nNEJio+h&PN(31eVVSD_1a_^vt!V zzBPJI-x^bZJ=N@0J5UTLmQ^Z2{B$x6Pu!0Tr2^cBy~Ak1Xa7EHx$aDCqyOR-YE^ zTQs2B9O3`ReEzwR;eeHqFZUMde}5S{-!d^VJmbID5+4ydcwK&v9~W|up*I15ytpLb zwwRfdWK8fjcyf{xg^B3srfKi5&^>fzxo(~``l{3~`hS}^u&h^}sz#QW6-I!j?tVxG zuQ9|+LJNO?e}MjFLb+RH@po5^c`?g>^}bYfedv!JW&Z#>O`*E(i$;TUz^ZXDcL0kj&U)cyNXowC=4>Cc zH^-`lGB36}wi#pSO3!Te0K?Y?7?cEeq~g~IiEsH$$YF#J+^RiWyP?`2g9nUz0KO^GXQ zBHlP;jOmuq0W6wN66O^S!@%Lif>DqrO0`hJPqIHYH$lr6960N4s?Fi{iyW78S7ub=T?@&n{%Q>6*{VRp#(`bCxZB^#{{&X&2*4Iyl6-KS(Z> z@rdG?B-h)2SIqsUKg@mKLdu>|UJh|l>iRJ8)|r)M+>XcT`(uM5k0z^C^`{iK4jz{o z<b`=uM%oTNSMKU)R1h6P{v2QDs6YwIN$Sdpx84(< z%9d2sycqg$S9|*BAj{Uv0opOAQl+*t z(#38HN>%CiH3;MFbvZxS)buFQY?#7d0@n>QrDFXMV18J8u6l8wy0}+VVKFk2iTaWN z(CgldUz4d^ENKw(@bD%KH(0r2Z=Mt?ZwP16uGCAhuwlJArtsj^WU(sigx~Dm6U7|w zCh#m@I@`|YbiX;T(ElNNy**Rf^Z~dJQoL5@Y(Sk(x~6;Kg*h-E$lOUL zz}iR~gbgX#`ItWChtnVE_h*tV1ie}XA%?%+Tma6fj%=$Hs2WSx9ulgZj`0Pnk=_u5AHWAgs%E~R|b2l;aVFIsH3;+ zz%FLt-w=Plt6d{JTw=p9TM7Kr017(yJ?7^HF%Fl6R?HTv2YrRk5m@h_;ab!wo$~pbs zjb^=GKp-+5y_IG=$m)rOUvyz)&>rs?z#g6nZ@EQyJPmWrz)yXNK!5|wv1eNh{UsQQ zyVv6pnvS80;j@hIg5upN-GlMltu%fr)*{_a2t0_d0)eF7?*Ve*&oqZLf2KH7I#CDFQm5f-^u;y2?eSlw49Z6@C&2B1zj^W5MS}Q z)VeCq<^I?~c#x`0wV=g9>9bRM^!9iK*S)FPRis_fcewkRjd8T#QQ?`GhlZ-h5){^mZ-Ogy{C&T`jL)vhuX{K~~(sRRx z>Pmxdhuiy74-ECgUy8Xu**CTKSlJgBzKMnt+H8}RoSjb2pFOlZzWX=>g{f;=pP;%6 zvCu)fbCIU!{nEf~Io0vjZNg~zYwANI0yax~O&=D!OXGGIb5?lWcQ6je{hbzCdu=#^ z=0}~mmX--e+yu63_h#n6lMq=rJ*|fXy6c(xHq{!`rWHZ)HC^MQZp4yz{)xlQJXi0g zr86xhTWs)KCYsVUC)sCfJuD0@Vm1LPO*xWJ&p`_B!bak5^M0J!4B0ntjfxNg);1PP zH8aK(PttM=cT&^2@IKOAZ^3|@%sT{p{`G&b^b4uVli_ zEqmbVPcudI71HH$+W^joipDMY7@uK#-md7`S+URsD2fPNfjE_N+W?TJDy&T|buZHw zaaP8vYhH6*nQFmQRCq%^AWaiW;s13(^K@LlJuU#nuuST z??)3Y$WRDm1zq=OK2}CD9wksq!!oS4) z(3xDbV7@X)h)UKZTY;N=wh>X-;^Lkq{KJ;jQdrEC9YuqK>!C+5GR-&Ej5@Ss@w(x2 zoewL5bk)9SvE+lx^r3rUtTZm`Po2%QEc!R?*E|PViiP_e(V}y70B3*J_T!WPvrV0L z91^W`SfcAlp7w31d*J);Q#FG2*>(~Jdh@f!q2wr|EVodrK9BJEW{QLdZ?C4^n=DL! zYSOZp#>uiCs1>xD1vvJqRUjsV&XXNq+x+38dM7jthswpK8@z(gx}=A^PItIZgw%q zDPSWVPIlJ}z!cL>RILEd@Mir6y^o}23j<#t3Zy-M6oDSwbn(rl3R>v?Xp<|_?rgE9VMrJN>H=<)!Q?!?ia&bD2Sdj{~R~Hlt(#xN3uDg>r5o z)J|I5{Xv$)s2l;8zRLyAq4rSYwPmf@Ea|{f%S(q~q5R?3qSrH~#3w&eA2~)TBhvyFi{zJp;vE?-kEvAqAd^F9v8C7G z7C+T(eF>QaXEoWy6tKB3+O_0f9bn962X|wF|dIH^uLjJ5h_oWSY2Ig zb>bk{rpYuOldB&2i|_rsyH;UqHSon4tDB;pylN?KlA%NLVBS#$mSCgKCK{}lI}EQ0 zuSVDqiTzbjS6uHtZ8hNXwp1VD--m^fPOA(*d&# zMjW#q$c?_ONG%KBk_8FN?_!4L(m(t}ed8Ty)BSBrRq?%Wv5?r4uSE)*H>a1Ui!qd% zBpx{Q2Q?Uh@jP~%$?k{vHL4|Z`d?eGK`#l=$k~RQ;N-W{Zx4d7HPf1fN3dRw@9NZ98FB=m{XB~EgK@fYF{^N6 zF^P}7%lipM1tfT1{fs6kTVR-ydM2-ko)Srs#ovN-@R29<;a=t zbGrNNz4lsbTdsy)9#q_pZigL`-dNCKvn~|!B&p$7cdy|_-HYADY#s3lukMG9SG4a{ zDfx$j*yyvlYr6#4ExkI=GKtoi^YkzZI<)lo|4Za538|J^67r>oA2+Af9~;Cg^O+~T zI;9E2P>9@kmOLKkS^s^oN)b|Lz7nGzNJE;Omv32;9 z*GEf-Uakimbsr|I?UN{@ID~grTwe#?gz)js59%}xy+c00cvg`-sXD1i^5yqv0t?w&g_95I1Ck~(P= zef*Wq1Ac`0M)$j|!(~-$G5ghzdv=uFfjdL_SRd5tm)`4@JXeA9!5~O<%rX?>=g=rC z9*l^VBMmbT)U!4D3C+Czkutj2Q$DRy#L0=Lm_DAPHC@5e+t@w({%YNxB1TGE zEJ9Yq{!QG^`2GTeo%|iaYWR*L-jlc2Z)~7-AKHD)DwPIc-AV~(r#+s%%L~O7vr7A$ z+_9BrdWY|sk1452^oO$H+>P@gKh}u!BR_F=y5uR2J&UAhEX=j8tJ(eG-)ZM3|H6o= zdad2@PL=0op+o_BV7r_{a{4hCeEoS6nki!6k!rpI^|qaRM@x(E-DiCAE( z=YwF@7xFULuOv4=joNC;;dW`TAE3rd{vDL|s=Um<9w?ZH-dlkqkw=_+ zyFU0fc6tz~N#4tEvH1{8m$zFDB_hcK{x0{&4WFvZibop$F>~12pgPX+lDF4hU8HE- zzy&#WI;FYEQ{4z=anWQ4*uY1L^C4Z?iIVE;w>c2L|-{(>qnI^Xnc_}#P z(td3DAt%f|d>?x;v9gu|d5xH6y5=;wcCsUxe#C->jouI}9)t8=Ic=t?s`GF!uqBz# zuKG%}?ZRXCe!jfLwd^GKVjPCrt#;-ZpLj!?&C!VYpJVJ7`aI->Kl=3!p=)n=tW|ft zzH&jl^|N%w@!WaC8jxm{GInqpr~6QoI*ya}9~y4W1(p>UL$vzuCQ#fF)2HTlUVR?R zoo`pD$(l_ia_9};H~P%w_*Mwh;(H-Tvmm;knF&!LTvfSYw=fxafz$45yF#3RcEJSn zcrp?Ys9p6%xhtQ^<8fpgg?&j_UZ!$w*F8!MbzYgDk`-As$kINb=%Do8q(yR&BJOwU_@GGS7BKc&=S>GH;s?E&2tU8j4s@|42{J^zQ*I0(lAce@Bv`XdzK+xmbotXZzBbXcYAsH+Q|>v!TA?_b3Qud7d-l}G5eg)Z~wyVL$CeD zN#! zsNpQ5KY-zd{=$@#zY->z{nxLAhSm&LIBE)L!M?D5zVqYV@7)td^#1}|tEs7JZN!fc zrZgLBxX?Mv%ODyq{DodO5@kM612PR|XXETEJ2u&OTk&zXf{yxZO!oh#*8M)qD_PZW z+;iKh-mj?aMLxqF-0V-CVI;?)_1(F*)AFdr#j@;tf00j5orz}Y?%%Pof_Dsm^;M7q z)r&TlGtk4`EnoTGo#aw%h03oJ-bd|1W@n#h8%_d}tzZrCbA(#aj6ZHp-J|DXife5; zu20)6Fr#X(OHkMlPVoI&5v`O8D*O?RY6a`2DCUSQ9hY04#U- zRU(BmNBVp}eCO+Pb=+q@+-%({U}~=c4b53&dq!I1Z-jvV^b#Vy_%F?hPKu~h&_*|f zB7w zNk(yN;mHAX|G<^#imr;=|MLaEe|ka>2C(SF&3FCe0Cb|kz0q(HXCV34ZTU6oMIa2j z71w#c`PIMg82AX_+~8#Sp+NBc?jHPi{32AJ~k@o_^Boq#C7(mKK#qUgh@k3g`$IdExix{dJsk{qvF%>U;@ z6upg8E?m6HaW~{?dv!-F50C6*5~y&ePx|&6`cX?w-kM{%i#1uFtQU4G295^6JSE5R z8w*^DfL(4$@7cWb;_^ckrk$EuVXFg(jU zRQg;^tX9a&i4EbLI7Yh_=j%D#?Q-Dq^@oj`pP;7&xsPAKzR@Jzzl&!;eF!L)O0)yO z5~nI-aRjGO&_UKh^B{Gw!5U85@Y^Sj`j zcZ0|FGvnk#$2mEHg_vExBM9tZwx!RbgL7yBvh@+jQ|gewI1cp5re6WAOogkes|8Wx zRq&m~zGjc@1zQ1^unWf!h~EClS9gRd?78`DtDV9>qkaJqMckr?#n@^k_f7MInr#Yiv%VdJX@ zYF4j7xB9V2bu=q0Yw-#KjsX3dZNLmeb{;7w6n(tG-r%vbG^;CMjsUJ&`wuvl9F%p5 zLYX6M3RSDF4Z9vXm(o=5jrQYH(~K%xyV{P~AV@Dctuq|`c_veU!ekQ73(!?%+bZEj z!v*0}m$+?^1-?7ZV(;J+G4rJ7X^B62^_|y2fP{VKY|FUgQD&F$#1mkj^iKKNyjqO#W8; zf{4J3@yL^*fnx8u#f4_XkMK2Z;52~NTeMpppb+Ef)=jZ}34Gpx3+_?;)zY_5)b5sE=?+7e z=9|1ZFRx~WKg+q;uL?~R6FXl@(ftf?jCNnJUV2+~uwt{+&$tU3t4jmkUG;$Y^R|eN zGUHYiksH(9NfOX!63yumcodGe`5D<(rhymsrq4yzlZO47ArlIDg4ZADE$k)j4Csi}y}w>C}Ny_X{g=0150*uC|{hr68f|G!tD)KHXs!^KolU{qta}kr$}9x6zgf4}{m(5j$1ONj9F#mV3~{&d|!DXM86P zQPwklquWD8DwS+1JZ~P0cvvPde8(qpD%Mv~aSy}k-CFJ^arrhWzgrbfinY2Ic;RxB z#XD=YZ;!nuMRT$|eL|ZY2*mJ3z8&{Q5fcV8yxBR5%!XKoB*ktoTx+sYV*a?FD#k0( zeT#*t{{2GYhln=^F&eTL?wvFKw7bgs@htVx#XVV8-iD1gI}IGrL3nNtVvy^&rR+Jn zqf%dEZo*huX<$5=PM|GfnYEZLZ`jh~+qvI-lfUx{z#+JaoD$4Le^9!g1WZ+36ewW~4{-V3~EUw>}iZzQB^GJ;`28CfL7kvHF1 zS9T4Nn+z>WSz5WiGxmAl-zPkHdt3oYVkX0$(doNivg|dyWPM^Z`aRZa;6Gexm0XEH zwGpS>tE?o=^p`RUJr7e;@%MTBRG;)y!^_|v6yU1$ARd|O*i8{+35qel+T8rX<8+sB z_mQS{Wca614iAmjeT{z=+J6UQ!B>0&NCi_L7e>hSkBjLuKjKZ*5!hZsA`A2r21&R~ z3JUK6czfCVO5Rl+(*FM2w|ltdxfD&*RZwqm{wrB762Hkl|3r`=L}jOm*?(=WceX}f z>?z0__JE1{4;GrT*at3^1PL2hd=5M!w6QsH)rKHy2SOTYMwRvB<{1%=ZPDxdZc+=!W zU{}<=4PJ4S>MS)4YIyEUmpC0}2wYb+5L4g%DZ}Y0f8i4U1kI21=!|p)?+QFKERx55 zi)Fkzn^R9aQ~+7)3XRApI`_)9#H=HR%)MBWfPZq?0vuIRGu5T;-$cn#{a{`3(|{@YEQ~_+b`Rp#72Ez- zoC3~EGrB&R)f=Z@H(i%KokBv*zyE+W2`y=~W$gLKiA$${uF`46RQ7sDfnaq@w`a(E zDQcG{*HZIO2FwU8p5eTo#MfJkUW@UB>DLLP7=xAd^z;(swSGgU|LpV&fd85!c~vX) z-k+x!SXGTU5j@^c=Kp+eD4so2K6JXw#o zI{ysHqfoVTL9kpE^tm$wOa~mb3jBu&y0g;x2>-+!yRFZ7WRB3BVQ}*Jx#`EauY|MFZAs09CxNc2<5&pQ@w zJ)9l^fHNrIRsrZQSDnoFk(YE&%&ng;5r3?5UX5@skt;W*teBH~y&GWGA_3o4laot? zDyVM!`CLU&m)7^i|F>c+xOz_XBa6i!%pK~J3 z_Ea7ZGgSdT6~4FS&@#I^2lbnB{6kbH7L6zo;R21?UUKx{(k(y&^zi=H7Xsd-E~Hk=46g;4n8sh-HK~@f!g`jx>DQw zgWkwm^Oe!kVv*y;t}@`iqBCfG`Ooo+UP{c73^s3^54g#xN91>N_Xl&qFvyT|lam|f zU4Re42&j3OQuCMCJzljQ)j8WKh?0xtch24cIZ)}f_YQw<);t41uLu;BB;*)#>gyPA z;6pESt}NvglqtmVkL1BI6T;|`F5qS2V~JwN`+Iu7GgBX@>i`OQY_``*pHS8rCxDiP?1p<^!<0Rg*|) zZ@Rp|co}#FSK8=N7T45XyH>K5#{>?TWm50*Z>5z{vqPdJ!nKu(;ZIQIDE z5B-W`-q^Zhc~9VrU=0+q>^}JCs8=gdL9q6hU(5n&A6oR@C4a{|5=5L-<%DF{M51 zz6Wx49)ZJ!q}@(|wuU9lRs#{+whu8BIAaX;NhLc3Po zMg!e0{F2$!#hkxiq7O9O>}^3J7`MKzr}S~gbw{)EAts;;MLC-hfaAyQ$4#gOTmo2P z9~!<|G+XGtwL33@<>C;rPI=it?Rr%2;K+=n0_G1(K_h{#78!9aF*^%AcZvcl3-ka= z@L;lcVzp*(E#x33vx}XSinkjsRWbF0ITxZfbb&8R53~j@WP@#34%svvl^jW^@a;eW zEM$27w`l2~+r&liut|dWVOC6y*MUQV`gVt-t!C3uyO$K*wE(dkNG!1&U}9z(UCF3JkFV_~O1x1YF76Vx zLLPLwjuB%M#y4+c`!O=E#p5-ensv7Fb-?#-`AN5!JJJJ{=d#sNSC%Flc_@$Ti<7Y5 z*qmdNPw9G&`r6rwjV4It;0-w9a3`FV<=S24Q}=}#CzH1kNX%gPPF3x9pIWPz3Kgt6 zCBvnOUb zb9!f0aQxQpLZREn6(q%E6Q$jDj`P~YcqtQak78Gh`Uq4!?|gC}uvU0fdP+&9TO2Tq zYk(sE0_?C;VAUz_6wGXEp3SKZYX!kMR>G;g&EUg*8Rc= zg&9PXcBBJo)Qw;)Pgua~s8IIDoTc2W;Qn4Q#%h>q9==AN4)t}kV(E)+EmE139897_ zdiJWcMD{afGlX2%jN$^1Yp60b8AH3 z$zk44O!OU8)+u=rf}PRaJQE(b6b4D)LNPuxm77&{9M|)!C;T>i>W);v7ik*za-EOb z6k}i0zD$5O3$zU{Q0N6vNlKj$#-RfcJ8+C+RO`fZ2%OzBS=Sz)ei_`lzY)&Ly!{%2 zC(%Ujya=ofeDF(uyd!yGP8leFIbp6NcHYc_(s@hi(%sbV%3EFqM^2YdMebIKv8RNc z!5fvnv7p=rp6IQwmurFo0bTCh-zQIIE2HlCVrQ2P#`vt#S>@BIw$^wn%{{aOvAvyU`2Xba6!6F++(@$M?D?R zJjeB0!peC|Dk_Wcb$A`MN3r8-| z_i_VsYrDD7%0w>#(pi~*gEp|epsNv8P`5gN#QEFHFhZHv_O!Q&#v2djy}QRVgFeR3R#~uQ6B@|H za(4hbm-$GMgPA0D(nr$+n#}mgYB?W-p&rdMNo-3L_M;Z6S5|p)t8EZ2M6487h|g!i zRWoyZKU!@}eK#y_nLkIacO#nQ>U_Lsegey=`Zd$EWlpkYy@Up1v#kVqX!XC7FrP9y zrMy`Q^&z5HB!MEHV`5wr4?`uy#00!my@6Nr!I0+L(-hv$eFdPfuJL%#6LT;RUY+2L zwK7zPDV?3Awsdp&`DPxWuBmSV0xZRqIHTe9HSdCp1{bOM`(2B>1F^oO!q;#+ z9mc@OxY0-G^_UdH3%b|sy?uvTK|!#UP%Ii5H1Yr=>t-{jZI)mHbb1upxe-JOhyAk{ zv?b5O^d`M`isa=+Q4bBhjLSY+v`788PHI=fCBh-1el?4KuJT6;AP_dwdh6-u6jA-L zbP`3K*2TWlgOwBJw(yaM>%c_s0R_Qkk2F?y+8*>CSOFF+vg~cnDPC=MFe}LM5*PQg zuctiMle}Yf&dkiu$G*BOgDA5pUf|(1k2k2u;xTyrvPr#jwW17Gl?8ze*ed-CMD`!U|f856ll zsSbLs<2wV~nhzf@V#lmZ`z^)u@EUR+?^t$%UJzNM+*wf}AB^&Is6Z%%Q+igM7G^7Q z6n^osBaX8Rwp*MqRC=@R-w;(I@rC_KiGjp0o6O<7%1j(hdNIpFNxY`!IT8bf9lf=K zq7b|L(}nuC8dd?);f|iBUE>JsN$dwmIIz$RM1SUUTyac5duegaIRf97kTvY#5Hw_Q z;k`3z5JAl2)jS9g4c~K1F2IeX(jC)4UaMs@cHV{-D(8XM99g?d$}ZB8^B6=$Ry55TITkV-}>b^9H2{A4SSuxtz-A=InW z0yYPmWb8ciSq#&_>{!q0gCKS^l7sw)`IBA*U%!XpV((JHkQxlcqUl6xdMmnodQLs} zVB{1T;sD)NNyZ}~9`T04pMGZ_D(PBYW}y^x3npE@My^R(+h0Px^~YnfIGY~l9wCI@ zR+SHPzdAFzwf;?a7P=WKsjfdgPIQh*)%bS1c{ja2D@9|(XrPR2+j1b!b0kT~41(b3Gvxvtg-TqhI)6*d;@_bgZkkV+!89$L`T1^~9Dq(F2;>Hxg&9tyucAU{H#Z$@ zzHgeOE2^NbO}3YGZi#1|xNhhr24;b0%t$EDdoJy?w6h#V-z6j^-Q;`YC;tBl#=Rj>XQ}Kjsglq1`nZt74parM{icQe|!g z-ZQs)`}3q-o4g1ZyiQ<2sdA!5{0s4%CDn@BO*RZEW87+k_ZgP}7{#*p^|TdaxE|-M ziD#1L(jE9P#?X$(;)*WEpZAbMS+t?z1S1ZQnfW7N|22Ge03to--9JgoICUlqrz(|^|0B%#^@Tn+z$DqJezArBTo-CM z?P}V6_y0nm0br6hNNP{s$d{r_0FX*m39J6&Lb$J?lLC{xh!6Si2jO7EDp^l)O2z;4 zSpHc8|35z#2i0h8-7XX!E$>k6(JUMK+i;0{m_BU8#O64dLFD9OWn}`wPzFrfgSvK5 z7+CWDDC`jxc!T}6C1cos9+MITtRMB~`ubmgW~LlA@9VqIs!L(y72`L}he-9pB_v3Nj+M^QWxS$9O% z*49;Q(iSn20$Rfqvv~E?KBzi!!0x1xLy7>?K!{~C;VQjCNtP<^5{JVeW?9LD&y8R) zdm_xPCV`4QE}UkaB~QcdM>h>GjOOJ)fhD0MjPgz_Lml`_#Que=fDF=n{ehM_r)m4T zLP+=te(5Fi@H5&K?gwO9tlIwzok`7g!ijO`st?k`KYbc*R8`E=D1swl2;teLkM9%!u2o_d5AEy%7@O-TD3{y$ z?Jbejd`PIp)_RW=cpsyp4rmV+r1iU}a$pl6s#UE5N!;TI=4TrrvTQrZt*xyU$lmyx z@2L>7?EApv)ttu*tsCB~#kCe~mQV_;V51}Cb2#^A5QAxJOBQpxteA^qPcQD(y51|F0qZ*1;dHI(udUbOr1ALKV@i-T3ZXTd;XAN z(9-S>N(9)d!gSg?a|{zQ;&z4WI&ot0pMKb@BfEh5^`6QX@gBgeLPc!nIBhEzH3#dk zFIx_Kt~Qrz0Q)35;PoeS8@3^aUn(_HYoj|m_kdyhCn>}-QqSS3lgl4~0XT1eu@6^Y zf95YNN_%D7IbbQeSSX!SNm))g20HUyg&D}#_1}}=8H1olHTA80p1K^O6^etP+jr74 zj%C6!7gq%}! z9VZ)UzDIlb!kAw!fQs)25M0mHb;ch{rAoej#UxGR{3$`iaZZ-o##R}^wpi1w z;{(f3#}*f);{Fv;-ucgtx7(iI*ZVpps|m3IZnysJgZt-PkF%IAP1?49+rNt212{v_ zKG<}#67OPa*b#-L&^joaJm|e5jv5DEr@Np;d^o%Gk==dMSR_w_aII!9J^}0+rMq-L z&B`GOwNrhDy{pyJA6rU}K3)5AFvnACn3fi9ByA3H1^5}aH%1p$p~Gb!@XoT88Y@Yz zZw@$3d1aZNa9h{}s0`d`PP|Eh{TYiaAB1gA)1v7fml8++mJa;=GVZp-ap7K!m_$k| zNX=ZRiA^!Zf+EF68;QX3Llmfq8`tb#2=oU)(fCyn1nEq<2ZJ=W6=x{k_u|>owFNf?6~L%sx$TOkrl!8g zw3|Iu9~qdM2CY@1cRozJ4lAix;}$RGMkx zTZKK;R8^WMg6uyx_PRi<;U3^=lLd3}GV+7&a%$dNPFI#KWBE7K1|lBNzyUB(`{x4* zJc_?>G$%Z>tKRS^?d$t?4&PG7_dLm_|09FPUfp6u{guh-{l#V`wLpfOXAy3>HQyPH zYLY7-?xN+gEU_8>k~GR6)03yGDIx+p09Bhle43JV)kyCjH9Ff;lw6fX>Wu$URF=@#dNN5i^1&cB6Ejhpn%bC;nIgXu@28w1jVK+0ePcuSXNbf- zT<@+wcduXm&c)mtaXq3uN-4b`sl&(bCr4WFS6{vjt35+aO~kCr&!St#0<#Z9LSXKu z#?j}ay>>^;ZX>@v21e3(iHVzJNrvmqUzR~P7Mf=c*M>$PSZM0Zes=7t0|ARU958Lp-- z;Q!L9EgGSm)y4e$Y*5{y8zB7Yf%&-qvyg)>^e-my{CY;p|aT3Z{A(PTXH3;0-y(GO8F&|_PMQCBqqOo z4xnulCFVU1HV|cgNn_rSU1>j#vo4iKGAJISrtPosGdWk3fkDgs75!%!@yjaw119U4 zXzPHpcB=PjuQDB#c^{)8w(3*91+mYcRqxEj3cm+_F$J5(kp>P~Aq1DoC~d2Is&{q; z9z2jpwh;T)yiokgz|u72X;?-Ss7yEC9eFM!I%D&*1HW%OL0kNf*<5-lI&kY!2D!d7 zQ)FArXIIQY$g<7YtBiOL4hv<_x-5#d2MfNp~pwNo_= z);B>5#0)pT3LCihj*DYXoQf(ns2AbKfa2%SlbPVBkKJ0&L*<%j4p0z%hwlaZZQn>K zFVJlgcK1hmmt%v{&AOgYy#o!(Zg!AdE^DTNKH^770vhl5DhLzbgjIA2pEABH)f6@d zI##l84hG+NvDLv7t7}{F9ZK`O%M2(m?YG{+?E~XhQhei{K0eKdoyQk>G37hRRn@Wr z_a2Dz|JcVuDd1uq6nPHuzbE+j!%QT+)Y6u8{X@>A&}EH01G1}dI)m7w0hbB3@=0+x z>H~BB!_8L&fU91mpV)*8+!xra0X?lC8W`fa6{B;bnPWziNUz{;lRuKrICv9l_rXK& z?A|@yq5k+depil2Ew;1gj6P*1)g`W!`7jq$t?G~~ag^($HlIiFc*kGpbi=jKV*lI@ z)i~ASVuOfQ)OU$yMpYq?<9i^(*962((k%fg+n)W-wZ|&ov|ymsX@pQeAwMa0HmL|P za^~d9RDUaK;32sG6VLLE_Xs0J8>jOtxNYEBx8>*4;;;45Lj}5au>EheQQ%DzmAicq zB8{;GsA~c{!j~3fP&yj>h7Q_K!*-&%edFVj|tQdyI+=&C$xt z6y<5}S;qakz2W07IqplX^fseL^UGo8W&XN$H3Nd6@Cmyrdt#ei%6xU!l58+5wtPNP z`HgHbv;H?{B6^Cz!@OvRImu1AP96cMgC0-VMD-#ru^+dBIpnz$KQ?aV`p& zN4*I%nJu1z;5d!n!-HP{%G-A8lobCPCJjlE*u4h=dPaxaH|N%WN-R<-=$stz6Y)fg z;yF{yn2O@@6W+(M{FR|IEt{^hvr7J(g~svX&wVkyT+XRDl;4SznWttm&IFHriET*Z zc@6tqXB-Msq(7Lgo)dt1c=F1b24^=NG9`B`Z(9XQ~evP8=ZMI>B{d44d#3zWAJwWV!=KJdy z|NGbI=E2wcZ9S0 za9jPp6lqt-hIg0K9WxZtXUyM^6nh5od2E|Y9qcX*^f>{_s`Xeoo zAdBDtrJ$TMT*=@V6ZQe({jHHM0~=6=f6nQ$d}9v{>^CZx$v;g~fp#FzW8mhtpdmzP zNou|C`RFz_Y`{pRNzO>Ek#uiKvz6ICO}1GWXq!0LU)c4*N~3_!U?5o!ck{!g5)En& zP21)IfnoN+^Au*7gj8EYz{l)c_&X?Mm!9+Y@ZF@NsOe_y-7ylXVLRZt%VxSYHzSg~ z@len0=bLm%|Ldlp7-$M7d+1;oNWoP^I{U2yG(%|*y(jCa{5Wl%&$6F^)1m+U+-#%) zH!W;iIW1DrN8ML6*-C&MnR6QNFc!3th{n-^uaT2$5}zW=m5fpaQ)&m~f6Fy#+4kum z5rg_M=Cv0W8nX93t_ZZ-!O)1;=jba9uF!lXAuxVIN51DznO`^IwA|k_umEgkc6p%C zx1~9szg=P9-_8(OF}N`%gk4P~yXiT1qc2lhN?&tiA0rfRwzA|B}L7`^sm!jC4TCO;GIZj%7r)n2^?jB`b}tFl9QzS>(v zG3l6_7_g~dJ3Wwn_e@1O#A#u;egHG!>20yQ+}h#)!Fno-!FN8vv;H&SZJ74XFplJE zC~U<%axdC($uyc{(+ci$XrTgui>UCW7TuqQubrpEq3iX2bAZS3zHA3!S7%eZg~cSG zlNN{I1<^d-Feiw-79#`0i{~GCXt1UfHQ0rs`m>BkXoWwQI`not zaprfJc~a?T!U}!R)@3rGji=OlbCLfd1Vxr7&hKv7^72QQ3pJAm2~`5WkJG5Yj$WUv zwtoJd!d{5vS#RZ)8EjY|CRsYWH-3PFRwbofczbYMF|M~xXg70lw8DSHcHGOC+j8cKBZzgQ%2q~W zQtnB2MC9qVZ?RQB8_Z+%mNU(6=CJ=eXZ(Sp4j#_*Sn!TMXVH z+14RtK97*+_KSffKyW)qz#i0Ump@B#Ka4her5>1{;64~_x^0mWtqFm41PE?C?#qV? z3~j{oIi|aV{_wf;jl7P4DH7YzAg(!>`ZTP)>MFfd&=Am8$anBfcd-k3?mVQ}OSy58 z(^QV<>iz1=(67s*Y5qB}6Es7Nxkey?S>DvDc%J6InUx_2yb9Y*5-R(tAr7gHECxlx zf(J9ICj7=81eL(7SbvOI$l7k~OOISM|3G`Z5Mp*7+b3+lgeXYJNjUp)cF=k2U>@=i zG+WteZQrZi(?@(nbSwv%#rAdaev5z@(|~BTc-W)-k@ax5p8I#Qbfe~v3g)3XDEfqU zF1DI&mF?=}n{PB4R)BexLa}*|cr)LAcU9zID)er5*Wp2BP?;8blTk+ldL zH8;VG{gSGI8}b92qU!JSV~(Bd$BoS%>kB_!7K>)*M6l7%#)sh2ZIuUeu>oTn-a9#v zXn=J|!-EQQJ8w9?C7U(i>dR2%sfCv2TRF^RhDc3^IZq_CM;qO*-jLeX$}?`@4!5cT z<=Z(x?Rpf)@8U4q%5|_okFiC;ayw8X9)M9Yaq%Yq@PKk0CU3Xu5SYf8Yv@F*AWC^4 z`%@jOF`D-w*h6mtpJgm&ZO;@0jSrCP-m|ldeV*~SR^Judp|Wye>GISfLgncm9f#Gg zWSx~1_!sXw9xkR(>p};eF`bAt<42FOVgn^ocGau0Rf{e9?sFO)Ufjaq)0RKy%0Gx; z^KNwjrY?2Zpq}i{?4|)X9h(;Ox7LUJuoUC4jeF#=h7x`;LlA7x!TLAS@m;kwcQ8KA z=`JC9oya^ySq!DdHJPxRU(2#{1M^&ZYdQn+NL(s^x zIn;#beOO$vw8T92koI^YSEqCo=6%2M=;MCLM*f|Fy~mzxL&th`l0PJjy6ENOukF07 z+8He1C9MU0NXBxt3UAL{bM8VR3JRj1t(~i_QMJj53RuR+qBldSZ@U)N2&*ShyDVeu zywL)YCDMDVtF?$USu@u-Mp$U)j*+JbNsJrBc$#W^b-Z|+$Fy!`xn^e7H!sf$qv*ZM z895fY2XIt@IUcciJRYQzYBaJzt!>R%h>oplS*0)8T~;;6h1FAJ#H>FZXdIaLU?HtF zs{+V_vKnl^{d_7??f7Hc%t4}66GU?Z2Jfwbi)`#)opV6UffwG3c`n0-vz)H0f{x$G zB4Z6|Jou8#*CwEI+UScR=KB)ad+n!>(XqwNl7g+Kx~=OXo3L>iA&DHj&{ecLPbf9ds+BQXN@TsB z*-^%+IrQ1m-RtLEER@4F7v?2BOc!^BTJ0l$#}z8Tkd9gSa(zIZ)CHQy(>j}Q;I!>l zcl%bV>zaXS0`!uKw3c|QnKl3SX@b$6A&8j*|H0k9RQu_LgT2*p#Ml7@Ycf;wQyyiR zu`wS2ry~4JP>7skJuj1UNc})~nPyDgJ8*tm;)NH@Pm|#HqZX(^n{=?5r0kh&%Sh`y zf;S^Fz3N1&m-{k;R31?=)uB24oYeSEs^10}B#j>)<08EEoqTzEjv0a}>PSiIYA_F|-c+CGG~cmN61ORU6vQKPt?o3;pXD5NftgTvvnk6Y z3~X#iFe23QS8@t4xkkl~Lki@vlG7=6RV&Q3=J2Db$lA%NH&0HfCUQH!ew42@a3geN;&0PBp=IDkyZvk zNn{?XE=l5i1xl23+S1Gpz(_9;ku3UC+-V+NR%7Mw$$V-rk*UIM5VksH<`%Y<8(YGt z*KNi_vi!&%w{xkZ6Ne<(M!Bbac5Lufo;!uq&|fT)*sV48rhFA}RJxJI2JO)gI;0MH znMV?~N_qIeeam86UpnKn$A^_n{h8IkO4l6XJ9{Hm@*s%RyY6ota0?0hjRtC?*>*4|uzMn=k7H!JU1ULZorOkZ2z593YU3d^i=oPU6hGq=7*`V1Jj2@|>2 z^>aNO#&o`qyD^xj3XY3PjMLi2Tw9pZ2`+pWCBgrL)~B!^zVz?IC!vzvp{Vs;KYE|R34t`i54{4M^WCXao$K^BCv zz^;@Q`O67RoDs5Rv7;BdH%>n89dR6T(}=depiJaZ-QhsNv;p%X6}rMoc%J5B!~xQUV+D+-@PT*eAgi;Xh^|h;dl*O+vl`2)*2w>nCp(HW!<`7;8n*~uEx*i zu|Ql=O=LW7Z6;1?w!vaBF?FZlMveP1XtIu?ISgO5MDX>lCxMYR39f%lm^RT|<&HCZ z;TFoj>FTwUGxr#E;Ss{%&L+b`A6!w&TD78#REvGi74)ai@7M`G0#_M#ZkoN2L{bs) z=8dzBnFqXLjnw;Ht$hUi9nC9zQmPq24<`&DsQueoATgOHbQX>2>0{Ej^t(jk8tl(8v1bYm!%NorAh5>ufY$%cA1$_Vd19YGNitc+Qrgc!76y8jR8#i;qT_BapG6hUGq|je5HK9>G$-bRV%8 z{x!`?reR6jEY3m)Q7);21-ErN-%%fO<>x&?W6P`v@7~NXy~~@xjPpZo@lJR7Zj6<@ zF0+ne0{1vHavE&&V`}%Akh%&7*wHlY$kqh;9*pJuPh_6l>dMk75!)IXW3$h&%AF^? z2z%&Ei1f0n*Bb<^ncB4+RjQa!+k>Qrr)-OqTDkAZ=?{5K7nm_epHVh&9#HSBN`Dl~ zLG=EreqIY5TMG`GJl0_BnO_l-Np=SrP8;!N9$JN|>*C0f{PvK>I!!iul6v=C&nf10 zD`+M+ z3WAPV@tU~4_4N*1Z3Hox$HyR3Z89ykpjEN`7J0+dX_1PV3@C9G&%LEv@L2`)&pDbW zHAKZ-0&!{lH-yVxO_(kjN`r!+XOH!SCl(5SKziCPJB(jYj9jAPm1Wc$IlBel`?JV8 z)`4%Uw*^wg(-lhATG+IU`rU0Zi?5WC?TS75MpxZYBp$rkPwFf!a94CLddcvIh>{gL zOi_~m!FZ+fKyzl69`@l3&uW?7obl4kLSUqvgf`5=k4g}*HhU^7sgtl%rC~ROlt=BC zD4$;`04cz#QB~Q>nEMjzCvxf%qwgQc%6#DuCvN4(|8!JshU~U;VgrO*vPilFj{~lD zsVStV8(uG{rEveEM&m&j$Kn2=E#Gy~UGue#`;N!#fM&8yzC)wbVBWTTL8BjF$MfV< z*Th!QOdhL+Qs-(#|Kh)YZD~i2^kcz{dvGvhs8SWNBK8_3gMIbG&ND~=STa8@O%I-_D z>Wk%1bP&sbmxkLu;ZHq94E@lVamJNEKosO%?p$%`x6;8g5%7UzbZ=P%yLh9;@wW9( zREsy<*_*(C=r9+Z3iBIvHDBZ3SQ=iaQgs~j^0nk`}#W$^8@R=u^_1{Nm1{xv)$oQx|FKP zFZTmqGY@F%lML@-B`@!szZ2`<1vfVk0Nj0_u^D&S=-072#dA;~J5Rcg&m$EMTL*%; zyS~ru+H-$VNryHnO=Ett-VYXR)aRZH5N^#eM&_>fwn=$j`+LRm=))HH^RYeUa>>{? z=j6D}{{H)E#|6$^0aK_Lm9I7Fr|m6zqH@=gaIPPaw6V7kjyp%GF=I&A*Hz_(ythk6 zLB~UBZQo!ld+9U+oY-vW_r?s!{h4+z)>A)}#u|RJYDoQ%OHe=Bls1l3;md_rrcL5S zu3({k8e8krSrj|vr#*dli}JL!FgE0) zRjfHI`UAV)%28XvwnL|3)vnj9_5<4mS;x{?Tb3iYVK1`c$)$zv z%um1oU^uID$8dwdt>UrophY7_))!0ft1T-6?f61xn<=VsEm~8lN*-{w0Sm;)nf~t zuO*#L9ZwdSnonoXqj{h&fEt zwz~FddUks}aO}exImbce&MTy;>AXZNLC?$RD8cp@^qv>c!-BSOyf=_1a7BRCajm(gXoh5I0?OYyIbJmF`^v(AYAUo=@+xS6T6#$pn~9 zRnm6-KvGDO_Or7*vog8a9x}<*=A~P*VU~kxW6H06lT?c04W=!(ZrpwBNylWb=WHkE z_4?wN=7xBnyvK(yI%s4{v<{Y6d*SGiEd+48O`BYHT#AQks@=`p_{*({kXC z+MBN(bC%9wf5UE;lkQ7nH1*NqrOu5wiOQ&>Uf1(#o%10JZj82NS-YH^d&Fdyk?z;s zc$}w{TPA9nWOWKiwdIB4C0})*348km_b(a-y==*gipQLzx z?E(skZ#rPcMadg(;pKS;BiC?t(d!@sYRVoI!t z*r8LLYPjC$iKdw=qN`GODnAGPM0HLlc;cD~sLv?Yaqe$&#prEO$~3AWqI}i8CCsM$ zXL6NJ)(3RuR?C=5b;V+9+v;Wz)u-xweM7y^p?PV(WE0rTOi$x_?oWwkNJbYGR!$(O ztS`D$R%v%O&X!bFmzk@tDg|QdR$pUl$rp#X1}49rby&-+mk7T*Q&ZAhjJxj-$@qS*tdoOip8l~fTz64lg=50ahcjYG-+`$vtG-XmoHqPil>eED87$E;WJwj+t}%y$qN~m=YD$VcPkrVUvY6)XzU32vIt3eD?ahVKf4#a>>}Cuxssj^hTO4D#}Z zc`+zVZ$0}oK$ZP%rHYW&b#{EH$+WN1(1?@!CW+n7MEqld>k2MwNeYL}G_ZDeuHEW& zNq*Qh(nEPbquBQ^NG9E;K`+kSIJN-r-%N|8EwuDCL@_BNzNQ7-gtbqMsXxX$i&V=t zU=Y5xb7ZYB>-MMp$Vt_eBQE<@PYdn`m3c5=M#Nd0K4Djr-EIha$uNh2E5ahh+rDy4 zqot1kG~(s+CC`F+$1i&(rr9>iWDE04t1;;k>JNPH@l=gCMn)xrU3e?hlDwF96W_(B z1Qfn9p>Z;$p>8tC#jtGHBnr9X+_Q_h+i2uvW)fu-qZkytl>3!HS9Xpa@6AWgv1xt5 znQOW>?KHb!ReI+cX#ib zHS?-u+KJB5qF6J1gR0Dx%J(1PEsL+9Hctd98#eqylH{lvzcCwq$6!mS!*=j2eK}&7 zZ=n|98dH*MJp0v!0^%7=b#7oz@ZSy;WK0WdbTMxgWs4mr67)9mt8?-TQPgwMaF zX3E~3u?`)bH=j3dBJ()1_S|YrIVc+DrRt|%~F#GF(dJHzx)-Gw|KI)cp7aF2sYx=Y^F4+oBerG1bYR~rCqZzkUz<0 zh&r6I=APYUly z^sQ%WyLvjLLc-l;(AT`6)x}J1A9CjT63BuA<(o_{8L`Uw%%#_^>RRkxx>9uFBR@>q z6sK)M*0P(z2{OAVgqf+?f)d^swK_ZN;jGNmLEvArR$!Uw^matWUBV-iZ7uSdc_~DP zg2N}$jKmA#knp)*tpM8T7*554T&{lL_ zJqk?Zf8#D*)N#7kVx3pEk-jp=UPbbQosi{EIn@)xcYzX;`@+BtnajPVgo>w+&n3CD zY^U7p))?G3-){$rQxlSwLPqMMN}Y25yIOc29upO!fim4XBCww0HaBiz4m9)}a-yp! zd)HUpf2`XpfxClPOnH4g;V|-?{)|$`JSdHBCjr!Gr z#i^2!MK1`Sl>alwcO)9J1i5?Nif3nz&N_a(u#hXP&bF}{|L$Dpy2c-wtsFO&PmEP} zVOTE&6{%$MUEE>WtI2}&ksW8^!HB^{hYU2L(+SnZdmD+%E>~6AAvNtml|_x<1Nm?8 zl^N|5pDh$5wx}&rYtPn)OA|f{lbfe5*>!jw#td*j5R6$gu2!(-$7;Bp&zTe1OsnuW z2^cKdU7C(!{EK1(T!fhn56tH4r>DdBE8Z=Yjyu{B>JV9gbO z%Ex@Y9x%moJ*e**;Vov{b7LN^hbi-!+p)cyMkq@O+f$&Ql+mD0!}VPEU{)!}Ge%Mc zDwM{Y+bW6sAZwsu*%x>2mft+ddDgkWmywd-3r{b)h)q~9VY&n7ws%i?p};lbKre-A zh@Q*HCDogwdzbs`edpPUh1u5gpEf;vJKE0~eR}i~lG|0LnwVU{NON}Cc)l?C$|&Kr>SSVji}S&)t_>&6 zKgYMPJZ4yqzRR#vNF-%yVxqo0CC_oczblH&UlN70I!hcegmG0LoPpMnpfVKRuOo7| zN|L3pEwarx8T~<3=;~%8uhn_wEOw@7YsbQ`Zo8(^ zOM=P;ve$#smz^W^^JZ`TCQgy_LYfyAw&;?%ka-;Lz2b;pqY~YLgX>!MX52CJrSz)v za;8wqCQrRtnEMi8(XY4e;lV%d31_K>7_@Q}k+x|!(|{PghL_cHQ?@3F*)@hBnUpUl zskMb)z>nfKC*+3)f!majCl<6Lg+b4#f(9pRq~HkruH=#9k_YcJQK+#Ra_e1{TU`jC zjvEp<-&op*@F3M1Hyd?M8M!nQB#?4!UZpTot%SJ#GWdS$;>3MHuTnK<>qI6m@;y@I zSGJ#QT|mkB(NU49`=xg=u6zHLQ_s%3B$s$SwV`u4^OM^|4S?J<8xl%b+bYZ&CVZ42 z!x|jvX8Ont5*g7kmoYe*9szvS+Am@@aX_Jt_RP~3G1fh3vh*Mm5-?<4`|BVN?D6F* zGsN2{nKLA(eo@oT))32oK6^ccO5fUQoOjNJpTC7^OCKqnbzK4()*L&4j8-JpFnILO zYcpzSJ}wO5rFS@V@O2-mE_BoF5}X6?!ug`>!TL0@OaBNd;}(G9_7`kC|6!VJB&u$@|8 zzs+iabg%u=^V#d~&3dF-x0fD%-}qh~$-}c$7_78^*jHRzlkoJ>LzGU&SxH~~%I$2Q zsK3WTdeY3MELC}CNCf5WC>&yDT)Vo~6%AZu|j^Y^*j8De4<_F2|T8U7P>KipnyJq#{i+XwIqY%+zd z9JZnJ66IEynbXm)uaNMx?Di?|5p3iG2Hv1?LsD;-dW!pGM0WPdgdd;9d|0)-MKW%% zIjYKZDwz8{Gi6!KxjXy*Hiw)sm`*;ML7mG}uv4c_4M{tpQ9BX8xy{!e=Lh&U{GnL%@CYdN-FKmNto_RkJBp!>#tD zCZ16@;8F@l7NJMwopv?`elr)ppa%p??}r9sW%Xy1O0mB>0$C_-RwWG#4d*|TnUQMC zqf}wkR^2+%7-%>y%BoEU?^(R?=jx_S;)-0$aE(_lPdMY7+x1OXdV zTLzAC6N2A8HD&ouiY8{$sB?uck=Y1H--NZ2ky+|dJMPf9D!S#mxrkO%K%31u_l8=c zI=i~vs*~q4)U*DDu-q-Dw>F!fRi%=|kHsqsNBUI+$`WR;ce8>MBh;&p-x-@i?VtVb zuimEto;ua4CgH%(LRdFo%)Dge!Z5v;6vjj()1@+nqp?n(wEj8TJUz8l@e4VYwNLJ@ zSytv!?4#&ty<4uibN%9r2@dF26e!5M=#&ubTX+y}z`fq3wEYMR}pZXjz-_77x!) zRh?js+aSu`MbM;2yh57O=h@pB1@-h>C!(uky6U%s5yFJd%p8Mt9JxGi($jUawNX)I z3N;*MJE3}`-;|k;Z!cxl>|kiBgd1}volMv!^_(*%ajmw(nDm_{NU%auhPn3SYpJ3P zU+K)#bMdXamLKx)pP?rbVsu1DcI^SDvm=3$50SCo*|5IesT=iWG$CD)R^3-_1Z zgc2)@rS%UD+Wl}APdqypF)whI_?lmcDXVLtQov;uJ6(W_+QbXchF$?~Tf$V{H`z+k zROnY7FT#7bg6(LV2@1}Z(yPBP22%{!i3c0O28as$7t=29t;d1udA*rPQC_a*%NsX^ zqvsh;;Mn;4;8?!y1Sx-;x_{>VINJNSP{S zVsw!z_ZP1GQjpLrWJvNA*G_i z5OK*t=mh*9X8M1|_KOC@%*E7k0QX-*l7Or{f$*ZlXV2l^0LHIvtT{Lf>8~&x zH9E`$gv-a%A<`xYNZ_6Bo5p3bg#0=4S~HGW_!$`2&l&oLR7Bmg7v1Yii0 z0PZi*=LOabF&>$2fWbsT{LamTf)E`YJuZpUE>0*AD-l?}b$$nSa`{^ejrAW@eSyw1 z4zPO@z*okv^~O@*W1{v6cJ@vbsTpri=IcAnI#FkJB(NBJcF#Eh?oHp}GD#nzO3DNI z`GGbAh^%pd!B*~e>r`$w&q4B(#Gr-4Y^I_c{^igj&@YToV)~Bc;~l{$AI1r8ka>I$ zrmF{r-M@%02El_Wqp;fCJGY@%2 z!b}4+2@krk-yB+?bn7fqtM3Q2XH}kIuRYPQZmrq(M*8FWfYhV6((XU}Juh33AUeCO zUHWXg%2b6J;h)s~k1!s`gK6tqSUiQK{WFLmAZe)(Sd&N+ZO&8%#=lt(HqckNCW8dV ze{&SJVzw@vcH26bw2H_il+2}$`Lc8;Vue^37=|B#r}dr)BqfW=ivYRxMW`|S+gS602poz zPw8$MMB_Fa-iP2Baww56;INwf+Gch*{5-k5Sf(2|n`tdgVC3h}>LrM|w+NhBD)8HX z6_gKHEfDhDU!CFB5L0nG*;HRjS*>{db|lxLk_vZ{Z-AXeR>@Y6krQkrk;(=0*+#ciApTW8faATJ8(9ZjFwfhoRz=lsY&-8))!O^dkcC{tdDf%UB(qmz% zlW827RZlZ+KoNx^I;w0I-hD+O>D!;L?;ZQtLUWdNA1TFCx>3>sN6;@0466#DMMx<6 z8t$%kbiG3aH&`r|e&lQt6{9#xiu7&G*TXIX&tfjHy19S2d*5LxGmw&%?9xmiy-_YE-o_+-!!IuP|>1Jpmpu#bqzDv?G zx4MkYZ7WWLUto6O*ZSh^&+qj-!G4i@y|tKmdq^toO^g5YyEwTRw>Y80;Cf%QE^B`C z-)OK%Jt|vzz)qL$eH-O3G9vS*u%xnC;{N+5GzoM9S^*{-18VO(zu7O;N}_L$WCkjg z>G(@+#~cla2}q3@#`=dBXFw(ac3T`EqICu!BNXHeFS=YT`-S*>Kk?`0SWG=6N)se_ zN!^J=H!KYc`wRz;!El6O@VP$|4kk$`+!{V6fm}*1XfVoQGG;X9axJD9r!9nKu2l*+ zQW1-|UXCrx`Ayn$cqQGupl?VOH{@aU^o8FnZ041O#ZY8WJ4rIL{W9*4 zX#YJrg$t7B?(Il8(t5G>X%&yjF=|+@b)ge=krx|%$;F`CR;b}{dVwO!K|{lv)HwK~ zz72|E=)n(9Da1rW-X1)M3PQJseY$|#@&c}B@C7bKic1+MxjObt*6$HycyoW>YC#Bp zv$Awq+zr@Q=Ew*_)1P-Lh7cRWh`b)%%9k&$nu*QGugnesvDQu_sEWTn?+ zj1QP&(P-{K)4^fhXg)U9g3}J&q{kTp#L61Vv>om9F9*`b&g5BazXO(uMz4U-bl&NL zcibKr2k0)`5OOQqkt5>cq6@UPdYx0k#4cB3VNSpv1YA!$8$t>Ne{Nl}8|Sx`Ni0+> z9qH%^i+i=qe}tif3V$PxckGLdWWHQA_B$d%gcEY~^3*>jl3c>hg8~`>=a*hrn10|L z`Zd4$E6u@R!ON1zi;)C*SaoY#2!1%*&b9%yn}>S_ftd+!ke2<{kpGgKt=SrTs$|1L zRQ_o3=b&Tw&GG!$S%PoWClCDex;yBT?uj}rTnDgT6}#@Z^)d0!j@K$k3nrDXh*GBN z4*haP!NjasM8fze%)5z@>Y8B3n0%?kVz(dUAl5F1Hn*OgA|91e?8Sx09MzTxp(!dd zd?|8s)G9VK%P+w4`(SZHOHe$CW4t5iuv5V%SCQaKHZdRZ*k!0PH4X)50To@GS{bwR zQD&JF0(s2((~G0H=~@0;gd_0n}&lmR8@kdK?;StadlQEWWw_JX=(V`n1RZgngt79EE9J+%Z4|zc9p4clx0CCip zVs4QFA=m?&{|ya6OT55gK04ZHHl6*wROG$0z{!8vfkw!+W8sFgokonv7`>$}nlnmR zQK&+)K{ug!a)#iP?LF$vE7tze1Xe?#vJ^te2=3zncZT8Hf3E_7QxDB@W5ns@C5}H4 zP9i+>BQSi6bS4YU(jDSRo^?3a{DsoppMMIl!2Q>#XwzTpdNKFo) zvxSg00%c>v3rY4h^z&E)MemVJt)AXaRv7y_uTFaUy)X(?PUgMr1M!`=nUPq2;sV$! z)4(tk2cd}aIgZm3H#)i>F-9azh5jHx>?x3nv+$$v;k(dB8B7G1bno!9noPZ^o~yGJ zlasT;-F0t5hzcDPyC&u6;^YVJb(b5$v$KS;2DxSLgK=~vIZZ19*_TIi5u&nb!?A*; zdQl&3jz9-7n}%tmD&eKrS=S}T6?T!zOIR?(*0i8*4A=b`SqKVq3_TQQ=8aZ63=?RZ zffY3j{bsBbu>8)H-b%qBa2t&0MJFc62r&Pi=1O2S-i9EdUha!$%GhF3`nWNtB29WU zdn04M_DSD1#8zDT`=R;vAdmC6of?{TZ%Bk`;E~wZ>hr>tbvV-()gUV<@O53+?tFbG z)a)s~c?bKU0A)HfsZu4b7^(%p_MoM%$jD*s5FGAV5 zA?cUCM7F_xK4MEv^Q|Yb5Swr$qF&sPQ&9`>U$mu=om_LuFlxuDdH_S5m$;iH5 z{0LcQzAA7PB{?}lo`b$lfkYWsGaO5c*(4%vXl;`NtkbNco}>*lH(-r1 zXz1wM!_1VHvsYox6|c6dlu|^c_^N#kkE1RYTnTE2ps(7jA-ev2mmn&u^_7bzs@PXo zgmUQeLC>pKC%YEeM@pMhl$SW5v{&3<^UWI>!Mx>f#z0c~M}Uo>mx$gU{X zEi@tna2H`6;N43vbNRv%1_z%LV)FK@R(iTkkgq{bWRc>tZjM_XBq)cdi&R7l>aAPL zT4n0r?I5j9`keYCj?r?cmdweRcM36kb3QwCM<;(Y8Ma<$1FgHb6hin=6!&V$4vqP`q6g5n_y#jxKDV zmO%=6B=?iXfc?to#HX+)0(5zwGvw@|nZ=g? zwl3!Q9(vq7K1oxnccQSJIcN80I@hCwV>}4t=q$!1s&WbpaH#!|;W=DTA4$WsUU7gf zi+^WlPo=)3VJ1WVOAQLD+%idk66}a{BmZl>Po7FWS#F8^4EtAc^-qb*HvuYl9egV6 zM|1z7YF+}razLg1HxPi_#qm_H5{8J5lJX4{luwr3p0Zv3zh#+U`05}-fV3+E6g67c z_N4P(#;Q)<(6iqGgH*iH=}f#(xiTm#W~{^G@oxVFl94Pmc1B1Dp?^3-xF6`HK`*>z z@$$UiookJU(#7hoG+gKpRbZR|G}5Q*=WCCG1XwTI$T=!b#(p|qUbuhzG_3zfa) z|4RtFV4qH&SENCzX)sfe$<2$O$T&#T`Z-O^Y7Xwtf2!8a!G1irF-nMSuRQuZ9zz}_ zbvPuMIKb(B;K#99m!neMg^n&7-&4#-G@j;~=Z+tmK++-HmnHy>(vjz`ZT0+* zp+}3S>KCi)ZAFkpt5SDlKHyhSGH2V9K$XcdP~Vk7l}h{}1{SaKcw>RP-tL++w`TGTvuOlJRAbW^RsvOv15nvdxav81UG z0&8)*_VUg2-$_#RyD!PMnV++e|N7{|Gvaf5s7?p%HVPg;44^W72cS2ZH?lB~=Mono)m%V!d+mKJue~5~nRAI8@36pi->k(jby< zlyI4so8tj}(Dv0aFc;Uqzf>*zZg`NdR$p~_m2|HwPNz-a`0Hc2V{c52BRVE#0%xiZucWC{0(NH~xwU z?Ei9it47u6eAc7rusK#6*_(YKVmaaC2XY~2Y#K>t>DiXQN|)rNzE z>jM~mzcrAr>J5Cui2Qv#=rR+;vnO}5a7`G;Vmz5}0&s!~)7go>WTwuWyQXXH5%R0l zD`umyDU+!Z9y8Rv*xZ4?P!DkAaL|})E!Jtx&rcp3PqyxjCd_`sUrG$arF2q+?CpnF zWeBhu)qO&ji|}|Z-Mrf6tDSGiM4J5kcx_pVFud1W_X*^|xWe`<<`aD`>!Y#pXSl3_ z)tAu#v5d>A5>Rh;bG1HK<7M%I3ST!F`R-qP=y{@6CM(6=L5XAzN95SCmcnpW07ITWNSud21{;qjvT8Y+q13lQyK!Yc&o| z-|TNL5h_<+3Cw0I3cYGTe9xIcPRmnaJh{MVx*_OCCWa|ITKcDphDUC!a@F=BNT$O6(uVfVi$GKw2ZKUUEGYuxqFs^ek5CO+a%_i8}fue-)t zFYQdRaHJ}250#ThZv(v@`n{02caNuJIB0yfneFGPuh*4^dD^HrB2AO`Ir!)9=)!Dh)Tco7SU2et3A8qC)3 zdVW95b#zYQ8ngDAEh^w0>Pu2)hm&+K9zQ796koDG*WEnMr;eOmD;+jp9o`B4zCH=+ zb3mz=Sn={z?W$-lGg$D&muS(7arQzQzddKXm^C~iELYc zZd%ewuntl%Ndj+Dzu)6=vB6>;I}9<5R!6(4BW3kZT!r4BcMcZ-jVaUcnF9?fWl_Vi z=*j7*RAOyavqz@nlTg1grOaiVlfy4a=ygs4NM2ZMQny%2g0?Ioj#Y zCguYXd0If-Xe#Vfbg!tF%XY7BGbHJ%Ui})?{PWrNIK!4}ryA~THSffSkPqlrZ#E*O zzzKyN)xB=-s}@Gi8DjX_DhXV+`d7>*zfOlUGCKUTxp2Vs4yvePypYx}v2d@6O^Txs z&0!IBj|@qXbzgB@tdjAxJMj>4II#Yi7#p#AtlPm<&@RAZx^4QjLqdg~zVlvmYv>jc z4ErE0vVOTF1f7{=tbwTgp9zu4Q$04z?+*lun5#3*gFjzM)B4Ct@=V{Hg$rj~B9s7+ zXuG{RjCo8|rBba-Y+wmzA#0;X0IS;<@T|;YNyz{CRst4-XQyeImPoNWw}i);Q&;8f zP6t-Mg4t!n$w5FN?C?dryUm;qJrdAP~O<=!( zyE2?5fs4g=GH2bHm~wOa8n;ce(r`Ram-*mxyqmU#idWd-(x{wHZX9BZ^-x{aW!g)O z?nLcBr{oilIpo840$fK=hlx4+PzcJ}7!m@t*eWV4AshB)8fS~&$1aTDM+DM`{3KS? z+9>(d;0Yk>_oGk>b@m6CH;RQ580a$U*a?-|7l)b?vYN_sS1IT)SCnbQ1~_KNfzEDQ zg3y+Lk?p|rLlPw~HBv#%(x>)Zp_#RuC)sqjop@mXVg>-{WC1KKd=UX#saq^w41~yp zo`u~Ue}r1%RcdP3vCLOC3_XhkiIn{*i@;1vh6|!dOZ#;LZLTAJp$|b}%UertbZ!V+ z1%7U>5WWnWKkQIxTH%;mj;fx&!mwU}B@w@Ob5;8x(&&Hh@Eh+0kgYA-V8_yaTfVR< z@P)ZZd%4_@*Q?*ZIozni#?%UjbPNfD#2-d!IiaLqH#%LaEgY5TD+Eu-I(AwSZgqcj z$~1tcRi&HRtkUcfh|PX1n6bsG3pbJb5*wA|=hQTvy5kv3_5A%LCHWS@%J#_X6kLeWVOlRboZyey*^{IUp$j#JIfvsFE7Pyu&w0hAR7a2 z7wqfh3c_RW_hg?8-pQwi8``}v7mE>;lkGQ4V{9;-2s3v-*_q&6u{yCu4y1 zub6^J#oH18OvL51A>iP){62d7sdzWy*d!cPLHX&l&uYXwe7pDz1w-o$dFaqZAZERM zxluod{*vKsuwKKfv6dLyveAz{`TSK5-KZx+ZSE}fc0zhpVfJ6dWx07Sq^Gxt#Y9mD zrI#s+VV=v`#6#V2;&3&ce)%jd%xRt_hF@L?)b#zaXkDz!+t!24pMfFAfnGhnC`wW6 zz@;wd{MxO%Q)=H4@70l1pC{Cdc{_ye!>4#G+I}?+cPX&L+CW~U)pYMgSi8mJs_GB= zx4a$Z_v|=0s9&U1%w%&XAQL7T{dTqY=jshgr7>8CVm~xVyfrQE?`}GznddQwm*1Va zw(?m$lznWs$@d%e+Y@BCGUFU9rL819Ql`^wXK58bs6G5)7z= zQ%kIf%wnT!nOezw<)mDsKNbczR2U~Z0|%cJ0w!z(M-dSlX$w(*#CRvpAkGcdlb`PD zQu1=qGucggpLQt*Q#d(Wb7ML&)Q)f&l^Mrgk(ku-iX{EQWpQJ-i_ud7>ytA${Nw#t%C;s$zb*ae?|44{1B91H4cQNyg#UM~t-x2JwhN1iM(pZhL0XA@*`cp?>Hhn8CkO8VR(MMY zOoF=A?f8kRA#3iedSmDQx+jkwVo=X|pLpC}|KGS2kE+ST!^}Tn_JC4 zmeq$J^Ef?Px7{FWi|&D4zj*gBDnLv~Wb0WuB#In2obSk3i@KT`o%=j)p^x#Q9x;^0 zkimedn7?y)T;&7c3;;+8%9S#2zmg)0c>Ng8_=(3ZV}giJS|oxqB?9+nuw}C))0FCT zN>x@^R9Wa@y#1JG$VRBXYsWojjCcepc2Pa`N9c{E>ovsIQD=Z~WVc(&acvBmeAn?B zFXUf%)+ubx|6pWf!Xa^hPI;W0#IEq?67>LX7=VSP$rPNAju@oVewlK?F+cq*AT z{u<@OhdzDza+SUvxgNQed1$e@#4lUy_6(PjkzR^7rO12$<8J_oFPb=&C+ENaUUyJs z)eszt=>yOyLdvwi_R)=f0dUhlf8FlzHY8X&UPw$+Mw`tr;6gfnj_Spu3-h2#FUq`8r& z?|q1DAWrqs4{>eMCC_72|55xNK4A;th`&m_!~DNN(jK6vC=$cli@ym!|A3WztPhxU zB)Q`wX!c=1$N~ULd=5?c=N|mum*^q~7@f%oDgC3nf4C7XuyVC8Ej{}`E9wJ4_Rln) zCI#=HM8YqqKPUBnU4joDT=6BI%cDp%Yr`eaybqBia zs*EHS|xXp zyPTIF(8Kj0CP_8~9OfY689)RZt(PJ!*X~3-85Smt2bf>yZgDqZoz0e()7kc#WGPs* zVUSpAOWD~TO#pWCut@(ButZWVz$uWc*^vcdIsi;4a~2~LyM7|kKl|5qSLr1ib}858+IK~pcn$N=vl!q zSb&(n2-rX70D?{kw(jV<7mLwY7qi*iRMI(+kj_(`gWj2hl1bLy|MSNF*Bti1`{%sc zDR8kt=!KunM1hi}HoM7u-MGObpg~IH%NKr|Yy<1$90On%+9p4lp)ZC(kTL++8*a?< z>N}AVgUO<#VEo~Q3X|zplf|Ys1QqE%Z}7Jr%-Mrdt(^e5)B63;E8(=XjVI~=@D=8p zKsGt$6l@{D58Az@y1S3oN#M#VDsJ{DR+}Y#ydACFpRcPGU^Si5kuO#^1-)O5K)-h# z5I#d~ji{(@GobX{tx|sA?PY=Xrw`6@tdj3Z${kNIGdMO?$rc=Xzb~|ClfwD?Xjy@y z@4@Ju6M4?B(Q&{SdN!JFFq#OuGSWNhfyHPznsq6VA%@Qej2P{2Kr1zqS(EzNjoC6U z(_TzKk_1}hncq{txO7@oxzPNT^76My2g4`To%?}BWc`gzVGaS^E{md^+~n?DZEt~6 z`A-0gQ7dD~KU!ADAR!!SxN@FRM~0P{OqY3^)@pUYjh1K%$UfK}rUt4zgdq_WHI6Vy24nv0`$1O za%E#qPVy{>RXCc^SoqmP+u@96Y$m;z7$zLpkcI(UAS>U_+duq6Rp9)ZA-8Yo~^B{rkyq(V>cEtnOu zVwc#tLMEn4A#Xl1-oiEC#G;@t^QsNhEkRr`z>(aLv-MUL8mNXCs@ksPgW|$+f^=qG zrN#XzoK%V=tp=01)hOigEp3y%%x^&2f>_;-5ij^W>3XJer=U|n|J;rz`EcnZQs0}4 z1)W5|Gr&_u^k&l_)^!h_xM}rZRA0uNP+uFooRa8Nz+0?LmPneOLu6CYtOL`LSmYv% zhyfIeJ830@juu^B{I5K`pY26bqA(LKY61AU$aE|wLyEIMbJ9|@m`ho?*bi_XIn{A| zGc?&XM=R5osgHFY&JijK*Z4DB*vuDniVJItc(e*`PXfVz-Q^ zm#>RMWY+^o!5#`P5tz&IU8`xd5V7>UNcwh+N}fVFUC`m{*FpRHJJ$yy?eOwT4*kZ( z1Kkck0ES1S5ZI`apCxnH1|ZyEb9Ur%>@p_V57obWCj#!&M87G2SQ^vOvI{tmZgYJC zOt67s&_ZvRS=n&5D%e=e(X9b6K0XdUhvncbOtk`h9}bjv0`@MP_3*pyVg)Z*K=-x# zVY;=-kKm|yLccE#`>bXNIf6tuppfVzXC2)--{bu`Cks%eYIOMd1+9++C_MM6 zU)LA(rTpCSlfXau4F7Cza@Hb#1=pK1!)otbfYXH|wg%$fXK@C)ky$1w{9P%+uS_C9 z?$)hf#W7nJf@utv(g6VR*8oJGeu~TmNVp|zysV}3Y!&k)1x1^%jW2|HsOTCl*yVbz zyYghz4(5pTzeS$F9EbmS6gYEofD*;_#<4 zCHkPGXmi-PKULaRs3+hctdTK*gpsOqPf zyvbX8?o-Tj{EnAY>|SSmV1bN#*+fgvLCK3?4Vx&41`E3~lrCgVp-M^UDBKk&pia<~ z)X?dNR8kOyvM9KP|Hez}90oX%-K@ z>0}#;xB2J;{N~Byh6r{gx0-}5hx`?2MW$G4HsOhM=?w$*z)}}k*MH=C8SW0Df%kRf z+HeM$B@!p_eYJ6>ZWRDlf9YFNpwr8ylZ6n3XV%OqKbF^ZgMy$%;slEeA12SF$@pxi zD@<}R&6~r;j+dS#BOWc}bQ)_y706Lc*z2?z-ppFwXK~l?&hbz35TX&q4HWMLJ9BCB zLwJa95Qme+=Zf2YX><&QzgH5I_(UbE3MsLOT_x!0jr0l|+{&1W?O_Z5`1_-`l)=Sb zQu(F{da_#nA(2m({ZuI>4wVm0snXt!8te7`B4#uk(P1;q=F)JQ`I36fF`U9hd=phL zO&#j;=fJ@|;L$@k;;!xXZGR3zRdIy*Fa zX_RV^n^iHb0OSy6*f&!6t2$X$t?RvC*&ttiR8Cq2#scPm6LNp67X)meq*I zq!+Z~vRzo){uH6*?b(>D8pX%pJSrA61PU0ox&`@sZ5k;ESS=?dcV3p?yrI~w3T(0VW;adIrI3b=Y9hs$S+xpzRzNr zQ%e)}@|UYq77lRtiIrkisFjC-emsotU640qCE3TpX8GDFsirmJCi_Wp_VgCJ6!#f3 zn@I;nw0>~0Ggl~DO2}X5WFY_Beoq8sZ#ikqG0ow7MCVofXe>9HV>u$i>~mjnlvB45 zWm%wJjEzMEM5k6?UCq|phwe07aiI&p+Js6)EEat3kDlj;^@NmXGuSPC8IxyzT0hj9 zACAmS1TV}`SsaQ{Tn`oI2KO4^!KC7O%Q(l$$k_y}Lt0bU0?E**O3bF26SuUO0s2P^ z&br!|auo|L0Y*JN0N0=43o9%*?@`1Om$`J-Tj4UDsaPU5QzJm0*%;JV3E)EZ%+kba zq9en}q3Zy=fmQ=&QN;)5U>5TDX^K(C(Q0S?m$)kb3`fHmN&4@QJ1u{J`2Q42+oD9~ z+ypLO{iVt9Aj|b1Fj=b3f0k1{Pv~}`sXE+Z|IPL4PzL`5*mlz=6feZ}jv0QUczdI# zhCc_oadA?=7qNJ2@wr(Ebk07h8Y(^NiK1k%ToK#|PODzu9=aMZZa{24hD|t^31jn1 zdB<48TeI)uk63k5cm-uT^8G{6KB^=sM@~_XlFh+MVBCF z8R7VeG(}~@m!PdNF?ATH{35p9T=+?8?lF(hNzL;$>ixC{wqR@x5tYd$1xAD9+oNJV ztweteRentVAroHq7W40Fnvd~+xPzqrP5L24q?{FVuK#cch4I%uKWRO@6XzA{f*ITn zqop4wiQf#{oLU+R7BsYKRBIDIjSbPQU%WMl&-VU!Skq!s(lr9 zEi!91>g0cFV%U=}?j?QW0m|KTc(4>A%44#Y>x z;lu8f$_0RlH54u0zvs_C*9U{-=zmh@=?Nh#Eo}e@Ub@xWNRPHPaE_#DY zR8{W6BiuDVGld;WB$O2uJIC@B2FLO~_2TikOsV0q6lJm#KOSBVGlWyFn%vkB9=FpN z-dl?w=vahB6=nI#{EqZo;PZ=sGpKj4z`Z`yBJiouHRlf`{=YU@a5Q2Yxc#6-Q(8_N zf;Wp_9IW6uVo=7WNy z*Ry?v-S! z?xJ*5LzMr5bE_EpQ1ZPxuM|@?Z-Jr468#G2pDh7Ks3sU{CW%G=NDusdjlN3`P&JCj zC4T?w)4vUQ$@IHmVwEV3{XP5TkBdvjfvNI}@b>q=|NS4+Sv3xTahj}F|8Ye|#b1CS zZj9Bxn~aPd)Y15K_j<*DTrrvjJijKkg5W>91I&R~K=4(KBh>znE4ESiHQrr(U-^CL ztBF$0!G`j;I4)(PQ`awuG2q8HTLIFd)kFoVQ3t?57BoUOR&iYVHZGfEnzLtZApOpK zq5zaduMPNK=2og%V`@EIV0HhiE`WfP(!{;GE^zR>{Evxry63IG$z{iueFZ1(m#=qQ z0GucbarAhgZ2j+(Ua|ndxi5U}0FShb+PEblPTh_`tMzHhWNY)=n~5N?J}E;!z++Gw z^Zi@A1>kYs;H&s8=~vS2C`edD(+PWy-PJ9*hr0H@S_ixRr~;%X?X66V4smgIByRQ9 zsMtP#scH~+SJQ}uft$Os_CAwThFk>QC=ULCd|)tq;&o%yD&5J!+R{@KfCH$*$I|x7 zgk8=q*HQQhbgj-9?J-%cg^z>SxbJYV{28zKUm@g`{BrwAT+S(7?A^{1u8E!Ub81iva9_c5WPXznTeHwmAL*dIX(JL2f#Pdq_CSzwm!M5rKJsIFX{Q9^_>4g`FNvYOmuYFiVJu(Op0;BrWnp4V`Sgb!27 zU|hHMDm80>KfbWY48t;q;b@ z>#6=c!k+X90Zo}){q37>Yb5;?Ftv3&Z2L4%M$}x_$F}XJf$cWvU>@t~H8*bf4B*F;2)Ln3Q2t*kyI$;pxH8PWvA}q$(|!diLzX$eHDj z4n~;aB6gEqY^K#jRNT0QaUf@2Q$19%plXt|Ze=OLqKU4dbEzwF(5Cf({mSK7%m*xV~6>v z`4_xx4c2LOs)alPj9~F84AMSc_tEQD% z2QBMVHJ-aX5R1J%|AtV){g~+{DBQCM-c$;o!RAA{c)4HZ&b13(@&0vdi!H2`3jBYwnc$@W1g&3Wdo_Ia+PH{+^rF>q> zb$OE*p~l@jy}h5G!=EosOeY_Iia?){-MYXZFSDNK)~~_@R}Q)^ z=`QuxLBV3ZlgW)UpBaP8v#eUJGV_(o(Vl9Y3m?17+VhorTIBzm&sgN_qFB_h*X?`b z<*`hk@)>Bm6}5C`7i2A)cW#7Mfs%hL$hIukllX^}V^RT|j&E;rby({hYbh+AKb*gai5qY(p?2dV*} zS>@${L6&KYz51pRo3DvU`fvcfrDFLOaqj39&!fQ*?`!OUvKjb!=RIqtXx#dPIVn3` zfbj1>>6*M(N-Jc8o3%0Fx)qcy5`-Tv0V>;*24_q@A|{1S@bWTJp<*m!Fpf+s-WicK zE-SA!)oZNQ3OUAMkGn7f10p^|3cbV-EKgqS^hff*Ui(dG_ zm}7#d`(ca0ln8Vh(bE~vUHXuqSGhuWE65jd&vIIH{aenxM)|{~!RZON`Bso^+$hkw zL(mKHQ8D`Hwf{jw2gHyXtE?mxJ8paspMEU#{qmBA_Micq`Rb(SS7m(if04 z@nr1*`n$O#aancfk02MjYn+lu+O=FXcxa9}T*{fSrf14&aub7?GSX<7=N{D)eI-+DPHWM3N8J?=J)x7 z6U_(GiDz%QTB29qP>H(_5xkMNotM3wO`*P;7B3wRVRvp7yQ5bU90i3@4pUzwDdiS$ zUnU(SN=LYY==&*}NJxOOZz4iEO2gMpwU5YLE*K>LR~griQpvuVHj4X_cHXj{m)-S& zhi4Za{=-6A<)B^)C%`Z)-ddCv2v$(_^p6~#CHDJ$e=%}wkQL9Z`(%{KS&_FLY-w&P zF_n$ws8cZvVe5d5`?SZp&LK=_xIIAcIDmY^E1yBoY3xuiBbGOkh8gI1DR=RTzSR4^ z>O8);^63KXH|v7%#f{iQ&QE%+Cu7&4GOWiQ2AdzN;*{t3)7GALr6)yXoQu7-j+=hr zK4uY&d;aBPl-LE_9e(33>k;yYAJx0&$C9}MpGXMUU&Dk^UNzENs?~aKX-lU%^#Tpy zo-TEu@;IX5f?6_V;TBw&UKHMU$4LOaZ+(cm5b?}Q(*E$oXuxs)qb<)~Qq)#2G?hVA zD9((pNQ-(^O#}Y@;}#x?CTg`h6|%W5tWa7VMYd}JrS zcyF!39cLTE=foe(Hq>Kdiiy`ogUu`@F4ID#-nmcBV+cJ)%;<6${%2N2B-QUSoERW# zsl4~*X$l3>%I=%0zaj({qDkQVY?0k8_Tlo7yo|~P^m48dKQl4@1tkVfO2*@iWMq0f z?J0mbFZG_5k1;!G0>oujq|PiJjn606ly;DNh~^Ay6qd-V$CbfBQ!gtovh+_XK1+bV zTQG6j{P@t~PFw=?&Mr)0lJBoU!cz#5k^7m_h zREA4^(dkcpu6Lr`ppP&x9H*ymCeg5UUr=4<#T~k*#5m!WF~LV88{oTRbn@kptbsXz zYWF(P45VH8Q`6R~f+`*6C!*KLgF;qsGt};#B{Qw-;qE<|-h6Gm%6G3lkoips_yu#~M`ydU zvam(|>FM{YA3k9X-4RQ7H0@PLOEV6YzHGX#f}25Dup)@t&_kvB({ZYQ{|%UvDl zV(?WaKv~(__g?ZA@jkOYY9@#(B%T2{_cz7%{aIw&`hD%@N^-1Tb|7toav&_KG-#ThBsZDbuMspKJ{(uQ`JkQ zx$jZ$EWMjV0$sFbgKf9dngtpmq@pujaJ1d^i)6Ba!Jgy7oNq%}sNG3P_H1Ib2z)Er zCksWLN+p^MKiC$nd3k(!!?qVXuq7_7p0AS#<8K!0*(H{FC}$e_zx8^X{6~sEsanc5 zRt9?aVyZIBiOH|_D;axki7c%HtKHeyM1zQ5DnBIzJaF^X=7i#WMsh_e@1a?u%9R{dn5bHG&-DFi zTo&Bft0<(WuZE;&AY5u&YY9cRp83Ek4^1WTC858eq#+?NeId!<@mQ6k#u=a$e2UjW+{pWG^-FER#HLud zjj2Kp z$K8R5$t418_bt1|uVnA)RydAi76_i|SqTWgym0Yi-!0okEV%Pb*h6vWdW};{1^2G8 z+~*!4Sq?PQGI^62L5AdCud27rdL&2UhN1Adpee1M#%G%E;PDWDRQY|EocYz>u_O&r zn~c)Nh>y{9y%}x;tYfs#w!UAhjxNj0LC-PoDkIc&o1L$rFG%Pk^_i8&07V9Fiz_ba z{qRiI8kY@{-u@$j(F044-yPLH1R-)OgR1eW(TjRS^ldAl4D`~)nWKV2Sw0^24m<}- zRk>zm`wLYNDNn;*y}$+a{1u*bIAd2Ks5fSZ2Q3FlhtvJB(&-Z|>;;h10S3?9txX=&OCo$hoYleso$ z)N8O)>K>NW;9F0|yOVLjtHZmFrve-24Ps3oV`xTxadGcudM`bVA7?gT_rOE&`Xv)b zk3W6qWd{pGWkZKE>svpp$dQZnG0*tp3fG-hg2$rN7b4r$^}O??3ow6B@Hz-vw- znd~jRFHhZ1da%aHTjuho4H$&VhGOFn-u`Za-GgC6i}_g37WL0f#t~%uo*}gKpY2gJ zq=6@O6x6V5ZO}}Qny8)LrP_wWs_j~htE1YEGOYxLYUCL29TCp6PD=j?Gr{)zq>=K+ zRbHoZ%l&ggrDj9Hycu|nT|^3vogTGDqlx)lH{;W*7)10n+SP6JY?PDS;-E0q2i_;| z)84>onB^daFGSU(XhYq|=%tNYM@$p%2pHju&f>HtdfZ!*W-3|H?e=}1%s<8#;H8}v z-1nx$5Zd5Hd$lwCYDHaj=I|YhuQm8K9*ZTyxrJ-2KNyWR?&#sI@tJryGCUwvp?aBt zoNI}o3gIw?uNfpX30%3FqDikr$Wr02P@uG4Baj9-4r?Ns=JBP$zwsCk51|_cD5ERbtv3}J{Hz5m~cS3SYj65jt=(%ndBy( zTa2ui)(!9c4e{+YjvZ4SbV*c#TV)m9mfbgYm0X)t(#s18w`0*`Dc-B1=77r!NfXtaJWwCR1w!Iiot6o!Nk;(&VWAEH(Wu(B<;{Omf5#PdDmlr%a`H6FIXsVKEnQo%0&bC({S zG@_=LlCNJ^GCkv}GoJ@jPuS@(ad7dDnaFRttJg3z0-t4fg=CV&JgoGUmF5mh=&AIz zYS|HxsL-AuV~c!9|C$*AGzdRd3rXK`4l3F^sbBYYRASo1+38^I7j9zg7;3rSzS7~~ zyme?EGv+8{teKMzz?aA4#+PC43BGlY_=m7Zan=C{u0 zcODj~alFMzk0;Fl1_-v{2-cfi`e%Lf(vm136nB)`a+E4kw_=hZPs=2!sS{!}J%L{_ zpE-&f|Kin;dcO(|6fo8$E)r-#W3(V%Q8ekE4B|Jdt2)_h%7(rk?3z#t=>u zG_QTufTRH)L6BiTx$rW#A&f z0H(PX#P;Y#xTY>9z&ur9ZKUGvn8iKf;i(ywURp0b&6>^mv>GsCu3c&>1SvrX2w(*L zV>hkPSFTgtd0w!Q;=q5E>v{66v4^}cvd8Ze?~<9ig}yB(pXl+q6?B#8MW|sA;s*TT z%fu5>s6l%<r0xckkwl@RYOW7TYsT5)-KYqyRVn*-~c1iJ!f6Ti`W8PPyo7v*D^R4OXY&YrCIC!WBZTQWYx^v zA7`oGJNKt54)%KG9-GNDy;c7fYGm_s55{`cmMGLn|7Hm3d`rM}sL{Z1ozuxm533lR zyPt8p#hiHGR8n4VX9`s)Q?m!rw_(vL<-jnu@>DQu4C&$wlvEPb?g2H#6 ze^9?J6kyDEyF7|L32KW+TAQXT&aU%yDQQ1Zr3+$_D96hws0-Uqxi=!5R3Ye@(JDWh zs7_+|Gi+H=f@gFO$r@S}<$9neazB*g#+SD}N{v-nClzspFH!t^zMABDTrs3w+2SWT z$@eYQ6FQ2jk(Q2A!;5C82>Fd9hJBMzPLnbYcg#Dl52e?~?Ace!G{&h9Bbr?dBn~A` zl?X)~VsqgeZ7&Q4JkyBa6^xTa(7VbB#CVu6&!%vwDPxgwshAM2y4oST3sj2B+aIh8 zzyyQW#*xxR_rxsS9?ZYR@pDCY<%14paSuyVJt2;w;X|F`f*#X!`>Poja-`;*Q88W1 zX>J&K2lalWq4p=RWPE*^M-rOr-!Sy%lmv4(^-`(O676~yULfY$eN?|2f0>NnSMff$ zY!OGEt@{w;yi-1Yy=0PzxnxXb>2g62WhvdUY7`(ahB+LpKb-g|*kP~#D2+!c`FOd^ zVs@}Vcl9zL0MXhV(z3;OJxFn`zuCw5MTvFx;16mEf#FvSFSKs`ZmZeZUgw=h6Nz7` z14HXu=Zi|~*_}H{9}{>`lZTOHUJNo=JUU(K{f$xNLMr$MceN|-%CsAdw*jo{#^n6W z;l&|7OK@@C&E~Y?@?%))TVi#zsA^2~jZTd>Ec!b59R#BdiX7adchv8?cFnz0t~maok7Nwm?w(~4%1nO; zqw=DiNZmL(a?yKAb+j_W+rsNA%0PR^)?&pk3J;f=LSzs!2a9mB$@pF$03h5$@{a`0~TVfa!M-!&FO3=QSBfSH<% zwq2=;n)F<2tB?HJjZBJ2clZk zQxNDP+@r$eIp4Bh7EFv6#qyR)qbkpHbCDCjRgl-1V1rKPCxGJu-UXgnKWW*$pzhce z<5pTyP@=4nu&Q`#UM)R^-!J-pgs;nHuh%>EE%X)qB5nJSHb{H?T8YJA3t3%|^MyP} zkfaIsFT)q_U$Rk~Xv~QE#DRO#wA>tA(QqEKQI)LXk*x&XLHMv9Swh9!V{7K-IllX_ zE>=(rzpSL@&B-S9{DHHXWP1lGXcV){G*(JtYhVty@c@kbrV55JVO){l^f-P}Co#f4UKvFX0A^8#ZI_8Tfp}mULrh0;+yX4c*Cs z@-030#txSawEqgce0%xxx0F1>$SdPSLwtoFk!J&n7gtZ8s>*mwggQkBDHEL|ccBvN z&5;0^9ajeUFnxKg# z)8n3ORJ8N4f480t59*~lmMgOw1nX_SID2Ne+VMd=&L8!X)-|%3@y)5NvKp8EoiwhD zL>4P_icf?8@u&4zT9!~tN%HiM3MB(~^2_Kul%@_8pr#aJBzVE3+2i&A{6@wrzjl8% zCk9;$7tXtD)>82}Xz0$y!cgu|AM;LzjfLezr8SW?PmHMj{h2jZ4C1ymv+^n|Wdp&G zf9_bwYr;J^T%c7hoch}l{e5-=^N=THW*<*ExsS!ELgu3U-t4N%#onb<=x7s@JbhH6 zYrJ;`RYS->i1Xa);>9E$IpWOUa{D~ly}u;Sk*Bbe|IOTcGQNy2JQT7vJIQudwbY%m zl;-tYz~WCwp3$Zt*4-?hp3g-_%f39G2wPr4^GpX@V@BEaD#ZyQTN1@iil?&@Uv@72 zt#P}Wt{4jl7jtm}7bsk*DNrg0=d|}rw*v!RD7@A%T<>H=yWw%i{(#NaW@E_7>Yc(j z2QuPkhvVhjNYCTN_;WEkv!Lq&Fr&R6G|DA5hjIpQDvb2RUBcu33U<~CAS_CMzN;IO zX3Xs>aNx6QGI!q4_D{axEHtMsUf5gVgov~`(gF&L;UcN3Hxq=jz9}>H;s6~v?XklrujhkycO?)&5!HG z<~Occ42X3&1{`?z&|bVgz1vn^AigIdP8s&(iY~&j&~Q&uO6j$$Gb-M4uF*Tljj;-< zE!`+u3$UsM2jL*4zEnpq(?GM2K3N9qfu}jon9*GnP`zn)ON%*<_t+3N)^Mw?a@636 z1wL*`*J7QoVCSXfS*@?owk7XKv`WQ6mk(7bbu-I^%MpJpm$vt|=brX2hv-py5w5BD zacuH#%UWP}8O(8Q4mC>qITh)=8#MIW>E+Z|n03x@iA8?ofYfgUTMiV5{5dh~hBD%E zVQ>B!O5LUpkWP9l-8QzP;BB=Qv`;&^IhAO$tmG5a7ZCTQ z?{%YXEHlm6~${?Ffhl#U>1+fvop*R|EC8IK}tu^#?eR7r5*(ilN2^nzN^ z>a^^CmhG>^f(z=lR{~85*A9tZo@2&livM$iwqTIJ zaNMUhPD98mCrUF_*Mc+MfZLQDA}8a6|Mv59;A%Z0;Qe4G{@LRpgI2kUqG#Yqxbw5q zn3czWUc@ixspO!A;2w?I@gHyc_qYB5V`W66#dO>_{|Z?BFKqQc+$<9-9_9s!nK%lmU zRe73YLAdbGxZYpQBw0)$NhQn1#meynEz_K@U0_ja+WexoTK(Ub#*@6FOPNxZ@P(b2 zRLEx9j!UbIJ*Wi8+c?~No&&5@1|aW@wish*$y`|l+K zn0!gXxWk@mDXGOK3C&ylihqHSyM~f;zU7U-UhU5VI6h%|z~{G|EohOKgs!_oFB5Xs zT{cWS5y_Lz-2Z%Pb~)_j)aCT%pBs|8RDkGv-=XxL^ZKL$9|I)p|7;mdMdSjf=|Kp}g ziJDqkt7gxwHaR(Ms=jFyAd>Ykchx!E(Kt6$a1d_WpYL#N6K7cDTB@ndd5XOIBi#CD z1OECdnNQI7$!lZ0*#MsN8(zdRBQ@;ShftQ)ll{3QmHQ6ITK{euGC%+8?5j}HtJ%2_ z*}qSeKacsrDiQ4`Bk><|NfP&(f@Dyz^uPOp3XTWjbuQiLw zf|KW;P4Rmo69mk|S3mkl|MR3Y1xQeezV{*iUqka(8{mPA34Xif;Qu_yLSORWlrdR5 z6n_rLzZO(*(8dTF0*~bU@4x%&nEf_*n`;Ws-9rD~&wn1jB8#47!U^{NkD=g8Kp6wx zCh$ux@;`g-|8?vC2KfK~ZZ+lFdHt)7#bi~fB`80^6*nSYhMxJJ?pXNZeBXL}NcrOf zzK;`vwV)EiEb^cx%Veh3>sO+iOo?)`U{zRHSQ1J9#S?6htLZ4_zDIzJqI-CY``=Ho z|0q3&m=u)YaDC3I;zEz=XW|5$;A;}DnCT6mO8vuTrj~vxWz^m6SaK9-Q5ZCZ(7-^v z{ez&ePK`_V6w-|uD(cWp7tjt$DCsCDSUkXGZU>3Sj$+8=LFdDu;M2{T-hMnVO-_C? zUiruE_aFbdHz+Y|XJTT~P~`g#YY_#=dIi}a-2uu6n5e=2bs(zmuOS8KlQOAb19D9k zvh5M^LEh_Hu5W;=gJnoaj{YC>4t!PZ#SIf|!OMh zw}F}^jckz)`G*b&w>9;#a1n7dlhT$yqudoeA|TM{I$Ahmm#vaUBKP*2Mxj;-ry_*D z$yu^X+i-O#cN4IXKS99n3mlXN@aAL^TAM)Y>VSMbv|S_?4&DP%_PK#NAD`e){$)UN zx`Gzec!)CV|2~DVXNCwoSctd_5=A;5Sal`vF?r)o!*J`HPBQ>Yyf%+&auywowg=f) zz3xgNf~`~MeGa;6WAYaV8_->3w08W(7BQ1m?+^JOu0_JcXvE_fJZIIw4icg(g^WPh z<$D@bg5=0Oo0qEUJ=$7YGzD+hT5@7Lqp5quKv4_TI(p%ivnS(aOo;tZeyx}TB=oPE_NLAoKc6hq?TMs*=(U@tR^NEG22jKx_W#9F^$Cs)_*O}e;u?vO*aqL>g%)-`vK^Kv9zLa zyQeZYm0<<0#vl zZy=hmj^oHm_~e2bgH-~^-i3L+u53>~5-dsPW`{$m3C0z?fnpHx@%(T6UMFP+9~pb6 zY7XDzZHL!0lHGt{ndW>ib+sJ})Ci`g4;hu32Gaeng}w1c8|;S_Fw>|(Is9-+p1QLV z<1F%U5qJ(@loeE?%T@k84E!Xs{#i)|XMz1w40Y<3nDq;g-y5sI_Vfzf#|sK4n- z#iQ4S@O0k{hEUT~aOs}J9a=pmW{~8|)VRpaPQBJ4QgEV>iVwZRtzSzQDeoqqxL9f3 z`9L#{fqhaikk#Z7FGLkDh{_-~ha1Xzt(=-O!6e`l6;yAlMe<=~0=bKO2hzO%^F5*- zv>A{sXn61I_$#8RS7c{6UW678hY5NROj>_c8-Ph%RCw&Pvw0cx3X&|Qt=&2Z^XP|)XQZ|_Tq#y;4a&21v<%kc2ds1-w}#R2rN`fiIrP`WcN9a&1e=-L*|Bt_oh(GWyf)a%~GqhA{< zC|pEu2o0ddzN`CM#jtMWyFBm5M^hJv>IY}WqKr?aVt!Z{$l*_@i2u|jW5AP6Vir%8 znY1CrD)l$qQak(t~vcw+An)!@{nmsdS7Pz+hjN#u0L0 zVZ6SR4$F|kA25P~`X6qOTZ)oa7pyUfeg?Pw1o&9VAR@HL?BM2H0^0q58#&R}{XXx* zd4<{M_hNS~76b10)kJ=N8}sDuRnxHaRtCOiA|=nT-Kd&nU1zRnaY$zvZ?L_`G zJN-QIvT~#QPUrO*hRdnXvSIY8ObY&31WY3VgfM!DR|C;io?yU5t={P{ya}a;svG(* zT^0R24RZ}jFC#8yxocg)GP*aQ$P-u%M5oNziGps3Gs}f<`N?1)h3#>{75{#PR}}18 zXq=AQX!b4akf$Fk;LFzX-yikMx3{8wIRwZ@0J2J~=sp^^cafYB?0ar%AtRbl5ToZI zK=LvP^#8=&+Bu;Iwu zad(fRye-`2Kl7zw*>17JM8a!{(-mxKdv>HqDyxud7T>N1!4tOIMGd+L_#75;IAyH9 zb}F9!dn-MI1UFyvqrRrM-jLBEtz#+KwJEt`Bi`Z_{F3xU^p;y zV~p>ljg z+`N|!8E%tJP}}pvhvo2FXHlCXrf*{sbavEf{^?q=t7FTqZA+>M+v7k}eRsNxu9GBCt`ZMv$*n|--=cdLJVOjE=lTVPr@^XIP(HCQNqiVw0HTnfdO8m z`MA}ZcBPFyD3L~N!VF)oDqYe!CD}liWz&_K^-hOZL~}7%Q~k^5Ldc|>i@{WLmU`0| zT6Rk#)!wQpM~MgFQF5d+sn`85m^u%8?QBbUa? z_J|$R&o@TO)^O*_)wCUleD>XEQ6bCsdlUGW;gCF?Dt;&oO3}bq#K$ao&#QJVj$yJ( zHO3aEu=0F#L=XyDjS-Sj>gedeW*{znd@JAjAAUeYsN^XL{nSV|ty+AnL-^s^$_HWH z*Zm~rA6m%!tPBqt9Qn@^D z|Kqygt247|nGDxzkh1*0S52@9EJy<%U5A|`;y;mrd;;?v+5Dm@ZTyYzHKTyb)X{s( zo@2=$uzE(y&HHcJXTAL>@J#xjvxdy?GaK;V$?su7NRFZOk`6%K`xaw{;=i%e99wLf z*Ux6&e5m`6`&04(KR*ny;|%`!Ul4-o41gYTY#TfD|Fr^1;)W#vH(yrgxZ3GokA_7K z?g^5KgbWvX{&i7CY*{7H9=8fSb^i+q9TLJ)&er_f(^4||6-*^pHOM4a>7f)sjR0kx z_c5&dPi9@3tz9n~tz8$kxGEhdh+XH7BHYE&`2U)BZ7JXZt4h_L{P}!-uL+!%U#_Nl z>02Hiy;q*{Ivg$h#H1BIQTe5GcyPnQkE#!r;}AZl+=adSOUyMICJud5+CL0cd? z>z#%FxSV-7sCAa>vWZSJUwyJVQTl11?FxFr)IJCIwL~(Us42a{GpS1D%*EpnWjpOO zb1{D05~4eL`;YcG#0BlX8Twj{=@0NL-H-w*{5kM+Ucyor10ykgQ9ovP5bk(-ppIY; zK08^N*z8!OOfFIHab6y3+Fu=PB4+2Yrxz9uCZA)j>+cfdN4-A{zVrf~kY~Q3|BKu| zcEWV>>j1MN*C^mt{-Y09-`6t_YE{);NGocnCBf!Zd9u;V26(~c-#917e-oPWJFlE9 zW)_-yC=ou_@gdA^x}=0+bea_CYJJOH8?74>+cJ25sX)!R<$E;ls$C;-Zk4NzEE-UI z#*_J5)?b6j9$OjIbb{Gyg<}f3F@LN8E=$Wv(Z5?oY?2t`Nii*hO)|1Hk-KFhMTAOl zMA!Lzof}nvdu&cTx}v*s>W)O+tYBWv=D|j7>Yye*G6BPn0STYz z-iscSN{8FONit< z3i!cPZ#AjU5n8;%i>K01W>IDXX2=H=rVfwhqiTSX79vAFYD6*D2XpAtD|WhGdXebX z4HyeWdOe?%WYfuTtDP)YBS@@uG&K$NKE~ZMA&ILy4TS8smHKK5Nc=V&aXXhvzbai&(XUh-Jab1ac@xj zV8`TMV&*;x6sLh<$HZ2C+Jl{}t8WaP0|fK{j=v`@S95Uk;St30O}9%qBDBNn2Hk z^d7-i?k6*3=$Tr;$7nJ{-uiZ_-R0H7a2KS&`?4Y(SYO(f^VaBmF(u84kID}gx z-XV(O=*Q(?iJs!-Wf=OBuk)&-%}Dzolb)(5L)&1_wjb#*ro5@QaORJBqMC<$?^|Hu zF}M@OYMTATH;sIU!x^8t8lZBgV_{(-93-Pl(*_7z{%fL}i!7NeHt|u!#fI~8b(0@@ z4uIyE9W#m4b%@jT~YB~1wwDT zK?%79+M@-VWf)E{W8Q0{+{BoO$H2Fq1Qt>cBwMKq`})~ zYoqyvjf0WL;~I58Q{7KEgkH6gNtl93etvm)7zs1@;<(gfvp!bb01VjE1DneW9Gl&^ zZkzd_h)qDYWKsr5<0QWLQG=bb{^j_n*PGq1DC4@b&bsyL!{tptXn_iI2E&{H&@u^X zX)K-`pKplH?=JP$0Fk_EP^0F)u6id=^#YB=**nr;OA`-}3qHwk)+=FGd53c{zIJcX zNo_UyB@RTBori&J)c}aM*`%0xoWU32c}}YfH$*vMNk`GzixVfIl`4qbS{sjp)fFJM zf%z3*Z`+MFOrD-)l ztPde|NbFEpcaStuVq!UFHX1Xe4#v`)_XfJ|W~zW_&F2_Jk;p6zs0{4kG@eo5S~y*h z8O7i*P^q7~5B(IalST~br4jPh;r(L#$mevU5?$(bSTNN;IP8X+#J8lo?3-FCeK4Qh z?zvq@#K0UTnk_ax?z}qL6p{9F4v~d=i1#f|K+@z-TSxYZWDvgoHoI_Jb@|#PNS3Ax z!{u2wW`NRCekdx9(`Wy|{`ncTkT=ptiVhQ3TRwyW#X}880SJaBV#N!}nZ;Uk?n{?q z>V8ysSB{u;@j@0^qtQpE$N%m9P4A;NGl|n+KuBtNwlZ3$5BHPnFQ(Ex*!7Q$kvK12 zX&^9e-P`G4!V8r@clNs2)wct{Y^iR+TOlRJx}9%z6qHyKe&oTVJZCd!hqmKCi^`0} zw?p+0rRv`e%fYzkfMO>8*dz^^ZG36*HWym<&ffy1CKA-1_(#mH27a# zLB8}`+agD!E3T8P*KPK8mM7H*m!X459WT%4FG)HO8v?Ao;-^Y-nuLNO=}4cQ_i0Yu zNT#+g-xw-qhNC7JHs*ut*Q$lAZWDG~yC(NyuI_sJ9#c;KAo6l-SR5iv2b82BS ze89%#aj;I_v;QN2)bwMib#leZ!vDs+P|$}QyYsT%o2l`HYh|Pz3SwzH*Qmo-bdJbK znZ`G(Bpw8LL4CRPpDM?`Mll5xx*2!O$-d2~SuGQ{cs*R5^E{|Hp!>StV)gKJjs__n){ahPb(h!y zE?U+`qyPXsFJ+gr|1i=i6D0d-Vavz-vi99c_h)5eQXlG#v7Y+A--{kmU;ZGNf#YUm zo*wMoD0AIErt!fAsA63M;OQVexck`(eJ1{T(IHR)))bWbrQBh?ylZ2g1Gm-(5**Z!^1IUNyOYZ1_EJK0OAieWamPCKFU=& z&pI{3Op!?hP0PogUY&kFcUHBlXHUmKDdEnR=JqqOteC|e7ES_j)GT$6sBzeT!fT%H z=`|15h@MJFny_rA%(GL)oZzN+(E4ZpZy?gtG#ST#BwCBFRsAD zxJ$(obI&ncvc(@LYoFoV0^O*2H$*KC0Qy=k_~iDo}K3r;1?{z5#v=zKC{ap-%f zC4FoQB6*J!`%f2b@)8v8D&YtcKZQX+$phL`9q;%{kyjPDV6X?>U{l+>pk zI^fnqilqtItMF%-zG9gz@A@3$9be2lIfQpXDAn%vw4@)|a$kZS7s#V@_1SCnp`@H{ zg?Z#Xam!_!L|JnVM~7anf}rC|T~Oe`efg?bA&9s*;h^~6$SVteTA~bW>*#uTWbMBb z5f3S8BfSBiB9)LdP^|UYVY|G;K3{4owo$vEZyW4&->U)31eOu0P^+_JXtNZ;V=L-T5y*JpSkWxT2fxKt)`X;S_=$Lr8;Rx%z z$q%8!hYW~5y;+9*fMvd+I{OTzw3DH19R^Iw;DpNc*D*YbBHR=F+BJ$#(ri6)qn1Y^$Ej{!iQy6z!%G9Y|_sr=a4nAT|=PcRChEFgc`m#v}a`iCvV(ct~)Q{xeh78 z?6!2EFB0i})HRdF?{?ykrp-3YxJ$j9EOF{D^+}$;}y9IX*?i$?P0t9!5 z5Zv9}J-EBOyW8Y8=VYzD&)WOtKHZo5*57=X-BsN+YSb9Nyu3N}@Q&muomyKj !L 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 MQp%DAkDvMe7jJ3%Hvj+t literal 136194 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

(G?%;N9Wt%E=vo)wG}nlntL)&=trM=P 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�e1euc{XVIeV&4wWOs3 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

45T&KntFc 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 { const canEdit = action.includes(ProjectPermissionApprovalActions.Edit); const canRead = action.includes(ProjectPermissionApprovalActions.Read); const canChangeBypass = action.includes(ProjectPermissionApprovalActions.AllowChangeBypass); + const canAccessBypass = action.includes(ProjectPermissionApprovalActions.AllowAccessBypass); if (!formVal[subject]) formVal[subject] = [{}]; @@ -588,6 +590,8 @@ export const rolePermission2Form = (permissions: TProjectPermission[] = []) => { if (canRead) formVal[subject]![0][ProjectPermissionApprovalActions.Read] = true; if (canChangeBypass) formVal[subject]![0][ProjectPermissionApprovalActions.AllowChangeBypass] = true; + if (canAccessBypass) + formVal[subject]![0][ProjectPermissionApprovalActions.AllowAccessBypass] = true; return; } @@ -1212,7 +1216,8 @@ export const PROJECT_PERMISSION_OBJECT: TProjectPermissionObject = { { label: "Create", value: ProjectPermissionApprovalActions.Create }, { label: "Modify", value: ProjectPermissionApprovalActions.Edit }, { label: "Remove", value: ProjectPermissionApprovalActions.Delete }, - { label: "Allow Change Bypass", value: ProjectPermissionApprovalActions.AllowChangeBypass } + { label: "Allow Change Bypass", value: ProjectPermissionApprovalActions.AllowChangeBypass }, + { label: "Allow Access Bypass", value: ProjectPermissionApprovalActions.AllowAccessBypass } ] }, [ProjectPermissionSub.SecretRotation]: { diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx index 9f56b92ef..fd754b14c 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx @@ -25,6 +25,7 @@ import { } from "@app/components/v2"; import { Badge } from "@app/components/v2/Badge"; import { + ProjectPermissionApprovalActions, ProjectPermissionMemberActions, ProjectPermissionSub, useProjectPermission, @@ -100,6 +101,11 @@ export const AccessApprovalRequest = ({ const { subscription } = useSubscription(); const { currentWorkspace } = useWorkspace(); + const canBypassApprovalPermission = permission.can( + ProjectPermissionApprovalActions.AllowAccessBypass, + ProjectPermissionSub.SecretApproval + ); + const { data: members } = useGetWorkspaceUsers(projectId, true); const membersGroupById = members?.reduce>( (prev, curr) => ({ ...prev, [curr.user.id]: curr }), @@ -350,7 +356,11 @@ export const AccessApprovalRequest = ({ details.isReviewedByUser || details.isRejectedByAnyone || (!details.isApprover && - !(details.isSoftEnforcement && details.isRequestedByCurrentUser)) + !( + details.isSoftEnforcement && + details.isRequestedByCurrentUser && + canBypassApprovalPermission + )) ) return; @@ -360,9 +370,11 @@ export const AccessApprovalRequest = ({ ) { setSelectedRequest({ ...request, - user: details.isRequestedByCurrentUser - ? user - : membersGroupById?.[request.requestedByUserId].user!, + user: + details.isRequestedByCurrentUser || + !membersGroupById?.[request.requestedByUserId].user + ? user + : membersGroupById?.[request.requestedByUserId].user, isRequestedByCurrentUser: details.isRequestedByCurrentUser, isApprover: details.isApprover }); @@ -376,7 +388,11 @@ export const AccessApprovalRequest = ({ details.isReviewedByUser || details.isRejectedByAnyone || (!details.isApprover && - !(details.isSoftEnforcement && details.isRequestedByCurrentUser)) + !( + details.isSoftEnforcement && + details.isRequestedByCurrentUser && + canBypassApprovalPermission + )) ) return; @@ -387,9 +403,11 @@ export const AccessApprovalRequest = ({ ) { setSelectedRequest({ ...request, - user: details.isRequestedByCurrentUser - ? user - : membersGroupById?.[request.requestedByUserId].user!, + user: + details.isRequestedByCurrentUser || + !membersGroupById?.[request.requestedByUserId].user + ? user + : membersGroupById?.[request.requestedByUserId].user, isRequestedByCurrentUser: details.isRequestedByCurrentUser, isApprover: details.isApprover }); @@ -463,6 +481,7 @@ export const AccessApprovalRequest = ({ setSelectedRequest(null); refetchRequests(); }} + canBypassApprovalPermission={canBypassApprovalPermission} /> )} diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx index d739d8bb6..5aaa0ea56 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx @@ -1,5 +1,8 @@ import { useCallback, useMemo, useState } from "react"; +import { faTriangleExclamation } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import ms from "ms"; +import { twMerge } from "tailwind-merge"; import { createNotification } from "@app/components/notifications"; import { Button, Checkbox, FormControl, Input, Modal, ModalContent } from "@app/components/v2"; @@ -8,9 +11,6 @@ import { ProjectPermissionActions } from "@app/context"; import { useReviewAccessRequest } from "@app/hooks/api"; import { TAccessApprovalRequest } from "@app/hooks/api/accessApproval/types"; import { EnforcementLevel } from "@app/hooks/api/policies/enums"; -import { twMerge } from "tailwind-merge"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faTriangleExclamation } from "@fortawesome/free-solid-svg-icons"; export const ReviewAccessRequestModal = ({ isOpen, @@ -18,7 +18,8 @@ export const ReviewAccessRequestModal = ({ request, projectSlug, selectedRequester, - selectedEnvSlug + selectedEnvSlug, + canBypassApprovalPermission }: { isOpen: boolean; onOpenChange: (isOpen: boolean) => void; @@ -30,6 +31,7 @@ export const ReviewAccessRequestModal = ({ projectSlug: string; selectedRequester: string | undefined; selectedEnvSlug: string | undefined; + canBypassApprovalPermission: boolean; }) => { const [isLoading, setIsLoading] = useState<"approved" | "rejected" | null>(null); const [bypassApproval, setBypassApproval] = useState(false); @@ -182,7 +184,11 @@ export const ReviewAccessRequestModal = ({ - {isSoftEnforcement && request.isRequestedByCurrentUser && !request.isApprover && ( -

- )} + + Approve without waiting for requirements to be met (bypass policy protection) + + + {bypassApproval && ( + + setBypassReason(e.currentTarget.value)} + placeholder="Enter reason for bypass (min 10 chars)" + leftIcon={} + /> + + )} + + )}
From c1fa344f0209cbb8eec525a0916c27e3dbd90939 Mon Sep 17 00:00:00 2001 From: x032205 Date: Wed, 21 May 2025 18:17:01 -0400 Subject: [PATCH 3/6] Greptile review fixes --- .../routes/v1/access-approval-request-router.ts | 2 +- .../platform/access-controls/access-requests.mdx | 2 +- docs/documentation/platform/pr-workflows.mdx | 4 +++- .../permissions/project-permissions.mdx | 16 ++++++++-------- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/backend/src/ee/routes/v1/access-approval-request-router.ts b/backend/src/ee/routes/v1/access-approval-request-router.ts index b55c611ba..010f8b2e7 100644 --- a/backend/src/ee/routes/v1/access-approval-request-router.ts +++ b/backend/src/ee/routes/v1/access-approval-request-router.ts @@ -156,7 +156,7 @@ export const registerAccessApprovalRequestRouter = async (server: FastifyZodProv body: z.object({ status: z.enum([ApprovalStatus.APPROVED, ApprovalStatus.REJECTED]), envName: z.string().optional(), // For logging - bypassReason: z.string().optional() + bypassReason: z.string().min(10).max(1000).optional() }), response: { 200: z.object({ diff --git a/docs/documentation/platform/access-controls/access-requests.mdx b/docs/documentation/platform/access-controls/access-requests.mdx index bdbabf9f7..58b21d4eb 100644 --- a/docs/documentation/platform/access-controls/access-requests.mdx +++ b/docs/documentation/platform/access-controls/access-requests.mdx @@ -19,7 +19,7 @@ This functionality works in the following way: ![Access Request Bypass](/images/platform/access-controls/access-request-bypass.png) - If the access request matches with a policy that has allows break-glass approval bypasses, the requester may bypass the policy and get access to the resource without full approval. + If the access request matches with a policy that allows break-glass approval bypasses, the requester may bypass the policy and get access to the resource without full approval. 5. As soon as the request is approved, developer is able to access the sought resources. diff --git a/docs/documentation/platform/pr-workflows.mdx b/docs/documentation/platform/pr-workflows.mdx index 2649e0454..610d1fd47 100644 --- a/docs/documentation/platform/pr-workflows.mdx +++ b/docs/documentation/platform/pr-workflows.mdx @@ -33,7 +33,9 @@ First, you would need to create a set of policies for a certain environment. In The enforcement level determines how strict the policy is. A **Hard** enforcement level means that any change that matches the policy will need full approval prior merging. A **Soft** enforcement level allows for break glass functionality on the request. If a change request is bypassed, the approvers will be notified via email. -You can use the **Soft** enforcement level by enabling "Bypass Approvals". + + Enabling the "Bypass Approvals" toggle during policy creation will create a **Soft** enforcement level. Disabling the toggle makes the enforcement level **Hard**. + ### Self approvals diff --git a/docs/internals/permissions/project-permissions.mdx b/docs/internals/permissions/project-permissions.mdx index 313a60c3c..8a12532a4 100644 --- a/docs/internals/permissions/project-permissions.mdx +++ b/docs/internals/permissions/project-permissions.mdx @@ -178,14 +178,14 @@ Supports conditions and permission inversion #### Subject: `secret-approval` -| Action | Description | -| --------------------- | ---------------------------------------------------------------------------- | -| `read` | View approval policies and requests | -| `create` | Create new approval policies | -| `edit` | Modify approval policies | -| `delete` | Remove approval policies | -| `allow-change-bypass` | Allow request creators to bypass policy in break-glass situations | -| `allow-access-bypass` | Allow request creators to bypass policy in break-glass situations | +| Action | Description | +| --------------------- | ----------------------------------------------------------------------------------- | +| `read` | View approval policies and requests | +| `create` | Create new approval policies | +| `edit` | Modify approval policies | +| `delete` | Remove approval policies | +| `allow-change-bypass` | Allow request creators to merge changes without approval in break-glass situations | +| `allow-access-bypass` | Allow request creators to access secrets without approval in break-glass situations | #### Subject: `secret-rotation` From 7041b88b9da3dbd90df77b48e9a467b4a04d6bb0 Mon Sep 17 00:00:00 2001 From: x032205 Date: Wed, 21 May 2025 18:44:08 -0400 Subject: [PATCH 4/6] license revert --- backend/src/ee/services/license/license-fns.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/ee/services/license/license-fns.ts b/backend/src/ee/services/license/license-fns.ts index d91529dd2..8ef91c6f8 100644 --- a/backend/src/ee/services/license/license-fns.ts +++ b/backend/src/ee/services/license/license-fns.ts @@ -50,8 +50,8 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ writeLimit: 200, secretsLimit: 40 }, - pkiEst: true, - enforceMfa: true, + pkiEst: false, + enforceMfa: false, projectTemplates: false, kmip: false, gateway: false, From 4d173ad1635d86c0250473c16a5fbedf3e6a6b80 Mon Sep 17 00:00:00 2001 From: x032205 Date: Wed, 21 May 2025 19:46:47 -0400 Subject: [PATCH 5/6] ui and backend improvements --- .../access-approval-request-service.ts | 147 +++++++++++------- .../AccessApprovalRequest.tsx | 55 ++++--- .../components/ReviewAccessModal.tsx | 15 +- 3 files changed, 129 insertions(+), 88 deletions(-) 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 20e954d44..f7ed787ac 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 @@ -386,7 +386,21 @@ export const accessApprovalRequestServiceFactory = ({ } const reviewStatus = await accessApprovalRequestReviewerDAL.transaction(async (tx) => { - const review = await accessApprovalRequestReviewerDAL.findOne( + const isBreakGlassApprovalAttempt = + policy.enforcementLevel === EnforcementLevel.Soft && + actorId === accessApprovalRequest.requestedByUserId && + status === ApprovalStatus.APPROVED; + + let reviewForThisActorProcessing: { + id: string; + requestId: string; + reviewerUserId: string; + status: string; + createdAt: Date; + updatedAt: Date; + }; + + const existingReviewByActorInTx = await accessApprovalRequestReviewerDAL.findOne( { requestId: accessApprovalRequest.id, reviewerUserId: actorId @@ -394,69 +408,82 @@ export const accessApprovalRequestServiceFactory = ({ tx ); - if (review) { - throw new BadRequestError({ message: "You have already reviewed this request" }); - } - - const newReview = await accessApprovalRequestReviewerDAL.create( - { - status, - requestId: accessApprovalRequest.id, - reviewerUserId: actorId - }, - tx - ); - - const allReviews = [...existingReviews, newReview]; - const approvedReviews = allReviews.filter((r) => r.status === ApprovalStatus.APPROVED); - - if (status === ApprovalStatus.APPROVED && approvedReviews.length >= policy.approvals) { - if (accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { - throw new BadRequestError({ message: "Temporary range is required for temporary access" }); - } - - let privilegeId: string | null = null; - - if (!accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { - // Permanent access - const privilege = await additionalPrivilegeDAL.create( - { - userId: accessApprovalRequest.requestedByUserId, - projectId: accessApprovalRequest.projectId, - slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, - permissions: JSON.stringify(accessApprovalRequest.permissions) - }, - tx - ); - privilegeId = privilege.id; + // Check if review exists for actor + if (existingReviewByActorInTx) { + // Check if breakglass re-approval + if (isBreakGlassApprovalAttempt && existingReviewByActorInTx.status === ApprovalStatus.APPROVED) { + reviewForThisActorProcessing = existingReviewByActorInTx; } else { - // Temporary access - const relativeTempAllocatedTimeInMs = ms(accessApprovalRequest.temporaryRange!); - const startTime = new Date(); - - const privilege = await additionalPrivilegeDAL.create( - { - userId: accessApprovalRequest.requestedByUserId, - projectId: accessApprovalRequest.projectId, - slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, - permissions: JSON.stringify(accessApprovalRequest.permissions), - isTemporary: true, // Explicitly set to true for the privilege - temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative, - temporaryRange: accessApprovalRequest.temporaryRange!, - temporaryAccessStartTime: startTime, - temporaryAccessEndTime: new Date(startTime.getTime() + relativeTempAllocatedTimeInMs) - }, - tx - ); - privilegeId = privilege.id; + throw new BadRequestError({ message: "You have already reviewed this request" }); } - await accessApprovalRequestDAL.updateById(accessApprovalRequest.id, { privilegeId }, tx); + } else { + reviewForThisActorProcessing = await accessApprovalRequestReviewerDAL.create( + { + status, + requestId: accessApprovalRequest.id, + reviewerUserId: actorId + }, + tx + ); } - const isSoftEnforcement = policy.enforcementLevel === EnforcementLevel.Soft; - const wasSelfRequestAndReview = actorId === accessApprovalRequest.requestedByUserId; + const otherReviews = existingReviews.filter((er) => er.reviewerUserId !== actorId); + const allUniqueReviews = [...otherReviews, reviewForThisActorProcessing]; - if (isSoftEnforcement && wasSelfRequestAndReview && status === ApprovalStatus.APPROVED) { + const approvedReviews = allUniqueReviews.filter((r) => r.status === ApprovalStatus.APPROVED); + const meetsStandardApprovalThreshold = approvedReviews.length >= policy.approvals; + + if ( + reviewForThisActorProcessing.status === ApprovalStatus.APPROVED && + (meetsStandardApprovalThreshold || isBreakGlassApprovalAttempt) + ) { + const currentRequestState = await accessApprovalRequestDAL.findById(accessApprovalRequest.id, tx); + let privilegeIdToSet = currentRequestState?.privilegeId || null; + + if (!privilegeIdToSet) { + if (accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { + throw new BadRequestError({ message: "Temporary range is required for temporary access" }); + } + + if (!accessApprovalRequest.isTemporary && !accessApprovalRequest.temporaryRange) { + // Permanent access + const privilege = await additionalPrivilegeDAL.create( + { + userId: accessApprovalRequest.requestedByUserId, + projectId: accessApprovalRequest.projectId, + slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, + permissions: JSON.stringify(accessApprovalRequest.permissions) + }, + tx + ); + privilegeIdToSet = privilege.id; + } else { + // Temporary access + const relativeTempAllocatedTimeInMs = ms(accessApprovalRequest.temporaryRange!); + const startTime = new Date(); + + const privilege = await additionalPrivilegeDAL.create( + { + userId: accessApprovalRequest.requestedByUserId, + projectId: accessApprovalRequest.projectId, + slug: `requested-privilege-${slugify(alphaNumericNanoId(12))}`, + permissions: JSON.stringify(accessApprovalRequest.permissions), + isTemporary: true, // Explicitly set to true for the privilege + temporaryMode: ProjectUserAdditionalPrivilegeTemporaryMode.Relative, + temporaryRange: accessApprovalRequest.temporaryRange!, + temporaryAccessStartTime: startTime, + temporaryAccessEndTime: new Date(startTime.getTime() + relativeTempAllocatedTimeInMs) + }, + tx + ); + privilegeIdToSet = privilege.id; + } + await accessApprovalRequestDAL.updateById(accessApprovalRequest.id, { privilegeId: privilegeIdToSet }, tx); + } + } + + // Send notification if this was a breakglass approval + if (isBreakGlassApprovalAttempt) { const cfg = getConfig(); const actingUser = await userDAL.findById(actorId, tx); @@ -491,7 +518,7 @@ export const accessApprovalRequestServiceFactory = ({ } } } - return newReview; + return reviewForThisActorProcessing; }); return reviewStatus; diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx index fd754b14c..bf89accd0 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx @@ -86,6 +86,7 @@ export const AccessApprovalRequest = ({ | (TAccessApprovalRequest & { user: { firstName?: string; lastName?: string; email?: string } | null; isRequestedByCurrentUser: boolean; + isSelfApproveAllowed: boolean; isApprover: boolean; }) | null @@ -351,18 +352,24 @@ export const AccessApprovalRequest = ({ role="button" tabIndex={0} onClick={() => { - if ( + // Whether the request has already been approved / rejected / reviewed + const isInactive = details.isAccepted || details.isReviewedByUser || - details.isRejectedByAnyone || - (!details.isApprover && - !( - details.isSoftEnforcement && - details.isRequestedByCurrentUser && - canBypassApprovalPermission - )) - ) - return; + details.isRejectedByAnyone; + + // Whether the current user can bypass policy + const canBypass = + details.isSoftEnforcement && + details.isRequestedByCurrentUser && + canBypassApprovalPermission; + + // Whether the current user can approve + const canApprove = + details.isApprover && + (!details.isRequestedByCurrentUser || details.isSelfApproveAllowed); + + if (isInactive || (!canApprove && !canBypass)) return; if ( membersGroupById?.[request.requestedByUserId].user || @@ -376,6 +383,7 @@ export const AccessApprovalRequest = ({ ? user : membersGroupById?.[request.requestedByUserId].user, isRequestedByCurrentUser: details.isRequestedByCurrentUser, + isSelfApproveAllowed: details.isSelfApproveAllowed, isApprover: details.isApprover }); } @@ -383,18 +391,24 @@ export const AccessApprovalRequest = ({ handlePopUpOpen("reviewRequest"); }} onKeyDown={(evt) => { - if ( + // Whether the request has already been approved / rejected / reviewed + const isInactive = details.isAccepted || details.isReviewedByUser || - details.isRejectedByAnyone || - (!details.isApprover && - !( - details.isSoftEnforcement && - details.isRequestedByCurrentUser && - canBypassApprovalPermission - )) - ) - return; + details.isRejectedByAnyone; + + // Whether the current user can bypass policy + const canBypass = + details.isSoftEnforcement && + details.isRequestedByCurrentUser && + canBypassApprovalPermission; + + // Whether the current user can approve + const canApprove = + details.isApprover && + (!details.isRequestedByCurrentUser || details.isSelfApproveAllowed); + + if (isInactive || (!canApprove && !canBypass)) return; if (evt.key === "Enter") { if ( @@ -409,6 +423,7 @@ export const AccessApprovalRequest = ({ ? user : membersGroupById?.[request.requestedByUserId].user, isRequestedByCurrentUser: details.isRequestedByCurrentUser, + isSelfApproveAllowed: details.isSelfApproveAllowed, isApprover: details.isApprover }); } diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx index 5aaa0ea56..f05d26c35 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx @@ -26,6 +26,7 @@ export const ReviewAccessRequestModal = ({ request: TAccessApprovalRequest & { user: { firstName?: string; lastName?: string; email?: string } | null; isRequestedByCurrentUser: boolean; + isSelfApproveAllowed: boolean; isApprover: boolean; }; projectSlug: string; @@ -155,7 +156,6 @@ export const ReviewAccessRequestModal = ({ )}{" "} is requesting access to the following resource: -
Requested path: @@ -179,16 +179,16 @@ export const ReviewAccessRequestModal = ({
)}
-
- {isSoftEnforcement && request.isRequestedByCurrentUser && - !request.isApprover && + !(request.isApprover && request.isSelfApproveAllowed) && canBypassApprovalPermission && (
Date: Fri, 23 May 2025 12:05:38 -0400 Subject: [PATCH 6/6] Review fixes: - Review envName from endpoint params and derive it - Use variables in logic blocks - New function on frontend + memoization --- .../v1/access-approval-request-router.ts | 2 - .../access-approval-request-service.ts | 22 +- .../src/hooks/api/accessApproval/mutation.tsx | 7 +- .../src/hooks/api/accessApproval/queries.tsx | 7 +- .../AccessApprovalRequest.tsx | 221 ++++++++---------- .../components/ReviewAccessModal.tsx | 2 - 6 files changed, 112 insertions(+), 149 deletions(-) diff --git a/backend/src/ee/routes/v1/access-approval-request-router.ts b/backend/src/ee/routes/v1/access-approval-request-router.ts index 010f8b2e7..d90f28184 100644 --- a/backend/src/ee/routes/v1/access-approval-request-router.ts +++ b/backend/src/ee/routes/v1/access-approval-request-router.ts @@ -155,7 +155,6 @@ export const registerAccessApprovalRequestRouter = async (server: FastifyZodProv }), body: z.object({ status: z.enum([ApprovalStatus.APPROVED, ApprovalStatus.REJECTED]), - envName: z.string().optional(), // For logging bypassReason: z.string().min(10).max(1000).optional() }), response: { @@ -173,7 +172,6 @@ export const registerAccessApprovalRequestRouter = async (server: FastifyZodProv actorAuthMethod: req.permission.authMethod, requestId: req.params.requestId, status: req.body.status, - envName: req.body.envName, bypassReason: req.body.bypassReason }); 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 f7ed787ac..017356a5d 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 @@ -326,7 +326,6 @@ export const accessApprovalRequestServiceFactory = ({ actorId, actorAuthMethod, actorOrgId, - envName, bypassReason }: TReviewAccessRequestDTO) => { const accessApprovalRequest = await accessApprovalRequestDAL.findById(requestId); @@ -334,7 +333,7 @@ export const accessApprovalRequestServiceFactory = ({ throw new NotFoundError({ message: `Secret approval request with ID '${requestId}' not found` }); } - const { policy } = accessApprovalRequest; + const { policy, environment } = accessApprovalRequest; if (policy.deletedAt) { throw new BadRequestError({ message: "The policy associated with this access request has been deleted." @@ -354,14 +353,15 @@ export const accessApprovalRequestServiceFactory = ({ throw new ForbiddenRequestError({ message: "You are not a member of this project" }); } - if ( - !policy.allowedSelfApprovals && - actorId === accessApprovalRequest.requestedByUserId && - !( - policy.enforcementLevel === EnforcementLevel.Soft && - permission.can(ProjectPermissionApprovalActions.AllowAccessBypass, ProjectPermissionSub.SecretApproval) - ) - ) { + const isSelfApproval = actorId === accessApprovalRequest.requestedByUserId; + const isSoftEnforcement = policy.enforcementLevel === EnforcementLevel.Soft; + const canBypassApproval = permission.can( + ProjectPermissionApprovalActions.AllowAccessBypass, + ProjectPermissionSub.SecretApproval + ); + const cannotBypassUnderSoftEnforcement = !(isSoftEnforcement && canBypassApproval); + + if (!policy.allowedSelfApprovals && isSelfApproval && cannotBypassUnderSoftEnforcement) { throw new BadRequestError({ message: "Failed to review access approval request. Users are not authorized to review their own request." }); @@ -508,7 +508,7 @@ export const accessApprovalRequestServiceFactory = ({ requesterEmail: actingUser.email, bypassReason: bypassReason || "No reason provided", secretPath: policy.secretPath || "/", - environment: envName || "Unknown", + environment, approvalUrl: `${cfg.SITE_URL}/secret-manager/${project.id}/approval`, requestType: "access" }, diff --git a/frontend/src/hooks/api/accessApproval/mutation.tsx b/frontend/src/hooks/api/accessApproval/mutation.tsx index 9ba895311..c0da7af23 100644 --- a/frontend/src/hooks/api/accessApproval/mutation.tsx +++ b/frontend/src/hooks/api/accessApproval/mutation.tsx @@ -129,30 +129,27 @@ export const useReviewAccessRequest = () => { requestId: string; status: "approved" | "rejected"; projectSlug: string; - envName?: string; envSlug?: string; requestedBy?: string; bypassReason?: string; } >({ - mutationFn: async ({ requestId, status, envName, bypassReason }) => { + mutationFn: async ({ requestId, status, bypassReason }) => { const { data } = await apiRequest.post( `/api/v1/access-approvals/requests/${requestId}/review`, { status, - envName, bypassReason } ); return data; }, - onSuccess: (_, { projectSlug, envSlug, requestedBy, envName, bypassReason }) => { + onSuccess: (_, { projectSlug, envSlug, requestedBy, bypassReason }) => { queryClient.invalidateQueries({ queryKey: accessApprovalKeys.getAccessApprovalRequests( projectSlug, envSlug, requestedBy, - envName, bypassReason ) }); diff --git a/frontend/src/hooks/api/accessApproval/queries.tsx b/frontend/src/hooks/api/accessApproval/queries.tsx index 0f666af7a..6370f4a59 100644 --- a/frontend/src/hooks/api/accessApproval/queries.tsx +++ b/frontend/src/hooks/api/accessApproval/queries.tsx @@ -23,13 +23,8 @@ export const accessApprovalKeys = { projectSlug: string, envSlug?: string, requestedBy?: string, - envName?: string, bypassReason?: string - ) => - [ - { projectSlug, envSlug, requestedBy, envName, bypassReason }, - "access-approvals-requests" - ] as const, + ) => [{ projectSlug, envSlug, requestedBy, bypassReason }, "access-approvals-requests"] as const, getAccessApprovalRequestCount: (projectSlug: string) => [{ projectSlug }, "access-approval-request-count"] as const }; diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx index bf89accd0..7d5e1540a 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/AccessApprovalRequest.tsx @@ -1,6 +1,6 @@ /* eslint-disable no-nested-ternary */ /* eslint-disable react/jsx-no-useless-fragment */ -import { useMemo, useState } from "react"; +import { useCallback, useMemo, useState } from "react"; import { faCheck, faCheckCircle, @@ -150,56 +150,105 @@ export const AccessApprovalRequest = ({ return requests; }, [requests, statusFilter, requestedByFilter, envFilter]); - const generateRequestDetails = (request: TAccessApprovalRequest) => { - const isReviewedByUser = request.reviewers.findIndex(({ member }) => member === user.id) !== -1; - const isRejectedByAnyone = request.reviewers.some( - ({ status }) => status === ApprovalStatus.REJECTED - ); - const isApprover = request.policy.approvers.indexOf(user.id || "") !== -1; - const isAccepted = request.isApproved; - const isSoftEnforcement = request.policy.enforcementLevel === EnforcementLevel.Soft; - const isRequestedByCurrentUser = request.requestedByUserId === user.id; - const isSelfApproveAllowed = request.policy.allowedSelfApprovals; - const userReviewStatus = request.reviewers.find(({ member }) => member === user.id)?.status; + const generateRequestDetails = useCallback( + (request: TAccessApprovalRequest) => { + const isReviewedByUser = + request.reviewers.findIndex(({ member }) => member === user.id) !== -1; + const isRejectedByAnyone = request.reviewers.some( + ({ status }) => status === ApprovalStatus.REJECTED + ); + const isApprover = request.policy.approvers.indexOf(user.id || "") !== -1; + const isAccepted = request.isApproved; + const isSoftEnforcement = request.policy.enforcementLevel === EnforcementLevel.Soft; + const isRequestedByCurrentUser = request.requestedByUserId === user.id; + const isSelfApproveAllowed = request.policy.allowedSelfApprovals; + const userReviewStatus = request.reviewers.find(({ member }) => member === user.id)?.status; - let displayData: { label: string; type: "primary" | "danger" | "success" } = { - label: "", - type: "primary" - }; - - const isExpired = - request.privilege && - request.isApproved && - new Date() > new Date(request.privilege.temporaryAccessEndTime || ("" as string)); - - if (isExpired) displayData = { label: "Access Expired", type: "danger" }; - else if (isAccepted) displayData = { label: "Access Granted", type: "success" }; - else if (isRejectedByAnyone) displayData = { label: "Rejected", type: "danger" }; - else if (userReviewStatus === ApprovalStatus.APPROVED) { - displayData = { - label: `Pending ${request.policy.approvals - request.reviewers.length} review${ - request.policy.approvals - request.reviewers.length > 1 ? "s" : "" - }`, - type: "primary" - }; - } else if (!isReviewedByUser) - displayData = { - label: "Review Required", + let displayData: { label: string; type: "primary" | "danger" | "success" } = { + label: "", type: "primary" }; - return { - displayData, - isReviewedByUser, - isRejectedByAnyone, - isApprover, - userReviewStatus, - isAccepted, - isSoftEnforcement, - isRequestedByCurrentUser, - isSelfApproveAllowed - }; - }; + const isExpired = + request.privilege && + request.isApproved && + new Date() > new Date(request.privilege.temporaryAccessEndTime || ("" as string)); + + if (isExpired) displayData = { label: "Access Expired", type: "danger" }; + else if (isAccepted) displayData = { label: "Access Granted", type: "success" }; + else if (isRejectedByAnyone) displayData = { label: "Rejected", type: "danger" }; + else if (userReviewStatus === ApprovalStatus.APPROVED) { + displayData = { + label: `Pending ${request.policy.approvals - request.reviewers.length} review${ + request.policy.approvals - request.reviewers.length > 1 ? "s" : "" + }`, + type: "primary" + }; + } else if (!isReviewedByUser) + displayData = { + label: "Review Required", + type: "primary" + }; + + return { + displayData, + isReviewedByUser, + isRejectedByAnyone, + isApprover, + userReviewStatus, + isAccepted, + isSoftEnforcement, + isRequestedByCurrentUser, + isSelfApproveAllowed + }; + }, + [user] + ); + + const handleSelectRequest = useCallback( + (request: TAccessApprovalRequest) => { + const details = generateRequestDetails(request); + + // Whether the request has already been approved / rejected / reviewed + const isInactive = + details.isAccepted || details.isReviewedByUser || details.isRejectedByAnyone; + + // Whether the current user can bypass policy + const canBypass = + details.isSoftEnforcement && + details.isRequestedByCurrentUser && + canBypassApprovalPermission; + + // Whether the current user can approve + const canApprove = + details.isApprover && (!details.isRequestedByCurrentUser || details.isSelfApproveAllowed); + + if (isInactive || (!canApprove && !canBypass)) return; + + if (membersGroupById?.[request.requestedByUserId].user || details.isRequestedByCurrentUser) { + setSelectedRequest({ + ...request, + user: + details.isRequestedByCurrentUser || !membersGroupById?.[request.requestedByUserId].user + ? user + : membersGroupById?.[request.requestedByUserId].user, + isRequestedByCurrentUser: details.isRequestedByCurrentUser, + isSelfApproveAllowed: details.isSelfApproveAllowed, + isApprover: details.isApprover + }); + } + + handlePopUpOpen("reviewRequest"); + }, + [ + generateRequestDetails, + canBypassApprovalPermission, + membersGroupById, + user, + setSelectedRequest, + handlePopUpOpen + ] + ); return (
@@ -351,84 +400,10 @@ export const AccessApprovalRequest = ({ className="flex w-full cursor-pointer px-8 py-4 hover:bg-mineshaft-700 aria-disabled:opacity-80" role="button" tabIndex={0} - onClick={() => { - // Whether the request has already been approved / rejected / reviewed - const isInactive = - details.isAccepted || - details.isReviewedByUser || - details.isRejectedByAnyone; - - // Whether the current user can bypass policy - const canBypass = - details.isSoftEnforcement && - details.isRequestedByCurrentUser && - canBypassApprovalPermission; - - // Whether the current user can approve - const canApprove = - details.isApprover && - (!details.isRequestedByCurrentUser || details.isSelfApproveAllowed); - - if (isInactive || (!canApprove && !canBypass)) return; - - if ( - membersGroupById?.[request.requestedByUserId].user || - details.isRequestedByCurrentUser - ) { - setSelectedRequest({ - ...request, - user: - details.isRequestedByCurrentUser || - !membersGroupById?.[request.requestedByUserId].user - ? user - : membersGroupById?.[request.requestedByUserId].user, - isRequestedByCurrentUser: details.isRequestedByCurrentUser, - isSelfApproveAllowed: details.isSelfApproveAllowed, - isApprover: details.isApprover - }); - } - - handlePopUpOpen("reviewRequest"); - }} + onClick={() => handleSelectRequest(request)} onKeyDown={(evt) => { - // Whether the request has already been approved / rejected / reviewed - const isInactive = - details.isAccepted || - details.isReviewedByUser || - details.isRejectedByAnyone; - - // Whether the current user can bypass policy - const canBypass = - details.isSoftEnforcement && - details.isRequestedByCurrentUser && - canBypassApprovalPermission; - - // Whether the current user can approve - const canApprove = - details.isApprover && - (!details.isRequestedByCurrentUser || details.isSelfApproveAllowed); - - if (isInactive || (!canApprove && !canBypass)) return; - if (evt.key === "Enter") { - if ( - membersGroupById?.[request.requestedByUserId].user || - details.isRequestedByCurrentUser - ) { - setSelectedRequest({ - ...request, - user: - details.isRequestedByCurrentUser || - !membersGroupById?.[request.requestedByUserId].user - ? user - : membersGroupById?.[request.requestedByUserId].user, - isRequestedByCurrentUser: details.isRequestedByCurrentUser, - isSelfApproveAllowed: details.isSelfApproveAllowed, - isApprover: details.isApprover - }); - } - - handlePopUpOpen("reviewRequest"); + handleSelectRequest(request); } }} > diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx index f05d26c35..0b9f84008 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/AccessApprovalRequest/components/ReviewAccessModal.tsx @@ -104,7 +104,6 @@ export const ReviewAccessRequestModal = ({ requestId: request.id, status, projectSlug, - envName: accessDetails.env, envSlug: selectedEnvSlug, requestedBy: selectedRequester, bypassReason: bypassApproval ? bypassReason : undefined @@ -129,7 +128,6 @@ export const ReviewAccessRequestModal = ({ bypassReason, reviewAccessRequest, request, - accessDetails.env, selectedEnvSlug, selectedRequester, onOpenChange