From aa2c2c1ad276037c0ce4e95be628fdee6e76149e Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Mon, 19 May 2025 16:47:56 +0100 Subject: [PATCH 001/497] fix(backend): Force process exit on execution manager cleanup --- autogpt_platform/backend/backend/executor/manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index 9448df4f82..670458dbd4 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -1111,6 +1111,7 @@ class ExecutionManager(AppProcess): redis.disconnect() log(f"{prefix} ✅ Finished GraphExec cleanup") + exit(0) # ------- UTILITIES ------- # From 694f7011943a41c89a1fbb69bcbb9131f9a2f5b8 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Mon, 19 May 2025 16:47:56 +0100 Subject: [PATCH 002/497] fix(backend): Force process exit on execution manager cleanup --- autogpt_platform/backend/backend/executor/manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index 9448df4f82..670458dbd4 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -1111,6 +1111,7 @@ class ExecutionManager(AppProcess): redis.disconnect() log(f"{prefix} ✅ Finished GraphExec cleanup") + exit(0) # ------- UTILITIES ------- # From ac532ca4b9346991857a47304cd397284f0a3cc7 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Mon, 19 May 2025 23:15:39 +0200 Subject: [PATCH 003/497] fix(backend): Graph execution update on terminate (#9952) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves #9947 ### Changes 🏗️ Backend: - Send a graph execution update after terminating a run - Don't wipe the graph execution stats when not passed in to `update_graph_execution_stats` Frontend: - Don't hide the output of stopped runs ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Go to `/library/agents/[id]` - Run an agent that takes a while (long enough to click stop and see the effect) - Hit stop after it has executed a few nodes - [x] -> run status should change to "Stopped" - [x] -> run stats (steps, duration, cost) should stay the same or increase only one last time - [x] -> output so far should be visible - [x] -> shown information should stay the same after refreshing the page --- Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com> --- .../backend/backend/data/execution.py | 18 +++++++++++------- .../backend/backend/server/routers/v1.py | 9 ++++++--- .../agents/agent-run-details-view.tsx | 3 ++- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/autogpt_platform/backend/backend/data/execution.py b/autogpt_platform/backend/backend/data/execution.py index 55b184a147..a89cb8d77c 100644 --- a/autogpt_platform/backend/backend/data/execution.py +++ b/autogpt_platform/backend/backend/data/execution.py @@ -24,6 +24,7 @@ from prisma.models import ( ) from prisma.types import ( AgentGraphExecutionCreateInput, + AgentGraphExecutionUpdateManyMutationInput, AgentGraphExecutionWhereInput, AgentNodeExecutionCreateInput, AgentNodeExecutionInputOutputCreateInput, @@ -572,9 +573,15 @@ async def update_graph_execution_stats( status: ExecutionStatus, stats: GraphExecutionStats | None = None, ) -> GraphExecution | None: - data = stats.model_dump() if stats else {} - if isinstance(data.get("error"), Exception): - data["error"] = str(data["error"]) + update_data: AgentGraphExecutionUpdateManyMutationInput = { + "executionStatus": status + } + + if stats: + stats_dict = stats.model_dump() + if isinstance(stats_dict.get("error"), Exception): + stats_dict["error"] = str(stats_dict["error"]) + update_data["stats"] = Json(stats_dict) updated_count = await AgentGraphExecution.prisma().update_many( where={ @@ -584,10 +591,7 @@ async def update_graph_execution_stats( {"executionStatus": ExecutionStatus.QUEUED}, ], }, - data={ - "executionStatus": status, - "stats": Json(data), - }, + data=update_data, ) if updated_count == 0: return None diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/server/routers/v1.py index efd43a5c2d..25ddb13145 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/server/routers/v1.py @@ -660,11 +660,15 @@ async def _cancel_execution(graph_exec_id: str): exchange=execution_utils.GRAPH_EXECUTION_CANCEL_EXCHANGE, ) - # Update the status of the graph & node executions - await execution_db.update_graph_execution_stats( + # Update the status of the graph execution + graph_execution = await execution_db.update_graph_execution_stats( graph_exec_id, execution_db.ExecutionStatus.TERMINATED, ) + if graph_execution: + await execution_event_bus().publish(graph_execution) + + # Update the status of the node executions node_execs = [ node_exec.model_copy(update={"status": execution_db.ExecutionStatus.TERMINATED}) for node_exec in await execution_db.get_node_executions( @@ -676,7 +680,6 @@ async def _cancel_execution(graph_exec_id: str): ], ) ] - await execution_db.update_node_execution_status_batch( [node_exec.node_exec_id for node_exec in node_execs], execution_db.ExecutionStatus.TERMINATED, diff --git a/autogpt_platform/frontend/src/components/agents/agent-run-details-view.tsx b/autogpt_platform/frontend/src/components/agents/agent-run-details-view.tsx index 49755104e9..8d691b2d46 100644 --- a/autogpt_platform/frontend/src/components/agents/agent-run-details-view.tsx +++ b/autogpt_platform/frontend/src/components/agents/agent-run-details-view.tsx @@ -133,7 +133,8 @@ export default function AgentRunDetailsView({ | null | undefined = useMemo(() => { if (!("outputs" in run)) return undefined; - if (!["running", "success", "failed"].includes(runStatus)) return null; + if (!["running", "success", "failed", "stopped"].includes(runStatus)) + return null; // Add type info from agent input schema return Object.fromEntries( From 0a79e1c5fd2a21e93a954144c733677aca3af081 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Mon, 19 May 2025 23:17:06 +0200 Subject: [PATCH 004/497] feat(frontend/library): Show toast on WebSocket (dis|re)connect (#9949) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Resolves #9941 - Follow-up to #9935 ### Changes 🏗️ - Show toast when WS connection (dis|re)connects (on `/library/agents/[id]`) - Implement `BackendAPI.onWebSocketDisconnect` Related improvements: - Clean up WebSocket state management & logging in `BackendAPI` - Clean up & split loading spinner implementation: `Spinner` -> `LoadingBox` + `LoadingSpinner` Also, unrelated: - fix(frontend/library): Add 2 second debounce to page refresh logic This eliminates 3 triple API calls (so 9 -> 3 total) on page load: `GET /library/agents/{agent_id}`, `GET /graphs/{graph_id}/executions`, and `GET /graphs/{graph_id}/executions/{exec_id}` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Start the frontend and backend applications (locally) - Navigate to `/library/agents/[id]` - Kill the backend - [x] -> a toast should appear "Connection to server was lost" - [x] -> this toast should be shown as long as the server is down - Re-start the backend - [x] -> toast should change to show "Connection re-established" - [x] -> toast should now disappear after 2 seconds --- Co-authored-by: Krzysztof Czerwinski --- .../(platform)/library/agents/[id]/page.tsx | 45 +++++++++++++++- .../src/app/(platform)/login/page.tsx | 4 +- .../profile/(user)/integrations/page.tsx | 4 +- .../app/(platform)/reset_password/page.tsx | 4 +- .../src/app/(platform)/signup/page.tsx | 4 +- .../frontend/src/components/Spinner.tsx | 11 ---- .../onboarding/OnboardingButton.tsx | 8 +-- .../frontend/src/components/ui/loading.tsx | 26 +++++++++ .../frontend/src/components/ui/toaster.tsx | 20 ++++--- .../frontend/src/components/ui/use-toast.tsx | 1 + .../src/lib/autogpt-server-api/client.ts | 53 +++++++++++++++---- 11 files changed, 140 insertions(+), 40 deletions(-) delete mode 100644 autogpt_platform/frontend/src/components/Spinner.tsx create mode 100644 autogpt_platform/frontend/src/components/ui/loading.tsx diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx index 9a6cbd3c62..61f4a9c6af 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx @@ -39,9 +39,11 @@ import { } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { useToast } from "@/components/ui/use-toast"; +import { LoadingSpinner } from "@/components/ui/loading"; export default function AgentRunsPage(): React.ReactElement { const { id: agentID }: { id: LibraryAgentID } = useParams(); + const { toast } = useToast(); const router = useRouter(); const api = useBackendAPI(); @@ -69,7 +71,6 @@ export default function AgentRunsPage(): React.ReactElement { const { state: onboardingState, updateState: updateOnboardingState } = useOnboarding(); const [copyAgentDialogOpen, setCopyAgentDialogOpen] = useState(false); - const { toast } = useToast(); const openRunDraftView = useCallback(() => { selectView({ type: "run" }); @@ -120,7 +121,11 @@ export default function AgentRunsPage(): React.ReactElement { } }, [selectedRun, onboardingState, updateOnboardingState]); + const lastRefresh = useRef(0); const refreshPageData = useCallback(() => { + if (Date.now() - lastRefresh.current < 2e3) return; // 2 second debounce + lastRefresh.current = Date.now(); + api.getLibraryAgent(agentID).then((agent) => { setAgent(agent); @@ -156,6 +161,44 @@ export default function AgentRunsPage(): React.ReactElement { // Initial load useEffect(() => { refreshPageData(); + + // Show a toast when the WebSocket connection disconnects + let connectionToast: ReturnType | null = null; + const cancelDisconnectHandler = api.onWebSocketDisconnect(() => { + connectionToast ??= toast({ + title: "Connection to server was lost", + variant: "destructive", + description: ( +
+ Trying to reconnect... + +
+ ), + duration: Infinity, // show until connection is re-established + dismissable: false, + }); + }); + const cancelConnectHandler = api.onWebSocketConnect(() => { + if (connectionToast) + connectionToast.update({ + id: connectionToast.id, + title: "✅ Connection re-established", + variant: "default", + description: ( +
+ Refreshing data... + +
+ ), + duration: 2000, + dismissable: true, + }); + connectionToast = null; + }); + return () => { + cancelDisconnectHandler(); + cancelConnectHandler(); + }; }, []); // Subscribe to WebSocket updates for agent runs diff --git a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx index a58b5980eb..b13cfc8acd 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx @@ -16,7 +16,7 @@ import { useCallback, useState } from "react"; import { useRouter } from "next/navigation"; import Link from "next/link"; import useSupabase from "@/hooks/useSupabase"; -import Spinner from "@/components/Spinner"; +import LoadingBox from "@/components/ui/loading"; import { AuthCard, AuthHeader, @@ -98,7 +98,7 @@ export default function LoginPage() { } if (isUserLoading || user) { - return ; + return ; } if (!supabase) { diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx index 534c50bce1..710ee10592 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx @@ -27,7 +27,7 @@ import { AlertDialogTitle, } from "@/components/ui/alert-dialog"; import useSupabase from "@/hooks/useSupabase"; -import Spinner from "@/components/Spinner"; +import LoadingBox from "@/components/ui/loading"; export default function PrivatePage() { const { supabase, user, isUserLoading } = useSupabase(); @@ -123,7 +123,7 @@ export default function PrivatePage() { ); if (isUserLoading) { - return ; + return ; } if (!user || !supabase) { diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx index fe9e14e4a2..116dbfdff5 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx @@ -24,7 +24,7 @@ import { useCallback, useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { changePassword, sendResetEmail } from "./actions"; -import Spinner from "@/components/Spinner"; +import LoadingBox from "@/components/ui/loading"; import { getBehaveAs } from "@/lib/utils"; import { useTurnstile } from "@/hooks/useTurnstile"; @@ -134,7 +134,7 @@ export default function ResetPasswordPage() { ); if (isUserLoading) { - return ; + return ; } if (!supabase) { diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx index a6d017456c..68871c77f2 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx @@ -18,7 +18,7 @@ import { useRouter } from "next/navigation"; import Link from "next/link"; import { Checkbox } from "@/components/ui/checkbox"; import useSupabase from "@/hooks/useSupabase"; -import Spinner from "@/components/Spinner"; +import LoadingBox from "@/components/ui/loading"; import { AuthCard, AuthHeader, @@ -94,7 +94,7 @@ export default function SignupPage() { } if (isUserLoading || user) { - return ; + return ; } if (!supabase) { diff --git a/autogpt_platform/frontend/src/components/Spinner.tsx b/autogpt_platform/frontend/src/components/Spinner.tsx deleted file mode 100644 index 4e2b83972e..0000000000 --- a/autogpt_platform/frontend/src/components/Spinner.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { LoaderCircle } from "lucide-react"; - -export default function Spinner({ className }: { className?: string }) { - const spinnerClasses = `mr-2 h-16 w-16 animate-spin ${className || ""}`; - - return ( -
- -
- ); -} diff --git a/autogpt_platform/frontend/src/components/onboarding/OnboardingButton.tsx b/autogpt_platform/frontend/src/components/onboarding/OnboardingButton.tsx index 1a40271d9c..9c6d746ffc 100644 --- a/autogpt_platform/frontend/src/components/onboarding/OnboardingButton.tsx +++ b/autogpt_platform/frontend/src/components/onboarding/OnboardingButton.tsx @@ -1,7 +1,7 @@ +import { useCallback, useMemo, useState } from "react"; +import { LoadingSpinner } from "@/components/ui/loading"; import { cn } from "@/lib/utils"; import Link from "next/link"; -import { useCallback, useMemo, useState } from "react"; -import Spinner from "../Spinner"; const variants = { default: "bg-zinc-700 hover:bg-zinc-800", @@ -55,7 +55,7 @@ export default function OnboardingButton({ if (href && !disabled) { return ( - {isLoading && } + {isLoading && } {icon && !isLoading && <>{icon}} {children} @@ -68,7 +68,7 @@ export default function OnboardingButton({ disabled={disabled} className={buttonClasses} > - {isLoading && } + {isLoading && } {icon && !isLoading && <>{icon}} {children} diff --git a/autogpt_platform/frontend/src/components/ui/loading.tsx b/autogpt_platform/frontend/src/components/ui/loading.tsx new file mode 100644 index 0000000000..86746c0502 --- /dev/null +++ b/autogpt_platform/frontend/src/components/ui/loading.tsx @@ -0,0 +1,26 @@ +import { cn } from "@/lib/utils"; +import { LoaderCircle } from "lucide-react"; + +export default function LoadingBox({ + className, + spinnerSize, +}: { + className?: string; + spinnerSize?: string | number; +}) { + const spinnerSizeClass = + typeof spinnerSize == "string" + ? `size-[${spinnerSize}]` + : typeof spinnerSize == "number" + ? `size-${spinnerSize}` + : undefined; + return ( +
+ +
+ ); +} + +export function LoadingSpinner({ className }: { className?: string }) { + return ; +} diff --git a/autogpt_platform/frontend/src/components/ui/toaster.tsx b/autogpt_platform/frontend/src/components/ui/toaster.tsx index 7d82ed5571..3e5555ddc3 100644 --- a/autogpt_platform/frontend/src/components/ui/toaster.tsx +++ b/autogpt_platform/frontend/src/components/ui/toaster.tsx @@ -13,10 +13,18 @@ import { useToast } from "@/components/ui/use-toast"; export function Toaster() { const { toasts } = useToast(); + // This neat little feature makes the toaster buggy due to the following issue: + // https://github.com/radix-ui/primitives/issues/2233 + // TODO: Re-enable when the above issue is fixed: + // const swipeThreshold = toasts.some((toast) => toast.dismissable === false) + // ? Infinity + // : undefined; + const swipeThreshold = undefined; + return ( - - {toasts.map(function ({ id, title, description, action, ...props }) { - return ( + + {toasts.map( + ({ id, title, description, action, dismissable, ...props }) => (
{title && {title}} @@ -25,10 +33,10 @@ export function Toaster() { )}
{action} - + {dismissable !== false && }
- ); - })} + ), + )}
); diff --git a/autogpt_platform/frontend/src/components/ui/use-toast.tsx b/autogpt_platform/frontend/src/components/ui/use-toast.tsx index 6135989113..dc758a8569 100644 --- a/autogpt_platform/frontend/src/components/ui/use-toast.tsx +++ b/autogpt_platform/frontend/src/components/ui/use-toast.tsx @@ -13,6 +13,7 @@ type ToasterToast = ToastProps & { title?: React.ReactNode; description?: React.ReactNode; action?: ToastActionElement; + dismissable?: boolean; }; const actionTypes = { diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts index c4029eca2a..889bab56d2 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts @@ -68,6 +68,7 @@ export default class BackendAPI { private webSocket: WebSocket | null = null; private wsConnecting: Promise | null = null; private wsOnConnectHandlers: Set<() => void> = new Set(); + private wsOnDisconnectHandlers: Set<() => void> = new Set(); private wsMessageHandlers: Record void>> = {}; readonly HEARTBEAT_INTERVAL = 100_000; // 100 seconds @@ -939,43 +940,69 @@ export default class BackendAPI { return () => this.wsOnConnectHandlers.delete(handler); } + /** + * All handlers are invoked when the WebSocket disconnects. + * + * @returns a detacher for the passed handler. + */ + onWebSocketDisconnect(handler: () => void): () => void { + this.wsOnDisconnectHandlers.add(handler); + + // Return detacher + return () => this.wsOnDisconnectHandlers.delete(handler); + } + async connectWebSocket(): Promise { - this.wsConnecting ??= new Promise(async (resolve, reject) => { + return (this.wsConnecting ??= new Promise(async (resolve, reject) => { try { const token = (await this.supabaseClient?.auth.getSession())?.data.session ?.access_token || ""; const wsUrlWithToken = `${this.wsUrl}?token=${token}`; this.webSocket = new WebSocket(wsUrlWithToken); + this.webSocket.state = "connecting"; this.webSocket.onopen = () => { + this.webSocket!.state = "connected"; + console.info("[BackendAPI] WebSocket connected to", this.wsUrl); this._startWSHeartbeat(); // Start heartbeat when connection opens this.wsOnConnectHandlers.forEach((handler) => handler()); resolve(); }; this.webSocket.onclose = (event) => { - console.warn("WebSocket connection closed", event); + if (this.webSocket?.state == "connecting") { + console.error( + `[BackendAPI] WebSocket failed to connect: ${event.reason}`, + event, + ); + } else if (this.webSocket?.state == "connected") { + console.warn( + `[BackendAPI] WebSocket connection closed: ${event.reason}`, + event, + ); + } + this.webSocket!.state = "closed"; + this._stopWSHeartbeat(); // Stop heartbeat when connection closes this.wsConnecting = null; + this.wsOnDisconnectHandlers.forEach((handler) => handler()); // Attempt to reconnect after a delay - setTimeout(() => this.connectWebSocket(), 1000); + setTimeout(() => this.connectWebSocket().then(resolve), 1000); }; this.webSocket.onerror = (error) => { - console.error("WebSocket error:", error); - this._stopWSHeartbeat(); // Stop heartbeat on error - this.wsConnecting = null; - reject(error); + if (this.webSocket?.state == "connected") { + console.error("[BackendAPI] WebSocket error:", error); + } }; this.webSocket.onmessage = (event) => this._handleWSMessage(event); } catch (error) { - console.error("Error connecting to WebSocket:", error); + console.error("[BackendAPI] Error connecting to WebSocket:", error); reject(error); } - }); - return this.wsConnecting; + })); } disconnectWebSocket() { @@ -1044,6 +1071,12 @@ export default class BackendAPI { } } +declare global { + interface WebSocket { + state: "connecting" | "connected" | "closed"; + } +} + /* *** UTILITY TYPES *** */ type GraphCreateRequestBody = { From cf9cf4e7dd475cb2de051afa31e62650a7c4a7dd Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Tue, 20 May 2025 15:38:09 +0200 Subject: [PATCH 005/497] refactor(frontend): Move `OttoChatWidget` out of root layout (#9951) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Resolves #9950 ### Changes 🏗️ - Move `` from root layout into `FlowEditor` - Pass graph info directly into `OttoChatWidget` instead of using `useAgentGraph` - Rearrange z-indices of elements in the builder ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Go to `/build` - [x] -> chat widget should show up in the bottom right corner - Open the widget and ask Otto something - [x] -> should work normally - Add a few blocks and save the graph - [x] -> "Include graph data" should show up - Click "Include graph data" and ask Otto something about your graph - [x] -> Otto should be aware of the graph structure and metadata --- autogpt_platform/frontend/src/app/layout.tsx | 4 -- .../frontend/src/components/Flow.tsx | 13 +++++- .../src/components/OttoChatWidget.tsx | 44 ++++++++++--------- .../src/components/PrimaryActionButton.tsx | 20 ++++++--- .../frontend/src/components/TallyPopup.tsx | 2 +- 5 files changed, 49 insertions(+), 34 deletions(-) diff --git a/autogpt_platform/frontend/src/app/layout.tsx b/autogpt_platform/frontend/src/app/layout.tsx index 421ada1ced..a812f076c5 100644 --- a/autogpt_platform/frontend/src/app/layout.tsx +++ b/autogpt_platform/frontend/src/app/layout.tsx @@ -10,7 +10,6 @@ import "./globals.css"; import { Toaster } from "@/components/ui/toaster"; import { Providers } from "@/app/providers"; import TallyPopupSimple from "@/components/TallyPopup"; -import OttoChatWidget from "@/components/OttoChatWidget"; import { GoogleAnalytics } from "@/components/analytics/google-analytics"; const inter = Inter({ subsets: ["latin"], variable: "--font-inter" }); @@ -57,9 +56,6 @@ export default async function RootLayout({
{children} - - -
diff --git a/autogpt_platform/frontend/src/components/Flow.tsx b/autogpt_platform/frontend/src/components/Flow.tsx index 9b62ac9507..8210b9966c 100644 --- a/autogpt_platform/frontend/src/components/Flow.tsx +++ b/autogpt_platform/frontend/src/components/Flow.tsx @@ -1,11 +1,12 @@ "use client"; import React, { + createContext, useState, useCallback, useEffect, useRef, MouseEvent, - createContext, + Suspense, } from "react"; import { ReactFlow, @@ -48,6 +49,7 @@ import RunnerUIWrapper, { RunnerUIWrapperRef, } from "@/components/RunnerUIWrapper"; import PrimaryActionBar from "@/components/PrimaryActionButton"; +import OttoChatWidget from "@/components/OttoChatWidget"; import { useToast } from "@/components/ui/use-toast"; import { useCopyPaste } from "../hooks/useCopyPaste"; import { CronScheduler } from "./cronScheduler"; @@ -676,7 +678,7 @@ const FlowEditor: React.FC<{ runnerUIRef.current?.openRunnerOutput()} onClickRunAgent={() => { if (!savedAgent) { @@ -740,6 +743,12 @@ const FlowEditor: React.FC<{ scheduleRunner={scheduleRunner} requestSaveAndRun={requestSaveAndRun} /> + + + ); }; diff --git a/autogpt_platform/frontend/src/components/OttoChatWidget.tsx b/autogpt_platform/frontend/src/components/OttoChatWidget.tsx index 13e6252fa9..3e111165a8 100644 --- a/autogpt_platform/frontend/src/components/OttoChatWidget.tsx +++ b/autogpt_platform/frontend/src/components/OttoChatWidget.tsx @@ -1,32 +1,30 @@ "use client"; import React, { useEffect, useState, useRef } from "react"; -import { useSearchParams, usePathname } from "next/navigation"; -import { useToast } from "@/components/ui/use-toast"; -import useAgentGraph from "../hooks/useAgentGraph"; import ReactMarkdown from "react-markdown"; -import { GraphID } from "@/lib/autogpt-server-api/types"; + +import type { GraphID } from "@/lib/autogpt-server-api/types"; import { askOtto } from "@/app/(platform)/build/actions"; +import { cn } from "@/lib/utils"; interface Message { type: "user" | "assistant"; content: string; } -const OttoChatWidget = () => { +export default function OttoChatWidget({ + graphID, + className, +}: { + graphID?: GraphID; + className?: string; +}): React.ReactNode { const [isOpen, setIsOpen] = useState(false); const [messages, setMessages] = useState([]); const [inputValue, setInputValue] = useState(""); const [isProcessing, setIsProcessing] = useState(false); const [includeGraphData, setIncludeGraphData] = useState(false); const messagesEndRef = useRef(null); - const searchParams = useSearchParams(); - const pathname = usePathname(); - const flowID = searchParams.get("flowID"); - const { nodes, edges } = useAgentGraph( - flowID ? (flowID as GraphID) : undefined, - ); - const { toast } = useToast(); useEffect(() => { // Add welcome message when component mounts @@ -34,7 +32,7 @@ const OttoChatWidget = () => { setMessages([ { type: "assistant", - content: "Hello im Otto! Ask me anything about AutoGPT!", + content: "Hello, I am Otto! Ask me anything about AutoGPT!", }, ]); } @@ -84,7 +82,7 @@ const OttoChatWidget = () => { userMessage, conversationHistory, includeGraphData, - flowID || undefined, + graphID, ); // Check if the response contains an error @@ -131,13 +129,13 @@ const OttoChatWidget = () => { }; // Don't render the chat widget if we're not on the build page or in local mode - if (process.env.NEXT_PUBLIC_BEHAVE_AS !== "CLOUD" || pathname !== "/build") { + if (process.env.NEXT_PUBLIC_BEHAVE_AS !== "CLOUD") { return null; } if (!isOpen) { return ( -
+
- {nodes && edges && ( + {graphID && (
); -}; - -export default OttoChatWidget; +} diff --git a/autogpt_platform/frontend/src/components/PrimaryActionButton.tsx b/autogpt_platform/frontend/src/components/PrimaryActionButton.tsx index bec81fc267..51a5e012b6 100644 --- a/autogpt_platform/frontend/src/components/PrimaryActionButton.tsx +++ b/autogpt_platform/frontend/src/components/PrimaryActionButton.tsx @@ -1,13 +1,14 @@ -import React, { useState } from "react"; -import { Button } from "./ui/button"; -import { Clock, LogOut, ChevronLeft } from "lucide-react"; +import React from "react"; +import { cn } from "@/lib/utils"; +import { Button } from "@/components/ui/button"; +import { FaSpinner } from "react-icons/fa"; +import { Clock, LogOut } from "lucide-react"; import { IconPlay, IconSquare } from "@/components/ui/icons"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; -import { FaSpinner } from "react-icons/fa"; interface PrimaryActionBarProps { onClickAgentOutputs: () => void; @@ -18,6 +19,7 @@ interface PrimaryActionBarProps { isScheduling: boolean; requestStopRun: () => void; runAgentTooltip: string; + className?: string; } const PrimaryActionBar: React.FC = ({ @@ -29,6 +31,7 @@ const PrimaryActionBar: React.FC = ({ isScheduling, requestStopRun, runAgentTooltip, + className, }) => { const runButtonLabel = !isRunning ? "Run" : "Stop"; @@ -37,8 +40,13 @@ const PrimaryActionBar: React.FC = ({ const runButtonOnClick = !isRunning ? onClickRunAgent : requestStopRun; return ( -
-
+
+
)) ) : ( -

Loading...

+ )} diff --git a/autogpt_platform/frontend/src/components/agents/agent-schedule-details-view.tsx b/autogpt_platform/frontend/src/components/agents/agent-schedule-details-view.tsx index 13d8775f04..da03527a79 100644 --- a/autogpt_platform/frontend/src/components/agents/agent-schedule-details-view.tsx +++ b/autogpt_platform/frontend/src/components/agents/agent-schedule-details-view.tsx @@ -13,6 +13,7 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { AgentRunStatus } from "@/components/agents/agent-run-status-chip"; import { useToastOnFail } from "@/components/ui/use-toast"; import ActionButtonGroup from "@/components/agptui/action-button-group"; +import LoadingBox from "@/components/ui/loading"; import { Input } from "@/components/ui/input"; export default function AgentScheduleDetailsView({ @@ -113,7 +114,7 @@ export default function AgentScheduleDetailsView({
)) ) : ( -

Loading...

+ )} From 61643e6a47c1ede38efad78fba669c2cf951e706 Mon Sep 17 00:00:00 2001 From: ograce1421 Date: Thu, 22 May 2025 17:12:08 +0100 Subject: [PATCH 019/497] fix(frontend): Top Agents header spacing (#10002) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed the section header for "Top Agents" to include a 24px margin. I have not tested this, an eng needs to test / look at this ## Summary - set `margin` default to 24px in `AgentsSection` - apply the bottom margin via an inline style ## Testing - `npm test` *(fails: playwright not found)* - `npm run lint` *(fails: next not found)* ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Test via deployment to the dev branch and verify by designer --------- Co-authored-by: Zamil Majdy Co-authored-by: Nicholas Tindle --- .../src/components/agptui/composite/AgentsSection.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/autogpt_platform/frontend/src/components/agptui/composite/AgentsSection.tsx b/autogpt_platform/frontend/src/components/agptui/composite/AgentsSection.tsx index 2f827811fb..6a00baf90a 100644 --- a/autogpt_platform/frontend/src/components/agptui/composite/AgentsSection.tsx +++ b/autogpt_platform/frontend/src/components/agptui/composite/AgentsSection.tsx @@ -32,7 +32,7 @@ export const AgentsSection: React.FC = ({ sectionTitle, agents: allAgents, hideAvatars = false, - margin = "37px", + margin = "24px", }) => { const router = useRouter(); @@ -48,11 +48,12 @@ export const AgentsSection: React.FC = ({ return (
-
{sectionTitle} -
+ {!displayedAgents || displayedAgents.length === 0 ? (
No agents found From dc981b52a3b97eb08f67a5a63251f635de4aeaef Mon Sep 17 00:00:00 2001 From: Bently Date: Thu, 22 May 2025 20:16:25 +0100 Subject: [PATCH 020/497] feat(Platform): add claude 4 sonnet and opus models to platform (#10018) This adds the latest claude 4 opus and sonnet to the platform https://www.anthropic.com/news/claude-4 --- autogpt_platform/backend/backend/blocks/llm.py | 8 ++++++++ .../backend/backend/data/block_cost_config.py | 2 ++ 2 files changed, 10 insertions(+) diff --git a/autogpt_platform/backend/backend/blocks/llm.py b/autogpt_platform/backend/backend/blocks/llm.py index 675b77ee5d..2ff5687f5c 100644 --- a/autogpt_platform/backend/backend/blocks/llm.py +++ b/autogpt_platform/backend/backend/blocks/llm.py @@ -101,6 +101,8 @@ class LlmModel(str, Enum, metaclass=LlmModelMeta): GPT4_TURBO = "gpt-4-turbo" GPT3_5_TURBO = "gpt-3.5-turbo" # Anthropic models + CLAUDE_4_OPUS = "claude-opus-4-20250514" + CLAUDE_4_SONNET = "claude-sonnet-4-20250514" CLAUDE_3_7_SONNET = "claude-3-7-sonnet-20250219" CLAUDE_3_5_SONNET = "claude-3-5-sonnet-latest" CLAUDE_3_5_HAIKU = "claude-3-5-haiku-latest" @@ -184,6 +186,12 @@ MODEL_METADATA = { ), # gpt-4-turbo-2024-04-09 LlmModel.GPT3_5_TURBO: ModelMetadata("openai", 16385, 4096), # gpt-3.5-turbo-0125 # https://docs.anthropic.com/en/docs/about-claude/models + LlmModel.CLAUDE_4_OPUS: ModelMetadata( + "anthropic", 200000, 8192 + ), # claude-4-opus-20250514 + LlmModel.CLAUDE_4_SONNET: ModelMetadata( + "anthropic", 200000, 8192 + ), # claude-4-sonnet-20250514 LlmModel.CLAUDE_3_7_SONNET: ModelMetadata( "anthropic", 200000, 8192 ), # claude-3-7-sonnet-20250219 diff --git a/autogpt_platform/backend/backend/data/block_cost_config.py b/autogpt_platform/backend/backend/data/block_cost_config.py index 1e15b5f620..8e6ca55f7e 100644 --- a/autogpt_platform/backend/backend/data/block_cost_config.py +++ b/autogpt_platform/backend/backend/data/block_cost_config.py @@ -47,6 +47,8 @@ MODEL_COST: dict[LlmModel, int] = { LlmModel.GPT4O: 3, LlmModel.GPT4_TURBO: 10, LlmModel.GPT3_5_TURBO: 1, + LlmModel.CLAUDE_4_OPUS: 21, + LlmModel.CLAUDE_4_SONNET: 5, LlmModel.CLAUDE_3_7_SONNET: 5, LlmModel.CLAUDE_3_5_SONNET: 4, LlmModel.CLAUDE_3_5_HAIKU: 1, # $0.80 / $4.00 From 5518c2e9a2ff5f0a077914dd541db31cadc4f7c2 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sat, 24 May 2025 17:25:26 +0200 Subject: [PATCH 021/497] fix(frontend): Fix global `` styling and base fonts (#9574) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Base styling currently being fragmented between `layout.tsx` and `globals.css` is causing some styling (e.g. application background color) to be incorrectly overridden. ### Changes 🏗️ - Remove background color override from `` - Move `` classes from `layout.tsx` to `globals.css` - Remove background color from elements that shouldn't have their own background color - Remove `font-neue`, `font-inter`; replace by Geist (`font-sans`) where necessary ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Effective background color of application is `#FAFAFA` like before - [x] Default font is Geist - [x] Everything looks okay --- .../marketplace/creator/[creator]/page.tsx | 12 +++------- .../(platform)/marketplace/search/page.tsx | 2 +- autogpt_platform/frontend/src/app/globals.css | 8 ++----- autogpt_platform/frontend/src/app/layout.tsx | 14 +++--------- .../frontend/src/components/TallyPopup.tsx | 2 +- .../src/components/agptui/AgentImageItem.tsx | 2 +- .../src/components/agptui/AgentInfo.tsx | 22 +++++++++---------- .../src/components/agptui/BecomeACreator.tsx | 2 +- .../src/components/agptui/BreadCrumbs.tsx | 2 +- .../frontend/src/components/agptui/Button.tsx | 2 +- .../src/components/agptui/CreatorCard.tsx | 4 ++-- .../src/components/agptui/CreatorInfoCard.tsx | 14 ++++++------ .../src/components/agptui/CreatorLinks.tsx | 4 ++-- .../src/components/agptui/FilterChips.tsx | 2 +- .../src/components/agptui/MobileNavBar.tsx | 4 ++-- .../agptui/PublishAgentAwaitingReview.tsx | 2 +- .../components/agptui/PublishAgentSelect.tsx | 4 ++-- .../src/components/agptui/SortDropdown.tsx | 4 ++-- .../src/components/agptui/StoreCard.tsx | 6 ++--- .../frontend/src/components/agptui/Wallet.tsx | 2 +- .../library/library-action-header.tsx | 4 ++-- .../components/library/library-agent-card.tsx | 4 ++-- .../library/library-upload-agent-dialog.tsx | 1 - .../src/components/onboarding/StarRating.tsx | 2 +- autogpt_platform/frontend/tailwind.config.ts | 2 -- 25 files changed, 53 insertions(+), 74 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx index fe70af6968..3fc8d7a1fc 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx @@ -1,8 +1,4 @@ import BackendAPI from "@/lib/autogpt-server-api"; -import { - CreatorDetails as Creator, - StoreAgent, -} from "@/lib/autogpt-server-api"; import { AgentsSection } from "@/components/agptui/composite/AgentsSection"; import { BreadCrumbs } from "@/components/agptui/BreadCrumbs"; import { Metadata } from "next"; @@ -65,11 +61,11 @@ export default async function Page({ />
-

+

About

{creator.description} @@ -92,9 +88,7 @@ export default async function Page({ } catch (error) { return (
-
- Creator not found -
+
Creator not found
); } diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx index 717ac96cb5..921f53601e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx @@ -120,7 +120,7 @@ function SearchResults({
-

+

Results for:

diff --git a/autogpt_platform/frontend/src/app/globals.css b/autogpt_platform/frontend/src/app/globals.css index ae5eb28076..07761c480b 100644 --- a/autogpt_platform/frontend/src/app/globals.css +++ b/autogpt_platform/frontend/src/app/globals.css @@ -4,7 +4,7 @@ @layer base { :root { - --background: 0 0% 99.6%; /* #FEFEFE */ + --background: 0 0% 98%; /* neutral-50#FAFAFA */ --foreground: 240 10% 3.9%; --card: 0 0% 100%; --card-foreground: 240 10% 3.9%; @@ -62,11 +62,7 @@ @apply border-border; } body { - @apply bg-background text-foreground; - } - - .font-neue { - font-family: "PP Neue Montreal TT", sans-serif; + @apply bg-background font-sans text-foreground antialiased transition-colors; } } diff --git a/autogpt_platform/frontend/src/app/layout.tsx b/autogpt_platform/frontend/src/app/layout.tsx index a812f076c5..5017a8366a 100644 --- a/autogpt_platform/frontend/src/app/layout.tsx +++ b/autogpt_platform/frontend/src/app/layout.tsx @@ -1,10 +1,9 @@ import React, { Suspense } from "react"; import type { Metadata } from "next"; -import { Inter, Poppins } from "next/font/google"; +import { Poppins } from "next/font/google"; import { GeistSans } from "geist/font/sans"; import { GeistMono } from "geist/font/mono"; -import { cn } from "@/lib/utils"; import "./globals.css"; import { Toaster } from "@/components/ui/toaster"; @@ -12,8 +11,6 @@ import { Providers } from "@/app/providers"; import TallyPopupSimple from "@/components/TallyPopup"; import { GoogleAnalytics } from "@/components/analytics/google-analytics"; -const inter = Inter({ subsets: ["latin"], variable: "--font-inter" }); - const poppins = Poppins({ subsets: ["latin"], weight: ["400", "500", "600", "700"], @@ -33,19 +30,14 @@ export default async function RootLayout({ return ( - + { diff --git a/autogpt_platform/frontend/src/components/agptui/AgentImageItem.tsx b/autogpt_platform/frontend/src/components/agptui/AgentImageItem.tsx index ff028e313a..7a894d654c 100644 --- a/autogpt_platform/frontend/src/components/agptui/AgentImageItem.tsx +++ b/autogpt_platform/frontend/src/components/agptui/AgentImageItem.tsx @@ -99,7 +99,7 @@ export const AgentImageItem: React.FC = React.memo( } }} > - + Play demo diff --git a/autogpt_platform/frontend/src/components/agptui/AgentInfo.tsx b/autogpt_platform/frontend/src/components/agptui/AgentInfo.tsx index afe619b4a1..e1a492599e 100644 --- a/autogpt_platform/frontend/src/components/agptui/AgentInfo.tsx +++ b/autogpt_platform/frontend/src/components/agptui/AgentInfo.tsx @@ -133,19 +133,19 @@ export const AgentInfo: FC = ({ {/* Creator */}
-
+
by
{creator}
{/* Short Description */} -
+
{shortDescription}
@@ -182,12 +182,12 @@ export const AgentInfo: FC = ({ {/* Rating and Runs */}
- + {rating.toFixed(1)}
{StarRatingIcons(rating)}
-
+
{runs.toLocaleString()} runs
@@ -197,24 +197,24 @@ export const AgentInfo: FC = ({ {/* Description Section */}
-
+
Description
-
+
{longDescription}
{/* Categories */}
-
+
Categories
{categories.map((category, index) => (
{category}
@@ -224,10 +224,10 @@ export const AgentInfo: FC = ({ {/* Version History */}
-
+
Version history
-
+
Last updated {lastUpdated}
diff --git a/autogpt_platform/frontend/src/components/agptui/BecomeACreator.tsx b/autogpt_platform/frontend/src/components/agptui/BecomeACreator.tsx index ef0108299d..cea48b63d7 100644 --- a/autogpt_platform/frontend/src/components/agptui/BecomeACreator.tsx +++ b/autogpt_platform/frontend/src/components/agptui/BecomeACreator.tsx @@ -37,7 +37,7 @@ export const BecomeACreator: React.FC = ({ vision

-

+

{description}

diff --git a/autogpt_platform/frontend/src/components/agptui/BreadCrumbs.tsx b/autogpt_platform/frontend/src/components/agptui/BreadCrumbs.tsx index 5be5505150..6188f454d2 100644 --- a/autogpt_platform/frontend/src/components/agptui/BreadCrumbs.tsx +++ b/autogpt_platform/frontend/src/components/agptui/BreadCrumbs.tsx @@ -26,7 +26,7 @@ export const BreadCrumbs: React.FC = ({ items }) => { {items.map((item, index) => ( - + {item.name} diff --git a/autogpt_platform/frontend/src/components/agptui/Button.tsx b/autogpt_platform/frontend/src/components/agptui/Button.tsx index 21818e7e20..2d42e29998 100644 --- a/autogpt_platform/frontend/src/components/agptui/Button.tsx +++ b/autogpt_platform/frontend/src/components/agptui/Button.tsx @@ -7,7 +7,7 @@ import { cva, type VariantProps } from "class-variance-authority"; import { cn } from "@/lib/utils"; const buttonVariants = cva( - "inline-flex items-center whitespace-nowrap overflow-hidden font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-neutral-950 disabled:pointer-events-none disabled:opacity-50 dark:focus-visible:ring-neutral-300 font-neue leading-9 tracking-tight", + "inline-flex items-center whitespace-nowrap overflow-hidden font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-neutral-950 disabled:pointer-events-none disabled:opacity-50 dark:focus-visible:ring-neutral-300 font-sans leading-9 tracking-tight", { variants: { variant: { diff --git a/autogpt_platform/frontend/src/components/agptui/CreatorCard.tsx b/autogpt_platform/frontend/src/components/agptui/CreatorCard.tsx index 660ff61df6..918d09f506 100644 --- a/autogpt_platform/frontend/src/components/agptui/CreatorCard.tsx +++ b/autogpt_platform/frontend/src/components/agptui/CreatorCard.tsx @@ -54,10 +54,10 @@ export const CreatorCard: React.FC = ({

{creatorName}

-

+

{bio}

-
+
{agentsUploaded} agents
diff --git a/autogpt_platform/frontend/src/components/agptui/CreatorInfoCard.tsx b/autogpt_platform/frontend/src/components/agptui/CreatorInfoCard.tsx index 03b3013aa4..5c3b9b1d01 100644 --- a/autogpt_platform/frontend/src/components/agptui/CreatorInfoCard.tsx +++ b/autogpt_platform/frontend/src/components/agptui/CreatorInfoCard.tsx @@ -44,7 +44,7 @@ export const CreatorInfoCard: React.FC = ({
{username}
-
+
@{handle}
@@ -54,7 +54,7 @@ export const CreatorInfoCard: React.FC = ({
-
+
Top categories
= ({ className="flex items-center justify-center gap-2.5 rounded-[34px] border border-neutral-600 px-4 py-3 dark:border-neutral-400" role="listitem" > -
+
{category}
@@ -81,11 +81,11 @@ export const CreatorInfoCard: React.FC = ({
-
+
Average rating
-
+
{averageRating.toFixed(1)}
= ({
-
+
Number of runs
-
+
{new Intl.NumberFormat().format(totalRuns)} runs
diff --git a/autogpt_platform/frontend/src/components/agptui/CreatorLinks.tsx b/autogpt_platform/frontend/src/components/agptui/CreatorLinks.tsx index 8d61ecf690..0b3999d10a 100644 --- a/autogpt_platform/frontend/src/components/agptui/CreatorLinks.tsx +++ b/autogpt_platform/frontend/src/components/agptui/CreatorLinks.tsx @@ -17,7 +17,7 @@ export const CreatorLinks: React.FC = ({ links }) => { rel="noopener noreferrer" className="flex min-w-[200px] flex-1 items-center justify-between rounded-[34px] border border-neutral-600 px-5 py-3 dark:border-neutral-400" > -
+
{new URL(url).hostname.replace("www.", "")}
@@ -30,7 +30,7 @@ export const CreatorLinks: React.FC = ({ links }) => { return (
-
+
Other links
diff --git a/autogpt_platform/frontend/src/components/agptui/FilterChips.tsx b/autogpt_platform/frontend/src/components/agptui/FilterChips.tsx index d88004a0cb..8a597aab26 100644 --- a/autogpt_platform/frontend/src/components/agptui/FilterChips.tsx +++ b/autogpt_platform/frontend/src/components/agptui/FilterChips.tsx @@ -44,7 +44,7 @@ export const FilterChips: React.FC = ({ className="mb-2 flex cursor-pointer items-center justify-center gap-2 rounded-full border border-black/50 px-3 py-1 dark:border-white/50 lg:mb-3 lg:gap-2.5 lg:px-6 lg:py-2" onClick={() => handleBadgeClick(badge)} > -
+
{badge}
diff --git a/autogpt_platform/frontend/src/components/agptui/MobileNavBar.tsx b/autogpt_platform/frontend/src/components/agptui/MobileNavBar.tsx index 4f8f589f1b..447bddb88a 100644 --- a/autogpt_platform/frontend/src/components/agptui/MobileNavBar.tsx +++ b/autogpt_platform/frontend/src/components/agptui/MobileNavBar.tsx @@ -87,7 +87,7 @@ const PopoutMenuItem: React.FC<{ {getIcon(icon)}
{text}
@@ -164,7 +164,7 @@ export const MobileNavBar: React.FC = ({
{userName || "Unknown User"}
-
+
{userEmail || "No Email Set"}
diff --git a/autogpt_platform/frontend/src/components/agptui/PublishAgentAwaitingReview.tsx b/autogpt_platform/frontend/src/components/agptui/PublishAgentAwaitingReview.tsx index 6b494eb9a5..496c6ae303 100644 --- a/autogpt_platform/frontend/src/components/agptui/PublishAgentAwaitingReview.tsx +++ b/autogpt_platform/frontend/src/components/agptui/PublishAgentAwaitingReview.tsx @@ -40,7 +40,7 @@ export const PublishAgentAwaitingReview: React.FC< > Agent is awaiting review
-
+
In the meantime you can check your progress on your Creator Dashboard page
diff --git a/autogpt_platform/frontend/src/components/agptui/PublishAgentSelect.tsx b/autogpt_platform/frontend/src/components/agptui/PublishAgentSelect.tsx index 36ecc424f3..56ffe0f0bd 100644 --- a/autogpt_platform/frontend/src/components/agptui/PublishAgentSelect.tsx +++ b/autogpt_platform/frontend/src/components/agptui/PublishAgentSelect.tsx @@ -66,7 +66,7 @@ export const PublishAgentSelect: React.FC = ({

Publish Agent

-

+

Select your project that you'd like to publish

@@ -135,7 +135,7 @@ export const PublishAgentSelect: React.FC = ({

{agent.name}

- + Edited {agent.lastEdited}
diff --git a/autogpt_platform/frontend/src/components/agptui/SortDropdown.tsx b/autogpt_platform/frontend/src/components/agptui/SortDropdown.tsx index df0a1ae169..442d65c1c7 100644 --- a/autogpt_platform/frontend/src/components/agptui/SortDropdown.tsx +++ b/autogpt_platform/frontend/src/components/agptui/SortDropdown.tsx @@ -34,10 +34,10 @@ export const SortDropdown: React.FC<{ return ( - + Sort by - + {selected.label} diff --git a/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx b/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx index 387483bd99..57919dc2eb 100644 --- a/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx +++ b/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx @@ -87,7 +87,7 @@ export const StoreCard: React.FC = ({ {/* Third Section: Description */}
-

+

{description}

@@ -98,11 +98,11 @@ export const StoreCard: React.FC = ({ {/* Fourth Section: Stats Row - aligned to bottom */}
-
+
{runs.toLocaleString()} runs
- + {rating.toFixed(1)}
Your wallet -
+
Wallet{" "} {formatCredits(credits)} diff --git a/autogpt_platform/frontend/src/components/library/library-action-header.tsx b/autogpt_platform/frontend/src/components/library/library-action-header.tsx index 1e8d895d31..647dac40b3 100644 --- a/autogpt_platform/frontend/src/components/library/library-action-header.tsx +++ b/autogpt_platform/frontend/src/components/library/library-action-header.tsx @@ -10,14 +10,14 @@ interface LibraryActionHeaderProps {} const LibraryActionHeader: React.FC = ({}) => { return ( <> -
+
{/* */}
{/* Mobile and tablet */} -
+
{/* */} diff --git a/autogpt_platform/frontend/src/components/library/library-agent-card.tsx b/autogpt_platform/frontend/src/components/library/library-agent-card.tsx index 47375ec403..ea52272c74 100644 --- a/autogpt_platform/frontend/src/components/library/library-agent-card.tsx +++ b/autogpt_platform/frontend/src/components/library/library-agent-card.tsx @@ -79,7 +79,7 @@ export default function LibraryAgentCard({
See runs @@ -87,7 +87,7 @@ export default function LibraryAgentCard({ {can_access_graph && ( Open in builder diff --git a/autogpt_platform/frontend/src/components/library/library-upload-agent-dialog.tsx b/autogpt_platform/frontend/src/components/library/library-upload-agent-dialog.tsx index 1db0ce077d..a032f23361 100644 --- a/autogpt_platform/frontend/src/components/library/library-upload-agent-dialog.tsx +++ b/autogpt_platform/frontend/src/components/library/library-upload-agent-dialog.tsx @@ -219,7 +219,6 @@ export default function LibraryUploadAgentDialog(): React.ReactNode { justifyContent: "center", alignItems: "center", outline: "none", - fontFamily: "var(--font-geist-sans)", color: "#525252", fontSize: "14px", fontWeight: "500", diff --git a/autogpt_platform/frontend/src/components/onboarding/StarRating.tsx b/autogpt_platform/frontend/src/components/onboarding/StarRating.tsx index dac131efa6..e325c35a4a 100644 --- a/autogpt_platform/frontend/src/components/onboarding/StarRating.tsx +++ b/autogpt_platform/frontend/src/components/onboarding/StarRating.tsx @@ -41,7 +41,7 @@ export default function StarRating({ return (
diff --git a/autogpt_platform/frontend/tailwind.config.ts b/autogpt_platform/frontend/tailwind.config.ts index b1b7ffcd92..a6c5d93001 100644 --- a/autogpt_platform/frontend/tailwind.config.ts +++ b/autogpt_platform/frontend/tailwind.config.ts @@ -17,9 +17,7 @@ const config = { sans: ["var(--font-geist-sans)"], mono: ["var(--font-geist-mono)"], // Include the custom font family - neue: ['"PP Neue Montreal TT"', "sans-serif"], poppins: ["var(--font-poppins)"], - inter: ["var(--font-inter)"], }, colors: { border: "hsl(var(--border))", From a51af362962215c55be7a76064c0c202ca29deaf Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sat, 24 May 2025 18:17:03 +0200 Subject: [PATCH 022/497] feat(blocks/exa): Fix Exa blocks error reporting (#10020) Exa blocks currently just return an empty list when they fail. ## Changes - Add `error` output field where missing on Exa blocks - Don't yield empty results when a request fails ## Testing - `ruff check autogpt_platform/backend/backend/blocks/exa/search.py autogpt_platform/backend/backend/blocks/exa/contents.py autogpt_platform/backend/backend/blocks/exa/similar.py --fix` - `black autogpt_platform/backend/backend/blocks/exa/search.py autogpt_platform/backend/backend/blocks/exa/contents.py autogpt_platform/backend/backend/blocks/exa/similar.py` - `isort autogpt_platform/backend/backend/blocks/exa/search.py autogpt_platform/backend/backend/blocks/exa/contents.py autogpt_platform/backend/backend/blocks/exa/similar.py` - `pre-commit run --files autogpt_platform/backend/backend/blocks/exa/search.py autogpt_platform/backend/backend/blocks/exa/contents.py autogpt_platform/backend/backend/blocks/exa/similar.py` *(fails: redis connection errors)* --- autogpt_platform/backend/backend/blocks/exa/contents.py | 1 - autogpt_platform/backend/backend/blocks/exa/search.py | 4 +++- autogpt_platform/backend/backend/blocks/exa/similar.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/autogpt_platform/backend/backend/blocks/exa/contents.py b/autogpt_platform/backend/backend/blocks/exa/contents.py index 663e4461d6..7210af433d 100644 --- a/autogpt_platform/backend/backend/blocks/exa/contents.py +++ b/autogpt_platform/backend/backend/blocks/exa/contents.py @@ -85,4 +85,3 @@ class ExaContentsBlock(Block): yield "results", data.get("results", []) except Exception as e: yield "error", str(e) - yield "results", [] diff --git a/autogpt_platform/backend/backend/blocks/exa/search.py b/autogpt_platform/backend/backend/blocks/exa/search.py index b11737de74..5915455a56 100644 --- a/autogpt_platform/backend/backend/blocks/exa/search.py +++ b/autogpt_platform/backend/backend/blocks/exa/search.py @@ -78,6 +78,9 @@ class ExaSearchBlock(Block): description="List of search results", default_factory=list, ) + error: str = SchemaField( + description="Error message if the request failed", + ) def __init__(self): super().__init__( @@ -140,4 +143,3 @@ class ExaSearchBlock(Block): yield "results", data.get("results", []) except Exception as e: yield "error", str(e) - yield "results", [] diff --git a/autogpt_platform/backend/backend/blocks/exa/similar.py b/autogpt_platform/backend/backend/blocks/exa/similar.py index 78c0ad5dac..036d26a481 100644 --- a/autogpt_platform/backend/backend/blocks/exa/similar.py +++ b/autogpt_platform/backend/backend/blocks/exa/similar.py @@ -67,6 +67,7 @@ class ExaFindSimilarBlock(Block): description="List of similar documents with title, URL, published date, author, and score", default_factory=list, ) + error: str = SchemaField(description="Error message if the request failed") def __init__(self): super().__init__( @@ -125,4 +126,3 @@ class ExaFindSimilarBlock(Block): yield "results", data.get("results", []) except Exception as e: yield "error", str(e) - yield "results", [] From 45578136e3a019e96622e4c8a63e4774431575f0 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 25 May 2025 07:52:51 +0200 Subject: [PATCH 023/497] feat(frontend): Page-specific titles (#9995) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Resolves #8656 Instead of "NextGen AutoGPT", make page titles like "My Test Agent - Library - AutoGPT Platform", "Settings - AutoGPT Platform", "Builder - AutoGPT Platform". ### Changes 🏗️ - Add specific page titles to `/library`, `/library/agents/[id]`, `/build`, `/profile`, `/profile/api_keys` - Fix page titles on `/marketplace`, `/profile/settings` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Go to `/marketplace` and check the page title - [x] Go to `/library` and check the page title - [x] Go to `/library/agents/[id]` and check the page title - [x] Go to `/build` and check the page title - [x] Go to `/profile` and check the page title - [x] Go to `/profile/settings` and check the page title - [x] Go to `/profile/api_keys` and check the page title - [ ] ~~Go to `/profile/dashboard` and check the page title~~ - [ ] ~~Go to `/profile/integrations` and check the page title~~ - [ ] ~~Go to `/profile/credits` and check the page title~~ --- autogpt_platform/autogpt_libs/README.md | 2 +- .../frontend/src/app/(platform)/build/page.tsx | 2 +- .../src/app/(platform)/library/agents/[id]/page.tsx | 7 +++++++ .../frontend/src/app/(platform)/library/page.tsx | 7 ++++++- .../frontend/src/app/(platform)/marketplace/page.tsx | 12 ++++++------ .../app/(platform)/profile/(user)/api_keys/page.tsx | 3 +++ .../app/(platform)/profile/(user)/credits/page.tsx | 2 +- .../src/app/(platform)/profile/(user)/page.tsx | 3 +++ .../app/(platform)/profile/(user)/settings/page.tsx | 3 ++- autogpt_platform/frontend/src/app/layout.tsx | 2 +- autogpt_platform/frontend/src/components/Flow.tsx | 7 +++++++ autogpt_platform/frontend/src/tests/title.spec.ts | 2 +- 12 files changed, 39 insertions(+), 13 deletions(-) diff --git a/autogpt_platform/autogpt_libs/README.md b/autogpt_platform/autogpt_libs/README.md index e2d6a5e67e..6b929f2a4b 100644 --- a/autogpt_platform/autogpt_libs/README.md +++ b/autogpt_platform/autogpt_libs/README.md @@ -1,3 +1,3 @@ # AutoGPT Libs -This is a new project to store shared functionality across different services in NextGen AutoGPT (e.g. authentication) +This is a new project to store shared functionality across different services in the AutoGPT Platform (e.g. authentication) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/page.tsx b/autogpt_platform/frontend/src/app/(platform)/build/page.tsx index ac5d9aca0d..e4a001819f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/page.tsx @@ -6,7 +6,7 @@ import FlowEditor from "@/components/Flow"; import { useOnboarding } from "@/components/onboarding/onboarding-provider"; import { useEffect } from "react"; -export default function Home() { +export default function BuilderPage() { const query = useSearchParams(); const { completeStep } = useOnboarding(); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx index 5609e26f4b..9b98c328bb 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/page.tsx @@ -72,6 +72,13 @@ export default function AgentRunsPage(): React.ReactElement { useOnboarding(); const [copyAgentDialogOpen, setCopyAgentDialogOpen] = useState(false); + // Set page title with agent name + useEffect(() => { + if (agent) { + document.title = `${agent.name} - Library - AutoGPT Platform`; + } + }, [agent]); + const openRunDraftView = useCallback(() => { selectView({ type: "run" }); }, []); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/page.tsx b/autogpt_platform/frontend/src/app/(platform)/library/page.tsx index 1dfcc2f697..5fa9804b12 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/page.tsx @@ -1,4 +1,5 @@ import Link from "next/link"; +import { Metadata } from "next/types"; import { ArrowBottomRightIcon, @@ -11,11 +12,15 @@ import LibraryActionSubHeader from "@/components/library/library-action-sub-head import LibraryActionHeader from "@/components/library/library-action-header"; import LibraryAgentList from "@/components/library/library-agent-list"; +export const metadata: Metadata = { + title: "Library - AutoGPT Platform", + description: "Your collection of Agents on the AutoGPT Platform", +}; + /** * LibraryPage Component * Main component that manages the library interface including agent listing and actions */ - export default function LibraryPage() { return (
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx index 1336c71f05..b434567e45 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx @@ -102,9 +102,9 @@ async function getStoreData() { // FIX: Correct metadata export const metadata: Metadata = { - title: "Marketplace - NextGen AutoGPT", + title: "Marketplace - AutoGPT Platform", description: "Find and use AI Agents created by our community", - applicationName: "NextGen AutoGPT Store", + applicationName: "AutoGPT Marketplace", authors: [{ name: "AutoGPT Team" }], keywords: [ "AI agents", @@ -118,22 +118,22 @@ export const metadata: Metadata = { follow: true, }, openGraph: { - title: "Marketplace - NextGen AutoGPT", + title: "Marketplace - AutoGPT Platform", description: "Find and use AI Agents created by our community", type: "website", - siteName: "NextGen AutoGPT Store", + siteName: "AutoGPT Marketplace", images: [ { url: "/images/store-og.png", width: 1200, height: 630, - alt: "NextGen AutoGPT Store", + alt: "AutoGPT Marketplace", }, ], }, twitter: { card: "summary_large_image", - title: "Marketplace - NextGen AutoGPT", + title: "Marketplace - AutoGPT Platform", description: "Find and use AI Agents created by our community", images: ["/images/store-twitter.png"], }, diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/page.tsx index 87f3d58b4e..0d1b05e882 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/page.tsx @@ -1,5 +1,8 @@ +import { Metadata } from "next/types"; import { APIKeysSection } from "@/components/agptui/composite/APIKeySection"; +export const metadata: Metadata = { title: "API Keys - AutoGPT Platform" }; + const ApiKeysPage = () => { return (
diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/credits/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/credits/page.tsx index 5ca249f489..8574b02aef 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/credits/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/credits/page.tsx @@ -1,5 +1,5 @@ "use client"; -import { useEffect, useState, useCallback } from "react"; +import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import useCredits from "@/hooks/useCredits"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/page.tsx index 14874dfa54..92df380cfe 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/page.tsx @@ -1,4 +1,5 @@ import * as React from "react"; +import { Metadata } from "next/types"; import { ProfileInfoForm } from "@/components/agptui/ProfileInfoForm"; import BackendAPI from "@/lib/autogpt-server-api"; import { CreatorDetails } from "@/lib/autogpt-server-api/types"; @@ -17,6 +18,8 @@ async function getProfileData(api: BackendAPI) { } } +export const metadata: Metadata = { title: "Profile - AutoGPT Platform" }; + export default async function Page({}: {}) { const api = new BackendAPI(); const { profile } = await getProfileData(api); diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx index 428b98b077..21898fe0ca 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx @@ -4,8 +4,9 @@ import SettingsForm from "@/components/profile/settings/SettingsForm"; import getServerUser from "@/lib/supabase/getServerUser"; import { redirect } from "next/navigation"; import { getUserPreferences } from "./actions"; + export const metadata: Metadata = { - title: "Settings", + title: "Settings - AutoGPT Platform", description: "Manage your account settings and preferences.", }; diff --git a/autogpt_platform/frontend/src/app/layout.tsx b/autogpt_platform/frontend/src/app/layout.tsx index 5017a8366a..6579144c99 100644 --- a/autogpt_platform/frontend/src/app/layout.tsx +++ b/autogpt_platform/frontend/src/app/layout.tsx @@ -18,7 +18,7 @@ const poppins = Poppins({ }); export const metadata: Metadata = { - title: "NextGen AutoGPT", + title: "AutoGPT Platform", description: "Your one stop shop to creating AI Agents", }; diff --git a/autogpt_platform/frontend/src/components/Flow.tsx b/autogpt_platform/frontend/src/components/Flow.tsx index 8210b9966c..ece3239580 100644 --- a/autogpt_platform/frontend/src/components/Flow.tsx +++ b/autogpt_platform/frontend/src/components/Flow.tsx @@ -149,6 +149,13 @@ const FlowEditor: React.FC<{ // It stores the dimension of all nodes with position as well const [nodeDimensions, setNodeDimensions] = useState({}); + // Set page title with or without graph name + useEffect(() => { + document.title = savedAgent + ? `${savedAgent.name} - Builder - AutoGPT Platform` + : `Builder - AutoGPT Platform`; + }, [savedAgent]); + useEffect(() => { if (params.get("resetTutorial") === "true") { localStorage.removeItem(TUTORIAL_STORAGE_KEY); diff --git a/autogpt_platform/frontend/src/tests/title.spec.ts b/autogpt_platform/frontend/src/tests/title.spec.ts index c80123cb7f..46933ccb28 100644 --- a/autogpt_platform/frontend/src/tests/title.spec.ts +++ b/autogpt_platform/frontend/src/tests/title.spec.ts @@ -4,5 +4,5 @@ test("has title", async ({ page }) => { await page.goto("/"); // Expect a title "to contain" a substring. - await expect(page).toHaveTitle(/NextGen AutoGPT/); + await expect(page).toHaveTitle(/AutoGPT Platform/); }); From 767d2f2c1ec0dd9502dd7204aefbaa83658a63f6 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 25 May 2025 14:40:59 +0200 Subject: [PATCH 024/497] dx(backend): Disable pre-commit `pytest` hooks (#10003) Running the tests locally takes a lot of time and leaves test data behind in the DB, making it impractical to actually run locally. I'm disabling the `pytest` hooks in the pre-commit config so the pre-commit checks can reasonably be used without significant negative impact to DX. This doesn't impact UX and there is nothing to test. --- .pre-commit-config.yaml | 64 ++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b071af00df..605e9186e8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -241,38 +241,38 @@ repos: language: system pass_filenames: false - - repo: local - hooks: - - id: pytest - name: Run tests - AutoGPT Platform - Backend - alias: pytest-platform-backend - entry: bash -c 'cd autogpt_platform/backend && poetry run pytest' - # include autogpt_libs source (since it's a path dependency) but exclude *_test.py files: - files: ^autogpt_platform/(backend/((backend|test)/|poetry\.lock$)|autogpt_libs/(autogpt_libs/.*(? Date: Mon, 26 May 2025 10:59:27 +0100 Subject: [PATCH 025/497] feat(backend): Speed up graph create/update (#10025) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Resolves #10024 Caching the repeated DB calls by the graph lifecycle hooks significantly speeds up graph update/create calls with many authenticated blocks (~300ms saved per authenticated block) ### Changes 🏗️ - Add and use `IntegrationCredentialsManager.cached_getter(user_id)` in lifecycle hooks - Split `refresh_if_needed(..)` method out of `IntegrationCredentialsManager.get(..)` - Simplify interface of lifecycle hooks: change `get_credentials` parameter to `user_id` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Save a graph with nodes with credentials --- .../backend/integrations/creds_manager.py | 68 +++++++++++++------ .../webhooks/graph_lifecycle_hooks.py | 21 ++---- .../backend/backend/server/routers/v1.py | 44 ++---------- .../backend/backend/server/v2/library/db.py | 5 +- 4 files changed, 62 insertions(+), 76 deletions(-) diff --git a/autogpt_platform/backend/backend/integrations/creds_manager.py b/autogpt_platform/backend/backend/integrations/creds_manager.py index 3abd90d90f..eb5e132503 100644 --- a/autogpt_platform/backend/backend/integrations/creds_manager.py +++ b/autogpt_platform/backend/backend/integrations/creds_manager.py @@ -1,13 +1,13 @@ import logging from contextlib import contextmanager from datetime import datetime -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Callable from autogpt_libs.utils.synchronize import RedisKeyedMutex from redis.lock import Lock as RedisLock from backend.data import redis -from backend.data.model import Credentials +from backend.data.model import Credentials, OAuth2Credentials from backend.integrations.credentials_store import IntegrationCredentialsStore from backend.integrations.oauth import HANDLERS_BY_NAME from backend.integrations.providers import ProviderName @@ -78,25 +78,7 @@ class IntegrationCredentialsManager: f"{datetime.fromtimestamp(credentials.access_token_expires_at)}; " f"current time is {datetime.now()}" ) - - with self._locked(user_id, credentials_id, "refresh"): - oauth_handler = _get_provider_oauth_handler(credentials.provider) - if oauth_handler.needs_refresh(credentials): - logger.debug( - f"Refreshing '{credentials.provider}' " - f"credentials #{credentials.id}" - ) - _lock = None - if lock: - # Wait until the credentials are no longer in use anywhere - _lock = self._acquire_lock(user_id, credentials_id) - - fresh_credentials = oauth_handler.refresh_tokens(credentials) - self.store.update_creds(user_id, fresh_credentials) - if _lock and _lock.locked() and _lock.owned(): - _lock.release() - - credentials = fresh_credentials + credentials = self.refresh_if_needed(user_id, credentials, lock) else: logger.debug(f"Credentials #{credentials.id} never expire") @@ -121,6 +103,50 @@ class IntegrationCredentialsManager: ) return credentials, lock + def cached_getter(self, user_id: str) -> Callable[[str], "Credentials | None"]: + all_credentials = None + + def get_credentials(creds_id: str) -> "Credentials | None": + nonlocal all_credentials + if not all_credentials: + # Fetch credentials on first necessity + all_credentials = self.store.get_all_creds(user_id) + + credential = next((c for c in all_credentials if c.id == creds_id), None) + if not credential: + return None + if credential.type != "oauth2" or not credential.access_token_expires_at: + # Credential doesn't expire + return credential + + # Credential is OAuth2 credential and has expiration timestamp + return self.refresh_if_needed(user_id, credential) + + return get_credentials + + def refresh_if_needed( + self, user_id: str, credentials: OAuth2Credentials, lock: bool = True + ) -> OAuth2Credentials: + with self._locked(user_id, credentials.id, "refresh"): + oauth_handler = _get_provider_oauth_handler(credentials.provider) + if oauth_handler.needs_refresh(credentials): + logger.debug( + f"Refreshing '{credentials.provider}' " + f"credentials #{credentials.id}" + ) + _lock = None + if lock: + # Wait until the credentials are no longer in use anywhere + _lock = self._acquire_lock(user_id, credentials.id) + + fresh_credentials = oauth_handler.refresh_tokens(credentials) + self.store.update_creds(user_id, fresh_credentials) + if _lock and _lock.locked() and _lock.owned(): + _lock.release() + + credentials = fresh_credentials + return credentials + def update(self, user_id: str, updated: Credentials) -> None: with self._locked(user_id, updated.id): self.store.update_creds(user_id, updated) diff --git a/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py b/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py index 5c4d1285b2..898c6772bb 100644 --- a/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py +++ b/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py @@ -1,8 +1,9 @@ import logging -from typing import TYPE_CHECKING, Callable, Optional, cast +from typing import TYPE_CHECKING, Optional, cast from backend.data.block import BlockSchema, BlockWebhookConfig from backend.data.graph import set_node_webhook +from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.integrations.webhooks import get_webhook_manager, supports_webhooks if TYPE_CHECKING: @@ -12,21 +13,17 @@ if TYPE_CHECKING: from ._base import BaseWebhooksManager logger = logging.getLogger(__name__) +credentials_manager = IntegrationCredentialsManager() -async def on_graph_activate( - graph: "GraphModel", get_credentials: Callable[[str], "Credentials | None"] -): +async def on_graph_activate(graph: "GraphModel", user_id: str): """ Hook to be called when a graph is activated/created. ⚠️ Assuming node entities are not re-used between graph versions, ⚠️ this hook calls `on_node_activate` on all nodes in this graph. - - Params: - get_credentials: `credentials_id` -> Credentials """ - # Compare nodes in new_graph_version with previous_graph_version + get_credentials = credentials_manager.cached_getter(user_id) updated_nodes = [] for new_node in graph.nodes: block_input_schema = cast(BlockSchema, new_node.block.input_schema) @@ -56,18 +53,14 @@ async def on_graph_activate( return graph -async def on_graph_deactivate( - graph: "GraphModel", get_credentials: Callable[[str], "Credentials | None"] -): +async def on_graph_deactivate(graph: "GraphModel", user_id: str): """ Hook to be called when a graph is deactivated/deleted. ⚠️ Assuming node entities are not re-used between graph versions, ⚠️ this hook calls `on_node_deactivate` on all nodes in `graph`. - - Params: - get_credentials: `credentials_id` -> Credentials """ + get_credentials = credentials_manager.cached_getter(user_id) updated_nodes = [] for node in graph.nodes: block_input_schema = cast(BlockSchema, node.block.input_schema) diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/server/routers/v1.py index e403270aea..64815baa92 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/server/routers/v1.py @@ -2,7 +2,7 @@ import asyncio import logging from collections import defaultdict from datetime import datetime -from typing import TYPE_CHECKING, Annotated, Any, Sequence +from typing import Annotated, Any, Sequence import pydantic import stripe @@ -60,7 +60,6 @@ from backend.data.user import ( from backend.executor import scheduler from backend.executor import utils as execution_utils from backend.executor.utils import create_execution_queue_config -from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.integrations.webhooks.graph_lifecycle_hooks import ( on_graph_activate, on_graph_deactivate, @@ -78,9 +77,6 @@ from backend.server.utils import get_user_id from backend.util.service import get_service_client from backend.util.settings import Settings -if TYPE_CHECKING: - from backend.data.model import Credentials - @thread_cached def execution_scheduler_client() -> scheduler.SchedulerClient: @@ -101,7 +97,6 @@ def execution_event_bus() -> AsyncRedisExecutionEventBus: settings = Settings() logger = logging.getLogger(__name__) -integration_creds_manager = IntegrationCredentialsManager() _user_credit_model = get_user_credit_model() @@ -466,10 +461,7 @@ async def create_new_graph( library_db.add_generated_agent_image(graph, library_agent.id) ) - graph = await on_graph_activate( - graph, - get_credentials=lambda id: integration_creds_manager.get(user_id, id), - ) + graph = await on_graph_activate(graph, user_id=user_id) return graph @@ -480,11 +472,7 @@ async def delete_graph( graph_id: str, user_id: Annotated[str, Depends(get_user_id)] ) -> DeleteGraphResponse: if active_version := await graph_db.get_graph(graph_id, user_id=user_id): - - def get_credentials(credentials_id: str) -> "Credentials | None": - return integration_creds_manager.get(user_id, credentials_id) - - await on_graph_deactivate(active_version, get_credentials) + await on_graph_deactivate(active_version, user_id=user_id) return {"version_counts": await graph_db.delete_graph(graph_id, user_id=user_id)} @@ -521,24 +509,15 @@ async def update_graph( user_id, graph.id, graph.version ) - def get_credentials(credentials_id: str) -> "Credentials | None": - return integration_creds_manager.get(user_id, credentials_id) - # Handle activation of the new graph first to ensure continuity - new_graph_version = await on_graph_activate( - new_graph_version, - get_credentials=get_credentials, - ) + new_graph_version = await on_graph_activate(new_graph_version, user_id=user_id) # Ensure new version is the only active version await graph_db.set_graph_active_version( graph_id=graph_id, version=new_graph_version.version, user_id=user_id ) if current_active_version: # Handle deactivation of the previously active version - await on_graph_deactivate( - current_active_version, - get_credentials=get_credentials, - ) + await on_graph_deactivate(current_active_version, user_id=user_id) return new_graph_version @@ -562,14 +541,8 @@ async def set_graph_active_version( current_active_graph = await graph_db.get_graph(graph_id, user_id=user_id) - def get_credentials(credentials_id: str) -> "Credentials | None": - return integration_creds_manager.get(user_id, credentials_id) - # Handle activation of the new graph first to ensure continuity - await on_graph_activate( - new_active_graph, - get_credentials=get_credentials, - ) + await on_graph_activate(new_active_graph, user_id=user_id) # Ensure new version is the only active version await graph_db.set_graph_active_version( graph_id=graph_id, @@ -584,10 +557,7 @@ async def set_graph_active_version( if current_active_graph and current_active_graph.version != new_active_version: # Handle deactivation of the previously active version - await on_graph_deactivate( - current_active_graph, - get_credentials=get_credentials, - ) + await on_graph_deactivate(current_active_graph, user_id=user_id) @v1_router.post( diff --git a/autogpt_platform/backend/backend/server/v2/library/db.py b/autogpt_platform/backend/backend/server/v2/library/db.py index c5b240d3b7..417ae0c9e7 100644 --- a/autogpt_platform/backend/backend/server/v2/library/db.py +++ b/autogpt_platform/backend/backend/server/v2/library/db.py @@ -736,10 +736,7 @@ async def fork_library_agent(library_agent_id: str, user_id: str): new_graph = await graph_db.fork_graph( original_agent.graph_id, original_agent.graph_version, user_id ) - new_graph = await on_graph_activate( - new_graph, - get_credentials=lambda id: integration_creds_manager.get(user_id, id), - ) + new_graph = await on_graph_activate(new_graph, user_id=user_id) # Create a library agent for the new graph return await create_library_agent(new_graph, user_id) From 17e973a8cb804c0fc75a8d9de49142712e5e1de8 Mon Sep 17 00:00:00 2001 From: Swifty Date: Tue, 27 May 2025 11:20:36 +0200 Subject: [PATCH 026/497] fix(platform): Optimise Query Indexes (#10038) # Query Optimization for AgentNodeExecution Tables ## Overview This PR describes the database index optimizations applied to improve the performance of slow queries in the AutoGPT platform backend. ## Problem Analysis The following queries were identified as consuming significant database resources: ### 1. Complex Filtering Query (19.3% of total time) ```sql SELECT ... FROM "AgentNodeExecution" WHERE "agentNodeId" = $1 AND "agentGraphExecutionId" = $2 AND "executionStatus" = $3 AND "id" NOT IN ( SELECT "referencedByInputExecId" FROM "AgentNodeExecutionInputOutput" WHERE "name" = $4 AND "referencedByInputExecId" IS NOT NULL ) ORDER BY "addedTime" ASC ``` ### 2. Multi-table JOIN Query (8.9% of total time) ```sql SELECT ... FROM "AgentNodeExecution" LEFT JOIN "AgentNode" ON ... LEFT JOIN "AgentBlock" ON ... WHERE "AgentBlock"."id" IN (...) AND "executionStatus" != $11 AND "agentGraphExecutionId" IN (...) ORDER BY "queuedTime" DESC, "addedTime" DESC ``` ### 3. Bulk Graph Execution Queries (multiple variations, ~10% combined) Multiple queries filtering by `agentGraphExecutionId` with various ordering requirements. ## Optimization Strategy ### 1. Composite Indexes for AgentNodeExecution Set the following composite indexes to the `AgentNodeExecution` model: ```prisma @@index([agentGraphExecutionId, agentNodeId, executionStatus]) @@index([addedTime, queuedTime]) ``` #### Benefits: - **Index 1**: Covers the exact WHERE clause of the complex filtering query, allowing index-only scans - **Index 2**: Optimizes queries filtering by graph execution and status - **Index 3**: Supports efficient sorting when filtering by graph execution - **Index 4**: Optimizes ORDER BY operations on time fields ### 2. Composite Index for AgentNodeExecutionInputOutput Added the following composite index: ```prisma // Input and Output pin names are unique for each AgentNodeExecution. @@unique([referencedByInputExecId, referencedByOutputExecId, name]) @@index([referencedByOutputExecId]) // Composite index for `upsert_execution_input`. @@index([name, time]) ``` #### Benefits: - Dramatically improves the NOT IN subquery performance in Query 1 - Allows the database to use an index scan instead of a full table scan - Reduces the subquery execution time from O(n) to O(log n) ## Expected Performance Improvements 1. **Query 1 (19.3% of total time)**: - Expected improvement: 80-90% reduction in execution time - The composite index on `[agentNodeId, agentGraphExecutionId, executionStatus]` will allow index-only scans - The subquery will benefit from the new index on `AgentNodeExecutionInputOutput` 2. **Query 2 (8.9% of total time)**: - Expected improvement: 50-70% reduction in execution time - The `[agentGraphExecutionId, executionStatus]` index will reduce the initial filtering cost 3. **Bulk Queries (10% combined)**: - Expected improvement: 60-80% reduction in execution time - Composite indexes including time fields will optimize sorting operations ## Migration Considerations 1. **Index Creation Time**: Creating these indexes on existing large tables may take time 2. **Storage Impact**: Each index requires additional storage space 3. **Write Performance**: Slight decrease in INSERT/UPDATE performance due to index maintenance ## Additional Optimizations ### NotificationEvent Table Index Added index for notification batch queries: ```prisma @@index([userNotificationBatchId]) ``` This optimizes the query: ```sql SELECT ... FROM "NotificationEvent" WHERE "userNotificationBatchId" IN (...) ``` #### Benefits: - Eliminates full table scans when filtering by batch ID - Improves query performance from O(n) to O(log n) - Particularly beneficial for users with many notification events ## Future Optimizations Consider these additional optimizations if needed: 1. Partitioning `AgentNodeExecution` table by `createdAt` or `agentGraphExecutionId` 2. Implementing materialized views for frequently accessed aggregate data 3. Adding covering indexes for specific query patterns 4. Implementing query result caching at the application level --------- Co-authored-by: Zamil Majdy --- .pre-commit-config.yaml | 2 +- .../backend/backend/data/execution.py | 21 ++++++++++++++----- .../migration.sql | 20 ++++++++++++++++++ autogpt_platform/backend/schema.prisma | 9 +++++--- 4 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 autogpt_platform/backend/migrations/20250527091422_node_execution_indexes/migration.sql diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 605e9186e8..5ef2c2036f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,7 +17,7 @@ repos: name: Detect secrets description: Detects high entropy strings that are likely to be passwords. files: ^autogpt_platform/ - stages: [push] + stages: [pre-push] - repo: local # For proper type checking, all dependencies need to be up-to-date. diff --git a/autogpt_platform/backend/backend/data/execution.py b/autogpt_platform/backend/backend/data/execution.py index a89cb8d77c..166a53a4ed 100644 --- a/autogpt_platform/backend/backend/data/execution.py +++ b/autogpt_platform/backend/backend/data/execution.py @@ -1,6 +1,6 @@ import logging from collections import defaultdict -from datetime import datetime, timezone +from datetime import datetime, timedelta, timezone from enum import Enum from multiprocessing import Manager from typing import ( @@ -489,10 +489,15 @@ async def upsert_execution_input( dict[str, Any]: Node input data; key is the input name, value is the input data. """ existing_exec_query_filter: AgentNodeExecutionWhereInput = { - "agentNodeId": node_id, "agentGraphExecutionId": graph_exec_id, + "agentNodeId": node_id, "executionStatus": ExecutionStatus.INCOMPLETE, - "Input": {"every": {"name": {"not": input_name}}}, + "Input": { + "none": { + "name": input_name, + "time": {"gte": datetime.now(tz=timezone.utc) - timedelta(days=1)}, + } + }, } if node_exec_id: existing_exec_query_filter["id"] = node_exec_id @@ -715,9 +720,15 @@ async def get_latest_node_execution( ) -> NodeExecutionResult | None: execution = await AgentNodeExecution.prisma().find_first( where={ - "agentNodeId": node_id, "agentGraphExecutionId": graph_eid, - "NOT": [{"executionStatus": ExecutionStatus.INCOMPLETE}], + "agentNodeId": node_id, + "OR": [ + {"executionStatus": ExecutionStatus.QUEUED}, + {"executionStatus": ExecutionStatus.RUNNING}, + {"executionStatus": ExecutionStatus.COMPLETED}, + {"executionStatus": ExecutionStatus.TERMINATED}, + {"executionStatus": ExecutionStatus.FAILED}, + ], }, order=[ {"queuedTime": "desc"}, diff --git a/autogpt_platform/backend/migrations/20250527091422_node_execution_indexes/migration.sql b/autogpt_platform/backend/migrations/20250527091422_node_execution_indexes/migration.sql new file mode 100644 index 0000000000..c3e9b0a29f --- /dev/null +++ b/autogpt_platform/backend/migrations/20250527091422_node_execution_indexes/migration.sql @@ -0,0 +1,20 @@ +-- DropIndex +DROP INDEX "AgentNodeExecution_addedTime_idx"; + +-- DropIndex +DROP INDEX "AgentNodeExecution_agentGraphExecutionId_idx"; + +-- DropIndex +DROP INDEX "AgentNodeExecution_agentNodeId_idx"; + +-- CreateIndex +CREATE INDEX "AgentNodeExecution_agentGraphExecutionId_agentNodeId_execut_idx" ON "AgentNodeExecution"("agentGraphExecutionId", "agentNodeId", "executionStatus"); + +-- CreateIndex +CREATE INDEX "AgentNodeExecution_addedTime_queuedTime_idx" ON "AgentNodeExecution"("addedTime", "queuedTime"); + +-- CreateIndex +CREATE INDEX "AgentNodeExecutionInputOutput_name_time_idx" ON "AgentNodeExecutionInputOutput"("name", "time"); + +-- CreateIndex +CREATE INDEX "NotificationEvent_userNotificationBatchId_idx" ON "NotificationEvent"("userNotificationBatchId"); diff --git a/autogpt_platform/backend/schema.prisma b/autogpt_platform/backend/schema.prisma index 244d32a999..ae1cb28d1e 100644 --- a/autogpt_platform/backend/schema.prisma +++ b/autogpt_platform/backend/schema.prisma @@ -195,6 +195,8 @@ model NotificationEvent { type NotificationType data Json + + @@index([userNotificationBatchId]) } model UserNotificationBatch { @@ -377,9 +379,8 @@ model AgentNodeExecution { stats Json? - @@index([agentGraphExecutionId]) - @@index([agentNodeId]) - @@index([addedTime]) + @@index([agentGraphExecutionId, agentNodeId, executionStatus]) + @@index([addedTime, queuedTime]) } // This model describes the output of an AgentNodeExecution. @@ -402,6 +403,8 @@ model AgentNodeExecutionInputOutput { // Input and Output pin names are unique for each AgentNodeExecution. @@unique([referencedByInputExecId, referencedByOutputExecId, name]) @@index([referencedByOutputExecId]) + // Composite index for `upsert_execution_input`. + @@index([name, time]) } // Webhook that is registered with a provider and propagates to one or more nodes From 3471781b982ecc8180514d79e95381f5386c5d64 Mon Sep 17 00:00:00 2001 From: itsababseh <36419647+itsababseh@users.noreply.github.com> Date: Tue, 27 May 2025 15:57:56 +0100 Subject: [PATCH 027/497] fix(frontend/marketplace): require category selection (#10031) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - require categories to be selected in PublishAgent popout ### Changes 🏗️ Makes it require the categories to be set before allowing an agent to be uploaded added popup notification to say its missing categories ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Try to upload a agent with out setting categories and it will error and show message saying "Missing Required Fields, Please fill in: Categories" - [x] Now try to upload a agent with the categories set and it will work Co-authored-by: Bently --- .../components/agptui/PublishAgentSelectInfo.tsx | 13 ++++++++++--- .../agptui/composite/PublishAgentPopout.tsx | 7 ++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/autogpt_platform/frontend/src/components/agptui/PublishAgentSelectInfo.tsx b/autogpt_platform/frontend/src/components/agptui/PublishAgentSelectInfo.tsx index dff239c19a..4a64647487 100644 --- a/autogpt_platform/frontend/src/components/agptui/PublishAgentSelectInfo.tsx +++ b/autogpt_platform/frontend/src/components/agptui/PublishAgentSelectInfo.tsx @@ -159,9 +159,16 @@ export const PublishAgentInfo: React.FC = ({ const handleSubmit = (e: React.MouseEvent) => { e.preventDefault(); - onSubmit(title, subheader, slug, description, images, youtubeLink, [ - category, - ]); + const categories = category ? [category] : []; + onSubmit( + title, + subheader, + slug, + description, + images, + youtubeLink, + categories, + ); }; return ( diff --git a/autogpt_platform/frontend/src/components/agptui/composite/PublishAgentPopout.tsx b/autogpt_platform/frontend/src/components/agptui/composite/PublishAgentPopout.tsx index ff002f1e29..55fc8e6791 100644 --- a/autogpt_platform/frontend/src/components/agptui/composite/PublishAgentPopout.tsx +++ b/autogpt_platform/frontend/src/components/agptui/composite/PublishAgentPopout.tsx @@ -155,7 +155,7 @@ export const PublishAgentPopout: React.FC = ({ if (!subHeading) missingFields.push("Sub-heading"); if (!description) missingFields.push("Description"); if (!imageUrls.length) missingFields.push("Image"); - if (!categories.length) missingFields.push("Categories"); + if (!categories.filter(Boolean).length) missingFields.push("Categories"); if (missingFields.length > 0) { toast({ @@ -166,6 +166,7 @@ export const PublishAgentPopout: React.FC = ({ return; } + const filteredCategories = categories.filter(Boolean); setPublishData({ name, sub_heading: subHeading, @@ -175,7 +176,7 @@ export const PublishAgentPopout: React.FC = ({ agent_id: selectedAgentId || "", agent_version: selectedAgentVersion || 0, slug, - categories, + categories: filteredCategories, }); // Create store submission @@ -189,7 +190,7 @@ export const PublishAgentPopout: React.FC = ({ agent_id: selectedAgentId || "", agent_version: selectedAgentVersion || 0, slug: slug.replace(/\s+/g, "-"), - categories: categories, + categories: filteredCategories, }); } catch (error) { console.error("Error creating store submission:", error); From b244726b20ab92486bfee820e784141acfded097 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Tue, 27 May 2025 18:43:56 +0100 Subject: [PATCH 028/497] fix(backend): Include webhook block executions in `GraphExecution` queries (#9984) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Resolves #9752 - Follow-up fix to #9940 ### Changes 🏗️ - `GRAPH_EXECUTION_INCLUDE` -> `graph_execution_include(include_block_ids)` - Add `get_io_block_ids()` and `get_webhook_block_ids()` to `backend.data.blocks` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [ ] I have tested my changes according to the test plan: - [ ] Payload for webhook-triggered runs is shown on `/library/agents/[id]` --- .../backend/backend/data/block.py | 20 +++++++++++ .../backend/backend/data/execution.py | 23 ++++++++++--- .../backend/backend/data/includes.py | 34 +++++++++++-------- 3 files changed, 58 insertions(+), 19 deletions(-) diff --git a/autogpt_platform/backend/backend/data/block.py b/autogpt_platform/backend/backend/data/block.py index 7b16928549..eca44fd7cd 100644 --- a/autogpt_platform/backend/backend/data/block.py +++ b/autogpt_platform/backend/backend/data/block.py @@ -1,3 +1,4 @@ +import functools import inspect from abc import ABC, abstractmethod from enum import Enum @@ -8,6 +9,7 @@ from typing import ( Generator, Generic, Optional, + Sequence, Type, TypeVar, cast, @@ -523,3 +525,21 @@ async def initialize_blocks() -> None: def get_block(block_id: str) -> Block[BlockSchema, BlockSchema] | None: cls = get_blocks().get(block_id) return cls() if cls else None + + +@functools.cache +def get_webhook_block_ids() -> Sequence[str]: + return [ + id + for id, B in get_blocks().items() + if B().block_type in (BlockType.WEBHOOK, BlockType.WEBHOOK_MANUAL) + ] + + +@functools.cache +def get_io_block_ids() -> Sequence[str]: + return [ + id + for id, B in get_blocks().items() + if B().block_type in (BlockType.INPUT, BlockType.OUTPUT) + ] diff --git a/autogpt_platform/backend/backend/data/execution.py b/autogpt_platform/backend/backend/data/execution.py index 166a53a4ed..d27e427566 100644 --- a/autogpt_platform/backend/backend/data/execution.py +++ b/autogpt_platform/backend/backend/data/execution.py @@ -38,12 +38,19 @@ from backend.server.v2.store.exceptions import DatabaseError from backend.util import type as type_utils from backend.util.settings import Config -from .block import BlockInput, BlockType, CompletedBlockOutput, get_block +from .block import ( + BlockInput, + BlockType, + CompletedBlockOutput, + get_block, + get_io_block_ids, + get_webhook_block_ids, +) from .db import BaseDbModel from .includes import ( EXECUTION_RESULT_INCLUDE, - GRAPH_EXECUTION_INCLUDE, GRAPH_EXECUTION_INCLUDE_WITH_NODES, + graph_execution_include, ) from .model import CredentialsMetaInput, GraphExecutionStats, NodeExecutionStats from .queue import AsyncRedisEventBus, RedisEventBus @@ -411,7 +418,9 @@ async def get_graph_execution( include=( GRAPH_EXECUTION_INCLUDE_WITH_NODES if include_node_executions - else GRAPH_EXECUTION_INCLUDE + else graph_execution_include( + [*get_io_block_ids(), *get_webhook_block_ids()] + ) ), ) if not execution: @@ -568,7 +577,9 @@ async def update_graph_execution_start_time( "executionStatus": ExecutionStatus.RUNNING, "startedAt": datetime.now(tz=timezone.utc), }, - include=GRAPH_EXECUTION_INCLUDE, + include=graph_execution_include( + [*get_io_block_ids(), *get_webhook_block_ids()] + ), ) return GraphExecution.from_db(res) if res else None @@ -603,7 +614,9 @@ async def update_graph_execution_stats( graph_exec = await AgentGraphExecution.prisma().find_unique_or_raise( where={"id": graph_exec_id}, - include=GRAPH_EXECUTION_INCLUDE, + include=graph_execution_include( + [*get_io_block_ids(), *get_webhook_block_ids()] + ), ) return GraphExecution.from_db(graph_exec) diff --git a/autogpt_platform/backend/backend/data/includes.py b/autogpt_platform/backend/backend/data/includes.py index f6b1ea2592..d763579d91 100644 --- a/autogpt_platform/backend/backend/data/includes.py +++ b/autogpt_platform/backend/backend/data/includes.py @@ -1,10 +1,8 @@ -from typing import cast +from typing import Sequence, cast import prisma.enums import prisma.types -from backend.blocks.io import IO_BLOCK_IDs - AGENT_NODE_INCLUDE: prisma.types.AgentNodeInclude = { "Input": True, "Output": True, @@ -42,18 +40,26 @@ GRAPH_EXECUTION_INCLUDE_WITH_NODES: prisma.types.AgentGraphExecutionInclude = { } } -GRAPH_EXECUTION_INCLUDE: prisma.types.AgentGraphExecutionInclude = { - "NodeExecutions": { - **cast( - prisma.types.FindManyAgentNodeExecutionArgsFromAgentGraphExecution, - GRAPH_EXECUTION_INCLUDE_WITH_NODES["NodeExecutions"], - ), - "where": { - "Node": {"is": {"AgentBlock": {"is": {"id": {"in": IO_BLOCK_IDs}}}}}, - "NOT": [{"executionStatus": prisma.enums.AgentExecutionStatus.INCOMPLETE}], - }, + +def graph_execution_include( + include_block_ids: Sequence[str], +) -> prisma.types.AgentGraphExecutionInclude: + return { + "NodeExecutions": { + **cast( + prisma.types.FindManyAgentNodeExecutionArgsFromAgentGraphExecution, + GRAPH_EXECUTION_INCLUDE_WITH_NODES["NodeExecutions"], # type: ignore + ), + "where": { + "Node": { + "is": {"AgentBlock": {"is": {"id": {"in": include_block_ids}}}} + }, + "NOT": [ + {"executionStatus": prisma.enums.AgentExecutionStatus.INCOMPLETE} + ], + }, + } } -} INTEGRATION_WEBHOOK_INCLUDE: prisma.types.IntegrationWebhookInclude = { From b91b0261647a68da80f91251b3e4fa2e23c550df Mon Sep 17 00:00:00 2001 From: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com> Date: Wed, 28 May 2025 09:15:42 +0200 Subject: [PATCH 029/497] fix(platform): Restore `See runs` button on marketplace listing page (#9970) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes button on the marketplace listing page show `See runs` if user has an agent in the library. ### Changes 🏗️ - Remove `/` from the related endpoint - Use `active_version_id` instead of `store_listing_version_id` to check for the library agent - Fix `get_store_agent_details` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Log in and pick an agent that has never been in user library - [x] Button says `Add to library` - Add the agent and return to the listing page - [x] Button says `See runs` - Remove agent from library - [x] Button says `Add to library` - Add agent again - [x] Button says `See runs` --------- Co-authored-by: Zamil Majdy --- .../backend/backend/server/v2/library/routes/agents.py | 2 +- autogpt_platform/backend/backend/server/v2/store/db.py | 7 ++++++- .../(platform)/marketplace/agent/[creator]/[slug]/page.tsx | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/agents.py b/autogpt_platform/backend/backend/server/v2/library/routes/agents.py index 141d6d2e50..f21a66faa4 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes/agents.py +++ b/autogpt_platform/backend/backend/server/v2/library/routes/agents.py @@ -86,7 +86,7 @@ async def get_library_agent( @router.get( - "/marketplace/{store_listing_version_id}/", + "/marketplace/{store_listing_version_id}", tags=["store, library"], response_model=library_model.LibraryAgent | None, ) diff --git a/autogpt_platform/backend/backend/server/v2/store/db.py b/autogpt_platform/backend/backend/server/v2/store/db.py index c37902bc13..dac8cce8a5 100644 --- a/autogpt_platform/backend/backend/server/v2/store/db.py +++ b/autogpt_platform/backend/backend/server/v2/store/db.py @@ -146,11 +146,16 @@ async def get_store_agent_details( f"Agent {username}/{agent_name} not found" ) + profile = await prisma.models.Profile.prisma().find_first( + where={"username": username} + ) + user_id = profile.userId if profile else None + # Retrieve StoreListing to get active_version_id and has_approved_version store_listing = await prisma.models.StoreListing.prisma().find_first( where=prisma.types.StoreListingWhereInput( slug=agent_name, - owningUserId=username, # Direct equality check instead of 'has' + owningUserId=user_id or "", ), include={"ActiveVersion": True}, ) diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx index c0e1115fdf..5850d823c3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx @@ -47,7 +47,7 @@ export default async function Page({ }); const libraryAgent = user ? await api - .getLibraryAgentByStoreListingVersionID(agent.store_listing_version_id) + .getLibraryAgentByStoreListingVersionID(agent.active_version_id || "") .catch((error) => { console.error("Failed to fetch library agent:", error); return null; From 9f2b9d08c97c07b470733011ff0ee9f268129668 Mon Sep 17 00:00:00 2001 From: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com> Date: Wed, 28 May 2025 09:40:52 +0200 Subject: [PATCH 030/497] feat(platform): Add `Run 10 agents` wallet task (#9937) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ This PR adds `Run 10 agents` step to wallet tasks that can be done by running any agents 10 times either from Library or Builder (onboarding agent run also counts). - Merge `Finish onboarding` and `See results` steps into one in the wallet - User is redirected directly to onboarding agent runs in Library after congrats screen - Add `RUN_AGENTS` step and `agentRuns` integer to schema and related migration - Running agent from Library and Builder increments `agentRuns` - Open NPS survey popup when 10 agents are run - Fix resuming onboarding on login when unfinished - Remove no longer needed `get-results.mp4` tutorial video ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Onboarding can be completed and proper reward is awarded - [x] `Run 10 agents` can be completed and reward is awarded - [x] When unning different agents and the same agent - [x] Running from library and builder counts - [x] Onboarding is resumed to last finished step on login --- .../backend/backend/data/onboarding.py | 8 ++- .../migration.sql | 5 ++ autogpt_platform/backend/schema.prisma | 2 + .../public/onboarding/get-results.mp4 | Bin 1961015 -> 0 bytes .../app/(no-navbar)/onboarding/5-run/page.tsx | 1 + .../src/app/(no-navbar)/onboarding/page.tsx | 5 +- .../(platform)/library/agents/[id]/page.tsx | 26 ++++++-- .../src/app/(platform)/login/actions.ts | 4 +- .../onboarding/WalletTaskGroups.tsx | 20 +++---- .../onboarding/onboarding-provider.tsx | 56 +++++++++++++++++- .../frontend/src/hooks/useAgentGraph.tsx | 8 +-- .../src/lib/autogpt-server-api/types.ts | 2 + 12 files changed, 111 insertions(+), 26 deletions(-) create mode 100644 autogpt_platform/backend/migrations/20250528092000_onboarding_add_runs/migration.sql delete mode 100644 autogpt_platform/frontend/public/onboarding/get-results.mp4 diff --git a/autogpt_platform/backend/backend/data/onboarding.py b/autogpt_platform/backend/backend/data/onboarding.py index c4ad817b5c..0bdab3b905 100644 --- a/autogpt_platform/backend/backend/data/onboarding.py +++ b/autogpt_platform/backend/backend/data/onboarding.py @@ -39,6 +39,7 @@ class UserOnboardingUpdate(pydantic.BaseModel): selectedStoreListingVersionId: Optional[str] = None agentInput: Optional[dict[str, Any]] = None onboardingAgentExecutionId: Optional[str] = None + agentRuns: Optional[int] = None async def get_user_onboarding(user_id: str): @@ -57,7 +58,7 @@ async def update_user_onboarding(user_id: str, data: UserOnboardingUpdate): update["completedSteps"] = list(set(data.completedSteps)) for step in ( OnboardingStep.AGENT_NEW_RUN, - OnboardingStep.GET_RESULTS, + OnboardingStep.RUN_AGENTS, OnboardingStep.MARKETPLACE_ADD_AGENT, OnboardingStep.MARKETPLACE_RUN_AGENT, OnboardingStep.BUILDER_SAVE_AGENT, @@ -81,6 +82,8 @@ async def update_user_onboarding(user_id: str, data: UserOnboardingUpdate): update["agentInput"] = Json(data.agentInput) if data.onboardingAgentExecutionId is not None: update["onboardingAgentExecutionId"] = data.onboardingAgentExecutionId + if data.agentRuns is not None: + update["agentRuns"] = data.agentRuns return await UserOnboarding.prisma().upsert( where={"userId": user_id}, @@ -97,9 +100,10 @@ async def reward_user(user_id: str, step: OnboardingStep): match step: # Reward user when they clicked New Run during onboarding # This is because they need credits before scheduling a run (next step) + # This is seen as a reward for the GET_RESULTS step in the wallet case OnboardingStep.AGENT_NEW_RUN: reward = 300 - case OnboardingStep.GET_RESULTS: + case OnboardingStep.RUN_AGENTS: reward = 300 case OnboardingStep.MARKETPLACE_ADD_AGENT: reward = 100 diff --git a/autogpt_platform/backend/migrations/20250528092000_onboarding_add_runs/migration.sql b/autogpt_platform/backend/migrations/20250528092000_onboarding_add_runs/migration.sql new file mode 100644 index 0000000000..544e51b8f8 --- /dev/null +++ b/autogpt_platform/backend/migrations/20250528092000_onboarding_add_runs/migration.sql @@ -0,0 +1,5 @@ +-- AlterEnum +ALTER TYPE "OnboardingStep" ADD VALUE 'RUN_AGENTS'; + +-- AlterTable +ALTER TABLE "UserOnboarding" ADD COLUMN "agentRuns" INTEGER NOT NULL DEFAULT 0; diff --git a/autogpt_platform/backend/schema.prisma b/autogpt_platform/backend/schema.prisma index ae1cb28d1e..a20a537fcb 100644 --- a/autogpt_platform/backend/schema.prisma +++ b/autogpt_platform/backend/schema.prisma @@ -68,6 +68,7 @@ enum OnboardingStep { AGENT_INPUT CONGRATS GET_RESULTS + RUN_AGENTS // Marketplace MARKETPLACE_VISIT MARKETPLACE_ADD_AGENT @@ -93,6 +94,7 @@ model UserOnboarding { selectedStoreListingVersionId String? agentInput Json? onboardingAgentExecutionId String? + agentRuns Int @default(0) userId String @unique User User @relation(fields: [userId], references: [id], onDelete: Cascade) diff --git a/autogpt_platform/frontend/public/onboarding/get-results.mp4 b/autogpt_platform/frontend/public/onboarding/get-results.mp4 deleted file mode 100644 index 787782f2f0cb2dae6c19ed6565135c2166b909d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1961015 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

&cH?y#kpMgc3Ll2 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

{Oo52 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
-OW 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

x{s-p`vz-a?T20N1wcw> z%+%iPpz;y6`7WmiMkFi35*LmKxV)iNArDgJ{+ry7ik-*PQjwM{YbM^U4@ZBsV(IYW z?ayg2cGSN6nLLym^6y&A7P_S2?NPmdt=zE{fC%qwH4|s-Vw$8?CI3fui3k2v1>QdB zWcrm=tXX?L6h}6MTM}FNtG4Sv_TdFk2x!+4axQyEyb;#(SSB{s3eAaTFnlLe>C!ON zM;8v{1TnsnC@~tVMTxG9YBZpC=Bre~d}|=lC2UvHew2S4=!kMrA0~a*#b_b)mwi{H z?tkDx)nKLfgf-Ke2Y79Z z+iaXD)|J`Tey&m0l&!Td)%A27@4xbJU^>Y02?rW|#n9k3eCCI?m;aDM=9pni5)NA| z!8p*#K)quKTS}d*BK;&Nq?J5p*$hz8*AuWPaO}Ce6iT)0gXo<)!PGG>mOrbT*fYrw zRg-S7c?|~niTf;lYI4d~_b^|?LyV$|6a>yVD{z`EuU2f?W4K$r8A=R|(oF;TtlUy9 zs5WudWRqc_xlonVM__E*SsQT|F;Ov>j>QXME!1%wZ^5KeA0M0MI*jj>Nqd z?9r8XzG6{orQQ*duk|PGiG|97Ngnj4J#uCsVFAyXL_pyi6}%Bo96(?j^IX(EN6&xL z?AwZLv`nHZ-(+t6eWM(7(~}!|EM*N)&&%?`*1wHBxmBz}0C9cpKqRHeE26@B=g?dg z4s3}EL&t33OJQs&4Wk^0@h*85-~W^qw2I~oqJyCD za#`>C;fQ4?*b*iqNl@96vUlbW6U_BsY|XC~L6Pm{+yUo^BQ&77XnM!>+njC-oLlK{S#CjyaR8qy66#zjEMct0`+5BbO` z6_wrgUde}|{;49?0?D_whC_4{7}CQDWuPnVe|ywMapOU&a|GB<>>1Q%VWJCTE{-K- zjaQ)a%qPjbB@iOQXgyK$9C0O(*EvckhHj>}n12EyuB;G15L>|npSmDdKmdHuhTnNi z-iWsA@w0fYnn_P~Zi7igm`W^U#=uDy!eRi@3`jA#_{Y4Im%>0+O4nf(jX5~e9Wj1^ z4?+om7BQ#sIxsKr+hyRPdC^oX&k!I=jU7Km zse=K0Nh!7tXEA+7akrnDw1=>SF(Hx34&5tx5}T_72VhVb5)9o+=@ideZFy}}qV2c4 zKlEs{q!oOh6jvdrImxTUJkp@%FL747i&HPXy?@jka$6mQy}~9dbGxua|4hY@NNGj> z-wh?RfS9th78z`(o{dW2gR&42YJL7FvJ=8U>0C5yP$(8VV>_+G8HB0KzFPI8^v**CpHBdyY zn~>231O%fu-05?|_=TEzX9)#{4~SrFarJw{aK!I9kW9`6-D5NsA7L+SChFIilAl>J z7h$z1(*b)8@K^_|l5=p7(TB4Nw&%>!zPNIlxcj1DD$^oY*Z>Pe=CxU7HcUtW5%NSD01nr= za-aYJ0{{R60F)Mz`<5jg$IwD*Vj3(znKg*d0t^yTUs7#-RKP*3GdW^(*dj00ZFWWf zLY5JQuo3+nsLev7l8P!8Ds=gU)q)9%=wuv#VDBzhja2!J)id*vpxaM!I>C$T($jwa z!SMsB8@O%ZRzj)=c)H1QrU> zGo&$RL%#}FXWge4vb^ROc@h#Tw-$WCk>QZnP6aJ##lHa<0%Bs~>4A$HLf?}AIQ}aA z;@?iZ?1KVxk9h-OZTnI*u2=o-VcebTeHib-=c=RJcd1+>g5Bt{ge-NUUOMVxH(^f; zy?!vIvo^d#RBaFO!`HFS0Sh8?;xPYoyM0J%=u#;8yXsY!J7BK}e$!90+1RKEB_j!u z7PexU%28)+Us?%agFEy7v#KBt!@!tmh=E6sglk%(ZhS|d=&xO_xfYKZSo~BhS4+a7 zHK+WMJMBB=ThWhk^^r0J4}ZfOT5+(|;<1{Ep=P>5Vazv_XYR2Bg`6lp2p^vu0u}_- z%zRQpTcfaY?cWV2wcT$P#Na}FatB9f=Q&uy9j#RdD+OldDDF#mJ~z1BB>+KHIIryfx!QV_hwjEI2 zl3>zLGl{4qI+AH!v58SbK zc4(C$Py-{&tN2*>FbKvaSLU{n!^!|(?3I3_ADsa|GFALcf7AtKmsj&;gU}Y#gIHh@ zEgjsi6>1X@(67z2P&x)kg{~VPq~e`2i1p)g(DZeJOG#H-AE8)N&}zm2h82T(hu@B` ziM{TY&;NCQhD{VEic-z9*b-4FhGK%D0X6og0DOFGR<`|VEEXvJ(C_h=t9sw)++47E zw|AwGzd)YfiGqI`>pE-@_tO>D3HSSPo`~UK#jYT7rtcjiGtGp6gK@qR-Tq5E*!A;R zECn8%^Qp91Sm6_`A8x(rsVSz zveFy`!TkKkCE=;X?haFBhXtu&@#-w|*}hkFcMsXyH8<1CaE?|2I8a9I*9<#?x%poG z5<(isjuN}#?02*o1-#Lyy(mqxm^jA{Nq zn9HW!Yx14NU3D)ThL+*tSOyQ&=cXm2X31n`E)eoy00096h=ZD6Z-7X25!6$5f{~>b z15|rI?i=^w%DoPyDCs!@b;--@`lUG~CptEKXU1F&&a7SjT=cVSGs?#HL8du||9HL$ zHlP3n*BRn6&|M@zg9n;uq@EM3=|*9ZlWdBb+z)YZ3`$Emv=jq&=2HWz1@H~c-SU^G z$tX@U>p2C1Qkq z%d9ukMvn2vM+>e(7KFRwH?pefD$zVrk>x(tRW8Q7#+%0C+uru^p9|$6?iKK8d=xTC zDM)As0h(S&EWU0sFtK0T15w4n`)gAuzKnXn3Fs`8$s#qY06tZQ0ad{+f-}W<^aKb> zF;FY0(j7lr!~csxcT6_EkJN8Dvbl~~;ERlQ{Y;IWvYrMwJzG-~_)WW~k}7M(BB!Jr zM)vVrfPH`)AG?;ngkH*XAGg%1mmW`gIslTiZoM1GdGF}x3QZy3Zq^X4lETz=GDM%n0 zUD1;h)h!SK|3KKKge`{W!LLJ*_rEt`R;)*Dmwi6hrh#!p`u$_IFng3y+WWZYfdy@Q zjjAUIVc3Evo5t$GHqliPj6fkAvn#LpHg9jy&55&eyeX_xa{=rJtHX^wox(AJeq#~T z;R+E7NxZ_qBvj5EfL~^@r?TuTqJ9My_dVuPiiBxCv6fH(NSRFL@sF_Z000930)_wp z1=IoI1dRUz7O_HC6~LDDq;UiBnSrE5QTm7Um>ReJSeUFdHStXgIncN&)CpzqB~b<$ z5kj^gKPmib%J24Z0{MDI+gOUzR*6VF!Zqcki1jU&vxFuottx>GRQ2c~HFY9;wU^?D zbNbfe-6R+WB|?QN}=5!S){HG?fv^Z~RJ!vJ8LQMSS( z)L(`aPDS_Bu2J*bmOD!_+t|Yo*m?+KokCy^PT5049!nL8`cWRx}r}UC%ZKpw6JC#II3CK!yTKy<) z67m-|Oh<4-$D5aWQ{(zBDg#-;{7bsDQEg_i3T7MvIFl;IVUfg3&M+ft9M*~miI|Y$vKWC zB)c-9?yTHTBq5GrSG3Ro(<7Hbf((iRwYq`PYnft75y)Ukcy;eKOT026suj3=tpH9& zQ2SR_5zfh1@i=kwSvn^yoyT;s_()xU3X!`#Vn8 zqspZ+h1Qu~i0*L!x^djUE4|F?ykEWkI^h~N%eBZnH!=6+-fvpMQs6dWqZViVqZ@{U z-ale5QfLNz%i)q%;Ln0<9KS6@3OWt{Mc{LyNtUu0frCX9rGSCvZmH6;P~p!V&)THKdN;7BzOh!3Y6!H?RXJ4Q?T8OmcFTDbcT_0a zKaC@<$qDF_-MwCZfVsM=HAQ|uWBE+$4ekR9EAhS69rzri3k>kEq3IPp<~9r!v!Fic z?_8}Ck)gj|W31U_VTi*MA>tJ)7AHU<$w7=B*_y>YZreBANox*V`IMz*%@~X@9`!uX zlW$ld;_0+q2@oZpD|8$sgzx~hG6HZDK7g7xIgr??8+L>|6Z$vFRhSpOB3~(&a*vJ- zijQUW#Y(}$CZA{?eISOkyhCN>4l)L^i1lPHX9g*NnRQ=C>F8vWeCjx$S$w5k@h6i~ zI@l!_L68_x;q*iaB4MyR{~P`ynlSva?|pW=;=nP^E3m%X4A-aW?Xlx1un42ehbex2 zE=bC7Q}cX#E@O-uDialQ!96O0EtOz6Srjo-D0%CBAGq0b+Ab^sRcrzXWof;Up=J?I zOAXOb<4z$ND!|NDr(J<Xx5ENm@RQ4R@*VCPvbv~Y%mw`c?W37)|hw1gvFq*GV_IKw5gVOp9M@w1cD^& z*^s;;%U%Rz2r)RSX{`U%G)iB#^)`Z>69px`U+KD!*cB1U|9aAcYGto%x95j5B@QPR z*M{Cq)gpaF99kFrp%JgY_qf&T0XYP4!#&i`WKQe}*&8Umqc;R3G{wvyOE+yyyzo## z3Q~D{Tk$NVEUV_QA0O#zEkT_w$hG}VV_6^nFZ9~{>BEay*&GJNThBKBu$C;!8eD)D z>Ux^hSHOQ1Z5UX2Cc_i&VOx*wtnogF17aHLYrGRcU0(hfwY0<7h349rV zbm;3CqiAEuvk!i$RaE4L;I8q47zJa)Mb#D6>0sj1P;RfNyS;YX^b^W!B^nOm%AcR=j-zuGl*~ zWW{Wu`b|LaaUM`o5^^}F8fM;b&@tA72xD(O$VLBZa*NVzSW z>}pK9$ii_wO%SPwWHj+AGKZ4almTHzk3%8693FDD;&5u4)G zHafuk@K>Srk6$8SoTb%TQm>1qNTwuUU9(CpXj5ykI5rrln&8k+`3mc15wZ^~Ul_Ldmu}cgJs?ip z3lh&67WM!g0Tp+L+;!F#kOnKDC_8P}Q@3B^I6W{j(bCvXF!OR} zNl9LlSN#4YlewcVz7Qp{RnXAsBkjekA|#aViuV3duIKe^F?WJA3CY?&VY8Kr9<1(@ zu7Sb${J5I++J4s`u_A5Ms0Nb#5oW4D)S)HSqB*Ht+QIe|@9W9-3Hc0D3sT5@||DV#B zak->;*L4vBu!q;3Kfn@?4lHe@d$z)P0py#VDGHE4a#s||OAhSGtbjUx8{v;aCU&b= z*q$hZW2xm`6QhA~*LPE5tlxS4=4>NT4!VMQiEcnqaqG8yFzlLI*hE>$o3N`UcsuP8 zQJAt3Gn6?RnO%HK-LT8=*^+v)+v5hk2XgniD@JGtmRv{(oEKDF?d6+wnHBM~w>fET zcpNex-Fb~Xeh|ua;i8j-{p1Mr z=S50YvYat9wg0dn?0IM9?8aeLb%MJ$z-xU9;YK*u@^8w!vBr)qzY@@0ua#lWV+80I z##~0dr+o*hMS822f(<(ET{xx0tL^RsQ*I$pR{idR*vdpz>MkJLK%wvQ1xH&=rl!&|oHA?flx55psZIo5~{{P>&Dq9)H8VEFK z+FDgq^VWCs$i`3!#Fs$;-z?pD^*oPRY(Nu<=NsF}3V!0V0!|oLUc6Y6nxN~yl9;b3 zM|}WYy_SP-ol5_W?!Xs~fzfwa33kj(Am~?+U#`CvKRY6~|6YaT{Tb$tn z5Ai{t0mNRFqOD%?@RgT}AingUIWXx9OAY7^u7%@?TxyT)^2{c}aGn)==Ybm0*q$Ux z&2?-P&v<^ilwhtzNG)DP>k_thx6nPY2IsZkM#t%1{ zy;BhEc)MnY!7(GXVIXEQi{Wa;oWUm5-yr+-o=i&W)OM9Dw>QuOJb z2#7e7EHc*pPmdXm-Bs)Ak-1I< zV@$5Fg>#uA#*xr|IkR75Lo=#bP$$-Mg6T{ZZWc-e~{jjPq$W8055qbzoks zlEuvm^rSg?w=K)gSQj>mC>qZhD7*Jw0=<>L1&o?#@!u=qe}HOZ2=f_&jsQn&;p{|w zd@Z@S?>bydf*V)520!^C`QpE8Yg1K%21dw+*1<*Fja{QvrWI;hWp6CkZ0gIS^FV6f zThYH}e9=G~ryH9(>sZU@q+-nE$a?XZw!k}NXtIPOP=fB;M7o4ODMh*DFn?M+I8DKy z80{jpkuvGkV!$hpM?=TGb5n+Clz^r^m_rdw zzZ!tMGHWU6k7Z!`?SFD4*|4m>95o8E zz96~k;S{d$Fmd$!@Y!XJKZgIkKxE5D5)$IgNijTEU6zf=@GWJ)iZZt=OmZTyDkt`EZ|)jN=;-fF(;GEf zNa?o4I~|3dmHDm?3Q?VUzA+C8?%j!Wy!tJ1sQ*Zcy1l$a>l6Zyt=^q)k|i;hP2sOn zILTX4^G{kiRe(WXG!WjwmHAv8lOaEJr0q-*ht#1#CWdcGrGAX58V5XbFPCO8KvGGJ z)Fw{j8p2cT1yxZeKUykb_Hs(K*#4XU-YMB)eTxeVf;c0KqiN;4oigxQsL>*0PY54T zK2ul0Z9mM_4%a^<)2M(N4scU3L;qfAHsZai4W9emt)7hX96^|kecEy}Y1_uGUlkj# z9ywX3z6rg#4RZFyc5MN`{Eyhxfh?6j|4n*N5P4mB0vz-JI(|Lv`Tj@{J4q4LjsWdi zFw7Z&KIDc3{dw=g9B>E53{i8~k+)`d*!^fX$))LbDm{?n#k;}s`8WtRqa|B==sm`m zdbg0l@=B{RXHQ`jSyx-~C=#iaQBYZuNq*CWG`vXuAU1v^hdR*;KGthtrV=L6w1tXh zFkR6QBi@9%_F%F%QQuiv0XS&V(YwYqnVLHJoSw9pB$C>rBXXu@9 zeMV!m&$!l^5^KPeTr}8dpFz{0d8yz~fMQKiMLyyBx*}n@<_XpMi1WsIu#H;Jv+dELn&{0M<=LS6 z_X*hwmBNOWT4+I99s5C?gveycVNn>m#C?C5;Xx_+tdV^7J2hyDeMn4s3d+ET4_ML= z(jw|f^v>E+FWSEUxi4&^gU9Y^R}61SSC!O691S_lfgfNj57R0W^J=sIkI@4d000Ur z0pbjb{||&bATlg}cQj}G%PH{Cor3yeuhljfrRGsElagiQYT5lh`)tJk_Fb_ypNF+2F6xRr0=d@TRyZ?!Wvd} z!sD#XfaWJ~N~xjuobS*uoYC}_9Db@j?_7i}&*@?uYEWOdfAIS1(ab~i2ChRKta5C5jB#6e{yq@m~uFv@VA zo~mSo;r&#O6lk4LJ{M?^XhDQt>yv7#SG?B6vLm*XDRpwbfH&c&v75*`lVvo-EJ+3z zoMt5C#rci;6di{DW8yLSlD}I5W@Zc&R9*DckH93;o!aNB6JML0yzELaVAk&HgYcxv z^L5w!u~5csLR)VXMKVGt#0@sIC8bh_9UoH@5CZo1L78{9kBoiZC?&{Vlez|tN5QqJ zOZV^8LCzJrG6{4Qw*mrJY$7VDRc2G`l7=*=2#KKs(K@7y97-fl^hT%Co7^Vmr|kq*Dpeb%6g)w&Y3t> z#PyAW7yqSuvnM~pJ=_m`dI`}ejhUx27bqyn)5}~WbAD=|Wl+G2p_ZXsH-PwN=nC(I zi=Tsuh>`*%vefoa+7I4%3WwB$>zBZl3oAVxn|7tbYRA zs|8x$U8NI7tg)|l$VVM~!&L87AXJCr=|Rus7LBP}U*I-6Zp;}|uNA*w9we+{bVQ(lQy{tq$_BAd^CpjAezcZ|-i7ZVr@O!;k zRv&(oOsFGnQfAJdJbt<<@DkOt;q9K1&H$)J{a50ih zKtQpfs!Vi=_6*{cWmWF_(ckTAjvgp_4)^J-tug|hjgD2Q;yR+>RYiNj+xuToLCArG zJ1UwkIY^>nCO;KqS>m-qI2YYqCJ1sSa)7Zuk7KbG^> za`=kuvJm$_IM|py`+e!F9R;9ec>m!m+XRmrvz=QoXoih?s1L9$dhw~U(+JNie?Wx0 zWI`@3FAP$k7N1q&X5!R3S!e7H4C(q#j+`bo1y)2^3)z(j)lcM%3S~1W zQ(XR-=>e^3PjNz>A!{+wC;KRA`lp!ooxim}kTy^%O1`9tL}Gp9ywN{XhSzi*0D?*L z=V-2U)*t`nv(r&zCP|+%=uuW;ymyk!$Nd6OEk+h^almGc4w|rm zOu(Kq+xW~62>@=>0gnL~V)gmZg$x4f`9P~4$*t~x!WlRUO!}pF2%AtEA6}%G;U%0s zk(orxaxBKiHhx-8-+Hi$QAn9!Ffr@nB+>QAen1K~S4%GwGAa3klx3U$^`A#(*5Guj z>qUJ`FOPEDJOj}*Xak2Tx!GumUUIa*$tK`RwRvSA$GiG%4C6}V;80xQRl9mij(;r0 zsWDiv!>~ik+%o$t^l|shwhJH`C=@7i+aH%EYC^~j<7G{yfClnRQ;%Vd?g7hw z9f6!lp!1ymWEq@hj;*QSl%muit`oCdE+o5PCk|8t|E*%kmAO3 zinKcuc_wp+h z)Mk;B=xE`~=*Be`pMW=~|KNwHH#qvRBrUdLYE&e6@`NjJflZs5{?sv-1d)Nty7i zfyXx{t$?S+pXf5+^$@{uKY?bfF8;4JZd=6lqwZq(*lOoAJDW!DQ}ZtC;PC-YW*9L&%?Po_Hn(^E`q2-`0OB`626(M7#5yhWqukA(AuYgFcg|S@F&({e`qyzKD5Q!)&2i^(Q!h&EeIw#;20aBpgjYl z5SH;_djQL-$D6vLD8~Y3V?zWR#>#c-rtXCrso<6xqD+vvo`3b=%6Zbi?lj3_#eUgM}uLeQfJjo(T-U`LDZ8y z;VdbIp`*h>8Zh4B^qOk!tUu_hl_Po1*{YI66-UAcBroY6V||n&xJdVG1DMctgy_$C z%KA-d?_HW(b-viq->he%qIjOF=tpXQiZVvO1U6FX%HV<`4(hU0^9xDZT8!Ka7Fk)s zB|Bc<2R1sw$F7*9|8mysU{U1^4C&E5@*p0*3aTK|M^;{bEQ4~(+@}dK8s}4X@l}yX zSk;1`ps7eZrR8!vy=DHE+YR7TOjf8{Sb=?FS8|1bA3qGB9`~U%X1~PD9$QEkOqt=a zoL6b(+J~2Sg@||g{uK;!-A0O11>;QWnR{}Z78KpOi4k;nD8TW2c6WQ{zb5#*r%Qg| z>~P9~gIaX&tXpnd#K~L-iydupy^(fG%Xc{U_*r!g7(T-i_xFT5BUM1Y?oD%j(Tb6_ zu8c@aSWkalyzu{0)i(dMRX7p!8QWaK8U*FKR>Sy0CmQdV~Sg_oZe3mmoBu257=;zT{vB`2QFm@ zB^>ixkm+AezR^ax!%OiDv#>Fe)$$z^(l(9yOf3N@m zNEWT@xFgT7t=jE3mj3r)cBVHaIT)qELn7t&K!VlXg^@nFfN zPIfZLf}2RL8x|52Y8kwAJ66UOvcy#wRT;x5-Y^vg7=S6kr=CevF@KmroZzHn>zU}3 zq24={(A3SPReB)ni}gGoyv>ty@;{=>WuEo9R$Gwvcy%eC6bTJkPw|cAKN^3Q%o*~H z$qlPj0*ML$01HC`AT`ADGUpjgLr;F>M&wKS+M+l4)fl+gASaHvU2uH7GEgp#?CAh{ zMzMuKn4bg!N1`~k+*5W4o@JQf6r@TMh5^FJY{dHIap32#AK@u;_V8Yi@&jA|qwN

h2rUnM@N|_) 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 >rgo^>BP>hnw@*B_jlv0EzL6Mp&hmt5 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

L*V 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�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

W!ylyW_fcP+q>$#8>?Gh1BX3xvodlBSy7 z+y_2+e1wKaS=DvrCxNYDuuPo?Ki&bBvCyrF3%f5lUeB8$P*F_g&8^Op| zb;azW;xc7oq2o!mV1A;1e!g}O7;!?eLu@x(h;MDyG`$?W_JO!kySKAW>sS!l=|9xd z?^2W(|4l%UP1TBz7FTNckne{Wpfb&J8*onn1}A~l1a|j}`$Z__c;!mJ55WduR)TeL z8*w~q9wtS^C1$qMeJ^CU;(P$_h*)WrnK~J+!Dv@Q0~3A^zFKpbm{kztn$`F0iC&~& z($jYDg(@vk&QN(@(t*ds9QSd$o;WU~h5qcPD6Z7=;e6t~&x)`!tmr_I{O9P42Bb&G zZ{JY=_uulGv0CEZlc`6KJx}*7PEM$Kgr(wR{k4yT=6vULumcW$yPUz%li)PjCwG=N z5Ztc89Y|`K&C7G_Nh+2{e@B>X`+CUXWF;OU*2c8c3*}7O4W@#a`txTl>;$~a1*Hq) z-k$HDy|P+*V*2ud;`LZ5#h%?HO+BQKLmFpn@fMIOzuV6d?eV5L)}&LB3`yssV=B!W zMU+rFkH~^_#KM8>uGasuc`{lO$oaHjwLX7*@5l{RcBIRP(C;6QM<)>&41VNb*?kBd z?Dl_VIoF#IRHgh-@)w+~It8fBiy<~5=+pmZEXNvgCI35!T%MT4x_DWK(F3vvDc9%{ zSU4Q$RWwcu5#K1XqWq(PG(FkY6Y#NNvn(vxjPrU0mQl3I1@eKD+X=3kQYxTVWpzbO z3!zd9Y~NwMr9+3{hZ0KbNKujR$A9K##Pq=&`mxq*vi%>RGlLQ>u04oi@;c9I1M7wj zE=Qa=hDjS`#^3W^z+_haZd*Wp!@A?J{$wCRS~45$jUUwrk-{7+_K_-6qX-YLqrl;M zgwXYqA=PHxCH{HKJkX{ANWXZ(rfX*DU@&fnMtRH0(d{+VxRdB!}k_x32~X_h4CWeaDN;{$q~{QFKS3BSSHFWWdFk0iaaIgz=mGRn`nIBjyBwOpy7SDxIu6m8e$^HS|Qx`Kcfy$yDz@B6|>B*!OS$ z<5Kg!euMUvT{w@2-EFP<(oN6`;L!vXX)$i_vcME{otZH(_!#J3M#}H9Aof8^G_kpk z{KTu)wk{hMAA68(o&I+n1S|@!oMy%vwLOdN#u3ntncnbG-Jj;BC%14E9F%->r;rJ9 zq9#HZvg}k(u*hxIuxTtk|AOybJm1BK8 z#iD@2k#9ER<0(dkQN(FZ1~@BU5U28b*70$D!}ep3ORMH+(Pz!>*P!N~)0p^POt!jI zdHXZm;dAXaMOybU1{zOi7?%KTQ0()9j(mdYZ!&D4K_HvUu5 zC_k31C3(#ec;v$(rwaidS=t%WL(YaxwPLWu`(WYN@GIglVf!izGO>>z8b#ay4?ZC` zrf6zD{D?FmUrrgf*kcEd9M$1<`?>&O*e@6j)pF94P^Pv%>38=LLQACi4)Rd+b4rbJ zg}SEO{qSdJLKfHdFObhYh%0vU(Dq zQE8&*Pd(y)aDY(ZwzI|l2a|iriBNkz80@Ee!bcJX&}2xE)K>jQvRXsb6!?ym2ju)0 z>oH-%uyAYoTpDrpfCy_WjXZz6{P#{{)dh{s<@5>B7kcTS^VF#X7*+m%Fv5JTbtVkk ztbvC}AaVS$jY!@yH=DjcO6C)`4SZfyDm)K`88AECg2wEZ#fJ-urb3gEX0|q&a6g?En5`SZ>GX;qV@Mm>z~{ejHxkQS+iQste>X4d1={oV)O;SAbIf)MUds=W(l zltkequj)2!=yqP3AXnI}EO3fCR#SOm% zOm$s3Ao>mbk{*%kI$4jSyvF+NTiB|ka!cH8vN!)*C43-_2DF2_;c9wy>hM;U=IO%4 zspP*^mj9R-D{aH8C6$$Nrco89qC594&c@H=DYB$67dM4<)fYH4Sq>>p#< z5>H%%6R)DbrPj}b*XGM(?&lJVWC`d|qgmi%P+L4ip#gT4hTb!nXO9H-E{^fl!Y%}K zju6(Pb_-|!2=1 zgA5tSXYL9)4`GVn)!nV+IOx*mS*H3aRTuQM3tYL0DP+;cdr_mB_VgL0%S-~lhS`eJ zzc>Wv(Ti$ODMu0nih=2pe9uClr{ryb`5mKNCpUjb+3U)blCzu_RZV+#)AKQh{z^QO zgp4_OWT4{>N$%%L7@2PCU}Ft6UY~!X_g&u^$$_GZ4Uxw&5nA3USjbc?AAR>_7k6+; zy;5_B_ZRT)4WAEY9eS-ea-II{j`fAH4TlqL>y}zBBh&|YLfsa1Uzs?tB3^0`Y^MS9J~vZ;z;tqMMjPt)^+;G&8x z^d|U2b0f3;;)oZf^m{T+A>f5Q4r!opzDH5O&C>KB4{#SD1&^!kOJma1+D(y0y^{WK zA(AC7o>0&?Kc5tiNfy-Eq={9U33`b|iO&#*xS_*YmKdW2?{v?O<;=PH7SQ8JLe15^ z2jVm_a8~4!rH1w8-x$ga*alPiNQiG51kE(GFPbFgqu-fc*njFU*k)-Rqh5okWrF#9 zwXu4CqWjlifN=kSzu`o^tx)r+<+Mzw)i%p7iY$ank(DQV6`D^km>5Qm@cJAfVc$Y( zZ1>b+dW+?l>0U4CT7D;yphALs5a{H~?X&@=$!X2|otQ-F=vJp_qS7zJ;IY!41@2Ok z&hCgIv>!Y0^&2Lm3hY4Cz@l+XuLrfO@+@njhqSVG$Sx22>MctR&(%86o11-c{&Hm+ zHMllWN{xwHz?$#DD~G-3MYkUWK}MPAQ9c$xHGk#EZi}Jy%+I zu%V>SR6j&Rm_`2uRc_h~*j&3%UAiSn)D-{OaX@c3aYjPZPK{uYw za2_?05{AG(?}j?zzwkT(2-{qU4aTZuc!ylse!|T(K7NAvs7YY!i_2(f65v{*1$V@# z9@xYI2eX)ci>uYv6c~Bnb^a_4d!fTp0T)c^Xb%#+MSFV_b`>!!uVcaX_*}Yh{qn}_ z7Pgja?gKJLZw!k`%{>fi)FIC6m9d_2GMlCNiU03P1c9g#ftE&(0gH$jPMG*MF@IwM&44e8g(b}7f%lNhHz_trw?XJFW? zwL1`!%tc@QBtW_627WcrXo?m)3fn-gS<$i)haNaod(;kS#yoVl;+8t0(#QN%S)ZUc zYt?i*gTkm6I@8)%@4vKTUvu#`U+!>NI>6&K;R~Tzq(^caA=H9H9;%Wx2+E_z^1u=f!}z~065nT!v3)2?@w1UF47|M^5?cm8JgAG;*)L>OFN z*M0fRwPbeQZ{K{a3_Qlrx|~4KhsmaLv;5+ooL&B>25feIQYZDt_Li2IRw@SQd5Te= z`6|j{RT_P{y7?>5JNz^}`Da78FH_awOf^LH0&6`miODLK(|Xqa`UM6G12nQ&Olm>$ z!aVQ>Z{~XaA^5Z=QLQ8>o`D~7=`;&wlK|;#1Q8Xrxwl{5`E@3*Oj&4SQ^(e9|b8B{@V{l zyD~hoBPJSMoF5|n5PEu;+K)d#toeBXi}0EZTI(y#sQ%y?k3K7kv#!TwY#(Yc z%gvg^9p7WoG#hJ#vZKVaN;moj+e>_&!Uy&4uGEMMHZI9#MPc|A6DDvTqX{$CL%lb>uwN|^InqNHQ`lbkf)tI~Ume;bKg(%O!t{^yh%4}QVRcR+9 z!0mZ)^&X+&&F8{suV8xlf&@}#)>b6M=wF6Huql+*WOmc#R#rlQUYER4Oyt09SlI;U zLbOoj7dFcH&Vpx5Nj5#0$R9Lj;Ub)Ah~|Rp-cv$phI!d_O|+kU961GcJz7Bi>KJ1u z{(E#cYhv1?FlM$dzlWs+D&;gxouRWICLiUF4F~=geLz11y`V}#LR8=2VA`3Z(5_~} z$@cpc9r|WZmL;S_)7Y^*R?{g-3BkH4=h?`E4!xN|a{RH6o_3sr2nyv>5)+ImX0q0j zphDcy>xWEFqmN!uS*o)4(V0p;D<#z}*`@v70(^{4c1A6ahrf#n69Ur}zNS#`O7vpu z5v&wSJ(0!#I+v$7-ceB#{ti1S2qso|0Sa*ZKe;dZ&bO-^CSfsGR)Hc?cb+ipbX(b) zTIU+CksTfyF)GdF8thB~5xhw~I8dZ+{3nxk{RE}(Wx$??Py3zDhhHpRDE0cYzCQRc z+XkBObFf5vE;Ua~%|L~fJl9-k$S3{UylG*7Ov*)W^C_|_Wp1U%_r_7IFGHhQe_&~G zAmcQnXa6uD^7WYE*5fh133N-qi-axg-oVT;0?hhgcMTaN6ykg5&|;w13xz#+efggM zS#KMIQcj_o0_-4cMcA3L0WW*H)t0fL!^{(9C)D`0SY)s3W(1SW^39OUaQ0kW$cDgt zCSz@1=Qjj{R&6!AN!2^sl-&Mdn%2?&nLJHDHnMwp8IebloM*6!coT_SRgo{#gL#)6 zP>m5u>@>(F2q8^vXm-xpWt+jGmHWiQ%PN_X7P~hz+97Y7MV?>TMwET?k0-O8v0-Y{ z47u@b&G2evD1lf#ycGih3N~V!Q6w`R(EDq4n9awKUJ8I*LSV3j0v{qb4eC=eU^oRF zO6mt7EdWf#W?ic?-_Q3&|}hErz#3x5o}vQ<4RmP@#WSe$vM>Lu*{I z0j7k1hmoBZ+o=p&moU6k-*WnTu-B5_M8+|PGm4BE3Bl-HqofYNeuL83$=eS@s_vp+ zb2i>z-StLRN>*6CkW3ZwX0y3T9GA_>0CGfo7z_Z_j8rg30}w7vqTH~k)5eCqGtpGO)_v*-_0B@Ix_;}6ys*i=`V{Z+cA>sRTt)!1gCU0b53>b$n zI(UKv#yna^UFf%jkGSVrXDUzvKDUYku*fP!^C3c-^6iiy364cC{TJq1${yan7;V9P6+q ztCDbNr*C*i(yb>pK|qJkEjt0&p>ss>5S77QCZCANsq8GBv|*I~DTZ~4l?E7-sD`Aj zFVjIi1Nlp9&A`;+VMN4p8xyhsr-98PBWa}ZSaEZ%D?*9c z;-V#~YcUx+8c2?M6bwpx*ay<10XFQ`1Rrt(+wM>v(>I&wZOCG>UgsI}f#gnjn8gkp zBx1)3aKMBL4)5Ce6DEU24bz1m9&AUyvCmI?&$d3i00?Pq7VQJ;XE@ z+;Gx(#yP_D<9N)G-G%zE;^?AvZ$SPso4G1c zgJoa4==z;4aY2g`aAGq^T8gU{WUKG}q5cd%ixjz<^+)YD0i`TteAYzKYwa?K&4-L^ z^)+~EWBC3j$m*Jp+K~ZP&pv9L&DLY z9Y{sGD*10yVkS13-IpG>-uM}b*jYN3VgV3q9bNC-!pf3Qi$P^LJN{ata;@-=j?z|e|H^OwT~o&P054n())gR6&@EFRY&JmtwAWkF zGAhes*QMHTN;Ntr4ZbkSmI=!q{aUCV<~0t)9eW%?Ey?$U6&E^XJ;J9?mtwnaQ_%U_ z{@~U1*C{?i8^weWu++H1Fp2m1n7(dGF;nf;Mycf$aU!2(1@qNM&Iw=zF|Y=b#9EHZF;h)Gd zV)xo*J#+H&_I=NyRq;XdVuqjq)g3Vpb>z=m{?rhBK?+FObF6glooOHo582jn7Vra( z{;$8Te-OGmYM#`2`_$!is8H<2nr(e_!*IWoi9p(3+W&)IM8wXE0qIJqhN0nT^)XHA0lK=A&KPN4n~j^ZAmb9)+kx7k zjgMB1z4N}iXQ&ZgSL~~PNh z>Y`N%5XUu*ocz|r=5#2vbdgdZb&EOtAKY-*z&fez0OSjjgKHIA18Fcj75|28%e+QH zBY%#B$S!jiC$P~8^{p8W% za8$YQcQqj{7^hyhFZX%Wv;oK$fn39jW@1WzvxkgI`?Q!tF{JoqOoBZlRoF*T5GrL7Bqnn)&mPBR8yUCDw;}2ntyqY+<v^FIJxK3Be0h(6VUgL(A{U?pFt@Y&RgU8NbmR>@9XtnF~C&fah5 zLE_0VfA5XdYU74FrUh{U!%L@PlPs^w9fI;A8?UxRK7IcMEC8$BU2g@OgEq@|>STwU zyK9D|n#lPZM?y5GG=(P+TiRr1Y$ikj&?L zN&XW+sy9@kf&c&qT>Ez8b4|B- z$@`(Nu=0(im%1elDTi5yx;35}nkJ_=9R=9xyS@B_EEt*Wj(`9FWgMUDl8^~+5h`nS z*>9LBOcZT&neyh0d@KQ%G@72fM4n9K}GjONP(ZrUYkx((f{-hFA#JT{m1>A69m{cR(^NQ>*_9H z?i|9o@|iRHnucC4@_^EUBPUC#$Lzy!)W3MPAbm>k1fUTD)>L~~W(ov}MS|?5s{UsO z=iiEBzcy625@S<9uxLF#E7~v?AmEo`XWNuqQ4<1V9_tcM;o$|7qh|KNjSW83)8T7f z_$q5}xS!_Uq_Hw0+5hF?`(#$79-28#7QHB(?ot(92^(JJXMehpshu(NXy)JgiqRXC zH#mO6U2_0#9Y-!cOi!?3)Nf7%4&4bIk>IvTz|=@XQEoCiBh&BvW!+e|S9&mK5?WZeipl_wSBm zMa>u=tP}Bd>wwHf|xy2KTWR zB}wMXXgg7;n%8cx`^Qc+^gv}cCheI#T~lr}QtUHC#Im6v zxnbu+z#;Vwj_v+*5S@>2{XUj!$Bt?(QgQG1!P<17p}M4=FpEI@KRZR_dhCSb=Pr8J z-@szpBOP*RdCmf`pQZhkKC9<{$l=J*b;CtEHf_>>fG}!|#H-ZXByd+ykJWBZT`tAt zDbui;si5<@QafG@QeP$nDKFF*|H}Nopeo?y*YI)|Hc|g9wgkkTvPw}k3O1~oD`t4w z4gJy}X(JKD`JERQ~M6a7Y5tLohQc!OcNzS37! zcOLw~UqQ+%1xQsK;#D$4(MgY~F@kMxl;RPc17Do%EWiMa{fRIJcpnF1WQow{@Z{qt zu~~7qO;e6s%g14K8QX^77Zzb*w$lGNk$j#?%vfC&*%#D8`{quPbK_udXIW2r^E$Va zKn?UpX}dM!Fb3bK)&AOvC2EX(#qOLsAv)s1zP-RY;+PYQ>R&NIJhv^%rCE6mUhONZ z14mxoH5bXIAl`u`Iz++gnOLb;i^9NFp6yt#%`3{Oe@wjKg7IBzG%Bgl7+crDSldqvLxw+vae?4A}+Q><+lF&kVBS zQNFQSrd{4I4%8=Nvj2HJRQU+_uzS9{<0qlg^~+=f;V$0Q4f=SAPa**~zn zhC4*~j**g?KKYx*?WG80v}DW=Z6JFS`e5wTk44wMVQ*!EVrN+7!5`pbj+$JTg$)6* zcq@;L8S#tQ=8Zt=FFi|T5>%f`7@ns;Hj8ZJR^*Rb!G$B;_Cvs5ClpKNMH?K6IIoXp z?~Q4AF9O5o2l5e3)TcAUDNrj8&Y3g{%scJIn`Wha{rb5fuZ3YOHClA!x+!>WHoAW- zU!-t7-l-!nybe2=yvnBgLWxhGE_CS@UHxy0?;6(UzjP3KS-l_ju)xTh6LvF+Y$(a4 zM^vfDMmmU$&9x1;FZ(-G*~(R`KXk^0H7M3Yj~T zWuZ>MbQoJ8yNrN(r@h)35LKxQdL$qZVBnE`Sx`%2bw&OhHJHCjmtL>o%$|w10%4yJ zQ7>yUOol~EXc2ZYUjo&jhGXOwBw2cT(RVw8HUsoAlEPMNA8jqw5S3Th^DrrHKBru{ z_V5N|m?FW9#={?$c9oJo1Sm+fmCtTs-#9Un3-UuX(a zP8zzp#;C9AFo5>Gc8`yHCrpkxL?Y~>+!@@qz4Nd10%AsYfgV*S^bcNNK6{@pX;{idIg+6Js2r^y zcT3~#NDW_=bo7VMUVhMNe9=MUT9 zX0b2!v#fg}A$I&s1QKn1bq*x6z~4lTKo87C&P%GyXCC?v7K0U9 zTjHH$!vgC8Wcb<#NSv1`h6ef_n?*hOSkB+JLQPwp`six9&dYwU#RGKSr zLO)YkrTAF>=Fn1FzEgx}vE^W4{J4kX@m%b{wSZ0*AMtMO_S?KlY4o+iehgt*(SPoms}E$QN3 z1-Tnd!`AT3cq!hLNDVS_?nuYJessFfxI zNC#KB&Jby1Z+7Z0md=SiJuxZgUvvRl#n~9ePd_r<11istzf`EYT~+Aexm;xr41FUT zc##5nwK9Gxn(EfF51qkSM)=!|oi%CuBbUEDw|REELy>;Fp^==jX3PD z-^E^5hL@-H9c`j$4u;p7`4XqbV1}IlpF7;IWiL{X*_*Fbxt4TvCg+E6gcvTj&NY`n zm^nvrbKrS7#lRvynGB6`Jo94GVAaPmzrs%eZ4Lg%UAZr1`H~&hI0p&R^d`nY=XdMz zkpVFhTFLcGUsPU+{iEj+(%Y5^uc4Cn&uCQ*x$JnszqOP-6?w6rCbk8*UZzuDXuZ;| z2cnqe0z*|L5oHmr1@}}BcS~T>;P`;WUIPGT?~#~V7E748Sh;QH z>3d*GLi%mF$?hS%OSldX_MxRj{ogF3X3H|NqRv6knV=IIfnGZUM7Cp}Fbh&Q&kcay zo}dT<)}-#9cX^HL&Agssz#F3^5c}RyNdQnQH#&~_;H(ua(7CYgW!^x57Mc3cqlaW6 z?K(=5N1>wWF+(4bFaV@SC9w~M0%kxHqJdyX7^bKWM z5zUzMy^QI)h4IH6;?Z)8spHh$OE&4_)W{a7RUMe;Y!k)+1e1cUv3goX4=jCgaTE-7 z$FAls_aFx*#(6=H-V(Dj<4m=f0|0IYZ?Wn&_WhfrL7XSpQOOJP-oFXnn`hPB)|$Q8 zKid?bL_VGpOrjU~vrEoU2x}}|!5-VqcXFs7g^OEcvL##ZvT$zrCgNi0@z zM|r}0y*C5FXowRpNc+#LTv+j9Hfyxu%3CKo6>V!kn}b~%W@!^aLDpEfTk?&Z&x&CG z<@WE6Chk6Z{ApJl)Lw>RpeiFS!DKXq<jwJ8???B|+_W%5h+<|v zEodEsPthH10wnq7UyIp5mm%4U0We~CAD#cl%_M3JBT(P|0aZd$)6s!gsSlhHnh22n zSb1AzEeSy{zAc#=BFE4wo7&k*H=2ECx3cJQq^~{nK1|@!n}0NM85jO8F}Qqo6IN7; zx37-y?)-38(DP>>!l4r)k}5;~svw+<@9;bD8)Wo%K&%MO$iWyJ)VvRj+i4jUAsFAOo_4f47bmom9Xa}TZ5BC zyJf#Fq;W>n)>`PiMA>yX`s1M(^Bn&-=4%=st~31QePx;XjbpB60Ce3GCtih8(;ICt zk-|F#M&c>f^X7_sm;`C)>A()yG+#*6u5__(sFY19-yQy?hcGL$99(0g<{#W z{UM&76n2o(VXhMFGA^r7vbe%JAlZcEFD-AE1~Gn*ah}t)u)wJ)$G_o;S>1Cp@#G>! zHXxUZm+${md7}c$gwXlOau*l*Bhsc9N|f_MBLM+;TijkJ0#&BWK`j`xh; za6o{QiywL(3fkpWm+~`KO_Q*MDpPqrfs*UGuXfHd-CkzGa>Oha+uk(Ei&SB_#5z8J z)d7WpTQ_J677+_HzfPC=G-G)(FT!URo1EQ!dFa2a`cy#25!ho$%RTwB_)av0j`81a8LvbuDY5 z)d%6YMlosw-w}^B0p^k-9ncos>SM~30hAtifehQbT{*;&^{3>lNTODD{^8AEO+-v?3wK}E&Qp7 zQku`MH0|P{s>T&x=`qZZQ6>t5B0>Wais?V1{~I@M|Bw8?C6HN3^lQA6Db>9|$-46- zR4Bs}uZw}h4&R6ri1Tkb7bUBqNPePLptY6RLL6i?p!zZBW(!4ZdcnzP2BcPrx|_4hboxZ>x2KR9%YJgvtvQ&Z4> z`|a}la-Wf|{w`~}} z(+-`?^^wUCi!jt^5=eDt4H7vLem&a-goFVeR?GBo?*EgS6yl&085cu$1I`Ia2Q%6Y9FZcglbU(-@EwY4t5l*Y zoVEZ`G2|od3nx4r8ABxe$!fcZgF2?-KpBq{jq4T z;ARU_0qgHiPRg6AT`GvMi=LJ)isYVgLNl-i)pjV7J`|oL_n%s=%|4k<>2feqe2VQk ztq~9!Ty`~nWsvtxe;@0s8lR)|`E)F$@w?4W+Zh0u9%JMDtk z>rDk9H#zpSit5C$?s)am)7Iannsp4@bxbRm?!aY>2egzRCsq%;J&`$C>@ zi27&7W5f1N9|ODz@`)WTTJ#aa_8U8ueM{bGdYYi*DPz?3!uuMtKw0RXxAgM`5Em42 zPA$j=B>rvT)PZ-(@!mK5eURi`pPP7}v05dGQ^Ov~S53HL8R|cmi*Kn)YzI>4dUy(!%QfKkA1J9Nu2vAM(#t>Ak4&*YZ%r)4F zs@_XUgF29JvMC!p!ux!0*DU`OC$}QEidiy zIf#7-e8Kn4#}|lgMU>5$Ux=L74*5e;RxmoiIm&`vFnDy^ghs2z zh*fcLAHqsk%;_V0Jhi;%0qkl4rCo7k4pM+=fv)@!K!qGNr7Fq#a_h13PkLpgkNj|* zpOVp7ouSlh8F^*i%r5OD+Es=+7*?s{y1P=4EpK~1W+BTMQiu}-b7hol`u%g4!jFC3 z{Vs4S$zD6<_FhCi1s|2RLA(WHwFZB~$GTbCa}GE^Ntr6@GrHJ=Ks_?FB{j>`_@>Ou zwFCm8&^^$Xac4Kt(lW}lKh=X_x1#D9wrZ)%e8i4##)qA#5ItApb)-~dwacSsSxIHp z^lw~KqSSj_rmd<@z)r%<;}-@~rke78hs&{d`3|1dM0eP;iz{=9NYyl;_xRs ztbaTq&{gYCLOjgGu?-afbhjHqQOq+j$BEY&x84Tt+AsL<f@ZLNY8B66VzLJQB;u;<1SmAkJ7e# zt2Kq-Zu?%Pbw-k;cPaKFFmMK`GJc|L*QDd~RWRCL&f5neMdQD5GpqGVGB*rxIG3=9 zkZi<`lhu@qgv9_hWZ1KRN}fxQ4tU`d*S_T*aQU6y-+6^Lg$!;O-9$zJah)t;e&?lU zAk{(V-&XK2*AF|VAev_aYP)Lu9T(39Z%z6cQN;7Wt z8%o9CcFJP2t#$UHIY(tEE#TCDl<0bgoXV(S*Ssh<^BR|dtkK>|PfnDcVwEHLH_yvq z&||FSA&I}jzJYcwn~J3l56f`cS?E~4Bph-JlHK!2;b|hK$1y@X@wOAno%qfju)xF;#@d)N(cwbH zeB`C}WTt>v@(B|S>x@pJZq=ah38HoYz|DJ!1t>(d@gYkWMOUD5mlZkmkNK_S8!?{V zI3EhTI2p$Btxk;}UoZ&tCXhU)5GkE-{F$Ns<=W8*`=j|2t>%BA?AX$j4oY&P-$q>G z6m#?~xM|7ek~04&Qp^|WI5O8Urp41v=WvM|5BwkiM{U(+cMPxL(bSMRztvupa?c;i znzB;XQx7@eRag;Dys41lt@{jVGgO+0Q8h=Bm8wzdYZAq#t6h0J_oMT4K~p;!Ae&~R z!!-9!RL!*frizH)9FlpwL0tM_WDb^ln~SQpgCZ3jWAPdn6JuBj`KKER*c5R9CXZ3n z@o7n^8EWO|+@f`ml{;&+ll@CJqbqCNZq3XOb6HDy06B+OB%3hZiAg?F{i%2#PW_}l z|3nz@0xy{?RtEP?sWB6Ay6;k#w3zFlfWX5Wpb4oIEXAt2CsQ5=Au>o{e@!p<{qcyO z0#-Bb22c#nX@y#i^hnrdSdn-MM(ucw1CAZyOUyUiv9EPx8v^15A&wuq5O01S7+WgK zaU=*PhtZo~wgJ0ePIl{@DKl?9{v%*+z;ap2RR{VsZ);`2E z!r2?^*rx=R#lJFTu^iw(Le;`Ms!$m5G%Oue6s+~-VaShbfM-4aTg)#~`sdyu?PwFdG-G8&xjk<8; z7bFyZ8EhjO$laE3`j@?dGQq=Otq)PAcmtNyPx5=#!w1)j@e}X0bT@bi>3IdQ_BEu0 zohBuaf$5y6APgVio*=P+{oMTAe?;uuFkpk012eN6UL4c$`=U{qn1QR&O&+E26s!-5 z&K{voG>s?>Ek$HprZu*O^m)Fe_HnBL8Wq{g3!cL*-A=G`>lF>fOlvgnZZmymm;sze z;a+=6;=+PD_VM1w5t(d2x zrzUO&s9T%wPbDx^p)OBLqgI9@Ema55K3#9uE+Lv|Zn{VlBA(J}{gzymY=5^rXnqJG}CmsQ2t z18F(YJIftNCS6QBR=^~B^#Y;KT*7r^V*ot>`V{wGk=zQuGiQ41<{Jg7n6~ZI0fXmqbwRS!|}S zDFR$G9`NtF)ysYP^8VJ=jOA#rOD3V)TDSfOs`jt=Kkvs`IE(~a>6gpqE=F5|A=f-z zfYo(7n+mBgW4%;*}L;G}b8}j8uAj3@Vf7^ApA@q{YokC0*`XZ@4kq3LZ&t zGdvk}z%@ks1W+od(UZ)1Fry*J_gXL>_atwdV{Ky22%&ZKvu5U~r?5lZaW_DZ{yYMg zI*G6CtYGFP{3H=@h#gqw;wK2?Hy5_?h9dygoXp1rore5y3z=2XkXM`+Q;5V$RK3jkaTZe9;|opvg>X930y->csj{TNKQV!{5zX% z;N@g#xcBt>eMgL9EKXzvOH7bcuiF|{8+OG=W9F}Y0mNbp&MKq#bPQ^zr5hbSQDp79qZ6&^-aN*GG+}W7GSBlaB zmUWmO8&Rg~w3{Y!+oc+vN4URtQI{~JM79%?*KGjdYsKkx0107r4HS}9d(lXU|66Uo zvI~itwWoUddAv||;nRCXcDnhf()aji@){FMg$(DYf2UR;u{!Txq_dHsUw^GsbmJ}D zm+nL8NG-5RLfpeo?PlV+7ZCL`-BH21bTC!h9OncH?4TBYj~j=kAh~?%#LoECV|kpyy7S!knkX)iNx zD!ydgUS}D$P%I@Vw2>JZoU|o;38g>T`p}SHX@B-|qYzHga&enyTS-(<4drKBRgdEH zhwMoQmlc?cg>>MkAT*>~R;nqQSX8N#vn>7Ni2fV`XmLM$l0y}HjY$i;tf!{aO53vTU#TI9LJ5< z$yT%+ZE49Zk;1@e_mvKR02a>UdELVYNpef*B`WDL0sqyEmO#&kyyRxvD=tbyAajQJ zA?hsZZe&Sd5836;k4Mh80LR-1MGBdFEfHU+qH;)}^K zI#Bx*zJmiZOolz5#;kv3yl0B+laH{6U!R)MRBt5!q58iB03d6;eK-ce#=N~_)gt48 z7*Rf>($mbiet(d2>*u|3X!jf~!A&kJZJuii2hEBtm9vN{p^HWY9ClAHM3z6?$iT$v zIXI-ZUflLxt7OvsAol+4g|KW)7dC+g6fk+H!D4_v@lt62^I~n?L3}4WXSc88&AF0r z#lYbjI`H#O98;=WqdD|VkXpZrtb?is4dP8^#uWUC+dpVUz2=BZ2oI3B9Uppog$@0& zbGqngS|2vW$q!F9Lv1`ljrMEuO!v-Wu(Vle|<+TJ`(o0lD)uDA6KKPM0;;k2j)odGuCb5Njscip}bKqALz%WhYO3w zo7KS;kU2MaNLO^tMmOjK%u$y*(cf7WjqO((k@KDr5t$gK0{n~f!$aPgc;oM}^=YaC*Qxe3zKWK9ehtXSb{S%r5Ffc*zGBX^L9C_G%CPEdgN z0M7kiG*0mG^k9BD8ul8FY3=Od=coJA0L;PEX^3IuBAEZ_f1kHIfWw+~PGwgdWZSN) z7WHnRZ?(uZ=jq@rwSvfS144XC|PeU6?nRs;?dZ(zq*6-)pLwQUzo|& zX5a0)=1rQk3Y%Y5`lFfCH!;?DB{+1wrJ+-dDlN`)V+aCrG8u* z=J^0aRr?xpfLPFA6k~fd!5?6R`|s($_do5FW6l{zB(D5>xN7g$N8lU}s^{~>29e?p zOwHcx(E1b{9;yzrV7Jt|7u)zCalx{AQ2|}dx{rA)+B^}^DohA_Az5ENNJ2E9FliX;;g;}CT zJ*sSmk6>!DD>{+k&E&Ms|9-pqZMLw)$OpnHc!PutIoS3!WX4RyHZGKq{M zQC74X*#q5nueWWGb!NeVWEj79WOhZ!Uu(Mf% zv{%9a00nvh^qiajfMShW27VMEg48j`UI9UGJwKETeP}5%@=WkC30OJ$Ds`$xW`V#I z0?f%Cx!kAMcQAnY{RC;TM{&`EmfX0tt1Mo6^nrN*PE&lc`W>y^8&daeamz23tS&J6 z0Jvvnz>U%&`9mwoo?l;XoW%-Ie`GeL24pU>uXb3|OxtAx16FaUAdS%~t91oW0rHPF z!T<#)BSOE_?yyi4!a4%B;B(KgPC!tdAdNVzZ*{Kei$*ehJ}Rpiwm}&a$}|X3V1<^DT_H{N z2XgxCkN7pg&I}7De38<6kazq1d4q9!K#@seGz2{)tO+8UCEA?@(#{*kI2tx>fNT3l z=PC?josX~p8_>Dh-H9s$j;2B5AJNbpRM20c;U{)j(M6Ujr7hCDdIiGnJaM=R#9znq z6<H&^ZTBx{DR!)n>zb1Cu2$2eLc+n9X4`~*X0;6me`;1?2|E1~K zI7~q_akMPoHUK@dp=bVNKS%2Xq2;PJAVlJgD@$YZkAO{!}JZala;v>Q9GB#~WfLxzVX?jx|J^Oc0 z)}I3CXsYw~dC-$#6!?5Rgm@uc%Q{qYqtFRgNO<iNeP5?qHAnj+u1Ma*0qx}P2XW>L?Tuwa;d!28HI{>J{^~O2uDkeeLz# zm8+1$;+K{$`IEi-w}U0BI1(yyna@&-`Q?9t+Y6BO&{&v1OpiP8S{F|Fu*GnE2%{Wj zjOt}bswK%Cc4d{WPTyF(Ovenu$zGy+TB+RQ6zI%AzQeIpE_!!(l#=t@;z)c4<@o=s zJD zB4O6b7kOl~oO%40Ce?qt=53<>M#p7|pBCnK-gO@xugd#8f;f(Uuw7LC}Y^2jn}x_7On+$c;I$r5H0zSJtECaY8-rVpLY ziF7h54Z~rAt-UHrArJ%b=7H?1a|5ZEzgANiO%}k0*OcT6CHk-&t>*o%ghI^un(qIN zQS#Fq40hR`u+s>0ZtJ5%4^?hdsCU$kKXAn z?rl$P{#?df$smled$$v^4n@cNs(W{$(1Y(+E< z)EoH&VM9T$lqg_=D+q;ed_L805xWRFoWm~Z77J8@9C*S$!5Vw+n1}gN*6R%@Z2l^r zkqaPWu0ojTvj7~1zwpR6Qyw~;7wzH-)6$-MnYZQ+J|{LPrS>yY9_NOE7D8$CIR|`q zDbxBDhE^+I{>H8p-*mc5?4tZ~<`7f-4mmRKb*#sc-?Ebx{gBf@?^`K&$`pu6+iQBY z(9KBN)#6Ru)spp#_PqC|#)Of)+%B;EGTmdu)wt>zbr2-H&};l-I>v3}ZQh9@g3&x0 zJw;8H_ROS3ND1Yz+=i-8GUZtiP6!V;}=>2ES5+Wt--Px5sm4t}M=8W1VR zPVq2a;)j9z{FP+S(H5B)9p|h4B@B)l_rJr0;OF$w8`%T`8D`lW)+xv@$>xlXX21lq zdbh!s2_+P8KX^^VMfWvMBBfxM7qM2enUEKWgH;e69N%OS7 znV@&>RVOg$`DGTSZ`EuM7A-O@tMI{$U0B!GzBT|F_B*^It2CA+ngjuChx&W{?JDPm zRB6qpQahOb5Orhq+9l5w*3Xx0>r|KcBPFf(ushJaVOgj2MAf|qn}jhr7#hFW^>NFy z@&oVv_Fe4kBQdEui#8wBrB2U`3Pc$bfU6JkJ5 z>`ED*YB|+5J-kUv^qApYre#Bab~uEp6@B6_tikTnOauBc3<1;fnP7t;Njz8G;8+;W z^HH||PG_cmc^HZFSLpob?(uR3UgQ849RZk}V70DT=lElHRiTefqDZC4qmLWUY81%1 zn+%_NgZv(M+O*)sZv9%xH{bQARR96E4?UoVoKm(coKGe`zO8t1G?|!{OL*Ge#0dWh zUfKQ;cp_zi;-$&?}dSGl;U5>L^eg7p@sTvni%AF9vg6s$KcR=x(^-IY7scP}k5X|J-OaAbV z5_K$>w!$RZ5GBNVmrnb_#V-QP|SU|MI#CG2nft@e;B=X>0pK`Q#E)T1wtu9ZJT<>c4 z2kR`-ipV2S!Oc(c?M^NRH9@T(W^UGVj6vU?rB{gKiqR|HMUZlo8pqQ#oPa@*B#M@G zZqcnC8+14USLl4Oxf+?R%d?Ih)-R}U1RYBXbH?%WdRsQU&+LpPVP8|0Ix(%b0tq%< z2%ZIdhXOai>sqq!jVbrtx0_5#r(vID8e=`aOF^9CR?W(C=hIb4eUHeW>Ejjl0s$9a zN5m-89a#(b5fmByqA=XLRO0jc_Z$@YocegvxsrOA*9Gh(@8`eQ}RTsqFUQ- zC=vykhP?;SV8p&%uV_ofM8#~1u>*zCuI?AXPCT)rP*+<=l~pE3*I|EFruM+(Q5hEW z|Ln|0K7#Q-UHRlAT##`U{#Cb;u3tOBnzB&mWNhS5C@`bzQ9Rd=aBcU!-63w)MqgGeMtD007=!l{*)$+v3- zE6=RYIY~`+IJiUg(z^w9(T$hQjaProTPbQPxxvl``Nq=#ES-Hw8;hiO$EgoGSLX87 z0d1cOHJ_Q}DVl^7{FkYjr9#G`hpa5_oo6{An#!9nD==4HFUx2eiEi7Y1UP}P&mU&I zxVYg1owQ$gc?BI2bm9;H6+gs%NeLGn%Ov0+QR4`x9_DfP)xb*3P z(R2N2-OiUp{A!T#F8||~?TYbcSI5DlE{PblBl21MxTLQtAtz*2_o^Zdt(a9RQE2)s zk5}F03UGLzpzY8-{G&X`>Wt#}cYiGI{o3h>18e6b^NUq{B=Ixlt7MYRq4LUaGHob1 zJ=+Xc%Ny~J%>{Q1Kj_jq(HEyC8;=&j#~4A^=fkv<1*mQ%o^+U!OruCBXW-_dkJ_W{ z1VnX{)Z}IAA431fN+aLr;eRyLgEoG_p;?jJ!Z@esZR;r%m(h0@dn`agIbUbGIi&4h zCHOSa7qXq0=Iq`=#o{D?%}~inxlpBnvE1*H;v&nnjdBoFU1gX8P}W2zktx-=v}_{f zr{ZZU%cw#syi)h=b&7fPevd8dAv)k9Qv?Kss!3S5W#d)1ni#rg)D;dsCa!n4Kugq7 z2~2R_54hJOle~8E=fIZina<8aRSR@B_h$C+8<(VNxi4xE!<79mVJzmsn{p52{ZlN>2x@X>>g<`q!c9?*Gz}hd^rY)Zc(_rch z0UvI7$~xU5)SgbT0C~p4BNbB@ z$DxN%M>T*;pc6FF1h6Jaf(}>@(&|JxW>;KlIoVqVU2sxWMAG6rk(-U*tZGMN*~!fo z+wbjD0T?%~ad+In%LzOB9 zH=e6EvNE`lO!U&-x8Ywei8})$%c}z<5t%q@JoSlH9Y_o=jNV~s$xv&usQEE(F_iW) zfsUF$;D z$B^#rzU$^BRmMFIi#;8%uWkmhriTOBNFEfg(ykWl6-_5Ur}Rx)ozL>+HT|9<_@Fb% z;6!Otfc7PP~0+U65P)Gn4^%;!FXA);C`|IgwsbLix`d{fD(( zs|Ls$+FHX!jMpUm^G}?gyVQ)CsZrIf%`{ zJKS$lp=Xo=7U`6Yk8R6$mNoJDGj(tlPLb{mG{YN?9s;f&ZhQ#AI<5~C)$-f15f8qJ zU)a)Wz|`F;`(?$IppNy|?!+PVd4mS41Yw&?PZ&8PV$U8?*cgs#?rEaky~<#`Zl9`E zTd$4_1`f62l1y4s)TtT~#}+58#0KvLmhZ`?iQukh z%JzQ?%iM>e#3nL@1P{f5wFU#I9~lHU*#wn+sq4W8{Xn}8p~x&4@<}Yp1;hRo|AU*^ zIqjD1r4BbFJB^D$@(0{_j-^-N*eV&br_3WUeC#4+%p=}g;211A-eE;?&zuh_qxR3- zAE-(cPHt(riB$nXN@Sbl;;-3pb`I6jc@itx$&4|9##J-_GAAr*PA&zO=FJ&5Zubyx z`Fv6@GM5CJ2{U+01}JD#%b9$s4s8WWaSV4H!cLzmzD@GqB0d2*=g(Abk(JY^GtWVD z>#vHy03_rPEBR;7>KwJzU&Zn-o{aV@>XIU;sT)&WtucdpDYX~G0}4FkNwF5nVf38O zR`fL|RH*tVANfe`WE7-*PDS00KK32iDi8F|mGieEJ1Er1L^qf=JY^YXJf*7RTwWZ? z%(&Q$Kv}hqTzqta2Lave11b<2(!vU9s1Ap~PQ8EawXRfmzIw`Kn_jk)cBF?r57@7q zzsr(?i)D=QHu4R|93n~gxG>E#14m?xYQ}=j^IyQMBpCVjaI-5UtCE>B(x93G1Rm&=iIIpIaWVlbXQ?x9mKvu$4gHruuIMmXX{fl@KN@H9Lw| zqJsm0c3`=#<@;{W$L^i#zuA7P2R-%9+I#2kQ87Ymh%8tYJTB_Puw^!cHj{KYnN65R zU9);tLOLcZ`s)WabYs>%{mIzEdnTQVbzDN+|NqKu-de-sT?op2&v_JmO00i;@fB5HW|a8aDP>S3F}012ju(tTNDT(?V9o(x>`m{}_-g!%oUKz9G! zg|#*>QqoshbAJMKB|$9a*`PC6XXXHjz)4Vw=!5~m6RYwJ+*u;8owem73VgIk_Fg1{ zA~k_N&O-n%2|FO*w{Usj+%$i9C(D~4c2L;LZ=n#{Ca_0?~r|Y4Fb> za$MHo4+81vwwOg^Ms5ZP^qD{sA@5pq-KWf13>}cm!(YLDLT=B;Rd%tG7}(6lP01SX zq|Ufc>ij3^@_>H_+HwcIe-QSQqt4gRNhGUknFH53p^@a_#131v@5kg4NMYC_^tYPq z_|xG?QTpyb*RSXi^%F$grQ=sTFbo-ymk2^jzA{X{uB}3k4GJ&IuS<}{To_uqG8b%4 zxbLK{vIOuh@~CE=S^SRWZ%#4epG}cx&dTnCqNd763EJ9hVcJkn)-kju9+8>Dl1d>s zunC%vCmpLR!~Q60frfOKmLC!l@;54)l3|+#K*7gF+rN4)xNysN1|9Xwt^ND>osPHS ze^3Vt;6wX~K2x~oc;8wnqt~X9CE^kCek8^J{H!Gynvheg0j$St#_#F~y*nH|+wUiS3u7F_h8r#4`mR5z~ep|F1DI_0Jz&H>qR3|Mi?VCSicC-l7&hMU}(acXVn8_ScSAYDhANwask`89maGi=pRgZ&wx%fHBsJ6 zaLu+C61=ne`VhUB_Sfqnh=Nm^W8L2cy(*1ZR=WI8A&k2w5SiKtux=6BY;(Em(l=2I zwl#_rX@qAAX8mvV02djt|IZ7l+}^2W#y|f5`}Z~P41eloEObnFvA}sp=LoF4sK}# zZPffEzk!$O&kb;uVNIPEX zPoTA6eo1ZeN=OII={njtcRvfXU2P@5e7ZX?SVrJ;@lE)r+S2P7LQ$*(vfkZ14Y)%} z|KPJY*L`huLNHE;Jn@R}YR1pMx3rEQy_ zXog4Yy2+gtC+>v!asp=sHz*^XKY<-{&&p9vDquO!1YO_MCGA z$9q%gC^G|$D)M_FRmsCXi7--3sjlfVUq%8_%0{Ej@}x2Er#IeqF)qP9d@0pO!x*YU z2`O_}m{V=<1k6KGpq4zJER*{g-^toSmd3H}t#@>T&hb@}j0bD&+cKYq54(Pf&K#jf)LaA4dG_>mf3MveZwaFUMnMck*Q4?TM zl8AvH@yCK$t9(@wf`53U{}OO#T8|Y>_v_*SVstMZl_JJD_kbgqT6OLugJd_Q>=U8T ziif~66r^W6;{hV6099Q5=${*?liU&Qr)2-QbD8%99lHE4ANfhvXFT{={*b!-8+UYB zDE)rzjK$uBYFq4%&yAL$PnVzHp16F1sKH(H=&W4@V)OILv(2HC7dv`I-DZCU`_XX~ z#Z4>TnqV;}DK~_}@3ZlNXlZ#xD@2sWED=$BtSh1A(_%^c$i*gly^^r4f7vw)*UaU>gu%(LvxCcS0bn^dCb~^E!spUuQBE2T53mMfR8Vi4 zNDp0V_T~aeSDP>oFe<^ z(J0!l+ecIrSC(INwMqV949?;aqMC9VM+PQM){5=OTEr;lkaG`-wB8ThP-rc4WZl9H z_31UrZ7YE4B95TIa9w)vlcA)flG=O1A6R|9Y(&FnF}P4H|5Z|lSjztTmZ$y>qlP@6 zgi=mCD@sPP5*@MJKFW_AIcX|fS=uGy4GF5Sa8@JT#d(5)eKtl$z&TEfqzBKRV%|CD zvNAPlj~|7=r9X`&FUv2*bzRt&1FFo(=lbu~#yDkW%VV^YER{nQvrc}~3ay!-!ihOc zr)c1)8}J}#{uJh&MnPd<(Oq%tE3@Y!Kg{L#o*YGJ>M>`LO|yA-rw2dzBQQJ`@c&pV zOp|L7ZBT(^6hb(Yq{}3{76v3-pz&~yh|EYfI$e|Jc;&~kJv*T$1N%WW_gu(JB;oruh>(aAR%}f1HZO2tMb< zT#SC?p4HE0u6P9e5r8#4B#+8E?g0 zGq)m8&#ZgrI{K6jALw`|MM{0%vySkZ>XXgAR-L5ypRO)A+6)ioXmxZ_5^7-npcqWy5`B4?I}P%}GN~D^v8eYfug;Yqj09>Qe-C^s#(+9p=Mo z8Wu~@K^G}bHS3x1GPiuB9n?v*A}ENk+9!&8xKkR0$Q7tM?^A#_-?H z-B&*G2&8Hp9YQU=kx};r$xxjJ#-I%`5+!-PmGBG@*JbEIwQ=I$nu~bTA_%prCamw| zKp?+gdeI|{cE}cFVPu}KKRE9c<3=pgKs(q%NU3~#y|p*r?|2F%Ku)k}Au~V`W<09A zEP{~|=ED;#6a=VFyDt6@Rgu8BNF!9}d~QYE zK2namI}hyXj4z0KQIiYtRNMYJ0Z?PUH4VzP=ueIs=SGtof^8< z5qZwKTFu$~;9P_GM0=zuRCZkao)8wEbi5;*(uOl{G1P%N8@-bIr##bR?&PQ+wY5%3 z&!6>G9XeJq;re7@H_{|VJf}+mV?T#V0Haj@O<=E<9Xfj+kX56f*BvGR()H>%QgaMi zd>{9ZAmU^|zxxlWOn0PntS8Pe7yaHkdE&ZwSZFkZc2eKqQr450NLjUptGGMEdf^P9 zd<(8z3esN+2IJP!F+SMa?H-sjmRWChi=o9V#p; zwt8G|-x`Z!dhJ_DZLmTuZmlC;L5CX!VH*0$RO|Uc1!vR0g6sQ7T7&jD+h!|Gb+A1QDQMr#2H#8YpaZT}M>FLAs@YaAx5oEyixjJo96SXw&5nqexOZuG0=6jk8Oht=92b!BsP1z|)3 z+)y_yNTSi=iwUm}%Z-nlj;`UvtP^@qMr`v)cxydn9Nh$5|F!}2g$@}Ti32b!6^iT& z0xOGB&jEQAN1BYb>zuR91BWx>`(%7901`NB-8j{s^|ExAX6g0=p?WZ<~B>zPfef2871ha_6euhY zu)GkKWXtY&kWk4CaTkt_!J|Y8QHM{Z&X^2=iRcL_xpsn7P~XinFwsuU+g`1JI>QG< zOgCsAQ+=D^TmEk?S(p6 z7L=_z%OXn7h2`252;In(L7-`TRMw*=WsVvk=(5a_oWvD*s>q>c*YD8L&@2R zQkF!mIlo0wXX5&4DJ-J;fTokxd{>*kJ;82FbQKrjhG8xo&sSLy2@OKKYtE6=rW9f=JbJL~!X0-`RQ&k_A9Ac?94Td%N_+5jrh^G8&nP%GPxWWUkKf4a%st#xHw zlpX91-nvzY_7*UL?_5zsWmBwA!J&`C4R*0IoV#>*O5v=HQf-FvoY^hX24)Yrjp?V0 zIM`GE32bEMhCDHs``4l8Hwd73$#VGb;D)H#$wBVjZl zd=mH6BcE}Wzbyt*G>lRfEx-BqPZgT~fU~%l#yesvlESoQmMMz}bhXPb4y3!o0g3Kg z-0WyJG21QimF}WzPdP3z(qHz zQp{DtWjG(ueLx2ovRCA3@wYSlZl&mV@OXCkwc$(Ta$q_kty`>4rDL{5aM;v;&xNeS zY#(?E@8bhZPxwOML$DT&lF{-02^{W@GeGIarBkN*BI8*UDR_Cp4+Mdl+?83=Q&;Ra zSFs`u;w4@(MMh{ycdOL}&V-n}@LfQ%(=oMI=H3b(4~)GCxqU=BVaP~gP2^Oyef$VU z+19@Wc$d4ote>vR5%432(P#8$*55E+05@WC3D^jJYf?ly5%lPuUWN9#a#X>0Z@vHU z?s3Tu+`x2K`bFdnRx_8N$;3k(fX2cct65Uzpu5NbDl|Wm9gV2T3Vvc=i+iQ(p@uAJ z2x~3dmXM{2-mLEs63}QcOZ_Y{x91jJ3W! zn5i8FLZ=vtAw5_T#Am<wl+Kr~H9H@PuJ0Pd9$aSVk*W$K%`#HEPL07BRbu4t225e6CMerZHcC?r-hJi;eq zQxbud|C^!Iqbq8hG_LTN6OGqv+3DE7O1DJr2v_rdzTn_uI8hj)l;)pN0H_);^$CPA zr{;2X3DrYe;dgK!~(Ap=OxFLlos9$!s#pwjuWPd ze$xE`}%lng&6ZGM#wxoCxz|$akHz4>rQ9%%(K7~J)R%Q_bAY9R+Q1i}d zx=o5()HcY4jdc+^QHWW8gT1CcX*7ZEW!l$rTsM9ZT-q|x7h6GrVsIe`P6kpF;>ie! zpw1~wQ6sIA?Gtv2d7qxPrMZ=9Uc-@KkuFVh0EqD$Qwi0-0-sYNeTKk;!^RyzeBb@_4o}fO0eBk5 zSKIhPhTuUsp#i*XIenfBSBQgA zZ~0fRLik9f(5)3MijyLL`a@c#COWi>AYc8tey&Uo~{%qF^8d4l`%y*>- z~hyE~Y%e6Cqy6-==zZT=jiMhmQ!v|VVS1svk(N^(;{&bam5b~U6%{8l` z4r&4>FewyrG5~3mR^57b`HIUFmC@TF7QlVQ=)d#A>SBAbY_fyF;C)I}9cwsu9YC;X z5)wxOuG|Y#>L2|;s4()=X}7Q|FlsK1{J#7(gxI9_&%Wn*aH>TWf_Ypm7L9*}ZtjH` zgf`V_ju`fJJp3Vn@*&K2q*R%X*_rBz5cv*cixze%2xQV&;q?FDs zN~hjO={CDo8^APKQ{%WZp(Jdl5_ndRXP#NhN%M!O-%X(~7N--{LqgF`MCqu9YH)|R`msVsUeJyeI zGMSYccCf#d3thI+p8jH77bVc>4&|!6&6Kra zr8X?pZ}=_n=y+1b>XEA1L%9PyKecRc)jHp7qJ$@k5sXi2^**I#w7Sqp!=A<$EHdkX zNdSK)yr6*LmqJGMB$v`hrpVk{=ykc z_^$ABX}_&sx(n82-{j`|L@dCnjBZM-ivDBZP_F05pEN9Uj{SuvU@-`4!I^kqWvLdw zS@=CFBu>Uz+<7Mj6~8D54Nk`Wz86-I#`oP0ORA|sX(meXzxp6Nh!`HkQ{e7(*MEA6X1K$sPhQW2dA!gC zLO-iCfomWsmL?ywB_hI4S@u+!&vG8KI4(x#OOaXJ()9|MpgR*xW!8H2-$DeafM2Q& z*O6m{oU6Pj4p!WdcG1LT=F=kjw}z1u>Vi~r5`BUJ6t*~#vMV8vNqbT>ZEp}Ym)`|!*!)}bei<-aYcky)mpD6FcUH|U9^oC z;it4^UbiJOGby#m%@#yy|7WRzH$=TQ!oI_IVc-iTKh4&OQ%knP{E;_%jCqm{M;kn~ z5!$>mC);G<`vPt*SVcOtV}S*LLnyX$4(=ToYT> zo#(Rk0dO|(4d{bdnU%;KrPt(s zb7?3~94VY`o_rM|*X>-32WbFaZtwzP972jT=<}5-qT3_(U^*q7*Db+OcQ{6e>xlE^ z(OfnJ*p*Hj z32Tr*&?^T+_$630`#S(<5Zd+ZY^RQ?tv>#tjz!zNF(P3&9(N{X7D^N{$0eNYG`+$+ z!VI+Ph@zgz;+ymn{yM`CO>X}G{v~|bO`EIs&cq64AOYAd;*3{=yVL!qQv1~zn59&u z^e)e_C}rbESJuk+R;;1>v685jx|M~C;-3Yli=zkwQpefmqN(>KJmM8cbr_>NT^$on zR2|1m)Bf*(jEkaDt~a&QSZsCmNl51xerAKvU-B_kuAd!3MOQ}_1>j?VrbW~|&VDE) z6l0li)vYz}V3*zVrhotdT1$6Ez`nCadm@i5i;KoJCVyDF3TW@ppM4oc8Jh>>Wn6Z^ zk{HsI$vCnAhMDTC7B!ks81-$qd2I&Cy4}O8S4}__8Wo%%%^F)0)LGoNs~`Zlh2LY$ zDtb^c6z7*RaMNUstUSgmBNF55UkU=B&~C8ykqf#q+jDtRW(tYrcC*u^8>}%a;y}dq zEZdC8@2;;oT+8;Dxl+H^6HG=}UK@$7{p(5ZNJ1E7`>|uZ9jc9&fVppE<(LV{1g^-5 zqJ{|{V*mguH6it=LceaIzk|>%&=GgpTVI4%Bfn}#r+8gW z^>z|6t+;P-c-?JDo;dQO`I<#_+P)4L2G>MKoaXQDVq!U6d?2WrHZFk;QkN6Qa zfg=t!z3&ZhVp;`fWFhn(9}EwA69K}hGP0#sCYIk?`77R%FRzYd8N%=2U4w@KWmp~z zC-bxl6|NpkXw`yFKD(MToY42sQ-AQ)Qpxy*##YeG!Da4teKn8ceu9v9uzRGTzcmiC zn2;6Js-r2AfN8Y{PY#Hq7j*bsiiLbD`^2jU2W}*h41soX4e*2&o&pOZ)%RNC)A#>ni4DiaRr+plCOMN;)*Z zm$4%?ogrQE2x=}4W!Nj5_iS^2PsmvzZ_Q)PBUFvkG~pG&U2=tAiT7&jO50<}WB?!M zx-NcKsL>pCi)WRvW26oY4^Aow9}*x9xgZ&N4E1n2G%gFkV(8W+jA`L34>!+!#~UQe zbe|v==yxghADfx5Anxe%L*?)<8M@=r5Z_0I-oR->i^YsG7GE;8K>08bMJFIcC#@IB zE@?Yqc29o<^Y~@S(%?FP4Jx=W-4W`xsERlyULvHHZ!@wJ@McOxA*{m#a2eAi8}nKu zQ9!?)y-FTe@~nX@gpF$g!}r>>J?@>QK_cNf$MnjzIZPvb99KEa)CqGi=(*23mj5jd zS;ybKVd^KLRcXVn;$c)5H-;unOQTZp$qVYDuuMJU=V&R52-8DtR-Lc{Xva~8eu4o3 zuPwGxi8{yO!u_?dURCD+f{LxzQ|xvoq1Bw{A>M@BgN`p19EUCVuJEj!ZJYCI;7s9&Mzp0z=X#VPIy8ulfV$Fh{$2M{~b69YTw9!XP!KXvT%&i!gsb*rY}B@=U2p5R6zA-ZKx%YD(L}0s?Q_ws&n9Tq zcoba_5bE5WTit1NyTQPBMr$n~uckW*(&b$VK6h_#ds)I3E<-+d`T&F!2&QOhgK_8I zYUUrNxQ~3&t!A!Wz<^APDhL+tk~FY9G>O~)?%Dt=@i+OafQzMQ<>bsU+b;AfRqDMx z!Hl@){6cN)C2Eq_4Wjxq$b|j`C!6@w@QhnaduNNYkr2R`zd-C0W9)G1L>u|6P_L2h z^29u0+W=39$W@~h@Tg!!Pt1W0-%GrS88#Sl_{8Tu9IrZ{kLG^c0|OB+;Ec=}^?r`l z7zls(Junx1Yk&p!QGlv2_Z~Ia4coYZ`$br^dV_p=tR2G`A)w0U?|M*d13D2Ys z3n7Tb{#l9J(yTMCM0ns`)btBY_U3Y$ADY_!PH2opvc?p@|BtdBD_XLc`bYo&mwdx& zKUn#oqC{miCV&3nN`_i1A{`gg1C^*j0E;peLi(xQ)!N+XLWKm~$LfOm_=I6?X#TCT^wM^_kW2}s zD*3+W!&{*vlvUrGSr+OEGqDv7&T^PJ#X6gnWDbHG^(BUq{jT&e!Rx_5I5&e_IdS5z zqJFoit~t5@CcOIe!{*%e?4P!vkLg)!#*j7Pqi>Bv9)HQ%QjC=RjW_-*PkVHYMF<8X zpGCe4Pe)_^JB*NZM^5cGjp>Sr7h$>r6PPjHrVgfVpF(@p8Qo4vb-b?3FJ<#+Y=Ym) z3sKMIoLB;&kl8wX8;LN=FoOjXvF(3WUpW=96*OTpUdL8{o>et5I9hCCn9m4rCG!|* zE)PhwaeFbEcIF(oQIGRkdS+xWO80bYB$8WkNnt+@E@;kUY7FZ1teb=`INYm)S2T1# z9PdgO;zSUkRvMY9DBt_qrvcm(*#P#`cS*68+h|NiH_S~*(ZO|d%-jXqd0qPOgydKW zNc)x1cPPVdfIPtw(-+5K6(Ae zHCNP_qi4_lD3A_Vtwn`y+OUi9PNAp5G18RZ6L%8KC<^NWKC2=40_|@!roz!fY%m!ETzQUM0sT z%di=2;5rn!L+5qf_$p&VmnSqQ47Kza8PJw(DZJk~Y&ill5^E)6=56`Ys&)A>Gah_7t9bNt(DS*6cD#h>VkOWdQ|Y{xRQFa3VYHZ2vsF52BS8DNv<2t!8d{nWfUsZOkH(8 zeEPAae^y5kito(7WxdQ>+g(^xNS^2+jH~N*`*#*Gu_@Afb%=u2u}wjSjt`!<^~FGs zgXn#PK%~-npUKBGu~0%5)?^~IBcIC%20P!LKb?r*ePYm_7fZ0zCYJfVm&HmUo4LAp zT057&4aK6WZe=INcT;0pG7^VQi?h)*3_E-hx^gRWfsTO;Z(Pn}f(k;zQ3zb$(&Hv( zG?VwNaWtQ^tS3<{)|}&xGBYsn89JiO{N_p61*zq;ku=`$N|gm-<2-4~ECzjN#+j3W|4g)UoHLUsc%%w2>BiOZxTS)HSeHYVv~dYQ0>q z?^)km?e!YBA5+4X7v=!f9tqya9j88u{ki@`^^N&^)Q^YOfk3W0%fqSZZ7IuUy2;%D z4LEP1MN2Sv5y1rv-^laUYp56jcAWU_wZ=G4;MYJTcF|jd-@P=89u~W-DHS?YB!sh{ zs*nS4yr36N5hlQ|n*xok{K8**VZpQ!5LcC?J-9g?UGuKZWg5RHkL_DF14@<)2v1fOkd7$F;m%qineuKom40a2Z*)>hq3FhvBP60f-f zyadsi7dqB7y3H#->ixkHNw6Hh!*=3z@4mCMkwQbw^QgJA4!-Nyrr_a1uGP0$#7*|G z_O8XeH1-o9v?F8`;YP`W&J}9cBWKmS% zw+~t`=d4(MkW)P0J7NJL_Q*WT*@JcIDRyLHgiZ*So!M=F*B7dJ-sH-qA~ijR0Uz=X4p~W; zd{xSN@9$-3HW{3xYTi8=)pt<)LH}`BD9=5=ClRN#O^`y{4@47oSahn0VuxRGZ)FZZ zJY}Z(!=%nT5Kq@mV7;_YB_yfosemzS0}TNL6)#2Hz5k*|sOI!@hiKx0s9IsE<5g_m zJ;8xGg_x^nxnB}HcLcGdtUV28X;c-bY{3~-l1*+u#dvKV37%X*jlJ?0!GvXJ9(IQ* z<2shfW$5#`;eH3g?7vG!dq!TxN+u8bNO)5hU+tIs53lNX)jL6(<{ij#toU=QK*Fk= zE}4rmYRc}#@ZgY3Vx&yd;%f5@^h#+xY$z8<*CR)~`j7aVDp*`0I-@4z<1oDe1$iGM zMW~3zgg10=S%1}QgD*rQK~H{~Gc_~{^beb^2%99M&bW*x|5fwTEcHd=v=$tI ze6S-5QDizj$=B^R-XMC)BaeMKF>Xe815C6o{UyUS-{yz?AZU_;G9d+Y?|@oi_$0Ye z-z*#PcEp?1nzd`#ViFKEO}P~3;@^+!~yfu)*pb33nZ<60mrM;1Wt?)Mk8O5)8|>tvHN;zrn@uD!03uLWyhd(K%9JDyb1y?u9~H<}Pn|#VLLVjmifI_- z2M^x2q9f)&M}L{e6ja!uu3Dz~Fktg8_Yu;K_O0!lHc>CL>v!YN2xbg3v;kOtiIv(n zAw^p1vlG875^yWHn;_HT(bD_LCawmwSm`nSHkNta0eVYHYsF3WZ*f#_uz9)cp{TT3 zM)E8F3&b=&j`r;Xy!?6-Ii(3=GqffD+!3( zI;HiMqy+A~*DYr1c9#TKDMuU;dUzbsHh`3Ct!jml!2ii3d(qvb%|+E1G5R$TurHvL zYbWD6>H4VDyD*0aWqf^JpFhT1n4mlz=}iI~yy2{e9bBz`2>t>j<%Z%=$2C>V(QtZB zAUNuyI>PgGE)uOq^3M<3x=-phVKuyE9Z{xJ>JC`T;H)_+`V4?M1U^`Q&Lzynr^kJL zG2Z0+U|3j{=n6n*{ef-goh3J~-2-|NFC!<&gVZdnpBuOVJPT@lzGUGB3BV z{F2E&Ab-Z6z@_WKqFlP%f%337NQ+TtOpJ}b{Z<(AtjwB+_Vmy~=%uVz08aZL59{wE z55=&s9gqX8I}O2!fruymQ~3?YvFFo6jjnjA4f1cwE1i2DT`N+-52*KQdkbSobA6$8 zS63Q4y2jRzBMZs7#f4G`A=KwWMkE}ic18xbwP1KZrxS+KX@OELf=s)vJx z>^ZU|kI$=i01s<)ij!}7==rZI*R>AkU+W`~s7(!jk_TNtEU@D+EuRb$E}HAClr3(e zidqzB`%-6mK**6VAEZOJF-aZc8fk~wiE~(K5h}q7yL)chlK^gA^<-#Wtsi+9xy$Sn z`!a;pqoaZgHE(g+TXZN;_ugTjp09~5cK4rpi)h;0>-?qotqVdwh^hmZYC1%h{6Y3z+HJ<>P^GdnXavIRZQhhu@LcHar zMCPh#=io3RdRZVQm0XegxsC|1fm-uUldx0VeBHm;Uqh33lhsVr`_HbIamK!rRJ&nr z9zuL*!7P(D(t!ExG1~zta;aH-*$j%q68wp!rJ}&)OCX2%7RR=gIK{;$BFr!whsT1zPA>x4&Oh-S?4+>VyO4#L4Vq#00cB++?Xk_spX%$5Zv z)6BTQw_EKday{~Mb#*xW)zDf$)wW?x=j_=>Q>l+8;p@k3_wd7@K9f~jeISxietw=+ z3>~S!Ubso)%g#*5nrwX}DuijCr;9qI>{0{4_)c)6tSw?nkY$jejDVRmkyUBcPi{-> zS9vJwYTA068Q;?=G{Smse8ihau($Tk|7`cn#m7cje3hb6qP@z>{mvnqz>1MYB`yIp zPSbQ^W#5#4X{yb`W2mtG^A1X1eb3o)^V7LG5B{Q?)uY^ z8DGXrDA!`f>bOHrH*DtnbXNVkSa6d;Z6UAb4g7a_pjoukp#MgOaa$xIC#YoM*#*u& zfpV5;8()?Z`WwWkt-VUr)-0lzHhWjs&U=3?eze@zZ8heZ6r^0;kB@?ddU4Zf?C4;+ zBp_$LeH+>m9DK;OYS)wp{#1NaC-cM(%3QbQ!qHo8)frX{aJ0#A3k6>y|eczibp7gQ@0& zyU5nsk2vhWDeF~7jX=TM@H4j9l8C_=IlagZ&k4Q>hqJTKWSP3IVT-FN1TpwJDV9zm zkM)NnqAhu-nd_=UcC%bYYdSS8(>6W@*Dbh;EWt+%`F^XemvrapTrHCW!lv?ac&s9? z=NzG>7)f=-<#?t$n+w_b=LQ)dP&5~wK72H4Q@l@f8vgc zQn~MRa1oThjYD3=48Oiy*F|yb@Tu6GX)qD>?{5oC3uFu@qCuALXrvb~9wK5^R=~lz zs2$$2d^2UB(&bQ1mtSHDC4#@*7q&uUy!hsD0vU%pkT7c*H;J7R1evj&u#S-+BpLTH z-c__=5wRwARqm?S4zDLb0Jg!m)zY9|956v^Eo6*TV)%#%j;hO=fqbYWXVd^tgMgO0MqGbo%y6pwta|@acamef(vP zA(@8KzL5L4k+{6ELtD7B#n)E=M*Vxf4Du5~NIu<*>&5^>?ql7zfaInj6=t@Je z2T366pYj}i-e1D@PCu2~#GG5z916Lx&f>y8>Qd^} zouyD}^hBRvPFyShpQI;9L--bPN5=8sOB5Fp@#o{kiOT>AWdKd0@B3oiDEMNO?ovxS z*JE$DB`^n=2|A)U_^=@qL|AzqKCd#0b_Vj#fZ?dydgql8*BC>eO|c;_0R{C_8TC?*$ZHp& z!+{!h!BP}G%{r-RW)Zdqe(>`~yEx49FWec1DJnn2gi#GdkT8vlgO%kwQMuXYXgD-yU5P2%N zxNDwar=)ttSt$F>E~J8iaS7d?e^8x8SwR9THua>l9sPhyJe@H{f{%S3-BD)Q0*~ap zWU4Fw1<8%yArjQIOVJnZLtY0hJeps7V;_{o|4o}~&LIwXrMNH&n2z2&vZl{PE&Z9^85KH+`5 z2>+Uaxv9N#iLdxi_bh2!b2~FRJ%r_f-PB1WfBhF_Np@MbNdn9Vzg~hw9um6!TTxm8 z6&<&D0{JdF8TCOph3WoWYi?Fj&0c^YA5*AbZN#Xihen{BQ4wSYy8PhO^mO5=rf@6V zf~_0>oe(BaCg6mL49-98)!H+W3#AcI7N?2cgRD4^LTg8#yajy57Kc8C++<4R(_iTI zfGA0e;t&7lGp$xX{s4OV?IFo{aEkS5^wL&yp+s_W&F1+q`eJa@iBVuP*iM*bWlR^z z36jwaFb@wwN>%5JqqP!^N`vZ8M^mt>h2jA%tP?@fZGfBBh(;d_hz-NC@k~45;>{*a znBzkuq36l7_uoBQh%Ze-3o76RQG$*n5@#r~>N}RpIM;4RnE%k0LKPCUd7KzHPcja5`b!+VK21 zd1P*ksFAm;eO3EHlK=N_;T2-Rsjgl_ieJj_TB7P+8QZ?O=z|tF6*L8Zl9!qg>AhSwEBHL+(fj$>qO~gf0JIvd^2*5Xcq3_#-I6 zFI)_J;^AQvaiQk7YW+J15c=chFWF-OuMTCy{}{j9lW$B!l8I?~OQ39QY;e{XY3ez_ z%Nri}C=SAUo*-ckq2X{J7r2#$fIgR%AVe?h?Ilhn9c5U002$_ek^2SZaJT!E>fl~&rw&Mw%AIB z;3#|4%qXTS-8HqP|4(pJz{=tz{I~s}46~85>aeY}^=?m@7P(M+@a(Bb)mU_33<#9u z(j4jKxzg^itIX1~EM6hv^>u}`4ui~AykgrTvkrVjtYnKyZx{uNA99*(1Ly5Yb-}YO ziHMRfvk$4?6H4;_SxjQpsq>K-##*j?U(y!4SlnoMSj!CdG1P=lvG+ zjdIG79;WQRiRMJ(-=(mCbf?L<0CuT?hfN{O?l>sUQ1vA8-tbY-skWmYx24a(SX(=G_{^|OSazp=2W1{D&D-op`(P>f#s!(?*U@l^z!$E zY`JxHKU1qYl%i}Eh6C&|9ck9%P)@QhxT^guHLGGt1|sW=k*+kUqwRylS^a@?BDhhi z(42|fRf8B$%MM@c+hq%R2a*!+jU4Y6z+B!G@_vtNQrH!c#;lnPJD**|YB|fNe(U75 zl2R0>YsGFho@yVUo&tdcb6{GxpMVi6ltT!2;a8gZ#qLyOzvOI9YXqSUtW8}_Lk&jw z_7rd+f}+daoK;qbqFCBG{r8?DZcxik3elZ~C=SHcPfYNm@-@c`BjRKWIG9OP^XOLBnW0S!QK z-wa~n|Kp$P%jNqySJoQrM?XkvMxmlHqO}3+=YDd$z^%Kaoa4g3Dy z9MklW2fYWJL17FeIK<%y89@~g1&xA-usiPyd;9(L+F*Fb;s&iZ$xEsqO5=%D3#!mJ zRI^dmWQBaBACQ2~kxg>&05tA%2#AY+t)M=IBR;t%{3ZcxCfm2f*pLy4?NF&hq!)+$ z1lvbKLS}iesnaB(da*v;PKX{Z<(i|iHG%qzR}OTGc3nVGpYBUShrZ{Vh*ci& z{TcHY{pqpQF^Lfu9@VFC(@>W+MhwPw;MXS^{^WcWyD>Pe?_FI3vYp^#|xgt8n{ryHQW$8%Lf`rNS&ZOc76X; z_81rZ6c~!#BXB%5562yH=HKPsZ-KxvMv^Mc9(O98Vu*19wPa1IDrz)te$Jmnh%~1W*R@0}L=y;QxO?}c2)GAb zQ*`dX6puFM-<)e1fV1B8mc$~BL1hbr+WZitEm1{3|H|YXKxey*5g6`A^(wTuq)Fq6$R;@WO!CQo$bnD0&OtQD=}gjp2LScEtcUK*+xqC(w=zX-oWgr;z-O zmtr+mh%ueeee#8boN*?3H?qC|cy{hr#@m%XFcb$MI2*hpwJwqM8Z?5T1lb*o$VO33 zt6g}2O28jQ27etTQTHaRs0@me=+f}Isls95T8E`_xL0wXe#Vfk*RTkA66$RqR}s)3 ze6WHVqCxk-f#ctfX|9Oh5LJRYx=jVu7hMh<4boL^!eeIkn&VqQrli16R+J&GuY{1u z^FpJmMi#u*g202iYMLqJBo@fqOJUp}^iD#)X$VN)H_bFV4OD5rqK8 zM1g-QdWQiimEOQGn$(Sf_rs26N|(s22u~U-&&u|k!)L!?#5RyOvCQGvQ*T_VBjQQQ z5zEA3OLv6hQ(FurqE$5gS$^E+zH&pK7k46Sw$-OU7h&IE(DY)odAp}JY9vYQ9I63b zhI5+sw$v+v;hxtFW5QaCUA!+580@ciY1H(fCe>Dzy|Bv5!t}LgsmUl;RTSy}n9`ec zNovQ-)Gr#PlDlSL~a#npC*vP?yQVI%RUX>B|K7>n#27+In7Qb)mld!$Rs z+kM8_5qUkd1F*ZE-(%j$n02w)7nD#^M|PM-yp5xY}*jf(+NSp0%9|sMN<-5HpO77>p$;2 zSV(u~Rm3+W?brXg-SAl4%?1MR$J5-3rc zqCA`$)F6s@gOb1ho0c?q(q7l*teff!swmsU(AniV89*o7%5C=JvJit}$;n?v^_gCQ zh;yx@L%GV7d0?2(I)&ZU3@A6ukbILq+m-P^bOmO2;x-Ua-WBivt^-c` z{;^{phJ9t#8SQ*brvEBt+o~L^Ky}1$htZ+5H?@}jW3Y4Ql3K}QSemD7bh0?OHvEhN zx!TS=zqgM;AsughcA)LAg`@zHAn~H_QL*t-2`{q?3UtT~xmJ=!ASa zp#Nt+0v_#K5cSB$4Gdcld>tc}E#$D&`U?6gQ=RN6$CJZ&XD1*Uf$|`EE_(G%XHyh> zAEG}>VPo}m^c_|SJ}T^ANId3gDC)%Jp5gBRXRv$Q^6hIVEUM1(^GO9Uk zfoGDQa1QC>X0-RdpD`{*75ZVj-L#D~#te!(UPelRw{!Ld?|g&?s)FNQ#mWC5!>Cer zn7#I7rneyB0mB9?fO4X%zAsBP4A$F5B7N95hchdV3HC)-5qIxT5$K7>M2%*X7{ZpI z6`UI^T0kk-O)GTnIf`p4m(F%BF?oex=R7@k$j9B@By;aN$FIPo47XL&3(E6H6{VT6 zEw}gp00(vf_N#zhKX+c3`O(^o+~M7z+2$GG1B)g)D@p(5N(`H|dmtbeusa zY2_s1fn7FB+3s{hV|cXdbCP(!Q?gDZL)bbjjXmE262DR}l+X-xYEwf znAAYSaR6D`Wtxg>SORd=1Io|5_#RSi+POc9b}Q=g-3V+cb=C`E)EkIG!<;ymt7T!uLIL zoM3=ZQ|(WoeX^~-gw=oz4n5e6ELXp#vq>0fbbonZi){f-_!0MC)x}`A4*&LI{35le zlDDm@3&1^s-@=u{Rdpq`MwTY2eG@Dt$G@ri#ECNYBUQApbrMAZ;&{5&kh&Oq@`&?+jqV{1c>6>bW_k5oh=6rACfp?-~SNZrq^2 z3&3S4yP?A=PfQIrHe}X6c7m{3vO5EBzSNG1x!Ayf^z>KvYw6wm1{aW2em-J!4R+XV zIk#JOjL4u5zf!NvHYV)8?>HRiUg3sJE)lY2GvKk_*^+><&}Lv1spQvV`_3Ddw<>j3 zY?Y{XeL%;tyY;mi9{?sZ-%sO-g4US#Br8JLO#ynG za>_yPxtc68z_)CMkbqhq!O=KDn)LEsHVe3oXJ7#gEr^psxbJMoompZr6#Uu$_57a0 zPOGpTeN8`k0M?K#-^s{N*)ugCxbeQ@|CQtaR3Fv*E>DWLWHmV$etO4l0~dS3fgPx9 z>eJ3Zv29T+BXfMGkb!~d86o0cpqsRGoe}?u@E2=u<3DZ>#4NiuHyG;^F6|bi1U!10 z`s|Elgq+Eebd~r%OuO*fCKx+2^=g9uWKH2zC1jjP^IC~H#=qKnwTrQMB<605v?0Id zcC_txA?i)i{Ql;VGwKWarKNU77wa3-%l_4K9OJ z*|8#7I;e%KEW{y=4qmt5(1tY<_~riZA+e?*%FBm@?Vt*7WkC@gGuq&&ZGA9XrcYKU zgquBN01$7#2Vt27_Mznr)bsrcX+)fz2@AWT00Kj7kCLp@rDA|FkzNeGfxtf>)uF*u zli3u};Ae8|(OS|_B`~2b1b1R<1^;7DJwC>tlFM_iLq{&&6V`UdEj_pp3cg?>MK12| zs|&{-`iWH)i*ZPbPV!XQ9MGRMXeS{~ATC4Vj|AS8lz&Y){zkKlwV#g-6#^F^3gvBz z9bHUz{UCp|$A&VReWq*WhJWc|d#U_w0#^fKtsQ(^xkGoQ7Fi&VzGX-5035xj9oTb- zb@fPg_QG|#7sQ>j$i;~oU!kUJkvO!gf`O!ZSH1~1GjD|~y{OL1+|ImHV7|){WFy`I8;L3oDjOJ;>2TLA`F&L-Jka1c6T@&w{FNM7te!K{foHzbF zn2=@g%a1D}8$K%hLc(OoIUN^C>bn}eG#!~Hq;*0Y7@7|wZL)si0U%4x{`q31uF1H> z$>^U5BQAN$(Pni$MP9xqGl!=mHf$=-h3q}lqDL>`=pD@_d41-cxsao? zymc+^0{hgMPX41&A#muK19H*akRq&wmxyck0uU+AX_93BVY2Zi$>~@ z(Vj-N9WFGbuy9$Yk>@!7OH6x+pOhzyJUxTOsza zLce#lP%KD0a1S`sahh8<9N8{serAVl{~HwWV-(orc~AuL1U%}=oi>P23#Uhy1NAH< zhLqN>>#$ZRPP+@?%>MeMwYFKRfBMbY{@2TC7u@>kU_-@F)ag{n*>Ni2YXYp zbh`fW_5r;tPF~N?k5{=Q#QQDca%ABZ;HjXO6nC>8OtBoInA!Zh8%Gc7F*x&@2gB#; z3{jcWhj!s8Vm#q)`$pm8Mr{Ds={AG zwf9X6B?>->uSD5586o@zR)fN@Kpx7ng~1cfo)BuS=aA$hww-XiB9>DehDHdv43`X^q#R#8EhmTnF>CQwarwJs(Zw~4kM~|;+o#m%DFb0jrONh(oZspK zf~CyGI?%6%A+_`h9Rcj@CskME+-_8G4B!7>|KL7y*X#y}0FtqdJKhMEZMlO~&lS}3 zf!5?W9p+TA?~}jBvMeqI=I{Kt#}NoJb@oy?vEg_33GlcXtoc8J(y0m%dBpO+kg_3U znN!^I)5`-I(XS%b&XYHv1y{Q^(8_|4U4Si*a$~i@QMDqFOm8aYCAy>=-`}ac3SM0H zm2Q#t_YMd8Z2Q2zy_q`M!icjBL>9i>6Z;09N|mK`1|7X-T3>(J)r|iG+G+BO z_c!RmxK0fl!o_DY$BjFnmyKTDd#s>_j=U;Gr(o}E8Rrsnts&ozlT1h7muQ72o|(hL zsJ&1VU41xg`IfR*CdZVsD@(RN)noBzA?!mN+afKRye{=qwS45r5mU0*wP`>vYj@H7 zTJ(F|=d%@>+gON6993G|gq^zAod&`5V!!Z>Sux290{hdvj;iJ$Wa#1&JjC=&RsJ-Q>S+Lh}zC;Q93z4SZ0L{n0hoW+ZaFO-uaP+3HbOzoK z2DR%Q7GSS70nDH@l|R$}?3VNCYnI}XFy>qDL(Plf{fhImcD$%P%anEiNAD9tr!=(g zGiMAh?I@l|FndD3G`sLqwE!H_PfEhQAKknRAZ=z2rLlaD19@P9U2bIT_H^D>@)(T9 zB6|!2HP2?{w5-Xdtk%B^`Y1R?p-0r#34@7DK8RsN_4{eskRSGIdHZH&i*y z84Z2U06EUh4wav5bkbki8-O%Vxl z6f82By+r|ID{PpL-9A0PSK(jarW0l4V!>;Wns<-esuBvWK%BDZ=%@5tA5QZ;`MWf1 z81UjiMtV|01p!_iu8g>!oe&C#vY5C`VXa@as_Vy(-rEtF{P4@*g(TYKha%}3kFvSg9DeV^}YWqf7KK7!o^#W@vzeH$ltk>r$fb7!sDx#Sg5{j zXFSO=RW@4eAefr$p?|!n{1zH4dqwpycPxZnlT1!!w-OCPECaaU#_DtgU=LW+rrmm( z@R)1k)9Kqs5NPhSarT&e2bx3Ahv#)BVI11Eu`C8 zI76XCldj3y8ux25hXqKI0Qf^<-yEs4tvN~uMi8N{OFekjPtN}{`_pyl81|XeT~fQC zNTe7IM#?HJG#|}ybiZy=(alH4$saG9@vmQ1LsC39XUqm}ikPI?3;S}dx}IK=P|Z~LiAbNJYCSIYAkJ(=z#&t3goB?>92sw}=30`zt=@CvWY3m(PV*4av* zrcRwLl#hxh2_6_KC;OBMyK6-)FFXJ)A4UzKn2+fb;+$&Uxc*@LoXQKwC8UGmnfl`^ zm}<(bG(%IKr(YYi0VR8GFnsnCOsqS@_A?D50`}4 zqE^d{?!klxUaYWo*xI}KSzR{+JEAQ5d}xC%xKOWF`VTB^p|bw{C2_{{hnGeM{@_*k z!4%qCguHO*+Z@^l8w0ec^HCMQe_`Hf4$RAlI#YZLP}Lt{|DI8h+uY9-gw8)7-2UqM z^61rCVtV9+gy!Z+5tFze4%J7QvXKVqEa?in8*JaVi&GCoz*= z4sfz$uNh=<#YLv|mq^Vd?ms|s&5k5iQ{YolM1TlNZa5d&hL_iU{fmwNhCWdDy77D5 z@Ga)mI`D%pDm5^nEH}F_X~c~W=;Y{|-`jw_UKhI{&1CM>RALB_Y?eV0 zQddlSq`wUL{_5m~Nm#oxkd&5~=_Vo+0SoXyf+j`hZS08K-_dXaRMp%6KKrIm&ee7_ zLFnx*IDKIoOI;Ja9}BR4Uq|h{*2j?p{rHIuIE%)Oy-SBXVft`m)h=Md^qyTQk~e+( zyFqSpa#RL^+*G9qcj5p-TRP+!eSJJ+1621=rfoulj< zCnL9i6Wyg0HU0YWEs2ZS;KH46Y2mPY(G4L?9{(<8rl|iY zpu^Uk$xD+*vMvi9G5#-#&A!~a^;R{xgjwbrsB~K5m$n#`2V|8@18QzzuET6+hblKM zA~rUn&|eJx0dIWMov%E|oBXNuO%5=nou@2e;ZIil2TfyP6zqMkN4SVYW}<-BxTdFZk1AI)-2;>?9kr5cZcvurRFr<9Bk~bI zw4zDu=hWoJm+f_HG41`)98&z<$O{1M`L)%DboiGb=U|LID44=OeX&yT%xEkta6Y+j zrw%Vd53L@6>EGCjSs8@#mNXk!mH4lwG9S@{{OUp2({}q zp)69zJ9$O{6EUx!gr*^(BdmoGGzYxfEa!fmhtWwxgzOL1`&g#u<`fdVLkW~0%6%;gKf6QGLP{jB2@wdC7O$bPD+1JW7tsdcs>n&(9-d*SBgzg zQD(TUrpBm{!=L3y_Xm4HX6wGCNdIe3Zftd5H2O9>KIiC*-noa)aLE{GtmlL(xgkbf z>>W$1q_eFsIK!NYrv*wNvKpbgOq)Pz3a$;!o)CqmSzD_bhLl>&HCBWhAp^lAybuuQ zIciQX?+Dn&OXR7VLlPzK|FN#>NNEi^VE+hbn?->H)~3?<8~VUq#!n{ueqRXK{|`=_ z(K4g)<&g~O0EXwdZq*+N`Snf?oJ|&67S@>S)GQ4O?W9=4SjCr6kw@T30zdC>B)Ws# zDke6UTKWiJ(M$X?0~#vRz73_gUW<@Y=A_f=zDfF0@*s!%6;1vYSnfdOwR7ltx<4S) z&^Gk;n&@c2Jddxc)Md_PP+#5~B1KeG%B1^M|KPeG)!oNLIm^vQmQkYx?~$Dk3{dyV z?)LuoA+8275pslonml@}Xw9Ib7J3dyA_Ekgvx6eGHvqr$e15cZNm5gi;{DD&bUSwF5&)zeg`XVe` zy$6Jt6Ind=_&v65?Tw%-L}<{7V>-Jio^wywOaWQVr=TN!#($VhU$Z*^IKkY>Ucssh z3YeG}`4x6u$5sTyr+zx*UD=}uEY@Ics+bk+w)$13|IIwE^EIW0&w6_2943#($L*>a z`}XqaY@SE)lI2X+zRGOS-iF(MA1m4fXGYbAWFsFZ8jA}KgR=xzBo-K97{~_itk(ms zJN!M+esQ%zoMW`+Y%|u)DqGvUE#qw`Y!w5`M7$qoVXCMwA_3w{(0A;&c2B9Efm3^R zS&SHr2}B0)f!L9qtA*dTwe9}h2WowpEDy-t1BdUfi*dKRCNCwp>Lk7}xKH*IV zqjmL?D>*cwE3SPA;Bn>NSaj2G{7(yA&Vc4u8n=#Kxgh$vw=|mb{)kA2b8fO}5(w^5 zxPFxwi|wpO-9%RtpWrw;z}R>ylN=T}}i6a3T191MF!Cq_8B#}L(Ss==kTL0=XV*u7KO(7MXercxwi+pDwF#YAZv@4m|oH6Mq9ij%YLP_b&Im{xS9TzZyo zxyknxK!#Fa8LZH5A=krKY6{MtBGQ0w`7?Qi9m~mBE_YItwxEZ~VCDsPr`&)ql>Dkc zKA2c7D1c&+<)emprmyKz;OO)DpAaZIj0V;pB=_YxR`Ogjjn};~a|fv-@wJfu2S@0u znbc1h8q@9qqFK7VUmBApFGJY1Q2i^pss6(GdXS=fOkp}G+SAINf}N_blB1gW{{DN- zIt%3p&yj>78aRT-YS)ZHN!qVi1)AkV0w1(-+!|8%7Hc@L&=~0PY5L0(%>}eE&D7~^ z-}skGmI0cL6tA}XVenVMaC8@!oQDNq|J?tcySYO^E4NX%_hwj3+2g>u6u*RVERX7{ zHnFqJemg4Ako!|fgYY`NwnaNg+w4k|H3AMNS^+M*cF=Kve5Tk3a${?&Jemuj%@iaRBaC~dYG^1jF9K!*bXS%va zp^U&%!a~J8yuBA^^`WsOE>I5X)b)#MhySQy3eCduDhPL3$?P5_GM&7e8$+?Kq{3@UHM?Uqioi!2Q2FX=r0$Z3TfP3JH? z#p-3~CI8^Y%4T~xUsq#&MD0iTCks3B0vgh}754uHNf{WXL6BSPON{s@Y?f9O9@hTG z4}-&i*@vYfyDX!zUK{8Jt_Rx2?YO$-Pq*B@7n{ynozV1s3zq2qII;$2V_%+J04Eh{ zlWc;LxF-6PW|)_)6)Dxk&1$1D0&S5yUUW3X$NKqXTz2(=?h!b_3O)5-G>e)s*FFRN zNC_;{TTVwVgi0FAm3FY7_aN@=jkX7TER=WMJF;5Aw1mD!?udLYL>(k*UU+PlT)F0^ z1j%lI-yKos+POl$1i=MQlHl74GG?FWg7koci`)X%tVgKjiUc21+f(@)8zlIkVQ`2cM(j7lT65q15sbu0 z+c56Vn2@XmAX!fL1jp@GB;t0p=;rgtfr3FvS z$gXP)m6;|37-V29>;`{xg?DKFpV(=@d*@njeSiH2pzoGSCUj-_O~7IVA}>4av40vZ z4tPwpVu{ZK&^LcH`vv420Spr^a6!*mBWZg|iP+aP&d+m1gN*`x0Z5ilX&dvz*2u zD~)h_F0VWoPsZlenB&rAq(u$c73q0mHfg`V6YiDg$8T+WBgpw)I=2q+hUg&V+)Z8` zctA*uuI_I(x2iOJq}Jae>*G3wt=U1i6pTA zc9}}Sg^}MGMhYOr3IUUk0+tMZgSdW?gp?C~1yJk$tq(I5nOSCB} z6Vw`1tvDHSWby4xp3|}?q5I{$ojbFc&3=UrAe1`j>GO7nBk)%P$Z}Pusf?r34nDUS z;|j}47t_zfpfGn6sfr#W@K$Y(E5y1GiBUJFQJ9hkiJDe{oJp4R5Q+5z2BVR z(^%V{?NaRiBl<46m}7TgL${u)he)VF4r_lj|IO>ob)8l5-IpK1|AaH(lqjAB&ew}iHQ|)d^OSNlQPjInkjA@`pvgtYZ+H~#p{h^299YM zLsS6AOY10&#Yh$^XO4ku%zJ{|4Acn7pOX^KyZiq00fr4Bjtu%=RSSNO)B=+`J;Zxgl4W)-K!n)1 zWxvjYOxL|;w-%;>teWX$8k)*AcAvjte2|8J$6&UGRR0xsRO$Qr^{9*|L4pNw=hC-7 z7V$ux>J-%0goHgATD27wcXhM8yqTxaX&sbIR*}Ps=#Ho4$*ps)AK=s@)${TRj#Ba~V&Mr~XWIgK1Q30{`hEib49f`j9pP$IF;v507BGIHDu0&E5d4O2d^Kk**(k<62e$M5B&(sR`!rYL zFh3gdx68RY;js2~dG_PaRuYhOtFTzX6E2!mc*Tp)v!QU2IhRom`V(05Y?xN&Z;zfC z38Y}s#H3Z1=I8=;TAh?oZfr3+>;6*kpAkVaJ)jWj)}h{ ziPQASlUfuy>*_MUX?x9|bAXq=N&7%D{AoSa3VGzlfy9O_pg;e7{lfpqj2T_R<#l)w zUf(#oOcF(|PsY!Db~q_YfZ0)DQ3O6U!A?AWqXSrt#uPBN^{y*~Tp8$1SYpd6R(Y$4AA;593wTXmFMWNv4(va0^B^S_Q0Ko=E@mBamb{dN^7sY?>692PWf zQJG3id=o`2Wty@K<>~or+{e({hTiGW93ryhIP6Oqv~Q9TkpBS1 zyA~fwxucXGl|3HJIlx3kJ98)<+!ycuqaMn3mNSg@?J-bd@8%2aPCRl!?uW$s{mxX2 zuZlSA6exiU7z(NVE}-u%C_E!z^hzI}@sP#K>6jXm+eP{M=eLmsb+M$h`g(Y5Eg1eY zoZlA5x@Rbvj~$n7*T^gH(dAe?#5joqJI30zB|vGOPWm(CY@D|M*vovBB)%mX#F(TH zX-oA7yTw}r=$@sC-rv2Z5BgpQIE~Lk`Iq>1?(QQ3DlEaC@_!UUM-xEnL$0!LpNSrU zLEe*EXL#7bRJvgdph{T2HeVSVUjE_VBHPf-|^mv3e^vF)PIIU&BiU-(F$>)s!FJ}4uwvf!*%r~FRu zNdr&rqx_fsBWpO*R4uQDc+X+vfOd`x;DZgp-~nA*_6NfPLlSn`zu(0L2!{I~l#1pu z#paQRM;5ga3VI`%UwE<%pvOlIKu8QbB#Gx10OFcnWZgz;LY!#I)9xP|oX{HgV$LgR z@?mlWs>gtG(I@Fdy92UkWvVIWtY*hBIwaJbMW7Rk?S+kz^rDSdCeEuw_Xv{MGp zpK2AjxYSYR89=iABGroI!aV-S3M@;kKJLH}^ew>$dwffI1IKaWQK-rI9l$yPx~>yc zN1x|)iNrd1HGHa#iQd_~0JwoWa2IiPOv{}&scFH5Jhu3`;wN0t3CU|VVZ)Ph!_s=4 zuez0uVAMn~{v+*De8n6HVL>XG?%3PLb@)*Yvc+hPPwJxWJYs4R;U>dCkdx#6it{*S z4!tqBjognDT{~RmRu1_nMtL%9+{B(1e!qa>NVTf63|$kL*&zdaq8S-;U}_)_z&tLUZfr^g5ym5at% zpFXqm$R^&LHjPOY#|Wc@ZeH__G}Vm>&aBy7hoVdah``p%8q@r2d$UOJY_$es_YDnq zME>SCsqH?Hb|T9u(}fl5%v)p=-hsy=cUTVR2@g8_9_|!y34ldp?Uw7WNuxcv7K@?) z?m|WZz5;x-feZZ*uBFJZ5Fa+?rk1}?Hkdm>9v$cd&7juBs)t)WD8LZ60q1(r6)e0d zu<@chAXtN~(M5OsV>O|QbMA;ie*XXv!JcKj0f_q3IjpIeNK?c{PGTMK;L zgtp$J6$FcNX;G?h(AHK&W2LAHq?k})PKH@U4#Fq!w3wI`$WKe5sq_xWBQfNV$v1V9 z^(uV|xqFl7=h91DF(y~B5eP5uY@5*&5W!vng*Y|*tlQ?|JTI+yEttjzOoJ%EZWNa} zwj995DON{dud7EDn5_o$qkLk{lI+(O&IvApUa9|p{OM(8^`r$HUO%E+NgDs+{eiF? z<}ShjEa6-uU{0RYP#T)O>2}34?HWm`g)Hl{^XJfH6iKi)KrEJ9ee!s7^ zfAhc{&2fjrehot$WNi)0D<0Z*S(QD|)i^mRG>f_uRHk99lLf;t*}S6VGvNQtt0zw0 zjNcqRffG>9QLoWak(t-Ii#!?8{y$~6K+|DM*&wDG|P`K>(|vxtv& zZe>iL)lIf(RzFS7C@GZb z>Cx?XILz(A9S0x!pGa_bnB3J}HQqv&DI4^sXVi+83L8(x`C5=<_4E@@|M>hAybH3A zFEEUWc?N5|1Oz2>YW z&ix-^Y*-BIQ{5yoE+K`#C@)p&E*w`k* z=N?BiZv^)I_*@}&=7YSS5Y3l?JsbnBz#TA`tM$B}Wv?^qyM%LRkJQ3`G@fIF;l7F- z(~m709(+!<``cb)Cqwa2AF^2*UDd!~Gh8mwR|S5PHUGI*a> zDaji&vyJveaKfC+q8A<-$C(S8oseg>N6fz&nm=!tLhJA7UFdb;jDQoF%+#@|&Ek%? z+cu@*45FCmmX!`&)j35C4;&PznA_W^1BB{M$-pl<^pAW5e$Hs-Q2uTn7CO*`@g{^ic&FiC)>hyV%}8h zM_^AFQh(EAu@zRE_-sSzzuo3PLr#2H1(-Bw0C;L=_tK8V%YAt9yng!HK_^mm0mT$Z zeYg6inWdIzU4%DCu>5y38+w5#h+#Kj*m7VIcafmEgQQK(Gw|HC?w#9n^#f#_k$JjgZ&JTb#<8Py#wZy5kxlwiTGRmrXZOF9h{bZ zK%lsAHulnRtiIK#Ju9Uvmor>#2yJoVW{$QyxIylcYunw|{n@xXuVwthM$&qJyfqNt zuR3{djP=)DyI(P+gEBG)UsR!%v=)jMk1rt&!YS}d9S&Qa`YBeix_|%x5>yCxQXT+w z;tr!MG8zX_-FkZo*1jP4R81tRk)}bI{9LM8l>_CK*B-VSr#h&_&mOyK#8zkfM$aZyVXGMchsA4ai3(dt) zi8+#&6Zc(pwYRt}^9hgIGO^f2dJZLIfouc&ou?HsbV^SK{M6El&YR}9!2Ea1NGtAL z_@j;wTWYocj&Q6hSIkU|n~YSINjGfBiW$)+N;>A(hUe=oPLgsp0L#zwJ7^)xc4h1Q ziKJQkYq;>v8lV)+sJ;j0ecC?bs=v)Na)f|Hr4~jBIsJ3pep2-^f&LJ^r$t$7#`5nW zffGF26bm1F$Vw+|=?F5Q+ak;a> zgXkfxhc7dauap6GX+=e?rl$t5Tw&nlb=UGGvMVe|q^}Intr=$TwwXg`{5T8x+x*bv z?POhuA!)Sl$j!YU%UN%>M_i@s~rV z8kt3`UTg)TB==;eM`zYa9E?2K+^&2Pbr>|4wt7d`7wk$DU_1HUTlbS}uIH#Lq8Vs_ zza4_-R4o zBq5oMHYw-F4(r0tXI=ViV3wnYa?8YZi(fmvK<3sKPwJCbRCPx>_I+L@y2F=|-*L-_ z_qZ5xzvwDcb^~`iK5XH82i@4)Z3z42c*<`vFZ%MH#>Rxlt1RpFl^Xa>NUff4>s`K7 zJHPLFa@50%9{i$x$LGYn*z3DfZ=WbFW(w1sf4T5m6vd{3vp6(3f)nJqh!E>?tt%VAmx%Z76E=iKUC?Q4Lf!`Tx z1zcCX0jgR-|4CIHkcD1>7{TjZ&t248kII%ndXIM&D z)8fS?}`ko<9rb>TdSA5>v#XUb<)n@8PTIA`YIu0$ZdKPHp(|4q#`8Eo?S3yUL>(kJn z>6`9AJ@f0(c8*x&SgvE>D#L|v)c&~5?clFIm(#Z$E_K}COtN>O&|#5<1F=n(g?(VN z$<9P#*%PvF@2Pwodb2XI9$8*q3IrHDjc?jHLI;3}_iFp00 z80#0<*xb40$C-OG&V5n_3sF@781cwY0jNAl_EL(|;8|;nhqSi8ea>vF@V~!r@2GL5 z3W$hO``n_ukr5D9I384QJ8i2a@c4?nF{%j_>$zHdG&gqv$| zjUo8dRhA~DR;@kEeYNHU$uea9x&FJAK*fPpDM1rpmAC08D3^g*datr**YlOQ-tpXX zd*;5hmh~kn5s90tXT%Ryh44u0R8f*HF1B;A9T8B2M8gpUYkNM6*3=}`kgdJsMF3xf z3#K{W3Uj_Xvv;d9-#i@1hNY6t0DnKC4G_V283~`E9LAX4xUJ|LS%aLN;71Q1&lJ8K zGlus3&}HJ~^@3p);5bYib7!*U-bqB)&xUu|35_i}uDK%SN)ogd6Q+*1sFlesm4EOi zGPxTtIfQ5E9_ve(uZ}aUL$j>T&G2H51VVl0)RIzklp132i|e~weAz9zCEYv0yXR>3 zarSOe+!ecP3DWK&n_kBhZ*c2L&c1_VD8^0<-xl__gJ^5=Fq2wS=FGDYU=N_tSkw&*=<+1}%^8svrXCu1Mt$WAmhUf61IPmz}8F(mXj(B5ZY} zCxcOYUb?*GnFGl53j4k@skwjt=#?=fe8ztQs9J0N>I4b(eTh(fW$#^fncFxAuH+}x zd|3)$&RNaw0V0^9kcB~*z}L_8i$0bg3~BqOwQwRl{l#FD5(fd~@Xugu%zxG3y8GKS z0ZUp#O~}|%?YeJF44)4^Qu{%(B{NjJa!uh@JyhjbkeH+la&)J|g_Q5w6>0Mazp~tL zO$}Y%qwVMySE^#&ZqqQQr11G`J2vKX+=a77IoLmShN)FUq=-lphwgdn4g^(l9 zdIJjX#zjRm42E~2A-qkJ3-jl-uD~ByUlcM1Fl(tTgTE20FWc&4sYQ?Eees-S>4Aj| zQ^n8~NS2Zb0)mVRH1 zw;ygp5g)RLc8K8J^n^GrBluanCV-b#$Xbqh>N=fXV8XQ#@`4wgl_uJ~-}X85dY1a+ zm**=rN}=Ad8#C{ccN^6t+fc4~-F68) z9SPkf`~kkg8Osg;0N!1IoFK1MDe*D;c|i|@65?iZQ7OG(lp|B&k&&Gv9zEks;#jdV zA*K**;WkfTTf*je3Pl5_f^{K=K$5MSaB$9gn5Q;-onHu7fmoCVmZ&4iw$8qP zaKM))l=W^ml#3Sxznl*?VX^W(&Zk_v;JQqM5K~aFF{k0pMIv1NR0wnmYuj{*ENGOV zSj_i8GdfgQS`^76A1>Sl2PeO<>$}1qp5SjaRCf$T+ylSlG1_uxyi6}j-MRT{!7^5k za<3q3^{%vE@DK)H@N0CsR2%x}bGPFXJO?P_V z@n{BX!9T3e@f@wJP&C-uP?v0gAsuvtjV#uT_$Knor@%2nsr2V^PD-=F+6~=-J-!-l zUiroxaOBqI-SG}uSIPm6Op_>n>}WwkrE`C=@I63rVwknB_pL$&At9YxtI^5~y)_>i z-VFeBwKto~u4A6P`Z{8ComgHd(jE6K-RENKMc$qv$%~`Q1Q71n5fnNvb2~nMw7&h=m5scW!m;{Bq zB0+i&$y08FRD}IFqHA7`hwaDTs9h9sSkzF@dGo>O7;2N>b=r_}3m*63HtWaRk_=Z^ zG|1=HE$Y587u3eyM;eg^{O7met&Q~a@^#Z1dxtuDievna%$yX)rD`IBKChgD4OjKO zoz5_~|2yTRfnqh1?MBnkqr9s+^u+$%m{Ujo0=026z?Rb68Fzb|cL%Y%tpvh8Ao(zp z-qKnk!AFM6gT=M??B{n4LnHv2Q=>=s?)oj6UePBz>PxR%Ui)nIK?cF|u;l<$K&!uq zTd^FF0F$Hyy6p71g`J8UKdC<+4n(RuhMl)yzwZ3V;w==v;Sy$OuBvmRm>`YXZEnLS2j<`No*+lpQd{`g};w@#0BcD{X1T(jQH9pc%hANgq=cP+dL- zJ>Jm9!tL(yFK&1V2&(39Z_F%`W{2o7P}nZPyoQy3*Xb$39jM1!h@$Il?C&D)knXMA zyeb3zup0i`13wudw~xfc*VE?Bd-i>Y-J{)&+(teCPdc&?61xj^uZ};1j>jRWzFrk( zb&eVBMJb}D>B*8~B|HcqYvrBI82VE>TtB~8f-_rLKx39Yu2Ig}b|5xec<28sy*?17 zl*=w1>#@tt+u2dY)R~QHDD8L342R_zVoVU>UQ%Mo1X)A8ca70;(~h-RGjc-TrN10t z*_atGRSunsoW(-)TL>pEoi~ux4YnAc+BXjuJ%Q92pm8IRVQl~QQ9Sax0h*d?0VwTp zIt}6paf_h4e3%CU0us77OAK$xIONI9e+sIp{LUWnxwoN(LiQ855Mki!XX|l^{Tlch}!;4}JjTUDeXx2BH3oA&Y_#SnYWGt1PqB zC7QFMZ!}`OalZL;dY=e;A^};A0MEv9(MlauRa6onN{wFs?d#y9`J~d!emYSOGjt%(|~u8>z6$*+`$X2 z-OY(+`?UVOabBT9hmPe!>{V>A$01}W_&Hh2Fe<*IWLqG?b;-ZZmXs2^?jJ=Q*=}x2 zS>{`EqpIBH{~wo&sF+iY#m%UjtF%s$r*$@%PU@F|Y!|hTirJS)fX?+ZXh|n#n{HW5 z_12-6y5dJ~12UJcH1MeC1SL)?KgAXN`}Zcpa8uM;r2nR$ z0MMNSX9?wZgzNlKKONEYoR#RRjy&rQw4NqJvEd@#lDR9IVB#I!(uTJIIpOHOg^_b? z*%}+#!*5pf@U{b!nCUK`d_Q#W;v2Vlp%oQ(49%Rmto3%Y?p<*B5TCcze~{_jdyS4? zSfEaEp!F%dp4|FiLEB49!(u$RFJ~cmmrq#t6|*?FZYPAVvpYbSO<4}HGVl=!-K`nJ z^}skMgt!<8^~Px7?Nk2m0Upypp>^o#k?m>%i7V)izTn%nrI`VW?PRfiGR09MfQi+8 z=70oEeONw$i!_8D3drGtHzJ!{v+4`}3 z5a9$-s%r(MY9mI(*8F3V_^+BQ;(@>8AezE$nQS2y%^+??Grz)Gxo~|~G~P=~U&ULz zyobB7*f%1AK=3~A<%Sw|g@!ugMAiZGNE<_BBfI=UGNAh0Oa&PVT%q>Iqco=e5`!0b zpEUbMV1qRp(o!gLR9HQ~z9w*ZqH2-zmHk_`Yeylv7V)&UVU;W`1o}HpO<+Rmjfg$j z#)W9~#*NXepF7%P7yfcINXs7ie{q!{eEw|R9hi;5>8~$_)=Q_J$5Xc3=Fp6)YJOLA zvIOWuYFBpuv=>57G?pqh1EeWA&eSy`r0QkNGllZ{$l;j(Ml|ki-+lF-v;oQ!^Hbxq8u`pDC+VV#+E~n{(8~xABd7m;n_u&mbTO#fXgB&e zNG3Hjz5uj;R$0-xdr~%P!$L-Om41?lk#qBI%b6&ZC|LCH#|HC+04C$Jr2|a~trBj9 z1R(ApvzN+OEIKnb*3Z zver{5#(d*GpJC%ARx3zlxbG?olAv|4;-b+Y@k_Sx(X}U`^zU_r*R9tpCB!dI(N5X$ zW;x@#Q+uhHWn*ipKFCgDJa94jb^NJ3l61;fD9eiODBOwKWG`IT3yCpgiWydJO$+i4 z^q<1fxbR^Vbd!^AuS*NqD(P<9rOUWK_u^2h*OR?&ggh3<)joJQa=K|NX{6CSdc#W* zaDp=!R4dO4TG>o1Jyjv8%qN@0O7*~9@ZrC{=3r8AUbUxan;xNI=uBDi?VKJRblUPF zXsI;H`X(MSSaC3}k)j7yNU`hPe|Y9~J~!!5?Lj{#K!myd_H|*+%J2nMOU=A1rOV$# z{Tc1*hrQrnQn=rIeDF%YX*A%^(t|&mUMopdQ&8JXsFIgiM_U$J!0-wA!;t+7lvJ}6 z_vlHRl!#2y^1V%P`PVin#6<$OA1P}%^;dW=H>G|$ES~U9JFBBXmc`1wqN@aIOr7(2 zCc2n8vTMu$Qn!FVMgR{Id?`8@^7xTc3)%?q&o9e{?$n=CL=kzt+beV?_0E`JLHCqfBQmIuqc#@f-5#z(_Mv%a ziax~APWvYDn7Dl(Hj9bn*mNdv7opx77{AwX{ry20YyD zW^d=4t}ufRRw!;1`*|mk+k%JtPb$tJ0*>^!AbdjA!!3oV>JCEXB{mT@IpPlMPZx`d zGA3ok{|qG=*5Xdze=*@vgF5Tqa9BL9UQV;Sm#bn!o3i96L!n-mhNkhrpZ*wXmNjTM zpjZ)uaJ=z0oO3z-9NZ*-e9uUxl9a|YRwAmvC@vm7MfBfl*}Z7;w$!LI#?Ndyr_rtj zFqhZi$O8aEPfAh`aY4%)qo~_7k)E+!JIk8F`b-U=M;j-y&WT0HG<{&DXj|m*M8F?yr7T=1i8y5ApD}yt8;&8zB_ov0Ol;BDEMsXd1wLpKBXShl?W^( zqXUk?^&KY6H+EeCnJXil?5yhGdPQ1EfBSW|7?STf+;29b|1-&=k;@?FS7i(W_zQ{Q zee8@#Z!&l-{9_cpP3Qmv{z)^p*ue&4xP#b<5jWeO{MaR|eb7?z?hxcj3L^tJM7_a^ z+Fr;C_~c10W5=^bMXWBo31J;&~lIFR!|V3cpAI$jHa~XXH23b?$GRL2LkJ#u=7^ z9_B%K$4M`xpO^S3?>Rn;d1K!UQ--A$g|rRvWz|Jn<}F4DtTAw4NaX`3ldLD>FyUl? zXgvOK&0AgfM=!LR)Hrwa)+&&vvBcIP4YYHKdqYJln9h{exH2zFzUaVeP}e2o_K3ig z`NGrcP!K+API@&Y6W1G}NQPYU4xSzV%;CTFh&gbPAuWw@+B|G4xsP=1V?7&$drVkN_K8K1 z_^KnUcbMor?+ii>K9Rfd0^p$LUf`Qs zaa1oRWX+W%3f;e(ASKL!QY4`shdWSIcSA2k!XZyNa%b&{59z?VcqkfaOegbgED*n2 z!8RklDEfSl*>?yVdnO*GJvjAxzX+Trlm~=)q>4(uKw}mQ@(0;Qs9thNjCw@&Kj-sC z*gCXx&C^95tj9soP!zvsdIu&3sK_G+g2tL1Eb))w_H2UR`yNY#5*`;G;>5AXD0%8b zRmtE_dO_5J`@=ATGS*0$;T;J@ga+mCVo7w9{JT3L;P@6_Mqf|zkB1_$pJ`LL?PCEh)#+hE3i-nmQ%PSE{|F=QKGt29j{v~tp z&&F6EfzXVytAtTIB2n>jU6w9$NExF&{bg|9!?*okl?7Z;AmNs3?co{^DD^6 z?_t_3ob`;+y;k3;L?6(4<=K|6z88Ap*%e+Q#2Df2VlV*Z<6qNF&sP13k@LmGk1475XqLdWNN5-W`)(LdAm8<*8{e+v&Slb%Ucasox zJbKKr=f=V&B0g|Zh9I#N>v043>P|qkL}lQuG!&6zB>jO|QPaRa;;)hdkSGB21a^wZ z8!Yh?2r*fIKEjcD@Nh!M-IZ+BV#SAW_Xx$1RD8x^_1pkiX@;x5?KF%y%Tw3}SL@hosVA{8SAdHRlnPb?$;R zmE+Sohc`MfKMsOlsd(`KM>gqpgNnf*i(%Ca-#neJVuj~8Q4LeS7nhOZXIvX<{)IB6 zry=3#DP&wa240Q^0HKalCWs-F=gs#zrrM_OaQErg+bho856L#!M6`cQPL9eP4_r9( zrRX=7B4Y+pB;sPW@CF9d#8ENpNFOO;7zS65HV%nZy)2)kNxC$-!^YpOrl-^NVCwS%w4SG*Ci@MOz5G)GV8KPyAMM(VuA0=_2L7QydWGqZ?F z5|y!D)<}j%r%YrK>mn@NAjE8FNi9`-&H*o!=_nInMJL%)22ZJ0C$d<}r8|$cm}zKN z3vC!_^@R3Q;bdP=M1l%HpP*98?4$;-TiGjrz2bjfPCl5BQDr|JbV6CFy&xd-iqQ-m zf~tFna%fvk@&FG@9qyKx=jy@XAv?Ki<4dgD8!Zj%qJ{`Fqkyq;^DdxP6kjOWA*<%wzv^7HiuAE9q4vO^7W*XFWYH5 z4sak?dT~cA%qu?^E?O$}+clJR%caMh%DiM1w)MBgzK8-FsVoA2CfAd>j5c?qg`;0b zAAv~*6B{&LY(TDswPw`CU%=1?OYnjdL3r!&*S>GX&{F+P`5zGCw1a692!i5!XILkXU zH3DIe_vaYtoguC~_YiP0?YXB_DYyQZbUebMU2sgh+~k$nmgSqhCJH+#V(SnWQ7o45 zxeDBR66DfBlzO5YVC? zNhwUhk(@mL^o}ijJC=0QnP!21CBJXIVVS%VC#EyhMLhV%jI4gWwZ8s`uPB^i^wv9Z z`qGr(k5B%hgK9r#ZDKwvMtMkoW&_~l=T%KC(O+O#wq<(jGYtzWI8!MHBwUD zsR`ciO!8?AhQ~xTVkd{~hcyLDT$qcSdH&5J1su(V+-yyeCYqw+J$w67>5u&AgWx&r?gWC7ruCgeKX zT1Rtg`*K;vi!-l|7d5~Fd@MvGe((NIboL{$wtPlB7Jz%Rw}RaV_@j^b zWf%l~e|^@W$pH_m*a;5FxT->UoZ#fRE%cZJnY>#~3R8?Av3Oj(N+1SP{+FvaebPC% z;SQD~Q>-sF6Q~9NiayWlbP(3pKw5J{W>Mk{K6a#tYcsV36zIdr_HFg#W9zFIDnC8^ z&o=^KZ973!~;i3P=g}pRos|jG`p$~mQ|K18i^&mUQY$|S4CjTQW9rS?FlL<_ZF`DiiA0&D7}6&RXpjjQN!_{MxZPP z$-+CpNgoYwOpxYjb^CV!tZ_kUEpUl6H>AwIFXA*M#k<&4an+;ysW%oJh_qcQT4vo! zOGM3mwbR^96bLrjVMb1i7e+d^?`+9pPVAU=B3JvPp6?0k>ys=dNz1t?iga;-A|*TY zJrI>3eUd%OKqR&M4^L1(@2HN6m9r?J6C0efS#$thm_p1`*1GHq(xj*}`Wxp{QqJyM z5?1ZTOL*g%KyA$!Ib2EVk?3Xq<1Q>jifqi}EYA=B|Ns7)FqIEK=7bp<&Ry9)-F?%T z@bNR`3O8c{n+BCu4*2i=S|VE>>!fOl1)E;Yx!AC)=_*KhyKu( zE1SXNvcby&xULmU&$-g|rK?Y{t3L~^4*PVL^+Z);3hbtr4HEk@2IQIE3e$zJ2 z9h)P-BP}xMZPmj@7i}dyLjG*WE!jLiu=qd_JV{ zKW8GNyEt!gNkN1B>jwmlK&S@;$?8UVty;5?>ujN{JRdo^*w^*B&W>Ms(=;K#`3F?2 z`IGc!jvvUj0uuKN&%6Zz|0T!&|Nh7~F^4k3_Hc>BpBds9SOKBgJieq$f{Uo$A;hjA zxDap&5ipp$`TP*Y!JNK(+L1oBF7Jag8q?_nN`^HI;)pc9q+<9@qG2 zlzgF&Jelr@d`ZWhX^ubP(K3gjY#Rtx5oFFlnut$^z-ls-BdBPlL+eyeWTaH4 z1~@g;Sp*CAbHP?W2qDP(fm`4(CmhgD6Xylt)Te#s*_eieAsDw0Gr~7-hOcjc?hPTS z`ygmwY0e9f2StDOY_KW;fFErFpwqF=dH2k<{_S$Of^`158=E%whMPiDO;DgCle@4Q zPJDD+6i1}F&oRLQs34%FWpLr|@H9eMU_?fFRT;(o2&#rVK>)3HW20~E4`jPsI4pv4 zw*hkh!f*mj+}%w+qLLe-%c0xWaVmMzPdM}8`o-uD09~e9 zU>C?Z7)SDsqheyDAinx;BBB2g)v@?2mOVp} zY^P%5^g0LFB|Qckq^L=jn~GO!>q%l#i@@#_teL2j@EK2&!KXegHAGUWPF88hjvY@? z0Ii-%@pjM)hQlcQ`!rFr&Hj_8G)ErXEEGzaga`rpD{rF9Uek5vGAO@Au3~!bUkBO(NO4enG2BH9M;NyNms>ELW7wH{G3qXI>7^p zHHg_@>`I9|to7K!EIfuN8A%>gP9;{|-rJVkxF33%)E;BZ&#Kfxwht;hZMC~8=i9dy^D$MzI(Kv1&eAk57yAqmXf^i5oaccuW&M`QVG8zd4-aKITMk2 zSxihnqzC``qH1|bE@x+hG_>W6_rK{rCo@#*nG1SZE)OavCA(?ydADok_GC3bt*FY7WZMbL#?9!)kFSIUKbm}hgfz6A(S)E7d=uUc5UXnN}9H=4`Trr zQC?yP!L`&PAX&?hd{`$O1 zHC6Igcf&aSGz*7C)Qv;lih#~9rEv%;Tl!-whBWbiA|Rub`ua>wI>OciwC*JTi7RHV zylK3bxNOfQDk0rEPp!CtPK?RPHWTppyQYD!e+dkMIQJcv2Jz*zbB}0FnaWU#On0C% zlrkzC*AfZQk2j9!3Ww~M34Sx7RGH+8f!O9BSau&)-bR_W=%>$?U!wB{qmTdu$owfl4W*dx&RrDy` z)t3b~<>d(5e7Z)zQ&|A5JxidrU#(!D(f}SZ{gcm}sQ&oGbQIVO_E@-j&I(x9aeXj6 zCf}z|`2TBh$HvHsMZZ9TD7%Qci1Wfcoltgdcs<1>%Hi)-xFo>{(6v>Co$Ji-U#d2i z56H&;ZwD?Fcta2{$_x(Z(F13#V_T8A*H ziywkuf=;k*{}hP&IC5)Olyj~6zk#~plzOQD4Uv~S)0a){GaF5EKGL)i^(_oxZq2wG z+Q0*vrt3$ra4S2gx(6q%ZVB4qGNRh3 zJt}I96pA`|XSX+k?473J3~BRXR?AqUyc6_>$SQar{oTm5VH6ruFl`E?<({7}X zuf&P?v0vw$ta(eEG!J#ob+XhCs>@tGD8$It{MaV$$zTy+25w1-H(hS=%TjaZWPQ8! zIrRb3o}h~_M2ebL!JkiSOvKVqs0EJ54FpvV=5$ zC2QYE2#riDSO5S6$N~7gugJv9v1JS*bnl80V&+kmNcXVFjghhimY0;2%j$ninTXZD zarVK(zPf+_00RKQsUiRXUHl@pr6T}|zxeRC0Ctqh0LyNmBK+{xr>@Y;Lh#udL6(bxFbM=;BM88D5rEVw?!aZI@YzpZd_c~M@ShO@ z<*Nm-wKJ_&vT7q8-|>>{FN+*3ee!L#+!}cCZRi2Z|K$~Uul9+%{}NTK!&!_Fu6d>+ zR8*z*^{RdtJ$N}UlT%yfkcQku)~VrfLqrc~P6Id?sQ+O+iz@!YFveAMx+d0xuY1q2 zm{d_uw(A$x+b3!VxC14fsP7Q|$cg(8<4tFclBAwW`1Q$8J=uQ_vJg>XCR5R)onz9f zim3Lx%rTD)w-B>FnuvAthdGtB1=Zb(QQTb`782qcZ4ua=c9`vS(Gb`T9>)g1U1=Ro zDCpFH=mSGG(LBNp&CC1hPb$B6CT@{DbSw!$%v#mO9T6Mn=aQj70StLrxnG_l*W2_? zqUkACIpPsq=z#zHpMj!kPcKds(G_gw^0+RnbMoJH_&rlv}dMhZN`9I)s=Hx8NJBj>!OcyPtYZ*k~Org!)HynXKLq297-fTh?pLcEDD$;uKKiew+H?ydeLNltU&RzKH z%b~E8CgtEPwL%AnBxWctoa4TRrizWJWkRM|Nw-;pU%`hMGQcg;n(G>b~ z=TPZ46oi-;>Y3(vU!?NbEwZf{qxkd?;@axe;V< zOt~{T8@@uu`$iP_L+Y%+i}w2}D#uQnQGg=aWfOq`gw=k`|9=WPV|P)RN_+QVSePl$ zipVaOx!5lc!5yF)n9WK-7w}RUYAV^bCV=nF)Aa=iAeCOd_J`?iqK*URKF94-ujk_2F!9u#IO|-e9GISI|q0T zy=fR`X{_?e?HPGcG60|MA{59~l&$miw!mhuXp#(q7aC==Z}rLZ$o?0_Jq4-#&6M!I zXle*9CZ$b>cPMOIebn<`eRHIA3KCUPu*c26OcZk04j9mgFaUAkOFIjB=upNYARYtI;dwzkea%UmiTgI?lg?H$EOyf{Wjkz^A@>V*mgH000zOV^}IT$krFy z;lxxbW_~<~8Vn(?8vt;-?)Rh$7fB>}wORO6qMn_ZJmC<+(ykJDk^le$0!7}y+~J0c zBB?;7f>_*j4Q6yz?6*`H8prIer91HVNy2vP^XU}PvUKfd;z@V_4N~g3ur!`BIJqz$ zWlY-Z0vgd-t|1b6HFIwe1+f*#+V6Tt)N@%N035vMt9>1VaKF`kyUmx#71x}n$h9r^ zqydq7&$Pp1Hge-eazZ+@e4*?}Gr@$8bOD$;Eqe@etaYo;Zx_Fcx76EKi3SguCJbJ@ zF~geLDpy~f4HQ?o00VBWCo1Rum=LGk*G_sXT(c{zO{Jb<_>4xdStk0TX8M;8pak!< z>$6GX>|NFH#zYx9uRyU=5t`H?KCv0tu&T zN8wAcb4z~>6Ej^_fb~Tkeb<6zXW-gCVO9%@oW7tlY!}~be8q8~%mTG0dEM5Q&@Z09 zdLWPl4Ds8~dx|}0Pa6W)|1szk)U}4e5-(=Zi3E0A$&WH9Y>rulyX+X==b3&FImh=D zc_ce<%u@v2EAt#qM|{cT?M<6`bXYn%xG)6pEj;I*3061bAB__aP-96&tSwhM2CfBL zNJD+q#ABxB+xOF|Kfr%e$|@C@Ev;N{8;s8}2RuHR(sRYinjHgUAt{qbLa6m!~~at`Ys) zIEYW%Rz>yuGm;>5%GI&h*nU`1U0{Od%^pP_=Z}CLGGlYWNqRsAW_78{6t3zU)&0h* zh*us+T0sN#q~l)z8aW)NK=@G_`13NNHLRufmU3z-@?%vEn#UMo zF}zhY!j9x*oB$TWm&2j-r*wSn3cpfH^*T{emieyQksC&9l%bW~Hn|fbuU8tFLQ8-H z-;sZjZp31&3H}XYUd`%Bqg_4(sfITUnbA@u& zS_u>B9ocvSpxrZzq5msg{Bh=*Hy<{btHKTb)Ee67y_DYK=@~bv0`a?8(~r~uSX7)Y|;MY!rB8XXaGty%&-=b`%P5ctd?-QoSL0w!9NQ* z09reGxI%$eVQ$^@b643@{LKC*m9o*MfI!)Xsh^BLT_9e;kOaJH z?Q1H?-Dazp7usxEVP1={A(Hp35x(=O7FvgUYE-iYXQ;!sK3%r_6&;~ua7KPCIsYM# z#X3j-RKI`!GVk@33S$`&H{8Gt>M}#mLp&zI%8wDpw)QX~&4j4i=~wb>eRHINV>w(_ zw>Nk?#`&iLkDe-)yc+){3=5#k2RJm|M5R%`BThp+KVKZl5RHzZQ8l%k2aGlkRjY*- zgRGNc>b~DXd+2~f#{ehuA_p;7T9l}tWjn;Ft+5C9eF{C0jNu+Teot7vnui-ZRC#L{ z2)5^$x@qfF?Can_K&0O=1NDM4Zd+NM<)7|Mx%EIwBx;fEtiWdpr&Kvb5rfq=HEW9K zU^%WbcB2uNF*1V@@gf_b?fm$4UMXZQzp0<~xzlQX?5kY|i zNYx}si*0D!MVyslMTBzU!-Cul*{TPTHezR^dI)454w+v6@=5Ln$d@)gYvSU(V7J3S zo4pM=wdtO*jOoW!FjFf1(rLT1U)W9>h4ySaaeGLJi+G#dCWq!u&CUOh3k&SIhP)hlw=Le^egiAxM&-o%rHqKh35W#OeE_EIDvcQh zzIc`%hG8xo%SId3k3H*%duJ2$=Ol9FJ2N|lKnh&ZQ;pyTzU*pHo~!h)Y&7~1$HKK@ ztL=6}Y8KZHR}1F?V)wqFRtoj7=ZS1mjySOwKDm{rvpR05@E44}uJ%N~P5@;$^i63m zb!Wm4zJ+cev^WPO612%@8GZ=@Nk+C)TB{ zyz@Bq3r-DMu*Wy^G_Nb5y~C0QTp;QU+yd4%e;{_kYZECZ5+lzr*w+M!!x00YM9goR zPH}c3f2y9DLdp3EXVYmKYutD9?Z-USezh{M`{L_60sVw#X(pqA)PiV6pmx<(5EkW2 zuOIH^bO+`yOObghcZeJT&*CY(waBL?+FD9$!JYu-%+9f)fuPSby}b|ej1&i>_htSDF|B8BW5;z`f}6wtqFDNG#6>o zg@8MNDr5m#XWK>k^g)Y2u=*~N(7O5;E%v*o)L0WsSZdp3WnKS98z>Lj!6AeIr-9PV zSpWx**G6~lNx|~WO|9UsBz27=8<6#;)q4?0rKIxWtgfwz* zG$3o?Xb*nkO}1GT<|LY-s$pR|T@7j1!g{TDWI1@Zt|+aC$Bh~EUb;E{?cGD1ubT7DRoHJ?;R`}<K^RZnGb?le@%{!){2M`gqQ__jdlvavJ%Y=t z7h(T(rg=cxnmQ}9z{fr!BFWfrN|P4&I)Fko$}w6!C9#(%JBHS{mjIvT#wf*rw642A ztH_pZ!0YJ+#sC0?H*0_Y06{ejH+=7mM8#gf38 zQ|Q$0ewge);AqNUaoo|g2LgAEV3j38u08$#|Npr0)e(k*MTy8$=C+mtqDxoBj%z5{ z+!tjdR8%7*QPwA=Kn7hom8R6{E9Cm0w5J3D@#J(ieJF^5MUe?dJw((2sv2C(L;?*J zOBD3KRIN0FZo;XLMh}NJ1Kz6wN$GK|ea%cL%zyEI>rAPD)DiN`fW;D8qLPq>fCk=i zH9bj>?7`)ZIP9a`{A){&rlB`@u_Ju{orqGamPJwU=bbtzJLQ#)4xbL{)eF83RR{+s z9T6>5*^Q7vDL*$LAsPs<=;8|U$bQ&RPFUk^jzxupTAI%f;f>MQaQa(hiZ+KsVGq~b zD2f356YW&@u1(zVS~)DdF16yh@sI-Ob}9xZyMN)5ohiFC!vNE1T>gpGLFSSTS&5=6 z!CoDqS#w+w0Oi$v6xn_EK7f-SA-Urs`s7<&%>$G2Hp;l@B(7b|9cd)|nSc;(pBC<> zX?<=VPnShzxrYyo?Tan?Z#7Y9z!VOFWW-+U?SJawnIK&-L2^9q8N#jMXw@lZ{<{Cu zdNO;k}}lYxCr*#qm%PMijt_TWAHcr9*ne`n%9K@yE5d#ywQIc3>cxDpr1R# ziB_o1|KhTwrpv~=XO)NsG?$ykgF|=#00T?``NaRD^eh0+{jwF@EM~Fhv5(v&ib4#N z9Xy$0Q_J6FbiXq;8;|%giMzinXL@w|D4QG1%fQQm2KJa5{GdTWXv{HE&Blwr=Joi) zl1|gqW1E7?zyI*oG!+Me3R@Oe|Kp)&&!DyM0S|2_XkSJ(xo1CL?PKia>D}>NQ$Rnf z@LKQ^jR+Z+R|=T0PqBeAk3pY@BDtkE-}o5#EvidImDcAEtgmu>w(OabP6gJGLAK&> z3{(J4&fJSI1W7CCItZ@zZ?`nMQEWYG^YpU&bkF5_L9~bUloY_qK6XZq&!tCM}21F8Ds(d zDQ^6yKw6Q0p132>N?u-ZBrYQB@7F~PyCg<1K-kXWUM=tAh@*{l9 zLSw5Db1NuF1y4g?A!#4AchHlJvml@q^dW6`JA8H^YtcTOH-k)Tz6`O?O+C&rC&b|Q zA4BU^9JN%2DM;<$d7#IiSk2lHkLG(Kg=w8~SRgh$3Lm6#n)>T8Hiq zu&K;j_#Stjy=U>@h4%q=tt%Rqv766aMxMdp=w2##-l+F%5eWBP<}uc%_k%a+K!*i3Zj5aBCe6Ro63>d zM>llWC)5`UcW#PsjdS*P0D$6^O_PR$;ZXXpFLY9e zTV6(5_nIA?nz)lrkx>~X;heR{MaT+duk_@Km?j2(8Pl;825S-}Riyg`QrhC4puW+?Kv z@h+E#GiZTqOKCFU6^Z)7xBEb5w*5ntw}upYxW@H}lS4Jpvt*W@J~J}=K*~EQ;T>sIW{8i0KjP^;|<4iEx;EX2^cKlK}aI zmuMc}@7F!vowQpIF?M&_a1lTZ|+%9blAJIyxt-!q#p4s99{L%@yIm>V4L6V*LGuQQ^QMu1PHMu8z`(nl`d z4(=~JpkSZEO}w8h&O`EGbS}@U?`BT3l44gN|aX%=)I^GsukbOSiRzYxNp%3h+jBR2O?W z9Vfa-fu=i;+>ZL_X%dAlsSURSvD1HL2_65-ecL7TlJ>3Fm<8OQGPD$xqWQLw%A|xg z)fxWPU#}-^lbxZN-=Lm+=fpyTsq( zewcj99%I&p;7%ILf9OYeG329SVY2=!L+mdyr;Mi2FiEzv>GGx}zduUE#Ua_E?H zhE`JS(i$plkg;DY-F*=hnkW;qK#yO&J<9E=N$XHNP^O%{pvNM4Qigr&U>vHV*N>OT zn#Y)gUM>>4_-hz{9nc!P;_;3Z?~iK>TJ|`Nqo<;dqy&%e@RL!p?JRj@4pB|>g_8HX zg{x?-WDGj;^_iUgjP2y=5GE)UKjrWn6l;s=%w@#QV<9_Nd>2ZY%;6aA3voT;9nO~4iW8Jg3}i` zzwv+avHzR@@Tl}itv5UCd5{s$p0@n@bnE_t3wT~ibLrfP)*Ihmr$uRe#w&(cPE@*M z)MqA(sn9XndLXC5+!Wr6SqlVIrOaeywM?!GF@H;rtL0Tkx<&Dsh6yNG=+*M32j2W5 zkazYoSOmrZYyX+=JM|v)h3FoyX1E@6z=)L#nX7c~*#f3$Df2Y{@i^@DOVrUgNPS$2 zvfzwIP}%t$3iRTxf-<2#ilwbAHIJc@BLWqn6EhgL9?3XY+1}pkJV1Lg6XdWw9a7oT z!qu@fV}`NDAA{_DGjk=UxG@5O$7RLCbWJO;QWWr=ap8&o%qW(@)6n^@=9yz_ZS0HC zXc2b>DW2%r?#HTC`E(C%(`(gcg~$$fxoD!>d+Mw!2qk+?UpJ&Pqp}r24sTwsh{GO$ z>Oc8PnQii`JLNmU@QjER^9Nl~Q}JDBrCJQJDTo5DdGK%%Hko_T;YOCglgoi!C!VrX zyD_!oL8mwQ<>&HASkSM(v&k5Rcweq?Ln_WMb}>g;oX69+43n)%U#(>JQ~|z1@QNY; zBkGLM6TI^aI9&|GPy=39+xVPaQfh;*--e4kB`M%a=x`?Z2LK@zTG_E)C^U+gv9*Fq z5Bp;$nyT%-rhNQ#vn#1j;f3WIDu_e?4k+*DAkB$`Kr7_+cEuCVnpU@Q(jA)~5&?vP zW$Ummw*53Zp?&##83d%A!4VvkUi+M)?o(f%)Etu^ybHaN2#cNWE=3 z)%q>6(|9=F*lEc}-X8#gpl*|DH>7OB=TEp7FGP7CZt?H|uX_E}6u9h2oYZ|AtE{Na z(4+w5bdk-o%1K&#gxc`IFe_sj;X^?T5O)%a3{0TKAAKA@1^CtLNbi+*A8~-YAha=1 zjk~JpcXe*nb!Zx3k1qkbPD{Ir*a5l&5KKC&=n|~|Bn4M1zhFFY>pDqAY??tHpDYwM z{Y)_{kKDfvI7Y9BshOze*3ceH=ohAAsrz_BLWchy|8&?P^)~J#l#WCX$uD9=zS>)FR8|#&@p5A zL58W*YR+JxWQ+;m7>++72A`aV3&K*WI9%HeoBr$$4>!fnoxPVw{59_hMWel}ieK;h zR|x6N`oduiodDweV=(U>=6f7ZS!qj-FT$$tKEoSWMItpP(UNLYk> zIU^XX^Ry^LV>_0IVT5>*cvX)VL`PQvfK{#k?Al_W{lB6R?_L2jEJ}jrioxt8Y_8)1 zAqi33*c7;+)sN<$; zNC{b=tXtAQ$j6Hv1E}bS8%Aiz45W0xeBjsigVOy3tQXKNn?GH{Ry+~euk1HgR&Y?p zQRJJk9Dj>ZrnDfh*u`100W?1(aD;ORfkZ)v>R7jRa^ABC(<>BilE`fB%vZ?P43{<2 zuUPCKtn6h|>{a;V8lr#grT?>5v4>M&>OZQC6Cq)d?-mBpk_{)}9Y{zCE=VO-3kLaC z@XtfPUGg9<07{5s;He8W-m#P>{(;nV|ARNiH2!nyR!h|vfcm&t;SPZ070#0YdP<9X zgZ8;thbm{JjFGmk`GQPF{<7KAdOQY`6%UgDAd9a;Mb?3x0fbBpQBxmjq61ej;td;` z#BS6>M#_38BG5=_W~_32(ddQA&MIBQ#94A|yeh}m4wwZSBzH|GnmIlSsGh{pm!Sq9 zlV`&^h-&a$vU0^>)^fu2rYd=7=5hOZmF&q~#f;kd)7E%cih0EDq)rx)Lgh@1wNF~=FSw_7bl$0}k~ z0?->ILl|(-V&KsYo zn&7#Az`uk7Nt3JNR!+mh*e_?1<#}lfM7X$E%fRBFgi>U)&O5dk)_P=^B|9Y##+&f}9HXyq_>MrK#Dk0`nP=SuOI%8wQ8L6RCyR zC&QlCp2<}LGDw+>%5oW2it=oE#HK*DPb^j=>)Y_kc2B_wvFa!A}48%aiS88Qd!y4H&qdyZEW-qjT;U*c)YJMYwz ziJGGoXyho}DPiLATrqL&F#O{wNt&Hp2=|aM^=?s&9`N z)*=W*IqOAXksT!3Z-g8Ay{&C%MjROG%TqjdmyWj>2i926AT>zNGzAd>iV2WHRrt_% zZianxlP&$K^O19~_H2l0So!WohMD(Glc_h`yu&^0W^Zg{^O0r!mO~tvud0Za5#R8_ z%H&v$Zd+05V)LfeCuurYQSIe=#%hE8-I@u@K=Na(|I&Nr8UBMu?j?1)*c>VT2w9nW zs|``z4y@NDzaPZYu3&Ibz@L3T|I97lPEtUu@zMM^|1`(}m7Bqn)U~m@F9FYV2QDxN ztOurQi@Pv3++@5E!ZUriuot^%^okrHkKi6pqFT*y{~@8~?yI(E>v<@i@rL>=jQI-s zCqmS8qn5HUvQo4r9L}(8?^zO`oBNqz1P3tRC05dnw1k=@DAFUIprnR<(3H_x`}=p_ zdI6yiw4HG!fXO~ET6K}%T`Mxi*5l%3hYr!|@JNn@72F%HH)&?!IJZ|&dqb)G1DDDX z!#QzF?VNwBzu(Id@9H1io_wsf+sk_TA}UA#Q+FS@&@*Y%64*<4V?UbpVmVXRik8mg z^(zTHHwP#Hzh8w!&8iWRsD7KeC|S%NK}Bqw!w}`+U|%SD)6=U~DmqEL%L!_X-x(Zn zRSpGI*Q$5xl~N>WD%7OY%_JK356vMt&1z%kHsymBpt<8rH{{d;z0-#Mn3y^23X{{q zqzPoUMEzF9*Bx1aqNh;ey+1a~b@5-}w*$3>dstO%^-$!aA=VJ;L;ZZ9pkZ-xf#f|M z1|i!$s5gEF#RediKMrJ8!AFg_r<_EZM>dC=j2L3)f9rS-1|2IJdj))F!M#g}PZbL* z4thY4UR03v?&@l<0_Z2&`Lv|JD;Yftlv@A1@Q-K6J!^Vfa4saMmxOuAlve>-hn_q@ zmv@SbL#%TF`jYXO{p1ikhGBY@*D*xN&wO|A^nvS@R-UC4w<=zFPW>%U9yd4wQCWpp zBoRN2O{6~IT&%6H(<)(bQN$dtr9!$kgDKy83qdz_QWM@_h-{0yB1kLGJ|YUB_5rzs zoWc=%5#%A&t|1QIq!8eCGSg4}rEPSYyo?MmGVqwGWM0fxIWxpZ%&_h3i6Ci2_r{evVY8Lu}qaqSj^1T};!G~gxCOEjRs9H4! z(vVHf<$7=lj%r*Tb+7;%w+S66E zA(|&WH|TH`u%@U7Qhy9=^&ZTX>Le3wO-4&^$ah0pY1f0MarT+0M`Gx+L1CKH|00W4 zIvUmkM&iT0f6`XSMQnwXbV#$ann3=!z_w=pQDvpcQaKg#Xh$I7P)WM@)RuUaqHwS7 zYVi77zm(4Fv}?EKo115s1+s_xvi&iO-6rEb2O`}nBQw-#3vrrf;a8otgyE9wtM(Nr zO9^|}zg*1|R>>NDwO3$i-G#B(rIP&1^}^{A_hiBEzvOr*H2V<8U?#~<2X$wTV8kuJ zK$Ur{A396>TASSE*|QUL0ZeC8^xB1T-x z&j-VYD=)s4zjShC+4)1-D;P78M~<-+u1Zn7Iha14;D9TpJMUVY;Ei|8Fqp!Ww|iuG z_(W)-z;I$rDZ%cH?e-zJ&cGTpqwa(!X}}2d6Bo9?%M|HF?0R-9Tb9)w525_@pi2ICH;7(Xt60|4hMyf;)VL0a_dO z2l?7PpCinaT2lVeQbiMP$om)fFJt=96Tr>ZK0TBmLP{qX34kZY`LXA-vk8_%I6nEv zb#q-0vc(}HO;;T;da}wR@fbK0aUTn_mAmuJ)hN@am8uG15BU0lB6wBRHPqnyQTs7E zr9=Mu)0r}|C|?#bfPTpx#6cP#sjR0on_M4j#5m}GeaOL*|ocZLO9 z&t~!6#0z6l@pujA&Khl|O z;aV5(9H$D4A)u_qdVnWvsQgtA>@11=u4=6)1-z5mTU%j66n{kmttWhb9_8&-o-m_` zdea6CcV-8CpA?F{V_A7<^-Qk2zGcyAN&@P@D4lh?Y{3&hakR?<|NqU#F+gTk46RF- zjjTcHeR=TBh?rcgH4J5fSq$!;Dd?C#Uv_(qDcK4d(}3tnQD1_Xgi(Sz~IL+CfzR9M+ga zO1l(m*i<_g)G>UxZo4v_F8q=$(7%`L`A<+WNv$tg?2n$-*!uSm)CJ+#uSL}uQkYqj z18^LK_SvKv@lt&2B{KzV5p5Cwjtw>RfHK~BGUEqr{u30v&-W}@pDeL8wXT}!@Q1aJ z$EuZ%a%wNd->3Is74Mj`u~d_}wIxVzdbV60--4qoPwBANS)IV(k5s)N~G!V8lT@ONu#T15}75{7-m`}Dhbi6QA! zLqM}-5D@5gv?P+Vagf^ z+}|w!|GmL?)#SDNz<}%?aS_?-!f}Lm*mkW~*apcGcu)Cbgm=I|IAmPWoR_JAIiqbR z^&LHpc4h$(#m&v`@n}z= z5YVrfx2i^QBR^(=KFyfSRZaZ zsiB42z@lro1M;x@4u?6 zY82+s8>x5GNyEBT`Tk&ONh(H>86HF=Yra)&GxAl!7QVD~82zow!#(JMt2+G6ox`I< z|BRv+&-$CPwZ#?wkZ7rNRi^;^U>jCf}Fzo5zEp4-M@AHSqF zN9iLLfJL!NzaHc+-G);=|2?Ar=5*VUN6e-Hd2k!d157WN`Z1;Mi3vRMX#eZ{$&0%2 zVrBI#$1|T8o=?$SY5(L~>lPelQYpWhc=SH|ky|P&zrvnz8CIHOIdRDXp}tzG6wqb2 zAXmGn3yacN43nC3=M*vt9uS*i046^EC81&I6+HJP@@|BeD5E(KW~KR6b@Wpx3=sz2_BSfK zwIMR^BkNLA_5gMV$cbq)NQ~xX!!8d)Ps@X>Hwir@p(c%2ecX1*R*tF2oxBUs6s@&3 zIDu)Q**#Oov~dQV0Jd?{l3lr@ALJrltmO69gE8R|8{vDrKq2R87BXpk_RHPlzR!k* z(}FrMqDq$63c`{=#yK2iEdZc}Iy(jZ8)(^qsGNHUEX+FW$o|ga+_)tV-?=Z)q22z3 zIYL$}seLowG^7K0x}x5JchvRAh55p6!t#nv8FSxCq1}YS=2>gp02(z-@BguMPS`dZ zyX$J&wc=ULD;H0BcD=SN{tDP{nXz=Uk6zlHv_$EYhDbsnRkAjGg1@Qv=<>d+JfRF7 zt70eE7wOdc#2AZ}u%-KHMTt`(joz&g;d=RGZur^A9E=*8l=(kteF>G~E?HUidCWjedNz>O_8O?%UXtqlNrlgXz%iJ+Kr_$lt(Y-#7LloNP=r!%{{hPmtIkwww zZG3;6hqTJQzOQnFsUx|94W1|T!hK{wZIC<8o$};vTu=f!{{^fQysf(Yi4~&x4*Q=j zVlfTo&zqYR!=7@y!5*VpXa0x;i-$yI{=SW-d_7gJ4BVM0x}Aw5=b8X13+QpB6g=~z z!!^syc6s)<$ARe~uDGp6YVF-EF5d}kl>!CAz#?2_M z!wV^Ivg&J~Th8tV?{haqUQ)5hd#eaE6o9fsJq=QB-AH~XK_*p?yp8Z2^~Pg*L2_88 zx06S=a%-JVFMFZT3ZJpky)q11pxl(vC(PiEkL~$P&4ZY0C-q{}u74fqkEb=W*kO%2 zJX0qe5ZriKKK%2(Fg?0I<D~k;>VgHPs6n6>H8TkrozM=ghbgf=IXJSVfB&q1QG2%$fwqV8$gH{PxuVDMl0m|t z+Ux(G<>pD@40mOnBY;1+1L@R4Q{Zk-Xf?u8mnj*W5yNXsToQC=_Oo-EGOBd(; zsI6&&qC)(k+h*kAu>F5(tQO2VYq`P){mN4tCF5yg!i%a)Pq_qH@Q-#yk2o_-RNVh% z%9od(aL*qW2wimhgYfTzvmrl=b8yJW2=_SRe8 zHX;L4-1Txmr*2J<`QHH;ke04_q}eYQjsq@5J9?GbK^$D^YX3SS9Q*(Xmk=KV$0%$E zr*k&3+0UpD_b8Q&PwGT-!OSb=+qeJ03z!DVbpN#-R=>_awBP`vT_FY!(UqWj&6*5z z!y700RTbzyLpp0QS^Xj1m6B`|poD^u^^2 z-0G_xff{hmj_7JYED~?mnPDRQ)N@`oE9TMy*`X!5h^kaUMS2UX7A^|0 zk4KQ|4QI$=XS_#IAjgzP6AB|gekab0>F6eK0ScC)5S*8=N^TJ$HO!AEVwQ~hW~{4EYzo zb%-%CujkG2x1t<3XB5O4hHk~K=$3>pz)wd#QFDB*q_jRDNJs)~=P#n*BVhAx!zk|C z#`XA7!@IN1VBtwClu>ruuN3+_rarrB0D#gO;_eow)~q=KnutwsYDx_h?&tBu1b1}D zUUEQ$NHaOFY%7@st#kYx0T*gPWdRIcDt&B$?J$o1@1EgWw6xc7%~Civp36Jz zpP^Sgf{8N2po*8Exm4o5VRq3lOG86sqP}j0KAx)E!T}*4fPv)qoCL09D;eh7$k|x& z+T;GU$K+w*C;$Kk6aD;(^y6c2D_9kf2JDDNzJKkw9?N&(Y6+yaZ8q_|3lI*W38Sx} z;nV}FNNn24zuQ-+e&^M;NY0pG$;6EHNDKllAL$G<>NL+{zWXuWJ+-U}Re{rBNl$Z#29WPUIfC`I5$Jm4ze z!DtBXvn%tLK3=|=iNT(k`8GmV+ky&lKDeSKBv#!l+L5&jdDiDIO0<1vatL+RjIr^7 z=VS-MTkFnPU(kum#`*EK7yzP&co9Qvbn&FKkRM1I%K&g?(5h+Ph0Frp7zfHcKh8g zg0{g&TC#1dwN`ulhHYGw-(HYsR1>NIYchIxMB25Lux0XBDrF!iaIrsmewHr;HvS^a zB731(HNc4cZ978k31>TIFYCfhIhMW*8*24s5))aXN~~=Q95lY`UeEWutvo-6iNY9R zdHkFg9_9g3G@AkR1*c7UFNE89zy0YJZou)!%xqiwPVz zc9SP-Ckuh|ShNFNMv4RI3Tu&{ln&-{-{UA|=I13|5J-HS=v#7?hi)Y?1K^waqct14 z6?TuwTeNS4vCVwr2~o%!Pzw4HRhD%=K94Xk@#JMD@&ZU11UyMTvG3M?R4f1Fyl9R> z3t|Q<#Z@#?v!F1CViIlXXU9GD^U=SIeR-X|Es=lz5m5=mq^U9Ra6i2YsW>5)^1pJ$ z?Q<>sBy35B&H8-`vcGgll^o$~tA>rydib&aL$jgHplh*qbwK#xjSkei4HJb%?#b2?zS zdyte+WG><}_@{Qiwg}8N?GQ4KOhFMV;eU|&_ZpE-e#S$p9>3W~thB%Y04<)Ln3L|7 zVJ}Q~_2Rejx?e8LOlCKx*wA$VW3Y6TgaQ0g31Qpv?-wRg2alPP*9U)h-|Xja&w2R_ zGxi0T9k~nqhVo~79#Q3SEJ4R@e^JQ;l=RS_PlVSNMPeyIZ(xOkr!9AMsdSvuqYR0` zEJinnj_N~jzs(ie!NO&sp3hlcP^Q>cLaQSb+5E6g{J5gRGMhSNPs=eKbK zO9lWHgn!Je=Izla$8v2QIziWV=WxVzMF{fUkZ(ZJx0;$aP7MPbJ1*Zv_N{O3t=OqghgdR^w8k) zG@tlDB)9ib^^k9=0)9T=h9^Pxtr}(!1CnGL99}L_*uy z7Go9~(XJ++3KQ1v@2~S7|JG!Dml)iN>Py9J7jt*=v-+cZ{~Z)AClju_4#B1;sa5&J z`$BHgx#@mTvo51DCleNP@bX5vAlLVA_G;tT|NrV}e4%R~?0Q&x=88q9Qfn%bQ8BG? zXU<`J_bGXkYzE((i(d;CZ?^p$^fIr~nZGrnpKqC3??8axF54a;>rJqG@6N|f zGS!wqK_|>;Dn#AehKf7kC_1t;T*7F|?5XB0Q}v|4JkE~C(oOBg5YJyzy=a3P3?2qY z{#rS-#^P-M)a`x~&Ut1~2vnCEHb3aqDr>4v&5t{-IUwcJ=dB z=Qca1&HoJAt{jvobNqMN`GCTD2?s;e00095;jY-d*o$hfOSO5j+u z>GF6g452cNoR*rZQ}9$cl=l$dl7m7Olu0`|NcH#rEPLLww_cPNc>th4-T6~`c**D$ z7NYYsJljarcpDsQpV37mKamRFo#-d74bL0#ULn- zX|vT_HPPkIqCx0)*Sk=e&0+YR5e<1x;(kXMXccKU!9L9V45|lGetih?3D}0t4VPy% z;d7Qo3Lym0dhBdrDHVAW1D@6B%1Rw+W1$L{Ej@Q&%2YbFo(CLV|p?#vY$1BU5yFK7c=g6U5KCgf&mEvDi)obawEK%OYhr zeS3I6o9V2uxx|)h}12x&OXYRLj4tWW8z8S;?{B7m)U+uAIPd9$9FCR zH|ej=$=<%-i|ZUUXA6#edpZWf_+_^g6_=iyIK8s*;%#1H{duuyZLL+tMU~O#gobbR zqmaqa-7m8;!9kE6=w3+L)U1>Psz+cG=_&bwo45**P;u&o-aKWp2w%#6YmlbxN6?RS z!D{}~pWQDC`KbN=to8wY-1zM?GIC<-IVn@Pg{3m)4yq;59s7x0Q<`)F^Dtke+x8ah z>gwVnXFW;@_ub9o*R*w-aQ%}%#SI;)=#!u!ym-NC4RFS3@{)&;n@uTYW90PODCmG8 z6CLXHeRrwSw+`@3t91MSYaEw9CF(wrtPDMG*?^g}W%9=~HFbIVPP)gQO)y{pZc(SZ zj2UGH_3vetXKIt_*TD0_NfeQZ2V7XoKu9X#08gffF&M%hxr8yFbsiRd)Ng1N&s0&z z-Gif<2I(lzML0w2C01nmpTyiLUu0oIACvi;bDLC#ig)~a133U1FiKaG2c~)T{|{0= zQK*R~0$9Bv;4NJPlHM1{u#^}A#KdQy*r=*{heMW^qk!4fncZEoNwfXx>|e;t96j@^ zbE)#p2w+DZ1!2$9qCDV(PShapHXefz_e&F#q{z(BgUnR4GaZqT@A`MMq}cyr@$Qj9K{u+sl&i;2t##&R6VBu8e=9LMrgB znH0Yl(%{blg}lYJ&&~h;>Kgyfp3w{dg*wI*Mwt3iZGk5v_PGyXbp3&PeGLq)cYb(B zP38;XU;qC~JzrEImkR$g=8`^I$)R^%000zB;D&S^PkCX(BANV;($K!G?K+<*x!dR6 za{9=ZrJ&_&R7>}932|*#JITY+_*objdhDCZ_N#4JzaUug zCW=FXAuMfb^^E6XEkwpBk4Gu(+>iWiiDHL{{`B!pWmTiK}hYUU<<>rLTu*osD2 zdVx=(X=t!fa)}kD*HG-05EhNszmT~5$El&J2{*%G;RwC6b*VoORckz1&+%Q^j z56+2G>Wb}45J0BsE)1hleg{6M)DQnHE1f+D(Sz#G&ix0p8fWBOpn*rzb<4~t>W3Yh za|v)0t`+Iom`ac3?n&k?6-K34N}HBm1~6D~YXi@=AaT%ZJK{TY8GXbnF(KI#Ese99 zEMA`%Tj5Zp2ZfHuHI?T}VbaX*e+$OhzK@sP>&kONIOx}NPCjlnksC81^FIukz+`Ni zNO4RDO;yii`a~9_qA1y!`p9gyfy8wbK?!j`&F7t(8Fxr7;{xGLW=x{1IW^tqzT&pJ zi-B;Ab6$qumm#-;PMxX>7$0A+S!PUTIW^5A^DE?3+dcdfpK&oIN}n_TNCpbkv>0NR zrn4WX*+vE3ld<3+IROO#057%Q`oGoD05<42b*E1fSMk~Vwmnl@4*utPQBdejXlDA( zrcSJyF)|-5RKHA8zbTv*c1Eng^vy16u<8MjWsPcRAB~w`%nW@l(T;5CT!deO&hp>~ zhS7T){z=u;x(zP9oz3b5x@12z^+}C*#Ty&o@??$F6O50C4o-JpNb4JofzQwF-#wR} zBqW~orHaHOLVQ65RYy%rze#hMSNx9S!K6m!)Z9g~=%Hj)9>(|m0QMt9P|iT1u61A} z+5D!ida+OSe=B53Tfk$xiB1?GS4?r}5eAc^*7LMNGWb!kIcQh%uiWn@X47)|`l{}E zTc{|$%-_hU$@3_+Q{#sf7ajYL^CC4F`SOPPf(_1m2-_=i)+iwa{vxcLgaFfWQ%esO zjh*1&^Bib=p^we0&7D0q3UFXMZUN9Rp&Exk3lqOnU(50Xzn*?$iuIQiYUYq%iQ;Sx zMea5K^>3V-euJpWQL;_V%i{7kbC-$PW)xE#2!u#GRUX;m zYLszrpsiNK>o1#9+&?I?zquU{BU7E<@FK9wSv?H0Y2Tyh3p4IiR`5>~0Gy75I-5=h zrcgu3@PlhMU(IEo`LhdqHNXnHR?uqBh+FIaOBkU$p6-z#mGbTaSk{V$E<95H2CSRB z3)jZTiTgAZ5lQ#IaZMOJ7(R$q$^ogDOIj)Q%8c*9uK+rlW%7#Ep0-t#mnPm&2b<3cLYF?W}#x} zz$t8TpYw_b`v_Tr97De%1WH<%%-eK)ucWd>rWR}YJ>~adv)oJm7Ocr4X58%-b_C5D zuL(C5XMPD~v?TAqWe$wkIa+W7n_@E$cLQZUy)w}R0kCu+Zy6=0+X$GFJvOBpdUcy! zF&PtyNAOtmKT{wCEpBFVh=(;9{IJMFP#1>w1eXUM+01NdRtAr$hjDe$GtO! z#p>V(lvrQ-nh<1YF^Ya4LcRgRXc^u|O<=(}TH*?7A=f@*=(2Fee@?N&e0% zQo8DysmtHPJw2nb(`%tf6dX~1{A8$sn*H9sOTvz|v> zcAWOJ-Jl}njHzh<@-{H6!<@G%=Z+&Q=3Dx-#%b$#b zkX?zcUi1ZuY8i?quB<$GXNC}=)2eXYxwO;lcX(NpA4#44g*=RLdQ>>c#21dib;;t_ zJ8>rO=239%(VpBg$#B%3mFSp|2iz&N?Sy=JU%y%<0ZY$p>Dk8Gp;DPCX9jD%K!MeX z%q^*y&tq@zg4y}s=^oGhk%fK|7QZin9@=_z8CjQhPh_}~R82t$;m$1jIh~S*3JYxH zBZJ{j{5r5?%rykm%W<>`2Ld?DZSs5>(?y3}F1;VGAj?43?|P4`oL(7am?M33MiXK7 z{Yb3xgWkVkPD$nd-o-z}?rJ8~Q7`vq))0GTG#YlV|{ z>VV&b`~UN|RVGc&XqvDtD2+_x`56g8Gy@;P4lNX-nnxES(hSCJTO~=;WBsCKzaE6M zErdKW3l9XY4THjus$*!WYkxWTvHe|7B`Yok#?o3eu+;n8#v00J%DVRLN!XlyGX`@Y`TKcGiy(5)U-v=p38A zAFgLW*;azvvruQ!EZQ^@a<( zY9nr@5$?CxDOx+krDS`l4DyNypANCWKYSHFfrt|k_ zUQN4}r73f|EBb5DLzsnBLPrBQv!mw2iH3M~qM{to-A4g-MNnfFEUZ{ttJz=*D^efRZJ z2bNQ<)o>`9HP0Vzq4wCnKZlA$uk+iU_pcGVOeO_?{#k-GO}9>?aJT>33L(i>K_fO( zuaDs^sE=)vKLOVb+$kk_43*7HpG-xNj12fq2oCp|bCZ_oU>x6FcD@^E&e*2F016Ig z_aNqvk;6D&cKM=9SCg_Q&$%kG@)PK?a(c(;Cl6R{PP$5 z?BrLMHN};dsfZk;XjTpU%BpNIN&HFAK&Y@~BO@FaJIf?mH|U({dq?OGvJS(o^MqR= zum~vC6#jG3*bZFHt?+U`bg5idh7biImB&_#El^#Z1wE!}$b?JO{?{dd7*C$QIyl;8 z>R>lKqtCxgW@1NrW)>3NefmTpuT(sCFc1n|0*l4Qb8JMnI_evV9r&K;hVU5XUs#LC zx0@hUe%g^1{`I~H(i^QqK#www&AJfE`qmVJRkO~i1S^bjplclblrdlfOixro_7L2fP$3PQ1ssxBgBGLb7@8X|@V637C8YT4&A@e?}gKl|T65 z@LJIX`-cd+_3S?{S?BQMSxSh?zli9}hcU2x=YUd0^)t=6f~$T3HENq3Sk!;_J)^uL z_2-cqIwZMK=AQhbzSc}~TRgVOi291q7h_rlyFVKx=cZf3KKm2cCfd!2#;+VMo<>HC zOgd=PQ1o^E%!yecQLpW-j>RAQDe>RFDN(}!00RMJYJl3F$$SIpi^j97xndDw$%rRJ z7*>%@E(qCqzFOLe^ya{_LL1kc98dc0GO1i3G#<8IBj$5B->k{WqV99(e^z77S>VM8 z-Zz1^oj5w0Tk-I)f14O}(IO}-tT+Txmk+&RP2L5&?i75-=mdRyVe(}FwUw1Kk0te* zeLz%WDHY^jU%A-~{$eOB*jjwT&yT7Z?2`92mbS#KMwQx|D-D?OM^ z%dj^^Qy?l&*o26s+lF&%RNv&!6_MX%pZ1unWwYgi;lS`mmK&54?@v2i+gnXpgubH% z5W-~9g$7!S?L9LFFpss^Psb+s8LQ)*M{_I#C_s!@JO+W;7@r3G$m%Y2CHqo@s0%3~ zq)VqPnID>a7z5eCpbR?`5#f2XoZ7Fqw!`nEkPBZ)FXFiIEc( zebDcUy>YU4K?KI>njr~xywT#fc4!Z_Ec+%qmz(4M%Snoon~7ujIFZo*3x}Ecf;gu) zz62(V?(ZX1aP1&CC7*7#ZW>dJK*j-ECbwF!z5#c_`YQ{hrb>}Fga2Rmt`HYYQ+KQt zRciFk#^*)Pa_0>u%&;}0efGitC#Bzwf6?P44AMZPdyn><2nTgNf^*#8FC&RORNO9? z+>e>TS+ZV3>jVt)jwZ`>sc2#EMq^^(^Q?5s?$X4C#NrZUd?$V=)q&eS!POoyDJW98 z*nOG+k(%l7C=OrzQ<^{Gel_n|4}bsivNZm|id2uz(_jH@tV)wDn+*Kpq|Pe_G7?WC z_RXT9^U(kEi+JPSo>Piyva)Vu8z^rGNE3=uBAYz8`>I zQIm#B)y+Dy(hKDIdgwzm%Mu#U?OhhUwMrH2t3XlQIo2S0M=x7eM`*tRkCXMd!nc0O zSc^K~EH)#3h9gC)T3O3aYylT0NTq-)qZ0#fYw352 z@`bdEx_rv_TSTxg8vboZ@Bju(-wn#Km4nJJ0$8U(2@S4jfkEhRq{8+VCPS*zZJpww zUC?2Hyc*l?hrC=88}xX7GZsE-2>u5nin9KvJ>Go10M(%LRnX?YM!U6%5LGE@bj8Uj z68K&HkyX>7(_8)BAkN!zqw=Wv<&EU0i7>#_w4d_(%oZ7ye?}vS8i~NNKiw?*{wC;f zSExR_;r=KR4KOsO%VR~+F}wmO00Kygci&6F(cSW^yh>`p0d#R~Ql?DXPTWtc;Dv~+ z_!zdkU5WC$xJm)X3H_>U0NR2ax^^u6(lP@dwpJUni{o<~rJP*sdm?7Td%g&g@P}iS%idbM<5rv0G4_TP6`{(%6`jhWUd&*kuPtK?4)#A8qTpcJtz1{u~-Jil+!zhysTA#y@lAH|Akr~#^?A^6*`laa>6ZJ*03 z@c;n)X4JY3*{jNJO}xC1^;|!>4r+Qyg+LdyJ^{?Q2ATbirxq!5A*B-%#qyNoGYKCq zJN;wOb3%M9lfNc#LLy<*tL=rdW_Mqg&UYO{Tf$Xm0;FfW2`JO(OPgSM>Xs0e44XjS zo3Rl9XQZYwbmGEF_8Afzq0WCNk@LF3n(bFeW7`ZZ*J3)iwd=zUAQq5#zRgBRoG6ZJ zQd))~g65{2z!xpK1Sy3|TQm(Dy))Z^CkfT&YcQ=I<%_^OuG|w+( zA=y(;ky5-Sxi#6A6w)8*evk#wIwQ8AJq=xNQS;G>>sSa+A%Pkq@aLgX3~P|07d9U_ zD$7V%QyRhVa%95tNVVn5(cAq^yg~tX0=h3Dquhs!&gOFo)M9S>qV*I2=maW3nc^O5 zArAzdz~k%U6nFp$3cX*3*gx1c8_BkxAC@qsUu#uydaRmXe>XOh!O)|G<**l!mnQvT z;7F?=4rM0BC5=CVP&KCCgEdGIc@D?GHV5mWWTY-jjew+A1nWY?aqD0^zuI)mS^1>O zDq8tRhRwmo(4g5JiNP_u5E{CiSW;~R&>^)38929jD4X*T^D-%zfUU~Ef^smej?Ps% zhg~HO7+LyVx)U{sPrM5Zb|k{;7rv{bh0bmkiP_VGpAb~`HH9Myq<4m7{!C#AiVP&= z$c@M@z+4Ka$jLJ*=X8JQJ$xp zJ6V-HH90w%(BB?8Hj+TE6#rlb;N^&S;zY2RZyFZfMBJg4j!KP3!;@J7!}6lsU(c+t z=)~t$fEe0(G&>`*|Ida`af=yB+s356H_s**^?Q@=auVy!j95{R8( zV?h9NymLA&oX2&=L{}k^mAh zKb2?xJNftY9I{D&|M=C9X*N(&gizEh=&rY3eFa?`Zb%e}2ITW@_V4L^$BQl_5sJit zM$V3Qnvr|MxVfecQw(JXZv+j%)OKiEJrG7+V_p18ZCoJh54J zsi~3RZl&PiPA|C+TV5PwE5!{5T z&@4XSZ8Wo5|IX6sJoSmk5Jx?M><1E1G>?f4n_{e28IOJu4QEEQ#gS*4Q;ky)tu&s7 zejvjPdhvEInX+Fy;HpvKSAdu8PBwuVtQ*ROQCyB=NYP--ES+-%G}wcfN4)^^Xt*Rc zwt5$Pc|RBfc(4GZR^aC{d4hx!ca&>YdCROJl5zBs1fiRDcdr`qWd&fpakt)0EJT9?KrZ>HdVVc_vYnk5 zCA{#GeP&JNJdR=>tf=#8x!vyR&00V}ttK_I{c14WSD2&rNo@Y~hyZ`_GY6QW^ z^Fkgek{|Wf>wZho?ywQWL#aRYOW;kZ&+@4VbE)~VAa%J>j2=q(j)s`ep_JF=>at+t z#b;tOcEH^4Vg_`)pf{l8xwUPEpYO8gsB?ubO&ni#Rh(!~0Xt2dz>iDq<=3fA79vAE z0M`z>{h0d>mNl%-b4fzisr~JvjsQ$wWtB$4)WpraQ|nV|re3{9cx~MTUaj{Sb*MY- zWB>lmkkA?bwU%~u`XQ6|;b3N=b+*NE=(=cNd7Oc&n zrzFVC;jymwuUvDux{O(jQe5J?aOvNQplr#8C{AAF#!Hd5INYx5!V$AV*Pc{Q0lgZ@%OT{5~;RsbPi6purUY@K$mMy$>5W=a)wN!D*O+H zy!{Msvez={S%(V$8mN>zql(o`kaofvd$93^uO|vE+N)C@-C_axjdAMvw^&}|C5f|p zLx?duw1NEI1oE$zCq>pye?lZ<{ccB9`TE&$KE*5JlGX#aRE#Um;Py@yn7^vmneoBcXx`yPwy9xbPyTiLyaP=}ip z8bZM*qG+{DS%KL>8q^SGDpGW!yqngd_B{4{g^ZTziImYYL8#*``*vextI3ES8`PM| z-Y7Jx#yrE7LGA+b*pU}*60|UEV=T~byhiEm9Vh&VzoM|8qE}$xBT^{z#C~O1L$3X% zgUJZ7gAI~xy7pxIF#lH401=*74krLBl^B)y`qqzyu?V$*y}Rk~0L#7T)MI@<31?TI z?45{fpsZmB^AoS$&_auVrjTwi;p}x&rYLs>))b$oweO**t5GWpnPgttFh~S~2|KJD z=RY7ElMQV9`2JhWn{b>yg=}b~tw@tOXHQDc6T>icUe48s3>&g_|+J%o<(nTw0k4xVgNrh8t=71ifS3p=S;MW-(~ zGvfWl3qmR)u1YG&J2Pv`3H%++iEk6P5yb9IBh;P#GwZg6#&7vm@I5%B zVHRr~U+7n%>LCE+MAnDsZ!}8LS*5|dhl5@h*E=eH(gT0xTbmo6(B+UL^vAXYN?#Bn zs|v}Jf>s9TnI5B0_^@;H3vytR0DNy5zyLVgYL@1x7aD*o-(ztzvl(Po+yzTlizJpw zlVTU|Rh)wvze>@- zz8mw8Wqx*|AUMTEIy=3$!WIl@Qr~zb;tmPpD!eri6}TQCf%GG}YWYI;R7yD1M{@5u zU~h8^p>u#~#Tc@ex8OEMY)rMvovCRrCvkNkB}X zkUK9D1mnD4*MI--pXYi)hRRC9Kv^V;=m|xZA^%1$jT>w)O)WsIC4DPr8Bjp~C0`zE z3Qgk09Jz_!kTw)GQ%Od@?Q*uMitrTILxu}$J4T_p6w;)h4^t$E}DG))>@|Por zS7O;?I#}6G;062C6TL3Tkcv&1>U%Z?AZO;VPPY6F!@+IxFTvm^p|C`^ikt1GxS$6B zFi|6{0_U>%?#R^*G7u!lVK&}27dlH2*EArXUYeoI@l)QK1mKa=^JRD zg*QO!pb;TNWbK1#_%wd3T^MkeDE<0tC|{TZ;ytcJA=0&KqWlIq-(x_~(e)Z-GeXdWMVN{uB};^Aa#)U=|^t zU5S2L`|wq4>dC!fzvsOY1-ZaTi~_YwZ!VyG*ACl(&ha5%#V$L4!F~M4bt(ANJ#HoI z!_5Zc(FYL~za-f7=vQDm2izQ7qeP2g=r^VDN^YAN-%F=SwNi*4O5G2Adryw>23hde z{(GH|P<_OB#2Je3h#`Mil;O5jl3FA$N<-BgB4V)FbtNr(&~W#-vZX81H1LTC9Lc~M zz_rXKr4|p&IDgP)07t5FOXWCUPpDaxNg zJMGixb`~sX6Ja@zL~h#500GsZbyD;6lhObGkkElHpt*;csAc-w>un8_jn`A~rpz`T zj1q?&blunEymSfR+F=%3+sdfw*!BHy-mNfws?)@tm9Yu$BfzzYn%*A=H29ElZ12|* zCfxMIoa4`N7kp%BS-SBW-%z2S>Xc+&wI2Y*RuiXsO=O? zxBxSUZ*C!B?z_G3$&CZSW0u(uss}bB>Qy6kU&xiIp-jZU%}MZB6b=*`e)Mui%ea!(ZGGG(z^_f0VI4sDacSP7fg;L=g(KFZ_l{v zbH8kslvV}RX)_R#k*4pYx^50EZ3n%CuM^!wg;3^w&B7Sr21t8-wF05=l)B%yQrxe~ z@5ENnF7Hdn>t`#jSa0q<8i{WjA+kD}H)1vH)HjDL<1Wd1U*$HcYzQT4?NQ&CEX@wQ z1J3vRkFf2Lp{DLzsuGvc%x$<%J7JOW4YupbCY26~~-v zzB*?J6a*xh>(hial1P$p;Ky(2R{_Yy*n{~3c%44+Ez5of+4OB zb0~atthn5p4I4=zH=(4fX}M1?iLeIaQ#1Ff7j$Kl^IqoV^$?%OaYNC}r;t-&s&Y8u z;2TNQ*B-Wd&LJD1sTA?xS-@Z>=*%|y<(TIGyGtt1fHzCIiMZSWrsGK8>rAS3usq*x zmma#NIX2-%DR|Q3*&!}~2LW?sE(%jZM{2qa1uNeAsTW6W@YC<^O&kHYh1!3Ac93M<}hVG}CDEX|e7zsgOu5rjuL zCf@2&1Sz^5;B&SiylG6hr|E><8j4m8WlD{#YB9N^mgE~Cpf<@sm?Z2$~ErPGMM zOM|acH>|d9Iq0#lG>aP?lA1c(omCjb#~((eq|c^7+dV+!9Zh%oK}P;&*NEBx)N`Pn z$6OZrV05=ibnK%`*2QtZGrgavX3A=#Lv5)-YX^U6xTMwYi(lzFj6}GX(#qUBL)Z-X zV4bK^s2-kxj(>1+O=BjP-hfT!B9W6z9J*>IW zDBRXK)c_h>H<8EM3-@T{^X#PJLxWP(B?~*H$qz=Ytfps4yimYx*E5jB8{>eHNF=ah zqJN~EGtb6Rpc{EFFQcrG0J2`i*2ilx*%qxulRO6| zP~iqX87DM4HyNP;nkbd0EjHB-(6vdc_5?fpwCV(A)~~5Lo0)(|g;3YsGbqM?u|5zZ zWM?$Mr`xTR@IV9=<(K_59B!ZN1HK^Od;ji@d_ac(Yme)u%I)aBkMj2J=akq)BB>6!PP&s?Oovhkj(28S-6e%<& z%rrFnzK_9be?Rse2z8qvN+gr#7Vc|aQUdN#YKqGa_!8WTOc~4C_LzACDTS$x+A5!! z$BX?j6F7-U>l4XD$*4Y}Tl)T>MfzUD-2gVCk&h`^rHuab8;C=BvV$}v@49>d6uDPs z6{$A42e;k@I0_4oH->gHKdQzR%=EJ_Ne)BOPhWWSt#P`ARM&sTRrmp)&vNr-8s6$t z#5+%j{*Eu`4+Z!~wj^}kQip+RtX5@1wq%(@MG0YG+M3FyKxfXGMaM)yfC9RM+^^uY zS<)JnWQ!>NdPmrR_a@kSd%X=ptBp_z)dB0gN1b8hMvl;hCgtg4tCky8#;HSBdKs@4 z0x8Q{#D6fZ6H^NW!K$2H2RY?mM~whrBOa_>ggP8b0`P|aur<*sxa%SJ%WZ@Ky8-%x zudI3yf_u=J1>_okVK}lam<2#<*FX$Y_ZFO@=~0VG&;}xXx6R%isHnZ7%=oy#^O6^e ztblvx2Mg}2?42PShj}el1$?=glG0-X%&XpN>C0+^NosAn-F>?guEI66Dv;OnV$pFK z+6k7qfGXaKS)7F{IHig8H6NQ;Rb$nOdsp|eBn}$eWv1!UMpR)YOJ+pz1M1D{JP;ilM7ct{xgp_~bu8ksv z=hh{kv@(OmAp#lH!mCU*If?oJ9F2=`s0?gRQCPD+JI?_Q4Y&T`@NIuFyX)3AzQ`9k z84%;uA5=AaU#a?FI^aFZ7N6_|8R;wvF)@?=IncV^GPTR`KsW;x1-ntMYSaQg9a=1w z72!uG=-7=Vx3;^rIOY%l<%*x?ZGZc#zV2(CT7VEB(A)|C|Ck^D_P@)ntn2m;TM}7x z-}KyfqT?I|-z@Y0f6fm%+`dK-$b6kJ1KF_PMVvP?z9xe&_i`3beD+pp~~9HH{||@Wsh4d{w`D{E|aa zg|;=oi=9z=Y^S0m4k%B*A4wS>%FB|VQ(ct{rbJjSaqU1j2S{G%P+4l)S0bt*yn7X@ z&T2y*RQjhD|LWF|70RZcCu2z_4XJK8hL_25bRD6@f;2ilhY9O0eF!#HFZ0!z;1_%M z^GM~T1BLSDd4r2PAf6V_6XJl&H+0c{H*YT=KH@B;&WXAVSIcScm`5|k_jdDr!!(>( zJgK!ialsqyrI1l@=7`ED|C9T z$xdsNisFi#q9O{~Q-T%Vh&%FXw0u)98DAiz%;TtQgo(fVt~q$^EomUu;de5I+AtF-B9+Tv|No#e*jVa3Gk@;U zck38!G(=4D&|Rj?imb{o!1nZkd>9zXoTGCrVfoO>o6ARMjCsMLmo}$|Tsw9TMbk32 z%CY#P5vv?pq32y%>_n3gDv9iWv&xUWxBzAd*vS8TK1TYv|NrTwO@p=Y714sB*6Mp_ z_bR2YHRv2|uo=Mtp5N=KL>DEsJkN0F>{g1((fEfaN&N@ZOFnVt&u^QKi1@kqc}R$s zQn%uw@2Qzo|M>WVSW*$-Es?dlq7T;~t<^e!cU`?y2+y-Gmu^*r;uSALj9nLG$yL7&gL@x5oM4qL!I5Krnf7YwYguDRG1Qg zEWHWARK|*~w&`@YSB@}o?Kg7|bNwDzucG~V;>%ze^b)386RQCvGUs*QkOVN1J?*#k zn0M$l>GQ3pQKu3Gt@a+8+W93g{#yBExp*wvm;9aUa7nBKdDg#G`BJQp%UHpyS!RgM z^z{@e>+`%QuIG)hDKhXmCNDq%&Q3iekFv}DZ509V!YF}6+R$oO6UL?J9&NJ!$@H3SQE zIomyQ_BY~tk!?)3MkNfuvOYLd`5jS8XLlCC1ZtlY*dbBKwayA$bNYLx7w>gIyu}L%1kx<(DS=uu@f;1J&sj463eTGy z+ZEm6h6IDGVOd8`^`d=~e!nDC&Hd<%`w-e&qNC`73W#eBd%5F%e@l$p%lZM$EkH5# zxi+5Vyg|1BmmQMzhyVil%gom3a;*^Ma(QR+bATFIqzFER&8ayON9~x{b(mwSe$cXhB{_x` z09Jh^8V!;|J3%x);`NE9;qn|AdAJkiLUjiD^j=JC`vLih<@Pd$O>nZ7&pSFcpZKZO z(M*CgZ3-xxnvAJiVpkV#P{Co~b!F(^u*J6mEL;l!_9;h`9DxlhNbqteh$A~Lys%ct zke&pk`#L-2UvdR)|45s8_RP;~DVhS>*~-IF3|X|js3%eT)5Mr7#c>9bozK^;$b2Z+ z{PE!(u`j}a9_|JVFi33oi}h{};o$;b$FW7b5ALv-7~zV<)K>h5jBXfZ25`?jDXj-3 zzM#$tl*yVab}ITwcXqniXj`FEs?DHc(3JFhAkp|P@}~Bcx@g0oK`xLM&3x<3 z6wUqr?0MyllP4rKVoUNoSO1Xn5$yPYt;p-Xt)I0R=%pKHH!V8IDfYB}FKF)$u(9;_zGsF-GA=kdD)5UuE)Xf8-LTNBDfr?k6 z9F?6~Yq_LFw`rN5dA5UOq0F2g#l1sq-8)g6%{443(u(8f z+5&Hq{xN{2$EkyOeu9{{DK21}gBEJ1F@-F4NOzM~0&-3a>d2Jca^?(89d0N4Zv@JF zReilCsi6Oh42SZ-fkC8Yt4o%~)IykTc115oO3$mPPFRZ|X( zxw>b3qd+M?7-DtxX~+c|58ka2kZUcn5J4QdCc$B74KuLzXeOlbu-0w7JP}t}YZcNP zARbj26Ue;{7ta33;O&fv6$P0a*}dKDU@G4z@sAQjgU~YAnSc!d3;#qOmB|Vh)$iZL z1S-+7RFT4CAV=pUIYxYa2w>X!`bE@+#R>b0RSrxdAz&oF;$WEsCu3?W%b`{efB*py z3ipp$B#Pm4X{et+kQwUX|3eqQ|64+GJq*+tJOK}w`v!G>^xo)?asBa0q@%#2Vu(%`%bz;>;|LZ$MK{ab!^0e7+>;?}G1q2LgGV8I(goWiq|NPzFvPdH zjUul#NjyWX!X{bcJ;rOFLWXCl)V|m#05Fg~gd+j|aITGiwX8m?I4%0XjGzK(;|$WeXOFDRdKnxGnj)&M*^Ns5C9GUM8I z*NczDVyfeKZDl5XXY#u_A|jrhcw@8>J^KBMXS^SpK|nsVgh*crRgjL$-f?a&>qM!r z#OL}{?1WQ($mT-)+&qdKQ-KSzb2O;HzlU-ZFurXUaI2)xQSdPOV;KU~?NOQ9Oh**X zwQ{2zV4^35STD#D@&^cyWyWiyI6yz+*}j5uW0br^DI$#%bzeM|$W)R2Aq(Uz2~%1u zz(sUnh?tm+zBjFk2ioYfWB?f#{C4M?ZC?O4unEM&j$$Y(8OV(1{1YBIkLrQ%=yiLc z+O4*K!$MYVZMGxA;*8=BfwHK*#!3aC=h;4tl!OT=Xv#6&pNsTHw@UFm-RWXZTr_ z<1S*e>D!?6j19AWXcbivgJyL2^5+j zx_f9`ln8Hr`dm|dEE!J!^*=L4f;2&aESusY897sK+zKuJwqO6~XaEF^ZU2|${r~^} zw-YD-|G!x5NAlkP{wII`#tirW`UOKcQ|&gN|Nmw6|B`1fRQtbARI0FNOv~2$sn&~{ zvgjrc{*>5F_$t!&e4Nkz95 zH%d>RNh@a6cZBtBw@!onk)ZL8zZbPo-w-~Yg#BX1h-rv11YEJNLpQfb&O*B+%u9HW zY{o;szgS|%4zitGhjvF;+svt(O{bQ7sP#iUEaNz2*RM#r(2V|>SpiuU^op&fd%h8A zEBmvAS9oxoSrJq_ZA7O`2ePS?XGP)|>4&8$RH79q4@_AAzqZcMe4+nao+kHc{u;+9 zxB(>nu8RY1CPS#zW*zS+d{H=9ug*GIMk<&AeNYV17-w_kF@He5GEu*m>_B4>@T}eR zA5(vEx}|7aW9Z_U1m)+VJ5;N0PF%LHBDnVbxo2}Mf$^xmCvr2Zdk!nT+;&6^3C5WZ zx$~RTH*nf>&Y+TgE5al&t884p=kl1=Hgq-(J~fyhttk`<72Vu6V1jR3XC@>Nn_!-dtqD&ESrP%Z-|JoZ=I7<4I8sy|R=(#b5kCPGuzyJW+ z3jhD~fcT;SVEZ};%AagT>)c;`@KRD=S(?4M&$FYvT@m=F2ED6@wg z8f`r>6Ntlx8$I?M^U=BQA)jqW0>_*}>*CAjdRhGUe|17PF|in3UC8GR{K3-FWwh}) z1?LQBMrM?+dbe5uRB%Qn;)^?C?@T`Oa6cBS4D~L=+9^4VfnLPlfirWUH@Ukh>>-$l zKGJy!2BY^?{s51|Z*W!r?goHdF6Mwpr1N-Q$xB(;CNxAoYznlBO#yv~t^Ni{WmoFs z>yHIYI$QT!lTm;lSLvoXnF@k5r$;G#T(S?UG&>r;!OmjYCVoO<$?Xs zo02%~4cN16LP*L7KTN={s1bDC{9bOcyfAyL(`=vwlY?j0T>q|0)g!jjdcS^g7di>}tb2wDBQKZIx=fQx|H& z{{UutzrEb|v(5W)8qq9300c!%`f+^UpuS9`G~kV+?N}3mG!)&Kt9f)*GQ`ZU(D*i^ z)a>v-2YK)$_RLs2Vq(OmqyLr^TbZ9qZ7m~M{BzOl0IV<19+ZAwFALJ`)OEw9w9=V4 z#0K+?_hZwTt#sC`>N|^P_G#C_R5cY(8B#1JC$!^_6R8Ky>gaU`x=}g=VBNjz`KD92 z;X#Z={Hh}oTXOA)3>3YV23r@};S>37D#{Z6-@$OWAdSu5R2_fQLWI9=Ygd#(yb-VY z99lY@rv4Bq>vZ7!HkI>?@-Lj~uPi7VXdrp*`f19*W0i8em1QKevx;vbOC@EHq342v zz)jQ`ed|2cj9GB}IAZi#L9=a#XK8vT1|(jG_OQieflF3qx_YSm6RjmXTLGwN-~evFI#LJ5APd7C~J0ufp~51c8I2?FOzaJSA- zU2et%pa39KmrMeGK7VE{EFbxQUVB#Tj60WGu0WHzG;n+&Eed_%xB5s_zQNx-gddKVw)p_`j0EPNIccP@U}~| z^?HC+b;`%h3NPn2?Oo41dcW@8D%bm_kacQ868Dv-@sT~GzJJfCpTrEyVmgx3E_a=e z72(27n$AEA?0>I?a-jEqY(v{MQKf#Kb7ObUFE4Gh*Gt#2aj1sM1)i(sJXyrRDCybN z`4=Ex@R=RS57%}=aDm~*MWXX!iZy!qyCQB!i)M;@xGlqy-A5J+B+x9zYOW18v7mUk za0>$nHKC+VghQhR_-7;zbLCt;Eg-m$Iz(EM@+{sV4oCUFic>Nxz|K%byy>q1lTSjf z*zg2V9cuyMK$8*-ko;dlfoN|+tFLhwW|qegS6@tXvS;Eyb?$#sXzB5ZgrJz}Qgff@ zKX=46l7%g1U&xk(a=_%QVVvq+&cx7+rkBI6F>22{YK^oD%=5TYQ$OAs8ZR+`sK8Y$ zbMMh({!4M>Td(}v&>Vsr_&-m+<73kS@Sz`fzYE_N1Fs%E2|$rbdG*iBCb0DP{jNVi zPpSQD4qR(O)U4-v{4hf90>>za=|$P|e;utFMA)f11QVXKOK+q$0g@8ytQrxSF=0jj z;Dh*Bp-mhuu`O2D{YQV{K}%%BHIpqORieDPLL?VA&e@K|R6P?(tkktWKEjxDAw(0J z&8zC~y+b>K>FUlZUz!FGFgKXWJ(grnOTKeHV`B=vT+9A%E%HzPpAIlcX4{OvX(;-N z^=)Dw6k~)$%#iR)w;P-2&qY2pI@uEaIHpu6!`7W%?;|wFelt$0$Xq^#-~vvO9|MGA zI@Z;=UW@4^&iCbdO8?6{=sPGdzC^m!>!W|#@RC^9^H1V44_n93{2`S?F4AmBDdD_G z;|kPA3Mu1{gsD%AG3lZ<=`w}mP z+`7%@OjY}GMSm%`WH%^#%kh|UbAiFBpr`YWotQ2B_~@fvo7%4gv8tXWZ+2Jhqk9oJkZ30SkNPCTL~@+b_2>MBs7)#qgqoNbMF3Xf91a?21&ty*Jp2lY@A zx%zB z8~~tS3*g`X|Mx4iah_X56!Bi*OqUsS+0Wt;`0~>M*AABL%y+!#6!?5#Tfti=KL9}< z2ySc9g1$q$;=->D9<%cYlUYI3YOd0TMN+fkDCGoIHCOew%EM)OM1)?E_ypYxOtD- zY&tJ#$(MGKfd1KxIzbQh_NaP5o}nt|queO)n+E#-7UH%G$s|PNdl&Wgp1(e342Ec7 zm3{O{>vniH^J(cVk%TezBdu&w{OuiNbYkec8JO7b1AxUz7REXc4>K{9=?;z}A88n#O|GLuGrAH{>abQl_{^)sHrEKK+{;toyF z(qg%Tep9evbw1EVc`pR*b-@^p)S&%cB^4oaW!L8U=3bluBF{{dwRexIN~OjX-!w{D zcs5$nOWL*k{KYo#K?eW;6L10h)R+GV?$I6q)9VErigi0bf8()yMSt@NWi6Mmsj!G# zpQiC}e|K-j5LrrgZo@w$dq6qJz)$S65##-PH!Z8hOfkTCvr#s4$_a7{r$XoKJTiX{ znVmZd5HZi>+_l5mN{~-A!4W0^oEpExc0Kx40i4&{LBf-eF5*kQy_D*skTflLx6R&3 ziVfHsO#nJ!?20Yczkakm*JWBXoRj#y;N*eHjSl8e^z2hir6YlcC9jXnZLK8Dp(7&N z^}%zX7|lw}5yYeI&5jx(Og{ZEcvV9?ES+~&4Utw<+Nm>>;N!Fdok6i5^r>s(eDW|Y z3JaJj)-6G5OKD+1Z*O0NEEZ4CKgp*RgtK^k>tgxQYj{@&h3leMCULzSvoU%Wm%5ZOQC?#gQ6^P~^YC^t;KOU(8|#!| z1biO_aebQQRUUKt=eCa##`M^;wr;~tc2*0Tk@>2T9JU$U!W7lt9k$als6kWt9%!31;>tkaM0LT%jc&~s4&kcn zS^^PbZKgZ`SI{==;m?6hrVrdRsE~pZE|;Lmd$d}_GB#y4B&y22!nS8gy9KU`!n|Wns?d>i0$k0Wnc~KO8F&?GM;YEbGQaTD^FE?Nk zRinrLMD<3Y`)!(=)}+BqrkzZsBZ8}|g_df()vJC%>i(N*@!$^L%H*}w7;5#a&r4{d zV+=f&A$!mQztW+qz0;IP0j=zM95VvfbtbNI%jmfpGtQ0x)x4!{po2RYanPNG4vT$J$Hnprc zZ%xyNX@Im$0b^kcFt~6xY=6Dt)Op8V2*P$I=79$vluF4I*xf(|oWqRE_66Q%5o?9z z@-N9UxJ&r{q-_egtbF!LzPo5&yxo46C^MfFWqQ(?Z%Em=Avy=1XC%+2PZ@g0vNLrA zMy9^twe|n;{oXSc9(T3)|6%oVhtH90F_1rf=`c#0$HGQ1HY)$mZR+(qPU4kj72>MV zYMR_vjhn;r!ZrPAR{72PA&=Tf=0TJqT1Y(eo3%Z!P_GQ8e~%D=jUG5C%yHFYyH1CpN6BsXg#g_ z00Ax@Z$0=9A0?R*vM1lC@l)0QC=!FM^uMQVcf+$XuApR;0RSZjLREeN?wkM}rcPYs zrL53kGkZ{loc%p=Nb3H1-|}@+j-N;~|Lpl%qPD^<``AC{on|AJI2h=JNg7>FJ+)q0 zcg$WI)L~X*28Vuj>HOxT1Y*3jLZG3s%NW>wG#Mn|6$qfw78g^AqFcmS4>c;@tVsp} z=Cj>eLdgl09@!|QS$Pk#;vVb1%&eo-nPo1z?*!Op8$}Ck?El&UVFzq5q$7Np}X&` z4-I!V6{_my38Rop2zLR^G#Di95UXtn&sg}8l0rzm=0#vIACt~~=&#Onn?T5kriPFOh~_PJ8nH8m3aG zt#!l14yv3;IXrsy11S=qB&Hta^}bQP&f#l!C>F^^x|Dm=3?!zLIJxvi7tOj$o0;z5 zF6l5X+#0ptQxgiFp@Bz-%Ud1}xR?e7x2V_%;4q&8tsR6xvVcp5vt$c+@IdA1KNDjZ;0waph&-nl`N1EeaxL%8VZ)KNVsmDxCp! zjOwuvOg35076VHxXm;2FIIkmg`)fk?SJqziyf*mNne@?uhN_Z-cUfHZn{cpstxOiU=GneNGLXl4z%6PFj#0b^Oz<*C7;_UN5rQ;!Fhod#ix{UJr;78G(r{8q! z50ec8kQqcK%%3#2lTZ7**pxt$K9eF25pXLTBA82E>q5i`hqEAv{u_s)!&~uMOGEh* zH$f^MQU!6$N$jHJ$s+^_^MjpGM}bWMZBr}GBCmr{qvBByls@*GoVFCLQ}e0k^540_ zI~owN>`c#7X;c&g;PdcN`Clz+y-M}vl1&ql@fso{S> z_Ebm*(4X^Lg~DL+bq;Od&Kd>dT)?4)};3l<_yx=6E7Cg0sUCD%)RT zJUkZ$>_!F#*f~TSwdR*1@~caA`WEuajlRTnku`qP;BW~Z4Y={+-jQU!gcJq+3@e&7 zr6zcTA1VMo-N8FHz&KRy5ZhJV9zBm8+5@)Ik^g677NU?=Yak4E#4G&il-z4gmbB%Z zv>~9{x<-B`T&?xb>UjJNVsw0eK~;P+Ja)K0(VEl=4e^o^)1_^E6s$m{V#n0~Eaa%F zp)aB)Bs{EbWlQ-m%3W7)dM!J{V}pQalc@TP@weI>5IJ7F#dZ!ADxXjZh%x088w(I` z8MFf&Q1DSC9K)%KpVXUnI$^51pNzJf@Ur@}SD7d=%vuK>hONE!5pL5EGo_`rSnPl} zFu#&#Vp1#o$3jhp6b9FcE?nYh(4&oA_zT66OYFL1V*(rgSVzOIr19zXG7DV0(sDsn zZ2Y$DPsw|4Os)k|=aQuzee)l$|tsuickl?EKhAyPH%Ky=h8 z4gLvDoYuQMM#1-fTR-B2ZZg25mmhMG%a#Gjzv|9!;8WpoFG{yv$b=YBKUMdJxZdIq z*b*|OdD}+4W&6W3Q)5PN+}A?c+zo71DJ?Hcs%IYN7Hfg)t&3y&R^F(tfLUSo#YdVB z#Mkxl;>w+mkaJFtsxOuJRsV_-qQs*w)n;moxA<>KGso2u zdrPI_DQe0aw6Wm>{FW=%#eFUZo9&q;Z4ZoEp(?3XdYc{M#+RL830h(y8;gqnM?=f- zP9;+N%>xr62G(D3!#pcem3zS^aTwnb5L+$gw7!hRqEkIlR0?D2UGqS|-C}7mWVM0! zKi#VtAwsFlr{!?)oI6d}1>bKzVhCVgRKp*8;%cYZMU#gtYUBd=KFi=Y3^=HADIUXL zSq*H^gzNuHgAfUWTn_=o0N-s-2$F*rg*JX)Qw9afO?AG!91e%-!!YGl~%W3wsjIi%sjnblJap=iE-*KlJT;sQt>xj{p(DqU{Q| zA&3<_TJ+pZ!1ANQIOh)#s;sev@fAs(JGs`(mDGSw{Dzc0q1^yM;3G$?^53)L{ow~) zX?Bo~w#*B6a^-i=LdL|)*5@?YwO#m&ebV3IyNZwLJ|dLAo#Ixdq4h$f_%AF2;)g<= zF$T-=C=eD|0kG4Dj64g?2Ou%*m0!37c-Q#ic>i*M;DO;%8<&tYy8<`K5WgCxK0MI2+u@v*ZyOx}`{c&nyR=fH)j{=O&lN2&YCH9}g&_|=%Fo%t zd-R|85^$@Q6x&%9a8R9bgij-dK{zMI8#33_0d+h83f-o-dgy55;roivn0 zNt(`4n4bu;6ltu&6z*Q)Qk=nIq0IA!*68^)I%_5?K`TtIFJ1~EF`%f9eJ4CeN+yDC zX+bEF5oOcG<_k1+1+q&8cc*db6w`JsKo*LO7gSa{)Jx8 z$7YUjm)2XpdF;nyRXiVZGUG>Y#ZouiX9sEI>i@5$bg4=6m1^9iqQ-_(IP462ze{xs zFcC}S&++8i&qe4I%Yx7C&ofD-x}qdmHj_f{(dK5wIbN(-*ANX+IXZ(Nh<|qrDEhJC=37+F0HgdBU zTx9m+!SN5i3ENjE_rgjTPP~3&%(!Y}i4_|-DY%;OSCTcqae~Zs{72?PjVuimX1k7^ zZ$}6+NnxJI-8S@$HA-OGc9VXg_Qta$ucV$F+g+w+^S_zb^Q^6iCC+)${kQvexx&*u z2k=AQZ8c;u;RIg`Xzr9+gs@^;>Ai;jNbKM9 zEi@|C-nKHmd3f>qboQz(>GfZ&S`rzs%^Lu- z##GdPTp~*o{|iX7s#X?oraH&m4GvNR!(6G>nj+)xNU?PY`-I<40q0R`3ZT~3OpWFF zQlvozwXhFErTmo(8|#!x<$gD`NWsu`@6@oOtshXIfiGH*ha#iY$>2g7qHd0$zs;IT zH1}Lb@U}Bw5{%Pc1cMGdPpdZ-y0a0z8?AaC*Yh}%#+=#=Kgu&&0Jg~)9PW2MeB$F8 z(O$A3HdJk08bS#LKd+UI*fs!=mTeNWo~ z2X@Fjl(TEj`JB69m$4G$7|_l4M$;4NXV+_#9sK;Bs*UAI4GGO${rR2{9+`6Ds&pp3 zE5ez7KHMof2)-KA#CK8M3%HSQ+P-9|yrr$IIjc#r(`ueir8*4zuoM?+$7$AptY5zv ztWh9E4#b?WNKB#h9H52M&_)arw3-XiEZ8HD)7#n>j|$TcKW=^I zn}S|x9fTHphd8RcHQJvm}lb z@}lr;$)-Z3<6g1PM z1@yK_R z+)itNs{!yc$2+>&icrM|P|U0b#!;kdp|DAgeih5cybO_-%NI0HW|yNX zDm(($CjR0goo4?{{3yF@nA7Y=E zHG;hdyHyGRt9DHrGgI2`){|nO*uobI;$Mo;dXT%vbaUK*pb^J_6&y=+dBGx@!$9`S zC^G=Q^+?9*m%d_>3kaQx0wl9Nx5|LKMel6wIbEyte))+p&`!0FoKYJk%4x2iKM5(! z_T}xa-ZQ@WdyuO%E1`4CZPV6b4K~AUcW$T$!P9b2seSYLr zt@G@o!@2h;Xu6trsT4r{PyGIfeX~#>tK^r?1=?X=ZHL$ zULfhE)$ds$TQX~R4aGJK5%D94T$?4L5Jw@DyMgOt)D-ZXOd58&6+qTj2-z_XbOaP zWD}{JE^XPZ(^5{#NdH%_Czp;D2*K+orXQJI7dc2TlU)SZRqX`jkR%K(6B1RWr%?Pe zg}N0Hd$OS54sV|S#)|DS1nJqBZr{L&z5~WQ-_Q%-(p@NJjQ~*)7mai54X@s7m#8^l zT?iL(kykHHz+UX*u=d9vuSPy$X>HnpUKqHcV?@*;`pT4Am%l=lSu_3gPIzFfjSKtt z`E|({?erm4mf|n^u+uC?0zDhkY}LAiX2k6Cz$9gSIJP11!GDGST!i^LNfCQtyQ+yXFTx3dOS%)It?mn1c7T+g2VK|U>Y(`h)bD#`dZ37WAwExd)LCsvpOA0Z{4 zO99bkd%*&3Xq0P0@aD+5PtkTpQMDl?=3n41!9XAI`H0>kx@sN#X#P46kz)iv^dU5@ z^9mDukzz!i1>^d*cAWS;rl{TaDdkyf^#)obxmaWgRf$^ z=$!>@q8Lzy!RZVv)SK`(!5y;!8!n-dd((;JYlEY^hs!%9G1rZz#9U?S9kg?#7IVL1 zpsr9I2EJ!UkXQww*(61KLtaBo#q@oYxTN$ljrVExLe3h(6fxuB6;;KIL&>MEEVsH` zyRpy5B6zZUvO%T(Rb9MJokJh~25Pz)zvo=P(V3B8JBT6-Zllmjyj&~Y4OwUrXLPV# zqhU zgWEj^t+&gdiT*)lzMPT zV8`2%%M2^eOHW9YiHuUMbZ^@esz3JqUf+p&{5JcZQxf%H4=4r5^jiCdp2EwjbFGtF zgs4ooSxj+0GaS>3zuL-D{n)5uyu8BedPIkN{E(bjgDCq)c4iLHv2Iq#RF}fmHaw9o zL*U5AF(60rt5#;zKZt!`GtBFm41m7E%T;}3bFv}looUfr;bDWag!Z0-KpYVeT)GRy zO^ww^AfqQIz~VSyqqz4s3;X?Oo@(v&>NOZ9*iB=30bZtVG?n%1h)QN6N~c-u{VSW* zjGg^M;%%FqmmyNrU)vi*cFl=`yJNtfJQ1&-f$g~i`>eSB-`5d+s$FUQCRNMK@=E>& ziH2x!b9Bez`5*qpTk?X zjy-is5+)STPrlVvIU(BKq^Oz^&o7K&82@4vtijU5G_&OK#79A4!=^iyxS0D|PAC2P zbQ)RqH%Qgn(jGJYreI9FKQrGOn)Lstsr3YCMW(B%)~j`&#t*;<=L)e@>s)&CZjppg1yKqc>ng zMN8W^cidm~XL+z~Bgzo z=^>BjdBdsGKXZ@ZdYm6`DC>gmVigOnApCGS&~7ib!`Y*$!dvi+>?E#s zW!hFJ#oA;}zQ<9!>NELel?;B0E{?2)?zn?{?+b!bM*4}*rc~&nli)bFoFnMt>Y=|s zk#v#n1{=abdEzT}w)Gxe+F0aO%^s%2rCr2S$=Abgkq3jXR9h}IQGrNP#co>#ZquMw z-~zy?VVWPl9$--t=7uYf>jQ;cL8Q2HW}?vtO8$dC)~J302H*3A>}k|%JlOM=+VI; zD7bk40JT(l1a!sTVSN$eox>@We!!*K{?@OPZL8{7=qh>UBjF^q`iz=jNz_@j@S_=0 z#AH8l&myP`^}}oEoEIYuJjV}&1Drd!fC*vPf3ZnVFG(T7lc$-*R~yFrIyLDuV1`&t zCV&2FU2ImV6DbGelK{MrE1|4re9!<*?bfkf;I)O7IsBN8h)DR~_%4t?5ZRQwh~)na zrX`ER`T0uTeZAO=g*C$}Q2>9?eQU#f9`fslbj6HQKyn*kacGvx*TwFLA<3Z%{_8eO z0V}-QF~F11@_q&yTG2BEBI>1eXAD^wTV~cjm}SD-xVbzqZ9&(D07MX+WDI_(O6QZ+ zpc98rzg(nZoGdFsaYZ##PntzJ)6bvsKx3hx_ZatB^PcEuV|mG&P3nZXL-%K$A4phH zWbWaLmCc0!=K6Ie7vH6l1$6Ze3XUBu*QiBm02K|&NG;M%VkvMQ{~z)}WGclj z(`sML4j;kegyvou(JAg1Y1L*o49n-*TSYsUjS1JWIKEF~92O?D{Q&iuaMK{hnU43$ zj*6PwD4(JVea(^7TUQ>B)}EA>vDQBlQC7y~ah!HBj$a?C&qzLU6h zxI)OdBsT9fiGL|iy5kqL(wgZvHv9qF2Ej?uqTn{?4)7o^s>^;Z)pilGm}<<7hFlW9!E=( zx@xE2)1G6v*x;>c#B`$DQ4#}(9(fkQ%L$i^r(BnY(TVihb67Nw9a{C8rS+$4Jf#g( z3ybz%n)rKjzB^y>Ly%7lUP_iRepK_I2jgdHjmUD^U7e}MMAWgfm`o4=^`tDwP-4+OFjn+yGL3%pZLwO^%f-GtOEthOZrh&iyQa36CeUOMSN?`A$|_f{3@XyE62} zgBTSf4QN<0;^Tshenz;kb7Ow5i8sEZGWC&pW5nmv>`d2-S!Nkg>E0=Zh+sGSp*s0` zpD*xjbHHPlHs1DE9lwy25QH04<+ck>D#W37`%9k)xT%VBAu7IB>83e?wT3YV?ArRv zPdXs5!6mP!ilb_YoVYn0Py`|4V3{9kaaH%7#l*B~1>-E|Jf7|LnS}AiF;tGMYOQe> ze#;y>52%gsUQSL-U&~O5_(?!N?|=oia zUk%5^r0;;`O`Hp!hQp2G$+q0f%zJp)o3q~j1_$PV{1QvfE0JF6%QmVo8lg{zW^7=r zu0;ohPp%G0$E9mzlr)M#Ynno8*Djsm$zM0YABJ>7RBS~U^5X>OWf!qJK%(Ea*?d%c zX4S^ja<#Q1F9+vs^Fs$|#r+~=nO$XhC}_av>T%e9$kqcetcZo)LCUR7ODqlIs3WQI zB8Nwqub+(IyYnrA3P65|B=I>e*T3yZ|9uyECDGf5jdX^wO*{B#Ks_yC8T_lZxOmz! z^?l5_#)^+00?56F3_7@VY{H+e1N1K>CU$FFkDGi6&N23#SD7#YR3qwPHBdKkOk!uT z=QM3{u@8R`(*ZDke#l=w2#dksMNqFBaa_uy^=S>`w*~U}z-*6#oi|Nfv&@E_+C|;GVlGL048RNaUWx6iogFMjHtoeICK)-sv&~p z41?J!9fJCg2pYnXH>MT;^X?#Mj{(Sjb+2Ejm;mjK*8|<=VlDFd!9N4YpHu;=E~Rt#p97(QCypJ?Yu4!XJ|ktCI&FF}(vXYeIC ze-;y7YBhq)rSOx06Be@5GtlCtYrMCG;_NHRFy7+jV~+MR(E}lyHT?-yHQknNtTBJw z28a>3Qc%)=Ub;Rj@rP%wKVD=qtc!?B>2Iyd)e%EDWA>wHEDc9x5BW9H&6fvmuUJ#& zUrcfiY~(Sw;TQrU;V~DQ`d?IQ)&)(~P1h87=X>{OM%2KNegdbX9|tYL*ZIxjSiWU` zTMiro{>nAX<)KUb7lyFk^1utV5v}ueH^Fnse~{)n%*4||lPRbc?JBf>`F0*ISj`H6 z)lo`vg4%_F7-f!|>yjL62Ul#V)T2mN_4GKvWvN;7mOv8<#lGJt0+Me}DiN96iywf1 zk^`O)xs((J?IMCW0Y8^4qJn3{PE_h|CT-iB zO19eXhwaorZE*y6qC-_ex|>u@1z;tpx9LvVulPvk?aE%k*W6%{jsO19bBcLnu9?J- zQ1K;p>cuL8_sFrW^U`CE2DoRKc}`ZVU;X@AbLqnnW7jeC zT+MaIFV%cyeVE8V&haStn_aYsW-0-Yl#TjSfePMFEa5go0NUqBe1#Am?rL)Qh1`#| znPy`4HFFgj^wL2ND+k74M2HMCG~Vwvvei@4Mr1zYB`c+LUYueG51TRD|F)91N@u`- zT?Iy6KY2j}NQrZ%H(aNZywpBA_6QpW3SwVb-VXz zzmC!AKyP%|Y2Df^^}*$){Suw%QB{{mWG{+DIAvM+kS?;)e||aXuoPCqLzUHEniFaXhm;BxPHS2TZn8{tR9dmiWpbGUD$!DTLBh)W?LB6VES?xCQsbKJ-FshasZ~L-W6}+J`NlA-3x*3ZFMjB>f=IseMtS{{M`N_0H#5W zQl8$5-qH0!>Xmn`dFnL)KGfDyJgfQys*k4-oJ_i>2&uj^mOIG)=f{t!K=?nEeX-w& zlr2QYl-}|-*m@39`5%LOjz-x*dCwNOn=;I}P8b`b$6LZj4n()x(SVfb7m8|W=n6z1m{TPVA{1f;skR9get4H$ld2lraIJtZC6f`U8_qKmfa zMAWm7NRF8H5WGZ$#&T^T;ROVY1OkB072A2xYB8>aw%rknnzuuL2lwd!+;G*=w;qF) z-&u-wISUj|D|oZ&t9IM2yOfTSTlW;sbvxg^cj8-i&>=6wu<{6R-g6A`u59HGau*tR zs-nf)iUTS7??E0Uc;ldM`ql(kehncHD@ysQFBPk{@&6hI-T8@cBtj<&-oOH=Ie+3c z?=^&46@Vyk=ch^j^-gk*6kw{|!obT_bBcGCC@VcOViioaEWE&VR|)%c%?UuH!D@d+ z=5k$$OM7Z2>~C7JGIsY6-=XhUr`%?9iE-57CJ^R5dsi;Q-X4&kVH44kzTf`0@keb+ zZKmuQH3${uB&17J%MUC>Pbb!bEs>&4O#c(tk3)X+eyb6h1py4066iw4F99zD+oF$) zBj;KPo{f}&un|sj9bSIVP`Gt=w25wAC+saV*ClvgSGq>z_Q@AlIJHB`iiHcBlKUW) z-VHhKBmL!;moG5vr|p=!7$kP<&|uLUBQmt7eB=t!Miba^uzJ^0LK;838HZOP1WpFF2&e^;K92MGSyjO>k8M6BX@iwz>(p?#!npjlJ>w=;-Mu~r)o1lCmxIzqj z&D;%uY@=l;I6JQh!UAh$e5>)H&5Owj?R`9vrbv~!DZG!^o~Rz%(oIRJF_I%SpSx+- zhTHhaO{{L->bT0IF3i2V)YFSU6OjhTz%KlR941;U_0?&3F+4(WpOaBXVx9pivcwoU zQ|2u@wv>#jJpy@MGJ$>#(*#xktaaH1W|h$Wk84Xz`OwTu=z72#V}jk0_pv8}3GeLO zMkf)ZB>)G}Jf^Xb9EbzPUPtH9*uypj$cO&S`A4$ygb#5RdNhh>U|i8qjP|x$KT9Zv z)~V7iBj|bYYyrgu^OB>E{3jq=$Kn!v<>&Jx;I_& zOW4SA07SXkPzz)a!K>b_!zRX(QX}!E%X2Tvs~|<~#J5ZR(Ms5TSz>RXeGF!nnZH%| z)H>-w>QuE!ky2g9TN8;zY&Zh3yu%3&BLUc4*r~Z|)bw5+)o;~3{tb(-bgA5SWf1`g zkh;HYZXsjC^z-_`=8com%sS>;ZPZX@w~MooOb!*Y5Kh4+iTi+>robCs5J?Jb z-)hyx{oO7~fHfj2_U=piU4vQ8ChfaSJv~kL6(fgc6X*6Ns(F<$-JUW47?^%xP!k@yd-TbzT6X!?ny|FSzkUQJz2@Z%B zn&jPdSllAyXNpOt`sU#<0mV_MGS#yr6ASM?H}dewi~@Emn?hr?e$~)?qBY82r&&M@ zVR;Voyi;uTRb__*+Fx3ZKX#rF+=Yjjcit0-9JwICWf5)Kk6XibwBQZ{dv0NZz=Z&G zU@J&|a0k~m@(c2p0ks-JGJ)f1G3oGd(#MWpIZinpdTKu0rSFZQ7+N7%JxBs8S z1C$r~c-PP<(do;`Aj4u_k<7yVrZryTI6Dz9S1Jo*aj*Z86gs3#vh7rDI1$>!WMklG z)#A%)xbi^KtDA%Nl^p~C00RI$eyv}|2dm#=DY(Vz2jZ=AIU{+q0OxBvs- z?0fb%FjUp@4UM+{u|4X`x`zimc8Ob8qK0M{5Av!mC#jYf#IEUe79;Dq;MCt0ytHYT zX&Z+n^KhIF+1e2r1~60)#j{ZdSNeCzHTA16upQ8ud)@EFfI^a(GDZ9ajFMo{=`AL@ z#e^3^hX2Rz%8c??HIc}@2K6HK#q{KGO$E6Sm(p;FuRZlD4&gJPt=Edcb$T|}bRbk` zohx$@M^9dFq7!NZAhMiH(d|y9p$;eA%{QDY?w&!yoP(i@4S3j_Nm&X%N@(J|M)re05iznl^bg81t|$SctS{q z?QQ5(mTJY}yHAbQH)lp_H9ho$kHl6SZhFHzRdZDYkHE=q*O9JZIG;jke2%d8O5Am6 zj+uG@VzRJm)uZ@^b)@6_0qbC`p$yafJ*%J)%h@&6`xNDn!MX9EwNh>@N95>egE4Qq#)u_;Jf?*TsyIu}7Bbf90UNX_-ipn8 z02QCh_F#laHi-z>LmXkA(R0vD?-#?QHV!>Uj!466F+Fl@F(it(yx%Ej`iuMc4N77L z+j{iT&{`^K-_D0!L`z3#d%oK|FE!qBme_h#?!o|!_h3j%~P$W5(_{N;tnexN5^71 z!Z2<%zXql9aVi?J=UEsUfC7MFL5%MW8~^^0$B$Mzg^(Bi=#99d6)lzw?FXCjlVZ&& znAX6D2){Z#&OljCw(E4aV#dqZprouWNP2Qp@VUoX+u$S9cZY~QHNj~Xo&Baw#yN>Q zA;u+j%Bk>%zDc~y`R4?NEL|e!?S@&qx>XwP&hGU)mEpi3Gd@{!v@H$rDYY8D7Pmv~5T__`fdfR|( z$l%lFrHen+UEF&erBeJg{7my_>9(qflvLSpaz32cg5W-_-_j7=2zwTMl78`Nh^X~<;Us}I(a5oD%&&c@d7rFE*xI?Q-3VU_NYOc%kM zZba4b$E!dOB4;yM)vk7vK#g`O9P&bSI|FkHfz_);qn^_nIofO?{oSKr%DvSv%G7%! zj@iXa4clS7OV^t@mAR7ZuBYK(|67I%1UUYj@mf3vS=N(tG^qoxU_20XDNgZKOy)LT z-49q>jDY|jekHAgM#uFP$p>`FVk4q6mjJS=j$wX!^Yh+5688K8cY$8>y28Oq@Go$n zb6{XW?g4~UpKA*S7^{4o;d^cY;URy%BX#0wfVt$j@hl>MP_NG-RgmL_NZ9zRoPMW4 zse##C{}+C_8wK;XMGo|EWR0f*bfP#llHE}8Bv&zc;x`$9$H2ypTSGQWZU#jM#faks zvCnN+ib9HaT}`t8|80N}mq$JUicG#EjA-xRn{swR<))pu#tH2YnQ1_kvmmfY)K(wu zoAE|#D`D?29tEs)>80T3A`Ss-bQjmb$mWk?QxaujkQ0&?GoQ6abpk$rSUS>feV{ zV&EeQ=KlAn7mX!O=l6TQ%JIrvBDcp+Et+3q6-Qt36;Q#HK&o8v;^&5uM?@X~kh#j| z=)4x{ju7PJabEbHW#U0>|Eq*0^RYWr4>%&CV3+$n2vR9-w^_-l_FFBnq?%l+xXJ=# z4(~LNMmxU+P0_TJOTq45^ab~Et-Jo@{Aq2vUSuf5g>EeTSa#r-t6!5zY=m~srCo#C zC2i#Otfj*650n>b^k1bOlpGbi^o;H_57Q~sNu6-rz63l?9Qd94)eGO87nKZK-L~>Y z-9&08XEoL*+D;{7ZQfgJxR`YQ^44prEr#4G;DSX!%8lmn->Q0sA=5Taa3t-?1dsC$ zNij9dkRf?UmRYbU9N9?{wPHs(0UtEfu?F9H_L0&~DJd0mY@tsA#VTP<>gT90PDuo! z1W=&vhXY(|K3bxU?E}f}sS5x67f0d@jB)x7uq*H?$}hp-po0T>u6j}-SI4@O20a;Y zx20!bRq%(@5alGo+CIG7)6~7ls!UCpR}Q}kb>q^d=taUEZ4>vAn`%~OM;ln7TIv4xt8g_ zBo%$XD$c7yJU2wG5VahX6Ejfm35bQUgQ-ukfVl2U6~(@z9tV=DdD~S=$}3a?R-5fp zN?T+c2OP`^`JR0vC*U{v<&aM>`LR)EK7QmzuXZuEAMWncvWd>icpkX=s_7T$gyYJ0;)3dgz>ddSm1znwJ*e;Y2I?qt{(1C7 zBgsc>pPPq1L1Y8vLojCYVJHoFw_6Fjy3=Q-g)bWVZ@!tj7(rwuJ1etN>*Ae0Uuc0I zOP*0yt2{5MoyR7zAw>Qw%JKseDYU95P^&mX6hn>iiDVvNTipfzN9e z$_$x(0kC`lnFmZZWZbxknWUvBcD{^&tC%t5I_y-+2N9oGYfO>%HU&+=xXFqNh)Q%Z zeabzh-%{##BiwD{{>{^>r``CM#<5+^<(CH=9xJ+lOk3C8S&N(tmH4ebMtKJaV!{Cm zKM_{8-{HRp=C5jZVGrldSLu^CaM+{;C-&X8kqze^`l-*p2wbu=A(U@|ma`gBKBh>4 z>-t}yFRREaGNb1SnSk1AHn0T}#7S#>=YX;}`r#y5_faZ6o$WlK&hSbz{a=-w$Jvc! z&X4I<)5`y1w8Z{APD&h@jDv`O~9_tWRVwG;1J!SBZ2oDmHfat zPqQ3E2}ngXHck^5U>v&C9`JmkGi>g^yU6=T|4~ofA@49{O(6b{%x~b@H18(LeSr?B~w_T&ecX43Si*biIIal3|u33gB^92tWhHu=4Yu4_Z zU#zE7-~m zio|ZD{TPg}FlLr>h96-RY`}cBP0n$HFFZU(ZK1$)Hddw?Zl_AJ5a0J>d79kXla?7c zQB92hyEQ#=LWXCKh2M2lu>%JuY_5@fU91|ZH2Y+=uh!-l~JA*P6bA# z?Bb1z-r-YJ{s>FK@>!*$2*P>sgaDHxgb*V<1)Tke9u+j~52dOcF6nwCpWgrYx4w?2 zU?Hks*s~TliU%=}R*X-)ks#(G*r(0$c%w|y!$d6MQ?gK|iKRc_2MQa`x;+y$%O1R> zM-j-$_BsZ~OM|4um>?5N`8fEJrng7~o%D@G2Q-1*)(~?rozwAf%TDC&Dj~bVf*5Qi zIZvoSr^WVJa;O0&j7**_GaFi<2|-YRpTS~bWPnl(m3y3))hdbzU9IK)Py;m-&kQhLi~eCC-Usk-XM(Zv~k&PR2dj?zQuv&erzG=Y81Ne69}LoL#TppBzsne0ozymb8S+cVj5$znWC`3;pNXeZm?#Fae>)H{?KqK0W*BJ5 z0aOFQLcCY2>ZrOQIfxq3(mvdf{9h`bM@1- zGw|g(%hdTWO686`y=-l+7PAew%@Q zKwnj2mN4})cW>k`iit~odmBgEM7z=cW6st12o`LqBHsArEz7>a#;$YH*&Buv)fpYb zx_NoOZ-d!dKo+AuzaCTHjR`DIsBm)Hp@Nz|)6*nqL%@{Kjj?-`<9bxVh088EArAYj zjslaPn0td7%Ao+;)SiHOgx}8rLnteq&Bn^F!=mJ~fN(Tk8)hIG+lZEn8`(iDt^-5n zzvwwtI{N)~?|g^RF;~xe9UhK#^Ngs*5Ct{%P`399*k+HJQxU~Zz!Y~r@cX#i z1Ht9qFR{0!>6{bkQ2fzF7c{X)*<0LaqTu5X07UUwMc+G|azN+g;{V`t+>lq#C_2M_ zghf!^I_fc~Rr9^*WfGeS3K0PdiZM)e!?$8~ttQ2+y{>9Qj;QG0t$K4P_A(G9QNJ;KV34@gj1b#W%dR>}+M#U6aASXYTU9B zoOX^iI#4qDTL~7olAnH?YGDrw>~pHv)7yme^QeO^jvPd;TLKZV7bl8Y69R!^M-KZi zlA{U-Sz2sVY@l8#+ zPo=k!uA~QXmRto^hA@x5Q)0=D0c`}fs;u0fdE?;q>C%fimo|-Zp_s$b?Ly5 zc|RSmchJNK*B{4~)qhn3f?;uHq#p-9jMcr_*H7JumKq_LN&iDr*&!~;ckTz4JRyui zF{Y*1`i|cNOcXZ8E@I?s0x;fMQHMI@_SQyudSBZ+00b0%CIm>f`7>Ly(s^INX)jj- z5-(~5OpCq;lRMu3Af4`ak$f$=5Vp=m)0X@@RwMY*S)L14 ziL8~?e*(0LY9S-qU;a1z<`a|zssvA!1`dfx5yD`SxN@6d?l@kxRG=(VLd5zIzQ3*< zfv*!{J{Y>`7T&Vvaz7+Ce9p8yi#~0omwgm$_B}&TGc1S1o{|hZ*;-|J(HRV-in=u_ zCnXdm@kbpM3B;*<*IYnI@5mr))|L!*Kk3x+1$3O@+0wiKYjKBKFmMZ2U(1(hIdEg> z?%Pncc~hzY2?{Itu6}O*- zGTZUMo)O!!1sSFx`n0F)+@gc`<*634oSc&>%|K>wmu+XG1{t%x9svV zfDh;wlpgLx^CGNRaG+1gQm1UPRRFBv2@!X?4WHY2u5D=kBO=X$CcIlsq)|WUO~!lL z0W2U!3%yDnc{oIPaSxGW7bTA^ITOv@#WUq zSzbDr*a%MD#r=ydFno@8U?wQ+mi_^(T&as2)jkpl5w{IdnhUfeh+4i(5%=%0YTE^+ z_fGWIzOUk(6X5GM% zjtY&Q0!M)WfJ~P7Z&wtJ)0Pejav|()pzgy(gG+&4Qu5JRFq$eGqQ|Tg z@h#FR*m)?L7T38p*1e(&T(C>G!Z1!TPr?Vcb(B>hv~H%aAvKF+2l0MOWtEAZz?jic zJ~{^p;a9Gc8P}}Pd~;L(r{WNXmk=lqwP)&kLAR=bVviyHE9r_&>%rS+KT*i_^r_WX z*9`ZtzM#1rv?ddx zKMBm%m{_Yp>5Yl9Kpv4wJPhq72P8~~P~gM1AFd(ZhSG6h8x6X{0#t*`4WtlL9bqlH ztHc~8>U_bu*ho4Bk1QTRux`b^s)6`PLek-xaWf3A>$Z*B|2CD@y#iyf%V6b#hnpxG z7C*yM2Y}GorJWu#CM5fw;2r-9dp9W<`3o&CQhkkS2r~;$zx8_`?z<_Je91Osv(WM( z4)&H1WfI%U&BZ5QZ^PR{M=Uq+fwCIjuWLPDlgIo_UcGa3^XQcyi8eYK zBiNtj;4kB8Bu%=V99Y41an z6s89WL0L+oM<>~Rk4*^Af8K+~tIVF=ebFr*n0Q_oWHx4Hkrnsex>IkKAdwhE& zX-V39IU%j_?;QKuHd!|_)7WoKiPdmLOqvZaHGF!DqXRp9uPf-*YG5LwRxpd?knM8- z*Ts}RHIC2EMN{%wrIyf*{PtvVep8`(x;(MMY`X^qv`iXIoZ>CF-5uI&0<7EPYzr!VT}l>2 zH<4Dm{DP1+h>dFC_lif8m=mWXId^+P;v`y~kj6N=SZ}UlLNu;?BhMwN!Z!mZ<+7(2 zU4b%C^*gp{$P~KJA_ZT>&X$cn@R*snaoUp>bI+}d!<*I1CYECSUBqz>uERH%vzJwO zjokCC9`G8edh>C#UR4abjf*j+Ij+4Zl4fS(#A3?!ZbEydiKCej7W2jv$-1urac6<9 z977^>P(65)4mD@=nee?k_m5|kRuSL6oJC-A|7xawdrM2lSRjE1-X<3E;VqWo!X2gdba#(b(F#QUHB z>QvxB_Kn*I&-FIK9S0q>J3ok6FA8>1gAN-&pad(n&3;fLo+}j%Kp&c9K-9H)CCPx$ z0}Cmgah+sR_|_4imn`!&?}fsKin14@KE}(_{7ao|&D4K1%!zaQyYQSy9~yusYfkc> z@0vM|eqLpTIX31_BFc+%Sr$BsYqf}XsP8DJ-fK5C8xjXd(RIME^mGPR|bl#;^cZG?JuXhermDsIjP9 za)de_Ax~XpiUn#u=q`EvdUE)D*IO3k=O0;Y4|LM=fVVW@W!eOO6L(zb!6Nhu&C@k<#j08LOJ z?#+<>1`pOoS>$`^H0uM>gPMfSdL{8@g`3`_yZOwVY9WDqHiCv}hfx49n4C03Az z|CxKBUktV9Etjke(<{Ig+TSZs7N$r6712#WDi2|SeNyNWtSF9$DPtn3fJ`Rsrww|t zsD}Sjq5Zx<0}TrASoFn#UO%0XA19%`w~E#5-og2humSF-1bE8IWazi@x$V>h4;OTLKC3HSL#k} zYk%8dOi|@rt-g1D5P~@j0jOr2SV+|?*-&ZwPTnEx@y2=cH2e0A z(8rCVI5FuQw|gTO>uINWpe#)OSC0H`3#t;SK)v zPXcWXR)=A^o?@YT-0_KnVP&%PgJqm{eYNi%HZHw{F2nUFgkYe%0vy3d`-*U;WvSFJ zOu&gqTrlSZMjw!KnndAy133p}j^(g5*ydPfAMAU;#BSzA@xWko;xL)+&+wPwiupKB z0q?8B(G5c`Vj=tyh=1DbLjGh3MUv;T(3yhS!ym)+*e%FVO86gOB|pNZTQSiDBxjna zCI|%pFPBC4xGWW(i+K^@jY85-4CJFY;-JK^CM5R2rmhvzvyttf2it84Hwg~f+r3}4 zWFG@%LnJu%%P8reX97{dMB&7|&lj7>nfKXyku&8B1s~y**rrb-)ld+!QBVstvnKtY z1HP~YGx?_7>cMdw_MGH_)1p<%@qd?W$y+9dwpJ>SULO9x4NvY((g{E4l9L! zwyHf-u}eDvj~?v7CtDWsQRgma}PV0#qqcWOFpX0mzd~8fJFJS(!ndzCKUCbfxa7) zZ{bdv4WihRdj@JXN9|KD9UBt|!@L%qDZ`Tv)g9oY#NOtI{h_M5S_7PoozGU@;Ultk zvLV=$^OWN$U?5KRGfkci?{_RL!JN-`WZl@ayC@PGeGj*)&9b6=Rw3oJZQkU}g{jQ< zgz~1lBp8Ne4_|~3xmFV~kY(SuD3J_F@H70qXUF)A5VMU3Qw=tQOqjB2HU;S-;|3nU zb=-gia~`~&X{ylBOb8viQ~!MICu~@sGgAiJrZAr14IYvNU2_|4U0?7GIW7g2lwYvcJ*jxF$na4AI-Z69G>8u(+R4upYv zwX{wql_-G}v?w;Sp`?hWPDsZF+;#0MXGFxen`+44$aU821XQWa!lgyS<_517&9?ji zwuWsTnixx$_2iwPjqkEHBM%aF+_hlp>UcHsFRr6b8ui)*NEAk9nK-@z=DQ#isMTe< zgju^dx6*ux%nP&s*$6VM;Yihv^5^~~=LqPyNp+P~OlJDT_hR4e-RF&ZeV(;rUgN?~ zdWX_*%%@Jk?{wnsu~4z~!r3f-Z3dnZdp@QQk&zv<3m_oOykBiJdG>9(V14hE?e5!# zCpjnd&)qx*Eb?Nf8w&Ns)KVw<+x;dQ zZ{7lx2bTZSEdcuzg0?0MuK;;8Bj)xaTMG4bSEkmfpVGxG>h=c!S4$a@_dUg~=Os7b zZqtTZqB&*LN+}$;(%~&|-veaIrA>A=fvp{q;hgvM58}7t;-%*w)geK>KU|W563>@j zG#LuWpyQOIvY&Z+^!a*iQhd2bH*=@HD}-%EX`&mdoWt$3g`@}Z_dHww?3v>`=!A3o z&!AjtJYK82Tjfwu93VeVj<#BzaDr7^&*Q?tKveYLTL1DP5lY$3mmZJr=rnu@bIPO< zRLN9Z#HiUDt2<5i1XWt8YCgs1ieP({?9w32FWKp!%sFj(zu4sMpty!w3HIwH`%?&| zw5dZnGXIP-@Hz(1BfXCGqB!SMG@2FHGT}xu410hTyL?eJp(@n`adEKDh#LdpF|2xA zu>a6$1&2R&;pP_(>HPU;+?fTJ>AS{~XU#Zb$N$t%N1{~erovIpVQIIVyYbsM!GQvw z+|#YSqG{ENEe);KQ8RZ-k^tS8W<=TmaL(3}phw5;7I0gILzR6?*k*?c=BiB2yw^i? z#xMVhPOvj^F|b~`ZH~cMew&U&kjn>2F}bcrd_EV>{5bLvX%={&9oFdOZ`w4UW)A@& ztT1tWfaEH+FuqvqmXPMlp1GAGs`9EJGLBfqHmu+JJ5}sD%>@10uBLlR&A$!QW;zwf zSjdIX6q5YoU zu*l4PBK%n~Sg3M4I*BF->#DEN?(q$U7wK#;%Cqw)cHp*!yFMuI0 zGwhqU`X|J$2tTGsX|!|@X5-G;-bAI5m7b*wkR{l%?<8yaETFz1g-29no^6oxOM;%1 zDCKK@K6sl*0n3SR7!UKQ2NsJ7FVZ54Pe)f?d^*XctfunUIGU$=i#-buSLjk^cOq@> zOaB$e;~d7;C{IYoNPbRL&6?mwu+T(n^K<3fUB=6@qpZnr_3tk}YiV2=0uhw6&|Hk| zmoEq6>56j3^S0d_-U8=sPfY{elA9Dl@-(Y-Fx1RsBob>qxCzj+RyAB-6>%C_U1zu4 zUJ){#Q4u+iT=f#jMiiFWWz=|S#Cz9=bnchcVQ z4!Cz#T>uD5wVz9rkuNZ24tMWdL-)}y?`kfJ%y0Lz>Apg}>r{83+y=AMsdQu7Jb4(| zAX7+#%Jqc`m_9-?kjaX-&tJi3_FIJUt6JP?`~Lf>$3{mj|3YZXwrG{zO&e@QD}axf zo{P&1G<{MB+%+%$vI5l`m|`5%Yj1`=Uw4-&G|0}!uI#C6*(OU#aTDrMes?E)w#7k2 zM#3RSh3(ixyR9%R;HVP;Mo@^VJ?%IQlb`mDhMc|Guq`cK>A+Ew+?OYvWDFOgGQ}D; z>I>Tumuk_huvHHGk7@SV;O-_ke4}Dh*^uQ6nEsoWvZl4_I@Ht6?Hxg61+x0Z_asD- z{W@!E#q%`dzQ2I4gk*pJ0y*egO5*^JG#a2u($#&Aj(Rr#a8At{A~)Sfcbn9?h=rQE z4&A1c+S&mnw}#P5_KR3)*Y26U6$zSKDqaS7gNd*yuGMH%jNEtyU419|-P8VEwH`CI zj-Ri+AL?}LhY#)J&wg~v_a7vVbyHaEJ@jojwRAZGUy&Ky!OrSL5rds4;Y@r+UvX$x#3)(!8$5SpXgGclT;Ye#7SAe+JZa22?_$JQLj<0?VzNkGO*ax*UDbv%Dy0mm5R(uv5*oe;?vCou z?fQp@r)+}&DvLeLfCCf?*ZBC>GvPnyL~&{Z?7W=wqkj}smeu^NN}Dy7(dVt`6Hh}0 zz+jm{eD>wlQH>|cR?#sY#7#=Uif>`@h|{rI*wLxjGP;NJLjE(gR(!)KxwTzlJe_PG z(SDisKbB1XmeoCeW$$&StbM?UCEjFm9r>m3runPcL@jaz-tzFbE{(#r{bt=Z-EeX7 zR%(tMobfu0X|{y#+`hhYJ-H#LW0Y9<;lA*mC~O!?^>rO0_pPWGix6TTLjGiNLSg4V zaq{&sP2#R~9i0=ewsb9M{1Mx&W;8g!gwMFKqcE=Uc8j-~e{-_-A5%>*he}wv@He0R zDZNi6Dib8|IecY@P&d`x@MGnSprSpx5DjV~zr?C#v-A}aIr}dLynHgf_%N0-c-t8O zi^ITE+pTF4dI^m}k^vdM$_Sqtjafz~+8)LsbHPfk302DLWBecb3=L9r*}@iqxL~9W z|8Ft`p>o3|MW?~Gi7!b3vU{?tNz|gFTr%Mo&0r4OGz^W{*sQjRTSY17f|AJim-;I_ z6?HSXv@+JcB9Mpm?aO3b$?hz6z;6fP9Zw&5UJadEt}>~hmVtLMA>2@Gf&(XJJRNN0yiIwiu^=LsGm zZIN!p=6x!BO3hDMZw`wNQpyS#!Ft0ad zJtP!fj|K-L7voH75JK+OlX~C=cpA>0lzS=P;q9D1e~BBIF!OdQ%LBP1yvV5ZeW+o` zM6!^<`Ub~Q%GLi2==Ta31hm&hE=!xiYRyg{U_?vsk;UsA+IPpu212zdFq&~=*`?`Ry3 z?drgd?EMnyJe_V@it=RXclVLGN3X#XKs;*$w&m9NWJqnma)LYA{|*r%q+_cjy> z%}?2lf6LDQo!Gm3x^x%>;#eE5A~HRj^)H+fVy01&84E_nLjT18ks)8KBV8-q#uv(y z;Oi{6iH4ks{J#0}m(NRR?iGs$U1Ag`Ob11Tx%n_d1NP{UtENh7h&PrG%D(I`a}TrT zU4|ir<1|0vX=ozCA}*D&Vqf6i@83wmko8fq4WEW3(eo|+E@TtD2ZJeqQO!M3xHVBV&^Od zyvZP%ey9^7sU$!Yj|$~71J4kN`AQG`91o+#b9;0IKO*{Lt%^XISw3jBL=mHgF?HEB zmv2Q_vdpR(7i8Ok;bKS~S^k z9Lje1S%WgOK{!Zn{s<-za=!%|klEf$;grf2ACnZqDZF0A5ly3R66tg? zT)@#IK#J*_0G6gx>0+CxjVH6gL(vN8)_^()E#-({*%LRy@=>nmDCifJ3?=~ZZhC>& z_nk_I=E=1^DHBO8Zn>8NSM*Ls5g`_z4MYP52~CSsWYZBA8pcyok}hj|DpNbfuB+JA z>|I0D2*6&RA?405^H+V^Xn<({KkxR;x_gc=W?acbp^H7nZqhBTRQxkFPG(-4O}e<=1mC0ilw= z5`+tFE~4HIm~l8p{e`$|yK}6Pu;HPX9qlvwF;pO*Ie?e@c((Ko6s~e$4{D!m%q!gj zxWBN-Y5jC&m5O))zc{tnbshRLmVzhyKq5BGFZkx-S{jfSoGHj+a5O%BU#*GZW=nP2 zL<&T%(FEWRe6}j0lsRag?GM`#ANHhzd%DkaK90(KCqI2ghJ|a=H-?NVQYYHHMDk?= z1vwqTP^E!}M{nF)E8sd}1B3Y@m?nKT(lW#~ zU_QOlxyaPTECJ@xpm_gV?briJ-QRWGJhi(CmoNgFUrtciPPvlnb4&`0)}o1+Pv=iV z%#e2143!~Io3L@8H?H>n0X>B4EBKnV@4sf#3lnN}_%fOfPP?)kbG{P1BqI5u2k{6V?sAuQKg**|9i6R8xNsBo!FC^Pj14^F{6F}DeS zcAOvq^I{i$2qxI6M0K9N+dC1T1xKnr?n_aCFJX^vYYeauY#qtDS^jw!R}fmY7d2Ce zIK%v0LmNX*i67E{wB3&xC@!c`LL*;@Z~n>`aWNVF@4_X{&pQ+W|BpzSU1cl?Py~V+ zvUNRai{%IKag~>yc6xFV)l5`LHK+FIMJ*tU$Pw}I%sakg@|KONlRwMFwP-tp(7u2D ztXubZU~gK$&&;Ed+$F$q^x2H^P}!21Zd()m6|l7=CA3$6+wfF_G4grw{;b6|SpP7Y zUuRX#_uHAE@mJv#*?RzCJ_hA*yV4}TJTNG@ppBdjS=q%6(1#r#SBMLqWxejV2&PFB zggDUOa@)7$%!%;jXd~KRtHopuboyV~i>akROR{AtROvI#*!Ae9L;G3V1g~o5JJgH# zMtBNv8_L1KZ7Janx&O3R5w-iN9*~9KnFgXVyBBSkt@?HV|5j|ez<&qvC}nB_9K7*eiZQ^Jl;e+$>dEIN9Bsmy1$C0?aw zhnt|sfr5|+KUSB)f=F-8@lY(HJMOqRNK=ftLqQG;z^hE*O=6N|vJX$%k+mb^_*(i5 zH_nO0c01e9(+E#{LavWhS5Egm-bHC{otD>y!;o|DoG43?Jx67^5l0GF!NTH~$@tZ? zSN^9`8uB+-xL>LPpQDZ+z!`e$5p6 z_fXs8|CIZ;fz0ydkv6hnN^1P|OnK6I?9Y}cIn$G3CXifDS0tV#`C?&|_NP>Fx!Bi{ zF{U0?dB`x14MQ^rc>%LSwTxU92qWo}5E%@w zYo|>cUuHU@pMTw)ysqbPyCWx+p`939-i4}_;B2rLT8LsOsZ5N6xiAx|sOo3% z!tnQ?Uaf|}PqN`uLkDC`+#59 zZ32onQ#z$Tag5;XKq%@`upQtGL7IjOdqgLi`hUT^FkjLRwM=KB$_D?VmH2MIAf3;Z$A}!Gn4eq zr81gIxrG#B$#YK7ef@$fY6h|H^^`g9oFWutSX}DxnKEn8gMkTzZuu>`ziL1*047`WtXfi&nPw@D>Pjx zn}haj`F(1RXIkt6OL>NK?0B^2ZI>?EKNnl~xxJ?9P9QWoxu$H~I!y+MtQ>|g$UZ2+ ze+B`Jpd@LLS)G;Wil7Xj%4~CYS0pC<((tA1#53IczTF$i7AtnAmd~9zgCTQviJYf% z6%E#&C}Br}1$<@Vsm*osU4Ir4hJ3MY+!N36TV2$#2a5^wsP^#?z=isc4=}EdWZ;c{ zE3a%-j3P4VK5eudfcv14BAo@^g{c5oQD38u4oL`tV<0{n7*E9!Lft`TQ;zi*T}v{u z{e8zZ6s$X9CBuJHl+?LI9e#@LuX1%E2HE;T4!$S%j;a%(fFh1B$!Gx~OsXs3{dpNM zPnerGOYd?tokV~FqEsM?Zh2kwXIQAiTy>$5ZK#w@saaY5FS^SQy0dIpveG&gYEc5x zv-4}8f8;A(W~d&hs#4g2)A>_cVvn+r@;;txuQkh-7m$e0x*hWv9f+Rh0Dewe#zi{# zBCX@9|1!8zV6qAK#B~!Ydv`6r#)gX42ry1D(^z>)vVL*~7_HRIQ3V=r55uz|a$t|x z#%n&>iR!xX!4SnEtmXq_+c`Y#UsE8`M3*BcG19{gnsW29l0e(;yW?SKr1m?}@Y1Dw z+%3ZzUElUrN3cwklg99e3ibEi{ZP40pUEmAl)s9cbasj#e>lQ&dW3mzZ+lQ1(2o4? z_a0g8*aGW~irrD?#nKR<+`s?;3MT>mYj11;G!R_Vf&Bps5qQ`cr!NePb952A6VL>mJ)6)_o7Yn@1^ zUTZeqw|>^Wv4khZ`cT4x|ECP$z_7u+28@L54VZU3mb7udh%d(?qc;_F^%G-%uq68y z-p!e3f}mxTxn!LmchEB#y0OV1@ZL@qnf$P;i9Dtxxc?-?IYWt=`**?Mr@DT|o;H3W zbBWB8M4?kqXmo>H9fn^e6+8f?x)9QGI6nf4FrG%hIt5mYBr@n9@bpoEUN+vGEMjm= zOS`gHAXEFtnfWW@WL6GnKqN6hhC2h^RF2OZ<@M4--S(-~VRbz%pg+5ZAP8dH(2N-w z8z;euiAwB281UM%p~NS986fOs8Xv$AV$@3IKJ5GcadBAF#QM96QnC*N>Siu5>cPT7 z!;V9^)!4pWXcr{XY965D#)~=YnvE!aod?ErDjPU1Bo~4Gxzb>JaMYzQy8`7H8JRx_W9mYsMgQrj3^6s70Vg5Css*L#qrb~d=n%~|1 zW$%5Q`hoa)XN$L{gsE_dy@KoV%B;mYp|pAM zai4{&C{sOZ=Q!}vQt2P`OsC0a{UlpDp9qlgkstsf9t6B^ZC8%(q{+^RGIXi#EdjM~ z_m9{Wz$R<@uV9}M-NuH^Mnb9u!5I@818P(9ihX)rLVw&+jDW81A7a`UeEF>g^Vtt1 z;>^*J#%pS~(rH7Z!|(jG=?Pj-oe~WZSI!(>g%Bd9-P)$99%~lFF8R^!s%7qN7M_pM zJ}a?XS;6JdEfmxCrBY4MWaf~;hvu&JCq>fum+d3bOCn-!<0oBb#N4>Q^Be)Ex&OYVdEWKc3MpLJlYShys&fnfdb#j;xY~;uNPXC^{ zW=(veB!*(ux%;n0j(p>Wgv1U3>kSQ}HzRau0G*83&*cJCN&{^#428`grYQ-KL9q2>%~?v_`^|H68<{m zd*`$7hh0bmlR!h?NOLtK40!|6eMtbOp{6-CFEs{2Y1ocM#+!_(c`28{JR`J26<_gr6evg?PYuhBVC-dAFpPy`$y3pq!^OuDrFsu# zyKDeiG&n{-y@4Iv03SwJF8XHh$-mAwLQyf_OTRKF16Q2tfp8Hm8%*;3++z@L+pN}d zGmJ*jnJ7~TT51Q0UFS59ilm?-0009300RI31>(*elhD9^zjd1G8##o#-TL)c0YUF1*#Eai936G4*1n@h;FGAh@ zFS;LONd7whXG|trgIJI-BW*X6Dk1=<8MJ^1`Uhaqz{M0AdS6}rbn*$v>A3rBmR_=E ze?d6-tb6@hEy*h>6F0t>z9;S*OQKZ}@{)=AQ>(lhWa>cmfgP{=*4uS3A?g!AtQg4s z6JxA-yxx>bRJrYrUbe8x(z;)u%Oi6Al~2X06ANv?6kU2n(TAntc@|px+~SlTWF+Zv zwVNLPt}E5^s7dOnkc~G40Z74QvIAJ3=b!)p0{{R6002x}H_cSb3#Vl&x&51tZwL<% zp)HT*o?+Bd^)r5p5wI6~2dP#4fA};OKQ@M=`;C}J21^{!5Lp<1Gy!FoQ}R(jd1Fg@&{ZgHH*b!td zTHcgi9BMChF*?C~#y!m6;_DL(hTE2jCeQ!~!7;Es?Q#DWZ`DZ2=$J)+i1bmK{mqtW z6E8OixyPo7WFx>D_S?HN4_@WXU!$M;ewdF9ocs!TH^vwPjAPEaB%_=%{e7h{R11w@ zMudBQoXJ-@G8|5Y0~V*Vu13)0UT@N>zfYgGwICzS{G$F zFp?bz5W5dt4^^hh=47ayxA}xYuS@}-$ocTeS)?*n$JW4`G^me?!d63bK#h)2#*#+t6rNt z;U`$Of%832cny$dl2_&F1utS~4fMGkg1yaXh-sp&?F4 z{61mRe`5Fc?a{AN4nxPgoaB1Q-A!93Qr>v@-eQohb!=~Yg%bf6CVVoy@j|%%thkbV z831)ZaMI$S@|Hgs#=&WjCQ(Ug`0r_jJmvz@lVN#o(RzO6`#4&gNuzz4G0?_hf$;~7 z`^Hk!MD3T&y6&0;UaznbvZAty$lF4HB6x7`FX|loZ7Mf?mXKHjYtWbQ0009300RI3 z0|8}0ThS5=lA;yQr85keb?TlG`v3qSkRko(ME`$ztja;KwE=iq5KTL3*pssxnPRK3 za`QYW(}~@x&6giB!|EF{N`qKs3KWyeIJR1{NIAdymlF$UXHzM|J=L1rB0s*J#v@LJ zxmQZp6U}VUGJt^_FICVZmbb=DT%L;3qQ6tHt8P1^FScvpCUSb>Yki5IH(~mq2szqH zLtuZF)5VZPPMPxH?Kem9q|^DMnS~rz&~gOzwr8>MkcITb+JnL0Q6K~aoC~MNcSuG7 z&DpF|DBW%vf?;dVal>gI!BKE;v`LKGOI%4Nu{pIO3vo7@Jnu(l^I=y3Q=}s~^pBUV z6uP1A+yj|WN(^)9rD5~9;(RXjdfK0(SGJg;9^9k93=qPFR8n6|fPz|Jp`TSVk7%{M^GeQ0y=WCg z3jF?ASxe+h=atQU2x0OS)yD3sw<1+izjx&wzYeC7LY=KW$1GTwAA$9@v<4*;i=tS< zKsq_sGud{S`Lw}Ro0mcyN~v`%wNH{326J%o1NdLKc_@xE4(LBD?HKw{iLK3{236{4%+*xG1sj= z5MftP^2DH+K|L{t2q9+hyv?WVsrjFw^_7yh@npaX!;2{ zOML63z6_|TG{vd~t$%3R+c(q4Q?u;ieXU-Pf9w5*J@W*r!PRqd0*zGG3eGhRaeZ&} zLRYOIz>+{KA6o|51`_+^!IPMX#x)!sxIHFAv^ zTJD-=l5f{`J+Q{$0*zkfHVj)u%Q8>ho^d=`XDOHdM3jhSy-|y;)4Rky7GF7*2ZS;u z>MeP}fV!Jx2|tT3wGY2&(yCR90Vq8K&2~AjRDrn<2eo@PAhnPmk+P)N)$lsxchRPj zO?`e>lo=I10N$M5H8?B{*7QITX4^PDivZa{?+N`Y{~^@0^`l^qf|5XQS1PxjS0oazRfH(vbF`ngSn7S^pY%lJB%EPDmo8}140ez6gbY{*DMgnrmJKHY;(i493A2L(JAf+q0=N%8`y!G@wkew zM!hLIUai>+{Bx;nx~fJ_oBR%*m7* z?HCuYT#GAk1A5q^c4rlCrtcfFSCiClSf)mpZ)?A@LR2W0DV~PEae@Pmj3;$X(**0k zbwR#h=~=4Xh9{0x4lbnSatM)EZ)cr<*0{OBr`>bn_J!|*br2=I&ec@M$IXH;w@K$m zLifY-&vxu|urI(yiLegOgdc!BBI)oIvS8rL3Ag0o?Xo`P=bQ0MaM#|v`c4<#65N9q zxvb7xIW0H5VCyt3YIpk&I2bmxd@4~Y&gw{#XLQuOl_4eCTGPT8;?3u=IXh3#PK&P_ z3oKZ6+0I-K12ScTsaCI`)^yK+fI_I_q0J^s4b?(kE6#^zzGYu!7a-m-i-Y!{_zG%O z$*n`!8QO34KfVi92g`bw^I$BO5N^~?8ka>I+4>PC9g6fqe-rvZm#6<}!F=#T;rnxE zJ@%EngLT13$jIPEg%W{dP9-ZZAH}PS;uY!+RfAHh1y%+`QH$AzMX+0w-^3H7dz@i* zOm{x`=2sKJhfTR|Pr->(Mn-E2C@euyJUs_4<_7d8VTd(R6=&yJi0;RH?ugG^X#jF_ zmTrh6t&e|IK__+kTsbPDK3j3M9k?Zf_7t6ip;VEmX1%<=_m|+;X-qsTWYatu&Ff-A z%QkTdbb>~Is*RiJbo9!q@Y4w(JKbck35deAx5DisanqRzW9!$^wunVStQ>#r%Id!L zFs^;)LfNbnm!o6@VxxtvUl*U$E}Qo1$WUGflKg&S2q-=KVco|8)9 ziHysAfsmG{-jZmgS)Zw>KV>V%HjG(w(%}Kfse(t$Y_HeYJY-a{UbX^Qnu=9^8-YDZ z2m)qMGOv}^ZD)C+OE#7{nrt(FQNKkyaA9URaAp`$~1wU5f#3>WC1uU|ixpDIZtHc6r&;FB^Y01UI{A=M-BE?G4Edo zuXge=(P*J5z}{`|W81*^WTQ~S*9M{or_RCGm4z4M?c^o!?u!1jxLM;Yup;rCgzIbF z)Ib~mN@nw0Yz^b~EOg&G#W(^eEXOOED9`dCJqbC|AbYp|}9&TxBj%MsD z+2JkiHp$96 z_Ud4+FVW~bF>+}}$v*aI#wcA!T?yE+TMp8qpX|v^5?&oW#!TvR$ZLNGw8E0Xo8T{& zbns;hS4!jI;voup!`H&SC*qABfUIIu^W zSvshU8*FZez|(~<(R`7Bh4YiqKrGOtl(3fC^$94vHk_m0B1R8HL3c$m5Py>mb zycG739Fld&6{!VE#XE+*mQ&yrv9NK`XQG6ILz4U&=LLo`3h8{hnqZ*S=CHjh6Tb`C z!+})p5ZT09uT8#5yln(S*&)@3X0>n#iQuB$h7W0t%}GM`Qz|Yg?(Rm9l|IZPsrh*z zZyscZ1jG$|>dyyIfKNK0 z5~diVn%sDtjd*cqoZw652`3%u1GsXu|1k%>aM;jEkE76tF^UN@z~3+=s#$trcRC7pg7=s8c6gPDo|tM}6c(HmPYwc+lL*by#7EQ5!H%T*L+WKH%zOq<)d-XAY%zE`h3#5jH~-J7HBnpO#UtK zug|kQZ@hsAhuKX70LL23+LbN5c#N6HKA-|~S^|8AJ8;+xj11S?6c(f5Il{gLR#?`` ze&Uv04^Od|MsDW!ONLSh_F}&NCm=L3K93BJ18)tJotUz0KWAZbf9`~2w4tob9G^-3 z7tQ1`QrfsaEmctbzc0EDV#{ch(u6VWfpiy#sk*1h{ocH8YcL4O5b?ARQ~50zM5Z=t zleZl{_ST&oH|NCTjG`Uc^AdAnl{ZC9h)SX&BSSvN|t zLrtj_QqDMRibjSBuGJw-~^;gjbQ8TjrUP(hstz@ zsj%z`CM1jHfB6P}$uSBAG`|w#x(~{d>{v&7`I>36fi^jUc2!{=p7=DI7pa_+CGH61 zr=0L^%)4(Dfk>n{(yUS=1-1U_0u|htjE(1UsAL4(n?@>P<7e(L12{yaci`_K0SMt2 z9fEYe3{hZ6gbU;VXTs_CLeM-a&p&aSgnEqH4vt0LeO^kUH4jjW70W6Q?^?4~=0meA zEAc(w5s+!vR!K`#{>*a7-akL3_GA+Xy70^(5jH(ZpBm zxR9?o{iWEj;~&b!8Ng(0(-jX#@qhqX^KKEu2BB=B|L3TCSDh4d88K!O8NotCibNyL z`2Ihz&4i{HC6GInMoQb&-b=8lfqo@OZE_lroCnp&u;DeWo8Z4XayQg7P*G}Tnt(b za%x6?xW3|p;XxnHVgi8XV2V6a>fMQxt5wXb;C%XRgr~P$v59~=zR^cR(rm|? zuuz_LS=yALehj^NnuRgKfw1G&OEFyhy6aOU(%RBaQz+e4&t&f~Htpeex%?8Kr0hN}%IKNT; z^)VM^X-$latNSrC`EnA6h37R=qMD~wdj;F#hZYrM>PZJk6;uPjIssMweCo%?0yhVr z+PaS|d$X)h9n40*@&=cvt#aPdk_ekVzykg*+bPa)A-+S(eHtd60~<(A-c*;)Y5RX& z=%G^?eQ1O@|MYCYG_Mfd7Y8gb>6aedvgk`SGhbeN+;}7e(xk`u9}$pg(x1jlC2L0= zSkZYcj4V2+blLaNmwv}TJjd(=4yD4q#1`u%g~uM57;=jfDq`So4XDE9Z?G<_=r#azkvh1+o-u za$cB%J~baakEUDiAGM~osH|-mL@{sIPH4)jfK5AX|2EoQr?hJrpWH)KO1w-WxG$@x z<59aO-y2}#y@-d}V4gMxJAdvYWEweXgEO!57=OJHG#AKU4g9rqevt^^Y{@o@-5$$l zz^Lp}PkokCWuDt>CSKc~|JlcirOoXI8 zmpiWicwRY}7ojg)3t zccnH6N@eh1L<%e0)Z`(F0ww-o`>a{BI?fxkbQ4$s=zp`X)mJ0gByw3mMg%Hm0F9PB zy9=+vO#^1~trcee3^tX?!-YJ;9o@(jmqm(VoawgCmOCSN>^+6#%M87E3b&mycQU?m z*5PAW7sk6hhb5yphS*PmMhaa7G)%|>(60Wl6}JbErI?6oBCAx(3{u!jsAt%k2@XI( zZET$md_~4d!x%o|>{x9W0=Rf)x+|`NKT7j)@GC|r0of;X!+OiJj~cG~vv;)QOtS_n zaJEef#(bF;DEtu&GXBqWNJZo#MorH--uE*XqyuAi)sS_*Ckh=gRI}%G%qTPzG2<2& z5-?8xpA>$Do$tQhUeT*rp!8zXjDw4%Ko( zn37&?;K_;-wF^viO$XibgdsZe?TgiE7Q|&Qqnv_6T2H_qSu2|SWtz{Rd`sIH{h_D? zJv|pB;GFe6SW8I;OjYXSQA)n?F=^yNwx5HA(^s09@O-umpVxux*q zSbJ@Y+Om!P9UD_BMx~*>oIj%Tih0HKO{7DIs!RrV=U3eyNIrjykxck27LbCq=KAgO zy;Ud@^cCuqtlbf9CT)yqF=c29-IA9eYU(1^RBRdc_>3T_SWjQW%5Ka(wB^2FM{{%K z38cp5J1<$0k_YXB)uwTQmoLsuCyU?x|2x@o!b#ZF72k; zMLU;ro$M3mKZwR`1zbcM=q|2fG3gDd>=Je;HQ?#hj)mv|@2>yIP6h^EN`+$+u~Z27 z8NI(*^H#KIym-qu35`#fX*q1M)6=E|H-M6F1@9Jb;Vkz zfTC!k$+Sal(ml@*(8fK+@LJYt$qPuyLso?j-=-XCp-Iq}Um(7_<3TaQr;tzAYUXq! zbzE7t<60TA*{etZdJT>coz8W4__1&bD%_dW?QQp$bM_g3$9bd{Z-6#?H0^e!)k%>? zOgWDvl56sj&hMi3$)m`13}WhMG^-$Y`!7!iZHMV180FMOIU(CkJ1wEp^7_0_+w35C zSDXHLz&bHOk51Y3e9QFWs3;kGGeHz$**=hU7%^n%UHfnFcp9e4V^hKslcfvd{D&lx zB~d{m_~1gCdrwU*MShlVbK$q3VkWxsS4jZQ?qhum)8GT~>m#%9%YwPZ@F!UFr*4Pp zqto`O_CuA5O8KWPmdB2n3&|lC>^GvAe~dlJ&`zSAd?fS;ZpifZ6XK=%D1^MMJTSX+ zW5|C6iOI~dj7xKSI@O*VZkIgEx8&|5q2($QN;I0b_jXoSc~0kD^JWpoDtTC4hKN$y zS1wyWXNV2lNH=UvCb5XgS-(8&Oz=_|t%3XbIhy?JC#sb}Fy91Ox0ZB@4}(5E{OZ&^ zTx)t~+@lv$2xMI@@Ef-iRfVP$|9yV)J_+ z8#~cHlB-qg=a*wY#-WSY_DfJX#p>vb_It~?Msks41&S2dyO3zSI;Pg5@-dNS6jB=5 zn2SjLpI!f;XNv0|xyvAAZHH9Ws1dZ;>owZnILOeyjm*=ad1HvK0rD3wUYILT!AXDF z?Q}s7i=($1Pw03i3!i>Txv`53w7q4(rxRlf8{(vVIuWQl6n@du$%RXwFg4C~BJDD^ zNE{INfqO}*vjQD>oZL;&JB1b)o!@|=_opcjfp!^qh75_>3 zY^GE2ad`f=d{vVSB)N5YQYVtS{r!v{y>4M(iA0E3t$83{E|p+!8Q=a|0!Qa>j|0r2 zauZI|vP%-6-|EpV3xW)H34(4l-ng4-iBi#&G%}dWy0;!f)XyKyJxd@5LNv!ZLBf)3uiHPM$=*!-ni^>V`4+ zXI)A?>GLJG1AO#dFL8HmRl(7AVk+mB{NKhIY_q~V&bC=mV(`85U>)gXHYO@{Sz zyE}`o(~t-IdPGk~ZoZZ9y5>CFjrTT}(0C7!EF!LZxpMXF({|X|ITC)7+(9#?^(&-L-a8bvIvLOFfTX^@^viOgH_%4Fd(T!rIz-markAep$n^Vs>X^v<5_z*)pmUfmhVmRgT zv~$?XKo|dlmXLrjQiLuo0YFZuUAhwO)nAl{LYUuLe=_@>wq>n?F&9zZ!gr7t9WXi< z6BZ&A8?)F|{?rf`n26w`un-HzH2CPS4oXjC!R_RfNIesVM3JOd*oiIB5mIVQ-LljW z%nGyz4N_yhZVa|Sj;=1v4*7Eq<0mg4{}3Ri+jBr4mK>gR80T3nIB5Z>r+lon30YxM68_7pR{9o~zuWDwbno_j z0F~i_*qNZLP%^xFq7y*FIfgx8@@1jH&Ko?6%m`HcZh zs=!|uVp5*j)B_#FO@C`2NB{}GX&e?EkEtDm%SaDecG+ z;)SW-H|D_VS?@G$up3{x*N@UB&igs*eFsM2PYD4SwoVYS+a6?4xdQbpS))kLiV_v= zt^^6>YZ>2uDz#pW8vDrNx+w2z)dLU#8c}8kQu&CjU4exgA{ccs_KzmaMbtA69N{Up zW1FLVcB1C*l3B0a$dxVAHUt6nx=;bHEP+tm-GtF1KYD!NJ8>lJ4X|2q3Ey0#-FD|h ziLz3ulxj#2N&^8w4>?kc-$6?nb4c(K@|*_8Vfm;*gS}PVWRJ!}>2z~dxg&4?#28l^ zWY6MQWZm%uAfiErs?ou$uGpJ|ygBi~_Anf#Qpv6q+VW{S&b-?ejrY_9j7>@yH$cY+rk}+X~|f8j(bncu*KWY;Km*=;VjnGr2^HR$w&bElC{$Y5yw` z&N!#(`!;3cFu*8pS5S(Jv2hmEg*U8$*sDml#hY~cZa;SJolqXr+cTEIsi&NL7StqV z=6x0Fp=KTHk4f)>VJ^~@UEsmJ$DD~Ai<7CU5jXcIW^6_axRX6Oh+n;P48yqaXK_E? z07m3x_vHXxK%&2&K~pk79rSIllI#n1c-u!3K#ki{9~GfNK$PzP67}{9z@MEE;J+b~ zbxoQZR-5JFb$9aNg2+q0o~JMon|l)d$|+)q!%+N*~b&ejcxSP8EQy1>$!=O*Y_Y4IJJSo&(X6|(&|ggvnr?@Un`tUn-5 zX^h1#5ZR&kh@b0ZLnz$>wNk>exHH87^G9@6Vy-fUy3HKPn=3%=G5r1%Fv;q#-G%@U zT&Y`)yEg=232D5U%i1?gPUx<|nUuKvL<8M~Lgnq_s9Q05M^8tF6_q42X+YZSl0^*? z^zTA&xN3DJ-RR(>W(}?|=m3qCZw{9akjn}2@}VvDt(pJ&_NIOsDQE%^2q_$5I#=q4 zkpBC*%(U*JvfC>$d=+pyFk+>pBvIK;T{=`Y|+FvT` z`2FTE+Hji-pq$yc_3p0RK)Q2biMXDk1{TpLY3a_CMG{;Nuyv523JqwjZ$QEdDSx{c znOW>)Y@)MhL}=u42E*-kguMDi7k+n9xb3ox9$2{L zM-CKm?d*Y_ZSPAC32{A~3$YK05yQC&1b=TWQt#PNO9Qrh{FijJV!dg&0s)q;1oAGa=iJx zCe?WbV;-(@u!##HE%5UueHmjS-;trI|Cs1pNvr?#<@Sf0(j~Xlu5K;l<)e>as8$h zh1sLzT#vzxxg%Ku!@eKsq+S~?7o?TC8A6I^Su$7k$)4nom|Dzs|9g*MfnAmC8^|EE z>lr$WS0Vg-nvbs|%d3CRIN#L^0yc~65%R6+M49k!P1@5a;#NEK`W;2R&+58bh6L}2 zs$A)iPDz=IBu;FYHlNon^F+=^veV=vNSiY9N}p{HoPu3p$i{3}qiklyW>WV*9PZA0 z;drV}jACzC9RN(c*Fx9tsX7JPKh@c?zSw7qt>oB_I{q|lh|g7IT8sk-@cLo0=;xRw z<;!V1Uj4!&L;yW_|Czdo&?YFX4;kKJ=liny87&S<^UWDy)=nw|5Jsno>DYC-mw=UzN6XeU{qQc(@vVOZB--qHg$$$N7 z?%gbqrDSwkM6bpx-6#8Ik?N+3>JqlI@l9Xq3zR@KP@xG84D0WIxufc(w{rek4DB|E zS~jInOtp*liA3D(E6RY+mE9W!Bn;%}=b#wFRTB1~|(F~J5}4rAJyFqt6WoOoU{FNIohIQx*yzDpj0|LecIXT~4y zU_yktwqzve`U-^or+%ZP&OX`Iez@G=M{9OLhwj-!v(=4RLc{>rH}fiu(k*Us!w<%|20duB*!iL_2piG*>w*NrCv9$5SP|@-v#bc5?j$ zdImYe1dp;yQAfu8^Gg-SUlLGMdHs;7m~RdbYpNJwcdhai0(@7TlKyrn2IHELAsaAcM}g4HBl5_>U)= zVFRFr>SXP(l(>5!@+DwJUydhF;edm_rbZ&&24lBTDV)R!6qo?0N``(d1CO05=%>|N z|AfhDN^()V*@n8Kl~wj&4PkGX>38$2(DvEh`abqw6Pw>r?%(KUeO+(ay!LYe({YfE z{&Wn~&9wi&k)%}~c^9W^ZEps}V4m^2u#Ls9-T=tD??GRc%j z6=Y{4{l$$jqyT{k57M72iTHu-%)-7%cckWlo<5WSr8dmBA>oPu0015a1sX?IO59vb zLqC-7#SuKwL#P4&%*_7+046G+fB*m|DkZoe13$tf%>%{uWE@7RQxX8}a|qE)rC1ay z2O=o^7GtlM(=VfkIRTp@lcnCECa846<};15Fz+~~qt@4P#sj|PYRYkoax54TrRLy85@O%S>gQU>TEOLejLkd`<`$=oGu*Z`5h z3e*aBYNz?gP9k0pBd$N7Wv&;mjW06&50}COOMwZnXWvte ztegj$i?8WOp}yr!fg59(#P$*uC9V;8sQOz(_q9E@_9!r9GdEws&!ulx8CkDBk0@BR!Z{4-%nNMheg?&xRN8Za+U%C1!7<3 zLE%Mb+sgP~JN|Jz0k0i8z<+hCX2oHP>gs|XcHs(98)pGIv~@CV3xwdtOa|mxR|x|g zu!FH(BDrLwU}*^qU(|Hm{_7TTyr@SC#kh9rLMn0#juM|liMfssNOI_q9e84|BCB8M zlyd78M#pcjyM_%9!;(0vw+ZELt)d%e&`5fs7U$|>`zwmhcw_T89neVP8 zp$qdD-6T?(74=hOpo8=;E>y24+dS<=e% zS*HGq-e%c#6XZ!*dwmUoBnC90p-jdPapphaF3ywy00RJ0AP`6V;~97sM43#~mAka1 z^sjs8qP#0`v%x(~!yW}hyf`r5D19{B;7|X6sT-eyt#?6^z+rU`y1#V(stJ@w^xFl} zg_*&E#tr6K)Zkw%sgE2PS!EF?MFA7Hiv%1urT_P2Lf-)p0DBjo5AP8BD6u0Y)U<86 zo`k##zhAzVc-;zl1-(l;`KUA}RQ2L+CD)+9NMg2IUfGP-J*nrvwS}Xe(PezGO#WCA zY11=aLXn04OI>l6g;95)#aWj#B``|D-1z;oYg&e?Chy%f((x9*)Q*f5&c}?m6GCwr zP-z?Ci+V)Xq0Y**B`is<;C$ozPD$%B>=m7I#5n?25n&tbVbAft+&ddPwdrD~=TDYD zczD)b;mYaUc5|bnt9bkPzeQI`SUBi3N$V%zI<(quXvfZ##$t)TeGwwHF{-cFcqChzXn8FzSfo^x2{9uPA)7%vGSW~?rdlkPz6JzvF zgLM91k!w_g+c808nlSMo>v%&8Qfp{^`{6+IbU0-SwGW|oUqQ=bRsXs!Ma$z+&X<-& z_EuDgkOyB_%M*_(l_+-a_SmC|Qvcn>Avi_4&N`Y2xVNc3OAFf53WA%xpVQ?6fzP9y z&kCzp7AS0NCVi68AuhIT0z|%;2)J94mO8eIwL?s9FiacVL`h=U0fc9#r`hA%tzL4v zg1PL!7Y=`3CF6S9QO`z7_6f5Dld!}6mGHO_9`HI=9s?cIc!-3H*3G^iZN}=mvgHS(A5&!b?Mn*Hh zFvJ!T6|*Z-VP9FlS0$M)zy89K#&G}ULcHE2-2j%rVyf%6-T`;U!wcGGIP-Nh(ff)h z5N=I5MwT={NIN{7U;seJWb^*M79aowB5_@Dq;99e#GV=-Wrf7L<2<3*Bo3+#q$W}jG}sadPxRuh|OdR+6XD4Z9|Gtmnw*Z5Dt3{J=@@S zAus{*471do$|nXl>~J<5atH?g1?H+mYAGTsMJ{A(82Bu)3bu6Rk|cUIq^xL_(v?cE zu+7p2HR%sTa12u;ytw<|I3u$g{^uY2rPlIgMBT;A%iet+fwml^MO(lA?9n@(t;Et~ zuAygdi>~4$QTX^&_bRUyCAwFzt&Sri1pbK^-O&XJsINST@+kz01C+cjhNh`Ui)yAE zA)nh?>a3&dsQhlaidny_o&dBCelADk%I&GSqFOrFtvZf;FD;Ox&&;p;b9cY8TRIa` zu26HF4tqs|wYH=LG%H_$1U4k!W()^8*+kJC`nPNd4a*WTBZCvEIq1f%gmuVsVVONP zO88_@)iJQh!T?SeGO}@?ffvq<<%YZWAe-<2%6t{@tkC}9akFnLAK1sqrCGeYE2a@N z@Ow#yV12`=rFS;ffy4hOE7%j@O8YrQZ3?khd59VH>N*e{QM4D^p?(p`6n|%+4aglI z*&9w&7^SrdT!bp+yATRXi`EtNN! zf2d;bx}U(QZ{XC%UWd4$>oJ6oIUB^4oXP(eKqenPd0hDs-)8}TDy=;!pG-nfkbN}AXtJT zZWf{MUtxNF)`* zl+NCB8`o`rHwA%UK0TjCcpYnZaaNvnEhKvvCSbM;$%_dEaBJuP<=?_Qq9yLFv?57; zV~e^1p`oZ%ZELZDL@H<-?Ga1?w!mkXkr?xc=^74`HUl$&?!vdOi;_I<>y$202~Xat zat@gdXyI3VUfa$r(A#|5z8wSnZt(K`t`X@_GN(|=>LCHyJndLmb@O|6@@F1W5AQBe zOcDR%H557l-v*87(m_A9#Vh!GDw2ocnV1iv>ZCXy+cGXmwQ~ovkadDX1k#8=pGwcf zvBo<`9>;A7%e%wq%q3?S#b@=R3!t|p@b6XzSdUryA|E!=mDvelnn?qR6_ik$ zL+Kp0T=jOfjA9Os2gVZf-x&dKF^IIE-#M4lHvuVkkj4K_B>(?=#}V{T{D|CIVBjwOfQ?TNkf`)GqgrdvOP*Y7`&;{X`1=k$qI#l)0j&R~*->z6*YVMWEH6 zSZ)$crY{iMZr-aa5k42}Z83sHXzj=~@fiXISk2nDAkFU!!Jm(H>*O5@2Tdr>ewoyE z`9eXBQK)U)PHHe@1ZG;qT{_n*Ak*5f@aEq2jc^tAFF zZc@2k$x46Qrpu6)C$6n}uPXS;-BhzP>?NAq##4XVKzlhP=sM_CkFU4=RzG>k(s0+%hguF z!|dScj;eApvnv(VumK|7g=TlW@G^JmW2I&xa4sQs?TH@QhDR=s|o#O`6GuF(WhoII`E(bS5q50O;y+7DS91tcjuh)h`yT=ZzF zr#XAEZdeGtmkB@vEL^17ry+Q7@Tz5}Xmj*T_cmHWfFA# zb=cN|&Z52z(1q6Rw>ffwPwqi`SI^V6^cTQue-9DL8m~RscMPp6#U5fTr2B9n17!J1 zwxaeZ=Rg#)ytPx;w4CpV-)+FQ766D3(ckLNAG(NcudFF1c@pOp)0^x4F(m6%k96!u z&U3lNYkxai(|>p3yCEA!eArZx-5ex9SdvZN+sWalQhTNc?KLz%C#B~Oz7J(CZAyML zbm?Oem{#8+SJ)HVSkPDnbl=&ju{Sq+1qz|`EF0m-vg9)(UpX1?+V65a)I13(IvOUt z>Z|IPu{k@u3#w44YnI$eH<6^55Az4qci@p^p^Is`#@u`{C%;yw7MS<;4R{Vijy{km z`87Cp*&-WMl!$?n2ix5CH6P3i2pwHg;(Nh^(Z~_h9%E|1L7X_&0#MJUi7|MntgA8X z4YjDRJXqVt#S;x((}*M!ecOJF!%l$6@jE2{ku!K1)v-VJd$o3oe|fyita|NvqDiDq zkpj5)+{K2N6SG|TrGTtdX1dV+8v_5$TaUl^Vz3H@oIz2_jNbiL!u?d)4{&_dY#3*G zn&y!zU7X@tH&VnNl^zT;gt7fUr*@gQTta~DklQXB8pdg*2`NfvsF;qdY#wY*m*B+%oQ|c65UP2rncbz`dT_oAjN?w;?cp^m>#jM39`*lrC zUfQtJbO88Ep2t6~_lJggS6}ZpEX_^Qy_3dUf?fh1GS>#o4r$D@$0omLL6QB}*xL2H zrJ>pG4F4U*PA$WPY8KfN?LYHz)Rket?qIgCy{yj=^?~6aw>KZ@Y^^%JTF=z!ySY=p zRB@WH5N~V^%+(!UbTamwD_amqywQ=$bEvKST`}S=3z;4al87+wU?-1 z!u;peUYd1uGBFF>kZpCM84vAR8&qnsQSOiuU_t(( zKX>%02kE6#z8Tc?q`xMi*T>LTpYjRzTs^M=%17oaR>LKabE*I~fM^chQQdh=+lhn* zF^q}1M$4}DlOxU}Bn%Io#0Fu~at&~&2uqk!Q~-r%ic-^@NW19s{~;Gp%QO;^$JLuH zDYKx3Qar5mtd>)mMg3aCam+&)RjoH=86Fx~Xi9;kzjR?Q>c{U6oAd3G34x1nnJ1N8 zh1J(0_4Thr7iMA1=**vY{&H%UTURH-F&&uIFFe7u6t5;emu|HAZ;Q7m1z#UaNzR=# zeImX$s>#SL>BW-y!H@=k``0CZ(|=8RUf*^!0j96Lt{;J|d^VV+D$*vG zm!Wll!xK-d&QXU0lXGJeVD9Nh|8dWb`L9gmM_6G5@)?*1JNVh`&*mbWzNDG(#!A2BOvfoNx(xZwL0`AJR`?_nK2Ns>U3A zy(lM;M>7bWQk1Ulei6Y69Hv>1KB9Xlo;deCh_Uo;B3!1mxNL%KvK0&=kV9qHfRQ+4 zig^5Qdxt)@3bGFrX3>%H_eVp4e#|fD(q5SGAq@znB)5qB?~>c_os3b|(woih`;5f7n_|*rR%Wwe z_okki^-2|HUd+Ln=tL@_+`jp!)luIACJO}V3|DH=+ssunYEQit#a`4qA?8wSSG}eC z>$APTW$of$^kxqevP-KkgI8O+A(bn;xrPpwKx8+&ZYh#3`g5%$AFhYV)A&rc_=W(f=)wMSiQi->bTM z>-q&1lNNHyY1dfR!)wRn0jkyt#z{BT%R`4udc1&|t#mSfNmbfhV5_U<)TrZ_iqq+V zlW%k6+&oUEXqtTNlY#cNNKf)Fi6j^;SPP`}xzsd<3}?C?Fs^vq#0HvXj>y0|B_y754?W1&IDzjubshAf@7S&{)L`K=KQVX-5RdTAMoT>glJpd8CO-s* z>SW1A=8XgrP>CS+B*e_hxsc>gNCyRT5ZIHEH5`uz`aHixvF+V;C{L>q2{;$paLxd4 zZR`+EVF5OD^^iSy73zRiYtjd0?dK}p7VFynlrZqon{)6)vDdV|d~LVLluOt#pzDTm zC}pgegbk>lIh*ssjoyR_=J+eoFvwF1Hj9 zt$o>R{RO-o`vJ){B=eyHbVFiJVgDR$tUUl%?~%kaK0eae08f%q$QokM)g7iO?$r5w6Lvfy7(2YLM_lIxW(J* zc>gQ^-#oUJt-2nnm?~eTLP@xvY8R*CZl78Pw4vc1W;-9rxD$M#E|fS$y0)j1XMV$Rj?-7`vb*is#!W<8{=f*o3ww-nS?4Im({|{NROixdDc0bT z$X8oBzo!r

- {task.video && ( + {task.video ? (
+ ) : ( +
)} )} diff --git a/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx b/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx index f98c17b8ed..0d10e733b6 100644 --- a/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx +++ b/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx @@ -11,6 +11,17 @@ import { useEffect, useState, } from "react"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogFooter, +} from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import Link from "next/link"; +import { set } from "lodash"; const OnboardingContext = createContext< | { @@ -21,6 +32,7 @@ const OnboardingContext = createContext< step: number; setStep: (step: number) => void; completeStep: (step: OnboardingStep) => void; + incrementRuns: () => void; } | undefined >(undefined); @@ -60,6 +72,7 @@ export default function OnboardingProvider({ const [state, setState] = useState(null); // Step is used to control the progress bar, it's frontend only const [step, setStep] = useState(1); + const [npsDialogOpen, setNpsDialogOpen] = useState(false); const api = useBackendAPI(); const pathname = usePathname(); const router = useRouter(); @@ -109,6 +122,7 @@ export default function OnboardingProvider({ selectedStoreListingVersionId: null, agentInput: null, onboardingAgentExecutionId: null, + agentRuns: 0, ...newState, }; } @@ -129,10 +143,50 @@ export default function OnboardingProvider({ [state, updateState], ); + const incrementRuns = useCallback(() => { + if (!state || state.completedSteps.includes("RUN_AGENTS")) return; + + const finished = state.agentRuns + 1 >= 10; + setNpsDialogOpen(finished); + updateState({ + agentRuns: state.agentRuns + 1, + ...(finished && { + completedSteps: [...state.completedSteps, "RUN_AGENTS"], + }), + }); + }, [api, state]); + return ( + + + + We'd love your feedback + + You've run 10 agents — amazing! We're constantly + improving the platform, and your thoughts help shape what we build + next. This 1-minute form is just a few quick questions to share + how things are going. + + + + + + + + + + {children} ); diff --git a/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx b/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx index f9d2f230f2..f559ac863c 100644 --- a/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx +++ b/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx @@ -26,7 +26,6 @@ import { InputItem } from "@/components/RunnerUIWrapper"; import { GraphMeta } from "@/lib/autogpt-server-api"; import { default as NextLink } from "next/link"; import { useOnboarding } from "@/components/onboarding/onboarding-provider"; -import { get } from "lodash"; const ajv = new Ajv({ strict: false, allErrors: true }); @@ -80,7 +79,7 @@ export default function useAgentGraph( useState(false); const [nodes, setNodes] = useState([]); const [edges, setEdges] = useState([]); - const { state, completeStep } = useOnboarding(); + const { state, completeStep, incrementRuns } = useOnboarding(); const api = useMemo( () => new BackendAPI(process.env.NEXT_PUBLIC_AGPT_SERVER_URL!), @@ -656,7 +655,7 @@ export default function useAgentGraph( setSaveRunRequest({ request: "run", state: "error" }); }); - processedUpdates.current = processedUpdates.current = []; + processedUpdates.current = []; } } // Handle stop request @@ -758,13 +757,14 @@ export default function useAgentGraph( // an empty set means the graph has finished running. cancelExecListener(); setSaveRunRequest({ request: "none", state: "none" }); + incrementRuns(); } }, ); }; fetchExecutions(); - }, [flowID, flowExecutionID]); + }, [flowID, flowExecutionID, incrementRuns]); // Check if node ids are synced with saved agent useEffect(() => { diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts index 1aec142578..e02790a8a3 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts @@ -844,6 +844,7 @@ export type OnboardingStep = | "AGENT_INPUT" | "CONGRATS" | "GET_RESULTS" + | "RUN_AGENTS" | "MARKETPLACE_VISIT" | "MARKETPLACE_ADD_AGENT" | "MARKETPLACE_RUN_AGENT" @@ -862,6 +863,7 @@ export interface UserOnboarding { selectedStoreListingVersionId: string | null; agentInput: { [key: string]: string | number } | null; onboardingAgentExecutionId: GraphExecutionID | null; + agentRuns: number; } /* *** UTILITIES *** */ From 692f32a350784bd1fe11ccddf3906387235f807b Mon Sep 17 00:00:00 2001 From: Bently Date: Wed, 28 May 2025 16:21:27 +0100 Subject: [PATCH 031/497] fix(platform): Turnstile CAPTCHA reset after failed login attempts (#10056) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Users were unable to retry login attempts after a failed authentication because the Turnstile CAPTCHA widget was not properly resetting. This forced users to refresh the entire page to attempt login again, creating a terrible user experience. Root Cause: The useTurnstile hook had several critical issues: - The reset() function only cleared state when shouldRender was true and widget existed - Widget ID tracking was unreliable due to intercepting window.turnstile.render - Token wasn't being cleared on verification failures - State wasn't being reset consistently across error scenarios Changes 🏗️ - Fixed useTurnstile hook reset logic: Modified the reset() function to always clear all state (token, verified, verifying, error) regardless of shouldRender condition - Improved widget ID synchronization: Added setWidgetId prop to the Turnstile component interface and hook for reliable widget tracking between component and hook - Enhanced error handling: Updated handleVerify, handleExpire, and handleError to properly reset tokens on failures - Updated all auth components: Added setWidgetId prop to all Turnstile component usages in login, signup, and password reset pages - Removed unreliable widget tracking: Eliminated the window.turnstile.render interception approach in favor of explicit prop-based communication Checklist 📋 For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - - [x] Test failed login attempt - CAPTCHA resets properly without page refresh - [x] Test failed signup attempt - CAPTCHA resets properly without page refresh - [x] Test successful login flow - CAPTCHA works normally - [x] Test CAPTCHA expiration - State resets correctly - [x] Test CAPTCHA error scenarios - Error handling works properly --- .../src/app/(platform)/login/page.tsx | 1 + .../app/(platform)/reset_password/page.tsx | 2 + .../src/app/(platform)/signup/page.tsx | 1 + .../src/components/auth/Turnstile.tsx | 29 ++++++++++-- .../frontend/src/hooks/useTurnstile.ts | 44 ++++++++++++------- 5 files changed, 57 insertions(+), 20 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx index b13cfc8acd..78cdf49dd0 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx @@ -163,6 +163,7 @@ export default function LoginPage() { onVerify={turnstile.handleVerify} onExpire={turnstile.handleExpire} onError={turnstile.handleError} + setWidgetId={turnstile.setWidgetId} action="login" shouldRender={turnstile.shouldRender} /> diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx index 116dbfdff5..934e2add93 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx @@ -188,6 +188,7 @@ export default function ResetPasswordPage() { onVerify={changePasswordTurnstile.handleVerify} onExpire={changePasswordTurnstile.handleExpire} onError={changePasswordTurnstile.handleError} + setWidgetId={changePasswordTurnstile.setWidgetId} action="change_password" shouldRender={changePasswordTurnstile.shouldRender} /> @@ -230,6 +231,7 @@ export default function ResetPasswordPage() { onVerify={sendEmailTurnstile.handleVerify} onExpire={sendEmailTurnstile.handleExpire} onError={sendEmailTurnstile.handleError} + setWidgetId={sendEmailTurnstile.setWidgetId} action="reset_password" shouldRender={sendEmailTurnstile.shouldRender} /> diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx index 68871c77f2..aceb96fe1b 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx @@ -164,6 +164,7 @@ export default function SignupPage() { onVerify={turnstile.handleVerify} onExpire={turnstile.handleExpire} onError={turnstile.handleError} + setWidgetId={turnstile.setWidgetId} action="signup" shouldRender={turnstile.shouldRender} /> diff --git a/autogpt_platform/frontend/src/components/auth/Turnstile.tsx b/autogpt_platform/frontend/src/components/auth/Turnstile.tsx index 018406a7f6..a0e2ccc872 100644 --- a/autogpt_platform/frontend/src/components/auth/Turnstile.tsx +++ b/autogpt_platform/frontend/src/components/auth/Turnstile.tsx @@ -11,6 +11,7 @@ export interface TurnstileProps { className?: string; id?: string; shouldRender?: boolean; + setWidgetId?: (id: string | null) => void; } export function Turnstile({ @@ -22,6 +23,7 @@ export function Turnstile({ className, id = "cf-turnstile", shouldRender = true, + setWidgetId, }: TurnstileProps) { const containerRef = useRef(null); const widgetIdRef = useRef(null); @@ -68,7 +70,11 @@ export function Turnstile({ // Reset any existing widget if (widgetIdRef.current && window.turnstile) { - window.turnstile.reset(widgetIdRef.current); + try { + window.turnstile.reset(widgetIdRef.current); + } catch (err) { + console.warn("Failed to reset existing Turnstile widget:", err); + } } // Render a new widget @@ -86,15 +92,32 @@ export function Turnstile({ }, action, }); + + // Notify the hook about the widget ID + setWidgetId?.(widgetIdRef.current); } return () => { if (widgetIdRef.current && window.turnstile) { - window.turnstile.remove(widgetIdRef.current); + try { + window.turnstile.remove(widgetIdRef.current); + } catch (err) { + console.warn("Failed to remove Turnstile widget:", err); + } + setWidgetId?.(null); widgetIdRef.current = null; } }; - }, [loaded, siteKey, onVerify, onExpire, onError, action, shouldRender]); + }, [ + loaded, + siteKey, + onVerify, + onExpire, + onError, + action, + shouldRender, + setWidgetId, + ]); // Method to reset the widget manually const reset = useCallback(() => { diff --git a/autogpt_platform/frontend/src/hooks/useTurnstile.ts b/autogpt_platform/frontend/src/hooks/useTurnstile.ts index 29f93fbf8e..edb7e9b6fa 100644 --- a/autogpt_platform/frontend/src/hooks/useTurnstile.ts +++ b/autogpt_platform/frontend/src/hooks/useTurnstile.ts @@ -21,6 +21,7 @@ interface UseTurnstileResult { reset: () => void; siteKey: string; shouldRender: boolean; + setWidgetId: (id: string | null) => void; } const TURNSTILE_SITE_KEY = @@ -34,7 +35,7 @@ export function useTurnstile({ autoVerify = true, onSuccess, onError, - resetOnError = false, + resetOnError = true, }: UseTurnstileOptions = {}): UseTurnstileResult { const [token, setToken] = useState(null); const [verifying, setVerifying] = useState(false); @@ -60,26 +61,30 @@ export function useTurnstile({ } }, [token, autoVerify, shouldRender]); - useEffect(() => { - if (typeof window !== "undefined" && window.turnstile) { - const originalRender = window.turnstile.render; - window.turnstile.render = (container, options) => { - const id = originalRender(container, options); - setWidgetId(id); - return id; - }; - } + const setWidgetIdCallback = useCallback((id: string | null) => { + setWidgetId(id); }, []); const reset = useCallback(() => { - if (shouldRender && window.turnstile && widgetId) { - window.turnstile.reset(widgetId); + // Always reset the state when reset is called, regardless of shouldRender + // This ensures users can retry CAPTCHA after failed attempts + setToken(null); + setVerified(false); + setVerifying(false); + setError(null); - // Always reset the state when reset is called - setToken(null); - setVerified(false); - setVerifying(false); - setError(null); + // Only reset the actual Turnstile widget if it exists and shouldRender is true + if ( + shouldRender && + typeof window !== "undefined" && + window.turnstile && + widgetId + ) { + try { + window.turnstile.reset(widgetId); + } catch (err) { + console.warn("Failed to reset Turnstile widget:", err); + } } }, [shouldRender, widgetId]); @@ -106,6 +111,7 @@ export function useTurnstile({ setError(newError); if (onError) onError(newError); if (resetOnError) { + setToken(null); setVerified(false); } } @@ -119,6 +125,7 @@ export function useTurnstile({ : new Error("Unknown error during verification"); setError(newError); if (resetOnError) { + setToken(null); setVerified(false); } setVerifying(false); @@ -138,6 +145,7 @@ export function useTurnstile({ if (shouldRender) { setToken(null); setVerified(false); + setError(null); } }, [shouldRender]); @@ -146,6 +154,7 @@ export function useTurnstile({ if (shouldRender) { setError(err); if (resetOnError) { + setToken(null); setVerified(false); } if (onError) onError(err); @@ -165,5 +174,6 @@ export function useTurnstile({ reset, siteKey: TURNSTILE_SITE_KEY, shouldRender, + setWidgetId: setWidgetIdCallback, }; } From 85e108a37a6b3fe8948afe231cb69777b5bd84c1 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Fri, 30 May 2025 16:23:32 +0100 Subject: [PATCH 032/497] feat(frontend): require passwrods to be min length 12 (#10061) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're doing CASA and this is a requirement ### Changes 🏗️ - Requires new passwords to be min length 12 ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] test --- .../src/components/profile/settings/SettingsForm.tsx | 4 ++-- autogpt_platform/frontend/src/types/auth.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/autogpt_platform/frontend/src/components/profile/settings/SettingsForm.tsx b/autogpt_platform/frontend/src/components/profile/settings/SettingsForm.tsx index 9ae19e654f..fbd1202f5a 100644 --- a/autogpt_platform/frontend/src/components/profile/settings/SettingsForm.tsx +++ b/autogpt_platform/frontend/src/components/profile/settings/SettingsForm.tsx @@ -33,9 +33,9 @@ const formSchema = z .optional() .refine((val) => { // If password is provided, it must be at least 8 characters - if (val) return val.length >= 8; + if (val) return val.length >= 12; return true; - }, "String must contain at least 8 character(s)"), + }, "String must contain at least 12 character(s)"), confirmPassword: z.string().optional(), notifyOnAgentRun: z.boolean(), notifyOnZeroBalance: z.boolean(), diff --git a/autogpt_platform/frontend/src/types/auth.ts b/autogpt_platform/frontend/src/types/auth.ts index 21e77cd562..545ac976da 100644 --- a/autogpt_platform/frontend/src/types/auth.ts +++ b/autogpt_platform/frontend/src/types/auth.ts @@ -23,11 +23,11 @@ export const signupFormSchema = z .trim(), password: z .string() - .min(6, "Password must contain at least 6 characters") + .min(12, "Password must contain at least 12 characters") .max(64, "Password must contain at most 64 characters"), confirmPassword: z .string() - .min(6, "Password must contain at least 6 characters") + .min(12, "Password must contain at least 12 characters") .max(64, "Password must contain at most 64 characters"), agreeToTerms: z.boolean().refine((value) => value === true, { message: "You must agree to the Terms of Use and Privacy Policy", @@ -50,11 +50,11 @@ export const changePasswordFormSchema = z .object({ password: z .string() - .min(6, "Password must contain at least 6 characters") + .min(12, "Password must contain at least 12 characters") .max(64, "Password must contain at most 64 characters"), confirmPassword: z .string() - .min(6, "Password must contain at least 6 characters") + .min(12, "Password must contain at least 12 characters") .max(64, "Password must contain at most 64 characters"), }) .refine((data) => data.password === data.confirmPassword, { From 16d6f5377c1362d665e8a0b618d0356710924fcf Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Fri, 30 May 2025 17:31:00 +0100 Subject: [PATCH 033/497] fix(frontend): missed a password prompt (#10065) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CASA requires a length of 12 passwords, which we did update. When testing in dev, I realized I missed a few. ### Changes 🏗️ updates a missed prompt ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Test manually, and read all the prompts carefully --- .../frontend/src/app/(platform)/reset_password/page.tsx | 2 +- autogpt_platform/frontend/src/app/(platform)/signup/page.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx index 934e2add93..5f70f34f82 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx @@ -175,7 +175,7 @@ export default function ResetPasswordPage() { - Password needs to be at least 6 characters long + Password needs to be at least 12 characters long diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx index aceb96fe1b..2974e281a2 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx @@ -151,7 +151,7 @@ export default function SignupPage() { - Password needs to be at least 6 characters long + Password needs to be at least 12 characters long From 56ddffeaa042784f4ed846761d015e1dbf69bc54 Mon Sep 17 00:00:00 2001 From: Swifty Date: Sat, 31 May 2025 10:39:57 +0200 Subject: [PATCH 034/497] feat(ci): Add cross-repository dev deployment workflow (#10059) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Description 📝 This PR introduces a GitHub Actions workflow that enables cross-repository event dispatching for development environment deployments. The workflow listens for specific PR events and dispatches corresponding deployment/undeployment actions to our cloud infrastructure repository. **How it works:** - The workflow triggers on PR events (opened, synchronized, closed) and PR target events (labeled, unlabeled) - When a PR comment containing `!deploy` is detected from authorized users (PR author, repo owners, members, or collaborators), it dispatches a deployment event - When a PR with existing deployments is closed, it automatically dispatches an undeployment event to clean up resources **Interaction with target repository:** The workflow dispatches events to `Significant-Gravitas/AutoGPT_cloud_infrastructure` with a payload containing: - `action`: Either "deploy" or "undeploy" - `pr_number`: The PR number for tracking - `pr_title`: Human-readable identifier - `pr_state`: Current PR state - `repo`: Source repository name This enables the infrastructure repository to spin up isolated development environments for each PR on demand. ### Changes 🏗️ - Added `.github/workflows/dev-deploy-pr-dispatcher.yml` workflow file - Implements secure cross-repository communication using repository dispatch events - Includes authorization checks to ensure only authorized users can trigger deployments ### Checklist 📋 #### For code changes: - [x] No code changes - this is a workflow addition only #### For configuration changes: - [x] New workflow file added that requires testing - [x] Requires `DISPATCH_TOKEN` secret to be configured with appropriate permissions for cross-repository dispatch - [x] No environment variable changes needed - [ ] Workflow will be tested after initial merge to verify proper event dispatching --- .../platform-autogpt-deploy-dev.yaml | 298 +++++++++++++++--- .github/workflows/platform-dev-deploy.yml | 57 ++++ 2 files changed, 312 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/platform-dev-deploy.yml diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml index 44da8641ec..0c16909a0c 100644 --- a/.github/workflows/platform-autogpt-deploy-dev.yaml +++ b/.github/workflows/platform-autogpt-deploy-dev.yaml @@ -1,51 +1,263 @@ -name: AutoGPT Platform - Deploy Dev Environment +name: Dev Deploy PR Event Dispatcher on: - push: - branches: [ dev ] - paths: - - 'autogpt_platform/**' - -permissions: - contents: 'read' - id-token: 'write' + pull_request: + types: [closed] + issue_comment: + types: [created] jobs: - migrate: - environment: develop - name: Run migrations for AutoGPT Platform - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip - pip install prisma - - - name: Run Backend Migrations - working-directory: ./autogpt_platform/backend - run: | - python -m prisma migrate deploy - env: - DATABASE_URL: ${{ secrets.BACKEND_DATABASE_URL }} - DIRECT_URL: ${{ secrets.BACKEND_DATABASE_URL }} - - trigger: - needs: migrate + dispatch: runs-on: ubuntu-latest steps: - - name: Trigger deploy workflow - uses: peter-evans/repository-dispatch@v3 + - name: Check comment permissions and deployment status + id: check_status + if: github.event_name == 'issue_comment' && github.event.issue.pull_request + uses: actions/github-script@v7 with: - token: ${{ secrets.DEPLOY_TOKEN }} + script: | + const commentBody = context.payload.comment.body.trim(); + const commentUser = context.payload.comment.user.login; + const prAuthor = context.payload.issue.user.login; + const authorAssociation = context.payload.comment.author_association; + + // Check permissions + const hasPermission = ( + commentUser === prAuthor || + authorAssociation === 'OWNER' || + authorAssociation === 'MEMBER' || + authorAssociation === 'COLLABORATOR' + ); + + core.setOutput('comment_body', commentBody); + core.setOutput('has_permission', hasPermission); + ` + if (!hasPermission && (commentBody === '!deploy' || commentBody === '!undeploy')) { + core.setOutput('permission_denied', 'true'); + return; + } + + if (commentBody !== '!deploy' && commentBody !== '!undeploy') { + return; + } + + // Get all comments to check deployment status + const comments = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number + }); + + let lastDeployIndex = -1; + let lastUndeployIndex = -1; + + comments.data.forEach((comment, index) => { + if (comment.body.trim() === '!deploy') { + lastDeployIndex = index; + } else if (comment.body.trim() === '!undeploy') { + lastUndeployIndex = index; + } + }); + + // Determine current deployment state + const hasActiveDeployment = lastDeployIndex !== -1 && lastDeployIndex > lastUndeployIndex; + + core.setOutput('has_active_deployment', hasActiveDeployment); + core.setOutput('last_deploy_index', lastDeployIndex); + core.setOutput('last_undeploy_index', lastUndeployIndex); + + // Determine actions + if (commentBody === '!deploy') { + if (hasActiveDeployment) { + core.setOutput('deploy_blocked', 'already_deployed'); + } else { + core.setOutput('should_deploy', 'true'); + } + } else if (commentBody === '!undeploy') { + if (!hasActiveDeployment) { + if (lastDeployIndex === -1) { + core.setOutput('undeploy_blocked', 'never_deployed'); + } else { + core.setOutput('undeploy_blocked', 'already_undeployed'); + } + } else { + core.setOutput('should_undeploy', 'true'); + } + } + + - name: Post permission denied comment + if: steps.check_status.outputs.permission_denied == 'true' + uses: actions/github-script@v7 + with: + script: | + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: `❌ **Permission denied**: Only the PR author, repository owners, members, or collaborators can use deployment commands.` + }); + + - name: Post deploy blocked comment + if: steps.check_status.outputs.deploy_blocked == 'already_deployed' + uses: actions/github-script@v7 + with: + script: | + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: `⚠️ **Deploy skipped**: This PR already has an active deployment. Use \`!undeploy\` first if you want to redeploy.` + }); + + - name: Post undeploy blocked comment + if: steps.check_status.outputs.undeploy_blocked != '' + uses: actions/github-script@v7 + with: + script: | + const reason = '${{ steps.check_status.outputs.undeploy_blocked }}'; + let message; + + if (reason === 'never_deployed') { + message = `⚠️ **Undeploy skipped**: This PR has never been deployed. Use \`!deploy\` first.`; + } else if (reason === 'already_undeployed') { + message = `⚠️ **Undeploy skipped**: This PR is already undeployed.`; + } + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: message + }); + + - name: Get PR details for deployment + id: pr_details + if: steps.check_status.outputs.should_deploy == 'true' || steps.check_status.outputs.should_undeploy == 'true' + uses: actions/github-script@v7 + with: + script: | + const pr = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number + }); + core.setOutput('pr_number', pr.data.number); + core.setOutput('pr_title', pr.data.title); + core.setOutput('pr_state', pr.data.state); + + - name: Dispatch Deploy Event + if: steps.check_status.outputs.should_deploy == 'true' + uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.DISPATCH_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure - event-type: build_deploy_dev - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "repository": "${{ github.repository }}"}' + event-type: pr-event + client-payload: | + { + "action": "deploy", + "pr_number": "${{ steps.pr_details.outputs.pr_number }}", + "pr_title": "${{ steps.pr_details.outputs.pr_title }}", + "pr_state": "${{ steps.pr_details.outputs.pr_state }}", + "repo": "${{ github.repository }}" + } + + - name: Post deploy success comment + if: steps.check_status.outputs.should_deploy == 'true' + uses: actions/github-script@v7 + with: + script: | + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: `🚀 **Deploying PR #${{ steps.pr_details.outputs.pr_number }}** to development environment...` + }); + + - name: Dispatch Undeploy Event (from comment) + if: steps.check_status.outputs.should_undeploy == 'true' + uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.DISPATCH_TOKEN }} + repository: Significant-Gravitas/AutoGPT_cloud_infrastructure + event-type: pr-event + client-payload: | + { + "action": "undeploy", + "pr_number": "${{ steps.pr_details.outputs.pr_number }}", + "pr_title": "${{ steps.pr_details.outputs.pr_title }}", + "pr_state": "${{ steps.pr_details.outputs.pr_state }}", + "repo": "${{ github.repository }}" + } + + - name: Post undeploy success comment + if: steps.check_status.outputs.should_undeploy == 'true' + uses: actions/github-script@v7 + with: + script: | + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: `🗑️ **Undeploying PR #${{ steps.pr_details.outputs.pr_number }}** from development environment...` + }); + + - name: Check deployment status on PR close + id: check_pr_close + if: github.event_name == 'pull_request' && github.event.action == 'closed' + uses: actions/github-script@v7 + with: + script: | + const comments = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number + }); + + let lastDeployIndex = -1; + let lastUndeployIndex = -1; + + comments.data.forEach((comment, index) => { + if (comment.body.trim() === '!deploy') { + lastDeployIndex = index; + } else if (comment.body.trim() === '!undeploy') { + lastUndeployIndex = index; + } + }); + + // Should undeploy if there's a !deploy without a subsequent !undeploy + const shouldUndeploy = lastDeployIndex !== -1 && lastDeployIndex > lastUndeployIndex; + core.setOutput('should_undeploy', shouldUndeploy); + + - name: Dispatch Undeploy Event (PR closed with active deployment) + if: >- + github.event_name == 'pull_request' && + github.event.action == 'closed' && + steps.check_pr_close.outputs.should_undeploy == 'true' + uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.DISPATCH_TOKEN }} + repository: Significant-Gravitas/AutoGPT_cloud_infrastructure + event-type: pr-event + client-payload: | + { + "action": "undeploy", + "pr_number": "${{ github.event.pull_request.number }}", + "pr_title": "${{ github.event.pull_request.title }}", + "pr_state": "${{ github.event.pull_request.state }}", + "repo": "${{ github.repository }}" + } + + - name: Post PR close undeploy comment + if: >- + github.event_name == 'pull_request' && + github.event.action == 'closed' && + steps.check_pr_close.outputs.should_undeploy == 'true' + uses: actions/github-script@v7 + with: + script: | + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: `🧹 **Auto-undeploying**: PR closed with active deployment. Cleaning up development environment for PR #${{ github.event.pull_request.number }}.` + }); \ No newline at end of file diff --git a/.github/workflows/platform-dev-deploy.yml b/.github/workflows/platform-dev-deploy.yml new file mode 100644 index 0000000000..20286572fb --- /dev/null +++ b/.github/workflows/platform-dev-deploy.yml @@ -0,0 +1,57 @@ +name: Dev Deploy PR Event Dispatcher + +on: + pull_request: + types: [opened, synchronize, closed] + issue_comment: + types: [created] + +jobs: + dispatch: + runs-on: ubuntu-latest + steps: + - name: Check if should dispatch + id: check + if: >- + github.event.issue.pull_request && + github.event.comment.body == '!deploy' && + ( + github.event.comment.user.login == github.event.issue.user.login || + github.event.comment.author_association == 'OWNER' || + github.event.comment.author_association == 'MEMBER' || + github.event.comment.author_association == 'COLLABORATOR' + ) + run: | + echo "should_dispatch=true" >> $GITHUB_OUTPUT + + - name: Dispatch PR Event + if: steps.check.outputs.should_dispatch == 'true' + uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.DISPATCH_TOKEN }} + repository: Significant-Gravitas/AutoGPT_cloud_infrastructure + event-type: pr-event + client-payload: | + { + "action": "deploy", + "pr_number": "${{ github.event.pull_request.number }}", + "pr_title": "${{ github.event.pull_request.title }}", + "pr_state": "${{ github.event.pull_request.state }}", + "repo": "${{ github.repository }}" + } + + - name: Dispatch PR Closure Event + if: github.event.action == 'closed' && contains(github.event.pull_request.comments.*.body, '!deploy') + uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.DISPATCH_TOKEN }} + repository: Significant-Gravitas/AutoGPT_cloud_infrastructure + event-type: pr-event + client-payload: | + { + "action": "undeploy", + "pr_number": "${{ github.event.pull_request.number }}", + "pr_title": "${{ github.event.pull_request.title }}", + "pr_state": "${{ github.event.pull_request.state }}", + "repo": "${{ github.repository }}" + } From 7c65e53d511ba606c3d36df23eb084c066ad6b3e Mon Sep 17 00:00:00 2001 From: SwiftyOS Date: Sat, 31 May 2025 10:43:47 +0200 Subject: [PATCH 035/497] rename workflow --- .github/workflows/platform-autogpt-deploy-dev.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml index 0c16909a0c..521b0b14d0 100644 --- a/.github/workflows/platform-autogpt-deploy-dev.yaml +++ b/.github/workflows/platform-autogpt-deploy-dev.yaml @@ -1,4 +1,4 @@ -name: Dev Deploy PR Event Dispatcher +name: AutoGPT Platform - Dev Deploy PR Event Dispatcher on: pull_request: From eeb1764779e5370a12d72b891d98602376b4a8e4 Mon Sep 17 00:00:00 2001 From: SwiftyOS Date: Sat, 31 May 2025 10:51:22 +0200 Subject: [PATCH 036/497] remove back tick on workflow --- .github/workflows/platform-autogpt-deploy-dev.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml index 521b0b14d0..f8985056ec 100644 --- a/.github/workflows/platform-autogpt-deploy-dev.yaml +++ b/.github/workflows/platform-autogpt-deploy-dev.yaml @@ -31,7 +31,7 @@ jobs: core.setOutput('comment_body', commentBody); core.setOutput('has_permission', hasPermission); - ` + if (!hasPermission && (commentBody === '!deploy' || commentBody === '!undeploy')) { core.setOutput('permission_denied', 'true'); return; From 768c6b1c971aa0d7dcd83013324166325df3057b Mon Sep 17 00:00:00 2001 From: SwiftyOS Date: Sat, 31 May 2025 11:24:56 +0200 Subject: [PATCH 037/497] fixed auto deploy script --- .../platform-autogpt-deploy-dev.yaml | 67 ++++++++++++------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml index f8985056ec..4ce86add3d 100644 --- a/.github/workflows/platform-autogpt-deploy-dev.yaml +++ b/.github/workflows/platform-autogpt-deploy-dev.yaml @@ -6,6 +6,10 @@ on: issue_comment: types: [created] +permissions: + issues: write + pull-requests: write + jobs: dispatch: runs-on: ubuntu-latest @@ -20,10 +24,10 @@ jobs: const commentUser = context.payload.comment.user.login; const prAuthor = context.payload.issue.user.login; const authorAssociation = context.payload.comment.author_association; + const triggeringCommentId = context.payload.comment.id; // Check permissions const hasPermission = ( - commentUser === prAuthor || authorAssociation === 'OWNER' || authorAssociation === 'MEMBER' || authorAssociation === 'COLLABORATOR' @@ -42,48 +46,63 @@ jobs: } // Get all comments to check deployment status - const comments = await github.rest.issues.listComments({ + const commentsResponse = await github.rest.issues.listComments({ owner: context.repo.owner, repo: context.repo.repo, - issue_number: context.issue.number + issue_number: context.issue.number, + per_page: 100 }); - let lastDeployIndex = -1; + // Filter out the triggering comment + const commentsData = commentsResponse.data.filter(comment => comment.id !== triggeringCommentId); + + // Find the last deploy and undeploy commands + let lastDeployIndex = -2; let lastUndeployIndex = -1; - comments.data.forEach((comment, index) => { - if (comment.body.trim() === '!deploy') { - lastDeployIndex = index; - } else if (comment.body.trim() === '!undeploy') { - lastUndeployIndex = index; + console.log(`Found ${commentsResponse.data.length} total comments, using ${commentsData.length} for status check after filtering`); + + // Iterate through comments in reverse to find the most recent commands + for (let i = commentsData.length - 1; i >= 0; i--) { + const currentCommentBody = commentsData[i].body.trim(); + console.log(`Processing comment ${i}: ${currentCommentBody}`); + + if (currentCommentBody === '!deploy' && lastDeployIndex === -2) { + lastDeployIndex = i; + } else if (currentCommentBody === '!undeploy' && lastUndeployIndex === -1) { + lastUndeployIndex = i; } - }); + + // Break early if we found both + if (lastDeployIndex !== -2 && lastUndeployIndex !== -1) { + break; + } + } - // Determine current deployment state - const hasActiveDeployment = lastDeployIndex !== -1 && lastDeployIndex > lastUndeployIndex; + console.log(`Last deploy index: ${lastDeployIndex}`); + console.log(`Last undeploy index: ${lastUndeployIndex}`); - core.setOutput('has_active_deployment', hasActiveDeployment); - core.setOutput('last_deploy_index', lastDeployIndex); - core.setOutput('last_undeploy_index', lastUndeployIndex); + // Currently deployed if there's a deploy command after the last undeploy + const isCurrentlyDeployed = lastDeployIndex > lastUndeployIndex; - // Determine actions + // Determine actions based on current state and requested command if (commentBody === '!deploy') { - if (hasActiveDeployment) { + if (isCurrentlyDeployed) { core.setOutput('deploy_blocked', 'already_deployed'); } else { core.setOutput('should_deploy', 'true'); } } else if (commentBody === '!undeploy') { - if (!hasActiveDeployment) { - if (lastDeployIndex === -1) { - core.setOutput('undeploy_blocked', 'never_deployed'); - } else { - core.setOutput('undeploy_blocked', 'already_undeployed'); - } + if (!isCurrentlyDeployed) { + // Check if there was ever a deploy + const hasEverDeployed = lastDeployIndex !== -2; + core.setOutput('undeploy_blocked', hasEverDeployed ? 'already_undeployed' : 'never_deployed'); } else { core.setOutput('should_undeploy', 'true'); } } + + core.setOutput('has_active_deployment', isCurrentlyDeployed); - name: Post permission denied comment if: steps.check_status.outputs.permission_denied == 'true' @@ -94,7 +113,7 @@ jobs: owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, - body: `❌ **Permission denied**: Only the PR author, repository owners, members, or collaborators can use deployment commands.` + body: `❌ **Permission denied**: Only the repository owners, members, or collaborators can use deployment commands.` }); - name: Post deploy blocked comment From 453834f4755889d947c7a4e15312ea9625e3e447 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Mon, 2 Jun 2025 09:33:15 -0500 Subject: [PATCH 038/497] fix(docs): comment out segment about video because we removed video (#10073) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We removed the linked video because out of date so unlink it ### Changes 🏗️ Comment out video segment until new one posted ### Checklist 📋 #### For code changes: - [x] no code changes made --- docs/content/platform/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/platform/getting-started.md b/docs/content/platform/getting-started.md index 1cfaac7aed..b27949f275 100644 --- a/docs/content/platform/getting-started.md +++ b/docs/content/platform/getting-started.md @@ -6,7 +6,7 @@ This guide will help you setup the server and builder for the project. -We also offer this in video format. You can check it out [here](https://github.com/Significant-Gravitas/AutoGPT?tab=readme-ov-file#how-to-setup-for-self-hosting). + !!! warning **DO NOT FOLLOW ANY OUTSIDE TUTORIALS AS THEY WILL LIKELY BE OUT OF DATE** From 0ec557b9427ee75b931961c82b8e5025d891ce13 Mon Sep 17 00:00:00 2001 From: JU-NINE NGU CHO Date: Mon, 2 Jun 2025 15:46:37 +0100 Subject: [PATCH 039/497] docs: add system requirements section to README (#10054) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR adds a comprehensive system requirements section to the README.md file. Currently, users don't have clear guidance on the hardware, software, and network requirements needed to run AutoGPT. This addition will help users determine if their system is capable of running AutoGPT before attempting installation. - Resolves #10050 ### Changes 🏗️ - Added new "System Requirements" section under "How to Setup for Self-Hosting" with: - Hardware Requirements - CPU specifications (4+ cores) - RAM requirements (8GB min, 16GB recommended) - Storage requirements (10GB minimum) - Software Requirements - Supported Operating Systems - Required software with minimum versions - Development tools requirements - Network Requirements - Internet connectivity requirements - Port access information - HTTPS connection requirements ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Verified README.md renders correctly on GitHub - [x] Confirmed all formatting is consistent - [x] Validated all requirements are accurate - [x] Checked section placement is logical - [x] Ensured no other files are modified #### For configuration changes: - [x] Not applicable - This PR only contains documentation changes to README.md - [x] No configuration files are modified in this update Co-authored-by: Bently --- README.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dfb2277487..29f7d5b8fb 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,35 @@ > Setting up and hosting the AutoGPT Platform yourself is a technical process. > If you'd rather something that just works, we recommend [joining the waitlist](https://bit.ly/3ZDijAI) for the cloud-hosted beta. +### System Requirements + +Before proceeding with the installation, ensure your system meets the following requirements: + +#### Hardware Requirements +- CPU: 4+ cores recommended +- RAM: Minimum 8GB, 16GB recommended +- Storage: At least 10GB of free space + +#### Software Requirements +- Operating Systems: + - Linux (Ubuntu 20.04 or newer recommended) + - macOS (10.15 or newer) + - Windows 10/11 with WSL2 +- Required Software (with minimum versions): + - Docker Engine (20.10.0 or newer) + - Docker Compose (2.0.0 or newer) + - Git (2.30 or newer) + - Node.js (16.x or newer) + - npm (8.x or newer) + - VSCode (1.60 or newer) or any modern code editor + +#### Network Requirements +- Stable internet connection +- Access to required ports (will be configured in Docker) +- Ability to make outbound HTTPS connections + ### Updated Setup Instructions: -We’ve moved to a fully maintained and regularly updated documentation site. +We've moved to a fully maintained and regularly updated documentation site. 👉 [Follow the official self-hosting guide here](https://docs.agpt.co/platform/getting-started/) @@ -152,7 +179,7 @@ Just clone the repo, install dependencies with `./run setup`, and you should be [![Join us on Discord](https://invidget.switchblade.xyz/autogpt)](https://discord.gg/autogpt) -To report a bug or request a feature, create a [GitHub Issue](https://github.com/Significant-Gravitas/AutoGPT/issues/new/choose). Please ensure someone else hasn’t created an issue for the same topic. +To report a bug or request a feature, create a [GitHub Issue](https://github.com/Significant-Gravitas/AutoGPT/issues/new/choose). Please ensure someone else hasn't created an issue for the same topic. ## 🤝 Sister projects From 3f6585f763825aee0881978a4523930fee78e585 Mon Sep 17 00:00:00 2001 From: Toran Bruce Richards Date: Mon, 2 Jun 2025 21:46:48 +0100 Subject: [PATCH 040/497] feat(platform/blocks): add AI Image Editor Block powered by flux kontext (#10063) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR adds a new internal block, **AI Image Editor**, which enables **text-based image editing** via BlackForest Labs’ Flux Kontext models on Replicate. This block allows users to input a prompt and optionally a reference image, and returns a transformed image URL. It supports two model variants (Pro and Max), with different cost tiers. This functionality will enhance multimedia capabilities across internal agent workflows and support richer AI-powered image manipulation. --- ### Changes 🏗️ * Added `FluxKontextBlock` in `backend/blocks/flux_kontext.py` * Uses `ReplicateClient` to call Flux Kontext Pro or Max models * Supports inputs for `prompt`, `input_image`, `aspect_ratio`, `seed`, and `model` * Outputs transformed image URL or error * Added credit pricing logic for Flux Kontext models to `block_cost_config.py`: * Pro: 10 credits * Max: 20 credits * Added documentation for the new block at `docs/content/platform/blocks/flux_kontext.md` * Updated block index at `docs/content/platform/blocks/blocks.md` to include Flux Kontext --- ![image](https://github.com/user-attachments/assets/0edb2b30-4c37-4184-bcc8-9d733658f620) ### Checklist 📋 #### For code changes: * [x] I have clearly listed my changes in the PR description * [x] I have made a test plan * [x] I have tested my changes according to the test plan: * [x] Prompt-only input generates an image * [x] Prompt with image applies edit correctly * [x] Image respects specified aspect ratio * [x] Invalid image URL returns helpful error * [x] Using the same seed gives consistent output * [x] Output chaining works: result URI can be used in downstream blocks * [x] Output from Max model shows higher fidelity than Pro
Example test plan * [x] Create from scratch and execute an agent using Flux Kontext with at least 3 blocks * [x] Import agent with Flux Kontext from file upload, and confirm execution * [x] Upload agent (with Flux Kontext block) to marketplace (internal test) * [x] Import agent from marketplace and confirm correct execution * [x] Edit agent with Flux Kontext block from monitor and confirm output
#### For configuration changes: * [x] `.env.example` is updated or already compatible with my changes * [x] `docker-compose.yml` is updated or already compatible with my changes * [x] I have included a list of my configuration changes in the PR description (under **Changes**) * No new environment variables or services introduced
Examples of configuration changes * N/A
--------- Co-authored-by: Zamil Majdy --- .../backend/backend/blocks/flux_kontext.py | 174 ++++++++++++++++++ .../backend/backend/data/block_cost_config.py | 25 +++ docs/content/platform/blocks/blocks.md | 1 + docs/content/platform/blocks/flux_kontext.md | 31 ++++ 4 files changed, 231 insertions(+) create mode 100644 autogpt_platform/backend/backend/blocks/flux_kontext.py create mode 100644 docs/content/platform/blocks/flux_kontext.md diff --git a/autogpt_platform/backend/backend/blocks/flux_kontext.py b/autogpt_platform/backend/backend/blocks/flux_kontext.py new file mode 100644 index 0000000000..1cff9dbba2 --- /dev/null +++ b/autogpt_platform/backend/backend/blocks/flux_kontext.py @@ -0,0 +1,174 @@ +from enum import Enum +from typing import Literal, Optional + +from pydantic import SecretStr +from replicate.client import Client as ReplicateClient +from replicate.helpers import FileOutput + +from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema +from backend.data.model import ( + APIKeyCredentials, + CredentialsField, + CredentialsMetaInput, + SchemaField, +) +from backend.integrations.providers import ProviderName +from backend.util.file import MediaFileType + +TEST_CREDENTIALS = APIKeyCredentials( + id="01234567-89ab-cdef-0123-456789abcdef", + provider="replicate", + api_key=SecretStr("mock-replicate-api-key"), + title="Mock Replicate API key", + expires_at=None, +) +TEST_CREDENTIALS_INPUT = { + "provider": TEST_CREDENTIALS.provider, + "id": TEST_CREDENTIALS.id, + "type": TEST_CREDENTIALS.type, + "title": TEST_CREDENTIALS.type, +} + + +class FluxKontextModelName(str, Enum): + PRO = "Flux Kontext Pro" + MAX = "Flux Kontext Max" + + @property + def api_name(self) -> str: + return f"black-forest-labs/flux-kontext-{self.name.lower()}" + + +class AspectRatio(str, Enum): + MATCH_INPUT_IMAGE = "match_input_image" + ASPECT_1_1 = "1:1" + ASPECT_16_9 = "16:9" + ASPECT_9_16 = "9:16" + ASPECT_4_3 = "4:3" + ASPECT_3_4 = "3:4" + ASPECT_3_2 = "3:2" + ASPECT_2_3 = "2:3" + ASPECT_4_5 = "4:5" + ASPECT_5_4 = "5:4" + ASPECT_21_9 = "21:9" + ASPECT_9_21 = "9:21" + ASPECT_2_1 = "2:1" + ASPECT_1_2 = "1:2" + + +class AIImageEditorBlock(Block): + class Input(BlockSchema): + credentials: CredentialsMetaInput[ + Literal[ProviderName.REPLICATE], Literal["api_key"] + ] = CredentialsField( + description="Replicate API key with permissions for Flux Kontext models", + ) + prompt: str = SchemaField( + description="Text instruction describing the desired edit", + title="Prompt", + ) + input_image: Optional[MediaFileType] = SchemaField( + description="Reference image URI (jpeg, png, gif, webp)", + default=None, + title="Input Image", + ) + aspect_ratio: AspectRatio = SchemaField( + description="Aspect ratio of the generated image", + default=AspectRatio.MATCH_INPUT_IMAGE, + title="Aspect Ratio", + advanced=False, + ) + seed: Optional[int] = SchemaField( + description="Random seed. Set for reproducible generation", + default=None, + title="Seed", + advanced=True, + ) + model: FluxKontextModelName = SchemaField( + description="Model variant to use", + default=FluxKontextModelName.PRO, + title="Model", + ) + + class Output(BlockSchema): + output_image: MediaFileType = SchemaField( + description="URL of the transformed image" + ) + error: str = SchemaField(description="Error message if generation failed") + + def __init__(self): + super().__init__( + id="3fd9c73d-4370-4925-a1ff-1b86b99fabfa", + description=( + "Edit images using BlackForest Labs' Flux Kontext models. Provide a prompt " + "and optional reference image to generate a modified image." + ), + categories={BlockCategory.AI, BlockCategory.MULTIMEDIA}, + input_schema=AIImageEditorBlock.Input, + output_schema=AIImageEditorBlock.Output, + test_input={ + "prompt": "Add a hat to the cat", + "input_image": "https://example.com/cat.png", + "aspect_ratio": AspectRatio.MATCH_INPUT_IMAGE, + "seed": None, + "model": FluxKontextModelName.PRO, + "credentials": TEST_CREDENTIALS_INPUT, + }, + test_output=[ + ("output_image", "https://replicate.com/output/edited-image.png"), + ], + test_mock={ + "run_model": lambda *args, **kwargs: "https://replicate.com/output/edited-image.png", + }, + test_credentials=TEST_CREDENTIALS, + ) + + def run( + self, + input_data: Input, + *, + credentials: APIKeyCredentials, + **kwargs, + ) -> BlockOutput: + result = self.run_model( + api_key=credentials.api_key, + model_name=input_data.model.api_name, + prompt=input_data.prompt, + input_image=input_data.input_image, + aspect_ratio=input_data.aspect_ratio.value, + seed=input_data.seed, + ) + yield "output_image", result + + def run_model( + self, + api_key: SecretStr, + model_name: str, + prompt: str, + input_image: Optional[MediaFileType], + aspect_ratio: str, + seed: Optional[int], + ) -> MediaFileType: + client = ReplicateClient(api_token=api_key.get_secret_value()) + input_params = { + "prompt": prompt, + "input_image": input_image, + "aspect_ratio": aspect_ratio, + **({"seed": seed} if seed is not None else {}), + } + + output: FileOutput | list[FileOutput] = client.run( # type: ignore + model_name, + input=input_params, + wait=False, + ) + + if isinstance(output, list) and output: + output = output[0] + + if isinstance(output, FileOutput): + return MediaFileType(output.url) + if isinstance(output, str): + return MediaFileType(output) + + raise ValueError("No output received") diff --git a/autogpt_platform/backend/backend/data/block_cost_config.py b/autogpt_platform/backend/backend/data/block_cost_config.py index 8e6ca55f7e..384d1c870f 100644 --- a/autogpt_platform/backend/backend/data/block_cost_config.py +++ b/autogpt_platform/backend/backend/data/block_cost_config.py @@ -2,6 +2,7 @@ from typing import Type from backend.blocks.ai_music_generator import AIMusicGeneratorBlock from backend.blocks.ai_shortform_video_block import AIShortformVideoCreatorBlock +from backend.blocks.flux_kontext import AIImageEditorBlock, FluxKontextModelName from backend.blocks.ideogram import IdeogramModelBlock from backend.blocks.jina.embeddings import JinaEmbeddingBlock from backend.blocks.jina.search import ExtractWebsiteContentBlock, SearchTheWebBlock @@ -260,6 +261,30 @@ BLOCK_COSTS: dict[Type[Block], list[BlockCost]] = { }, ) ], + AIImageEditorBlock: [ + BlockCost( + cost_amount=10, + cost_filter={ + "model": FluxKontextModelName.PRO.api_name, + "credentials": { + "id": replicate_credentials.id, + "provider": replicate_credentials.provider, + "type": replicate_credentials.type, + }, + }, + ), + BlockCost( + cost_amount=20, + cost_filter={ + "model": FluxKontextModelName.MAX.api_name, + "credentials": { + "id": replicate_credentials.id, + "provider": replicate_credentials.provider, + "type": replicate_credentials.type, + }, + }, + ), + ], AIMusicGeneratorBlock: [ BlockCost( cost_amount=11, diff --git a/docs/content/platform/blocks/blocks.md b/docs/content/platform/blocks/blocks.md index 3ca02d88d3..9d994b7212 100644 --- a/docs/content/platform/blocks/blocks.md +++ b/docs/content/platform/blocks/blocks.md @@ -86,6 +86,7 @@ Below is a comprehensive list of all available blocks, categorized by their prim | [Unreal Text to Speech](text_to_speech_block.md#unreal-text-to-speech) | Converts text to speech using Unreal Speech API | | [AI Shortform Video Creator](ai_shortform_video_block.md#ai-shortform-video-creator) | Generates short-form videos using AI | | [Replicate Flux Advanced Model](replicate_flux_advanced.md#replicate-flux-advanced-model) | Creates images using Replicate's Flux models | +| [Flux Kontext](flux_kontext.md#flux-kontext) | Text-based image editing using Flux Kontext | ## Miscellaneous | Block Name | Description | diff --git a/docs/content/platform/blocks/flux_kontext.md b/docs/content/platform/blocks/flux_kontext.md new file mode 100644 index 0000000000..3aced2ba1f --- /dev/null +++ b/docs/content/platform/blocks/flux_kontext.md @@ -0,0 +1,31 @@ +# Flux Kontext + +## What it is +An internal block that performs text-based image editing using BlackForest Labs' Flux Kontext models. + +## What it does +Takes a prompt describing the desired transformation and optionally a reference image, then returns a new image URL. + +## How it works +The block sends your prompt, image, and settings to the selected Flux Kontext model on Replicate. The service processes the request and returns a link to the edited image. + +## Inputs +| Input | Description | +|--------------|-----------------------------------------------------------------------------| +| Credentials | Replicate API key with permissions for Flux Kontext models | +| Prompt | Text instruction describing the desired edit | +| Input Image | (Optional) Reference image URI (jpeg, png, gif, webp) | +| Aspect Ratio | Aspect ratio of the generated image (e.g. match_input_image, 1:1, 16:9, etc.) | +| Seed | (Optional, advanced) Random seed for reproducible generation | +| Model | Model variant to use: Flux Kontext Pro or Flux Kontext Max | + +## Outputs +| Output | Description | +|------------|------------------------------------------| +| image_url | URL of the transformed image | +| error | Error message if generation failed | + +## Use Cases +- Enhance a marketing image by requesting "add soft lighting and a subtle vignette" while providing the original asset as the reference image. +- Generate social media assets with specific aspect ratios and style prompts. +- Apply creative edits to product photos using text instructions. From 0f558876e288150d56b795faf8a05c94e96da11b Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Tue, 3 Jun 2025 14:55:12 +0700 Subject: [PATCH 041/497] feat(blocks;frontend): Add file multipart upload support for SendWebRequestBlock & Improve key-value input UI rendering (#10058) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now, SendWebRequestBlock can upload files. To make this work, we also need to improve the UI rendering on the key-value pair input so that it can also render media/file upload. ### Changes 🏗️ * Add file multipart upload support for SendWebRequestBlock * Improve key-value input UI rendering to allow rendering any types as a normal input block (it was only string & number). image ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Test running http request block, othe key-value pair input block --- .../backend/backend/blocks/http.py | 148 ++++++++++++------ autogpt_platform/backend/backend/util/file.py | 21 ++- .../src/components/node-input-components.tsx | 44 +++--- 3 files changed, 146 insertions(+), 67 deletions(-) diff --git a/autogpt_platform/backend/backend/blocks/http.py b/autogpt_platform/backend/backend/blocks/http.py index fa6e44d4e6..d186e7f70b 100644 --- a/autogpt_platform/backend/backend/blocks/http.py +++ b/autogpt_platform/backend/backend/blocks/http.py @@ -1,12 +1,19 @@ import json import logging from enum import Enum -from typing import Any +from io import BufferedReader +from pathlib import Path from requests.exceptions import HTTPError, RequestException from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField +from backend.util.file import ( + MediaFileType, + get_exec_file_path, + get_mime_type, + store_media_file, +) from backend.util.request import requests logger = logging.getLogger(name=__name__) @@ -38,13 +45,21 @@ class SendWebRequestBlock(Block): ) json_format: bool = SchemaField( title="JSON format", - description="Whether to send and receive body as JSON", + description="If true, send the body as JSON (unless files are also present).", default=True, ) - body: Any = SchemaField( - description="The body of the request", + body: dict | None = SchemaField( + description="Form/JSON body payload. If files are supplied, this must be a mapping of form‑fields.", default=None, ) + files_name: str = SchemaField( + description="The name of the file field in the form data.", + default="file", + ) + files: list[MediaFileType] = SchemaField( + description="Mapping of *form field name* → Image url / path / base64 url.", + default_factory=list, + ) class Output(BlockSchema): response: object = SchemaField(description="The response from the server") @@ -55,67 +70,112 @@ class SendWebRequestBlock(Block): def __init__(self): super().__init__( id="6595ae1f-b924-42cb-9a41-551a0611c4b4", - description="This block makes an HTTP request to the given URL.", + description="Make an HTTP request (JSON / form / multipart).", categories={BlockCategory.OUTPUT}, input_schema=SendWebRequestBlock.Input, output_schema=SendWebRequestBlock.Output, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + @staticmethod + def _prepare_files( + graph_exec_id: str, + files_name: str, + files: list[MediaFileType], + ) -> tuple[list[tuple[str, tuple[str, BufferedReader, str]]], list[BufferedReader]]: + """Convert the `files` mapping into the structure expected by `requests`. + + Returns a tuple of (**files_payload**, **open_handles**) so we can close handles later. + """ + files_payload: list[tuple[str, tuple[str, BufferedReader, str]]] = [] + open_handles: list[BufferedReader] = [] + + for media in files: + # Normalise to a list so we can repeat the same key + rel_path = store_media_file(graph_exec_id, media, return_content=False) + abs_path = get_exec_file_path(graph_exec_id, rel_path) + try: + handle = open(abs_path, "rb") + except Exception as e: + for h in open_handles: + try: + h.close() + except Exception: + pass + raise RuntimeError(f"Failed to open file '{abs_path}': {e}") from e + + open_handles.append(handle) + mime = get_mime_type(abs_path) + files_payload.append((files_name, (Path(abs_path).name, handle, mime))) + + return files_payload, open_handles + + def run(self, input_data: Input, *, graph_exec_id: str, **kwargs) -> BlockOutput: + # ─── Parse/normalise body ──────────────────────────────────── body = input_data.body + if isinstance(body, str): + try: + body = json.loads(body) + except json.JSONDecodeError: + # plain text – treat as form‑field value instead + input_data.json_format = False - if input_data.json_format: - if isinstance(body, str): - try: - # Try to parse as JSON first - body = json.loads(body) - except json.JSONDecodeError: - # If it's not valid JSON and just plain text, - # we should send it as plain text instead - input_data.json_format = False + # ─── Prepare files (if any) ────────────────────────────────── + use_files = bool(input_data.files) + files_payload: list[tuple[str, tuple[str, BufferedReader, str]]] = [] + open_handles: list[BufferedReader] = [] + if use_files: + files_payload, open_handles = self._prepare_files( + graph_exec_id, input_data.files_name, input_data.files + ) + # Enforce body format rules + if use_files and input_data.json_format: + raise ValueError( + "json_format=True cannot be combined with file uploads; set json_format=False and put form fields in `body`." + ) + + # ─── Execute request ───────────────────────────────────────── try: response = requests.request( input_data.method.value, input_data.url, headers=input_data.headers, - json=body if input_data.json_format else None, + files=files_payload if use_files else None, + # * If files → multipart ⇒ pass form‑fields via data= data=body if not input_data.json_format else None, + # * Else, choose JSON vs url‑encoded based on flag + json=body if (input_data.json_format and not use_files) else None, ) - if input_data.json_format: - if response.status_code == 204 or not response.content.strip(): - result = None - else: - result = response.json() + # Decide how to parse the response + if input_data.json_format or response.headers.get( + "content-type", "" + ).startswith("application/json"): + result = ( + None + if (response.status_code == 204 or not response.content.strip()) + else response.json() + ) else: result = response.text - yield "response", result + # Yield according to status code bucket + if 200 <= response.status_code < 300: + yield "response", result + elif 400 <= response.status_code < 500: + yield "client_error", result + else: + yield "server_error", result except HTTPError as e: - # Handle error responses - try: - result = e.response.json() if input_data.json_format else str(e) - except json.JSONDecodeError: - result = str(e) - - if 400 <= e.response.status_code < 500: - yield "client_error", result - elif 500 <= e.response.status_code < 600: - yield "server_error", result - else: - error_msg = ( - "Unexpected status code " - f"{e.response.status_code} '{e.response.reason}'" - ) - logger.warning(error_msg) - yield "error", error_msg - + yield "error", f"HTTP error: {str(e)}" except RequestException as e: - # Handle other request-related exceptions - yield "error", str(e) - + yield "error", f"Request error: {str(e)}" except Exception as e: - # Catch any other unexpected exceptions yield "error", str(e) + finally: + for h in open_handles: + try: + h.close() + except Exception: + pass diff --git a/autogpt_platform/backend/backend/util/file.py b/autogpt_platform/backend/backend/util/file.py index 2d6b0bf15d..5b876a3ec0 100644 --- a/autogpt_platform/backend/backend/util/file.py +++ b/autogpt_platform/backend/backend/util/file.py @@ -67,8 +67,7 @@ def store_media_file( return ext if ext else ".bin" def _file_to_data_uri(path: Path) -> str: - mime_type, _ = mimetypes.guess_type(path) - mime_type = mime_type or "application/octet-stream" + mime_type = get_mime_type(str(path)) b64 = base64.b64encode(path.read_bytes()).decode("utf-8") return f"data:{mime_type};base64,{b64}" @@ -130,3 +129,21 @@ def store_media_file( return MediaFileType(_file_to_data_uri(target_path)) else: return MediaFileType(_strip_base_prefix(target_path, base_path)) + + +def get_mime_type(file: str) -> str: + """ + Get the MIME type of a file, whether it's a data URI, URL, or local path. + """ + if file.startswith("data:"): + match = re.match(r"^data:([^;]+);base64,", file) + return match.group(1) if match else "application/octet-stream" + + elif file.startswith(("http://", "https://")): + parsed_url = urlparse(file) + mime_type, _ = mimetypes.guess_type(parsed_url.path) + return mime_type or "application/octet-stream" + + else: + mime_type, _ = mimetypes.guess_type(file) + return mime_type or "application/octet-stream" diff --git a/autogpt_platform/frontend/src/components/node-input-components.tsx b/autogpt_platform/frontend/src/components/node-input-components.tsx index e1b0ff2ce1..8db50a298c 100644 --- a/autogpt_platform/frontend/src/components/node-input-components.tsx +++ b/autogpt_platform/frontend/src/components/node-input-components.tsx @@ -493,10 +493,11 @@ export const NodeGenericInputField: FC<{ schema={propSchema as BlockIOKVSubSchema} entries={currentValue} errors={errors} - className={className} - displayName={displayName} connections={connections} handleInputChange={handleInputChange} + handleInputClick={handleInputClick} + className={className} + displayName={displayName} /> ); @@ -732,6 +733,7 @@ const NodeKeyValueInput: FC<{ errors: { [key: string]: string | undefined }; connections: NodeObjectInputTreeProps["connections"]; handleInputChange: NodeObjectInputTreeProps["handleInputChange"]; + handleInputClick: NodeObjectInputTreeProps["handleInputClick"]; className?: string; displayName?: string; }> = ({ @@ -741,6 +743,7 @@ const NodeKeyValueInput: FC<{ schema, connections, handleInputChange, + handleInputClick, errors, className, displayName, @@ -761,7 +764,7 @@ const NodeKeyValueInput: FC<{ }, [entries, schema.default, connections, nodeId, selfKey]); const [keyValuePairs, setKeyValuePairs] = useState< - { key: string; value: string | number | null }[] + { key: string; value: any }[] >([]); useEffect( @@ -778,18 +781,6 @@ const NodeKeyValueInput: FC<{ ); } - const isNumberType = - schema.additionalProperties && - ["number", "integer"].includes(schema.additionalProperties.type); - - function convertValueType(value: string): string | number | null { - if (isNumberType) { - const numValue = Number(value); - return !isNaN(numValue) ? numValue : null; - } - return value; - } - function getEntryKey(key: string): string { return `${selfKey}_#_${key}`; } @@ -799,6 +790,11 @@ const NodeKeyValueInput: FC<{ ); } + const propSchema = + schema.additionalProperties && schema.additionalProperties.type + ? schema.additionalProperties + : ({ type: "string" } as BlockIOSimpleTypeSubSchema); + return (
0 ? "flex flex-col" : "")} @@ -832,18 +828,24 @@ const NodeKeyValueInput: FC<{ ) } /> - + updateKeyValuePairs( keyValuePairs.toSpliced(index, 1, { key: key, - value: convertValueType(e.target.value), + value: newValue, }), ) } + handleInputClick={handleInputClick} /> - - - router.push("/profile")}> - Profile - - {user!.role === "admin" && ( - router.push("/admin/dashboard")}> - Admin Dashboard - - )} - - supabase?.auth.signOut().then(() => router.replace("/login")) - } - > - Log out - - - - ); -}; - -export default ProfileDropdown; diff --git a/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx b/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx index 176c4761c1..e5a4b98aa2 100644 --- a/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx +++ b/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx @@ -1,5 +1,5 @@ // components/RoleBasedAccess.tsx -import useSupabase from "@/hooks/useSupabase"; +import useSupabase from "@/lib/supabase/useSupabase"; import React from "react"; interface RoleBasedAccessProps { diff --git a/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx b/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx index d850c82a9a..c83945becc 100644 --- a/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx +++ b/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx @@ -9,7 +9,7 @@ import { Button } from "./Button"; import { IconPersonFill } from "@/components/ui/icons"; import { ProfileDetails } from "@/lib/autogpt-server-api/types"; import { Separator } from "@/components/ui/separator"; -import useSupabase from "@/hooks/useSupabase"; +import useSupabase from "@/lib/supabase/useSupabase"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; export const ProfileInfoForm = ({ profile }: { profile: ProfileDetails }) => { diff --git a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx index 954cfc2024..428c5a598d 100644 --- a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx +++ b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx @@ -1,13 +1,13 @@ "use client"; - -import { logout } from "@/app/(platform)/login/actions"; +import useSupabase from "@/lib/supabase/useSupabase"; import { IconLogOut } from "@/components/ui/icons"; export const ProfilePopoutMenuLogoutButton = () => { + const supabase = useSupabase(); return (
logout()} + onClick={() => supabase.logOut()} role="button" tabIndex={0} > diff --git a/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx b/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx index d31cda8530..91bdc40f46 100644 --- a/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx +++ b/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx @@ -1,3 +1,5 @@ +import { createContext, useCallback, useEffect, useState } from "react"; +import useSupabase from "@/lib/supabase/useSupabase"; import { APIKeyCredentials, CredentialsDeleteNeedConfirmationResponse, @@ -8,7 +10,6 @@ import { UserPasswordCredentials, } from "@/lib/autogpt-server-api"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; -import { createContext, useCallback, useEffect, useState } from "react"; // Get keys from CredentialsProviderName type const CREDENTIALS_PROVIDER_NAMES = Object.values( @@ -102,6 +103,7 @@ export default function CredentialsProvider({ }) { const [providers, setProviders] = useState(null); + const { isLoggedIn } = useSupabase(); const api = useBackendAPI(); const addCredentials = useCallback( @@ -202,48 +204,50 @@ export default function CredentialsProvider({ ); useEffect(() => { - api.isAuthenticated().then((isAuthenticated) => { - if (!isAuthenticated) return; + if (!isLoggedIn) { + if (isLoggedIn == false) setProviders(null); + return; + } - api.listCredentials().then((response) => { - const credentialsByProvider = response.reduce( - (acc, cred) => { - if (!acc[cred.provider]) { - acc[cred.provider] = []; - } - acc[cred.provider].push(cred); - return acc; - }, - {} as Record, - ); + api.listCredentials().then((response) => { + const credentialsByProvider = response.reduce( + (acc, cred) => { + if (!acc[cred.provider]) { + acc[cred.provider] = []; + } + acc[cred.provider].push(cred); + return acc; + }, + {} as Record, + ); - setProviders((prev) => ({ - ...prev, - ...Object.fromEntries( - CREDENTIALS_PROVIDER_NAMES.map((provider) => [ + setProviders((prev) => ({ + ...prev, + ...Object.fromEntries( + CREDENTIALS_PROVIDER_NAMES.map((provider) => [ + provider, + { provider, - { - provider, - providerName: providerDisplayNames[provider], - savedCredentials: credentialsByProvider[provider] ?? [], - oAuthCallback: (code: string, state_token: string) => - oAuthCallback(provider, code, state_token), - createAPIKeyCredentials: ( - credentials: APIKeyCredentialsCreatable, - ) => createAPIKeyCredentials(provider, credentials), - createUserPasswordCredentials: ( - credentials: UserPasswordCredentialsCreatable, - ) => createUserPasswordCredentials(provider, credentials), - deleteCredentials: (id: string, force: boolean = false) => - deleteCredentials(provider, id, force), - } satisfies CredentialsProviderData, - ]), - ), - })); - }); + providerName: providerDisplayNames[provider], + savedCredentials: credentialsByProvider[provider] ?? [], + oAuthCallback: (code: string, state_token: string) => + oAuthCallback(provider, code, state_token), + createAPIKeyCredentials: ( + credentials: APIKeyCredentialsCreatable, + ) => createAPIKeyCredentials(provider, credentials), + createUserPasswordCredentials: ( + credentials: UserPasswordCredentialsCreatable, + ) => createUserPasswordCredentials(provider, credentials), + deleteCredentials: (id: string, force: boolean = false) => + deleteCredentials(provider, id, force), + } satisfies CredentialsProviderData, + ]), + ), + })); }); }, [ api, + isLoggedIn, createAPIKeyCredentials, createUserPasswordCredentials, deleteCredentials, diff --git a/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx b/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx index 0d10e733b6..61c2b64e8d 100644 --- a/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx +++ b/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx @@ -1,5 +1,5 @@ "use client"; -import useSupabase from "@/hooks/useSupabase"; +import useSupabase from "@/lib/supabase/useSupabase"; import { OnboardingStep, UserOnboarding } from "@/lib/autogpt-server-api"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; import { usePathname, useRouter } from "next/navigation"; diff --git a/autogpt_platform/frontend/src/hooks/useSupabase.ts b/autogpt_platform/frontend/src/hooks/useSupabase.ts deleted file mode 100644 index c04c12fa8f..0000000000 --- a/autogpt_platform/frontend/src/hooks/useSupabase.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { createBrowserClient } from "@supabase/ssr"; -import { User } from "@supabase/supabase-js"; -import { useEffect, useMemo, useState } from "react"; - -export default function useSupabase() { - const [user, setUser] = useState(null); - const [isUserLoading, setIsUserLoading] = useState(true); - - const supabase = useMemo(() => { - try { - return createBrowserClient( - process.env.NEXT_PUBLIC_SUPABASE_URL!, - process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, - ); - } catch (error) { - console.error("Error creating Supabase client", error); - return null; - } - }, []); - - useEffect(() => { - if (!supabase) { - setIsUserLoading(false); - return; - } - - const fetchUser = async () => { - const response = await supabase.auth.getUser(); - - if (response.error) { - // Display error only if it's not about missing auth session (user is not logged in) - if (response.error.message !== "Auth session missing!") { - console.error("Error fetching user", response.error); - } - setUser(null); - } else { - setUser(response.data.user); - } - setIsUserLoading(false); - }; - - fetchUser(); - }, [supabase]); - - return { supabase, user, isUserLoading }; -} diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts index 889bab56d2..b2882255ef 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts @@ -91,6 +91,7 @@ export default class BackendAPI { ? createBrowserClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { isSingleton: true }, ) : getServerSupabase(); } @@ -98,9 +99,9 @@ export default class BackendAPI { async isAuthenticated(): Promise { if (!this.supabaseClient) return false; const { - data: { user }, - } = await this.supabaseClient?.auth.getUser(); - return user != null; + data: { session }, + } = await this.supabaseClient.auth.getSession(); + return session != null; } createUser(): Promise { diff --git a/autogpt_platform/frontend/src/lib/supabase/useSupabase.ts b/autogpt_platform/frontend/src/lib/supabase/useSupabase.ts new file mode 100644 index 0000000000..f450007267 --- /dev/null +++ b/autogpt_platform/frontend/src/lib/supabase/useSupabase.ts @@ -0,0 +1,65 @@ +"use client"; +import { useCallback, useEffect, useMemo, useState } from "react"; +import { createBrowserClient } from "@supabase/ssr"; +import { SignOut, User } from "@supabase/supabase-js"; +import { useRouter } from "next/navigation"; + +export default function useSupabase() { + const router = useRouter(); + const [user, setUser] = useState(null); + const [isUserLoading, setIsUserLoading] = useState(true); + + const supabase = useMemo(() => { + try { + return createBrowserClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { isSingleton: true }, + ); + } catch (error) { + console.error("Error creating Supabase client", error); + return null; + } + }, []); + + useEffect(() => { + if (!supabase) { + setIsUserLoading(false); + return; + } + + // Sync up the current state and listen for changes + const { + data: { subscription }, + } = supabase.auth.onAuthStateChange((_event, session) => { + setUser(session?.user ?? null); + setIsUserLoading(false); + }); + + return () => { + subscription.unsubscribe(); + }; + }, [supabase]); + + const logOut = useCallback( + async (options?: SignOut) => { + if (!supabase) return; + + const { error } = await supabase.auth.signOut({ + scope: options?.scope ?? "local", + }); + if (error) console.error("Error logging out:", error); + + router.push("/login"); + }, + [router, supabase], + ); + + if (!supabase || isUserLoading) { + return { supabase, user: null, isLoggedIn: null, isUserLoading, logOut }; + } + if (!user) { + return { supabase, user, isLoggedIn: false, isUserLoading, logOut }; + } + return { supabase, user, isLoggedIn: true, isUserLoading, logOut }; +} diff --git a/autogpt_platform/frontend/src/tests/pages/login.page.ts b/autogpt_platform/frontend/src/tests/pages/login.page.ts index 41f9ea1b77..a2fcabddf4 100644 --- a/autogpt_platform/frontend/src/tests/pages/login.page.ts +++ b/autogpt_platform/frontend/src/tests/pages/login.page.ts @@ -4,7 +4,10 @@ export class LoginPage { constructor(private page: Page) {} async login(email: string, password: string) { - console.log("Attempting login with:", { email, password }); // Debug log + console.log(`ℹ️ Attempting login on ${this.page.url()} with`, { + email, + password, + }); // Fill email const emailInput = this.page.getByPlaceholder("m@example.com"); @@ -33,23 +36,35 @@ export class LoginPage { }); await loginButton.waitFor({ state: "visible" }); - // Start waiting for navigation before clicking - const navigationPromise = Promise.race([ - this.page.waitForURL("/", { timeout: 10_000 }), // Wait for home page - this.page.waitForURL("/marketplace", { timeout: 10_000 }), // Wait for home page - this.page.waitForURL("/onboarding/**", { timeout: 10_000 }), // Wait for onboarding page - ]); + // Attach navigation logger for debug purposes + this.page.on("load", (page) => console.log(`ℹ️ Now at URL: ${page.url()}`)); - console.log("About to click login button"); // Debug log + // Start waiting for navigation before clicking + const leaveLoginPage = this.page + .waitForURL( + (url) => /^\/(marketplace|onboarding(\/.*)?)?$/.test(url.pathname), + { timeout: 10_000 }, + ) + .catch((reason) => { + console.error( + `🚨 Navigation away from /login timed out (current URL: ${this.page.url()}):`, + reason, + ); + throw reason; + }); + + console.log(`🖱️ Clicking login button...`); await loginButton.click(); - console.log("Waiting for navigation"); // Debug log - await navigationPromise; + console.log("⏳ Waiting for navigation away from /login ..."); + await leaveLoginPage; + console.log(`⌛ Post-login redirected to ${this.page.url()}`); - await this.page.goto("/marketplace"); - - console.log("Navigation complete, waiting for network idle"); // Debug log + await new Promise((resolve) => setTimeout(resolve, 200)); // allow time for client-side redirect await this.page.waitForLoadState("load", { timeout: 10_000 }); - console.log("Login process complete"); // Debug log + + console.log("➡️ Navigating to /marketplace ..."); + await this.page.goto("/marketplace", { timeout: 10_000 }); + console.log("✅ Login process complete"); } } From da0482b54e50d1ab9172f140304232c495d7e9b2 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Thu, 5 Jun 2025 13:05:31 +0700 Subject: [PATCH 055/497] fix(backend): Fix graph fetching of non-owned marketplace agent (#10110) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, the get_graph function, with no graph version specifier will try to fetch the latest version, and when the graph is not owned and the latest version is not available for listing, it will return `None` instead of picking the latest graph version available on the store. ### Changes 🏗️ Instead of using the latest graph.version to fetch the store listing, don't provide any version filter at all and pick up whatever available version in the store. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] CI, existing tests --- .../backend/backend/data/graph.py | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/autogpt_platform/backend/backend/data/graph.py b/autogpt_platform/backend/backend/data/graph.py index 25db899bdc..c556ba0450 100644 --- a/autogpt_platform/backend/backend/data/graph.py +++ b/autogpt_platform/backend/backend/data/graph.py @@ -12,6 +12,7 @@ from prisma.types import ( AgentGraphWhereInput, AgentNodeCreateInput, AgentNodeLinkCreateInput, + StoreListingVersionWhereInput, ) from pydantic import create_model from pydantic.fields import computed_field @@ -712,23 +713,24 @@ async def get_graph( include=AGENT_GRAPH_INCLUDE, order={"version": "desc"}, ) - - # For access, the graph must be owned by the user or listed in the store - if graph is None or ( - graph.userId != user_id - and not ( - await StoreListingVersion.prisma().find_first( - where={ - "agentGraphId": graph_id, - "agentGraphVersion": version or graph.version, - "isDeleted": False, - "submissionStatus": SubmissionStatus.APPROVED, - } - ) - ) - ): + if graph is None: return None + if graph.userId != user_id: + store_listing_filter: StoreListingVersionWhereInput = { + "agentGraphId": graph_id, + "isDeleted": False, + "submissionStatus": SubmissionStatus.APPROVED, + } + if version is not None: + store_listing_filter["agentGraphVersion"] = version + + # For access, the graph must be owned by the user or listed in the store + if not await StoreListingVersion.prisma().find_first( + where=store_listing_filter, order={"agentGraphVersion": "desc"} + ): + return None + if include_subgraphs or for_export: sub_graphs = await get_sub_graphs(graph) return GraphModel.from_db( From 512ce6d473775e7592ffe80981e8d287d271a9ad Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Thu, 5 Jun 2025 13:57:57 +0700 Subject: [PATCH 056/497] fix(frontend): Hide native file input on agent node file input --- autogpt_platform/frontend/src/components/customnode.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogpt_platform/frontend/src/components/customnode.css b/autogpt_platform/frontend/src/components/customnode.css index 07a6e8679b..eeef1572b6 100644 --- a/autogpt_platform/frontend/src/components/customnode.css +++ b/autogpt_platform/frontend/src/components/customnode.css @@ -9,7 +9,7 @@ margin-bottom: 1rem; } -.custom-node input:not([type="checkbox"]), +.custom-node input:not([type="checkbox"]):not([type="file"]), .custom-node textarea, .custom-node select, .custom-node [data-id^="date-picker"], From 95137323f7e8074e1aa18c9fc8aa745aada0ea79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Jun 2025 11:53:38 +0400 Subject: [PATCH 057/497] chore(frontend/deps-dev): Bump eslint-plugin-storybook from 0.11.6 to 0.12.0 in /autogpt_platform/frontend (#10105) Bumps [eslint-plugin-storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin) from 0.11.6 to 0.12.0.
Changelog

Sourced from eslint-plugin-storybook's changelog.

5.3.7 (January 20, 2020)

Bug Fixes

  • Node-logger: Move @types/npmlog to dependencies (#9538)
  • Core: Fix legacy story URLs (#9545)
  • Addon-docs: Convert default prop value to string (#9525)
  • Addon-docs: Preserve Source indentation by default (#9513)

5.3.6 (January 17, 2020)

Bug Fixes

  • Source-loader: Bypass if file has no exports (#9505)
  • Core: Fix default sorting of docs-only stories (#9504)

5.3.5 (January 17, 2020)

Bug Fixes

  • Core: Fix typo for loading addon-notes/register-panel (#9497)
  • Source-loader: Add imports to top of file (#9492)

5.3.4 (January 16, 2020)

Bug Fixes

  • Core: Fix presets register panel (#9486)
  • Core: Fix addon/preset detection for local addons (#9485)
  • Core: Fix default story sort (#9482)

5.3.3 (January 14, 2020)

Bug Fixes

  • UI: Fix edge case where only one legacy separator is defined (#9425)
  • Core: Preserve kind load order on HMR when no sortFn is provided (#9424)
  • Angular: Fix missing architect properties (#9390)
  • Addon-knobs: Fix null knob values in select (#9416)
  • Source-loader: Disable linting altogether (#9417)

5.3.2 (January 13, 2020)

Bug Fixes

  • Source-loader: Disable eslint entirely for generated code (#9410)

5.3.1 (January 12, 2020)

Bug Fixes

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint-plugin-storybook&package-manager=npm_and_yarn&previous-version=0.11.6&new-version=0.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- autogpt_platform/frontend/package.json | 2 +- autogpt_platform/frontend/pnpm-lock.yaml | 99 ++---------------------- 2 files changed, 7 insertions(+), 94 deletions(-) diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index 8b4be3956f..ba14df6a77 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -113,7 +113,7 @@ "concurrently": "^9.1.2", "eslint": "^8", "eslint-config-next": "15.3.3", - "eslint-plugin-storybook": "^0.11.2", + "eslint-plugin-storybook": "^0.12.0", "msw": "^2.9.0", "msw-storybook-addon": "^2.0.3", "postcss": "^8", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 5cec021bd0..a467010f36 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -271,8 +271,8 @@ importers: specifier: 15.3.3 version: 15.3.3(eslint@8.57.1)(typescript@5.8.3) eslint-plugin-storybook: - specifier: ^0.11.2 - version: 0.11.6(eslint@8.57.1)(typescript@5.8.3) + specifier: ^0.12.0 + version: 0.12.0(eslint@8.57.1)(typescript@5.8.3) msw: specifier: ^2.9.0 version: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) @@ -3216,30 +3216,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.33.0': - resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/project-service@8.33.1': resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.33.0': - resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.33.1': resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.33.0': - resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/tsconfig-utils@8.33.1': resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3253,33 +3239,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.33.0': - resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.33.1': resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.33.0': - resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.33.1': resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.33.0': - resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.33.1': resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3287,10 +3256,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.33.0': - resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.33.1': resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4605,8 +4570,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-storybook@0.11.6: - resolution: {integrity: sha512-3WodYD6Bs9ACqnB+TP2TuLh774c/nacAjxSKOP9bHJ2c8rf+nrhocxjjeAWNmO9IPkFIzTKlcl0vNXI2yYpVOw==} + eslint-plugin-storybook@0.12.0: + resolution: {integrity: sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==} engines: {node: '>= 18'} peerDependencies: eslint: '>=8' @@ -11089,15 +11054,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) @@ -11107,20 +11063,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.33.0': - dependencies: - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 - '@typescript-eslint/scope-manager@8.33.1': dependencies: '@typescript-eslint/types': 8.33.1 '@typescript-eslint/visitor-keys': 8.33.1 - '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 @@ -11136,26 +11083,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.33.0': {} - '@typescript-eslint/types@8.33.1': {} - '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 - debug: 4.4.1 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': dependencies: '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) @@ -11172,17 +11101,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.33.0(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - eslint: 8.57.1 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) @@ -11194,11 +11112,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.33.0': - dependencies: - '@typescript-eslint/types': 8.33.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.33.1': dependencies: '@typescript-eslint/types': 8.33.1 @@ -12753,10 +12666,10 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@0.11.6(eslint@8.57.1)(typescript@5.8.3): + eslint-plugin-storybook@0.12.0(eslint@8.57.1)(typescript@5.8.3): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.33.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 ts-dedent: 2.2.0 transitivePeerDependencies: From ef6ba3e84af1b04b35d0cef17c79ee705198c4f0 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Thu, 5 Jun 2025 10:11:50 +0100 Subject: [PATCH 058/497] fix(frontend): Resolve perpetual loading state on password reset (#10103) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixes #10085 ### Changes 🏗️ - Remove redirect from `sendResetEmail` server action ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Reset password form exits loading state after request completes --- .../frontend/src/app/(platform)/reset_password/actions.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts index 67b05a624b..f3874ca76f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts @@ -38,8 +38,6 @@ export async function sendResetEmail(email: string, turnstileToken: string) { console.error("Error sending reset email", error); return error.message; } - - redirect("/reset_password"); }, ); } From b900e86c49e9891f7806b20dc06faeea403af5f2 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Thu, 5 Jun 2025 16:24:06 +0400 Subject: [PATCH 059/497] fix(profile): account menu layout and alignment (#10113) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ ### Before image ### After Screenshot 2025-06-05 at 15 26 45 ### Adjustments - Adjusted the padding account the menu - Made username display on top of account name nicely - Both username and account name will be trimmed if they are too long `...` ## Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Login - [x] Open account menu ( top-right ) - [x] The alignment of items is right - [x] Long usernames are handled nicely - [x] Username and display name don't overlap --- .../components/agptui/ProfilePopoutMenu.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenu.tsx b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenu.tsx index 6573cad9e2..65833e1e37 100644 --- a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenu.tsx +++ b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenu.tsx @@ -37,12 +37,12 @@ interface ProfilePopoutMenuProps { }[]; } -export const ProfilePopoutMenu: React.FC = ({ +export function ProfilePopoutMenu({ userName, userEmail, avatarSrc, menuItemGroups, -}) => { +}: ProfilePopoutMenuProps) { const popupId = React.useId(); const getIcon = (icon: IconType) => { @@ -91,28 +91,28 @@ export const ProfilePopoutMenu: React.FC = ({ {/* Header with avatar and user info */} -
+
-
-
+
+
{userName}
-
+
{userEmail}
{/* Menu items */} -
+
{menuItemGroups.map((group, groupIndex) => (
= ({ ); -}; +} From 5b324abc7cd2aa4f5ccc6973bd477c53ceae75c8 Mon Sep 17 00:00:00 2001 From: Bently Date: Thu, 5 Jun 2025 14:06:29 +0100 Subject: [PATCH 060/497] update(turnstile): Add env to hide turnstile for dev deploy (#10116) This simply adds a env to hide turnstile for dev deploys if this env ``NEXT_PUBLIC_DISABLE_TURNSTILE`` is set to false which it is by default, it will show turnstile, if the env is set to "true" it will hide the turnstile #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Login/register with ``NEXT_PUBLIC_DISABLE_TURNSTILE=false`` and you see the turnstile and that is needed to login/signup - [x] Login/register with ``NEXT_PUBLIC_DISABLE_TURNSTILE=true`` and you will see the turnstile is gone, and you can login/signup with out it --- autogpt_platform/frontend/.env.example | 1 + autogpt_platform/frontend/src/hooks/useTurnstile.ts | 7 +++++-- autogpt_platform/frontend/src/lib/turnstile.ts | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/autogpt_platform/frontend/.env.example b/autogpt_platform/frontend/.env.example index 0eb8872371..675d0ab1fc 100644 --- a/autogpt_platform/frontend/.env.example +++ b/autogpt_platform/frontend/.env.example @@ -30,3 +30,4 @@ NEXT_PUBLIC_SHOW_BILLING_PAGE=false ## Get these from the Cloudflare Turnstile dashboard: https://dash.cloudflare.com/?to=/:account/turnstile ## This is the frontend site key NEXT_PUBLIC_CLOUDFLARE_TURNSTILE_SITE_KEY= +NEXT_PUBLIC_DISABLE_TURNSTILE=false diff --git a/autogpt_platform/frontend/src/hooks/useTurnstile.ts b/autogpt_platform/frontend/src/hooks/useTurnstile.ts index edb7e9b6fa..18bbb06c62 100644 --- a/autogpt_platform/frontend/src/hooks/useTurnstile.ts +++ b/autogpt_platform/frontend/src/hooks/useTurnstile.ts @@ -47,10 +47,13 @@ export function useTurnstile({ useEffect(() => { const behaveAs = getBehaveAs(); const hasTurnstileKey = !!TURNSTILE_SITE_KEY; + const turnstileDisabled = process.env.NEXT_PUBLIC_DISABLE_TURNSTILE === "true"; - setShouldRender(behaveAs === BehaveAs.CLOUD && hasTurnstileKey); + // Only render Turnstile in cloud environment if not explicitly disabled + setShouldRender(behaveAs === BehaveAs.CLOUD && hasTurnstileKey && !turnstileDisabled); - if (behaveAs !== BehaveAs.CLOUD || !hasTurnstileKey) { + // Skip verification if disabled, in local development, or no key + if (turnstileDisabled || behaveAs !== BehaveAs.CLOUD || !hasTurnstileKey) { setVerified(true); } }, []); diff --git a/autogpt_platform/frontend/src/lib/turnstile.ts b/autogpt_platform/frontend/src/lib/turnstile.ts index 0301df7d9b..47194ae627 100644 --- a/autogpt_platform/frontend/src/lib/turnstile.ts +++ b/autogpt_platform/frontend/src/lib/turnstile.ts @@ -7,6 +7,11 @@ export async function verifyTurnstileToken( token: string, action?: string, ): Promise { + // Skip verification if explicitly disabled via environment variable + if (process.env.NEXT_PUBLIC_DISABLE_TURNSTILE === "true") { + return true; + } + // Skip verification in local development const behaveAs = getBehaveAs(); if (behaveAs !== BehaveAs.CLOUD) { From 5d0faab4b1386286f29d6fd0527b2f157fd6464e Mon Sep 17 00:00:00 2001 From: Swifty Date: Thu, 5 Jun 2025 15:13:04 +0200 Subject: [PATCH 061/497] Delete .github/workflows/platform-autogpt-deploy-dev.yaml (#10118) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ ### Checklist 📋 #### For code changes: - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: - [ ] ...
Example test plan - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly
#### For configuration changes: - [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**)
Examples of configuration changes - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases
--- .../platform-autogpt-deploy-dev.yaml | 282 ------------------ 1 file changed, 282 deletions(-) delete mode 100644 .github/workflows/platform-autogpt-deploy-dev.yaml diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml deleted file mode 100644 index 4ce86add3d..0000000000 --- a/.github/workflows/platform-autogpt-deploy-dev.yaml +++ /dev/null @@ -1,282 +0,0 @@ -name: AutoGPT Platform - Dev Deploy PR Event Dispatcher - -on: - pull_request: - types: [closed] - issue_comment: - types: [created] - -permissions: - issues: write - pull-requests: write - -jobs: - dispatch: - runs-on: ubuntu-latest - steps: - - name: Check comment permissions and deployment status - id: check_status - if: github.event_name == 'issue_comment' && github.event.issue.pull_request - uses: actions/github-script@v7 - with: - script: | - const commentBody = context.payload.comment.body.trim(); - const commentUser = context.payload.comment.user.login; - const prAuthor = context.payload.issue.user.login; - const authorAssociation = context.payload.comment.author_association; - const triggeringCommentId = context.payload.comment.id; - - // Check permissions - const hasPermission = ( - authorAssociation === 'OWNER' || - authorAssociation === 'MEMBER' || - authorAssociation === 'COLLABORATOR' - ); - - core.setOutput('comment_body', commentBody); - core.setOutput('has_permission', hasPermission); - - if (!hasPermission && (commentBody === '!deploy' || commentBody === '!undeploy')) { - core.setOutput('permission_denied', 'true'); - return; - } - - if (commentBody !== '!deploy' && commentBody !== '!undeploy') { - return; - } - - // Get all comments to check deployment status - const commentsResponse = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - per_page: 100 - }); - - // Filter out the triggering comment - const commentsData = commentsResponse.data.filter(comment => comment.id !== triggeringCommentId); - - // Find the last deploy and undeploy commands - let lastDeployIndex = -2; - let lastUndeployIndex = -1; - - console.log(`Found ${commentsResponse.data.length} total comments, using ${commentsData.length} for status check after filtering`); - - // Iterate through comments in reverse to find the most recent commands - for (let i = commentsData.length - 1; i >= 0; i--) { - const currentCommentBody = commentsData[i].body.trim(); - console.log(`Processing comment ${i}: ${currentCommentBody}`); - - if (currentCommentBody === '!deploy' && lastDeployIndex === -2) { - lastDeployIndex = i; - } else if (currentCommentBody === '!undeploy' && lastUndeployIndex === -1) { - lastUndeployIndex = i; - } - - // Break early if we found both - if (lastDeployIndex !== -2 && lastUndeployIndex !== -1) { - break; - } - } - - console.log(`Last deploy index: ${lastDeployIndex}`); - console.log(`Last undeploy index: ${lastUndeployIndex}`); - - // Currently deployed if there's a deploy command after the last undeploy - const isCurrentlyDeployed = lastDeployIndex > lastUndeployIndex; - - // Determine actions based on current state and requested command - if (commentBody === '!deploy') { - if (isCurrentlyDeployed) { - core.setOutput('deploy_blocked', 'already_deployed'); - } else { - core.setOutput('should_deploy', 'true'); - } - } else if (commentBody === '!undeploy') { - if (!isCurrentlyDeployed) { - // Check if there was ever a deploy - const hasEverDeployed = lastDeployIndex !== -2; - core.setOutput('undeploy_blocked', hasEverDeployed ? 'already_undeployed' : 'never_deployed'); - } else { - core.setOutput('should_undeploy', 'true'); - } - } - - core.setOutput('has_active_deployment', isCurrentlyDeployed); - - - name: Post permission denied comment - if: steps.check_status.outputs.permission_denied == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `❌ **Permission denied**: Only the repository owners, members, or collaborators can use deployment commands.` - }); - - - name: Post deploy blocked comment - if: steps.check_status.outputs.deploy_blocked == 'already_deployed' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `⚠️ **Deploy skipped**: This PR already has an active deployment. Use \`!undeploy\` first if you want to redeploy.` - }); - - - name: Post undeploy blocked comment - if: steps.check_status.outputs.undeploy_blocked != '' - uses: actions/github-script@v7 - with: - script: | - const reason = '${{ steps.check_status.outputs.undeploy_blocked }}'; - let message; - - if (reason === 'never_deployed') { - message = `⚠️ **Undeploy skipped**: This PR has never been deployed. Use \`!deploy\` first.`; - } else if (reason === 'already_undeployed') { - message = `⚠️ **Undeploy skipped**: This PR is already undeployed.`; - } - - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: message - }); - - - name: Get PR details for deployment - id: pr_details - if: steps.check_status.outputs.should_deploy == 'true' || steps.check_status.outputs.should_undeploy == 'true' - uses: actions/github-script@v7 - with: - script: | - const pr = await github.rest.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.issue.number - }); - core.setOutput('pr_number', pr.data.number); - core.setOutput('pr_title', pr.data.title); - core.setOutput('pr_state', pr.data.state); - - - name: Dispatch Deploy Event - if: steps.check_status.outputs.should_deploy == 'true' - uses: peter-evans/repository-dispatch@v2 - with: - token: ${{ secrets.DISPATCH_TOKEN }} - repository: Significant-Gravitas/AutoGPT_cloud_infrastructure - event-type: pr-event - client-payload: | - { - "action": "deploy", - "pr_number": "${{ steps.pr_details.outputs.pr_number }}", - "pr_title": "${{ steps.pr_details.outputs.pr_title }}", - "pr_state": "${{ steps.pr_details.outputs.pr_state }}", - "repo": "${{ github.repository }}" - } - - - name: Post deploy success comment - if: steps.check_status.outputs.should_deploy == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `🚀 **Deploying PR #${{ steps.pr_details.outputs.pr_number }}** to development environment...` - }); - - - name: Dispatch Undeploy Event (from comment) - if: steps.check_status.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v2 - with: - token: ${{ secrets.DISPATCH_TOKEN }} - repository: Significant-Gravitas/AutoGPT_cloud_infrastructure - event-type: pr-event - client-payload: | - { - "action": "undeploy", - "pr_number": "${{ steps.pr_details.outputs.pr_number }}", - "pr_title": "${{ steps.pr_details.outputs.pr_title }}", - "pr_state": "${{ steps.pr_details.outputs.pr_state }}", - "repo": "${{ github.repository }}" - } - - - name: Post undeploy success comment - if: steps.check_status.outputs.should_undeploy == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `🗑️ **Undeploying PR #${{ steps.pr_details.outputs.pr_number }}** from development environment...` - }); - - - name: Check deployment status on PR close - id: check_pr_close - if: github.event_name == 'pull_request' && github.event.action == 'closed' - uses: actions/github-script@v7 - with: - script: | - const comments = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number - }); - - let lastDeployIndex = -1; - let lastUndeployIndex = -1; - - comments.data.forEach((comment, index) => { - if (comment.body.trim() === '!deploy') { - lastDeployIndex = index; - } else if (comment.body.trim() === '!undeploy') { - lastUndeployIndex = index; - } - }); - - // Should undeploy if there's a !deploy without a subsequent !undeploy - const shouldUndeploy = lastDeployIndex !== -1 && lastDeployIndex > lastUndeployIndex; - core.setOutput('should_undeploy', shouldUndeploy); - - - name: Dispatch Undeploy Event (PR closed with active deployment) - if: >- - github.event_name == 'pull_request' && - github.event.action == 'closed' && - steps.check_pr_close.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v2 - with: - token: ${{ secrets.DISPATCH_TOKEN }} - repository: Significant-Gravitas/AutoGPT_cloud_infrastructure - event-type: pr-event - client-payload: | - { - "action": "undeploy", - "pr_number": "${{ github.event.pull_request.number }}", - "pr_title": "${{ github.event.pull_request.title }}", - "pr_state": "${{ github.event.pull_request.state }}", - "repo": "${{ github.repository }}" - } - - - name: Post PR close undeploy comment - if: >- - github.event_name == 'pull_request' && - github.event.action == 'closed' && - steps.check_pr_close.outputs.should_undeploy == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `🧹 **Auto-undeploying**: PR closed with active deployment. Cleaning up development environment for PR #${{ github.event.pull_request.number }}.` - }); \ No newline at end of file From 7d10dc4e7b30e7904149d0bcd9daeb0929853aea Mon Sep 17 00:00:00 2001 From: Ubbe Date: Thu, 5 Jun 2025 19:02:27 +0400 Subject: [PATCH 062/497] fix(frontend): pin deps (#10121) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ This PR updates the .npmrc file to improve dependency consistency across local and CI environments when using pnpm. Specifically: - `save-exact=true` ensures all dependencies are pinned to exact versions, preventing version drift ( _especially important for tools like `prettier`, where even minor changes can lead to inconsistent formatting in commits_ ). This change aims to reduce formatting discrepancies and improve reproducibility across machines and contributors. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] formatting & lint passes on the CI --- autogpt_platform/frontend/.gitignore | 1 + autogpt_platform/frontend/.npmrc | 2 + autogpt_platform/frontend/package.json | 182 +-- autogpt_platform/frontend/pnpm-lock.yaml | 1286 ++++++++--------- .../frontend/src/hooks/useTurnstile.ts | 7 +- 5 files changed, 733 insertions(+), 745 deletions(-) create mode 100644 autogpt_platform/frontend/.npmrc diff --git a/autogpt_platform/frontend/.gitignore b/autogpt_platform/frontend/.gitignore index 024169e22d..93625c94e8 100644 --- a/autogpt_platform/frontend/.gitignore +++ b/autogpt_platform/frontend/.gitignore @@ -52,4 +52,5 @@ node_modules/ storybook-static *.ignore.* *.ign.* +!.npmrc .cursorrules \ No newline at end of file diff --git a/autogpt_platform/frontend/.npmrc b/autogpt_platform/frontend/.npmrc new file mode 100644 index 0000000000..15cb462b44 --- /dev/null +++ b/autogpt_platform/frontend/.npmrc @@ -0,0 +1,2 @@ +# Configure pnpm to save exact versions +save-exact=true \ No newline at end of file diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index ba14df6a77..c4ebb3e0ae 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -24,104 +24,104 @@ "defaults" ], "dependencies": { - "@faker-js/faker": "^9.8.0", - "@hookform/resolvers": "^3.10.0", - "@next/third-parties": "^15.3.2", - "@radix-ui/react-alert-dialog": "^1.1.13", - "@radix-ui/react-avatar": "^1.1.9", - "@radix-ui/react-checkbox": "^1.3.1", - "@radix-ui/react-collapsible": "^1.1.10", - "@radix-ui/react-context-menu": "^2.2.14", - "@radix-ui/react-dialog": "^1.1.2", - "@radix-ui/react-dropdown-menu": "^2.1.14", - "@radix-ui/react-icons": "^1.3.2", - "@radix-ui/react-label": "^2.1.6", - "@radix-ui/react-popover": "^1.1.13", - "@radix-ui/react-radio-group": "^1.3.6", - "@radix-ui/react-scroll-area": "^1.2.8", - "@radix-ui/react-select": "^2.2.4", - "@radix-ui/react-separator": "^1.1.6", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.2.4", - "@radix-ui/react-tabs": "^1.1.11", - "@radix-ui/react-toast": "^1.2.13", - "@radix-ui/react-tooltip": "^1.2.6", - "@sentry/nextjs": "^9", - "@supabase/ssr": "^0.6.1", - "@supabase/supabase-js": "^2.49.10", - "@tanstack/react-table": "^8.21.3", - "@types/jaro-winkler": "^0.2.4", + "@faker-js/faker": "9.8.0", + "@hookform/resolvers": "3.10.0", + "@next/third-parties": "15.3.3", + "@radix-ui/react-alert-dialog": "1.1.14", + "@radix-ui/react-avatar": "1.1.10", + "@radix-ui/react-checkbox": "1.3.2", + "@radix-ui/react-collapsible": "1.1.11", + "@radix-ui/react-context-menu": "2.2.15", + "@radix-ui/react-dialog": "1.1.14", + "@radix-ui/react-dropdown-menu": "2.1.15", + "@radix-ui/react-icons": "1.3.2", + "@radix-ui/react-label": "2.1.7", + "@radix-ui/react-popover": "1.1.14", + "@radix-ui/react-radio-group": "1.3.7", + "@radix-ui/react-scroll-area": "1.2.9", + "@radix-ui/react-select": "2.2.5", + "@radix-ui/react-separator": "1.1.7", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-switch": "1.2.5", + "@radix-ui/react-tabs": "1.1.12", + "@radix-ui/react-toast": "1.2.14", + "@radix-ui/react-tooltip": "1.2.7", + "@sentry/nextjs": "9.26.0", + "@supabase/ssr": "0.6.1", + "@supabase/supabase-js": "2.49.10", + "@tanstack/react-table": "8.21.3", + "@types/jaro-winkler": "0.2.4", "@xyflow/react": "12.6.4", - "ajv": "^8.17.1", - "boring-avatars": "^1.11.2", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", + "ajv": "8.17.1", + "boring-avatars": "1.11.2", + "class-variance-authority": "0.7.1", + "clsx": "2.1.1", "cmdk": "1.1.1", "cookie": "1.0.2", - "date-fns": "^4.1.0", - "dotenv": "^16.5.0", + "date-fns": "4.1.0", + "dotenv": "16.5.0", "elliptic": "6.6.1", - "embla-carousel-react": "^8.6.0", - "framer-motion": "^12.16.0", - "geist": "^1.4.2", - "jaro-winkler": "^0.2.8", - "launchdarkly-react-client-sdk": "^3.7.0", - "lodash": "^4.17.21", - "lucide-react": "^0.513.0", - "moment": "^2.30.1", - "next": "^15.3.2", - "next-themes": "^0.4.6", - "party-js": "^2.2.0", - "react": "^18", - "react-day-picker": "^9.7.0", - "react-dom": "^18", - "react-drag-drop-files": "^2.4.0", - "react-hook-form": "^7.56.3", - "react-icons": "^5.5.0", - "react-markdown": "^9.0.3", - "react-modal": "^3.16.3", - "react-shepherd": "^6.1.8", - "recharts": "^2.15.3", - "shepherd.js": "^14.5.0", - "tailwind-merge": "^2.6.0", - "tailwindcss-animate": "^1.0.7", - "uuid": "^11.1.0", - "zod": "^3.25.51" + "embla-carousel-react": "8.6.0", + "framer-motion": "12.16.0", + "geist": "1.4.2", + "jaro-winkler": "0.2.8", + "launchdarkly-react-client-sdk": "3.8.1", + "lodash": "4.17.21", + "lucide-react": "0.513.0", + "moment": "2.30.1", + "next": "15.3.3", + "next-themes": "0.4.6", + "party-js": "2.2.0", + "react": "18.3.1", + "react-day-picker": "9.7.0", + "react-dom": "18.3.1", + "react-drag-drop-files": "2.4.0", + "react-hook-form": "7.57.0", + "react-icons": "5.5.0", + "react-markdown": "9.0.3", + "react-modal": "3.16.3", + "react-shepherd": "6.1.8", + "recharts": "2.15.3", + "shepherd.js": "14.5.0", + "tailwind-merge": "2.6.0", + "tailwindcss-animate": "1.0.7", + "uuid": "11.1.0", + "zod": "3.25.51" }, "devDependencies": { - "@chromatic-com/storybook": "^3.2.4", - "@playwright/test": "^1.50.1", - "@storybook/addon-a11y": "^8.5.3", - "@storybook/addon-essentials": "^8.5.3", - "@storybook/addon-interactions": "^8.5.3", - "@storybook/addon-links": "^8.5.3", - "@storybook/addon-onboarding": "^8.5.3", - "@storybook/blocks": "^8.5.3", - "@storybook/nextjs": "^8.5.3", - "@storybook/react": "^8.3.5", - "@storybook/test": "^8.3.5", - "@storybook/test-runner": "^0.22.0", - "@types/canvas-confetti": "^1.9.0", - "@types/lodash": "^4.17.17", - "@types/negotiator": "^0.6.3", - "@types/node": "^22.13.0", - "@types/react": "^18", - "@types/react-dom": "^18", - "@types/react-modal": "^3.16.3", - "axe-playwright": "^2.0.3", - "chromatic": "^11.25.2", - "concurrently": "^9.1.2", - "eslint": "^8", + "@chromatic-com/storybook": "3.2.4", + "@playwright/test": "1.52.0", + "@storybook/addon-a11y": "8.6.14", + "@storybook/addon-essentials": "8.6.14", + "@storybook/addon-interactions": "8.6.14", + "@storybook/addon-links": "8.6.14", + "@storybook/addon-onboarding": "8.6.14", + "@storybook/blocks": "8.6.14", + "@storybook/nextjs": "8.6.14", + "@storybook/react": "8.6.14", + "@storybook/test": "8.6.14", + "@storybook/test-runner": "0.22.0", + "@types/canvas-confetti": "1.9.0", + "@types/lodash": "4.17.17", + "@types/negotiator": "0.6.3", + "@types/node": "22.15.29", + "@types/react": "18.3.17", + "@types/react-dom": "18.3.5", + "@types/react-modal": "3.16.3", + "axe-playwright": "2.1.0", + "chromatic": "11.25.2", + "concurrently": "9.1.2", + "eslint": "8.57.1", "eslint-config-next": "15.3.3", - "eslint-plugin-storybook": "^0.12.0", - "msw": "^2.9.0", - "msw-storybook-addon": "^2.0.3", - "postcss": "^8", - "prettier": "^3.3.3", - "prettier-plugin-tailwindcss": "^0.6.11", - "storybook": "^8.5.3", - "tailwindcss": "^3.4.17", - "typescript": "^5" + "eslint-plugin-storybook": "0.12.0", + "msw": "2.9.0", + "msw-storybook-addon": "2.0.4", + "postcss": "8.5.4", + "prettier": "3.5.3", + "prettier-plugin-tailwindcss": "0.6.12", + "storybook": "8.6.14", + "tailwindcss": "3.4.17", + "typescript": "5.8.3" }, "msw": { "workerDirectory": [ diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index a467010f36..255d0c1ed1 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -9,293 +9,293 @@ importers: .: dependencies: '@faker-js/faker': - specifier: ^9.8.0 + specifier: 9.8.0 version: 9.8.0 '@hookform/resolvers': - specifier: ^3.10.0 + specifier: 3.10.0 version: 3.10.0(react-hook-form@7.57.0(react@18.3.1)) '@next/third-parties': - specifier: ^15.3.2 + specifier: 15.3.3 version: 15.3.3(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@radix-ui/react-alert-dialog': - specifier: ^1.1.13 - version: 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.14 + version: 1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-avatar': - specifier: ^1.1.9 - version: 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.10 + version: 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-checkbox': - specifier: ^1.3.1 - version: 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.3.2 + version: 1.3.2(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-collapsible': - specifier: ^1.1.10 - version: 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.11 + version: 1.1.11(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-context-menu': - specifier: ^2.2.14 - version: 2.2.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 2.2.15 + version: 2.2.15(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dialog': - specifier: ^1.1.2 - version: 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.14 + version: 1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': - specifier: ^2.1.14 - version: 2.1.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 2.1.15 + version: 2.1.15(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-icons': - specifier: ^1.3.2 + specifier: 1.3.2 version: 1.3.2(react@18.3.1) '@radix-ui/react-label': - specifier: ^2.1.6 - version: 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 2.1.7 + version: 2.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-popover': - specifier: ^1.1.13 - version: 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.14 + version: 1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-radio-group': - specifier: ^1.3.6 - version: 1.3.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.3.7 + version: 1.3.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-scroll-area': - specifier: ^1.2.8 - version: 1.2.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.2.9 + version: 1.2.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-select': - specifier: ^2.2.4 - version: 2.2.5(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 2.2.5 + version: 2.2.5(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-separator': - specifier: ^1.1.6 - version: 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.7 + version: 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': - specifier: ^1.1.0 - version: 1.2.3(@types/react@18.3.23)(react@18.3.1) + specifier: 1.2.3 + version: 1.2.3(@types/react@18.3.17)(react@18.3.1) '@radix-ui/react-switch': - specifier: ^1.2.4 - version: 1.2.5(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.2.5 + version: 1.2.5(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tabs': - specifier: ^1.1.11 - version: 1.1.12(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.1.12 + version: 1.1.12(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-toast': - specifier: ^1.2.13 - version: 1.2.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.2.14 + version: 1.2.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tooltip': - specifier: ^1.2.6 - version: 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.2.7 + version: 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': - specifier: ^9 - version: 9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + specifier: 9.26.0 + version: 9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) '@supabase/ssr': - specifier: ^0.6.1 + specifier: 0.6.1 version: 0.6.1(@supabase/supabase-js@2.49.10) '@supabase/supabase-js': - specifier: ^2.49.10 + specifier: 2.49.10 version: 2.49.10 '@tanstack/react-table': - specifier: ^8.21.3 + specifier: 8.21.3 version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/jaro-winkler': - specifier: ^0.2.4 + specifier: 0.2.4 version: 0.2.4 '@xyflow/react': specifier: 12.6.4 - version: 12.6.4(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 12.6.4(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ajv: - specifier: ^8.17.1 + specifier: 8.17.1 version: 8.17.1 boring-avatars: - specifier: ^1.11.2 + specifier: 1.11.2 version: 1.11.2 class-variance-authority: - specifier: ^0.7.1 + specifier: 0.7.1 version: 0.7.1 clsx: - specifier: ^2.1.1 + specifier: 2.1.1 version: 2.1.1 cmdk: specifier: 1.1.1 - version: 1.1.1(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) cookie: specifier: 1.0.2 version: 1.0.2 date-fns: - specifier: ^4.1.0 + specifier: 4.1.0 version: 4.1.0 dotenv: - specifier: ^16.5.0 + specifier: 16.5.0 version: 16.5.0 elliptic: specifier: 6.6.1 version: 6.6.1 embla-carousel-react: - specifier: ^8.6.0 + specifier: 8.6.0 version: 8.6.0(react@18.3.1) framer-motion: - specifier: ^12.16.0 + specifier: 12.16.0 version: 12.16.0(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) geist: - specifier: ^1.4.2 + specifier: 1.4.2 version: 1.4.2(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) jaro-winkler: - specifier: ^0.2.8 + specifier: 0.2.8 version: 0.2.8 launchdarkly-react-client-sdk: - specifier: ^3.7.0 + specifier: 3.8.1 version: 3.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: - specifier: ^4.17.21 + specifier: 4.17.21 version: 4.17.21 lucide-react: - specifier: ^0.513.0 + specifier: 0.513.0 version: 0.513.0(react@18.3.1) moment: - specifier: ^2.30.1 + specifier: 2.30.1 version: 2.30.1 next: - specifier: ^15.3.2 + specifier: 15.3.3 version: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: - specifier: ^0.4.6 + specifier: 0.4.6 version: 0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) party-js: - specifier: ^2.2.0 + specifier: 2.2.0 version: 2.2.0 react: - specifier: ^18 + specifier: 18.3.1 version: 18.3.1 react-day-picker: - specifier: ^9.7.0 + specifier: 9.7.0 version: 9.7.0(react@18.3.1) react-dom: - specifier: ^18 + specifier: 18.3.1 version: 18.3.1(react@18.3.1) react-drag-drop-files: - specifier: ^2.4.0 + specifier: 2.4.0 version: 2.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-hook-form: - specifier: ^7.56.3 + specifier: 7.57.0 version: 7.57.0(react@18.3.1) react-icons: - specifier: ^5.5.0 + specifier: 5.5.0 version: 5.5.0(react@18.3.1) react-markdown: - specifier: ^9.0.3 - version: 9.1.0(@types/react@18.3.23)(react@18.3.1) + specifier: 9.0.3 + version: 9.0.3(@types/react@18.3.17)(react@18.3.1) react-modal: - specifier: ^3.16.3 + specifier: 3.16.3 version: 3.16.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-shepherd: - specifier: ^6.1.8 + specifier: 6.1.8 version: 6.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) recharts: - specifier: ^2.15.3 + specifier: 2.15.3 version: 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) shepherd.js: - specifier: ^14.5.0 + specifier: 14.5.0 version: 14.5.0 tailwind-merge: - specifier: ^2.6.0 + specifier: 2.6.0 version: 2.6.0 tailwindcss-animate: - specifier: ^1.0.7 + specifier: 1.0.7 version: 1.0.7(tailwindcss@3.4.17) uuid: - specifier: ^11.1.0 + specifier: 11.1.0 version: 11.1.0 zod: - specifier: ^3.25.51 + specifier: 3.25.51 version: 3.25.51 devDependencies: '@chromatic-com/storybook': - specifier: ^3.2.4 - version: 3.2.6(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) + specifier: 3.2.4 + version: 3.2.4(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) '@playwright/test': - specifier: ^1.50.1 + specifier: 1.52.0 version: 1.52.0 '@storybook/addon-a11y': - specifier: ^8.5.3 + specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-essentials': - specifier: ^8.5.3 - version: 8.6.14(@types/react@18.3.23)(storybook@8.6.14(prettier@3.5.3)) + specifier: 8.6.14 + version: 8.6.14(@types/react@18.3.17)(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-interactions': - specifier: ^8.5.3 + specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-links': - specifier: ^8.5.3 + specifier: 8.6.14 version: 8.6.14(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-onboarding': - specifier: ^8.5.3 + specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/blocks': - specifier: ^8.5.3 + specifier: 8.6.14 version: 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) '@storybook/nextjs': - specifier: ^8.5.3 - version: 8.6.14(@swc/core@1.11.29)(esbuild@0.25.5)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + specifier: 8.6.14 + version: 8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) '@storybook/react': - specifier: ^8.3.5 + specifier: 8.6.14 version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/test': - specifier: ^8.3.5 + specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/test-runner': - specifier: ^0.22.0 + specifier: 0.22.0 version: 0.22.0(@types/node@22.15.29)(storybook@8.6.14(prettier@3.5.3)) '@types/canvas-confetti': - specifier: ^1.9.0 + specifier: 1.9.0 version: 1.9.0 '@types/lodash': - specifier: ^4.17.17 + specifier: 4.17.17 version: 4.17.17 '@types/negotiator': - specifier: ^0.6.3 + specifier: 0.6.3 version: 0.6.3 '@types/node': - specifier: ^22.13.0 + specifier: 22.15.29 version: 22.15.29 '@types/react': - specifier: ^18 - version: 18.3.23 + specifier: 18.3.17 + version: 18.3.17 '@types/react-dom': - specifier: ^18 - version: 18.3.7(@types/react@18.3.23) + specifier: 18.3.5 + version: 18.3.5(@types/react@18.3.17) '@types/react-modal': - specifier: ^3.16.3 + specifier: 3.16.3 version: 3.16.3 axe-playwright: - specifier: ^2.0.3 + specifier: 2.1.0 version: 2.1.0(playwright@1.52.0) chromatic: - specifier: ^11.25.2 - version: 11.29.0 + specifier: 11.25.2 + version: 11.25.2 concurrently: - specifier: ^9.1.2 + specifier: 9.1.2 version: 9.1.2 eslint: - specifier: ^8 + specifier: 8.57.1 version: 8.57.1 eslint-config-next: specifier: 15.3.3 version: 15.3.3(eslint@8.57.1)(typescript@5.8.3) eslint-plugin-storybook: - specifier: ^0.12.0 + specifier: 0.12.0 version: 0.12.0(eslint@8.57.1)(typescript@5.8.3) msw: - specifier: ^2.9.0 + specifier: 2.9.0 version: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) msw-storybook-addon: - specifier: ^2.0.3 + specifier: 2.0.4 version: 2.0.4(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3)) postcss: - specifier: ^8 + specifier: 8.5.4 version: 8.5.4 prettier: - specifier: ^3.3.3 + specifier: 3.5.3 version: 3.5.3 prettier-plugin-tailwindcss: - specifier: ^0.6.11 + specifier: 0.6.12 version: 0.6.12(prettier@3.5.3) storybook: - specifier: ^8.5.3 + specifier: 8.6.14 version: 8.6.14(prettier@3.5.3) tailwindcss: - specifier: ^3.4.17 + specifier: 3.4.17 version: 3.4.17 typescript: - specifier: ^5 + specifier: 5.8.3 version: 5.8.3 packages: @@ -315,10 +315,6 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.3': - resolution: {integrity: sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.5': resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} engines: {node: '>=6.9.0'} @@ -950,8 +946,8 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@chromatic-com/storybook@3.2.6': - resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} + '@chromatic-com/storybook@3.2.4': + resolution: {integrity: sha512-5/bOOYxfwZ2BktXeqcCpOVAoR6UCoeART5t9FVy22hoo8F291zOuX4y3SDgm10B1GVU/ZTtJWPT2X9wZFlxYLg==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -977,152 +973,152 @@ packages: '@emotion/unitless@0.8.1': resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - '@esbuild/aix-ppc64@0.25.5': - resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.5': - resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.5': - resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.5': - resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.5': - resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.5': - resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.5': - resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.5': - resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.5': - resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.5': - resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.5': - resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.5': - resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.5': - resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.5': - resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.5': - resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.5': - resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.5': - resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.5': - resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.5': - resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.5': - resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.5': - resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.5': - resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.5': - resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.5': - resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.5': - resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -3145,16 +3141,16 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/react-dom@18.3.7': - resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} peerDependencies: '@types/react': ^18.0.0 '@types/react-modal@3.16.3': resolution: {integrity: sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg==} - '@types/react@18.3.23': - resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==} + '@types/react@18.3.17': + resolution: {integrity: sha512-opAQ5no6LqJNo9TqnxBKsgnkIYHozW9KSTlFVoSUJYh1Fl/sswkEoqIugRSm7tbh6pABtYjGAjW+GOS23j8qbw==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3816,9 +3812,6 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001720: - resolution: {integrity: sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==} - caniuse-lite@1.0.30001721: resolution: {integrity: sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==} @@ -3877,8 +3870,8 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chromatic@11.29.0: - resolution: {integrity: sha512-yisBlntp9hHVj19lIQdpTlcYIXuU9H/DbFuu6tyWHmj6hWT2EtukCCcxYXL78XdQt1vm2GfIrtgtKpj/Rzmo4A==} + chromatic@11.25.2: + resolution: {integrity: sha512-/9eQWn6BU1iFsop86t8Au21IksTRxwXAl7if8YHD05L2AbuMjClLWZo5cZojqrJHGKDhTqfrC2X2xE4uSm0iKw==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -4475,8 +4468,8 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild@0.25.5: - resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} hasBin: true @@ -6568,8 +6561,8 @@ packages: react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - react-markdown@9.1.0: - resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==} + react-markdown@9.0.3: + resolution: {integrity: sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==} peerDependencies: '@types/react': '>=18' react: '>=18' @@ -7546,10 +7539,6 @@ packages: webpack-hot-middleware@2.26.1: resolution: {integrity: sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==} - webpack-sources@3.3.0: - resolution: {integrity: sha512-77R0RDmJfj9dyv5p3bM5pOHa+X8/ZkO9c7kpDstigkC4nIDobadsfSGCwB4bKhMVxqAok8tajaoR8rirM7+VFQ==} - engines: {node: '>=10.13.0'} - webpack-sources@3.3.2: resolution: {integrity: sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==} engines: {node: '>=10.13.0'} @@ -7735,8 +7724,6 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.27.3': {} - '@babel/compat-data@7.27.5': {} '@babel/core@7.27.4': @@ -8400,7 +8387,7 @@ snapshots: '@babel/preset-env@7.27.2(@babel/core@7.27.4)': dependencies: - '@babel/compat-data': 7.27.3 + '@babel/compat-data': 7.27.5 '@babel/core': 7.27.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 @@ -8543,9 +8530,9 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@3.2.6(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))': + '@chromatic-com/storybook@3.2.4(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))': dependencies: - chromatic: 11.29.0 + chromatic: 11.25.2 filesize: 10.1.6 jsonfile: 6.1.0 react-confetti: 6.4.0(react@18.3.1) @@ -8582,79 +8569,79 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@esbuild/aix-ppc64@0.25.5': + '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.25.5': + '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.25.5': + '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.25.5': + '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.25.5': + '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.25.5': + '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.25.5': + '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.25.5': + '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.25.5': + '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.25.5': + '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.25.5': + '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.25.5': + '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.25.5': + '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.25.5': + '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.25.5': + '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.25.5': + '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.25.5': + '@esbuild/linux-x64@0.24.2': optional: true - '@esbuild/netbsd-arm64@0.25.5': + '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.25.5': + '@esbuild/netbsd-x64@0.24.2': optional: true - '@esbuild/openbsd-arm64@0.25.5': + '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.25.5': + '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.25.5': + '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.25.5': + '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.25.5': + '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.25.5': + '@esbuild/win32-x64@0.24.2': optional: true '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': @@ -9110,10 +9097,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@mdx-js/react@3.1.0(@types/react@18.3.23)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.23 + '@types/react': 18.3.17 react: 18.3.1 '@mswjs/interceptors@0.38.7': @@ -9440,7 +9427,7 @@ snapshots: dependencies: playwright: 1.52.0 - '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.42.0 @@ -9450,7 +9437,7 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.3.2 source-map: 0.7.4 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) optionalDependencies: type-fest: 4.41.0 webpack-hot-middleware: 2.26.1 @@ -9466,538 +9453,538 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-alert-dialog@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-alert-dialog@1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dialog': 1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-checkbox@1.3.2(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-checkbox@1.3.2(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-collapsible@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-context-menu@2.2.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-context-menu@2.2.15(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-menu': 2.1.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-context@1.1.2(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-context@1.1.2(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-dialog@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.17)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-direction@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-direction@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-menu': 2.1.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-focus-guards@1.1.2(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) '@radix-ui/react-icons@1.3.2(react@18.3.1)': dependencies: react: 18.3.1 - '@radix-ui/react-id@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-id@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-label@2.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-label@2.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-menu@2.1.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.15(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.17)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-popover@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popover@1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.17)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-popper@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.17)(react@18.3.1) '@radix-ui/rect': 1.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-presence@1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-radio-group@1.3.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-radio-group@1.3.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-scroll-area@1.2.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-scroll-area@1.2.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-select@2.2.5(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@2.2.5(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.17)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-separator@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-slot@1.2.3(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-slot@1.2.3(@types/react@18.3.17)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-switch@1.2.5(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-switch@1.2.5(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-tabs@1.1.12(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tabs@1.1.12(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-toast@1.2.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toast@1.2.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-tooltip@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tooltip@1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.17)(react@18.3.1)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.17)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 use-sync-external-store: 1.5.0(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-previous@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-previous@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-rect@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-rect@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/rect': 1.1.1 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-use-size@1.1.1(@types/react@18.3.23)(react@18.3.1)': + '@radix-ui/react-use-size@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) '@radix-ui/rect@1.1.1': {} @@ -10168,7 +10155,7 @@ snapshots: '@sentry/core@9.26.0': {} - '@sentry/nextjs@9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))': + '@sentry/nextjs@9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.34.0 @@ -10179,7 +10166,7 @@ snapshots: '@sentry/opentelemetry': 9.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) '@sentry/react': 9.26.0(react@18.3.1) '@sentry/vercel-edge': 9.26.0 - '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) chalk: 3.0.0 next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resolve: 1.22.8 @@ -10256,12 +10243,12 @@ snapshots: '@opentelemetry/api': 1.9.0 '@sentry/core': 9.26.0 - '@sentry/webpack-plugin@3.5.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))': + '@sentry/webpack-plugin@3.5.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': dependencies: '@sentry/bundler-plugin-core': 3.5.0 unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) transitivePeerDependencies: - encoding - supports-color @@ -10315,9 +10302,9 @@ snapshots: storybook: 8.6.14(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.6.14(@types/react@18.3.23)(storybook@8.6.14(prettier@3.5.3))': + '@storybook/addon-docs@8.6.14(@types/react@18.3.17)(storybook@8.6.14(prettier@3.5.3))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@18.3.23)(react@18.3.1) + '@mdx-js/react': 3.1.0(@types/react@18.3.17)(react@18.3.1) '@storybook/blocks': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/react-dom-shim': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) @@ -10328,12 +10315,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.14(@types/react@18.3.23)(storybook@8.6.14(prettier@3.5.3))': + '@storybook/addon-essentials@8.6.14(@types/react@18.3.17)(storybook@8.6.14(prettier@3.5.3))': dependencies: '@storybook/addon-actions': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-backgrounds': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-controls': 8.6.14(storybook@8.6.14(prettier@3.5.3)) - '@storybook/addon-docs': 8.6.14(@types/react@18.3.23)(storybook@8.6.14(prettier@3.5.3)) + '@storybook/addon-docs': 8.6.14(@types/react@18.3.17)(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-highlight': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-measure': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-outline': 8.6.14(storybook@8.6.14(prettier@3.5.3)) @@ -10400,7 +10387,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-webpack5@8.6.14(@swc/core@1.11.29)(esbuild@0.25.5)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/builder-webpack5@8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/semver': 7.7.0 @@ -10408,23 +10395,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) - html-webpack-plugin: 5.6.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + html-webpack-plugin: 5.6.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29)(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.29)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) - webpack-dev-middleware: 6.1.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack-dev-middleware: 6.1.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -10450,8 +10437,8 @@ snapshots: '@storybook/theming': 8.6.14(storybook@8.6.14(prettier@3.5.3)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.25.5 - esbuild-register: 3.6.0(esbuild@0.25.5) + esbuild: 0.24.2 + esbuild-register: 3.6.0(esbuild@0.24.2) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.11 @@ -10492,7 +10479,7 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.5.3) - '@storybook/nextjs@8.6.14(@swc/core@1.11.29)(esbuild@0.25.5)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))': + '@storybook/nextjs@8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) @@ -10507,30 +10494,30 @@ snapshots: '@babel/preset-react': 7.27.1(@babel/core@7.27.4) '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) '@babel/runtime': 7.27.4 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) - '@storybook/builder-webpack5': 8.6.14(@swc/core@1.11.29)(esbuild@0.25.5)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.29)(esbuild@0.25.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + '@storybook/builder-webpack5': 8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.29)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/semver': 7.7.0 - babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) - css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.4 - postcss-loader: 8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + postcss-loader: 8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 14.2.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + sass-loader: 14.2.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) styled-jsx: 5.1.7(@babel/core@7.27.4)(react@18.3.1) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 @@ -10538,7 +10525,7 @@ snapshots: optionalDependencies: sharp: 0.33.5 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -10557,11 +10544,11 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.29)(esbuild@0.25.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.29)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) '@types/semver': 7.7.0 find-up: 5.0.0 magic-string: 0.30.17 @@ -10572,7 +10559,7 @@ snapshots: semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) tsconfig-paths: 4.2.0 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -10587,7 +10574,7 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.5.3) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': dependencies: debug: 4.4.1 endent: 2.1.0 @@ -10597,7 +10584,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) transitivePeerDependencies: - supports-color @@ -10974,15 +10961,15 @@ snapshots: '@types/prop-types@15.7.14': {} - '@types/react-dom@18.3.7(@types/react@18.3.23)': + '@types/react-dom@18.3.5(@types/react@18.3.17)': dependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 '@types/react-modal@3.16.3': dependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - '@types/react@18.3.23': + '@types/react@18.3.17': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 @@ -11284,13 +11271,13 @@ snapshots: '@xtuc/long@4.2.2': {} - '@xyflow/react@12.6.4(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@xyflow/react@12.6.4(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@xyflow/system': 0.0.61 classcat: 5.0.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.7(@types/react@18.3.23)(react@18.3.1) + zustand: 4.5.7(@types/react@18.3.17)(react@18.3.1) transitivePeerDependencies: - '@types/react' - immer @@ -11555,12 +11542,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: '@babel/core': 7.27.4 find-cache-dir: 4.0.0 schema-utils: 4.3.2 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) babel-plugin-istanbul@6.1.1: dependencies: @@ -11581,7 +11568,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.4): dependencies: - '@babel/compat-data': 7.27.3 + '@babel/compat-data': 7.27.5 '@babel/core': 7.27.4 '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) semver: 6.3.1 @@ -11777,8 +11764,6 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001720: {} - caniuse-lite@1.0.30001721: {} case-sensitive-paths-webpack-plugin@2.4.0: {} @@ -11837,7 +11822,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chromatic@11.29.0: {} + chromatic@11.25.2: {} chrome-trace-event@1.0.4: {} @@ -11880,12 +11865,12 @@ snapshots: clsx@2.1.1: {} - cmdk@1.1.1(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dialog': 1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -12051,7 +12036,7 @@ snapshots: css-color-keywords@1.0.0: {} - css-loader@6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + css-loader@6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: icss-utils: 5.1.0(postcss@8.5.4) postcss: 8.5.4 @@ -12062,7 +12047,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) css-select@4.3.0: dependencies: @@ -12495,40 +12480,40 @@ snapshots: es6-error@4.1.1: {} - esbuild-register@3.6.0(esbuild@0.25.5): + esbuild-register@3.6.0(esbuild@0.24.2): dependencies: debug: 4.4.1 - esbuild: 0.25.5 + esbuild: 0.24.2 transitivePeerDependencies: - supports-color - esbuild@0.25.5: + esbuild@0.24.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.5 - '@esbuild/android-arm': 0.25.5 - '@esbuild/android-arm64': 0.25.5 - '@esbuild/android-x64': 0.25.5 - '@esbuild/darwin-arm64': 0.25.5 - '@esbuild/darwin-x64': 0.25.5 - '@esbuild/freebsd-arm64': 0.25.5 - '@esbuild/freebsd-x64': 0.25.5 - '@esbuild/linux-arm': 0.25.5 - '@esbuild/linux-arm64': 0.25.5 - '@esbuild/linux-ia32': 0.25.5 - '@esbuild/linux-loong64': 0.25.5 - '@esbuild/linux-mips64el': 0.25.5 - '@esbuild/linux-ppc64': 0.25.5 - '@esbuild/linux-riscv64': 0.25.5 - '@esbuild/linux-s390x': 0.25.5 - '@esbuild/linux-x64': 0.25.5 - '@esbuild/netbsd-arm64': 0.25.5 - '@esbuild/netbsd-x64': 0.25.5 - '@esbuild/openbsd-arm64': 0.25.5 - '@esbuild/openbsd-x64': 0.25.5 - '@esbuild/sunos-x64': 0.25.5 - '@esbuild/win32-arm64': 0.25.5 - '@esbuild/win32-ia32': 0.25.5 - '@esbuild/win32-x64': 0.25.5 + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 escalade@3.2.0: {} @@ -12925,7 +12910,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -12940,7 +12925,7 @@ snapshots: semver: 7.7.2 tapable: 2.2.2 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) form-data@4.0.2: dependencies: @@ -13199,7 +13184,7 @@ snapshots: html-url-attributes@3.0.1: {} - html-webpack-plugin@5.6.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + html-webpack-plugin@5.6.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -13207,7 +13192,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) htmlparser2@3.10.1: dependencies: @@ -14456,7 +14441,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001720 + caniuse-lite: 1.0.30001721 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -14490,7 +14475,7 @@ snapshots: node-int64@0.4.0: {} - node-polyfill-webpack-plugin@2.0.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + node-polyfill-webpack-plugin@2.0.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -14517,7 +14502,7 @@ snapshots: url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) node-preload@0.2.1: dependencies: @@ -14838,14 +14823,14 @@ snapshots: optionalDependencies: postcss: 8.5.4 - postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 1.21.7 postcss: 8.5.4 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) transitivePeerDependencies: - typescript @@ -15069,11 +15054,10 @@ snapshots: react-lifecycles-compat@3.0.4: {} - react-markdown@9.1.0(@types/react@18.3.23)(react@18.3.1): + react-markdown@9.0.3(@types/react@18.3.17)(react@18.3.1): dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/react': 18.3.23 + '@types/react': 18.3.17 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 @@ -15098,24 +15082,24 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.23)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@18.3.17)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.23)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.17)(react@18.3.1) tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - react-remove-scroll@2.7.1(@types/react@18.3.23)(react@18.3.1): + react-remove-scroll@2.7.1(@types/react@18.3.17)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.23)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.23)(react@18.3.1) + react-remove-scroll-bar: 2.3.8(@types/react@18.3.17)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.17)(react@18.3.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.23)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.23)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@18.3.17)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.17)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 react-shepherd@6.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3): dependencies: @@ -15132,13 +15116,13 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-style-singleton@2.2.3(@types/react@18.3.23)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -15415,11 +15399,11 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - sass-loader@14.2.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + sass-loader@14.2.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: neo-async: 2.6.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) scheduler@0.23.2: dependencies: @@ -15786,9 +15770,9 @@ snapshots: strip-json-comments@3.1.1: {} - style-loader@3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + style-loader@3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) style-to-js@1.1.16: dependencies: @@ -15887,17 +15871,17 @@ snapshots: tapable@2.2.2: {} - terser-webpack-plugin@5.3.14(@swc/core@1.11.29)(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + terser-webpack-plugin@5.3.14(@swc/core@1.11.29)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.40.0 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) optionalDependencies: '@swc/core': 1.11.29 - esbuild: 0.25.5 + esbuild: 0.24.2 terser@5.40.0: dependencies: @@ -16168,20 +16152,20 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.3(@types/react@18.3.23)(react@18.3.1): + use-callback-ref@1.3.3(@types/react@18.3.17)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 - use-sidecar@1.1.3(@types/react@18.3.23)(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.17)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 use-sync-external-store@1.5.0(react@18.3.1): dependencies: @@ -16273,7 +16257,7 @@ snapshots: webidl-conversions@3.0.1: {} - webpack-dev-middleware@6.1.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)): + webpack-dev-middleware@6.1.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -16281,7 +16265,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.25.5) + webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) webpack-hot-middleware@2.26.1: dependencies: @@ -16289,15 +16273,13 @@ snapshots: html-entities: 2.6.0 strip-ansi: 6.0.1 - webpack-sources@3.3.0: {} - webpack-sources@3.3.2: {} webpack-virtual-modules@0.5.0: {} webpack-virtual-modules@0.6.2: {} - webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5): + webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.7 @@ -16320,9 +16302,9 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29)(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.29)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) watchpack: 2.4.4 - webpack-sources: 3.3.0 + webpack-sources: 3.3.2 transitivePeerDependencies: - '@swc/core' - esbuild @@ -16475,11 +16457,11 @@ snapshots: zod@3.25.51: {} - zustand@4.5.7(@types/react@18.3.23)(react@18.3.1): + zustand@4.5.7(@types/react@18.3.17)(react@18.3.1): dependencies: use-sync-external-store: 1.5.0(react@18.3.1) optionalDependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.17 react: 18.3.1 zwitch@2.0.4: {} diff --git a/autogpt_platform/frontend/src/hooks/useTurnstile.ts b/autogpt_platform/frontend/src/hooks/useTurnstile.ts index 18bbb06c62..833fb723ad 100644 --- a/autogpt_platform/frontend/src/hooks/useTurnstile.ts +++ b/autogpt_platform/frontend/src/hooks/useTurnstile.ts @@ -47,10 +47,13 @@ export function useTurnstile({ useEffect(() => { const behaveAs = getBehaveAs(); const hasTurnstileKey = !!TURNSTILE_SITE_KEY; - const turnstileDisabled = process.env.NEXT_PUBLIC_DISABLE_TURNSTILE === "true"; + const turnstileDisabled = + process.env.NEXT_PUBLIC_DISABLE_TURNSTILE === "true"; // Only render Turnstile in cloud environment if not explicitly disabled - setShouldRender(behaveAs === BehaveAs.CLOUD && hasTurnstileKey && !turnstileDisabled); + setShouldRender( + behaveAs === BehaveAs.CLOUD && hasTurnstileKey && !turnstileDisabled, + ); // Skip verification if disabled, in local development, or no key if (turnstileDisabled || behaveAs !== BehaveAs.CLOUD || !hasTurnstileKey) { From 96df40f7b60756288fa3e977812628cc1bf24997 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Thu, 5 Jun 2025 16:48:35 +0100 Subject: [PATCH 063/497] fix(frontend): Use `FRONTEND_BASE_URL` to make password reset link (#10102) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixes #9215 - [x] ⚠️ Merge first: https://github.com/Significant-Gravitas/AutoGPT_cloud_infrastructure/pull/93 ### Changes 🏗️ - Use `FRONTEND_BASE_URL` instead of Host header to make password reset redirect link ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Resetting password gives an e-mail with a link that points to the correct URL #### For configuration changes: - [x] `.env.example` is updated or already compatible with my changes - [x] `docker-compose.yml` is updated or already compatible with my changes - [x] I have included a list of my configuration changes in the PR description (under **Changes**) --- autogpt_platform/frontend/.env.example | 4 +++- .../frontend/src/app/(platform)/reset_password/actions.ts | 7 +------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/autogpt_platform/frontend/.env.example b/autogpt_platform/frontend/.env.example index 675d0ab1fc..04e3831b6c 100644 --- a/autogpt_platform/frontend/.env.example +++ b/autogpt_platform/frontend/.env.example @@ -1,3 +1,5 @@ +FRONTEND_BASE_URL=http://localhost:3000 + NEXT_PUBLIC_AUTH_CALLBACK_URL=http://localhost:8006/auth/callback NEXT_PUBLIC_AGPT_SERVER_URL=http://localhost:8006/api NEXT_PUBLIC_AGPT_WS_SERVER_URL=ws://localhost:8001/ws @@ -19,7 +21,7 @@ NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAic ## OAuth Callback URL ## This should be {domain}/auth/callback ## Only used if you're using Supabase and OAuth -AUTH_CALLBACK_URL=http://localhost:3000/auth/callback +AUTH_CALLBACK_URL="${FRONTEND_BASE_URL}/auth/callback" GA_MEASUREMENT_ID=G-FH2XK2W4GN # When running locally, set NEXT_PUBLIC_BEHAVE_AS=CLOUD to use the a locally hosted marketplace (as is typical in development, and the cloud deployment), otherwise set it to LOCAL to have the marketplace open in a new tab diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts index f3874ca76f..6760e911be 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts @@ -2,7 +2,6 @@ import getServerSupabase from "@/lib/supabase/getServerSupabase"; import { redirect } from "next/navigation"; import * as Sentry from "@sentry/nextjs"; -import { headers } from "next/headers"; import { verifyTurnstileToken } from "@/lib/turnstile"; export async function sendResetEmail(email: string, turnstileToken: string) { @@ -11,11 +10,7 @@ export async function sendResetEmail(email: string, turnstileToken: string) { {}, async () => { const supabase = getServerSupabase(); - const headersList = await headers(); - const host = headersList.get("host"); - const protocol = - process.env.NODE_ENV === "development" ? "http" : "https"; - const origin = `${protocol}://${host}`; + const origin = process.env.FRONTEND_BASE_URL || "http://localhost:3000"; if (!supabase) { redirect("/error"); From f2a04f9845f645c466793a1dda66b1c0f2681e83 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Thu, 5 Jun 2025 16:49:14 +0100 Subject: [PATCH 064/497] dx: Fix file filter for `platform/backend` auto-label (#10115) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixes #10114 ### Changes 🏗️ - Change file matching patterns OR to AND in auto-labeler config --- .github/labeler.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 8d23469838..6cd4e4f67e 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -24,8 +24,9 @@ platform/frontend: platform/backend: - changed-files: - - any-glob-to-any-file: autogpt_platform/backend/** - - all-globs-to-all-files: '!autogpt_platform/backend/backend/blocks/**' + - all-globs-to-any-file: + - autogpt_platform/backend/** + - '!autogpt_platform/backend/backend/blocks/**' platform/blocks: - changed-files: From 2647417e9f3e8021533bfc83b0f06b85fed9acdb Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Thu, 5 Jun 2025 23:10:50 +0700 Subject: [PATCH 065/497] feat(executor;frontend): Move output processing step from node executor to graph executor & simplify input beads calculation (#10066) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Goal**: Allow parallel runs within a single node. Currently, we prevent this to avoid unexpected ordering of the execution. ### Changes 🏗️ #### Executor changes We decoupled the node execution output processing, which is responsible for deciding the next executions from the node executor code. Currently, `execute_node` does two big things: * Runs the block’s execute(...) (which yields outputs). * immediately enqueues the next nodes based on those outputs. This PR makes: * execute_node(node_exec) -> stream of (output_name, data). That purely runs the block and yields each output as soon as it’s available. * Move _enqueue_next_nodes into the graph executor. So the next execution is handled serially by the graph executor to avoid concurrency issues. #### UI changes The change on the executor also fixes the behavior of the execution update to the UI We will report the execution output to the UI as soon as it is available, not when the node execution is fully completed. This, however, broke the bread calculation logic that assumes each execution update will never overlap. So the change in this PR makes the bead calculation take the overlap / duplicated execution update into account, and simplify the overall calculation logic. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Execute this agent and observe its concurrency ordering image --- .../backend/backend/blocks/llm.py | 4 +- .../backend/backend/data/execution.py | 38 ++- .../backend/backend/executor/database.py | 3 + .../backend/backend/executor/manager.py | 264 +++++++++++------- .../backend/backend/executor/utils.py | 73 ++++- .../frontend/src/components/CustomEdge.tsx | 3 +- .../frontend/src/hooks/useAgentGraph.tsx | 109 ++++---- 7 files changed, 331 insertions(+), 163 deletions(-) diff --git a/autogpt_platform/backend/backend/blocks/llm.py b/autogpt_platform/backend/backend/blocks/llm.py index 2ff5687f5c..f4c16e48ad 100644 --- a/autogpt_platform/backend/backend/blocks/llm.py +++ b/autogpt_platform/backend/backend/blocks/llm.py @@ -1047,8 +1047,8 @@ class AITextSummarizerBlock(AIBlockBase): def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: - for output in self._run(input_data, credentials): - yield output + for output_name, output_data in self._run(input_data, credentials): + yield output_name, output_data def _run(self, input_data: Input, credentials: APIKeyCredentials) -> BlockOutput: chunks = self._split_text( diff --git a/autogpt_platform/backend/backend/data/execution.py b/autogpt_platform/backend/backend/data/execution.py index d27e427566..7fc534d30d 100644 --- a/autogpt_platform/backend/backend/data/execution.py +++ b/autogpt_platform/backend/backend/data/execution.py @@ -3,6 +3,7 @@ from collections import defaultdict from datetime import datetime, timedelta, timezone from enum import Enum from multiprocessing import Manager +from queue import Empty from typing import ( Annotated, Any, @@ -621,14 +622,29 @@ async def update_graph_execution_stats( return GraphExecution.from_db(graph_exec) -async def update_node_execution_stats(node_exec_id: str, stats: NodeExecutionStats): +async def update_node_execution_stats( + node_exec_id: str, stats: NodeExecutionStats +) -> NodeExecutionResult: data = stats.model_dump() if isinstance(data["error"], Exception): data["error"] = str(data["error"]) - await AgentNodeExecution.prisma().update( + execution_status = ExecutionStatus.FAILED + else: + execution_status = ExecutionStatus.COMPLETED + + res = await AgentNodeExecution.prisma().update( where={"id": node_exec_id}, - data={"stats": Json(data)}, + data={ + "stats": Json(data), + "executionStatus": execution_status, + "endedTime": datetime.now(tz=timezone.utc), + }, + include=EXECUTION_RESULT_INCLUDE, ) + if not res: + raise ValueError(f"Node execution {node_exec_id} not found.") + + return NodeExecutionResult.from_db(res) async def update_node_execution_status_batch( @@ -702,6 +718,16 @@ async def delete_graph_execution( ) +async def get_node_execution(node_exec_id: str) -> NodeExecutionResult | None: + execution = await AgentNodeExecution.prisma().find_first( + where={"id": node_exec_id}, + include=EXECUTION_RESULT_INCLUDE, + ) + if not execution: + return None + return NodeExecutionResult.from_db(execution) + + async def get_node_executions( graph_exec_id: str, node_id: str | None = None, @@ -794,6 +820,12 @@ class ExecutionQueue(Generic[T]): def empty(self) -> bool: return self.queue.empty() + def get_or_none(self) -> T | None: + try: + return self.queue.get_nowait() + except Empty: + return None + # --------------------- Event Bus --------------------- # diff --git a/autogpt_platform/backend/backend/executor/database.py b/autogpt_platform/backend/backend/executor/database.py index f120433da5..e1b4c9c776 100644 --- a/autogpt_platform/backend/backend/executor/database.py +++ b/autogpt_platform/backend/backend/executor/database.py @@ -9,6 +9,7 @@ from backend.data.execution import ( get_graph_execution_meta, get_graph_executions, get_latest_node_execution, + get_node_execution, get_node_executions, update_graph_execution_start_time, update_graph_execution_stats, @@ -90,6 +91,7 @@ class DatabaseManager(AppService): get_graph_executions = _(get_graph_executions) get_graph_execution_meta = _(get_graph_execution_meta) create_graph_execution = _(create_graph_execution) + get_node_execution = _(get_node_execution) get_node_executions = _(get_node_executions) get_latest_node_execution = _(get_latest_node_execution) update_node_execution_status = _(update_node_execution_status) @@ -147,6 +149,7 @@ class DatabaseManagerClient(AppServiceClient): get_graph_executions = _(d.get_graph_executions) get_graph_execution_meta = _(d.get_graph_execution_meta) create_graph_execution = _(d.create_graph_execution) + get_node_execution = _(d.get_node_execution) get_node_executions = _(d.get_node_executions) get_latest_node_execution = _(d.get_latest_node_execution) update_node_execution_status = _(d.update_node_execution_status) diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index acc5bab91d..58ad8933fd 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -5,10 +5,12 @@ import os import signal import sys import threading +import time +from collections import defaultdict from concurrent.futures import Future, ProcessPoolExecutor from contextlib import contextmanager -from multiprocessing.pool import AsyncResult, Pool -from typing import TYPE_CHECKING, Any, Generator, Optional, TypeVar, cast +from multiprocessing.pool import Pool +from typing import TYPE_CHECKING, Optional, TypeVar, cast from pika.adapters.blocking_connection import BlockingChannel from pika.spec import Basic, BasicProperties @@ -39,7 +41,13 @@ from prometheus_client import Gauge, start_http_server from backend.blocks.agent import AgentExecutorBlock from backend.data import redis -from backend.data.block import BlockData, BlockInput, BlockSchema, get_block +from backend.data.block import ( + BlockData, + BlockInput, + BlockOutput, + BlockSchema, + get_block, +) from backend.data.credit import UsageTransactionMetadata from backend.data.execution import ( ExecutionQueue, @@ -54,6 +62,8 @@ from backend.executor.utils import ( GRAPH_EXECUTION_CANCEL_QUEUE_NAME, GRAPH_EXECUTION_QUEUE_NAME, CancelExecutionEvent, + ExecutionOutputEntry, + NodeExecutionProgress, block_usage_cost, execution_usage_cost, get_execution_event_bus, @@ -116,18 +126,17 @@ class LogMetadata(TruncatedLogger): T = TypeVar("T") -ExecutionStream = Generator[NodeExecutionEntry, None, None] def execute_node( - db_client: "DatabaseManagerClient", + node: Node, creds_manager: IntegrationCredentialsManager, data: NodeExecutionEntry, execution_stats: NodeExecutionStats | None = None, node_credentials_input_map: Optional[ dict[str, dict[str, CredentialsMetaInput]] ] = None, -) -> ExecutionStream: +) -> BlockOutput: """ Execute a node in the graph. This will trigger a block execution on a node, persist the execution result, and return the subsequent node to be executed. @@ -146,24 +155,8 @@ def execute_node( graph_id = data.graph_id node_exec_id = data.node_exec_id node_id = data.node_id - - def update_execution_status(status: ExecutionStatus) -> NodeExecutionResult: - """Sets status and fetches+broadcasts the latest state of the node execution""" - exec_update = db_client.update_node_execution_status(node_exec_id, status) - send_execution_update(exec_update) - return exec_update - - node = db_client.get_node(node_id) - node_block = node.block - def push_output(output_name: str, output_data: Any) -> None: - db_client.upsert_execution_output( - node_exec_id=node_exec_id, - output_name=output_name, - output_data=output_data, - ) - log_metadata = LogMetadata( user_id=user_id, graph_eid=graph_exec_id, @@ -177,8 +170,7 @@ def execute_node( input_data, error = validate_exec(node, data.inputs, resolve_input=False) if input_data is None: log_metadata.error(f"Skip execution, input validation error: {error}") - push_output("error", error) - update_execution_status(ExecutionStatus.FAILED) + yield "error", error return # Re-shape the input data for agent block. @@ -195,7 +187,6 @@ def execute_node( input_data_str = json.dumps(input_data) input_size = len(input_data_str) log_metadata.debug("Executed node with input", input=input_data_str) - update_execution_status(ExecutionStatus.RUNNING) # Inject extra execution arguments for the blocks via kwargs extra_exec_kwargs: dict = { @@ -219,47 +210,19 @@ def execute_node( output_size = 0 try: - outputs: dict[str, Any] = {} for output_name, output_data in node_block.execute( input_data, **extra_exec_kwargs ): output_data = json.convert_pydantic_to_json(output_data) output_size += len(json.dumps(output_data)) log_metadata.debug("Node produced output", **{output_name: output_data}) - push_output(output_name, output_data) - outputs[output_name] = output_data - for execution in _enqueue_next_nodes( - db_client=db_client, - node=node, - output=(output_name, output_data), - user_id=user_id, - graph_exec_id=graph_exec_id, - graph_id=graph_id, - log_metadata=log_metadata, - node_credentials_input_map=node_credentials_input_map, - ): - yield execution - - update_execution_status(ExecutionStatus.COMPLETED) + yield output_name, output_data except Exception as e: error_msg = str(e) - push_output("error", error_msg) - update_execution_status(ExecutionStatus.FAILED) - - for execution in _enqueue_next_nodes( - db_client=db_client, - node=node, - output=("error", error_msg), - user_id=user_id, - graph_exec_id=graph_exec_id, - graph_id=graph_id, - log_metadata=log_metadata, - node_credentials_input_map=node_credentials_input_map, - ): - yield execution - + yield "error", error_msg raise e + finally: # Ensure credentials are released even if execution fails if creds_lock and creds_lock.locked() and creds_lock.owned(): @@ -290,10 +253,12 @@ def _enqueue_next_nodes( def add_enqueued_execution( node_exec_id: str, node_id: str, block_id: str, data: BlockInput ) -> NodeExecutionEntry: - exec_update = db_client.update_node_execution_status( - node_exec_id, ExecutionStatus.QUEUED, data + update_node_execution_status( + db_client=db_client, + exec_id=node_exec_id, + status=ExecutionStatus.QUEUED, + execution_data=data, ) - send_execution_update(exec_update) return NodeExecutionEntry( user_id=user_id, graph_exec_id=graph_exec_id, @@ -334,6 +299,11 @@ def _enqueue_next_nodes( input_name=next_input_name, input_data=next_data, ) + update_node_execution_status( + db_client=db_client, + exec_id=next_node_exec_id, + status=ExecutionStatus.INCOMPLETE, + ) # Complete missing static input pins data using the last execution input. static_link_names = { @@ -493,7 +463,7 @@ class Executor: @error_logged def on_node_execution( cls, - q: ExecutionQueue[NodeExecutionEntry], + q: ExecutionQueue[ExecutionOutputEntry], node_exec: NodeExecutionEntry, node_credentials_input_map: Optional[ dict[str, dict[str, CredentialsMetaInput]] @@ -507,27 +477,35 @@ class Executor: node_id=node_exec.node_id, block_name="-", ) + node = cls.db_client.get_node(node_exec.node_id) execution_stats = NodeExecutionStats() timing_info, _ = cls._on_node_execution( - q, node_exec, log_metadata, execution_stats, node_credentials_input_map + q=q, + node_exec=node_exec, + node=node, + log_metadata=log_metadata, + stats=execution_stats, + node_credentials_input_map=node_credentials_input_map, ) execution_stats.walltime = timing_info.wall_time execution_stats.cputime = timing_info.cpu_time if isinstance(execution_stats.error, Exception): execution_stats.error = str(execution_stats.error) - cls.db_client.update_node_execution_stats( + exec_update = cls.db_client.update_node_execution_stats( node_exec.node_exec_id, execution_stats ) + send_execution_update(exec_update) return execution_stats @classmethod @time_measured def _on_node_execution( cls, - q: ExecutionQueue[NodeExecutionEntry], + q: ExecutionQueue[ExecutionOutputEntry], node_exec: NodeExecutionEntry, + node: Node, log_metadata: LogMetadata, stats: NodeExecutionStats | None = None, node_credentials_input_map: Optional[ @@ -536,14 +514,26 @@ class Executor: ): try: log_metadata.info(f"Start node execution {node_exec.node_exec_id}") - for execution in execute_node( + update_node_execution_status( db_client=cls.db_client, + exec_id=node_exec.node_exec_id, + status=ExecutionStatus.RUNNING, + ) + + for output_name, output_data in execute_node( + node=node, creds_manager=cls.creds_manager, data=node_exec, execution_stats=stats, node_credentials_input_map=node_credentials_input_map, ): - q.add(execution) + q.add( + ExecutionOutputEntry( + node=node, + node_exec_id=node_exec.node_exec_id, + data=(output_name, output_data), + ) + ) log_metadata.info(f"Finished node execution {node_exec.node_exec_id}") except Exception as e: # Avoid user error being marked as an actual error. @@ -709,6 +699,13 @@ class Executor: error = None finished = False + def drain_output_queue(): + while output := output_queue.get_or_none(): + log_metadata.debug( + f"Received output for {output.node.id} - {output.node_exec_id}: {output.data}" + ) + running_executions[output.node.id].add_output(output) + def cancel_handler(): nonlocal execution_status @@ -733,19 +730,20 @@ class Executor: amount=1, ) - queue = ExecutionQueue[NodeExecutionEntry]() + output_queue = ExecutionQueue[ExecutionOutputEntry]() + execution_queue = ExecutionQueue[NodeExecutionEntry]() for node_exec in cls.db_client.get_node_executions( graph_exec.graph_exec_id, statuses=[ExecutionStatus.RUNNING, ExecutionStatus.QUEUED], ): - queue.add(node_exec.to_node_execution_entry()) + execution_queue.add(node_exec.to_node_execution_entry()) - running_executions: dict[str, AsyncResult] = {} + running_executions: dict[str, NodeExecutionProgress] = defaultdict( + lambda: NodeExecutionProgress(drain_output_queue) + ) def make_exec_callback(exec_data: NodeExecutionEntry): def callback(result: object): - running_executions.pop(exec_data.node_id) - if not isinstance(result, NodeExecutionStats): return @@ -773,21 +771,12 @@ class Executor: return callback - while not queue.empty(): + while not execution_queue.empty(): if cancel.is_set(): execution_status = ExecutionStatus.TERMINATED return execution_stats, execution_status, error - queued_node_exec = queue.get() - - # Avoid parallel execution of the same node. - execution = running_executions.get(queued_node_exec.node_id) - if execution and not execution.ready(): - # TODO (performance improvement): - # Wait for the completion of the same node execution is blocking. - # To improve this we need a separate queue for each node. - # Re-enqueueing the data back to the queue will disrupt the order. - execution.wait() + queued_node_exec = execution_queue.get() log_metadata.debug( f"Dispatching node execution {queued_node_exec.node_exec_id} " @@ -807,12 +796,12 @@ class Executor: output_name="error", output_data=str(error), ) - - execution_status = ExecutionStatus.FAILED - exec_update = cls.db_client.update_node_execution_status( - node_exec_id, execution_status + update_node_execution_status( + db_client=cls.db_client, + exec_id=node_exec_id, + status=ExecutionStatus.FAILED, ) - send_execution_update(exec_update) + execution_status = ExecutionStatus.FAILED cls._handle_low_balance_notif( graph_exec.user_id, @@ -835,34 +824,52 @@ class Executor: ) # Initiate node execution - running_executions[queued_node_exec.node_id] = cls.executor.apply_async( - cls.on_node_execution, - (queue, queued_node_exec, node_creds_map), - callback=make_exec_callback(queued_node_exec), + running_executions[queued_node_exec.node_id].add_task( + queued_node_exec.node_exec_id, + cls.executor.apply_async( + cls.on_node_execution, + (output_queue, queued_node_exec, node_creds_map), + callback=make_exec_callback(queued_node_exec), + ), ) # Avoid terminating graph execution when some nodes are still running. - while queue.empty() and running_executions: + while execution_queue.empty() and running_executions: log_metadata.debug( f"Queue empty; running nodes: {list(running_executions.keys())}" ) + + # Register next node executions from running_executions. for node_id, execution in list(running_executions.items()): if cancel.is_set(): execution_status = ExecutionStatus.TERMINATED return execution_stats, execution_status, error - if not queue.empty(): + if not execution_queue.empty(): break # yield to parent loop to execute new queue items log_metadata.debug(f"Waiting on execution of node {node_id}") - execution.wait(3) + while output := execution.pop_output(): + cls._process_node_output( + output=output, + node_id=node_id, + graph_exec=graph_exec, + log_metadata=log_metadata, + node_creds_map=node_creds_map, + execution_queue=execution_queue, + ) + + if execution.is_done(1): + running_executions.pop(node_id) + else: + time.sleep(0.1) log_metadata.info(f"Finished graph execution {graph_exec.graph_exec_id}") execution_status = ExecutionStatus.COMPLETED except Exception as e: error = e - log_metadata.error( + log_metadata.exception( f"Failed graph execution {graph_exec.graph_exec_id}: {error}" ) execution_status = ExecutionStatus.FAILED @@ -875,6 +882,61 @@ class Executor: clean_exec_files(graph_exec.graph_exec_id) return execution_stats, execution_status, error + @classmethod + def _process_node_output( + cls, + output: ExecutionOutputEntry, + node_id: str, + graph_exec: GraphExecutionEntry, + log_metadata: LogMetadata, + node_creds_map: Optional[dict[str, dict[str, CredentialsMetaInput]]], + execution_queue: ExecutionQueue[NodeExecutionEntry], + ) -> None: + """Process a node's output, update its status, and enqueue next nodes. + + Args: + output: The execution output entry to process + node_id: The ID of the node that produced the output + graph_exec: The graph execution entry + log_metadata: Logger metadata for consistent logging + node_creds_map: Optional map of node credentials + execution_queue: Queue to add next executions to + """ + try: + name, data = output.data + cls.db_client.upsert_execution_output( + node_exec_id=output.node_exec_id, + output_name=name, + output_data=data, + ) + if exec_update := cls.db_client.get_node_execution(output.node_exec_id): + send_execution_update(exec_update) + + log_metadata.debug(f"Enqueue nodes for {node_id}: {output}") + for next_execution in _enqueue_next_nodes( + db_client=cls.db_client, + node=output.node, + output=output.data, + user_id=graph_exec.user_id, + graph_exec_id=graph_exec.graph_exec_id, + graph_id=graph_exec.graph_id, + log_metadata=log_metadata, + node_credentials_input_map=node_creds_map, + ): + execution_queue.add(next_execution) + except Exception as e: + log_metadata.exception(f"Failed to process node output: {e}") + cls.db_client.upsert_execution_output( + node_exec_id=output.node_exec_id, + output_name="error", + output_data=str(e), + ) + update_node_execution_status( + db_client=cls.db_client, + exec_id=output.node_exec_id, + status=ExecutionStatus.FAILED, + ) + @classmethod def _handle_agent_run_notif( cls, @@ -1139,6 +1201,20 @@ def send_execution_update(entry: GraphExecution | NodeExecutionResult | None): return get_execution_event_bus().publish(entry) +def update_node_execution_status( + db_client: "DatabaseManagerClient", + exec_id: str, + status: ExecutionStatus, + execution_data: BlockInput | None = None, +) -> NodeExecutionResult: + """Sets status and fetches+broadcasts the latest state of the node execution""" + exec_update = db_client.update_node_execution_status( + exec_id, status, execution_data + ) + send_execution_update(exec_update) + return exec_update + + @contextmanager def synchronized(key: str, timeout: int = 60): lock: RedisLock = redis.get_redis().lock(f"lock:{key}", timeout=timeout) diff --git a/autogpt_platform/backend/backend/executor/utils.py b/autogpt_platform/backend/backend/executor/utils.py index 12e4e8c5ff..af6340a4ac 100644 --- a/autogpt_platform/backend/backend/executor/utils.py +++ b/autogpt_platform/backend/backend/executor/utils.py @@ -1,5 +1,7 @@ import logging -from typing import TYPE_CHECKING, Any, Optional, cast +from collections import defaultdict +from multiprocessing.pool import AsyncResult +from typing import TYPE_CHECKING, Any, Callable, Optional, cast from autogpt_libs.utils.cache import thread_cached from pydantic import BaseModel @@ -804,3 +806,72 @@ def add_graph_execution( stats=GraphExecutionStats(error=str(e)), ) raise + + +# ============ Execution Output Helpers ============ # + + +class ExecutionOutputEntry(BaseModel): + node: Node + node_exec_id: str + data: BlockData + + +class NodeExecutionProgress: + def __init__(self, drain_output_queue: Callable[[], None]): + self.output: dict[str, list[ExecutionOutputEntry]] = defaultdict(list) + self.tasks: dict[str, AsyncResult] = {} + self.drain_output_queue = drain_output_queue + + def add_task(self, node_exec_id: str, task: AsyncResult): + self.tasks[node_exec_id] = task + + def add_output(self, output: ExecutionOutputEntry): + self.output[output.node_exec_id].append(output) + + def pop_output(self) -> ExecutionOutputEntry | None: + exec_id = self._next_exec() + if not exec_id: + return None + + if self._pop_done_task(exec_id): + return self.pop_output() + + if next_output := self.output[exec_id]: + return next_output.pop(0) + + return None + + def is_done(self, wait_time: float = 0.0) -> bool: + exec_id = self._next_exec() + if not exec_id: + return True + + if self._pop_done_task(exec_id): + return self.is_done(wait_time) + + if wait_time <= 0: + return False + + self.tasks[exec_id].wait(wait_time) + return self.is_done(0) + + def _pop_done_task(self, exec_id: str) -> bool: + task = self.tasks.get(exec_id) + if not task: + return True + + if not task.ready(): + return False + + self.drain_output_queue() + if self.output[exec_id]: + return False + + self.tasks.pop(exec_id) + return True + + def _next_exec(self) -> str | None: + if not self.tasks: + return None + return next(iter(self.tasks.keys())) diff --git a/autogpt_platform/frontend/src/components/CustomEdge.tsx b/autogpt_platform/frontend/src/components/CustomEdge.tsx index d3f94fb1ac..bb620b2e6f 100644 --- a/autogpt_platform/frontend/src/components/CustomEdge.tsx +++ b/autogpt_platform/frontend/src/components/CustomEdge.tsx @@ -12,6 +12,7 @@ import "./customedge.css"; import { X } from "lucide-react"; import { useBezierPath } from "@/hooks/useBezierPath"; import { FlowContext } from "./Flow"; +import { NodeExecutionResult } from "@/lib/autogpt-server-api"; export type CustomEdgeData = { edgeColor: string; @@ -19,7 +20,7 @@ export type CustomEdgeData = { isStatic?: boolean; beadUp?: number; beadDown?: number; - beadData?: any[]; + beadData?: Map; }; type Bead = { diff --git a/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx b/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx index f559ac863c..1a258653d3 100644 --- a/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx +++ b/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx @@ -241,7 +241,7 @@ export default function useAgentGraph( isStatic: link.is_static, beadUp: 0, beadDown: 0, - beadData: [], + beadData: new Map(), }, markerEnd: { type: MarkerType.ArrowClosed, @@ -307,61 +307,46 @@ export default function useAgentGraph( setEdges((edges) => { return edges.map((e) => { const edge = { ...e, data: { ...e.data } } as CustomEdge; + const execStatus = + edge.data!.beadData || + new Map(); - if (executionData.status === "COMPLETED") { - // Produce output beads - for (let key in executionData.output_data) { - if ( - edge.source !== getFrontendId(executionData.node_id, nodes) || - edge.sourceHandle !== cleanupSourceName(key) || - (isToolSourceName(key) && - getToolArgName(key) !== edge.targetHandle) - ) { - console.log( - key, - cleanupSourceName(key), - edge.targetHandle, - " are not equal ", - getToolArgName(key), - edge.sourceHandle, - ); - continue; - } - const count = executionData.output_data[key].length; - edge.data!.beadUp = (edge.data!.beadUp ?? 0) + count; - // For static edges beadDown is always one less than beadUp - // Because there's no queueing and one bead is always at the connection point - if (edge.data?.isStatic) { - edge.data!.beadDown = (edge.data!.beadUp ?? 0) - 1; - edge.data!.beadData = edge.data!.beadData!.slice(0, -1); - continue; - } - edge.data!.beadData = [ - ...executionData.output_data[key].toReversed(), - ...edge.data!.beadData!, - ]; - } - } else if (executionData.status === "RUNNING") { - // Consume input beads - for (let key in executionData.input_data) { - if ( - edge.target !== getFrontendId(executionData.node_id, nodes) || - edge.targetHandle !== key - ) { - continue; - } - // Skip decreasing bead count if edge doesn't match or if it's static - if ( - edge.data!.beadData![edge.data!.beadData!.length - 1] !== - executionData.input_data[key] || - edge.data?.isStatic - ) { - continue; - } - edge.data!.beadDown = (edge.data!.beadDown ?? 0) + 1; - edge.data!.beadData = edge.data!.beadData!.slice(0, -1); + // Update execution status for input edges + for (let key in executionData.input_data) { + if ( + edge.target !== getFrontendId(executionData.node_id, nodes) || + edge.targetHandle !== key + ) { + continue; } + + // Store only the execution status + execStatus.set(executionData.node_exec_id, executionData.status); } + + // Calculate bead counts based on execution status + let beadUp = 0; + let beadDown = 0; + + execStatus.forEach((status) => { + beadUp++; + if (status !== "INCOMPLETE") { + // Count any non-incomplete execution as consumed + beadDown++; + } + }); + + // For static edges, ensure beadUp is always beadDown + 1 + // This is because static edges represent reusable inputs that are never fully consumed + // The +1 represents the input that's still available for reuse + if (edge.data?.isStatic && beadUp > 0) { + beadUp = beadDown + 1; + } + + // Update edge data + edge.data!.beadUp = beadUp; + edge.data!.beadDown = beadDown; + return edge; }); }); @@ -397,7 +382,11 @@ export default function useAgentGraph( executionResults: Object.keys(executionData.output_data).length > 0 ? [ - ...(node.data.executionResults || []), + // Execution updates are not cumulative, so we need to filter out the old ones. + ...(node.data.executionResults?.filter( + (result) => + result.execId !== executionData.node_exec_id, + ) || []), { execId: executionData.node_exec_id, data: { @@ -434,14 +423,11 @@ export default function useAgentGraph( } setUpdateQueue((prev) => { prev.forEach((data) => { - // Skip already processed updates by checking - // if the data is in the processedUpdates array by reference - // This is not to process twice in react dev mode - // because it'll add double the beads - if (processedUpdates.current.includes(data)) { - return; - } updateNodesWithExecutionData(data); + // Execution updates are not cumulative, so we need to filter out the old ones. + processedUpdates.current = processedUpdates.current.filter( + (update) => update.node_exec_id !== data.node_exec_id, + ); processedUpdates.current.push(data); }); return []; @@ -997,7 +983,6 @@ export default function useAgentGraph( edgeColor: edge.data?.edgeColor!, beadUp: 0, beadDown: 0, - beadData: [], }, })); }); From 781f138c091d47f6033345c688e79593c530c9db Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Thu, 5 Jun 2025 17:11:37 +0100 Subject: [PATCH 066/497] feat(backend): Agent Presets backend improvements (#9786) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Part of #9307 - ❗ Blocks #9541 ### Changes 🏗️ Backend: - Fix+improve `GET /library/presets` (`list_presets`) endpoint - Fix pagination - Add `graph_id` filter parameter - Allow partial preset updates: `PUT /presets/{preset_id}` -> `PATCH /presets/{preset_id}` - Allow creating preset from graph execution through `POST /presets` - Clean up models & DB functions - Split `upsert_preset` into `create_preset` + `update_preset` - Add `LibraryAgentPresetUpdatable` - Replace `CreateLibraryAgentPresetRequest` with `LibraryAgentPresetCreatable` - Use `LibraryAgentPresetCreatable` as base class for `LibraryAgentPreset` - Remove redundant `set_is_deleted_for_library_agent(..)` - Improve log statements - Improve DB statements (e.g. by using unique keys where possible) Frontend: - Add timestamp parsing logic to library agent preset endpoints - Brand `LibraryAgentPreset.id` + references ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] CI green - Since these changes don't affect existing front-end functionality, no additional testing is needed. --- .../backend/backend/server/rest_api.py | 6 +- .../backend/backend/server/v2/library/db.py | 259 ++++++++++-------- .../backend/server/v2/library/model.py | 72 +++-- .../server/v2/library/routes/presets.py | 48 +++- .../backend/test/executor/test_manager.py | 4 +- .../components/library/library-agent-card.tsx | 4 +- .../src/components/monitor/FlowRunInfo.tsx | 7 +- .../src/lib/autogpt-server-api/client.ts | 70 +++-- .../src/lib/autogpt-server-api/types.ts | 45 +-- 9 files changed, 318 insertions(+), 197 deletions(-) diff --git a/autogpt_platform/backend/backend/server/rest_api.py b/autogpt_platform/backend/backend/server/rest_api.py index 33ccf0f9b5..a98366b046 100644 --- a/autogpt_platform/backend/backend/server/rest_api.py +++ b/autogpt_platform/backend/backend/server/rest_api.py @@ -211,7 +211,7 @@ class AgentServer(backend.util.service.AppProcess): @staticmethod async def test_get_presets(user_id: str, page: int = 1, page_size: int = 10): - return await backend.server.v2.library.routes.presets.get_presets( + return await backend.server.v2.library.routes.presets.list_presets( user_id=user_id, page=page, page_size=page_size ) @@ -223,7 +223,7 @@ class AgentServer(backend.util.service.AppProcess): @staticmethod async def test_create_preset( - preset: backend.server.v2.library.model.CreateLibraryAgentPresetRequest, + preset: backend.server.v2.library.model.LibraryAgentPresetCreatable, user_id: str, ): return await backend.server.v2.library.routes.presets.create_preset( @@ -233,7 +233,7 @@ class AgentServer(backend.util.service.AppProcess): @staticmethod async def test_update_preset( preset_id: str, - preset: backend.server.v2.library.model.CreateLibraryAgentPresetRequest, + preset: backend.server.v2.library.model.LibraryAgentPresetUpdatable, user_id: str, ): return await backend.server.v2.library.routes.presets.update_preset( diff --git a/autogpt_platform/backend/backend/server/v2/library/db.py b/autogpt_platform/backend/backend/server/v2/library/db.py index 417ae0c9e7..15d479e588 100644 --- a/autogpt_platform/backend/backend/server/v2/library/db.py +++ b/autogpt_platform/backend/backend/server/v2/library/db.py @@ -16,9 +16,11 @@ import backend.server.v2.store.media as store_media from backend.data import db from backend.data import graph as graph_db from backend.data.db import locked_transaction +from backend.data.execution import get_graph_execution from backend.data.includes import library_agent_include from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.integrations.webhooks.graph_lifecycle_hooks import on_graph_activate +from backend.util.exceptions import NotFoundError from backend.util.settings import Config logger = logging.getLogger(__name__) @@ -145,7 +147,7 @@ async def get_library_agent(id: str, user_id: str) -> library_model.LibraryAgent Get a specific agent from the user's library. Args: - library_agent_id: ID of the library agent to retrieve. + id: ID of the library agent to retrieve. user_id: ID of the authenticated user. Returns: @@ -275,7 +277,7 @@ async def create_library_agent( isCreatedByUser=(user_id == graph.user_id), useGraphIsActiveVersion=True, User={"connect": {"id": user_id}}, - # Creator={"connect": {"id": agent.userId}}, + # Creator={"connect": {"id": graph.user_id}}, AgentGraph={ "connect": { "graphVersionId": {"id": graph.id, "version": graph.version} @@ -438,11 +440,13 @@ async def add_store_agent_to_library( # Check if user already has this agent existing_library_agent = ( - await prisma.models.LibraryAgent.prisma().find_first( + await prisma.models.LibraryAgent.prisma().find_unique( where={ - "userId": user_id, - "agentGraphId": graph.id, - "agentGraphVersion": graph.version, + "userId_agentGraphId_agentGraphVersion": { + "userId": user_id, + "agentGraphId": graph.id, + "agentGraphVersion": graph.version, + } }, include={"AgentGraph": True}, ) @@ -450,13 +454,13 @@ async def add_store_agent_to_library( if existing_library_agent: if existing_library_agent.isDeleted: # Even if agent exists it needs to be marked as not deleted - await set_is_deleted_for_library_agent( - user_id, graph.id, graph.version, False + await update_library_agent( + existing_library_agent.id, user_id, is_deleted=False ) else: logger.debug( f"User #{user_id} already has graph #{graph.id} " - "in their library" + f"v{graph.version} in their library" ) return library_model.LibraryAgent.from_db(existing_library_agent) @@ -464,8 +468,11 @@ async def add_store_agent_to_library( added_agent = await prisma.models.LibraryAgent.prisma().create( data=prisma.types.LibraryAgentCreateInput( userId=user_id, - agentGraphId=graph.id, - agentGraphVersion=graph.version, + AgentGraph={ + "connect": { + "graphVersionId": {"id": graph.id, "version": graph.version} + } + }, isCreatedByUser=False, ), include=library_agent_include(user_id), @@ -485,60 +492,22 @@ async def add_store_agent_to_library( raise store_exceptions.DatabaseError("Failed to add agent to library") from e -async def set_is_deleted_for_library_agent( - user_id: str, agent_id: str, agent_version: int, is_deleted: bool -) -> None: - """ - Changes the isDeleted flag for a library agent. - - Args: - user_id: The user's library from which the agent is being removed. - agent_id: The ID of the agent to remove. - agent_version: The version of the agent to remove. - is_deleted: Whether the agent is being marked as deleted. - - Raises: - DatabaseError: If there's an issue updating the Library - """ - logger.debug( - f"Setting isDeleted={is_deleted} for agent {agent_id} v{agent_version} " - f"in library for user {user_id}" - ) - try: - logger.warning( - f"Setting isDeleted={is_deleted} for agent {agent_id} v{agent_version} in library for user {user_id}" - ) - count = await prisma.models.LibraryAgent.prisma().update_many( - where={ - "userId": user_id, - "agentGraphId": agent_id, - "agentGraphVersion": agent_version, - }, - data={"isDeleted": is_deleted}, - ) - logger.warning(f"Updated {count} isDeleted library agents") - except prisma.errors.PrismaError as e: - logger.error(f"Database error setting agent isDeleted: {e}") - raise store_exceptions.DatabaseError( - "Failed to set agent isDeleted in library" - ) from e - - ############################################## ########### Presets DB Functions ############# ############################################## -async def get_presets( - user_id: str, page: int, page_size: int +async def list_presets( + user_id: str, page: int, page_size: int, graph_id: Optional[str] = None ) -> library_model.LibraryAgentPresetResponse: """ Retrieves a paginated list of AgentPresets for the specified user. Args: user_id: The user ID whose presets are being retrieved. - page: The current page index (0-based or 1-based, clarify in your domain). + page: The current page index (1-based). page_size: Number of items to retrieve per page. + graph_id: Agent Graph ID to filter by. Returns: A LibraryAgentPresetResponse containing a list of presets and pagination info. @@ -550,21 +519,24 @@ async def get_presets( f"Fetching presets for user #{user_id}, page={page}, page_size={page_size}" ) - if page < 0 or page_size < 1: + if page < 1 or page_size < 1: logger.warning( "Invalid pagination input: page=%d, page_size=%d", page, page_size ) raise store_exceptions.DatabaseError("Invalid pagination parameters") + query_filter: prisma.types.AgentPresetWhereInput = {"userId": user_id} + if graph_id: + query_filter["agentGraphId"] = graph_id + try: presets_records = await prisma.models.AgentPreset.prisma().find_many( - where={"userId": user_id}, - skip=page * page_size, + where=query_filter, + skip=(page - 1) * page_size, take=page_size, + include={"InputPresets": True}, ) - total_items = await prisma.models.AgentPreset.prisma().count( - where={"userId": user_id} - ) + total_items = await prisma.models.AgentPreset.prisma().count(where=query_filter) total_pages = (total_items + page_size - 1) // page_size presets = [ @@ -617,69 +589,142 @@ async def get_preset( raise store_exceptions.DatabaseError("Failed to fetch preset") from e -async def upsert_preset( +async def create_preset( user_id: str, - preset: library_model.CreateLibraryAgentPresetRequest, - preset_id: Optional[str] = None, + preset: library_model.LibraryAgentPresetCreatable, ) -> library_model.LibraryAgentPreset: """ - Creates or updates an AgentPreset for a user. + Creates a new AgentPreset for a user. Args: - user_id: The ID of the user creating/updating the preset. - preset: The preset data used for creation or update. - preset_id: An optional preset ID to update; if None, a new preset is created. + user_id: The ID of the user creating the preset. + preset: The preset data used for creation. Returns: - The newly created or updated LibraryAgentPreset. + The newly created LibraryAgentPreset. Raises: - DatabaseError: If there's a database error in creating or updating the preset. + DatabaseError: If there's a database error in creating the preset. + """ + logger.debug( + f"Creating preset ({repr(preset.name)}) for user #{user_id}", + ) + try: + new_preset = await prisma.models.AgentPreset.prisma().create( + data=prisma.types.AgentPresetCreateInput( + userId=user_id, + name=preset.name, + description=preset.description, + agentGraphId=preset.graph_id, + agentGraphVersion=preset.graph_version, + isActive=preset.is_active, + InputPresets={ + "create": [ + prisma.types.AgentNodeExecutionInputOutputCreateWithoutRelationsInput( # noqa + name=name, data=prisma.fields.Json(data) + ) + for name, data in preset.inputs.items() + ] + }, + ), + include={"InputPresets": True}, + ) + return library_model.LibraryAgentPreset.from_db(new_preset) + except prisma.errors.PrismaError as e: + logger.error(f"Database error creating preset: {e}") + raise store_exceptions.DatabaseError("Failed to create preset") from e + + +async def create_preset_from_graph_execution( + user_id: str, + create_request: library_model.LibraryAgentPresetCreatableFromGraphExecution, +) -> library_model.LibraryAgentPreset: + """ + Creates a new AgentPreset from an AgentGraphExecution. + + Params: + user_id: The ID of the user creating the preset. + create_request: The data used for creation. + + Returns: + The newly created LibraryAgentPreset. + + Raises: + DatabaseError: If there's a database error in creating the preset. + """ + graph_exec_id = create_request.graph_execution_id + graph_execution = await get_graph_execution(user_id, graph_exec_id) + if not graph_execution: + raise NotFoundError(f"Graph execution #{graph_exec_id} not found") + + logger.debug( + f"Creating preset for user #{user_id} from graph execution #{graph_exec_id}", + ) + return await create_preset( + user_id=user_id, + preset=library_model.LibraryAgentPresetCreatable( + inputs=graph_execution.inputs, + graph_id=graph_execution.graph_id, + graph_version=graph_execution.graph_version, + name=create_request.name, + description=create_request.description, + is_active=create_request.is_active, + ), + ) + + +async def update_preset( + user_id: str, + preset_id: str, + preset: library_model.LibraryAgentPresetUpdatable, +) -> library_model.LibraryAgentPreset: + """ + Updates an existing AgentPreset for a user. + + Args: + user_id: The ID of the user updating the preset. + preset_id: The ID of the preset to update. + preset: The preset data used for the update. + + Returns: + The updated LibraryAgentPreset. + + Raises: + DatabaseError: If there's a database error in updating the preset. ValueError: If attempting to update a non-existent preset. """ logger.debug( - f"Upserting preset #{preset_id} ({repr(preset.name)}) for user #{user_id}", + f"Updating preset #{preset_id} ({repr(preset.name)}) for user #{user_id}", ) try: - inputs = [ - prisma.types.AgentNodeExecutionInputOutputCreateWithoutRelationsInput( - name=name, data=prisma.fields.Json(data) - ) - for name, data in preset.inputs.items() - ] - if preset_id: - # Update existing preset - updated = await prisma.models.AgentPreset.prisma().update( - where={"id": preset_id}, - data={ - "name": preset.name, - "description": preset.description, - "isActive": preset.is_active, - "InputPresets": {"create": inputs}, - }, - include={"InputPresets": True}, - ) - if not updated: - raise ValueError(f"AgentPreset #{preset_id} not found") - return library_model.LibraryAgentPreset.from_db(updated) - else: - # Create new preset - new_preset = await prisma.models.AgentPreset.prisma().create( - data=prisma.types.AgentPresetCreateInput( - userId=user_id, - name=preset.name, - description=preset.description, - agentGraphId=preset.graph_id, - agentGraphVersion=preset.graph_version, - isActive=preset.is_active, - InputPresets={"create": inputs}, - ), - include={"InputPresets": True}, - ) - return library_model.LibraryAgentPreset.from_db(new_preset) + update_data: prisma.types.AgentPresetUpdateInput = {} + if preset.name: + update_data["name"] = preset.name + if preset.description: + update_data["description"] = preset.description + if preset.inputs: + update_data["InputPresets"] = { + "create": [ + prisma.types.AgentNodeExecutionInputOutputCreateWithoutRelationsInput( # noqa + name=name, data=prisma.fields.Json(data) + ) + for name, data in preset.inputs.items() + ] + } + if preset.is_active: + update_data["isActive"] = preset.is_active + + updated = await prisma.models.AgentPreset.prisma().update( + where={"id": preset_id}, + data=update_data, + include={"InputPresets": True}, + ) + if not updated: + raise ValueError(f"AgentPreset #{preset_id} not found") + return library_model.LibraryAgentPreset.from_db(updated) except prisma.errors.PrismaError as e: - logger.error(f"Database error upserting preset: {e}") - raise store_exceptions.DatabaseError("Failed to create preset") from e + logger.error(f"Database error updating preset: {e}") + raise store_exceptions.DatabaseError("Failed to update preset") from e async def delete_preset(user_id: str, preset_id: str) -> None: diff --git a/autogpt_platform/backend/backend/server/v2/library/model.py b/autogpt_platform/backend/backend/server/v2/library/model.py index c38f8f7333..8c39f3dc3b 100644 --- a/autogpt_platform/backend/backend/server/v2/library/model.py +++ b/autogpt_platform/backend/backend/server/v2/library/model.py @@ -168,27 +168,62 @@ class LibraryAgentResponse(pydantic.BaseModel): pagination: server_model.Pagination -class LibraryAgentPreset(pydantic.BaseModel): +class LibraryAgentPresetCreatable(pydantic.BaseModel): + """ + Request model used when creating a new preset for a library agent. + """ + + graph_id: str + graph_version: int + + inputs: block_model.BlockInput + + name: str + description: str + + is_active: bool = True + + +class LibraryAgentPresetCreatableFromGraphExecution(pydantic.BaseModel): + """ + Request model used when creating a new preset for a library agent. + """ + + graph_execution_id: str + + name: str + description: str + + is_active: bool = True + + +class LibraryAgentPresetUpdatable(pydantic.BaseModel): + """ + Request model used when updating a preset for a library agent. + """ + + inputs: Optional[block_model.BlockInput] = None + + name: Optional[str] = None + description: Optional[str] = None + + is_active: Optional[bool] = None + + +class LibraryAgentPreset(LibraryAgentPresetCreatable): """Represents a preset configuration for a library agent.""" id: str updated_at: datetime.datetime - graph_id: str - graph_version: int - - name: str - description: str - - is_active: bool - - inputs: block_model.BlockInput - @classmethod def from_db(cls, preset: prisma.models.AgentPreset) -> "LibraryAgentPreset": + if preset.InputPresets is None: + raise ValueError("Input values must be included in object") + input_data: block_model.BlockInput = {} - for preset_input in preset.InputPresets or []: + for preset_input in preset.InputPresets: input_data[preset_input.name] = preset_input.data return cls( @@ -210,19 +245,6 @@ class LibraryAgentPresetResponse(pydantic.BaseModel): pagination: server_model.Pagination -class CreateLibraryAgentPresetRequest(pydantic.BaseModel): - """ - Request model used when creating a new preset for a library agent. - """ - - name: str - description: str - inputs: block_model.BlockInput - graph_id: str - graph_version: int - is_active: bool - - class LibraryAgentFilter(str, Enum): """Possible filters for searching library agents.""" diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py b/autogpt_platform/backend/backend/server/v2/library/routes/presets.py index 60f067bcbd..6f2d3daa2b 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py +++ b/autogpt_platform/backend/backend/server/v2/library/routes/presets.py @@ -1,12 +1,13 @@ import logging -from typing import Annotated, Any +from typing import Annotated, Any, Optional import autogpt_libs.auth as autogpt_auth_lib -from fastapi import APIRouter, Body, Depends, HTTPException, status +from fastapi import APIRouter, Body, Depends, HTTPException, Query, status import backend.server.v2.library.db as db import backend.server.v2.library.model as models from backend.executor.utils import add_graph_execution_async +from backend.util.exceptions import NotFoundError logger = logging.getLogger(__name__) @@ -18,10 +19,13 @@ router = APIRouter() summary="List presets", description="Retrieve a paginated list of presets for the current user.", ) -async def get_presets( +async def list_presets( user_id: str = Depends(autogpt_auth_lib.depends.get_user_id), - page: int = 1, - page_size: int = 10, + page: int = Query(default=1, ge=1), + page_size: int = Query(default=10, ge=1), + graph_id: Optional[str] = Query( + description="Allows to filter presets by a specific agent graph" + ), ) -> models.LibraryAgentPresetResponse: """ Retrieve a paginated list of presets for the current user. @@ -30,12 +34,18 @@ async def get_presets( user_id (str): ID of the authenticated user. page (int): Page number for pagination. page_size (int): Number of items per page. + graph_id: Allows to filter presets by a specific agent graph. Returns: models.LibraryAgentPresetResponse: A response containing the list of presets. """ try: - return await db.get_presets(user_id, page, page_size) + return await db.list_presets( + user_id=user_id, + graph_id=graph_id, + page=page, + page_size=page_size, + ) except Exception as e: logger.exception(f"Exception occurred while getting presets: {e}") raise HTTPException( @@ -88,14 +98,17 @@ async def get_preset( description="Create a new preset for the current user.", ) async def create_preset( - preset: models.CreateLibraryAgentPresetRequest, + preset: ( + models.LibraryAgentPresetCreatable + | models.LibraryAgentPresetCreatableFromGraphExecution + ), user_id: str = Depends(autogpt_auth_lib.depends.get_user_id), ) -> models.LibraryAgentPreset: """ Create a new library agent preset. Automatically corrects node_input format if needed. Args: - preset (models.CreateLibraryAgentPresetRequest): The preset data to create. + preset (models.LibraryAgentPresetCreatable): The preset data to create. user_id (str): ID of the authenticated user. Returns: @@ -105,7 +118,12 @@ async def create_preset( HTTPException: If an error occurs while creating the preset. """ try: - return await db.upsert_preset(user_id, preset) + if isinstance(preset, models.LibraryAgentPresetCreatable): + return await db.create_preset(user_id, preset) + else: + return await db.create_preset_from_graph_execution(user_id, preset) + except NotFoundError as e: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e)) except Exception as e: logger.exception(f"Exception occurred while creating preset: {e}") raise HTTPException( @@ -114,22 +132,22 @@ async def create_preset( ) -@router.put( +@router.patch( "/presets/{preset_id}", summary="Update an existing preset", description="Update an existing preset by its ID.", ) async def update_preset( preset_id: str, - preset: models.CreateLibraryAgentPresetRequest, + preset: models.LibraryAgentPresetUpdatable, user_id: str = Depends(autogpt_auth_lib.depends.get_user_id), ) -> models.LibraryAgentPreset: """ - Update an existing library agent preset. If the preset doesn't exist, it may be created. + Update an existing library agent preset. Args: preset_id (str): ID of the preset to update. - preset (models.CreateLibraryAgentPresetRequest): The preset data to update. + preset (models.LibraryAgentPresetUpdatable): The preset data to update. user_id (str): ID of the authenticated user. Returns: @@ -139,7 +157,9 @@ async def update_preset( HTTPException: If an error occurs while updating the preset. """ try: - return await db.upsert_preset(user_id, preset, preset_id) + return await db.update_preset( + user_id=user_id, preset_id=preset_id, preset=preset + ) except Exception as e: logger.exception(f"Exception occurred whilst updating preset: {e}") raise HTTPException( diff --git a/autogpt_platform/backend/test/executor/test_manager.py b/autogpt_platform/backend/test/executor/test_manager.py index 6add4a10bc..c07ac73b94 100644 --- a/autogpt_platform/backend/test/executor/test_manager.py +++ b/autogpt_platform/backend/test/executor/test_manager.py @@ -357,7 +357,7 @@ async def test_execute_preset(server: SpinTestServer): test_graph = await create_graph(server, test_graph, test_user) # Create preset with initial values - preset = backend.server.v2.library.model.CreateLibraryAgentPresetRequest( + preset = backend.server.v2.library.model.LibraryAgentPresetCreatable( name="Test Preset With Clash", description="Test preset with clashing input values", graph_id=test_graph.id, @@ -446,7 +446,7 @@ async def test_execute_preset_with_clash(server: SpinTestServer): test_graph = await create_graph(server, test_graph, test_user) # Create preset with initial values - preset = backend.server.v2.library.model.CreateLibraryAgentPresetRequest( + preset = backend.server.v2.library.model.LibraryAgentPresetCreatable( name="Test Preset With Clash", description="Test preset with clashing input values", graph_id=test_graph.id, diff --git a/autogpt_platform/frontend/src/components/library/library-agent-card.tsx b/autogpt_platform/frontend/src/components/library/library-agent-card.tsx index ea52272c74..a2ee2ccc56 100644 --- a/autogpt_platform/frontend/src/components/library/library-agent-card.tsx +++ b/autogpt_platform/frontend/src/components/library/library-agent-card.tsx @@ -8,7 +8,7 @@ export default function LibraryAgentCard({ id, name, description, - graph_id: agent_id, + graph_id, can_access_graph, creator_image_url, image_url, @@ -86,7 +86,7 @@ export default function LibraryAgentCard({ {can_access_graph && ( Open in builder diff --git a/autogpt_platform/frontend/src/components/monitor/FlowRunInfo.tsx b/autogpt_platform/frontend/src/components/monitor/FlowRunInfo.tsx index 39dd1c375a..a495f292b5 100644 --- a/autogpt_platform/frontend/src/components/monitor/FlowRunInfo.tsx +++ b/autogpt_platform/frontend/src/components/monitor/FlowRunInfo.tsx @@ -1,10 +1,5 @@ import React, { useCallback, useEffect, useState } from "react"; -import { - GraphExecutionMeta, - LibraryAgent, - NodeExecutionResult, - SpecialBlockID, -} from "@/lib/autogpt-server-api"; +import { GraphExecutionMeta, LibraryAgent } from "@/lib/autogpt-server-api"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import Link from "next/link"; import { Button, buttonVariants } from "@/components/ui/button"; diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts index b2882255ef..ec32745bca 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts @@ -10,7 +10,6 @@ import type { APIKeyPermission, Block, CreateAPIKeyResponse, - CreateLibraryAgentPresetRequest, CreatorDetails, CreatorsResponse, Credentials, @@ -29,7 +28,11 @@ import type { LibraryAgent, LibraryAgentID, LibraryAgentPreset, + LibraryAgentPresetCreatable, + LibraryAgentPresetCreatableFromGraphExecution, + LibraryAgentPresetID, LibraryAgentPresetResponse, + LibraryAgentPresetUpdatable, LibraryAgentResponse, LibraryAgentSortEnum, MyAgentsResponse, @@ -642,42 +645,63 @@ export default class BackendAPI { return this._request("POST", `/library/agents/${libraryAgentId}/fork`); } - listLibraryAgentPresets(params?: { + async listLibraryAgentPresets(params?: { + graph_id?: GraphID; page?: number; page_size?: number; }): Promise { - return this._get("/library/presets", params); + const response: LibraryAgentPresetResponse = await this._get( + "/library/presets", + params, + ); + return { + ...response, + presets: response.presets.map(parseLibraryAgentPresetTimestamp), + }; } - getLibraryAgentPreset(presetId: string): Promise { - return this._get(`/library/presets/${presetId}`); - } - - createLibraryAgentPreset( - preset: CreateLibraryAgentPresetRequest, + async getLibraryAgentPreset( + presetID: LibraryAgentPresetID, ): Promise { - return this._request("POST", "/library/presets", preset); + const preset = await this._get(`/library/presets/${presetID}`); + return parseLibraryAgentPresetTimestamp(preset); } - updateLibraryAgentPreset( - presetId: string, - preset: CreateLibraryAgentPresetRequest, + async createLibraryAgentPreset( + params: + | LibraryAgentPresetCreatable + | LibraryAgentPresetCreatableFromGraphExecution, ): Promise { - return this._request("PUT", `/library/presets/${presetId}`, preset); + const new_preset = await this._request("POST", "/library/presets", params); + return parseLibraryAgentPresetTimestamp(new_preset); } - async deleteLibraryAgentPreset(presetId: string): Promise { - await this._request("DELETE", `/library/presets/${presetId}`); + async updateLibraryAgentPreset( + presetID: LibraryAgentPresetID, + partial_preset: LibraryAgentPresetUpdatable, + ): Promise { + const updated_preset = await this._request( + "PATCH", + `/library/presets/${presetID}`, + partial_preset, + ); + return parseLibraryAgentPresetTimestamp(updated_preset); + } + + async deleteLibraryAgentPreset( + presetID: LibraryAgentPresetID, + ): Promise { + await this._request("DELETE", `/library/presets/${presetID}`); } executeLibraryAgentPreset( - presetId: string, - graphId: GraphID, + presetID: LibraryAgentPresetID, + graphID: GraphID, graphVersion: number, nodeInput: { [key: string]: any }, - ): Promise<{ id: string }> { - return this._request("POST", `/library/presets/${presetId}/execute`, { - graph_id: graphId, + ): Promise<{ id: GraphExecutionID }> { + return this._request("POST", `/library/presets/${presetID}/execute`, { + graph_id: graphID, graph_version: graphVersion, node_input: nodeInput, }); @@ -1133,6 +1157,10 @@ function parseScheduleTimestamp(result: any): Schedule { return _parseObjectTimestamps(result, ["next_run_time"]); } +function parseLibraryAgentPresetTimestamp(result: any): LibraryAgentPreset { + return _parseObjectTimestamps(result, ["updated_at"]); +} + function _parseObjectTimestamps(obj: any, keys: (keyof T)[]): T { const result = { ...obj }; keys.forEach( diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts index e02790a8a3..0aade8a31e 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts @@ -276,7 +276,7 @@ export type GraphExecutionMeta = { user_id: UserID; graph_id: GraphID; graph_version: number; - preset_id?: string; + preset_id?: LibraryAgentPresetID; status: "QUEUED" | "RUNNING" | "COMPLETED" | "TERMINATED" | "FAILED"; started_at: Date; ended_at: Date; @@ -414,7 +414,7 @@ export enum AgentStatus { ERROR = "ERROR", } -export interface LibraryAgentResponse { +export type LibraryAgentResponse = { agents: LibraryAgent[]; pagination: { current_page: number; @@ -422,36 +422,47 @@ export interface LibraryAgentResponse { total_items: number; total_pages: number; }; -} +}; -export interface LibraryAgentPreset { - id: string; +export type LibraryAgentPreset = { + id: LibraryAgentPresetID; updated_at: Date; graph_id: GraphID; graph_version: number; + inputs: { [key: string]: any }; name: string; description: string; is_active: boolean; - inputs: { [key: string]: any }; -} +}; -export interface LibraryAgentPresetResponse { +export type LibraryAgentPresetID = Brand; + +export type LibraryAgentPresetResponse = { presets: LibraryAgentPreset[]; pagination: { total: number; page: number; size: number; }; -} +}; -export interface CreateLibraryAgentPresetRequest { - name: string; - description: string; - inputs: { [key: string]: any }; - graph_id: GraphID; - graph_version: number; - is_active: boolean; -} +export type LibraryAgentPresetCreatable = Omit< + LibraryAgentPreset, + "id" | "updated_at" | "is_active" +> & { + is_active?: boolean; +}; + +export type LibraryAgentPresetCreatableFromGraphExecution = Omit< + LibraryAgentPresetCreatable, + "graph_id" | "graph_version" | "inputs" +> & { + graph_execution_id: GraphExecutionID; +}; + +export type LibraryAgentPresetUpdatable = Partial< + Omit +>; export enum LibraryAgentSortEnum { CREATED_AT = "createdAt", From 36634b7ba27e3ea7d04f20b9ec89e42af679eadb Mon Sep 17 00:00:00 2001 From: Ubbe Date: Thu, 5 Jun 2025 21:13:00 +0400 Subject: [PATCH 067/497] fix(frontend): hydration warning (#10120) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're encountering a hydration warning on the frontend due to a mismatch in CSS module hashes. This happens because auto-generated classnames from `next/font` and `geist` differ between server-side and client-side rendering. The inconsistency triggers a warning when the client rehydrates the server-rendered HTML. ![Screenshot 2025-06-05 at 17 20 06](https://github.com/user-attachments/assets/4270f94c-faab-4cad-9c8e-6fd0c27bd4d0) ### Changes 🏗️ Since the mismatch only affects the `` tag and has no visible impact on the UI, the most straightforward workaround is to suppress the warning and still take advantage of `next/font` optimisations. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run the frontend locally - [x] Page loads without hydration warnings --------- Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> --- autogpt_platform/frontend/pnpm-lock.yaml | 450 +++++++++--------- autogpt_platform/frontend/src/app/layout.tsx | 1 + .../frontend/src/components/styles/fonts.ts | 10 +- autogpt_platform/frontend/tailwind.config.ts | 1 - 4 files changed, 232 insertions(+), 230 deletions(-) diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 255d0c1ed1..ce6f98f341 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: 9.26.0 - version: 9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + version: 9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) '@supabase/ssr': specifier: 0.6.1 version: 0.6.1(@supabase/supabase-js@2.49.10) @@ -224,7 +224,7 @@ importers: version: 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) '@storybook/nextjs': specifier: 8.6.14 - version: 8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + version: 8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) '@storybook/react': specifier: 8.6.14 version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) @@ -406,8 +406,8 @@ packages: resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.4': - resolution: {integrity: sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==} + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} '@babel/parser@7.27.5': @@ -583,8 +583,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.27.3': - resolution: {integrity: sha512-+F8CnfhuLhwUACIJMLWnjz6zvzYM2r0yeIHKlbgfw7ml8rOMJsXNXV/hyRcb3nb493gRs4WvYpQAndWj/qQmkQ==} + '@babel/plugin-transform-block-scoping@7.27.5': + resolution: {integrity: sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -811,8 +811,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.27.4': - resolution: {integrity: sha512-Glp/0n8xuj+E1588otw5rjJkTXfzW7FjH3IIUrfqiZOPQCd2vbg8e+DQE8jK9g4V5/zrxFW+D9WM9gboRPELpQ==} + '@babel/plugin-transform-regenerator@7.27.5': + resolution: {integrity: sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -918,8 +918,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.4': - resolution: {integrity: sha512-t3yaEOuGu9NlIZ+hIeGbBjFtZT7j2cb2tg0fuaJKeGotchRjjLfrBA9Kwf8quhpP1EUuxModQg04q/mBwyg8uA==} + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} '@babel/template@7.27.2': @@ -930,8 +930,8 @@ packages: resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.3': - resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} + '@babel/types@7.27.6': + resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -2879,68 +2879,68 @@ packages: '@supabase/supabase-js@2.49.10': resolution: {integrity: sha512-IRPcIdncuhD2m1eZ2Fkg0S1fq9SXlHfmAetBxPN66kVFtTucR8b01xKuVmKqcIJokB17umMf1bmqyS8yboXGsw==} - '@swc/core-darwin-arm64@1.11.29': - resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} + '@swc/core-darwin-arm64@1.11.31': + resolution: {integrity: sha512-NTEaYOts0OGSbJZc0O74xsji+64JrF1stmBii6D5EevWEtrY4wlZhm8SiP/qPrOB+HqtAihxWIukWkP2aSdGSQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.29': - resolution: {integrity: sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==} + '@swc/core-darwin-x64@1.11.31': + resolution: {integrity: sha512-THSGaSwT96JwXDwuXQ6yFBbn+xDMdyw7OmBpnweAWsh5DhZmQkALEm1DgdQO3+rrE99MkmzwAfclc0UmYro/OA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.11.29': - resolution: {integrity: sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==} + '@swc/core-linux-arm-gnueabihf@1.11.31': + resolution: {integrity: sha512-laKtQFnW7KHgE57Hx32os2SNAogcuIDxYE+3DYIOmDMqD7/1DCfJe6Rln2N9WcOw6HuDbDpyQavIwZNfSAa8vQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.29': - resolution: {integrity: sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==} + '@swc/core-linux-arm64-gnu@1.11.31': + resolution: {integrity: sha512-T+vGw9aPE1YVyRxRr1n7NAdkbgzBzrXCCJ95xAZc/0+WUwmL77Z+js0J5v1KKTRxw4FvrslNCOXzMWrSLdwPSA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.29': - resolution: {integrity: sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==} + '@swc/core-linux-arm64-musl@1.11.31': + resolution: {integrity: sha512-Mztp5NZkyd5MrOAG+kl+QSn0lL4Uawd4CK4J7wm97Hs44N9DHGIG5nOz7Qve1KZo407Y25lTxi/PqzPKHo61zQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.29': - resolution: {integrity: sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==} + '@swc/core-linux-x64-gnu@1.11.31': + resolution: {integrity: sha512-DDVE0LZcXOWwOqFU1Xi7gdtiUg3FHA0vbGb3trjWCuI1ZtDZHEQYL4M3/2FjqKZtIwASrDvO96w91okZbXhvMg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.29': - resolution: {integrity: sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==} + '@swc/core-linux-x64-musl@1.11.31': + resolution: {integrity: sha512-mJA1MzPPRIfaBUHZi0xJQ4vwL09MNWDeFtxXb0r4Yzpf0v5Lue9ymumcBPmw/h6TKWms+Non4+TDquAsweuKSw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.29': - resolution: {integrity: sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==} + '@swc/core-win32-arm64-msvc@1.11.31': + resolution: {integrity: sha512-RdtakUkNVAb/FFIMw3LnfNdlH1/ep6KgiPDRlmyUfd0WdIQ3OACmeBegEFNFTzi7gEuzy2Yxg4LWf4IUVk8/bg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.29': - resolution: {integrity: sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==} + '@swc/core-win32-ia32-msvc@1.11.31': + resolution: {integrity: sha512-hErXdCGsg7swWdG1fossuL8542I59xV+all751mYlBoZ8kOghLSKObGQTkBbuNvc0sUKWfWg1X0iBuIhAYar+w==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.29': - resolution: {integrity: sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==} + '@swc/core-win32-x64-msvc@1.11.31': + resolution: {integrity: sha512-5t7SGjUBMMhF9b5j17ml/f/498kiBJNf4vZFNM421UGUEETdtjPN9jZIuQrowBkoFGJTCVL/ECM4YRtTH30u/A==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.29': - resolution: {integrity: sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==} + '@swc/core@1.11.31': + resolution: {integrity: sha512-mAby9aUnKRjMEA7v8cVZS9Ah4duoRBnX7X6r5qrhTxErx+68MoY1TPrVwj/66/SWN3Bl+jijqAqoB8Qx0QE34A==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -3259,88 +3259,88 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unrs/resolver-binding-darwin-arm64@1.7.9': - resolution: {integrity: sha512-hWbcVTcNqgUirY5DC3heOLrz35D926r2izfxveBmuIgDwx9KkUHfqd93g8PtROJX01lvhmyAc3E09/ma6jhyqQ==} + '@unrs/resolver-binding-darwin-arm64@1.7.10': + resolution: {integrity: sha512-ABsM3eEiL3yu903G0uxgvGAoIw011XjTzyEk//gGtuVY1PuXP2IJG6novd6DBjm7MaWmRV/CZFY1rWBXSlSVVw==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.7.9': - resolution: {integrity: sha512-NCZb/oaXELjt8jtm6ztlNPpAxKZsKIxsGYPSxkwQdQ/zl7X2PfyCpWqwoGE4A9vCP6gAgJnvH3e22nE0qk9ieA==} + '@unrs/resolver-binding-darwin-x64@1.7.10': + resolution: {integrity: sha512-lGVWy4FQEDo/PuI1VQXaQCY0XUg4xUJilf3fQ8NY4wtsQTm9lbasbUYf3nkoma+O2/do90jQTqkb02S3meyTDg==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.7.9': - resolution: {integrity: sha512-/AYheGgFn9Pw3X3pYFCohznydaUA9980/wlwgbgCsVxnY4IbqVoZhTLQZ4JWKKaOWBwwmM8FseHf5h5OawyOQQ==} + '@unrs/resolver-binding-freebsd-x64@1.7.10': + resolution: {integrity: sha512-g9XLCHzNGatY79JJNgxrUH6uAAfBDj2NWIlTnqQN5odwGKjyVfFZ5tFL1OxYPcxTHh384TY5lvTtF+fuEZNvBQ==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.9': - resolution: {integrity: sha512-RYV9sEH3o6SZum5wGb9evXlgibsVfluuiyi09hXVD+qPRrCSB45h3z1HjZpe9+c25GiN53CEy149fYS0fLVBtw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.10': + resolution: {integrity: sha512-zV0ZMNy50sJFJapsjec8onyL9YREQKT88V8KwMoOA+zki/duFUP0oyTlbax1jGKdh8rQnruvW9VYkovGvdBAsw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.9': - resolution: {integrity: sha512-0ishMZMCYNJd4SNjHnjByHWh6ia7EDVZrOVAW8wf9Vz2PTZ0pLrFwu5c9voHouGKg7s2cnzPz87c0OK7dwimUQ==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.10': + resolution: {integrity: sha512-jQxgb1DIDI7goyrabh4uvyWWBrFRfF+OOnS9SbF15h52g3Qjn/u8zG7wOQ0NjtcSMftzO75TITu9aHuI7FcqQQ==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.7.9': - resolution: {integrity: sha512-FOspRldYylONzWCkF5n/B1MMYKXXlg2bzgcgESEVcP4LFh0eom/0XsWvfy+dlfBJ+FkYfJjvBJeje14xOBOa6g==} + '@unrs/resolver-binding-linux-arm64-gnu@1.7.10': + resolution: {integrity: sha512-9wVVlO6+aNlm90YWitwSI++HyCyBkzYCwMi7QbuGrTxDFm2pAgtpT0OEliaI7tLS8lAWYuDbzRRCJDgsdm6nwg==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.7.9': - resolution: {integrity: sha512-P1S5jTht888/1mZVrBZx8IOxpikRDPoECxod1CcAHYUZGUNr+PNp1m5eB9FWMK2zRCJ8HgHNZfdRyDf9pNCrlQ==} + '@unrs/resolver-binding-linux-arm64-musl@1.7.10': + resolution: {integrity: sha512-FtFweORChdXOes0RAAyTZp6I4PodU2cZiSILAbGaEKDXp378UOumD2vaAkWHNxpsreQUKRxG5O1uq9EoV1NiVQ==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.9': - resolution: {integrity: sha512-cD9+BPxlFSiIkGWknSgKdTMGZIzCtSIg/O7GJ1LoC+jGtUOBNBJYMn6FyEPRvdpphewYzaCuPsikrMkpdX303Q==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.10': + resolution: {integrity: sha512-B+hOjpG2ncCR96a9d9ww1dWVuRVC2NChD0bITgrUhEWBhpdv2o/Mu2l8MsB2fzjdV/ku+twaQhr8iLHBoZafZQ==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.9': - resolution: {integrity: sha512-Z6IuWg9u0257dCVgc/x/zIKamqJhrmaOFuq3AYsSt6ZtyEHoyD5kxdXQUvEgBAd/Fn1b8tsX+VD9mB9al5306Q==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.10': + resolution: {integrity: sha512-DS6jFDoQCFsnsdLXlj3z3THakQLBic63B6A0rpQ1kpkyKa3OzEfqhwRNVaywuUuOKP9bX55Jk2uqpvn/hGjKCg==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.7.9': - resolution: {integrity: sha512-HpINrXLJVEpvkHHIla6pqhMAKbQBrY+2946i6rF6OlByONLTuObg65bcv3A38qV9yqJ7vtE0FyfNn68k0uQKbg==} + '@unrs/resolver-binding-linux-riscv64-musl@1.7.10': + resolution: {integrity: sha512-A82SB6yEaA8EhIW2r0I7P+k5lg7zPscFnGs1Gna5rfPwoZjeUAGX76T55+DiyTiy08VFKUi79PGCulXnfjDq0g==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.7.9': - resolution: {integrity: sha512-ZXZFfaPFXnrDIPpkFoAZmxzXwqqfCHfnFdZhrEd+mrc/hHTQyxINyzrFMFCqtAa5eIjD7vgzNIXsMFU2QBnCPw==} + '@unrs/resolver-binding-linux-s390x-gnu@1.7.10': + resolution: {integrity: sha512-J+VmOPH16U69QshCp9WS+Zuiuu9GWTISKchKIhLbS/6JSCEfw2A4N02whv2VmrkXE287xxZbhW1p6xlAXNzwqg==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.7.9': - resolution: {integrity: sha512-EzeeaZnuQOa93ox08oa9DqgQc8sK59jfs+apOUrZZSJCDG1ZbtJINPc8uRqE7p3Z66FPAe/uO3+7jZTkWbVDfg==} + '@unrs/resolver-binding-linux-x64-gnu@1.7.10': + resolution: {integrity: sha512-bYTdDltcB/V3fEqpx8YDwDw8ta9uEg8TUbJOtek6JM42u9ciJ7R/jBjNeAOs+QbyxGDd2d6xkBaGwty1HzOz3Q==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.7.9': - resolution: {integrity: sha512-a07ezNt0OY8Vv/iDreJo7ZkKtwRb6UCYaCcMY2nm3ext7rTtDFS7X1GePqrbByvIbRFd6E5q1CKBPzJk6M360Q==} + '@unrs/resolver-binding-linux-x64-musl@1.7.10': + resolution: {integrity: sha512-NYZ1GvSuTokJ28lqcjrMTnGMySoo4dVcNK/nsNCKCXT++1zekZtJaE+N+4jc1kR7EV0fc1OhRrOGcSt7FT9t8w==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.7.9': - resolution: {integrity: sha512-d0fHnxgtrv75Po6LKJLjo1LFC5S0E8vv86H/5wGDFLG0AvS/0k+SghgUW6zAzjM2XRAic/qcy9+O7n/5JOjxFA==} + '@unrs/resolver-binding-wasm32-wasi@1.7.10': + resolution: {integrity: sha512-MRjJhTaQzLoX8OtzRBQDJ84OJ8IX1FqpRAUSxp/JtPeak+fyDfhXaEjcA/fhfgrACUnvC+jWC52f/V6MixSKCQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.7.9': - resolution: {integrity: sha512-0MFcaQDsUYxNqRxjPdsMKg1OGtmsqLzPY2Nwiiyalx6HFvkcHxgRCAOppgeUuDucpUEf76k/4tBzfzPxjYkFUg==} + '@unrs/resolver-binding-win32-arm64-msvc@1.7.10': + resolution: {integrity: sha512-Cgw6qhdsfzXJnHb006CzqgaX8mD445x5FGKuueaLeH1ptCxDbzRs8wDm6VieOI7rdbstfYBaFtaYN7zBT5CUPg==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.7.9': - resolution: {integrity: sha512-SiewmebiN32RpzrV1Dvbw7kdDCRuPThdgEWKJvDNcEGnVEV3ScYGuk5smJjKHXszqNX3mIXG/PcCXqHsE/7XGA==} + '@unrs/resolver-binding-win32-ia32-msvc@1.7.10': + resolution: {integrity: sha512-Z7oECyIT2/HsrWpJ6wi2b+lVbPmWqQHuW5zeatafoRXizk1+2wUl+aSop1PF58XcyBuwPP2YpEUUpMZ8ILV4fA==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.7.9': - resolution: {integrity: sha512-hORofIRZCm85+TUZ9OmHQJNlgtOmK/TPfvYeSplKAl+zQvAwMGyy6DZcSbrF+KdB1EDoGISwU7dX7PE92haOXg==} + '@unrs/resolver-binding-win32-x64-msvc@1.7.10': + resolution: {integrity: sha512-DGAOo5asNvDsmFgwkb7xsgxNyN0If6XFYwDIC1QlRE7kEYWIMRChtWJyHDf30XmGovDNOs/37krxhnga/nm/4w==} cpu: [x64] os: [win32] @@ -7201,8 +7201,8 @@ packages: uglify-js: optional: true - terser@5.40.0: - resolution: {integrity: sha512-cfeKl/jjwSR5ar7d0FGmave9hFGJT8obyo0z+CrQOylLDbk7X81nPU6vq9VORa5jU30SkDnT2FXjLbR8HLP+xA==} + terser@5.41.0: + resolution: {integrity: sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==} engines: {node: '>=10'} hasBin: true @@ -7423,8 +7423,8 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} - unrs-resolver@1.7.9: - resolution: {integrity: sha512-hhFtY782YKwpz54G1db49YYS1RuMn8mBylIrCldrjb9BxZKnQ2xHw7+2zcl7H6fnUlTHGWv23/+677cpufhfxQ==} + unrs-resolver@1.7.10: + resolution: {integrity: sha512-CJEMJcz6vuwRK6xxWc+uf8AGi0OyfoVtHs5mExtNecS0HZq3a3Br1JC/InwwTn6uy+qkAdAdK+nJUYO9FPtgZw==} update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} @@ -7733,11 +7733,11 @@ snapshots: '@babel/generator': 7.27.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helpers': 7.27.4 + '@babel/helpers': 7.27.6 '@babel/parser': 7.27.5 '@babel/template': 7.27.2 '@babel/traverse': 7.27.4 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -7749,14 +7749,14 @@ snapshots: '@babel/generator@7.27.5': dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -7800,14 +7800,14 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: '@babel/traverse': 7.27.4 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.27.4 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color @@ -7822,7 +7822,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@babel/helper-plugin-utils@7.27.1': {} @@ -7847,7 +7847,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.27.4 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color @@ -7861,18 +7861,18 @@ snapshots: dependencies: '@babel/template': 7.27.2 '@babel/traverse': 7.27.4 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color - '@babel/helpers@7.27.4': + '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@babel/parser@7.27.5': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.4)': dependencies: @@ -8042,7 +8042,7 @@ snapshots: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.27.3(@babel/core@7.27.4)': + '@babel/plugin-transform-block-scoping@7.27.5(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 @@ -8285,7 +8285,7 @@ snapshots: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color @@ -8295,7 +8295,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.27.4(@babel/core@7.27.4)': + '@babel/plugin-transform-regenerator@7.27.5(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 @@ -8405,7 +8405,7 @@ snapshots: '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoping': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-block-scoping': 7.27.5(@babel/core@7.27.4) '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.4) @@ -8439,7 +8439,7 @@ snapshots: '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-regenerator': 7.27.4(@babel/core@7.27.4) + '@babel/plugin-transform-regenerator': 7.27.5(@babel/core@7.27.4) '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.4) @@ -8464,7 +8464,7 @@ snapshots: dependencies: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 esutils: 2.0.3 '@babel/preset-react@7.27.1(@babel/core@7.27.4)': @@ -8490,13 +8490,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime@7.27.4': {} + '@babel/runtime@7.27.6': {} '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.27.5 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@babel/traverse@7.27.4': dependencies: @@ -8504,13 +8504,13 @@ snapshots: '@babel/generator': 7.27.5 '@babel/parser': 7.27.5 '@babel/template': 7.27.2 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.27.3': + '@babel/types@7.27.6': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -9427,7 +9427,7 @@ snapshots: dependencies: playwright: 1.52.0 - '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.42.0 @@ -9437,7 +9437,7 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.3.2 source-map: 0.7.4 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) optionalDependencies: type-fest: 4.41.0 webpack-hot-middleware: 2.26.1 @@ -10155,7 +10155,7 @@ snapshots: '@sentry/core@9.26.0': {} - '@sentry/nextjs@9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': + '@sentry/nextjs@9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.34.0 @@ -10166,7 +10166,7 @@ snapshots: '@sentry/opentelemetry': 9.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) '@sentry/react': 9.26.0(react@18.3.1) '@sentry/vercel-edge': 9.26.0 - '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) chalk: 3.0.0 next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resolve: 1.22.8 @@ -10243,12 +10243,12 @@ snapshots: '@opentelemetry/api': 1.9.0 '@sentry/core': 9.26.0 - '@sentry/webpack-plugin@3.5.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': + '@sentry/webpack-plugin@3.5.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': dependencies: '@sentry/bundler-plugin-core': 3.5.0 unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) transitivePeerDependencies: - encoding - supports-color @@ -10387,7 +10387,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-webpack5@8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/builder-webpack5@8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/semver': 7.7.0 @@ -10395,23 +10395,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) - html-webpack-plugin: 5.6.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + html-webpack-plugin: 5.6.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.31)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) - webpack-dev-middleware: 6.1.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack-dev-middleware: 6.1.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -10479,7 +10479,7 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.5.3) - '@storybook/nextjs@8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': + '@storybook/nextjs@8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) @@ -10493,31 +10493,31 @@ snapshots: '@babel/preset-env': 7.27.2(@babel/core@7.27.4) '@babel/preset-react': 7.27.1(@babel/core@7.27.4) '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) - '@babel/runtime': 7.27.4 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) - '@storybook/builder-webpack5': 8.6.14(@swc/core@1.11.29)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.29)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@babel/runtime': 7.27.6 + '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + '@storybook/builder-webpack5': 8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.31)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/semver': 7.7.0 - babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) - css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.4 - postcss-loader: 8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + postcss-loader: 8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 14.2.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + sass-loader: 14.2.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) styled-jsx: 5.1.7(@babel/core@7.27.4)(react@18.3.1) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 @@ -10525,7 +10525,7 @@ snapshots: optionalDependencies: sharp: 0.33.5 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -10544,11 +10544,11 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.29)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.31)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) '@types/semver': 7.7.0 find-up: 5.0.0 magic-string: 0.30.17 @@ -10559,7 +10559,7 @@ snapshots: semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) tsconfig-paths: 4.2.0 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -10574,7 +10574,7 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.5.3) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': dependencies: debug: 4.4.1 endent: 2.1.0 @@ -10584,7 +10584,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) transitivePeerDependencies: - supports-color @@ -10614,11 +10614,11 @@ snapshots: '@babel/core': 7.27.4 '@babel/generator': 7.27.5 '@babel/template': 7.27.2 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@jest/types': 29.6.3 '@storybook/csf': 0.1.13 - '@swc/core': 1.11.29 - '@swc/jest': 0.2.38(@swc/core@1.11.29) + '@swc/core': 1.11.31 + '@swc/jest': 0.2.38(@swc/core@1.11.31) expect-playwright: 0.8.0 jest: 29.7.0(@types/node@22.15.29) jest-circus: 29.7.0 @@ -10702,51 +10702,51 @@ snapshots: - bufferutil - utf-8-validate - '@swc/core-darwin-arm64@1.11.29': + '@swc/core-darwin-arm64@1.11.31': optional: true - '@swc/core-darwin-x64@1.11.29': + '@swc/core-darwin-x64@1.11.31': optional: true - '@swc/core-linux-arm-gnueabihf@1.11.29': + '@swc/core-linux-arm-gnueabihf@1.11.31': optional: true - '@swc/core-linux-arm64-gnu@1.11.29': + '@swc/core-linux-arm64-gnu@1.11.31': optional: true - '@swc/core-linux-arm64-musl@1.11.29': + '@swc/core-linux-arm64-musl@1.11.31': optional: true - '@swc/core-linux-x64-gnu@1.11.29': + '@swc/core-linux-x64-gnu@1.11.31': optional: true - '@swc/core-linux-x64-musl@1.11.29': + '@swc/core-linux-x64-musl@1.11.31': optional: true - '@swc/core-win32-arm64-msvc@1.11.29': + '@swc/core-win32-arm64-msvc@1.11.31': optional: true - '@swc/core-win32-ia32-msvc@1.11.29': + '@swc/core-win32-ia32-msvc@1.11.31': optional: true - '@swc/core-win32-x64-msvc@1.11.29': + '@swc/core-win32-x64-msvc@1.11.31': optional: true - '@swc/core@1.11.29': + '@swc/core@1.11.31': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.21 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.29 - '@swc/core-darwin-x64': 1.11.29 - '@swc/core-linux-arm-gnueabihf': 1.11.29 - '@swc/core-linux-arm64-gnu': 1.11.29 - '@swc/core-linux-arm64-musl': 1.11.29 - '@swc/core-linux-x64-gnu': 1.11.29 - '@swc/core-linux-x64-musl': 1.11.29 - '@swc/core-win32-arm64-msvc': 1.11.29 - '@swc/core-win32-ia32-msvc': 1.11.29 - '@swc/core-win32-x64-msvc': 1.11.29 + '@swc/core-darwin-arm64': 1.11.31 + '@swc/core-darwin-x64': 1.11.31 + '@swc/core-linux-arm-gnueabihf': 1.11.31 + '@swc/core-linux-arm64-gnu': 1.11.31 + '@swc/core-linux-arm64-musl': 1.11.31 + '@swc/core-linux-x64-gnu': 1.11.31 + '@swc/core-linux-x64-musl': 1.11.31 + '@swc/core-win32-arm64-msvc': 1.11.31 + '@swc/core-win32-ia32-msvc': 1.11.31 + '@swc/core-win32-x64-msvc': 1.11.31 '@swc/counter@0.1.3': {} @@ -10754,10 +10754,10 @@ snapshots: dependencies: tslib: 2.8.1 - '@swc/jest@0.2.38(@swc/core@1.11.29)': + '@swc/jest@0.2.38(@swc/core@1.11.31)': dependencies: '@jest/create-cache-key-function': 29.7.0 - '@swc/core': 1.11.29 + '@swc/core': 1.11.31 '@swc/counter': 0.1.3 jsonc-parser: 3.3.1 @@ -10776,7 +10776,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.27.4 + '@babel/runtime': 7.27.6 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -10808,23 +10808,23 @@ snapshots: '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.7 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@types/babel__traverse@7.20.7': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@types/canvas-confetti@1.9.0': {} @@ -11106,57 +11106,57 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unrs/resolver-binding-darwin-arm64@1.7.9': + '@unrs/resolver-binding-darwin-arm64@1.7.10': optional: true - '@unrs/resolver-binding-darwin-x64@1.7.9': + '@unrs/resolver-binding-darwin-x64@1.7.10': optional: true - '@unrs/resolver-binding-freebsd-x64@1.7.9': + '@unrs/resolver-binding-freebsd-x64@1.7.10': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.9': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.10': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.9': + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.10': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.7.9': + '@unrs/resolver-binding-linux-arm64-gnu@1.7.10': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.7.9': + '@unrs/resolver-binding-linux-arm64-musl@1.7.10': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.9': + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.10': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.9': + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.10': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.7.9': + '@unrs/resolver-binding-linux-riscv64-musl@1.7.10': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.7.9': + '@unrs/resolver-binding-linux-s390x-gnu@1.7.10': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.7.9': + '@unrs/resolver-binding-linux-x64-gnu@1.7.10': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.7.9': + '@unrs/resolver-binding-linux-x64-musl@1.7.10': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.7.9': + '@unrs/resolver-binding-wasm32-wasi@1.7.10': dependencies: '@napi-rs/wasm-runtime': 0.2.10 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.7.9': + '@unrs/resolver-binding-win32-arm64-msvc@1.7.10': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.7.9': + '@unrs/resolver-binding-win32-ia32-msvc@1.7.10': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.7.9': + '@unrs/resolver-binding-win32-x64-msvc@1.7.10': optional: true '@vitest/expect@2.0.5': @@ -11542,12 +11542,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: '@babel/core': 7.27.4 find-cache-dir: 4.0.0 schema-utils: 4.3.2 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) babel-plugin-istanbul@6.1.1: dependencies: @@ -11562,7 +11562,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 @@ -12036,7 +12036,7 @@ snapshots: css-color-keywords@1.0.0: {} - css-loader@6.11.0(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + css-loader@6.11.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: icss-utils: 5.1.0(postcss@8.5.4) postcss: 8.5.4 @@ -12047,7 +12047,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) css-select@4.3.0: dependencies: @@ -12264,7 +12264,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.27.4 + '@babel/runtime': 7.27.6 csstype: 3.1.3 dom-serializer@0.2.2: @@ -12560,7 +12560,7 @@ snapshots: is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.14 - unrs-resolver: 1.7.9 + unrs-resolver: 1.7.10 optionalDependencies: eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: @@ -12910,7 +12910,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -12925,7 +12925,7 @@ snapshots: semver: 7.7.2 tapable: 2.2.2 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) form-data@4.0.2: dependencies: @@ -13180,11 +13180,11 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.40.0 + terser: 5.41.0 html-url-attributes@3.0.1: {} - html-webpack-plugin@5.6.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + html-webpack-plugin@5.6.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -13192,7 +13192,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) htmlparser2@3.10.1: dependencies: @@ -13814,7 +13814,7 @@ snapshots: '@babel/generator': 7.27.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -14475,7 +14475,7 @@ snapshots: node-int64@0.4.0: {} - node-polyfill-webpack-plugin@2.0.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + node-polyfill-webpack-plugin@2.0.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -14502,7 +14502,7 @@ snapshots: url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) node-preload@0.2.1: dependencies: @@ -14800,7 +14800,7 @@ snapshots: polished@4.3.1: dependencies: - '@babel/runtime': 7.27.4 + '@babel/runtime': 7.27.6 possible-typed-array-names@1.1.0: {} @@ -14823,14 +14823,14 @@ snapshots: optionalDependencies: postcss: 8.5.4 - postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 1.21.7 postcss: 8.5.4 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) transitivePeerDependencies: - typescript @@ -15014,7 +15014,7 @@ snapshots: dependencies: '@babel/core': 7.27.4 '@babel/traverse': 7.27.4 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 '@types/doctrine': 0.0.9 @@ -15126,7 +15126,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.4 + '@babel/runtime': 7.27.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -15281,7 +15281,7 @@ snapshots: dependencies: debug: 4.4.1 module-details-from-path: 1.0.4 - resolve: 1.22.10 + resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -15399,11 +15399,11 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - sass-loader@14.2.1(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + sass-loader@14.2.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: neo-async: 2.6.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) scheduler@0.23.2: dependencies: @@ -15770,9 +15770,9 @@ snapshots: strip-json-comments@3.1.1: {} - style-loader@3.3.4(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + style-loader@3.3.4(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) style-to-js@1.1.16: dependencies: @@ -15871,19 +15871,19 @@ snapshots: tapable@2.2.2: {} - terser-webpack-plugin@5.3.14(@swc/core@1.11.29)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + terser-webpack-plugin@5.3.14(@swc/core@1.11.31)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.40.0 - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + terser: 5.41.0 + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) optionalDependencies: - '@swc/core': 1.11.29 + '@swc/core': 1.11.31 esbuild: 0.24.2 - terser@5.40.0: + terser@5.41.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.14.1 @@ -16110,27 +16110,27 @@ snapshots: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.7.9: + unrs-resolver@1.7.10: dependencies: napi-postinstall: 0.2.4 optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.7.9 - '@unrs/resolver-binding-darwin-x64': 1.7.9 - '@unrs/resolver-binding-freebsd-x64': 1.7.9 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.9 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.9 - '@unrs/resolver-binding-linux-arm64-gnu': 1.7.9 - '@unrs/resolver-binding-linux-arm64-musl': 1.7.9 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.9 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.9 - '@unrs/resolver-binding-linux-riscv64-musl': 1.7.9 - '@unrs/resolver-binding-linux-s390x-gnu': 1.7.9 - '@unrs/resolver-binding-linux-x64-gnu': 1.7.9 - '@unrs/resolver-binding-linux-x64-musl': 1.7.9 - '@unrs/resolver-binding-wasm32-wasi': 1.7.9 - '@unrs/resolver-binding-win32-arm64-msvc': 1.7.9 - '@unrs/resolver-binding-win32-ia32-msvc': 1.7.9 - '@unrs/resolver-binding-win32-x64-msvc': 1.7.9 + '@unrs/resolver-binding-darwin-arm64': 1.7.10 + '@unrs/resolver-binding-darwin-x64': 1.7.10 + '@unrs/resolver-binding-freebsd-x64': 1.7.10 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.10 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.10 + '@unrs/resolver-binding-linux-arm64-gnu': 1.7.10 + '@unrs/resolver-binding-linux-arm64-musl': 1.7.10 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.10 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.10 + '@unrs/resolver-binding-linux-riscv64-musl': 1.7.10 + '@unrs/resolver-binding-linux-s390x-gnu': 1.7.10 + '@unrs/resolver-binding-linux-x64-gnu': 1.7.10 + '@unrs/resolver-binding-linux-x64-musl': 1.7.10 + '@unrs/resolver-binding-wasm32-wasi': 1.7.10 + '@unrs/resolver-binding-win32-arm64-msvc': 1.7.10 + '@unrs/resolver-binding-win32-ia32-msvc': 1.7.10 + '@unrs/resolver-binding-win32-x64-msvc': 1.7.10 update-browserslist-db@1.1.3(browserslist@4.25.0): dependencies: @@ -16257,7 +16257,7 @@ snapshots: webidl-conversions@3.0.1: {} - webpack-dev-middleware@6.1.3(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)): + webpack-dev-middleware@6.1.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -16265,7 +16265,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.29)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) webpack-hot-middleware@2.26.1: dependencies: @@ -16279,7 +16279,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2): + webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.7 @@ -16302,7 +16302,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.24.2)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.31)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) watchpack: 2.4.4 webpack-sources: 3.3.2 transitivePeerDependencies: diff --git a/autogpt_platform/frontend/src/app/layout.tsx b/autogpt_platform/frontend/src/app/layout.tsx index 28e6c8b898..9df9c1b671 100644 --- a/autogpt_platform/frontend/src/app/layout.tsx +++ b/autogpt_platform/frontend/src/app/layout.tsx @@ -23,6 +23,7 @@ export default async function RootLayout({ Date: Thu, 5 Jun 2025 19:28:48 +0200 Subject: [PATCH 068/497] restore dev deploy (#10122) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ ### Checklist 📋 #### For code changes: - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: - [ ] ...
Example test plan - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly
#### For configuration changes: - [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**)
Examples of configuration changes - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases
--- .../platform-autogpt-deploy-dev.yaml | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/platform-autogpt-deploy-dev.yaml diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml new file mode 100644 index 0000000000..44da8641ec --- /dev/null +++ b/.github/workflows/platform-autogpt-deploy-dev.yaml @@ -0,0 +1,51 @@ +name: AutoGPT Platform - Deploy Dev Environment + +on: + push: + branches: [ dev ] + paths: + - 'autogpt_platform/**' + +permissions: + contents: 'read' + id-token: 'write' + +jobs: + migrate: + environment: develop + name: Run migrations for AutoGPT Platform + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip + pip install prisma + + - name: Run Backend Migrations + working-directory: ./autogpt_platform/backend + run: | + python -m prisma migrate deploy + env: + DATABASE_URL: ${{ secrets.BACKEND_DATABASE_URL }} + DIRECT_URL: ${{ secrets.BACKEND_DATABASE_URL }} + + trigger: + needs: migrate + runs-on: ubuntu-latest + steps: + - name: Trigger deploy workflow + uses: peter-evans/repository-dispatch@v3 + with: + token: ${{ secrets.DEPLOY_TOKEN }} + repository: Significant-Gravitas/AutoGPT_cloud_infrastructure + event-type: build_deploy_dev + client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "repository": "${{ github.repository }}"}' From 705be3ec86af4f330fbc069a045f2617c4aba418 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Thu, 5 Jun 2025 16:40:39 -0500 Subject: [PATCH 069/497] dx: Add Claude Code GitHub Workflow (#10099) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 🤖 Installing Claude Code GitHub App This PR adds a GitHub Actions workflow that enables Claude Code integration in our repository. ### What is Claude Code? [Claude Code](https://claude.ai/code) is an AI coding agent that can help with: - Bug fixes and improvements - Documentation updates - Implementing new features - Code reviews and suggestions - Writing tests - And more! ### How it works Once this PR is merged, we'll be able to interact with Claude by mentioning @claude in a pull request or issue comment. Once the workflow is triggered, Claude will analyze the comment and surrounding context, and execute on the request in a GitHub action. ### Important Notes - **This workflow won't take effect until this PR is merged** - **@claude mentions won't work until after the merge is complete** - The workflow runs automatically whenever Claude is mentioned in PR or issue comments - Claude gets access to the entire PR or issue context including files, diffs, and previous comments ### Security - Our Anthropic API key is securely stored as a GitHub Actions secret - Only users with write access to the repository can trigger the workflow - All Claude runs are stored in the GitHub Actions run history - Claude's default tools are limited to reading/writing files and interacting with our repo by creating comments, branches, and commits. - We can add more allowed tools by adding them to the workflow file like: ``` allowed_tools: Bash(npm install),Bash(npm run build),Bash(npm run lint),Bash(npm run test) ``` There's more information in the [Claude Code documentation](http://docs.anthropic.com/s/claude-code-github-actions). After merging this PR, let's try mentioning @claude in a comment on any PR to get started! --- .github/workflows/claude.yml | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/claude.yml diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml new file mode 100644 index 0000000000..399044d8f7 --- /dev/null +++ b/.github/workflows/claude.yml @@ -0,0 +1,47 @@ +name: Claude Code + +on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + issues: + types: [opened, assigned] + pull_request_review: + types: [submitted] + +jobs: + claude: + if: | + ( + (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || + (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) + ) && ( + github.event.comment.author_association == 'OWNER' || + github.event.comment.author_association == 'MEMBER' || + github.event.comment.author_association == 'COLLABORATOR' || + github.event.review.author_association == 'OWNER' || + github.event.review.author_association == 'MEMBER' || + github.event.review.author_association == 'COLLABORATOR' || + github.event.issue.author_association == 'OWNER' || + github.event.issue.author_association == 'MEMBER' || + github.event.issue.author_association == 'COLLABORATOR' + ) + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read + issues: read + id-token: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Run Claude Code + id: claude + uses: anthropics/claude-code-action@beta + with: + anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} From 79b38343c28a4c5b222b778f79d3ec4d4849d39f Mon Sep 17 00:00:00 2001 From: Bently Date: Fri, 6 Jun 2025 11:45:31 +0100 Subject: [PATCH 070/497] docs(ollama): Update to add info on how to properly setup ollama environment variables (#10089) Update ollama docs to add info on how to setup ollama environment vars for proper access This includes properly setting the "OLLAMA_HOST" env var with the ip and port "0.0.0.0:11434" which makes it accessible to AutoGPT thats running inside of docker #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Follow the latest setup to test Ollama to make sure it works --- docs/content/platform/ollama.md | 86 ++++++++++++++++++++++++++++++--- 1 file changed, 79 insertions(+), 7 deletions(-) diff --git a/docs/content/platform/ollama.md b/docs/content/platform/ollama.md index 1778a8ca33..c112a86b66 100644 --- a/docs/content/platform/ollama.md +++ b/docs/content/platform/ollama.md @@ -13,13 +13,31 @@ Follow these steps to set up and run Ollama with the AutoGPT platform. ### 1. Launch Ollama -Open a new terminal and execute: +To properly set up Ollama for network access, follow these steps: -```bash -ollama run llama3.2 -``` +1. **Set the host environment variable:** -> **Note**: This will download the [llama3.2](https://ollama.com/library/llama3.2) model and start the service. Keep this terminal running in the background. + **Windows (Command Prompt):** + ``` + set OLLAMA_HOST=0.0.0.0:11434 + ``` + + **Linux/macOS (Terminal):** + ```bash + export OLLAMA_HOST=0.0.0.0:11434 + ``` + +2. Start the Ollama server: + ``` + ollama serve + ``` + +3. **Open a new terminal/command window** and download your desired model: + ``` + ollama pull llama3.2 + ``` + +> **Note**: This will download the [llama3.2](https://ollama.com/library/llama3.2) model. Keep the terminal with `ollama serve` running in the background throughout your session. ### 2. Start the Backend @@ -53,7 +71,38 @@ Now that both Ollama and the AutoGPT platform are running we can move onto using 2. In the "LLM Model" dropdown, select "llama3.2" (This is the model we downloaded earlier) ![Select Ollama Model](../imgs/ollama/Ollama-Select-Llama32.png) -3. Now we need to add some prompts then save and then run the graph: + > **Compatible Models**: Not all models work with Ollama in AutoGPT. Here are the models that are confirmed to work: + > - `llama3.2` + > - `llama3` + > - `llama3.1:405b` + > - `dolphin-mistral:latest` + +3. **Set your local IP address** in the "Ollama Host" field: + + **To find your local IP address:** + + **Windows (Command Prompt):** + ``` + ipconfig + ``` + + **Linux/macOS (Terminal):** + ```bash + ip addr show + ``` + or + ```bash + ipconfig + ``` + + Look for your IPv4 address (e.g., `192.168.0.39`), then enter it with port `11434` in the "Ollama Host" field: + ``` + 192.168.0.39:11434 + ``` + + ![Ollama Remote Host](../imgs/ollama/Ollama-Remote-Host.png) + +4. Now we need to add some prompts then save and then run the graph: ![Add Prompt](../imgs/ollama/Ollama-Add-Prompts.png) That's it! You've successfully setup the AutoGPT platform and made a LLM call to Ollama. @@ -61,7 +110,30 @@ That's it! You've successfully setup the AutoGPT platform and made a LLM call to ### Using Ollama on a Remote Server with AutoGPT -For running Ollama on a remote server, simply make sure the Ollama server is running and is accessible from other devices on your network/remotely through the port 11434, then you can use the same steps above but you need to add the Ollama servers IP address to the "Ollama Host" field in the block settings like so: +For running Ollama on a remote server, simply make sure the Ollama server is running and is accessible from other devices on your network/remotely through the port 11434. + +**To find your local IP address of the system running Ollama:** + +**Windows (Command Prompt):** +``` +ipconfig +``` + +**Linux/macOS (Terminal):** +```bash +ip addr show +``` +or +```bash +ipconfig +``` + +Look for your IPv4 address (e.g., `192.168.0.39`). + +Then you can use the same steps above but you need to add the Ollama server's IP address to the "Ollama Host" field in the block settings like so: +``` +192.168.0.39:11434 +``` ![Ollama Remote Host](../imgs/ollama/Ollama-Remote-Host.png) From 6df4dd3739f37644ec29bde7cff70113a043143a Mon Sep 17 00:00:00 2001 From: Bently Date: Fri, 6 Jun 2025 11:56:15 +0100 Subject: [PATCH 071/497] fix(frontend/turnstile): Reset on failed login/register (#9948) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is to fix turnstile not resetting properly on failed login/register ### Changes 🏗️ Calling ``turnstile.reset()`` directly seems to fail some times so I have made a function ``resetCaptcha`` which forces a full reset of the turnstile widget which should prevent getting stuck when failing to login the first time ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Test logging in with a wrong email/password, it should fail with "Invalid login credentials", you should see the turnstile token refresh, try login again with correct info and it should work with out getting stuck --- .../src/app/(platform)/login/page.tsx | 11 +++++++-- .../app/(platform)/reset_password/page.tsx | 24 +++++++++++++++---- .../src/app/(platform)/signup/page.tsx | 12 ++++++++-- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx index 025ec7541b..4458602dbf 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx @@ -35,6 +35,7 @@ export default function LoginPage() { const [feedback, setFeedback] = useState(null); const router = useRouter(); const [isLoading, setIsLoading] = useState(false); + const [captchaKey, setCaptchaKey] = useState(0); const turnstile = useTurnstile({ action: "login", @@ -64,6 +65,11 @@ export default function LoginPage() { // setFeedback(null); // }, [supabase]); + const resetCaptcha = useCallback(() => { + setCaptchaKey((k) => k + 1); + turnstile.reset(); + }, [turnstile]); + const onLogin = useCallback( async (data: z.infer) => { setIsLoading(true); @@ -76,6 +82,7 @@ export default function LoginPage() { if (!turnstile.verified) { setFeedback("Please complete the CAPTCHA challenge."); setIsLoading(false); + resetCaptcha(); return; } @@ -84,8 +91,7 @@ export default function LoginPage() { setIsLoading(false); if (error) { setFeedback(error); - // Always reset the turnstile on any error - turnstile.reset(); + resetCaptcha(); return; } setFeedback(null); @@ -160,6 +166,7 @@ export default function LoginPage() { {/* Turnstile CAPTCHA Component */} (null); const [isError, setIsError] = useState(false); const [disabled, setDisabled] = useState(false); + const [sendEmailCaptchaKey, setSendEmailCaptchaKey] = useState(0); + const [changePasswordCaptchaKey, setChangePasswordCaptchaKey] = useState(0); const sendEmailTurnstile = useTurnstile({ action: "reset_password", @@ -62,6 +64,16 @@ export default function ResetPasswordPage() { }, }); + const resetSendEmailCaptcha = useCallback(() => { + setSendEmailCaptchaKey((k) => k + 1); + sendEmailTurnstile.reset(); + }, [sendEmailTurnstile]); + + const resetChangePasswordCaptcha = useCallback(() => { + setChangePasswordCaptchaKey((k) => k + 1); + changePasswordTurnstile.reset(); + }, [changePasswordTurnstile]); + const onSendEmail = useCallback( async (data: z.infer) => { setIsLoading(true); @@ -76,6 +88,7 @@ export default function ResetPasswordPage() { setFeedback("Please complete the CAPTCHA challenge."); setIsError(true); setIsLoading(false); + resetSendEmailCaptcha(); return; } @@ -87,7 +100,7 @@ export default function ResetPasswordPage() { if (error) { setFeedback(error); setIsError(true); - sendEmailTurnstile.reset(); + resetSendEmailCaptcha(); return; } setDisabled(true); @@ -96,7 +109,7 @@ export default function ResetPasswordPage() { ); setIsError(false); }, - [sendEmailForm, sendEmailTurnstile], + [sendEmailForm, sendEmailTurnstile, resetSendEmailCaptcha], ); const onChangePassword = useCallback( @@ -113,6 +126,7 @@ export default function ResetPasswordPage() { setFeedback("Please complete the CAPTCHA challenge."); setIsError(true); setIsLoading(false); + resetChangePasswordCaptcha(); return; } @@ -124,13 +138,13 @@ export default function ResetPasswordPage() { if (error) { setFeedback(error); setIsError(true); - changePasswordTurnstile.reset(); + resetChangePasswordCaptcha(); return; } setFeedback("Password changed successfully. Redirecting to login."); setIsError(false); }, - [changePasswordForm, changePasswordTurnstile], + [changePasswordForm, changePasswordTurnstile, resetChangePasswordCaptcha], ); if (isUserLoading) { @@ -184,6 +198,7 @@ export default function ResetPasswordPage() { {/* Turnstile CAPTCHA Component for password change */} (null); const router = useRouter(); const [isLoading, setIsLoading] = useState(false); + const [captchaKey, setCaptchaKey] = useState(0); //TODO: Remove after closed beta const turnstile = useTurnstile({ @@ -55,6 +56,11 @@ export default function SignupPage() { }, }); + const resetCaptcha = useCallback(() => { + setCaptchaKey((k) => k + 1); + turnstile.reset(); + }, [turnstile]); + const onSignup = useCallback( async (data: z.infer) => { setIsLoading(true); @@ -67,6 +73,7 @@ export default function SignupPage() { if (!turnstile.verified) { setFeedback("Please complete the CAPTCHA challenge."); setIsLoading(false); + resetCaptcha(); return; } @@ -75,11 +82,11 @@ export default function SignupPage() { if (error) { if (error === "user_already_exists") { setFeedback("User with this email already exists"); - turnstile.reset(); + resetCaptcha(); return; } else { setFeedback(error); - turnstile.reset(); + resetCaptcha(); } return; } @@ -160,6 +167,7 @@ export default function SignupPage() { {/* Turnstile CAPTCHA Component */} Date: Fri, 6 Jun 2025 13:20:05 +0200 Subject: [PATCH 072/497] chore(deps): Bump peter-evans/repository-dispatch from 2 to 3 (#10076) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 2 to 3.
Release notes

Sourced from peter-evans/repository-dispatch's releases.

Repository Dispatch v3.0.0

⚙️ Updated runtime to Node.js 20

  • The action now requires a minimum version of v2.308.0 for the Actions runner. Update self-hosted runners to v2.308.0 or later to ensure compatibility.

What's Changed

... (truncated)

Commits
  • ff45666 feat: update runtime to node 20 (#305)
  • a4a9027 build(deps-dev): bump @​types/node from 18.19.6 to 18.19.8 (#304)
  • 2605253 build(deps-dev): bump prettier from 3.1.1 to 3.2.4 (#303)
  • ab3258e build(deps-dev): bump @​types/node from 18.19.4 to 18.19.6 (#302)
  • 240bc73 build(deps-dev): bump eslint-plugin-prettier from 5.1.2 to 5.1.3 (#301)
  • 8aa15c5 build(deps-dev): bump @​types/node from 18.19.3 to 18.19.4 (#300)
  • 22aa07c build(deps-dev): bump eslint-plugin-prettier from 5.1.1 to 5.1.2 (#299)
  • ba02985 build(deps-dev): bump eslint-plugin-prettier from 5.0.1 to 5.1.1 (#298)
  • accfd7b build(deps-dev): bump eslint from 8.55.0 to 8.56.0 (#297)
  • 3c7d964 build(deps): bump actions/upload-artifact from 3 to 4 (#295)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/repository-dispatch&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/platform-autogpt-deploy-dev.yaml | 6 +++--- .github/workflows/platform-dev-deploy-event-dispatcher.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml index 4ce86add3d..afed35ad70 100644 --- a/.github/workflows/platform-autogpt-deploy-dev.yaml +++ b/.github/workflows/platform-autogpt-deploy-dev.yaml @@ -166,7 +166,7 @@ jobs: - name: Dispatch Deploy Event if: steps.check_status.outputs.should_deploy == 'true' - uses: peter-evans/repository-dispatch@v2 + uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.DISPATCH_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure @@ -194,7 +194,7 @@ jobs: - name: Dispatch Undeploy Event (from comment) if: steps.check_status.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v2 + uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.DISPATCH_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure @@ -252,7 +252,7 @@ jobs: github.event_name == 'pull_request' && github.event.action == 'closed' && steps.check_pr_close.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v2 + uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.DISPATCH_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure diff --git a/.github/workflows/platform-dev-deploy-event-dispatcher.yml b/.github/workflows/platform-dev-deploy-event-dispatcher.yml index ff2aadaa06..d7915f64c6 100644 --- a/.github/workflows/platform-dev-deploy-event-dispatcher.yml +++ b/.github/workflows/platform-dev-deploy-event-dispatcher.yml @@ -82,7 +82,7 @@ jobs: - name: Dispatch Deploy Event if: steps.check_status.outputs.should_deploy == 'true' - uses: peter-evans/repository-dispatch@v2 + uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.DISPATCH_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure @@ -110,7 +110,7 @@ jobs: - name: Dispatch Undeploy Event (from comment) if: steps.check_status.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v2 + uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.DISPATCH_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure @@ -168,7 +168,7 @@ jobs: github.event_name == 'pull_request' && github.event.action == 'closed' && steps.check_pr_close.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v2 + uses: peter-evans/repository-dispatch@v3 with: token: ${{ secrets.DISPATCH_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure From f8815703257efda3ddc11cb6c72ab1498d9fb666 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Fri, 6 Jun 2025 15:24:55 +0400 Subject: [PATCH 073/497] fix(frontend): cookies console warnings (#10124) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ Screenshot_2025-06-06_at_3 00 40_PM ☝🏽 Fix the following warning that gets logged to the console when running the dev server in the Front-end. It shouldn't cause an actual auth issue, as Next.js made sure `cookies` can still be called sync; however, it is safer if we just migrate our calls to `cookies` to be async 🙏🏽 ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] There is no cookie warnings when running the FE dev server lcoally - [x] Authentication works as expected --- .../src/app/(platform)/auth/callback/route.ts | 2 +- .../src/app/(platform)/auth/confirm/route.ts | 2 +- .../src/app/(platform)/login/actions.ts | 4 ++-- .../profile/(user)/settings/actions.ts | 2 +- .../app/(platform)/reset_password/actions.ts | 4 ++-- .../src/app/(platform)/signup/actions.ts | 2 +- .../src/lib/autogpt-server-api/client.ts | 18 +++++++++++------- .../src/lib/supabase/getServerSupabase.ts | 4 ++-- .../frontend/src/lib/supabase/getServerUser.ts | 2 +- 9 files changed, 22 insertions(+), 18 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts index ba5bc0db14..5397bcd698 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts @@ -9,7 +9,7 @@ export async function GET(request: Request) { const next = searchParams.get("next") ?? "/"; if (code) { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); if (!supabase) { return NextResponse.redirect(`${origin}/error`); diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts index e5d432b8fe..a78efd20ff 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts @@ -12,7 +12,7 @@ export async function GET(request: NextRequest) { const next = searchParams.get("next") ?? "/"; if (token_hash && type) { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); if (!supabase) { redirect("/error"); diff --git a/autogpt_platform/frontend/src/app/(platform)/login/actions.ts b/autogpt_platform/frontend/src/app/(platform)/login/actions.ts index 568a04b266..97f472578d 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/login/actions.ts @@ -21,7 +21,7 @@ export async function login( turnstileToken: string, ) { return await Sentry.withServerActionInstrumentation("login", {}, async () => { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); const api = new BackendAPI(); if (!supabase) { @@ -60,7 +60,7 @@ export async function providerLogin(provider: LoginProvider) { "providerLogin", {}, async () => { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); const api = new BackendAPI(); if (!supabase) { diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts index 38e8857cae..88d996cf43 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts @@ -6,7 +6,7 @@ import BackendApi from "@/lib/autogpt-server-api"; import { NotificationPreferenceDTO } from "@/lib/autogpt-server-api/types"; export async function updateSettings(formData: FormData) { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); const { data: { user }, } = await supabase.auth.getUser(); diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts index 6760e911be..e1e8a17af6 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts @@ -9,7 +9,7 @@ export async function sendResetEmail(email: string, turnstileToken: string) { "sendResetEmail", {}, async () => { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); const origin = process.env.FRONTEND_BASE_URL || "http://localhost:3000"; if (!supabase) { @@ -42,7 +42,7 @@ export async function changePassword(password: string, turnstileToken: string) { "changePassword", {}, async () => { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); if (!supabase) { redirect("/error"); diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts b/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts index 9d9ac98947..3d3819e6d4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts @@ -17,7 +17,7 @@ export async function signup( "signup", {}, async () => { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); if (!supabase) { redirect("/error"); diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts index ec32745bca..043205ae84 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts @@ -89,21 +89,22 @@ export default class BackendAPI { this.wsUrl = wsUrl; } - private get supabaseClient(): SupabaseClient | null { + private async getSupabaseClient(): Promise { return isClient ? createBrowserClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { isSingleton: true }, ) - : getServerSupabase(); + : await getServerSupabase(); } async isAuthenticated(): Promise { - if (!this.supabaseClient) return false; + const supabaseClient = await this.getSupabaseClient(); + if (!supabaseClient) return false; const { data: { session }, - } = await this.supabaseClient.auth.getSession(); + } = await supabaseClient.auth.getSession(); return session != null; } @@ -750,9 +751,10 @@ export default class BackendAPI { const maxRetries = 3; while (retryCount < maxRetries) { + const supabaseClient = await this.getSupabaseClient(); const { data: { session }, - } = (await this.supabaseClient?.auth.getSession()) || { + } = (await supabaseClient?.auth.getSession()) || { data: { session: null }, }; @@ -803,9 +805,10 @@ export default class BackendAPI { const maxRetries = 3; while (retryCount < maxRetries) { + const supabaseClient = await this.getSupabaseClient(); const { data: { session }, - } = (await this.supabaseClient?.auth.getSession()) || { + } = (await supabaseClient?.auth.getSession()) || { data: { session: null }, }; @@ -980,8 +983,9 @@ export default class BackendAPI { async connectWebSocket(): Promise { return (this.wsConnecting ??= new Promise(async (resolve, reject) => { try { + const supabaseClient = await this.getSupabaseClient(); const token = - (await this.supabaseClient?.auth.getSession())?.data.session + (await supabaseClient?.auth.getSession())?.data.session ?.access_token || ""; const wsUrlWithToken = `${this.wsUrl}?token=${token}`; this.webSocket = new WebSocket(wsUrlWithToken); diff --git a/autogpt_platform/frontend/src/lib/supabase/getServerSupabase.ts b/autogpt_platform/frontend/src/lib/supabase/getServerSupabase.ts index aea3d90a67..ffa61fe997 100644 --- a/autogpt_platform/frontend/src/lib/supabase/getServerSupabase.ts +++ b/autogpt_platform/frontend/src/lib/supabase/getServerSupabase.ts @@ -1,10 +1,10 @@ import type { UnsafeUnwrappedCookies } from "next/headers"; import { createServerClient } from "@supabase/ssr"; -export default function getServerSupabase() { +export default async function getServerSupabase() { // Need require here, so Next.js doesn't complain about importing this on client side const { cookies } = require("next/headers"); - const cookieStore = cookies() as UnsafeUnwrappedCookies; + const cookieStore = await cookies(); try { const supabase = createServerClient( diff --git a/autogpt_platform/frontend/src/lib/supabase/getServerUser.ts b/autogpt_platform/frontend/src/lib/supabase/getServerUser.ts index d46cd8b85c..b456d768d9 100644 --- a/autogpt_platform/frontend/src/lib/supabase/getServerUser.ts +++ b/autogpt_platform/frontend/src/lib/supabase/getServerUser.ts @@ -1,7 +1,7 @@ import getServerSupabase from "./getServerSupabase"; const getServerUser = async () => { - const supabase = getServerSupabase(); + const supabase = await getServerSupabase(); if (!supabase) { return { user: null, error: "Failed to create Supabase client" }; From a5ff8e8f69c74c85c93ff3e64c1b7c541416748f Mon Sep 17 00:00:00 2001 From: Swifty Date: Thu, 5 Jun 2025 19:28:48 +0200 Subject: [PATCH 074/497] restore dev deploy (#10122) - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: - [ ] ...
Example test plan - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly
- [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**)
Examples of configuration changes - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases
--- .../platform-autogpt-deploy-dev.yaml | 311 +++--------------- 1 file changed, 40 insertions(+), 271 deletions(-) diff --git a/.github/workflows/platform-autogpt-deploy-dev.yaml b/.github/workflows/platform-autogpt-deploy-dev.yaml index afed35ad70..44da8641ec 100644 --- a/.github/workflows/platform-autogpt-deploy-dev.yaml +++ b/.github/workflows/platform-autogpt-deploy-dev.yaml @@ -1,282 +1,51 @@ -name: AutoGPT Platform - Dev Deploy PR Event Dispatcher +name: AutoGPT Platform - Deploy Dev Environment on: - pull_request: - types: [closed] - issue_comment: - types: [created] + push: + branches: [ dev ] + paths: + - 'autogpt_platform/**' permissions: - issues: write - pull-requests: write + contents: 'read' + id-token: 'write' jobs: - dispatch: + migrate: + environment: develop + name: Run migrations for AutoGPT Platform + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip + pip install prisma + + - name: Run Backend Migrations + working-directory: ./autogpt_platform/backend + run: | + python -m prisma migrate deploy + env: + DATABASE_URL: ${{ secrets.BACKEND_DATABASE_URL }} + DIRECT_URL: ${{ secrets.BACKEND_DATABASE_URL }} + + trigger: + needs: migrate runs-on: ubuntu-latest steps: - - name: Check comment permissions and deployment status - id: check_status - if: github.event_name == 'issue_comment' && github.event.issue.pull_request - uses: actions/github-script@v7 - with: - script: | - const commentBody = context.payload.comment.body.trim(); - const commentUser = context.payload.comment.user.login; - const prAuthor = context.payload.issue.user.login; - const authorAssociation = context.payload.comment.author_association; - const triggeringCommentId = context.payload.comment.id; - - // Check permissions - const hasPermission = ( - authorAssociation === 'OWNER' || - authorAssociation === 'MEMBER' || - authorAssociation === 'COLLABORATOR' - ); - - core.setOutput('comment_body', commentBody); - core.setOutput('has_permission', hasPermission); - - if (!hasPermission && (commentBody === '!deploy' || commentBody === '!undeploy')) { - core.setOutput('permission_denied', 'true'); - return; - } - - if (commentBody !== '!deploy' && commentBody !== '!undeploy') { - return; - } - - // Get all comments to check deployment status - const commentsResponse = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - per_page: 100 - }); - - // Filter out the triggering comment - const commentsData = commentsResponse.data.filter(comment => comment.id !== triggeringCommentId); - - // Find the last deploy and undeploy commands - let lastDeployIndex = -2; - let lastUndeployIndex = -1; - - console.log(`Found ${commentsResponse.data.length} total comments, using ${commentsData.length} for status check after filtering`); - - // Iterate through comments in reverse to find the most recent commands - for (let i = commentsData.length - 1; i >= 0; i--) { - const currentCommentBody = commentsData[i].body.trim(); - console.log(`Processing comment ${i}: ${currentCommentBody}`); - - if (currentCommentBody === '!deploy' && lastDeployIndex === -2) { - lastDeployIndex = i; - } else if (currentCommentBody === '!undeploy' && lastUndeployIndex === -1) { - lastUndeployIndex = i; - } - - // Break early if we found both - if (lastDeployIndex !== -2 && lastUndeployIndex !== -1) { - break; - } - } - - console.log(`Last deploy index: ${lastDeployIndex}`); - console.log(`Last undeploy index: ${lastUndeployIndex}`); - - // Currently deployed if there's a deploy command after the last undeploy - const isCurrentlyDeployed = lastDeployIndex > lastUndeployIndex; - - // Determine actions based on current state and requested command - if (commentBody === '!deploy') { - if (isCurrentlyDeployed) { - core.setOutput('deploy_blocked', 'already_deployed'); - } else { - core.setOutput('should_deploy', 'true'); - } - } else if (commentBody === '!undeploy') { - if (!isCurrentlyDeployed) { - // Check if there was ever a deploy - const hasEverDeployed = lastDeployIndex !== -2; - core.setOutput('undeploy_blocked', hasEverDeployed ? 'already_undeployed' : 'never_deployed'); - } else { - core.setOutput('should_undeploy', 'true'); - } - } - - core.setOutput('has_active_deployment', isCurrentlyDeployed); - - - name: Post permission denied comment - if: steps.check_status.outputs.permission_denied == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `❌ **Permission denied**: Only the repository owners, members, or collaborators can use deployment commands.` - }); - - - name: Post deploy blocked comment - if: steps.check_status.outputs.deploy_blocked == 'already_deployed' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `⚠️ **Deploy skipped**: This PR already has an active deployment. Use \`!undeploy\` first if you want to redeploy.` - }); - - - name: Post undeploy blocked comment - if: steps.check_status.outputs.undeploy_blocked != '' - uses: actions/github-script@v7 - with: - script: | - const reason = '${{ steps.check_status.outputs.undeploy_blocked }}'; - let message; - - if (reason === 'never_deployed') { - message = `⚠️ **Undeploy skipped**: This PR has never been deployed. Use \`!deploy\` first.`; - } else if (reason === 'already_undeployed') { - message = `⚠️ **Undeploy skipped**: This PR is already undeployed.`; - } - - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: message - }); - - - name: Get PR details for deployment - id: pr_details - if: steps.check_status.outputs.should_deploy == 'true' || steps.check_status.outputs.should_undeploy == 'true' - uses: actions/github-script@v7 - with: - script: | - const pr = await github.rest.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.issue.number - }); - core.setOutput('pr_number', pr.data.number); - core.setOutput('pr_title', pr.data.title); - core.setOutput('pr_state', pr.data.state); - - - name: Dispatch Deploy Event - if: steps.check_status.outputs.should_deploy == 'true' + - name: Trigger deploy workflow uses: peter-evans/repository-dispatch@v3 with: - token: ${{ secrets.DISPATCH_TOKEN }} + token: ${{ secrets.DEPLOY_TOKEN }} repository: Significant-Gravitas/AutoGPT_cloud_infrastructure - event-type: pr-event - client-payload: | - { - "action": "deploy", - "pr_number": "${{ steps.pr_details.outputs.pr_number }}", - "pr_title": "${{ steps.pr_details.outputs.pr_title }}", - "pr_state": "${{ steps.pr_details.outputs.pr_state }}", - "repo": "${{ github.repository }}" - } - - - name: Post deploy success comment - if: steps.check_status.outputs.should_deploy == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `🚀 **Deploying PR #${{ steps.pr_details.outputs.pr_number }}** to development environment...` - }); - - - name: Dispatch Undeploy Event (from comment) - if: steps.check_status.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v3 - with: - token: ${{ secrets.DISPATCH_TOKEN }} - repository: Significant-Gravitas/AutoGPT_cloud_infrastructure - event-type: pr-event - client-payload: | - { - "action": "undeploy", - "pr_number": "${{ steps.pr_details.outputs.pr_number }}", - "pr_title": "${{ steps.pr_details.outputs.pr_title }}", - "pr_state": "${{ steps.pr_details.outputs.pr_state }}", - "repo": "${{ github.repository }}" - } - - - name: Post undeploy success comment - if: steps.check_status.outputs.should_undeploy == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `🗑️ **Undeploying PR #${{ steps.pr_details.outputs.pr_number }}** from development environment...` - }); - - - name: Check deployment status on PR close - id: check_pr_close - if: github.event_name == 'pull_request' && github.event.action == 'closed' - uses: actions/github-script@v7 - with: - script: | - const comments = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number - }); - - let lastDeployIndex = -1; - let lastUndeployIndex = -1; - - comments.data.forEach((comment, index) => { - if (comment.body.trim() === '!deploy') { - lastDeployIndex = index; - } else if (comment.body.trim() === '!undeploy') { - lastUndeployIndex = index; - } - }); - - // Should undeploy if there's a !deploy without a subsequent !undeploy - const shouldUndeploy = lastDeployIndex !== -1 && lastDeployIndex > lastUndeployIndex; - core.setOutput('should_undeploy', shouldUndeploy); - - - name: Dispatch Undeploy Event (PR closed with active deployment) - if: >- - github.event_name == 'pull_request' && - github.event.action == 'closed' && - steps.check_pr_close.outputs.should_undeploy == 'true' - uses: peter-evans/repository-dispatch@v3 - with: - token: ${{ secrets.DISPATCH_TOKEN }} - repository: Significant-Gravitas/AutoGPT_cloud_infrastructure - event-type: pr-event - client-payload: | - { - "action": "undeploy", - "pr_number": "${{ github.event.pull_request.number }}", - "pr_title": "${{ github.event.pull_request.title }}", - "pr_state": "${{ github.event.pull_request.state }}", - "repo": "${{ github.repository }}" - } - - - name: Post PR close undeploy comment - if: >- - github.event_name == 'pull_request' && - github.event.action == 'closed' && - steps.check_pr_close.outputs.should_undeploy == 'true' - uses: actions/github-script@v7 - with: - script: | - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - body: `🧹 **Auto-undeploying**: PR closed with active deployment. Cleaning up development environment for PR #${{ github.event.pull_request.number }}.` - }); \ No newline at end of file + event-type: build_deploy_dev + client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "repository": "${{ github.repository }}"}' From a3d082a5fa5c2754c73d12036e0d4dbef2573b7d Mon Sep 17 00:00:00 2001 From: Swifty Date: Fri, 6 Jun 2025 22:36:00 +0200 Subject: [PATCH 075/497] feat(backend): snapshot test responses (#10039) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This pull request introduces a comprehensive backend testing guide and adds new tests for analytics logging and various API endpoints, focusing on snapshot testing. It also includes corresponding snapshot files for these tests. Below are the most significant changes: ### Documentation Updates: * Added a detailed `TESTING.md` file to the backend, providing a guide for running tests, snapshot testing, writing API route tests, and best practices. It includes examples for mocking, fixtures, and CI/CD integration. ### Analytics Logging Tests: * Implemented tests for logging raw metrics and analytics in `analytics_test.py`, covering success scenarios, various input values, invalid requests, and complex nested data. These tests utilize snapshot testing for response validation. * Added snapshot files for analytics logging tests, including responses for success cases, various metric values, and complex analytics data. [[1]](diffhunk://#diff-654bc5aa1951008ec5c110a702279ef58709ee455ba049b9fa825fa60f7e3869R1-R3) [[2]](diffhunk://#diff-e0a434b107abc71aeffb7d7989dbfd8f466b5e53f8dea25a87937ec1b885b122R1-R3) [[3]](diffhunk://#diff-dd0bc0b72264de1a0c0d3bd0c54ad656061317f425e4de461018ca51a19171a0R1-R3) [[4]](diffhunk://#diff-63af007073db553d04988544af46930458a768544cabd08412265e0818320d11R1-R30) ### Snapshot Files for API Endpoints: * Added snapshot files for various API endpoint tests, such as: - Graph-related operations (`graphs_get_single_response`, `graphs_get_all_response`, `blocks_get_all_response`). [[1]](diffhunk://#diff-b25dba271606530cfa428c00073d7e016184a7bb22166148ab1726b3e113dda8R1-R29) [[2]](diffhunk://#diff-1054e58ec3094715660f55bfba1676d65b6833a81a91a08e90ad57922444d056R1-R31) [[3]](diffhunk://#diff-cfd403ab6f3efc89188acaf993d85e6f792108d1740c7e7149eb05efb73d918dR1-R14) - User-related operations (`auth_get_or_create_user_response`, `auth_update_email_response`). [[1]](diffhunk://#diff-49e65ab1eb6af4d0163a6c54ed10be621ce7336b2ab5d47d47679bfaefdb7059R1-R5) [[2]](diffhunk://#diff-ac1216f96878bd4356454c317473654d5d5c7c180125663b80b0b45aa5ab52cbR1-R3) - Credit-related operations (`credits_get_balance_response`, `credits_get_auto_top_up_response`, `credits_top_up_request_response`). [[1]](diffhunk://#diff-189488f8da5be74d80ac3fb7f84f1039a408573184293e9ba2e321d535c57cddR1-R3) [[2]](diffhunk://#diff-ba3c4a6853793cbed24030cdccedf966d71913451ef8eb4b2c4f426ef18ed87aR1-R4) [[3]](diffhunk://#diff-43d7daa0c82070a9b6aee88a774add8e87533e630bbccbac5a838b7a7ae56a75R1-R3) - Graph execution and deletion (`blocks_execute_response`, `graphs_delete_response`). [[1]](diffhunk://#diff-a2ade7d646ad85a2801e7ff39799a925a612548a1cdd0ed99b44dd870d1465b5R1-R12) [[2]](diffhunk://#diff-c0d1cd0a8499ee175ce3007c3a87ba5f3235ce02d38ce837560b36a44fdc4a22R1-R3)## Summary - add pytest-snapshot to backend dev requirements - snapshot server route response JSONs - mention how to update stored snapshots ## Testing - `poetry run format` - `poetry run test` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] run poetry run test --------- Co-authored-by: Claude Co-authored-by: Nicholas Tindle --- autogpt_platform/CLAUDE.md | 132 + autogpt_platform/backend/TESTING.md | 237 ++ .../backend/backend/server/conftest.py | 17 + .../server/routers/analytics_improved_test.py | 139 + .../routers/analytics_parametrized_test.py | 107 + .../backend/server/routers/analytics_test.py | 281 ++ .../backend/backend/server/routers/v1_test.py | 391 ++ .../backend/backend/server/test_fixtures.py | 139 + .../backend/backend/server/test_helpers.py | 109 + .../backend/backend/server/test_utils.py | 74 + .../v2/admin/credit_admin_routes_test.py | 331 ++ .../backend/server/v2/library/db_test.py | 10 + .../backend/server/v2/library/routes_test.py | 13 +- .../backend/server/v2/otto/routes_test.py | 271 ++ .../backend/server/v2/store/routes_test.py | 106 +- .../server/v2/turnstile/routes_test.py | 32 + .../backend/docker-compose.test.yaml | 9 +- autogpt_platform/backend/poetry.lock | 3358 ++++++++--------- autogpt_platform/backend/pyproject.toml | 1 + autogpt_platform/backend/run_tests.py | 50 +- .../backend/snapshots/adm_add_cred_neg | 4 + .../backend/snapshots/adm_add_cred_ok | 4 + .../backend/snapshots/adm_usr_hist_empty | 9 + .../backend/snapshots/adm_usr_hist_filt | 28 + .../backend/snapshots/adm_usr_hist_ok | 46 + .../snapshots/admin_add_credits_success | 4 + .../backend/snapshots/agt_details | 27 + .../backend/snapshots/agts_by_creator | 21 + .../backend/snapshots/agts_category | 21 + .../backend/snapshots/agts_pagination | 65 + .../backend/snapshots/agts_search | 21 + .../backend/snapshots/agts_sorted | 21 + .../analytics_log_analytics_complex_data | 30 + .../snapshots/analytics_log_analytics_success | 3 + .../snapshots/analytics_log_metric_success | 3 + .../analytics_log_metric_various_values | 3 + autogpt_platform/backend/snapshots/auth_email | 3 + autogpt_platform/backend/snapshots/auth_user | 5 + autogpt_platform/backend/snapshots/blks_all | 14 + autogpt_platform/backend/snapshots/blks_exec | 12 + .../backend/snapshots/creator_details | 16 + .../backend/snapshots/creators_pagination | 60 + autogpt_platform/backend/snapshots/cred_bal | 3 + .../backend/snapshots/cred_topup_cfg | 4 + .../backend/snapshots/cred_topup_req | 3 + autogpt_platform/backend/snapshots/def_agts | 9 + .../backend/snapshots/def_creators | 9 + autogpt_platform/backend/snapshots/feat_agts | 21 + .../backend/snapshots/grph_in_schm | 20 + .../backend/snapshots/grph_out_schm | 15 + .../backend/snapshots/grph_single | 29 + .../backend/snapshots/grph_struct | 17 + autogpt_platform/backend/snapshots/grphs_all | 31 + autogpt_platform/backend/snapshots/grphs_del | 3 + .../backend/snapshots/lib_agts_search | 48 + .../backend/snapshots/log_anlyt_cplx | 30 + .../backend/snapshots/log_anlyt_ok | 3 + .../backend/snapshots/log_metric_ok | 3 + .../backend/snapshots/log_metric_vals | 3 + autogpt_platform/backend/snapshots/otto_empty | 5 + autogpt_platform/backend/snapshots/otto_err | 5 + autogpt_platform/backend/snapshots/otto_grph | 10 + autogpt_platform/backend/snapshots/otto_ok | 14 + autogpt_platform/backend/snapshots/sub | 7 + .../backend/snapshots/sub_pagination | 9 + .../backend/snapshots/sub_success | 32 + autogpt_platform/backend/snapshots/unsub | 7 + .../backend/test/data/test_graph.py | 36 +- .../backend/test/server/test_ws_api.py | 20 +- docs/content/platform/getting-started.md | 6 + docs/mkdocs.yml | 4 +- 71 files changed, 4917 insertions(+), 1716 deletions(-) create mode 100644 autogpt_platform/CLAUDE.md create mode 100644 autogpt_platform/backend/TESTING.md create mode 100644 autogpt_platform/backend/backend/server/conftest.py create mode 100644 autogpt_platform/backend/backend/server/routers/analytics_improved_test.py create mode 100644 autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py create mode 100644 autogpt_platform/backend/backend/server/routers/analytics_test.py create mode 100644 autogpt_platform/backend/backend/server/routers/v1_test.py create mode 100644 autogpt_platform/backend/backend/server/test_fixtures.py create mode 100644 autogpt_platform/backend/backend/server/test_helpers.py create mode 100644 autogpt_platform/backend/backend/server/test_utils.py create mode 100644 autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes_test.py create mode 100644 autogpt_platform/backend/backend/server/v2/otto/routes_test.py create mode 100644 autogpt_platform/backend/backend/server/v2/turnstile/routes_test.py create mode 100644 autogpt_platform/backend/snapshots/adm_add_cred_neg create mode 100644 autogpt_platform/backend/snapshots/adm_add_cred_ok create mode 100644 autogpt_platform/backend/snapshots/adm_usr_hist_empty create mode 100644 autogpt_platform/backend/snapshots/adm_usr_hist_filt create mode 100644 autogpt_platform/backend/snapshots/adm_usr_hist_ok create mode 100644 autogpt_platform/backend/snapshots/admin_add_credits_success create mode 100644 autogpt_platform/backend/snapshots/agt_details create mode 100644 autogpt_platform/backend/snapshots/agts_by_creator create mode 100644 autogpt_platform/backend/snapshots/agts_category create mode 100644 autogpt_platform/backend/snapshots/agts_pagination create mode 100644 autogpt_platform/backend/snapshots/agts_search create mode 100644 autogpt_platform/backend/snapshots/agts_sorted create mode 100644 autogpt_platform/backend/snapshots/analytics_log_analytics_complex_data create mode 100644 autogpt_platform/backend/snapshots/analytics_log_analytics_success create mode 100644 autogpt_platform/backend/snapshots/analytics_log_metric_success create mode 100644 autogpt_platform/backend/snapshots/analytics_log_metric_various_values create mode 100644 autogpt_platform/backend/snapshots/auth_email create mode 100644 autogpt_platform/backend/snapshots/auth_user create mode 100644 autogpt_platform/backend/snapshots/blks_all create mode 100644 autogpt_platform/backend/snapshots/blks_exec create mode 100644 autogpt_platform/backend/snapshots/creator_details create mode 100644 autogpt_platform/backend/snapshots/creators_pagination create mode 100644 autogpt_platform/backend/snapshots/cred_bal create mode 100644 autogpt_platform/backend/snapshots/cred_topup_cfg create mode 100644 autogpt_platform/backend/snapshots/cred_topup_req create mode 100644 autogpt_platform/backend/snapshots/def_agts create mode 100644 autogpt_platform/backend/snapshots/def_creators create mode 100644 autogpt_platform/backend/snapshots/feat_agts create mode 100644 autogpt_platform/backend/snapshots/grph_in_schm create mode 100644 autogpt_platform/backend/snapshots/grph_out_schm create mode 100644 autogpt_platform/backend/snapshots/grph_single create mode 100644 autogpt_platform/backend/snapshots/grph_struct create mode 100644 autogpt_platform/backend/snapshots/grphs_all create mode 100644 autogpt_platform/backend/snapshots/grphs_del create mode 100644 autogpt_platform/backend/snapshots/lib_agts_search create mode 100644 autogpt_platform/backend/snapshots/log_anlyt_cplx create mode 100644 autogpt_platform/backend/snapshots/log_anlyt_ok create mode 100644 autogpt_platform/backend/snapshots/log_metric_ok create mode 100644 autogpt_platform/backend/snapshots/log_metric_vals create mode 100644 autogpt_platform/backend/snapshots/otto_empty create mode 100644 autogpt_platform/backend/snapshots/otto_err create mode 100644 autogpt_platform/backend/snapshots/otto_grph create mode 100644 autogpt_platform/backend/snapshots/otto_ok create mode 100644 autogpt_platform/backend/snapshots/sub create mode 100644 autogpt_platform/backend/snapshots/sub_pagination create mode 100644 autogpt_platform/backend/snapshots/sub_success create mode 100644 autogpt_platform/backend/snapshots/unsub diff --git a/autogpt_platform/CLAUDE.md b/autogpt_platform/CLAUDE.md new file mode 100644 index 0000000000..30bb2496bd --- /dev/null +++ b/autogpt_platform/CLAUDE.md @@ -0,0 +1,132 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Repository Overview + +AutoGPT Platform is a monorepo containing: +- **Backend** (`/backend`): Python FastAPI server with async support +- **Frontend** (`/frontend`): Next.js React application +- **Shared Libraries** (`/autogpt_libs`): Common Python utilities + +## Essential Commands + +### Backend Development +```bash +# Install dependencies +cd backend && poetry install + +# Run database migrations +poetry run prisma migrate dev + +# Start all services (database, redis, rabbitmq) +docker compose up -d + +# Run the backend server +poetry run serve + +# Run tests +poetry run test + +# Run specific test +poetry run pytest path/to/test_file.py::test_function_name + +# Lint and format +poetry run format # Black + isort +poetry run lint # ruff +``` +More details can be found in TESTING.md + +#### Creating/Updating Snapshots + +When you first write a test or when the expected output changes: + +```bash +poetry run pytest path/to/test.py --snapshot-update +``` + +⚠️ **Important**: Always review snapshot changes before committing! Use `git diff` to verify the changes are expected. + + +### Frontend Development +```bash +# Install dependencies +cd frontend && npm install + +# Start development server +npm run dev + +# Run E2E tests +npm run test + +# Run Storybook for component development +npm run storybook + +# Build production +npm run build + +# Type checking +npm run type-check +``` + +## Architecture Overview + +### Backend Architecture +- **API Layer**: FastAPI with REST and WebSocket endpoints +- **Database**: PostgreSQL with Prisma ORM, includes pgvector for embeddings +- **Queue System**: RabbitMQ for async task processing +- **Execution Engine**: Separate executor service processes agent workflows +- **Authentication**: JWT-based with Supabase integration + +### Frontend Architecture +- **Framework**: Next.js App Router with React Server Components +- **State Management**: React hooks + Supabase client for real-time updates +- **Workflow Builder**: Visual graph editor using @xyflow/react +- **UI Components**: Radix UI primitives with Tailwind CSS styling +- **Feature Flags**: LaunchDarkly integration + +### Key Concepts +1. **Agent Graphs**: Workflow definitions stored as JSON, executed by the backend +2. **Blocks**: Reusable components in `/backend/blocks/` that perform specific tasks +3. **Integrations**: OAuth and API connections stored per user +4. **Store**: Marketplace for sharing agent templates + +### Testing Approach +- Backend uses pytest with snapshot testing for API responses +- Test files are colocated with source files (`*_test.py`) +- Frontend uses Playwright for E2E tests +- Component testing via Storybook + +### Database Schema +Key models (defined in `/backend/schema.prisma`): +- `User`: Authentication and profile data +- `AgentGraph`: Workflow definitions with version control +- `AgentGraphExecution`: Execution history and results +- `AgentNode`: Individual nodes in a workflow +- `StoreListing`: Marketplace listings for sharing agents + +### Environment Configuration +- Backend: `.env` file in `/backend` +- Frontend: `.env.local` file in `/frontend` +- Both require Supabase credentials and API keys for various services + +### Common Development Tasks + +**Adding a new block:** +1. Create new file in `/backend/backend/blocks/` +2. Inherit from `Block` base class +3. Define input/output schemas +4. Implement `run` method +5. Register in block registry + +**Modifying the API:** +1. Update route in `/backend/backend/server/routers/` +2. Add/update Pydantic models in same directory +3. Write tests alongside the route file +4. Run `poetry run test` to verify + +**Frontend feature development:** +1. Components go in `/frontend/src/components/` +2. Use existing UI components from `/frontend/src/components/ui/` +3. Add Storybook stories for new components +4. Test with Playwright if user-facing \ No newline at end of file diff --git a/autogpt_platform/backend/TESTING.md b/autogpt_platform/backend/TESTING.md new file mode 100644 index 0000000000..1fb79732fa --- /dev/null +++ b/autogpt_platform/backend/TESTING.md @@ -0,0 +1,237 @@ +# Backend Testing Guide + +This guide covers testing practices for the AutoGPT Platform backend, with a focus on snapshot testing for API endpoints. + +## Table of Contents +- [Overview](#overview) +- [Running Tests](#running-tests) +- [Snapshot Testing](#snapshot-testing) +- [Writing Tests for API Routes](#writing-tests-for-api-routes) +- [Best Practices](#best-practices) + +## Overview + +The backend uses pytest for testing with the following key libraries: +- `pytest` - Test framework +- `pytest-asyncio` - Async test support +- `pytest-mock` - Mocking support +- `pytest-snapshot` - Snapshot testing for API responses + +## Running Tests + +### Run all tests +```bash +poetry run test +``` + +### Run specific test file +```bash +poetry run pytest path/to/test_file.py +``` + +### Run with verbose output +```bash +poetry run pytest -v +``` + +### Run with coverage +```bash +poetry run pytest --cov=backend +``` + +## Snapshot Testing + +Snapshot testing captures the output of your code and compares it against previously saved snapshots. This is particularly useful for testing API responses. + +### How Snapshot Testing Works + +1. First run: Creates snapshot files in `snapshots/` directories +2. Subsequent runs: Compares output against saved snapshots +3. Changes detected: Test fails if output differs from snapshot + +### Creating/Updating Snapshots + +When you first write a test or when the expected output changes: + +```bash +poetry run pytest path/to/test.py --snapshot-update +``` + +⚠️ **Important**: Always review snapshot changes before committing! Use `git diff` to verify the changes are expected. + +### Snapshot Test Example + +```python +import json +from pytest_snapshot.plugin import Snapshot + +def test_api_endpoint(snapshot: Snapshot): + response = client.get("/api/endpoint") + + # Snapshot the response + snapshot.snapshot_dir = "snapshots" +snapshot.assert_match( + json.dumps(response.json(), indent=2, sort_keys=True), + "endpoint_response" + ) +``` + +### Best Practices for Snapshots + +1. **Use descriptive names**: `"user_list_response"` not `"response1"` +2. **Sort JSON keys**: Ensures consistent snapshots +3. **Format JSON**: Use `indent=2` for readable diffs +4. **Exclude dynamic data**: Remove timestamps, IDs, etc. that change between runs + +Example of excluding dynamic data: +```python +response_data = response.json() +# Remove dynamic fields for snapshot +response_data.pop("created_at", None) +response_data.pop("id", None) + +snapshot.snapshot_dir = "snapshots" +snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "static_response_data" +) +``` + +## Writing Tests for API Routes + +### Basic Structure + +```python +import json +import fastapi +import fastapi.testclient +import pytest +from pytest_snapshot.plugin import Snapshot + +from backend.server.v2.myroute import router + +app = fastapi.FastAPI() +app.include_router(router) +client = fastapi.testclient.TestClient(app) + +def test_endpoint_success(snapshot: Snapshot): + response = client.get("/endpoint") + assert response.status_code == 200 + + # Test specific fields + data = response.json() + assert data["status"] == "success" + + # Snapshot the full response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(data, indent=2, sort_keys=True), + "endpoint_success_response" + ) +``` + +### Testing with Authentication + +```python +def override_auth_middleware(): + return {"sub": "test-user-id"} + +def override_get_user_id(): + return "test-user-id" + +app.dependency_overrides[auth_middleware] = override_auth_middleware +app.dependency_overrides[get_user_id] = override_get_user_id +``` + +### Mocking External Services + +```python +def test_external_api_call(mocker, snapshot): + # Mock external service + mock_response = {"external": "data"} + mocker.patch( + "backend.services.external_api.call", + return_value=mock_response + ) + + response = client.post("/api/process") + assert response.status_code == 200 + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response.json(), indent=2, sort_keys=True), + "process_with_external_response" + ) +``` + +## Best Practices + +### 1. Test Organization +- Place tests next to the code: `routes.py` → `routes_test.py` +- Use descriptive test names: `test_create_user_with_invalid_email` +- Group related tests in classes when appropriate + +### 2. Test Coverage +- Test happy path and error cases +- Test edge cases (empty data, invalid formats) +- Test authentication and authorization + +### 3. Snapshot Testing Guidelines +- Review all snapshot changes carefully +- Don't snapshot sensitive data +- Keep snapshots focused and minimal +- Update snapshots intentionally, not accidentally + +### 4. Async Testing +- Use regular `def` for FastAPI TestClient tests +- Use `async def` with `@pytest.mark.asyncio` for testing async functions directly + +### 5. Fixtures +Create reusable fixtures for common test data: + +```python +@pytest.fixture +def sample_user(): + return { + "email": "test@example.com", + "name": "Test User" + } + +def test_create_user(sample_user, snapshot): + response = client.post("/users", json=sample_user) + # ... test implementation +``` + +## CI/CD Integration + +The GitHub Actions workflow automatically runs tests on: +- Pull requests +- Pushes to main branch + +Snapshot tests work in CI by: +1. Committing snapshot files to the repository +2. CI compares against committed snapshots +3. Fails if snapshots don't match + +## Troubleshooting + +### Snapshot Mismatches +- Review the diff carefully +- If changes are expected: `poetry run pytest --snapshot-update` +- If changes are unexpected: Fix the code causing the difference + +### Async Test Issues +- Ensure async functions use `@pytest.mark.asyncio` +- Use `AsyncMock` for mocking async functions +- FastAPI TestClient handles async automatically + +### Import Errors +- Check that all dependencies are in `pyproject.toml` +- Run `poetry install` to ensure dependencies are installed +- Verify import paths are correct + +## Summary + +Snapshot testing provides a powerful way to ensure API responses remain consistent. Combined with traditional assertions, it creates a robust test suite that catches regressions while remaining maintainable. + +Remember: Good tests are as important as good code! \ No newline at end of file diff --git a/autogpt_platform/backend/backend/server/conftest.py b/autogpt_platform/backend/backend/server/conftest.py new file mode 100644 index 0000000000..8672436296 --- /dev/null +++ b/autogpt_platform/backend/backend/server/conftest.py @@ -0,0 +1,17 @@ +"""Common test fixtures for server tests.""" + +import pytest +from pytest_snapshot.plugin import Snapshot + + +@pytest.fixture +def configured_snapshot(snapshot: Snapshot) -> Snapshot: + """Pre-configured snapshot fixture with standard settings.""" + snapshot.snapshot_dir = "snapshots" + return snapshot + + +# Test ID constants +TEST_USER_ID = "test-user-id" +ADMIN_USER_ID = "admin-user-id" +TARGET_USER_ID = "target-user-id" diff --git a/autogpt_platform/backend/backend/server/routers/analytics_improved_test.py b/autogpt_platform/backend/backend/server/routers/analytics_improved_test.py new file mode 100644 index 0000000000..9ec8af4942 --- /dev/null +++ b/autogpt_platform/backend/backend/server/routers/analytics_improved_test.py @@ -0,0 +1,139 @@ +"""Example of analytics tests with improved error handling and assertions.""" + +import json +from unittest.mock import AsyncMock, Mock + +import fastapi +import fastapi.testclient +import pytest_mock +from pytest_snapshot.plugin import Snapshot + +import backend.server.routers.analytics as analytics_routes +from backend.server.conftest import TEST_USER_ID +from backend.server.test_helpers import ( + assert_error_response_structure, + assert_mock_called_with_partial, + assert_response_status, + safe_parse_json, +) +from backend.server.utils import get_user_id + +app = fastapi.FastAPI() +app.include_router(analytics_routes.router) + +client = fastapi.testclient.TestClient(app) + + +def override_get_user_id() -> str: + """Override get_user_id for testing""" + return TEST_USER_ID + + +app.dependency_overrides[get_user_id] = override_get_user_id + + +def test_log_raw_metric_success_improved( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test successful raw metric logging with improved assertions.""" + # Mock the analytics function + mock_result = Mock(id="metric-123-uuid") + + mock_log_metric = mocker.patch( + "backend.data.analytics.log_raw_metric", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "metric_name": "page_load_time", + "metric_value": 2.5, + "data_string": "/dashboard", + } + + response = client.post("/log_raw_metric", json=request_data) + + # Improved assertions with better error messages + assert_response_status(response, 200, "Metric logging should succeed") + response_data = safe_parse_json(response, "Metric response parsing") + + assert response_data == "metric-123-uuid", f"Unexpected response: {response_data}" + + # Verify the function was called with correct parameters + assert_mock_called_with_partial( + mock_log_metric, + user_id=TEST_USER_ID, + metric_name="page_load_time", + metric_value=2.5, + data_string="/dashboard", + ) + + # Snapshot test the response + configured_snapshot.assert_match( + json.dumps({"metric_id": response_data}, indent=2, sort_keys=True), + "analytics_log_metric_success_improved", + ) + + +def test_log_raw_metric_invalid_request_improved() -> None: + """Test invalid metric request with improved error assertions.""" + # Test missing required fields + response = client.post("/log_raw_metric", json={}) + + error_data = assert_error_response_structure( + response, expected_status=422, expected_error_fields=["loc", "msg", "type"] + ) + + # Verify specific error details + detail = error_data["detail"] + assert isinstance(detail, list), "Error detail should be a list" + assert len(detail) > 0, "Should have at least one error" + + # Check that required fields are mentioned in errors + error_fields = [error["loc"][-1] for error in detail if "loc" in error] + assert "metric_name" in error_fields, "Should report missing metric_name" + assert "metric_value" in error_fields, "Should report missing metric_value" + assert "data_string" in error_fields, "Should report missing data_string" + + +def test_log_raw_metric_type_validation_improved() -> None: + """Test metric type validation with improved assertions.""" + invalid_requests = [ + { + "data": { + "metric_name": "test", + "metric_value": "not_a_number", # Invalid type + "data_string": "test", + }, + "expected_error": "Input should be a valid number", + }, + { + "data": { + "metric_name": "", # Empty string + "metric_value": 1.0, + "data_string": "test", + }, + "expected_error": "String should have at least 1 character", + }, + { + "data": { + "metric_name": "test", + "metric_value": float("inf"), # Infinity + "data_string": "test", + }, + "expected_error": "ensure this value is finite", + }, + ] + + for test_case in invalid_requests: + response = client.post("/log_raw_metric", json=test_case["data"]) + + error_data = assert_error_response_structure(response, expected_status=422) + + # Check that expected error is in the response + error_text = json.dumps(error_data) + assert ( + test_case["expected_error"] in error_text + or test_case["expected_error"].lower() in error_text.lower() + ), f"Expected error '{test_case['expected_error']}' not found in: {error_text}" diff --git a/autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py b/autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py new file mode 100644 index 0000000000..58d6733142 --- /dev/null +++ b/autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py @@ -0,0 +1,107 @@ +"""Example of parametrized tests for analytics endpoints.""" + +import json +from unittest.mock import AsyncMock, Mock + +import fastapi +import fastapi.testclient +import pytest +import pytest_mock +from pytest_snapshot.plugin import Snapshot + +import backend.server.routers.analytics as analytics_routes +from backend.server.conftest import TEST_USER_ID +from backend.server.utils import get_user_id + +app = fastapi.FastAPI() +app.include_router(analytics_routes.router) + +client = fastapi.testclient.TestClient(app) + + +def override_get_user_id() -> str: + """Override get_user_id for testing""" + return TEST_USER_ID + + +app.dependency_overrides[get_user_id] = override_get_user_id + + +@pytest.mark.parametrize( + "metric_value,metric_name,data_string,test_id", + [ + (100, "api_calls_count", "external_api", "integer_value"), + (0, "error_count", "no_errors", "zero_value"), + (-5.2, "temperature_delta", "cooling", "negative_value"), + (1.23456789, "precision_test", "float_precision", "float_precision"), + (999999999, "large_number", "max_value", "large_number"), + (0.0000001, "tiny_number", "min_value", "tiny_number"), + ], +) +def test_log_raw_metric_values_parametrized( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, + metric_value: float, + metric_name: str, + data_string: str, + test_id: str, +) -> None: + """Test raw metric logging with various metric values using parametrize.""" + # Mock the analytics function + mock_result = Mock(id=f"metric-{test_id}-uuid") + + mocker.patch( + "backend.data.analytics.log_raw_metric", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "metric_name": metric_name, + "metric_value": metric_value, + "data_string": data_string, + } + + response = client.post("/log_raw_metric", json=request_data) + + # Better error handling + assert response.status_code == 200, f"Failed for {test_id}: {response.text}" + response_data = response.json() + + # Snapshot test the response + configured_snapshot.assert_match( + json.dumps( + {"metric_id": response_data, "test_case": test_id}, indent=2, sort_keys=True + ), + f"analytics_metric_{test_id}", + ) + + +@pytest.mark.parametrize( + "invalid_data,expected_error", + [ + ({}, "Field required"), # Missing all fields + ({"metric_name": "test"}, "Field required"), # Missing metric_value + ( + {"metric_name": "test", "metric_value": "not_a_number"}, + "Input should be a valid number", + ), # Invalid type + ( + {"metric_name": "", "metric_value": 1.0, "data_string": "test"}, + "String should have at least 1 character", + ), # Empty name + ], +) +def test_log_raw_metric_invalid_requests_parametrized( + invalid_data: dict, + expected_error: str, +) -> None: + """Test invalid metric requests with parametrize.""" + response = client.post("/log_raw_metric", json=invalid_data) + + assert response.status_code == 422 + error_detail = response.json() + assert "detail" in error_detail + # Verify error message contains expected error + error_text = json.dumps(error_detail) + assert expected_error in error_text or expected_error.lower() in error_text.lower() diff --git a/autogpt_platform/backend/backend/server/routers/analytics_test.py b/autogpt_platform/backend/backend/server/routers/analytics_test.py new file mode 100644 index 0000000000..11f97adfd2 --- /dev/null +++ b/autogpt_platform/backend/backend/server/routers/analytics_test.py @@ -0,0 +1,281 @@ +import json +from unittest.mock import AsyncMock, Mock + +import fastapi +import fastapi.testclient +import pytest_mock +from pytest_snapshot.plugin import Snapshot + +import backend.server.routers.analytics as analytics_routes +from backend.server.conftest import TEST_USER_ID +from backend.server.utils import get_user_id + +app = fastapi.FastAPI() +app.include_router(analytics_routes.router) + +client = fastapi.testclient.TestClient(app) + + +def override_get_user_id() -> str: + """Override get_user_id for testing""" + return TEST_USER_ID + + +app.dependency_overrides[get_user_id] = override_get_user_id + + +def test_log_raw_metric_success( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test successful raw metric logging""" + + # Mock the analytics function + mock_result = Mock(id="metric-123-uuid") + + mock_log_metric = mocker.patch( + "backend.data.analytics.log_raw_metric", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "metric_name": "page_load_time", + "metric_value": 2.5, + "data_string": "/dashboard", + } + + response = client.post("/log_raw_metric", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data == "metric-123-uuid" + + # Verify the function was called with correct parameters + mock_log_metric.assert_called_once_with( + user_id=TEST_USER_ID, + metric_name="page_load_time", + metric_value=2.5, + data_string="/dashboard", + ) + + # Snapshot test the response + configured_snapshot.assert_match( + json.dumps({"metric_id": response.json()}, indent=2, sort_keys=True), + "analytics_log_metric_success", + ) + + +def test_log_raw_metric_various_values( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test raw metric logging with various metric values""" + + # Mock the analytics function + mock_result = Mock(id="metric-456-uuid") + + mocker.patch( + "backend.data.analytics.log_raw_metric", + new_callable=AsyncMock, + return_value=mock_result, + ) + + # Test with integer value + request_data = { + "metric_name": "api_calls_count", + "metric_value": 100, + "data_string": "external_api", + } + + response = client.post("/log_raw_metric", json=request_data) + assert response.status_code == 200 + + # Test with zero value + request_data = { + "metric_name": "error_count", + "metric_value": 0, + "data_string": "no_errors", + } + + response = client.post("/log_raw_metric", json=request_data) + assert response.status_code == 200 + + # Test with negative value + request_data = { + "metric_name": "temperature_delta", + "metric_value": -5.2, + "data_string": "cooling", + } + + response = client.post("/log_raw_metric", json=request_data) + assert response.status_code == 200 + + # Snapshot the last response + configured_snapshot.assert_match( + json.dumps({"metric_id": response.json()}, indent=2, sort_keys=True), + "analytics_log_metric_various_values", + ) + + +def test_log_raw_analytics_success( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test successful raw analytics logging""" + + # Mock the analytics function + mock_result = Mock(id="analytics-789-uuid") + + mock_log_analytics = mocker.patch( + "backend.data.analytics.log_raw_analytics", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "type": "user_action", + "data": { + "action": "button_click", + "button_id": "submit_form", + "timestamp": "2023-01-01T00:00:00Z", + "metadata": { + "form_type": "registration", + "fields_filled": 5, + }, + }, + "data_index": "button_click_submit_form", + } + + response = client.post("/log_raw_analytics", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data == "analytics-789-uuid" + + # Verify the function was called with correct parameters + mock_log_analytics.assert_called_once_with( + TEST_USER_ID, + "user_action", + request_data["data"], + "button_click_submit_form", + ) + + # Snapshot test the response + configured_snapshot.assert_match( + json.dumps({"analytics_id": response_data}, indent=2, sort_keys=True), + "analytics_log_analytics_success", + ) + + +def test_log_raw_analytics_complex_data( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test raw analytics logging with complex nested data""" + + # Mock the analytics function + mock_result = Mock(id="analytics-complex-uuid") + + mocker.patch( + "backend.data.analytics.log_raw_analytics", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "type": "agent_execution", + "data": { + "agent_id": "agent_123", + "execution_id": "exec_456", + "status": "completed", + "duration_ms": 3500, + "nodes_executed": 15, + "blocks_used": [ + {"block_id": "llm_block", "count": 3}, + {"block_id": "http_block", "count": 5}, + {"block_id": "code_block", "count": 2}, + ], + "errors": [], + "metadata": { + "trigger": "manual", + "user_tier": "premium", + "environment": "production", + }, + }, + "data_index": "agent_123_exec_456", + } + + response = client.post("/log_raw_analytics", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + + # Snapshot test the complex data structure + configured_snapshot.assert_match( + json.dumps( + { + "analytics_id": response_data, + "logged_data": request_data["data"], + }, + indent=2, + sort_keys=True, + ), + "analytics_log_analytics_complex_data", + ) + + +def test_log_raw_metric_invalid_request() -> None: + """Test raw metric logging with invalid request data""" + # Missing required fields + response = client.post("/log_raw_metric", json={}) + assert response.status_code == 422 + + # Invalid metric_value type + response = client.post( + "/log_raw_metric", + json={ + "metric_name": "test", + "metric_value": "not_a_number", + "data_string": "test", + }, + ) + assert response.status_code == 422 + + # Missing data_string + response = client.post( + "/log_raw_metric", + json={ + "metric_name": "test", + "metric_value": 1.0, + }, + ) + assert response.status_code == 422 + + +def test_log_raw_analytics_invalid_request() -> None: + """Test raw analytics logging with invalid request data""" + # Missing required fields + response = client.post("/log_raw_analytics", json={}) + assert response.status_code == 422 + + # Invalid data type (should be dict) + response = client.post( + "/log_raw_analytics", + json={ + "type": "test", + "data": "not_a_dict", + "data_index": "test", + }, + ) + assert response.status_code == 422 + + # Missing data_index + response = client.post( + "/log_raw_analytics", + json={ + "type": "test", + "data": {"key": "value"}, + }, + ) + assert response.status_code == 422 diff --git a/autogpt_platform/backend/backend/server/routers/v1_test.py b/autogpt_platform/backend/backend/server/routers/v1_test.py new file mode 100644 index 0000000000..17c06b5778 --- /dev/null +++ b/autogpt_platform/backend/backend/server/routers/v1_test.py @@ -0,0 +1,391 @@ +import json +from unittest.mock import AsyncMock, Mock + +import autogpt_libs.auth.depends +import fastapi +import fastapi.testclient +import pytest_mock +from pytest_snapshot.plugin import Snapshot + +import backend.server.routers.v1 as v1_routes +from backend.data.credit import AutoTopUpConfig +from backend.data.graph import GraphModel +from backend.server.conftest import TEST_USER_ID +from backend.server.utils import get_user_id + +app = fastapi.FastAPI() +app.include_router(v1_routes.v1_router) + +client = fastapi.testclient.TestClient(app) + + +def override_auth_middleware(request: fastapi.Request) -> dict[str, str]: + """Override auth middleware for testing""" + return {"sub": TEST_USER_ID, "role": "user", "email": "test@example.com"} + + +def override_get_user_id() -> str: + """Override get_user_id for testing""" + return TEST_USER_ID + + +app.dependency_overrides[autogpt_libs.auth.middleware.auth_middleware] = ( + override_auth_middleware +) +app.dependency_overrides[get_user_id] = override_get_user_id + + +# Auth endpoints tests +def test_get_or_create_user_route( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test get or create user endpoint""" + mock_user = Mock() + mock_user.model_dump.return_value = { + "id": TEST_USER_ID, + "email": "test@example.com", + "name": "Test User", + } + + mocker.patch( + "backend.server.routers.v1.get_or_create_user", + return_value=mock_user, + ) + + response = client.post("/auth/user") + + assert response.status_code == 200 + response_data = response.json() + + configured_snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "auth_user", + ) + + +def test_update_user_email_route( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test update user email endpoint""" + mocker.patch( + "backend.server.routers.v1.update_user_email", + return_value=None, + ) + + response = client.post("/auth/user/email", json="newemail@example.com") + + assert response.status_code == 200 + response_data = response.json() + assert response_data["email"] == "newemail@example.com" + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "auth_email", + ) + + +# Blocks endpoints tests +def test_get_graph_blocks( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test get blocks endpoint""" + # Mock block + mock_block = Mock() + mock_block.to_dict.return_value = { + "id": "test-block", + "name": "Test Block", + "description": "A test block", + "disabled": False, + } + mock_block.id = "test-block" + mock_block.disabled = False + + # Mock get_blocks + mocker.patch( + "backend.server.routers.v1.get_blocks", + return_value={"test-block": lambda: mock_block}, + ) + + # Mock block costs + mocker.patch( + "backend.server.routers.v1.get_block_costs", + return_value={"test-block": [{"cost": 10, "type": "credit"}]}, + ) + + response = client.get("/blocks") + + assert response.status_code == 200 + response_data = response.json() + assert len(response_data) == 1 + assert response_data[0]["id"] == "test-block" + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "blks_all", + ) + + +def test_execute_graph_block( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test execute block endpoint""" + # Mock block + mock_block = Mock() + mock_block.execute.return_value = [ + ("output1", {"data": "result1"}), + ("output2", {"data": "result2"}), + ] + + mocker.patch( + "backend.server.routers.v1.get_block", + return_value=mock_block, + ) + + request_data = { + "input_name": "test_input", + "input_value": "test_value", + } + + response = client.post("/blocks/test-block/execute", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "blks_exec", + ) + + +def test_execute_graph_block_not_found( + mocker: pytest_mock.MockFixture, +) -> None: + """Test execute block with non-existent block""" + mocker.patch( + "backend.server.routers.v1.get_block", + return_value=None, + ) + + response = client.post("/blocks/nonexistent-block/execute", json={}) + + assert response.status_code == 404 + assert "not found" in response.json()["detail"] + + +# Credits endpoints tests +def test_get_user_credits( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test get user credits endpoint""" + mock_credit_model = mocker.patch("backend.server.routers.v1._user_credit_model") + mock_credit_model.get_credits = AsyncMock(return_value=1000) + + response = client.get("/credits") + + assert response.status_code == 200 + response_data = response.json() + assert response_data["credits"] == 1000 + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "cred_bal", + ) + + +def test_request_top_up( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test request top up endpoint""" + mock_credit_model = mocker.patch("backend.server.routers.v1._user_credit_model") + mock_credit_model.top_up_intent = AsyncMock( + return_value="https://checkout.example.com/session123" + ) + + request_data = {"credit_amount": 500} + + response = client.post("/credits", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert "checkout_url" in response_data + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "cred_topup_req", + ) + + +def test_get_auto_top_up( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test get auto top-up configuration endpoint""" + mock_config = AutoTopUpConfig(threshold=100, amount=500) + + mocker.patch( + "backend.server.routers.v1.get_auto_top_up", + return_value=mock_config, + ) + + response = client.get("/credits/auto-top-up") + + assert response.status_code == 200 + response_data = response.json() + assert response_data["threshold"] == 100 + assert response_data["amount"] == 500 + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "cred_topup_cfg", + ) + + +# Graphs endpoints tests +def test_get_graphs( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test get graphs endpoint""" + mock_graph = GraphModel( + id="graph-123", + version=1, + is_active=True, + name="Test Graph", + description="A test graph", + user_id="test-user-id", + ) + + mocker.patch( + "backend.server.routers.v1.graph_db.get_graphs", + return_value=[mock_graph], + ) + + response = client.get("/graphs") + + assert response.status_code == 200 + response_data = response.json() + assert len(response_data) == 1 + assert response_data[0]["id"] == "graph-123" + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "grphs_all", + ) + + +def test_get_graph( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test get single graph endpoint""" + mock_graph = GraphModel( + id="graph-123", + version=1, + is_active=True, + name="Test Graph", + description="A test graph", + user_id="test-user-id", + ) + + mocker.patch( + "backend.server.routers.v1.graph_db.get_graph", + return_value=mock_graph, + ) + + response = client.get("/graphs/graph-123") + + assert response.status_code == 200 + response_data = response.json() + assert response_data["id"] == "graph-123" + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "grph_single", + ) + + +def test_get_graph_not_found( + mocker: pytest_mock.MockFixture, +) -> None: + """Test get graph with non-existent ID""" + mocker.patch( + "backend.server.routers.v1.graph_db.get_graph", + return_value=None, + ) + + response = client.get("/graphs/nonexistent-graph") + + assert response.status_code == 404 + assert "not found" in response.json()["detail"] + + +def test_delete_graph( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test delete graph endpoint""" + # Mock active graph for deactivation + mock_graph = GraphModel( + id="graph-123", + version=1, + is_active=True, + name="Test Graph", + description="A test graph", + user_id="test-user-id", + ) + + mocker.patch( + "backend.server.routers.v1.graph_db.get_graph", + return_value=mock_graph, + ) + mocker.patch( + "backend.server.routers.v1.on_graph_deactivate", + return_value=None, + ) + mocker.patch( + "backend.server.routers.v1.graph_db.delete_graph", + return_value=3, # Number of versions deleted + ) + + response = client.delete("/graphs/graph-123") + + assert response.status_code == 200 + response_data = response.json() + assert response_data["version_counts"] == 3 + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "grphs_del", + ) + + +# Invalid request tests +def test_invalid_json_request() -> None: + """Test endpoint with invalid JSON""" + response = client.post( + "/auth/user/email", + content="invalid json", + headers={"Content-Type": "application/json"}, + ) + assert response.status_code == 422 + + +def test_missing_required_field() -> None: + """Test endpoint with missing required field""" + response = client.post("/credits", json={}) # Missing credit_amount + assert response.status_code == 422 diff --git a/autogpt_platform/backend/backend/server/test_fixtures.py b/autogpt_platform/backend/backend/server/test_fixtures.py new file mode 100644 index 0000000000..a73f5edfb4 --- /dev/null +++ b/autogpt_platform/backend/backend/server/test_fixtures.py @@ -0,0 +1,139 @@ +"""Common test fixtures with proper setup and teardown.""" + +from contextlib import asynccontextmanager +from typing import AsyncGenerator +from unittest.mock import Mock, patch + +import pytest +from prisma import Prisma + + +@pytest.fixture +async def test_db_connection() -> AsyncGenerator[Prisma, None]: + """Provide a test database connection with proper cleanup. + + This fixture ensures the database connection is properly + closed after the test, even if the test fails. + """ + db = Prisma() + try: + await db.connect() + yield db + finally: + await db.disconnect() + + +@pytest.fixture +def mock_transaction(): + """Mock database transaction with proper async context manager.""" + + @asynccontextmanager + async def mock_context(*args, **kwargs): + yield None + + with patch("backend.data.db.locked_transaction", side_effect=mock_context) as mock: + yield mock + + +@pytest.fixture +def isolated_app_state(): + """Fixture that ensures app state is isolated between tests.""" + # Example: Save original state + # from backend.server.app import app + # original_overrides = app.dependency_overrides.copy() + + # try: + # yield app + # finally: + # # Restore original state + # app.dependency_overrides = original_overrides + + # For now, just yield None as this is an example + yield None + + +@pytest.fixture +def cleanup_files(): + """Fixture to track and cleanup files created during tests.""" + created_files = [] + + def track_file(filepath: str): + created_files.append(filepath) + + yield track_file + + # Cleanup + import os + + for filepath in created_files: + try: + if os.path.exists(filepath): + os.remove(filepath) + except Exception as e: + print(f"Warning: Failed to cleanup {filepath}: {e}") + + +@pytest.fixture +async def async_mock_with_cleanup(): + """Create async mocks that are properly cleaned up.""" + mocks = [] + + def create_mock(**kwargs): + mock = Mock(**kwargs) + mocks.append(mock) + return mock + + yield create_mock + + # Reset all mocks + for mock in mocks: + mock.reset_mock() + + +class TestDatabaseIsolation: + """Example of proper test isolation with database operations.""" + + @pytest.fixture(autouse=True) + async def setup_and_teardown(self, test_db_connection): + """Setup and teardown for each test method.""" + # Setup: Clear test data + await test_db_connection.user.delete_many( + where={"email": {"contains": "@test.example"}} + ) + + yield + + # Teardown: Clear test data again + await test_db_connection.user.delete_many( + where={"email": {"contains": "@test.example"}} + ) + + async def test_create_user(self, test_db_connection): + """Test that demonstrates proper isolation.""" + # This test has access to a clean database + user = await test_db_connection.user.create( + data={"email": "test@test.example", "name": "Test User"} + ) + assert user.email == "test@test.example" + # User will be cleaned up automatically + + +@pytest.fixture(scope="function") # Explicitly use function scope +def reset_singleton_state(): + """Reset singleton state between tests.""" + # Example: Reset a singleton instance + # from backend.data.some_singleton import SingletonClass + + # # Save original state + # original_instance = getattr(SingletonClass, "_instance", None) + + # try: + # # Clear singleton + # SingletonClass._instance = None + # yield + # finally: + # # Restore original state + # SingletonClass._instance = original_instance + + # For now, just yield None as this is an example + yield None diff --git a/autogpt_platform/backend/backend/server/test_helpers.py b/autogpt_platform/backend/backend/server/test_helpers.py new file mode 100644 index 0000000000..98073f0992 --- /dev/null +++ b/autogpt_platform/backend/backend/server/test_helpers.py @@ -0,0 +1,109 @@ +"""Helper functions for improved test assertions and error handling.""" + +import json +from typing import Any, Dict, Optional + + +def assert_response_status( + response: Any, expected_status: int = 200, error_context: Optional[str] = None +) -> None: + """Assert response status with helpful error message. + + Args: + response: The HTTP response object + expected_status: Expected status code + error_context: Optional context to include in error message + """ + if response.status_code != expected_status: + error_msg = f"Expected status {expected_status}, got {response.status_code}" + if error_context: + error_msg = f"{error_context}: {error_msg}" + + # Try to include response body in error + try: + body = response.json() + error_msg += f"\nResponse body: {json.dumps(body, indent=2)}" + except Exception: + error_msg += f"\nResponse text: {response.text}" + + raise AssertionError(error_msg) + + +def safe_parse_json( + response: Any, error_context: Optional[str] = None +) -> Dict[str, Any]: + """Safely parse JSON response with error handling. + + Args: + response: The HTTP response object + error_context: Optional context for error messages + + Returns: + Parsed JSON data + + Raises: + AssertionError: If JSON parsing fails + """ + try: + return response.json() + except Exception as e: + error_msg = f"Failed to parse JSON response: {e}" + if error_context: + error_msg = f"{error_context}: {error_msg}" + error_msg += f"\nResponse text: {response.text[:500]}" + raise AssertionError(error_msg) + + +def assert_error_response_structure( + response: Any, + expected_status: int = 422, + expected_error_fields: Optional[list[str]] = None, +) -> Dict[str, Any]: + """Assert error response has expected structure. + + Args: + response: The HTTP response object + expected_status: Expected error status code + expected_error_fields: List of expected fields in error detail + + Returns: + Parsed error response + """ + assert_response_status(response, expected_status, "Error response check") + + error_data = safe_parse_json(response, "Error response parsing") + + # Check basic error structure + assert "detail" in error_data, f"Missing 'detail' in error response: {error_data}" + + # Check specific error fields if provided + if expected_error_fields: + detail = error_data["detail"] + if isinstance(detail, list): + # FastAPI validation errors + for error in detail: + assert "loc" in error, f"Missing 'loc' in error: {error}" + assert "msg" in error, f"Missing 'msg' in error: {error}" + assert "type" in error, f"Missing 'type' in error: {error}" + + return error_data + + +def assert_mock_called_with_partial(mock_obj: Any, **expected_kwargs: Any) -> None: + """Assert mock was called with expected kwargs (partial match). + + Args: + mock_obj: The mock object to check + **expected_kwargs: Expected keyword arguments + """ + assert mock_obj.called, f"Mock {mock_obj} was not called" + + actual_kwargs = mock_obj.call_args.kwargs if mock_obj.call_args else {} + + for key, expected_value in expected_kwargs.items(): + assert ( + key in actual_kwargs + ), f"Missing key '{key}' in mock call. Actual keys: {list(actual_kwargs.keys())}" + assert ( + actual_kwargs[key] == expected_value + ), f"Mock called with {key}={actual_kwargs[key]}, expected {expected_value}" diff --git a/autogpt_platform/backend/backend/server/test_utils.py b/autogpt_platform/backend/backend/server/test_utils.py new file mode 100644 index 0000000000..567e9d5e5c --- /dev/null +++ b/autogpt_platform/backend/backend/server/test_utils.py @@ -0,0 +1,74 @@ +"""Common test utilities and constants for server tests.""" + +from typing import Any, Dict +from unittest.mock import Mock + +import pytest + +# Test ID constants +TEST_USER_ID = "test-user-id" +ADMIN_USER_ID = "admin-user-id" +TARGET_USER_ID = "target-user-id" + +# Common test data constants +FIXED_TIMESTAMP = "2024-01-01T00:00:00Z" +TRANSACTION_UUID = "transaction-123-uuid" +METRIC_UUID = "metric-123-uuid" +ANALYTICS_UUID = "analytics-123-uuid" + + +def create_mock_with_id(mock_id: str) -> Mock: + """Create a mock object with an id attribute. + + Args: + mock_id: The ID value to set on the mock + + Returns: + Mock object with id attribute set + """ + return Mock(id=mock_id) + + +def assert_status_and_parse_json( + response: Any, expected_status: int = 200 +) -> Dict[str, Any]: + """Assert response status and return parsed JSON. + + Args: + response: The HTTP response object + expected_status: Expected status code (default: 200) + + Returns: + Parsed JSON response data + + Raises: + AssertionError: If status code doesn't match expected + """ + assert ( + response.status_code == expected_status + ), f"Expected status {expected_status}, got {response.status_code}: {response.text}" + return response.json() + + +@pytest.mark.parametrize( + "metric_value,metric_name,data_string", + [ + (100, "api_calls_count", "external_api"), + (0, "error_count", "no_errors"), + (-5.2, "temperature_delta", "cooling"), + (1.23456789, "precision_test", "float_precision"), + (999999999, "large_number", "max_value"), + ], +) +def parametrized_metric_values_decorator(func): + """Decorator for parametrized metric value tests.""" + return pytest.mark.parametrize( + "metric_value,metric_name,data_string", + [ + (100, "api_calls_count", "external_api"), + (0, "error_count", "no_errors"), + (-5.2, "temperature_delta", "cooling"), + (1.23456789, "precision_test", "float_precision"), + (999999999, "large_number", "max_value"), + ], + )(func) diff --git a/autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes_test.py b/autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes_test.py new file mode 100644 index 0000000000..cf2a466d57 --- /dev/null +++ b/autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes_test.py @@ -0,0 +1,331 @@ +import json +from unittest.mock import AsyncMock + +import autogpt_libs.auth +import autogpt_libs.auth.depends +import fastapi +import fastapi.testclient +import prisma.enums +import pytest_mock +from prisma import Json +from pytest_snapshot.plugin import Snapshot + +import backend.server.v2.admin.credit_admin_routes as credit_admin_routes +import backend.server.v2.admin.model as admin_model +from backend.data.model import UserTransaction +from backend.server.conftest import ADMIN_USER_ID, TARGET_USER_ID +from backend.server.model import Pagination + +app = fastapi.FastAPI() +app.include_router(credit_admin_routes.router) + +client = fastapi.testclient.TestClient(app) + + +def override_requires_admin_user() -> dict[str, str]: + """Override admin user check for testing""" + return {"sub": ADMIN_USER_ID, "role": "admin"} + + +def override_get_user_id() -> str: + """Override get_user_id for testing""" + return ADMIN_USER_ID + + +app.dependency_overrides[autogpt_libs.auth.requires_admin_user] = ( + override_requires_admin_user +) +app.dependency_overrides[autogpt_libs.auth.depends.get_user_id] = override_get_user_id + + +def test_add_user_credits_success( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test successful credit addition by admin""" + # Mock the credit model + mock_credit_model = mocker.patch( + "backend.server.v2.admin.credit_admin_routes._user_credit_model" + ) + mock_credit_model._add_transaction = AsyncMock( + return_value=(1500, "transaction-123-uuid") + ) + + request_data = { + "user_id": TARGET_USER_ID, + "amount": 500, + "comments": "Test credit grant for debugging", + } + + response = client.post("/admin/add_credits", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data["new_balance"] == 1500 + assert response_data["transaction_key"] == "transaction-123-uuid" + + # Verify the function was called with correct parameters + mock_credit_model._add_transaction.assert_called_once() + call_args = mock_credit_model._add_transaction.call_args + assert call_args[0] == (TARGET_USER_ID, 500) + assert call_args[1]["transaction_type"] == prisma.enums.CreditTransactionType.GRANT + # Check that metadata is a Json object with the expected content + assert isinstance(call_args[1]["metadata"], Json) + assert call_args[1]["metadata"] == Json( + {"admin_id": ADMIN_USER_ID, "reason": "Test credit grant for debugging"} + ) + + # Snapshot test the response + configured_snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "admin_add_credits_success", + ) + + +def test_add_user_credits_negative_amount( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test credit deduction by admin (negative amount)""" + # Mock the credit model + mock_credit_model = mocker.patch( + "backend.server.v2.admin.credit_admin_routes._user_credit_model" + ) + mock_credit_model._add_transaction = AsyncMock( + return_value=(200, "transaction-456-uuid") + ) + + request_data = { + "user_id": "target-user-id", + "amount": -100, + "comments": "Refund adjustment", + } + + response = client.post("/admin/add_credits", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data["new_balance"] == 200 + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "adm_add_cred_neg", + ) + + +def test_get_user_history_success( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test successful retrieval of user credit history""" + # Mock the admin_get_user_history function + mock_history_response = admin_model.UserHistoryResponse( + history=[ + UserTransaction( + user_id="user-1", + user_email="user1@example.com", + amount=1000, + reason="Initial grant", + transaction_type=prisma.enums.CreditTransactionType.GRANT, + ), + UserTransaction( + user_id="user-2", + user_email="user2@example.com", + amount=-50, + reason="Usage", + transaction_type=prisma.enums.CreditTransactionType.USAGE, + ), + ], + pagination=Pagination( + total_items=2, + total_pages=1, + current_page=1, + page_size=20, + ), + ) + + mocker.patch( + "backend.server.v2.admin.credit_admin_routes.admin_get_user_history", + return_value=mock_history_response, + ) + + response = client.get("/admin/users_history") + + assert response.status_code == 200 + response_data = response.json() + assert len(response_data["history"]) == 2 + assert response_data["pagination"]["total_items"] == 2 + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "adm_usr_hist_ok", + ) + + +def test_get_user_history_with_filters( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test user credit history with search and filter parameters""" + # Mock the admin_get_user_history function + mock_history_response = admin_model.UserHistoryResponse( + history=[ + UserTransaction( + user_id="user-3", + user_email="test@example.com", + amount=500, + reason="Top up", + transaction_type=prisma.enums.CreditTransactionType.TOP_UP, + ), + ], + pagination=Pagination( + total_items=1, + total_pages=1, + current_page=1, + page_size=10, + ), + ) + + mock_get_history = mocker.patch( + "backend.server.v2.admin.credit_admin_routes.admin_get_user_history", + return_value=mock_history_response, + ) + + response = client.get( + "/admin/users_history", + params={ + "search": "test@example.com", + "page": 1, + "page_size": 10, + "transaction_filter": "TOP_UP", + }, + ) + + assert response.status_code == 200 + response_data = response.json() + assert len(response_data["history"]) == 1 + assert response_data["history"][0]["transaction_type"] == "TOP_UP" + + # Verify the function was called with correct parameters + mock_get_history.assert_called_once_with( + page=1, + page_size=10, + search="test@example.com", + transaction_filter=prisma.enums.CreditTransactionType.TOP_UP, + ) + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "adm_usr_hist_filt", + ) + + +def test_get_user_history_empty_results( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test user credit history with no results""" + # Mock empty history response + mock_history_response = admin_model.UserHistoryResponse( + history=[], + pagination=Pagination( + total_items=0, + total_pages=0, + current_page=1, + page_size=20, + ), + ) + + mocker.patch( + "backend.server.v2.admin.credit_admin_routes.admin_get_user_history", + return_value=mock_history_response, + ) + + response = client.get("/admin/users_history", params={"search": "nonexistent"}) + + assert response.status_code == 200 + response_data = response.json() + assert len(response_data["history"]) == 0 + assert response_data["pagination"]["total_items"] == 0 + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "adm_usr_hist_empty", + ) + + +def test_add_credits_invalid_request() -> None: + """Test credit addition with invalid request data""" + # Missing required fields + response = client.post("/admin/add_credits", json={}) + assert response.status_code == 422 + + # Invalid amount type + response = client.post( + "/admin/add_credits", + json={ + "user_id": "test", + "amount": "not_a_number", + "comments": "test", + }, + ) + assert response.status_code == 422 + + # Missing comments + response = client.post( + "/admin/add_credits", + json={ + "user_id": "test", + "amount": 100, + }, + ) + assert response.status_code == 422 + + +def test_admin_endpoints_require_admin_role(mocker: pytest_mock.MockFixture) -> None: + """Test that admin endpoints require admin role""" + # Clear the admin override to test authorization + app.dependency_overrides.clear() + + # Mock requires_admin_user to raise an exception + mocker.patch( + "autogpt_libs.auth.requires_admin_user", + side_effect=fastapi.HTTPException( + status_code=403, detail="Admin access required" + ), + ) + + # Test add_credits endpoint + response = client.post( + "/admin/add_credits", + json={ + "user_id": "test", + "amount": 100, + "comments": "test", + }, + ) + assert ( + response.status_code == 401 + ) # Auth middleware returns 401 when auth is disabled + + # Test users_history endpoint + response = client.get("/admin/users_history") + assert ( + response.status_code == 401 + ) # Auth middleware returns 401 when auth is disabled + + # Restore the override + app.dependency_overrides[autogpt_libs.auth.requires_admin_user] = ( + override_requires_admin_user + ) + app.dependency_overrides[autogpt_libs.auth.depends.get_user_id] = ( + override_get_user_id + ) diff --git a/autogpt_platform/backend/backend/server/v2/library/db_test.py b/autogpt_platform/backend/backend/server/v2/library/db_test.py index b799deb33b..5854c2ecb7 100644 --- a/autogpt_platform/backend/backend/server/v2/library/db_test.py +++ b/autogpt_platform/backend/backend/server/v2/library/db_test.py @@ -3,6 +3,7 @@ from datetime import datetime import prisma.enums import prisma.errors import prisma.models +import prisma.types import pytest import backend.server.v2.library.db as db @@ -84,6 +85,11 @@ async def test_get_library_agents(mocker): @pytest.mark.asyncio(loop_scope="session") async def test_add_agent_to_library(mocker): await connect() + + # Mock the transaction context + mock_transaction = mocker.patch("backend.server.v2.library.db.locked_transaction") + mock_transaction.return_value.__aenter__ = mocker.AsyncMock(return_value=None) + mock_transaction.return_value.__aexit__ = mocker.AsyncMock(return_value=None) # Mock data mock_store_listing_data = prisma.models.StoreListingVersion( id="version123", @@ -142,6 +148,10 @@ async def test_add_agent_to_library(mocker): return_value=mock_library_agent_data ) + # Mock the model conversion + mock_from_db = mocker.patch("backend.server.v2.library.model.LibraryAgent.from_db") + mock_from_db.return_value = mocker.Mock() + # Call function await db.add_store_agent_to_library("version123", "test-user") diff --git a/autogpt_platform/backend/backend/server/v2/library/routes_test.py b/autogpt_platform/backend/backend/server/v2/library/routes_test.py index 962da72d86..6cfb1ffce0 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes_test.py +++ b/autogpt_platform/backend/backend/server/v2/library/routes_test.py @@ -1,9 +1,11 @@ import datetime +import json import autogpt_libs.auth as autogpt_auth_lib import fastapi.testclient import pytest import pytest_mock +from pytest_snapshot.plugin import Snapshot import backend.server.model as server_model import backend.server.v2.library.model as library_model @@ -14,6 +16,8 @@ app.include_router(library_router) client = fastapi.testclient.TestClient(app) +FIXED_NOW = datetime.datetime(2023, 1, 1, 0, 0, 0) + def override_auth_middleware(): """Override auth middleware for testing""" @@ -30,7 +34,10 @@ app.dependency_overrides[autogpt_auth_lib.depends.get_user_id] = override_get_us @pytest.mark.asyncio -async def test_get_library_agents_success(mocker: pytest_mock.MockFixture): +async def test_get_library_agents_success( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = library_model.LibraryAgentResponse( agents=[ library_model.LibraryAgent( @@ -82,6 +89,10 @@ async def test_get_library_agents_success(mocker: pytest_mock.MockFixture): assert data.agents[0].can_access_graph is True assert data.agents[1].graph_id == "test-agent-2" assert data.agents[1].can_access_graph is False + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "lib_agts_search") + mock_db_call.assert_called_once_with( user_id="test-user-id", search_term="test", diff --git a/autogpt_platform/backend/backend/server/v2/otto/routes_test.py b/autogpt_platform/backend/backend/server/v2/otto/routes_test.py new file mode 100644 index 0000000000..7bc5f25ab0 --- /dev/null +++ b/autogpt_platform/backend/backend/server/v2/otto/routes_test.py @@ -0,0 +1,271 @@ +import json + +import autogpt_libs.auth.depends +import autogpt_libs.auth.middleware +import fastapi +import fastapi.testclient +import pytest_mock +from pytest_snapshot.plugin import Snapshot + +import backend.server.v2.otto.models as otto_models +import backend.server.v2.otto.routes as otto_routes +from backend.server.utils import get_user_id +from backend.server.v2.otto.service import OttoService + +app = fastapi.FastAPI() +app.include_router(otto_routes.router) + +client = fastapi.testclient.TestClient(app) + + +def override_auth_middleware(): + """Override auth middleware for testing""" + return {"sub": "test-user-id"} + + +def override_get_user_id(): + """Override get_user_id for testing""" + return "test-user-id" + + +app.dependency_overrides[autogpt_libs.auth.middleware.auth_middleware] = ( + override_auth_middleware +) +app.dependency_overrides[get_user_id] = override_get_user_id + + +def test_ask_otto_success( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test successful Otto API request""" + # Mock the OttoService.ask method + mock_response = otto_models.ApiResponse( + answer="This is Otto's response to your query.", + documents=[ + otto_models.Document( + url="https://example.com/doc1", + relevance_score=0.95, + ), + otto_models.Document( + url="https://example.com/doc2", + relevance_score=0.87, + ), + ], + success=True, + ) + + mocker.patch.object( + OttoService, + "ask", + return_value=mock_response, + ) + + request_data = { + "query": "How do I create an agent?", + "conversation_history": [ + { + "query": "What is AutoGPT?", + "response": "AutoGPT is an AI agent platform.", + } + ], + "message_id": "msg_123", + "include_graph_data": False, + } + + response = client.post("/ask", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data["success"] is True + assert response_data["answer"] == "This is Otto's response to your query." + assert len(response_data["documents"]) == 2 + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "otto_ok", + ) + + +def test_ask_otto_with_graph_data( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test Otto API request with graph data included""" + # Mock the OttoService.ask method + mock_response = otto_models.ApiResponse( + answer="Here's information about your graph.", + documents=[ + otto_models.Document( + url="https://example.com/graph-doc", + relevance_score=0.92, + ), + ], + success=True, + ) + + mocker.patch.object( + OttoService, + "ask", + return_value=mock_response, + ) + + request_data = { + "query": "Tell me about my graph", + "conversation_history": [], + "message_id": "msg_456", + "include_graph_data": True, + "graph_id": "graph_123", + } + + response = client.post("/ask", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data["success"] is True + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "otto_grph", + ) + + +def test_ask_otto_empty_conversation( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test Otto API request with empty conversation history""" + # Mock the OttoService.ask method + mock_response = otto_models.ApiResponse( + answer="Welcome! How can I help you?", + documents=[], + success=True, + ) + + mocker.patch.object( + OttoService, + "ask", + return_value=mock_response, + ) + + request_data = { + "query": "Hello", + "conversation_history": [], + "message_id": "msg_789", + "include_graph_data": False, + } + + response = client.post("/ask", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data["success"] is True + assert len(response_data["documents"]) == 0 + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "otto_empty", + ) + + +def test_ask_otto_service_error( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: + """Test Otto API request when service returns error""" + # Mock the OttoService.ask method to return failure + mock_response = otto_models.ApiResponse( + answer="An error occurred while processing your request.", + documents=[], + success=False, + ) + + mocker.patch.object( + OttoService, + "ask", + return_value=mock_response, + ) + + request_data = { + "query": "Test query", + "conversation_history": [], + "message_id": "msg_error", + "include_graph_data": False, + } + + response = client.post("/ask", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data["success"] is False + + # Snapshot test the response + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(response_data, indent=2, sort_keys=True), + "otto_err", + ) + + +def test_ask_otto_invalid_request() -> None: + """Test Otto API with invalid request data""" + # Missing required fields + response = client.post("/ask", json={}) + assert response.status_code == 422 + + # Invalid conversation history format + response = client.post( + "/ask", + json={ + "query": "Test", + "conversation_history": "not a list", + "message_id": "123", + }, + ) + assert response.status_code == 422 + + # Missing message_id + response = client.post( + "/ask", + json={ + "query": "Test", + "conversation_history": [], + }, + ) + assert response.status_code == 422 + + +def test_ask_otto_unauthenticated(mocker: pytest_mock.MockFixture) -> None: + """Test Otto API request without authentication""" + # Remove the auth override to test unauthenticated access + app.dependency_overrides.clear() + + # Mock auth_middleware to raise an exception + mocker.patch( + "autogpt_libs.auth.middleware.auth_middleware", + side_effect=fastapi.HTTPException(status_code=401, detail="Unauthorized"), + ) + + request_data = { + "query": "Test", + "conversation_history": [], + "message_id": "123", + } + + response = client.post("/ask", json=request_data) + # When auth is disabled and Otto API URL is not configured, we get 503 + assert response.status_code == 503 + + # Restore the override + app.dependency_overrides[autogpt_libs.auth.middleware.auth_middleware] = ( + override_auth_middleware + ) + app.dependency_overrides[autogpt_libs.auth.depends.get_user_id] = ( + override_get_user_id + ) diff --git a/autogpt_platform/backend/backend/server/v2/store/routes_test.py b/autogpt_platform/backend/backend/server/v2/store/routes_test.py index ae4496f9eb..f0ff131f2e 100644 --- a/autogpt_platform/backend/backend/server/v2/store/routes_test.py +++ b/autogpt_platform/backend/backend/server/v2/store/routes_test.py @@ -1,4 +1,5 @@ import datetime +import json import autogpt_libs.auth.depends import autogpt_libs.auth.middleware @@ -6,22 +7,27 @@ import fastapi import fastapi.testclient import prisma.enums import pytest_mock +from pytest_snapshot.plugin import Snapshot import backend.server.v2.store.model import backend.server.v2.store.routes +# Using a fixed timestamp for reproducible tests +# 2023 date is intentionally used to ensure tests work regardless of current year +FIXED_NOW = datetime.datetime(2023, 1, 1, 0, 0, 0) + app = fastapi.FastAPI() app.include_router(backend.server.v2.store.routes.router) client = fastapi.testclient.TestClient(app) -def override_auth_middleware(): +def override_auth_middleware() -> dict[str, str]: """Override auth middleware for testing""" return {"sub": "test-user-id"} -def override_get_user_id(): +def override_get_user_id() -> str: """Override get_user_id for testing""" return "test-user-id" @@ -32,7 +38,10 @@ app.dependency_overrides[autogpt_libs.auth.middleware.auth_middleware] = ( app.dependency_overrides[autogpt_libs.auth.depends.get_user_id] = override_get_user_id -def test_get_agents_defaults(mocker: pytest_mock.MockFixture): +def test_get_agents_defaults( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentsResponse( agents=[], pagination=backend.server.v2.store.model.Pagination( @@ -52,6 +61,9 @@ def test_get_agents_defaults(mocker: pytest_mock.MockFixture): ) assert data.pagination.total_pages == 0 assert data.agents == [] + + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "def_agts") mock_db_call.assert_called_once_with( featured=False, creator=None, @@ -63,7 +75,10 @@ def test_get_agents_defaults(mocker: pytest_mock.MockFixture): ) -def test_get_agents_featured(mocker: pytest_mock.MockFixture): +def test_get_agents_featured( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentsResponse( agents=[ backend.server.v2.store.model.StoreAgent( @@ -94,6 +109,8 @@ def test_get_agents_featured(mocker: pytest_mock.MockFixture): ) assert len(data.agents) == 1 assert data.agents[0].slug == "featured-agent" + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "feat_agts") mock_db_call.assert_called_once_with( featured=True, creator=None, @@ -105,7 +122,10 @@ def test_get_agents_featured(mocker: pytest_mock.MockFixture): ) -def test_get_agents_by_creator(mocker: pytest_mock.MockFixture): +def test_get_agents_by_creator( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentsResponse( agents=[ backend.server.v2.store.model.StoreAgent( @@ -136,6 +156,8 @@ def test_get_agents_by_creator(mocker: pytest_mock.MockFixture): ) assert len(data.agents) == 1 assert data.agents[0].creator == "specific-creator" + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "agts_by_creator") mock_db_call.assert_called_once_with( featured=False, creator="specific-creator", @@ -147,7 +169,10 @@ def test_get_agents_by_creator(mocker: pytest_mock.MockFixture): ) -def test_get_agents_sorted(mocker: pytest_mock.MockFixture): +def test_get_agents_sorted( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentsResponse( agents=[ backend.server.v2.store.model.StoreAgent( @@ -178,6 +203,8 @@ def test_get_agents_sorted(mocker: pytest_mock.MockFixture): ) assert len(data.agents) == 1 assert data.agents[0].runs == 1000 + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "agts_sorted") mock_db_call.assert_called_once_with( featured=False, creator=None, @@ -189,7 +216,10 @@ def test_get_agents_sorted(mocker: pytest_mock.MockFixture): ) -def test_get_agents_search(mocker: pytest_mock.MockFixture): +def test_get_agents_search( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentsResponse( agents=[ backend.server.v2.store.model.StoreAgent( @@ -220,6 +250,8 @@ def test_get_agents_search(mocker: pytest_mock.MockFixture): ) assert len(data.agents) == 1 assert "specific" in data.agents[0].description.lower() + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "agts_search") mock_db_call.assert_called_once_with( featured=False, creator=None, @@ -231,7 +263,10 @@ def test_get_agents_search(mocker: pytest_mock.MockFixture): ) -def test_get_agents_category(mocker: pytest_mock.MockFixture): +def test_get_agents_category( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentsResponse( agents=[ backend.server.v2.store.model.StoreAgent( @@ -261,6 +296,8 @@ def test_get_agents_category(mocker: pytest_mock.MockFixture): response.json() ) assert len(data.agents) == 1 + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "agts_category") mock_db_call.assert_called_once_with( featured=False, creator=None, @@ -272,7 +309,10 @@ def test_get_agents_category(mocker: pytest_mock.MockFixture): ) -def test_get_agents_pagination(mocker: pytest_mock.MockFixture): +def test_get_agents_pagination( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentsResponse( agents=[ backend.server.v2.store.model.StoreAgent( @@ -305,6 +345,8 @@ def test_get_agents_pagination(mocker: pytest_mock.MockFixture): assert len(data.agents) == 5 assert data.pagination.current_page == 2 assert data.pagination.page_size == 5 + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "agts_pagination") mock_db_call.assert_called_once_with( featured=False, creator=None, @@ -334,7 +376,10 @@ def test_get_agents_malformed_request(mocker: pytest_mock.MockFixture): mock_db_call.assert_not_called() -def test_get_agent_details(mocker: pytest_mock.MockFixture): +def test_get_agent_details( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreAgentDetails( store_listing_version_id="test-version-id", slug="test-agent", @@ -349,7 +394,7 @@ def test_get_agent_details(mocker: pytest_mock.MockFixture): runs=100, rating=4.5, versions=["1.0.0", "1.1.0"], - last_updated=datetime.datetime.now(), + last_updated=FIXED_NOW, ) mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agent_details") mock_db_call.return_value = mocked_value @@ -362,10 +407,15 @@ def test_get_agent_details(mocker: pytest_mock.MockFixture): ) assert data.agent_name == "Test Agent" assert data.creator == "creator1" + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "agt_details") mock_db_call.assert_called_once_with(username="creator1", agent_name="test-agent") -def test_get_creators_defaults(mocker: pytest_mock.MockFixture): +def test_get_creators_defaults( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.CreatorsResponse( creators=[], pagination=backend.server.v2.store.model.Pagination( @@ -386,12 +436,17 @@ def test_get_creators_defaults(mocker: pytest_mock.MockFixture): ) assert data.pagination.total_pages == 0 assert data.creators == [] + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "def_creators") mock_db_call.assert_called_once_with( featured=False, search_query=None, sorted_by=None, page=1, page_size=20 ) -def test_get_creators_pagination(mocker: pytest_mock.MockFixture): +def test_get_creators_pagination( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.CreatorsResponse( creators=[ backend.server.v2.store.model.Creator( @@ -425,6 +480,8 @@ def test_get_creators_pagination(mocker: pytest_mock.MockFixture): assert len(data.creators) == 5 assert data.pagination.current_page == 2 assert data.pagination.page_size == 5 + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "creators_pagination") mock_db_call.assert_called_once_with( featured=False, search_query=None, sorted_by=None, page=2, page_size=5 ) @@ -448,7 +505,10 @@ def test_get_creators_malformed_request(mocker: pytest_mock.MockFixture): mock_db_call.assert_not_called() -def test_get_creator_details(mocker: pytest_mock.MockFixture): +def test_get_creator_details( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.CreatorDetails( name="Test User", username="creator1", @@ -468,17 +528,22 @@ def test_get_creator_details(mocker: pytest_mock.MockFixture): data = backend.server.v2.store.model.CreatorDetails.model_validate(response.json()) assert data.username == "creator1" assert data.name == "Test User" + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "creator_details") mock_db_call.assert_called_once_with(username="creator1") -def test_get_submissions_success(mocker: pytest_mock.MockFixture): +def test_get_submissions_success( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreSubmissionsResponse( submissions=[ backend.server.v2.store.model.StoreSubmission( name="Test Agent", description="Test agent description", image_urls=["test.jpg"], - date_submitted=datetime.datetime.now(), + date_submitted=FIXED_NOW, status=prisma.enums.SubmissionStatus.APPROVED, runs=50, rating=4.2, @@ -507,10 +572,15 @@ def test_get_submissions_success(mocker: pytest_mock.MockFixture): assert len(data.submissions) == 1 assert data.submissions[0].name == "Test Agent" assert data.pagination.current_page == 1 + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "sub_success") mock_db_call.assert_called_once_with(user_id="test-user-id", page=1, page_size=20) -def test_get_submissions_pagination(mocker: pytest_mock.MockFixture): +def test_get_submissions_pagination( + mocker: pytest_mock.MockFixture, + snapshot: Snapshot, +) -> None: mocked_value = backend.server.v2.store.model.StoreSubmissionsResponse( submissions=[], pagination=backend.server.v2.store.model.Pagination( @@ -531,6 +601,8 @@ def test_get_submissions_pagination(mocker: pytest_mock.MockFixture): ) assert data.pagination.current_page == 2 assert data.pagination.page_size == 5 + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(response.json(), indent=2), "sub_pagination") mock_db_call.assert_called_once_with(user_id="test-user-id", page=2, page_size=5) diff --git a/autogpt_platform/backend/backend/server/v2/turnstile/routes_test.py b/autogpt_platform/backend/backend/server/v2/turnstile/routes_test.py new file mode 100644 index 0000000000..5a9260131f --- /dev/null +++ b/autogpt_platform/backend/backend/server/v2/turnstile/routes_test.py @@ -0,0 +1,32 @@ +import fastapi +import fastapi.testclient +import pytest_mock + +import backend.server.v2.turnstile.routes as turnstile_routes + +app = fastapi.FastAPI() +app.include_router(turnstile_routes.router) + +client = fastapi.testclient.TestClient(app) + + +def test_verify_turnstile_token_no_secret_key(mocker: pytest_mock.MockFixture) -> None: + """Test token verification without secret key configured""" + # Mock the settings with no secret key + mock_settings = mocker.patch("backend.server.v2.turnstile.routes.settings") + mock_settings.secrets.turnstile_secret_key = None + + request_data = {"token": "test_token", "action": "login"} + response = client.post("/verify", json=request_data) + + assert response.status_code == 200 + response_data = response.json() + assert response_data["success"] is False + assert response_data["error"] == "CONFIGURATION_ERROR" + + +def test_verify_turnstile_token_invalid_request() -> None: + """Test token verification with invalid request data""" + # Missing token + response = client.post("/verify", json={"action": "login"}) + assert response.status_code == 422 diff --git a/autogpt_platform/backend/docker-compose.test.yaml b/autogpt_platform/backend/docker-compose.test.yaml index b2f6b9fb55..b443538abe 100644 --- a/autogpt_platform/backend/docker-compose.test.yaml +++ b/autogpt_platform/backend/docker-compose.test.yaml @@ -2,16 +2,17 @@ services: postgres-test: image: ankane/pgvector:latest environment: - - POSTGRES_USER=${DB_USER} - - POSTGRES_PASSWORD=${DB_PASS} - - POSTGRES_DB=${DB_NAME} + - POSTGRES_USER=${DB_USER:-postgres} + - POSTGRES_PASSWORD=${DB_PASS:-postgres} + - POSTGRES_DB=${DB_NAME:-postgres} + - POSTGRES_PORT=${DB_PORT:-5432} healthcheck: test: pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB interval: 10s timeout: 5s retries: 5 ports: - - "${DB_PORT}:5432" + - "${DB_PORT:-5432}:5432" networks: - app-network-test redis-test: diff --git a/autogpt_platform/backend/poetry.lock b/autogpt_platform/backend/poetry.lock index becb9e248d..00411f1535 100644 --- a/autogpt_platform/backend/poetry.lock +++ b/autogpt_platform/backend/poetry.lock @@ -31,97 +31,102 @@ files = [ [[package]] name = "aiohttp" -version = "3.11.15" +version = "3.12.6" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "aiohttp-3.11.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:078b1ce274f967951b42a65d5b7ec115b7886343a5271f2eed330458ea87bb48"}, - {file = "aiohttp-3.11.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:48d790d05c76b6cb93a1259b44d3f0019b61d507f8ebf0d49da3ef5ac858b05d"}, - {file = "aiohttp-3.11.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e13767424425bb607931a0b9e703b95d2693650011ef8f0166b4cd80066b66b9"}, - {file = "aiohttp-3.11.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ac49c32901489343b4dab064ab520f6b879a03fb4f9667c84620b66f07bed69"}, - {file = "aiohttp-3.11.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:576b56a34d26ea8a8f0e1a30b8a069ba4ab121fb8eb796d1b89fedda7c74c553"}, - {file = "aiohttp-3.11.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71ed71d9431e770550aab27a77ef9d30d33ce6f558ab7818be7205ae6aca635d"}, - {file = "aiohttp-3.11.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c982b2cbd7b8f4b31e9faf2de09e22b060a6cd0a693f20892dda41a8fb0f46ef"}, - {file = "aiohttp-3.11.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f00e7540a60460fbeaffff4a7dcf72fe8b710f8280a542a4d798273787c64e72"}, - {file = "aiohttp-3.11.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9b97fae7f75a0b666ce4281627856d1b1a85477f26c2e8b266292e770c17df36"}, - {file = "aiohttp-3.11.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a449c48f5b02c0c14f5310881558ca861bff8e00b1f79be4cf6a53f638464c30"}, - {file = "aiohttp-3.11.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8c6e39f0bb2418f839841f92b3cd64077ff5166d724c984ab450ca08d5e51d92"}, - {file = "aiohttp-3.11.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e792131352418dde7b0c598e217e89ecf6a26889f46f35f910e5544ffdebf3ae"}, - {file = "aiohttp-3.11.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:c28cbae1ce76dc48d0fcccb045ac21d00dcc1b306bb745910cf35585ce89404e"}, - {file = "aiohttp-3.11.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d9c8417a24063f35b526f8bf14f6f4bdea6f3f49850457337b6ea928901adbbc"}, - {file = "aiohttp-3.11.15-cp310-cp310-win32.whl", hash = "sha256:a50b86eb9cf74fa5b6f1386e08e1520dcbe83d7dfd4c8bf6f2ca72b03d42e79f"}, - {file = "aiohttp-3.11.15-cp310-cp310-win_amd64.whl", hash = "sha256:a0361cafb50b185356a5f346c169aea1d14783df99e6da714d626b104586e0b5"}, - {file = "aiohttp-3.11.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5bd37d615cd26d09321bd0168305f8508778712cf38aeffeed550274fb48a2ee"}, - {file = "aiohttp-3.11.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d706afcc808f6add4208dfa13f911fd93c2a3dab6be484fee4fd0602a0867e"}, - {file = "aiohttp-3.11.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:43625253e3dc018d34867b70909149f15f29eac0382802afe027f2fbf17bcb9c"}, - {file = "aiohttp-3.11.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:437eee9e057a7907b11e4af2b18df56b6c795b28e0a3ac250691936cf6bf40eb"}, - {file = "aiohttp-3.11.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec3dd04138bd30e6a3403dbd3ab5a5ccfb501597c5a95196cd816936ed55b777"}, - {file = "aiohttp-3.11.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85d73479b79172e7d667b466c170ca6097a334c09ecd83c95c210546031251b5"}, - {file = "aiohttp-3.11.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae3a5d9f2fbe736fec7d24be25c57aa78c2d78d96540439ea68a8abbed9906fc"}, - {file = "aiohttp-3.11.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:269d145c593a65f78fb9a64dece90341561ddb2e91a96d42681132b2f706c42a"}, - {file = "aiohttp-3.11.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0987dcf32e4c47f22634d32e4b0ffbc368bbcf2b33b408cd1a3d2dc0a6a5cd34"}, - {file = "aiohttp-3.11.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:7cf4b2b5a0f7a738ecd759eaeaef800fc7c57683b7be9d8a43fcb86ca62701b4"}, - {file = "aiohttp-3.11.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f1e0369f0dc8c895e718ce37147f56d46142d37596be183ab7a34192c5e6e4c5"}, - {file = "aiohttp-3.11.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:82ddf7f642b9c0b08063f3cf4e2818b22901bce8ebad05c232d9e295e77436a0"}, - {file = "aiohttp-3.11.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c7eba0f90e27ec4af64db051f35387fa17128e6eeb58ee0f2318f2627168cc2"}, - {file = "aiohttp-3.11.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5a61df20fa77792e83307e266f76790f7cb67980dd476948948de212ee7ec64c"}, - {file = "aiohttp-3.11.15-cp311-cp311-win32.whl", hash = "sha256:be11989cbc0728f81c0d022cef140ef8adb20d3012ad8f0ac61853bef571eb52"}, - {file = "aiohttp-3.11.15-cp311-cp311-win_amd64.whl", hash = "sha256:357355c9d51c8b12bbc7de43b27ce4b51f14cce050e00b5a87d0d5527d779395"}, - {file = "aiohttp-3.11.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:433e7388b3063bba462b3362641988270b087a9ccae22390364f86b37a480c17"}, - {file = "aiohttp-3.11.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d99981304065f4ea407dd7495f74f8b8c10f0e26733f8a47dc174ece73744d14"}, - {file = "aiohttp-3.11.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3739daa52c0cff42f1c40f63b2fe818fcf41019d84c80a7add3224207a7060f"}, - {file = "aiohttp-3.11.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fd82d0b3f73c59c80dade0ca8e0342de1ee261e147140ade65a465be670e83c"}, - {file = "aiohttp-3.11.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c930064b79cc0eb63678e376b819d546b0e2360264cd7544c32119496f646f35"}, - {file = "aiohttp-3.11.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291f324f49ecede693dfb4820a412d1388cb10a2214ab60028252b505e105d6f"}, - {file = "aiohttp-3.11.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65eb40e74e3126cba185da7a78815cf3a30140932193831b3bfd73c79965c723"}, - {file = "aiohttp-3.11.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6d6d86443580f846ec9cf60f899b7cace34411f2ff5c95db5970047195e5bfa"}, - {file = "aiohttp-3.11.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8b4d8d78fbd5290204dcf43957a2184acd5cee358f203f24a3a97f7d7984eeb7"}, - {file = "aiohttp-3.11.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:94c552a4864ed292dadf1d341213374284a3af72e49bea02e70ce6f07cb37004"}, - {file = "aiohttp-3.11.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:23857adc919b64bba8a4db0eccb24e53fcaf85633e690ef1581c5562ed58cae7"}, - {file = "aiohttp-3.11.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:eba325409a0f990f9b43ed18916cbf5b9779bc4c979b8887c444e7be9c38ccca"}, - {file = "aiohttp-3.11.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f1b6c639750bf2a228957e25fcab7a7ff11987c543d70bf73223369f0d7bdb27"}, - {file = "aiohttp-3.11.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2241d862dc6a3c0c2662a6934e79078d3a1e51a76c0dca5d65b30f3debee6c9b"}, - {file = "aiohttp-3.11.15-cp312-cp312-win32.whl", hash = "sha256:18733fa6bbe44698ff96138c1f1d682bbdf0846250a42c25c108eed328fef0d4"}, - {file = "aiohttp-3.11.15-cp312-cp312-win_amd64.whl", hash = "sha256:0ec98c22030ea2a430cb11afddda7d4737b7e5c236c704f0d7d15504978598f7"}, - {file = "aiohttp-3.11.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c37aa3eb8eb92f3793f0c1e73f212a76cbc8d363e9990df54b5b7099f75ce740"}, - {file = "aiohttp-3.11.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5b5edd482ff0a8585b3f4e8b3681819447324166a43a5588800a5bca340dbf27"}, - {file = "aiohttp-3.11.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d8c22c91bdb7417bd4f5119242dbd2e2140c0e9de47342c765f127f897eb57"}, - {file = "aiohttp-3.11.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b03093d4140d926965d23497a059ec59c8c07e602d2489ce5fb990f3a897db4"}, - {file = "aiohttp-3.11.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05eea49d598c4ece6f285e00464de206f838b48ff21938d5aa9c394e115945b9"}, - {file = "aiohttp-3.11.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63f8d6106566f98fcfde7a643c9da52d90679b8592dea76c4adfc3cd5d06d22c"}, - {file = "aiohttp-3.11.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36a490f1ebe0b982366314c77f02258f87bd5d9bd362839dc6a24188447f37eb"}, - {file = "aiohttp-3.11.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73a7f6283634dd30f93b9a67c414c00517869478b50361c503535e075fa07eaf"}, - {file = "aiohttp-3.11.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0e97c1e55f6931f07ecaf53aef8352def8386adfd0cd3caa6429cc40e886d6a9"}, - {file = "aiohttp-3.11.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d8370d31e6d8ecccd97cd791c466d0acb56527df51b0c105d7ea54c7fcc0f75b"}, - {file = "aiohttp-3.11.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c2de66177e087999568638c02639cf0248011b5c7fca69b006947153c534fcab"}, - {file = "aiohttp-3.11.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:edcddb97574402ff7481bc6f70819ba863e77b0be58a840ed5f59d52d2f20a71"}, - {file = "aiohttp-3.11.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:29cce2a7e009494e675018c0b1819a133befbab8629c797276c5d793bbdf1138"}, - {file = "aiohttp-3.11.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:825ec92391e3e4ddda74de79ed0f8b443e9b412a0c9c82618ca2163abd875df5"}, - {file = "aiohttp-3.11.15-cp313-cp313-win32.whl", hash = "sha256:430f9707f0c1239a92bff7769b0db185ef400278dc63c89f88ed1bd5153aab7a"}, - {file = "aiohttp-3.11.15-cp313-cp313-win_amd64.whl", hash = "sha256:f30e6980ec5d6ad815a233e19e39fe27ea94b1081c31c8aa1df1b629da3737b8"}, - {file = "aiohttp-3.11.15-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:03ce9d2f01aef26cd6aaba2f330273c2364237db2f499b93c3e9f2e249f83cd2"}, - {file = "aiohttp-3.11.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1bee0f9e2d4088b57243d63afcb06256bd2d9ff683080f51e74fa790c8cfedfd"}, - {file = "aiohttp-3.11.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7e20bd6aa51a5209c9131395e20ce126e8e317c0cf78a8180f026b4d73f018f6"}, - {file = "aiohttp-3.11.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23397670f3739b6f3c4019da8226190f6cce5ab2008b664ed96a6d1f0fe7f069"}, - {file = "aiohttp-3.11.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc270fe480e7e425c45054543f58510fe649f70b77f514171909bbfe585105c0"}, - {file = "aiohttp-3.11.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84370ff70c1677ee0c4db40fe2baee6ffc72e9d32def3ff18739c1390c62329f"}, - {file = "aiohttp-3.11.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:379882ab6a40e6e0879ad8e84dca74ddbadff94af4f314b59b7da89c8463a669"}, - {file = "aiohttp-3.11.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74afb637cd06760afe0aa55a3ce82178ef4c950be65935add8f3809f701f36ca"}, - {file = "aiohttp-3.11.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:558de86eef9a886e43c6ae5b75cecdce81203da5832d19d11da8de417967d478"}, - {file = "aiohttp-3.11.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:41f82df6f0f895f0f843bc86762bea45b4d0fe876de49239ffc89d2365426399"}, - {file = "aiohttp-3.11.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:38368a32530dcdeccfa47544cf66724118d9cc8a889c057e116723ab62994380"}, - {file = "aiohttp-3.11.15-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:204f6695b47a7d130ddf6680158920825d0d32202a870e0bc56a2ec637935b1a"}, - {file = "aiohttp-3.11.15-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4b85486e8914d4e778343f5322834aada678eaf4c5315e50d41d9b74817ff97b"}, - {file = "aiohttp-3.11.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:79a08d675167c50f41d106d67bbcbc9e86e1b43d305c4b9f982d5c656a94a9ba"}, - {file = "aiohttp-3.11.15-cp39-cp39-win32.whl", hash = "sha256:20dda85988a4f506bf5a457b416b238e32ab944a2deb878ddf0af92df9254a9b"}, - {file = "aiohttp-3.11.15-cp39-cp39-win_amd64.whl", hash = "sha256:3cfd9f4aeaec4a75a0b4986a9977ac0a09b3d87ae83415e4b461e86715c80897"}, - {file = "aiohttp-3.11.15.tar.gz", hash = "sha256:b9b9a1e592ac8fcc4584baea240e41f77415e0de98932fdf19565aa3b6a02d0b"}, + {file = "aiohttp-3.12.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:77ba53286c89486e8b02fb47352a5a8270bab1084e2a43fe8e35eb261befda13"}, + {file = "aiohttp-3.12.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:93f207a64989346bbd0a9d3b31ebaa3934ea6e0242b555491af7eb97ad1c0a5a"}, + {file = "aiohttp-3.12.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce6673b73352edb17c2db86a9586dc7744e0b5009709152a1e75379f16af19e0"}, + {file = "aiohttp-3.12.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:128603479bf13479661d763e77e254139f066914227b5f2ff3284d19e416ad75"}, + {file = "aiohttp-3.12.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93a0887cea23f76e9354235b0e79b3c9922ad66529e11637940b6439849105cb"}, + {file = "aiohttp-3.12.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fe1d74ab6cd1f16c3c2f0e3c3230481dcedc0d3ad9f0b82b1e43f44a4980aca"}, + {file = "aiohttp-3.12.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9aecb4ce110c9d321860a00b4f9ec72bef691d045f54c983fa678606f3f918b0"}, + {file = "aiohttp-3.12.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5f698e7b5b57aa4dc646c8f13ccd965c694199595d7a45cecefaf0e5c392890"}, + {file = "aiohttp-3.12.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5c6869319c0a5f4150959e065c40836b18a99e02493c3b4c73b25378aa0f0cc"}, + {file = "aiohttp-3.12.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71905d34b3bb1a6be44e986f08404987bb317d890746e71f320cd10cf3222b46"}, + {file = "aiohttp-3.12.6-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d590b36c3497ecfba4aca71ab9342fb2c07e1b69baf4e28ad4227440c128bb22"}, + {file = "aiohttp-3.12.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a90b6f2d5ca4d3ad56034863237b59b4a5fab270eb6d11b5c0326b4501448b51"}, + {file = "aiohttp-3.12.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:7f22a0d9a995c12bb20247334b414edaf65ce8f22a1e838b90210238f9b57571"}, + {file = "aiohttp-3.12.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:30511c5e66ac4399d46b4bec57a3d56bc16cfb649255fa798ee95d8b45f97a4b"}, + {file = "aiohttp-3.12.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c05776d1854ae9d8132d7ced7ac0067f602d66589797788ed3902d5c68686db5"}, + {file = "aiohttp-3.12.6-cp310-cp310-win32.whl", hash = "sha256:8885da8ae99bbe6ce43b79e284ef8e6bc5285dea297fe2a163552f09435c8069"}, + {file = "aiohttp-3.12.6-cp310-cp310-win_amd64.whl", hash = "sha256:a1532ea3f41a818d4f50db96306a1975bf31f29787802bec4c63c58f61b6e682"}, + {file = "aiohttp-3.12.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed4db015494a6d0acaadce035531f9fb321afab2075a4b348811e4f7795e87e6"}, + {file = "aiohttp-3.12.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:59e19517abef2af49cff79b8a863497036ff401051c79d6a3b6149a48213a7be"}, + {file = "aiohttp-3.12.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d557918fefb29884335e1a257df6c961f35ba1caf8eddaabad762b3436cf87ff"}, + {file = "aiohttp-3.12.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e4fb0d7f221c36ed8469c1d2d9a2bb6a27b543cf90aa46ca701f63fb83dd7ed"}, + {file = "aiohttp-3.12.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:deddf6b1c83ce518a156b7597a0d7a1a7ec5c1d2c973ba3f1a23f18fa2b7d65e"}, + {file = "aiohttp-3.12.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eefd98dd043c33c45123c56a79c6c39acb628304337c90f16f33569cc3aa4ba6"}, + {file = "aiohttp-3.12.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efbbde2297e4ab10d187103aba9b565277c85ac7d24d98cae201c033ce885504"}, + {file = "aiohttp-3.12.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a74a566872f41247774980334e5b0309dac11b402e188bde6db8a57de4506cd"}, + {file = "aiohttp-3.12.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24d19cbd1d21d207ee855500d2033f1852b4d2113a741246ff62eb16a3921306"}, + {file = "aiohttp-3.12.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:86fb0a5762f936606dcab1ca248f5053587a598ed44825f4744ce3c53ae9a2e9"}, + {file = "aiohttp-3.12.6-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:d7ff55a38fc9851fa5cff41b30605534dfe4d57d02f79447abfed01499fe31d3"}, + {file = "aiohttp-3.12.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:545f89c389a47bac024655b5676658f35f80b0d007e4c3c7ff865d9aa3bf343a"}, + {file = "aiohttp-3.12.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:25dac87ee297e2b5826ce8e96c7615ebe7a1613856b1614a207e3376b776021b"}, + {file = "aiohttp-3.12.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c1d8a4a5a7e28d8b9ec815ffecca8712b71130a4eee1c5b45e9f2cc4975f3f7c"}, + {file = "aiohttp-3.12.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc4be1d8d68a62859f74f9ada9e174791895366601ce66342f54478d3518c8b3"}, + {file = "aiohttp-3.12.6-cp311-cp311-win32.whl", hash = "sha256:a057680218430231eb6ab644d166b7ef398b3ffbac0232f4f789cdce9391400e"}, + {file = "aiohttp-3.12.6-cp311-cp311-win_amd64.whl", hash = "sha256:8a88046a5adddf5d99f15a1920f6b8f659f46a4cfb5bfabbd668d06df045df7a"}, + {file = "aiohttp-3.12.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cfbf8ed94b57e3b5a886bfe2a530c8eb067064cc4419fd94431a2cbeeddec54c"}, + {file = "aiohttp-3.12.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:012ea107092d4465aeeb681d5b2fb8b51a847a72f0b71906f40876419fba1355"}, + {file = "aiohttp-3.12.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cdb03da5ecf74a331511604f3cf91563bf29127eabb28f4e16d390a73cb826da"}, + {file = "aiohttp-3.12.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ca81cb1e41d251cc193164409c0bbb0175e696a9997491a10db9171a2f70603"}, + {file = "aiohttp-3.12.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:15817882d25e840aba85d1f5706a7128350b81050f8ca9dabfc25a5f521a792c"}, + {file = "aiohttp-3.12.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db5c402ea0aed10af2e54e5946bf32f3ebb02a7604eaaa4c41a608053889de4a"}, + {file = "aiohttp-3.12.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ea77675818fd8cac28491d0d59582e5e2e5b14dbf5e21bef797aa5b23b5ca8b"}, + {file = "aiohttp-3.12.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c232720190ca4240c15abefc7b765e987ef88df44d2384612890db87b33898f3"}, + {file = "aiohttp-3.12.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a2f3c974874bd0c76dfdcc60db5a6f96ca023a85318a5ac401603baa7e299272"}, + {file = "aiohttp-3.12.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:25de52753386b0c16d5acd2153e7819f52c9e7fc05f5eca804adc174e99b735d"}, + {file = "aiohttp-3.12.6-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3cc06a99e065ed7e766d2cd574671428261c1b8f30fedfbd91ab3c738fd9c08d"}, + {file = "aiohttp-3.12.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:aac87d78f55057ab48ddcc43055620546d40bbc0888d2658d8705d183c98f901"}, + {file = "aiohttp-3.12.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:de83f567e31418fd7bc22c5a03526a2b0a82e68c7a7fec23ef91a398228f559b"}, + {file = "aiohttp-3.12.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fd1d6116c1364ab00ffed1654a01091dc7f897d315c5103bcc6e5ab7f70172c7"}, + {file = "aiohttp-3.12.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:58f79b376a426961418df1d08656ec3a01494b7ba81824ae629e6636deddfff7"}, + {file = "aiohttp-3.12.6-cp312-cp312-win32.whl", hash = "sha256:561f545dc062e6c31fc53535d8584c06516bda2fc37821a67a61b69202061e71"}, + {file = "aiohttp-3.12.6-cp312-cp312-win_amd64.whl", hash = "sha256:d83ab494eb583ba691af9d4d7c073987526bb9f73aa5a19907258ef3a1e39e8a"}, + {file = "aiohttp-3.12.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7487f707a4b8167394f6afefa690198300d8a618505583eb536b92202bdec24d"}, + {file = "aiohttp-3.12.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd9211229fa2f474da01d42fafff196f607a63aaf12d8b34928c43a713eb6d5"}, + {file = "aiohttp-3.12.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3331ef09dd775302aa5f4d3170bd46659ad018843fab3656f5e72e3ff68df21f"}, + {file = "aiohttp-3.12.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c88ed8c54f7fd6102ef711d24710454707cde4bb3ffdec09982dcb3cb966a3e1"}, + {file = "aiohttp-3.12.6-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:148ffa6b2b825ff8520844ce23df9e2a5b969bb6917c4e35a832fbaa025d260d"}, + {file = "aiohttp-3.12.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8da054804352e974f4349fb871b07c8ffa1978e64cfb455e88fbe6fbe4d6dcb"}, + {file = "aiohttp-3.12.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d162c4f87f9dcdc7151f6329438de96beb527820381e3159ce08544c57e9ced"}, + {file = "aiohttp-3.12.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da073f88270aa434ef16a78c21a4269c96c68badc2b9ad5011fa175c06143eee"}, + {file = "aiohttp-3.12.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2e026a9f9ac0df70f14ca5dcaf1f83a55b678e51aa6515d710dd879d2691fd7"}, + {file = "aiohttp-3.12.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b700cf48fd04b4328965d1afe01f835fe6cdecc3b85ca2d950431e5cc0647f7"}, + {file = "aiohttp-3.12.6-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:38af291559401d13eb90259ba79ef6ac537ae6b5bdb1251604606a88cd0fd5e0"}, + {file = "aiohttp-3.12.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6860351cfba0196db2edc387cfeddaf1dae443e55f261ea2bcb77fecb33aae34"}, + {file = "aiohttp-3.12.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:06f20adcdc4f383aeb7ce884705faea44c0376cde5cdee4d32ef62d6cb1f97cc"}, + {file = "aiohttp-3.12.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a52aa39eb1160775a6e80e3025c990e8872c8927c5dd4b51304788bc149b9549"}, + {file = "aiohttp-3.12.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:52ce7e90ee9dd25bcd2ed4513e650cc4f9a03bef07a39193b82fb58892004bd6"}, + {file = "aiohttp-3.12.6-cp313-cp313-win32.whl", hash = "sha256:259269870d9783de87c0430760b2498b770201ead3e11ee86761d268ce5d196a"}, + {file = "aiohttp-3.12.6-cp313-cp313-win_amd64.whl", hash = "sha256:938afd243c9ee76a6d78fad10ecca14b88b48b71553e0e9c74b8098efff5ddf8"}, + {file = "aiohttp-3.12.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3a0fd1f91535f64ac726a9203a2ca12e19ab7232a8e3ed070d4a952f64a7f3b8"}, + {file = "aiohttp-3.12.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ad8c000bf876f09bebdbb6122d0b83ed2047d808144dcda844b973f91a62239b"}, + {file = "aiohttp-3.12.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d10dbce6ad5fd5a635021e44696f98e6f535675c515f3ec5143a1d6b94e97c75"}, + {file = "aiohttp-3.12.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0673bdc2914fed2651837e9ce45639cf09d342850274fa0d955d15f148082ab5"}, + {file = "aiohttp-3.12.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7e839f36ff048eef10034d25a4b699e0b363b16d3951c8ef2f1b3cea9e2bf859"}, + {file = "aiohttp-3.12.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9220418982f90e5b293e36fe356f4df6953da8539b54b9ae5a9a17e8f227463c"}, + {file = "aiohttp-3.12.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:faf7c0224423106c5e0a4897c668c6cef2ca9b588295993d83d8c3e69772c7f0"}, + {file = "aiohttp-3.12.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61ed8371a645b89008910b3c7ce286ec5f19b4d67adaa15ed21e4a8fe1adedca"}, + {file = "aiohttp-3.12.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b0dee7a763ce483c459fc2d963350d10e692e863dac985357e2eb7e7e74985f"}, + {file = "aiohttp-3.12.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e1d66b091e707a1e296ccd00903bed4f270579c5b8000a9e5861ae9a33dc250d"}, + {file = "aiohttp-3.12.6-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:41c73154bba1c8fe80ef329fee5602bc6a1992740735637f1f05112b15e1cd97"}, + {file = "aiohttp-3.12.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7d34f87dd26a686097675fdc43c3b60174b8d6f0ae383d128648fb30535097e5"}, + {file = "aiohttp-3.12.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ef1e34409fe412825cde39be93efbe1f52d9e5c00a21abe95969c5e595595ebd"}, + {file = "aiohttp-3.12.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:29eb0a7d64eb2cf17c436cdf0b9d1b17931551a5c089fa2c63410848a9cd029d"}, + {file = "aiohttp-3.12.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2cd7c7018cee1638fc64cbdceb47c870985ce5650161c7e3c5b578850f74b113"}, + {file = "aiohttp-3.12.6-cp39-cp39-win32.whl", hash = "sha256:79ab680ff7dd0b6c36073738b5f6336e2f018fc07ef0486dd7dd68b2e888ce46"}, + {file = "aiohttp-3.12.6-cp39-cp39-win_amd64.whl", hash = "sha256:a68cb45d2b01f1599e762d382ddac7c6bd62c95210db339827e973a7ba61673c"}, + {file = "aiohttp-3.12.6.tar.gz", hash = "sha256:37b1c6034a1e14764adad1829cd710543b1699d7985e1d336f0aa52a2dd76ba9"}, ] [package.dependencies] -aiohappyeyeballs = ">=2.3.0" +aiohappyeyeballs = ">=2.5.0" aiosignal = ">=1.1.2" async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" @@ -131,7 +136,7 @@ propcache = ">=0.2.0" yarl = ">=1.17.0,<2.0" [package.extras] -speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""] +speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.3.0)", "brotlicffi ; platform_python_implementation != \"CPython\""] [[package]] name = "aiormq" @@ -203,14 +208,14 @@ vertex = ["google-auth[requests] (>=2,<3)"] [[package]] name = "anyio" -version = "4.8.0" +version = "4.9.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, - {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, + {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, + {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, ] [package.dependencies] @@ -220,8 +225,8 @@ sniffio = ">=1.1" typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] -doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] +doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] trio = ["trio (>=0.26.1)"] [[package]] @@ -267,21 +272,21 @@ files = [ [[package]] name = "attrs" -version = "24.3.0" +version = "25.3.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, - {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, + {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, + {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] @@ -433,14 +438,14 @@ virtualenv = ["virtualenv (>=20.0.35)"] [[package]] name = "cachecontrol" -version = "0.14.2" +version = "0.14.3" description = "httplib2 caching for requests" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "cachecontrol-0.14.2-py3-none-any.whl", hash = "sha256:ebad2091bf12d0d200dfc2464330db638c5deb41d546f6d7aca079e87290f3b0"}, - {file = "cachecontrol-0.14.2.tar.gz", hash = "sha256:7d47d19f866409b98ff6025b6a0fca8e4c791fb31abbd95f622093894ce903a2"}, + {file = "cachecontrol-0.14.3-py3-none-any.whl", hash = "sha256:b35e44a3113f17d2a31c1e6b27b9de6d4405f84ae51baa8c1d3cc5b633010cae"}, + {file = "cachecontrol-0.14.3.tar.gz", hash = "sha256:73e7efec4b06b20d9267b441c1f733664f989fb8688391b670ca812d70795d11"}, ] [package.dependencies] @@ -455,26 +460,26 @@ redis = ["redis (>=2.10.5)"] [[package]] name = "cachetools" -version = "5.5.1" +version = "5.5.2" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "cachetools-5.5.1-py3-none-any.whl", hash = "sha256:b76651fdc3b24ead3c648bbdeeb940c1b04d365b38b4af66788f9ec4a81d42bb"}, - {file = "cachetools-5.5.1.tar.gz", hash = "sha256:70f238fbba50383ef62e55c6aff6d9673175fe59f7c6782c7a0b9e38f4a9df95"}, + {file = "cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a"}, + {file = "cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4"}, ] [[package]] name = "certifi" -version = "2024.12.14" +version = "2025.4.26" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" groups = ["main", "dev"] files = [ - {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, - {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, + {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, + {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, ] [[package]] @@ -559,104 +564,104 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "3.4.1" +version = "3.4.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" groups = ["main", "dev"] files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, + {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, + {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, ] [[package]] @@ -677,14 +682,14 @@ rapidfuzz = ">=3.0.0,<4.0.0" [[package]] name = "click" -version = "8.2.0" +version = "8.2.1" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.10" groups = ["main", "dev"] files = [ - {file = "click-8.2.0-py3-none-any.whl", hash = "sha256:6b303f0b2aa85f1cb4e5303078fadcbcd4e476f114fab9b5007005711839325c"}, - {file = "click-8.2.0.tar.gz", hash = "sha256:f5452aeddd9988eefa20f90f05ab66f17fce1ee2a36907fd30b05bbb5953814d"}, + {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"}, + {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"}, ] [package.dependencies] @@ -767,14 +772,14 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "decorator" -version = "5.1.1" +version = "5.2.1" description = "Decorators for Humans" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, + {file = "decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a"}, + {file = "decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360"}, ] [[package]] @@ -791,21 +796,21 @@ files = [ [[package]] name = "deprecated" -version = "1.2.16" +version = "1.2.18" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" groups = ["main"] files = [ - {file = "Deprecated-1.2.16-py2.py3-none-any.whl", hash = "sha256:4c8e429ada6573698ba723f9c4ea53006e990042a45db938e412f1f9d4b9ffd9"}, - {file = "deprecated-1.2.16.tar.gz", hash = "sha256:6ec624c168290715d56c6af7c1c1066ea5c732bd56427b1651db75ede923aa38"}, + {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, + {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, ] [package.dependencies] wrapt = ">=1.10,<2" [package.extras] -dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "jinja2 (>=3.0.3,<3.1.0)", "setuptools ; python_version >= \"3.12\"", "sphinx (<2)", "tox"] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools ; python_version >= \"3.12\"", "tox"] [[package]] name = "deprecation" @@ -958,14 +963,14 @@ pgp = ["gpg"] [[package]] name = "e2b" -version = "1.4.0" +version = "1.5.0" description = "E2B SDK that give agents cloud environments" optional = false python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "e2b-1.4.0-py3-none-any.whl", hash = "sha256:a489015ece78ecabfdc281463ed495b6e4adf8c66278bb7312069d8ded21ab52"}, - {file = "e2b-1.4.0.tar.gz", hash = "sha256:6a4596d4f91df32340bdbfac429591980a8dedd7ac509aae73f1bbc128175245"}, + {file = "e2b-1.5.0-py3-none-any.whl", hash = "sha256:875a843d1d314a9945e24bfb78c9b1b5cac7e2ecb1e799664d827a26a0b2276a"}, + {file = "e2b-1.5.0.tar.gz", hash = "sha256:905730eea5c07f271d073d4b5d2a9ef44c8ac04b9b146a99fa0235db77bf6854"}, ] [package.dependencies] @@ -1012,17 +1017,20 @@ idna = ">=2.0.0" [[package]] name = "exceptiongroup" -version = "1.2.2" +version = "1.3.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["main", "dev"] files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, ] markers = {dev = "python_version < \"3.11\""} +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + [package.extras] test = ["pytest (>=6)"] @@ -1159,149 +1167,161 @@ pyflakes = ">=3.3.0,<3.4.0" [[package]] name = "frozenlist" -version = "1.5.0" +version = "1.6.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, - {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, - {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, - {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, - {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, - {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, - {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, - {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, - {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, - {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, - {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, - {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, - {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, - {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, - {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, - {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, - {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, - {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, - {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, - {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, - {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, - {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, - {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, - {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, - {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, - {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, - {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e6e558ea1e47fd6fa8ac9ccdad403e5dd5ecc6ed8dda94343056fa4277d5c65e"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4b3cd7334a4bbc0c472164f3744562cb72d05002cc6fcf58adb104630bbc352"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9799257237d0479736e2b4c01ff26b5c7f7694ac9692a426cb717f3dc02fff9b"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a7bb0fe1f7a70fb5c6f497dc32619db7d2cdd53164af30ade2f34673f8b1fc"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:36d2fc099229f1e4237f563b2a3e0ff7ccebc3999f729067ce4e64a97a7f2869"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f27a9f9a86dcf00708be82359db8de86b80d029814e6693259befe82bb58a106"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75ecee69073312951244f11b8627e3700ec2bfe07ed24e3a685a5979f0412d24"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2c7d5aa19714b1b01a0f515d078a629e445e667b9da869a3cd0e6fe7dec78bd"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69bbd454f0fb23b51cadc9bdba616c9678e4114b6f9fa372d462ff2ed9323ec8"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7daa508e75613809c7a57136dec4871a21bca3080b3a8fc347c50b187df4f00c"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:89ffdb799154fd4d7b85c56d5fa9d9ad48946619e0eb95755723fffa11022d75"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:920b6bd77d209931e4c263223381d63f76828bec574440f29eb497cf3394c249"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d3ceb265249fb401702fce3792e6b44c1166b9319737d21495d3611028d95769"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:52021b528f1571f98a7d4258c58aa8d4b1a96d4f01d00d51f1089f2e0323cb02"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0f2ca7810b809ed0f1917293050163c7654cefc57a49f337d5cd9de717b8fad3"}, + {file = "frozenlist-1.6.0-cp310-cp310-win32.whl", hash = "sha256:0e6f8653acb82e15e5443dba415fb62a8732b68fe09936bb6d388c725b57f812"}, + {file = "frozenlist-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f1a39819a5a3e84304cd286e3dc62a549fe60985415851b3337b6f5cc91907f1"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae8337990e7a45683548ffb2fee1af2f1ed08169284cd829cdd9a7fa7470530d"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c952f69dd524558694818a461855f35d36cc7f5c0adddce37e962c85d06eac0"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f5fef13136c4e2dee91bfb9a44e236fff78fc2cd9f838eddfc470c3d7d90afe"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:716bbba09611b4663ecbb7cd022f640759af8259e12a6ca939c0a6acd49eedba"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7b8c4dc422c1a3ffc550b465090e53b0bf4839047f3e436a34172ac67c45d595"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b11534872256e1666116f6587a1592ef395a98b54476addb5e8d352925cb5d4a"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c6eceb88aaf7221f75be6ab498dc622a151f5f88d536661af3ffc486245a626"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62c828a5b195570eb4b37369fcbbd58e96c905768d53a44d13044355647838ff"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c6bd2c6399920c9622362ce95a7d74e7f9af9bfec05fff91b8ce4b9647845a"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49ba23817781e22fcbd45fd9ff2b9b8cdb7b16a42a4851ab8025cae7b22e96d0"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:431ef6937ae0f853143e2ca67d6da76c083e8b1fe3df0e96f3802fd37626e606"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9d124b38b3c299ca68433597ee26b7819209cb8a3a9ea761dfe9db3a04bba584"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:118e97556306402e2b010da1ef21ea70cb6d6122e580da64c056b96f524fbd6a"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fb3b309f1d4086b5533cf7bbcf3f956f0ae6469664522f1bde4feed26fba60f1"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54dece0d21dce4fdb188a1ffc555926adf1d1c516e493c2914d7c370e454bc9e"}, + {file = "frozenlist-1.6.0-cp311-cp311-win32.whl", hash = "sha256:654e4ba1d0b2154ca2f096bed27461cf6160bc7f504a7f9a9ef447c293caf860"}, + {file = "frozenlist-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e911391bffdb806001002c1f860787542f45916c3baf764264a52765d5a5603"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c5b9e42ace7d95bf41e19b87cec8f262c41d3510d8ad7514ab3862ea2197bfb1"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ca9973735ce9f770d24d5484dcb42f68f135351c2fc81a7a9369e48cf2998a29"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ac40ec76041c67b928ca8aaffba15c2b2ee3f5ae8d0cb0617b5e63ec119ca25"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b7a8a3180dfb280eb044fdec562f9b461614c0ef21669aea6f1d3dac6ee576"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c444d824e22da6c9291886d80c7d00c444981a72686e2b59d38b285617cb52c8"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb52c8166499a8150bfd38478248572c924c003cbb45fe3bcd348e5ac7c000f9"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b35298b2db9c2468106278537ee529719228950a5fdda686582f68f247d1dc6e"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d108e2d070034f9d57210f22fefd22ea0d04609fc97c5f7f5a686b3471028590"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e1be9111cb6756868ac242b3c2bd1f09d9aea09846e4f5c23715e7afb647103"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:94bb451c664415f02f07eef4ece976a2c65dcbab9c2f1705b7031a3a75349d8c"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d1a686d0b0949182b8faddea596f3fc11f44768d1f74d4cad70213b2e139d821"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ea8e59105d802c5a38bdbe7362822c522230b3faba2aa35c0fa1765239b7dd70"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:abc4e880a9b920bc5020bf6a431a6bb40589d9bca3975c980495f63632e8382f"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a79713adfe28830f27a3c62f6b5406c37376c892b05ae070906f07ae4487046"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a0318c2068e217a8f5e3b85e35899f5a19e97141a45bb925bb357cfe1daf770"}, + {file = "frozenlist-1.6.0-cp312-cp312-win32.whl", hash = "sha256:853ac025092a24bb3bf09ae87f9127de9fe6e0c345614ac92536577cf956dfcc"}, + {file = "frozenlist-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bdfe2d7e6c9281c6e55523acd6c2bf77963cb422fdc7d142fb0cb6621b66878"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1d7fb014fe0fbfee3efd6a94fc635aeaa68e5e1720fe9e57357f2e2c6e1a647e"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01bcaa305a0fdad12745502bfd16a1c75b14558dabae226852f9159364573117"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b314faa3051a6d45da196a2c495e922f987dc848e967d8cfeaee8a0328b1cd4"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da62fecac21a3ee10463d153549d8db87549a5e77eefb8c91ac84bb42bb1e4e3"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1eb89bf3454e2132e046f9599fbcf0a4483ed43b40f545551a39316d0201cd1"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18689b40cb3936acd971f663ccb8e2589c45db5e2c5f07e0ec6207664029a9c"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e67ddb0749ed066b1a03fba812e2dcae791dd50e5da03be50b6a14d0c1a9ee45"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc5e64626e6682638d6e44398c9baf1d6ce6bc236d40b4b57255c9d3f9761f1f"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:437cfd39564744ae32ad5929e55b18ebd88817f9180e4cc05e7d53b75f79ce85"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62dd7df78e74d924952e2feb7357d826af8d2f307557a779d14ddf94d7311be8"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a66781d7e4cddcbbcfd64de3d41a61d6bdde370fc2e38623f30b2bd539e84a9f"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:482fe06e9a3fffbcd41950f9d890034b4a54395c60b5e61fae875d37a699813f"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e4f9373c500dfc02feea39f7a56e4f543e670212102cc2eeb51d3a99c7ffbde6"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e69bb81de06827147b7bfbaeb284d85219fa92d9f097e32cc73675f279d70188"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7613d9977d2ab4a9141dde4a149f4357e4065949674c5649f920fec86ecb393e"}, + {file = "frozenlist-1.6.0-cp313-cp313-win32.whl", hash = "sha256:4def87ef6d90429f777c9d9de3961679abf938cb6b7b63d4a7eb8a268babfce4"}, + {file = "frozenlist-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:37a8a52c3dfff01515e9bbbee0e6063181362f9de3db2ccf9bc96189b557cbfd"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:46138f5a0773d064ff663d273b309b696293d7a7c00a0994c5c13a5078134b64"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f88bc0a2b9c2a835cb888b32246c27cdab5740059fb3688852bf91e915399b91"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:777704c1d7655b802c7850255639672e90e81ad6fa42b99ce5ed3fbf45e338dd"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ef8d41764c7de0dcdaf64f733a27352248493a85a80661f3c678acd27e31f2"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:da5cb36623f2b846fb25009d9d9215322318ff1c63403075f812b3b2876c8506"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbb56587a16cf0fb8acd19e90ff9924979ac1431baea8681712716a8337577b0"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6154c3ba59cda3f954c6333025369e42c3acd0c6e8b6ce31eb5c5b8116c07e0"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e8246877afa3f1ae5c979fe85f567d220f86a50dc6c493b9b7d8191181ae01e"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0f6cce16306d2e117cf9db71ab3a9e8878a28176aeaf0dbe35248d97b28d0c"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1b8e8cd8032ba266f91136d7105706ad57770f3522eac4a111d77ac126a25a9b"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e2ada1d8515d3ea5378c018a5f6d14b4994d4036591a52ceaf1a1549dec8e1ad"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:cdb2c7f071e4026c19a3e32b93a09e59b12000751fc9b0b7758da899e657d215"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:03572933a1969a6d6ab509d509e5af82ef80d4a5d4e1e9f2e1cdd22c77a3f4d2"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:77effc978947548b676c54bbd6a08992759ea6f410d4987d69feea9cd0919911"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a2bda8be77660ad4089caf2223fdbd6db1858462c4b85b67fbfa22102021e497"}, + {file = "frozenlist-1.6.0-cp313-cp313t-win32.whl", hash = "sha256:a4d96dc5bcdbd834ec6b0f91027817214216b5b30316494d2b1aebffb87c534f"}, + {file = "frozenlist-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:e18036cb4caa17ea151fd5f3d70be9d354c99eb8cf817a3ccde8a7873b074348"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:536a1236065c29980c15c7229fbb830dedf809708c10e159b8136534233545f0"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ed5e3a4462ff25ca84fb09e0fada8ea267df98a450340ead4c91b44857267d70"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e19c0fc9f4f030fcae43b4cdec9e8ab83ffe30ec10c79a4a43a04d1af6c5e1ad"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c608f833897501dac548585312d73a7dca028bf3b8688f0d712b7acfaf7fb3"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0dbae96c225d584f834b8d3cc688825911960f003a85cb0fd20b6e5512468c42"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:625170a91dd7261a1d1c2a0c1a353c9e55d21cd67d0852185a5fef86587e6f5f"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1db8b2fc7ee8a940b547a14c10e56560ad3ea6499dc6875c354e2335812f739d"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4da6fc43048b648275a220e3a61c33b7fff65d11bdd6dcb9d9c145ff708b804c"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef8e7e8f2f3820c5f175d70fdd199b79e417acf6c72c5d0aa8f63c9f721646f"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aa733d123cc78245e9bb15f29b44ed9e5780dc6867cfc4e544717b91f980af3b"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:ba7f8d97152b61f22d7f59491a781ba9b177dd9f318486c5fbc52cde2db12189"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:56a0b8dd6d0d3d971c91f1df75e824986667ccce91e20dca2023683814344791"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5c9e89bf19ca148efcc9e3c44fd4c09d5af85c8a7dd3dbd0da1cb83425ef4983"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1330f0a4376587face7637dfd245380a57fe21ae8f9d360c1c2ef8746c4195fa"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2187248203b59625566cac53572ec8c2647a140ee2738b4e36772930377a533c"}, + {file = "frozenlist-1.6.0-cp39-cp39-win32.whl", hash = "sha256:2b8cf4cfea847d6c12af06091561a89740f1f67f331c3fa8623391905e878530"}, + {file = "frozenlist-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:1255d5d64328c5a0d066ecb0f02034d086537925f1f04b50b1ae60d37afbf572"}, + {file = "frozenlist-1.6.0-py3-none-any.whl", hash = "sha256:535eec9987adb04701266b92745d6cdcef2e77669299359c3009c3404dd5d191"}, + {file = "frozenlist-1.6.0.tar.gz", hash = "sha256:b99655c32c1c8e06d111e7f41c06c29a5318cb1835df23a45518e02a47c63b68"}, ] [[package]] name = "google-api-core" -version = "2.24.0" +version = "2.25.0" description = "Google API client core library" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "google_api_core-2.24.0-py3-none-any.whl", hash = "sha256:10d82ac0fca69c82a25b3efdeefccf6f28e02ebb97925a8cce8edbfe379929d9"}, - {file = "google_api_core-2.24.0.tar.gz", hash = "sha256:e255640547a597a4da010876d333208ddac417d60add22b6851a0c66a831fcaf"}, + {file = "google_api_core-2.25.0-py3-none-any.whl", hash = "sha256:1db79d1281dcf9f3d10023283299ba38f3dc9f639ec41085968fd23e5bcf512e"}, + {file = "google_api_core-2.25.0.tar.gz", hash = "sha256:9b548e688702f82a34ed8409fb8a6961166f0b7795032f0be8f48308dff4333a"}, ] [package.dependencies] -google-auth = ">=2.14.1,<3.0.dev0" -googleapis-common-protos = ">=1.56.2,<2.0.dev0" +google-auth = ">=2.14.1,<3.0.0" +googleapis-common-protos = ">=1.56.2,<2.0.0" grpcio = [ - {version = ">=1.49.1,<2.0dev", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, - {version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""}, + {version = ">=1.49.1,<2.0.0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, + {version = ">=1.33.2,<2.0.0", optional = true, markers = "extra == \"grpc\""}, ] grpcio-status = [ - {version = ">=1.49.1,<2.0.dev0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, - {version = ">=1.33.2,<2.0.dev0", optional = true, markers = "extra == \"grpc\""}, + {version = ">=1.49.1,<2.0.0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, + {version = ">=1.33.2,<2.0.0", optional = true, markers = "extra == \"grpc\""}, ] -proto-plus = ">=1.22.3,<2.0.0dev" -protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" -requests = ">=2.18.0,<3.0.0.dev0" +proto-plus = ">=1.22.3,<2.0.0" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" +requests = ">=2.18.0,<3.0.0" [package.extras] -async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.dev0)"] -grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev) ; python_version >= \"3.11\"", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0) ; python_version >= \"3.11\""] -grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] -grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] +async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.0)"] +grpc = ["grpcio (>=1.33.2,<2.0.0)", "grpcio (>=1.49.1,<2.0.0) ; python_version >= \"3.11\"", "grpcio-status (>=1.33.2,<2.0.0)", "grpcio-status (>=1.49.1,<2.0.0) ; python_version >= \"3.11\""] +grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"] +grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"] [[package]] name = "google-api-python-client" -version = "2.169.0" +version = "2.170.0" description = "Google API Client Library for Python" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "google_api_python_client-2.169.0-py3-none-any.whl", hash = "sha256:dae3e882dc0e6f28e60cf09c1f13fedfd881db84f824dd418aa9e44def2fe00d"}, - {file = "google_api_python_client-2.169.0.tar.gz", hash = "sha256:0585bb97bd5f5bf3ed8d4bf624593e4c5a14d06c811d1952b07a1f94b4d12c51"}, + {file = "google_api_python_client-2.170.0-py3-none-any.whl", hash = "sha256:7bf518a0527ad23322f070fa69f4f24053170d5c766821dc970ff0571ec22748"}, + {file = "google_api_python_client-2.170.0.tar.gz", hash = "sha256:75f3a1856f11418ea3723214e0abc59d9b217fd7ed43dcf743aab7f06ab9e2b1"}, ] [package.dependencies] @@ -1313,14 +1333,14 @@ uritemplate = ">=3.0.1,<5" [[package]] name = "google-auth" -version = "2.38.0" +version = "2.40.2" description = "Google Authentication Library" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "google_auth-2.38.0-py2.py3-none-any.whl", hash = "sha256:e7dae6694313f434a2727bf2906f27ad259bae090d7aa896590d86feec3d9d4a"}, - {file = "google_auth-2.38.0.tar.gz", hash = "sha256:8285113607d3b80a3f1543b75962447ba8a09fe85783432a784fdeef6ac094c4"}, + {file = "google_auth-2.40.2-py2.py3-none-any.whl", hash = "sha256:f7e568d42eedfded58734f6a60c58321896a621f7c116c411550a4b4a13da90b"}, + {file = "google_auth-2.40.2.tar.gz", hash = "sha256:a33cde547a2134273226fa4b853883559947ebe9207521f7afc707efbf690f58"}, ] [package.dependencies] @@ -1329,12 +1349,14 @@ pyasn1-modules = ">=0.2.1" rsa = ">=3.1.4,<5" [package.extras] -aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"] +aiohttp = ["aiohttp (>=3.6.2,<4.0.0)", "requests (>=2.20.0,<3.0.0)"] enterprise-cert = ["cryptography", "pyopenssl"] -pyjwt = ["cryptography (>=38.0.3)", "pyjwt (>=2.0)"] -pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] +pyjwt = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"] +pyopenssl = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] reauth = ["pyu2f (>=0.1.5)"] -requests = ["requests (>=2.20.0,<3.0.0.dev0)"] +requests = ["requests (>=2.20.0,<3.0.0)"] +testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "flask", "freezegun", "grpcio", "mock", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"] +urllib3 = ["packaging", "urllib3"] [[package]] name = "google-auth-httplib2" @@ -1373,21 +1395,21 @@ tool = ["click (>=6.0.0)"] [[package]] name = "google-cloud-appengine-logging" -version = "1.5.0" +version = "1.6.1" description = "Google Cloud Appengine Logging API client library" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "google_cloud_appengine_logging-1.5.0-py2.py3-none-any.whl", hash = "sha256:81e36606e13c377c4898c918542888abb7a6896837ac5f559011c7729fc63d8a"}, - {file = "google_cloud_appengine_logging-1.5.0.tar.gz", hash = "sha256:39a2df694d97981ed00ef5df541f7cfcca920a92496707557f2b07bb7ba9d67a"}, + {file = "google_cloud_appengine_logging-1.6.1-py3-none-any.whl", hash = "sha256:48f4dcf43000899c7b411bc27181f70240e81a958a44e44ce800ba8e5d5184ac"}, + {file = "google_cloud_appengine_logging-1.6.1.tar.gz", hash = "sha256:f97bde36c7f7ff541123c2570813158bdda0c3f2385c8d32fdf1211c561ae56d"}, ] [package.dependencies] -google-api-core = {version = ">=1.34.1,<2.0.dev0 || >=2.11.dev0,<3.0.0dev", extras = ["grpc"]} -google-auth = ">=2.14.1,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0dev" -proto-plus = ">=1.22.3,<2.0.0dev" -protobuf = ">=3.20.2,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0dev" +google-api-core = {version = ">=1.34.1,<2.0.dev0 || >=2.11.dev0,<3.0.0", extras = ["grpc"]} +google-auth = ">=2.14.1,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0" +proto-plus = ">=1.22.3,<2.0.0" +protobuf = ">=3.20.2,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" [[package]] name = "google-cloud-audit-log" @@ -1476,39 +1498,46 @@ tracing = ["opentelemetry-api (>=1.1.0)"] [[package]] name = "google-crc32c" -version = "1.6.0" +version = "1.7.1" description = "A python wrapper of the C library 'Google CRC32C'" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "google_crc32c-1.6.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:5bcc90b34df28a4b38653c36bb5ada35671ad105c99cfe915fb5bed7ad6924aa"}, - {file = "google_crc32c-1.6.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d9e9913f7bd69e093b81da4535ce27af842e7bf371cde42d1ae9e9bd382dc0e9"}, - {file = "google_crc32c-1.6.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a184243544811e4a50d345838a883733461e67578959ac59964e43cca2c791e7"}, - {file = "google_crc32c-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:236c87a46cdf06384f614e9092b82c05f81bd34b80248021f729396a78e55d7e"}, - {file = "google_crc32c-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebab974b1687509e5c973b5c4b8b146683e101e102e17a86bd196ecaa4d099fc"}, - {file = "google_crc32c-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:50cf2a96da226dcbff8671233ecf37bf6e95de98b2a2ebadbfdf455e6d05df42"}, - {file = "google_crc32c-1.6.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f7a1fc29803712f80879b0806cb83ab24ce62fc8daf0569f2204a0cfd7f68ed4"}, - {file = "google_crc32c-1.6.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:40b05ab32a5067525670880eb5d169529089a26fe35dce8891127aeddc1950e8"}, - {file = "google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e4b426c3702f3cd23b933436487eb34e01e00327fac20c9aebb68ccf34117d"}, - {file = "google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51c4f54dd8c6dfeb58d1df5e4f7f97df8abf17a36626a217f169893d1d7f3e9f"}, - {file = "google_crc32c-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:bb8b3c75bd157010459b15222c3fd30577042a7060e29d42dabce449c087f2b3"}, - {file = "google_crc32c-1.6.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ed767bf4ba90104c1216b68111613f0d5926fb3780660ea1198fc469af410e9d"}, - {file = "google_crc32c-1.6.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:62f6d4a29fea082ac4a3c9be5e415218255cf11684ac6ef5488eea0c9132689b"}, - {file = "google_crc32c-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c87d98c7c4a69066fd31701c4e10d178a648c2cac3452e62c6b24dc51f9fcc00"}, - {file = "google_crc32c-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd5e7d2445d1a958c266bfa5d04c39932dc54093fa391736dbfdb0f1929c1fb3"}, - {file = "google_crc32c-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:7aec8e88a3583515f9e0957fe4f5f6d8d4997e36d0f61624e70469771584c760"}, - {file = "google_crc32c-1.6.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e2806553238cd076f0a55bddab37a532b53580e699ed8e5606d0de1f856b5205"}, - {file = "google_crc32c-1.6.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:bb0966e1c50d0ef5bc743312cc730b533491d60585a9a08f897274e57c3f70e0"}, - {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:386122eeaaa76951a8196310432c5b0ef3b53590ef4c317ec7588ec554fec5d2"}, - {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2952396dc604544ea7476b33fe87faedc24d666fb0c2d5ac971a2b9576ab871"}, - {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35834855408429cecf495cac67ccbab802de269e948e27478b1e47dfb6465e57"}, - {file = "google_crc32c-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:d8797406499f28b5ef791f339594b0b5fdedf54e203b5066675c406ba69d705c"}, - {file = "google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48abd62ca76a2cbe034542ed1b6aee851b6f28aaca4e6551b5599b6f3ef175cc"}, - {file = "google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18e311c64008f1f1379158158bb3f0c8d72635b9eb4f9545f8cf990c5668e59d"}, - {file = "google_crc32c-1.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05e2d8c9a2f853ff116db9706b4a27350587f341eda835f46db3c0a8c8ce2f24"}, - {file = "google_crc32c-1.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ca8145b060679ec9176e6de4f89b07363d6805bd4760631ef254905503598d"}, - {file = "google_crc32c-1.6.0.tar.gz", hash = "sha256:6eceb6ad197656a1ff49ebfbbfa870678c75be4344feb35ac1edf694309413dc"}, + {file = "google_crc32c-1.7.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76"}, + {file = "google_crc32c-1.7.1-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d"}, + {file = "google_crc32c-1.7.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c"}, + {file = "google_crc32c-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb"}, + {file = "google_crc32c-1.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603"}, + {file = "google_crc32c-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a"}, + {file = "google_crc32c-1.7.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06"}, + {file = "google_crc32c-1.7.1-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9"}, + {file = "google_crc32c-1.7.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77"}, + {file = "google_crc32c-1.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53"}, + {file = "google_crc32c-1.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d"}, + {file = "google_crc32c-1.7.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194"}, + {file = "google_crc32c-1.7.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e"}, + {file = "google_crc32c-1.7.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337"}, + {file = "google_crc32c-1.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65"}, + {file = "google_crc32c-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6"}, + {file = "google_crc32c-1.7.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35"}, + {file = "google_crc32c-1.7.1-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638"}, + {file = "google_crc32c-1.7.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb"}, + {file = "google_crc32c-1.7.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6"}, + {file = "google_crc32c-1.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db"}, + {file = "google_crc32c-1.7.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3"}, + {file = "google_crc32c-1.7.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9"}, + {file = "google_crc32c-1.7.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315"}, + {file = "google_crc32c-1.7.1-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127"}, + {file = "google_crc32c-1.7.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14"}, + {file = "google_crc32c-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242"}, + {file = "google_crc32c-1.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582"}, + {file = "google_crc32c-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349"}, + {file = "google_crc32c-1.7.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589"}, + {file = "google_crc32c-1.7.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b"}, + {file = "google_crc32c-1.7.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48"}, + {file = "google_crc32c-1.7.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82"}, + {file = "google_crc32c-1.7.1.tar.gz", hash = "sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472"}, ] [package.extras] @@ -1535,22 +1564,22 @@ requests = ["requests (>=2.18.0,<3.0.0dev)"] [[package]] name = "googleapis-common-protos" -version = "1.66.0" +version = "1.70.0" description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed"}, - {file = "googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c"}, + {file = "googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8"}, + {file = "googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257"}, ] [package.dependencies] -grpcio = {version = ">=1.44.0,<2.0.0.dev0", optional = true, markers = "extra == \"grpc\""} -protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" +grpcio = {version = ">=1.44.0,<2.0.0", optional = true, markers = "extra == \"grpc\""} +protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" [package.extras] -grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] +grpc = ["grpcio (>=1.44.0,<2.0.0)"] [[package]] name = "googlemaps" @@ -1568,19 +1597,21 @@ requests = ">=2.20.0,<3.0" [[package]] name = "gotrue" -version = "2.11.1" +version = "2.12.0" description = "Python Client Library for Supabase Auth" optional = false python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "gotrue-2.11.1-py3-none-any.whl", hash = "sha256:1b2d915bdc65fd0ad608532759ce9c72fa2e910145c1e6901f2188519e7bcd2d"}, - {file = "gotrue-2.11.1.tar.gz", hash = "sha256:5594ceee60bd873e5f4fdd028b08dece3906f6013b6ed08e7786b71c0092fed0"}, + {file = "gotrue-2.12.0-py3-none-any.whl", hash = "sha256:de94928eebb42d7d9672dbe4fbd0b51140a45051a31626a06dad2ad44a9a976a"}, + {file = "gotrue-2.12.0.tar.gz", hash = "sha256:b9ea164ee52964d8364c550cde16dd0e9576241a4cffeaa52eca339f61d1d14b"}, ] [package.dependencies] httpx = {version = ">=0.26,<0.29", extras = ["http2"]} pydantic = ">=1.10,<3" +pyjwt = ">=2.10.1,<3.0.0" +pytest-mock = ">=3.14.0,<4.0.0" [[package]] name = "gravitasml" @@ -1601,86 +1632,68 @@ pytest = ">=8.2.1,<9.0.0" [[package]] name = "greenlet" -version = "3.1.1" +version = "3.2.2" description = "Lightweight in-process concurrent programming" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" groups = ["main"] markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\"" files = [ - {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, - {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, - {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, - {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, - {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, - {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, - {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, - {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, - {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, - {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, - {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, - {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, - {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, - {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, - {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, - {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, - {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, - {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, - {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, - {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, - {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, - {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, - {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, - {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, - {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, - {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, - {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, - {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, - {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, - {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, - {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, - {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, - {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, - {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, - {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, - {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, - {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, - {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, - {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, - {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, + {file = "greenlet-3.2.2-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:c49e9f7c6f625507ed83a7485366b46cbe325717c60837f7244fc99ba16ba9d6"}, + {file = "greenlet-3.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3cc1a3ed00ecfea8932477f729a9f616ad7347a5e55d50929efa50a86cb7be7"}, + {file = "greenlet-3.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7c9896249fbef2c615853b890ee854f22c671560226c9221cfd27c995db97e5c"}, + {file = "greenlet-3.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7409796591d879425997a518138889d8d17e63ada7c99edc0d7a1c22007d4907"}, + {file = "greenlet-3.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7791dcb496ec53d60c7f1c78eaa156c21f402dda38542a00afc3e20cae0f480f"}, + {file = "greenlet-3.2.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d8009ae46259e31bc73dc183e402f548e980c96f33a6ef58cc2e7865db012e13"}, + {file = "greenlet-3.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fd9fb7c941280e2c837b603850efc93c999ae58aae2b40765ed682a6907ebbc5"}, + {file = "greenlet-3.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:00cd814b8959b95a546e47e8d589610534cfb71f19802ea8a2ad99d95d702057"}, + {file = "greenlet-3.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:d0cb7d47199001de7658c213419358aa8937df767936506db0db7ce1a71f4a2f"}, + {file = "greenlet-3.2.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:dcb9cebbf3f62cb1e5afacae90761ccce0effb3adaa32339a0670fe7805d8068"}, + {file = "greenlet-3.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf3fc9145141250907730886b031681dfcc0de1c158f3cc51c092223c0f381ce"}, + {file = "greenlet-3.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:efcdfb9df109e8a3b475c016f60438fcd4be68cd13a365d42b35914cdab4bb2b"}, + {file = "greenlet-3.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4bd139e4943547ce3a56ef4b8b1b9479f9e40bb47e72cc906f0f66b9d0d5cab3"}, + {file = "greenlet-3.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71566302219b17ca354eb274dfd29b8da3c268e41b646f330e324e3967546a74"}, + {file = "greenlet-3.2.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3091bc45e6b0c73f225374fefa1536cd91b1e987377b12ef5b19129b07d93ebe"}, + {file = "greenlet-3.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:44671c29da26539a5f142257eaba5110f71887c24d40df3ac87f1117df589e0e"}, + {file = "greenlet-3.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c23ea227847c9dbe0b3910f5c0dd95658b607137614eb821e6cbaecd60d81cc6"}, + {file = "greenlet-3.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:0a16fb934fcabfdfacf21d79e6fed81809d8cd97bc1be9d9c89f0e4567143d7b"}, + {file = "greenlet-3.2.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:df4d1509efd4977e6a844ac96d8be0b9e5aa5d5c77aa27ca9f4d3f92d3fcf330"}, + {file = "greenlet-3.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da956d534a6d1b9841f95ad0f18ace637668f680b1339ca4dcfb2c1837880a0b"}, + {file = "greenlet-3.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c7b15fb9b88d9ee07e076f5a683027bc3befd5bb5d25954bb633c385d8b737e"}, + {file = "greenlet-3.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:752f0e79785e11180ebd2e726c8a88109ded3e2301d40abced2543aa5d164275"}, + {file = "greenlet-3.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ae572c996ae4b5e122331e12bbb971ea49c08cc7c232d1bd43150800a2d6c65"}, + {file = "greenlet-3.2.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02f5972ff02c9cf615357c17ab713737cccfd0eaf69b951084a9fd43f39833d3"}, + {file = "greenlet-3.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4fefc7aa68b34b9224490dfda2e70ccf2131368493add64b4ef2d372955c207e"}, + {file = "greenlet-3.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a31ead8411a027c2c4759113cf2bd473690517494f3d6e4bf67064589afcd3c5"}, + {file = "greenlet-3.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:b24c7844c0a0afc3ccbeb0b807adeefb7eff2b5599229ecedddcfeb0ef333bec"}, + {file = "greenlet-3.2.2-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:3ab7194ee290302ca15449f601036007873028712e92ca15fc76597a0aeb4c59"}, + {file = "greenlet-3.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc5c43bb65ec3669452af0ab10729e8fdc17f87a1f2ad7ec65d4aaaefabf6bf"}, + {file = "greenlet-3.2.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:decb0658ec19e5c1f519faa9a160c0fc85a41a7e6654b3ce1b44b939f8bf1325"}, + {file = "greenlet-3.2.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6fadd183186db360b61cb34e81117a096bff91c072929cd1b529eb20dd46e6c5"}, + {file = "greenlet-3.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1919cbdc1c53ef739c94cf2985056bcc0838c1f217b57647cbf4578576c63825"}, + {file = "greenlet-3.2.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3885f85b61798f4192d544aac7b25a04ece5fe2704670b4ab73c2d2c14ab740d"}, + {file = "greenlet-3.2.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:85f3e248507125bf4af607a26fd6cb8578776197bd4b66e35229cdf5acf1dfbf"}, + {file = "greenlet-3.2.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1e76106b6fc55fa3d6fe1c527f95ee65e324a13b62e243f77b48317346559708"}, + {file = "greenlet-3.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:fe46d4f8e94e637634d54477b0cfabcf93c53f29eedcbdeecaf2af32029b4421"}, + {file = "greenlet-3.2.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba30e88607fb6990544d84caf3c706c4b48f629e18853fc6a646f82db9629418"}, + {file = "greenlet-3.2.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:055916fafad3e3388d27dd68517478933a97edc2fc54ae79d3bec827de2c64c4"}, + {file = "greenlet-3.2.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2593283bf81ca37d27d110956b79e8723f9aa50c4bcdc29d3c0543d4743d2763"}, + {file = "greenlet-3.2.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89c69e9a10670eb7a66b8cef6354c24671ba241f46152dd3eed447f79c29fb5b"}, + {file = "greenlet-3.2.2-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02a98600899ca1ca5d3a2590974c9e3ec259503b2d6ba6527605fcd74e08e207"}, + {file = "greenlet-3.2.2-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:b50a8c5c162469c3209e5ec92ee4f95c8231b11db6a04db09bbe338176723bb8"}, + {file = "greenlet-3.2.2-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:45f9f4853fb4cc46783085261c9ec4706628f3b57de3e68bae03e8f8b3c0de51"}, + {file = "greenlet-3.2.2-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:9ea5231428af34226c05f927e16fc7f6fa5e39e3ad3cd24ffa48ba53a47f4240"}, + {file = "greenlet-3.2.2-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:1e4747712c4365ef6765708f948acc9c10350719ca0545e362c24ab973017370"}, + {file = "greenlet-3.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:782743700ab75716650b5238a4759f840bb2dcf7bff56917e9ffdf9f1f23ec59"}, + {file = "greenlet-3.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:354f67445f5bed6604e493a06a9a49ad65675d3d03477d38a4db4a427e9aad0e"}, + {file = "greenlet-3.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3aeca9848d08ce5eb653cf16e15bb25beeab36e53eb71cc32569f5f3afb2a3aa"}, + {file = "greenlet-3.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cb8553ee954536500d88a1a2f58fcb867e45125e600e80f586ade399b3f8819"}, + {file = "greenlet-3.2.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1592a615b598643dbfd566bac8467f06c8c8ab6e56f069e573832ed1d5d528cc"}, + {file = "greenlet-3.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1f72667cc341c95184f1c68f957cb2d4fc31eef81646e8e59358a10ce6689457"}, + {file = "greenlet-3.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a8fa80665b1a29faf76800173ff5325095f3e66a78e62999929809907aca5659"}, + {file = "greenlet-3.2.2-cp39-cp39-win32.whl", hash = "sha256:6629311595e3fe7304039c67f00d145cd1d38cf723bb5b99cc987b23c1433d61"}, + {file = "greenlet-3.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:eeb27bece45c0c2a5842ac4c5a1b5c2ceaefe5711078eed4e8043159fa05c834"}, + {file = "greenlet-3.2.2.tar.gz", hash = "sha256:ad053d34421a2debba45aa3cc39acf454acbcd025b3fc1a9f8a0dee237abd485"}, ] [package.extras] @@ -1709,203 +1722,129 @@ typing-extensions = ">=4.10,<5" [[package]] name = "grpc-google-iam-v1" -version = "0.14.0" +version = "0.14.2" description = "IAM API client library" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "grpc_google_iam_v1-0.14.0-py2.py3-none-any.whl", hash = "sha256:fb4a084b30099ba3ab07d61d620a0d4429570b13ff53bd37bac75235f98b7da4"}, - {file = "grpc_google_iam_v1-0.14.0.tar.gz", hash = "sha256:c66e07aa642e39bb37950f9e7f491f70dad150ac9801263b42b2814307c2df99"}, + {file = "grpc_google_iam_v1-0.14.2-py3-none-any.whl", hash = "sha256:a3171468459770907926d56a440b2bb643eec1d7ba215f48f3ecece42b4d8351"}, + {file = "grpc_google_iam_v1-0.14.2.tar.gz", hash = "sha256:b3e1fc387a1a329e41672197d0ace9de22c78dd7d215048c4c78712073f7bd20"}, ] [package.dependencies] -googleapis-common-protos = {version = ">=1.56.0,<2.0.0dev", extras = ["grpc"]} -grpcio = ">=1.44.0,<2.0.0dev" -protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0dev" +googleapis-common-protos = {version = ">=1.56.0,<2.0.0", extras = ["grpc"]} +grpcio = ">=1.44.0,<2.0.0" +protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" [[package]] name = "grpcio" -version = "1.70.0" +version = "1.72.1" description = "HTTP/2-based RPC framework" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "grpcio-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851"}, - {file = "grpcio-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf"}, - {file = "grpcio-1.70.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:374d014f29f9dfdb40510b041792e0e2828a1389281eb590df066e1cc2b404e5"}, - {file = "grpcio-1.70.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2af68a6f5c8f78d56c145161544ad0febbd7479524a59c16b3e25053f39c87f"}, - {file = "grpcio-1.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7df14b2dcd1102a2ec32f621cc9fab6695effef516efbc6b063ad749867295"}, - {file = "grpcio-1.70.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c78b339869f4dbf89881e0b6fbf376313e4f845a42840a7bdf42ee6caed4b11f"}, - {file = "grpcio-1.70.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:58ad9ba575b39edef71f4798fdb5c7b6d02ad36d47949cd381d4392a5c9cbcd3"}, - {file = "grpcio-1.70.0-cp310-cp310-win32.whl", hash = "sha256:2b0d02e4b25a5c1f9b6c7745d4fa06efc9fd6a611af0fb38d3ba956786b95199"}, - {file = "grpcio-1.70.0-cp310-cp310-win_amd64.whl", hash = "sha256:0de706c0a5bb9d841e353f6343a9defc9fc35ec61d6eb6111802f3aa9fef29e1"}, - {file = "grpcio-1.70.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:17325b0be0c068f35770f944124e8839ea3185d6d54862800fc28cc2ffad205a"}, - {file = "grpcio-1.70.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:dbe41ad140df911e796d4463168e33ef80a24f5d21ef4d1e310553fcd2c4a386"}, - {file = "grpcio-1.70.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5ea67c72101d687d44d9c56068328da39c9ccba634cabb336075fae2eab0d04b"}, - {file = "grpcio-1.70.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb5277db254ab7586769e490b7b22f4ddab3876c490da0a1a9d7c695ccf0bf77"}, - {file = "grpcio-1.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7831a0fc1beeeb7759f737f5acd9fdcda520e955049512d68fda03d91186eea"}, - {file = "grpcio-1.70.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:27cc75e22c5dba1fbaf5a66c778e36ca9b8ce850bf58a9db887754593080d839"}, - {file = "grpcio-1.70.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d63764963412e22f0491d0d32833d71087288f4e24cbcddbae82476bfa1d81fd"}, - {file = "grpcio-1.70.0-cp311-cp311-win32.whl", hash = "sha256:bb491125103c800ec209d84c9b51f1c60ea456038e4734688004f377cfacc113"}, - {file = "grpcio-1.70.0-cp311-cp311-win_amd64.whl", hash = "sha256:d24035d49e026353eb042bf7b058fb831db3e06d52bee75c5f2f3ab453e71aca"}, - {file = "grpcio-1.70.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:ef4c14508299b1406c32bdbb9fb7b47612ab979b04cf2b27686ea31882387cff"}, - {file = "grpcio-1.70.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:aa47688a65643afd8b166928a1da6247d3f46a2784d301e48ca1cc394d2ffb40"}, - {file = "grpcio-1.70.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:880bfb43b1bb8905701b926274eafce5c70a105bc6b99e25f62e98ad59cb278e"}, - {file = "grpcio-1.70.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e654c4b17d07eab259d392e12b149c3a134ec52b11ecdc6a515b39aceeec898"}, - {file = "grpcio-1.70.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2394e3381071045a706ee2eeb6e08962dd87e8999b90ac15c55f56fa5a8c9597"}, - {file = "grpcio-1.70.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b3c76701428d2df01964bc6479422f20e62fcbc0a37d82ebd58050b86926ef8c"}, - {file = "grpcio-1.70.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac073fe1c4cd856ebcf49e9ed6240f4f84d7a4e6ee95baa5d66ea05d3dd0df7f"}, - {file = "grpcio-1.70.0-cp312-cp312-win32.whl", hash = "sha256:cd24d2d9d380fbbee7a5ac86afe9787813f285e684b0271599f95a51bce33528"}, - {file = "grpcio-1.70.0-cp312-cp312-win_amd64.whl", hash = "sha256:0495c86a55a04a874c7627fd33e5beaee771917d92c0e6d9d797628ac40e7655"}, - {file = "grpcio-1.70.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa573896aeb7d7ce10b1fa425ba263e8dddd83d71530d1322fd3a16f31257b4a"}, - {file = "grpcio-1.70.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:d405b005018fd516c9ac529f4b4122342f60ec1cee181788249372524e6db429"}, - {file = "grpcio-1.70.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f32090238b720eb585248654db8e3afc87b48d26ac423c8dde8334a232ff53c9"}, - {file = "grpcio-1.70.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfa089a734f24ee5f6880c83d043e4f46bf812fcea5181dcb3a572db1e79e01c"}, - {file = "grpcio-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f19375f0300b96c0117aca118d400e76fede6db6e91f3c34b7b035822e06c35f"}, - {file = "grpcio-1.70.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:7c73c42102e4a5ec76608d9b60227d917cea46dff4d11d372f64cbeb56d259d0"}, - {file = "grpcio-1.70.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:0a5c78d5198a1f0aa60006cd6eb1c912b4a1520b6a3968e677dbcba215fabb40"}, - {file = "grpcio-1.70.0-cp313-cp313-win32.whl", hash = "sha256:fe9dbd916df3b60e865258a8c72ac98f3ac9e2a9542dcb72b7a34d236242a5ce"}, - {file = "grpcio-1.70.0-cp313-cp313-win_amd64.whl", hash = "sha256:4119fed8abb7ff6c32e3d2255301e59c316c22d31ab812b3fbcbaf3d0d87cc68"}, - {file = "grpcio-1.70.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:8058667a755f97407fca257c844018b80004ae8035565ebc2812cc550110718d"}, - {file = "grpcio-1.70.0-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:879a61bf52ff8ccacbedf534665bb5478ec8e86ad483e76fe4f729aaef867cab"}, - {file = "grpcio-1.70.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:0ba0a173f4feacf90ee618fbc1a27956bfd21260cd31ced9bc707ef551ff7dc7"}, - {file = "grpcio-1.70.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558c386ecb0148f4f99b1a65160f9d4b790ed3163e8610d11db47838d452512d"}, - {file = "grpcio-1.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:412faabcc787bbc826f51be261ae5fa996b21263de5368a55dc2cf824dc5090e"}, - {file = "grpcio-1.70.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3b0f01f6ed9994d7a0b27eeddea43ceac1b7e6f3f9d86aeec0f0064b8cf50fdb"}, - {file = "grpcio-1.70.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7385b1cb064734005204bc8994eed7dcb801ed6c2eda283f613ad8c6c75cf873"}, - {file = "grpcio-1.70.0-cp38-cp38-win32.whl", hash = "sha256:07269ff4940f6fb6710951116a04cd70284da86d0a4368fd5a3b552744511f5a"}, - {file = "grpcio-1.70.0-cp38-cp38-win_amd64.whl", hash = "sha256:aba19419aef9b254e15011b230a180e26e0f6864c90406fdbc255f01d83bc83c"}, - {file = "grpcio-1.70.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:4f1937f47c77392ccd555728f564a49128b6a197a05a5cd527b796d36f3387d0"}, - {file = "grpcio-1.70.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:0cd430b9215a15c10b0e7d78f51e8a39d6cf2ea819fd635a7214fae600b1da27"}, - {file = "grpcio-1.70.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:e27585831aa6b57b9250abaf147003e126cd3a6c6ca0c531a01996f31709bed1"}, - {file = "grpcio-1.70.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1af8e15b0f0fe0eac75195992a63df17579553b0c4af9f8362cc7cc99ccddf4"}, - {file = "grpcio-1.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbce24409beaee911c574a3d75d12ffb8c3e3dd1b813321b1d7a96bbcac46bf4"}, - {file = "grpcio-1.70.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ff4a8112a79464919bb21c18e956c54add43ec9a4850e3949da54f61c241a4a6"}, - {file = "grpcio-1.70.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5413549fdf0b14046c545e19cfc4eb1e37e9e1ebba0ca390a8d4e9963cab44d2"}, - {file = "grpcio-1.70.0-cp39-cp39-win32.whl", hash = "sha256:b745d2c41b27650095e81dea7091668c040457483c9bdb5d0d9de8f8eb25e59f"}, - {file = "grpcio-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:a31d7e3b529c94e930a117b2175b2efd179d96eb3c7a21ccb0289a8ab05b645c"}, - {file = "grpcio-1.70.0.tar.gz", hash = "sha256:8d1584a68d5922330025881e63a6c1b54cc8117291d382e4fa69339b6d914c56"}, + {file = "grpcio-1.72.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:ce2706ff37be7a6de68fbc4c3f8dde247cab48cc70fee5fedfbc9cd923b4ee5a"}, + {file = "grpcio-1.72.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:7db9e15ee7618fbea748176a67d347f3100fa92d36acccd0e7eeb741bc82f72a"}, + {file = "grpcio-1.72.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:8d6e7764181ba4a8b74aa78c98a89c9f3441068ebcee5d6f14c44578214e0be3"}, + {file = "grpcio-1.72.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:237bb619ba33594006025e6f114f62e60d9563afd6f8e89633ee384868e26687"}, + {file = "grpcio-1.72.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7f1d8a442fd242aa432c8e1b8411c79ebc409dad2c637614d726e226ce9ed0c"}, + {file = "grpcio-1.72.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f2359bd4bba85bf94fd9ab8802671b9637a6803bb673d221157a11523a52e6a8"}, + {file = "grpcio-1.72.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3269cfca37570a420a57a785f2a5d4234c5b12aced55f8843dafced2d3f8c9a6"}, + {file = "grpcio-1.72.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:06c023d86398714d6257194c21f2bc0b58a53ce45cee87dd3c54c7932c590e17"}, + {file = "grpcio-1.72.1-cp310-cp310-win32.whl", hash = "sha256:06dbe54eeea5f9dfb3e7ca2ff66c715ff5fc96b07a1feb322122fe14cb42f6aa"}, + {file = "grpcio-1.72.1-cp310-cp310-win_amd64.whl", hash = "sha256:ba593aa2cd52f4468ba29668c83f893d88c128198d6b1273ca788ef53e3ae5fe"}, + {file = "grpcio-1.72.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:4e112c083f90c330b0eaa78a633fb206d49c20c443926e827f8cac9eb9d2ea32"}, + {file = "grpcio-1.72.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:c6f7e3275832adab7384193f78b8c1a98b82541562fa08d7244e8a6b4b5c78a4"}, + {file = "grpcio-1.72.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:dd03c8847c47ef7ac5455aafdfb5e553ecf84f228282bd6106762b379f27c25c"}, + {file = "grpcio-1.72.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7497dbdf220b88b66004e2630fb2b1627df5e279db970d3cc20f70d39dce978d"}, + {file = "grpcio-1.72.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c2cde3ae8ae901317c049394ed8d3c6964de6b814ae65fc68636a7337b63aa"}, + {file = "grpcio-1.72.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7a66cef4bc1db81a54108a849e95650da640c9bc1901957bf7d3b1eeb3251ee8"}, + {file = "grpcio-1.72.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:fc0435ad45d540597f78978e3fd5515b448193f51f9065fb67dda566336e0f5f"}, + {file = "grpcio-1.72.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:524bad78d610fa1f9f316d47b3aab1ff89d438ba952ee34e3e335ca80a27ba96"}, + {file = "grpcio-1.72.1-cp311-cp311-win32.whl", hash = "sha256:409ee0abf7e74bbf88941046142452cf3d1f3863d34e11e8fd2b07375170c730"}, + {file = "grpcio-1.72.1-cp311-cp311-win_amd64.whl", hash = "sha256:ea483e408fac55569c11158c3e6d6d6a8c3b0f798b68f1c10db9b22c5996e19b"}, + {file = "grpcio-1.72.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:65a5ef28e5852bd281c6d01a923906e8036736e95e370acab8626fcbec041e67"}, + {file = "grpcio-1.72.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:9e5c594a6c779d674204fb9bdaa1e7b71666ff10b34a62e7769fc6868b5d7511"}, + {file = "grpcio-1.72.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:d324f4bdb990d852d79b38c59a12d24fcd47cf3b1a38f2e4d2b6d0b1031bc818"}, + {file = "grpcio-1.72.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:841db55dd29cf2f4121b853b2f89813a1b6175163fbb92c5945fb1b0ca259ef2"}, + {file = "grpcio-1.72.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00da930aa2711b955a538e835096aa365a4b7f2701bdc2ce1febb242a103f8a1"}, + {file = "grpcio-1.72.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4b657773480267fbb7ad733fa85abc103c52ab62e5bc97791faf82c53836eefc"}, + {file = "grpcio-1.72.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a08b483f17a6abca2578283a7ae3aa8d4d90347242b0de2898bdb27395c3f20b"}, + {file = "grpcio-1.72.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:299f3ea4e03c1d0548f4a174b48d612412f92c667f2100e30a079ab76fdaa813"}, + {file = "grpcio-1.72.1-cp312-cp312-win32.whl", hash = "sha256:addc721a3708ff789da1bf69876018dc730c1ec9d3d3cb6912776a00c535a5bc"}, + {file = "grpcio-1.72.1-cp312-cp312-win_amd64.whl", hash = "sha256:22ea2aa92a60dff231ba5fcd7f0220a33c2218e556009996f858eeafe294d1c2"}, + {file = "grpcio-1.72.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:294be6e9c323a197434569a41e0fb5b5aa0962fd5d55a3dc890ec5df985f611a"}, + {file = "grpcio-1.72.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:41ec164dac8df2862f67457d9cdf8d8f8b6a4ca475a3ed1ba6547fff98d93717"}, + {file = "grpcio-1.72.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:761736f75c6ddea3732d97eaabe70c616271f5f542a8be95515135fdd1a638f6"}, + {file = "grpcio-1.72.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:082003cb93618964c111c70d69b60ac0dc6566d4c254c9b2a775faa2965ba8f8"}, + {file = "grpcio-1.72.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8660f736da75424949c14f7c8b1ac60a25b2f37cabdec95181834b405373e8a7"}, + {file = "grpcio-1.72.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2ada1abe2ad122b42407b2bfd79d6706a4940d4797f44bd740f5c98ca1ecda9b"}, + {file = "grpcio-1.72.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:0db2766d0c482ee740abbe7d00a06cc4fb54f7e5a24d3cf27c3352be18a2b1e8"}, + {file = "grpcio-1.72.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4bdb404d9c2187260b34e2b22783c204fba8a9023a166cf77376190d9cf5a08"}, + {file = "grpcio-1.72.1-cp313-cp313-win32.whl", hash = "sha256:bb64722c3124c906a5b66e50a90fd36442642f653ba88a24f67d08e94bca59f3"}, + {file = "grpcio-1.72.1-cp313-cp313-win_amd64.whl", hash = "sha256:329cc6ff5b431df9614340d3825b066a1ff0a5809a01ba2e976ef48c65a0490b"}, + {file = "grpcio-1.72.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:8941b83addd503c1982090b4631804d0ff1edbbc6c85c9c20ed503b1dc65fef9"}, + {file = "grpcio-1.72.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:d29b80290c5eda561a4c291d6d5b4315a2a5095ab37061118d6e0781858aca0a"}, + {file = "grpcio-1.72.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:4ca56d955564db749c9c6d75e9c4c777854e22b2482d247fb6c5a02d5f28ea78"}, + {file = "grpcio-1.72.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b08a3ef14d2b01eef13882c6d3a2d8fb5fcd73db81bd1e3ab69d4ee75215433a"}, + {file = "grpcio-1.72.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd7df49801b3b323e4a21047979e3834cd286b32ee5ceee46f5217826274721f"}, + {file = "grpcio-1.72.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9717617ba2ff65c058ef53b0d5e50f03e8350f0c5597f93bb5c980a31db990c8"}, + {file = "grpcio-1.72.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:212db80b1e8aa7792d51269bfb32164e2333a9bb273370ace3ed2a378505cb01"}, + {file = "grpcio-1.72.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a0d19947d4480af5f363f077f221e665931f479e2604280ac4eafe6daa71f77"}, + {file = "grpcio-1.72.1-cp39-cp39-win32.whl", hash = "sha256:7622ef647dc911ed010a817d9be501df4ae83495b8e5cdd35b555bdcf3880a3e"}, + {file = "grpcio-1.72.1-cp39-cp39-win_amd64.whl", hash = "sha256:f8d8fa7cd2a7f1b4207e215dec8bc07f1202682d9a216ebe028185c15faece30"}, + {file = "grpcio-1.72.1.tar.gz", hash = "sha256:87f62c94a40947cec1a0f91f95f5ba0aa8f799f23a1d42ae5be667b6b27b959c"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.70.0)"] +protobuf = ["grpcio-tools (>=1.72.1)"] [[package]] name = "grpcio-status" -version = "1.70.0" +version = "1.71.0" description = "Status proto mapping for gRPC" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "grpcio_status-1.70.0-py3-none-any.whl", hash = "sha256:fc5a2ae2b9b1c1969cc49f3262676e6854aa2398ec69cb5bd6c47cd501904a85"}, - {file = "grpcio_status-1.70.0.tar.gz", hash = "sha256:0e7b42816512433b18b9d764285ff029bde059e9d41f8fe10a60631bd8348101"}, + {file = "grpcio_status-1.71.0-py3-none-any.whl", hash = "sha256:843934ef8c09e3e858952887467f8256aac3910c55f077a359a65b2b3cde3e68"}, + {file = "grpcio_status-1.71.0.tar.gz", hash = "sha256:11405fed67b68f406b3f3c7c5ae5104a79d2d309666d10d61b152e91d28fb968"}, ] [package.dependencies] googleapis-common-protos = ">=1.5.5" -grpcio = ">=1.70.0" +grpcio = ">=1.71.0" protobuf = ">=5.26.1,<6.0dev" -[[package]] -name = "grpcio-tools" -version = "1.68.0" -description = "Protobuf code generator for gRPC" -optional = false -python-versions = ">=3.8" -groups = ["main"] -files = [ - {file = "grpcio_tools-1.68.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:9509a5c3ed3d54fa7ac20748d501cb86668f764605a0a68f275339ee0f1dc1a6"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:59a885091bf29700ba0e14a954d156a18714caaa2006a7f328b18e1ac4b1e721"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:d3e678162e1d7a8720dc05fdd537fc8df082a50831791f7bb1c6f90095f8368b"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10d03e3ad4af6284fd27cb14f5a3d52045913c1253e3e24a384ed91bc8adbfcd"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1769d7f529de1cc102f7fb900611e3c0b69bdb244fca1075b24d6e5b49024586"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:88640d95ee41921ac7352fa5fadca52a06d7e21fbe53e6a706a9a494f756be7d"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e903d07bc65232aa9e7704c829aec263e1e139442608e473d7912417a9908e29"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-win32.whl", hash = "sha256:66b70b37184d40806844f51c2757c6b852511d4ea46a3bf2c7e931a47b455bc6"}, - {file = "grpcio_tools-1.68.0-cp310-cp310-win_amd64.whl", hash = "sha256:b47ae076ffb29a68e517bc03552bef0d9c973f8e18adadff180b123e973a26ea"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:f65942fab440e99113ce14436deace7554d5aa554ea18358e3a5f3fc47efe322"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8fefc6d000e169a97336feded23ce614df3fb9926fc48c7a9ff8ea459d93b5b0"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:6dd69c9f3ff85eee8d1f71adf7023c638ca8d465633244ac1b7f19bc3668612d"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7dc5195dc02057668cc22da1ff1aea1811f6fa0deb801b3194dec1fe0bab1cf0"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849b12bec2320e49e988df104c92217d533e01febac172a4495caab36d9f0edc"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:766c2cd2e365e0fc0e559af56f2c2d144d95fd7cb8668a34d533e66d6435eb34"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2ec3a2e0afa4866ccc5ba33c071aebaa619245dfdd840cbb74f2b0591868d085"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-win32.whl", hash = "sha256:80b733014eb40d920d836d782e5cdea0dcc90d251a2ffb35ab378ef4f8a42c14"}, - {file = "grpcio_tools-1.68.0-cp311-cp311-win_amd64.whl", hash = "sha256:f95103e3e4e7fee7c6123bc9e4e925e07ad24d8d09d7c1c916fb6c8d1cb9e726"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:dd9a654af8536b3de8525bff72a245fef62d572eabf96ac946fe850e707cb27d"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0f77957e3a0916a0dd18d57ce6b49d95fc9a5cfed92310f226339c0fda5394f6"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:92a09afe64fe26696595de2036e10967876d26b12c894cc9160f00152cacebe7"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28ebdbad2ef16699d07400b65260240851049a75502eff69a59b127d3ab960f1"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d3150d784d8050b10dcf5eb06e04fb90747a1547fed3a062a608d940fe57066"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:261d98fd635595de42aadee848f9af46da6654d63791c888891e94f66c5d0682"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:061345c0079b9471f32230186ab01acb908ea0e577bc1699a8cf47acef8be4af"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-win32.whl", hash = "sha256:533ce6791a5ba21e35d74c6c25caf4776f5692785a170c01ea1153783ad5af31"}, - {file = "grpcio_tools-1.68.0-cp312-cp312-win_amd64.whl", hash = "sha256:56842a0ce74b4b92eb62cd5ee00181b2d3acc58ba0c4fd20d15a5db51f891ba6"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:1117a81592542f0c36575082daa6413c57ca39188b18a4c50ec7332616f4b97e"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:51e5a090849b30c99a2396d42140b8a3e558eff6cdfa12603f9582e2cd07724e"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:4fe611d89a1836df8936f066d39c7eb03d4241806449ec45d4b8e1c843ae8011"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c10f3faa0cc4d89eb546f53b623837af23e86dc495d3b89510bcc0e0a6c0b8b2"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46b537480b8fd2195d988120a28467601a2a3de2e504043b89fb90318e1eb754"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:17d0c9004ea82b4213955a585401e80c30d4b37a1d4ace32ccdea8db4d3b7d43"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:2919faae04fe47bad57fc9b578aeaab527da260e851f321a253b6b11862254a8"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-win32.whl", hash = "sha256:ee86157ef899f58ba2fe1055cce0d33bd703e99aa6d5a0895581ac3969f06bfa"}, - {file = "grpcio_tools-1.68.0-cp313-cp313-win_amd64.whl", hash = "sha256:d0470ffc6a93c86cdda48edd428d22e2fef17d854788d60d0d5f291038873157"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:795f2cd76f68a12b0b5541b98187ba367dd69b49d359cf98b781ead742961370"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:57e29e78c33fb1b1d557fbe7650d722d1f2b0a9f53ea73beb8ea47e627b6000b"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:700f171cd3293ee8d50cd43171562ff07b14fa8e49ee471cd91c6924c7da8644"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:196cd8a3a5963a4c9e424314df9eb573b305e6f958fe6508d26580ce01e7aa56"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cad40c3164ee9cef62524dea509449ea581b17ea493178beef051bf79b5103ca"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ab93fab49fa1e699e577ff5fbb99aba660164d710d4c33cfe0aa9d06f585539f"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:511224a99726eb84db9ddb84dc8a75377c3eae797d835f99e80128ec618376d5"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-win32.whl", hash = "sha256:b4ca81770cd729a9ea536d871aacedbde2b732bb9bb83c9d993d63f58502153d"}, - {file = "grpcio_tools-1.68.0-cp38-cp38-win_amd64.whl", hash = "sha256:6950725bf7a496f81d3ec3324334ffc9dbec743b510dd0e897f51f8627eeb6ac"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:01ace351a51d7ee120963a4612b1f00e964462ec548db20d17f8902e238592c8"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5afd2f3f7257b52228a7808a2b4a765893d4d802d7a2377d9284853e67d045c6"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:453ee3193d59c974c678d91f08786f43c25ef753651b0825dc3d008c31baf68d"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b094b22919b786ad73c20372ef5e546330e7cd2c6dc12293b7ed586975f35d38"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26335eea976dfc1ff5d90b19c309a9425bd53868112a0507ad20f297f2c21d3e"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c77ecc5164bb413a613bdac9091dcc29d26834a2ac42fcd1afdfcda9e3003e68"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e31be6dc61496a59c1079b0a669f93dfcc2cdc4b1dbdc4374247cd09cee1329b"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-win32.whl", hash = "sha256:3aa40958355920ae2846c6fb5cadac4f2c8e33234a2982fef8101da0990e3968"}, - {file = "grpcio_tools-1.68.0-cp39-cp39-win_amd64.whl", hash = "sha256:19bafb80948eda979b1b3a63c1567162d06249f43068a0e46a028a448e6f72d4"}, - {file = "grpcio_tools-1.68.0.tar.gz", hash = "sha256:737804ec2225dd4cc27e633b4ca0e963b0795161bf678285fab6586e917fd867"}, -] - -[package.dependencies] -grpcio = ">=1.68.0" -protobuf = ">=5.26.1,<6.0dev" -setuptools = "*" - [[package]] name = "h11" -version = "0.14.0" +version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, + {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, + {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, ] [[package]] name = "h2" -version = "4.1.0" -description = "HTTP/2 State-Machine based protocol implementation" +version = "4.2.0" +description = "Pure-Python HTTP/2 protocol implementation" optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d"}, - {file = "h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"}, + {file = "h2-4.2.0-py3-none-any.whl", hash = "sha256:479a53ad425bb29af087f3458a61d30780bc818e4ebcf01f0b536ba916462ed0"}, + {file = "h2-4.2.0.tar.gz", hash = "sha256:c8a52129695e88b1a0578d8d2cc6842bbd79128ac685463b887ee278126ad01f"}, ] [package.dependencies] -hpack = ">=4.0,<5" -hyperframe = ">=6.0,<7" +hpack = ">=4.1,<5" +hyperframe = ">=6.1,<7" [[package]] name = "hpack" @@ -1921,19 +1860,19 @@ files = [ [[package]] name = "httpcore" -version = "1.0.7" +version = "1.0.9" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, - {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, + {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, + {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, ] [package.dependencies] certifi = "*" -h11 = ">=0.13,<0.15" +h11 = ">=0.16" [package.extras] asyncio = ["anyio (>=4.0,<5.0)"] @@ -2118,14 +2057,14 @@ files = [ [[package]] name = "importlib-metadata" -version = "8.5.0" +version = "8.6.1" description = "Read metadata from Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, - {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, + {file = "importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e"}, + {file = "importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580"}, ] [package.dependencies] @@ -2137,19 +2076,19 @@ cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] type = ["pytest-mypy"] [[package]] name = "iniconfig" -version = "2.0.0" +version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, + {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, + {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] [[package]] @@ -2277,88 +2216,89 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jiter" -version = "0.8.2" +version = "0.10.0" description = "Fast iterable JSON parser." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, - {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, - {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, - {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, - {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, - {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, - {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, - {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, - {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, - {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, - {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, - {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, - {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, - {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, - {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, - {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, - {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, - {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, - {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, - {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, - {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, - {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, - {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, - {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, - {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, - {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, - {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, - {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, - {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, - {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, - {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, - {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, - {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, - {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, - {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, - {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, - {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, - {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, - {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, - {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, - {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, - {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, - {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, - {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, - {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, - {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, - {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, - {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, - {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, - {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, - {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, - {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, - {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, - {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, - {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, - {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, - {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, - {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, - {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, - {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, - {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, - {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, - {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, - {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, - {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, - {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, - {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, - {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, - {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, - {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, + {file = "jiter-0.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cd2fb72b02478f06a900a5782de2ef47e0396b3e1f7d5aba30daeb1fce66f303"}, + {file = "jiter-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32bb468e3af278f095d3fa5b90314728a6916d89ba3d0ffb726dd9bf7367285e"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8b3e0068c26ddedc7abc6fac37da2d0af16b921e288a5a613f4b86f050354f"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:286299b74cc49e25cd42eea19b72aa82c515d2f2ee12d11392c56d8701f52224"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ed5649ceeaeffc28d87fb012d25a4cd356dcd53eff5acff1f0466b831dda2a7"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2ab0051160cb758a70716448908ef14ad476c3774bd03ddce075f3c1f90a3d6"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03997d2f37f6b67d2f5c475da4412be584e1cec273c1cfc03d642c46db43f8cf"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c404a99352d839fed80d6afd6c1d66071f3bacaaa5c4268983fc10f769112e90"}, + {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66e989410b6666d3ddb27a74c7e50d0829704ede652fd4c858e91f8d64b403d0"}, + {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b532d3af9ef4f6374609a3bcb5e05a1951d3bf6190dc6b176fdb277c9bbf15ee"}, + {file = "jiter-0.10.0-cp310-cp310-win32.whl", hash = "sha256:da9be20b333970e28b72edc4dff63d4fec3398e05770fb3205f7fb460eb48dd4"}, + {file = "jiter-0.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:f59e533afed0c5b0ac3eba20d2548c4a550336d8282ee69eb07b37ea526ee4e5"}, + {file = "jiter-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3bebe0c558e19902c96e99217e0b8e8b17d570906e72ed8a87170bc290b1e978"}, + {file = "jiter-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:558cc7e44fd8e507a236bee6a02fa17199ba752874400a0ca6cd6e2196cdb7dc"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d613e4b379a07d7c8453c5712ce7014e86c6ac93d990a0b8e7377e18505e98d"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f62cf8ba0618eda841b9bf61797f21c5ebd15a7a1e19daab76e4e4b498d515b2"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:919d139cdfa8ae8945112398511cb7fca58a77382617d279556b344867a37e61"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13ddbc6ae311175a3b03bd8994881bc4635c923754932918e18da841632349db"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c440ea003ad10927a30521a9062ce10b5479592e8a70da27f21eeb457b4a9c5"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc347c87944983481e138dea467c0551080c86b9d21de6ea9306efb12ca8f606"}, + {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:13252b58c1f4d8c5b63ab103c03d909e8e1e7842d302473f482915d95fefd605"}, + {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d1bbf3c465de4a24ab12fb7766a0003f6f9bce48b8b6a886158c4d569452dc5"}, + {file = "jiter-0.10.0-cp311-cp311-win32.whl", hash = "sha256:db16e4848b7e826edca4ccdd5b145939758dadf0dc06e7007ad0e9cfb5928ae7"}, + {file = "jiter-0.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c9c1d5f10e18909e993f9641f12fe1c77b3e9b533ee94ffa970acc14ded3812"}, + {file = "jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b"}, + {file = "jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95"}, + {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea"}, + {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b"}, + {file = "jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01"}, + {file = "jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49"}, + {file = "jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644"}, + {file = "jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca"}, + {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4"}, + {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e"}, + {file = "jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d"}, + {file = "jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4"}, + {file = "jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca"}, + {file = "jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070"}, + {file = "jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca"}, + {file = "jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522"}, + {file = "jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a"}, + {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853"}, + {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86"}, + {file = "jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357"}, + {file = "jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00"}, + {file = "jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5"}, + {file = "jiter-0.10.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:bd6292a43c0fc09ce7c154ec0fa646a536b877d1e8f2f96c19707f65355b5a4d"}, + {file = "jiter-0.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39de429dcaeb6808d75ffe9effefe96a4903c6a4b376b2f6d08d77c1aaee2f18"}, + {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52ce124f13a7a616fad3bb723f2bfb537d78239d1f7f219566dc52b6f2a9e48d"}, + {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:166f3606f11920f9a1746b2eea84fa2c0a5d50fd313c38bdea4edc072000b0af"}, + {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28dcecbb4ba402916034fc14eba7709f250c4d24b0c43fc94d187ee0580af181"}, + {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86c5aa6910f9bebcc7bc4f8bc461aff68504388b43bfe5e5c0bd21efa33b52f4"}, + {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ceeb52d242b315d7f1f74b441b6a167f78cea801ad7c11c36da77ff2d42e8a28"}, + {file = "jiter-0.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ff76d8887c8c8ee1e772274fcf8cc1071c2c58590d13e33bd12d02dc9a560397"}, + {file = "jiter-0.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a9be4d0fa2b79f7222a88aa488bd89e2ae0a0a5b189462a12def6ece2faa45f1"}, + {file = "jiter-0.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9ab7fd8738094139b6c1ab1822d6f2000ebe41515c537235fd45dabe13ec9324"}, + {file = "jiter-0.10.0-cp39-cp39-win32.whl", hash = "sha256:5f51e048540dd27f204ff4a87f5d79294ea0aa3aa552aca34934588cf27023cf"}, + {file = "jiter-0.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:1b28302349dc65703a9e4ead16f163b1c339efffbe1049c30a44b001a2a4fff9"}, + {file = "jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500"}, ] [[package]] @@ -2375,14 +2315,14 @@ files = [ [[package]] name = "jsonschema" -version = "4.23.0" +version = "4.24.0" description = "An implementation of JSON Schema validation for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, - {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, + {file = "jsonschema-4.24.0-py3-none-any.whl", hash = "sha256:a462455f19f5faf404a7902952b6f0e3ce868f3ee09a359b05eca6673bd8412d"}, + {file = "jsonschema-4.24.0.tar.gz", hash = "sha256:0b4e8069eb12aedfa881333004bccaec24ecef5a8a6a4b6df142b2cc9599d196"}, ] [package.dependencies] @@ -2397,14 +2337,14 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-specifications" -version = "2024.10.1" +version = "2025.4.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, - {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, + {file = "jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af"}, + {file = "jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608"}, ] [package.dependencies] @@ -2442,14 +2382,14 @@ type = ["pygobject-stubs", "pytest-mypy", "shtab", "types-pywin32"] [[package]] name = "launchdarkly-eventsource" -version = "1.2.1" +version = "1.2.4" description = "LaunchDarkly SSE Client" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "launchdarkly_eventsource-1.2.1-py3-none-any.whl", hash = "sha256:0fa935b7692555455ac8b44b845cdc16738bd9b2e9ce89ee19b3f8b4adafe3f1"}, - {file = "launchdarkly_eventsource-1.2.1.tar.gz", hash = "sha256:99c29fa9a570aa8d49c9804bcc401028cab8a8954ccbf4a68c3116933301ec33"}, + {file = "launchdarkly_eventsource-1.2.4-py3-none-any.whl", hash = "sha256:048ef8c4440d0d8219778661ee4d4b5e12aa6ed2c29a3004417ede44c2386e8c"}, + {file = "launchdarkly_eventsource-1.2.4.tar.gz", hash = "sha256:b8b9342681f55e1d35c56243431cbbaca4eb9812d6785f8de204af322104e066"}, ] [package.dependencies] @@ -2457,20 +2397,20 @@ urllib3 = ">=1.26.0,<3" [[package]] name = "launchdarkly-server-sdk" -version = "9.11.0" +version = "9.11.1" description = "LaunchDarkly SDK for Python" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "launchdarkly_server_sdk-9.11.0-py3-none-any.whl", hash = "sha256:2409d298b3614165d755a325d102f8bf5948da5876268eb161443864b18a6ae5"}, - {file = "launchdarkly_server_sdk-9.11.0.tar.gz", hash = "sha256:5106f0c574c529108217fe00b862329c381f5f415dde0ef62a7106f42ec64e22"}, + {file = "launchdarkly_server_sdk-9.11.1-py3-none-any.whl", hash = "sha256:128569cebf666dd115cc0ba03c48ff75f6acc9788301a7e2c3a54d06107e445a"}, + {file = "launchdarkly_server_sdk-9.11.1.tar.gz", hash = "sha256:150e29656cb8c506d1967f3c59e62b69310d345ec27217640a6146dd1db5d250"}, ] [package.dependencies] certifi = ">=2018.4.16" expiringdict = ">=1.1.4" -launchdarkly-eventsource = ">=1.1.0,<2.0.0" +launchdarkly-eventsource = ">=1.2.4,<2.0.0" pyRFC3339 = ">=1.0" semver = ">=2.10.2" urllib3 = ">=1.26.0,<3" @@ -2566,61 +2506,51 @@ files = [ [[package]] name = "mem0ai" -version = "0.1.98" +version = "0.1.102" description = "Long-term memory for AI Agents" optional = false python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "mem0ai-0.1.98-py3-none-any.whl", hash = "sha256:c53b8113c2430ed46327f0ce38febd096cd76ff778ecd43764df9adba5c4f6e7"}, - {file = "mem0ai-0.1.98.tar.gz", hash = "sha256:a46b77bdfa5997844f164715393be3707489d7d11c0a97d513c03cabe43f9013"}, + {file = "mem0ai-0.1.102-py3-none-any.whl", hash = "sha256:1401ccfd2369e2182ce78abb61b817e739fe49508b5a8ad98abcd4f8ad4db0b4"}, + {file = "mem0ai-0.1.102.tar.gz", hash = "sha256:7358dba4fbe954b9c3f33204c14df7babaf9067e2eb48241d89a32e6bc774988"}, ] [package.dependencies] -openai = ">=1.33.0,<2.0.0" -posthog = ">=3.5.0,<4.0.0" -pydantic = ">=2.7.3,<3.0.0" -pytz = ">=2024.1,<2025.0" -qdrant-client = ">=1.9.1,<2.0.0" -sqlalchemy = ">=2.0.31,<3.0.0" +openai = ">=1.33.0" +posthog = ">=3.5.0" +pydantic = ">=2.7.3" +pytz = ">=2024.1" +qdrant-client = ">=1.9.1" +sqlalchemy = ">=2.0.31" [package.extras] -graph = ["langchain-neo4j (>=0.4.0,<0.5.0)", "neo4j (>=5.23.1,<6.0.0)", "rank-bm25 (>=0.2.2,<0.3.0)"] - -[[package]] -name = "monotonic" -version = "1.6" -description = "An implementation of time.monotonic() for Python 2 & < 3.3" -optional = false -python-versions = "*" -groups = ["main"] -files = [ - {file = "monotonic-1.6-py2.py3-none-any.whl", hash = "sha256:68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c"}, - {file = "monotonic-1.6.tar.gz", hash = "sha256:3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7"}, -] +dev = ["isort (>=5.13.2)", "pytest (>=8.2.2)", "ruff (>=0.6.5)"] +graph = ["langchain-neo4j (>=0.4.0)", "neo4j (>=5.23.1)", "rank-bm25 (>=0.2.2)"] +test = ["pytest (>=8.2.2)", "pytest-asyncio (>=0.23.7)", "pytest-mock (>=3.14.0)"] [[package]] name = "more-itertools" -version = "10.6.0" +version = "10.7.0" description = "More routines for operating on iterables, beyond itertools" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b"}, - {file = "more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89"}, + {file = "more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e"}, + {file = "more_itertools-10.7.0.tar.gz", hash = "sha256:9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3"}, ] [[package]] name = "moviepy" -version = "2.1.2" +version = "2.2.1" description = "Video editing with Python" optional = false python-versions = "*" groups = ["main"] files = [ - {file = "moviepy-2.1.2-py3-none-any.whl", hash = "sha256:6cdc0d739110c8f347a224d72bd59eebaec010720d01eff290d37111bf545a73"}, - {file = "moviepy-2.1.2.tar.gz", hash = "sha256:22c57a7472f607eaad9fe80791df67c05082e1060fb74817c4eaac68e138ee77"}, + {file = "moviepy-2.2.1-py3-none-any.whl", hash = "sha256:6b56803fec2ac54b557404126ac1160e65448e03798fa282bd23e8fab3795060"}, + {file = "moviepy-2.2.1.tar.gz", hash = "sha256:c80cb56815ece94e5e3e2d361aa40070eeb30a09d23a24c4e684d03e16deacb1"}, ] [package.dependencies] @@ -2628,7 +2558,7 @@ decorator = ">=4.0.2,<6.0" imageio = ">=2.5,<3.0" imageio_ffmpeg = ">=0.2.0" numpy = ">=1.25.0" -pillow = ">=9.2.0,<11.0" +pillow = ">=9.2.0,<12.0" proglog = "<=1.0.0" python-dotenv = ">=0.10" @@ -2713,104 +2643,116 @@ files = [ [[package]] name = "multidict" -version = "6.1.0" +version = "6.4.4" description = "multidict implementation" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, - {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, - {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, - {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, - {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, - {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, - {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, - {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, - {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, - {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, - {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, - {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, - {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, - {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, - {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, - {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, - {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, - {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, - {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, - {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, - {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, - {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, - {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, - {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, - {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, - {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, - {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, - {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, - {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, - {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, + {file = "multidict-6.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8adee3ac041145ffe4488ea73fa0a622b464cc25340d98be76924d0cda8545ff"}, + {file = "multidict-6.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b61e98c3e2a861035aaccd207da585bdcacef65fe01d7a0d07478efac005e028"}, + {file = "multidict-6.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:75493f28dbadecdbb59130e74fe935288813301a8554dc32f0c631b6bdcdf8b0"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc3c6a37e048b5395ee235e4a2a0d639c2349dffa32d9367a42fc20d399772"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87cb72263946b301570b0f63855569a24ee8758aaae2cd182aae7d95fbc92ca7"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bbf7bd39822fd07e3609b6b4467af4c404dd2b88ee314837ad1830a7f4a8299"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1f7cbd4f1f44ddf5fd86a8675b7679176eae770f2fc88115d6dddb6cefb59bc"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5ac9e5bfce0e6282e7f59ff7b7b9a74aa8e5c60d38186a4637f5aa764046ad"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4efc31dfef8c4eeb95b6b17d799eedad88c4902daba39ce637e23a17ea078915"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9fcad2945b1b91c29ef2b4050f590bfcb68d8ac8e0995a74e659aa57e8d78e01"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d877447e7368c7320832acb7159557e49b21ea10ffeb135c1077dbbc0816b598"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:33a12ebac9f380714c298cbfd3e5b9c0c4e89c75fe612ae496512ee51028915f"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0f14ea68d29b43a9bf37953881b1e3eb75b2739e896ba4a6aa4ad4c5b9ffa145"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0327ad2c747a6600e4797d115d3c38a220fdb28e54983abe8964fd17e95ae83c"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d1a20707492db9719a05fc62ee215fd2c29b22b47c1b1ba347f9abc831e26683"}, + {file = "multidict-6.4.4-cp310-cp310-win32.whl", hash = "sha256:d83f18315b9fca5db2452d1881ef20f79593c4aa824095b62cb280019ef7aa3d"}, + {file = "multidict-6.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:9c17341ee04545fd962ae07330cb5a39977294c883485c8d74634669b1f7fe04"}, + {file = "multidict-6.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f5f29794ac0e73d2a06ac03fd18870adc0135a9d384f4a306a951188ed02f95"}, + {file = "multidict-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c04157266344158ebd57b7120d9b0b35812285d26d0e78193e17ef57bfe2979a"}, + {file = "multidict-6.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb61ffd3ab8310d93427e460f565322c44ef12769f51f77277b4abad7b6f7223"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e0ba18a9afd495f17c351d08ebbc4284e9c9f7971d715f196b79636a4d0de44"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9faf1b1dcaadf9f900d23a0e6d6c8eadd6a95795a0e57fcca73acce0eb912065"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a4d1cb1327c6082c4fce4e2a438483390964c02213bc6b8d782cf782c9b1471f"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:941f1bec2f5dbd51feeb40aea654c2747f811ab01bdd3422a48a4e4576b7d76a"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5f8a146184da7ea12910a4cec51ef85e44f6268467fb489c3caf0cd512f29c2"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:232b7237e57ec3c09be97206bfb83a0aa1c5d7d377faa019c68a210fa35831f1"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:55ae0721c1513e5e3210bca4fc98456b980b0c2c016679d3d723119b6b202c42"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:51d662c072579f63137919d7bb8fc250655ce79f00c82ecf11cab678f335062e"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0e05c39962baa0bb19a6b210e9b1422c35c093b651d64246b6c2e1a7e242d9fd"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5b1cc3ab8c31d9ebf0faa6e3540fb91257590da330ffe6d2393d4208e638925"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:93ec84488a384cd7b8a29c2c7f467137d8a73f6fe38bb810ecf29d1ade011a7c"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b308402608493638763abc95f9dc0030bbd6ac6aff784512e8ac3da73a88af08"}, + {file = "multidict-6.4.4-cp311-cp311-win32.whl", hash = "sha256:343892a27d1a04d6ae455ecece12904d242d299ada01633d94c4f431d68a8c49"}, + {file = "multidict-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:73484a94f55359780c0f458bbd3c39cb9cf9c182552177d2136e828269dee529"}, + {file = "multidict-6.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc388f75a1c00000824bf28b7633e40854f4127ede80512b44c3cfeeea1839a2"}, + {file = "multidict-6.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:98af87593a666f739d9dba5d0ae86e01b0e1a9cfcd2e30d2d361fbbbd1a9162d"}, + {file = "multidict-6.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aff4cafea2d120327d55eadd6b7f1136a8e5a0ecf6fb3b6863e8aca32cd8e50a"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:169c4ba7858176b797fe551d6e99040c531c775d2d57b31bcf4de6d7a669847f"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b9eb4c59c54421a32b3273d4239865cb14ead53a606db066d7130ac80cc8ec93"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cf3bd54c56aa16fdb40028d545eaa8d051402b61533c21e84046e05513d5780"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f682c42003c7264134bfe886376299db4cc0c6cd06a3295b41b347044bcb5482"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920f9cf2abdf6e493c519492d892c362007f113c94da4c239ae88429835bad1"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:530d86827a2df6504526106b4c104ba19044594f8722d3e87714e847c74a0275"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ecde56ea2439b96ed8a8d826b50c57364612ddac0438c39e473fafad7ae1c23b"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:dc8c9736d8574b560634775ac0def6bdc1661fc63fa27ffdfc7264c565bcb4f2"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7f3d3b3c34867579ea47cbd6c1f2ce23fbfd20a273b6f9e3177e256584f1eacc"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:87a728af265e08f96b6318ebe3c0f68b9335131f461efab2fc64cc84a44aa6ed"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9f193eeda1857f8e8d3079a4abd258f42ef4a4bc87388452ed1e1c4d2b0c8740"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be06e73c06415199200e9a2324a11252a3d62030319919cde5e6950ffeccf72e"}, + {file = "multidict-6.4.4-cp312-cp312-win32.whl", hash = "sha256:622f26ea6a7e19b7c48dd9228071f571b2fbbd57a8cd71c061e848f281550e6b"}, + {file = "multidict-6.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:5e2bcda30d5009996ff439e02a9f2b5c3d64a20151d34898c000a6281faa3781"}, + {file = "multidict-6.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:82ffabefc8d84c2742ad19c37f02cde5ec2a1ee172d19944d380f920a340e4b9"}, + {file = "multidict-6.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6a2f58a66fe2c22615ad26156354005391e26a2f3721c3621504cd87c1ea87bf"}, + {file = "multidict-6.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5883d6ee0fd9d8a48e9174df47540b7545909841ac82354c7ae4cbe9952603bd"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9abcf56a9511653fa1d052bfc55fbe53dbee8f34e68bd6a5a038731b0ca42d15"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6ed5ae5605d4ad5a049fad2a28bb7193400700ce2f4ae484ab702d1e3749c3f9"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbfcb60396f9bcfa63e017a180c3105b8c123a63e9d1428a36544e7d37ca9e20"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0f1987787f5f1e2076b59692352ab29a955b09ccc433c1f6b8e8e18666f608b"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d0121ccce8c812047d8d43d691a1ad7641f72c4f730474878a5aeae1b8ead8c"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83ec4967114295b8afd120a8eec579920c882831a3e4c3331d591a8e5bfbbc0f"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:995f985e2e268deaf17867801b859a282e0448633f1310e3704b30616d269d69"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d832c608f94b9f92a0ec8b7e949be7792a642b6e535fcf32f3e28fab69eeb046"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d21c1212171cf7da703c5b0b7a0e85be23b720818aef502ad187d627316d5645"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cbebaa076aaecad3d4bb4c008ecc73b09274c952cf6a1b78ccfd689e51f5a5b0"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c93a6fb06cc8e5d3628b2b5fda215a5db01e8f08fc15fadd65662d9b857acbe4"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8cd8f81f1310182362fb0c7898145ea9c9b08a71081c5963b40ee3e3cac589b1"}, + {file = "multidict-6.4.4-cp313-cp313-win32.whl", hash = "sha256:3e9f1cd61a0ab857154205fb0b1f3d3ace88d27ebd1409ab7af5096e409614cd"}, + {file = "multidict-6.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:8ffb40b74400e4455785c2fa37eba434269149ec525fc8329858c862e4b35373"}, + {file = "multidict-6.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6a602151dbf177be2450ef38966f4be3467d41a86c6a845070d12e17c858a156"}, + {file = "multidict-6.4.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d2b9712211b860d123815a80b859075d86a4d54787e247d7fbee9db6832cf1c"}, + {file = "multidict-6.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d2fa86af59f8fc1972e121ade052145f6da22758f6996a197d69bb52f8204e7e"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50855d03e9e4d66eab6947ba688ffb714616f985838077bc4b490e769e48da51"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5bce06b83be23225be1905dcdb6b789064fae92499fbc458f59a8c0e68718601"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66ed0731f8e5dfd8369a883b6e564aca085fb9289aacabd9decd70568b9a30de"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:329ae97fc2f56f44d91bc47fe0972b1f52d21c4b7a2ac97040da02577e2daca2"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c27e5dcf520923d6474d98b96749e6805f7677e93aaaf62656005b8643f907ab"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:058cc59b9e9b143cc56715e59e22941a5d868c322242278d28123a5d09cdf6b0"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:69133376bc9a03f8c47343d33f91f74a99c339e8b58cea90433d8e24bb298031"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d6b15c55721b1b115c5ba178c77104123745b1417527ad9641a4c5e2047450f0"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a887b77f51d3d41e6e1a63cf3bc7ddf24de5939d9ff69441387dfefa58ac2e26"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:632a3bf8f1787f7ef7d3c2f68a7bde5be2f702906f8b5842ad6da9d974d0aab3"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a145c550900deb7540973c5cdb183b0d24bed6b80bf7bddf33ed8f569082535e"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc5d83c6619ca5c9672cb78b39ed8542f1975a803dee2cda114ff73cbb076edd"}, + {file = "multidict-6.4.4-cp313-cp313t-win32.whl", hash = "sha256:3312f63261b9df49be9d57aaa6abf53a6ad96d93b24f9cc16cf979956355ce6e"}, + {file = "multidict-6.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:ba852168d814b2c73333073e1c7116d9395bea69575a01b0b3c89d2d5a87c8fb"}, + {file = "multidict-6.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:603f39bd1cf85705c6c1ba59644b480dfe495e6ee2b877908de93322705ad7cf"}, + {file = "multidict-6.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fc60f91c02e11dfbe3ff4e1219c085695c339af72d1641800fe6075b91850c8f"}, + {file = "multidict-6.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:496bcf01c76a70a31c3d746fd39383aad8d685ce6331e4c709e9af4ced5fa221"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4219390fb5bf8e548e77b428bb36a21d9382960db5321b74d9d9987148074d6b"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef4e9096ff86dfdcbd4a78253090ba13b1d183daa11b973e842465d94ae1772"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:49a29d7133b1fc214e818bbe025a77cc6025ed9a4f407d2850373ddde07fd04a"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e32053d6d3a8b0dfe49fde05b496731a0e6099a4df92154641c00aa76786aef5"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cc403092a49509e8ef2d2fd636a8ecefc4698cc57bbe894606b14579bc2a955"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5363f9b2a7f3910e5c87d8b1855c478c05a2dc559ac57308117424dfaad6805c"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e543a40e4946cf70a88a3be87837a3ae0aebd9058ba49e91cacb0b2cd631e2b"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:60d849912350da557fe7de20aa8cf394aada6980d0052cc829eeda4a0db1c1db"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:19d08b4f22eae45bb018b9f06e2838c1e4b853c67628ef8ae126d99de0da6395"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d693307856d1ef08041e8b6ff01d5b4618715007d288490ce2c7e29013c12b9a"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fad6daaed41021934917f4fb03ca2db8d8a4d79bf89b17ebe77228eb6710c003"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c10d17371bff801af0daf8b073c30b6cf14215784dc08cd5c43ab5b7b8029bbc"}, + {file = "multidict-6.4.4-cp39-cp39-win32.whl", hash = "sha256:7e23f2f841fcb3ebd4724a40032d32e0892fbba4143e43d2a9e7695c5e50e6bd"}, + {file = "multidict-6.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d7b50b673ffb4ff4366e7ab43cf1f0aef4bd3608735c5fbdf0bdb6f690da411"}, + {file = "multidict-6.4.4-py3-none-any.whl", hash = "sha256:bd4557071b561a8b3b6075c3ce93cf9bfb6182cb241805c3d66ced3b75eff4ac"}, + {file = "multidict-6.4.4.tar.gz", hash = "sha256:69ee9e6ba214b5245031b76233dd95408a0fd57fdb019ddcc1ead4790932a8e8"}, ] [package.dependencies] @@ -2818,14 +2760,14 @@ typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} [[package]] name = "mypy-extensions" -version = "1.0.0" +version = "1.1.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, + {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, + {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, ] [[package]] @@ -2842,67 +2784,67 @@ files = [ [[package]] name = "numpy" -version = "2.2.2" +version = "2.2.6" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "numpy-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7079129b64cb78bdc8d611d1fd7e8002c0a2565da6a47c4df8062349fee90e3e"}, - {file = "numpy-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ec6c689c61df613b783aeb21f945c4cbe6c51c28cb70aae8430577ab39f163e"}, - {file = "numpy-2.2.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:40c7ff5da22cd391944a28c6a9c638a5eef77fcf71d6e3a79e1d9d9e82752715"}, - {file = "numpy-2.2.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:995f9e8181723852ca458e22de5d9b7d3ba4da3f11cc1cb113f093b271d7965a"}, - {file = "numpy-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b78ea78450fd96a498f50ee096f69c75379af5138f7881a51355ab0e11286c97"}, - {file = "numpy-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fbe72d347fbc59f94124125e73fc4976a06927ebc503ec5afbfb35f193cd957"}, - {file = "numpy-2.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8e6da5cffbbe571f93588f562ed130ea63ee206d12851b60819512dd3e1ba50d"}, - {file = "numpy-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:09d6a2032faf25e8d0cadde7fd6145118ac55d2740132c1d845f98721b5ebcfd"}, - {file = "numpy-2.2.2-cp310-cp310-win32.whl", hash = "sha256:159ff6ee4c4a36a23fe01b7c3d07bd8c14cc433d9720f977fcd52c13c0098160"}, - {file = "numpy-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:64bd6e1762cd7f0986a740fee4dff927b9ec2c5e4d9a28d056eb17d332158014"}, - {file = "numpy-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:642199e98af1bd2b6aeb8ecf726972d238c9877b0f6e8221ee5ab945ec8a2189"}, - {file = "numpy-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6d9fc9d812c81e6168b6d405bf00b8d6739a7f72ef22a9214c4241e0dc70b323"}, - {file = "numpy-2.2.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:c7d1fd447e33ee20c1f33f2c8e6634211124a9aabde3c617687d8b739aa69eac"}, - {file = "numpy-2.2.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:451e854cfae0febe723077bd0cf0a4302a5d84ff25f0bfece8f29206c7bed02e"}, - {file = "numpy-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd249bc894af67cbd8bad2c22e7cbcd46cf87ddfca1f1289d1e7e54868cc785c"}, - {file = "numpy-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02935e2c3c0c6cbe9c7955a8efa8908dd4221d7755644c59d1bba28b94fd334f"}, - {file = "numpy-2.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a972cec723e0563aa0823ee2ab1df0cb196ed0778f173b381c871a03719d4826"}, - {file = "numpy-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d6d6a0910c3b4368d89dde073e630882cdb266755565155bc33520283b2d9df8"}, - {file = "numpy-2.2.2-cp311-cp311-win32.whl", hash = "sha256:860fd59990c37c3ef913c3ae390b3929d005243acca1a86facb0773e2d8d9e50"}, - {file = "numpy-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:da1eeb460ecce8d5b8608826595c777728cdf28ce7b5a5a8c8ac8d949beadcf2"}, - {file = "numpy-2.2.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ac9bea18d6d58a995fac1b2cb4488e17eceeac413af014b1dd26170b766d8467"}, - {file = "numpy-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23ae9f0c2d889b7b2d88a3791f6c09e2ef827c2446f1c4a3e3e76328ee4afd9a"}, - {file = "numpy-2.2.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3074634ea4d6df66be04f6728ee1d173cfded75d002c75fac79503a880bf3825"}, - {file = "numpy-2.2.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8ec0636d3f7d68520afc6ac2dc4b8341ddb725039de042faf0e311599f54eb37"}, - {file = "numpy-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ffbb1acd69fdf8e89dd60ef6182ca90a743620957afb7066385a7bbe88dc748"}, - {file = "numpy-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0349b025e15ea9d05c3d63f9657707a4e1d471128a3b1d876c095f328f8ff7f0"}, - {file = "numpy-2.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:463247edcee4a5537841d5350bc87fe8e92d7dd0e8c71c995d2c6eecb8208278"}, - {file = "numpy-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9dd47ff0cb2a656ad69c38da850df3454da88ee9a6fde0ba79acceee0e79daba"}, - {file = "numpy-2.2.2-cp312-cp312-win32.whl", hash = "sha256:4525b88c11906d5ab1b0ec1f290996c0020dd318af8b49acaa46f198b1ffc283"}, - {file = "numpy-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:5acea83b801e98541619af398cc0109ff48016955cc0818f478ee9ef1c5c3dcb"}, - {file = "numpy-2.2.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b208cfd4f5fe34e1535c08983a1a6803fdbc7a1e86cf13dd0c61de0b51a0aadc"}, - {file = "numpy-2.2.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d0bbe7dd86dca64854f4b6ce2ea5c60b51e36dfd597300057cf473d3615f2369"}, - {file = "numpy-2.2.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:22ea3bb552ade325530e72a0c557cdf2dea8914d3a5e1fecf58fa5dbcc6f43cd"}, - {file = "numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:128c41c085cab8a85dc29e66ed88c05613dccf6bc28b3866cd16050a2f5448be"}, - {file = "numpy-2.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:250c16b277e3b809ac20d1f590716597481061b514223c7badb7a0f9993c7f84"}, - {file = "numpy-2.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c8854b09bc4de7b041148d8550d3bd712b5c21ff6a8ed308085f190235d7ff"}, - {file = "numpy-2.2.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b6fb9c32a91ec32a689ec6410def76443e3c750e7cfc3fb2206b985ffb2b85f0"}, - {file = "numpy-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:57b4012e04cc12b78590a334907e01b3a85efb2107df2b8733ff1ed05fce71de"}, - {file = "numpy-2.2.2-cp313-cp313-win32.whl", hash = "sha256:4dbd80e453bd34bd003b16bd802fac70ad76bd463f81f0c518d1245b1c55e3d9"}, - {file = "numpy-2.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:5a8c863ceacae696aff37d1fd636121f1a512117652e5dfb86031c8d84836369"}, - {file = "numpy-2.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b3482cb7b3325faa5f6bc179649406058253d91ceda359c104dac0ad320e1391"}, - {file = "numpy-2.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9491100aba630910489c1d0158034e1c9a6546f0b1340f716d522dc103788e39"}, - {file = "numpy-2.2.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:41184c416143defa34cc8eb9d070b0a5ba4f13a0fa96a709e20584638254b317"}, - {file = "numpy-2.2.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7dca87ca328f5ea7dafc907c5ec100d187911f94825f8700caac0b3f4c384b49"}, - {file = "numpy-2.2.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bc61b307655d1a7f9f4b043628b9f2b721e80839914ede634e3d485913e1fb2"}, - {file = "numpy-2.2.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fad446ad0bc886855ddf5909cbf8cb5d0faa637aaa6277fb4b19ade134ab3c7"}, - {file = "numpy-2.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:149d1113ac15005652e8d0d3f6fd599360e1a708a4f98e43c9c77834a28238cb"}, - {file = "numpy-2.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:106397dbbb1896f99e044efc90360d098b3335060375c26aa89c0d8a97c5f648"}, - {file = "numpy-2.2.2-cp313-cp313t-win32.whl", hash = "sha256:0eec19f8af947a61e968d5429f0bd92fec46d92b0008d0a6685b40d6adf8a4f4"}, - {file = "numpy-2.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:97b974d3ba0fb4612b77ed35d7627490e8e3dff56ab41454d9e8b23448940576"}, - {file = "numpy-2.2.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b0531f0b0e07643eb089df4c509d30d72c9ef40defa53e41363eca8a8cc61495"}, - {file = "numpy-2.2.2-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:e9e82dcb3f2ebbc8cb5ce1102d5f1c5ed236bf8a11730fb45ba82e2841ec21df"}, - {file = "numpy-2.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0d4142eb40ca6f94539e4db929410f2a46052a0fe7a2c1c59f6179c39938d2a"}, - {file = "numpy-2.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:356ca982c188acbfa6af0d694284d8cf20e95b1c3d0aefa8929376fea9146f60"}, - {file = "numpy-2.2.2.tar.gz", hash = "sha256:ed6906f61834d687738d25988ae117683705636936cc605be0bb208b23df4d8f"}, + {file = "numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb"}, + {file = "numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90"}, + {file = "numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163"}, + {file = "numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf"}, + {file = "numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83"}, + {file = "numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915"}, + {file = "numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680"}, + {file = "numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289"}, + {file = "numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d"}, + {file = "numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3"}, + {file = "numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae"}, + {file = "numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a"}, + {file = "numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42"}, + {file = "numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491"}, + {file = "numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a"}, + {file = "numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf"}, + {file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1"}, + {file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab"}, + {file = "numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47"}, + {file = "numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303"}, + {file = "numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff"}, + {file = "numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c"}, + {file = "numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3"}, + {file = "numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282"}, + {file = "numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87"}, + {file = "numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249"}, + {file = "numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49"}, + {file = "numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de"}, + {file = "numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4"}, + {file = "numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2"}, + {file = "numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84"}, + {file = "numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b"}, + {file = "numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d"}, + {file = "numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566"}, + {file = "numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f"}, + {file = "numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f"}, + {file = "numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868"}, + {file = "numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d"}, + {file = "numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd"}, + {file = "numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c"}, + {file = "numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6"}, + {file = "numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda"}, + {file = "numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40"}, + {file = "numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8"}, + {file = "numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f"}, + {file = "numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa"}, + {file = "numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571"}, + {file = "numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1"}, + {file = "numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff"}, + {file = "numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06"}, + {file = "numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d"}, + {file = "numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db"}, + {file = "numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543"}, + {file = "numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00"}, + {file = "numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd"}, ] [[package]] @@ -2924,30 +2866,30 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "ollama" -version = "0.4.8" +version = "0.4.9" description = "The official Python client for Ollama." optional = false -python-versions = "<4.0,>=3.8" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "ollama-0.4.8-py3-none-any.whl", hash = "sha256:04312af2c5e72449aaebac4a2776f52ef010877c554103419d3f36066fe8af4c"}, - {file = "ollama-0.4.8.tar.gz", hash = "sha256:1121439d49b96fa8339842965d0616eba5deb9f8c790786cdf4c0b3df4833802"}, + {file = "ollama-0.4.9-py3-none-any.whl", hash = "sha256:18c8c85358c54d7f73d6a66cda495b0e3ba99fdb88f824ae470d740fbb211a50"}, + {file = "ollama-0.4.9.tar.gz", hash = "sha256:5266d4d29b5089a01489872b8e8f980f018bccbdd1082b3903448af1d5615ce7"}, ] [package.dependencies] -httpx = ">=0.27,<0.29" -pydantic = ">=2.9.0,<3.0.0" +httpx = ">=0.27" +pydantic = ">=2.9" [[package]] name = "openai" -version = "1.78.1" +version = "1.82.1" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.78.1-py3-none-any.whl", hash = "sha256:7368bf147ca499804cc408fe68cdb6866a060f38dec961bbc97b04f9d917907e"}, - {file = "openai-1.78.1.tar.gz", hash = "sha256:8b26b364531b100df1b961d03560042e5f5be11301d7d49a6cd1a2b9af824dca"}, + {file = "openai-1.82.1-py3-none-any.whl", hash = "sha256:334eb5006edf59aa464c9e932b9d137468d810b2659e5daea9b3a8c39d052395"}, + {file = "openai-1.82.1.tar.gz", hash = "sha256:ffc529680018e0417acac85f926f92aa0bbcbc26e82e2621087303c66bc7f95d"}, ] [package.dependencies] @@ -2967,30 +2909,30 @@ voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"] [[package]] name = "opentelemetry-api" -version = "1.29.0" +version = "1.33.1" description = "OpenTelemetry Python API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "opentelemetry_api-1.29.0-py3-none-any.whl", hash = "sha256:5fcd94c4141cc49c736271f3e1efb777bebe9cc535759c54c936cca4f1b312b8"}, - {file = "opentelemetry_api-1.29.0.tar.gz", hash = "sha256:d04a6cf78aad09614f52964ecb38021e248f5714dc32c2e0d8fd99517b4d69cf"}, + {file = "opentelemetry_api-1.33.1-py3-none-any.whl", hash = "sha256:4db83ebcf7ea93e64637ec6ee6fabee45c5cbe4abd9cf3da95c43828ddb50b83"}, + {file = "opentelemetry_api-1.33.1.tar.gz", hash = "sha256:1c6055fc0a2d3f23a50c7e17e16ef75ad489345fd3df1f8b8af7c0bbf8a109e8"}, ] [package.dependencies] deprecated = ">=1.2.6" -importlib-metadata = ">=6.0,<=8.5.0" +importlib-metadata = ">=6.0,<8.7.0" [[package]] name = "packaging" -version = "24.2" +version = "25.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, + {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, + {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, ] [[package]] @@ -3035,14 +2977,14 @@ files = [ [[package]] name = "pbs-installer" -version = "2025.3.17" +version = "2025.5.17" description = "Installer for Python Build Standalone" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "pbs_installer-2025.3.17-py3-none-any.whl", hash = "sha256:d2b0563b1d5d814e479f3c43d7aee019250f68a0a113d754714fa9a721f83b47"}, - {file = "pbs_installer-2025.3.17.tar.gz", hash = "sha256:dde058f925b989c1d3bd90739c16ffd0e68732f7716e4d1e01ca480d00a67560"}, + {file = "pbs_installer-2025.5.17-py3-none-any.whl", hash = "sha256:a235e6665efb4369e04267bbc6e547bbb8181cf405975fbbe9fe5c1c59452da6"}, + {file = "pbs_installer-2025.5.17.tar.gz", hash = "sha256:8e319b17662ae583e607d5fd46900cb2a7b31ee9ae0c695126c1b9b38e6a78a0"}, ] [package.dependencies] @@ -3073,99 +3015,101 @@ twisted = ["twisted"] [[package]] name = "pillow" -version = "10.4.0" +version = "11.2.1" description = "Python Imaging Library (Fork)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, - {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, - {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, - {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, - {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, - {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, - {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, - {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, - {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, - {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, - {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, - {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, - {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, - {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, - {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, - {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, - {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, - {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, - {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, - {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, + {file = "pillow-11.2.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:d57a75d53922fc20c165016a20d9c44f73305e67c351bbc60d1adaf662e74047"}, + {file = "pillow-11.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:127bf6ac4a5b58b3d32fc8289656f77f80567d65660bc46f72c0d77e6600cc95"}, + {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ba4be812c7a40280629e55ae0b14a0aafa150dd6451297562e1764808bbe61"}, + {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8bd62331e5032bc396a93609982a9ab6b411c05078a52f5fe3cc59234a3abd1"}, + {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:562d11134c97a62fe3af29581f083033179f7ff435f78392565a1ad2d1c2c45c"}, + {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c97209e85b5be259994eb5b69ff50c5d20cca0f458ef9abd835e262d9d88b39d"}, + {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0c3e6d0f59171dfa2e25d7116217543310908dfa2770aa64b8f87605f8cacc97"}, + {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc1c3bc53befb6096b84165956e886b1729634a799e9d6329a0c512ab651e579"}, + {file = "pillow-11.2.1-cp310-cp310-win32.whl", hash = "sha256:312c77b7f07ab2139924d2639860e084ec2a13e72af54d4f08ac843a5fc9c79d"}, + {file = "pillow-11.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9bc7ae48b8057a611e5fe9f853baa88093b9a76303937449397899385da06fad"}, + {file = "pillow-11.2.1-cp310-cp310-win_arm64.whl", hash = "sha256:2728567e249cdd939f6cc3d1f049595c66e4187f3c34078cbc0a7d21c47482d2"}, + {file = "pillow-11.2.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35ca289f712ccfc699508c4658a1d14652e8033e9b69839edf83cbdd0ba39e70"}, + {file = "pillow-11.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0409af9f829f87a2dfb7e259f78f317a5351f2045158be321fd135973fff7bf"}, + {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4e5c5edee874dce4f653dbe59db7c73a600119fbea8d31f53423586ee2aafd7"}, + {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93a07e76d13bff9444f1a029e0af2964e654bfc2e2c2d46bfd080df5ad5f3d8"}, + {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:e6def7eed9e7fa90fde255afaf08060dc4b343bbe524a8f69bdd2a2f0018f600"}, + {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8f4f3724c068be008c08257207210c138d5f3731af6c155a81c2b09a9eb3a788"}, + {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a0a6709b47019dff32e678bc12c63008311b82b9327613f534e496dacaefb71e"}, + {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f6b0c664ccb879109ee3ca702a9272d877f4fcd21e5eb63c26422fd6e415365e"}, + {file = "pillow-11.2.1-cp311-cp311-win32.whl", hash = "sha256:cc5d875d56e49f112b6def6813c4e3d3036d269c008bf8aef72cd08d20ca6df6"}, + {file = "pillow-11.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:0f5c7eda47bf8e3c8a283762cab94e496ba977a420868cb819159980b6709193"}, + {file = "pillow-11.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:4d375eb838755f2528ac8cbc926c3e31cc49ca4ad0cf79cff48b20e30634a4a7"}, + {file = "pillow-11.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:78afba22027b4accef10dbd5eed84425930ba41b3ea0a86fa8d20baaf19d807f"}, + {file = "pillow-11.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78092232a4ab376a35d68c4e6d5e00dfd73454bd12b230420025fbe178ee3b0b"}, + {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25a5f306095c6780c52e6bbb6109624b95c5b18e40aab1c3041da3e9e0cd3e2d"}, + {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c7b29dbd4281923a2bfe562acb734cee96bbb129e96e6972d315ed9f232bef4"}, + {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e645b020f3209a0181a418bffe7b4a93171eef6c4ef6cc20980b30bebf17b7d"}, + {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2dbea1012ccb784a65349f57bbc93730b96e85b42e9bf7b01ef40443db720b4"}, + {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da3104c57bbd72948d75f6a9389e6727d2ab6333c3617f0a89d72d4940aa0443"}, + {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:598174aef4589af795f66f9caab87ba4ff860ce08cd5bb447c6fc553ffee603c"}, + {file = "pillow-11.2.1-cp312-cp312-win32.whl", hash = "sha256:1d535df14716e7f8776b9e7fee118576d65572b4aad3ed639be9e4fa88a1cad3"}, + {file = "pillow-11.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:14e33b28bf17c7a38eede290f77db7c664e4eb01f7869e37fa98a5aa95978941"}, + {file = "pillow-11.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:21e1470ac9e5739ff880c211fc3af01e3ae505859392bf65458c224d0bf283eb"}, + {file = "pillow-11.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fdec757fea0b793056419bca3e9932eb2b0ceec90ef4813ea4c1e072c389eb28"}, + {file = "pillow-11.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0e130705d568e2f43a17bcbe74d90958e8a16263868a12c3e0d9c8162690830"}, + {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bdb5e09068332578214cadd9c05e3d64d99e0e87591be22a324bdbc18925be0"}, + {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d189ba1bebfbc0c0e529159631ec72bb9e9bc041f01ec6d3233d6d82eb823bc1"}, + {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:191955c55d8a712fab8934a42bfefbf99dd0b5875078240943f913bb66d46d9f"}, + {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ad275964d52e2243430472fc5d2c2334b4fc3ff9c16cb0a19254e25efa03a155"}, + {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:750f96efe0597382660d8b53e90dd1dd44568a8edb51cb7f9d5d918b80d4de14"}, + {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fe15238d3798788d00716637b3d4e7bb6bde18b26e5d08335a96e88564a36b6b"}, + {file = "pillow-11.2.1-cp313-cp313-win32.whl", hash = "sha256:3fe735ced9a607fee4f481423a9c36701a39719252a9bb251679635f99d0f7d2"}, + {file = "pillow-11.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:74ee3d7ecb3f3c05459ba95eed5efa28d6092d751ce9bf20e3e253a4e497e691"}, + {file = "pillow-11.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:5119225c622403afb4b44bad4c1ca6c1f98eed79db8d3bc6e4e160fc6339d66c"}, + {file = "pillow-11.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8ce2e8411c7aaef53e6bb29fe98f28cd4fbd9a1d9be2eeea434331aac0536b22"}, + {file = "pillow-11.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9ee66787e095127116d91dea2143db65c7bb1e232f617aa5957c0d9d2a3f23a7"}, + {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9622e3b6c1d8b551b6e6f21873bdcc55762b4b2126633014cea1803368a9aa16"}, + {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63b5dff3a68f371ea06025a1a6966c9a1e1ee452fc8020c2cd0ea41b83e9037b"}, + {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:31df6e2d3d8fc99f993fd253e97fae451a8db2e7207acf97859732273e108406"}, + {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:062b7a42d672c45a70fa1f8b43d1d38ff76b63421cbbe7f88146b39e8a558d91"}, + {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4eb92eca2711ef8be42fd3f67533765d9fd043b8c80db204f16c8ea62ee1a751"}, + {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f91ebf30830a48c825590aede79376cb40f110b387c17ee9bd59932c961044f9"}, + {file = "pillow-11.2.1-cp313-cp313t-win32.whl", hash = "sha256:e0b55f27f584ed623221cfe995c912c61606be8513bfa0e07d2c674b4516d9dd"}, + {file = "pillow-11.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:36d6b82164c39ce5482f649b437382c0fb2395eabc1e2b1702a6deb8ad647d6e"}, + {file = "pillow-11.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:225c832a13326e34f212d2072982bb1adb210e0cc0b153e688743018c94a2681"}, + {file = "pillow-11.2.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:7491cf8a79b8eb867d419648fff2f83cb0b3891c8b36da92cc7f1931d46108c8"}, + {file = "pillow-11.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b02d8f9cb83c52578a0b4beadba92e37d83a4ef11570a8688bbf43f4ca50909"}, + {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:014ca0050c85003620526b0ac1ac53f56fc93af128f7546623cc8e31875ab928"}, + {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3692b68c87096ac6308296d96354eddd25f98740c9d2ab54e1549d6c8aea9d79"}, + {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:f781dcb0bc9929adc77bad571b8621ecb1e4cdef86e940fe2e5b5ee24fd33b35"}, + {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:2b490402c96f907a166615e9a5afacf2519e28295f157ec3a2bb9bd57de638cb"}, + {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd6b20b93b3ccc9c1b597999209e4bc5cf2853f9ee66e3fc9a400a78733ffc9a"}, + {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4b835d89c08a6c2ee7781b8dd0a30209a8012b5f09c0a665b65b0eb3560b6f36"}, + {file = "pillow-11.2.1-cp39-cp39-win32.whl", hash = "sha256:b10428b3416d4f9c61f94b494681280be7686bda15898a3a9e08eb66a6d92d67"}, + {file = "pillow-11.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:6ebce70c3f486acf7591a3d73431fa504a4e18a9b97ff27f5f47b7368e4b9dd1"}, + {file = "pillow-11.2.1-cp39-cp39-win_arm64.whl", hash = "sha256:c27476257b2fdcd7872d54cfd119b3a9ce4610fb85c8e32b70b42e3680a29a1e"}, + {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9b7b0d4fd2635f54ad82785d56bc0d94f147096493a79985d0ab57aedd563156"}, + {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:aa442755e31c64037aa7c1cb186e0b369f8416c567381852c63444dd666fb772"}, + {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d3348c95b766f54b76116d53d4cb171b52992a1027e7ca50c81b43b9d9e363"}, + {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85d27ea4c889342f7e35f6d56e7e1cb345632ad592e8c51b693d7b7556043ce0"}, + {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bf2c33d6791c598142f00c9c4c7d47f6476731c31081331664eb26d6ab583e01"}, + {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e616e7154c37669fc1dfc14584f11e284e05d1c650e1c0f972f281c4ccc53193"}, + {file = "pillow-11.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:39ad2e0f424394e3aebc40168845fee52df1394a4673a6ee512d840d14ab3013"}, + {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80f1df8dbe9572b4b7abdfa17eb5d78dd620b1d55d9e25f834efdbee872d3aed"}, + {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ea926cfbc3957090becbcbbb65ad177161a2ff2ad578b5a6ec9bb1e1cd78753c"}, + {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:738db0e0941ca0376804d4de6a782c005245264edaa253ffce24e5a15cbdc7bd"}, + {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db98ab6565c69082ec9b0d4e40dd9f6181dab0dd236d26f7a50b8b9bfbd5076"}, + {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:036e53f4170e270ddb8797d4c590e6dd14d28e15c7da375c18978045f7e6c37b"}, + {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:14f73f7c291279bd65fda51ee87affd7c1e097709f7fdd0188957a16c264601f"}, + {file = "pillow-11.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:208653868d5c9ecc2b327f9b9ef34e0e42a4cdd172c2988fd81d62d2bc9bc044"}, + {file = "pillow-11.2.1.tar.gz", hash = "sha256:a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6"}, ] [package.extras] -docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +test-arrow = ["pyarrow"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] typing = ["typing-extensions ; python_version < \"3.10\""] xmp = ["defusedxml"] @@ -3240,36 +3184,36 @@ testing = ["pytest", "pytest-cov", "wheel"] [[package]] name = "platformdirs" -version = "4.3.6" +version = "4.3.8" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, + {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, + {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, ] [package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.14.1)"] [[package]] name = "pluggy" -version = "1.5.0" +version = "1.6.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, + {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, + {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] [package.extras] dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] +testing = ["coverage", "pytest", "pytest-benchmark"] [[package]] name = "poethepoet" @@ -3361,14 +3305,14 @@ tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "p [[package]] name = "postgrest" -version = "0.19.1" +version = "1.0.2" description = "PostgREST client for Python. This library provides an ORM interface to PostgREST." optional = false python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "postgrest-0.19.1-py3-none-any.whl", hash = "sha256:a8e7be4e1abc69fd8eee5a49d7dc3a76dfbffbd778beed0b2bd7accb3f4f3a2a"}, - {file = "postgrest-0.19.1.tar.gz", hash = "sha256:d8fa88953cced4f45efa0f412056c364f64ece8a35b5b35f458a7e58c133fbca"}, + {file = "postgrest-1.0.2-py3-none-any.whl", hash = "sha256:d115c56d3bd2672029a3805e9c73c14aa6608343dc5228db18e0e5e6134a3c62"}, + {file = "postgrest-1.0.2.tar.gz", hash = "sha256:42fa3a6e493d6c9e54afd907213608dcacb1f3d2f276ada19ef7b22bf64c78bd"}, ] [package.dependencies] @@ -3379,28 +3323,28 @@ strenum = {version = ">=0.4.9,<0.5.0", markers = "python_version < \"3.11\""} [[package]] name = "posthog" -version = "3.8.3" +version = "4.2.0" description = "Integrate PostHog into any python application." optional = false python-versions = "*" groups = ["main"] files = [ - {file = "posthog-3.8.3-py2.py3-none-any.whl", hash = "sha256:7215c4d7649b0c87905b42f460403311564996d776ab48d39852f46539a50f22"}, - {file = "posthog-3.8.3.tar.gz", hash = "sha256:263df03ea312d4b47a3d5ea393fdb22ff2ed78140d5ce9af9dd0618ae245a44b"}, + {file = "posthog-4.2.0-py2.py3-none-any.whl", hash = "sha256:60c7066caac43e43e326e9196d8c1aadeafc8b0be9e5c108446e352711fa456b"}, + {file = "posthog-4.2.0.tar.gz", hash = "sha256:c4abc95de03294be005b3b7e8735e9d7abab88583da26262112bacce64b0c3b5"}, ] [package.dependencies] backoff = ">=1.10.0" -monotonic = ">=1.5" -python-dateutil = ">2.1" +distro = ">=1.5.0" +python-dateutil = ">=2.2" requests = ">=2.7,<3.0" six = ">=1.5" [package.extras] -dev = ["black", "flake8", "flake8-print", "isort", "pre-commit"] +dev = ["black", "django-stubs", "flake8", "flake8-print", "isort", "lxml", "mypy", "mypy-baseline", "pre-commit", "pydantic", "types-mock", "types-python-dateutil", "types-requests", "types-setuptools", "types-six"] langchain = ["langchain (>=0.2.0)"] sentry = ["django", "sentry-sdk"] -test = ["coverage", "django", "flake8", "freezegun (==0.3.15)", "langchain-community (>=0.2.0)", "langchain-openai (>=0.2.0)", "mock (>=2.0.0)", "pylint", "pytest", "pytest-asyncio", "pytest-timeout"] +test = ["anthropic", "coverage", "django", "flake8", "freezegun (==1.5.1)", "google-genai", "langchain-anthropic (>=0.2.0)", "langchain-community (>=0.2.0)", "langchain-openai (>=0.2.0)", "langgraph", "mock (>=2.0.0)", "openai", "parameterized (>=0.8.1)", "pydantic", "pylint", "pytest", "pytest-asyncio", "pytest-timeout"] [[package]] name = "postmarker" @@ -3491,14 +3435,14 @@ node = ["nodejs-bin"] [[package]] name = "proglog" -version = "0.1.10" +version = "0.1.12" description = "Log and progress bar manager for console, notebooks, web..." optional = false python-versions = "*" groups = ["main"] files = [ - {file = "proglog-0.1.10-py3-none-any.whl", hash = "sha256:19d5da037e8c813da480b741e3fa71fb1ac0a5b02bf21c41577c7f327485ec50"}, - {file = "proglog-0.1.10.tar.gz", hash = "sha256:658c28c9c82e4caeb2f25f488fff9ceace22f8d69b15d0c1c86d64275e4ddab4"}, + {file = "proglog-0.1.12-py3-none-any.whl", hash = "sha256:ccaafce51e80a81c65dc907a460c07ccb8ec1f78dc660cfd8f9ec3a22f01b84c"}, + {file = "proglog-0.1.12.tar.gz", hash = "sha256:361ee074721c277b89b75c061336cb8c5f287c92b043efa562ccf7866cda931c"}, ] [package.dependencies] @@ -3521,133 +3465,149 @@ twisted = ["twisted"] [[package]] name = "propcache" -version = "0.2.1" +version = "0.3.1" description = "Accelerated property cache" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, - {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, - {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, - {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, - {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, - {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, - {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, - {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, - {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, - {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, - {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, - {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, - {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, - {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, - {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, - {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, - {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, - {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, - {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, - {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, - {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, - {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, - {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, - {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, - {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, + {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"}, + {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"}, + {file = "propcache-0.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:730178f476ef03d3d4d255f0c9fa186cb1d13fd33ffe89d39f2cda4da90ceb71"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967a8eec513dbe08330f10137eacb427b2ca52118769e82ebcfcab0fba92a649"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b9145c35cc87313b5fd480144f8078716007656093d23059e8993d3a8fa730f"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e64e948ab41411958670f1093c0a57acfdc3bee5cf5b935671bbd5313bcf229"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319fa8765bfd6a265e5fa661547556da381e53274bc05094fc9ea50da51bfd46"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66d8ccbc902ad548312b96ed8d5d266d0d2c6d006fd0f66323e9d8f2dd49be7"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2d219b0dbabe75e15e581fc1ae796109b07c8ba7d25b9ae8d650da582bed01b0"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd6a55f65241c551eb53f8cf4d2f4af33512c39da5d9777694e9d9c60872f519"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9979643ffc69b799d50d3a7b72b5164a2e97e117009d7af6dfdd2ab906cb72cd"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4cf9e93a81979f1424f1a3d155213dc928f1069d697e4353edb8a5eba67c6259"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2fce1df66915909ff6c824bbb5eb403d2d15f98f1518e583074671a30fe0c21e"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4d0dfdd9a2ebc77b869a0b04423591ea8823f791293b527dc1bb896c1d6f1136"}, + {file = "propcache-0.3.1-cp310-cp310-win32.whl", hash = "sha256:1f6cc0ad7b4560e5637eb2c994e97b4fa41ba8226069c9277eb5ea7101845b42"}, + {file = "propcache-0.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:47ef24aa6511e388e9894ec16f0fbf3313a53ee68402bc428744a367ec55b833"}, + {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7f30241577d2fef2602113b70ef7231bf4c69a97e04693bde08ddab913ba0ce5"}, + {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:43593c6772aa12abc3af7784bff4a41ffa921608dd38b77cf1dfd7f5c4e71371"}, + {file = "propcache-0.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a75801768bbe65499495660b777e018cbe90c7980f07f8aa57d6be79ea6f71da"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f1324db48f001c2ca26a25fa25af60711e09b9aaf4b28488602776f4f9a744"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cdb0f3e1eb6dfc9965d19734d8f9c481b294b5274337a8cb5cb01b462dcb7e0"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb34d90aac9bfbced9a58b266f8946cb5935869ff01b164573a7634d39fbcb5"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35c7070eeec2cdaac6fd3fe245226ed2a6292d3ee8c938e5bb645b434c5f256"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b23c11c2c9e6d4e7300c92e022046ad09b91fd00e36e83c44483df4afa990073"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e19ea4ea0bf46179f8a3652ac1426e6dcbaf577ce4b4f65be581e237340420d"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bd39c92e4c8f6cbf5f08257d6360123af72af9f4da75a690bef50da77362d25f"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0313e8b923b3814d1c4a524c93dfecea5f39fa95601f6a9b1ac96cd66f89ea0"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e861ad82892408487be144906a368ddbe2dc6297074ade2d892341b35c59844a"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:61014615c1274df8da5991a1e5da85a3ccb00c2d4701ac6f3383afd3ca47ab0a"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:71ebe3fe42656a2328ab08933d420df5f3ab121772eef78f2dc63624157f0ed9"}, + {file = "propcache-0.3.1-cp311-cp311-win32.whl", hash = "sha256:58aa11f4ca8b60113d4b8e32d37e7e78bd8af4d1a5b5cb4979ed856a45e62005"}, + {file = "propcache-0.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:9532ea0b26a401264b1365146c440a6d78269ed41f83f23818d4b79497aeabe7"}, + {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f78eb8422acc93d7b69964012ad7048764bb45a54ba7a39bb9e146c72ea29723"}, + {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89498dd49c2f9a026ee057965cdf8192e5ae070ce7d7a7bd4b66a8e257d0c976"}, + {file = "propcache-0.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09400e98545c998d57d10035ff623266927cb784d13dd2b31fd33b8a5316b85b"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8efd8c5adc5a2c9d3b952815ff8f7710cefdcaf5f2c36d26aff51aeca2f12f"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2fe5c910f6007e716a06d269608d307b4f36e7babee5f36533722660e8c4a70"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ab8cf8cdd2194f8ff979a43ab43049b1df0b37aa64ab7eca04ac14429baeb7"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:563f9d8c03ad645597b8d010ef4e9eab359faeb11a0a2ac9f7b4bc8c28ebef25"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb6e0faf8cb6b4beea5d6ed7b5a578254c6d7df54c36ccd3d8b3eb00d6770277"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1c5c7ab7f2bb3f573d1cb921993006ba2d39e8621019dffb1c5bc94cdbae81e8"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:050b571b2e96ec942898f8eb46ea4bfbb19bd5502424747e83badc2d4a99a44e"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e1c4d24b804b3a87e9350f79e2371a705a188d292fd310e663483af6ee6718ee"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e4fe2a6d5ce975c117a6bb1e8ccda772d1e7029c1cca1acd209f91d30fa72815"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:feccd282de1f6322f56f6845bf1207a537227812f0a9bf5571df52bb418d79d5"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec314cde7314d2dd0510c6787326bbffcbdc317ecee6b7401ce218b3099075a7"}, + {file = "propcache-0.3.1-cp312-cp312-win32.whl", hash = "sha256:7d2d5a0028d920738372630870e7d9644ce437142197f8c827194fca404bf03b"}, + {file = "propcache-0.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:88c423efef9d7a59dae0614eaed718449c09a5ac79a5f224a8b9664d603f04a3"}, + {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8"}, + {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f"}, + {file = "propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef"}, + {file = "propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24"}, + {file = "propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037"}, + {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f"}, + {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c"}, + {file = "propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a"}, + {file = "propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d"}, + {file = "propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e"}, + {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ed5f6d2edbf349bd8d630e81f474d33d6ae5d07760c44d33cd808e2f5c8f4ae6"}, + {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:668ddddc9f3075af019f784456267eb504cb77c2c4bd46cc8402d723b4d200bf"}, + {file = "propcache-0.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0c86e7ceea56376216eba345aa1fc6a8a6b27ac236181f840d1d7e6a1ea9ba5c"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83be47aa4e35b87c106fc0c84c0fc069d3f9b9b06d3c494cd404ec6747544894"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c6ac6aa9fc7bc662f594ef380707494cb42c22786a558d95fcdedb9aa5d035"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a956dff37080b352c1c40b2966b09defb014347043e740d420ca1eb7c9b908"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82de5da8c8893056603ac2d6a89eb8b4df49abf1a7c19d536984c8dd63f481d5"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3c3a203c375b08fd06a20da3cf7aac293b834b6f4f4db71190e8422750cca5"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b303b194c2e6f171cfddf8b8ba30baefccf03d36a4d9cab7fd0bb68ba476a3d7"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:916cd229b0150129d645ec51614d38129ee74c03293a9f3f17537be0029a9641"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a461959ead5b38e2581998700b26346b78cd98540b5524796c175722f18b0294"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:069e7212890b0bcf9b2be0a03afb0c2d5161d91e1bf51569a64f629acc7defbf"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ef2e4e91fb3945769e14ce82ed53007195e616a63aa43b40fb7ebaaf907c8d4c"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8638f99dca15b9dff328fb6273e09f03d1c50d9b6512f3b65a4154588a7595fe"}, + {file = "propcache-0.3.1-cp39-cp39-win32.whl", hash = "sha256:6f173bbfe976105aaa890b712d1759de339d8a7cef2fc0a1714cc1a1e1c47f64"}, + {file = "propcache-0.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:603f1fe4144420374f1a69b907494c3acbc867a581c2d49d4175b0de7cc64566"}, + {file = "propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40"}, + {file = "propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf"}, ] [[package]] name = "proto-plus" -version = "1.25.0" -description = "Beautiful, Pythonic protocol buffers." +version = "1.26.1" +description = "Beautiful, Pythonic protocol buffers" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "proto_plus-1.25.0-py3-none-any.whl", hash = "sha256:c91fc4a65074ade8e458e95ef8bac34d4008daa7cce4a12d6707066fca648961"}, - {file = "proto_plus-1.25.0.tar.gz", hash = "sha256:fbb17f57f7bd05a68b7707e745e26528b0b3c34e378db91eef93912c54982d91"}, + {file = "proto_plus-1.26.1-py3-none-any.whl", hash = "sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66"}, + {file = "proto_plus-1.26.1.tar.gz", hash = "sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012"}, ] [package.dependencies] -protobuf = ">=3.19.0,<6.0.0dev" +protobuf = ">=3.19.0,<7.0.0" [package.extras] testing = ["google-api-core (>=1.31.5)"] [[package]] name = "protobuf" -version = "5.29.4" +version = "5.29.5" description = "" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "protobuf-5.29.4-cp310-abi3-win32.whl", hash = "sha256:13eb236f8eb9ec34e63fc8b1d6efd2777d062fa6aaa68268fb67cf77f6839ad7"}, - {file = "protobuf-5.29.4-cp310-abi3-win_amd64.whl", hash = "sha256:bcefcdf3976233f8a502d265eb65ea740c989bacc6c30a58290ed0e519eb4b8d"}, - {file = "protobuf-5.29.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:307ecba1d852ec237e9ba668e087326a67564ef83e45a0189a772ede9e854dd0"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:aec4962f9ea93c431d5714ed1be1c93f13e1a8618e70035ba2b0564d9e633f2e"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:d7d3f7d1d5a66ed4942d4fefb12ac4b14a29028b209d4bfb25c68ae172059922"}, - {file = "protobuf-5.29.4-cp38-cp38-win32.whl", hash = "sha256:1832f0515b62d12d8e6ffc078d7e9eb06969aa6dc13c13e1036e39d73bebc2de"}, - {file = "protobuf-5.29.4-cp38-cp38-win_amd64.whl", hash = "sha256:476cb7b14914c780605a8cf62e38c2a85f8caff2e28a6a0bad827ec7d6c85d68"}, - {file = "protobuf-5.29.4-cp39-cp39-win32.whl", hash = "sha256:fd32223020cb25a2cc100366f1dedc904e2d71d9322403224cdde5fdced0dabe"}, - {file = "protobuf-5.29.4-cp39-cp39-win_amd64.whl", hash = "sha256:678974e1e3a9b975b8bc2447fca458db5f93a2fb6b0c8db46b6675b5b5346812"}, - {file = "protobuf-5.29.4-py3-none-any.whl", hash = "sha256:3fde11b505e1597f71b875ef2fc52062b6a9740e5f7c8997ce878b6009145862"}, - {file = "protobuf-5.29.4.tar.gz", hash = "sha256:4f1dfcd7997b31ef8f53ec82781ff434a28bf71d9102ddde14d076adcfc78c99"}, + {file = "protobuf-5.29.5-cp310-abi3-win32.whl", hash = "sha256:3f1c6468a2cfd102ff4703976138844f78ebd1fb45f49011afc5139e9e283079"}, + {file = "protobuf-5.29.5-cp310-abi3-win_amd64.whl", hash = "sha256:3f76e3a3675b4a4d867b52e4a5f5b78a2ef9565549d4037e06cf7b0942b1d3fc"}, + {file = "protobuf-5.29.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e38c5add5a311f2a6eb0340716ef9b039c1dfa428b28f25a7838ac329204a671"}, + {file = "protobuf-5.29.5-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:fa18533a299d7ab6c55a238bf8629311439995f2e7eca5caaff08663606e9015"}, + {file = "protobuf-5.29.5-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:63848923da3325e1bf7e9003d680ce6e14b07e55d0473253a690c3a8b8fd6e61"}, + {file = "protobuf-5.29.5-cp38-cp38-win32.whl", hash = "sha256:ef91363ad4faba7b25d844ef1ada59ff1604184c0bcd8b39b8a6bef15e1af238"}, + {file = "protobuf-5.29.5-cp38-cp38-win_amd64.whl", hash = "sha256:7318608d56b6402d2ea7704ff1e1e4597bee46d760e7e4dd42a3d45e24b87f2e"}, + {file = "protobuf-5.29.5-cp39-cp39-win32.whl", hash = "sha256:6f642dc9a61782fa72b90878af134c5afe1917c89a568cd3476d758d3c3a0736"}, + {file = "protobuf-5.29.5-cp39-cp39-win_amd64.whl", hash = "sha256:470f3af547ef17847a28e1f47200a1cbf0ba3ff57b7de50d22776607cd2ea353"}, + {file = "protobuf-5.29.5-py3-none-any.whl", hash = "sha256:6cf42630262c59b2d8de33954443d94b746c952b01434fc58a417fdbd2e84bd5"}, + {file = "protobuf-5.29.5.tar.gz", hash = "sha256:bc1463bafd4b0929216c35f437a8e28731a2b7fe3d98bb77a600efced5a15c84"}, ] [[package]] @@ -3766,18 +3726,18 @@ files = [ [[package]] name = "pyasn1-modules" -version = "0.4.1" +version = "0.4.2" description = "A collection of ASN.1-based protocols modules" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"}, - {file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"}, + {file = "pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a"}, + {file = "pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6"}, ] [package.dependencies] -pyasn1 = ">=0.4.6,<0.7.0" +pyasn1 = ">=0.6.1,<0.7.0" [[package]] name = "pycodestyle" @@ -3805,14 +3765,14 @@ files = [ [[package]] name = "pydantic" -version = "2.11.4" +version = "2.11.5" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pydantic-2.11.4-py3-none-any.whl", hash = "sha256:d9615eaa9ac5a063471da949c8fc16376a84afb5024688b3ff885693506764eb"}, - {file = "pydantic-2.11.4.tar.gz", hash = "sha256:32738d19d63a226a52eed76645a98ee07c1f410ee41d93b4afbfa85ed8111c2d"}, + {file = "pydantic-2.11.5-py3-none-any.whl", hash = "sha256:f9c26ba06f9747749ca1e5c94d6a85cb84254577553c8785576fd38fa64dc0f7"}, + {file = "pydantic-2.11.5.tar.gz", hash = "sha256:7f853db3d0ce78ce8bbb148c401c2cdd6431b3473c0cdff2755c7690952a7b7a"}, ] [package.dependencies] @@ -3994,14 +3954,14 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pyparsing" -version = "3.2.1" +version = "3.2.3" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"}, - {file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"}, + {file = "pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf"}, + {file = "pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be"}, ] [package.extras] @@ -4033,14 +3993,14 @@ files = [ [[package]] name = "pyright" -version = "1.1.400" +version = "1.1.401" description = "Command line wrapper for pyright" optional = false python-versions = ">=3.7" groups = ["dev"] files = [ - {file = "pyright-1.1.400-py3-none-any.whl", hash = "sha256:c80d04f98b5a4358ad3a35e241dbf2a408eee33a40779df365644f8054d2517e"}, - {file = "pyright-1.1.400.tar.gz", hash = "sha256:b8a3ba40481aa47ba08ffb3228e821d22f7d391f83609211335858bf05686bdb"}, + {file = "pyright-1.1.401-py3-none-any.whl", hash = "sha256:6fde30492ba5b0d7667c16ecaf6c699fab8d7a1263f6a18549e0b00bf7724c06"}, + {file = "pyright-1.1.401.tar.gz", hash = "sha256:788a82b6611fa5e34a326a921d86d898768cddf59edde8e93e56087d277cc6f1"}, ] [package.dependencies] @@ -4096,14 +4056,14 @@ testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] [[package]] name = "pytest-mock" -version = "3.14.0" +version = "3.14.1" description = "Thin-wrapper around the mock package for easier use with pytest" optional = false python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, - {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, + {file = "pytest_mock-3.14.1-py3-none-any.whl", hash = "sha256:178aefcd11307d874b4cd3100344e7e2d888d9791a6a1d9bfe90fbc1b74fd1d0"}, + {file = "pytest_mock-3.14.1.tar.gz", hash = "sha256:159e9edac4c451ce77a5cdb9fc5d1100708d2dd4ba3c3df572f14097351af80e"}, ] [package.dependencies] @@ -4112,6 +4072,21 @@ pytest = ">=6.2.5" [package.extras] dev = ["pre-commit", "pytest-asyncio", "tox"] +[[package]] +name = "pytest-snapshot" +version = "0.9.0" +description = "A plugin for snapshot testing with pytest." +optional = false +python-versions = ">=3.5" +groups = ["main"] +files = [ + {file = "pytest-snapshot-0.9.0.tar.gz", hash = "sha256:c7013c3abc3e860f9feff899f8b4debe3708650d8d8242a61bf2625ff64db7f3"}, + {file = "pytest_snapshot-0.9.0-py3-none-any.whl", hash = "sha256:4b9fe1c21c868fe53a545e4e3184d36bc1c88946e3f5c1d9dd676962a9b3d4ab"}, +] + +[package.dependencies] +pytest = ">=3.0.0" + [[package]] name = "pytest-watcher" version = "0.4.3" @@ -4172,43 +4147,41 @@ files = [ [[package]] name = "pytz" -version = "2024.2" +version = "2025.2" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" groups = ["main"] files = [ - {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, - {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, ] [[package]] name = "pywin32" -version = "308" +version = "310" description = "Python for Window Extensions" optional = false python-versions = "*" groups = ["main"] markers = "platform_system == \"Windows\"" files = [ - {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, - {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, - {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, - {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, - {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, - {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, - {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, - {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, - {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, - {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, - {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, - {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, - {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, - {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, - {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, + {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, + {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, + {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, + {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, + {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, + {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, + {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, + {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, + {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, + {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, + {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, + {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, + {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, + {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, + {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, + {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, ] [[package]] @@ -4289,134 +4262,134 @@ files = [ [[package]] name = "qdrant-client" -version = "1.12.2" +version = "1.14.2" description = "Client library for the Qdrant vector search engine" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "qdrant_client-1.12.2-py3-none-any.whl", hash = "sha256:a0ae500a46a679ff3521ba3f1f1cf3d72b57090a768cec65fc317066bcbac1e6"}, - {file = "qdrant_client-1.12.2.tar.gz", hash = "sha256:2777e09b3e89bb22bb490384d8b1fa8140f3915287884f18984f7031a346aba5"}, + {file = "qdrant_client-1.14.2-py3-none-any.whl", hash = "sha256:7c283b1f0e71db9c21b85d898fb395791caca2a6d56ee751da96d797b001410c"}, + {file = "qdrant_client-1.14.2.tar.gz", hash = "sha256:da5cab4d367d099d1330b6f30d45aefc8bd76f8b8f9d8fa5d4f813501b93af0d"}, ] [package.dependencies] grpcio = ">=1.41.0" -grpcio-tools = ">=1.41.0" httpx = {version = ">=0.20.0", extras = ["http2"]} numpy = [ {version = ">=1.21", markers = "python_version >= \"3.10\" and python_version < \"3.12\""}, {version = ">=1.26", markers = "python_version == \"3.12\""}, ] portalocker = ">=2.7.0,<3.0.0" -pydantic = ">=1.10.8" +protobuf = ">=3.20.0" +pydantic = ">=1.10.8,<2.0.dev0 || >2.2.0" urllib3 = ">=1.26.14,<3" [package.extras] -fastembed = ["fastembed (==0.5.0)"] -fastembed-gpu = ["fastembed-gpu (==0.5.0)"] +fastembed = ["fastembed (==0.6.1)"] +fastembed-gpu = ["fastembed-gpu (==0.6.1)"] [[package]] name = "rapidfuzz" -version = "3.12.2" +version = "3.13.0" description = "rapid fuzzy string matching" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "rapidfuzz-3.12.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0b9a75e0385a861178adf59e86d6616cbd0d5adca7228dc9eeabf6f62cf5b0b1"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6906a7eb458731e3dd2495af1d0410e23a21a2a2b7ced535e6d5cd15cb69afc5"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4b3334a8958b689f292d5ce8a928140ac98919b51e084f04bf0c14276e4c6ba"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:85a54ce30345cff2c79cbcffa063f270ad1daedd0d0c3ff6e541d3c3ba4288cf"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acb63c5072c08058f8995404201a52fc4e1ecac105548a4d03c6c6934bda45a3"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5385398d390c6571f0f2a7837e6ddde0c8b912dac096dc8c87208ce9aaaa7570"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5032cbffa245b4beba0067f8ed17392ef2501b346ae3c1f1d14b950edf4b6115"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:195adbb384d89d6c55e2fd71e7fb262010f3196e459aa2f3f45f31dd7185fe72"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f43b773a4d4950606fb25568ecde5f25280daf8f97b87eb323e16ecd8177b328"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:55a43be0e0fa956a919043c19d19bd988991d15c59f179d413fe5145ed9deb43"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:71cf1ea16acdebe9e2fb62ee7a77f8f70e877bebcbb33b34e660af2eb6d341d9"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a3692d4ab36d44685f61326dca539975a4eda49b2a76f0a3df177d8a2c0de9d2"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-win32.whl", hash = "sha256:09227bd402caa4397ba1d6e239deea635703b042dd266a4092548661fb22b9c6"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-win_amd64.whl", hash = "sha256:0f05b7b95f9f87254b53fa92048367a8232c26cee7fc8665e4337268c3919def"}, - {file = "rapidfuzz-3.12.2-cp310-cp310-win_arm64.whl", hash = "sha256:6938738e00d9eb6e04097b3f565097e20b0c398f9c58959a2bc64f7f6be3d9da"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e9c4d984621ae17404c58f8d06ed8b025e167e52c0e6a511dfec83c37e9220cd"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9f9132c55d330f0a1d34ce6730a76805323a6250d97468a1ca766a883d6a9a25"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b343b6cb4b2c3dbc8d2d4c5ee915b6088e3b144ddf8305a57eaab16cf9fc74"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24081077b571ec4ee6d5d7ea0e49bc6830bf05b50c1005028523b9cd356209f3"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c988a4fc91856260355773bf9d32bebab2083d4c6df33fafeddf4330e5ae9139"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:780b4469ee21cf62b1b2e8ada042941fd2525e45d5fb6a6901a9798a0e41153c"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:edd84b0a323885493c893bad16098c5e3b3005d7caa995ae653da07373665d97"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efa22059c765b3d8778083805b199deaaf643db070f65426f87d274565ddf36a"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:095776b11bb45daf7c2973dd61cc472d7ea7f2eecfa454aef940b4675659b92f"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7e2574cf4aa86065600b664a1ac7b8b8499107d102ecde836aaaa403fc4f1784"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d5a3425a6c50fd8fbd991d8f085ddb504791dae6ef9cc3ab299fea2cb5374bef"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97fb05e1ddb7b71a054040af588b0634214ee87cea87900d309fafc16fd272a4"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-win32.whl", hash = "sha256:b4c5a0413589aef936892fbfa94b7ff6f7dd09edf19b5a7b83896cc9d4e8c184"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-win_amd64.whl", hash = "sha256:58d9ae5cf9246d102db2a2558b67fe7e73c533e5d769099747921232d88b9be2"}, - {file = "rapidfuzz-3.12.2-cp311-cp311-win_arm64.whl", hash = "sha256:7635fe34246cd241c8e35eb83084e978b01b83d5ef7e5bf72a704c637f270017"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1d982a651253ffe8434d9934ff0c1089111d60502228464721a2a4587435e159"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:02e6466caa0222d5233b1f05640873671cd99549a5c5ba4c29151634a1e56080"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e956b3f053e474abae69ac693a52742109d860ac2375fe88e9387d3277f4c96c"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2dee7d740a2d5418d4f964f39ab8d89923e6b945850db833e798a1969b19542a"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a057cdb0401e42c84b6516c9b1635f7aedd5e430c6e388bd5f6bcd1d6a0686bb"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dccf8d4fb5b86d39c581a59463c596b1d09df976da26ff04ae219604223d502f"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21d5b3793c6f5aecca595cd24164bf9d3c559e315ec684f912146fc4e769e367"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:46a616c0e13cff2de1761b011e0b14bb73b110182f009223f1453d505c9a975c"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:19fa5bc4301a1ee55400d4a38a8ecf9522b0391fc31e6da5f4d68513fe5c0026"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:544a47190a0d25971658a9365dba7095397b4ce3e897f7dd0a77ca2cf6fa984e"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f21af27c5e001f0ba1b88c36a0936437dfe034c452548d998891c21125eb640f"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b63170d9db00629b5b3f2862114d8d6ee19127eaba0eee43762d62a25817dbe0"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-win32.whl", hash = "sha256:6c7152d77b2eb6bfac7baa11f2a9c45fd5a2d848dbb310acd0953b3b789d95c9"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-win_amd64.whl", hash = "sha256:1a314d170ee272ac87579f25a6cf8d16a031e1f7a7b07663434b41a1473bc501"}, - {file = "rapidfuzz-3.12.2-cp312-cp312-win_arm64.whl", hash = "sha256:d41e8231326e94fd07c4d8f424f6bed08fead6f5e6688d1e6e787f1443ae7631"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:941f31038dba5d3dedcfcceba81d61570ad457c873a24ceb13f4f44fcb574260"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fe2dfc454ee51ba168a67b1e92b72aad251e45a074972cef13340bbad2fd9438"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78fafaf7f5a48ee35ccd7928339080a0136e27cf97396de45259eca1d331b714"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0c7989ff32c077bb8fd53253fd6ca569d1bfebc80b17557e60750e6909ba4fe"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96fa00bc105caa34b6cd93dca14a29243a3a7f0c336e4dcd36348d38511e15ac"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bccfb30c668620c5bc3490f2dc7d7da1cca0ead5a9da8b755e2e02e2ef0dff14"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f9b0adc3d894beb51f5022f64717b6114a6fabaca83d77e93ac7675911c8cc5"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:32691aa59577f42864d5535cb6225d0f47e2c7bff59cf4556e5171e96af68cc1"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:758b10380ad34c1f51753a070d7bb278001b5e6fcf544121c6df93170952d705"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:50a9c54c0147b468363119132d514c5024fbad1ed8af12bd8bd411b0119f9208"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e3ceb87c11d2d0fbe8559bb795b0c0604b84cfc8bb7b8720b5c16e9e31e00f41"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f7c9a003002434889255ff5676ca0f8934a478065ab5e702f75dc42639505bba"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-win32.whl", hash = "sha256:cf165a76870cd875567941cf861dfd361a0a6e6a56b936c5d30042ddc9def090"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-win_amd64.whl", hash = "sha256:55bcc003541f5f16ec0a73bf6de758161973f9e8d75161954380738dd147f9f2"}, - {file = "rapidfuzz-3.12.2-cp313-cp313-win_arm64.whl", hash = "sha256:69f6ecdf1452139f2b947d0c169a605de578efdb72cbb2373cb0a94edca1fd34"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c852cd8bed1516a64fd6e2d4c6f270d4356196ee03fda2af1e5a9e13c34643"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:42e7f747b55529a6d0d1588695d71025e884ab48664dca54b840413dea4588d8"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a749fd2690f24ef256b264a781487746bbb95344364fe8fe356f0eef7ef206ba"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a11e1d036170bbafa43a9e63d8c309273564ec5bdfc5439062f439d1a16965a"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dfb337f1832c1231e3d5621bd0ebebb854e46036aedae3e6a49c1fc08f16f249"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e88c6e68fca301722fa3ab7fd3ca46998012c14ada577bc1e2c2fc04f2067ca6"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17e1a3a8b4b5125cfb63a6990459b25b87ea769bdaf90d05bb143f8febef076a"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9f8177b24ccc0a843e85932b1088c5e467a7dd7a181c13f84c684b796bea815"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6c506bdc2f304051592c0d3b0e82eed309248ec10cdf802f13220251358375ea"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:30bf15c1ecec2798b713d551df17f23401a3e3653ad9ed4e83ad1c2b06e86100"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:bd9a67cfc83e8453ef17ddd1c2c4ce4a74d448a197764efb54c29f29fb41f611"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7a6eaec2ef658dd650c6eb9b36dff7a361ebd7d8bea990ce9d639b911673b2cb"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-win32.whl", hash = "sha256:d7701769f110332cde45c41759cb2a497de8d2dca55e4c519a46aed5fbb19d1a"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-win_amd64.whl", hash = "sha256:296bf0fd4f678488670e262c87a3e4f91900b942d73ae38caa42a417e53643b1"}, - {file = "rapidfuzz-3.12.2-cp39-cp39-win_arm64.whl", hash = "sha256:7957f5d768de14f6b2715303ccdf224b78416738ee95a028a2965c95f73afbfb"}, - {file = "rapidfuzz-3.12.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e5fd3ce849b27d063755829cda27a9dab6dbd63be3801f2a40c60ec563a4c90f"}, - {file = "rapidfuzz-3.12.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:54e53662d71ed660c83c5109127c8e30b9e607884b7c45d2aff7929bbbd00589"}, - {file = "rapidfuzz-3.12.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b9e43cf2213e524f3309d329f1ad8dbf658db004ed44f6ae1cd2919aa997da5"}, - {file = "rapidfuzz-3.12.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29ca445e320e5a8df3bd1d75b4fa4ecfa7c681942b9ac65b55168070a1a1960e"}, - {file = "rapidfuzz-3.12.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83eb7ef732c2f8533c6b5fbe69858a722c218acc3e1fc190ab6924a8af7e7e0e"}, - {file = "rapidfuzz-3.12.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:648adc2dd2cf873efc23befcc6e75754e204a409dfa77efd0fea30d08f22ef9d"}, - {file = "rapidfuzz-3.12.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9b1e6f48e1ffa0749261ee23a1c6462bdd0be5eac83093f4711de17a42ae78ad"}, - {file = "rapidfuzz-3.12.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:1ae9ded463f2ca4ba1eb762913c5f14c23d2e120739a62b7f4cc102eab32dc90"}, - {file = "rapidfuzz-3.12.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dda45f47b559be72ecbce45c7f71dc7c97b9772630ab0f3286d97d2c3025ab71"}, - {file = "rapidfuzz-3.12.2-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3745c6443890265513a3c8777f2de4cb897aeb906a406f97741019be8ad5bcc"}, - {file = "rapidfuzz-3.12.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36d3ef4f047ed1bc96fa29289f9e67a637ddca5e4f4d3dc7cb7f50eb33ec1664"}, - {file = "rapidfuzz-3.12.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:54bb69ebe5ca0bd7527357e348f16a4c0c52fe0c2fcc8a041010467dcb8385f7"}, - {file = "rapidfuzz-3.12.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3f2ddd5b99b254039a8c82be5749d4d75943f62eb2c2918acf6ffd586852834f"}, - {file = "rapidfuzz-3.12.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:8117dab9b26a1aaffab59b4e30f80ac4d55e61ad4139a637c149365960933bee"}, - {file = "rapidfuzz-3.12.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40c0f16d62d6553527de3dab2fb69709c4383430ea44bce8fb4711ed4cbc6ae3"}, - {file = "rapidfuzz-3.12.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f177e1eb6e4f5261a89c475e21bce7a99064a8f217d2336fb897408f46f0ceaf"}, - {file = "rapidfuzz-3.12.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5df0cecc2852fcb078ed1b4482fac4fc2c2e7787f3edda8920d9a4c0f51b1c95"}, - {file = "rapidfuzz-3.12.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b3c4df0321df6f8f0b61afbaa2ced9622750ee1e619128db57a18533d139820"}, - {file = "rapidfuzz-3.12.2.tar.gz", hash = "sha256:b0ba1ccc22fff782e7152a3d3d0caca44ec4e32dc48ba01c560b8593965b5aa3"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:aafc42a1dc5e1beeba52cd83baa41372228d6d8266f6d803c16dbabbcc156255"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:85c9a131a44a95f9cac2eb6e65531db014e09d89c4f18c7b1fa54979cb9ff1f3"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d7cec4242d30dd521ef91c0df872e14449d1dffc2a6990ede33943b0dae56c3"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e297c09972698c95649e89121e3550cee761ca3640cd005e24aaa2619175464e"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ef0f5f03f61b0e5a57b1df7beafd83df993fd5811a09871bad6038d08e526d0d"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d8cf5f7cd6e4d5eb272baf6a54e182b2c237548d048e2882258336533f3f02b7"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9256218ac8f1a957806ec2fb9a6ddfc6c32ea937c0429e88cf16362a20ed8602"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1bdd2e6d0c5f9706ef7595773a81ca2b40f3b33fd7f9840b726fb00c6c4eb2e"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5280be8fd7e2bee5822e254fe0a5763aa0ad57054b85a32a3d9970e9b09bbcbf"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd742c03885db1fce798a1cd87a20f47f144ccf26d75d52feb6f2bae3d57af05"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5435fcac94c9ecf0504bf88a8a60c55482c32e18e108d6079a0089c47f3f8cf6"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:93a755266856599be4ab6346273f192acde3102d7aa0735e2f48b456397a041f"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-win32.whl", hash = "sha256:3abe6a4e8eb4cfc4cda04dd650a2dc6d2934cbdeda5def7e6fd1c20f6e7d2a0b"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:e8ddb58961401da7d6f55f185512c0d6bd24f529a637078d41dd8ffa5a49c107"}, + {file = "rapidfuzz-3.13.0-cp310-cp310-win_arm64.whl", hash = "sha256:c523620d14ebd03a8d473c89e05fa1ae152821920c3ff78b839218ff69e19ca3"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d395a5cad0c09c7f096433e5fd4224d83b53298d53499945a9b0e5a971a84f3a"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b7b3eda607a019169f7187328a8d1648fb9a90265087f6903d7ee3a8eee01805"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98e0bfa602e1942d542de077baf15d658bd9d5dcfe9b762aff791724c1c38b70"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bef86df6d59667d9655905b02770a0c776d2853971c0773767d5ef8077acd624"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fedd316c165beed6307bf754dee54d3faca2c47e1f3bcbd67595001dfa11e969"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5158da7f2ec02a930be13bac53bb5903527c073c90ee37804090614cab83c29e"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b6f913ee4618ddb6d6f3e387b76e8ec2fc5efee313a128809fbd44e65c2bbb2"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d25fdbce6459ccbbbf23b4b044f56fbd1158b97ac50994eaae2a1c0baae78301"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:25343ccc589a4579fbde832e6a1e27258bfdd7f2eb0f28cb836d6694ab8591fc"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a9ad1f37894e3ffb76bbab76256e8a8b789657183870be11aa64e306bb5228fd"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5dc71ef23845bb6b62d194c39a97bb30ff171389c9812d83030c1199f319098c"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b7f4c65facdb94f44be759bbd9b6dda1fa54d0d6169cdf1a209a5ab97d311a75"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-win32.whl", hash = "sha256:b5104b62711565e0ff6deab2a8f5dbf1fbe333c5155abe26d2cfd6f1849b6c87"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:9093cdeb926deb32a4887ebe6910f57fbcdbc9fbfa52252c10b56ef2efb0289f"}, + {file = "rapidfuzz-3.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:f70f646751b6aa9d05be1fb40372f006cc89d6aad54e9d79ae97bd1f5fce5203"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a1a6a906ba62f2556372282b1ef37b26bca67e3d2ea957277cfcefc6275cca7"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2fd0975e015b05c79a97f38883a11236f5a24cca83aa992bd2558ceaa5652b26"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d4e13593d298c50c4f94ce453f757b4b398af3fa0fd2fde693c3e51195b7f69"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed6f416bda1c9133000009d84d9409823eb2358df0950231cc936e4bf784eb97"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1dc82b6ed01acb536b94a43996a94471a218f4d89f3fdd9185ab496de4b2a981"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9d824de871daa6e443b39ff495a884931970d567eb0dfa213d234337343835f"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d18228a2390375cf45726ce1af9d36ff3dc1f11dce9775eae1f1b13ac6ec50f"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f5fe634c9482ec5d4a6692afb8c45d370ae86755e5f57aa6c50bfe4ca2bdd87"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:694eb531889f71022b2be86f625a4209c4049e74be9ca836919b9e395d5e33b3"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:11b47b40650e06147dee5e51a9c9ad73bb7b86968b6f7d30e503b9f8dd1292db"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:98b8107ff14f5af0243f27d236bcc6e1ef8e7e3b3c25df114e91e3a99572da73"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b836f486dba0aceb2551e838ff3f514a38ee72b015364f739e526d720fdb823a"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-win32.whl", hash = "sha256:4671ee300d1818d7bdfd8fa0608580d7778ba701817216f0c17fb29e6b972514"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e2065f68fb1d0bf65adc289c1bdc45ba7e464e406b319d67bb54441a1b9da9e"}, + {file = "rapidfuzz-3.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:65cc97c2fc2c2fe23586599686f3b1ceeedeca8e598cfcc1b7e56dc8ca7e2aa7"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:09e908064d3684c541d312bd4c7b05acb99a2c764f6231bd507d4b4b65226c23"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:57c390336cb50d5d3bfb0cfe1467478a15733703af61f6dffb14b1cd312a6fae"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0da54aa8547b3c2c188db3d1c7eb4d1bb6dd80baa8cdaeaec3d1da3346ec9caa"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df8e8c21e67afb9d7fbe18f42c6111fe155e801ab103c81109a61312927cc611"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:461fd13250a2adf8e90ca9a0e1e166515cbcaa5e9c3b1f37545cbbeff9e77f6b"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2b3dd5d206a12deca16870acc0d6e5036abeb70e3cad6549c294eff15591527"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1343d745fbf4688e412d8f398c6e6d6f269db99a54456873f232ba2e7aeb4939"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b1b065f370d54551dcc785c6f9eeb5bd517ae14c983d2784c064b3aa525896df"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:11b125d8edd67e767b2295eac6eb9afe0b1cdc82ea3d4b9257da4b8e06077798"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c33f9c841630b2bb7e69a3fb5c84a854075bb812c47620978bddc591f764da3d"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ae4574cb66cf1e85d32bb7e9ec45af5409c5b3970b7ceb8dea90168024127566"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e05752418b24bbd411841b256344c26f57da1148c5509e34ea39c7eb5099ab72"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-win32.whl", hash = "sha256:0e1d08cb884805a543f2de1f6744069495ef527e279e05370dd7c83416af83f8"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9a7c6232be5f809cd39da30ee5d24e6cadd919831e6020ec6c2391f4c3bc9264"}, + {file = "rapidfuzz-3.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:3f32f15bacd1838c929b35c84b43618481e1b3d7a61b5ed2db0291b70ae88b53"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cc64da907114d7a18b5e589057e3acaf2fec723d31c49e13fedf043592a3f6a7"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4d9d7f84c8e992a8dbe5a3fdbea73d733da39bf464e62c912ac3ceba9c0cff93"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a79a2f07786a2070669b4b8e45bd96a01c788e7a3c218f531f3947878e0f956"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f338e71c45b69a482de8b11bf4a029993230760120c8c6e7c9b71760b6825a1"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adb40ca8ddfcd4edd07b0713a860be32bdf632687f656963bcbce84cea04b8d8"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48719f7dcf62dfb181063b60ee2d0a39d327fa8ad81b05e3e510680c44e1c078"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9327a4577f65fc3fb712e79f78233815b8a1c94433d0c2c9f6bc5953018b3565"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:200030dfc0a1d5d6ac18e993c5097c870c97c41574e67f227300a1fb74457b1d"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cc269e74cad6043cb8a46d0ce580031ab642b5930562c2bb79aa7fbf9c858d26"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:e62779c6371bd2b21dbd1fdce89eaec2d93fd98179d36f61130b489f62294a92"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f4797f821dc5d7c2b6fc818b89f8a3f37bcc900dd9e4369e6ebf1e525efce5db"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d21f188f6fe4fbf422e647ae9d5a68671d00218e187f91859c963d0738ccd88c"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-win32.whl", hash = "sha256:45dd4628dd9c21acc5c97627dad0bb791764feea81436fb6e0a06eef4c6dceaa"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:624a108122039af89ddda1a2b7ab2a11abe60c1521956f142f5d11bcd42ef138"}, + {file = "rapidfuzz-3.13.0-cp39-cp39-win_arm64.whl", hash = "sha256:435071fd07a085ecbf4d28702a66fd2e676a03369ee497cc38bcb69a46bc77e2"}, + {file = "rapidfuzz-3.13.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fe5790a36d33a5d0a6a1f802aa42ecae282bf29ac6f7506d8e12510847b82a45"}, + {file = "rapidfuzz-3.13.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:cdb33ee9f8a8e4742c6b268fa6bd739024f34651a06b26913381b1413ebe7590"}, + {file = "rapidfuzz-3.13.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c99b76b93f7b495eee7dcb0d6a38fb3ce91e72e99d9f78faa5664a881cb2b7d"}, + {file = "rapidfuzz-3.13.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6af42f2ede8b596a6aaf6d49fdee3066ca578f4856b85ab5c1e2145de367a12d"}, + {file = "rapidfuzz-3.13.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c0efa73afbc5b265aca0d8a467ae2a3f40d6854cbe1481cb442a62b7bf23c99"}, + {file = "rapidfuzz-3.13.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7ac21489de962a4e2fc1e8f0b0da4aa1adc6ab9512fd845563fecb4b4c52093a"}, + {file = "rapidfuzz-3.13.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1ba007f4d35a45ee68656b2eb83b8715e11d0f90e5b9f02d615a8a321ff00c27"}, + {file = "rapidfuzz-3.13.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d7a217310429b43be95b3b8ad7f8fc41aba341109dc91e978cd7c703f928c58f"}, + {file = "rapidfuzz-3.13.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:558bf526bcd777de32b7885790a95a9548ffdcce68f704a81207be4a286c1095"}, + {file = "rapidfuzz-3.13.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:202a87760f5145140d56153b193a797ae9338f7939eb16652dd7ff96f8faf64c"}, + {file = "rapidfuzz-3.13.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfcccc08f671646ccb1e413c773bb92e7bba789e3a1796fd49d23c12539fe2e4"}, + {file = "rapidfuzz-3.13.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:1f219f1e3c3194d7a7de222f54450ce12bc907862ff9a8962d83061c1f923c86"}, + {file = "rapidfuzz-3.13.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ccbd0e7ea1a216315f63ffdc7cd09c55f57851afc8fe59a74184cb7316c0598b"}, + {file = "rapidfuzz-3.13.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a50856f49a4016ef56edd10caabdaf3608993f9faf1e05c3c7f4beeac46bd12a"}, + {file = "rapidfuzz-3.13.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fd05336db4d0b8348d7eaaf6fa3c517b11a56abaa5e89470ce1714e73e4aca7"}, + {file = "rapidfuzz-3.13.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:573ad267eb9b3f6e9b04febce5de55d8538a87c56c64bf8fd2599a48dc9d8b77"}, + {file = "rapidfuzz-3.13.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30fd1451f87ccb6c2f9d18f6caa483116bbb57b5a55d04d3ddbd7b86f5b14998"}, + {file = "rapidfuzz-3.13.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6dd36d4916cf57ddb05286ed40b09d034ca5d4bca85c17be0cb6a21290597d9"}, + {file = "rapidfuzz-3.13.0.tar.gz", hash = "sha256:d2eaf3839e52cbcc0accbe9817a67b4b0fcf70aaeb229cfddc1c28061f9ce5d8"}, ] [package.extras] @@ -4424,20 +4397,20 @@ all = ["numpy"] [[package]] name = "realtime" -version = "2.4.2" +version = "2.4.3" description = "" optional = false python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "realtime-2.4.2-py3-none-any.whl", hash = "sha256:0cc1b4a097acf9c0bd3a2f1998170de47744574c606617285113ddb3021e54ca"}, - {file = "realtime-2.4.2.tar.gz", hash = "sha256:760308d5310533f65a9098e0b482a518f6ad2f3c0f2723e83cf5856865bafc5d"}, + {file = "realtime-2.4.3-py3-none-any.whl", hash = "sha256:09ff3b61ac928413a27765640b67362380eaddba84a7037a17972a64b1ac52f7"}, + {file = "realtime-2.4.3.tar.gz", hash = "sha256:152febabc822ce60e11f202842c5aa6858ae4bd04920bfd6a00c1dd492f426b0"}, ] [package.dependencies] -aiohttp = ">=3.11.14,<4.0.0" +aiohttp = ">=3.11.18,<4.0.0" python-dateutil = ">=2.8.1,<3.0.0" -typing-extensions = ">=4.12.2,<5.0.0" +typing-extensions = ">=4.13.2,<5.0.0" websockets = ">=11,<15" [[package]] @@ -4461,14 +4434,14 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==23.2.1)", "requests (>=2.31.0)" [[package]] name = "referencing" -version = "0.36.1" +version = "0.36.2" description = "JSON Referencing + Python" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "referencing-0.36.1-py3-none-any.whl", hash = "sha256:363d9c65f080d0d70bc41c721dce3c7f3e77fc09f269cd5c8813da18069a6794"}, - {file = "referencing-0.36.1.tar.gz", hash = "sha256:ca2e6492769e3602957e9b831b94211599d2aade9477f5d44110d2530cf9aade"}, + {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, + {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, ] [package.dependencies] @@ -4582,14 +4555,14 @@ files = [ [[package]] name = "replicate" -version = "1.0.6" +version = "1.0.7" description = "Python client for Replicate" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "replicate-1.0.6-py3-none-any.whl", hash = "sha256:d544f837dc7e9dc3b3c1df60a145c7d6f362d6719b719793a44a4be28837103d"}, - {file = "replicate-1.0.6.tar.gz", hash = "sha256:b8a0f1649ed4146c3d624e22a418b8c6decce9346cffc110c90fde5995c46e60"}, + {file = "replicate-1.0.7-py3-none-any.whl", hash = "sha256:667c50a9eb83be17de6278ff89483102b3b50f49a2c7fbcaa2e2b14df13816f9"}, + {file = "replicate-1.0.7.tar.gz", hash = "sha256:d88cb2c37ba39fb370c87fc3291601c67aae64bb918a20a85b5ce399c23ee84c"}, ] [package.dependencies] @@ -4656,127 +4629,141 @@ requests = ">=2.0.1,<3.0.0" [[package]] name = "rpds-py" -version = "0.22.3" +version = "0.25.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, - {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, - {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, - {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, - {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, - {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, - {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, - {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, - {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, - {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, - {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, - {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, - {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, - {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, - {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, - {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, - {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, - {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, - {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, - {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, - {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, - {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, - {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, - {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, - {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, - {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, - {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, - {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, - {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, - {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, - {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, - {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, - {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, - {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, - {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, - {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, - {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, - {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, - {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, - {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, + {file = "rpds_py-0.25.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f4ad628b5174d5315761b67f212774a32f5bad5e61396d38108bd801c0a8f5d9"}, + {file = "rpds_py-0.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c742af695f7525e559c16f1562cf2323db0e3f0fbdcabdf6865b095256b2d40"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:605ffe7769e24b1800b4d024d24034405d9404f0bc2f55b6db3362cd34145a6f"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ccc6f3ddef93243538be76f8e47045b4aad7a66a212cd3a0f23e34469473d36b"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f70316f760174ca04492b5ab01be631a8ae30cadab1d1081035136ba12738cfa"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1dafef8df605fdb46edcc0bf1573dea0d6d7b01ba87f85cd04dc855b2b4479e"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0701942049095741a8aeb298a31b203e735d1c61f4423511d2b1a41dcd8a16da"}, + {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e87798852ae0b37c88babb7f7bbbb3e3fecc562a1c340195b44c7e24d403e380"}, + {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3bcce0edc1488906c2d4c75c94c70a0417e83920dd4c88fec1078c94843a6ce9"}, + {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e2f6a2347d3440ae789505693a02836383426249d5293541cd712e07e7aecf54"}, + {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4fd52d3455a0aa997734f3835cbc4c9f32571345143960e7d7ebfe7b5fbfa3b2"}, + {file = "rpds_py-0.25.1-cp310-cp310-win32.whl", hash = "sha256:3f0b1798cae2bbbc9b9db44ee068c556d4737911ad53a4e5093d09d04b3bbc24"}, + {file = "rpds_py-0.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:3ebd879ab996537fc510a2be58c59915b5dd63bccb06d1ef514fee787e05984a"}, + {file = "rpds_py-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5f048bbf18b1f9120685c6d6bb70cc1a52c8cc11bdd04e643d28d3be0baf666d"}, + {file = "rpds_py-0.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fbb0dbba559959fcb5d0735a0f87cdbca9e95dac87982e9b95c0f8f7ad10255"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4ca54b9cf9d80b4016a67a0193ebe0bcf29f6b0a96f09db942087e294d3d4c2"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee3e26eb83d39b886d2cb6e06ea701bba82ef30a0de044d34626ede51ec98b0"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89706d0683c73a26f76a5315d893c051324d771196ae8b13e6ffa1ffaf5e574f"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2013ee878c76269c7b557a9a9c042335d732e89d482606990b70a839635feb7"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45e484db65e5380804afbec784522de84fa95e6bb92ef1bd3325d33d13efaebd"}, + {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48d64155d02127c249695abb87d39f0faf410733428d499867606be138161d65"}, + {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:048893e902132fd6548a2e661fb38bf4896a89eea95ac5816cf443524a85556f"}, + {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0317177b1e8691ab5879f4f33f4b6dc55ad3b344399e23df2e499de7b10a548d"}, + {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bffcf57826d77a4151962bf1701374e0fc87f536e56ec46f1abdd6a903354042"}, + {file = "rpds_py-0.25.1-cp311-cp311-win32.whl", hash = "sha256:cda776f1967cb304816173b30994faaf2fd5bcb37e73118a47964a02c348e1bc"}, + {file = "rpds_py-0.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc3c1ff0abc91444cd20ec643d0f805df9a3661fcacf9c95000329f3ddf268a4"}, + {file = "rpds_py-0.25.1-cp311-cp311-win_arm64.whl", hash = "sha256:5a3ddb74b0985c4387719fc536faced33cadf2172769540c62e2a94b7b9be1c4"}, + {file = "rpds_py-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5ffe453cde61f73fea9430223c81d29e2fbf412a6073951102146c84e19e34c"}, + {file = "rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:115874ae5e2fdcfc16b2aedc95b5eef4aebe91b28e7e21951eda8a5dc0d3461b"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a714bf6e5e81b0e570d01f56e0c89c6375101b8463999ead3a93a5d2a4af91fa"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35634369325906bcd01577da4c19e3b9541a15e99f31e91a02d010816b49bfda"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4cb2b3ddc16710548801c6fcc0cfcdeeff9dafbc983f77265877793f2660309"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ceca1cf097ed77e1a51f1dbc8d174d10cb5931c188a4505ff9f3e119dfe519b"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c2cd1a4b0c2b8c5e31ffff50d09f39906fe351389ba143c195566056c13a7ea"}, + {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1de336a4b164c9188cb23f3703adb74a7623ab32d20090d0e9bf499a2203ad65"}, + {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9fca84a15333e925dd59ce01da0ffe2ffe0d6e5d29a9eeba2148916d1824948c"}, + {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88ec04afe0c59fa64e2f6ea0dd9657e04fc83e38de90f6de201954b4d4eb59bd"}, + {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8bd2f19e312ce3e1d2c635618e8a8d8132892bb746a7cf74780a489f0f6cdcb"}, + {file = "rpds_py-0.25.1-cp312-cp312-win32.whl", hash = "sha256:e5e2f7280d8d0d3ef06f3ec1b4fd598d386cc6f0721e54f09109a8132182fbfe"}, + {file = "rpds_py-0.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:db58483f71c5db67d643857404da360dce3573031586034b7d59f245144cc192"}, + {file = "rpds_py-0.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:6d50841c425d16faf3206ddbba44c21aa3310a0cebc3c1cdfc3e3f4f9f6f5728"}, + {file = "rpds_py-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:659d87430a8c8c704d52d094f5ba6fa72ef13b4d385b7e542a08fc240cb4a559"}, + {file = "rpds_py-0.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68f6f060f0bbdfb0245267da014d3a6da9be127fe3e8cc4a68c6f833f8a23bb1"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:083a9513a33e0b92cf6e7a6366036c6bb43ea595332c1ab5c8ae329e4bcc0a9c"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:816568614ecb22b18a010c7a12559c19f6fe993526af88e95a76d5a60b8b75fb"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c6564c0947a7f52e4792983f8e6cf9bac140438ebf81f527a21d944f2fd0a40"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c4a128527fe415d73cf1f70a9a688d06130d5810be69f3b553bf7b45e8acf79"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e1d7a4978ed554f095430b89ecc23f42014a50ac385eb0c4d163ce213c325"}, + {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d74ec9bc0e2feb81d3f16946b005748119c0f52a153f6db6a29e8cd68636f295"}, + {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3af5b4cc10fa41e5bc64e5c198a1b2d2864337f8fcbb9a67e747e34002ce812b"}, + {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79dc317a5f1c51fd9c6a0c4f48209c6b8526d0524a6904fc1076476e79b00f98"}, + {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1521031351865e0181bc585147624d66b3b00a84109b57fcb7a779c3ec3772cd"}, + {file = "rpds_py-0.25.1-cp313-cp313-win32.whl", hash = "sha256:5d473be2b13600b93a5675d78f59e63b51b1ba2d0476893415dfbb5477e65b31"}, + {file = "rpds_py-0.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7b74e92a3b212390bdce1d93da9f6488c3878c1d434c5e751cbc202c5e09500"}, + {file = "rpds_py-0.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:dd326a81afe332ede08eb39ab75b301d5676802cdffd3a8f287a5f0b694dc3f5"}, + {file = "rpds_py-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:a58d1ed49a94d4183483a3ce0af22f20318d4a1434acee255d683ad90bf78129"}, + {file = "rpds_py-0.25.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f251bf23deb8332823aef1da169d5d89fa84c89f67bdfb566c49dea1fccfd50d"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbd586bfa270c1103ece2109314dd423df1fa3d9719928b5d09e4840cec0d72"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d273f136e912aa101a9274c3145dcbddbe4bac560e77e6d5b3c9f6e0ed06d34"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:666fa7b1bd0a3810a7f18f6d3a25ccd8866291fbbc3c9b912b917a6715874bb9"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:921954d7fbf3fccc7de8f717799304b14b6d9a45bbeec5a8d7408ccbf531faf5"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3d86373ff19ca0441ebeb696ef64cb58b8b5cbacffcda5a0ec2f3911732a194"}, + {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c8980cde3bb8575e7c956a530f2c217c1d6aac453474bf3ea0f9c89868b531b6"}, + {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8eb8c84ecea987a2523e057c0d950bcb3f789696c0499290b8d7b3107a719d78"}, + {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e43a005671a9ed5a650f3bc39e4dbccd6d4326b24fb5ea8be5f3a43a6f576c72"}, + {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58f77c60956501a4a627749a6dcb78dac522f249dd96b5c9f1c6af29bfacfb66"}, + {file = "rpds_py-0.25.1-cp313-cp313t-win32.whl", hash = "sha256:2cb9e5b5e26fc02c8a4345048cd9998c2aca7c2712bd1b36da0c72ee969a3523"}, + {file = "rpds_py-0.25.1-cp313-cp313t-win_amd64.whl", hash = "sha256:401ca1c4a20cc0510d3435d89c069fe0a9ae2ee6495135ac46bdd49ec0495763"}, + {file = "rpds_py-0.25.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ce4c8e485a3c59593f1a6f683cf0ea5ab1c1dc94d11eea5619e4fb5228b40fbd"}, + {file = "rpds_py-0.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d8222acdb51a22929c3b2ddb236b69c59c72af4019d2cba961e2f9add9b6e634"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4593c4eae9b27d22df41cde518b4b9e4464d139e4322e2127daa9b5b981b76be"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd035756830c712b64725a76327ce80e82ed12ebab361d3a1cdc0f51ea21acb0"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:114a07e85f32b125404f28f2ed0ba431685151c037a26032b213c882f26eb908"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dec21e02e6cc932538b5203d3a8bd6aa1480c98c4914cb88eea064ecdbc6396a"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09eab132f41bf792c7a0ea1578e55df3f3e7f61888e340779b06050a9a3f16e9"}, + {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c98f126c4fc697b84c423e387337d5b07e4a61e9feac494362a59fd7a2d9ed80"}, + {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0e6a327af8ebf6baba1c10fadd04964c1965d375d318f4435d5f3f9651550f4a"}, + {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bc120d1132cff853ff617754196d0ac0ae63befe7c8498bd67731ba368abe451"}, + {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:140f61d9bed7839446bdd44852e30195c8e520f81329b4201ceead4d64eb3a9f"}, + {file = "rpds_py-0.25.1-cp39-cp39-win32.whl", hash = "sha256:9c006f3aadeda131b438c3092124bd196b66312f0caa5823ef09585a669cf449"}, + {file = "rpds_py-0.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:a61d0b2c7c9a0ae45732a77844917b427ff16ad5464b4d4f5e4adb955f582890"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b24bf3cd93d5b6ecfbedec73b15f143596c88ee249fa98cefa9a9dc9d92c6f28"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:0eb90e94f43e5085623932b68840b6f379f26db7b5c2e6bcef3179bd83c9330f"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d50e4864498a9ab639d6d8854b25e80642bd362ff104312d9770b05d66e5fb13"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c9409b47ba0650544b0bb3c188243b83654dfe55dcc173a86832314e1a6a35d"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:796ad874c89127c91970652a4ee8b00d56368b7e00d3477f4415fe78164c8000"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85608eb70a659bf4c1142b2781083d4b7c0c4e2c90eff11856a9754e965b2540"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4feb9211d15d9160bc85fa72fed46432cdc143eb9cf6d5ca377335a921ac37b"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ccfa689b9246c48947d31dd9d8b16d89a0ecc8e0e26ea5253068efb6c542b76e"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3c5b317ecbd8226887994852e85de562f7177add602514d4ac40f87de3ae45a8"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:454601988aab2c6e8fd49e7634c65476b2b919647626208e376afcd22019eeb8"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:1c0c434a53714358532d13539272db75a5ed9df75a4a090a753ac7173ec14e11"}, + {file = "rpds_py-0.25.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f73ce1512e04fbe2bc97836e89830d6b4314c171587a99688082d090f934d20a"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee86d81551ec68a5c25373c5643d343150cc54672b5e9a0cafc93c1870a53954"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89c24300cd4a8e4a51e55c31a8ff3918e6651b241ee8876a42cc2b2a078533ba"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:771c16060ff4e79584dc48902a91ba79fd93eade3aa3a12d6d2a4aadaf7d542b"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:785ffacd0ee61c3e60bdfde93baa6d7c10d86f15655bd706c89da08068dc5038"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a40046a529cc15cef88ac5ab589f83f739e2d332cb4d7399072242400ed68c9"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85fc223d9c76cabe5d0bff82214459189720dc135db45f9f66aa7cffbf9ff6c1"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0be9965f93c222fb9b4cc254235b3b2b215796c03ef5ee64f995b1b69af0762"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8378fa4a940f3fb509c081e06cb7f7f2adae8cf46ef258b0e0ed7519facd573e"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:33358883a4490287e67a2c391dfaea4d9359860281db3292b6886bf0be3d8692"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1d1fadd539298e70cac2f2cb36f5b8a65f742b9b9f1014dd4ea1f7785e2470bf"}, + {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9a46c2fb2545e21181445515960006e85d22025bd2fe6db23e76daec6eb689fe"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:50f2c501a89c9a5f4e454b126193c5495b9fb441a75b298c60591d8a2eb92e1b"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d779b325cc8238227c47fbc53964c8cc9a941d5dbae87aa007a1f08f2f77b23"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:036ded36bedb727beeabc16dc1dad7cb154b3fa444e936a03b67a86dc6a5066e"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:245550f5a1ac98504147cba96ffec8fabc22b610742e9150138e5d60774686d7"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff7c23ba0a88cb7b104281a99476cccadf29de2a0ef5ce864959a52675b1ca83"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e37caa8cdb3b7cf24786451a0bdb853f6347b8b92005eeb64225ae1db54d1c2b"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2f48ab00181600ee266a095fe815134eb456163f7d6699f525dee471f312cf"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e5fc7484fa7dce57e25063b0ec9638ff02a908304f861d81ea49273e43838c1"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d3c10228d6cf6fe2b63d2e7985e94f6916fa46940df46b70449e9ff9297bd3d1"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:5d9e40f32745db28c1ef7aad23f6fc458dc1e29945bd6781060f0d15628b8ddf"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:35a8d1a24b5936b35c5003313bc177403d8bdef0f8b24f28b1c4a255f94ea992"}, + {file = "rpds_py-0.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6099263f526efff9cf3883dfef505518730f7a7a93049b1d90d42e50a22b4793"}, + {file = "rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3"}, ] [[package]] name = "rsa" -version = "4.9" +version = "4.9.1" description = "Pure-Python RSA implementation" optional = false -python-versions = ">=3.6,<4" +python-versions = "<4,>=3.6" groups = ["main"] files = [ - {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, - {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, + {file = "rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762"}, + {file = "rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75"}, ] [package.dependencies] @@ -4784,30 +4771,30 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.11.10" +version = "0.11.12" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" groups = ["dev"] files = [ - {file = "ruff-0.11.10-py3-none-linux_armv6l.whl", hash = "sha256:859a7bfa7bc8888abbea31ef8a2b411714e6a80f0d173c2a82f9041ed6b50f58"}, - {file = "ruff-0.11.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:968220a57e09ea5e4fd48ed1c646419961a0570727c7e069842edd018ee8afed"}, - {file = "ruff-0.11.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1067245bad978e7aa7b22f67113ecc6eb241dca0d9b696144256c3a879663bca"}, - {file = "ruff-0.11.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4854fd09c7aed5b1590e996a81aeff0c9ff51378b084eb5a0b9cd9518e6cff2"}, - {file = "ruff-0.11.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b4564e9f99168c0f9195a0fd5fa5928004b33b377137f978055e40008a082c5"}, - {file = "ruff-0.11.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b6a9cc5b62c03cc1fea0044ed8576379dbaf751d5503d718c973d5418483641"}, - {file = "ruff-0.11.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:607ecbb6f03e44c9e0a93aedacb17b4eb4f3563d00e8b474298a201622677947"}, - {file = "ruff-0.11.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b3a522fa389402cd2137df9ddefe848f727250535c70dafa840badffb56b7a4"}, - {file = "ruff-0.11.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f071b0deed7e9245d5820dac235cbdd4ef99d7b12ff04c330a241ad3534319f"}, - {file = "ruff-0.11.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a60e3a0a617eafba1f2e4186d827759d65348fa53708ca547e384db28406a0b"}, - {file = "ruff-0.11.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:da8ec977eaa4b7bf75470fb575bea2cb41a0e07c7ea9d5a0a97d13dbca697bf2"}, - {file = "ruff-0.11.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ddf8967e08227d1bd95cc0851ef80d2ad9c7c0c5aab1eba31db49cf0a7b99523"}, - {file = "ruff-0.11.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5a94acf798a82db188f6f36575d80609072b032105d114b0f98661e1679c9125"}, - {file = "ruff-0.11.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3afead355f1d16d95630df28d4ba17fb2cb9c8dfac8d21ced14984121f639bad"}, - {file = "ruff-0.11.10-py3-none-win32.whl", hash = "sha256:dc061a98d32a97211af7e7f3fa1d4ca2fcf919fb96c28f39551f35fc55bdbc19"}, - {file = "ruff-0.11.10-py3-none-win_amd64.whl", hash = "sha256:5cc725fbb4d25b0f185cb42df07ab6b76c4489b4bfb740a175f3a59c70e8a224"}, - {file = "ruff-0.11.10-py3-none-win_arm64.whl", hash = "sha256:ef69637b35fb8b210743926778d0e45e1bffa850a7c61e428c6b971549b5f5d1"}, - {file = "ruff-0.11.10.tar.gz", hash = "sha256:d522fb204b4959909ecac47da02830daec102eeb100fb50ea9554818d47a5fa6"}, + {file = "ruff-0.11.12-py3-none-linux_armv6l.whl", hash = "sha256:c7680aa2f0d4c4f43353d1e72123955c7a2159b8646cd43402de6d4a3a25d7cc"}, + {file = "ruff-0.11.12-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2cad64843da9f134565c20bcc430642de897b8ea02e2e79e6e02a76b8dcad7c3"}, + {file = "ruff-0.11.12-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9b6886b524a1c659cee1758140138455d3c029783d1b9e643f3624a5ee0cb0aa"}, + {file = "ruff-0.11.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cc3a3690aad6e86c1958d3ec3c38c4594b6ecec75c1f531e84160bd827b2012"}, + {file = "ruff-0.11.12-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f97fdbc2549f456c65b3b0048560d44ddd540db1f27c778a938371424b49fe4a"}, + {file = "ruff-0.11.12-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74adf84960236961090e2d1348c1a67d940fd12e811a33fb3d107df61eef8fc7"}, + {file = "ruff-0.11.12-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:b56697e5b8bcf1d61293ccfe63873aba08fdbcbbba839fc046ec5926bdb25a3a"}, + {file = "ruff-0.11.12-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d47afa45e7b0eaf5e5969c6b39cbd108be83910b5c74626247e366fd7a36a13"}, + {file = "ruff-0.11.12-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bf9603fe1bf949de8b09a2da896f05c01ed7a187f4a386cdba6760e7f61be"}, + {file = "ruff-0.11.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08033320e979df3b20dba567c62f69c45e01df708b0f9c83912d7abd3e0801cd"}, + {file = "ruff-0.11.12-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:929b7706584f5bfd61d67d5070f399057d07c70585fa8c4491d78ada452d3bef"}, + {file = "ruff-0.11.12-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7de4a73205dc5756b8e09ee3ed67c38312dce1aa28972b93150f5751199981b5"}, + {file = "ruff-0.11.12-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2635c2a90ac1b8ca9e93b70af59dfd1dd2026a40e2d6eebaa3efb0465dd9cf02"}, + {file = "ruff-0.11.12-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d05d6a78a89166f03f03a198ecc9d18779076ad0eec476819467acb401028c0c"}, + {file = "ruff-0.11.12-py3-none-win32.whl", hash = "sha256:f5a07f49767c4be4772d161bfc049c1f242db0cfe1bd976e0f0886732a4765d6"}, + {file = "ruff-0.11.12-py3-none-win_amd64.whl", hash = "sha256:5a4d9f8030d8c3a45df201d7fb3ed38d0219bccd7955268e863ee4a115fa0832"}, + {file = "ruff-0.11.12-py3-none-win_arm64.whl", hash = "sha256:65194e37853158d368e333ba282217941029a28ea90913c67e558c611d04daa5"}, + {file = "ruff-0.11.12.tar.gz", hash = "sha256:43cf7f69c7d7c7d7513b9d59c5d8cafd704e05944f978614aa9faff6ac202603"}, ] [[package]] @@ -4841,14 +4828,14 @@ files = [ [[package]] name = "sentry-sdk" -version = "2.28.0" +version = "2.29.1" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" groups = ["main"] files = [ - {file = "sentry_sdk-2.28.0-py2.py3-none-any.whl", hash = "sha256:51496e6cb3cb625b99c8e08907c67a9112360259b0ef08470e532c3ab184a232"}, - {file = "sentry_sdk-2.28.0.tar.gz", hash = "sha256:14d2b73bc93afaf2a9412490329099e6217761cbab13b6ee8bc0e82927e1504e"}, + {file = "sentry_sdk-2.29.1-py2.py3-none-any.whl", hash = "sha256:90862fe0616ded4572da6c9dadb363121a1ae49a49e21c418f0634e9d10b4c19"}, + {file = "sentry_sdk-2.29.1.tar.gz", hash = "sha256:8d4a0206b95fa5fe85e5e7517ed662e3888374bdc342c00e435e10e6d831aa6d"}, ] [package.dependencies] @@ -4902,27 +4889,6 @@ statsig = ["statsig (>=0.55.3)"] tornado = ["tornado (>=6)"] unleash = ["UnleashClient (>=6.0.1)"] -[[package]] -name = "setuptools" -version = "75.8.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"}, - {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""] -core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.14.*)", "pytest-mypy"] - [[package]] name = "sgmllib3k" version = "1.0.0" @@ -4972,69 +4938,69 @@ files = [ [[package]] name = "sqlalchemy" -version = "2.0.40" +version = "2.0.41" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "SQLAlchemy-2.0.40-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ae9597cab738e7cc823f04a704fb754a9249f0b6695a6aeb63b74055cd417a96"}, - {file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37a5c21ab099a83d669ebb251fddf8f5cee4d75ea40a5a1653d9c43d60e20867"}, - {file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bece9527f5a98466d67fb5d34dc560c4da964240d8b09024bb21c1246545e04e"}, - {file = "SQLAlchemy-2.0.40-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:8bb131ffd2165fae48162c7bbd0d97c84ab961deea9b8bab16366543deeab625"}, - {file = "SQLAlchemy-2.0.40-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:9408fd453d5f8990405cc9def9af46bfbe3183e6110401b407c2d073c3388f47"}, - {file = "SQLAlchemy-2.0.40-cp37-cp37m-win32.whl", hash = "sha256:00a494ea6f42a44c326477b5bee4e0fc75f6a80c01570a32b57e89cf0fbef85a"}, - {file = "SQLAlchemy-2.0.40-cp37-cp37m-win_amd64.whl", hash = "sha256:c7b927155112ac858357ccf9d255dd8c044fd9ad2dc6ce4c4149527c901fa4c3"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1ea21bef99c703f44444ad29c2c1b6bd55d202750b6de8e06a955380f4725d7"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:afe63b208153f3a7a2d1a5b9df452b0673082588933e54e7c8aac457cf35e758"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8aae085ea549a1eddbc9298b113cffb75e514eadbb542133dd2b99b5fb3b6af"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ea9181284754d37db15156eb7be09c86e16e50fbe77610e9e7bee09291771a1"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5434223b795be5c5ef8244e5ac98056e290d3a99bdcc539b916e282b160dda00"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:15d08d5ef1b779af6a0909b97be6c1fd4298057504eb6461be88bd1696cb438e"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-win32.whl", hash = "sha256:cd2f75598ae70bcfca9117d9e51a3b06fe29edd972fdd7fd57cc97b4dbf3b08a"}, - {file = "sqlalchemy-2.0.40-cp310-cp310-win_amd64.whl", hash = "sha256:2cbafc8d39ff1abdfdda96435f38fab141892dc759a2165947d1a8fffa7ef596"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f6bacab7514de6146a1976bc56e1545bee247242fab030b89e5f70336fc0003e"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5654d1ac34e922b6c5711631f2da497d3a7bffd6f9f87ac23b35feea56098011"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35904d63412db21088739510216e9349e335f142ce4a04b69e2528020ee19ed4"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c7a80ed86d6aaacb8160a1caef6680d4ddd03c944d985aecee940d168c411d1"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:519624685a51525ddaa7d8ba8265a1540442a2ec71476f0e75241eb8263d6f51"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2ee5f9999a5b0e9689bed96e60ee53c3384f1a05c2dd8068cc2e8361b0df5b7a"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-win32.whl", hash = "sha256:c0cae71e20e3c02c52f6b9e9722bca70e4a90a466d59477822739dc31ac18b4b"}, - {file = "sqlalchemy-2.0.40-cp311-cp311-win_amd64.whl", hash = "sha256:574aea2c54d8f1dd1699449f332c7d9b71c339e04ae50163a3eb5ce4c4325ee4"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9d3b31d0a1c44b74d3ae27a3de422dfccd2b8f0b75e51ecb2faa2bf65ab1ba0d"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:37f7a0f506cf78c80450ed1e816978643d3969f99c4ac6b01104a6fe95c5490a"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bb933a650323e476a2e4fbef8997a10d0003d4da996aad3fd7873e962fdde4d"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6959738971b4745eea16f818a2cd086fb35081383b078272c35ece2b07012716"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:110179728e442dae85dd39591beb74072ae4ad55a44eda2acc6ec98ead80d5f2"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8040680eaacdce4d635f12c55c714f3d4c7f57da2bc47a01229d115bd319191"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-win32.whl", hash = "sha256:650490653b110905c10adac69408380688cefc1f536a137d0d69aca1069dc1d1"}, - {file = "sqlalchemy-2.0.40-cp312-cp312-win_amd64.whl", hash = "sha256:2be94d75ee06548d2fc591a3513422b873490efb124048f50556369a834853b0"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:915866fd50dd868fdcc18d61d8258db1bf9ed7fbd6dfec960ba43365952f3b01"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a4c5a2905a9ccdc67a8963e24abd2f7afcd4348829412483695c59e0af9a705"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55028d7a3ebdf7ace492fab9895cbc5270153f75442a0472d8516e03159ab364"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cfedff6878b0e0d1d0a50666a817ecd85051d12d56b43d9d425455e608b5ba0"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb19e30fdae77d357ce92192a3504579abe48a66877f476880238a962e5b96db"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:16d325ea898f74b26ffcd1cf8c593b0beed8714f0317df2bed0d8d1de05a8f26"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-win32.whl", hash = "sha256:a669cbe5be3c63f75bcbee0b266779706f1a54bcb1000f302685b87d1b8c1500"}, - {file = "sqlalchemy-2.0.40-cp313-cp313-win_amd64.whl", hash = "sha256:641ee2e0834812d657862f3a7de95e0048bdcb6c55496f39c6fa3d435f6ac6ad"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:50f5885bbed261fc97e2e66c5156244f9704083a674b8d17f24c72217d29baf5"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cf0e99cdb600eabcd1d65cdba0d3c91418fee21c4aa1d28db47d095b1064a7d8"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe147fcd85aaed53ce90645c91ed5fca0cc88a797314c70dfd9d35925bd5d106"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baf7cee56bd552385c1ee39af360772fbfc2f43be005c78d1140204ad6148438"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4aeb939bcac234b88e2d25d5381655e8353fe06b4e50b1c55ecffe56951d18c2"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c268b5100cfeaa222c40f55e169d484efa1384b44bf9ca415eae6d556f02cb08"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-win32.whl", hash = "sha256:46628ebcec4f23a1584fb52f2abe12ddb00f3bb3b7b337618b80fc1b51177aff"}, - {file = "sqlalchemy-2.0.40-cp38-cp38-win_amd64.whl", hash = "sha256:7e0505719939e52a7b0c65d20e84a6044eb3712bb6f239c6b1db77ba8e173a37"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c884de19528e0fcd9dc34ee94c810581dd6e74aef75437ff17e696c2bfefae3e"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1abb387710283fc5983d8a1209d9696a4eae9db8d7ac94b402981fe2fe2e39ad"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cfa124eda500ba4b0d3afc3e91ea27ed4754e727c7f025f293a22f512bcd4c9"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6b28d303b9d57c17a5164eb1fd2d5119bb6ff4413d5894e74873280483eeb5"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b5a5bbe29c10c5bfd63893747a1bf6f8049df607638c786252cb9243b86b6706"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f0fda83e113bb0fb27dc003685f32a5dcb99c9c4f41f4fa0838ac35265c23b5c"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-win32.whl", hash = "sha256:957f8d85d5e834397ef78a6109550aeb0d27a53b5032f7a57f2451e1adc37e98"}, - {file = "sqlalchemy-2.0.40-cp39-cp39-win_amd64.whl", hash = "sha256:1ffdf9c91428e59744f8e6f98190516f8e1d05eec90e936eb08b257332c5e870"}, - {file = "sqlalchemy-2.0.40-py3-none-any.whl", hash = "sha256:32587e2e1e359276957e6fe5dad089758bc042a971a8a09ae8ecf7a8fe23d07a"}, - {file = "sqlalchemy-2.0.40.tar.gz", hash = "sha256:d827099289c64589418ebbcaead0145cd19f4e3e8a93919a0100247af245fa00"}, + {file = "SQLAlchemy-2.0.41-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6854175807af57bdb6425e47adbce7d20a4d79bbfd6f6d6519cd10bb7109a7f8"}, + {file = "SQLAlchemy-2.0.41-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05132c906066142103b83d9c250b60508af556982a385d96c4eaa9fb9720ac2b"}, + {file = "SQLAlchemy-2.0.41-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b4af17bda11e907c51d10686eda89049f9ce5669b08fbe71a29747f1e876036"}, + {file = "SQLAlchemy-2.0.41-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:c0b0e5e1b5d9f3586601048dd68f392dc0cc99a59bb5faf18aab057ce00d00b2"}, + {file = "SQLAlchemy-2.0.41-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0b3dbf1e7e9bc95f4bac5e2fb6d3fb2f083254c3fdd20a1789af965caf2d2348"}, + {file = "SQLAlchemy-2.0.41-cp37-cp37m-win32.whl", hash = "sha256:1e3f196a0c59b0cae9a0cd332eb1a4bda4696e863f4f1cf84ab0347992c548c2"}, + {file = "SQLAlchemy-2.0.41-cp37-cp37m-win_amd64.whl", hash = "sha256:6ab60a5089a8f02009f127806f777fca82581c49e127f08413a66056bd9166dd"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b1f09b6821406ea1f94053f346f28f8215e293344209129a9c0fcc3578598d7b"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1936af879e3db023601196a1684d28e12f19ccf93af01bf3280a3262c4b6b4e5"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2ac41acfc8d965fb0c464eb8f44995770239668956dc4cdf502d1b1ffe0d747"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c24e0c0fde47a9723c81d5806569cddef103aebbf79dbc9fcbb617153dea30"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23a8825495d8b195c4aa9ff1c430c28f2c821e8c5e2d98089228af887e5d7e29"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:60c578c45c949f909a4026b7807044e7e564adf793537fc762b2489d522f3d11"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-win32.whl", hash = "sha256:118c16cd3f1b00c76d69343e38602006c9cfb9998fa4f798606d28d63f23beda"}, + {file = "sqlalchemy-2.0.41-cp310-cp310-win_amd64.whl", hash = "sha256:7492967c3386df69f80cf67efd665c0f667cee67032090fe01d7d74b0e19bb08"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6375cd674fe82d7aa9816d1cb96ec592bac1726c11e0cafbf40eeee9a4516b5f"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9f8c9fdd15a55d9465e590a402f42082705d66b05afc3ffd2d2eb3c6ba919560"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f9dc8c44acdee06c8fc6440db9eae8b4af8b01e4b1aee7bdd7241c22edff4f"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c11ceb9a1f482c752a71f203a81858625d8df5746d787a4786bca4ffdf71c6"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:911cc493ebd60de5f285bcae0491a60b4f2a9f0f5c270edd1c4dbaef7a38fc04"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03968a349db483936c249f4d9cd14ff2c296adfa1290b660ba6516f973139582"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-win32.whl", hash = "sha256:293cd444d82b18da48c9f71cd7005844dbbd06ca19be1ccf6779154439eec0b8"}, + {file = "sqlalchemy-2.0.41-cp311-cp311-win_amd64.whl", hash = "sha256:3d3549fc3e40667ec7199033a4e40a2f669898a00a7b18a931d3efb4c7900504"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:81f413674d85cfd0dfcd6512e10e0f33c19c21860342a4890c3a2b59479929f9"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:598d9ebc1e796431bbd068e41e4de4dc34312b7aa3292571bb3674a0cb415dd1"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a104c5694dfd2d864a6f91b0956eb5d5883234119cb40010115fd45a16da5e70"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6145afea51ff0af7f2564a05fa95eb46f542919e6523729663a5d285ecb3cf5e"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b46fa6eae1cd1c20e6e6f44e19984d438b6b2d8616d21d783d150df714f44078"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41836fe661cc98abfae476e14ba1906220f92c4e528771a8a3ae6a151242d2ae"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-win32.whl", hash = "sha256:a8808d5cf866c781150d36a3c8eb3adccfa41a8105d031bf27e92c251e3969d6"}, + {file = "sqlalchemy-2.0.41-cp312-cp312-win_amd64.whl", hash = "sha256:5b14e97886199c1f52c14629c11d90c11fbb09e9334fa7bb5f6d068d9ced0ce0"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-win32.whl", hash = "sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f"}, + {file = "sqlalchemy-2.0.41-cp313-cp313-win_amd64.whl", hash = "sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:90144d3b0c8b139408da50196c5cad2a6909b51b23df1f0538411cd23ffa45d3"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:023b3ee6169969beea3bb72312e44d8b7c27c75b347942d943cf49397b7edeb5"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:725875a63abf7c399d4548e686debb65cdc2549e1825437096a0af1f7e374814"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81965cc20848ab06583506ef54e37cf15c83c7e619df2ad16807c03100745dea"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dd5ec3aa6ae6e4d5b5de9357d2133c07be1aff6405b136dad753a16afb6717dd"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ff8e80c4c4932c10493ff97028decfdb622de69cae87e0f127a7ebe32b4069c6"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-win32.whl", hash = "sha256:4d44522480e0bf34c3d63167b8cfa7289c1c54264c2950cc5fc26e7850967e45"}, + {file = "sqlalchemy-2.0.41-cp38-cp38-win_amd64.whl", hash = "sha256:81eedafa609917040d39aa9332e25881a8e7a0862495fcdf2023a9667209deda"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9a420a91913092d1e20c86a2f5f1fc85c1a8924dbcaf5e0586df8aceb09c9cc2"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:906e6b0d7d452e9a98e5ab8507c0da791856b2380fdee61b765632bb8698026f"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a373a400f3e9bac95ba2a06372c4fd1412a7cee53c37fc6c05f829bf672b8769"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:087b6b52de812741c27231b5a3586384d60c353fbd0e2f81405a814b5591dc8b"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:34ea30ab3ec98355235972dadc497bb659cc75f8292b760394824fab9cf39826"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8280856dd7c6a68ab3a164b4a4b1c51f7691f6d04af4d4ca23d6ecf2261b7923"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-win32.whl", hash = "sha256:b50eab9994d64f4a823ff99a0ed28a6903224ddbe7fef56a6dd865eec9243440"}, + {file = "sqlalchemy-2.0.41-cp39-cp39-win_amd64.whl", hash = "sha256:5e22575d169529ac3e0a120cf050ec9daa94b6a9597993d1702884f6954a7d71"}, + {file = "sqlalchemy-2.0.41-py3-none-any.whl", hash = "sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576"}, + {file = "sqlalchemy-2.0.41.tar.gz", hash = "sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9"}, ] [package.dependencies] @@ -5068,14 +5034,14 @@ sqlcipher = ["sqlcipher3_binary"] [[package]] name = "starlette" -version = "0.45.3" +version = "0.46.2" description = "The little ASGI library that shines." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"}, - {file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"}, + {file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"}, + {file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"}, ] [package.dependencies] @@ -5086,14 +5052,14 @@ full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart [[package]] name = "storage3" -version = "0.11.1" +version = "0.11.3" description = "Supabase Storage client for Python." optional = false python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "storage3-0.11.1-py3-none-any.whl", hash = "sha256:a8dcfd1472ff1238c0f4a6a725d7a579f132762539c5395dc1e91806b4e20e45"}, - {file = "storage3-0.11.1.tar.gz", hash = "sha256:b3bca07108f7077d406d49ef0ddd6805fe22f94fafc186c56bf3a1e2761291f3"}, + {file = "storage3-0.11.3-py3-none-any.whl", hash = "sha256:090c42152217d5d39bd94af3ddeb60c8982f3a283dcd90b53d058f2db33e6007"}, + {file = "storage3-0.11.3.tar.gz", hash = "sha256:883637132aad36d9d92b7c497a8a56dff7c51f15faf2ff7acbccefbbd5e97347"}, ] [package.dependencies] @@ -5119,14 +5085,14 @@ test = ["pylint", "pytest", "pytest-black", "pytest-cov", "pytest-pylint"] [[package]] name = "stripe" -version = "11.5.0" +version = "11.6.0" description = "Python bindings for the Stripe API" optional = false python-versions = ">=3.6" groups = ["main"] files = [ - {file = "stripe-11.5.0-py2.py3-none-any.whl", hash = "sha256:3b2cd47ed3002328249bff5cacaee38d5e756c3899ab425d3bd07acdaf32534a"}, - {file = "stripe-11.5.0.tar.gz", hash = "sha256:bc3e0358ffc23d5ecfa8aafec1fa4f048ee8107c3237bcb00003e68c8c96fa02"}, + {file = "stripe-11.6.0-py2.py3-none-any.whl", hash = "sha256:6e6cf09ebb6d5fc2d708401cb8868fd7bff987a6d09a0433caaa92c62f97dbc5"}, + {file = "stripe-11.6.0.tar.gz", hash = "sha256:0ced7cce23a6cb1a393c86a1f7f9435c9d83ae7cbd556362868caf62cb44a92c"}, ] [package.dependencies] @@ -5155,14 +5121,14 @@ supafunc = ">=0.9,<0.10" [[package]] name = "supafunc" -version = "0.9.2" +version = "0.9.4" description = "Library for Supabase Functions" optional = false python-versions = "<4.0,>=3.9" groups = ["main"] files = [ - {file = "supafunc-0.9.2-py3-none-any.whl", hash = "sha256:be5ee9f53842c4b0ba5f4abfb5bddf9f9e37e69e755ec0526852bb15af9d2ff5"}, - {file = "supafunc-0.9.2.tar.gz", hash = "sha256:f5164114a3e65e7e552539f3f1050aa3d4970885abdd7405555c17fd216e2da1"}, + {file = "supafunc-0.9.4-py3-none-any.whl", hash = "sha256:2b34a794fb7930953150a434cdb93c24a04cf526b2f51a9e60b2be0b86d44fb2"}, + {file = "supafunc-0.9.4.tar.gz", hash = "sha256:68824a9a7bcccf5ab1e038cda632ba47cba27f2a7dc606014206b56f5a071de2"}, ] [package.dependencies] @@ -5346,14 +5312,14 @@ telegram = ["requests"] [[package]] name = "trove-classifiers" -version = "2025.3.19.19" +version = "2025.5.9.12" description = "Canonical source for classifiers on PyPI (pypi.org)." optional = false python-versions = "*" groups = ["main"] files = [ - {file = "trove_classifiers-2025.3.19.19-py3-none-any.whl", hash = "sha256:5fc02770ecd81588a605ac98b9d85d50a5a3f9daa30af2a6b1361a1999d75d07"}, - {file = "trove_classifiers-2025.3.19.19.tar.gz", hash = "sha256:98e9d396fe908d5f43b7454fa4c43d17cd0fdadf046f45fb38a5e3af8d959ecd"}, + {file = "trove_classifiers-2025.5.9.12-py3-none-any.whl", hash = "sha256:e381c05537adac78881c8fa345fd0e9970159f4e4a04fcc42cfd3129cca640ce"}, + {file = "trove_classifiers-2025.5.9.12.tar.gz", hash = "sha256:7ca7c8a7a76e2cd314468c677c69d12cc2357711fcab4a60f87994c1589e5cb5"}, ] [[package]] @@ -5382,26 +5348,26 @@ test = ["urllib3 (<2)", "vcrpy (>=1.10.3)"] [[package]] name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" +version = "4.14.0" +description = "Backported and Experimental Type Hints for Python 3.9+" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, + {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, + {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, ] [[package]] name = "typing-inspection" -version = "0.4.0" +version = "0.4.1" description = "Runtime typing introspection tools" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, - {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, + {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, + {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, ] [package.dependencies] @@ -5409,27 +5375,27 @@ typing-extensions = ">=4.12.0" [[package]] name = "tzdata" -version = "2025.1" +version = "2025.2" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" groups = ["main"] markers = "platform_system == \"Windows\"" files = [ - {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, - {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, + {file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}, + {file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}, ] [[package]] name = "tzlocal" -version = "5.2" +version = "5.3.1" description = "tzinfo object for the local timezone" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "tzlocal-5.2-py3-none-any.whl", hash = "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8"}, - {file = "tzlocal-5.2.tar.gz", hash = "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"}, + {file = "tzlocal-5.3.1-py3-none-any.whl", hash = "sha256:eb1a66c3ef5847adf7a834f1be0800581b683b5608e74f86ecbcef8ab91bb85d"}, + {file = "tzlocal-5.3.1.tar.gz", hash = "sha256:cceffc7edecefea1f595541dbd6e990cb1ea3d19bf01b2809f362a03dd7921fd"}, ] [package.dependencies] @@ -5460,26 +5426,26 @@ test = ["pytest (>=2.7.3)"] [[package]] name = "uritemplate" -version = "4.1.1" +version = "4.2.0" description = "Implementation of RFC 6570 URI Templates" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"}, - {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, + {file = "uritemplate-4.2.0-py3-none-any.whl", hash = "sha256:962201ba1c4edcab02e60f9a0d3821e82dfc5d2d6662a21abd533879bdb8a686"}, + {file = "uritemplate-4.2.0.tar.gz", hash = "sha256:480c2ed180878955863323eea31b0ede668795de182617fef9c6ca09e6ec9d0e"}, ] [[package]] name = "urllib3" -version = "2.3.0" +version = "2.4.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, + {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, + {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, ] [package.extras] @@ -5490,14 +5456,14 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "uvicorn" -version = "0.34.2" +version = "0.34.3" description = "The lightning-fast ASGI server." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "uvicorn-0.34.2-py3-none-any.whl", hash = "sha256:deb49af569084536d269fe0a6d67e3754f104cf03aba7c11c40f01aadf33c403"}, - {file = "uvicorn-0.34.2.tar.gz", hash = "sha256:0e929828f6186353a80b58ea719861d2629d766293b6d19baf086ba31d4f3328"}, + {file = "uvicorn-0.34.3-py3-none-any.whl", hash = "sha256:16246631db62bdfbf069b0645177d6e8a77ba950cfedbfd093acef9444e4d885"}, + {file = "uvicorn-0.34.3.tar.gz", hash = "sha256:35919a9a979d7a59334b6b10e05d77c1d0d574c50e0fc98b8b1a0f165708b55a"}, ] [package.dependencies] @@ -5508,12 +5474,12 @@ httptools = {version = ">=0.6.3", optional = true, markers = "extra == \"standar python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +uvloop = {version = ">=0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} [package.extras] -standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"] +standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"] [[package]] name = "uvloop" @@ -5570,14 +5536,14 @@ test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", [[package]] name = "virtualenv" -version = "20.29.3" +version = "20.31.2" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "virtualenv-20.29.3-py3-none-any.whl", hash = "sha256:3e3d00f5807e83b234dfb6122bf37cfadf4be216c53a49ac059d02414f819170"}, - {file = "virtualenv-20.29.3.tar.gz", hash = "sha256:95e39403fcf3940ac45bc717597dba16110b74506131845d9b687d5e73d947ac"}, + {file = "virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11"}, + {file = "virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af"}, ] [package.dependencies] @@ -5587,7 +5553,7 @@ platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"GraalVM\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] [[package]] name = "watchdog" @@ -5634,83 +5600,83 @@ watchmedo = ["PyYAML (>=3.10)"] [[package]] name = "watchfiles" -version = "1.0.4" +version = "1.0.5" description = "Simple, modern and high performance file watching and code reload in python." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, - {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, - {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, - {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, - {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, - {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, - {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, - {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, - {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, - {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, - {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, - {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, - {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, - {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, - {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, - {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, - {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, - {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, - {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, - {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, - {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, - {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, - {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, - {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, - {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, - {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, - {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, - {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, - {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, - {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, - {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, - {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, - {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, - {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, - {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, - {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, - {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, - {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, - {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, - {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, - {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, - {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, - {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, - {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, - {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, - {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, - {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, - {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, - {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, - {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, - {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, - {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, - {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, - {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, - {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, - {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, - {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, - {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, - {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, - {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, - {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, - {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, - {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, - {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, - {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, - {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, - {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, - {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, - {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, - {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, - {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, + {file = "watchfiles-1.0.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5c40fe7dd9e5f81e0847b1ea64e1f5dd79dd61afbedb57759df06767ac719b40"}, + {file = "watchfiles-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c0db396e6003d99bb2d7232c957b5f0b5634bbd1b24e381a5afcc880f7373fb"}, + {file = "watchfiles-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b551d4fb482fc57d852b4541f911ba28957d051c8776e79c3b4a51eb5e2a1b11"}, + {file = "watchfiles-1.0.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:830aa432ba5c491d52a15b51526c29e4a4b92bf4f92253787f9726fe01519487"}, + {file = "watchfiles-1.0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a16512051a822a416b0d477d5f8c0e67b67c1a20d9acecb0aafa3aa4d6e7d256"}, + {file = "watchfiles-1.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe0cbc787770e52a96c6fda6726ace75be7f840cb327e1b08d7d54eadc3bc85"}, + {file = "watchfiles-1.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d363152c5e16b29d66cbde8fa614f9e313e6f94a8204eaab268db52231fe5358"}, + {file = "watchfiles-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ee32c9a9bee4d0b7bd7cbeb53cb185cf0b622ac761efaa2eba84006c3b3a614"}, + {file = "watchfiles-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29c7fd632ccaf5517c16a5188e36f6612d6472ccf55382db6c7fe3fcccb7f59f"}, + {file = "watchfiles-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e637810586e6fe380c8bc1b3910accd7f1d3a9a7262c8a78d4c8fb3ba6a2b3d"}, + {file = "watchfiles-1.0.5-cp310-cp310-win32.whl", hash = "sha256:cd47d063fbeabd4c6cae1d4bcaa38f0902f8dc5ed168072874ea11d0c7afc1ff"}, + {file = "watchfiles-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:86c0df05b47a79d80351cd179893f2f9c1b1cae49d96e8b3290c7f4bd0ca0a92"}, + {file = "watchfiles-1.0.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:237f9be419e977a0f8f6b2e7b0475ababe78ff1ab06822df95d914a945eac827"}, + {file = "watchfiles-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0da39ff917af8b27a4bdc5a97ac577552a38aac0d260a859c1517ea3dc1a7c4"}, + {file = "watchfiles-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfcb3952350e95603f232a7a15f6c5f86c5375e46f0bd4ae70d43e3e063c13d"}, + {file = "watchfiles-1.0.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68b2dddba7a4e6151384e252a5632efcaa9bc5d1c4b567f3cb621306b2ca9f63"}, + {file = "watchfiles-1.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:95cf944fcfc394c5f9de794ce581914900f82ff1f855326f25ebcf24d5397418"}, + {file = "watchfiles-1.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecf6cd9f83d7c023b1aba15d13f705ca7b7d38675c121f3cc4a6e25bd0857ee9"}, + {file = "watchfiles-1.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:852de68acd6212cd6d33edf21e6f9e56e5d98c6add46f48244bd479d97c967c6"}, + {file = "watchfiles-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5730f3aa35e646103b53389d5bc77edfbf578ab6dab2e005142b5b80a35ef25"}, + {file = "watchfiles-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:18b3bd29954bc4abeeb4e9d9cf0b30227f0f206c86657674f544cb032296acd5"}, + {file = "watchfiles-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ba5552a1b07c8edbf197055bc9d518b8f0d98a1c6a73a293bc0726dce068ed01"}, + {file = "watchfiles-1.0.5-cp311-cp311-win32.whl", hash = "sha256:2f1fefb2e90e89959447bc0420fddd1e76f625784340d64a2f7d5983ef9ad246"}, + {file = "watchfiles-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:b6e76ceb1dd18c8e29c73f47d41866972e891fc4cc7ba014f487def72c1cf096"}, + {file = "watchfiles-1.0.5-cp311-cp311-win_arm64.whl", hash = "sha256:266710eb6fddc1f5e51843c70e3bebfb0f5e77cf4f27129278c70554104d19ed"}, + {file = "watchfiles-1.0.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5eb568c2aa6018e26da9e6c86f3ec3fd958cee7f0311b35c2630fa4217d17f2"}, + {file = "watchfiles-1.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0a04059f4923ce4e856b4b4e5e783a70f49d9663d22a4c3b3298165996d1377f"}, + {file = "watchfiles-1.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e380c89983ce6e6fe2dd1e1921b9952fb4e6da882931abd1824c092ed495dec"}, + {file = "watchfiles-1.0.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fe43139b2c0fdc4a14d4f8d5b5d967f7a2777fd3d38ecf5b1ec669b0d7e43c21"}, + {file = "watchfiles-1.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee0822ce1b8a14fe5a066f93edd20aada932acfe348bede8aa2149f1a4489512"}, + {file = "watchfiles-1.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a0dbcb1c2d8f2ab6e0a81c6699b236932bd264d4cef1ac475858d16c403de74d"}, + {file = "watchfiles-1.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a2014a2b18ad3ca53b1f6c23f8cd94a18ce930c1837bd891262c182640eb40a6"}, + {file = "watchfiles-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f6ae86d5cb647bf58f9f655fcf577f713915a5d69057a0371bc257e2553234"}, + {file = "watchfiles-1.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1a7bac2bde1d661fb31f4d4e8e539e178774b76db3c2c17c4bb3e960a5de07a2"}, + {file = "watchfiles-1.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ab626da2fc1ac277bbf752446470b367f84b50295264d2d313e28dc4405d663"}, + {file = "watchfiles-1.0.5-cp312-cp312-win32.whl", hash = "sha256:9f4571a783914feda92018ef3901dab8caf5b029325b5fe4558c074582815249"}, + {file = "watchfiles-1.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:360a398c3a19672cf93527f7e8d8b60d8275119c5d900f2e184d32483117a705"}, + {file = "watchfiles-1.0.5-cp312-cp312-win_arm64.whl", hash = "sha256:1a2902ede862969077b97523987c38db28abbe09fb19866e711485d9fbf0d417"}, + {file = "watchfiles-1.0.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0b289572c33a0deae62daa57e44a25b99b783e5f7aed81b314232b3d3c81a11d"}, + {file = "watchfiles-1.0.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a056c2f692d65bf1e99c41045e3bdcaea3cb9e6b5a53dcaf60a5f3bd95fc9763"}, + {file = "watchfiles-1.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9dca99744991fc9850d18015c4f0438865414e50069670f5f7eee08340d8b40"}, + {file = "watchfiles-1.0.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:894342d61d355446d02cd3988a7326af344143eb33a2fd5d38482a92072d9563"}, + {file = "watchfiles-1.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab44e1580924d1ffd7b3938e02716d5ad190441965138b4aa1d1f31ea0877f04"}, + {file = "watchfiles-1.0.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6f9367b132078b2ceb8d066ff6c93a970a18c3029cea37bfd7b2d3dd2e5db8f"}, + {file = "watchfiles-1.0.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2e55a9b162e06e3f862fb61e399fe9f05d908d019d87bf5b496a04ef18a970a"}, + {file = "watchfiles-1.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0125f91f70e0732a9f8ee01e49515c35d38ba48db507a50c5bdcad9503af5827"}, + {file = "watchfiles-1.0.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:13bb21f8ba3248386337c9fa51c528868e6c34a707f729ab041c846d52a0c69a"}, + {file = "watchfiles-1.0.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:839ebd0df4a18c5b3c1b890145b5a3f5f64063c2a0d02b13c76d78fe5de34936"}, + {file = "watchfiles-1.0.5-cp313-cp313-win32.whl", hash = "sha256:4a8ec1e4e16e2d5bafc9ba82f7aaecfeec990ca7cd27e84fb6f191804ed2fcfc"}, + {file = "watchfiles-1.0.5-cp313-cp313-win_amd64.whl", hash = "sha256:f436601594f15bf406518af922a89dcaab416568edb6f65c4e5bbbad1ea45c11"}, + {file = "watchfiles-1.0.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:2cfb371be97d4db374cba381b9f911dd35bb5f4c58faa7b8b7106c8853e5d225"}, + {file = "watchfiles-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a3904d88955fda461ea2531fcf6ef73584ca921415d5cfa44457a225f4a42bc1"}, + {file = "watchfiles-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b7a21715fb12274a71d335cff6c71fe7f676b293d322722fe708a9ec81d91f5"}, + {file = "watchfiles-1.0.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dfd6ae1c385ab481766b3c61c44aca2b3cd775f6f7c0fa93d979ddec853d29d5"}, + {file = "watchfiles-1.0.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b659576b950865fdad31fa491d31d37cf78b27113a7671d39f919828587b429b"}, + {file = "watchfiles-1.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1909e0a9cd95251b15bff4261de5dd7550885bd172e3536824bf1cf6b121e200"}, + {file = "watchfiles-1.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:832ccc221927c860e7286c55c9b6ebcc0265d5e072f49c7f6456c7798d2b39aa"}, + {file = "watchfiles-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85fbb6102b3296926d0c62cfc9347f6237fb9400aecd0ba6bbda94cae15f2b3b"}, + {file = "watchfiles-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:15ac96dd567ad6c71c71f7b2c658cb22b7734901546cd50a475128ab557593ca"}, + {file = "watchfiles-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4b6227351e11c57ae997d222e13f5b6f1f0700d84b8c52304e8675d33a808382"}, + {file = "watchfiles-1.0.5-cp39-cp39-win32.whl", hash = "sha256:974866e0db748ebf1eccab17862bc0f0303807ed9cda465d1324625b81293a18"}, + {file = "watchfiles-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:9848b21ae152fe79c10dd0197304ada8f7b586d3ebc3f27f43c506e5a52a863c"}, + {file = "watchfiles-1.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f59b870db1f1ae5a9ac28245707d955c8721dd6565e7f411024fa374b5362d1d"}, + {file = "watchfiles-1.0.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9475b0093767e1475095f2aeb1d219fb9664081d403d1dff81342df8cd707034"}, + {file = "watchfiles-1.0.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc533aa50664ebd6c628b2f30591956519462f5d27f951ed03d6c82b2dfd9965"}, + {file = "watchfiles-1.0.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed1cd825158dcaae36acce7b2db33dcbfd12b30c34317a88b8ed80f0541cc57"}, + {file = "watchfiles-1.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:554389562c29c2c182e3908b149095051f81d28c2fec79ad6c8997d7d63e0009"}, + {file = "watchfiles-1.0.5-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a74add8d7727e6404d5dc4dcd7fac65d4d82f95928bbee0cf5414c900e86773e"}, + {file = "watchfiles-1.0.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb1489f25b051a89fae574505cc26360c8e95e227a9500182a7fe0afcc500ce0"}, + {file = "watchfiles-1.0.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0901429650652d3f0da90bad42bdafc1f9143ff3605633c455c999a2d786cac"}, + {file = "watchfiles-1.0.5.tar.gz", hash = "sha256:b7529b5dcc114679d43827d8c35a07c493ad6f083633d573d81c660abc5979e9"}, ] [package.dependencies] @@ -6002,100 +5968,122 @@ test = ["pytest"] [[package]] name = "yarl" -version = "1.18.3" +version = "1.20.0" description = "Yet another URL library" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, - {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, - {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, - {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, - {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, - {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, - {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, - {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, - {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, - {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, - {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, - {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, - {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, - {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, - {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, - {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, - {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, - {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, - {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, - {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, - {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, - {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, - {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f1f6670b9ae3daedb325fa55fbe31c22c8228f6e0b513772c2e1c623caa6ab22"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85a231fa250dfa3308f3c7896cc007a47bc76e9e8e8595c20b7426cac4884c62"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a06701b647c9939d7019acdfa7ebbfbb78ba6aa05985bb195ad716ea759a569"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7595498d085becc8fb9203aa314b136ab0516c7abd97e7d74f7bb4eb95042abe"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af5607159085dcdb055d5678fc2d34949bd75ae6ea6b4381e784bbab1c3aa195"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95b50910e496567434cb77a577493c26bce0f31c8a305135f3bda6a2483b8e10"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b594113a301ad537766b4e16a5a6750fcbb1497dcc1bc8a4daae889e6402a634"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:083ce0393ea173cd37834eb84df15b6853b555d20c52703e21fbababa8c129d2"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f1a350a652bbbe12f666109fbddfdf049b3ff43696d18c9ab1531fbba1c977a"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fb0caeac4a164aadce342f1597297ec0ce261ec4532bbc5a9ca8da5622f53867"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d88cc43e923f324203f6ec14434fa33b85c06d18d59c167a0637164863b8e995"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e52d6ed9ea8fd3abf4031325dc714aed5afcbfa19ee4a89898d663c9976eb487"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ce360ae48a5e9961d0c730cf891d40698a82804e85f6e74658fb175207a77cb2"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:06d06c9d5b5bc3eb56542ceeba6658d31f54cf401e8468512447834856fb0e61"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c27d98f4e5c4060582f44e58309c1e55134880558f1add7a87c1bc36ecfade19"}, + {file = "yarl-1.20.0-cp310-cp310-win32.whl", hash = "sha256:f4d3fa9b9f013f7050326e165c3279e22850d02ae544ace285674cb6174b5d6d"}, + {file = "yarl-1.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc906b636239631d42eb8a07df8359905da02704a868983265603887ed68c076"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fdb5204d17cb32b2de2d1e21c7461cabfacf17f3645e4b9039f210c5d3378bf3"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eaddd7804d8e77d67c28d154ae5fab203163bd0998769569861258e525039d2a"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:634b7ba6b4a85cf67e9df7c13a7fb2e44fa37b5d34501038d174a63eaac25ee2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d409e321e4addf7d97ee84162538c7258e53792eb7c6defd0c33647d754172e"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ea52f7328a36960ba3231c6677380fa67811b414798a6e071c7085c57b6d20a9"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8703517b924463994c344dcdf99a2d5ce9eca2b6882bb640aa555fb5efc706a"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:077989b09ffd2f48fb2d8f6a86c5fef02f63ffe6b1dd4824c76de7bb01e4f2e2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0acfaf1da020253f3533526e8b7dd212838fdc4109959a2c53cafc6db611bff2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4230ac0b97ec5eeb91d96b324d66060a43fd0d2a9b603e3327ed65f084e41f8"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a6a1e6ae21cdd84011c24c78d7a126425148b24d437b5702328e4ba640a8902"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86de313371ec04dd2531f30bc41a5a1a96f25a02823558ee0f2af0beaa7ca791"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dd59c9dd58ae16eaa0f48c3d0cbe6be8ab4dc7247c3ff7db678edecbaf59327f"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a0bc5e05f457b7c1994cc29e83b58f540b76234ba6b9648a4971ddc7f6aa52da"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c9471ca18e6aeb0e03276b5e9b27b14a54c052d370a9c0c04a68cefbd1455eb4"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:40ed574b4df723583a26c04b298b283ff171bcc387bc34c2683235e2487a65a5"}, + {file = "yarl-1.20.0-cp311-cp311-win32.whl", hash = "sha256:db243357c6c2bf3cd7e17080034ade668d54ce304d820c2a58514a4e51d0cfd6"}, + {file = "yarl-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c12cd754d9dbd14204c328915e23b0c361b88f3cffd124129955e60a4fbfcfb"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e06b9f6cdd772f9b665e5ba8161968e11e403774114420737f7884b5bd7bdf6f"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b9ae2fbe54d859b3ade40290f60fe40e7f969d83d482e84d2c31b9bff03e359e"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d12b8945250d80c67688602c891237994d203d42427cb14e36d1a732eda480e"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087e9731884621b162a3e06dc0d2d626e1542a617f65ba7cc7aeab279d55ad33"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:69df35468b66c1a6e6556248e6443ef0ec5f11a7a4428cf1f6281f1879220f58"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2992fe29002fd0d4cbaea9428b09af9b8686a9024c840b8a2b8f4ea4abc16f"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c903e0b42aab48abfbac668b5a9d7b6938e721a6341751331bcd7553de2dcae"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf099e2432131093cc611623e0b0bcc399b8cddd9a91eded8bfb50402ec35018"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7f62f5dc70a6c763bec9ebf922be52aa22863d9496a9a30124d65b489ea672"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:54ac15a8b60382b2bcefd9a289ee26dc0920cf59b05368c9b2b72450751c6eb8"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:25b3bc0763a7aca16a0f1b5e8ef0f23829df11fb539a1b70476dcab28bd83da7"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b2586e36dc070fc8fad6270f93242124df68b379c3a251af534030a4a33ef594"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:866349da9d8c5290cfefb7fcc47721e94de3f315433613e01b435473be63daa6"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:33bb660b390a0554d41f8ebec5cd4475502d84104b27e9b42f5321c5192bfcd1"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737e9f171e5a07031cbee5e9180f6ce21a6c599b9d4b2c24d35df20a52fabf4b"}, + {file = "yarl-1.20.0-cp312-cp312-win32.whl", hash = "sha256:839de4c574169b6598d47ad61534e6981979ca2c820ccb77bf70f4311dd2cc64"}, + {file = "yarl-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:3d7dbbe44b443b0c4aa0971cb07dcb2c2060e4a9bf8d1301140a33a93c98e18c"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2137810a20b933b1b1b7e5cf06a64c3ed3b4747b0e5d79c9447c00db0e2f752f"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:447c5eadd750db8389804030d15f43d30435ed47af1313303ed82a62388176d3"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42fbe577272c203528d402eec8bf4b2d14fd49ecfec92272334270b850e9cd7d"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18e321617de4ab170226cd15006a565d0fa0d908f11f724a2c9142d6b2812ab0"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4345f58719825bba29895011e8e3b545e6e00257abb984f9f27fe923afca2501"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d9b980d7234614bc4674468ab173ed77d678349c860c3af83b1fffb6a837ddc"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af4baa8a445977831cbaa91a9a84cc09debb10bc8391f128da2f7bd070fc351d"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123393db7420e71d6ce40d24885a9e65eb1edefc7a5228db2d62bcab3386a5c0"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab47acc9332f3de1b39e9b702d9c916af7f02656b2a86a474d9db4e53ef8fd7a"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4a34c52ed158f89876cba9c600b2c964dfc1ca52ba7b3ab6deb722d1d8be6df2"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:04d8cfb12714158abf2618f792c77bc5c3d8c5f37353e79509608be4f18705c9"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7dc63ad0d541c38b6ae2255aaa794434293964677d5c1ec5d0116b0e308031f5"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d02b591a64e4e6ca18c5e3d925f11b559c763b950184a64cf47d74d7e41877"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95fc9876f917cac7f757df80a5dda9de59d423568460fe75d128c813b9af558e"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb769ae5760cd1c6a712135ee7915f9d43f11d9ef769cb3f75a23e398a92d384"}, + {file = "yarl-1.20.0-cp313-cp313-win32.whl", hash = "sha256:70e0c580a0292c7414a1cead1e076c9786f685c1fc4757573d2967689b370e62"}, + {file = "yarl-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:4c43030e4b0af775a85be1fa0433119b1565673266a70bf87ef68a9d5ba3174c"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b6c4c3d0d6a0ae9b281e492b1465c72de433b782e6b5001c8e7249e085b69051"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8681700f4e4df891eafa4f69a439a6e7d480d64e52bf460918f58e443bd3da7d"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:84aeb556cb06c00652dbf87c17838eb6d92cfd317799a8092cee0e570ee11229"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f166eafa78810ddb383e930d62e623d288fb04ec566d1b4790099ae0f31485f1"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5d3d6d14754aefc7a458261027a562f024d4f6b8a798adb472277f675857b1eb"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a8f64df8ed5d04c51260dbae3cc82e5649834eebea9eadfd829837b8093eb00"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d9949eaf05b4d30e93e4034a7790634bbb41b8be2d07edd26754f2e38e491de"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c366b254082d21cc4f08f522ac201d0d83a8b8447ab562732931d31d80eb2a5"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91bc450c80a2e9685b10e34e41aef3d44ddf99b3a498717938926d05ca493f6a"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c2aa4387de4bc3a5fe158080757748d16567119bef215bec643716b4fbf53f9"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d2cbca6760a541189cf87ee54ff891e1d9ea6406079c66341008f7ef6ab61145"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:798a5074e656f06b9fad1a162be5a32da45237ce19d07884d0b67a0aa9d5fdda"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f106e75c454288472dbe615accef8248c686958c2e7dd3b8d8ee2669770d020f"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3b60a86551669c23dc5445010534d2c5d8a4e012163218fc9114e857c0586fdd"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e429857e341d5e8e15806118e0294f8073ba9c4580637e59ab7b238afca836f"}, + {file = "yarl-1.20.0-cp313-cp313t-win32.whl", hash = "sha256:65a4053580fe88a63e8e4056b427224cd01edfb5f951498bfefca4052f0ce0ac"}, + {file = "yarl-1.20.0-cp313-cp313t-win_amd64.whl", hash = "sha256:53b2da3a6ca0a541c1ae799c349788d480e5144cac47dba0266c7cb6c76151fe"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:119bca25e63a7725b0c9d20ac67ca6d98fa40e5a894bd5d4686010ff73397914"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:35d20fb919546995f1d8c9e41f485febd266f60e55383090010f272aca93edcc"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:484e7a08f72683c0f160270566b4395ea5412b4359772b98659921411d32ad26"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d8a3d54a090e0fff5837cd3cc305dd8a07d3435a088ddb1f65e33b322f66a94"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f0cf05ae2d3d87a8c9022f3885ac6dea2b751aefd66a4f200e408a61ae9b7f0d"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a884b8974729e3899d9287df46f015ce53f7282d8d3340fa0ed57536b440621c"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8d8aa8dd89ffb9a831fedbcb27d00ffd9f4842107d52dc9d57e64cb34073d5c"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4e88d6c3c8672f45a30867817e4537df1bbc6f882a91581faf1f6d9f0f1b5a"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdb77efde644d6f1ad27be8a5d67c10b7f769804fff7a966ccb1da5a4de4b656"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4ba5e59f14bfe8d261a654278a0f6364feef64a794bd456a8c9e823071e5061c"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:d0bf955b96ea44ad914bc792c26a0edcd71b4668b93cbcd60f5b0aeaaed06c64"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:27359776bc359ee6eaefe40cb19060238f31228799e43ebd3884e9c589e63b20"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:04d9c7a1dc0a26efb33e1acb56c8849bd57a693b85f44774356c92d610369efa"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:faa709b66ae0e24c8e5134033187a972d849d87ed0a12a0366bedcc6b5dc14a5"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:44869ee8538208fe5d9342ed62c11cc6a7a1af1b3d0bb79bb795101b6e77f6e0"}, + {file = "yarl-1.20.0-cp39-cp39-win32.whl", hash = "sha256:b7fa0cb9fd27ffb1211cde944b41f5c67ab1c13a13ebafe470b1e206b8459da8"}, + {file = "yarl-1.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:d4fad6e5189c847820288286732075f213eabf81be4d08d6cc309912e62be5b7"}, + {file = "yarl-1.20.0-py3-none-any.whl", hash = "sha256:5d0fe6af927a47a230f31e6004621fd0959eaa915fc62acfafa67ff7229a3124"}, + {file = "yarl-1.20.0.tar.gz", hash = "sha256:686d51e51ee5dfe62dec86e4866ee0e9ed66df700d55c828a615640adc885307"}, ] [package.dependencies] idna = ">=2.0" multidict = ">=4.0" -propcache = ">=0.2.0" +propcache = ">=0.2.1" [[package]] name = "youtube-transcript-api" @@ -6130,14 +6118,14 @@ requests = ">=2.22.0" [[package]] name = "zipp" -version = "3.21.0" +version = "3.22.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, - {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, + {file = "zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343"}, + {file = "zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5"}, ] [package.extras] @@ -6145,7 +6133,7 @@ check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \" cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +test = ["big-O", "importlib_resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] type = ["pytest-mypy"] [[package]] @@ -6264,4 +6252,4 @@ cffi = ["cffi (>=1.11)"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.13" -content-hash = "8968eaab1359ef97beccfc7796d69557e0eeb9286c69cfdc7441c483b91ae58a" +content-hash = "8d59c154b4ec91c28424c552de7c85c6399efe24ab74a979bfd62275d112fbf0" diff --git a/autogpt_platform/backend/pyproject.toml b/autogpt_platform/backend/pyproject.toml index 065e55e03d..b54ba12b23 100644 --- a/autogpt_platform/backend/pyproject.toml +++ b/autogpt_platform/backend/pyproject.toml @@ -65,6 +65,7 @@ websockets = "^14.2" youtube-transcript-api = "^0.6.2" zerobouncesdk = "^1.1.1" # NOTE: please insert new dependencies in their alphabetical location +pytest-snapshot = "^0.9.0" [tool.poetry.group.dev.dependencies] aiohappyeyeballs = "^2.6.1" diff --git a/autogpt_platform/backend/run_tests.py b/autogpt_platform/backend/run_tests.py index 4f457fef96..84af1d6813 100644 --- a/autogpt_platform/backend/run_tests.py +++ b/autogpt_platform/backend/run_tests.py @@ -1,3 +1,4 @@ +import os import subprocess import sys import time @@ -59,11 +60,52 @@ def test(): run_command(["docker", "compose", "-f", "docker-compose.test.yaml", "down"]) sys.exit(1) - # Run Prisma migrations - run_command(["prisma", "migrate", "dev"]) + # IMPORTANT: Set test database environment variables to prevent accidentally + # resetting the developer's local database. + # + # This script spins up a separate test database container (postgres-test) using + # docker-compose.test.yaml. We explicitly set DATABASE_URL and DIRECT_URL to point + # to this test database to ensure that: + # 1. The prisma migrate reset command only affects the test database + # 2. Tests run against the test database, not the developer's local database + # 3. Any database operations during testing are isolated from development data + # + # Without this, if a developer has DATABASE_URL set in their environment pointing + # to their development database, running tests would wipe their local data! + test_env = os.environ.copy() - # Run the tests - result = subprocess.run(["pytest"] + sys.argv[1:], check=False) + # Use environment variables if set, otherwise use defaults that match docker-compose.test.yaml + db_user = os.getenv("DB_USER", "postgres") + db_pass = os.getenv("DB_PASS", "postgres") + db_name = os.getenv("DB_NAME", "postgres") + db_port = os.getenv("DB_PORT", "5432") + + # Construct the test database URL - this ensures we're always pointing to the test container + test_env["DATABASE_URL"] = ( + f"postgresql://{db_user}:{db_pass}@localhost:{db_port}/{db_name}" + ) + test_env["DIRECT_URL"] = test_env["DATABASE_URL"] + + test_env["DB_PORT"] = db_port + test_env["DB_NAME"] = db_name + test_env["DB_PASS"] = db_pass + test_env["DB_USER"] = db_user + + # Run Prisma migrations with test database + # First, reset the database to ensure clean state for tests + # This is safe because we've explicitly set DATABASE_URL to the test database above + subprocess.run( + ["prisma", "migrate", "reset", "--force", "--skip-seed"], + env=test_env, + check=False, + ) + # Then apply migrations to get the test database schema up to date + subprocess.run(["prisma", "migrate", "deploy"], env=test_env, check=True) + + # Run the tests with test database environment + # This ensures all database connections in the tests use the test database, + # not any database that might be configured in the developer's environment + result = subprocess.run(["pytest"] + sys.argv[1:], env=test_env, check=False) run_command(["docker", "compose", "-f", "docker-compose.test.yaml", "down"]) diff --git a/autogpt_platform/backend/snapshots/adm_add_cred_neg b/autogpt_platform/backend/snapshots/adm_add_cred_neg new file mode 100644 index 0000000000..a0b0fe2795 --- /dev/null +++ b/autogpt_platform/backend/snapshots/adm_add_cred_neg @@ -0,0 +1,4 @@ +{ + "new_balance": 200, + "transaction_key": "transaction-456-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/adm_add_cred_ok b/autogpt_platform/backend/snapshots/adm_add_cred_ok new file mode 100644 index 0000000000..7b5c4aa29b --- /dev/null +++ b/autogpt_platform/backend/snapshots/adm_add_cred_ok @@ -0,0 +1,4 @@ +{ + "new_balance": 1500, + "transaction_key": "transaction-123-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/adm_usr_hist_empty b/autogpt_platform/backend/snapshots/adm_usr_hist_empty new file mode 100644 index 0000000000..4e9b333c37 --- /dev/null +++ b/autogpt_platform/backend/snapshots/adm_usr_hist_empty @@ -0,0 +1,9 @@ +{ + "history": [], + "pagination": { + "current_page": 1, + "page_size": 20, + "total_items": 0, + "total_pages": 0 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/adm_usr_hist_filt b/autogpt_platform/backend/snapshots/adm_usr_hist_filt new file mode 100644 index 0000000000..aa5810250b --- /dev/null +++ b/autogpt_platform/backend/snapshots/adm_usr_hist_filt @@ -0,0 +1,28 @@ +{ + "history": [ + { + "admin_email": null, + "amount": 500, + "current_balance": 0, + "description": null, + "extra_data": null, + "reason": "Top up", + "running_balance": 0, + "transaction_key": "", + "transaction_time": "0001-01-01T00:00:00Z", + "transaction_type": "TOP_UP", + "usage_execution_id": null, + "usage_graph_id": null, + "usage_node_count": 0, + "usage_start_time": "9999-12-31T23:59:59.999999Z", + "user_email": "test@example.com", + "user_id": "user-3" + } + ], + "pagination": { + "current_page": 1, + "page_size": 10, + "total_items": 1, + "total_pages": 1 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/adm_usr_hist_ok b/autogpt_platform/backend/snapshots/adm_usr_hist_ok new file mode 100644 index 0000000000..7cc4d3634d --- /dev/null +++ b/autogpt_platform/backend/snapshots/adm_usr_hist_ok @@ -0,0 +1,46 @@ +{ + "history": [ + { + "admin_email": null, + "amount": 1000, + "current_balance": 0, + "description": null, + "extra_data": null, + "reason": "Initial grant", + "running_balance": 0, + "transaction_key": "", + "transaction_time": "0001-01-01T00:00:00Z", + "transaction_type": "GRANT", + "usage_execution_id": null, + "usage_graph_id": null, + "usage_node_count": 0, + "usage_start_time": "9999-12-31T23:59:59.999999Z", + "user_email": "user1@example.com", + "user_id": "user-1" + }, + { + "admin_email": null, + "amount": -50, + "current_balance": 0, + "description": null, + "extra_data": null, + "reason": "Usage", + "running_balance": 0, + "transaction_key": "", + "transaction_time": "0001-01-01T00:00:00Z", + "transaction_type": "USAGE", + "usage_execution_id": null, + "usage_graph_id": null, + "usage_node_count": 0, + "usage_start_time": "9999-12-31T23:59:59.999999Z", + "user_email": "user2@example.com", + "user_id": "user-2" + } + ], + "pagination": { + "current_page": 1, + "page_size": 20, + "total_items": 2, + "total_pages": 1 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/admin_add_credits_success b/autogpt_platform/backend/snapshots/admin_add_credits_success new file mode 100644 index 0000000000..7b5c4aa29b --- /dev/null +++ b/autogpt_platform/backend/snapshots/admin_add_credits_success @@ -0,0 +1,4 @@ +{ + "new_balance": 1500, + "transaction_key": "transaction-123-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/agt_details b/autogpt_platform/backend/snapshots/agt_details new file mode 100644 index 0000000000..f002d08775 --- /dev/null +++ b/autogpt_platform/backend/snapshots/agt_details @@ -0,0 +1,27 @@ +{ + "store_listing_version_id": "test-version-id", + "slug": "test-agent", + "agent_name": "Test Agent", + "agent_video": "video.mp4", + "agent_image": [ + "image1.jpg", + "image2.jpg" + ], + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Test agent subheading", + "description": "Test agent description", + "categories": [ + "category1", + "category2" + ], + "runs": 100, + "rating": 4.5, + "versions": [ + "1.0.0", + "1.1.0" + ], + "last_updated": "2023-01-01T00:00:00", + "active_version_id": null, + "has_approved_version": false +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/agts_by_creator b/autogpt_platform/backend/snapshots/agts_by_creator new file mode 100644 index 0000000000..4d6dd12920 --- /dev/null +++ b/autogpt_platform/backend/snapshots/agts_by_creator @@ -0,0 +1,21 @@ +{ + "agents": [ + { + "slug": "creator-agent", + "agent_name": "Creator Agent", + "agent_image": "agent.jpg", + "creator": "specific-creator", + "creator_avatar": "avatar.jpg", + "sub_heading": "Creator agent subheading", + "description": "Creator agent description", + "runs": 50, + "rating": 4.0 + } + ], + "pagination": { + "total_items": 1, + "total_pages": 1, + "current_page": 1, + "page_size": 20 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/agts_category b/autogpt_platform/backend/snapshots/agts_category new file mode 100644 index 0000000000..f65925ead3 --- /dev/null +++ b/autogpt_platform/backend/snapshots/agts_category @@ -0,0 +1,21 @@ +{ + "agents": [ + { + "slug": "category-agent", + "agent_name": "Category Agent", + "agent_image": "category.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Category agent subheading", + "description": "Category agent description", + "runs": 60, + "rating": 4.1 + } + ], + "pagination": { + "total_items": 1, + "total_pages": 1, + "current_page": 1, + "page_size": 20 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/agts_pagination b/autogpt_platform/backend/snapshots/agts_pagination new file mode 100644 index 0000000000..82e7f5f9bf --- /dev/null +++ b/autogpt_platform/backend/snapshots/agts_pagination @@ -0,0 +1,65 @@ +{ + "agents": [ + { + "slug": "agent-0", + "agent_name": "Agent 0", + "agent_image": "agent0.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Agent 0 subheading", + "description": "Agent 0 description", + "runs": 0, + "rating": 4.0 + }, + { + "slug": "agent-1", + "agent_name": "Agent 1", + "agent_image": "agent1.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Agent 1 subheading", + "description": "Agent 1 description", + "runs": 10, + "rating": 4.0 + }, + { + "slug": "agent-2", + "agent_name": "Agent 2", + "agent_image": "agent2.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Agent 2 subheading", + "description": "Agent 2 description", + "runs": 20, + "rating": 4.0 + }, + { + "slug": "agent-3", + "agent_name": "Agent 3", + "agent_image": "agent3.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Agent 3 subheading", + "description": "Agent 3 description", + "runs": 30, + "rating": 4.0 + }, + { + "slug": "agent-4", + "agent_name": "Agent 4", + "agent_image": "agent4.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Agent 4 subheading", + "description": "Agent 4 description", + "runs": 40, + "rating": 4.0 + } + ], + "pagination": { + "total_items": 15, + "total_pages": 3, + "current_page": 2, + "page_size": 5 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/agts_search b/autogpt_platform/backend/snapshots/agts_search new file mode 100644 index 0000000000..ca3f504584 --- /dev/null +++ b/autogpt_platform/backend/snapshots/agts_search @@ -0,0 +1,21 @@ +{ + "agents": [ + { + "slug": "search-agent", + "agent_name": "Search Agent", + "agent_image": "search.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Search agent subheading", + "description": "Specific search term description", + "runs": 75, + "rating": 4.2 + } + ], + "pagination": { + "total_items": 1, + "total_pages": 1, + "current_page": 1, + "page_size": 20 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/agts_sorted b/autogpt_platform/backend/snapshots/agts_sorted new file mode 100644 index 0000000000..cddead76a5 --- /dev/null +++ b/autogpt_platform/backend/snapshots/agts_sorted @@ -0,0 +1,21 @@ +{ + "agents": [ + { + "slug": "top-agent", + "agent_name": "Top Agent", + "agent_image": "top.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Top agent subheading", + "description": "Top agent description", + "runs": 1000, + "rating": 5.0 + } + ], + "pagination": { + "total_items": 1, + "total_pages": 1, + "current_page": 1, + "page_size": 20 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/analytics_log_analytics_complex_data b/autogpt_platform/backend/snapshots/analytics_log_analytics_complex_data new file mode 100644 index 0000000000..4d671672a7 --- /dev/null +++ b/autogpt_platform/backend/snapshots/analytics_log_analytics_complex_data @@ -0,0 +1,30 @@ +{ + "analytics_id": "analytics-complex-uuid", + "logged_data": { + "agent_id": "agent_123", + "blocks_used": [ + { + "block_id": "llm_block", + "count": 3 + }, + { + "block_id": "http_block", + "count": 5 + }, + { + "block_id": "code_block", + "count": 2 + } + ], + "duration_ms": 3500, + "errors": [], + "execution_id": "exec_456", + "metadata": { + "environment": "production", + "trigger": "manual", + "user_tier": "premium" + }, + "nodes_executed": 15, + "status": "completed" + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/analytics_log_analytics_success b/autogpt_platform/backend/snapshots/analytics_log_analytics_success new file mode 100644 index 0000000000..a08eb0c89c --- /dev/null +++ b/autogpt_platform/backend/snapshots/analytics_log_analytics_success @@ -0,0 +1,3 @@ +{ + "analytics_id": "analytics-789-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/analytics_log_metric_success b/autogpt_platform/backend/snapshots/analytics_log_metric_success new file mode 100644 index 0000000000..a08f406588 --- /dev/null +++ b/autogpt_platform/backend/snapshots/analytics_log_metric_success @@ -0,0 +1,3 @@ +{ + "metric_id": "metric-123-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/analytics_log_metric_various_values b/autogpt_platform/backend/snapshots/analytics_log_metric_various_values new file mode 100644 index 0000000000..6edf88cecc --- /dev/null +++ b/autogpt_platform/backend/snapshots/analytics_log_metric_various_values @@ -0,0 +1,3 @@ +{ + "metric_id": "metric-456-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/auth_email b/autogpt_platform/backend/snapshots/auth_email new file mode 100644 index 0000000000..178eb291ca --- /dev/null +++ b/autogpt_platform/backend/snapshots/auth_email @@ -0,0 +1,3 @@ +{ + "email": "newemail@example.com" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/auth_user b/autogpt_platform/backend/snapshots/auth_user new file mode 100644 index 0000000000..0fa7824e31 --- /dev/null +++ b/autogpt_platform/backend/snapshots/auth_user @@ -0,0 +1,5 @@ +{ + "email": "test@example.com", + "id": "test-user-id", + "name": "Test User" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/blks_all b/autogpt_platform/backend/snapshots/blks_all new file mode 100644 index 0000000000..714fa20558 --- /dev/null +++ b/autogpt_platform/backend/snapshots/blks_all @@ -0,0 +1,14 @@ +[ + { + "costs": [ + { + "cost": 10, + "type": "credit" + } + ], + "description": "A test block", + "disabled": false, + "id": "test-block", + "name": "Test Block" + } +] \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/blks_exec b/autogpt_platform/backend/snapshots/blks_exec new file mode 100644 index 0000000000..6992daaf62 --- /dev/null +++ b/autogpt_platform/backend/snapshots/blks_exec @@ -0,0 +1,12 @@ +{ + "output1": [ + { + "data": "result1" + } + ], + "output2": [ + { + "data": "result2" + } + ] +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/creator_details b/autogpt_platform/backend/snapshots/creator_details new file mode 100644 index 0000000000..0b4e4812c2 --- /dev/null +++ b/autogpt_platform/backend/snapshots/creator_details @@ -0,0 +1,16 @@ +{ + "name": "Test User", + "username": "creator1", + "description": "Test creator description", + "links": [ + "link1.com", + "link2.com" + ], + "avatar_url": "avatar.jpg", + "agent_rating": 4.8, + "agent_runs": 1000, + "top_categories": [ + "category1", + "category2" + ] +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/creators_pagination b/autogpt_platform/backend/snapshots/creators_pagination new file mode 100644 index 0000000000..5076160d5d --- /dev/null +++ b/autogpt_platform/backend/snapshots/creators_pagination @@ -0,0 +1,60 @@ +{ + "creators": [ + { + "name": "Creator 0", + "username": "creator0", + "description": "Creator 0 description", + "avatar_url": "avatar0.jpg", + "num_agents": 1, + "agent_rating": 4.5, + "agent_runs": 100, + "is_featured": false + }, + { + "name": "Creator 1", + "username": "creator1", + "description": "Creator 1 description", + "avatar_url": "avatar1.jpg", + "num_agents": 1, + "agent_rating": 4.5, + "agent_runs": 100, + "is_featured": false + }, + { + "name": "Creator 2", + "username": "creator2", + "description": "Creator 2 description", + "avatar_url": "avatar2.jpg", + "num_agents": 1, + "agent_rating": 4.5, + "agent_runs": 100, + "is_featured": false + }, + { + "name": "Creator 3", + "username": "creator3", + "description": "Creator 3 description", + "avatar_url": "avatar3.jpg", + "num_agents": 1, + "agent_rating": 4.5, + "agent_runs": 100, + "is_featured": false + }, + { + "name": "Creator 4", + "username": "creator4", + "description": "Creator 4 description", + "avatar_url": "avatar4.jpg", + "num_agents": 1, + "agent_rating": 4.5, + "agent_runs": 100, + "is_featured": false + } + ], + "pagination": { + "total_items": 15, + "total_pages": 3, + "current_page": 2, + "page_size": 5 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/cred_bal b/autogpt_platform/backend/snapshots/cred_bal new file mode 100644 index 0000000000..b31d00b2de --- /dev/null +++ b/autogpt_platform/backend/snapshots/cred_bal @@ -0,0 +1,3 @@ +{ + "credits": 1000 +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/cred_topup_cfg b/autogpt_platform/backend/snapshots/cred_topup_cfg new file mode 100644 index 0000000000..0158ac652d --- /dev/null +++ b/autogpt_platform/backend/snapshots/cred_topup_cfg @@ -0,0 +1,4 @@ +{ + "amount": 500, + "threshold": 100 +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/cred_topup_req b/autogpt_platform/backend/snapshots/cred_topup_req new file mode 100644 index 0000000000..91f4d4d348 --- /dev/null +++ b/autogpt_platform/backend/snapshots/cred_topup_req @@ -0,0 +1,3 @@ +{ + "checkout_url": "https://checkout.example.com/session123" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/def_agts b/autogpt_platform/backend/snapshots/def_agts new file mode 100644 index 0000000000..7ff57fae7f --- /dev/null +++ b/autogpt_platform/backend/snapshots/def_agts @@ -0,0 +1,9 @@ +{ + "agents": [], + "pagination": { + "total_items": 0, + "total_pages": 0, + "current_page": 0, + "page_size": 10 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/def_creators b/autogpt_platform/backend/snapshots/def_creators new file mode 100644 index 0000000000..7cde400518 --- /dev/null +++ b/autogpt_platform/backend/snapshots/def_creators @@ -0,0 +1,9 @@ +{ + "creators": [], + "pagination": { + "total_items": 0, + "total_pages": 0, + "current_page": 0, + "page_size": 10 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/feat_agts b/autogpt_platform/backend/snapshots/feat_agts new file mode 100644 index 0000000000..d57996a768 --- /dev/null +++ b/autogpt_platform/backend/snapshots/feat_agts @@ -0,0 +1,21 @@ +{ + "agents": [ + { + "slug": "featured-agent", + "agent_name": "Featured Agent", + "agent_image": "featured.jpg", + "creator": "creator1", + "creator_avatar": "avatar1.jpg", + "sub_heading": "Featured agent subheading", + "description": "Featured agent description", + "runs": 100, + "rating": 4.5 + } + ], + "pagination": { + "total_items": 1, + "total_pages": 1, + "current_page": 1, + "page_size": 20 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/grph_in_schm b/autogpt_platform/backend/snapshots/grph_in_schm new file mode 100644 index 0000000000..b9fa6f8d91 --- /dev/null +++ b/autogpt_platform/backend/snapshots/grph_in_schm @@ -0,0 +1,20 @@ +{ + "properties": { + "in_key_a": { + "advanced": true, + "default": "A", + "secret": false, + "title": "Key A" + }, + "in_key_b": { + "advanced": false, + "secret": false, + "title": "in_key_b" + } + }, + "required": [ + "in_key_b" + ], + "title": "ExpectedInputSchema", + "type": "object" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/grph_out_schm b/autogpt_platform/backend/snapshots/grph_out_schm new file mode 100644 index 0000000000..8395d3fbb8 --- /dev/null +++ b/autogpt_platform/backend/snapshots/grph_out_schm @@ -0,0 +1,15 @@ +{ + "properties": { + "out_key": { + "advanced": false, + "description": "This is an output key", + "secret": false, + "title": "out_key" + } + }, + "required": [ + "out_key" + ], + "title": "ExpectedOutputSchema", + "type": "object" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/grph_single b/autogpt_platform/backend/snapshots/grph_single new file mode 100644 index 0000000000..9fed97d5a4 --- /dev/null +++ b/autogpt_platform/backend/snapshots/grph_single @@ -0,0 +1,29 @@ +{ + "credentials_input_schema": { + "properties": {}, + "title": "TestGraphCredentialsInputSchema", + "type": "object" + }, + "description": "A test graph", + "forked_from_id": null, + "forked_from_version": null, + "has_webhook_trigger": false, + "id": "graph-123", + "input_schema": { + "properties": {}, + "required": [], + "type": "object" + }, + "is_active": true, + "links": [], + "name": "Test Graph", + "nodes": [], + "output_schema": { + "properties": {}, + "required": [], + "type": "object" + }, + "sub_graphs": [], + "user_id": "test-user-id", + "version": 1 +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/grph_struct b/autogpt_platform/backend/snapshots/grph_struct new file mode 100644 index 0000000000..b0daad42f7 --- /dev/null +++ b/autogpt_platform/backend/snapshots/grph_struct @@ -0,0 +1,17 @@ +{ + "description": "Test graph", + "link_structure": [ + { + "sink_name": "name", + "source_name": "output" + } + ], + "links_count": 1, + "name": "TestGraph", + "node_blocks": [ + "1ff065e9-88e8-4358-9d82-8dc91f622ba9", + "c0a8e994-ebf1-4a9c-a4d8-89d09c86741b", + "1ff065e9-88e8-4358-9d82-8dc91f622ba9" + ], + "nodes_count": 3 +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/grphs_all b/autogpt_platform/backend/snapshots/grphs_all new file mode 100644 index 0000000000..747463461a --- /dev/null +++ b/autogpt_platform/backend/snapshots/grphs_all @@ -0,0 +1,31 @@ +[ + { + "credentials_input_schema": { + "properties": {}, + "title": "TestGraphCredentialsInputSchema", + "type": "object" + }, + "description": "A test graph", + "forked_from_id": null, + "forked_from_version": null, + "has_webhook_trigger": false, + "id": "graph-123", + "input_schema": { + "properties": {}, + "required": [], + "type": "object" + }, + "is_active": true, + "links": [], + "name": "Test Graph", + "nodes": [], + "output_schema": { + "properties": {}, + "required": [], + "type": "object" + }, + "sub_graphs": [], + "user_id": "test-user-id", + "version": 1 + } +] \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/grphs_del b/autogpt_platform/backend/snapshots/grphs_del new file mode 100644 index 0000000000..e3002615b3 --- /dev/null +++ b/autogpt_platform/backend/snapshots/grphs_del @@ -0,0 +1,3 @@ +{ + "version_counts": 3 +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/lib_agts_search b/autogpt_platform/backend/snapshots/lib_agts_search new file mode 100644 index 0000000000..d5698fb54c --- /dev/null +++ b/autogpt_platform/backend/snapshots/lib_agts_search @@ -0,0 +1,48 @@ +{ + "agents": [ + { + "id": "test-agent-1", + "graph_id": "test-agent-1", + "graph_version": 1, + "image_url": null, + "creator_name": "Test Creator", + "creator_image_url": "", + "status": "COMPLETED", + "updated_at": "2023-01-01T00:00:00", + "name": "Test Agent 1", + "description": "Test Description 1", + "input_schema": { + "type": "object", + "properties": {} + }, + "new_output": false, + "can_access_graph": true, + "is_latest_version": true + }, + { + "id": "test-agent-2", + "graph_id": "test-agent-2", + "graph_version": 1, + "image_url": null, + "creator_name": "Test Creator", + "creator_image_url": "", + "status": "COMPLETED", + "updated_at": "2023-01-01T00:00:00", + "name": "Test Agent 2", + "description": "Test Description 2", + "input_schema": { + "type": "object", + "properties": {} + }, + "new_output": false, + "can_access_graph": false, + "is_latest_version": true + } + ], + "pagination": { + "total_items": 2, + "total_pages": 1, + "current_page": 1, + "page_size": 50 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/log_anlyt_cplx b/autogpt_platform/backend/snapshots/log_anlyt_cplx new file mode 100644 index 0000000000..4d671672a7 --- /dev/null +++ b/autogpt_platform/backend/snapshots/log_anlyt_cplx @@ -0,0 +1,30 @@ +{ + "analytics_id": "analytics-complex-uuid", + "logged_data": { + "agent_id": "agent_123", + "blocks_used": [ + { + "block_id": "llm_block", + "count": 3 + }, + { + "block_id": "http_block", + "count": 5 + }, + { + "block_id": "code_block", + "count": 2 + } + ], + "duration_ms": 3500, + "errors": [], + "execution_id": "exec_456", + "metadata": { + "environment": "production", + "trigger": "manual", + "user_tier": "premium" + }, + "nodes_executed": 15, + "status": "completed" + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/log_anlyt_ok b/autogpt_platform/backend/snapshots/log_anlyt_ok new file mode 100644 index 0000000000..a08eb0c89c --- /dev/null +++ b/autogpt_platform/backend/snapshots/log_anlyt_ok @@ -0,0 +1,3 @@ +{ + "analytics_id": "analytics-789-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/log_metric_ok b/autogpt_platform/backend/snapshots/log_metric_ok new file mode 100644 index 0000000000..a08f406588 --- /dev/null +++ b/autogpt_platform/backend/snapshots/log_metric_ok @@ -0,0 +1,3 @@ +{ + "metric_id": "metric-123-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/log_metric_vals b/autogpt_platform/backend/snapshots/log_metric_vals new file mode 100644 index 0000000000..6edf88cecc --- /dev/null +++ b/autogpt_platform/backend/snapshots/log_metric_vals @@ -0,0 +1,3 @@ +{ + "metric_id": "metric-456-uuid" +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/otto_empty b/autogpt_platform/backend/snapshots/otto_empty new file mode 100644 index 0000000000..3ddc69e673 --- /dev/null +++ b/autogpt_platform/backend/snapshots/otto_empty @@ -0,0 +1,5 @@ +{ + "answer": "Welcome! How can I help you?", + "documents": [], + "success": true +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/otto_err b/autogpt_platform/backend/snapshots/otto_err new file mode 100644 index 0000000000..e451389529 --- /dev/null +++ b/autogpt_platform/backend/snapshots/otto_err @@ -0,0 +1,5 @@ +{ + "answer": "An error occurred while processing your request.", + "documents": [], + "success": false +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/otto_grph b/autogpt_platform/backend/snapshots/otto_grph new file mode 100644 index 0000000000..67f8b7dc90 --- /dev/null +++ b/autogpt_platform/backend/snapshots/otto_grph @@ -0,0 +1,10 @@ +{ + "answer": "Here's information about your graph.", + "documents": [ + { + "relevance_score": 0.92, + "url": "https://example.com/graph-doc" + } + ], + "success": true +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/otto_ok b/autogpt_platform/backend/snapshots/otto_ok new file mode 100644 index 0000000000..f278f904f9 --- /dev/null +++ b/autogpt_platform/backend/snapshots/otto_ok @@ -0,0 +1,14 @@ +{ + "answer": "This is Otto's response to your query.", + "documents": [ + { + "relevance_score": 0.95, + "url": "https://example.com/doc1" + }, + { + "relevance_score": 0.87, + "url": "https://example.com/doc2" + } + ], + "success": true +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/sub b/autogpt_platform/backend/snapshots/sub new file mode 100644 index 0000000000..da65ce90a4 --- /dev/null +++ b/autogpt_platform/backend/snapshots/sub @@ -0,0 +1,7 @@ +{ + "channel": "3e53486c-cf57-477e-ba2a-cb02dc828e1a|graph_exec#test-graph-exec-1", + "data": null, + "error": null, + "method": "subscribe_graph_execution", + "success": true +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/sub_pagination b/autogpt_platform/backend/snapshots/sub_pagination new file mode 100644 index 0000000000..7bc1cb9b57 --- /dev/null +++ b/autogpt_platform/backend/snapshots/sub_pagination @@ -0,0 +1,9 @@ +{ + "submissions": [], + "pagination": { + "total_items": 10, + "total_pages": 2, + "current_page": 2, + "page_size": 5 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/sub_success b/autogpt_platform/backend/snapshots/sub_success new file mode 100644 index 0000000000..3d10ea70e2 --- /dev/null +++ b/autogpt_platform/backend/snapshots/sub_success @@ -0,0 +1,32 @@ +{ + "submissions": [ + { + "agent_id": "test-agent-id", + "agent_version": 1, + "name": "Test Agent", + "sub_heading": "Test agent subheading", + "slug": "test-agent", + "description": "Test agent description", + "image_urls": [ + "test.jpg" + ], + "date_submitted": "2023-01-01T00:00:00", + "status": "APPROVED", + "runs": 50, + "rating": 4.2, + "store_listing_version_id": null, + "version": null, + "reviewer_id": null, + "review_comments": null, + "internal_comments": null, + "reviewed_at": null, + "changes_summary": null + } + ], + "pagination": { + "total_items": 1, + "total_pages": 1, + "current_page": 1, + "page_size": 20 + } +} \ No newline at end of file diff --git a/autogpt_platform/backend/snapshots/unsub b/autogpt_platform/backend/snapshots/unsub new file mode 100644 index 0000000000..24ad944c3f --- /dev/null +++ b/autogpt_platform/backend/snapshots/unsub @@ -0,0 +1,7 @@ +{ + "channel": "3e53486c-cf57-477e-ba2a-cb02dc828e1a|graph_exec#test-graph-exec-1", + "data": null, + "error": null, + "method": "unsubscribe", + "success": true +} \ No newline at end of file diff --git a/autogpt_platform/backend/test/data/test_graph.py b/autogpt_platform/backend/test/data/test_graph.py index db1f2e95b5..18be29f67a 100644 --- a/autogpt_platform/backend/test/data/test_graph.py +++ b/autogpt_platform/backend/test/data/test_graph.py @@ -1,9 +1,11 @@ +import json from typing import Any from uuid import UUID import autogpt_libs.auth.models import fastapi.exceptions import pytest +from pytest_snapshot.plugin import Snapshot import backend.server.v2.store.model as store from backend.blocks.basic import StoreValueBlock @@ -18,7 +20,7 @@ from backend.util.test import SpinTestServer @pytest.mark.asyncio(loop_scope="session") -async def test_graph_creation(server: SpinTestServer): +async def test_graph_creation(server: SpinTestServer, snapshot: Snapshot): """ Test the creation of a graph with nodes and links. @@ -70,9 +72,27 @@ async def test_graph_creation(server: SpinTestServer): assert links[0].source_id in {nodes[0].id, nodes[1].id, nodes[2].id} assert links[0].sink_id in {nodes[0].id, nodes[1].id, nodes[2].id} + # Create a serializable version of the graph for snapshot testing + # Remove dynamic IDs to make snapshots reproducible + graph_data = { + "name": created_graph.name, + "description": created_graph.description, + "nodes_count": len(created_graph.nodes), + "links_count": len(created_graph.links), + "node_blocks": [node.block_id for node in created_graph.nodes], + "link_structure": [ + {"source_name": link.source_name, "sink_name": link.sink_name} + for link in created_graph.links + ], + } + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(graph_data, indent=2, sort_keys=True), "grph_struct" + ) + @pytest.mark.asyncio(loop_scope="session") -async def test_get_input_schema(server: SpinTestServer): +async def test_get_input_schema(server: SpinTestServer, snapshot: Snapshot): """ Test the get_input_schema method of a created graph. @@ -162,10 +182,22 @@ async def test_get_input_schema(server: SpinTestServer): input_schema["title"] = "ExpectedInputSchema" assert input_schema == ExpectedInputSchema.jsonschema() + # Add snapshot testing for the schemas + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(input_schema, indent=2, sort_keys=True), "grph_in_schm" + ) + output_schema = created_graph.output_schema output_schema["title"] = "ExpectedOutputSchema" assert output_schema == ExpectedOutputSchema.jsonschema() + # Add snapshot testing for the output schema + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match( + json.dumps(output_schema, indent=2, sort_keys=True), "grph_out_schm" + ) + @pytest.mark.asyncio(loop_scope="session") async def test_clean_graph(server: SpinTestServer): diff --git a/autogpt_platform/backend/test/server/test_ws_api.py b/autogpt_platform/backend/test/server/test_ws_api.py index ee812681f8..0eb52485e8 100644 --- a/autogpt_platform/backend/test/server/test_ws_api.py +++ b/autogpt_platform/backend/test/server/test_ws_api.py @@ -1,8 +1,10 @@ +import json from typing import cast from unittest.mock import AsyncMock import pytest from fastapi import WebSocket, WebSocketDisconnect +from pytest_snapshot.plugin import Snapshot from backend.data.user import DEFAULT_USER_ID from backend.server.conn_manager import ConnectionManager @@ -27,7 +29,7 @@ def mock_manager() -> AsyncMock: @pytest.mark.asyncio async def test_websocket_router_subscribe( - mock_websocket: AsyncMock, mock_manager: AsyncMock + mock_websocket: AsyncMock, mock_manager: AsyncMock, snapshot: Snapshot ) -> None: mock_websocket.receive_text.side_effect = [ WSMessage( @@ -56,12 +58,19 @@ async def test_websocket_router_subscribe( in mock_websocket.send_text.call_args[0][0] ) assert '"success":true' in mock_websocket.send_text.call_args[0][0] + + # Capture and snapshot the WebSocket response message + sent_message = mock_websocket.send_text.call_args[0][0] + parsed_message = json.loads(sent_message) + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(parsed_message, indent=2, sort_keys=True), "sub") + mock_manager.disconnect_socket.assert_called_once_with(mock_websocket) @pytest.mark.asyncio async def test_websocket_router_unsubscribe( - mock_websocket: AsyncMock, mock_manager: AsyncMock + mock_websocket: AsyncMock, mock_manager: AsyncMock, snapshot: Snapshot ) -> None: mock_websocket.receive_text.side_effect = [ WSMessage( @@ -87,6 +96,13 @@ async def test_websocket_router_unsubscribe( mock_websocket.send_text.assert_called_once() assert '"method":"unsubscribe"' in mock_websocket.send_text.call_args[0][0] assert '"success":true' in mock_websocket.send_text.call_args[0][0] + + # Capture and snapshot the WebSocket response message + sent_message = mock_websocket.send_text.call_args[0][0] + parsed_message = json.loads(sent_message) + snapshot.snapshot_dir = "snapshots" + snapshot.assert_match(json.dumps(parsed_message, indent=2, sort_keys=True), "unsub") + mock_manager.disconnect_socket.assert_called_once_with(mock_websocket) diff --git a/docs/content/platform/getting-started.md b/docs/content/platform/getting-started.md index 05ce943aef..82ce95bfbb 100644 --- a/docs/content/platform/getting-started.md +++ b/docs/content/platform/getting-started.md @@ -342,6 +342,12 @@ To run the tests: poetry run test ``` +To update stored snapshots after intentional API changes: + +```sh +pytest --snapshot-update +``` + ## Project Outline The current project has the following main modules: diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 0f4658322b..d670ffccb9 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -54,7 +54,9 @@ nav: - Frontend: - Readme: https://github.com/Significant-Gravitas/AutoGPT/blob/master/classic/frontend/README.md - - Contribute: contribute/index.md + - Contribute: + - Introduction: contribute/index.md + - Testing: autogpt_platform/backend/TESTING.md # - Challenges: # - Introduction: challenges/introduction.md From 6771476d01d66c1841fcc6d9b057c20bdab61781 Mon Sep 17 00:00:00 2001 From: Bently Date: Mon, 9 Jun 2025 11:45:02 +0100 Subject: [PATCH 076/497] fix(turnstile): Disable turnstile by default and rename its env (#10129) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ change ``NEXT_PUBLIC_DISABLE_TURNSTILE`` to ``NEXT_PUBLIC_TURNSTILE`` and set turnstile captcha to be hidden by default if ``NEXT_PUBLIC_TURNSTILE=enabled`` is set, captcha will work and show on the frontend login/signup/password reset pages if ``NEXT_PUBLIC_TURNSTILE=disabled`` is set, captcha will be hidden from the frontend and is not needed to login/signup/password reset if ``NEXT_PUBLIC_TURNSTILE`` is not set captcha will be hidden from the frontend and is not needed to login/signup/password reset This means users who setup AutoGPT locally will not need to deal with changing the env to hide captcha #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] start the platform with ``NEXT_PUBLIC_TURNSTILE=enabled`` set to enabled and captcha shows - [x] start with ``NEXT_PUBLIC_TURNSTILE=disabled`` and captcha does not show and you dont need it to login ect - [x] start with ``NEXT_PUBLIC_TURNSTILE`` not set and the captcha does not show and you dont need it to login ect --- autogpt_platform/frontend/.env.example | 2 +- autogpt_platform/frontend/src/hooks/useTurnstile.ts | 3 +-- autogpt_platform/frontend/src/lib/turnstile.ts | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/autogpt_platform/frontend/.env.example b/autogpt_platform/frontend/.env.example index 04e3831b6c..e3763c1da0 100644 --- a/autogpt_platform/frontend/.env.example +++ b/autogpt_platform/frontend/.env.example @@ -32,4 +32,4 @@ NEXT_PUBLIC_SHOW_BILLING_PAGE=false ## Get these from the Cloudflare Turnstile dashboard: https://dash.cloudflare.com/?to=/:account/turnstile ## This is the frontend site key NEXT_PUBLIC_CLOUDFLARE_TURNSTILE_SITE_KEY= -NEXT_PUBLIC_DISABLE_TURNSTILE=false +NEXT_PUBLIC_TURNSTILE=disabled diff --git a/autogpt_platform/frontend/src/hooks/useTurnstile.ts b/autogpt_platform/frontend/src/hooks/useTurnstile.ts index 833fb723ad..d07cbaf573 100644 --- a/autogpt_platform/frontend/src/hooks/useTurnstile.ts +++ b/autogpt_platform/frontend/src/hooks/useTurnstile.ts @@ -47,8 +47,7 @@ export function useTurnstile({ useEffect(() => { const behaveAs = getBehaveAs(); const hasTurnstileKey = !!TURNSTILE_SITE_KEY; - const turnstileDisabled = - process.env.NEXT_PUBLIC_DISABLE_TURNSTILE === "true"; + const turnstileDisabled = process.env.NEXT_PUBLIC_TURNSTILE !== "enabled"; // Only render Turnstile in cloud environment if not explicitly disabled setShouldRender( diff --git a/autogpt_platform/frontend/src/lib/turnstile.ts b/autogpt_platform/frontend/src/lib/turnstile.ts index 47194ae627..35f5b1e271 100644 --- a/autogpt_platform/frontend/src/lib/turnstile.ts +++ b/autogpt_platform/frontend/src/lib/turnstile.ts @@ -7,8 +7,8 @@ export async function verifyTurnstileToken( token: string, action?: string, ): Promise { - // Skip verification if explicitly disabled via environment variable - if (process.env.NEXT_PUBLIC_DISABLE_TURNSTILE === "true") { + // Skip verification unless explicitly enabled via environment variable + if (process.env.NEXT_PUBLIC_TURNSTILE !== "enabled") { return true; } From 014b2765521d193ec70edf4c1214da962c505992 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Mon, 9 Jun 2025 18:23:12 +0400 Subject: [PATCH 077/497] feat(platform): allow to signin with Google (#10117) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ Screenshot 2025-06-05 at 16 24 35

- Allow users to sign in or sign up with Google (SSO), via Supabase - Prevent password login or signup with `@agpt.co` emails - Refactor/simplify the login/signup page logic by splitting rendering and hook logic ( [explanation](https://github.com/Significant-Gravitas/AutoGPT/pull/10117#discussion_r2128793394) ) ### Moved the `createUser` logic to the callback `api.createUser()` was being called **before** the OAuth flow completes. Here's what's happening. I moved `api.createUser()` from `providerLogin` to the **callback handler** where the session is established to make sure it happens once we get the OK from Google session wise. ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [ ] I have tested my changes according to the test plan: - [ ] Run this PR on a preview - [ ] The "Login with Google" button is visible - [ ] Login/signup with Google works - [ ] You can't login or signup with password using an `@agpt.co` email --- .../src/app/(platform)/auth/callback/route.ts | 28 +++- .../src/app/(platform)/login/actions.ts | 14 +- .../src/app/(platform)/login/page.tsx | 127 ++++++------------ .../src/app/(platform)/login/useLoginPage.ts | 102 ++++++++++++++ .../src/app/(platform)/signup/page.tsx | 121 ++++++----------- .../app/(platform)/signup/useSignupPage.ts | 110 +++++++++++++++ .../frontend/src/components/agptui/Button.tsx | 2 +- .../src/components/auth/AuthButton.tsx | 13 +- .../src/components/auth/GoogleOAuthButton.tsx | 33 +++++ .../frontend/src/components/auth/index.ts | 2 + 10 files changed, 364 insertions(+), 188 deletions(-) create mode 100644 autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts create mode 100644 autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts create mode 100644 autogpt_platform/frontend/src/components/auth/GoogleOAuthButton.tsx diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts index 5397bcd698..b3bd78f3a7 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts @@ -1,12 +1,23 @@ import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import BackendAPI from "@/lib/autogpt-server-api"; import { NextResponse } from "next/server"; +import { revalidatePath } from "next/cache"; + +async function shouldShowOnboarding() { + const api = new BackendAPI(); + return ( + (await api.isOnboardingEnabled()) && + !(await api.getUserOnboarding()).completedSteps.includes("CONGRATS") + ); +} // Handle the callback to complete the user session login export async function GET(request: Request) { const { searchParams, origin } = new URL(request.url); const code = searchParams.get("code"); + // if "next" is in param, use it as the redirect URL - const next = searchParams.get("next") ?? "/"; + let next = searchParams.get("next") ?? "/"; if (code) { const supabase = await getServerSupabase(); @@ -18,6 +29,21 @@ export async function GET(request: Request) { const { data, error } = await supabase.auth.exchangeCodeForSession(code); // data.session?.refresh_token is available if you need to store it for later use if (!error) { + try { + const api = new BackendAPI(); + await api.createUser(); + + if (await shouldShowOnboarding()) { + next = "/onboarding"; + revalidatePath("/onboarding", "layout"); + } else { + revalidatePath("/", "layout"); + } + } catch (createUserError) { + console.error("Error creating user:", createUserError); + // Continue with redirect even if createUser fails + } + const forwardedHost = request.headers.get("x-forwarded-host"); // original origin before load balancer const isLocalEnv = process.env.NODE_ENV === "development"; if (isLocalEnv) { diff --git a/autogpt_platform/frontend/src/app/(platform)/login/actions.ts b/autogpt_platform/frontend/src/app/(platform)/login/actions.ts index 97f472578d..69a1c0be95 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/login/actions.ts @@ -61,13 +61,12 @@ export async function providerLogin(provider: LoginProvider) { {}, async () => { const supabase = await getServerSupabase(); - const api = new BackendAPI(); if (!supabase) { redirect("/error"); } - const { error } = await supabase!.auth.signInWithOAuth({ + const { data, error } = await supabase!.auth.signInWithOAuth({ provider: provider, options: { redirectTo: @@ -81,12 +80,13 @@ export async function providerLogin(provider: LoginProvider) { return error.message; } - await api.createUser(); - // Don't onboard if disabled or already onboarded - if (await shouldShowOnboarding()) { - revalidatePath("/onboarding", "layout"); - redirect("/onboarding"); + // Redirect to the OAuth provider's URL + if (data?.url) { + redirect(data.url); } + + // Note: api.createUser() and onboarding check happen in the callback handler + // after the session is established. See `auth/callback/route.ts`. }, ); } diff --git a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx index 4458602dbf..b605cba124 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx @@ -1,5 +1,4 @@ "use client"; -import { login, providerLogin } from "./actions"; import { Form, FormControl, @@ -8,14 +7,8 @@ import { FormLabel, FormMessage, } from "@/components/ui/form"; -import { useForm } from "react-hook-form"; import { Input } from "@/components/ui/input"; -import { z } from "zod"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { useCallback, useState } from "react"; -import { useRouter } from "next/navigation"; import Link from "next/link"; -import useSupabase from "@/lib/supabase/useSupabase"; import LoadingBox from "@/components/ui/loading"; import { AuthCard, @@ -23,92 +16,34 @@ import { AuthButton, AuthFeedback, AuthBottomText, + GoogleOAuthButton, PasswordInput, Turnstile, } from "@/components/auth"; -import { loginFormSchema } from "@/types/auth"; import { getBehaveAs } from "@/lib/utils"; -import { useTurnstile } from "@/hooks/useTurnstile"; +import { useLoginPage } from "./useLoginPage"; export default function LoginPage() { - const { supabase, user, isUserLoading } = useSupabase(); - const [feedback, setFeedback] = useState(null); - const router = useRouter(); - const [isLoading, setIsLoading] = useState(false); - const [captchaKey, setCaptchaKey] = useState(0); + const { + form, + feedback, + turnstile, + captchaKey, + isLoading, + isCloudEnv, + isLoggedIn, + isUserLoading, + isGoogleLoading, + isSupabaseAvailable, + handleSubmit, + handleProviderLogin, + } = useLoginPage(); - const turnstile = useTurnstile({ - action: "login", - autoVerify: false, - resetOnError: true, - }); - - const form = useForm>({ - resolver: zodResolver(loginFormSchema), - defaultValues: { - email: "", - password: "", - }, - }); - - // TODO: uncomment when we enable social login - // const onProviderLogin = useCallback(async ( - // provider: LoginProvider, - // ) => { - // setIsLoading(true); - // const error = await providerLogin(provider); - // setIsLoading(false); - // if (error) { - // setFeedback(error); - // return; - // } - // setFeedback(null); - // }, [supabase]); - - const resetCaptcha = useCallback(() => { - setCaptchaKey((k) => k + 1); - turnstile.reset(); - }, [turnstile]); - - const onLogin = useCallback( - async (data: z.infer) => { - setIsLoading(true); - - if (!(await form.trigger())) { - setIsLoading(false); - return; - } - - if (!turnstile.verified) { - setFeedback("Please complete the CAPTCHA challenge."); - setIsLoading(false); - resetCaptcha(); - return; - } - - const error = await login(data, turnstile.token as string); - await supabase?.auth.refreshSession(); - setIsLoading(false); - if (error) { - setFeedback(error); - resetCaptcha(); - return; - } - setFeedback(null); - }, - [form, turnstile, supabase], - ); - - if (user) { - console.debug("User exists, redirecting to /"); - router.push("/"); - } - - if (isUserLoading || user) { + if (isUserLoading || isLoggedIn) { return ; } - if (!supabase) { + if (!isSupabaseAvailable) { return (
User accounts are disabled because Supabase client is unavailable @@ -119,8 +54,26 @@ export default function LoginPage() { return ( Login to your account + + {isCloudEnv ? ( + <> +
+ handleProviderLogin("google")} + isLoading={isGoogleLoading} + disabled={isLoading} + /> +
+
+
+ or +
+
+ + ) : null} +
- + - onLogin(form.getValues())} - isLoading={isLoading} - type="submit" - > + Login diff --git a/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts b/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts new file mode 100644 index 0000000000..685db4e6e4 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts @@ -0,0 +1,102 @@ +import { useTurnstile } from "@/hooks/useTurnstile"; +import useSupabase from "@/lib/supabase/useSupabase"; +import { loginFormSchema, LoginProvider } from "@/types/auth"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useRouter } from "next/navigation"; +import { useCallback, useEffect, useState } from "react"; +import { useForm } from "react-hook-form"; +import { login, providerLogin } from "./actions"; +import z from "zod"; +import { BehaveAs } from "@/lib/utils"; +import { getBehaveAs } from "@/lib/utils"; + +export function useLoginPage() { + const { supabase, user, isUserLoading } = useSupabase(); + const [feedback, setFeedback] = useState(null); + const [captchaKey, setCaptchaKey] = useState(0); + const router = useRouter(); + const [isLoading, setIsLoading] = useState(false); + const [isGoogleLoading, setIsGoogleLoading] = useState(false); + const isCloudEnv = getBehaveAs() === BehaveAs.CLOUD; + + const turnstile = useTurnstile({ + action: "login", + autoVerify: false, + resetOnError: true, + }); + + const form = useForm>({ + resolver: zodResolver(loginFormSchema), + defaultValues: { + email: "", + password: "", + }, + }); + + const resetCaptcha = useCallback(() => { + setCaptchaKey((k) => k + 1); + turnstile.reset(); + }, [turnstile]); + + useEffect(() => { + if (user) router.push("/"); + }, [user]); + + async function handleProviderLogin(provider: LoginProvider) { + setIsGoogleLoading(true); + try { + const error = await providerLogin(provider); + if (error) throw error; + setFeedback(null); + } catch (error) { + resetCaptcha(); + setFeedback(JSON.stringify(error)); + } finally { + setIsGoogleLoading(false); + } + } + + async function handleLogin(data: z.infer) { + setIsLoading(true); + if (!turnstile.verified) { + setFeedback("Please complete the CAPTCHA challenge."); + setIsLoading(false); + resetCaptcha(); + return; + } + + if (data.email.includes("@agpt.co")) { + setFeedback("Please use Google SSO to login using an AutoGPT email."); + setIsLoading(false); + resetCaptcha(); + return; + } + + const error = await login(data, turnstile.token as string); + await supabase?.auth.refreshSession(); + setIsLoading(false); + if (error) { + setFeedback(error); + resetCaptcha(); + // Always reset the turnstile on any error + turnstile.reset(); + return; + } + setFeedback(null); + } + + return { + form, + feedback, + turnstile, + captchaKey, + isLoggedIn: !!user, + isLoading, + isCloudEnv, + isUserLoading, + isGoogleLoading, + isSupabaseAvailable: !!supabase, + handleSubmit: form.handleSubmit(handleLogin), + handleProviderLogin, + }; +} diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx index 09f6be9903..8ec99955b3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx @@ -1,5 +1,4 @@ "use client"; -import { signup } from "./actions"; import { Form, FormControl, @@ -9,102 +8,44 @@ import { FormLabel, FormMessage, } from "@/components/ui/form"; -import { useForm } from "react-hook-form"; import { Input } from "@/components/ui/input"; -import type { z } from "zod"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { useCallback, useState } from "react"; -import { useRouter } from "next/navigation"; import Link from "next/link"; import { Checkbox } from "@/components/ui/checkbox"; -import useSupabase from "@/lib/supabase/useSupabase"; import LoadingBox from "@/components/ui/loading"; import { AuthCard, AuthHeader, AuthButton, AuthBottomText, + GoogleOAuthButton, PasswordInput, Turnstile, } from "@/components/auth"; import AuthFeedback from "@/components/auth/AuthFeedback"; -import { signupFormSchema } from "@/types/auth"; import { getBehaveAs } from "@/lib/utils"; -import { useTurnstile } from "@/hooks/useTurnstile"; +import { useSignupPage } from "./useSignupPage"; export default function SignupPage() { - const { supabase, user, isUserLoading } = useSupabase(); - const [feedback, setFeedback] = useState(null); - const router = useRouter(); - const [isLoading, setIsLoading] = useState(false); - const [captchaKey, setCaptchaKey] = useState(0); - //TODO: Remove after closed beta + const { + form, + feedback, + turnstile, + captchaKey, + isLoggedIn, + isLoading, + isCloudEnv, + isUserLoading, + isGoogleLoading, + isSupabaseAvailable, + handleSubmit, + handleProviderSignup, + } = useSignupPage(); - const turnstile = useTurnstile({ - action: "signup", - autoVerify: false, - resetOnError: true, - }); - - const form = useForm>({ - resolver: zodResolver(signupFormSchema), - defaultValues: { - email: "", - password: "", - confirmPassword: "", - agreeToTerms: false, - }, - }); - - const resetCaptcha = useCallback(() => { - setCaptchaKey((k) => k + 1); - turnstile.reset(); - }, [turnstile]); - - const onSignup = useCallback( - async (data: z.infer) => { - setIsLoading(true); - - if (!(await form.trigger())) { - setIsLoading(false); - return; - } - - if (!turnstile.verified) { - setFeedback("Please complete the CAPTCHA challenge."); - setIsLoading(false); - resetCaptcha(); - return; - } - - const error = await signup(data, turnstile.token as string); - setIsLoading(false); - if (error) { - if (error === "user_already_exists") { - setFeedback("User with this email already exists"); - resetCaptcha(); - return; - } else { - setFeedback(error); - resetCaptcha(); - } - return; - } - setFeedback(null); - }, - [form, turnstile], - ); - - if (user) { - console.debug("User exists, redirecting to /"); - router.push("/"); - } - - if (isUserLoading || user) { + if (isUserLoading || isLoggedIn) { return ; } - if (!supabase) { + if (!isSupabaseAvailable) { return (
User accounts are disabled because Supabase client is unavailable @@ -115,8 +56,26 @@ export default function SignupPage() { return ( Create a new account + + {isCloudEnv ? ( + <> +
+ handleProviderSignup("google")} + isLoading={isGoogleLoading} + disabled={isLoading} + /> +
+
+
+ or +
+
+ + ) : null} +
- + - onSignup(form.getValues())} - isLoading={isLoading} - type="submit" - > + Sign up (null); + const [captchaKey, setCaptchaKey] = useState(0); + const router = useRouter(); + const [isLoading, setIsLoading] = useState(false); + const [isGoogleLoading, setIsGoogleLoading] = useState(false); + const isCloudEnv = getBehaveAs() === BehaveAs.CLOUD; + + const turnstile = useTurnstile({ + action: "signup", + autoVerify: false, + resetOnError: true, + }); + + const resetCaptcha = useCallback(() => { + setCaptchaKey((k) => k + 1); + turnstile.reset(); + }, [turnstile]); + + const form = useForm>({ + resolver: zodResolver(signupFormSchema), + defaultValues: { + email: "", + password: "", + confirmPassword: "", + agreeToTerms: false, + }, + }); + + useEffect(() => { + if (user) router.push("/"); + }, [user]); + + async function handleProviderSignup(provider: LoginProvider) { + setIsGoogleLoading(true); + const error = await providerLogin(provider); + setIsGoogleLoading(false); + if (error) { + resetCaptcha(); + setFeedback(error); + return; + } + setFeedback(null); + } + + async function handleSignup(data: z.infer) { + setIsLoading(true); + + if (!turnstile.verified) { + setFeedback("Please complete the CAPTCHA challenge."); + setIsLoading(false); + resetCaptcha(); + return; + } + + if (data.email.includes("@agpt.co")) { + setFeedback( + "Please use Google SSO to create an account using an AutoGPT email.", + ); + + setIsLoading(false); + resetCaptcha(); + return; + } + + const error = await signup(data, turnstile.token as string); + setIsLoading(false); + if (error) { + if (error === "user_already_exists") { + setFeedback("User with this email already exists"); + turnstile.reset(); + return; + } else { + setFeedback(error); + resetCaptcha(); + turnstile.reset(); + } + return; + } + setFeedback(null); + } + + return { + form, + feedback, + turnstile, + captchaKey, + isLoggedIn: !!user, + isLoading, + isCloudEnv, + isUserLoading, + isGoogleLoading, + isSupabaseAvailable: !!supabase, + handleSubmit: form.handleSubmit(handleSignup), + handleProviderSignup, + }; +} diff --git a/autogpt_platform/frontend/src/components/agptui/Button.tsx b/autogpt_platform/frontend/src/components/agptui/Button.tsx index 2d42e29998..5a32394f3b 100644 --- a/autogpt_platform/frontend/src/components/agptui/Button.tsx +++ b/autogpt_platform/frontend/src/components/agptui/Button.tsx @@ -14,7 +14,7 @@ const buttonVariants = cva( destructive: "bg-red-600 text-neutral-50 border border-red-500/50 hover:bg-red-500/90 dark:bg-red-700 dark:text-neutral-50 dark:hover:bg-red-600", accent: "bg-accent text-accent-foreground hover:bg-violet-500", - primary: "bg-neutral-800 text-white hover:bg-black/60", + primary: "bg-zinc-700 text-white hover:bg-zinc-800 text-white", outline: "border border-black/50 text-neutral-800 hover:bg-neutral-100 dark:bg-neutral-800 dark:text-neutral-100 dark:hover:bg-neutral-700", secondary: diff --git a/autogpt_platform/frontend/src/components/auth/AuthButton.tsx b/autogpt_platform/frontend/src/components/auth/AuthButton.tsx index be8c86f981..319d06c216 100644 --- a/autogpt_platform/frontend/src/components/auth/AuthButton.tsx +++ b/autogpt_platform/frontend/src/components/auth/AuthButton.tsx @@ -1,25 +1,26 @@ import { ReactNode } from "react"; -import { Button } from "../ui/button"; import { FaSpinner } from "react-icons/fa"; +import { Button } from "../ui/button"; interface Props { children?: ReactNode; - onClick: () => void; isLoading?: boolean; disabled?: boolean; type?: "button" | "submit" | "reset"; + onClick?: () => void; } export default function AuthButton({ children, - onClick, isLoading = false, disabled = false, type = "button", + onClick, }: Props) { return ( ); diff --git a/autogpt_platform/frontend/src/components/auth/GoogleOAuthButton.tsx b/autogpt_platform/frontend/src/components/auth/GoogleOAuthButton.tsx new file mode 100644 index 0000000000..a74b603f4d --- /dev/null +++ b/autogpt_platform/frontend/src/components/auth/GoogleOAuthButton.tsx @@ -0,0 +1,33 @@ +import { useState } from "react"; +import { FaGoogle, FaSpinner } from "react-icons/fa"; +import { Button } from "../ui/button"; + +interface GoogleOAuthButtonProps { + onClick: () => void; + isLoading?: boolean; + disabled?: boolean; +} + +export default function GoogleOAuthButton({ + onClick, + isLoading = false, + disabled = false, +}: GoogleOAuthButtonProps) { + return ( + + ); +} diff --git a/autogpt_platform/frontend/src/components/auth/index.ts b/autogpt_platform/frontend/src/components/auth/index.ts index e4d3dc2b96..da7a034ce6 100644 --- a/autogpt_platform/frontend/src/components/auth/index.ts +++ b/autogpt_platform/frontend/src/components/auth/index.ts @@ -3,6 +3,7 @@ import AuthButton from "./AuthButton"; import AuthCard from "./AuthCard"; import AuthFeedback from "./AuthFeedback"; import AuthHeader from "./AuthHeader"; +import GoogleOAuthButton from "./GoogleOAuthButton"; import { PasswordInput } from "./PasswordInput"; import Turnstile from "./Turnstile"; @@ -12,6 +13,7 @@ export { AuthCard, AuthFeedback, AuthHeader, + GoogleOAuthButton, PasswordInput, Turnstile, }; From 7165958feb257a1898e53c0d5cf3110bd907d35e Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Tue, 10 Jun 2025 12:46:18 +0700 Subject: [PATCH 078/497] fix(frontend): Fix builder UI glitch (#10139) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are a few UI bugs on the builder that this PR addresses. image ### Changes 🏗️ Fix these UI issues: * (screenshot attached above) Key-value input width was unintentionally maxed out due to a stale CSS rule. * When multiple executions within the same node are running, we pick the latest status, making one running and one completed execution displayed as completed. * No balance errors were executed, only displayed while at least one node execution was triggered, while this can be done directly when the execution request is triggered. * Run & Stop button glitch: it's still showing as stopped when the graph is still running, this is due to way the UI code tracks execution in the node-level, instead of graph level. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Manual tests on the described behaviours. --- .../backend/backend/server/routers/v1.py | 7 ++ .../frontend/src/components/CustomNode.tsx | 1 + .../frontend/src/components/customnode.css | 13 --- .../src/components/node-input-components.tsx | 1 - .../frontend/src/hooks/useAgentGraph.tsx | 108 ++++++++++-------- .../src/lib/autogpt-server-api/types.ts | 1 + 6 files changed, 71 insertions(+), 60 deletions(-) diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/server/routers/v1.py index 64815baa92..a44b8e188f 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/server/routers/v1.py @@ -575,6 +575,13 @@ async def execute_graph( graph_version: Optional[int] = None, preset_id: Optional[str] = None, ) -> ExecuteGraphResponse: + current_balance = await _user_credit_model.get_credits(user_id) + if current_balance <= 0: + raise HTTPException( + status_code=402, + detail="Insufficient balance to execute the agent. Please top up your account.", + ) + graph_exec = await execution_utils.add_graph_execution_async( graph_id=graph_id, user_id=user_id, diff --git a/autogpt_platform/frontend/src/components/CustomNode.tsx b/autogpt_platform/frontend/src/components/CustomNode.tsx index 7706392e2c..0658ba9f7b 100644 --- a/autogpt_platform/frontend/src/components/CustomNode.tsx +++ b/autogpt_platform/frontend/src/components/CustomNode.tsx @@ -82,6 +82,7 @@ export type CustomNodeData = { executionResults?: { execId: string; data: NodeExecutionResult["output_data"]; + status: NodeExecutionResult["status"]; }[]; block_id: string; backend_id?: string; diff --git a/autogpt_platform/frontend/src/components/customnode.css b/autogpt_platform/frontend/src/components/customnode.css index eeef1572b6..dee3a478f3 100644 --- a/autogpt_platform/frontend/src/components/customnode.css +++ b/autogpt_platform/frontend/src/components/customnode.css @@ -9,19 +9,6 @@ margin-bottom: 1rem; } -.custom-node input:not([type="checkbox"]):not([type="file"]), -.custom-node textarea, -.custom-node select, -.custom-node [data-id^="date-picker"], -.custom-node [data-list-container], -.custom-node [data-add-item], -.custom-node [data-content-settings] .array-item-container { - display: flex; - align-items: center; - min-width: calc(100% - 2.5rem); - max-width: 100%; -} - .custom-node .custom-switch { padding: 0.5rem 1.25rem; display: flex; diff --git a/autogpt_platform/frontend/src/components/node-input-components.tsx b/autogpt_platform/frontend/src/components/node-input-components.tsx index 8db50a298c..24e9863c42 100644 --- a/autogpt_platform/frontend/src/components/node-input-components.tsx +++ b/autogpt_platform/frontend/src/components/node-input-components.tsx @@ -229,7 +229,6 @@ const NodeFileInput: FC<{ const handleFileChange = useCallback( (event: React.ChangeEvent) => { const file = event.target.files?.[0]; - console.log(">>> file", file); if (!file) return; const reader = new FileReader(); diff --git a/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx b/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx index 1a258653d3..94df1f5b2f 100644 --- a/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx +++ b/autogpt_platform/frontend/src/hooks/useAgentGraph.tsx @@ -354,6 +354,55 @@ export default function useAgentGraph( [getFrontendId, nodes], ); + const addExecutionDataToNode = useCallback( + (node: CustomNode, executionData: NodeExecutionResult) => { + if (!executionData.output_data) { + console.warn( + `Execution data for node ${executionData.node_id} is empty, skipping update`, + ); + return node; + } + + const executionResults = [ + // Execution updates are not cumulative, so we need to filter out the old ones. + ...(node.data.executionResults?.filter( + (result) => result.execId !== executionData.node_exec_id, + ) || []), + { + execId: executionData.node_exec_id, + data: { + "[Input]": [executionData.input_data], + ...executionData.output_data, + }, + status: executionData.status, + }, + ]; + + const statusRank = { + RUNNING: 0, + QUEUED: 1, + INCOMPLETE: 2, + TERMINATED: 3, + COMPLETED: 4, + FAILED: 5, + }; + const status = executionResults + .map((v) => v.status) + .reduce((a, b) => (statusRank[a] < statusRank[b] ? a : b)); + + return { + ...node, + data: { + ...node.data, + status, + executionResults, + isOutputOpen: true, + }, + }; + }, + [], + ); + const updateNodesWithExecutionData = useCallback( (executionData: NodeExecutionResult) => { if (!executionData.node_id) return; @@ -374,31 +423,7 @@ export default function useAgentGraph( } return nodes.map((node) => node.id === nodeId - ? { - ...node, - data: { - ...node.data, - status: executionData.status, - executionResults: - Object.keys(executionData.output_data).length > 0 - ? [ - // Execution updates are not cumulative, so we need to filter out the old ones. - ...(node.data.executionResults?.filter( - (result) => - result.execId !== executionData.node_exec_id, - ) || []), - { - execId: executionData.node_exec_id, - data: { - "[Input]": [executionData.input_data], - ...executionData.output_data, - }, - }, - ] - : node.data.executionResults, - isOutputOpen: true, - }, - } + ? addExecutionDataToNode(node, executionData) : node, ); }); @@ -694,20 +719,17 @@ export default function useAgentGraph( return [...prev, ...execution.node_executions]; }); - // Track execution until completed - const pendingNodeExecutions: Set = new Set(); - const cancelExecListener = api.onWebSocketMessage( - "node_execution_event", - (nodeResult) => { - // We are racing the server here, since we need the ID to filter events - if (nodeResult.graph_exec_id != flowExecutionID) { + const cancelGraphExecListener = api.onWebSocketMessage( + "graph_execution_event", + (graphExec) => { + if (graphExec.id != flowExecutionID) { return; } if ( - nodeResult.status === "FAILED" && - nodeResult.output_data?.error?.[0] - .toLowerCase() - .includes("insufficient balance") + graphExec.status === "FAILED" && + graphExec?.stats?.error + ?.toLowerCase() + ?.includes("insufficient balance") ) { // Show no credits toast if user has low credits toast({ @@ -731,17 +753,11 @@ export default function useAgentGraph( }); } if ( - !["COMPLETED", "TERMINATED", "FAILED"].includes(nodeResult.status) + graphExec.status === "COMPLETED" || + graphExec.status === "TERMINATED" || + graphExec.status === "FAILED" ) { - pendingNodeExecutions.add(nodeResult.node_exec_id); - } else { - pendingNodeExecutions.delete(nodeResult.node_exec_id); - } - if (pendingNodeExecutions.size == 0) { - // Assuming the first event is always a QUEUED node, and - // following nodes are QUEUED before all preceding nodes are COMPLETED, - // an empty set means the graph has finished running. - cancelExecListener(); + cancelGraphExecListener(); setSaveRunRequest({ request: "none", state: "none" }); incrementRuns(); } diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts index 0aade8a31e..635fa44e2d 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts @@ -281,6 +281,7 @@ export type GraphExecutionMeta = { started_at: Date; ended_at: Date; stats?: { + error?: string; cost: number; duration: number; duration_cpu_only: number; From 4a03e5cbaf8ad874fc51ba3a2029f5fc20852358 Mon Sep 17 00:00:00 2001 From: Swifty Date: Tue, 10 Jun 2025 12:09:57 +0200 Subject: [PATCH 079/497] fix(backend): improve server error handling (#10030) ## Changes - log helpful hints when metrics fail to record - clarify API key errors in v1 router - improve Postmark unsubscribe and webhook logs - surface actionable feedback across integrations and store APIs - handle Otto proxy failures with guidance ## Checklist - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan --- .../backend/server/integrations/router.py | 31 ++++++++--- .../backend/backend/server/rest_api.py | 44 ++++++++++++++- .../backend/server/routers/analytics.py | 43 +++++++++++---- .../server/routers/postmark/postmark.py | 19 +++++-- .../backend/backend/server/routers/v1.py | 54 ++++++++++++++----- .../server/v2/library/routes/agents.py | 44 ++++++++++----- .../server/v2/library/routes/presets.py | 34 +++++++----- .../backend/backend/server/v2/otto/routes.py | 12 ++++- .../backend/backend/server/v2/store/routes.py | 27 ++++++---- .../backend/server/v2/turnstile/routes.py | 4 +- .../backend/backend/server/ws_api.py | 39 +++++++++++++- 11 files changed, 274 insertions(+), 77 deletions(-) diff --git a/autogpt_platform/backend/backend/server/integrations/router.py b/autogpt_platform/backend/backend/server/integrations/router.py index c9fdbe1dc6..4739bd8417 100644 --- a/autogpt_platform/backend/backend/server/integrations/router.py +++ b/autogpt_platform/backend/backend/server/integrations/router.py @@ -120,9 +120,17 @@ def callback( ) except Exception as e: - logger.error(f"Code->Token exchange failed for provider {provider.value}: {e}") + logger.exception( + "OAuth callback for provider %s failed during code exchange: %s. Confirm provider credentials.", + provider.value, + e, + ) raise HTTPException( - status_code=400, detail=f"Failed to exchange code for tokens: {str(e)}" + status_code=400, + detail={ + "message": str(e), + "hint": "Verify OAuth configuration and try again.", + }, ) # TODO: Allow specifying `title` to set on `credentials` @@ -286,9 +294,13 @@ async def webhook_ingress_generic( try: webhook = await get_webhook(webhook_id) except NotFoundError as e: - logger.warning(f"Webhook payload received for unknown webhook: {e}") + logger.warning( + "Webhook payload received for unknown webhook %s. Confirm the webhook ID.", + webhook_id, + ) raise HTTPException( - status_code=HTTP_404_NOT_FOUND, detail=f"Webhook #{webhook_id} not found" + status_code=HTTP_404_NOT_FOUND, + detail={"message": str(e), "hint": "Check if the webhook ID is correct."}, ) from e logger.debug(f"Webhook #{webhook_id}: {webhook}") payload, event_type = await webhook_manager.validate_payload(webhook, request) @@ -398,11 +410,16 @@ def _get_provider_oauth_handler( client_id = getattr(settings.secrets, f"{provider_name.value}_client_id") client_secret = getattr(settings.secrets, f"{provider_name.value}_client_secret") if not (client_id and client_secret): + logger.error( + "OAuth credentials for provider %s are missing. Check environment configuration.", + provider_name.value, + ) raise HTTPException( status_code=501, - detail=( - f"Integration with provider '{provider_name.value}' is not configured" - ), + detail={ + "message": f"Integration with provider '{provider_name.value}' is not configured", + "hint": "Set client ID and secret in the environment.", + }, ) handler_class = HANDLERS_BY_NAME[provider_name] diff --git a/autogpt_platform/backend/backend/server/rest_api.py b/autogpt_platform/backend/backend/server/rest_api.py index a98366b046..9214c00ab2 100644 --- a/autogpt_platform/backend/backend/server/rest_api.py +++ b/autogpt_platform/backend/backend/server/rest_api.py @@ -5,6 +5,7 @@ from typing import Any, Optional import autogpt_libs.auth.models import fastapi import fastapi.responses +import pydantic import starlette.middleware.cors import uvicorn from autogpt_libs.feature_flag.client import ( @@ -12,6 +13,7 @@ from autogpt_libs.feature_flag.client import ( shutdown_launchdarkly, ) from autogpt_libs.logging.utils import generate_uvicorn_config +from fastapi.exceptions import RequestValidationError import backend.data.block import backend.data.db @@ -86,11 +88,23 @@ app = fastapi.FastAPI( def handle_internal_http_error(status_code: int = 500, log_error: bool = True): def handler(request: fastapi.Request, exc: Exception): if log_error: - logger.exception(f"{request.method} {request.url.path} failed: {exc}") + logger.exception( + "%s %s failed. Investigate and resolve the underlying issue: %s", + request.method, + request.url.path, + exc, + ) + + hint = ( + "Adjust the request and retry." + if status_code < 500 + else "Check server logs and dependent services." + ) return fastapi.responses.JSONResponse( content={ - "message": f"{request.method} {request.url.path} failed", + "message": f"Failed to process {request.method} {request.url.path}", "detail": str(exc), + "hint": hint, }, status_code=status_code, ) @@ -98,6 +112,32 @@ def handle_internal_http_error(status_code: int = 500, log_error: bool = True): return handler +async def validation_error_handler( + request: fastapi.Request, exc: Exception +) -> fastapi.responses.JSONResponse: + logger.error( + "Validation failed for %s %s: %s. Fix the request payload and try again.", + request.method, + request.url.path, + exc, + ) + errors: list | str + if hasattr(exc, "errors"): + errors = exc.errors() # type: ignore[call-arg] + else: + errors = str(exc) + return fastapi.responses.JSONResponse( + status_code=422, + content={ + "message": f"Invalid data for {request.method} {request.url.path}", + "detail": errors, + "hint": "Ensure the request matches the API schema.", + }, + ) + + +app.add_exception_handler(RequestValidationError, validation_error_handler) +app.add_exception_handler(pydantic.ValidationError, validation_error_handler) app.add_exception_handler(ValueError, handle_internal_http_error(400)) app.add_exception_handler(Exception, handle_internal_http_error(500)) app.include_router(backend.server.routers.v1.v1_router, tags=["v1"], prefix="/api") diff --git a/autogpt_platform/backend/backend/server/routers/analytics.py b/autogpt_platform/backend/backend/server/routers/analytics.py index d7416c3e0e..b6116391d9 100644 --- a/autogpt_platform/backend/backend/server/routers/analytics.py +++ b/autogpt_platform/backend/backend/server/routers/analytics.py @@ -1,5 +1,6 @@ """Analytics API""" +import logging from typing import Annotated import fastapi @@ -8,6 +9,7 @@ import backend.data.analytics from backend.server.utils import get_user_id router = fastapi.APIRouter() +logger = logging.getLogger(__name__) @router.post(path="/log_raw_metric") @@ -17,13 +19,25 @@ async def log_raw_metric( metric_value: Annotated[float, fastapi.Body(..., embed=True)], data_string: Annotated[str, fastapi.Body(..., embed=True)], ): - result = await backend.data.analytics.log_raw_metric( - user_id=user_id, - metric_name=metric_name, - metric_value=metric_value, - data_string=data_string, - ) - return result.id + try: + result = await backend.data.analytics.log_raw_metric( + user_id=user_id, + metric_name=metric_name, + metric_value=metric_value, + data_string=data_string, + ) + return result.id + except Exception as e: + logger.exception( + "Failed to log metric %s for user %s: %s", metric_name, user_id, e + ) + raise fastapi.HTTPException( + status_code=500, + detail={ + "message": str(e), + "hint": "Check analytics service connection and retry.", + }, + ) @router.post("/log_raw_analytics") @@ -43,7 +57,14 @@ async def log_raw_analytics( ), ], ): - result = await backend.data.analytics.log_raw_analytics( - user_id, type, data, data_index - ) - return result.id + try: + result = await backend.data.analytics.log_raw_analytics( + user_id, type, data, data_index + ) + return result.id + except Exception as e: + logger.exception("Failed to log analytics for user %s: %s", user_id, e) + raise fastapi.HTTPException( + status_code=500, + detail={"message": str(e), "hint": "Ensure analytics DB is reachable."}, + ) diff --git a/autogpt_platform/backend/backend/server/routers/postmark/postmark.py b/autogpt_platform/backend/backend/server/routers/postmark/postmark.py index c9ceca4e91..ae744bfc10 100644 --- a/autogpt_platform/backend/backend/server/routers/postmark/postmark.py +++ b/autogpt_platform/backend/backend/server/routers/postmark/postmark.py @@ -2,7 +2,7 @@ import logging from typing import Annotated from autogpt_libs.auth.middleware import APIKeyValidator -from fastapi import APIRouter, Body, Depends, Query +from fastapi import APIRouter, Body, Depends, HTTPException, Query from fastapi.responses import JSONResponse from backend.data.user import ( @@ -40,8 +40,11 @@ async def unsubscribe_via_one_click(token: Annotated[str, Query()]): try: await unsubscribe_user_by_token(token) except Exception as e: - logger.error(f"Failed to unsubscribe user by token {token}: {e}") - raise e + logger.exception("Unsubscribe token %s failed: %s", token, e) + raise HTTPException( + status_code=500, + detail={"message": str(e), "hint": "Verify Postmark token settings."}, + ) return JSONResponse(status_code=200, content={"status": "ok"}) @@ -67,7 +70,10 @@ async def postmark_webhook_handler( case PostmarkSubscriptionChangeWebhook(): subscription_handler(webhook) case _: - logger.warning(f"Unknown webhook type: {type(webhook)}") + logger.warning( + "Unhandled Postmark webhook type %s. Update handler mappings.", + type(webhook), + ) return @@ -85,7 +91,10 @@ async def bounce_handler(event: PostmarkBounceWebhook): logger.info(f"{event.Email=}") user = await get_user_by_email(event.Email) if not user: - logger.error(f"User not found for email: {event.Email}") + logger.warning( + "Received bounce for unknown email %s. Ensure user records are current.", + event.Email, + ) return await set_user_email_verification(user.id, False) logger.debug(f"Setting email verification to false for user: {user.id}") diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/server/routers/v1.py index a44b8e188f..d9d39e4666 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/server/routers/v1.py @@ -824,8 +824,15 @@ async def create_api_key( ) return CreateAPIKeyResponse(api_key=api_key, plain_text_key=plain_text) except APIKeyError as e: - logger.error(f"Failed to create API key: {str(e)}") - raise HTTPException(status_code=400, detail=str(e)) + logger.error( + "Could not create API key for user %s: %s. Review input and permissions.", + user_id, + e, + ) + raise HTTPException( + status_code=400, + detail={"message": str(e), "hint": "Verify request payload and try again."}, + ) @v1_router.get( @@ -841,8 +848,11 @@ async def get_api_keys( try: return await list_user_api_keys(user_id) except APIKeyError as e: - logger.error(f"Failed to list API keys: {str(e)}") - raise HTTPException(status_code=400, detail=str(e)) + logger.error("Failed to list API keys for user %s: %s", user_id, e) + raise HTTPException( + status_code=400, + detail={"message": str(e), "hint": "Check API key service availability."}, + ) @v1_router.get( @@ -861,8 +871,11 @@ async def get_api_key( raise HTTPException(status_code=404, detail="API key not found") return api_key except APIKeyError as e: - logger.error(f"Failed to get API key: {str(e)}") - raise HTTPException(status_code=400, detail=str(e)) + logger.error("Error retrieving API key %s for user %s: %s", key_id, user_id, e) + raise HTTPException( + status_code=400, + detail={"message": str(e), "hint": "Ensure the key ID is correct."}, + ) @v1_router.delete( @@ -883,8 +896,14 @@ async def delete_api_key( except APIKeyPermissionError: raise HTTPException(status_code=403, detail="Permission denied") except APIKeyError as e: - logger.error(f"Failed to revoke API key: {str(e)}") - raise HTTPException(status_code=400, detail=str(e)) + logger.error("Failed to revoke API key %s for user %s: %s", key_id, user_id, e) + raise HTTPException( + status_code=400, + detail={ + "message": str(e), + "hint": "Verify permissions or try again later.", + }, + ) @v1_router.post( @@ -905,8 +924,11 @@ async def suspend_key( except APIKeyPermissionError: raise HTTPException(status_code=403, detail="Permission denied") except APIKeyError as e: - logger.error(f"Failed to suspend API key: {str(e)}") - raise HTTPException(status_code=400, detail=str(e)) + logger.error("Failed to suspend API key %s for user %s: %s", key_id, user_id, e) + raise HTTPException( + status_code=400, + detail={"message": str(e), "hint": "Check user permissions and retry."}, + ) @v1_router.put( @@ -929,5 +951,13 @@ async def update_permissions( except APIKeyPermissionError: raise HTTPException(status_code=403, detail="Permission denied") except APIKeyError as e: - logger.error(f"Failed to update API key permissions: {str(e)}") - raise HTTPException(status_code=400, detail=str(e)) + logger.error( + "Failed to update permissions for API key %s of user %s: %s", + key_id, + user_id, + e, + ) + raise HTTPException( + status_code=400, + detail={"message": str(e), "hint": "Ensure permissions list is valid."}, + ) diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/agents.py b/autogpt_platform/backend/backend/server/v2/library/routes/agents.py index f21a66faa4..9a0b19b56b 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes/agents.py +++ b/autogpt_platform/backend/backend/server/v2/library/routes/agents.py @@ -70,10 +70,10 @@ async def list_library_agents( page_size=page_size, ) except Exception as e: - logger.error(f"Could not fetch library agents: {e}") + logger.exception("Listing library agents failed for user %s: %s", user_id, e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to get library agents", + detail={"message": str(e), "hint": "Inspect database connectivity."}, ) from e @@ -102,10 +102,17 @@ async def get_library_agent_by_store_listing_version_id( store_listing_version_id, user_id ) except Exception as e: - logger.error(f"Could not fetch library agent from store version ID: {e}") + logger.exception( + "Retrieving library agent by store version failed for user %s: %s", + user_id, + e, + ) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to add agent to library", + detail={ + "message": str(e), + "hint": "Check if the store listing ID is valid.", + }, ) from e @@ -143,22 +150,31 @@ async def add_marketplace_agent_to_library( ) except store_exceptions.AgentNotFoundError: - logger.warning(f"Agent not found: {store_listing_version_id}") + logger.warning( + "Store listing version %s not found when adding to library", + store_listing_version_id, + ) raise HTTPException( status_code=404, - detail=f"Store listing version {store_listing_version_id} not found", + detail={ + "message": f"Store listing version {store_listing_version_id} not found", + "hint": "Confirm the ID provided.", + }, ) except store_exceptions.DatabaseError as e: - logger.error(f"Database error occurred whilst adding agent to library: {e}") + logger.exception("Database error whilst adding agent to library: %s", e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to add agent to library", + detail={"message": str(e), "hint": "Inspect DB logs for details."}, ) from e except Exception as e: - logger.error(f"Unexpected error while adding agent: {e}") + logger.exception("Unexpected error while adding agent to library: %s", e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to add agent to library", + detail={ + "message": str(e), + "hint": "Check server logs for more information.", + }, ) from e @@ -203,16 +219,16 @@ async def update_library_agent( content={"message": "Agent updated successfully"}, ) except store_exceptions.DatabaseError as e: - logger.exception(f"Database error while updating library agent: {e}") + logger.exception("Database error while updating library agent: %s", e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to update library agent", + detail={"message": str(e), "hint": "Verify DB connection."}, ) from e except Exception as e: - logger.exception(f"Unexpected error while updating library agent: {e}") + logger.exception("Unexpected error while updating library agent: %s", e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to update library agent", + detail={"message": str(e), "hint": "Check server logs."}, ) from e diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py b/autogpt_platform/backend/backend/server/v2/library/routes/presets.py index 6f2d3daa2b..504f46e088 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py +++ b/autogpt_platform/backend/backend/server/v2/library/routes/presets.py @@ -47,10 +47,13 @@ async def list_presets( page_size=page_size, ) except Exception as e: - logger.exception(f"Exception occurred while getting presets: {e}") + logger.exception("Failed to list presets for user %s: %s", user_id, e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to get presets", + detail={ + "message": str(e), + "hint": "Ensure the presets DB table is accessible.", + }, ) @@ -85,10 +88,12 @@ async def get_preset( ) return preset except Exception as e: - logger.exception(f"Exception occurred whilst getting preset: {e}") + logger.exception( + "Error retrieving preset %s for user %s: %s", preset_id, user_id, e + ) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to get preset", + detail={"message": str(e), "hint": "Validate preset ID and retry."}, ) @@ -125,10 +130,10 @@ async def create_preset( except NotFoundError as e: raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e)) except Exception as e: - logger.exception(f"Exception occurred while creating preset: {e}") + logger.exception("Preset creation failed for user %s: %s", user_id, e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to create preset", + detail={"message": str(e), "hint": "Check preset payload format."}, ) @@ -161,10 +166,10 @@ async def update_preset( user_id=user_id, preset_id=preset_id, preset=preset ) except Exception as e: - logger.exception(f"Exception occurred whilst updating preset: {e}") + logger.exception("Preset update failed for user %s: %s", user_id, e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to update preset", + detail={"message": str(e), "hint": "Check preset data and try again."}, ) @@ -191,10 +196,12 @@ async def delete_preset( try: await db.delete_preset(user_id, preset_id) except Exception as e: - logger.exception(f"Exception occurred whilst deleting preset: {e}") + logger.exception( + "Error deleting preset %s for user %s: %s", preset_id, user_id, e + ) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="Failed to delete preset", + detail={"message": str(e), "hint": "Ensure preset exists before deleting."}, ) @@ -252,8 +259,11 @@ async def execute_preset( except HTTPException: raise except Exception as e: - logger.exception(f"Exception occurred while executing preset: {e}") + logger.exception("Preset execution failed for user %s: %s", user_id, e) raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, - detail=str(e), + detail={ + "message": str(e), + "hint": "Review preset configuration and graph ID.", + }, ) diff --git a/autogpt_platform/backend/backend/server/v2/otto/routes.py b/autogpt_platform/backend/backend/server/v2/otto/routes.py index 6f409e9a6c..d2574e35ca 100644 --- a/autogpt_platform/backend/backend/server/v2/otto/routes.py +++ b/autogpt_platform/backend/backend/server/v2/otto/routes.py @@ -1,7 +1,7 @@ import logging from autogpt_libs.auth.middleware import auth_middleware -from fastapi import APIRouter, Depends +from fastapi import APIRouter, Depends, HTTPException from backend.server.utils import get_user_id @@ -23,4 +23,12 @@ async def proxy_otto_request( Proxy requests to Otto API while adding necessary security headers and logging. Requires an authenticated user. """ - return await OttoService.ask(request, user_id) + logger.debug("Forwarding request to Otto for user %s", user_id) + try: + return await OttoService.ask(request, user_id) + except Exception as e: + logger.exception("Otto request failed for user %s: %s", user_id, e) + raise HTTPException( + status_code=502, + detail={"message": str(e), "hint": "Check Otto service status."}, + ) diff --git a/autogpt_platform/backend/backend/server/v2/store/routes.py b/autogpt_platform/backend/backend/server/v2/store/routes.py index e15c40dab6..41795f5d88 100644 --- a/autogpt_platform/backend/backend/server/v2/store/routes.py +++ b/autogpt_platform/backend/backend/server/v2/store/routes.py @@ -48,11 +48,14 @@ async def get_profile( content={"detail": "Profile not found"}, ) return profile - except Exception: - logger.exception("Exception occurred whilst getting user profile") + except Exception as e: + logger.exception("Failed to fetch user profile for %s: %s", user_id, e) return fastapi.responses.JSONResponse( status_code=500, - content={"detail": "An error occurred while retrieving the user profile"}, + content={ + "detail": "Failed to retrieve user profile", + "hint": "Check database connection.", + }, ) @@ -86,11 +89,14 @@ async def update_or_create_profile( user_id=user_id, profile=profile ) return updated_profile - except Exception: - logger.exception("Exception occurred whilst updating profile") + except Exception as e: + logger.exception("Failed to update profile for user %s: %s", user_id, e) return fastapi.responses.JSONResponse( status_code=500, - content={"detail": "An error occurred while updating the user profile"}, + content={ + "detail": "Failed to update user profile", + "hint": "Validate request data.", + }, ) @@ -160,11 +166,14 @@ async def get_agents( page_size=page_size, ) return agents - except Exception: - logger.exception("Exception occured whilst getting store agents") + except Exception as e: + logger.exception("Failed to retrieve store agents: %s", e) return fastapi.responses.JSONResponse( status_code=500, - content={"detail": "An error occurred while retrieving the store agents"}, + content={ + "detail": "Failed to retrieve store agents", + "hint": "Check database or search parameters.", + }, ) diff --git a/autogpt_platform/backend/backend/server/v2/turnstile/routes.py b/autogpt_platform/backend/backend/server/v2/turnstile/routes.py index d0b2b38163..d1803df584 100644 --- a/autogpt_platform/backend/backend/server/v2/turnstile/routes.py +++ b/autogpt_platform/backend/backend/server/v2/turnstile/routes.py @@ -35,7 +35,9 @@ async def verify_token(request: TurnstileVerifyRequest) -> TurnstileVerifyRespon turnstile_verify_url = settings.secrets.turnstile_verify_url if not turnstile_secret_key: - logger.error("Turnstile secret key is not configured") + logger.error( + "Turnstile secret key missing. Set TURNSTILE_SECRET_KEY to enable verification." + ) return TurnstileVerifyResponse( success=False, error="CONFIGURATION_ERROR", diff --git a/autogpt_platform/backend/backend/server/ws_api.py b/autogpt_platform/backend/backend/server/ws_api.py index 4191caba32..67f5ad9cc9 100644 --- a/autogpt_platform/backend/backend/server/ws_api.py +++ b/autogpt_platform/backend/backend/server/ws_api.py @@ -3,6 +3,7 @@ import logging from contextlib import asynccontextmanager from typing import Protocol +import pydantic import uvicorn from autogpt_libs.auth import parse_jwt_token from autogpt_libs.logging.utils import generate_uvicorn_config @@ -51,7 +52,11 @@ async def event_broadcaster(manager: ConnectionManager): async for event in event_queue.listen("*"): await manager.send_execution_update(event) except Exception as e: - logger.exception(f"Event broadcaster error: {e}") + logger.exception( + "Event broadcaster stopped due to error: %s. " + "Verify the Redis connection and restart the service.", + e, + ) raise @@ -221,7 +226,22 @@ async def websocket_router( try: while True: data = await websocket.receive_text() - message = WSMessage.model_validate_json(data) + try: + message = WSMessage.model_validate_json(data) + except pydantic.ValidationError as e: + logger.error( + "Invalid WebSocket message from user #%s: %s", + user_id, + e, + ) + await websocket.send_text( + WSMessage( + method=WSMethod.ERROR, + success=False, + error=("Invalid message format. Review the schema and retry"), + ).model_dump_json() + ) + continue try: if message.method in _MSG_HANDLERS: @@ -232,6 +252,21 @@ async def websocket_router( message=message, ) continue + except pydantic.ValidationError as e: + logger.error( + "Validation error while handling '%s' for user #%s: %s", + message.method.value, + user_id, + e, + ) + await websocket.send_text( + WSMessage( + method=WSMethod.ERROR, + success=False, + error="Invalid message data. Refer to the API schema", + ).model_dump_json() + ) + continue except Exception as e: logger.error( f"Error while handling '{message.method.value}' message " From 2f16511f241db714c7503fa6424fb16617f16224 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Tue, 10 Jun 2025 14:20:32 +0400 Subject: [PATCH 080/497] fix(frontend): avoid Sentry initialisation and warnings on local dev (#10125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ We were getting the following warnings in the console when running the local server: ``` ⚠ ./node_modules/.pnpm/@sentry+node@9.26.0/node_modules/@sentry/node/build/cjs/sdk Package import-in-the-middle can't be external The request import-in-the-middle matches serverExternalPackages (or the default list). The request could not be resolved by Node.js from the project directory. Packages that should be external need to be installed in the project directory, so they can be resolved from the output files. Try to install it into the project directory by running npm install import-in-the-middle from the project directory. ``` ### Why were the warnings happening? The Sentry SDK for Next.js tries to hook into Node.js internals using packages like `import-in-the-middle` and `require-in-the-middle`. When Sentry is imported at the top level on a file (even if not enabled), it tries to load these dependencies... If they are not installed, then we get these warnings... ### Why does installing the packages fix it? By installing `import-in-the-middle` and `require-in-the-middle` as dev dependencies, Sentry finds them and the warnings disappear. This is a safe workaround for local/dev, and does not affect production. ### Loading Sentry conditionally One way to avoid these warnings ⚠️ is by loading Sentry conditionally. That is the approach I took in an earlier PR. However I realised that it would have to apply to any file importing Sentry: ```ts import * as Sentry from "@sentry/nextjs"; ``` which would end quite messy and affecting a lot of files. I realised installing the packages is just simpler ( _they won't in the bundle or affect page load_ ) and using `enabled` in the Sentry initialisation is also cleaner. ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] There are not Sentry warnings when running the local dev server ( with or without `--turbo` ) - [x] Sentry still reports issues in production or staging ( _but not locally_ ) --- .../frontend/instrumentation-client.ts | 95 ++++++++++--------- autogpt_platform/frontend/package.json | 2 + autogpt_platform/frontend/pnpm-lock.yaml | 8 +- .../frontend/sentry.edge.config.ts | 7 +- .../frontend/sentry.server.config.ts | 7 +- 5 files changed, 70 insertions(+), 49 deletions(-) diff --git a/autogpt_platform/frontend/instrumentation-client.ts b/autogpt_platform/frontend/instrumentation-client.ts index fc3a359662..f439303a42 100644 --- a/autogpt_platform/frontend/instrumentation-client.ts +++ b/autogpt_platform/frontend/instrumentation-client.ts @@ -2,61 +2,64 @@ // The config you add here will be used whenever a users loads a page in their browser. // https://docs.sentry.io/platforms/javascript/guides/nextjs/ -import { getEnvironmentStr } from "@/lib/utils"; +import { BehaveAs, getBehaveAs, getEnvironmentStr } from "@/lib/utils"; import * as Sentry from "@sentry/nextjs"; -if (process.env.NODE_ENV === "production") { - Sentry.init({ - dsn: "https://fe4e4aa4a283391808a5da396da20159@o4505260022104064.ingest.us.sentry.io/4507946746380288", +const isProductionCloud = + process.env.NODE_ENV === "production" && getBehaveAs() === BehaveAs.CLOUD; - environment: getEnvironmentStr(), +Sentry.init({ + dsn: "https://fe4e4aa4a283391808a5da396da20159@o4505260022104064.ingest.us.sentry.io/4507946746380288", - // Add optional integrations for additional features - integrations: [ - Sentry.replayIntegration(), - Sentry.httpClientIntegration(), - Sentry.replayCanvasIntegration(), - Sentry.reportingObserverIntegration(), - Sentry.browserProfilingIntegration(), - // Sentry.feedbackIntegration({ - // // Additional SDK configuration goes in here, for example: - // colorScheme: "system", - // }), - ], + environment: getEnvironmentStr(), - // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. - tracesSampleRate: 1, + enabled: isProductionCloud, - // Set `tracePropagationTargets` to control for which URLs trace propagation should be enabled - tracePropagationTargets: [ - "localhost", - "localhost:8006", - /^https:\/\/dev\-builder\.agpt\.co\/api/, - /^https:\/\/.*\.agpt\.co\/api/, - ], + // Add optional integrations for additional features + integrations: [ + Sentry.replayIntegration(), + Sentry.httpClientIntegration(), + Sentry.replayCanvasIntegration(), + Sentry.reportingObserverIntegration(), + Sentry.browserProfilingIntegration(), + // Sentry.feedbackIntegration({ + // // Additional SDK configuration goes in here, for example: + // colorScheme: "system", + // }), + ], - // Define how likely Replay events are sampled. - // This sets the sample rate to be 10%. You may want this to be 100% while - // in development and sample at a lower rate in production - replaysSessionSampleRate: 0.1, + // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. + tracesSampleRate: 1, - // Define how likely Replay events are sampled when an error occurs. - replaysOnErrorSampleRate: 1.0, + // Set `tracePropagationTargets` to control for which URLs trace propagation should be enabled + tracePropagationTargets: [ + "localhost", + "localhost:8006", + /^https:\/\/dev\-builder\.agpt\.co\/api/, + /^https:\/\/.*\.agpt\.co\/api/, + ], - // Setting this option to true will print useful information to the console while you're setting up Sentry. - debug: false, + // Define how likely Replay events are sampled. + // This sets the sample rate to be 10%. You may want this to be 100% while + // in development and sample at a lower rate in production + replaysSessionSampleRate: 0.1, - // Set profilesSampleRate to 1.0 to profile every transaction. - // Since profilesSampleRate is relative to tracesSampleRate, - // the final profiling rate can be computed as tracesSampleRate * profilesSampleRate - // For example, a tracesSampleRate of 0.5 and profilesSampleRate of 0.5 would - // result in 25% of transactions being profiled (0.5*0.5=0.25) - profilesSampleRate: 1.0, - _experiments: { - // Enable logs to be sent to Sentry. - enableLogs: true, - }, - }); -} + // Define how likely Replay events are sampled when an error occurs. + replaysOnErrorSampleRate: 1.0, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + + // Set profilesSampleRate to 1.0 to profile every transaction. + // Since profilesSampleRate is relative to tracesSampleRate, + // the final profiling rate can be computed as tracesSampleRate * profilesSampleRate + // For example, a tracesSampleRate of 0.5 and profilesSampleRate of 0.5 would + // result in 25% of transactions being profiled (0.5*0.5=0.25) + profilesSampleRate: 1.0, + _experiments: { + // Enable logs to be sent to Sentry. + enableLogs: true, + }, +}); export const onRouterTransitionStart = Sentry.captureRouterTransitionStart; diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index c4ebb3e0ae..c91d7de4bd 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -114,11 +114,13 @@ "eslint": "8.57.1", "eslint-config-next": "15.3.3", "eslint-plugin-storybook": "0.12.0", + "import-in-the-middle": "1.14.0", "msw": "2.9.0", "msw-storybook-addon": "2.0.4", "postcss": "8.5.4", "prettier": "3.5.3", "prettier-plugin-tailwindcss": "0.6.12", + "require-in-the-middle": "7.5.2", "storybook": "8.6.14", "tailwindcss": "3.4.17", "typescript": "5.8.3" diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index ce6f98f341..cc21b05716 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -273,6 +273,9 @@ importers: eslint-plugin-storybook: specifier: 0.12.0 version: 0.12.0(eslint@8.57.1)(typescript@5.8.3) + import-in-the-middle: + specifier: 1.14.0 + version: 1.14.0 msw: specifier: 2.9.0 version: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) @@ -288,6 +291,9 @@ importers: prettier-plugin-tailwindcss: specifier: 0.6.12 version: 0.6.12(prettier@3.5.3) + require-in-the-middle: + specifier: 7.5.2 + version: 7.5.2 storybook: specifier: 8.6.14 version: 8.6.14(prettier@3.5.3) @@ -15281,7 +15287,7 @@ snapshots: dependencies: debug: 4.4.1 module-details-from-path: 1.0.4 - resolve: 1.22.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color diff --git a/autogpt_platform/frontend/sentry.edge.config.ts b/autogpt_platform/frontend/sentry.edge.config.ts index 0e06119252..3f7007d456 100644 --- a/autogpt_platform/frontend/sentry.edge.config.ts +++ b/autogpt_platform/frontend/sentry.edge.config.ts @@ -4,13 +4,18 @@ // https://docs.sentry.io/platforms/javascript/guides/nextjs/ import * as Sentry from "@sentry/nextjs"; -import { getEnvironmentStr } from "./src/lib/utils"; +import { BehaveAs, getBehaveAs, getEnvironmentStr } from "./src/lib/utils"; + +const isProductionCloud = + process.env.NODE_ENV === "production" && getBehaveAs() === BehaveAs.CLOUD; Sentry.init({ dsn: "https://fe4e4aa4a283391808a5da396da20159@o4505260022104064.ingest.us.sentry.io/4507946746380288", environment: getEnvironmentStr(), + enabled: isProductionCloud, + // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. tracesSampleRate: 1, tracePropagationTargets: [ diff --git a/autogpt_platform/frontend/sentry.server.config.ts b/autogpt_platform/frontend/sentry.server.config.ts index c42326311e..b93128805c 100644 --- a/autogpt_platform/frontend/sentry.server.config.ts +++ b/autogpt_platform/frontend/sentry.server.config.ts @@ -2,15 +2,20 @@ // The config you add here will be used whenever the server handles a request. // https://docs.sentry.io/platforms/javascript/guides/nextjs/ -import { getEnvironmentStr } from "@/lib/utils"; +import { BehaveAs, getBehaveAs, getEnvironmentStr } from "@/lib/utils"; import * as Sentry from "@sentry/nextjs"; // import { NodeProfilingIntegration } from "@sentry/profiling-node"; +const isProductionCloud = + process.env.NODE_ENV === "production" && getBehaveAs() === BehaveAs.CLOUD; + Sentry.init({ dsn: "https://fe4e4aa4a283391808a5da396da20159@o4505260022104064.ingest.us.sentry.io/4507946746380288", environment: getEnvironmentStr(), + enabled: isProductionCloud, + // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. tracesSampleRate: 1, tracePropagationTargets: [ From f9b37d2693b4399e58143933e1d5b3c80c02c595 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 15:48:17 +0400 Subject: [PATCH 081/497] chore(frontend/deps-dev): Bump @chromatic-com/storybook from 3.2.4 to 3.2.6 in /autogpt_platform/frontend (#10137) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@chromatic-com/storybook](https://github.com/chromaui/addon-visual-tests) from 3.2.4 to 3.2.6.
Release notes

Sourced from @​chromatic-com/storybook's releases.

v3.2.6

🐛 Bug Fix

Authors: 1

v3.2.6-next.0

⚠️ Pushed to next

Authors: 1

v3.2.5

🐛 Bug Fix

Authors: 3

v3.2.5-next.0

🐛 Bug Fix

Authors: 2

... (truncated)

Changelog

Sourced from @​chromatic-com/storybook's changelog.

v3.2.6 (Fri Mar 14 2025)

🐛 Bug Fix

Authors: 1


Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@chromatic-com/storybook&package-manager=npm_and_yarn&previous-version=3.2.4&new-version=3.2.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- autogpt_platform/frontend/package.json | 2 +- autogpt_platform/frontend/pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index c91d7de4bd..33f3d17b8e 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -89,7 +89,7 @@ "zod": "3.25.51" }, "devDependencies": { - "@chromatic-com/storybook": "3.2.4", + "@chromatic-com/storybook": "3.2.6", "@playwright/test": "1.52.0", "@storybook/addon-a11y": "8.6.14", "@storybook/addon-essentials": "8.6.14", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index cc21b05716..3afdb0ebc0 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -199,8 +199,8 @@ importers: version: 3.25.51 devDependencies: '@chromatic-com/storybook': - specifier: 3.2.4 - version: 3.2.4(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) + specifier: 3.2.6 + version: 3.2.6(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) '@playwright/test': specifier: 1.52.0 version: 1.52.0 @@ -952,8 +952,8 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@chromatic-com/storybook@3.2.4': - resolution: {integrity: sha512-5/bOOYxfwZ2BktXeqcCpOVAoR6UCoeART5t9FVy22hoo8F291zOuX4y3SDgm10B1GVU/ZTtJWPT2X9wZFlxYLg==} + '@chromatic-com/storybook@3.2.6': + resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -8536,7 +8536,7 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@3.2.4(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))': + '@chromatic-com/storybook@3.2.6(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))': dependencies: chromatic: 11.25.2 filesize: 10.1.6 From 210d457ecd25021c12d77db316b4bd1358f41e00 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Tue, 10 Jun 2025 19:41:31 +0700 Subject: [PATCH 082/497] feat(executor): Improve execution ordering to allow depth-first execution (#10142) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allowing depth-first execution will unlock faster processing latency and a better sense of progress. image ### Changes 🏗️ * Prioritize adding a new execution over processing execution output * Make sure to enqueue each node once when processing output instead of draining a single node and move on. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run company follower count finder agent. --------- Co-authored-by: Swifty --- .../backend/backend/data/execution.py | 4 - .../backend/backend/executor/manager.py | 89 +++++++++++-------- .../backend/backend/executor/utils.py | 11 ++- 3 files changed, 61 insertions(+), 43 deletions(-) diff --git a/autogpt_platform/backend/backend/data/execution.py b/autogpt_platform/backend/backend/data/execution.py index 7fc534d30d..757c788f2f 100644 --- a/autogpt_platform/backend/backend/data/execution.py +++ b/autogpt_platform/backend/backend/data/execution.py @@ -628,15 +628,11 @@ async def update_node_execution_stats( data = stats.model_dump() if isinstance(data["error"], Exception): data["error"] = str(data["error"]) - execution_status = ExecutionStatus.FAILED - else: - execution_status = ExecutionStatus.COMPLETED res = await AgentNodeExecution.prisma().update( where={"id": node_exec_id}, data={ "stats": Json(data), - "executionStatus": execution_status, "endedTime": datetime.now(tz=timezone.utc), }, include=EXECUTION_RESULT_INCLUDE, diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index 58ad8933fd..dbe2ab1ead 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -706,6 +706,42 @@ class Executor: ) running_executions[output.node.id].add_output(output) + def drain_done_task(node_exec_id: str, result: object): + if not isinstance(result, NodeExecutionStats): + log_metadata.error(f"Unexpected result #{node_exec_id}: {type(result)}") + return + + nonlocal execution_stats + execution_stats.node_count += 1 + execution_stats.nodes_cputime += result.cputime + execution_stats.nodes_walltime += result.walltime + if (err := result.error) and isinstance(err, Exception): + execution_stats.node_error_count += 1 + cls.db_client.update_node_execution_status( + node_exec_id=node_exec_id, + status=ExecutionStatus.FAILED, + ) + else: + cls.db_client.update_node_execution_status( + node_exec_id=node_exec_id, + status=ExecutionStatus.COMPLETED, + ) + + if _graph_exec := cls.db_client.update_graph_execution_stats( + graph_exec_id=graph_exec.graph_exec_id, + status=execution_status, + stats=execution_stats, + ): + send_execution_update(_graph_exec) + else: + logger.error( + "Callback for " + f"finished node execution #{node_exec_id} " + "could not update execution stats " + f"for graph execution #{graph_exec.graph_exec_id}; " + f"triggered while graph exec status = {execution_status}" + ) + def cancel_handler(): nonlocal execution_status @@ -739,38 +775,12 @@ class Executor: execution_queue.add(node_exec.to_node_execution_entry()) running_executions: dict[str, NodeExecutionProgress] = defaultdict( - lambda: NodeExecutionProgress(drain_output_queue) + lambda: NodeExecutionProgress( + drain_output_queue=drain_output_queue, + drain_done_task=drain_done_task, + ) ) - def make_exec_callback(exec_data: NodeExecutionEntry): - def callback(result: object): - if not isinstance(result, NodeExecutionStats): - return - - nonlocal execution_stats - execution_stats.node_count += 1 - execution_stats.nodes_cputime += result.cputime - execution_stats.nodes_walltime += result.walltime - if (err := result.error) and isinstance(err, Exception): - execution_stats.node_error_count += 1 - - if _graph_exec := cls.db_client.update_graph_execution_stats( - graph_exec_id=exec_data.graph_exec_id, - status=execution_status, - stats=execution_stats, - ): - send_execution_update(_graph_exec) - else: - logger.error( - "Callback for " - f"finished node execution #{exec_data.node_exec_id} " - "could not update execution stats " - f"for graph execution #{exec_data.graph_exec_id}; " - f"triggered while graph exec status = {execution_status}" - ) - - return callback - while not execution_queue.empty(): if cancel.is_set(): execution_status = ExecutionStatus.TERMINATED @@ -829,7 +839,6 @@ class Executor: cls.executor.apply_async( cls.on_node_execution, (output_queue, queued_node_exec, node_creds_map), - callback=make_exec_callback(queued_node_exec), ), ) @@ -845,9 +854,6 @@ class Executor: execution_status = ExecutionStatus.TERMINATED return execution_stats, execution_status, error - if not execution_queue.empty(): - break # yield to parent loop to execute new queue items - log_metadata.debug(f"Waiting on execution of node {node_id}") while output := execution.pop_output(): cls._process_node_output( @@ -858,11 +864,20 @@ class Executor: node_creds_map=node_creds_map, execution_queue=execution_queue, ) + if not execution_queue.empty(): + break # Prioritize executing next nodes than enqueuing outputs - if execution.is_done(1): + if execution.is_done(): running_executions.pop(node_id) - else: - time.sleep(0.1) + + if not execution_queue.empty(): + continue # Make sure each not is checked once + + if execution_queue.empty() and running_executions: + log_metadata.debug( + "No more nodes to execute, waiting for outputs..." + ) + time.sleep(0.1) log_metadata.info(f"Finished graph execution {graph_exec.graph_exec_id}") execution_status = ExecutionStatus.COMPLETED diff --git a/autogpt_platform/backend/backend/executor/utils.py b/autogpt_platform/backend/backend/executor/utils.py index af6340a4ac..b5d8a348e1 100644 --- a/autogpt_platform/backend/backend/executor/utils.py +++ b/autogpt_platform/backend/backend/executor/utils.py @@ -818,10 +818,15 @@ class ExecutionOutputEntry(BaseModel): class NodeExecutionProgress: - def __init__(self, drain_output_queue: Callable[[], None]): + def __init__( + self, + drain_output_queue: Callable[[], None], + drain_done_task: Callable[[str, object], None], + ): self.output: dict[str, list[ExecutionOutputEntry]] = defaultdict(list) self.tasks: dict[str, AsyncResult] = {} self.drain_output_queue = drain_output_queue + self.drain_done_task = drain_done_task def add_task(self, node_exec_id: str, task: AsyncResult): self.tasks[node_exec_id] = task @@ -868,7 +873,9 @@ class NodeExecutionProgress: if self.output[exec_id]: return False - self.tasks.pop(exec_id) + if task := self.tasks.pop(exec_id): + self.drain_done_task(exec_id, task.get()) + return True def _next_exec(self) -> str | None: From 5385520c53608b5b3f251a3600d20643547dd0df Mon Sep 17 00:00:00 2001 From: Ubbe Date: Tue, 10 Jun 2025 18:57:13 +0400 Subject: [PATCH 083/497] feat(frontend): document typography tokens + Text component (#10132) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ Screenshot 2025-06-09 at 17 01 59 Screenshot 2025-06-09 at 17 02 06 This PR introduces a comprehensive Typography System for our design system with improved documentation and developer experience [matching what we have on Figma](https://www.figma.com/design/nO9NFynNuicLtkiwvOxrbz/AutoGPT-Design-System?m=dev). #### **Typography System** - Created `` component - Enforce its usage to ensure consistent typographic styles across the app ```tsx Heading 1 Heading 2 hello world smol text ``` - Created `Typography.stories.tsx` on Storybook - Complete typography overview with font showcases and usage guidelines #### **Storybook Improvements** - **Updated TypeScript docgen** configuration for better prop extraction - **Cleaned up story rendering** to prevent MDX styling pollution - **Split large story files** into focused, maintainable components ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: **Test Plan:** - [x] Typography stories render correctly in Storybook - [x] All Text component variants display properly - [x] Interactive playground controls function correctly - [x] No TypeScript or linting errors --------- Co-authored-by: Swifty --- autogpt_platform/frontend/.storybook/main.ts | 3 +- .../frontend/.storybook/preview.tsx | 30 ++- autogpt_platform/frontend/package.json | 1 + autogpt_platform/frontend/pnpm-lock.yaml | 3 + .../src/components/_new/Text/Text.stories.tsx | 169 +++++++++++++++++ .../src/components/_new/Text/Text.tsx | 37 ++++ .../src/components/_new/Text/helpers.ts | 53 ++++++ .../src/stories/Typography.stories.tsx | 176 ++++++++++++++++++ .../src/stories/helpers/StoryCode.tsx | 11 ++ 9 files changed, 475 insertions(+), 8 deletions(-) create mode 100644 autogpt_platform/frontend/src/components/_new/Text/Text.stories.tsx create mode 100644 autogpt_platform/frontend/src/components/_new/Text/Text.tsx create mode 100644 autogpt_platform/frontend/src/components/_new/Text/helpers.ts create mode 100644 autogpt_platform/frontend/src/stories/Typography.stories.tsx create mode 100644 autogpt_platform/frontend/src/stories/helpers/StoryCode.tsx diff --git a/autogpt_platform/frontend/.storybook/main.ts b/autogpt_platform/frontend/.storybook/main.ts index e75f6dbeef..fce703bc98 100644 --- a/autogpt_platform/frontend/.storybook/main.ts +++ b/autogpt_platform/frontend/.storybook/main.ts @@ -8,13 +8,14 @@ const config: StorybookConfig = { "@storybook/addon-links", "@storybook/addon-essentials", "@storybook/addon-interactions", + "@storybook/addon-docs", ], features: { experimentalRSC: true, }, framework: { name: "@storybook/nextjs", - options: {}, + options: { builder: { useSWC: true } }, }, staticDirs: ["../public"], }; diff --git a/autogpt_platform/frontend/.storybook/preview.tsx b/autogpt_platform/frontend/.storybook/preview.tsx index bc1640e845..71114f8fea 100644 --- a/autogpt_platform/frontend/.storybook/preview.tsx +++ b/autogpt_platform/frontend/.storybook/preview.tsx @@ -3,6 +3,15 @@ import type { Preview } from "@storybook/react"; import { initialize, mswLoader } from "msw-storybook-addon"; import "../src/app/globals.css"; import "../src/components/styles/fonts.css"; +import { + Controls, + Description, + Primary, + Source, + Stories, + Subtitle, + Title, +} from "@storybook/blocks"; // Initialize MSW initialize(); @@ -12,19 +21,26 @@ const preview: Preview = { nextjs: { appDirectory: true, }, - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/i, - }, + docs: { + page: () => ( + <> + + <Subtitle /> + <Description /> + <Primary /> + <Source /> + <Stories /> + <Controls /> + </> + ), }, }, loaders: [mswLoader], decorators: [ (Story) => ( - <> + <div className="bg-background p-8"> <Story /> - </> + </div> ), ], }; diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index 33f3d17b8e..79015e1f00 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -92,6 +92,7 @@ "@chromatic-com/storybook": "3.2.6", "@playwright/test": "1.52.0", "@storybook/addon-a11y": "8.6.14", + "@storybook/addon-docs": "8.6.14", "@storybook/addon-essentials": "8.6.14", "@storybook/addon-interactions": "8.6.14", "@storybook/addon-links": "8.6.14", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 3afdb0ebc0..7927d2486e 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -207,6 +207,9 @@ importers: '@storybook/addon-a11y': specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) + '@storybook/addon-docs': + specifier: 8.6.14 + version: 8.6.14(@types/react@18.3.17)(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-essentials': specifier: 8.6.14 version: 8.6.14(@types/react@18.3.17)(storybook@8.6.14(prettier@3.5.3)) diff --git a/autogpt_platform/frontend/src/components/_new/Text/Text.stories.tsx b/autogpt_platform/frontend/src/components/_new/Text/Text.stories.tsx new file mode 100644 index 0000000000..5fffcccfb4 --- /dev/null +++ b/autogpt_platform/frontend/src/components/_new/Text/Text.stories.tsx @@ -0,0 +1,169 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import { Text, textVariants, type TextVariant } from "./Text"; +import { StoryCode } from "@/stories/helpers/StoryCode"; + +const meta: Meta<typeof Text> = { + title: "Design System/Atoms/Text", + component: Text, + tags: ["autodocs"], + parameters: { + layout: "fullscreen", + controls: { hideNoControlsWarning: true }, + docs: { + description: { + component: + "A flexible Text component that supports all typography variants from our design system. Uses Poppins for headings and Geist Sans for body text.", + }, + source: { + state: "open", + }, + }, + }, + argTypes: { + variant: { + control: { type: "select" }, + options: textVariants, + description: "Typography variant to apply", + }, + as: { + control: { type: "select" }, + options: ["h1", "h2", "h3", "h4", "h5", "h6", "p", "span", "div", "code"], + description: "HTML element to render as", + }, + children: { + control: "text", + description: "Text content", + }, + }, +}; + +export default meta; +type Story = StoryObj<typeof Text>; + +//============================================================================= +// All Variants Overview +//============================================================================= +export function AllVariants() { + return ( + <div className="space-y-8"> + {/* Headings */} + <div className="mb-19 mb-20 space-y-6"> + <h2 className="mb-4 border-b border-border pb-2 text-xl text-zinc-500"> + Headings + </h2> + <Text variant="h1">Heading 1</Text> + <Text variant="h2">Heading 2</Text> + <Text variant="h3">Heading 3</Text> + <Text variant="h4">Heading 4</Text> + <StoryCode + code={`<Text variant="h1">Heading 1</Text> +<Text variant="h2">Heading 2</Text> +<Text variant="h3">Heading 3</Text> +<Text variant="h4">Heading 4</Text>`} + /> + </div> + {/* Body Text */} + <h2 className="mb-4 border-b border-border pb-2 text-xl text-zinc-500"> + Body Text + </h2> + <Text variant="lead">Lead</Text> + <StoryCode code={`<Text variant="lead">Lead</Text>`} /> + <div className="flex flex-row gap-8"> + <Text variant="large">Large</Text> + <Text variant="large-medium">Large Medium</Text> + <Text variant="large-semibold">Large Semibold</Text> + </div> + <StoryCode + code={`<Text variant="large">Large</Text> +<Text variant="large-medium">Large Medium</Text> +<Text variant="large-semibold">Large Semibold</Text>`} + /> + <div className="flex flex-row gap-8"> + <Text variant="body">Body</Text> + <Text variant="body-medium">Body Medium</Text> + </div> + <StoryCode + code={`<Text variant="body">Body</Text> +<Text variant="body-medium">Body Medium</Text>`} + /> + <div className="flex flex-row gap-8"> + <Text variant="small">Small</Text> + <Text variant="small-medium">Small Medium</Text> + </div> + <StoryCode + code={`<Text variant="small">Small</Text> +<Text variant="small-medium">Small Medium</Text>`} + /> + <Text variant="subtle">Subtle</Text> + <StoryCode code={`<Text variant="subtle">Subtle</Text>`} /> + </div> + ); +} + +//============================================================================= +// Headings Only +//============================================================================= +export function Headings() { + return ( + <div className="space-y-8"> + <Text variant="h1">Heading 1</Text> + <Text variant="h2">Heading 2</Text> + <Text variant="h3">Heading 3</Text> + <Text variant="h4">Heading 4</Text> + </div> + ); +} + +//============================================================================= +// Body Text Only +//============================================================================= +export function BodyText() { + return ( + <div className="space-y-8"> + <Text variant="lead">Lead</Text> + <Text variant="large">Large</Text> + <Text variant="large-medium">Large Medium</Text> + <Text variant="large-semibold">Large Semibold</Text> + <Text variant="body">Body</Text> + <Text variant="body-medium">Body Medium</Text> + <Text variant="small">Small</Text> + <Text variant="small-medium">Small Medium</Text> + <Text variant="subtle">Subtle</Text> + </div> + ); +} + +//============================================================================= +// Interactive Playground +//============================================================================= +export const Playground: Story = { + args: { + variant: "body", + children: + "Edit this text and try different variants via the controls below", + }, + parameters: { + controls: { include: ["variant", "as", "children"] }, + }, + render: (args) => ( + <div className="space-y-8"> + <Text {...args} /> + </div> + ), +}; + +//============================================================================= +// Custom Element +//============================================================================= +export function CustomElement() { + return ( + <div className="space-y-8"> + <Text variant="h3" as="div"> + H3 size rendered as div + </Text> + <Text variant="body" as="h2"> + Body size rendered as h2 + </Text> + </div> + ); +} diff --git a/autogpt_platform/frontend/src/components/_new/Text/Text.tsx b/autogpt_platform/frontend/src/components/_new/Text/Text.tsx new file mode 100644 index 0000000000..d100fd7e44 --- /dev/null +++ b/autogpt_platform/frontend/src/components/_new/Text/Text.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import { As, Variant, variantElementMap, variants } from "./helpers"; + +type CustomProps = { + variant: Variant; + as?: As; + className?: string; +}; + +export type TextProps = React.PropsWithChildren< + CustomProps & React.ComponentPropsWithoutRef<"p"> +>; + +export function Text({ + children, + variant, + as: outerAs, + className = "", + ...rest +}: TextProps) { + const variantClasses = variants[variant] || variants.body; + const Element = outerAs || variantElementMap[variant]; + const combinedClassName = `${variantClasses} ${className}`.trim(); + + return React.createElement( + Element, + { + className: combinedClassName, + ...rest, + }, + children, + ); +} + +// Export variant names for use in stories +export const textVariants = Object.keys(variants) as Variant[]; +export type TextVariant = Variant; diff --git a/autogpt_platform/frontend/src/components/_new/Text/helpers.ts b/autogpt_platform/frontend/src/components/_new/Text/helpers.ts new file mode 100644 index 0000000000..050430bb5c --- /dev/null +++ b/autogpt_platform/frontend/src/components/_new/Text/helpers.ts @@ -0,0 +1,53 @@ +export type As = + | "h1" + | "h2" + | "h3" + | "h4" + | "h5" + | "h6" + | "p" + | "span" + | "div" + | "code" + | "label" + | "kbd"; + +export const variants = { + // Headings + h1: "font-poppins text-5xl font-semibold leading-[56px] text-zinc-800", + h2: "font-poppins text-4xl font-normal leading-[52px] text-zinc-800", + h3: "font-poppins text-3xl font-medium leading-10 text-zinc-800", + h4: "font-poppins text-base font-medium leading-normal text-zinc-800", + + // Body Text + lead: "font-sans text-xl font-normal leading-loose text-muted-zinc-800", + large: "font-sans text-base font-normal leading-normal text-zinc-800", + "large-medium": + "font-sans text-base font-medium leading-normal text-zinc-800", + "large-semibold": + "font-sans text-base font-semibold leading-normal text-zinc-800", + body: "font-sans text-sm font-normal leading-snug text-zinc-800", + "body-medium": "font-sans text-sm font-medium leading-snug text-zinc-800", + small: "font-sans text-xs font-normal leading-tight text-zinc-800", + "small-medium": "font-sans text-xs font-medium leading-tight text-zinc-800", + subtle: + "font-sans text-xs font-medium uppercase leading-tight tracking-wide text-zinc-800", +} as const; + +export type Variant = keyof typeof variants; + +export const variantElementMap: Record<Variant, As> = { + h1: "h1", + h2: "h2", + h3: "h3", + h4: "h4", + lead: "p", + large: "p", + "large-medium": "p", + "large-semibold": "p", + body: "p", + "body-medium": "p", + small: "p", + "small-medium": "p", + subtle: "p", +}; diff --git a/autogpt_platform/frontend/src/stories/Typography.stories.tsx b/autogpt_platform/frontend/src/stories/Typography.stories.tsx new file mode 100644 index 0000000000..cf31899f59 --- /dev/null +++ b/autogpt_platform/frontend/src/stories/Typography.stories.tsx @@ -0,0 +1,176 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import { Text } from "@/components/_new/Text/Text"; +import { StoryCode } from "@/stories/helpers/StoryCode"; + +const meta: Meta<typeof Text> = { + title: "Design System/ Tokens /Typography", + component: Text, + parameters: { + layout: "fullscreen", + }, +}; + +export default meta; + +export function AllVariants() { + return ( + <div className="space-y-12"> + {/* Typography System Documentation */} + <div className="space-y-8"> + <div> + <h1 className="mb-4 text-4xl font-bold text-zinc-800"> + Typography System + </h1> + <p className="text-lg leading-relaxed text-zinc-600"> + Our typography system uses two carefully selected fonts to create a + clear hierarchy and excellent readability across all interfaces. + </p> + </div> + + <div className="grid gap-8 md:grid-cols-2"> + <div> + <h2 className="mb-4 text-2xl font-semibold text-zinc-800"> + Font Families + </h2> + <div className="space-y-4"> + <div className="rounded-lg border border-gray-200 p-4"> + <h3 className="mb-2 font-semibold text-zinc-800"> + <a + href="https://fonts.google.com/specimen/Poppins" + target="_blank" + rel="noopener noreferrer" + className="text-blue-600 hover:underline" + > + Poppins + </a> + </h3> + <p className="mb-2 text-sm text-zinc-600"> + Used for all headings and display text + </p> + <div className="font-poppins text-2xl text-zinc-800"> + The quick brown fox + </div> + </div> + <div className="rounded-lg border border-gray-200 p-4"> + <h3 className="mb-2 font-semibold text-zinc-800"> + <a + href="https://github.com/vercel/geist-font" + target="_blank" + rel="noopener noreferrer" + className="text-blue-600 hover:underline" + > + Geist Sans + </a> + </h3> + <p className="mb-2 text-sm text-zinc-600"> + Used for all body text, labels, and UI elements + </p> + <div className="font-sans text-base text-zinc-800"> + The quick brown fox jumps over the lazy dog + </div> + </div> + </div> + </div> + + <div> + <h2 className="mb-4 text-2xl font-semibold text-zinc-800">FAQ</h2> + <div className="space-y-4"> + <div className="rounded-lg border border-gray-200 p-4"> + <h3 className="mb-2 font-semibold text-zinc-800"> + 🤔 Why can't I use <p> tags directly? + </h3> + <div className="space-y-3 text-zinc-600"> + <p className="text-sm"> + Always use the{" "} + <code className="rounded bg-gray-100 px-2 py-1 text-xs"> + <Text /> + </code>{" "} + component instead of plain HTML elements like{" "} + <code className="rounded bg-gray-100 px-2 py-1 text-xs"> + <h1> + </code> + ,{" "} + <code className="rounded bg-gray-100 px-2 py-1 text-xs"> + <p> + </code> + ,{" "} + <code className="rounded bg-gray-100 px-2 py-1 text-xs"> + <span> + </code> + , etc... Reasons: + </p> + <ul className="ml-4 list-inside list-disc space-y-1 text-sm"> + <li>Ensures consistent typography across the entire app</li> + <li> + Makes future design updates easier (change once, update + everywhere) + </li> + <li>Provides TypeScript safety for typography variants</li> + <li> + Automatically maps to correct HTML elements for + accessibility + </li> + <li>Prevents styling inconsistencies and design drift</li> + </ul> + </div> + </div> + </div> + </div> + </div> + </div> + + {/* Typography Examples */} + <div className="space-y-8"> + <div className="mb-19 mb-20 space-y-6"> + <h2 className="mb-4 border-b border-border pb-2 text-xl text-zinc-500"> + Headings (Poppins) + </h2> + <Text variant="h1">Heading 1</Text> + <Text variant="h2">Heading 2</Text> + <Text variant="h3">Heading 3</Text> + <Text variant="h4">Heading 4</Text> + <StoryCode + code={`<Text variant="h1">Heading 1</Text> +<Text variant="h2">Heading 2</Text> +<Text variant="h3">Heading 3</Text> +<Text variant="h4">Heading 4</Text>`} + /> + </div> + + <h2 className="mb-4 border-b border-border pb-2 text-xl text-zinc-500"> + Body Text (Geist Sans) + </h2> + <Text variant="lead">Lead</Text> + <StoryCode code="<Text variant='lead'>Lead</Text>" /> + <div className="flex flex-row gap-8"> + <Text variant="large">Large</Text> + <Text variant="large-medium">Large Medium</Text> + <Text variant="large-semibold">Large Semibold</Text> + </div> + <StoryCode + code={`<Text variant="large">Large</Text> +<Text variant="large-medium">Large Medium</Text> +<Text variant="large-semibold">Large Semibold</Text>`} + /> + <div className="flex flex-row gap-8"> + <Text variant="body">Body</Text> + <Text variant="body-medium">Body Medium</Text> + </div> + <StoryCode + code={`<Text variant="body">Body</Text> +<Text variant="body-medium">Body Medium</Text>`} + /> + <div className="flex flex-row gap-8"> + <Text variant="small">Small</Text> + <Text variant="small-medium">Small Medium</Text> + </div> + <StoryCode + code={`<Text variant="small">Small</Text> +<Text variant="small-medium">Small Medium</Text>`} + /> + <Text variant="subtle">Subtle</Text> + <StoryCode code={`<Text variant="subtle">Subtle</Text>`} /> + </div> + </div> + ); +} diff --git a/autogpt_platform/frontend/src/stories/helpers/StoryCode.tsx b/autogpt_platform/frontend/src/stories/helpers/StoryCode.tsx new file mode 100644 index 0000000000..a05a2e323c --- /dev/null +++ b/autogpt_platform/frontend/src/stories/helpers/StoryCode.tsx @@ -0,0 +1,11 @@ +type Props = { + code: string; +}; + +export function StoryCode(props: Props) { + return ( + <pre className="block rounded border bg-zinc-100 px-3 py-2 font-mono text-xs text-indigo-800 shadow-sm"> + {props.code} + </pre> + ); +} From 450c1ee668a90fabda9fe2cdfa312b143cb8e504 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 19:51:19 +0400 Subject: [PATCH 084/497] chore(frontend/deps): Bump @hookform/resolvers from 3.10.0 to 5.1.1 in /autogpt_platform/frontend (#10134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@hookform/resolvers](https://github.com/react-hook-form/resolvers) from 3.10.0 to 5.1.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/react-hook-form/resolvers/releases"><code>@​hookform/resolvers</code>'s releases</a>.</em></p> <blockquote> <h2>v5.1.1</h2> <h2><a href="https://github.com/react-hook-form/resolvers/compare/v5.1.0...v5.1.1">5.1.1</a> (2025-06-09)</h2> <h3>Bug Fixes</h3> <ul> <li>zod peer dep issue (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/780">#780</a>) (<a href="https://github.com/react-hook-form/resolvers/commit/79cd8b284da29a5a42cd5fdafa2e767747fcfcf7">79cd8b2</a>)</li> </ul> <h2>v5.1.0</h2> <h1><a href="https://github.com/react-hook-form/resolvers/compare/v5.0.1...v5.1.0">5.1.0</a> (2025-06-07)</h1> <h3>Features</h3> <ul> <li>support Zod 4, Zod v4 mini, and retains compatibility with Zod v3. (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/777">#777</a>) (<a href="https://github.com/react-hook-form/resolvers/commit/8d083bd5f5c3242afa1d59e10b1f72988e7b7e82">8d083bd</a>)</li> </ul> <h2>v5.0.1</h2> <h2><a href="https://github.com/react-hook-form/resolvers/compare/v5.0.0...v5.0.1">5.0.1</a> (2025-04-02)</h2> <h3>Bug Fixes</h3> <ul> <li>relax version constraint for react-hook-form 7.55.0 → ^7.55.0 (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/758">#758</a>) (<a href="https://github.com/react-hook-form/resolvers/commit/6e8839343dcfea0fe9b874772a01f3bc551cbb5c">6e88393</a>)</li> </ul> <h2>v5.0.0</h2> <h1><a href="https://github.com/react-hook-form/resolvers/compare/v4.1.3...v5.0.0">5.0.0</a> (2025-04-01)</h1> <h3>Features</h3> <ul> <li>infer input/output types from schema (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/753">#753</a>) (<a href="https://github.com/react-hook-form/resolvers/commit/6124c59a99e9b05604196f8f0c310879033ed58d">6124c59</a>)</li> </ul> <h3>BREAKING CHANGES</h3> <ul> <li>Requires react-hook-form@7.55.0 or higher</li> </ul> <p><strong>Before</strong> Prior to V5, some projects used manual types like</p> <pre lang="tsx"><code>useForm<FormValues>(); </code></pre> <p><strong>After</strong> With V5, the correct approach is:</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react-hook-form/resolvers/commit/79cd8b284da29a5a42cd5fdafa2e767747fcfcf7"><code>79cd8b2</code></a> fix: zod peer dep issue (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/780">#780</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/8d083bd5f5c3242afa1d59e10b1f72988e7b7e82"><code>8d083bd</code></a> feat: support Zod 4 (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/777">#777</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/3bc2ad50a63ef8c114336403f182a32e2df7552d"><code>3bc2ad5</code></a> docs: fix table formatting (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/774">#774</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/6e8839343dcfea0fe9b874772a01f3bc551cbb5c"><code>6e88393</code></a> fix: relax version constraint for react-hook-form 7.55.0 → ^7.55.0 (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/758">#758</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/a54d05a9a27545c0be563bd770596a9c0e24a172"><code>a54d05a</code></a> Merge branch 'dev'</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/6124c59a99e9b05604196f8f0c310879033ed58d"><code>6124c59</code></a> feat: infer input/output types from schema (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/753">#753</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/50dd4add92d4f9837efa1f147870925672f01c15"><code>50dd4ad</code></a> fix: escape square brackets in field name regex pattern (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/752">#752</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/ded1746ee88778232cd162cff91f3710e90195de"><code>ded1746</code></a> fix(standard-schema): move <code>@​standard-schema/utils</code> to dependencies (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/748">#748</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/8ffada0c7a2026ad4d311ca167f15d5b86d63349"><code>8ffada0</code></a> fix(standard-schema): Propertly handle object path segments (<a href="https://redirect.github.com/react-hook-form/resolvers/issues/746">#746</a>)</li> <li><a href="https://github.com/react-hook-form/resolvers/commit/8ea953c84da3ae6a56858b4980fff6df700f8914"><code>8ea953c</code></a> update README.md</li> <li>Additional commits viewable in <a href="https://github.com/react-hook-form/resolvers/compare/v3.10.0...v5.1.1">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@hookform/resolvers&package-manager=npm_and_yarn&previous-version=3.10.0&new-version=5.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- autogpt_platform/frontend/package.json | 2 +- autogpt_platform/frontend/pnpm-lock.yaml | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index 79015e1f00..7198a4fc35 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -25,7 +25,7 @@ ], "dependencies": { "@faker-js/faker": "9.8.0", - "@hookform/resolvers": "3.10.0", + "@hookform/resolvers": "5.1.1", "@next/third-parties": "15.3.3", "@radix-ui/react-alert-dialog": "1.1.14", "@radix-ui/react-avatar": "1.1.10", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 7927d2486e..e094249cf8 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: 9.8.0 version: 9.8.0 '@hookform/resolvers': - specifier: 3.10.0 - version: 3.10.0(react-hook-form@7.57.0(react@18.3.1)) + specifier: 5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@18.3.1)) '@next/third-parties': specifier: 15.3.3 version: 15.3.3(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) @@ -1175,10 +1175,10 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@hookform/resolvers@3.10.0': - resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==} + '@hookform/resolvers@5.1.1': + resolution: {integrity: sha512-J/NVING3LMAEvexJkyTLjruSm7aOFx7QX21pzkiJfMoNG0wl5aFEjLTl7ay7IQb9EWY6AkrBy7tHL2Alijpdcg==} peerDependencies: - react-hook-form: ^7.0.0 + react-hook-form: ^7.55.0 '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} @@ -2642,6 +2642,9 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + '@storybook/addon-a11y@8.6.14': resolution: {integrity: sha512-fozv6enO9IgpWq2U8qqS8MZ21Nt+MVHiRQe3CjnCpBOejTyo/ATm690PeYYRVHVG6M/15TVePb0h3ngKQbrrzQ==} peerDependencies: @@ -8701,8 +8704,9 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@hookform/resolvers@3.10.0(react-hook-form@7.57.0(react@18.3.1))': + '@hookform/resolvers@5.1.1(react-hook-form@7.57.0(react@18.3.1))': dependencies: + '@standard-schema/utils': 0.3.0 react-hook-form: 7.57.0(react@18.3.1) '@humanwhocodes/config-array@0.13.0': @@ -10280,6 +10284,8 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@standard-schema/utils@0.3.0': {} + '@storybook/addon-a11y@8.6.14(storybook@8.6.14(prettier@3.5.3))': dependencies: '@storybook/addon-highlight': 8.6.14(storybook@8.6.14(prettier@3.5.3)) From de83c35c5f0f1d333764d7b238c701e5ed4bd99b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 15:52:49 +0000 Subject: [PATCH 085/497] chore(frontend/deps-dev): Bump the development-dependencies group in /autogpt_platform/frontend with 5 updates (#10135) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the development-dependencies group in /autogpt_platform/frontend with 5 updates: | Package | From | To | | --- | --- | --- | | [@storybook/test-runner](https://github.com/storybookjs/test-runner) | `0.22.0` | `0.22.1` | | [@types/negotiator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/negotiator) | `0.6.3` | `0.6.4` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.15.29` | `22.15.30` | | [msw](https://github.com/mswjs/msw) | `2.9.0` | `2.10.2` | | [msw-storybook-addon](https://github.com/mswjs/msw-storybook-addon/tree/HEAD/packages/msw-addon) | `2.0.4` | `2.0.5` | Updates `@storybook/test-runner` from 0.22.0 to 0.22.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/storybookjs/test-runner/releases"><code>@​storybook/test-runner</code>'s releases</a>.</em></p> <blockquote> <h2>v0.22.1</h2> <h4>🐛 Bug Fix</h4> <ul> <li>Patch: Add telemetry to test run <a href="https://redirect.github.com/storybookjs/test-runner/pull/565">#565</a> (<a href="https://github.com/yannbf"><code>@​yannbf</code></a>)</li> </ul> <h4>Authors: 1</h4> <ul> <li>Yann Braga (<a href="https://github.com/yannbf"><code>@​yannbf</code></a>)</li> </ul> <h2>v0.22.1-next.0</h2> <h4>🐛 Bug Fix</h4> <ul> <li>Replace <code>@​storybook/csf</code> with storybook's internal csf implementation <a href="https://redirect.github.com/storybookjs/test-runner/pull/556">#556</a> (<a href="https://github.com/yannbf"><code>@​yannbf</code></a>)</li> </ul> <h4>Authors: 1</h4> <ul> <li>Yann Braga (<a href="https://github.com/yannbf"><code>@​yannbf</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/storybookjs/test-runner/blob/v0.22.1/CHANGELOG.md"><code>@​storybook/test-runner</code>'s changelog</a>.</em></p> <blockquote> <h1>v0.22.1 (Sat Jun 07 2025)</h1> <h4>🐛 Bug Fix</h4> <ul> <li>Patch: Add telemetry to test run <a href="https://redirect.github.com/storybookjs/test-runner/pull/565">#565</a> (<a href="https://github.com/yannbf"><code>@​yannbf</code></a>)</li> </ul> <h4>Authors: 1</h4> <ul> <li>Yann Braga (<a href="https://github.com/yannbf"><code>@​yannbf</code></a>)</li> </ul> <hr /> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/storybookjs/test-runner/commit/ed371961328d75a5479f2225c6690e9daa2c6221"><code>ed37196</code></a> Bump version to: 0.22.1 [skip ci]</li> <li><a href="https://github.com/storybookjs/test-runner/commit/df34390ef7d620770427f93f32b71a342b8c6c6b"><code>df34390</code></a> Update CHANGELOG.md [skip ci]</li> <li><a href="https://github.com/storybookjs/test-runner/commit/0b60c084fe16c66fc13e4ff899f3c1b6026a8d60"><code>0b60c08</code></a> Merge pull request <a href="https://redirect.github.com/storybookjs/test-runner/issues/565">#565</a> from storybookjs/telemetry-main</li> <li><a href="https://github.com/storybookjs/test-runner/commit/4baeaf3d3d9ce97a3b6cf437e808821181733ed2"><code>4baeaf3</code></a> Add telemetry to test run</li> <li>See full diff in <a href="https://github.com/storybookjs/test-runner/compare/v0.22.0...v0.22.1">compare view</a></li> </ul> </details> <br /> Updates `@types/negotiator` from 0.6.3 to 0.6.4 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/negotiator">compare view</a></li> </ul> </details> <br /> Updates `@types/node` from 22.15.29 to 22.15.30 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li> </ul> </details> <br /> Updates `msw` from 2.9.0 to 2.10.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mswjs/msw/releases">msw's releases</a>.</em></p> <blockquote> <h2>v2.10.2 (2025-06-09)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>TypeScript:</strong> support <code>Response.error()</code> and <code>HttpResponse.error()</code> as mocked responses (<a href="https://redirect.github.com/mswjs/msw/issues/2132">#2132</a>) (72cc8ddac8f030f747b674148b03e5a025e412d2) <a href="https://github.com/jacquesg"><code>@​jacquesg</code></a> <a href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li> </ul> <h2>v2.10.1 (2025-06-07)</h2> <h3>Bug Fixes</h3> <ul> <li>update <code>@mswjs/interceptors</code> to support WebSocket server protocol (<a href="https://redirect.github.com/mswjs/msw/issues/2528">#2528</a>) (6704fa042a3eaa71b68eb7b9028a7464b2b30cef) <a href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li> </ul> <h2>v2.10.0 (2025-06-07)</h2> <h3>Features</h3> <ul> <li><strong>WebSocketHandler:</strong> add <code>run</code> method (<a href="https://redirect.github.com/mswjs/msw/issues/2527">#2527</a>) (94fc78ea50bd8c3334945d3047650c8b82c2f754) <a href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mswjs/msw/commit/a30cdf591e62d7b61206cf5c9b44ec42ea113df4"><code>a30cdf5</code></a> chore(release): v2.10.2</li> <li><a href="https://github.com/mswjs/msw/commit/72cc8ddac8f030f747b674148b03e5a025e412d2"><code>72cc8dd</code></a> fix(TypeScript): support <code>Response.error()</code> and <code>HttpResponse.error()</code> as moc...</li> <li><a href="https://github.com/mswjs/msw/commit/d38097f162faa37fcb893d82e9160bb2e6bb19fd"><code>d38097f</code></a> chore(release): v2.10.1</li> <li><a href="https://github.com/mswjs/msw/commit/6704fa042a3eaa71b68eb7b9028a7464b2b30cef"><code>6704fa0</code></a> fix: update <code>@mswjs/interceptors</code> to support WebSocket server protocol (<a href="https://redirect.github.com/mswjs/msw/issues/2528">#2528</a>)</li> <li><a href="https://github.com/mswjs/msw/commit/dce459e32c29dca80458cae46a97f402ea7b1dc8"><code>dce459e</code></a> chore(release): v2.10.0</li> <li><a href="https://github.com/mswjs/msw/commit/94fc78ea50bd8c3334945d3047650c8b82c2f754"><code>94fc78e</code></a> feat(WebSocketHandler): add <code>run</code> method (<a href="https://redirect.github.com/mswjs/msw/issues/2527">#2527</a>)</li> <li><a href="https://github.com/mswjs/msw/commit/ca9d87768e821df5111ae98653b0fd09fc87dfa4"><code>ca9d877</code></a> chore: run preview release on all pull requests (<a href="https://redirect.github.com/mswjs/msw/issues/2526">#2526</a>)</li> <li>See full diff in <a href="https://github.com/mswjs/msw/compare/v2.9.0...v2.10.2">compare view</a></li> </ul> </details> <br /> Updates `msw-storybook-addon` from 2.0.4 to 2.0.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mswjs/msw-storybook-addon/releases">msw-storybook-addon's releases</a>.</em></p> <blockquote> <h2>v2.0.5</h2> <h4>🐛 Bug Fix</h4> <ul> <li>fix: updates types to increase compatibility with storybook types <a href="https://redirect.github.com/mswjs/msw-storybook-addon/pull/169">#169</a> (<a href="https://github.com/rhuanbarreto"><code>@​rhuanbarreto</code></a>)</li> </ul> <h4>Authors: 1</h4> <ul> <li>Rhuan Barreto (<a href="https://github.com/rhuanbarreto"><code>@​rhuanbarreto</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mswjs/msw-storybook-addon/blob/main/packages/msw-addon/CHANGELOG.md">msw-storybook-addon's changelog</a>.</em></p> <blockquote> <h1>v2.0.5 (Thu Jun 05 2025)</h1> <h4>🐛 Bug Fix</h4> <ul> <li>fix: updates types to increase compatibility with storybook types <a href="https://redirect.github.com/mswjs/msw-storybook-addon/pull/169">#169</a> (<a href="https://github.com/rhuanbarreto"><code>@​rhuanbarreto</code></a>)</li> </ul> <h4>Authors: 1</h4> <ul> <li>Rhuan Barreto (<a href="https://github.com/rhuanbarreto"><code>@​rhuanbarreto</code></a>)</li> </ul> <hr /> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mswjs/msw-storybook-addon/commit/ec35e9371f8a56a27220838fba798b9001ac7fad"><code>ec35e93</code></a> Update CHANGELOG.md [skip ci]</li> <li><a href="https://github.com/mswjs/msw-storybook-addon/commit/d67ffc6b26a51a81692b6352f1bf07d9f1a037c8"><code>d67ffc6</code></a> fix: updates types to increase compatibility with storybook types (<a href="https://github.com/mswjs/msw-storybook-addon/tree/HEAD/packages/msw-addon/issues/169">#169</a>)</li> <li>See full diff in <a href="https://github.com/mswjs/msw-storybook-addon/commits/v2.0.5/packages/msw-addon">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: Lluis Agusti <hi@llu.lu> Co-authored-by: Ubbe <hi@ubbe.dev> --- autogpt_platform/frontend/package.json | 10 +- autogpt_platform/frontend/pnpm-lock.yaml | 193 ++++++++++++----------- 2 files changed, 102 insertions(+), 101 deletions(-) diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index 7198a4fc35..a70fa6808a 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -101,11 +101,11 @@ "@storybook/nextjs": "8.6.14", "@storybook/react": "8.6.14", "@storybook/test": "8.6.14", - "@storybook/test-runner": "0.22.0", + "@storybook/test-runner": "0.22.1", "@types/canvas-confetti": "1.9.0", "@types/lodash": "4.17.17", - "@types/negotiator": "0.6.3", - "@types/node": "22.15.29", + "@types/negotiator": "0.6.4", + "@types/node": "22.15.30", "@types/react": "18.3.17", "@types/react-dom": "18.3.5", "@types/react-modal": "3.16.3", @@ -116,8 +116,8 @@ "eslint-config-next": "15.3.3", "eslint-plugin-storybook": "0.12.0", "import-in-the-middle": "1.14.0", - "msw": "2.9.0", - "msw-storybook-addon": "2.0.4", + "msw": "2.10.2", + "msw-storybook-addon": "2.0.5", "postcss": "8.5.4", "prettier": "3.5.3", "prettier-plugin-tailwindcss": "0.6.12", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index e094249cf8..00b1a218e6 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -235,8 +235,8 @@ importers: specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/test-runner': - specifier: 0.22.0 - version: 0.22.0(@types/node@22.15.29)(storybook@8.6.14(prettier@3.5.3)) + specifier: 0.22.1 + version: 0.22.1(@types/node@22.15.30)(storybook@8.6.14(prettier@3.5.3)) '@types/canvas-confetti': specifier: 1.9.0 version: 1.9.0 @@ -244,11 +244,11 @@ importers: specifier: 4.17.17 version: 4.17.17 '@types/negotiator': - specifier: 0.6.3 - version: 0.6.3 + specifier: 0.6.4 + version: 0.6.4 '@types/node': - specifier: 22.15.29 - version: 22.15.29 + specifier: 22.15.30 + version: 22.15.30 '@types/react': specifier: 18.3.17 version: 18.3.17 @@ -280,11 +280,11 @@ importers: specifier: 1.14.0 version: 1.14.0 msw: - specifier: 2.9.0 - version: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) + specifier: 2.10.2 + version: 2.10.2(@types/node@22.15.30)(typescript@5.8.3) msw-storybook-addon: - specifier: 2.0.4 - version: 2.0.4(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3)) + specifier: 2.0.5 + version: 2.0.5(msw@2.10.2(@types/node@22.15.30)(typescript@5.8.3)) postcss: specifier: 8.5.4 version: 8.5.4 @@ -1554,8 +1554,8 @@ packages: '@types/react': '>=16' react: '>=16' - '@mswjs/interceptors@0.38.7': - resolution: {integrity: sha512-Jkb27iSn7JPdkqlTqKfhncFfnEZsIJVYxsFbUSWEkxdIPdsyngrhoDBk0/BGD2FQcRH99vlRrkHpNTyKqI+0/w==} + '@mswjs/interceptors@0.39.2': + resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.10': @@ -2847,8 +2847,8 @@ packages: typescript: optional: true - '@storybook/test-runner@0.22.0': - resolution: {integrity: sha512-fKY6MTE/bcvMaulKXy+z0fPmRXJx1REkYMOMcGn8zn6uffyBigGgaVf/sZ+AZfibwvjzg/StWhJ9HvAM8pc14g==} + '@storybook/test-runner@0.22.1': + resolution: {integrity: sha512-F5omZH0Pj2Y0UXSqShl1RuPrnhLBbb/yPFnZbVWDSPWZHDSX+dfBuu1T2zVfJplNKd04RzJuMbWHPFtZ0mimSw==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2972,8 +2972,8 @@ packages: peerDependencies: '@swc/core': '*' - '@swc/types@0.1.21': - resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} + '@swc/types@0.1.22': + resolution: {integrity: sha512-D13mY/ZA4PPEFSy6acki9eBT/3WgjMoRqNcdpIvjaYLQ44Xk5BdaL7UkDxAh6Z9UOe7tCCp67BVmZCojYp9owg==} '@tanstack/react-table@8.21.3': resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} @@ -3132,11 +3132,11 @@ packages: '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/negotiator@0.6.3': - resolution: {integrity: sha512-JkXTOdKs5MF086b/pt8C3+yVp3iDUwG635L7oCH6HvJvvr6lSUU5oe/gLXnPEfYRROHjJIPgCV6cuAg8gGkntQ==} + '@types/negotiator@0.6.4': + resolution: {integrity: sha512-elf6BsTq+AkyNsb2h5cGNst2Mc7dPliVoAPm1fXglC/BM3f2pFA40BaSSv3E5lyHteEawVKLP+8TwiY1DMNb3A==} - '@types/node@22.15.29': - resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} + '@types/node@22.15.30': + resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -3176,8 +3176,8 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/statuses@2.0.5': - resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + '@types/statuses@2.0.6': + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} @@ -4807,8 +4807,8 @@ packages: typescript: '>3.6.0' webpack: ^5.11.0 - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.3: + resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} engines: {node: '>= 6'} forwarded-parse@2.1.2: @@ -5907,13 +5907,13 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw-storybook-addon@2.0.4: - resolution: {integrity: sha512-rstO8+r01sRMg6PPP7OxM8LG5/6r4+wmp2uapHeHvm9TQQRHvpPXOU/Y9/Somysz8Oi4Ea1aummXH3JlnP2LIA==} + msw-storybook-addon@2.0.5: + resolution: {integrity: sha512-uum2gtprDBoUb8GV/rPMwPytHmB8+AUr25BQUY0MpjYey5/ujaew2Edt+4oHiXpLTd0ThyMqmEvGy/sRpDV4lg==} peerDependencies: msw: ^2.0.0 - msw@2.9.0: - resolution: {integrity: sha512-fNyrJ11YNbe2zl64EwtxM5OFkInFPAw5vipOljMsf9lY2ep9B2BslqQrS8EC9pB9961K61FqTUi0wsdqk6hwow==} + msw@2.10.2: + resolution: {integrity: sha512-RCKM6IZseZQCWcSWlutdf590M8nVfRHG1ImwzOtwz8IYxgT4zhUO0rfTcTvDGiaFE0Rhcc+h43lcF3Jc9gFtwQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7001,8 +7001,8 @@ packages: resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} engines: {node: '>=6'} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} stop-iteration-iterator@1.1.0: @@ -8535,7 +8535,7 @@ snapshots: '@bundled-es-modules/statuses@1.0.1': dependencies: - statuses: 2.0.1 + statuses: 2.0.2 '@bundled-es-modules/tough-cookie@0.1.6': dependencies: @@ -8877,17 +8877,17 @@ snapshots: '@img/sharp-win32-x64@0.34.2': optional: true - '@inquirer/confirm@5.1.12(@types/node@22.15.29)': + '@inquirer/confirm@5.1.12(@types/node@22.15.30)': dependencies: - '@inquirer/core': 10.1.13(@types/node@22.15.29) - '@inquirer/type': 3.0.7(@types/node@22.15.29) + '@inquirer/core': 10.1.13(@types/node@22.15.30) + '@inquirer/type': 3.0.7(@types/node@22.15.30) optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 - '@inquirer/core@10.1.13(@types/node@22.15.29)': + '@inquirer/core@10.1.13(@types/node@22.15.30)': dependencies: '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.15.29) + '@inquirer/type': 3.0.7(@types/node@22.15.30) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -8895,13 +8895,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@inquirer/figures@1.0.12': {} - '@inquirer/type@3.0.7(@types/node@22.15.29)': + '@inquirer/type@3.0.7(@types/node@22.15.30)': optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@isaacs/cliui@8.0.2': dependencies: @@ -8925,7 +8925,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -8938,14 +8938,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.29) + jest-config: 29.7.0(@types/node@22.15.30) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -8974,7 +8974,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -8992,7 +8992,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.29 + '@types/node': 22.15.30 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -9014,7 +9014,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.29 + '@types/node': 22.15.30 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -9084,7 +9084,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -9116,7 +9116,7 @@ snapshots: '@types/react': 18.3.17 react: 18.3.1 - '@mswjs/interceptors@0.38.7': + '@mswjs/interceptors@0.39.2': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -10624,7 +10624,7 @@ snapshots: '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.5.3)) typescript: 5.8.3 - '@storybook/test-runner@0.22.0(@types/node@22.15.29)(storybook@8.6.14(prettier@3.5.3))': + '@storybook/test-runner@0.22.1(@types/node@22.15.30)(storybook@8.6.14(prettier@3.5.3))': dependencies: '@babel/core': 7.27.4 '@babel/generator': 7.27.5 @@ -10635,14 +10635,14 @@ snapshots: '@swc/core': 1.11.31 '@swc/jest': 0.2.38(@swc/core@1.11.31) expect-playwright: 0.8.0 - jest: 29.7.0(@types/node@22.15.29) + jest: 29.7.0(@types/node@22.15.30) jest-circus: 29.7.0 jest-environment-node: 29.7.0 jest-junit: 16.0.0 - jest-playwright-preset: 4.0.0(jest-circus@29.7.0)(jest-environment-node@29.7.0)(jest-runner@29.7.0)(jest@29.7.0(@types/node@22.15.29)) + jest-playwright-preset: 4.0.0(jest-circus@29.7.0)(jest-environment-node@29.7.0)(jest-runner@29.7.0)(jest@29.7.0(@types/node@22.15.30)) jest-runner: 29.7.0 jest-serializer-html: 7.1.0 - jest-watch-typeahead: 2.2.2(jest@29.7.0(@types/node@22.15.29)) + jest-watch-typeahead: 2.2.2(jest@29.7.0(@types/node@22.15.30)) nyc: 15.1.0 playwright: 1.52.0 storybook: 8.6.14(prettier@3.5.3) @@ -10750,7 +10750,7 @@ snapshots: '@swc/core@1.11.31': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.21 + '@swc/types': 0.1.22 optionalDependencies: '@swc/core-darwin-arm64': 1.11.31 '@swc/core-darwin-x64': 1.11.31 @@ -10776,7 +10776,7 @@ snapshots: '@swc/counter': 0.1.3 jsonc-parser: 3.3.1 - '@swc/types@0.1.21': + '@swc/types@0.1.22': dependencies: '@swc/counter': 0.1.3 @@ -10845,7 +10845,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@types/cookie@0.6.0': {} @@ -10914,7 +10914,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@types/hast@3.0.4': dependencies: @@ -10952,11 +10952,11 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 - '@types/negotiator@0.6.3': {} + '@types/negotiator@0.6.4': {} - '@types/node@22.15.29': + '@types/node@22.15.30': dependencies: undici-types: 6.21.0 @@ -10968,7 +10968,7 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 pg-protocol: 1.10.0 pg-types: 2.2.0 @@ -10997,13 +10997,13 @@ snapshots: '@types/stack-utils@2.0.3': {} - '@types/statuses@2.0.5': {} + '@types/statuses@2.0.6': {} '@types/stylis@4.2.5': {} '@types/tedious@4.0.14': dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@types/tough-cookie@4.0.5': {} @@ -11015,11 +11015,11 @@ snapshots: '@types/wait-on@5.3.4': dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@types/ws@8.18.1': dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 '@types/yargs-parser@21.0.3': {} @@ -11537,7 +11537,7 @@ snapshots: axios@1.9.0: dependencies: follow-redirects: 1.15.9 - form-data: 4.0.2 + form-data: 4.0.3 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -12013,13 +12013,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-jest@29.7.0(@types/node@22.15.29): + create-jest@29.7.0(@types/node@22.15.30): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.15.29) + jest-config: 29.7.0(@types/node@22.15.30) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -12942,11 +12942,12 @@ snapshots: typescript: 5.8.3 webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) - form-data@4.0.2: + form-data@4.0.3: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 forwarded-parse@2.1.2: {} @@ -13557,7 +13558,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 chalk: 4.1.2 co: 4.6.0 dedent: 1.6.0 @@ -13577,16 +13578,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.15.29): + jest-cli@29.7.0(@types/node@22.15.30): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.29) + create-jest: 29.7.0(@types/node@22.15.30) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.15.29) + jest-config: 29.7.0(@types/node@22.15.30) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13596,7 +13597,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.15.29): + jest-config@29.7.0(@types/node@22.15.30): dependencies: '@babel/core': 7.27.4 '@jest/test-sequencer': 29.7.0 @@ -13621,7 +13622,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13650,7 +13651,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -13660,7 +13661,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.29 + '@types/node': 22.15.30 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13706,13 +13707,13 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 jest-util: 29.7.0 - jest-playwright-preset@4.0.0(jest-circus@29.7.0)(jest-environment-node@29.7.0)(jest-runner@29.7.0)(jest@29.7.0(@types/node@22.15.29)): + jest-playwright-preset@4.0.0(jest-circus@29.7.0)(jest-environment-node@29.7.0)(jest-runner@29.7.0)(jest@29.7.0(@types/node@22.15.30)): dependencies: expect-playwright: 0.8.0 - jest: 29.7.0(@types/node@22.15.29) + jest: 29.7.0(@types/node@22.15.30) jest-circus: 29.7.0 jest-environment-node: 29.7.0 jest-process-manager: 0.4.0 @@ -13773,7 +13774,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -13801,7 +13802,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -13851,7 +13852,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13866,11 +13867,11 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 - jest-watch-typeahead@2.2.2(jest@29.7.0(@types/node@22.15.29)): + jest-watch-typeahead@2.2.2(jest@29.7.0(@types/node@22.15.30)): dependencies: ansi-escapes: 6.2.1 chalk: 5.4.1 - jest: 29.7.0(@types/node@22.15.29) + jest: 29.7.0(@types/node@22.15.30) jest-regex-util: 29.6.3 jest-watcher: 29.7.0 slash: 5.1.0 @@ -13881,7 +13882,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 22.15.30 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -13890,23 +13891,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.15.29 + '@types/node': 22.15.30 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.15.29): + jest@29.7.0(@types/node@22.15.30): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.15.29) + jest-cli: 29.7.0(@types/node@22.15.30) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -14397,22 +14398,22 @@ snapshots: ms@2.1.3: {} - msw-storybook-addon@2.0.4(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3)): + msw-storybook-addon@2.0.5(msw@2.10.2(@types/node@22.15.30)(typescript@5.8.3)): dependencies: is-node-process: 1.2.0 - msw: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) + msw: 2.10.2(@types/node@22.15.30)(typescript@5.8.3) - msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3): + msw@2.10.2(@types/node@22.15.30)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.12(@types/node@22.15.29) - '@mswjs/interceptors': 0.38.7 + '@inquirer/confirm': 5.1.12(@types/node@22.15.30) + '@mswjs/interceptors': 0.39.2 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 + '@types/statuses': 2.0.6 graphql: 16.11.0 headers-polyfill: 4.0.3 is-node-process: 1.2.0 @@ -15643,7 +15644,7 @@ snapshots: dependencies: type-fest: 0.7.1 - statuses@2.0.1: {} + statuses@2.0.2: {} stop-iteration-iterator@1.1.0: dependencies: From 2e96da36c2e931df11bb3956501c5a22eb7f35e7 Mon Sep 17 00:00:00 2001 From: Bently <Github@bentlybro.com> Date: Wed, 11 Jun 2025 00:31:01 +0100 Subject: [PATCH 086/497] feat(blocks): Drop the price of chatgpt o3 model (#10145) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ Today openAI dropped the prices of the o3 model so this simply drops the price from 7 to 4 ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Run the platform with the new price, check the O3 model in the ai text generator block and see its cheaper to use --- autogpt_platform/backend/backend/data/block_cost_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogpt_platform/backend/backend/data/block_cost_config.py b/autogpt_platform/backend/backend/data/block_cost_config.py index 384d1c870f..e099ebfea0 100644 --- a/autogpt_platform/backend/backend/data/block_cost_config.py +++ b/autogpt_platform/backend/backend/data/block_cost_config.py @@ -38,7 +38,7 @@ from backend.integrations.credentials_store import ( # =============== Configure the cost for each LLM Model call =============== # MODEL_COST: dict[LlmModel, int] = { - LlmModel.O3: 7, + LlmModel.O3: 4, LlmModel.O3_MINI: 2, # $1.10 / $4.40 LlmModel.O1: 16, # $15 / $60 LlmModel.O1_PREVIEW: 16, From 1e89bf5c37354a2dcb2d2641e654268d4d11a475 Mon Sep 17 00:00:00 2001 From: Bently <Github@bentlybro.com> Date: Wed, 11 Jun 2025 00:31:50 +0100 Subject: [PATCH 087/497] feat(blocks): add veo3 to ai video generator (#10144) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ This simply adds "fal-ai/veo3" to the ``FalModel`` in the ``ai_video_generator.py`` file Oh i also set it so veo3 also always generates videos with audio so ``generate_audio=True`` is set to true if veo3 is selected ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Test the veo3 model via Fal.ai and it should work. --- .../backend/backend/blocks/fal/ai_video_generator.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py b/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py index bea208ea99..fc2152e0ee 100644 --- a/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py +++ b/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py @@ -21,6 +21,7 @@ logger = logging.getLogger(__name__) class FalModel(str, Enum): MOCHI = "fal-ai/mochi-v1" LUMA = "fal-ai/luma-dream-machine" + VEO3 = "fal-ai/veo3" class AIVideoGeneratorBlock(Block): @@ -102,6 +103,8 @@ class AIVideoGeneratorBlock(Block): # Submit generation request submit_url = f"{base_url}/{input_data.model.value}" submit_data = {"prompt": input_data.prompt} + if input_data.model == FalModel.VEO3: + submit_data["generate_audio"] = True # type: ignore seen_logs = set() From 8028a766b1b2ec34b4f296bd5eccab7e444f067c Mon Sep 17 00:00:00 2001 From: Ubbe <hi@ubbe.dev> Date: Wed, 11 Jun 2025 08:49:56 +0400 Subject: [PATCH 088/497] fix(frontend): account menu still showing after logout (#10143) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ <img width="800" alt="Screenshot 2025-06-10 at 14 21 48" src="https://github.com/user-attachments/assets/d0dba02d-049d-446c-9a25-0f7cec9108bc" /> When logging out, I'm redirected to the `/login` page but the account menu is still visible (however I'm not longer logged out). Refreshing the page fixes it. The problem was that `supabase.logOut()` is a client side action, and `<Navbar />` is a RSC who fetchs the session on the server to display the state and does not know on the client it was invalidated. `router.refresh()` solves the issue by forcing RSC on the page to refetch their state and update server side. Further reading [here](https://nextjs.org/docs/app/deep-dive/caching#invalidation-1). I also improved the UX awaiting the promise and displaying a spinner while the log out action is happening. If logout fails ( _should be very rare_ ) I'm displaying a toast to not let the user be hanging wondering what happened. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Login - [x] Open account menu - [x] Click `Logout` - [x] I see a spinner while the action is happening - [x] I'm redirected to `/login` and I no longer see the account menu --- .../agptui/ProfilePopoutMenuLogoutButton.tsx | 55 +++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx index 428c5a598d..18c30e1ad1 100644 --- a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx +++ b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx @@ -1,22 +1,57 @@ "use client"; import useSupabase from "@/lib/supabase/useSupabase"; import { IconLogOut } from "@/components/ui/icons"; +import { useTransition } from "react"; +import { LoadingSpinner } from "../ui/loading"; +import { cn } from "@/lib/utils"; +import { useRouter } from "next/navigation"; +import { toast } from "../ui/use-toast"; +import * as Sentry from "@sentry/nextjs"; -export const ProfilePopoutMenuLogoutButton = () => { +export function ProfilePopoutMenuLogoutButton() { + const router = useRouter(); + const [isPending, startTransition] = useTransition(); const supabase = useSupabase(); + + function handleLogout() { + startTransition(async () => { + try { + await supabase.logOut(); + router.refresh(); + } catch (e) { + Sentry.captureException(e); + toast({ + title: "Error logging out", + description: + "Something went wrong when logging out. Please try again. If the problem persists, please contact support.", + variant: "destructive", + }); + } + }); + } + return ( <div - className="inline-flex w-full items-center justify-start gap-2.5" - onClick={() => supabase.logOut()} + className={cn( + "inline-flex w-full items-center justify-start gap-2.5", + isPending && "justify-center", + )} + onClick={handleLogout} role="button" tabIndex={0} > - <div className="relative h-6 w-6"> - <IconLogOut className="h-6 w-6" /> - </div> - <div className="font-sans text-base font-medium leading-normal text-neutral-800 dark:text-neutral-200"> - Log out - </div> + {isPending ? ( + <LoadingSpinner className="size-5" /> + ) : ( + <> + <div className="relative h-6 w-6"> + <IconLogOut className="h-6 w-6" /> + </div> + <div className="font-sans text-base font-medium leading-normal text-neutral-800 dark:text-neutral-200"> + Log out + </div> + </> + )} </div> ); -}; +} From 796f89604283ba0cda7bdb40543d9f9aa4afb040 Mon Sep 17 00:00:00 2001 From: Zamil Majdy <zamil.majdy@agpt.co> Date: Wed, 11 Jun 2025 14:35:51 +0700 Subject: [PATCH 089/497] fix(backend): execution UI did not receive completed / failed execution update (#10149) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit <img width="1410" alt="image" src="https://github.com/user-attachments/assets/bce407a2-96a1-42e9-9772-b49b8f20886c" /> ### Changes 🏗️ Add the missing `send execution update` command on completed/update status change for the node execution. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Screenshot attached --- autogpt_platform/backend/backend/executor/manager.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index dbe2ab1ead..d4bf006473 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -717,13 +717,15 @@ class Executor: execution_stats.nodes_walltime += result.walltime if (err := result.error) and isinstance(err, Exception): execution_stats.node_error_count += 1 - cls.db_client.update_node_execution_status( - node_exec_id=node_exec_id, + update_node_execution_status( + db_client=cls.db_client, + exec_id=node_exec_id, status=ExecutionStatus.FAILED, ) else: - cls.db_client.update_node_execution_status( - node_exec_id=node_exec_id, + update_node_execution_status( + db_client=cls.db_client, + exec_id=node_exec_id, status=ExecutionStatus.COMPLETED, ) From 2ab9cfdf7911409f54682147d5d6ffa1ed9faefa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 15:10:06 +0400 Subject: [PATCH 090/497] chore(frontend/deps): Bump the production-dependencies group in /autogpt_platform/frontend with 3 updates (#10133) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the production-dependencies group in /autogpt_platform/frontend with 3 updates: [@sentry/nextjs](https://github.com/getsentry/sentry-javascript), [@supabase/supabase-js](https://github.com/supabase/supabase-js) and [zod](https://github.com/colinhacks/zod). Updates `@sentry/nextjs` from 9.26.0 to 9.27.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/getsentry/sentry-javascript/releases"><code>@​sentry/nextjs</code>'s releases</a>.</em></p> <blockquote> <h2>9.27.0</h2> <ul> <li>feat(node): Expand how vercel ai input/outputs can be set (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16455">#16455</a>)</li> <li>feat(node): Switch to new semantic conventions for Vercel AI (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16476">#16476</a>)</li> <li>feat(react-router): Add component annotation plugin (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16472">#16472</a>)</li> <li>feat(react-router): Export wrappers for server loaders and actions (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16481">#16481</a>)</li> <li>fix(browser): Ignore unrealistically long INP values (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16484">#16484</a>)</li> <li>fix(react-router): Conditionally add <code>ReactRouterServer</code> integration (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16470">#16470</a>)</li> </ul> <h2>Bundle size 📦</h2> <table> <thead> <tr> <th>Path</th> <th>Size</th> </tr> </thead> <tbody> <tr> <td><code>@​sentry/browser</code></td> <td>23.43 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> - with treeshaking flags</td> <td>23.2 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. Tracing)</td> <td>37.46 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. Tracing, Replay)</td> <td>74.68 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. Tracing, Replay) - with treeshaking flags</td> <td>67.94 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. Tracing, Replay with Canvas)</td> <td>79.33 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. Tracing, Replay, Feedback)</td> <td>91.13 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. Feedback)</td> <td>39.77 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. sendFeedback)</td> <td>28.03 KB</td> </tr> <tr> <td><code>@​sentry/browser</code> (incl. FeedbackAsync)</td> <td>32.8 KB</td> </tr> <tr> <td><code>@​sentry/react</code></td> <td>25.15 KB</td> </tr> <tr> <td><code>@​sentry/react</code> (incl. Tracing)</td> <td>39.41 KB</td> </tr> <tr> <td><code>@​sentry/vue</code></td> <td>27.69 KB</td> </tr> <tr> <td><code>@​sentry/vue</code> (incl. Tracing)</td> <td>39.27 KB</td> </tr> <tr> <td><code>@​sentry/svelte</code></td> <td>23.45 KB</td> </tr> <tr> <td>CDN Bundle</td> <td>24.88 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing)</td> <td>37.63 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay)</td> <td>72.66 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay, Feedback)</td> <td>77.99 KB</td> </tr> <tr> <td>CDN Bundle - uncompressed</td> <td>72.67 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing) - uncompressed</td> <td>111.42 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td> <td>222.72 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td> <td>235.25 KB</td> </tr> <tr> <td><code>@​sentry/nextjs</code> (client)</td> <td>41.03 KB</td> </tr> <tr> <td><code>@​sentry/sveltekit</code> (client)</td> <td>37.93 KB</td> </tr> <tr> <td><code>@​sentry/node</code></td> <td>146.75 KB</td> </tr> <tr> <td><code>@​sentry/node</code> - without tracing</td> <td>96.03 KB</td> </tr> <tr> <td><code>@​sentry/aws-serverless</code></td> <td>121.19 KB</td> </tr> </tbody> </table> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md"><code>@​sentry/nextjs</code>'s changelog</a>.</em></p> <blockquote> <h2>9.27.0</h2> <ul> <li>feat(node): Expand how vercel ai input/outputs can be set (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16455">#16455</a>)</li> <li>feat(node): Switch to new semantic conventions for Vercel AI (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16476">#16476</a>)</li> <li>feat(react-router): Add component annotation plugin (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16472">#16472</a>)</li> <li>feat(react-router): Export wrappers for server loaders and actions (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16481">#16481</a>)</li> <li>fix(browser): Ignore unrealistically long INP values (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16484">#16484</a>)</li> <li>fix(react-router): Conditionally add <code>ReactRouterServer</code> integration (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16470">#16470</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/getsentry/sentry-javascript/commit/650abf323baa8a4ba203ac8537fb197c80195507"><code>650abf3</code></a> release: 9.27.0</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/5a672c90ea20f2e0338e14571c21ae3abf1d5677"><code>5a672c9</code></a> Merge pull request <a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16489">#16489</a> from getsentry/prepare-release/9.27.0</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/9d1c05ecf3dcd82bd7f9b358f8ac9ea8da5e15f8"><code>9d1c05e</code></a> meta(changelog): Update changelog for 9.27.0</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/6d61be03372943d5fa908336c3d018cf102d7f66"><code>6d61be0</code></a> fix(browser): Ignore unrealistically long INP values (<a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16484">#16484</a>)</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/0a7b915fd7dec01eb4ef0657e1e9c8ecdfae9e82"><code>0a7b915</code></a> ref(vue): Clarify Vue tracing (<a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16487">#16487</a>)</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/b1fd4a1d47a36cd30fd1bec3e9859ec16fcf1d02"><code>b1fd4a1</code></a> test(vue): Add tests for Vue tracing mixins (<a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16486">#16486</a>)</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/497b76e23acf5314a84505e2c5021fd99ea9696c"><code>497b76e</code></a> feat(react-router): Add component annotation plugin (<a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16472">#16472</a>)</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/cfa8d41aa20c502354cb07818bac09d56a5a8047"><code>cfa8d41</code></a> feat(react-router): Export wrappers for server loaders and actions (<a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16481">#16481</a>)</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/bfe5e888b1124e86e19aa50ffe95df501776fc10"><code>bfe5e88</code></a> feat(node): Expand how vercel ai input/outputs can be set (<a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16455">#16455</a>)</li> <li><a href="https://github.com/getsentry/sentry-javascript/commit/45088a2ab7858e23bedbff3205c20b6705dd546b"><code>45088a2</code></a> feat(node): Switch to new semantic conventions for Vercel AI (<a href="https://redirect.github.com/getsentry/sentry-javascript/issues/16476">#16476</a>)</li> <li>Additional commits viewable in <a href="https://github.com/getsentry/sentry-javascript/compare/9.26.0...9.27.0">compare view</a></li> </ul> </details> <br /> Updates `@supabase/supabase-js` from 2.49.10 to 2.50.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/supabase/supabase-js/releases"><code>@​supabase/supabase-js</code>'s releases</a>.</em></p> <blockquote> <h2>v2.50.0</h2> <h1><a href="https://github.com/supabase/supabase-js/compare/v2.49.10...v2.50.0">2.50.0</a> (2025-06-06)</h1> <h3>Bug Fixes</h3> <ul> <li>add <code>@​solana/wallet-standard-features</code> as dev dependency (<a href="https://redirect.github.com/supabase/supabase-js/issues/1454">#1454</a>) (<a href="https://github.com/supabase/supabase-js/commit/146c8227684b121b52e8d7567d0b68470889bc3e">146c822</a>)</li> </ul> <h3>Features</h3> <ul> <li>bump auth-js to v2.70.0 (<a href="https://redirect.github.com/supabase/supabase-js/issues/1449">#1449</a>) (<a href="https://github.com/supabase/supabase-js/commit/217473f6b4eb5257547655747bc3c22759abd049">217473f</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/supabase/supabase-js/commit/146c8227684b121b52e8d7567d0b68470889bc3e"><code>146c822</code></a> fix: add <code>@​solana/wallet-standard-features</code> as dev dependency (<a href="https://redirect.github.com/supabase/supabase-js/issues/1454">#1454</a>)</li> <li><a href="https://github.com/supabase/supabase-js/commit/217473f6b4eb5257547655747bc3c22759abd049"><code>217473f</code></a> feat: bump auth-js to v2.70.0 (<a href="https://redirect.github.com/supabase/supabase-js/issues/1449">#1449</a>)</li> <li>See full diff in <a href="https://github.com/supabase/supabase-js/compare/v2.49.10...v2.50.0">compare view</a></li> </ul> </details> <br /> Updates `zod` from 3.25.51 to 3.25.56 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/colinhacks/zod/releases">zod's releases</a>.</em></p> <blockquote> <h2>v3.25.56</h2> <h2>Commits:</h2> <ul> <li>64bfb7001cf6f2575bf38b5e6130bc73b4b0e371 3.25.56</li> </ul> <h2>v3.25.55</h2> <h2>Commits:</h2> <ul> <li>44141ea1dbd48403f14704386119884aeda5cb27 3.25.55</li> </ul> <h2>v3.25.54</h2> <h2>Commits:</h2> <ul> <li>8ab237423cd8fdca58dc9e18f45d48d56ca2a24d fix(util): cross realm IsPlainObject check (<a href="https://redirect.github.com/colinhacks/zod/issues/4627">#4627</a>)</li> <li>2be1c6ad909a9d0598d9f45fedc9038213130529 Fix generic assignability issue. 3.25.54</li> </ul> <h2>v3.25.53</h2> <h2>Commits:</h2> <ul> <li>a6adb148012f59d734245c637a577ed413a484e7 zod mini internals (<a href="https://redirect.github.com/colinhacks/zod/issues/4631">#4631</a>)</li> <li>da4f92170ac838029178c4622015dbdae4a1de7c 3.25.53</li> </ul> <h2>v3.25.52</h2> <h2>Commits:</h2> <ul> <li>2954f40a4e41f61e835ba211ff084467dca1f41e Fix json (<a href="https://redirect.github.com/colinhacks/zod/issues/4630">#4630</a>)</li> <li>51dc6f9361851e64a925c3f4ee9364ce4da4c4e7 3.25.52</li> <li>e479ea76ae1571064c3dade621b3af0ea2dff942 Add test cast for deferred self-recursion</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/colinhacks/zod/commit/64bfb7001cf6f2575bf38b5e6130bc73b4b0e371"><code>64bfb70</code></a> 3.25.56</li> <li><a href="https://github.com/colinhacks/zod/commit/44141ea1dbd48403f14704386119884aeda5cb27"><code>44141ea</code></a> 3.25.55</li> <li><a href="https://github.com/colinhacks/zod/commit/2be1c6ad909a9d0598d9f45fedc9038213130529"><code>2be1c6a</code></a> Fix generic assignability issue. 3.25.54</li> <li><a href="https://github.com/colinhacks/zod/commit/8ab237423cd8fdca58dc9e18f45d48d56ca2a24d"><code>8ab2374</code></a> fix(util): cross realm IsPlainObject check (<a href="https://redirect.github.com/colinhacks/zod/issues/4627">#4627</a>)</li> <li><a href="https://github.com/colinhacks/zod/commit/da4f92170ac838029178c4622015dbdae4a1de7c"><code>da4f921</code></a> 3.25.53</li> <li><a href="https://github.com/colinhacks/zod/commit/a6adb148012f59d734245c637a577ed413a484e7"><code>a6adb14</code></a> zod mini internals (<a href="https://redirect.github.com/colinhacks/zod/issues/4631">#4631</a>)</li> <li><a href="https://github.com/colinhacks/zod/commit/e479ea76ae1571064c3dade621b3af0ea2dff942"><code>e479ea7</code></a> Add test cast for deferred self-recursion</li> <li><a href="https://github.com/colinhacks/zod/commit/51dc6f9361851e64a925c3f4ee9364ce4da4c4e7"><code>51dc6f9</code></a> 3.25.52</li> <li><a href="https://github.com/colinhacks/zod/commit/2954f40a4e41f61e835ba211ff084467dca1f41e"><code>2954f40</code></a> Fix json (<a href="https://redirect.github.com/colinhacks/zod/issues/4630">#4630</a>)</li> <li>See full diff in <a href="https://github.com/colinhacks/zod/compare/v3.25.51...v3.25.56">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ubbe <hi@ubbe.dev> Co-authored-by: Swifty <craigswift13@gmail.com> --- autogpt_platform/frontend/package.json | 6 +- autogpt_platform/frontend/pnpm-lock.yaml | 186 ++++++++++++----------- 2 files changed, 102 insertions(+), 90 deletions(-) diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index a70fa6808a..93ae716f1b 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -46,9 +46,9 @@ "@radix-ui/react-tabs": "1.1.12", "@radix-ui/react-toast": "1.2.14", "@radix-ui/react-tooltip": "1.2.7", - "@sentry/nextjs": "9.26.0", + "@sentry/nextjs": "9.27.0", "@supabase/ssr": "0.6.1", - "@supabase/supabase-js": "2.49.10", + "@supabase/supabase-js": "2.50.0", "@tanstack/react-table": "8.21.3", "@types/jaro-winkler": "0.2.4", "@xyflow/react": "12.6.4", @@ -86,7 +86,7 @@ "tailwind-merge": "2.6.0", "tailwindcss-animate": "1.0.7", "uuid": "11.1.0", - "zod": "3.25.51" + "zod": "3.25.56" }, "devDependencies": { "@chromatic-com/storybook": "3.2.6", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 00b1a218e6..bd95c49a1e 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -75,14 +75,14 @@ importers: specifier: 1.2.7 version: 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': - specifier: 9.26.0 - version: 9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + specifier: 9.27.0 + version: 9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) '@supabase/ssr': specifier: 0.6.1 - version: 0.6.1(@supabase/supabase-js@2.49.10) + version: 0.6.1(@supabase/supabase-js@2.50.0) '@supabase/supabase-js': - specifier: 2.49.10 - version: 2.49.10 + specifier: 2.50.0 + version: 2.50.0 '@tanstack/react-table': specifier: 8.21.3 version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -195,8 +195,8 @@ importers: specifier: 11.1.0 version: 11.1.0 zod: - specifier: 3.25.51 - version: 3.25.51 + specifier: 3.25.56 + version: 3.25.56 devDependencies: '@chromatic-com/storybook': specifier: 3.2.6 @@ -2509,28 +2509,28 @@ packages: '@scarf/scarf@1.4.0': resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} - '@sentry-internal/browser-utils@9.26.0': - resolution: {integrity: sha512-Ya4YQSzrM6TSuCuO+tUPK+WXFHfndaX73wszCmIu7UZlUHbKTZ5HVWxXxHW9f6KhVIHYzdYQMeA/4F4N7n+rgg==} + '@sentry-internal/browser-utils@9.27.0': + resolution: {integrity: sha512-SJa7f6Ct1BzP8rWEomnshSGN1CmT+axNKvT+StrbFPD6AyHnYfFLJpKgc2iToIJHB/pmeuOI9dUwqtzVx+5nSw==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.26.0': - resolution: {integrity: sha512-XnN6UiFNGkJMCw8Oy9qnP2GW/ueiQOUEl8vaA28v0uAIL2cIMxJY7mrii9D3NNip8d/iPzpgDZJk2epBClfpyw==} + '@sentry-internal/feedback@9.27.0': + resolution: {integrity: sha512-e7L8eG0y63RulN352lmafoCCfQGg4jLVT8YLx6096eWu/YKLkgmVpgi8livsT5WREnH+HB+iFSrejOwK7cRkhw==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.26.0': - resolution: {integrity: sha512-ABj5TRRI3WWgLFPHrncCLOL5On/K+TpsbwWCM58AXQwwvtsSN2R22RY0ftuYgmAzBt4tygUJ9VQfIAWcRtC5sQ==} + '@sentry-internal/replay-canvas@9.27.0': + resolution: {integrity: sha512-44rVSt3LCH6qePYRQrl4WUBwnkOk9dzinmnKmuwRksEdDOkVq5KBRhi/IDr7omwSpX8C+KrX5alfKhOx1cP0gQ==} engines: {node: '>=18'} - '@sentry-internal/replay@9.26.0': - resolution: {integrity: sha512-SrND17u9Of0Jal4i9fJLoi98puBU3CQxwWq1Vda5JI9nLNwVU00QRbcsXsiartp/e0A8m0yGsySlrAGb1tZTaA==} + '@sentry-internal/replay@9.27.0': + resolution: {integrity: sha512-n2kO1wOfCG7GxkMAqbYYkpgTqJM5tuVLdp0JuNCqTOLTXWvw6svWGaYKlYpKUgsK9X/GDzJYSXZmfe+Dbg+FJQ==} engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@3.5.0': resolution: {integrity: sha512-s2go8w03CDHbF9luFGtBHKJp4cSpsQzNVqgIa9Pfa4wnjipvrK6CxVT4icpLA3YO6kg5u622Yoa5GF3cJdippw==} engines: {node: '>= 14'} - '@sentry/browser@9.26.0': - resolution: {integrity: sha512-aZFAXcNtJe+QQidIiB8wW8uyzBnIJR81CoeZkDxl1fJ0YlAZraazyD35DWP7suLKujCPtWNv3vRzSxYMxxP/NQ==} + '@sentry/browser@9.27.0': + resolution: {integrity: sha512-geR3lhRJOmUQqi1WgovLSYcD/f66zYnctdnDEa7j1BW2XIB1nlTJn0mpYyAHghXKkUN/pBpp1Z+Jk0XlVwFYVg==} engines: {node: '>=18'} '@sentry/bundler-plugin-core@3.5.0': @@ -2583,22 +2583,22 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@9.26.0': - resolution: {integrity: sha512-XTFSqOPn6wsZgF3NLRVY/FjYCkFahZoR46BtLVmBliD60QZLChpya81slD3M8BgLQpjsA2q6N1xrQor1Rc29gg==} + '@sentry/core@9.27.0': + resolution: {integrity: sha512-Zb2SSAdWXQjTem+sVWrrAq9L6YYfxyoTwtapaE6C6qZBR5C8Uak0wcYww8StaCFH7dDA/PSW+VxOwjNXocrQHQ==} engines: {node: '>=18'} - '@sentry/nextjs@9.26.0': - resolution: {integrity: sha512-baOIDZT98rgaYUF1ZY3nrlQhZF3TwvksxxekJnZ1uuZp6FfDEvfK+4ruJDlWlcblv/aNPJLRhI22xAyUsS1cMg==} + '@sentry/nextjs@9.27.0': + resolution: {integrity: sha512-xz4NcA5istwSa2V8DiEJLjHOY3AcThIQNKBXaFEZ8egzEBAm7Ig8R/TtVh4kaY8kCByQdsh0mEMREH/eI/yRmg==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - '@sentry/node@9.26.0': - resolution: {integrity: sha512-B7VdUtXlg1Y8DeZMWc9gOIoSmGT9hkKepits+kmkZgjYlyPhZtT8a0fwUNBLYFYq1Ti/JzKWw3ZNIlg00BY40w==} + '@sentry/node@9.27.0': + resolution: {integrity: sha512-EVyDfGRjMAL+SS0lFYK8BKZZiVfKBu6sItX/m2CGcpVLjTwhGxJQWdHlKJMEe8hIkjabME+VLL/mnkA3mINSfQ==} engines: {node: '>=18'} - '@sentry/opentelemetry@9.26.0': - resolution: {integrity: sha512-yVxRv6GtrtKFfNKpfb+b/focF4cKslInIN+HPzllQBoVebrq+KeCjUYzDEj9b6OwZGbUZDbQdxGRgXrrxcZUMg==} + '@sentry/opentelemetry@9.27.0': + resolution: {integrity: sha512-IHhDUdZU+gAUEupovcoUBgXfzQoMDh6n8epjLGpV5LxjiujM+byvvrBD7Witoz/ZilOFn585uvncW7juCe7grw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2608,14 +2608,14 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 '@opentelemetry/semantic-conventions': ^1.34.0 - '@sentry/react@9.26.0': - resolution: {integrity: sha512-I2AreDlNK6bak5eRRLCRnphJTx8mrhXEZ0MiUMAbg0fcQ5kM/yf4C6LNJpMPa86UhBQDkXQus+Cb1uYQYNF7og==} + '@sentry/react@9.27.0': + resolution: {integrity: sha512-UT7iaGEwTqe06O4mgHfKGTRBHg+U0JSI/id+QxrOji6ksosOsSnSC3Vdq+gPs9pzCCFE+6+DkH6foYNNLIN0lw==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@9.26.0': - resolution: {integrity: sha512-CO18exGB8fClwXxFqz9TpWYSQkq+fIqF1DZx3gLEsbt8x3giw5Fk4/itoBaQUBctXLa6+X9kQm5lSvf+wRkonQ==} + '@sentry/vercel-edge@9.27.0': + resolution: {integrity: sha512-3/Ou4fCZjaDOnyuDfw0iqMauWLzPI9GKUVcHq4+kvZacS/JE4FvoFAHZApT3fiMOP01RDNjQ1TmEJTKOI05Mtg==} engines: {node: '>=18'} '@sentry/webpack-plugin@3.5.0': @@ -2864,8 +2864,8 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@supabase/auth-js@2.69.1': - resolution: {integrity: sha512-FILtt5WjCNzmReeRLq5wRs3iShwmnWgBvxHfqapC/VoljJl+W8hDAyFmf1NVw3zH+ZjZ05AKxiKxVeb0HNWRMQ==} + '@supabase/auth-js@2.70.0': + resolution: {integrity: sha512-BaAK/tOAZFJtzF1sE3gJ2FwTjLf4ky3PSvcvLGEgEmO4BSBkwWKu8l67rLLIBZPDnCyV7Owk2uPyKHa0kj5QGg==} '@supabase/functions-js@2.4.4': resolution: {integrity: sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==} @@ -2888,8 +2888,8 @@ packages: '@supabase/storage-js@2.7.1': resolution: {integrity: sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==} - '@supabase/supabase-js@2.49.10': - resolution: {integrity: sha512-IRPcIdncuhD2m1eZ2Fkg0S1fq9SXlHfmAetBxPN66kVFtTucR8b01xKuVmKqcIJokB17umMf1bmqyS8yboXGsw==} + '@supabase/supabase-js@2.50.0': + resolution: {integrity: sha512-M1Gd5tPaaghYZ9OjeO1iORRqbTWFEz/cF3pPubRnMPzA+A8SiUsXXWDP+DWsASZcjEcVEcVQIAF38i5wrijYOg==} '@swc/core-darwin-arm64@1.11.31': resolution: {integrity: sha512-NTEaYOts0OGSbJZc0O74xsji+64JrF1stmBii6D5EevWEtrY4wlZhm8SiP/qPrOB+HqtAihxWIukWkP2aSdGSQ==} @@ -3087,6 +3087,9 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -3453,6 +3456,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + adjust-sourcemap-loader@4.0.0: resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} engines: {node: '>=8.9'} @@ -7698,8 +7706,8 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} - zod@3.25.51: - resolution: {integrity: sha512-TQSnBldh+XSGL+opiSIq0575wvDPqu09AqWe1F7JhUMKY+M91/aGlK4MhpVNO7MgYfHcVCB1ffwAUTJzllKJqg==} + zod@3.25.56: + resolution: {integrity: sha512-rd6eEF3BTNvQnR2e2wwolfTmUTnp70aUTqr0oaGbHifzC3BKJsoV+Gat8vxUMR1hwOKBs6El+qWehrHbCpW6SQ==} zustand@4.5.7: resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} @@ -10015,7 +10023,7 @@ snapshots: '@rollup/pluginutils@5.1.4(rollup@4.35.0)': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: @@ -10084,33 +10092,33 @@ snapshots: '@scarf/scarf@1.4.0': {} - '@sentry-internal/browser-utils@9.26.0': + '@sentry-internal/browser-utils@9.27.0': dependencies: - '@sentry/core': 9.26.0 + '@sentry/core': 9.27.0 - '@sentry-internal/feedback@9.26.0': + '@sentry-internal/feedback@9.27.0': dependencies: - '@sentry/core': 9.26.0 + '@sentry/core': 9.27.0 - '@sentry-internal/replay-canvas@9.26.0': + '@sentry-internal/replay-canvas@9.27.0': dependencies: - '@sentry-internal/replay': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry-internal/replay': 9.27.0 + '@sentry/core': 9.27.0 - '@sentry-internal/replay@9.26.0': + '@sentry-internal/replay@9.27.0': dependencies: - '@sentry-internal/browser-utils': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry-internal/browser-utils': 9.27.0 + '@sentry/core': 9.27.0 '@sentry/babel-plugin-component-annotate@3.5.0': {} - '@sentry/browser@9.26.0': + '@sentry/browser@9.27.0': dependencies: - '@sentry-internal/browser-utils': 9.26.0 - '@sentry-internal/feedback': 9.26.0 - '@sentry-internal/replay': 9.26.0 - '@sentry-internal/replay-canvas': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry-internal/browser-utils': 9.27.0 + '@sentry-internal/feedback': 9.27.0 + '@sentry-internal/replay': 9.27.0 + '@sentry-internal/replay-canvas': 9.27.0 + '@sentry/core': 9.27.0 '@sentry/bundler-plugin-core@3.5.0': dependencies: @@ -10166,19 +10174,19 @@ snapshots: - encoding - supports-color - '@sentry/core@9.26.0': {} + '@sentry/core@9.27.0': {} - '@sentry/nextjs@9.26.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': + '@sentry/nextjs@9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.34.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) - '@sentry-internal/browser-utils': 9.26.0 - '@sentry/core': 9.26.0 - '@sentry/node': 9.26.0 - '@sentry/opentelemetry': 9.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) - '@sentry/react': 9.26.0(react@18.3.1) - '@sentry/vercel-edge': 9.26.0 + '@sentry-internal/browser-utils': 9.27.0 + '@sentry/core': 9.27.0 + '@sentry/node': 9.27.0 + '@sentry/opentelemetry': 9.27.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) + '@sentry/react': 9.27.0(react@18.3.1) + '@sentry/vercel-edge': 9.27.0 '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) chalk: 3.0.0 next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -10195,7 +10203,7 @@ snapshots: - supports-color - webpack - '@sentry/node@9.26.0': + '@sentry/node@9.27.0': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -10227,14 +10235,14 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 '@prisma/instrumentation': 6.8.2(@opentelemetry/api@1.9.0) - '@sentry/core': 9.26.0 - '@sentry/opentelemetry': 9.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) + '@sentry/core': 9.27.0 + '@sentry/opentelemetry': 9.27.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) import-in-the-middle: 1.14.0 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@9.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0)': + '@sentry/opentelemetry@9.27.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -10242,19 +10250,19 @@ snapshots: '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 - '@sentry/core': 9.26.0 + '@sentry/core': 9.27.0 - '@sentry/react@9.26.0(react@18.3.1)': + '@sentry/react@9.27.0(react@18.3.1)': dependencies: - '@sentry/browser': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry/browser': 9.27.0 + '@sentry/core': 9.27.0 hoist-non-react-statics: 3.3.2 react: 18.3.1 - '@sentry/vercel-edge@9.26.0': + '@sentry/vercel-edge@9.27.0': dependencies: '@opentelemetry/api': 1.9.0 - '@sentry/core': 9.26.0 + '@sentry/core': 9.27.0 '@sentry/webpack-plugin@3.5.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': dependencies: @@ -10670,7 +10678,7 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.5.3) - '@supabase/auth-js@2.69.1': + '@supabase/auth-js@2.70.0': dependencies: '@supabase/node-fetch': 2.6.15 @@ -10696,18 +10704,18 @@ snapshots: - bufferutil - utf-8-validate - '@supabase/ssr@0.6.1(@supabase/supabase-js@2.49.10)': + '@supabase/ssr@0.6.1(@supabase/supabase-js@2.50.0)': dependencies: - '@supabase/supabase-js': 2.49.10 + '@supabase/supabase-js': 2.50.0 cookie: 1.0.2 '@supabase/storage-js@2.7.1': dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/supabase-js@2.49.10': + '@supabase/supabase-js@2.50.0': dependencies: - '@supabase/auth-js': 2.69.1 + '@supabase/auth-js': 2.70.0 '@supabase/functions-js': 2.4.4 '@supabase/node-fetch': 2.6.15 '@supabase/postgrest-js': 1.19.4 @@ -10897,11 +10905,11 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@types/estree-jsx@1.0.5': @@ -10912,6 +10920,8 @@ snapshots: '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 22.15.30 @@ -11311,9 +11321,9 @@ snapshots: dependencies: event-target-shim: 5.0.1 - acorn-import-attributes@1.9.5(acorn@8.14.1): + acorn-import-attributes@1.9.5(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 acorn-jsx@5.3.2(acorn@8.14.1): dependencies: @@ -11321,6 +11331,8 @@ snapshots: acorn@8.14.1: {} + acorn@8.15.0: {} + adjust-sourcemap-loader@4.0.0: dependencies: loader-utils: 2.0.4 @@ -12759,7 +12771,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 esutils@2.0.3: {} @@ -13258,8 +13270,8 @@ snapshots: import-in-the-middle@1.14.0: dependencies: - acorn: 8.14.1 - acorn-import-attributes: 1.9.5(acorn@8.14.1) + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 @@ -13407,7 +13419,7 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 is-regex@1.2.1: dependencies: @@ -15902,7 +15914,7 @@ snapshots: terser@5.41.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -16116,7 +16128,7 @@ snapshots: unplugin@1.0.1: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 chokidar: 3.6.0 webpack-sources: 3.3.2 webpack-virtual-modules: 0.5.0 @@ -16298,7 +16310,7 @@ snapshots: webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 @@ -16471,7 +16483,7 @@ snapshots: yoctocolors-cjs@2.1.2: {} - zod@3.25.51: {} + zod@3.25.56: {} zustand@4.5.7(@types/react@18.3.17)(react@18.3.1): dependencies: From a259eac9ffb190eb0bf01535b31815bb1a791d95 Mon Sep 17 00:00:00 2001 From: Dmitry <tumaskow@yandex.ru> Date: Wed, 11 Jun 2025 19:46:44 +0200 Subject: [PATCH 091/497] feat(blocks): Add AI/ML API support to LLM blocks (#9996) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi! Taking over this feature from the previous author in [#9163](https://github.com/Significant-Gravitas/AutoGPT/pull/9163). This PR continues the work to integrate AI/ML API support into LLM blocks, addressing pending review comments and ensuring compatibility with the current codebase. I’ve reviewed and fixed the outstanding issues from the previous PR. Kindly recheck the previous concerns — let me know if anything still needs improvement. Previous description: > Changes 🏗️ > > - Added basic functionality to enable users to send requests to our models. > - Added instructions for users on how to use the AI/ML API in AutoGPT. > > Checklist 📋 > For code changes: > > - [x] I have clearly listed my changes in the PR description > - [x] I have made a test plan > - [x] I have tested my changes according to the test plan: > - [x] The API key has been successfully added and saved to the user's profile. > - [x] Sending requests to each model provided by us, enabling users to test them in a project with various max_tokens parameter values and other configurations. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Ivan <waterstark97@yandex.ru> Co-authored-by: waterstark <84220220+waterstark@users.noreply.github.com> Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com> Co-authored-by: Reinier van der Leer <github@pwuts.nl> Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> Co-authored-by: snyk-bot <snyk-bot@snyk.io> Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com> Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> Co-authored-by: Krzysztof Czerwinski <kpczerwinski@gmail.com> Co-authored-by: Reinier van der Leer <pwuts@agpt.co> Co-authored-by: Bently <tomnoon9@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ayush Mittal <130590402+Ayush-Mittal10@users.noreply.github.com> Co-authored-by: Azraf Nahian <69325302+turboslapper@users.noreply.github.com> Co-authored-by: Nicholas Tindle <nicktindle@outlook.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: Mario Sacaj <mariosacaj@gmail.com> Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com> Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Co-authored-by: Ritik Dutta <ritikduttagd@gmail.com> Co-authored-by: Pratim Sadhu <pratimsadhu@icloud.com> --- autogpt_platform/backend/.env.example | 1 + .../backend/backend/blocks/llm.py | 36 +++++++++++++++++++ .../backend/backend/data/block_cost_config.py | 23 ++++++++++++ .../backend/integrations/credentials_store.py | 10 ++++++ .../backend/backend/integrations/providers.py | 1 + .../backend/backend/util/settings.py | 1 + .../profile/(user)/integrations/page.tsx | 1 + .../integrations/credentials-input.tsx | 1 + .../integrations/credentials-provider.tsx | 1 + .../src/lib/autogpt-server-api/types.ts | 1 + docs/content/index.md | 1 + 11 files changed, 77 insertions(+) diff --git a/autogpt_platform/backend/.env.example b/autogpt_platform/backend/.env.example index ebd9d7c6ad..4c5830d704 100644 --- a/autogpt_platform/backend/.env.example +++ b/autogpt_platform/backend/.env.example @@ -127,6 +127,7 @@ TODOIST_CLIENT_SECRET= # LLM OPENAI_API_KEY= ANTHROPIC_API_KEY= +AIML_API_KEY= GROQ_API_KEY= OPEN_ROUTER_API_KEY= LLAMA_API_KEY= diff --git a/autogpt_platform/backend/backend/blocks/llm.py b/autogpt_platform/backend/backend/blocks/llm.py index f4c16e48ad..a1fedeec52 100644 --- a/autogpt_platform/backend/backend/blocks/llm.py +++ b/autogpt_platform/backend/backend/blocks/llm.py @@ -31,6 +31,7 @@ logger = TruncatedLogger(logging.getLogger(__name__), "[LLM-Block]") fmt = TextFormatter() LLMProviderName = Literal[ + ProviderName.AIML_API, ProviderName.ANTHROPIC, ProviderName.GROQ, ProviderName.OLLAMA, @@ -107,6 +108,12 @@ class LlmModel(str, Enum, metaclass=LlmModelMeta): CLAUDE_3_5_SONNET = "claude-3-5-sonnet-latest" CLAUDE_3_5_HAIKU = "claude-3-5-haiku-latest" CLAUDE_3_HAIKU = "claude-3-haiku-20240307" + # AI/ML API models + AIML_API_QWEN2_5_72B = "Qwen/Qwen2.5-72B-Instruct-Turbo" + AIML_API_LLAMA3_1_70B = "nvidia/llama-3.1-nemotron-70b-instruct" + AIML_API_LLAMA3_3_70B = "meta-llama/Llama-3.3-70B-Instruct-Turbo" + AIML_API_META_LLAMA_3_1_70B = "meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo" + AIML_API_LLAMA_3_2_3B = "meta-llama/Llama-3.2-3B-Instruct-Turbo" # Groq models GEMMA2_9B = "gemma2-9b-it" LLAMA3_3_70B = "llama-3.3-70b-versatile" @@ -204,6 +211,12 @@ MODEL_METADATA = { LlmModel.CLAUDE_3_HAIKU: ModelMetadata( "anthropic", 200000, 4096 ), # claude-3-haiku-20240307 + # https://docs.aimlapi.com/api-overview/model-database/text-models + LlmModel.AIML_API_QWEN2_5_72B: ModelMetadata("aiml_api", 32000, 8000), + LlmModel.AIML_API_LLAMA3_1_70B: ModelMetadata("aiml_api", 128000, 40000), + LlmModel.AIML_API_LLAMA3_3_70B: ModelMetadata("aiml_api", 128000, None), + LlmModel.AIML_API_META_LLAMA_3_1_70B: ModelMetadata("aiml_api", 131000, 2000), + LlmModel.AIML_API_LLAMA_3_2_3B: ModelMetadata("aiml_api", 128000, None), # https://console.groq.com/docs/models LlmModel.GEMMA2_9B: ModelMetadata("groq", 8192, None), LlmModel.LLAMA3_3_70B: ModelMetadata("groq", 128000, 32768), @@ -616,6 +629,29 @@ def llm_call( prompt_tokens=response.usage.prompt_tokens if response.usage else 0, completion_tokens=response.usage.completion_tokens if response.usage else 0, ) + elif provider == "aiml_api": + client = openai.OpenAI( + base_url="https://api.aimlapi.com/v2", + api_key=credentials.api_key.get_secret_value(), + default_headers={"X-Project": "AutoGPT"}, + ) + + completion = client.chat.completions.create( + model=llm_model.value, + messages=prompt, # type: ignore + max_tokens=max_tokens, + ) + + return LLMResponse( + raw_response=completion.choices[0].message, + prompt=prompt, + response=completion.choices[0].message.content or "", + tool_calls=None, + prompt_tokens=completion.usage.prompt_tokens if completion.usage else 0, + completion_tokens=( + completion.usage.completion_tokens if completion.usage else 0 + ), + ) else: raise ValueError(f"Unsupported LLM provider: {provider}") diff --git a/autogpt_platform/backend/backend/data/block_cost_config.py b/autogpt_platform/backend/backend/data/block_cost_config.py index e099ebfea0..864ed0e989 100644 --- a/autogpt_platform/backend/backend/data/block_cost_config.py +++ b/autogpt_platform/backend/backend/data/block_cost_config.py @@ -22,6 +22,7 @@ from backend.blocks.text_to_speech_block import UnrealTextToSpeechBlock from backend.data.block import Block from backend.data.cost import BlockCost, BlockCostType from backend.integrations.credentials_store import ( + aiml_api_credentials, anthropic_credentials, did_credentials, groq_credentials, @@ -54,6 +55,11 @@ MODEL_COST: dict[LlmModel, int] = { LlmModel.CLAUDE_3_5_SONNET: 4, LlmModel.CLAUDE_3_5_HAIKU: 1, # $0.80 / $4.00 LlmModel.CLAUDE_3_HAIKU: 1, + LlmModel.AIML_API_QWEN2_5_72B: 1, + LlmModel.AIML_API_LLAMA3_1_70B: 1, + LlmModel.AIML_API_LLAMA3_3_70B: 1, + LlmModel.AIML_API_META_LLAMA_3_1_70B: 1, + LlmModel.AIML_API_LLAMA_3_2_3B: 1, LlmModel.LLAMA3_8B: 1, LlmModel.LLAMA3_70B: 1, LlmModel.MIXTRAL_8X7B: 1, @@ -178,6 +184,23 @@ LLM_COST = ( for model, cost in MODEL_COST.items() if MODEL_METADATA[model].provider == "llama_api" ] + # AI/ML Api Models + + [ + BlockCost( + cost_type=BlockCostType.RUN, + cost_filter={ + "model": model, + "credentials": { + "id": aiml_api_credentials.id, + "provider": aiml_api_credentials.provider, + "type": aiml_api_credentials.type, + }, + }, + cost_amount=cost, + ) + for model, cost in MODEL_COST.items() + if MODEL_METADATA[model].provider == "aiml_api" + ] ) # =============== This is the exhaustive list of cost for each Block =============== # diff --git a/autogpt_platform/backend/backend/integrations/credentials_store.py b/autogpt_platform/backend/backend/integrations/credentials_store.py index 09849536c6..847b20fa6c 100644 --- a/autogpt_platform/backend/backend/integrations/credentials_store.py +++ b/autogpt_platform/backend/backend/integrations/credentials_store.py @@ -60,6 +60,13 @@ openai_credentials = APIKeyCredentials( title="Use Credits for OpenAI", expires_at=None, ) +aiml_api_credentials = APIKeyCredentials( + id="aad82a89-9794-4ebb-977f-d736aa5260a3", + provider="aiml_api", + api_key=SecretStr(settings.secrets.aiml_api_key), + title="Use Credits for AI/ML API", + expires_at=None, +) anthropic_credentials = APIKeyCredentials( id="24e5d942-d9e3-4798-8151-90143ee55629", provider="anthropic", @@ -191,6 +198,7 @@ DEFAULT_CREDENTIALS = [ ideogram_credentials, replicate_credentials, openai_credentials, + aiml_api_credentials, anthropic_credentials, groq_credentials, did_credentials, @@ -252,6 +260,8 @@ class IntegrationCredentialsStore: all_credentials.append(replicate_credentials) if settings.secrets.openai_api_key: all_credentials.append(openai_credentials) + if settings.secrets.aiml_api_key: + all_credentials.append(aiml_api_credentials) if settings.secrets.anthropic_api_key: all_credentials.append(anthropic_credentials) if settings.secrets.did_api_key: diff --git a/autogpt_platform/backend/backend/integrations/providers.py b/autogpt_platform/backend/backend/integrations/providers.py index bd054641b8..30444c1ea3 100644 --- a/autogpt_platform/backend/backend/integrations/providers.py +++ b/autogpt_platform/backend/backend/integrations/providers.py @@ -3,6 +3,7 @@ from enum import Enum # --8<-- [start:ProviderName] class ProviderName(str, Enum): + AIML_API = "aiml_api" ANTHROPIC = "anthropic" APOLLO = "apollo" COMPASS = "compass" diff --git a/autogpt_platform/backend/backend/util/settings.py b/autogpt_platform/backend/backend/util/settings.py index 3ae35d6794..c349f0c804 100644 --- a/autogpt_platform/backend/backend/util/settings.py +++ b/autogpt_platform/backend/backend/util/settings.py @@ -385,6 +385,7 @@ class Secrets(UpdateTrackingModel["Secrets"], BaseSettings): ) openai_api_key: str = Field(default="", description="OpenAI API key") + aiml_api_key: str = Field(default="", description="'AI/ML API' key") anthropic_api_key: str = Field(default="", description="Anthropic API key") groq_api_key: str = Field(default="", description="Groq API key") open_router_api_key: str = Field(default="", description="Open Router API Key") diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx index 80e34a134c..3cceb3c6b3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx @@ -103,6 +103,7 @@ export default function UserIntegrationsPage() { "6b9fc200-4726-4973-86c9-cd526f5ce5db", // Replicate "53c25cb8-e3ee-465c-a4d1-e75a4c899c2a", // OpenAI "24e5d942-d9e3-4798-8151-90143ee55629", // Anthropic + "aad82a89-9794-4ebb-977f-d736aa5260a3", // AI/ML "4ec22295-8f97-4dd1-b42b-2c6957a02545", // Groq "7f7b0654-c36b-4565-8fa7-9a52575dfae2", // D-ID "7f26de70-ba0d-494e-ba76-238e65e7b45f", // Jina diff --git a/autogpt_platform/frontend/src/components/integrations/credentials-input.tsx b/autogpt_platform/frontend/src/components/integrations/credentials-input.tsx index 83e337efe9..690f58de33 100644 --- a/autogpt_platform/frontend/src/components/integrations/credentials-input.tsx +++ b/autogpt_platform/frontend/src/components/integrations/credentials-input.tsx @@ -56,6 +56,7 @@ export const providerIcons: Record< CredentialsProviderName, React.FC<{ className?: string }> > = { + aiml_api: fallbackIcon, anthropic: fallbackIcon, apollo: fallbackIcon, e2b: fallbackIcon, diff --git a/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx b/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx index 91bdc40f46..f74fc3c7c5 100644 --- a/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx +++ b/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx @@ -18,6 +18,7 @@ const CREDENTIALS_PROVIDER_NAMES = Object.values( // --8<-- [start:CredentialsProviderNames] const providerDisplayNames: Record<CredentialsProviderName, string> = { + aiml_api: "AI/ML", anthropic: "Anthropic", apollo: "Apollo", discord: "Discord", diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts index 635fa44e2d..873a6c735f 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts @@ -149,6 +149,7 @@ export type Credentials = // --8<-- [start:BlockIOCredentialsSubSchema] export const PROVIDER_NAMES = { + AIML_API: "aiml_api", ANTHROPIC: "anthropic", APOLLO: "apollo", D_ID: "d_id", diff --git a/docs/content/index.md b/docs/content/index.md index 243b56ea41..cd69844364 100644 --- a/docs/content/index.md +++ b/docs/content/index.md @@ -66,6 +66,7 @@ The platform comes pre-integrated with cutting-edge LLM providers: - OpenAI - Anthropic +- AI/ML API - Groq - Llama From c109b676b825188a5e9bc736b540941b31287292 Mon Sep 17 00:00:00 2001 From: Zamil Majdy <zamil.majdy@agpt.co> Date: Fri, 13 Jun 2025 00:39:55 -0700 Subject: [PATCH 092/497] fix(block): Invalid block input error on falsy non-null value --- autogpt_platform/backend/backend/executor/utils.py | 3 ++- .../frontend/src/components/runner-ui/RunnerInputList.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/autogpt_platform/backend/backend/executor/utils.py b/autogpt_platform/backend/backend/executor/utils.py index b5d8a348e1..2129632c2a 100644 --- a/autogpt_platform/backend/backend/executor/utils.py +++ b/autogpt_platform/backend/backend/executor/utils.py @@ -394,7 +394,8 @@ def validate_exec( # Convert non-matching data types to the expected input schema. for name, data_type in schema.__annotations__.items(): - if (value := data.get(name)) and (type(value) is not data_type): + value = data.get(name) + if (value is not None) and (type(value) is not data_type): data[name] = convert(value, data_type) # Input data (without default values) should contain all required fields. diff --git a/autogpt_platform/frontend/src/components/runner-ui/RunnerInputList.tsx b/autogpt_platform/frontend/src/components/runner-ui/RunnerInputList.tsx index a52dfca88d..6adf42d03f 100644 --- a/autogpt_platform/frontend/src/components/runner-ui/RunnerInputList.tsx +++ b/autogpt_platform/frontend/src/components/runner-ui/RunnerInputList.tsx @@ -20,7 +20,7 @@ export function InputList({ blockInputs, onInputChange }: InputListProps) { schema={block.inputSchema} name={block.hardcodedValues.name} description={block.hardcodedValues.description} - value={block.hardcodedValues.value || ""} + value={block.hardcodedValues.value ?? ""} placeholder_values={block.hardcodedValues.placeholder_values} onInputChange={onInputChange} /> From 5dafc086fba2a788f72e47d78afadbe2d1437426 Mon Sep 17 00:00:00 2001 From: Ubbe <hi@ubbe.dev> Date: Fri, 13 Jun 2025 19:08:28 +0400 Subject: [PATCH 093/497] docs(frontend): document spacing tokens (#10155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ <img width="800" alt="Screenshot 2025-06-13 at 18 42 54" src="https://github.com/user-attachments/assets/c1ddffb4-6898-4e2e-8961-49857c0ce65a" /> <img width="800" alt="Screenshot 2025-06-13 at 18 01 27" src="https://github.com/user-attachments/assets/22c5e305-a5ed-469f-916b-38e93aba7f98" /> Document spacing tokens, which follow Tailwind default theme spacing scale ✅ ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run storybook - [x] Open the Tokens / Spacing story - [x] Verify makes sense --- .../frontend/src/stories/Spacing.stories.tsx | 275 ++++++++++++++++++ .../src/stories/Typography.stories.tsx | 1 + 2 files changed, 276 insertions(+) create mode 100644 autogpt_platform/frontend/src/stories/Spacing.stories.tsx diff --git a/autogpt_platform/frontend/src/stories/Spacing.stories.tsx b/autogpt_platform/frontend/src/stories/Spacing.stories.tsx new file mode 100644 index 0000000000..59d97da3af --- /dev/null +++ b/autogpt_platform/frontend/src/stories/Spacing.stories.tsx @@ -0,0 +1,275 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import { Text } from "@/components/_new/Text/Text"; +import { StoryCode } from "@/stories/helpers/StoryCode"; +import { SquareArrowOutUpRight } from "lucide-react"; + +const meta: Meta = { + title: "Design System/ Tokens /Spacing", + parameters: { + layout: "fullscreen", + controls: { disable: true }, + }, +}; + +export default meta; + +// Spacing scale data with rem and px values +// https://tailwindcss.com/docs/spacing +const spacingScale = [ + { name: "0", value: "0", rem: "0rem", px: "0px", class: "m-0" }, + { name: "px", value: "1px", rem: "0.0625rem", px: "1px", class: "m-px" }, + { + name: "0.5", + value: "0.125rem", + rem: "0.125rem", + px: "2px", + class: "m-0.5", + }, + { name: "1", value: "0.25rem", rem: "0.25rem", px: "4px", class: "m-1" }, + { + name: "1.5", + value: "0.375rem", + rem: "0.375rem", + px: "6px", + class: "m-1.5", + }, + { name: "2", value: "0.5rem", rem: "0.5rem", px: "8px", class: "m-2" }, + { + name: "2.5", + value: "0.625rem", + rem: "0.625rem", + px: "10px", + class: "m-2.5", + }, + { name: "3", value: "0.75rem", rem: "0.75rem", px: "12px", class: "m-3" }, + { + name: "3.5", + value: "0.875rem", + rem: "0.875rem", + px: "14px", + class: "m-3.5", + }, + { name: "4", value: "1rem", rem: "1rem", px: "16px", class: "m-4" }, + { name: "5", value: "1.25rem", rem: "1.25rem", px: "20px", class: "m-5" }, + { name: "6", value: "1.5rem", rem: "1.5rem", px: "24px", class: "m-6" }, + { name: "7", value: "1.75rem", rem: "1.75rem", px: "28px", class: "m-7" }, + { name: "8", value: "2rem", rem: "2rem", px: "32px", class: "m-8" }, + { name: "9", value: "2.25rem", rem: "2.25rem", px: "36px", class: "m-9" }, + { name: "10", value: "2.5rem", rem: "2.5rem", px: "40px", class: "m-10" }, + { name: "11", value: "2.75rem", rem: "2.75rem", px: "44px", class: "m-11" }, + { name: "12", value: "3rem", rem: "3rem", px: "48px", class: "m-12" }, + { name: "14", value: "3.5rem", rem: "3.5rem", px: "56px", class: "m-14" }, + { name: "16", value: "4rem", rem: "4rem", px: "64px", class: "m-16" }, + { name: "20", value: "5rem", rem: "5rem", px: "80px", class: "m-20" }, + { name: "24", value: "6rem", rem: "6rem", px: "96px", class: "m-24" }, + { name: "28", value: "7rem", rem: "7rem", px: "112px", class: "m-28" }, + { name: "32", value: "8rem", rem: "8rem", px: "128px", class: "m-32" }, + { name: "36", value: "9rem", rem: "9rem", px: "144px", class: "m-36" }, + { name: "40", value: "10rem", rem: "10rem", px: "160px", class: "m-40" }, + { name: "44", value: "11rem", rem: "11rem", px: "176px", class: "m-44" }, + { name: "48", value: "12rem", rem: "12rem", px: "192px", class: "m-48" }, + { name: "52", value: "13rem", rem: "13rem", px: "208px", class: "m-52" }, + { name: "56", value: "14rem", rem: "14rem", px: "224px", class: "m-56" }, + { name: "60", value: "15rem", rem: "15rem", px: "240px", class: "m-60" }, + { name: "64", value: "16rem", rem: "16rem", px: "256px", class: "m-64" }, + { name: "72", value: "18rem", rem: "18rem", px: "288px", class: "m-72" }, + { name: "80", value: "20rem", rem: "20rem", px: "320px", class: "m-80" }, + { name: "96", value: "24rem", rem: "24rem", px: "384px", class: "m-96" }, +]; + +export function AllVariants() { + return ( + <div className="space-y-12"> + {/* Spacing System Documentation */} + <div className="space-y-8"> + <div> + <Text variant="h1" className="mb-4 text-zinc-800"> + Spacing System + </Text> + <Text variant="large" className="text-zinc-600"> + Our spacing system uses a consistent scale based on rem units to + ensure proper spacing relationships across all components and + layouts. The spacing tokens are identical for both margin and + padding utilities. + </Text> + </div> + + <div className="grid gap-8 md:grid-cols-2"> + <div> + <Text + variant="h2" + className="mb-2 text-xl font-semibold text-zinc-800" + > + Tailwind utilities + </Text> + <div className="space-y-4"> + <div className="rounded-lg border border-gray-200 p-4"> + <a + href="https://tailwindcss.com/docs/margin" + target="_blank" + rel="noopener noreferrer" + className="mb-2 inline-flex flex-row items-center gap-1 text-base font-semibold text-blue-600 hover:underline" + > + Margin Classes{" "} + <SquareArrowOutUpRight className="inline-block h-3 w-3" /> + </a> + <Text variant="body" className="mb-2 text-zinc-600"> + Used for external spacing between elements + </Text> + <div className="font-mono text-sm text-zinc-800"> + m-4 → margin: 1rem (16px) + </div> + </div> + <div className="rounded-lg border border-gray-200 p-4"> + <a + href="https://tailwindcss.com/docs/padding" + target="_blank" + rel="noopener noreferrer" + className="mb-2 inline-flex flex-row items-center gap-1 text-base font-semibold text-blue-600 hover:underline" + > + Padding Classes + <SquareArrowOutUpRight className="inline-block h-3 w-3" /> + </a> + + <Text variant="body" className="mb-2 text-zinc-600"> + Used for internal spacing within elements (same scale as + margin) + </Text> + <div className="font-mono text-sm text-zinc-800"> + p-4 → padding: 1rem (16px) + </div> + </div> + <Text variant="body" className="mb-4 text-zinc-600"> + We follow Tailwind CSS spacing system, which means you can use + any spacing token available in the default Tailwind theme for + margins and padding. + </Text> + </div> + </div> + + <div> + <Text + variant="h2" + className="mb-2 text-xl font-semibold text-zinc-800" + > + FAQ + </Text> + <div className="space-y-4"> + <Text + variant="h3" + className="mb-2 text-base font-semibold text-zinc-800" + > + 🤔 Why use spacing tokens? + </Text> + <div className="space-y-3 text-zinc-600"> + <Text variant="body"> + Always use spacing classes instead of arbitrary values. + Reasons: + </Text> + <ul className="ml-4 list-disc space-y-1 text-sm"> + <li>Ensures consistent spacing relationships</li> + <li>Makes responsive design easier with consistent ratios</li> + <li>Provides a harmonious visual rhythm</li> + <li>Easier to maintain and update globally</li> + <li>Prevents spacing inconsistencies across the app</li> + </ul> + </div> + <div> + <Text + variant="h3" + className="mb-2 text-base font-semibold text-zinc-800" + > + 📏 How to choose spacing values? + </Text> + <div className="space-y-2 text-zinc-600"> + <Text variant="body"> + • <strong>1-2:</strong> Tight spacing, form elements + </Text> + <Text variant="body"> + • <strong>3-4:</strong> Default component spacing + </Text> + <Text variant="body"> + • <strong>6-8:</strong> Section spacing + </Text> + <Text variant="body"> + • <strong>12+:</strong> Major layout divisions + </Text> + </div> + </div> + </div> + </div> + </div> + </div> + + {/* Complete Spacing Scale */} + <div className="space-y-8"> + <div> + <Text + variant="h2" + className="mb-2 text-xl font-semibold text-zinc-800" + > + Complete Spacing Scale + </Text> + <Text variant="body" className="mb-6 text-zinc-600"> + All available spacing values in our design system. Each value works + for both margin and padding. + </Text> + </div> + + <div className="space-y-4"> + {spacingScale.map((space) => ( + <div + key={space.name} + className="flex items-center rounded-lg border border-gray-200 p-4" + > + <div className="flex w-32 flex-col"> + <Text variant="body-medium" className="font-mono text-zinc-800"> + {space.name} + </Text> + <Text variant="small" className="font-mono text-zinc-500"> + {space.class} + </Text> + </div> + <div className="flex w-32 flex-col text-right"> + <p className="font-mono text-xs text-zinc-500">{space.rem}</p> + <p className="font-mono text-xs text-zinc-500">{space.px}</p> + </div> + <div className="ml-8 flex-1"> + <div className="relative h-6 bg-gray-50"> + <div + className="absolute left-0 top-0 h-full bg-blue-500" + style={{ width: space.value }} + ></div> + </div> + </div> + </div> + ))} + </div> + + <StoryCode + code={`// Spacing scale examples +<div className="m-0">No margin (0px)</div> +<div className="m-px">1px margin</div> +<div className="m-1">0.25rem margin (4px)</div> +<div className="m-2">0.5rem margin (8px)</div> +<div className="m-4">1rem margin (16px)</div> +<div className="m-8">2rem margin (32px)</div> +<div className="m-16">4rem margin (64px)</div> + +// Directional spacing +<div className="mt-4">Margin top</div> +<div className="mr-4">Margin right</div> +<div className="mb-4">Margin bottom</div> +<div className="ml-4">Margin left</div> +<div className="mx-4">Margin horizontal</div> +<div className="my-4">Margin vertical</div> + +// Padding uses identical values +<div className="p-4 pt-8 px-6">Mixed padding</div>`} + /> + </div> + </div> + ); +} + +type Story = StoryObj<typeof meta>; diff --git a/autogpt_platform/frontend/src/stories/Typography.stories.tsx b/autogpt_platform/frontend/src/stories/Typography.stories.tsx index cf31899f59..493cab98c4 100644 --- a/autogpt_platform/frontend/src/stories/Typography.stories.tsx +++ b/autogpt_platform/frontend/src/stories/Typography.stories.tsx @@ -7,6 +7,7 @@ const meta: Meta<typeof Text> = { component: Text, parameters: { layout: "fullscreen", + controls: { disable: true }, }, }; From 36d304f03fb27093c25dad2efa98b2510217c09a Mon Sep 17 00:00:00 2001 From: Ubbe <hi@ubbe.dev> Date: Fri, 13 Jun 2025 19:08:54 +0400 Subject: [PATCH 094/497] docs(frontend): document border radius tokens (#10158) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ <img width="1761" alt="Screenshot 2025-06-13 at 18 40 50" src="https://github.com/user-attachments/assets/d24a0350-a371-4067-9666-c3206aacce13" /> Document border radius tokens, which follow Tailwind default theme radius scale ✅ ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run storybook - [x] Open the Tokens / Border Radius story - [x] Verify makes sense --- .../src/stories/border-radius.stories.tsx | 252 ++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 autogpt_platform/frontend/src/stories/border-radius.stories.tsx diff --git a/autogpt_platform/frontend/src/stories/border-radius.stories.tsx b/autogpt_platform/frontend/src/stories/border-radius.stories.tsx new file mode 100644 index 0000000000..8b9620c896 --- /dev/null +++ b/autogpt_platform/frontend/src/stories/border-radius.stories.tsx @@ -0,0 +1,252 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import { Text } from "@/components/_new/Text/Text"; +import { StoryCode } from "@/stories/helpers/StoryCode"; +import { SquareArrowOutUpRight } from "lucide-react"; + +const meta: Meta = { + title: "Design System/ Tokens /Border Radius", + parameters: { + layout: "fullscreen", + controls: { disable: true }, + }, +}; + +export default meta; + +// Border radius scale data with rem and px values +// https://tailwindcss.com/docs/border-radius +const borderRadiusScale = [ + { name: "none", value: "0px", rem: "0rem", px: "0px", class: "rounded-none" }, + { + name: "sm", + value: "0.125rem", + rem: "0.125rem", + px: "2px", + class: "rounded-sm", + }, + { + name: "DEFAULT", + value: "0.25rem", + rem: "0.25rem", + px: "4px", + class: "rounded", + }, + { + name: "md", + value: "0.375rem", + rem: "0.375rem", + px: "6px", + class: "rounded-md", + }, + { + name: "lg", + value: "0.5rem", + rem: "0.5rem", + px: "8px", + class: "rounded-lg", + }, + { + name: "xl", + value: "0.75rem", + rem: "0.75rem", + px: "12px", + class: "rounded-xl", + }, + { name: "2xl", value: "1rem", rem: "1rem", px: "16px", class: "rounded-2xl" }, + { + name: "3xl", + value: "1.5rem", + rem: "1.5rem", + px: "24px", + class: "rounded-3xl", + }, + { + name: "full", + value: "9999px", + rem: "9999px", + px: "9999px", + class: "rounded-full", + }, +]; + +export function AllVariants() { + return ( + <div className="space-y-12"> + {/* Border Radius System Documentation */} + <div className="space-y-8"> + <div> + <Text variant="h1" className="mb-4 text-zinc-800"> + Border Radius + </Text> + <Text variant="large" className="text-zinc-600"> + Our border radius system uses a consistent scale to create visual + hierarchy and maintain design consistency across all components. + From subtle rounded corners to fully circular elements. + </Text> + </div> + + <div className="grid gap-8 md:grid-cols-2"> + <div> + <Text + variant="h2" + className="mb-2 text-xl font-semibold text-zinc-800" + > + Tailwind utilities + </Text> + <div className="space-y-4"> + <div className="rounded-lg border border-gray-200 p-4"> + <a + href="https://tailwindcss.com/docs/border-radius" + target="_blank" + rel="noopener noreferrer" + className="mb-2 inline-flex flex-row items-center gap-1 text-base font-semibold text-blue-600 hover:underline" + > + Border Radius Classes{" "} + <SquareArrowOutUpRight className="inline-block h-3 w-3" /> + </a> + <Text variant="body" className="mb-2 text-zinc-600"> + Used to round the corners of elements + </Text> + <div className="font-mono text-sm text-zinc-800"> + rounded-lg → border-radius: 0.5rem (8px) + </div> + </div> + <div className="rounded-lg border border-gray-200 p-4"> + <Text + variant="body-medium" + className="mb-2 font-semibold text-zinc-800" + > + Directional Classes + </Text> + <Text variant="body" className="mb-2 text-zinc-600"> + Apply radius to specific corners or sides + </Text> + <div className="space-y-1 font-mono text-sm text-zinc-800"> + <div>rounded-t-lg → top corners</div> + <div>rounded-r-lg → right corners</div> + <div>rounded-b-lg → bottom corners</div> + <div>rounded-l-lg → left corners</div> + </div> + </div> + <Text variant="body" className="mb-4 text-zinc-600"> + We follow Tailwind CSS border radius system, which provides a + comprehensive set of radius values for different use cases. + </Text> + </div> + </div> + + <div> + <Text + variant="h2" + className="mb-2 text-xl font-semibold text-zinc-800" + > + FAQ + </Text> + <div className="space-y-4"> + <Text + variant="h3" + className="mb-2 text-base font-semibold text-zinc-800" + > + 🤔 Why use border radius tokens? + </Text> + <div className="space-y-3 text-zinc-600"> + <Text variant="body"> + Always use radius classes instead of arbitrary values. + Reasons: + </Text> + <ul className="ml-4 list-disc space-y-1 text-sm"> + <li>Ensures consistent corner rounding across components</li> + <li>Creates visual hierarchy through systematic scaling</li> + <li>Maintains design cohesion and brand consistency</li> + <li>Easier to maintain and update globally</li> + <li>Prevents inconsistent corner treatments</li> + </ul> + </div> + </div> + </div> + </div> + </div> + + {/* Complete Border Radius Scale */} + <div className="space-y-8"> + <div> + <Text + variant="h2" + className="mb-2 text-xl font-semibold text-zinc-800" + > + Complete Border Radius Scale + </Text> + <Text variant="body" className="mb-6 text-zinc-600"> + All available border radius values in our design system. Each value + can be applied to all corners or specific corners/sides. + </Text> + </div> + + <div className="space-y-4"> + {borderRadiusScale.map((radius) => ( + <div + key={radius.name} + className="flex items-center rounded-lg border border-gray-200 p-4" + > + <div className="flex w-32 flex-col"> + <Text variant="body-medium" className="font-mono text-zinc-800"> + {radius.name} + </Text> + <Text variant="small" className="font-mono text-zinc-500"> + {radius.class} + </Text> + </div> + <div className="flex w-32 flex-col text-right"> + <p className="font-mono text-xs text-zinc-500">{radius.rem}</p> + <p className="font-mono text-xs text-zinc-500">{radius.px}</p> + </div> + <div className="ml-8 flex-1"> + <div className="flex items-center gap-4"> + <div + className="h-16 w-16 bg-blue-500" + style={{ borderRadius: radius.value }} + ></div> + <div + className="h-12 w-24 bg-green-500" + style={{ borderRadius: radius.value }} + ></div> + <div + className="h-8 w-32 bg-purple-500" + style={{ borderRadius: radius.value }} + ></div> + </div> + </div> + </div> + ))} + </div> + + <StoryCode + code={`// Border radius examples +<div className="rounded-none">No rounding (0px)</div> +<div className="rounded-sm">Small rounding (2px)</div> +<div className="rounded">Default rounding (4px)</div> +<div className="rounded-md">Medium rounding (6px)</div> +<div className="rounded-lg">Large rounding (8px)</div> +<div className="rounded-xl">Extra large rounding (12px)</div> +<div className="rounded-2xl">2X large rounding (16px)</div> +<div className="rounded-3xl">3X large rounding (24px)</div> +<div className="rounded-full">Fully rounded (circular)</div> + +// Directional rounding +<div className="rounded-t-lg">Top corners only</div> +<div className="rounded-r-lg">Right corners only</div> +<div className="rounded-b-lg">Bottom corners only</div> +<div className="rounded-l-lg">Left corners only</div> + +// Individual corners +<div className="rounded-tl-lg">Top-left corner</div> +<div className="rounded-tr-lg">Top-right corner</div> +<div className="rounded-bl-lg">Bottom-left corner</div> +<div className="rounded-br-lg">Bottom-right corner</div>`} + /> + </div> + </div> + ); +} + +type Story = StoryObj<typeof meta>; From 6e253ecade57ad996ca5c2cb408ee5ddccccbb39 Mon Sep 17 00:00:00 2001 From: Ubbe <hi@ubbe.dev> Date: Fri, 13 Jun 2025 19:10:32 +0400 Subject: [PATCH 095/497] docs(frontend): add design system overview page (#10157) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ <img width="800" alt="Screenshot 2025-06-13 at 18 29 27" src="https://github.com/user-attachments/assets/6a2f9c23-860f-4f92-8a7a-eeb7839940fd" /> - Add a nice overview page for the 👶🏽 baby AutoGPT design system - Customise the logo on Storybook to show AutoGPT one ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run Storybook - [x] You see the Overview page which looks good --- .../frontend/.storybook/manager.ts | 7 + .../frontend/.storybook/preview.tsx | 2 + autogpt_platform/frontend/.storybook/theme.ts | 9 + autogpt_platform/frontend/package.json | 2 + autogpt_platform/frontend/pnpm-lock.yaml | 6 + .../frontend/public/AUTOgpt_Logo_dark.png | Bin 29892 -> 0 bytes .../frontend/public/AUTOgpt_Logo_light.png | Bin 28804 -> 0 bytes .../frontend/public/autogpt-logo-dark-bg.png | Bin 0 -> 9766 bytes .../frontend/public/autogpt-logo-light-bg.png | Bin 0 -> 9766 bytes .../frontend/public/storybook/atoms.png | Bin 0 -> 383471 bytes .../storybook/autogpt-logo-storybook.png | Bin 0 -> 52225 bytes .../assets => public/storybook}/discord.svg | 0 .../frontend/public/storybook/docs.svg | 4 + .../assets => public/storybook}/github.svg | 0 .../frontend/public/storybook/molecules.png | Bin 0 -> 306668 bytes .../frontend/public/storybook/tokens.png | Bin 0 -> 290458 bytes .../assets => public/storybook}/youtube.svg | 0 .../components/agptui/FeaturedAgentCard.tsx | 2 +- .../frontend/src/stories/Configure.mdx | 451 ----------------- .../frontend/src/stories/Overview.stories.tsx | 466 ++++++++++++++++++ .../src/stories/assets/accessibility.png | Bin 42336 -> 0 bytes .../src/stories/assets/accessibility.svg | 1 - .../src/stories/assets/addon-library.png | Bin 467366 -> 0 bytes .../frontend/src/stories/assets/assets.png | Bin 3899 -> 0 bytes .../src/stories/assets/avif-test-image.avif | Bin 829 -> 0 bytes .../frontend/src/stories/assets/context.png | Bin 6119 -> 0 bytes .../frontend/src/stories/assets/docs.png | Bin 27875 -> 0 bytes .../src/stories/assets/figma-plugin.png | Bin 44246 -> 0 bytes .../frontend/src/stories/assets/share.png | Bin 40767 -> 0 bytes .../frontend/src/stories/assets/styling.png | Bin 7237 -> 0 bytes .../frontend/src/stories/assets/testing.png | Bin 49313 -> 0 bytes .../frontend/src/stories/assets/theming.png | Bin 44374 -> 0 bytes .../frontend/src/stories/assets/tutorials.svg | 1 - 33 files changed, 497 insertions(+), 454 deletions(-) create mode 100644 autogpt_platform/frontend/.storybook/manager.ts create mode 100644 autogpt_platform/frontend/.storybook/theme.ts delete mode 100644 autogpt_platform/frontend/public/AUTOgpt_Logo_dark.png delete mode 100644 autogpt_platform/frontend/public/AUTOgpt_Logo_light.png create mode 100644 autogpt_platform/frontend/public/autogpt-logo-dark-bg.png create mode 100644 autogpt_platform/frontend/public/autogpt-logo-light-bg.png create mode 100644 autogpt_platform/frontend/public/storybook/atoms.png create mode 100644 autogpt_platform/frontend/public/storybook/autogpt-logo-storybook.png rename autogpt_platform/frontend/{src/stories/assets => public/storybook}/discord.svg (100%) create mode 100644 autogpt_platform/frontend/public/storybook/docs.svg rename autogpt_platform/frontend/{src/stories/assets => public/storybook}/github.svg (100%) create mode 100644 autogpt_platform/frontend/public/storybook/molecules.png create mode 100644 autogpt_platform/frontend/public/storybook/tokens.png rename autogpt_platform/frontend/{src/stories/assets => public/storybook}/youtube.svg (100%) delete mode 100644 autogpt_platform/frontend/src/stories/Configure.mdx create mode 100644 autogpt_platform/frontend/src/stories/Overview.stories.tsx delete mode 100644 autogpt_platform/frontend/src/stories/assets/accessibility.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/accessibility.svg delete mode 100644 autogpt_platform/frontend/src/stories/assets/addon-library.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/assets.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/avif-test-image.avif delete mode 100644 autogpt_platform/frontend/src/stories/assets/context.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/docs.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/figma-plugin.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/share.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/styling.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/testing.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/theming.png delete mode 100644 autogpt_platform/frontend/src/stories/assets/tutorials.svg diff --git a/autogpt_platform/frontend/.storybook/manager.ts b/autogpt_platform/frontend/.storybook/manager.ts new file mode 100644 index 0000000000..20734b9f3e --- /dev/null +++ b/autogpt_platform/frontend/.storybook/manager.ts @@ -0,0 +1,7 @@ +import { addons } from "@storybook/manager-api"; + +import { theme } from "./theme"; + +addons.setConfig({ + theme: theme, +}); diff --git a/autogpt_platform/frontend/.storybook/preview.tsx b/autogpt_platform/frontend/.storybook/preview.tsx index 71114f8fea..a515bbfef9 100644 --- a/autogpt_platform/frontend/.storybook/preview.tsx +++ b/autogpt_platform/frontend/.storybook/preview.tsx @@ -12,6 +12,7 @@ import { Subtitle, Title, } from "@storybook/blocks"; +import { theme } from "./theme"; // Initialize MSW initialize(); @@ -22,6 +23,7 @@ const preview: Preview = { appDirectory: true, }, docs: { + theme, page: () => ( <> <Title /> diff --git a/autogpt_platform/frontend/.storybook/theme.ts b/autogpt_platform/frontend/.storybook/theme.ts new file mode 100644 index 0000000000..0a7693ddcd --- /dev/null +++ b/autogpt_platform/frontend/.storybook/theme.ts @@ -0,0 +1,9 @@ +import { create } from "@storybook/theming/create"; + +export const theme = create({ + base: "light", + brandTitle: "AutoGPT Platform", + brandUrl: "https://autogpt.com", + brandTarget: "_self", + brandImage: "/storybook/autogpt-logo-storybook.png", +}); diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index 93ae716f1b..ff174e390c 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -98,10 +98,12 @@ "@storybook/addon-links": "8.6.14", "@storybook/addon-onboarding": "8.6.14", "@storybook/blocks": "8.6.14", + "@storybook/manager-api": "8.6.14", "@storybook/nextjs": "8.6.14", "@storybook/react": "8.6.14", "@storybook/test": "8.6.14", "@storybook/test-runner": "0.22.1", + "@storybook/theming": "8.6.14", "@types/canvas-confetti": "1.9.0", "@types/lodash": "4.17.17", "@types/negotiator": "0.6.4", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index bd95c49a1e..a258b772eb 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -225,6 +225,9 @@ importers: '@storybook/blocks': specifier: 8.6.14 version: 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3)) + '@storybook/manager-api': + specifier: 8.6.14 + version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/nextjs': specifier: 8.6.14 version: 8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) @@ -237,6 +240,9 @@ importers: '@storybook/test-runner': specifier: 0.22.1 version: 0.22.1(@types/node@22.15.30)(storybook@8.6.14(prettier@3.5.3)) + '@storybook/theming': + specifier: 8.6.14 + version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/canvas-confetti': specifier: 1.9.0 version: 1.9.0 diff --git a/autogpt_platform/frontend/public/AUTOgpt_Logo_dark.png b/autogpt_platform/frontend/public/AUTOgpt_Logo_dark.png deleted file mode 100644 index 622dd6a544ee2d4ef971b8c5d6bb41650c38d123..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29892 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 afP(m;A#>+*o$Un{_xg1%Ys+mJ3I7M00uk8& diff --git a/autogpt_platform/frontend/public/AUTOgpt_Logo_light.png b/autogpt_platform/frontend/public/AUTOgpt_Logo_light.png deleted file mode 100644 index c5dda2d41bd254146db29cffe5c98bad7c30d06c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28804 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 diff --git a/autogpt_platform/frontend/public/autogpt-logo-dark-bg.png b/autogpt_platform/frontend/public/autogpt-logo-dark-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..08d38d34faf567f8bee7fe3941341a0c584524a0 GIT binary patch literal 9766 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 literal 0 HcmV?d00001 diff --git a/autogpt_platform/frontend/public/autogpt-logo-light-bg.png b/autogpt_platform/frontend/public/autogpt-logo-light-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7de7be41d96bc6082f60729b75747e5be329bf1f GIT binary patch literal 9766 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 WJ_Tlmy8iFdL<erDQLknn{eJ*p66NUt literal 0 HcmV?d00001 diff --git a/autogpt_platform/frontend/public/storybook/atoms.png b/autogpt_platform/frontend/public/storybook/atoms.png new file mode 100644 index 0000000000000000000000000000000000000000..e93ed56ea64ae4a02a20b111aad78a7c1ba98ede GIT binary patch literal 383471 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%0A@Xa(f{5j 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 lWO{16EM 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%0AHgKv`bb|4=Gdw-m?>{$6% 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 literal 0 HcmV?d00001 diff --git a/autogpt_platform/frontend/public/storybook/autogpt-logo-storybook.png b/autogpt_platform/frontend/public/storybook/autogpt-logo-storybook.png new file mode 100644 index 0000000000000000000000000000000000000000..3a5588b34d552c7b3f92616e10bc71d248a509bc GIT binary patch literal 52225 zcmb4pg;Sir^FQvz-QB&o9q#T<Tcl9j-J!TcaVTDjyL-_h1&V9YB3I<F<G8yo@6Y`H zf#1$E&m_B>Y$o$cHk)jMuC~e>EJ`c{1cWzgs*3su2*_Xr1SCWZ<W~+0Pa5pC@~Eq6 zsPtMzzy=^-%OPONz@vo`aTF18<X@tMU@>puuV1tf{Idw+8&z1OAR;1-uv{|ivuK7W z9O;b`JW>!EB@`zOM?@rj3Fk*Z;Y2`ULPWsjw*HYK3s>}gNfU=7VM$SQ*lD@K`5b;B zVoD&tkt5*oK|<r=v>ZYq&_+ZP5OUu|M4~}NVL?WwG5P=(^F5}K|3b(YAQg0rgdv28 zE{Z~+9;gf_7mtsWgVU>iWzzXhBp5=cR7fHe@tmg0s9DLP-%KhRV_^eFBQ+pnw4h{u z?=N);4&!$b+r^+V^-+Hv9<h@?JPH85O;EKng?maI2|KUB<3*^LZQhx|t*n27l9a@} z_MyStUqs=-(zjZ^Z~{tAaKu{z3JreSDM-{?6f{<FAh(n7Dha(YDTM+Hl{YtSC@uLX zLudF~hPcN_VO&CEGLrYViAq{r4ag`Aro01>5yBYQ{3;xkn7G0c%o!hq=7^|tvL#`% ztc5zEa0&`(bN)$*z)LhNUVZM)NU0la0;wV?xNP{tLonZCv^b}B4Jc7r$)x!qLIm@T z$bFpbW2~fwI~)a*kH@q#T?zgWFYjx9c$cV1Bc1dRC4ToA;K{jnA1^1UI?b+D`0!cU zQ*8r>)=b6y-i~GN{<E~4MH|4T?E~kS!iURvA+Vd(5gDJqAOD%7=u$Y}jetf8omBjL z&P^eMs<*nMvP$d3>>s(cN<36H=%qf}3I39>XjZTrb9i@zNuVUJ_)CF3SI2rsT7N;p zY}j3NK}dU2%Ve8RHH%&%+FyQ)nB9R(F<ptHh?w)Et;T_)#3;R3!2bXSKzJjIfb$AA z8H6|T2v~9m*a`@k(ulZ9hzLXo2)JpYa6#8i1Vr*oQ8+G}i;5Rqz<G_|X&Dhmh1YI2 zNgS@^1Jiea<1jm7GuU#!pHg#&!()XJ@zixb!SOjg5D_ro(E?O}40r@DCapC*_AR?v zFNIW!yEdHFxFbde9x4wPGunP9eWj^&=CFk1`ilHHAAM~D1Sk~t0)2tPo?)*g82U5x z8S)5weu2F*U@+)24h;4J{$CmP1i5}?{U`WO^glxR-=Bm5_VC*F4hF+|)rRrG@bMuq zC=6<G><GEqgTQ3{U)7+npD-91?DS=Q0#*%!YQ6UI846j2L31I`*F|7js(~)`l;;}= zM240PQf~?sgj|H^JwPFja@>bdDBm5d4b}*R#$Q5jm#ls-xETSi4<EeyD)N^ztQ!0_ z+;@6o!-JB?obeD4CNI?#<qQKhFIQTe#$<^j-n;L+Dsqx=>SILf7ZtdaA-2m?`Xc&A zMqowKqa=G^DHPx^WB6sX@y41oKMh77@>~yfA^x{D{Qr~jCkr;PA9B6L4$UBBp{sge zQD|A{9xxgD5q((wC{W^hM`f>bjK8Qte1m0$(X!l=x@LI<DMI+~!`k141$)0xGm(X3 zE$~XC`WJ?nJov?(Z^#~ke_iSdo=)0^`vZO<9~o%qcPJJhra45(h=fmxfL8#X^$cH^ zv|VE@7fam>#~0l8qdlUVV$Y|hRzz7G!8uFO7L}ORLt%;DlA9t#s-j3{;XpxVF;%Z4 zwS2+DmCt>vz|bb-gg$fy<;`7F9A6hoxQ1>I_%}c%uY!m6`nVY24EfS_(BmDXhzCZP z)$)tlIrakUHoAJaJ>2uYL<s}zK1F?J?Z>N<9%e|MqRco*ziP`YmH(~)Z<N1u=$y9L zkVk$hd}O50M5pWDd9%stA)4w-&&psv_%pZ`Qicb<V6%KAYQ4F<x0c@iZm55S$^;q@ zUVgEw0c3$6LEw;Yj^#%SM{IUk;sKA>a%K7f$wq^%uwF3vkQq<`a&dC%c?u25n}Hwy zVvKQN&Ufc?wjlG96VTV}m~7~n<ar4!EnP$Qw?2#uYqJ1!VlYstwCvPMcLI~5zV?g$ zUW<RJ2Fsd*vwp;Z<*luV(2xPt$rqDS#|l#pdanMRE?X_YQB|yG$76~NJe-@kW10Rn zaw}<uQo;0XJam)$ta2rc4dO(giG|a)0#uF5UC0-1ew6e?PA@)M(;zx0%0xHzi2m)~ z##bjF661pQC^HnKTe}{MZMhj_wP!$<Cmi0{3rAVgG;x=?MMuuN`dLs436&R#YHBji zNi;vjX6mWokq(@{yghve6U|Od^5D=*|M~|xl(=|_sV^MJ?MO;=-6DJ{mzgEI(whAd z_l&lN72@#MR`uwV2qaK3*|h~7g~>2DSFLS)Ur$8_DTQK&5bSNAVkbORKL@1&O2J?b zWS*f?d`@uTy$&gZofWl=`*_P6-gh$WnzlClgnR3!fPxI0yq(j9b%4Ft-78RDEhlI; zfn@T6Y*YtIzY5Zg)n7*jUd?4eKvmF4%i70by3b*cF-BqXtHatA$6||yA>YE^_oi)N zK*2xY?;k*=Rrvs_=V-MP2>B@fv+eZ4I-A`w{WYCrOL6`EpTT&()t}mXQz3co2;hz< z0L&wk4bZi^Fa}i&wz@EBaVL;BR%>Z_)fR-y&+4dZKmsCq+N1!iS%D!Yc~|G}D``TR zu7wBF*6G&3XnYJ@M_+GDN$zYhUlc>zn%HK8N<|)c4VXd8`=ydyrRwgzX$-M2)`ffg zR*B7Ggk3HWO~+3%kik96)rghwY%1*7z6NyuZA}L1=MmD}*5>W;0=#SAk(4;M_H8PW z9t%hCu7e8QX*KUYj_{M=PTFwGPjRvj)}bQSr^)H>F9Snx-e;GKK7aKfTLQSy8NMBY zj#0(!rS|UB^&ruaGoL^l{zATY)dWN60_x+^Nt%}f=(=ZuE&f=#Uz|->>esqRhrn7x zO<(F3{1Rb0Cz;{&c>~fo`*?-E-*u)Mmj87}UZ`$kn+JRDN%i4z#x5?;|9r4sG>_oC z9O}hVsAzfAxJLz$iA>gm2)uswJEKMxe&SnTzBf8Z<F6dV`zHgu!+pDYK#ZqzVR8=Y z<M@30sjO*b(m+c*Tny$&An%r8tq~Y5eKR-KM=pPSv#bq4Gb<8TygeQJWwLh&YFQB_ zKgWy*i!acXn#ZJXAtl(X9`rR5JUB?wb$w`GIRozWmm`43_=UJa6he^!RzT!EI*=|N zL)XNGu{btxZZ?-^(6Kb$hQm_krMFUK^oAg6Pp1(48IJi&rsndae_Hz1!FaS6$Cs(N zX9M2f2s6Po{JkLojy!47$FPo+!4g6=@nh+S=RZ$Vj4|A$2T7vGs*H5!g}aC9&BcrM z?i*U2=XxfBd-RwgE5CDp;VD$hFm%b@qi#Mma-ATH4-_7(ryd$!{`8wLmzaV!UO{f( zSX*sA*3?0X-E(VordoR*pF=lL1%kkdimw|};<CKimEXE}@2ycW9s0xE@gPb#F41)X zH;ACsGO_8AVK7>fH2X0q(@Lhlsa-;HwIM^iQB=W(>^^H)bY<<yur!?o^Z^iW^;Hzy zeX2in+r8ZBmUA#2fd8R3ZE7+v2u~5}T`2>3j^Q?XX>A>(8z*x4N*i@3rS$%)Q!an+ zv8o~W;G#;#EoE{!B!)YU_W8+e6*b{m`*s2s&4ZJy*nO2#4EUL${n3*p9wZpt{nUUf z|3#^fG&}pAH{#Z<0PM#YR;SlttY8Fuh(pNYU)eSBHa#ufWwPT4X+V{uJ2*V=oA9!6 zGrV_pb@nYv4sF@}cB!*HxxNeaSYV9V&Kvt|F(dz?`YBlAmIf#P=ka9m3UBjcZ+xiD zbYuTy2=BeLv>cRG=MLY?TQEfoqrCo>=3mmYHX-Dxp?|N<So22VEw!fcGkG4{3e-F2 zIm9z9y%6LEnCgYPWDDK%6JEH!>`UOuSa7j{?5RH;3uw+)&79t7(8O$K`*BSv>vd*x z-;D=DlYl=Wm!Cg1MC<I7@yWS+rT#?j^L4w&>>-d$@d6YA(anG%#5L=UDdFda4fh^W z^MT5AubbJa)PFiRtb5bF&xy<+EhNbM33IZzdn-P+JUDVua3W9uFs3s#CjvGP*>16< zl)4m)Ut=5ec^Jr_o&02zUplt`7=Q`(m+7Jp+Z)djHhyj_S>=*p=e*bY5mE*oVT^g9 zT2b!&z3{*!-btmT9sqqiIz%m0FC6`E_o4BR^begs&cQJ+Z&MzR^(*mix-;5A`$Iv> zdVqkB4aGRAx7E8fwP}c*lP^?TF)u`WpN{o83M-{P&}zy90^m!V2!ig*f^>GdWnv0{ zuU21u>j5!U)z{x?jP||8HiydH$PlnYKbe6MN!Y^nU!8qD8F^TWzv%^fsJ&Ewt^y<j zwgH^%n8T-wdzvf}&43j^9Dz5nR`R5$U#oYg`PB9mAQ%eMX-W~xn?)rXHvtwku%6n1 zyuBkbaZIzk&lczCRl_Omkj0~YH{!k=s1|2Qu~1h{Rj3r<yi}T!j67-efQ=W#1CaWh zVSPCkS_?#n*feMzj5V^2+6umf&v#BT(lI1?HW|os?WO!K3l&A;1m7rh8ioxaLZz~j zzuy9@XG)7pi;K^G0rpNzz!+x94-mnkG+B|tfYR~o6p?+D1@7ScU+ag3EepTc>=sk4 z_vS`}oc>PNmma5ZT<D0?xSuA^PU>d)hfRq3W0+lQ6=z}v^MnbBHz(0m=wA$PO34UG zFNe_o484+6C`})#`Mx_7cN*$)Ys(Xka&_oJeA(6TrqX;*WIXq`iRe#A3^y^@-sQ|n zF|1rVY$UnX!IinjmQOfb|Br#rRr1v(L96Uh?r#RGj+L|u)i=_8Ih!ZcfAXDybM`Xb zhbt7%fDOrDlDbIt)YCV1pYn;nh&(VJaG9D?>zh8Ie0krTPVhr}{iIx#bdkhLPwu7y zA22+_hJiy`pwirW8$N$Du`<x(R$;df*AU!rhJ%h~^TidW2m*WXK*Fmv+0O(Tw~u=! z*!Jjk0eHXfU33eEzv@isDGaJENzrXezB7`3`SLJ*dvd?l-$%!~$8&<`AoDg<K9%-% z<;8MJhunGKn$Od>#+<viL?s&fSK2xnYA32KpKAWoUFpZYwtL~x*m587#dyOXu<Zrz zZxaaO#F=*~4;Vun>*{gqrNxHr$vT=Az&t*#eWjHZQgBiC(4DM2_tAz|J~c{YkI0kq zFVA)K(RruUW)O5NDIl6oVGs;B>ZL6N;d>GPt2g)5{vFt1ZF0MRzO$qd)_5uWYj?J* zD}NzWGKM-b*n}Z$33RIk^-Qwf`8QBcI!|TyoZ?hU;o>MiiAxjnl2XjZ)1T|NU6aLM zP21#m!vOgBob@D=mh$*#)hj6@hC4<DvbcI7Sv-Fw@cSv_x&0-*iOnr`eksIKcCw5j zWQ^u@C8q4K<Ic0O?-hd8y;?2gw-tYNHH9qi?n(&Jtlbc_78e`E{O$O@C%G*g_V?QL z4-v$m8g6d~42^EyyY_ws(EWi^7BZ)FNxz$D&r@?U?&?Cpd!Mj^EjqLXwAV4l{yflE z7aw164!n%E;Wbjaeo(O;)aijm<N;9rt+3c};rX%LPd8u(Nz|5pg)MCY-OL8|>fb^U z$*y00=AYG;M0~-Y6(sFz=}oY{UHLFL&$v?4I(z^EBfpDd7`nT)oK=`I=Dm`8jIl`R z%Juf;@kL}AIBVzW4jYEb?cmXfzCzTMB5gQ?>&&U#J(BJRl%;cLd$xhqv=W_F<~sT# z#8tlY`s}?AT2yH9YJ>QupOJP!GA@nTqwmop?a&zB>OIDWUr3{d@DCkUX<8iKe>|;! z{<%<DW8X`xJ2xxBWr#xMPsHl5pUx>;*@SoRjhFbU^GX99Vx|7NZKgeo(ukfB2~Hvl z4|QqMEm7hAU^9~2_on+-ckgFbkd`7@|Myi2G0JYaH$Knl2XqzXL$_l^am<2j`N5%L z^NOYEU?Cez;3vgr>O1GSz8xEn!?`#0L{P+a$CJ{J*w*qV5D%rP#`}<@muLEurg>wQ zn=<G9UXnZhC#jyjZMZ3cyhG}0<XO+MjP>x!d;)Qc))iS(cueE;afkr`J*@GV!LAe8 z=JI`?wMfTReLLABX>jwr1MfCgJg8cRJOWqBIWB#}Z)=IoKt}HQNLG%@2hVNgKHBEv zQ#Y^=P{jUGn2-UU6C9lB#Q@mI0YDDr(-wA&*POYJAZLhw?400{1h=K#Ma*WBw5oeL z?}yrjZ2W;JS3Cog={GVyO`P&m?^A(TQvTm%c01#1v}=Lb=Dm_E&pYqdQEaRy=(-cr z(o>{N6T<#P(?0iA?y|AP8i6Ji_X<G)Xvxo~!rHGO&5+~=r~#_M^C@gDQkG$*&@mF| zOAFw8Q#77XX?jY300zh)MP<U!2AY;TQ%E$q6bjgHMcLbmj-=_q*s%PaG@l*!(nF97 z`;=6;-_{{@B0aUcHMhDIGh5V{Riu9P!z;9cZ}Fx03bB#udFCX}g8PD?H8MAN@%RHQ z;MeEOMpDs^G|urJ{(!e(bHltvF|!^`Uo1z~^Z*a8SM%S~!?uPzrG<7y&h3Dar=C<X zvw3`(%x2%4D(t}n^)p=OBQMoAw$*^phd9X9>wGZqs(8|$(UZS1%gLhwTtu-vI$xwf zEN2v^PFO?KP+E2R?$a-SR^85kJC)$FCGO|m1au5kJ<W+8w7pxlW-|W-wHIJn{_)@m zyTO?Sn&%kmlXcF5Cy_P)a3gDnaBavARHI0jJE{~C<B|-XN0L#tB)u)p`k?(=a%x%N zr0yYr|5u3o$<PDQulc?Q72azSCs-Y1Bn{_6;FT}Z9G&ML+wY4m101lhBpRH(n11Px zNV9p3?*#TlF4(m@bbNuE<#Q%yh}N&O-yi_!`qS1I2lLH8*)syM9XiP{fTZ|AN`S|k z`8cPCT3wKiHE2fezG?BlzP;7Fr1vIn#CGICFScZ3a#uO{>z<|QZ!FhSfI=1S{|>Fb zfmiNpzl#z`G;XmS@lQ4?66hT}(`bgV)oOz1O0mL2fHv5Z?uIex3YMgh?W^|#$pa4t zwI_6vJK#Ocni7+k^s#O4Olsb$IPi1kpeCrUW-=N;AAZ_*!NRM+dbH>5&NumTrYJ4t z*);q`Y695AkO%UM^8mTMhPuP2aRLd+95QadCZP*P`P6-({h)k?7=xO?QCx<?z-F$3 zKWmtd1x*<M84l0ju#=lJx|-hkxc!Cjp}BaSDQdpQ3f01*cI_hamR~}9-8WAU`4^&1 zHsP@Bw&$4Hwze&03cy{~H|Wiu!tXA;mh3HU7_Vz<A$RlJF7|JC0@&foBgyM3>j_`! zEMv#nmoS;iN~lF62tI$OIQ(FDfvNa8UBI9$iDTD5Fp$%gZdf6gTbKfAocI|bAE(M7 zXufAq-!7VME--;JG&*?@7Pd6te(foK3PZe--W_0u!7)n$+YaDTzb9l6`e)M8>O^g* zK>i@`X`ce{0(sb3dKcbn)!=4A_iyc6I%4Wn*H!rH#XW;e+w0BK|D(Y(9}h{g{cg)S zH|4eHMaLiznPfJC%E9A@KAlOnF`t0U%ig!#P=v|-Wf3zeDel~#NykdGrL1eGhzL(^ z*_A)-NhdeVz7z}FdWv^rAq=}Ohg#*@|LFA57GG*D@gYM*2mnIeZZA1c8F_N*Jx3Qd z>;TvZ!yhaDnH_&0?O^1IPcXaa4HbNCYI`~m)~CCanHP&~%yAGF+^>*@H~g{9np9H2 z(!A`%wq+^xz~zwz0U=x~s~@QNgPcWpR);~!h-*&=8R2@(F>kF>{m*C9n2i|2an_6S zU+C9nnI}dgAC&A2t_@n=r`n$5WrQH4`C4aQt>?$n)Cp1v@KimV*&`sp&Qm~%`3inB zpYD#+EVEviUv1nk_4CqD88c~C2@!dcm*OJ5nh=@e;{DNL)Olpe?z71Z7>SieNCPfy zll#tUyK<!F#B)z7Fw+g&76ZlHJsDi4C@f6tm_KpI7vt@B?22*GBxU}ckofRZIp@Qx zmUEv_T`~)oi($MHb34zu|Lf37?^%1iXGS$0m`44Wi1mNd^uIxXwfNuHH!$f5`G3w= zXa737?na!>?`&t1y5%ZTtMBHF^jXWDKax07c9ZxjcP>}PC7N>$8$$J9DJ|mCq4si1 z`p}R{k|MM;yA2k5oLx`cIgA?*xXG%W3ig_}Xsw6HZH5@%U0vV*y+KCSxy6vfO|F>` zjLMd)t_WOsp_LAM_aXouPv5@}b!rfuK<7g~hK66>{k>5@UbuFm>Ss8eHsGHRRx^{> zD!Tu>csPl=3O3)=RZ|$HbdUC@50luuYlG5C%cO#mK%gWzQs8x9*cs>Hl=;UhVP@pB z?9VzMrGxGQME^9=(b|ZB%E{ZKKj6A_rVUvYhq8U`-uqW#(|K|4&}IgZcD*uLBcm$; z@;M83B3%tQTQ-+4+i!Syz(f4~AE)*s9{C=-pj{wn+O-Wn@5J~$a0m3@G=R9bdI5wU zj;Uo!4kR=h^Vw{U{b{C4Q6Br_BSD>V(7i+Va99XD2Wj;Th8Ey#cBUK>497o0Zr)3o z?pcKn-`y|@@RBR62Dnoa4MVFjwM1f|Hj(N-1k@>0Hg9@QVWI~wg_ypcH`CMu0bB>m zGmxW@g&Xg5Q3wDxI3j_c>dhhPWPJC=c2gtl&EEZm#^S%NMIX88e*rI{T}i2v75aL_ z90C*_%}2*;I(J@O7bEZK@c7;~5QZja>q{D4rRwq2D2PRXp?#PVCCZtWY7;?xRcuuC zI9lmiejIO?YVp;L<*|W2t5ZK8t^-yND|`0+1~|}Ux1k<qpt0J++qJ^-_(Qqv2^?JX zcy<R*&rK{>$-HskJKc8A5q%P5RC(RMe^y><#=at~!$J1ExuV;9(3Us-$N`g{G_cm2 z3-KBtFDZ{rV2bTm+;|(C@R<9BLQ)CIJT2CI^-Oj>O!69{hUM|&bn&%`i_@z*!?i6W z!J%$L&V+XS>Q*EyEI|q;&ZY|XGMDuU(5a3d477q)U&^yoaAB6|ftJjoQEg1=YvT0z z6WJ9rJfPg=n$U-BK{DEQ3*{5#A5KOu<*gYpD=eUEhsNhPpjlel{-+Kew0eabkC?UO zQ+>}G4G{1=hK<F<){ejM4Wi629r8z4&x5qOHyPN1Mf8A62Qj-@+`2VH8AmdOR0j{e zki9hvHY@oeP1a@1wKP$g@B#43JjKVw@wNe)^suN(j6kw9y#vT~v;7&B6|a|L-O{`x zlcp2(nU&eUqF)L66gW{wGSVSzXMiD|2Vk?F9uKqlSuDYRa>r`A_XPQ=Dy9Sc_yaM( zD!eb3;_^_fK#{!}LdetD<TLSQx6IM%i*K<?LP=-b+_}|k8l}6`Y|fj?K`gr}mr9)V zki*dC0Mw0U9eOn*!JWt7a0FnfJ8oQnh?$+lnpr`0<>E)ROy>+O6{W5D(xwH#%uA7v z_1dwvQ-AZyqP8=1*~O0%#Kx~&TalQ|I!{pXsU}8yYwgBcpj3%cImtZdQw_-qyT8e& zid#Z7L*E7lNwM!r0|xl?#YtA>LJXe|G3#}aD55Fvan<m@SVb&(G!h`q%|Y_uTYfk* z_UUG`bw6iJ${F##W8TgO|I!t^;O3qN2^CJH!&dz1;XKtc1`^*71(xQ`2&);e2dNwe z-y0g{Al=*xn$2$BH|+_fm*B>22uXb6Qdd$eYC>d-ma|_>Z6ut)RI%pCI(uicJ*Wbj zmOYsk!}{9aW+P6Aw6WjdH0-}@dRR{qW85&)4F%Ru_BC(5L+v)@mE%G3!Ya#P@OENt zV9Pi)ld!$D31MFjEfH>&qpQlqps23JGc%}NJYqiH)bz?1&b7|ej>apAFTzg25B~_$ ztua5@H~RWn<9-)ydkx=EPTzyoR3&Q4;*f<my<?XEkGW1&gBpcNn2@n#N<9r@5HFL- zfGsdXO@gXF4(yMbG!WIMq0WYUda3D}?B7TQLGu$+4C3rK+-g-@B;C5u`L`J;Y4%;U z1v%AHcDx(W6_dzA*GwpeKgNOa!Ef?V5JI{G2;aC8NM*Eb{zj&5fdrJBsaBNJ?^W+v zBL7W8Q|a42o9G9-R{nCR_CeZL=d$9Fvb_>hE8>Mn@QBDM1OpLO?6g)cGB+B$@KJjA z$9U)XC3nJ?gzAZC#_VZUXG#<^B0;xz@&1|7FQQv@c#d!K(p>6Y;?v*UB7zH)S=qvD z1oLz*(=i;yvX_`fS%E-jBN2n^T=xs&$aoc$Z)x%S%oZ68Z>k7uNBlLKIkI=`&qBw} zdP#@TYzuj%B{4Fs(R66S8-}NX0t}w5C*nSom4)WKmz3iEV&m<AzCUmnd0y``k6)R7 z{d#c_{i0LKZn|~><u>E((2bg27fv8XDemg*B&6o1$pD&Xst%(x+;Yh9OEz@(jfC|k z6Y^N9X_IT|1`-}=pxYd}bhTd(62FG1AJvbOx~**b%fOp`jda}peGGTB5X3#FK}7@g zHGB#zqz;cpR=E9;#Kp}C{_*37Ul!U&Qa|h`L-Os*<c4VxJ^+2xSCx9ZDcl$K7G8uZ z-pLtPb29uO@axOUFU?dG*(IdL*g!Z}kB@Mqv*v2cKbbI#+Ca>WI-<w#*Lk!y&O+so zY<RbTkk#uPsd|9RDj8Ywh3`)~@V?bKZTL%t;Sc=A)#a|da9;rJ?2;5;V35XVX|#IJ zAId$6m8>xnC|A>{e8u=8qIN#Kw|07$0(&rODZE5JjVkqP>pXQw#*YY>ax@kcKMI!q z&SbFt<X(|qldl1dyr2*@iUM5%4H*g0VuZe#YDM)`SeTi*W7K@>@}4!g@~rmZDT6%1 zXJ0D4MxXZsjOjuU);8EIGUdxZ5)c|Kl_N<-=;b|mEdx$Kq_mUa$-Kyq%3ozyMQDTF z8y@T5>;@ofH!J#hH%#GeL7|d8L(f?Q-X<wW@uSUkiT}P)jG;ugCy+A7#8j%T60N6- z`1F#a`0?_ieMGCleX(0HvRaXT%fI*oNjiE6?ijkY;yPKYUT~&iv<3yhd)oc3PNYuD z16m*Sq)ghmcXkVl4YQJdR$zow7O_6({O-wH7PEnmf!BgTjKS%!xA6s^f1iF*TvpLn zvwR}fsKz(hCd0jiJN4I84(fhaB#-sWgr;|wd6gK5{CRkyID&VZ1J{6Jqu#TnswFAz z6TEDOd3R?mqGB^x_z<$c09<Mne+di3et79%-+D*~4MicJP_?JzW&=T|-Pg}bBQ{L4 zW(?krW?dDJHH8~#rCZwzbsItj$a1wR4(DIf=wd?9*4Zd5d>9H*zB0w$&pw5el3x{q z<}12yLiYKO$<vV(<df7BetKN(CS@6l&F8PI0se&Uf<ip~{eHDG$fHH>xOwHwB}i#$ zQ*!)T{O+U<!3g3fe>8R<45v8VqiNApz`r&>x2rPJ>)#3P%EAov+_)1|tH4ph3`KuO zjoTW|0C#XN*$86LmE9jg_tV#7^FZz{GtT(@*+`R}7?W8o+c0>BHNDhQuXAKi?h6Ok zmYfuc5Z|LL%pk(z3cPrPW|4LCSfE8DJR14-XnA~z4UfL)nOI?l`t1e(Q+3h&D!jBk zY`Z9p#sgt$prMI%emP;}T^wO%52F8SrYULcEN9YeeZZPfaN&Yi`rG@9!^S7sPyuzi zLZO3%H%iW-IkY7-082bOb{RTxZ(^#SBQE#Q!>PTYx%^BFmOK6lx$<88xy&qm2cmD- zVWWyb;PJ_QXh{v}#oGNz^Mx1x$}D1f_6AePXAEPknqS$rD>K8evm}?xmO_!b3qG44 zU==9J-cQ`RedQN6<@JBbA!2}!dO;jMy2F&AZkurWp&MzlM7kt-t(N1u=NW<N?tdK= zRy2?oIZ~y>2VZjJ-{=_3Cf^4&xp=1`F4VxcYuf&$@-i}w!kSyrv<WjDu|qIGH_A@p zex=Ucc$=O^`P8rrc6?bBSr2sNQv>kk(*wXp73|a@x;J4h=C9jQYsJ#Lk7#)ia!$dP zO-FdW+<T-thEYAuLf<EC6*^z~Bc#hzXXgtAPT0A(Ku3n>MmGT`?S2p|^{vPXlg5D= z!?SQVa0UGQI4K^!r4s0zMFfrTAv#&NT0&$VcKnpNNM~p!n<dt3IS}+%8npa*poN(J zN6G=>J3fHr_xz1mxLIDpJ(K;@JT+$#cUfhdjrAzln{-u8Cwh02TTm7m1)N0F0qwD! z8)xP)7fb$BoCZ`Wvhm`Jx}ebYo%a6K`Jg;16Kpk(SjZoFZfImnysYpv5zt~vRnFX~ z^lSIiH$!;>8-uQ{03RFZ^}l}sVUpE@8Bsik)~YJo-vSW_TD82(_0KjVFNYgS1RsxA zxYxap--Y{v!UHaz|6Mcdw_uM51sG8aF{26cXQs!N=+gMlo-devj6P|QKsgYppSQkT z2p!rL>atZ+lgs?=?Gt*8?sny*b@-(%`|U~3k%S@U4YzN6{aN#n^dRJ(K+d~sPwDkR z*QK&VuJ`Rd?Xsav<!(L#hC<owKFj@SZvW1G0WAnt{}I#^H=(-e_b3Az5wdMs*Aae` zpOdYZlbF2}&AiDbF*x)LWtpluA)Xac7!3yYu3tR^$_GOIw|^Xb8^yQ7;neC8qK98i z?OC(kGe?wJYtq$7WLug?l2YvkqP8T5Cuy7@rW-_n*yAt!u!PDmGKC_)RCupK6jM0t zMC$kc6-$49DP2tpXuZ=W#vXjj&B8*NgC#gqVw=N{=^%Okoh;9wS^ei)hzhd0MbQPW zXx*M)YNJ&XZf|wNI~|FE+;@nN5)squ)%5)Lt+_wGGQKl!e5cA!^2O4sv(TR}29|aK zJ^s>NwxHjY&-O<GwX%4wL+OZH`;$DobKWnpE++Fb*V;iz%b{Q#a96oEb{h&uReJ_W zEJgC2mF_>Gvm(gt%LurM0Lqp<0;-#@`f^M^jw2a+r1XFp_G5=_19Pi|KO2G6ff#L4 z`%f+S?BoOp@{>U_6O2`uGw|8Xa}DmLy5+mRp$yJt_nXhu7+&wXc!bNt{4l~@o9*T$ zGDE43<4k?yi7{1?7IqG3@~E&GW1ZRhvXPW6cNNk)B2**NRe8Vdo(LR;d$-68T1|9j zoNlB`U$dzA+st+xC;$D1VXeiYvfPr0-HJ0i&8Qg<9=F>f*bMKZx^^eEn$#E#<M%aH zEfHd=w=ZJEKH%~{_Qu9(o|GVSFSx7#4DZrz_KqI_f0Bp$`EI3F-K%X&8Zl$OK@L?G zJ~ng`;`g00Qq&_^Lxxi4m41UMnW$UQ)|28f!TZN-=!<@GUMQr?oTG&7m*(pw6|vhy z?N~0V<R)DW258}p{w*Nm#Vzv3W%O^vTFZn|=i8`-0<j%dxDv}#YF#-W6K!{q|3ITR z#zhx4!D=(yFWlu0`E5}eRg$|aT>!p~lwtWKDqo?a1$gueF88!g6NS|2q7pcBBw$Hx zx<mQf;0$7}C9gh68a4Q~$LN4u{CTNRkH5LDK7#Mv5~CsFy3Zt@Gi0dV0lmxBY3uLe z$M+yPgr5an>bc*@Eh{hObI!OX<+KizlZ<}p`R3hzT~0{eO8xBUM3y`C+0=SX2w}4x zXIyMn$6_bj^!?X_c>mSBACypn68Y@dc{h(rLst0Y!NJd51o-85=P$boOtKWoT=yb2 z($AHw1mdz=y`^(k?^EuW&2zRrZ@K1qX_aA?etOC->ZxivUuW>#El`{h-}Bik)UP;; zq^0f+z{dL1TvEmnx1xxPRQDKpy#l!G%7aUom`RQh8@X}Ra1C>G^n0mC&fm%lEO>^| zs8V>kJBT>9OP+><a3#ZqE+o$sWM>|m)o9>yFpKm(9VF}d+pB5nW>o~)>dW;s(oT?3 zzq_Y27s<r{uatSRmD|VT=9+$agb)0>Sb5SE$@bW{bV8-`o4`oE7S~A$@fL?(Hiq05 zuRA6(O0_q)H?y_6;+lqh_}zp;f&;=F2kyBx1lxNfi~el|{&Ss9Cu#yKo*tC%a@LBi z1#A~%ex+Lki7l2-@Ty%IS<gfOlW2F2y*xqvLyjG$euE;5UCr*vSP@^Nym3g`m44e1 z<r6wiJRpYPQVO&sHfY=C*9SeV?A#*<lN_~)j|krnKk1Xtmem}6Wh*|FlS7qgV0{Vj zczD+FmChRsZ8LLAYOX&MT;wyg5M$+U`f4Fc{P954qTV9d05vAwj-kcR{Q*WXPq(33 zu`mwmE=kJ&<lh0}({B1MYcp_;RAlDacB>~fq;Qfo@^HWU^@H^Ij0VP6eX17Zs2Q@+ zsn&_gZ9!5Z?jFay-5GB~9;I=bSc)E-65d_FJF})oWxVVI)1A<~S@~52aSO4<HM^G3 z+?vYV#ACTXD4I)#SB5ce*l|TlW$hEyl{B#1%OGi^EE8OHG7PPK_2Rg2mQPO@yFN+L z{*MzW^cvwufqz}|TS`NFilBG(iX|Pkd?_=P8YSd0jxn9go5P>DDaEYR5=`;h)aoo} zf-654_vqx|TxqWj0f<*FP<&?>QTo~5IHY^K>*9P|n&O7+=I_%OtN3?50h8A5hRutC zxf$Tc`bO8(5st`2hU>z10RnVX%zc#bk5BnWX2-_+##7%=euR7+l1d3FjjB|p;I584 z${oNwy{fJ$@>|LOg!R0Y{S)2f?g236o-AU;y2lu>fjJ~d;8aYj*yyT?NRnrvwu_LP zU1UfU!8xiUQyX?~{+``o+$f1Xdgu7;99r|`e#c4FAyF?EQyhHD`PNC0MeIy_)WTiy z8wK^J_m8ZBFlYYmWPSa9)uAPP=xtb$O(P&{D6Cf!<>9k0Po5Kx9IeHC<$8+pr1=|4 zz3g`5_&rqb+YQ@9hrd#tVZps%m>H^V<zzA&vz)m)3h?JHVgA(VMA3IPJM(^NMelJ> zJ{69_B3;epC7^p)AbSZN+b28>*0z7aK<!*PKwT}3MX*=?PLS-v*3x##+#vWsSQ?>h z#m`5Z*}+}f$seWd{P5iaA?11;U!Nqx!(UD6ysNlEc9WxthY-+C)+TJqyJB6D!3y<# z$FI5hA^_iFdTE8f!=Tp}=e97o`#k#fNS!4oDF=4W4W^!U;g<Yt*i=XY_k=3L`)vs0 zYtC7UqGG~e<p|e|fJ9~S{yQoib+M^%5G-qWZ0ERjRR&w9HM`|og|srCZ}upiGe2sM zwTbz1h_(;<F!^aAqwE4|g*D*8kp^##tkkwWY)Dx&Q-rB~v2nbo0mwWdie2d9IUrGP zrmN$;Dq)mmbV6dsEhQ=fsbkZ-18tH7%XtW*_rDeSI7BS`9eS{jXY`kN-_DRupTIId zyU0<6qHI)Y=kgMWe09yhiF0tf^>a8*wmUm_&k!2l&X5&&2V9@XY7%M6hBpfaR8G~A zjdLY(#g-b(r~DqX+qEZ9xJ|DXQp$*SE%ej1i(k;SXINO+>kkzy0q9N<|8-Gs`x)Zy zuLScn*=X)q8|?f9+%HIL4+SaDe0ZNM%l6AcJnx6&iTM|#y)3@Wo1!)i1Jd7FZxPe6 zrT*53<;D&nQL>H@d0_RtDS``Juf6D%%rXLJI4NqXkLOzFcouSR*gK9io#~gNo<7LW zU#d%&yAR|2UNQs0QGE*hKoq~=e$tW~#>?7vMeAwg!c!A#5{_0ZN6gv%wTiuI-AAln zc|7UIX#XkU9ENy<vNMKQPdY2B9j$-3G-8i)v^Hc>q<ylEDSLr*ClUUz&3a#wDi)x1 z_1?4YLMJ`kkL#*9rYy=oLjm7Hi&sOVf>X=;>%{NwPOB12S8F&2EKXrwMXNAVku`o{ zSVo<_Fu<)t{$PsQ?nOsC<6}>!piTNvqJ#7(kU{YTe0jogl;(AXpah8}C?*XWe0y7H z{ElxCVYKGcMqKzLXz`(nnAulwj3FY4Fe<CLw3zoSIj}5>-1taSOGX`Q{U=gTex!!> zC&NKA46`Z?;S@Fz517iZ%}tb)ZPqY8g7Ve3X^h5OL^n%4R|I5rUffj*t?IiNk)Ok& z8kL_~k0LQY(PC=2#?|GzA195gtpy+g_=(T+k6@$2+GeU~8M`EaX*3MAuVjoo%~{i5 zesafSR?}}JpcHkY&t6qH2{@axstIzc^_3<+D7?Wct3+tZGiNZ)P|mNW%xQu;2s*NB zI#ydAYm0dto}Ev=&fbC1)elgzLn3hzE9lq+Xz;)@L}}?_8+?Bs(h(Nw`#3Vh+H+Y% zR{WmRjGRu!b`dRWbQHZ@EPh)b>%bB0pwDQdOV!;jP1SDuXUp#fLNt{NDo(isp_j{j zxP-Cd=?w@ZHA!3AmpmS!kR5>G%7X(DtW>K$QM=uvr+P<Uu*S#l@Ec;k*aaEW{lu85 zbAjweyjws<zxB1C<!@6uR;w=25rcmS?XjA$%p^u8w9n47mCh|+4pHaLyGmM3N#$T2 z%?V4-qBPM?4ytBX_+!|B{D!vC&H5#5b<uU}&g{M|Bx_?e)ux!4NY;VrOlZng4f1Ig z>A)<a{)CQ<P$4r#q`0Vw*7e_`(fWg1CDM(EYS)y+KJF@t7S`RalDn6vkqN<60SQ)6 zlbc!hqQvE`oY&m$IgsrpBrTOrlWR^;Tl|>v{fRTpg;;95rp%$((7>nEwWgLA^qi4# z@XCmu-raZj*TW=m7R6Uw7cWU11Zh>zV<uXrpFYld2^jpRU%zqNZ-S2xAd~5EhksQ+ z0@dK$I~22CGJ6!@hCJ&~PON0lc2!>x-I0HVcZp^aTQC}%vPQKdWnc3jo)TU~x$xwP zKvCAjjyEpsu<{Jc#Pkad>d@~wVc1J2s1(#i@KOO#7pE(FhD2MDhVxx91-D9OuiCt< z<jI2nc1;9Zba6cgY8mzBKBscj-!)V%nPNbtxbhsg&5-WeP`_&ceOse}s&3b|V6?Ht z(^~r?D}ODP*MY%oL4;gPAqv3OSY1;9`<=GAym$LEu;s)!S8FfGJuwISL^XRsm6m8w z2)p3iv}3WTiQ(ft*CYz?Ev9<Ht@>s_q&=0%P?*c<LLGJN`A}4V6jgpM{^zkTN9Io- zWv*1&OwdmYSDKo32LKy=1*^)b^abY*&qA8A=<m-2(J))&m(*_gR6~{o*52`7?vjm; z(vp&f>?pu=U<x`5K92!tK1&;4_wWZqF>f|k&Gj4IB<ESV%xny-jGA_Xp-bjXO`NE| zmAr?UKM0sHcH5v-2@BK?`^3#MN7*$I0~EA%gwI9BC338B54rnfh{3isQK)X?6lC5B ztK;CyofZ>g)L!-OM1xRZ-PeLi3>(67L6HQ6T#^rx^dEz(<S`d1v4cn-i>k#Z3lurN zAhEWTFm=Y8Bzv($Z64a{eg#|baFQCkn#|4l1DAi3vkYUVce}pXZNzxCHl$;rigCmH zHG8g|>?nceNML<)Af_lA{XRpa?_4g!2X7}triA*G$A4=mQHG+g_t$!bvkB%ezc=4L zW2p>FjEn@#s*tFfjxz0w%eN_Y;uU(#ooY;et_utf{QD<J0;MjS*K`PEtqR|C`iE+V zoao1?_t^O>!idvQx}L_j8IdH_bdg;U;V!MCP~@sqc`!FIC1%XMNpIx0e$yAwTs7Fg z10w9Q`G?NEeTQt#RYaYkunzyRsHgRYdL&t%OnvzCgY~UjidI#f#2S+Uk>$!f;rQ9U z4Mz*Zw{>`cZYiA=qHc<<iREwEM};82(!I74E1AI_OZKEEY4`B#yrsJ(=EzClN?%-^ zKLmAhYu6|d9&11KZ&kln9*J|j9E*M0)#|h(esnHHK+XSx`5#=G_Au?RL}0-1_Cb&D zxoSYSlO8Y}Rjrf9CHwNpi7D#B?8&ZJ$EWNmI9V;^U?p$SF-5E)*807VknZI`0(mpo zzfrw<GW`i~dG4x9!)(z4?DUl#MgWUMfKXRs4nxHAXB|KrF0F!2A8`I|$>Dz?=|f7M zy6I_AARGEX88#^6ZfqgdCwtzHAbsT2HO00cmmk`md$arcMjg0XY7cc0L>hDC?j$$r zeLzU-B~VtfPP28-(kht;O|LF*`o`=~RzeqjuKz&i;;0(&EQjDQaKi|oS>`H9&cx`u zy!i*LN79vIQU)pWHKyFA>g$r?u{gihSrxQZ6C{uCM|ZW1i*vod#Eo(+mUn6Xg5Er% z3OXe2%X<uZ=q27+=KNzGvD+b;$=xw6IjV4^Gl3Mk3=5YoNcQb<Q_Tu?pUppnBiBGS zV5J4-s8bUROm+(M`KzBKs%Wkd9tZ#aOKXBc9n!3N>6BpZT3?i{^yUm!r<B{_i`wZL zDn3Ho@v1-M8-osyy@CYt{!nP=GF>X68KGMse4oFD5mH|!t6US1tZEcn3W+w+sSBtM z@S<o*d>uguNOPei=(jV<`Jh6!QSB;nasOe!x=U;8HLpUEB91D%Ucj+p6k=p9CqZ4! zr}N;3UfYpA!I<G30s3C=oQ&2_xc|@heJ9sbVi)xO!_d2<qK2i0R?J;4hPz2%D&dW8 z`AfW#H^{EU#%DiNEvu69j3YNm6qG`=dd;X+|MuMl(lO$$a;lQ(`q;v8(Z|O9X!EAH zzD^2FFJkl#RgS;=Q|`w&<jHD(HJ6j-7UHA=<(nge0>2Mqd5K*uq=rP#&g|04M-MOk zW=$g)1bnuHzVCYA`_tD!+X#U|g#lIx81yytN{sVp-yf^2?b~23bolU{B0%qojrX4+ zI<u2m%62r=ver>EE$(bpVKMv;M+^g5Qpyx#kW7;P4{F%2>m9A-V8kKPJQQZsobfNj z_?5Uyq6BYQI&+1a?A!VJ(&<(4bxCRMWS@kXH7TpxbBqU$t6j-T|LubCWB>6-RG&31 zq3Gz_I+CW7#sdt$;~;8s``$CALblvGP)Q>4Xh_h1ulyDU?=Z@&+x3R`Zxt3^gwwi( zUuti;wSKCrDi=${zzIgxK;-R=v}+E_1YznUur?t6BN9pnU#1j<-#!1PRQg`hAmJcP z7-l7&>dowumE^KEbZkH38wiEeY`rhk()*LBJ5=L>T2azlJ}ut3>e%Ye*XPEzig@6S zOD}-#z$j1zSkS?;`qn63IgiU7P=T@nb8;3mYJXtp+51CAq6n=4{VWZWIrAuMat*!e zM_P#6l`Jy3BCEZ{O*QQPo|3QK+UZKV=hnzaH_(&xN9Kty(H{%PmhDN((!{R98^65K zt_L}`-`)DBm(~M*V($^Nd|BJ5EmNv61|Ol-?p|nrUzi{DeED3azcNQsz4}jD`Rwfl z;`mLItcR-Xp&LERvc%p(KYeB!-&zVZdI2+$zVWuKc9}gl5sjP9L%VlIqX`P%ipF+q z2ZFcjyEdX5&da~Knq5%lpjHQgLmrm5Bt)D=qJIl;j5uMhNi{VjKD?=T$7&V~d1;UP zxzMH6mW>ju{7*gQK`cF*5!V)h<*dCYB!7Sl_r>RQs{M-J&l#?BG?v2jONh-Uy`pWT zh!)(YR|ze-CG|d5rQTG_<JG=zcdMzD-7x(1!y3adtHeU#k>2pseR;ax$zgAI2)}#H zKdEz$mBdNm`z1Rsyj{@cx8AXz$ClrASg;ZcVDp1Y6Sna=>0WjV)2-a*Prr)=bez$x zz+Tjxgu4&w4;OC4X8QwY_nUYNYWuDwqjV!=e?5Qw<-bOKoYZ7d?X>8R?;03#MXO`R zBpuVrWHt>eABi+EQQh3S%9r|pC`e*RuAgg@qU>%Q%vSkQCNS8Js<ro2D-q9`-=Eby zD`LZkm;b$UW9BPs)pcxCCf09!t+Q<P=kR`NaBnhxd3-rKX%lzdywa15c2Hv5IN`g{ zgzI!pzvmYslkl8%-9H>kORn*uabH=Jh#r?<^eO7}LStg-!%T!i^fK8*!_8SjbVAs6 zo6&JacUume3B$L$-Z7l}>tFpbP!qZ8e9boB@rGRrbj+9k5!*2)R!y%`&{4OF<D4%1 zlN-%<WKft-?n=TLG5F2YCt_O~Kb+sB?H>DgWSwi3L?A+m_jo}m^;haVl|k|Pw=bb> z`L<IdHS8pu)#e#`I6;Td%1}f0O9!}^2PykQ3rYrj^|aK3{cJX(ohwS8Fz92gfbOdO zaptZah^=5Pn$=(~HeOewy!b+>m>EPI+v2%sIat5WP?i${Ck&-gDm*)Kaj_A%PoQ8g zaQ>A)_BbE^qDMKkZkym{_Dxy9O;9oi1B!pux4{;chFg`HNs@{HMOhZjnQMeYF0{WD z*6Nviu9{+?^cR^gX-0T))*6;U06}3_{uPcR-UO*=jz-uvB*X4ZY9@Vj5|@^Ip9A^W z&kS{=qI4@RJ}cIFnf!d%C?*5hd_WN6_|2AG)QNoG(2};ge7S!}kg+lA{XV6Fr`YgM z*|Y%S_GH}N;2{v3I!5;REX03A^EJoxa4i=mriWxPwQX?bIIb^ilt^j65oaQu<LwnZ zrPa1ygHT2A2`~Y5=Tngh-X$dCeHT!+a0Fg~b#tqtp)JrF5@626<`rdu4CrHL65?R% z{y1gnMcr&xR}b6Ld*WM5_P@TTj-unysjn=DG)sP`082TwattdgVZGZ}<jh9B#bTf- z^8$T@oS~;Hcz2NWLeyge!}bHpM!VumF5PUlCO#8cD2})AIEWkKkx`mfU8NN2ET}4g z`Skj;cW@%AkiPl8yE&7uE;OONQV_A>xW!bQny&0uuXu;4HUy^`B{LLtt<L~YD>Z`t zb2JqOFr|f-i%uUUA`bSlNaXF-p{JMch-3BB2H&iGQPa~wWSO8JMgwwwV0k<#Ug`_2 zf<p^?9yhw>k?ZZE1q#vbVU!aj=1ZBWvkX9yTeL|dXcxOA=uUAX;DCa@a3mDv{Jj%X zld35@)7bdtl3}N)j5!Akv{RjLIlj;M45hsJ_jkH!pIukHz|6gEZbT|*!?NF7xFB~E z3whVC$V$krVuV2RYntoe{RjG%*w(z$2oe@BLZ;1Z38B9zr`JbB6%4#{Y}ddCz4t21 zfe&XZb8c_1c9wCce?8i~)5Mw!^JsP112|kw5FR4E;S_3)AtZsndzx60eBMt&7dl0F z)Xg^b?SV&{>1QrD4AC-O?3uFYzBeFZicPYwqK>KEy1`BWR?|ew#ThZ)MEBw$oQBVW zc*L8&ynS*+F52l&tYHd)o~`<6)YkxITpzNQuMhg((-5bN1(2(DrM+XS+N8jddg~+u z3z|_g4b76E#Wg9b{f;rI`q6b<o_<c$29M76TPHtt`GS+jH|bY&SKfr}hDa&{+cF$O zPPKT2j};nqI}?3fjdcP;lH@39Vl0F}=dE65YN$0$&mX*TuD<10Hw&$ygliyG+?^$~ ztc3&-gEO?LNil}R&U!=h@%Fr6Eu>m_i)QV~d9(_8a<<a^9-<c&=G8W$W;z%<j6J?8 z8?s3Z=IqBIB_LZL?uXj6xS9|i5x3Ki3m}ef6;G?Sij5)70yE+n?nNG;>-o0lNU6Po zEJk>1v1<h*3hBGG@s^@E5j971)4Y19S9!trQnrU(N#%?-qh{*F??`Pp{rf&)*BA*+ zh5n;p^802Xo{Ai{DEsVC3AZQjGR=kHemZsek44xHk*j(o_z7XI)p-1h7yZ+c1pF^# z&G$e9*p7h7?;U0Rc#2<(VzK&6F@#%|nKJUk{?R|=tGeKf%XqUkim$ozw`t}>omuG3 zEDT?i8kal7xUP>>PbO(Kt_Q7l;kGOd_kfQcnA-d+XpWa{Q=%=*fL(N#W7L%*)=IK5 zZzdbh)_s~gZ~dSd*GsdE(jW7gxtXD4YVB#SXJ@s4FZh3K44!p=jYm+*NBN}Qc0VXW zGz%V63Dx>}76BfEY>EsG7+yn9i*je$;jsOLR&T6t<F{(Qq&Xm{+Bd+}khR6y{{dD& zslUwxM}|{#%QoMVs0}-YWb^e&30ZHQxSIY$H2i?NkjIkRdVYIz{oD2Rt6bVYvxj>d z12lUQu+xdI2z2=Af7er+Z4J=9nlA^nBj)+$E%J}W_jaSyLkAAJq;$tcxm>E+Esr;O zylYGlsdZWKz#4YSgzZh<-aU`}UV<*4{7+}`k!sj_oUhn1#&>wUu^j<NP)nQ_`8IZ8 zY84OF36PV-QzHLzH@P=9Ft@S;DHR)IT*U?zayz>`%M3l@7<kH3M1xW+HY#wJRAEi2 z=FRm1i;NYlPjp?@Pz*9T@=!x4^e2CP{kWdZ|Gd4sek}_xO%lLwB*YJ^Qar8`-5V^P zP?!uJ2FCZ@c<5hhnCPlrE@zwl%7%*{3uvyJY3c(H7!!V)v@~*JV*X!=F`R9s))n~r zf|sK)On%GxCunsr6Dxs`04ITX#yU9a3pVp(*J6-}Xi-HcVpW9hyv?2IFP?Mw#!)dW zAj@YjhoRB`Q0y3A(!e{QHZPr5E@*GfS$)0>O4;B8?08jYhU-s4`2N_vOTA}vO5aS& zlRr9%uXwX+&a;30)?D=9P1(tcm7-Y=A~~QeHi<uAk@KaIdk-&4ju*jmqw+4)r50K4 z^$3&6eBSKZSD@TUHoEs-=$1iOK=PeLa=U7tkOva&csY@XLq50VsTWd8K3cBw<#N*R zx9#j8{z{n8h}Ry#GxjM_c-6|9`|*E><St7)J07crT%NKRRikn~e4FYW6*qg}*r?Ky zE9E#07bkU<|IOaDvo>-?Va~bCtp+VjAuKlvNSHN}E7`vw*(zn)5C|l_AsA8w3~Beb z-N)Q}M-r$~ZP?!szHgFvy;>Pb-cqxL*@xv>Y0f>b@6lY34jn=<vn;G-Dhh#|mmoB1 zNzK*j-EN<sqd{FRSs|lCH6M9H<WChKuM}0iMi1gTYT)T9kzZ%01yRcIC=LaH9uxWR zF6Z^uI70S>JxwHsklTH!7B~q{4E?z}$)PXsMT0=LI!1!`b!ivFANHK=x$u5Ejh+CR zh^{QQ;}~xzcB;0SHuYk){uST9A7XP|D+~exl{+LMM?exsrmGJxh8!2j0W`IX^tz0q za474+``S#avc3EMZaUtq@4tHuR{FlE;5ni`BHloa-fA<OeU|enG9XwMQkVmn1-Up! z{$VZpYElb6(ipLRre1}5yoIBWN0knvaS({P^jtE-iqDJ6boJ*>&TkYy@n3*8D6s;? zk2h5NB~aIrgFf!|jW`Fc-YK*FjLj7#w>4!IER$xl!@H+-Q&-8Mq3@r0(En9KWHGcD z&fa2$DJ9T^N^!Qq=Prs+7ctl{9z1*%O?c6?4)_T=+z4x|>?o||{H^K6lgW4-s-{_7 zzUn-6GZ-f;SfQ|-QNu&tn(=h=%gYo{35Bs7*|ow+WMp^Y-DEr-!%x70?M!2a{r%&l zt~6*b%$uox<eXN`)#^F&>lPtT$#ST|Qi;o6tk2c{K^^*LVqp#)eQzh>DfKGj=@mA_ zM<o5tf>S+DHz*)#=!I<T?)dnZPvfP-MesL;A1Ihzk4~NNHIRZ&UNc$$h+Syjos#o! zi>I(p#0|B5vG0pJBInOW)1qjbjO&RfME+y1rBbG=`44X~!(7Bdv{YcT9UX2?Ja=Bc znWMVeITtq<+m_B;fDBWABl^G<n`v<wCtVj}TS`5+{PQ&;_qcS_=i+|~Cg^mssm7y+ z7k)ywr8tj^`}~gYVasJAq+UqGp>%lJ%4WZ(^}EgdE=c4gxFyzvtm00eN5+?f8vFz7 zJ5W)0$onGl&s)8NuKUq+2_S6&r=1Q?U_eal6tm)EuAA9dVlOO><2mJsMpwm-?!Us% zSJB=8lh$!50O4L=3{T$b!6Ja>YQd3g2O@ZNeB@tFDxO&x{sBEJMYB(7baQyyb5&zn z!hKdCXg`zM7K};(q4rI(=oR4s$^=O2o`FD^c3~`A>VoVV-P~^5wu9&wBF;dKo-vCp zOaPdk{8^K|l=|Ye)Bf_h?s~#uZ@z0h3A9B=k1rsdlL8bE!cnQN>77tp6F&{o?NC7N zDCe?m2g7&!E1Wt+6kfCe;W!xg>K5yt{>Shw>6~Re8NeN62Rc(-og@FSEO%j@H6aL* z^uTApsm#jlv3A1`!!fPt>A6Ua`at-+y&ml5{Nz*xO0tlb$h{5j>07;vDfU`9kZ41H zSRhRGgbCm3wnD<s`1UM8+fXPre|2+sNiHQuM{meTb9!|ea0=M2zFPhKwhip%Tm(d? zOr>BjScQE*<|MWn%)TOng8QL<Cao=SL$MWpND%Vu6)XXNbJ|w+@|ENMantyi@#gd* zdDsqi#uUA}fAOyjA|F!#L%ux5w+5);i25R%Hg`tI+G{};`nZ3vFbTBHp@}JH3tWkg z*FS$2`Ka_eAepl<ZG<?-Ir0y=h`Uf1BWP}ljeKwB=tQY>dQ`c;x^7X3_U;I%&nVI< zcCq^5%gC3CZoIDa1~=0C$!t%J{CNWt49x-aCrv&lm~<AqI-%MJVTTyC#D10%dO5S& zKM?a$l_)~@QJV6KBRMImXtR2Jt9H_-xvi9Cg!E&tNP7SZ<848T-kl3JMJSZtTk5pP z{tn3zLpa1e7Gv<s1>k0ZqiJus-z;<TTn&bV*&c#hyj}eGViRvmZ^{!X;zQkHA+9#| zH40dJjzW*B_0`^{{D;kz1?Z8($rOe90FzFdPY?fB``gYLdP8JqNQ0KHvu6z7VFSLw ztxfzGeAI+iiIUROW^i+K)Le<sbj!eo%EO(7TlMk!w=dzsV)49Y$N7TKJ^#BP=btp; zo7Wm#A+9?Rev>4od}5!UvIL}i*uzjB7Pbwun?v8v_3ajrhW;^BO<*DWFc#;#dhqsV z^5e#ch3%)wbdm@~J?V2|d^6ts^%a$jTENI9Y~M=^R9;Y|Wz&*F$56x>;Js@G_pd;{ zCQF)m<D<hbAsooq#qh=UueRP{=np9Z6`Bf=soPWab4FjzPRg~pYWAZUXY-1C1PcFA z`H!^mJNgOsk^dyUyuRm)yAJ(;9i1cpAYABR(nfIYFwYlGQmBbL9sY6r#J~!4VtY;( zlxGNl)A8!}FC*V3%`u}6^a(U^rQThAbuwcoMPm4}()yaC`H)Z9=P!!GB>|2YrfQ?7 z7sz3e&p<QF5R&(S(^8Er_BF)RCHaK=dE+%32u?Oio(IZu`sAntVAPIoz5=<gEyJwG zxAr64;IU$p$ZEQa$lne$TD@DWKJ4HBURRFhzqvOENlqt5TAh40S$sDeZOf!^w5bvS z?FuB(<0ufJF22FC9|eDK)!pcR|F)<~oE4G6jTHfx_VxPlf0pi3paz$RDK7;1Q0*^A z=dIphIYcFjCI?m}{50@Ij7$-(N50gc0hf|{d>5^Pdn-wu9X#wrenDgzaiF0@>4jyH z^H1jLsY^j~p+dDa$)Te?soJknGO+}p;|$>c;#HH(Zw@YeFyEjlRN(H7)^ZAL<onCn zH`&5o*G7H*PaIqmR+*9W(rUgdh&dcQDN-<pZnUlN0@r!!0CpZra6@7?EiUY9pZjdo z0J6^voT;P@!^*B&48Qw)m9X@lfNUd1XvEy9$JP4CpAT*qIrkF$vO!nA_jwXZe+il; zL+A5Wq~84c8B3QgP#HCg12DNW#-8{22j-{-qWal7d{zWMgA>^-R=*u@(lZXhDlP4N zMsLYnq|?#k&V)~uI<D|}GMohp`ux*Xw*z2zJ;6>=%avS6)#@Zo9-K;Aih`?`JiT}9 z?B-wsLlvS8iiGOCXl56#Hkjr0>YG@++;7H7E2okjRWAxBk_M27>UI}zy}GKC&=kpI zlh(^$i%0My_;T+_C6wI{I)$X>{*Au1J}720qQTH$U%V;T$obFR`4*>wc%k22&JoNW z#5(#OdbM@p4Y`ZiEt~mX4#QuAsm&<mJgrkYayz}XtLMnSi>>KAf#*VcxJcKWBmY3u zZ6m#}e3azjhDl>gyVx8Z`G0QA63g4{Nx?}N1)+%4!Q+lHhx7lr?vvL+9X`cA|3o#e z04uygEKf_5Ydq)ngst9ffze}7l(gztwMUoIp^^Wv-X^;DMZ}d4k>4*N`L^C!lb$-? zU%ZD5FR6EUyQvnM>Gqc{?|0Vuqo<PK%FQWxq;(IzP$mO>e`logtooskd3SOD3XSGH zz{31|@oE7#(RDgmefS*6v&6cd?mVpdGbu}+3loWLzwqPjNUNn9@3RZwR>J!Z0iB72 zrd3y0&+ngg_#CkT9bVS>u8p@{SDhz(2VJvy6Vcy8Kif&bQ*XSwwAdW|_I=olmpKT- z5A89163{zb-0W2Q&S)e6)GM{6z{t{*(Ytet4O+%ew)AJ9gMQT234MMQ`>wJuXj@Si zN@)*`{2xc}QG+8Exzq=Mhev6vUpmCR0m}Ejql_7kxGaGqH$k0KhU;AjU%kZs9&yp4 z*^X`Sh!u|luQLvIR{Tq&U2E#A*(-ybCxjrFI%ujn2|=%Li^zYTa8?)@vOez*8v()4 z82aFM@*j7=(5x?4)Ahq%T>;5GwU|>1o&arYwzK=^314pUf1!_dFdQOw)fvfi&^4SR z=Sza$d?YNJs%g{3>fO;1IGDIzJRdU|!ub*nRT$7Or9d)fG7%}CzO>vBmp3qWTn4El z2S*O6s`wn#u1@0Wc}7ykBTlSA<yB@k2h#LzF-bQ)fX&elhYx=;_2^rPL4WvkjlzOP zrvT*A|2GTq?ep~yJ5r#{5+qp=h7oIA#WUp^ps4(RV%6fI=~?bZ!&kUnH9!PZ1j%gX zJ#+qx$cN0Y&kR)77RKNU{-j?ca>y4b=ZR*aRF@z3=X`2+iit|)p+sM@YV_+fdKU;E zb}kSMiKd%$lQV|zuxmJ~G1GTsRS~``J|=IkSI6(w2aDvRP+Ze-ZyW;970t!)%gC<; zfkC5WQA3oLNM2qHPgUJUm<FtMLf<<WNVn-Jkzca!$p`8p;!B_p9}n4aQtPr*l<}ct zP9zW-wNFsj_F^*Mrqh34OvuhKZe3`J-VK27PuIWi@`sis_%0X{`^nSixQ%y5Gdlc= z+?e@tH`|Y@yV*P$f@_qc0iN>h#K`r_$S)ny!o6pHONWlkV<iIIg!CK<_fm*=muCI< zzCM2=&hTC-`uVStpsR<E&pF?91R+xE83l}KJA3Bp9SGrjLg6j+ydb8A>14V%q2(T2 zm)sY*P7MluszL*~wv+P}xD1SI5hdC>rpc34x93(Q&~*~U3oZe9)t(gjSnDPF;uNQX z$dVEc%=r)Nx^l{WcI$lcY^;$aZS@U#B!8}LaD7>!UdfQs7zyvWTRraN{Hk`zu(hWB zF~3n-`pZWL5RY_#EO7MK+-+|5w=(l53UPVQd0Ve;Zn|>2c^Ua$JSrx%5peVZ#6wtF z#4Mh^ev!X5om0Di)%kItnM+8;fIzAH8(UMaKHKN3=PP4w$xFKST<sqk`P)`SeB|C# zO=OuW|FC!Mx@}xRG<Pm`s|5q75F|D-K!FG$xuX0Bc9qht5x_vw2S}4HfZG)LpZvqj z?B0h+fE8;4`iAHnCW<UV3cXROl|TWu#O3SkJkHEH=Zooxm_KjRuuI+p@5Tk!_h!D{ zchp3jQk5P+wUlM(vvF>J{C>VA4S_n1x;tc4wx10Of+WIv4!&e7@j&GNJo(JNMbgZc z6rUvZE1JpA&$w89B8?fCjHE_eYNvyT>(TM|d&n=_kRmm!f|*hePcQ*f!KX493xYF@ zH@xYlkI!*T=bs&z&XxpWyw7l4yei8tVt#E9ds)Br9;&K((cnxqq`y5Z2X|%~LE3J4 z^ZrpjUoeudd{>=YRPYyS?vjL?%kKhH3vLdn(Zao!m)`zCXuU;#A3}>YZy$p6$*^Cl z=krl9zd=l(jgw<{isD{FH(!7Iu(xll2aK&iH)Fji|7SnnMK$4WxC);U!*pECXQmFb z5T)Ke0+t>c^Eanm6MN5MDoXMTeZm;k&cL@l8x=c^C9=*I?%+jrbB@xUU#|Dan{sVb z0@Ix`^-lkuBm1W8yvJz#zdn>^_86bf&HGMONF}OCG)3@^Rc7mV_qF}g5Mx$D4{}#l zh^aZg17$YQ&V|3G#VF;?<WZc$Mj?_5;L*Ec`tUlhKina|)5=Cgjoj1=5!Ns-$UhAE za|pczz=dy(Dwj(+k@@wF@wTV@l&Vk~$2|-oVl;1$)uRj-PD<nYK1hzf9glo%5dlfY zspb@wSDjJ4eKBUmLV8dfP4m(oQs;BZtur0c5JKeQk1N217|FQ!eChrS?F6P3DUd}J z$JI(?zJC7@`C;pBq0%;l8wIAkFkx(qnu)Z);k8%deD&@LzvYG>6C~eJfoY8zYra~2 zf&6WaQAq;e8fw9f>^_@(5>;`!0XEqc>-L-9A7d{k%OmO)C(iQhyiY=Cu&Z~6d>Nqd z=dlkps^RIqApc;2`L>6d9zEN7=j-cP&%<T}@)tpqxkb}t$m6|0ZmTS(ulDME^7ve+ zEy|X>YZ|Y*eZ~i_s>ZLBz*m=Xe7?CjTk@p7v%5+<u($tyy}<UE;&4iBYc>^2>1Z-} z*6a0Tiv{RGoe|hIvvjg_i;G_$Hssqz>8a(kp=Z$5YSroG%cZ@bh?){LpHDwNrM1|& z4J2*B%;7-Qpl3G^>io>!AAN4Y>_>Jx+<^Z&pgXAb_K3Agw^_Y?bOUU;?b(&&3;Fk) zjx~_ryz|&moQ9gOR<p3B+`Tw$9CWM~N3mxM+6Txqu@KYLhT}2F*UU*!zE_E*U>~eq z>><DPkk#B0_Qn8Juud|1KmVk~Wd<QSi=<doX+l?4Uyu9>R?n%NYsx6Y4#;81|Mh0p zL?4uB@}M-O5X(tB4xT;Z<Yg10rQH^sA@2^6VSC%IKRvWS3R~}uEP6EvFfbjdVD#}` z!B89c7X;^ec|T>?-v9u2<JF_#=shZi{-xf05%Z-EHO2sXrA7yRtC${Oy|H8RtHv7Y ztPi$)+za&g^-+O%pk^v=iw_Pn-lLQCzaBf=q(c-XFQGB3#}K=d7X{9PkUu|CxH49F zsk4tl&$RQ|bOiFR`T>70B%27oVK5^90YKW4l%6x1T*W-&LoCSl$00wc%AMrCXf~=f zhSiAu{E|ZsZkgiSl5=3RIYf<%HuWg#IiV&lK2V<?#sY7!TKY@}!>=?}jL9^ua$M6; z%)L2!NRR(;v)m$5$H4gl3w>l!AIRt{@ZOt&&lhiI>tCLj9h_e$MEPh8v_mv%tXn$+ z^6%c;tESeFaULTbAJKUOl~Z$sf==9x55==!C9c-rK0agiS@HOAvDy)>xgSE_!bAUV zKVOaFLR_rsjTgcf<R5n2I%^F*-hGPhf+He9cC;Lae0V`9GeJk0YmUlnANe6g6UFZ^ zlk-GF%<?~wPm(~BsR@1#6!-i3t)uDe8b(+sKw1l$GLj(8azM;ym?|OAq*@(p3CAQ{ zUF_`UE(w1o@x-k=<+EwekAj`rn9ZI9z`NTD1dvBB->njj2F?vrd&aDtsZEVqyUp|o z#`31wUYh~$bizjgL3%!3eHrtc%B%+oIHh<<>^tZ~udzn9;X|xvmb=aR$H$$4W}hkG ztI9{{YIG%RkUib)=Z8?C)<LNeo~O^<=?n4?%l4b##`Q@PD7^F(uN)Wi7j$_x%}I2i z#T7K4n#FoA=C=xbnF<@fN^c}>Mo;es;aq?+!w#Y@4)vDRh&un;xB!cqSX5byNYcZQ z|J$meEjT`ev<6QBcG;r3yaUHG>8V_8Ez`*ehH?ycaGp+0w<qm8J!z~_7W9np)+=>+ z6u5N$bJZX*+WF*(ouXIAmt9K2N&J|_AmmWF78_?@BEQflAIwd)$dGR;(9DY3SMY8M z9<k=`Xmj)Fi6w!iK<WWD#8he}R}e*zJ>BW>1=Ijy89oFtqhsOSi{Ac$9li!SyWVFI zr*zLZH#w>!O76|F4G6ov7fUQ0z}K7XBmXD?Qihw5&Et-k`agR6nk^TToIR-r?&pu< z^J}vc@pZ)!1WoL4Xov6Ps_QwJiYpp|DJ-ttM9Y#d!85k_mK`iCkVdmy&%8uMPy2rM z$CFkxD}ud?@s}MfbNbQ@1IH@LU~NBJt$uxS6SHVi1$m}_^YMeiqamN&yuF9~t5U5e z2S<l}ga8hSVs=OZEqCNvnkLTIPn_?k<Jzet>H!SmDWG@a63Xo6$9ukd!Fo1TGLrqM z5?nsN#QZ~%-wy*ITHKZWY@oH7jq32Ve7m_dV+2q1Sj%z``RB<)OgTiQDmCN2>d|5( z@=wl-Dotx8xk-?akpIf4n6E&QiU1M8cZ<K}Fy#L{ZJfb3WK(r8X!QFMfh_KG9v6#F z`8sp^E?7}@jq327+mp|00U+kz(SS-4b1*&*fMO#}*@`SrHy7`oy4IX_ZEP*m4appT z&y^qW`45p_t07y;*|<apTpG^qHHLQEb)UPl<;CVnegD^&O-U3U$o;VMX+`O%*Y`H@ zrkBF0txyM&(a}6<`utMo9~|>5lo^w|yZKJfIkcnd{AKHbLuCd!+$^^`^tCK*zI}lF zvz_ic=ma`UD=0<n#v=dnEJ@aT2f1I%BVzvSnpCs{N2)uMEOR+N=#jlXE+JBkCYS({ z(Q^)#v|Mbyd0yn7G=<l?z;SkQ+?p5NkNH1sW+ecHhP}a{k@m#_?KULO@oI5$db(L{ zrk|c(5Ij?9o89JIz_aAEJcKXpOXQ!GY7wbi9uS2qVsZ|~nxx*IYqGjoPuJ7qj~|{o z-SKQ&ineY_w~fJ-2}fz~O&3p3#U#g`Pn~pbme$|AApbz*cW@;#cBEYYHpSAj#b(6E z@rqn;Htuqy>`qUoyj;J1!0Me*q>+wO?BHY)Oxy9SUb3tzPK#Gj=e-xKuY7g3UvgFj zIH=su&y;F&m_Nq%lY%*be&G2t{}k+nT|f60$sea>=UiNjX%<SX9+9z|JapQ5ck7s{ zk_|{SH69s!el|;sKQ2xulg;aozyJC)Yq45fTd<gWjwb1#RM@1bm&Tj-_leCy4g6i$ zSL5*hKOMh%_2<Rp;^OshpFTW^&Yw1RjRk=|Cv*o?i<yx%YEkCjA^%8s&pzQ%DfGuZ zb@LbG9~$#rIV07_K4*35p`dj&BK*Ey815i2=qmI53Lo{w9`a|B@e7^@1b!~WX8S+A zeSnnwKrWt3_5qO4uSfoB#+4t31x-k<%I_kFSz=vmN{lJ1qS6Pxk_FrY9XX#F`3<Zt zf&gAPp~qxmDSS6sz1>^KyiTf_0=q^V%pDRT!MphM>c{u*-~P9*^1J~L19~k-bv5cR zWNNI(2gsM<3M)W?GX#+~jZno8SPeM&?bSEm{wFX$Ocq^;z_MxKwT5QgB}=nlH}Ot~ zFN@Lm&@6lQtVv&xe<<?jN3rjttDq<yRQdM$`PFnx@tI9Aud9P{Jk$fE8`|Y+FXkt; zm{mf~8W@Rk)_gr0`EYDfu`Hfi#Oz{OtqEU`{LNLf^Ss948XX@vFLH5l81lF70AkSG zx&m)paPcyK{mjTeX%!GAbC_{Mt6nX)$bYqG>fKmnKNU=zF!(C{Q-`oP`EUr8Fqv$# zQe;ihJ>^$q>0YZnjQLHi6?kOYV=)^AN@5&BUuTQo4&W@IBP0@xCv@DX;pb4A2|prt zGkirc;49ka63mjM)O3p%<R8Z8cZ0(jq8GEBAExO@R_}5tLl|5X6@xqbNMXpb*h7BI zZc<E<f%aK68=K7Yi;;T!A)Az(=*jCT<K*J)Y(%zyRUj5#AX5U`JF}Z5I=MLLuQ!cG z1snyOKD&HiFH@O6cg(*mZaF7}eCgdS;2FE?o5|ki{{4DZ3ep4AFBI0_rRfIt@oMww zKkJZplT|E=b6G}F7|5`B=`Gj3TKIC3Co~m<ySrqB{`ZI`u=&v2o7w5dcmD<a<4Jd| z=B`#8<pl-YN!V`B?u&F!Z!Zx2-&HED4U#q~y?L45Juv2Pv7RYDL=VnV*^2pJ>|IT3 zBvlmk-N&m{6QLJPl1+kXLYf&7OlKp4f-@^uGPn~#(7hmn3sDe3#D(tN=?`!r{sPyx z?yL7+RX1c+>p*^kbxyTn5<l8DyP20xr!(oE{-`?dexC#6?_l%i&Y}wV>Qe)&V5kAP z#oai+Qcl2|w<b0TCz7g^#hW`KU&Kn`8Nkz|A@^<>=)QNz@L`BFF?w`H#~+FF?Y#Zj zY+@Eki-}!B#z_K~bB6(_`&<wA3tm?P5Sll19WvT+XS3Pe^uuM3*n?HJ=-?Sqf(~6a z^ZDt)zokJxS*@xG(sN$3kn||4L%1L;7PS86te!6?ZJQ0x$GR;oH>PdT-!l!%hc7<) z7b4f8il7{MC@PKR*0ENUO>_6{_3=&QE4jLa(u~-hx-{8;@C^A|A-`*_si1iR_G>Zh z(<(<N4|YKQxfAG_8~o6uW@<=wxxeuCMR{gKQa8hH;Y13H*{(c%l2rgY6E)@8kX3i- z<lzup&LieyL<+4jNn0SF5S!5NZj5{xmXb6Edc5x2)${j^e0cB>GZT9IwqZMvGgKk& z@P&x9zf+!q!p0(DSbOiP>U{5;=l_{)<Z{{v<;<Ze8Fy9lMnR{hCg+V#o;I{?!&(A_ z`xq0%+O-@B)L4b1{k<>#A+Y#-NJyqoWf+f0=FPe^iBGDb%s%`x-O%aPC?%j)B^2~b zQ|cy*XUN|U`4jJ=O9CEM%F9r({OIVx<Ksui$B)K^pN}7nSC4Un-}r@>@h^|hPyE<w zX+S+tNMaU2J^vQ+u_>7I>Qq>`kp}bmJKOxD#I_rD@8c?G4hrsq{H~a%PKQR_{D)HV zcF2Em*5mzqyl=_KZMkGAnU*=s;ytc|^WGJ48b?_W>I@_>0bKwacRKz~1(~qc)n<gM zQD)0WZ*z!iy!h_lV*km9>(h%#<!VPV9+GoA{B+di2LGiV-R$AZZR3?ble%0-)*ihY zclc^vh57mAn;-nmq5SCbQqCqJGqT6C$)=N%iKEGK{p1GnCnYHr2Q&pOqS~eIYVqLN zl<ro@4~>~K5C7P_j?k@^Zf|zET3xPYtJ&dfHe0Q5Yc@L^DzU4>;d(W!_3Cgn{1et} zbvfJHU$&&(txL^T7Lsx~pCR{l*XFBozOLEy;M89G#e*HywT?v1Op_&{@Dp8^+V6t= zJ}0H}d!~jf3)orqwyWo_inJJf%;r4Vhl^w?UC-~gZ~xJNd>*UFC>mB@kV%y40%Nv! zyNZ`eU0bIf8&Vu@!T7h%Rn=gH_tt*{#ZTT_58Z+#<OB~bZ$1x!y-yo12k2|9AKgIy zvi6#-HBH$PlSkM%$o?twI)v%@-s<q<CwK7qc)<O^v<s<-=Ezt}bE+8>Vgo2wdw6p< zGkhj=^NS8&C4@<L@yzCLwV;?pm2w#Sjp#E)(%a>7u~;m})h-vy8*72T;fpsm3)+k< z&Kp~Jv#65o_3p&ZNx-;Ct|{XP&{B3bEOu7Z#Bm441dgc0B2ZbJuK)YQPFv^{Cu6{l zxPhg@*~6{+_7D5gTJ1R!LrEK>d`(Gnc)0hs9<SSuuajPW%34FLEK3P<jJ@8yyDKKC z%EA;MdTW`O*D+5oxjDFecn6A)K6r6`u*@ar4M`t8I&uOyWj$XM6S)rEyMM~?6(s!I z)=2b#&>~STy>WF!ZIRUei-Xndy-yw=|8Wc-z5m6VtJTAkl<@Mnf7cA$8Uz(ZEjpPl zFQ42*{zX?*wMtr2DqSgE(s1?+`CI1pr8ZAp9ZKr49|lq;DxqX85;`eGOC?f53H*fn zZukye=tJRk*L5XGaLF=Hb_&odS#^;{s_ypfpSW5^&rt<8j3b{tkiWyCx|WNQu=zWa zoT(0+!w$20%OJwKuv*M!0EVS)k^k}al|=9OA=JjtQ8Fma(*<;f?r(jt4#6_&*i`XC zRU@&Y(pA?V{Ix_~u#FgI^h$1x$nGC}?v~5^WPk5+_2I|wzW?O$5XQa#&Zi%}xn3PC zCD5}-F~(FIm8|_Zf$asJ5d^Vadkgt3lKYA;bw?3azi70PM96zuhe?^99IUU`LsQR3 z-+c7mi-*_iy@!hm9lHrT1)j7nnlOEb@ni8-61l-;NFKfp8GV*>B&4qEQXekPpH=m? zS*z0udims+R^x^)28~wl!N8p}KxrgUM(+oMH`IhY8Ik!5I=HPS3u+{mYlO)T=e|I{ zE&K)YlZgTHG$A$~>)h{Z^G~OxWD~q{mXbtS+YY<f{7`CIY@BulK}nLB%69eq53c*- zO%omK<ZMhkBsIM_xYx4Y=a*N)H(E28!1EN=BRcn&Va22Cle18)$mok01qF;F?PSY} zrA%cxfd6s`@n)A;d;2Gi>x;(JHe)rf*>L)h|9~URv2Llcv;H&kLqXprOPZ8W!P{?@ zdqH+hT}b2QG)&H}s`G=Pb9jGn8&6wbP5VSO4$(2es<vr7BBf)clLbuvO`Bgzr6HN6 z(xsF-7@=o2e_NYBcV<?AK7$dVaIwY4N4C{EPaEDu?;4m4rgU3SZs4fr8Ya$AylyQv z3~jX;n?B+u_3Py>@_k`cL9?id_w=g&!`p{hNNFr66bkHE$+83Tm)*$Z*JK%+nozDt z+vN5c<VpupIM_Bw&l$><<OZCegZci}?BJ@wo8)J%NJ^Mvv+(2`_V@1kaCSAVQZRKb zTYb4fTTGT64{8%NRDIX^qmyARPZlRf)J0X4U1Fm=_+-tEYy@_y;#860^S7#c6_Bs$ z$v&JFk5fi-z_78{D<IUXa_M?!u9^ms$%GzTR|D_tna-G*<V6ilN3jaGRoV_=^HWJ! zUFy2h4XZypeTMw)GJN8VeETJ0%uFNm@}PWZp@eERF%Kutn;PSGNF*AV9$FAOQmn}( zv&gPhPsX*ZoOe-5D4yRWULj*sW)G=(9cB1@Y=HdLPRJkh^AWMKXP;#SPL!$cg#5lv zifsgYQdT+ut}AbDfqW{=_l>EC-{g(Kw<)q|I=@(da-U)T;!4%<Jgn@giol3l0aw*u zzcRGNskzbknqbJ5veaPrp!BI~jOIN8xUL9-XSGU|dwcC{(|eDffW2`G(2+uS{pU^| z>07X2ww#?4*~niL`97*+vtg{n6v{aQ7PyG*(GsF{iEuo#*hY@980AsZy!ddsI=+Ma zNy5uan^n3AZ2rS-kpK4AUw{2n*8m3OqfR4giV8GIQgKXTsjZETSLoX}kz>##>~hpo z#9yL%R$Mu?*_4rBoue8Q%cJc#kgA;Doz<fuR3$AV><XW^TORI~+drL#ab`y=l+nz@ zkUlKCbn;9=n+JoP5eFv&P^8<Eb$dW0%hyrhLbLr;hgGDyfIh^1t#?<UGrr%HBA!po z2@{jkzbis~v0hG!CAe^8Vo-(Tg^e?Jt+}W!0)Z3+b4h};VaXpkwk#yktZR<TOQJ82 zfUs?E&FYD^9_{_n)G6D;Y&0e@yJ#x0afsX5Zwyb~%v>=|_)bETPpuZ}KRBZiN=_$t zJ2KbE@C5)K_8wt==!PI-i>ls_KYjnzci(;Y)%QRD@Z8h7){Dydu_ROs?jIG5a4xhB z9C;HYf;}?S_?>gs4AdN&z>z1;9(~|+9vem4Hw!q~S!>Q<i3`i?<J&erGng*Gm2nRM zOu}+EZ+}3(W`)tvFluXYm`tl(Z2lx`-6obgM1T-$%*vL?fAe6XnmGz90283oBvEk} z5BBac%wP9`ErMJ?7F-n5I$f;a``ej<$wY))IudIfD*EBkp?yF42BvqoW(_W~QfQGh zrar0%O5vOp1c0otA)hLaVmZ~(`Udg~=4%Qij|zH>qhuvf2h)*}Q1;&H=pyzWHF2eL z3AJ4zp8>TK$OxH)zowEV^Sy8R1UEB$ec#j5->kmtCU5+!&Hwu6?_T)qORkr``~GRg z{tTlZ21s)rH3`$I4psqE*5=V9roN@}adhH<ZVrgLIx<f?Ebkg^0C|$NDEQe@?OV=< zc&Cfo$X}l)2S*~q-#~&|5g2OO(dN(2ry}(CYom2Z4kvXfJIv=VuN+GgBMq0h;$iSG zrMu1g=%6o_sV%{_^_cQTM!Gt`Cn;TO)bI7mmey>|CR{?OlU4p+llsYO&xJr%RPY8U z9tmgPEH+WSHHht6bJ+JqLRJj(A4RRBMRQqD+e@mM<Cr*T(G+hHjG8x)KM!r~GVY~t z?s>^|Dl)2fT8)MI9msgYyQG#$lxW^L3)x2FlM7A>tc(+D@^J4Cp4S8NLpPfI&=dMs zS66Q={{{KKzV_CapM3`CW4-nIPtQG-YqoFZoUwEb7tYz3kp_}oW{w3$54ftmC8qD= zu$UuOZsep%#Qhvg*zn=%gfcx-292w3^X)%bAAvF208h^Gk9i;r*X=lIe8DoDXkvv& zR3)cc=GXrj`Riq0QwH1Uif~`jqWw0=r%#OzccE^+jnyv%#H#bk?cG~l@6+`Z$D?S{ zl(J^!B`4L%$=`PjeX*LJO<gTMR<-a5#_<iRF-K#R7fGY{rbY{ZG>7wqJk@o^IfgXe zbgHD~lj=qf-%+3IGEON<;&D+9RS2q(HqJ97<`|v9QL$Q@BsMH~irF+7c8!vANu9;y zs!;mL>E%0r;bFZ&xQDKXv)_-%KU<vsBl3TE{j-<<SOfGwd*$i0`iJ|KNhFh#QAS^Y zLBLW0WU4UKW9gT$)&_@&;aL+sfRCU|TS?}PgYA55Z3!79SQu9=*T=VHpifj?Y%Lks zVSo;JoK11p$Gdp@hbL#2ia3>IqCC$soXT+h&VTRWo0wCCsm7ulMW<6LTOprgag)l8 z0|aE81(d|poSf~i?knZ|VDBt3*M>T~qMDx=SEyb+SU>*{EP-bMTtPKZhuIxENMhLX zBgCo^`{yyVS1Zvhjq^4s6$iwoO;<MXPl<8n|867Sg<LS8ZJMIeB&1Rzn(<N+4i+WT zO>MzM8WTaGhuDwBgcSu5=K580tXx+n=TO<di~KWI@ViN$5@6pG`R5P+Db9cU)z7~C zGxA^l^0Qape(ot;K)yK?XL(q0Mwnsb1Ot|I1splg8MjjPdSu*@I(kglYGgzf)ir{l zESkFp_g6L0Q2GJ+tJ}z5YEn*>BC#wQ6`H9o#GOiC$7|QYz6kt?GF*6KW$$)qnLS)G zP)`tl3=*BD=#W9!4*5(si@=G>K!w(c!}=zbn{Lxlxb5~rR8UAzWz@J7e2(dA{pLSS zHeFs6XE<VPo=Ua0k>!DCw9J|fe;5|aqd6vR>J7IU9#|(jcX$X^F(Ykqk{igcuHYqQ zm4cY5$nZs%A)w7lQ-h5eiJ}bwl;USq7;EBrMa5K%4>8T+B<R@*xWxYw`CM0s@Ui*< z`4{J>|AhQsUKoM@C-lGY^K(z(`i;G-X>FzoqrG>SyBboMMQH0H#l)D9y!ep@5mAuV zMR6s?od|-8i&qdta3KmJh;&i+f*ZGrqKM*uNM>>~odko6Y+i++3pZ{(=S<bc+M0~k zO?@(%Nz!zZv^n?rK2LQkW?scoJqi1O{fIswuq<zIWPp1pJ|j(FhD-zLNmc`>_z1rM z;+AF?C>;f5?CdyA_4~F5<S(a~_N=nJ%;_`4G)@A|qzb1;rI1jIGKP@#WmL<SN^flp zn$~rZ-<#V^GzBT)L5H0v&Q{6iORrX=(2iv-r&cti>Nhix{;cyajnAL-b6RNjY#1@M zGwuVy^ZAtnJq|kCE)ysDK=Cu8n@hPWbGU+geArYKL6RZ#fr9gVmXZgBPsJx9PFO_z zQ|p#Hb{cbzDX}c2*8&CLXGFc_$`a!L%*WLuqTrpiidW!eJbxweW~5ghNW4$NL3GK4 zqUv^Q4zz>PGXnA>+*q_)i~agl$p7f!ca~w#%Z*g})uu~;T9dFhS5$6{OtVTuE<N>l z!li+T4#c<vrOK&k%-9n94E6!Q;}MsS!e2LpOA-I!AOu<a%SyUUivUq#{mR%QKfu6G zn3YnCFH9S`lfg39M;K&=DJm>EKOL3P`7%X~PMC@B*?HyjSF7T4p&?6#){T*eO{7Se zvnFaxE;=727rM~OP#;@yR#|dm84!;z+E;(#Cn}ZJT(NRX$`Hdiq?~VDv~DU3ITYE2 zlrMufo{I#vG=qpjq*cs~3x+pLE;g2sA4hhakp?6S&+;}l$&{Zf#B0(p&PjK};TZ}n z>%6Q;QfNi>m_>lVX7hga)?Z?|+TD++=mGgW!eKE7@>^FU|Kq#=gnVA_x`{zP42&mL zY(l?1D25jf6Xshy%s~>W&}GxKJ-WP}4Hzi=c1EE+81*Srd#vYCXPb45>B%PK1lhy} zoVa*_Y<_3k%lRc&3%|IyN&j;Y&B`Rbk7xbZQ)4Ci26-AC0UQkjT~sEkmt{&Su^%NA zCBz`}tLpsSpY|eS&q4%BZCcK*OlwI4RQNmp&P+WQhSZQ$o?ggOxXgRgn(h4Es?q63 z_$PCYA<YsZU;hW%^1LB(FT8ClJn9jxsEPqv`ayo=y|-B=LjXns{(o*MpC8WcI7DJ) zoN=AN!CNkTo`$<OxFi2ZBZ#yZFu%hB+_7h7mhT7R6Wr7P(=Gaw=4D!IKZ2fL<hV+5 zA-{GN@;^a%58E>O@B4D&<_VCGFQzHHDsjUbTJI(_P}l)bZ-{&5Vrb19L!*HCe3W|A zI>3{lx<!wwa28AW5tXql++gr1U`d~>{bi0?LxazXk)Qg;2QUs&yFg3Ex*}?JXA;Kb zyj2aKX9mgy$TRPj(fNsVl0t<{W8swHiVU3cJ^KUa)!3gJ#;*7$8qjm{^Wfj`^k1LU zBkP35p(i+l0)n)~TGLnl)?k>q+=*64ebPdj263y|f<QN(y>hg@z2bjdSlH%A<xDF+ z!{huhm+Xu<c8%pqp2$K|`#gir_iVwD*)OY~Cnd)#jsUungQ9xQJR=pN7Q;ihTCbP4 znYEFdoLu_d-CvxS2;sf`{e5#qY=86qcm4$Ycevd|b02=bCG)1qjG{b7wA+m4v2zc* zgq8razRKsP#?YWQqMM^p%j^(!ynF#hW>l2Rnq7S_$p&H7pT9hn75;_gYfzFRFo5fP ztFl=lwBK`XtS{rRP!s$BV;fkM2b4iR#gKs5i{XmPm|q$BZ_gTJsWlmKCG9#GLiyEF zhtBloKj-Jz+-}CkXklWwJQ0~83s;eIpO623Z1~Y+JD`G1^!}{gA1{fzCjtYUiqSJE z(xY1Y#+i}<P~ya+GISnppdg!BliTHdehbNUz}`aLhj=zNcG6|m^RLMaGFJe`CU_%E zES>w*dn?d;n*VCh#}n~Vwmw5}?{b|lb>AZBq3;R&*5OsifBM~b3g9oJ|K0aCZk$ZE zz{~+(U5b7{TVMHXPTvRu7Iw1RPEkHK<=Ohss4<i7{3uW=UrR#D5o>sI%AB4No2NW^ zJU+}WbgR6&13>YYIrV`m+IlaK@N~AmEBx%Vw{TPxWQA4KO0B4YZFHV1f&4ja)I#yl z=r0C-W<{^wilzJ3B+ib;nSeh~s(}&sF?@&FKc1!i>Li=XLSrA>=q$ySdX>Mlx;rcQ zBd<(q`-^bQzHEAJ`k+eRL9F*m$zm^7Wcl6WjKrqSS>r;lq$z*yeF&ZJIK}h4pMQkd zewNL-7D2)+&v6eo=AjSir2yhs2t$TqJtF_mDY6C(eSJmry=QJd47tnay$*;Cu0TG( zPT;qSBW3@vca_e6ciGr~N0$fRy@5J^vK5P@g+YCFaI<9>(-uwbw0>&PX>GIs3`dON zQ_&l`{0ZUDM^6LNaX>WBbW~4<MdzM^L~K?andCxN4>7r+M+cDjl5HYm!zlkfE>Z6C z+)f-Rw@f~cgkdSwAsO44y;cVK)YIhgvs{i+Yv2<51jt`eUa7>^Tf#{`H1|BCvG}O@ z-b~c7<>i^#-h$y%&p?7_-c$xMz#0aQb97gb=cZe&jJ9`RVbv%XqMW|*JT2Ee^=o>K z>@wCTK)M6)oiltb4<(($)VHL<pz_c1CFDm@0_10zs_R0a7yB%X`q4a$a@h3V55yj( z!Yj|04>Pf8C2SPUydWQjF_<5sdS%AM?B&*e3z!%5&jd>Uuzpn~&j-T&QYjCSe*=4W zP`5vXhLqvQ77DqfiKz!QsB{h|7V>ETn4sv(H+V4c@aJ(H(HuxMTCs+oK<$s!&Bd{% zjN`Di+Pe!8z9RsPCZ?)@xLDw+g=5{sQ`gPrZ$*itp`!YL3_8eDN0ET@^%BU>6@N;E zR~p4Mi!-+(^0lhf@+6^w4A-8)lEe!BA_sL{wwRZfCuVH`pLuabAhp->V!REa_Vj4Q z>H8fQ4V=%!edGE5a7>La@*~+m;*G@<WZ-)SJDv6T39+8h;&%=QcE;n@bSbvaV)~2{ zWpf7JQCMr^a306=oMd@&^Hk4+16QC>#R1g(V$k%VXX8y6_M@%YbND)3sq@dtJ}*Fi zt#<{Ezqs$6Wu33+{s$X3Po`TgAZ3yU-m~Wu7vUWYTmZZQ;!h!CK^!S0gQF+Jf*?KR z59@VOx0_)A+-oSW0s%?N;VQVpC1dZ;aNeA>qk#Q?FbZ&FIvQ6(tUp<owd%DAke2eR z%d=od2ZDh~4)`d8e5=V0W@tq(ukLq?j-A!J2r3bCm4OY47PZ0IITE6&)}iN9zF>bA zA{Ck@*s*j%ObAYuwB7{K%1uE>)mg9K0*D<g`6LPH;9*nz%`h1!+Va#Z)HWa<!-j?8 zUU-j3WRSy=r%uOhXQt<MejJ5_I~09RJD=FkVdyWS{vwJ@;-T<!tu7gEX=>&`s^6Zq z+S5bGV}$AVW`8pVq|!WG2EOF5adHLnKP|F)%T;{ee!Ow>WV+?qd#gF*4yYa*)n(Se z&`@jC>NN?d8iG0=z<oVZ-27eiBM>y~jhs<cUaHERl!R?)+O-!)NO!smEDmf9XUf<y z5^fkh_Hnnmp5e6#poQ%6QmQ$$h2iQs&UPCd-euUh2vkQ0S8=pcHtwwK=WC>m^Dsgn zc4%$Eo0H%;X2>(HRm#tSIH*?KT<fF@iXKOAioO^iKQ(Up#_H>3rQ`aMwV`KkFOG?| zDBDmT9&eUY&}9s0IdFrF_Ik^-!+bz|=2-#k%*Q!yHzwzi-*1Hxs%r2nggjF1q-z69 zV{5-3<r#bk>tF}w2ms1H<H-iO<04=ao{z|%xB6zg^6Ku!-ywhhJmw4e*<GdcpMGB| zzt~CPWB1EVtlS6RKKyr+Xq>$gyBxY|jcIRpx5>`LD|vWzsq#KW#|a;j;0KioxOWYc zbZV|vrHSz{8^#xOKF~3n=P5@n(OP7Cd4@ckbYi@7yk0VYVj~lzXI<c#RZVE-QUC$r zv@(9a9~7N-MPR?kI{415b!anU<~xUKH)YdW>J3#V9oa@?W=|fJ27bI?u8Yw*krt;o zcxK0(^+Dd9uCZty-I{dcI9BjIVVK1$iSE5x6hj<6i*9mnJ&=j4dB5JRytO6PtK8vA z+&j@<xh3RJ!&V*<`g4Ll!etRhQSB|#>h||TGNoFZThG-6ATQE)p{IkNX&DHy#`JrY z*~#C!E*&5rs9ys9;o;Bm$yLAf@l)?CTl?tQxrxR;c=$qNj8(r*pyZ8V$gQ^5eB-s( z-iEw}!)rJ|c<-VdA8QZU+OzB%#hFr7YKXSY4(aD#h{p#x2ehO#(g|C!bXe%xxVcsZ z?-Sr$&y5LeBD)ukbpY+fJZ0$Eqg$qu$Gd_*)OvOlT4uPz?yYsIYeSpyLjjMfuMHA~ z4dm;Gv71y&LI0@Qja|ran>>e9GyWAPGu9=kC+qGy@<MgiY~=8#Swic_jP4oc;Fw>7 zYELo-@0^-o7f}P_^-rEZ>Snx~^BQvFaUL%tKW-8DxcnxIR@6G#c;a|xGHXW*_yQrr z064$1cm>VEV;aC0+CFNvqP<Gx<n>i%Isy4hsK<8rbN}SZj-3zg6ZGFKkk1g`y*E+i zGq%rZhu*U_6NphK*QsrE*H@UkUG)0fREERQdqeFJz|HsI;k&>H*^Wf@lNlD3BtcOk zI?jx1JlWY@gMzQq4>=#mW^5HdD@B6>No}J!+bxBB*6l0eorncag(a@@<Qla$vvxi< zfT+bq<TdL1lhQXnbaAEfe2EI4N;fptI-b?yJ<5qNjKxC|=cBFZ=DLZ3PIYT9WH`=y zmfNsa8H-lJ@V&}wLco!Z`f0aPdG&}`3xM0-p-+i$u#<x&<j;{_C*pbNw{UFD6>fk1 ztuE*`_ktmSo@bWy_!&UYBl(<pR{RFc{OYSutTxl>=ifmup~gS_zE#`3l8@)z`xwqY z6OeQKa1(2HiyA&p>rr3y4A`fp^NkY2UpFfwqfQsgYOjR$;@B`B*uKaL3DQh&TuPch zlEIBx%PIA0qhNAtb@e(s%?FG(dWDOMzA}Q=x<+@lQ3m<B#()=9Cp;wh5Xk2@*J1&0 zgavnn7Y!Y;q!O3}$`oSTv*Y#i_}f|JeFE_YS6?vgQ!GzzOm*GLXJN5Y*>2YAjTk;T z1O_^8VCQuYz-`2}-u9&PnxJ?9;u1VeSwLXOOSQ-6b^fe%yR{_yw_CTPGXs3{=(veh zq}goNVn`IhRHyWB-@d)yZ`69-?N0ZtRoBIn+Rul}@-yW7et-9BN}f;NEeiRt12f0F zUv1n-skUS5M=~D`gS;X>OtV_A#MtK!$<?h0U)1gE$?6pZuDx^c7o~2QvnGX?uWACl z>X5#M3+t2TR)xcCFE?DYQYM_7Wg)O3FtFU%DUncOu3k!)MfHpYT?Ed^2;VxobW%eW zEKPmlR1U3#!x*P?14jJKJZx89Ian*3cWY8#<oKXOyBu(@stJ|9ggH2C^OEiVo6o<6 z7)|%I7DdX8Ylr>3pU1w|Zf;d7omT}#<raW^81iU~r9LP4k*DwXmymz^Jo171{nqW< z^OJL?;p@lGHJhN@?t*Q*7Pxw^j>?f<uer5dX+HNFO^cP0|NR-@c_r)*h5W|f{UtvB z;O_g1RQ{Xy-dr}WcI2$;H#8>|du3W1^-{<e=Pm%FK3|)Wt=o*OX6!7>6NoRs9A@K> z3JBEQrba>I!}|2C&DElNsJN4*06+j@%*8QUh0SC=q?$^__PteEvelGEi>1t_o(!Dp zDE(@li7&tz1h9<;>{+sBh<(OqHf+u+Yg8+~U71Dm0VzMmYHh<dLhw*cN(P58cYS#I zW##$fTRYQPWqS)4w8k)30~~Vn#_ZOs&z}1;Qs+m~^HTW)KDLX<$41O+N1@JNmV@Wt zIQ|AN(k0#gR=3$a`R4eIqc!6nJ@>sZ|1+)<;{N+P``>K-E%ENhVBoy>uJ=Ft;_Ho@ zD%EyBNyN;cyfA%pexGXf5|be+btd&x(GT6LGSE}h{~96xqPZVpff%H;H`Ebq=yb4Z zz|Z$)P>CyO{3gzkShW}$Y^gem#Q~NY<n+o}`=RpKL>DVp1Ntt>n#ezz?g8~27o*0Q zl<$oc2(qXQ>87%Dd-mMXiom>uxzbr;6e%d&nX|fg4MU@czKA9}|EwM0iD!<V>r^W{ z$k$LRombvEe)eehPk62DwdMutAw2eJA@pa<$S<(Z3y%A^`|{%ClF-oR?(Xg;WTTAq zYC!%O;I%7czrWJyHlKd_=^I$O_q)v6%n37~@7bs0lof-YUk3Trx~98I6Qu=nSB+J@ zy}v;I8z{ix;1r{I&I2R*FQx@(z~=4Q?C%2e2d_-G66!&qUAzvQ0Bb;$zlEj7U+l74 z4ax0t*1qPsiG>{4HC#%pM^<k=ul%RTTWi&?s~Q>hrw(B0bFvUa^VVkV8KPz@tRfg{ zS&vxT%1(SE9vfvZ#q;SHpRqpbk$CK%%kC3L&qI!mHvjs^Kz<};|9ibWul>q7<WFwj z?hE_p<YmP6uR(f^JHKmsY?M3F`8OHR>rB*yHgbtHw6#Vdeg|v6Qv&%l=g(9e)i|r( z1N7?sCGroD-VL2gQVoR@-SSX0um&&hqege~%2k1$-Pb0QI=}X${xR(L72BseO6mCb zD{^~F_3AMzA^yA^=w(M-nuKd2f3w<+_@T@|k%ysSr?1hp-*n9J_0HQYh7bM9-(dfl zThm!DTBO!9n>R|l(he$o6T=4Y+k8H%A~bUSvOB9Q4gk^qO!hD6e984AKfZH@_&;EO z=gxPB|091jYd_aFlvKISk{gdl->8+)`JK8m-lSA;9FWG7v8y+168RTL!!?{&vYbp$ zo@$#7zs7LfLl(G3<#O!rzR;O;;>a3Py!BL|Qs-!5XmDgja=T<Dk7E1c8{nS#atq|I z*+AF~lOXdVkhiIo+CL*aQ<shRZV<)2ot;~k$F!b*^~p)67q=LCNUdSNG#v)-iGEcG zCKh+He6bBm>gyIE|5TCqa}6@Q?l0;5i?|2!Ya7=fz5bowK`$Zh|407Hl{}I2p2~<^ zn0Acb9q2gMsC7yqf1GIu&p6d6MQ;OR>REed^RJpuwqob37pZ!xk~xT}1IjGAH#Jx5 zD4X<W*?s1%$*fcB$GJC#dBG7K6!EzjqxAbQ54)(ADXH_p59t6jYuJmb?zC)OoiCzW z(n@&o_^}zrd3DnUB+Vp!xwDNtaB-v8*_l51)*H|K*`q#s<GGz_wb_dz;NBE1jW%@y zBHeqm<@=#3-&sDt*eg-ARIYEJzP~twJT~rlT}J-PFB9w%+<;)$>TO(u^!nf3fucW; zd&<ur{*V0CvU(~~CBY7a%&dtWL+4jZoa;28y-w_DIHxl0AiowT&qZIj+E|P@UrFIA zT*U?lba0Rp-cc5s_SS4VdG77!j}CS>3p_mY_H&bIrOg398Vcb>_Q?h_vfbLT<G6N{ zor2b@luS?ODT^A!@R4CZPSm8*T^IRJY<FvMXp7OX8u>*Fowkj|-Xxi(jt)o~o3yuQ zlWFyp;}@QJ{`J>if98d^pX<yJYu_9BTw0!NNZ5dR^)`7`2zjstc}R#N_wDA!e<GU| zd$@m5e%?NZ{0g9s%aXiwyRmT%(%Ap;yF$%FxR=~>_&@SjkxIKiVpNRZ$%1W`_u%K3 zLcSSu1S()jcb}79jR}Hq?=O*mFhP5**SJ(Ayobbo(YFf;hTi14k7AUKPN&r;U%7Sb z$?9}E10Wpqpm_Qd4g%0(k-%^effQ*#YlCoWwpkMSH7<lSKCH^vnVKXeIgr10&0TXm zhlfv{e>RpvH47$jVhR+Sy(SPcGZxx*1@J$UNo6l!{i{7AGUlK^&BRiNo7jhjR#o=7 zcUfy|R>Ht3M+g+2A^-4F<Zlb>e@6Z{8`mI>!+XBFAU{5Ec=-P;-PLry0Yq61iZ7WV zl2{emFNOU2Df@1%=H%fdD$)r!B6s(%nKR)K(8(9EdIqh}Is5>eI(<DSKiSa6Q9rEz zHfMdW&c<z<aK@K0xC%R>?-pY-31yv)dXv}6IzK^ZsZd$TT&UI{r3=wrU#q@dIUULn zv9e5zS6G776sf2#abK}SBfA}+D|SJ>jjrd=g>jyRi7|m81-?%df0faI`y#d&daoJ= z^uD)x;34>LWVezZsytqMmCN$@C*;4hjCx(J3;92Ohs&}&@V~XcD)I>&F|Wzqrf*wP z=U3`r>HysNH4VJzTfxy~>?O$GtaSZ6A&S$1hN?5dr=B|vry^Gq9!||Tk0N7S%@~vA zxq@0|NXU>mPSuCxmE+NSpaqGEN~i4qe&;mQ(0JwxaP*^sFOnTQYs*^|eS|{N5q8wo zG>ULBs&Z6pB4coJWNe0_*b!KePLm;Dwg|lPf06<9*o?w4f$EFsHL%=1oG(m?Wv;Z& z&jEGG@5jrLFU;crxhCX)c+WEE@A>hbdwzW2`~Q)@s?PVR3sO-m^Sef^GU(Sz>3k?P zneBjPI!>XkhG6NtOy_UBFsny$)JX(5<WpgJ@SP|xuQ0tMADjgbV-PUxH+Bi5;v@(j zY1X$J42gbv7-P=nHL0<#S$=rsP7oIPc3fys8%EOHAh~r?LPNf?&HDX}N*iYrJNA%l zr@m-o=KH1<;FXuKL*^!&*4@N7{)RoH^1{y26jPu;yp>r(E6FEWyy&k$!S(MUKL+A2 z$oE^z$QSm7du-Q={0Ht4;3?co9{C^nt5)xlg@>b6=`1Iy{N-{HzFDnCr=6#uvSM}6 z2vz`@IWD7)&%CJrQj?MabS#apHo3r4^(UEH+(~R_aL;(}O#<;Yh1bg`sIFzec!9(k z<LhO^d#dD_BSIlA$W*Xn00fuLNg3{}PB+i!IC$?8Qg~bE$#t8j)}^Gm!cT;Me7wvO z(W0eeB@#JsY1vo?K0>Sv!av1x2l$J)Hf+V0vjT5Q{$1opXIfs{Z@VSrZxxt_XfJv3 zx{&|K1HS?O0bU<?0LMq}e7NzytbqJp?5we9YforhvVxZ7^l=&FPmD>(u4fGuF+F5Z z_y)tvk$+Ixo_p&}FciTQ;myr)E)9;b9yo-a@JPx0PrrX)NfXR|0P@)fSwak?1vR$1 zja*!%PhMW<XI74b^|JHXxo*R(4DvP8Cd#ZQa=o=)BmzaBtq0)A%AZ?{N3}|-ejruE zGWDv_QzL@#p7Fi#l6jpAH*j$1jqi33F8*1ceeIi*6Ewv2dM78}ymkEc>reb!$Y1<? zhzsOgwfy&YmXI&R7pT8(<bVIj148|hJbLGUoxj?2t<V=)CZSG=Bl`J`GS+?#$cK;0 z(HpFX(Xi&z+9k1l%Inj;yhv~>JE!=bNz`|$nJ-M;$p=XjE+fDN@WbNOp-JKSvK?;B zUSL(VjXCqxhRw=9Ai12HyqE_^c*(}dsI6TY<cm0Ddmehg+KRH?+feQFs_FF{*qdee zjJU1xKKy{q_t}`tNO=9RhFbF{R<1%Z`orKo*@7D<A9vtlFQfj2x4K)sTED;l;o%{- zem}1F_P%-b*@J%}!nd_xf&8*uME<h8$gRI|4br&t$nSW6L_5d>kAC+*@>h{g+j(O( zJV{aHVKG}TuFoDT(W_V2Sp0-CgyW9r9rO9MorBBy;Pyi28U=NxO9~kq?7Y6~;>HM7 z_9i!%C;@OX_P#5mk0pUm4u(b(SWR5p<{+E$IzJzH5yp7x`;2aOHuib9S+WhT({l~) zMa^Ms%D;`AcA=fl71vse&qL##BRDDKxmF;*;0GvNd(NuyA&%7dx%g@O{YvGDWo6&o zYLE7*i`BoPBld94TYJsM3kUxc`OWB#PFRR;3i(HWAiw?M66{}m=|#xPx33}5w%Nb) z&?7)QHeCyO^zk1*{~!4)AwO1``iS<XhQ3<5n!l2F{-AAKaU9Q`xHkz2ZZJ|j$W&)1 z#tt}G!nC&92B*Q^3L#smDNd7MC`oXdl+xnRrGyOW;;|W;B|}1>B}?emLOnF`NtNY- z(O?gXAqY&V>Dur2dx~_9i~d=i^u2rUE^0X0C7=7f_j|wh`yo?g=j6vyKCOI&9(opN z3sUrMm`Ia+v!BF@wpBEKUbAY(6A0}WXadA00f2-k6!d<Q(Z|CTxl1xFEg>2UpF3`9 z{O+;t_3rVMYb=iReKLk01qb@#NVkFK7n75oWlE|eg$O>M$%>TP)|R2iQSdde!0)TX zM8F>ks_t{NQw!TctE&WiA9W1&$c=@;Kff|MdUC!}A@X9f-b0o0%h^ow-o>M_Hd3nS zX?U)BT+x+B8$ZSeBwx()phW&>g7JSKzoDF3E_Y_Q9h?8)$<xP=A3y!+Ngr0%sgrN} z+!{-F8S&$!GjC%(Ki&oT7MH6)zs1yAdHl;wqZWrrH_J4=l{C&er205qVIa*G3#SLA z`9XxzdvV4u4lTvMiwru%Ew~YBKO;8Fusutz96J*E7Gv#k;*os8fK#;fQg`HwM`Y+> z44<(v6|wx_eH9d~V<}mc2I3G&BQLVg$RspdGkcca=M58b*rXrt2XN1l(OGZvRQv$< z)+~7x@NY<<mdo?*=(CTGWb@r}ZEs9SApd-r{7V7%Azf~l{0n#PbU@;4c`BF7iTb+E z<fevO+x%Z1Prd#AcYpu$-TUuNJnGXC0?1d;e#8R)^2*C~44dB_`7e;ill3g|7AdgY z4#>A7%@W_o2NK(kFNdC@2mK%j&}Tx<b;>UIj0f_y8J({a9~8g`i1jcr157x~=YnD> z6Z_<7X5@I94!$A{Gk4e$K?4B0CSUn<5}re3HJvB=HkT;4ZlU)ae|1dhamQLGK;F_9 z2fOj<)l|tVoFy<%F;$i+olI?Bi#Nvk%L#A3Txno0B+>KF?4)vaKAV1av3v4Iv*nkS z5ca&iUwOmk2h`)zA^8s;t^IuU_SK))ervPV)qRjZ-C&*#T5U;w{OQy?gS!hm3p+at z3xnT2?$4||nCH`lRs>Iqh~+pJ#AZ{S@BVssAeBNmj`Hb76cPlWfxbyK-7!0aqMn7I z{=MqFC=oaPdYb4L6~7j&>CqCZ_A;^8_FmiK2e6<9?EBFpf-fhfLvMn7jHJyj5X*Ir z_Pgh0WjyVcEEsJW`C8&U`0tTqKEf}6r_V4V*QR^lS7}?r*Pdc_{O7XtwGO92n%Zq= zcJ$Ac&^L@k=7pjlSBDdw6gJQ0%4~XNsB4=~@+Dp*;9osx^WV_rOP4QSX-)oxwHwzL z7Z>N|=5F1-`J}Da^!@67z`Tf;rl#5;|KZyUJG&=N3=Zz@F6{2Ubz-V7Gx3dO7$$14 zR2IziX-qNMbW>wPo$u#Jd6=cDSObe{`gQ~hcF#9jRkJ=DOSq0U4KaDHlIhvF`ZSKg zGyqT4njQD_2L6BLh*uH4U?|MI+wN#=<;dj+EQj@`jDe+9E>cy0D>@**d&NIbjys63 zC-RCG;M$!A@|@Se&fB$EVb+m{aI4`)fzm|5R$ls&Jo-FeWn+JS)7Zp6KIs8LDV(R` zu*hq*yq*5NOY$dARx5{94cq+8LF^%*f8|Om@_$&my-4tJet2%~`r3td$RFN6Q=@*0 z=ajU6`o|XFf4eX!?G6I`!4p9L!Lj}m$hVDUfgM!2%liO|rK&8E->G7rhY>z9<5@r^ zh~=?Sn$M(Kl(`x@6^m?RXsgWh!4~^<`S)rGaLKkDdiakjO;0Xu#U1GH+l)oBONrRs zV@D@HYCBAz!<un6+>2b(!%E*#$X6onWU9n)Bzf*Mu(6d%6OdcHs$hl&K0e1B{G7-$ z9ew>3P%^4bTfpYL%s?n{_vhoYRZhP{1N_6P=y<6;ZNq;>?{-Q4Y*kO7DwUwe^TOn( z8`SfVmRgek!<SzJ`dhbP@?rKroV&Hw4*93|1$;>R`&0YV&29dZ)dkvnp|4}`t-l}l z;ane?AAHBQ$(w4^<?}SYu=&Z(NBd)*rxNxGQx6sjS&pxm2Kh}DUl~Z3Fw7>vHn~vF z89qra_9EvZHXZq(kwJYnXTx0aF8a!B>wr&dJoZ%&N)Dx>;2seIPLTs_rNV*CQOFk% z*J7hcQI8clM(ZmoUzKf&N{)c<;L3%n%yF>6GI?6X!)phBmc56!5n`JASFe)C8w2+E zO6Go*P)i4)uY~V(Rs?RfGWl$%8}ifhApel6nGpGtu<-z1XI+<CkbmdrTL2%Lqlo_X zN9~Zm*Fc^P;IFRkH7EbV8DLNH$@~Jei#F4Ti8#lRY!+iomDI!(otHd}ju+`7Ge^=x zd<~w&h=7g!bMB#KavqavUGri&Iq61?u?i3e3igYj+z%v|A8jF;jU9!+@(<1kj3u8q z3@Ntrdfw!z^SvlG7Az+kZU0rcz0cQ;b2Rcb;vX3I5LM$iPQlR3>-pB}eEGFleyu5J z^?qF)S`b(S;tSZz8+B2k%8PA%6PkLbD;<h9yHfJbcH`lz?TaP<x~dyahvxYifX@?Z zpZvA!bFaxK{Oqs((#AZ0RnX&nt-ZayiCk0ipX?8wXlPK!&ig+d>pP8S+(Ln+?zQCP zv(yy><UA|Z#a=xW-M5tdmhk%AjUK@i!fdp$fBXx0z+KlE<0y|F2KPbLj!01K56xFl zn@!(X<T-b+%ByeIjd2|-6<hAffbF<tly#gAcDN7mGE~qoNBc+B`D?LB!)jKT^79)M zKY`OSdJQNzQK*x7o32ga@4$OWTfgnN4yw?j<lNRs!^ECV<N-2l`F|_$$FU28FIuyc zouePm%%85-RaS$BH$voZ$mZ9zw6uhF>B>;kvHp!k5>N8$T3l=G+pq2cdmJ_Gk^G5? zGfl~VI`h^+@@4(|u(IArhU@u=lcl+iSU%~G*j<vJ%G1(Yc|`0pvi=29aD!Yg-A<jW zq2=+6m&HGH59|8|WGGL7+zz17=hk#T*q2k#?A~UQUIR8f*JKi7nD+LB{IpR%9v{yq znUOy%pVRY6kbh)-d@4DD*Bfg@%iE`jzMxW`ViOfQ#Kt&1yXMh181&m9A9?MW<~AMM z{4_L)7%i2<NVAh_)9^#q9*0y#0*lNC9h0B_OXMHa@NncH`62FkKrL+kBbt0!`i9Qk zjJG6zc(o3_MD8bMrkaxf`28KwUMFAL-I=*?tltFkgL?SDi$q1%Y3J6xROjTs8$&H^ zygl;RZwl!1xOvWbzDdW<wiok)A-`L6Sy>sVb5$_!M>yK%k|VQlkV0<i<0wF-Z|L)O zH<HP_z4FiuSVb1;V_Fbn(ck9#2DX^<{2nO&RWdPR+$^1awgPliC<{%FOyX~$DL07r z=h1^vLMuc|ZZ><;L*kxrY3Z}$hCH(cs_;~kgg%=(wVJTIH8-E?)anndgZyEt%CpKF zc2<b|$kIXTrOTI^5B3*7oD1ti9OrI4Xife^9r}q7`45{In)vG9B)?(trJb4n^X`vi z3`V!glW!T{POV3L&d)us^Lc(8<eL|qFtBdU1_E+9h={<q5AxeHiem}Pg`=)ARBIQm z$pds&q~h|I;S?CM|4{W`kmI=CMk4u%9^Vr*2P~7fIO0IE0BsmrkI?OC?)89tv3fTd zOIXouuGed8fa(uoU9afN<Qt=6c}1>VaF`!h{Q|g$y&sLmR$!+?;AeqzK=yx0et4Yh zbg6$VaC5U>hcC>yc{yF>j#x=Ix;P>7Q%g1OiG73orr&e}q=%pn$iMnS8|2q*J((x= zGc#{bJ#1D#f9gbyeDpYL<o98Xt&y~A90R*%xLRi5=GQRV^TxZ_!<kB1pq>TTE!KfT zUTDgslI@}yUyda(=6AD3W$-P8yWj>g^gkATgzFSJ2{)E07^mb~BgrI7)%1}3ZK1|F zzHM;WDD`R_hvfH){jsgYq<1n}!u!@?q>gPVLKnhU797qtN`RiyhmM2%8?)KO*5<(y zv+;Y`>A<dw=EJHU{<x~HS{1O<+4~*ZeD~#aeIGoo>`y}`M83CFGx#ChY(f6jhPB5T zv~#yx!uaFEi4gY!pXBd1Cx383ZhiUo>g2!If6o1TNMG%`9vW3bi@G4s^G<a^ej2Y4 zw`f3$>$p*zQP=YvFO_V6MmhA&SS*qDP}G(5`LOmrDWsT<OY8W?D!HJ+LXp?Ra!->_ z#>eo>Ls9hj;dMaS>}0RVSK9DvTd{<V=fcl#8?GjpLa;Z`Va+|RV>%2O7WSOrpM0K5 zZVr6)#vpdtn;t$0dA(!LL$~3-QKjnSPiKGako-zcs86462#*Qb{5$T_0q$?&Y)$^6 zsAmgA@~?m2lKk8Zklz#XYQP@aYexQ^Rge$t>(uY^-1)Ze$d8{IXH~;w?6qolBa@x) z*omV$GM|7$+EUM_Z+2vszxZSzHl9dFSfd>raKFAmatm(2XR>OhuHA@a63MOO*FKK- z_<zUo+D|`F|M_(t8|iIc>kpO(He-p=4Fl92rTVjr0q1s!H-%cvP6;m_voVUF=WuE1 zPrWLVQI(~@%}xpNkjk%tKlpiIxpUR^^Bs}@s*(fsIMI0M<^cI0n49FjK|Z+0(TaSa zjw7sd*IU~Ba*n`DGm^-EuQ~bq0qambng`^+*M9-L7e9tReMA4UcgCPiL}47yqLUbK zYH(<&cdepALOhOK8k-|3WXK@WrHDnSAfi-BsuChG-HL-*4g@iSE)^6(bSZ91rJ$=z z5u`)o5-1Ys>i7NM_1>MWcNcJIn)|))US8@ItmSv#d!KoCwc54Xl~~Wz=I3iQ`ffl2 z4EeYm?=>sd4<{01>0xD9A?Uvc0Bz(~mX{Ufar#6eak>ue|1($c7bft7NER-~{xg^8 z0Xl1mv_c$FG<p~{;@g3PU#Y}-KocnG^vT0(C+nAY`&3OUg$f&Y6cT>VJzfEg0DVEi z(yHy{o_;UdhAFnfdbY;qj<|CE0hjggo}i0?@9(PmL<-M=!NU+aKjRpWY>(dXo$bf< zqd&*p-s4!G7(Da$Eaz+W(<kj)Z67-}JUo2t%o%##`U!gO`l-j|+NFK)dCPNG%BR<; z+D|{7#uTV&SZ^I6>6P@*VVZ4RUD!P>FDqFxUjo?y61wVvrRPKZ33_{?URdpIN4&}6 z16E#i<{_8)hwcjNrT4v=&+WnmHve6)`IC<M5@T~I=5M~Eyp#UdGjC!Mdx()s_ZP~y zPmhW9NFs4+tUO<vJs;ag#4jz>Z=Xu6t<eG}F*GzZHZ*o3F_hpn##nvfK9t&x%W1Ng zV<#ze6pZ(rj`$jSOxVrNk#oJ6&pYBxJGL>+;~w+xviKgVf#$R8$oByD-w8I~oOFDj zoXk*TjHIvmw9bd~6b_O3dzJV|d>^EE|4ZBzT3pOODwoTT%JcIJbbX8a{)?nrsI}Ry zLv(wDHz?pSJjQ7PS6vR|tl~<K=9>cd=GcPEe2v8SY9G#g<atSt=1)rU0p`y@b}9Z0 z%#UXKd!DngeTLVGv*E6Bs|xCCE}%WX!fIVNac8O}>TsU8BDl2&IX$I?pF_oq9hmP$ z*WKpd^hjT=io@Uh3OP@K4usA52GplyZ&0r1W*Fhj2kXvg5G#BUdx^7QD+FmZiy}L$ z#t?`%W=<_=R5nx;rBEogRj$MBbRL~)TJ4n{%%>gkI%A^QSRV7M(tB#45@i0%3p<z& zHh)Pc;RS{yKjCNo)aDGFr$&JxW&P18=STDfs|CBfp2Fb~+sw7UX)7Pk30D_Cu4;v1 z$2lV_)hF0|T^k8)eyhVfWF*)pXYDW_)>8nOe<QT{)6|&8gAnHDDa|9@OYe<lCWQGE zf}d#7Y(Jtu&{UY8gZv1*z-RT_@~qe8&#mJdshm`v!iLj!vh^u+Iijd;lIn!cU}O<D zJ?8Vm-b<w#X#TYAy$y{XJPS16%Cq($Pf$lRGr730`RfuM!~bZuAJGrYYMq=-Rs=O* zF11=;VmtV(LH*SBSrjHhH_hK_D;AO|EtRzQ!x9)+ykn;DLYjZ;FX=(`L%=$}F%6{o zjYbIb&1T*Z<Q=xUhVME*d2|%6Bh?e5Xqkcg3|~Y)vQi{@y_mN6#g$zhi?0+qIhpKX zJ%b5*=o(+VkV;yc?E1F&z-|82Ew}X)q0E0-g8DA~!<hd*%jV~)8B+YM@h#QY{27=J z;Qc5aKazvDV<)2j7*RSTE^wqr3fI3ESN~laP{oNj6V_9(`N`s!&=tOH5*uVZB$GwA z`Q$kP>FEG-0p`!WEKPf9gfah<+T3!CC+E2%^SgfLFHVr@Bs`#jO>*#d=|=P)Uo=zV zzU6f8_^MA;u$Yyn%i=sGZuM>Gb$)gNs=N2bviXZ%^M&=)OY>vl%?FKAu=#H`n%!;j zZMxm=_;_~8=k`CwMb7ik9@*YDe_$WA6VXT1H*_8PO8Iqu7x1Z^w;Rs4IHh?D<+@^M z^RYV)xHrY`X1>(EGB;QGa5l*N(liAo{UwMWBIiGEH=AzpyCgnwH0Pu7t1euZ`ThqV z>rV&oo;(qK$B43|Z)3YGG**kgbLz#yk|mwzCfG#I4#P-0mr3qm!fpQI^@>M(K_y_e zf1y-j_X*LF`5|)ti|_fa%=H4g<HpRUPoe%bsm{&j2QzwceE{#n7twdj9<+21rZCwG zTCaclWx2!$7AEcO&mn938)gO@V%c{LK*nSK+_v=G1P=que<;i^HMj?q^X~<kKcyPu zf0;kd<{SU^_{HQ!7GIdpBN~$VgLntdKkS`9ixWW@hqtgWRSFFjmqG#|kjAwT-F4z_ z3K0v75n^m4qN1XpL<Fmd7P=fLtjKC11~DK3J%!Ul3&FzUMDP<Vgk4gojd04z#m?W% zZnCpcvm^fDPWPF2W_F5j*F3y4vzbZCs$+h)gZJqOG{Usq*^ZPyk&W#hWEU^14Io9y z1AEgjpD^HmghoEqMDtHax&CL&54}f&zyRha(KSjV<(EcxYBoyMj`9O;HOjEvqulr* zh4Rt^B_(C0^ZKnCy-!CCaGVc`{=VM5b^NYc2B~%>&40HzJP1z^Km&%=7R?`%p3yx0 zyq37mALmZ8`45~@sDA7&-M;yw6#i8AJl_|zr@rs`lv?Rgy_A*DY>_yNT;E812NJ(M zlDIJ55_}FH1nLm&b5W6^^Hw#q5W<3E=)z>9cKkwQJwn#}Z@4C5{@v}|{OIm{G@$>U zd_RZRNZ<8icr5=@O46<Uloij$c9krOgyO5aYf2LB&!ZP|5rn9{tRln9o@SsRLij+} z+KOm?pgvku?tQZP_j7x|7gWYJS@W}-Av<SE;Qdsg^!;z<+_GJy{86BxD4tuGQBqP? zIy>7AfxqLB#kP{jLQ#v0PXa!46d4|EH$pU40lG2sk2bmU5zS_^bvj{h|NcOb9u?&8 zJW&#vF&c66*|~c(enb0K{p^fc_k0wFj}AehzF#k;ll_#H&)s({OT%4mFbWI)(=rlC z`;#H&dlI5;mfPH)b993vo{lw4G8;Evpvh@nI6HZV4>^CN{$Mb`XmIVJg!xam7NS(o zXawi(`*ccsp~UGpI`yd+Km-4I#`o%4I@wQI`Mm5AZhizGkjjF@LVdR;I3MlNZJkpj z$adA?c~~Yr3Lh=23o-MXf%B|H=1a`>2i*Kzj+>vmc38svY-Oo0cn|ul_WK1|Fs-M; zADw>eOw|MNeJ{dwU0SB;WItsU0P{6X9fQr-=Os+}q!PZc7cQ&?hB_-X+t?1%<CqBZ z^SogGF=oDKJ?gn+^PxQg34hNZmqYB4FdxhjU+})c(mjWQ#<KPJ*>o2F)Agsf7A;!# zDfMEw46kmdll_!cz{{d)XhdZ&gTr1^Kgi73+m04xeBt`a-d!2ZR4Wo*I2K>MJ7#`! zM2nTyxeKQ!n|}|kL-_$B$C1kUpi^lS0`vPZAimGt*Q{F>Ay$djDI+vqG`~#AzkSJL z%0EJFmgt&BSmE%_Fvy3jlFWS75R^AUbh9EeVd!e6j=~tpZ-UJoVOD*t)f!2U;GAp1 z{E6%Qe4sl((r1tPYlm+u5_E0aXoNRx6oO#*KEm_+d?U}NWf&gI^{5`#zFx04{=*;7 zPg#XzXH}T51p*J<w+ywbNbss?5biwp9uch9mr1dfytBV`3El_bVT4sw#>{WUICoCc zd<YNa(V@-D<b3dQD-FCa05l;!V2$fSed_TF+~^5#^UIs`^lX00s$ijF!Q42yCAUe} z=^26aAk>~?Z%_Pqt*YDnSe(g-4#wMLMiFQG@O<PvvmVXi1oNBs^Z6Vrxof%nwmi%I zaycJ#P0GC&f%GAs#~R>r>0J*6gAhs~ej)wN{-5X6%^Nqa{Bzf4|83s%Ea)2&KIn$r zi@9u%=*GDBz_t=!>CY|N%N&zeZau^P{6Nh4C!ji%M?r)fZY7$Z1FQ*q$(#>5RUy|S z(Z`e*UfsFWjl;(<|3Ccce9jI;^!R7FeCW`}{reA`Qc`|}=~>le`ZDWT$9hX@nGY76 zq4}}>dD~XI*~xSLstuMwXn)9(y?J`v{9#C&e-Q~k^giq*%?ERY_QhP!8;=EZ9&qmw z3>vm&H=urg>VIA3pV@V3*RF%>cQGy<WX}f<95{LP%0A_{bM@n)4I6f?|9C0Q`oG5f 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 literal 0 HcmV?d00001 diff --git a/autogpt_platform/frontend/src/stories/assets/discord.svg b/autogpt_platform/frontend/public/storybook/discord.svg similarity index 100% rename from autogpt_platform/frontend/src/stories/assets/discord.svg rename to autogpt_platform/frontend/public/storybook/discord.svg diff --git a/autogpt_platform/frontend/public/storybook/docs.svg b/autogpt_platform/frontend/public/storybook/docs.svg new file mode 100644 index 0000000000..6988995ddf --- /dev/null +++ b/autogpt_platform/frontend/public/storybook/docs.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="none" viewBox="0 0 32 32"> + <path fill="#1E88E5" d="M31.3313 8.44657C30.9633 7.08998 29.8791 6.02172 28.5022 5.65916C26.0067 5.00026 16 5.00026 16 5.00026C16 5.00026 5.99333 5.00026 3.4978 5.65916C2.12102 6.02172 1.03665 7.08998 0.668678 8.44657C0 10.9053 0 16.0353 0 16.0353C0 16.0353 0 21.1652 0.668678 23.6242C1.03665 24.9806 2.12102 26.0489 3.4978 26.4116C5.99333 27.0703 16 27.0703 16 27.0703C16 27.0703 26.0067 27.0703 28.5022 26.4116C29.8791 26.0489 30.9633 24.9806 31.3313 23.6242C32 21.1652 32 16.0353 32 16.0353C32 16.0353 32 10.9053 31.3313 8.44657Z"/> + <path fill="#fff" d="M11 10H20V22H11V10ZM13 12V13H18V12H13ZM13 15V16H18V15H13ZM13 18V19H18V18H13Z"/> +</svg> \ No newline at end of file diff --git a/autogpt_platform/frontend/src/stories/assets/github.svg b/autogpt_platform/frontend/public/storybook/github.svg similarity index 100% rename from autogpt_platform/frontend/src/stories/assets/github.svg rename to autogpt_platform/frontend/public/storybook/github.svg diff --git a/autogpt_platform/frontend/public/storybook/molecules.png b/autogpt_platform/frontend/public/storybook/molecules.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf006b5d9bc845205a7ec2a27eb515edab99c77 GIT binary patch literal 306668 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%0A?28<y*&h9+_%n`Y+_mc?K4^E~PHM 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↱$C%4?nnFMc7bt$-ix5HAK_lElIs}A@y1V>$?}^H)kN= zUt35Q!S{42?yuZEGwy|{mh%Lmg1Xa%5V^XU`on{(tE>K>9qdQ~?pl90xx?{%=J?^+ ze+OK);Z_v?xYxAb<L8g5w+Uu*Is1>8QOm0j(6&9l;$3Odc;02ZDm5xz|B1Z8pXAp8 zq5E0wjsvy(!~S|!WVY~kC%V61?}k@2aQ0tqr6Ytbu)gc0&#WSX?B1bjg-QxVd1~yT zcJ)F%b|?cVO8-4oJO@aa$0)MJa^i>~S=0f1mH(fT9(&WeTT=LQY$dZqt1?da_>%Kc zu;s1$O%LtOi|Y6-1jd75s@k@+3%><iKE<~5R&sNL5Subjb@w8Lhidpr5<{4xuw9|= z+A|*X2LV<^Z;y*RLJ^KFkM9aqEH@t5N3&|)>K})+!sNvSv}ZDY>UxJqhXr$(a!b5V z$ElW+N^uR&{xN$`1d!8`o5%p<4Pd@Jn<&VRUbo<FTR<E1<*_kE*B7_F99rZZga7;k z&cd&7Ws9{~zmu%*w8?yPgs(^EnKwMfPWO`~H<hmN&HN5$N)Naq?E|?t!xvT-qwkTw z)#q?or7Kx<_?FYkL&-8;gA%Sc>glM^HJ#)KZ<*cZ!LP|eL*fbRmBgr}{SD;$yRZ1G zBe(UP*JTmn#A~k4YK?Iury;_N8dUJ;mVsnFEd4?Y1pCG+^xI4FQ6p${=ll+2jyOB` zW|l}w^;Phv&4$Jgz)qzk(k5>4dctR9*NaQM_p+j_TTSWT7ZMKg?{gFRPUd{JpZk6F zI|5VN%XhSLg_hGipcnU4Gzt<O8Pa@UA7!RXntXG`Kfdp|$4$OnWh5$#;w=<X3kJK& zZ1b4letWTf*%z+i&)Ld1jgdLAikKtZ(eO+?VkTAHeX>}!wCq8oQNX~~IT6u44k(+V zn#s7jXE=i@4SJBzVTcBOmXy5rL?*mMDqfN?4*(|55%-JFEdb#55m1WsxmP+%qq11v zJDM>)eAj!YsWe8m^0r0qbNzo;MH^o1%rvIg1{K_qo{=%rL)f?9uU+;BK=x?*G7<ny z>X6tJEHvFU@o8H8&n*lQ<e+_+5I}Ju=zqBI|K-btP=YUVM#9X|YxvOqIaQ=xA?M_k zz8X?<qqdoG>MXLIsZD+7mfjU9Q4>HNOz%X*S0R62vEFa%9|;y^{EGZ#6~YY0Cz@>) zy14X}_0zCMsVYRe`b@E5Q<Oze?H93Na(w?duZ$geZQ_GCSi;oPkiB1-=oFHAT`o4N z<y)_UEbm|5t$4l}pk*K~V{-OOI3K4Kqwcc2LD$14#fIh5OjZ}6bsBzc%|*^lefxF$ z$BJ~>p8*r@no((+H@7tdov$rL&$`yQKfmHj2jEK>X$NQw24<%@L=gAnLyKsEr3y1% znYwqB<r`Lgua%>WQ06lr1l;PRP|nug=l3vZaHi+JF-e}%g-M5+GdyX_yM{Zpb_}xD z8vKWvJ(EXKb&oWU^(W{64)n;XBPYD~u#MVk=)wSbEvvX=_1`yMBdoy^GOlZ0WIqQ1 z+1cl2o1=91>WB#6A$$R!HvLe=6}~eY9a9P?<G6M`u9crK-{D#Hj**UbR_=o?(uhK~ zR(#h;GX+wiL{)d+Grx3vAkv|fGnuqwH<|zf-%Z>i$pz186g^oHlfEZVi{QgI8YARL zU=Myu?CJ86Xha=3BMmZ7?OYU8(yLo7#Dt3|wXTHW`Y7XXHC;wIAkHYJoFMBK(~!6H z-gnNmSn2Tmv5>d-$V%f)BXSq5zJFb_cxK36A0{5=aZU11WJ7iHBon8y3>T;8jCG9G zT4Kydd$(IY585CtH{?k`-KOys;)xk#jSq&J4%W|7QSnGt9A<Dm#QtU`Q7kxB&z>K7 zVw3K^xUdWDQ(mOC!rwzOgup|S1wP_Te-kt?)T_2EK*dF`z)IdGNQ15Kw1H5Wo#5mV zK?x}3dm_)LeLSg2fB?V?36uK^7=RZE_ND4CxKf-C%a-&D^9NxgW9gf~Y~$wPN-RBM zgs)HBv-eV@>raBXMXTl>N;g8Zz}iHbv{F$`^o^=cE@06=P?m5>sL5p-e?j+{zjjbv zz~DN~nFz|dSl?-be(@;HbPrDIB*AOor|QI>4Sp}eKZ>c8^sxU?k}Q%)_jKN8cT+RI z4%XDj&@wsUpcSslZ|I16)6YX$aZ9Ufyv$riR9j9vRNzXp5&73D?1{L_c^p;rGKW#& zFXhQ|^X{h~i4jwGO->%K>~^C<t-MPDv+52958==0ecfCiYK#C}k%@h|$3XK}W(1D{ zBjRr;52EROM`pY<mYcbJMT_0DF2;+oy`oEs<SbRko)%+1m}1x^0Dlgq7z$%OjcY5h z{wOWd<lcwnrDtRPnZ}_V5!^Hz*e>gFbvZhl<pRV*c%a!#=n#3~t}x`v+!-PF6(l%C ziNo@8c$atI8C*q&?Q7Q!En!dkVQj4n!k8e@S?{aH#pJj10hJj?@?sJ%2|+{zCl4Es zAZf|~EoGm`%jLSWA&;j&C<7i?^)GJRx~^=Zuk5zf=<TSr;MSC$5GnenBNgSe;WSO| z{Uj-1+5OkZpSYLC=SrN5-7fFP>z|2v1Z}<)-D(vo6;8YB6IPVg$M94WW*eDFNWA*> zVf{OK5!rvDp(5qOQ!AXmoESCS56=I2EUv+lKDgB%C{U1}a)R-bg89XON02r$2|AA9 zk)?<Q>?Vixyz%pW>~Wv$(FRkx`FrSFunSd?TQ5gB8&CnH6cb&zhQ0~L@`7@7h(CwB znLihD$69Ec^~nidW|6{0<}R9D0bj8<rFK-Ww>dAmM%&*TTg@-wv7djCfS!=mQ2-Ay zg$jTu=IL`3^%?cZ@K}@b-T0r5H!CPx^$5V0mwPaLh`-x2K*bwgW8~3oXub~9pf^)H zlrhVsp6Xx&nSR`Z>Gpvu9J5J<*dFM4l`+Xy8%-v(oOs6k*#M@#-|-CGW^n%7?!8F- z==+d`mW35F8&HilKVW$lNfy5b8GN2Rd}*|0Q{XqK6qF@yD$)04Cg~_%I1m3a9C^uJ zkX@Ck3c5S_jGr~^gAoIvDOe04>kgKp&E-Zni9F>SIvj^bBU1{(HIezCs#rwlXQ}%I zWIS|;B>)3o%Z8z2{Cy?15M5+M6L<PJK(FbopO6Tkd*APEGH(0#lVKqHnd^;@1TP#u zmAOA)EPs5E)ACHaLGE_e;7Qpo+>2ni6mPmQK-tp-S5%vlg-V;+0aN<BTIo0(wYVZS z6W{@-GNFI$cesHm53J<6SkZaoL<szX%$@Ky$ccrSTXX*{_Qkr_jO)R2tpxnF`{%Xr zkc(BEf7F~{kf<+67ZT2Z*$4F&5y65{PkRl8%V#u20dDbyiMBCvd;a`i>2&7l68g4J z!8R*4eh<ECX=9mXw|O>1DYdfywsbN;b0lO1zI9}!Cv{>*NK4V)zgOrT?INzAB2LBV zCo(GgTBGKF&>FbO{KAbz#Yk3KnoUt#+t_288Qp8+5wAbnzpd-rx~d!>W$2A)e>y7{ z#l9-b?<*%UKa~B`a=iNH>6oO52^m@f`Pd2aff-{DB0H$lbV?<eIFN82Pce+xgAS4% zd<HX+1MC}_P_)(jqS%f$!=J~6Bbo;##qo!6=SZa`{riNf3!i=dU--K632vcgyvv30 z7bUFLU80KtO6f^A$rwBHzZ`pGD(!BWT@#=o0`C<FA7G;ww6?a`+4b~UC!Rs;@oL!s z^}#G3^;}Yu&w-Enx|!_~^(q8U95jd{#+Mc9E~V^IpX7nO^Ms=!BowkY&PTx~5M6SL z#JBy!WL4_JdZtaksWJW;#_nO~J*^pov+hy~H4X|6N<Ev^AN>H8Q$B_6@en+QgY~6k zX>*?+Z-K>FS;6WZnje+-cF7nik`y0_a4Gs8XRD`3>89F>vIKXqns9Sc<AN=PLX#^A zvw?N0lc*sLGZBL_uITB9B%ZnpYHlC#CH21g@{fWwUlA8+qUn~NFe*_^8C$S3BqLb* z)#U(rod=Icz%Jwnl3tSDUOjz%G_cKLlR8d>qAOQa9y@(_VjMJn@Yh!yyy&5NeJ5_6 z`Y?jntUKQGyBbnKQs@|;f69+{jFgIgZCpWWCzKcjvPG^uMI8Y|ga9If`HqJTdd|!9 zzLIfN2P=MfXXVZp=ktr+zjD_F>|LDbdrYWB4`STPkqr0pblHySOGX5>S^~z{+u1te ze&4uqF)<1mS?B^9h}n(!MIPUqq}$XiaFLHpI^ag>)pTwvc>I|bZAsn#-84EwcAIY_ z#(a+g_C#g~zBIMQ&~uAFLDBJZu^rFHS4GiJ8f<@_octt@qK*Bp$^_c$!H;g&#*xyq z@0utl-6KoQ=tINbB|s9TNsh1nt^`Is@BxlIGpFC=KJ-!JGrS=vs5Q8Ll_yJiB{m8C z<qAg&yGH%T$iFYZ<h22<vlNz&awp|O1S33vFkpe#Qp$~)wp+2AjG{J-$h)6DJ~ZR} zqf5Q-uQT(nT~mpJ7g6!!Q$64XPqA#m9cui~6WBkkmg7a3D|&Tesm28r4<5vqaV+9_ z#{p+&VE#lVAIm6x;x5ZOMqT`43=$G<aZJ2D3wXF4M1<zo<KVcHHhmSBZQMEBT|9V( z1N<De0kkdc>PIM`lzG(9AB?D8LQ3lGMi~yImb_&s+6BK7r9p%bxrM#<Sw6TR@H5`V zQelEhPoA}vZ`Ypnd^FH*(cGEfzLXAsS?R&bPfSzz>fL|R*UH9mL(!fT<i+B#mmBTh z=znsqe0}stUva%S9qH!qo>q@DEaMGZarF0|Hs&R-ZpT{ryC+wcjG9}?P78IfLEj%< zlKpp&)Ku|bS`UzXUf_t5dYo_-Br!8?yXi4i{)r47{X43cY_OhpKp6EEGwji=Ly}sq z`!J%rXpO`K@mJ$4q^Hn1p_kM74HQp&&G3u`Lw3G}JuXn|FI-F!L`383QU~M1Z9C6P zH(<-L)JD9G?zzs|_BCa?sA_H3n+izp2~dkMTl;N}yvEN@Ggx^Dti*>Ng*AIY5n*k_ z7yEHkKq4qCu03I?!{bu__n8pXE`EJ1B2-0FS~VJgPxVPdiog~cO4SR48EWLHoBwuH z3D77JRubqahFUhhmpBs<ph76)MOa4vu<5k9KU*G}Ri!eCB0krYLOvjl*B}OY-7)4K zik<;l+%EnRPyGyxd^<xDr$hza0r$MzN_cU~_glWvHL1BOESBk5PU6+(NkP1BsO%G| zx+vG3`dgOodNVENh{VR#f@bJ6Dy4GR@VpS0@(>t==t6|1U%T`#kohKr4jb{kJQkeI zE?=Ut!@f>JBBdty{TCqnD=k{6h-w)F(*AQu=8wqO9k{izQUo5SPqQ3!=icjlg4ID? zyW&>FoIb)|<j`LUMj&rnHF*iEMlAyyVLxE7DKxX)7>5QCl~&s^cULjQ?$(tp5pbZ- zcp&PA5_f)ZRlOR!Z>iFKZmKvBB(XP#fOA_?(j&NgaNK`Am2rRCYP({RZYYQafq$_P zJj9~^kwAJfQE!NJ?V`u2i#Rd6eFh)jXYhDBEX1LSi)c|Whb#8N43UqWjuBmVes(72 z+e8zdc#@Yy*vtu#I<Nf<xMMqW|GN4u&*5ykIuA<^d4euD4H+Zo&HHWCGhg-dy^y@) z$U2ju$8RXz+|}qgg$PYDjopspPYl^pd%}g5iurfB_w5|H=VW>*#_Vn^&NLk<B~oOX z!tW<#R4lXyESZTmqM(Dss{YgucwEqFJ}c^X(8JSxoll4pXzJ9LvDPHu09PThG*O;2 zW3h?9bxSn$ww}GM1vT#2zu>D?frRiXzy5@PtJGP2tn}f4Q&JARD*0%1Q#X^XG+F^_ zC<XZrkN$5qsl$=s?A@2$Y;_F}>*0>B2+4;-W>h}B0%Z+PSzhv%Nm6N2e#1P_PG+?- z9Bud<mpdnsmMd)Nk^fTMa_qY5b3u^dpM}Niu#mBZkTY!HpSC}ZdS+}Vy#sNHsAxg} zn82F?$IHv0Hy;_Iv(kc@cYfY=*}Wd6<}OSEEjl$cc64+!cli8CGqZ1MYifGY;8sRI zA~ChFFkPUVNN(^D^n{vKp@^x@F~JW~5SkiYbPc$1csx3}cWzcZEyf{;kWJ*n=&Z&s zWevQu*plfNvVAwLAu$H=aNl!@fSEH>3SZ6fuX$rgC&@%|m;`l%h6??|S16*924Xtz z;-q#QxA#v-=LW4FOwY*BPDxA`?^b*`?Yi@u^dQkNB_6~le1|>HrH6$5mfCasrNy?f z=Ytr&%=WK^qhs-le3~c4WwcyeweS1wV||o-xq0rON}z~P$D2JA!!FDdQWRKtaEOeT ztecs!m#!WZEiN6fn@UDP+CyC~CkVP39_;rpARn+zy`Q3L!+54JDu{Y&Y4%djMO|l& z;{(p9wE}Sin7Qm%Npvj9A~oo=m6hanURhvV9E!Q_noq!sb7c_=(}wqMODP{emERm* zw^Z3?h(2=~qbH=_^8fdxOD^a3u7}0<K3_*4M@OIEOz9)9M?U;#X5_YaHzzWCT${!P z=(uHT_vt2*6kJZ!Zgdb>D29Myq>>LG<nj&+wyK+#Z`iH3gngoww`^sg{q+g(b=5{U zFQ3Izcx0P^-1z?m?!VD#dVzRSESE3)S-dLUKoKHYS&Td&e;(w^1IfutHSXZ;6T+S? zWBGgxLL_t}ZIZi=NJ8d<0F=yqjT{M`A*Dzb{=_kc&GLnf9AfS5&Km9VMhO$aiPZ`4 z8fS?%Kok;QUXcdxzc;Y<T%1<$!h2kwO16lCZNFsu!rUX(4aBtku}<7`X*UAzCJ;OD za1%6+OXTd=aX_kZds3{v_`+RDTkh`~k!;j$EAVzN-K9&Op9+ase9Q7d20@927V#K` zZ%KXxIRO&~19uLnFPD?VRj!@|GlgQ)cWhGQp$7xWyBUS^n)_J-PeVLk4kfV19(L^3 zs&s6<ovyv^+T(s3WmR)^He35vA;ZAE;B%vNgfZs4kxYG~;z1}Ni*kk*g&;^_&lFJa z(2!*n3_9$2iRO6f`+~0?Fk5~0|2k!7mS+>q;Og@m<OoL!L%z@6{7~n>?TKw6iCK+D z-hVlC_WA6&CfJ)Xs(vbTW?M9YoADVty@LLZM%P13MU=K5Wa1jDQ`-_D4DwambS6Hj z3$P&ir=$l)E(tVY4VCHfA2xoxI<kG2885)`q>Sr$J6T%H&ZLTw<tqmVlLpVH1Ics; zDnGL74!~)`sj?`#qqg9c5U&?yD*{f%264lv#_`OONmgfF;xeRn!qmb?u=eLdP?0V8 z7H;)4irC<HA^XlVBz4R*+#pQgio2KI1p*LWf?mcFC<nOVxNmMKQIeuv+kf!2^qW`f z8ccWV<i`mJ2s`xse)4;7Ak5(e-{!oZuWVVc<1X%LA^zce0GxYgpK!HZdo3omU0GSV zEmm16CibPuMmg^gb`66ShJTiO=dq)Ac7|r2amMt1rz_wJ>ZN6{5WS$L1RyAK*qeR? z1Xak{OU`T&tLtKBw^;rfdc4ix;zMQde94k1q!iJvW~<}0=An{0`ENih<Lz{0)UqQR zwZixb6Xt@V^G@^kIlJ$AIw8IuQ|5sq1JN%W>IdF{VBa<maU{L<3%d$B32~!^zoIY) z7!{Sz=JY66iq@C8MD87<U2zlOF4wn2Fc(RQ=KBqiG*Gk)KQAS)E<X%#$TAMb^F({4 zliro%i2~n(f^2X5x3Jk|7gb5XP<T7aAATpC(Kw7hs{fjW03+Czc)%^%GY$)J;W{%& z)62pb_|!#22#Jy4!0mSqYCJ^WUus#U?VoIO;{(SzQMsUpyjVE)pjY4KYNPV=hXC58 zX1<p}w9C}D;H|iXzVNz^4krxZUt5y%H41OtFskSjK8npJ-}|qy*2X>2j)0ln4?ZT* z%SW>#vg<;Xj$!t((L91Vn(<7Ob}=Q?^oC<z>mUmr3XImim-Vyz9>qKIG7_qzG%bOy zyiK*`iv3I_B{A0)11;bVF9f7eZh~G5#=`<jr?#5mJ#-9@R6Fj8zZ-pEBslzJ^@Pi$ zVHjbjvvQWyTgUfPj{iWWi=-skF_&|YY0${<;_(oU;HfsINVVcV?IyDhQde-%TRi&4 z{*f#7GoXyFRq&7(*NBRmxYJZYzMONho}1oOQCIYpIF%_w4CT<x(A&g0^XC)gkidC} z&2ffWVPQ!&lJkoBkb6AEr(X_oEsB-hR|yDjV=U#~qtz9B-^&QWWb=t=aR>Ee{SJ5x zQ7WfFP$B~fH9!$a1-sF<`DVBK5dfE<*0}npAN}h@=o|G;<bjn<o=3P}{Vuj~^7PWd z5Y^?HYOBm27)o2vqfbrsud#%vQ<Bpz0~N;ML&U;RC%x+B3NQk&<Wy++qbPa#L7J5M z0ZR7R5QV!MfI@zXXolS6xU%OO^CrOALzv6&y+uR*NA{4X(mp<h3$8cNyxp@^P7>?( zw=w|}m~Is3D%C(fI5{V1_f~C(QA6mh;)o>o$v<J)LFz4OJ~f@>!iO(-v)jLp(ankn zW!vjk3p3JNLcjD^k0oe{cDxxV%m<YzJ0Z1bB1r-SSP@*QYS|Yrqnx1+L*FJFN63<= z2I$1tY2EuNj#8W&J4pm1?=mYZy>?GP5uP7r4aTX6)*umGTbEI7D}{b|rT%Y_@?3ry zN>Zb$6+Q>Ig_a_2Wn>rjW%cz+iYSqRB#?k~Md>fxqqHLpAv^u42s;8{8=_Iivx+Yq zzg~`*N<#=(%+Y0c(6-ORA|&)Kq8pxd8q``{*xX{*sc?PzH>$F;!DHt~$TO@}v{z7$ zcCWJ#JBu}j&h+M%o#~Jf(?9u5hDa$Yr}psD6z9>hadp$<i^|RvF{QubfH>Y&v}`S1 zsCjcB<Qu9e<ZU~!ANHN&((Un7619_1R54o~<DY=^r)^{lA+CC>@_ZG0?@M>wmeTEk z&v#6<c%lDVX}%ssP1vI>b+-P^o{{ZvE)a6WB~3(B<YC8#LE!Lr56s1+5fCWWdFOt4 z2131)v%SP*t@}GvSOC4BjDC_D_roaS<@3L1V#QV|IjRqhyO>VTd%Lw`7(QSjgv|?b zyyP_lv&*E!QJkVN&_6BAS|`qH#9a|gGz{86edLANDWGRUbBX1Ty5TyPDJ(!SHw=r! zbOnMuk<I=?mOmbS<86*&f|p#iOy756ZzDMQe60_d3`G(mFC%ubN#HOGEEL<K>h(sz zz{!tF(|dm|FygYz+45NP8v4&O@Q;KMWh9x>{3jqSLeftuHx^8ITEy#d0&c&>V|j4! zaJpRF<@Q<uzg`rDFk+qjO(R>doNMO&+AUQO*9-W?KXF&_S=-O@@vN-lnb*Z0)_!Kl z&*v2vu`GVM;C0?0D9-($90zHjWO+Y1cvKZuVWEZt2|C^7SaMG#9Zg$KZFuvXs;>4i zC*=o21AS^(it*VO+BZtCmmQ2GKA~<?u+cL#fQ?9m?w-`8Q_vi(7=1)67XW582AGAu z@2blCwaXtuNkbR96tK>D$Od{mqd>u5mLOzH<sLOM*f2~cridPPjGI;hg=MBv%ZOeR zB)@Rj-bT@<!2R5hQx+F4F|>OG6TpKYgoT5yY`bxWji4ri^srDGs(W_I0)Li|%gMnd zRabxO_z3I?U|R`}=K-|%T^ow%%g`S({ePD2IvqMuB5&5-HD<9|t<E=sO>S#2qItnj z6-d`vv*pm<AM;tI%-Xz6((6>@hiqmjC=tX{6C*tIH+9l}hzhSq#ixJC*Y9ZtUh;@H zPHT`Z^EW6F!$d|{&hN1Vi*i_#7ioAb>YVfc{aY_lrs%}Kq1n&`x$2Q7i>j;_Ap7s@ zJG!qlaiM7xPDTCCNho>MA8Hh>+@E^*sjb2}+oa&?{YSFpb;`Llw7;Yr%iFr=2tjDp zhksx%(?{K1Gth?_Lb`d%3ce!o0~X;UOmth9Z0*7e6zP#4H9M|-z7$5{j6gD%0?A>D zudQLPz}EvsdTiO^-GpBY&rIANW_M|&LSEH(3eDDBuJt=p;~zkZJ_20kM8H3|FPgJf z>58o#;Gwyv^5GBU1Q$^D!ggLt`UFBat`6Dvo1s?wZEIBX3GkARU_((^AiS$~#%kuR ztQ5nX8?bkElW%l)VQqOGT2@Nnq8t2%q6)^5$5zB7%w>2JejXj?n}(yq1AM`Wqz1vT z6yi<l`iZ`fc50$LdavqdL0N@UkE@loZGV$lPDrsGK2ClYq5XJbM_$bY3CmgtH<AQ} zu~&ygy*Ab#6;6y6rcEOg7LGhR8+ZTW>t$F%mmNn|`Q7QGjIN+7t9kbmTqW7g>umKK zEjZeNR2(7Ba%up=bSU9pGad|#uu7Q@n_cK@<&Bq)vy{cd3=So@KA58=-w}oBR3yHH zPW;|-j!Mbj()wQW&EuLNwqsj{UGDcGA-MMA<`22=8%O@ImqD;ll5?Za2I=)W?Jr(B zj(jE1;$H%NK=?&MF(KVtC3G#*e6MBYr(yxY<Et3<k?VygHn6U%!NR)kvjs3<l|V3U zgJEBID*&}EB(8Sh;#gv12yFZM+I;8n--9J*O=a3_RAVu5d$I6!THiypRVajT%5ta% z4IVpCiH&RUvgPwOjaFIx_jp*!s`JOQ;wWXcT$|c^#UFG9W1q|Yyf&uou~>pvM#Z~2 zdzl3OTuW7tZMaucR4eo^Z12Ik2=V*V>)Y0^sOd)r=bMd#?})(DZZ$crCY7gV1*l3{ zs0!#^db-Ze5XZlQ$=-c&{R(x^xD2~$J0x}pN9Q6{uG@?tXwtek3l3t7Ko<F($W&T- z9({xk!tacWnL%t&mMVpgZpEfus|t1&)XT{2Gh0TVy1!nQ6a-v2_7~nlI^A*kN<y%3 zBBU%4Dn-Atw#lt}h<-=&rIL@i6@ig+JZ0gnE^NRBQkNL@1zFTZ!f=CjlZa6K;N=`d z_bEJQ7qWm1_<Fe;ihR0_uf89E_hSZ>ej@$u*K`Iyt8|iGElIj4xC~l<C)b6|uRIrD zxOQ_72pSM2ensL${7b4AM1_<Q98`6%;ouMjkPXeSr54};kU)blh><MmIv~3Co$T0^ zryj0_Ev27IxO3urRJ8z4^6_XcbP7?Hp71tDGWv_w=BDgPaoWjKZ$qnb19HZ$SY}G> zT!u=nf3tjS-C)QhNqj}R!RhG{d3N2Z_||dAdE$z?{=a>byoP(YJ4&CB1!ng;v)D9p zmn;%LMG)Nq!LnM>{KWl~BTN0iBNG_*)04jSMi6BZlL+AR<A1p4PG4HQrvRK34e2rV z7<j9i^1u-|5VT6i__Vw?d>Qxs(Z%0e1g)KGg|Ef(a@Nmx0sJtiNU%?n7Q6lG$KK+U z8g^D$@WyO+GO}s=5yYbkEPEX<di22`qw<PD{zA96D_!74gq`pG|C$@8hnDf*{&W}s z>oMS#!B+SHya+B$DbXlx5`jU6kAoPlqfdRlP(AD73YDIpTClMxXiu7gNYNy5*=ZV$ z11gF|!*oze16f#I=52Jj8=ft<klpETf+~4aNON2A*)zHqLx1HA$M6)(ke|9l59oku zSink0_yU&{??d9|SG0$|6iNqo^Ti<bUs&7og@ybn6ZMAz^qzIkXFZ6CKv<ex`b{8f z_VPor#D6VGhr-SQjSB4%ZFjGhUnSqujK9gEMsQpeH1(ov-;DUnqSdk=e*@cxy8Dy5 z6Q9BoMT<9RFrjwPkHOpKA85E>3NMP;;vrLiY3;`5RM-gq%a4dc5(rF2NL7M%!?O9J z)y}`4p8zcNN4Dp&s*p@#MV;<w!;X`P#{je!hVitMWXIGN+5y5)9uo8b^rnJR^aww> z+%Id>Jrz3QMRh&J?z&fnHFv_hINBHgbO=TxjR+0+`cw8DXKAZin|fH_^OyKbyqXAb z0J37{u*Pk77kp#<BBV&7ayw6+ng$0BC1ce}nk{53Rafg@g*=J^<Umq~9h-o#RfWQ} z7x~sRh0vlBbJOO}txoIJ&&#?wuAIm<72X6fFXTLnTR-@Bz}v_4heL(^+Gry8{dch4 zvhob_^omi&ihtVBqKVrUDmxBp@EDh4{p*?2ngRULDES(wAeC>_2)@~*sI-uLnH1uD z?*Z3;srN8LO8vBL(V5Hd4TGF2+t7U9TlVOlnFF2o2=a~s*mh?WF)6mz%T*tdUmO-M z$Kp+8I8N=ey!u;-npG4Ady7;g3|P#G2Zv>vdUSERT%~xIUiP|bTL-oh<qPc)&d3sf z+DlGxE1&5rf0Cv&m;~-)=dS{wUdNoNdHaD=GJrx*3wRvgrG)!u_tejuz_gn0vkHu# z!Qq&cUGAc0>ExXG!}wQ49f>x8DXJ9^5N`3S%icwPz5m~W7$aDi;fr66K;(Pyebd{b zQF>lb9!3Nly$ybdw`UA}SfWYB^(TLI^0|`De-n{feGz64#q)=@_6#|B9(DIpmw<W; z%wLL|MC4J`FM(!3A6R~tbu_2?<<>s(AsQ1SFo~9o81fy3SPL+Ds7C!v=lHzNSI11R z$KO#7z9gC)doLaIg9O6MWv0cg4I4q{l)RRzob(*OE<GNppe1H7p+!N|%2O45^y=Q2 zK<IvXYl#Rg>eE^7A3<5Be>}NGi&Z)f>X<es=BXTk|3`RfBucM`>b%2`Kc?nry!|U{ z%B6=K?e6AW280C@14e4kY`Fri`ezE^VHk!R{<DfVFV-^_1O%Nf?f>;3;grKb&c{J5 z3NOBf?7C5{EZ#Jl9fIrcgdjy^IQzds7wWpq9RI+hwsMRBHjlXFF9Z7iM@Yew;eT+C znhwQj`z(+#!0?YKb75(L7a&7@RwYGJ(xiMU4tw#;@b_eQupowLUQdoY&e}}%$&!SQ zmWM5TC*;Xq$uTIlc&dj=Zid+JiYrGuqI@Xde3?^DAD5r?;rsIqhV~kSr~(hg#A9&S z)6dSjCcQsh*Q5EJe;qU(aenup8+4~t%`Q|YKwgBuDk<bE%(IR(`za)m8Rz<L^2ui> z(=(ecj+lt}aLqgkPlmU~(ON^~Ms_2IZ}m{`Cg3OK<wMN_dKAm4<;^^1rl;Rz_vwOg zQ`hdNdQV$S%BXK+U$&k)?hoWtQwN>b!2OS<AAH25y<_y`oTD#KjFjJ+?Yn9FJ?=e* z#DmM1xY^K$$m?BCW$f{U464|sp}F;Je#@<10(yWFL4}Z?cBu$miMW7<y}bV3gp>Ic z-2%Hn28rrYtZx@Q*<oj_yKkS#;{YnxIC;zO1kRyf{T-D}tILUjsJp2uWk^R2kS&Q_ z4UqA~u5=fgnq=x8404(DgaZ#66~kKelt;8CkAsK5NeWla8Sc@zl;j(<+s^t)G3E0o zS%=xrZpyMOI9)d?1x*N#XmM(O*ofUg_VH*v6mC`3?io}X7MC19AFt&u`K%w;WrdWt z=Q6cmGuZO`O&FzImG(OG=A9>D4lt1d9T;VQ-2-??Xdb_O4xbe@Oh*lok=#X_MTz_- zqQ}OXyJPAH&1goS5|uaFPMjZlcPpn5D6sRWwtcLU)(G6JA>YKWfc!g0(b9pg<`&N3 zgvyi)C<`xbRXGC1ZU(?Lsc4o6EoVqMkTq!Tu*Yf)iJ#sZb+Qu0RBa|Ok1?HhgcESz zz%9%SMV<s5oaN~|?%_gCnksK?MnD#HvhqO8j*1;UoB(|p^~d?#E&SO%R5P_$OuPY5 z_M3b#gQw9=UQs>=A+NGSzq%WNNWN;{`ND8Q6^+E?eyOqmFy(BgoF|rEMn{pBs9B+3 z(+U>{1za@y>9Qm>#p|=BMHcL3b7W6XR@#o?-hI21sly?pbe1i8E|o+uj-grO=Dp;g z5j~WIQ?@n96zMnO-Lz{)S258&{)caB{&;>kq$@DqfZMEx-##U}4XK@ZbE;Zk$8Y+V zf|e@-gcy?#1);brn@8T>LPJ~qiwnI$!I1AHcC<UK6~X$+U@Gqz{Hx&9%sYz^f&-58 zYWUoIhEA(M@r3u{g$IidO=6yWRV1cx^h?4Zs7KxEu?4X>1a(7v=Op~uLT>iWZ<@oy zia8JiUBak5-hc%cGR$b(UhpZ-^RGWWjs!<&`FeD<9DYn-_7O&fsDrHg08|{{m3r9Q zpQ3(?-cCRlXlH+b<{-0sVYriYiN~@x!fC>8C!;twp>;uChQKhX%BUq`6X@x(M*`Ve zdYZol|F**g@}5fxR~}FYfL2x3KHb=9=lntw={o#nBT<&Y4}Ye`jEJlHRBvy+`y)3t zLw4Bc@9Dg85gnN5PeY&P-=gOE{lof4xCR;3pZvUEL8d-4_x5VbnpzY0U%d0(iMCE7 zyfS+Ao+9up<OligK?S|pLR|`v;W#kMtw@>%s6UyL945BYIOxJ6b+UoaPDTLOm+D}c zO%J=GD&Ro8T&^h#-#STwx~i@g&U>Wprbr`dX@Isu7o}TNwFyHKBD1!y)5%!amJ53< zuk&}pe*Kyj$|1(=6_O#Y38&G7cg>68v%Ae*Uf1N*9muu*y)(Uf(An9&dn4Cfi)sY4 zN?*@;BAymUg-7FgF)MaT2HL9YwQANN>%fH|<{59#v}#z*0s-47JHggV6?pFU3!wQ5 z2y!^|<*3FPM{a=Y)GUh86e@YCDg%BRJESr7`1AMF3zQC>tm^ULd#nrKiU2wj^lZ0q z!#o7iR05e&lWX1`;(kUy>Z|6&<Eum#-(Xi{#uHY`&*eqKicCsYw-E4sy6Q|6HWrhc zq{I7gpe`rd;?p0XMEwcgKrgKFZ4Z_MSA8Mi#HDp5XDCy*<9B(RBN`M&af=MS8Mwog zaopSQ0NheFV8g^l_Lb7-89@`SN}rFE$?+V%@7&og<BnGaCbnP0YdkPnG^ggSI2N4# zR;}(eTHwQyI|U`MnIo{4>9h(=na~;{5NK(T{5-o|_h`^n!Y{x9Ah{uQ#1m#cq@f4n z>f-GOJ=f+nyB=1pgwchClgi2I?b@zR=sNcXd>D^Y#Eb73(;kq;T>~ayCYtt*Tg?Ck z&IGuC{(}vhjTP+e)NRLqx2&R$1PkMI?xU-mAjUeSb;G13^agB@i^2TjPd`xFUCzow zJdC^=*Lts&<DG$qu^r&c<`FfKSXR(o&V_E+Rx!LOu+zE7x~9KqDEe&#pqe5S%Zihf z0!TF!_M-A*+>p!1Np$-^W7xA5IlkFxpch3yvHLd~N$f^&?Z3eUeG`+_`rv-zqvx7x zTAPNrWy^SL60TBQ^JQ6On*+vQvP?$I?@r9`65gq9+uhwj#1Zx3M?XliK+E_FSM<Af z*B19+axp0u(mj?wzZHzEwaD-`qP$X?IeBY^_gCvl=X?cFXhH*r7a^*?-~$?wS~s$B z0Hg}``c*b|q3E(X|GR9l{Svw)4n~`zLV#GpELX!d`MJ^w-Y2gugx-<x5kC5*;4AlP zA?Z0Xy_XmjwMbQ@WM~@);@N}d+x`OOLs|}QWdk3Hp95~)j4i?QEojbJ!gMHwwVge< z!(ILW>9EPNN5=CBO$TG$p{gaRH_WN|Ih1(cqtw@nlu3><w;X(?z^$?d@s=%ER3sz5 z&4F|YpcZ{?XvlTv-(bdf;nG6OBS>~EiPoVqCj!gaQOEx7(rQ%V2TAE0R)_KULPb5f zZB%6iMG9o{oAq;v%ki_zYLizOHFyFksCrg#VN9kh=?l26c4~K9hT_r*b(NY4w%)|8 zgpEc~Mm>uIT~=j(%b6ARSO&b#9eB}(aqYhHd;SM%kuOHryeBH#$M#Q{O1ilV#)TeT zK*v`qMK60bcknBv9b5N@*&h%rXrW6vUuX`-tPFc>D82Yg0Rh^0HVpqDX<0V$g|aLP z4E%*b07|dvr_?#^2jfpYtv|Q6bu@no`M!nIPs5T!>-3;?WDvw9oQe?Lq1OkOg4hEX z3*|)*42V3zj+>-4>jBzf8~<%<sO;@4FNNG#7j%&k_%Td^C7TQ-2)w(g@cVhR4C#vQ zGQ4&ejlSh&qF;F|Mmf$!Rob*(klX$wsZh;NVpp%QPa7~Kp972%EWXg_AmzhLd)CNE z{cTvCz)$}{9$mf)KB-LZBxewF7j7qlip|tftgbcZJmk+f8$tgSVPNUed(qRdAV7t> zYmN&gQn2#Ft!BE)UTC^3OSx%#+GW^qpfIl`R=KY&`5Nn9BCEdxuW3IeK_8ODK1OGL z>Wzl)$<S}`W=Fro{BSb#@-{VC!-{F;{D<tAZKfv}I6x1ou*V3Y5l%lt@UqB6qYA~C ztrW#cqzhP{+{=~f!m41e<FZeP7E-Q^@}b0`3F<e>UF&-B3$Cwc(`D85`wOAC&N4J! znlON|<%a+^$F>Li-SD<I^fV<nZnmO9(fk{*>fIYeoa;@x2_HMt`C=Dxa%N_9)A=X4 ze9{9H=|F;`zhqz07`rn}nteQvh*y&C)|WnY{pB{$hgVO$t*eQ50}?w1=maC19x(q` zP2Z$eTCmpsVtr5NeHEYDpg2wcuE9^5jNrFkDFRy5WTBiz+!rNAX%tTz$I$sRQ5%qQ z+6f+$P7*VhFNSQpTN}k=9Pb4Ii~IOu@lW{~B*Hy!h;P4RdTM~F>4A3j8!9XvtI_3s zDE+SY)A)ZBodsJ|T^EMWB;DOZcQ+D42uP#6gn+bC(n<<LD4>!C4TFG$bPEUr(oz!A zFobl6H1qNOg>~(7?S0l-&wcxARC<R3gQ(6{uEckd0|*gn!PNr8gL<Yrc(cmqRKt}v zaBChLhxNy+J9bObt%F!P#g&$-AH|o&V4eg?hWCx@-Kb>rD963%XJ`-FvJ->9`3c-^ zmp|&y*7pB^@2d6Y28`SGY&{yfH~eFe8WqbAi~+Jwu8!V~d79ErD#6ZG$f*%aZ0Ee^ z`a1odeV}|Q4EJ2v5*sb*InD@-4`saUgS;W|ioc<)k)fR|vubG;k4<yfc$iqAn#u9L z1b7Fd#1#?K5*RT;0~G<Cs*)}utO9IgE9_WC|El_qu<<=@B=YI{^UIM}gRi(>YXSK- zA_4iX8?d_aUyJSf_rj#`-)0{dcHWq7shW2+OW$R3)P`u|{%}gMWs*2;ADsjwQ@BeS z=f(x%<PFOrUeS3Ne?zwl#d84@G)k>CO<DY&a)YSc5|5GPIfM`pM?9z--P-TmlC$^Q zdyZTaRqb6#SpKP<^*q6yHJe6a^-+-Fo12r^>WlWP8n<cjx41`|R(*~os}+7%$`O6T zy`Y!y+NE+)1!;2!s^eIAk4h#$<qY_yyxVSRaeN-On3a9=TQ{c?ztRUNSDeHeUN5fr ztSFgT2UP~#@IM01lmH@(I`FiL?pik!V!Ni&0t7-lNHpvaPt0G2H2{C?phkBB0yG)Q zYvtywtaMMGcR%~Trli1iuT!F@ItVxLb0x|iZxi5ScrHMlM#5;4@SkPT<3*Qq(s(b1 zEw~c%Wmdr2QxQJ5fjGRgD<SmCzFV;6L`lmt((o@)u4_F#{S`z_5s{%ZKC5)4JJg<h zBG;1^G5P$Gfw8D~FeFak3-~~rtzyeCN%=pa5hVg?*@>$n_i>I++{Y7b>Ybmu8kt@M zrya9JR^iZ2Lih78A9SKdlrpVQLY^LNT<}~t)Fh&{p2$9~R#}NN_|C)Z`3LVFSv%G9 zu<Fq8(5keg6Fk_+$BB*{KxHMY@4C;M%TqcLPA{t+{Q?4<^Wxe5Xw~H(Ob&P6%})sB zz1-D=V1ojH`#{(h>X-7($=I;x4}WjlX56+RDA|$@xRn5z=3V4S0Kb%n6%kZIf!)Kz z*L%PS0YG8i0@Q$!khgd(i+)2d&h}<&Bl1CV+V2Te7ubm}F!w=;#9nN`@*1wOeWsCO zq^{c8>32;UFB>(v9K?L!MJ^uRnQrHKo?=@?#@Ra_Xi?C<&R*z!M);4jf4yoJ(PXW5 z!*LD&y{UTq%t&EKn7QRr`PojaiC#^H({-8RA;sB}3=91a#uAvhA7jLmw{P?NRg64E zjgzS-a*|7}6L=mosR%wn{c8Uf$)#gaf*bEH1~M6jSpt{9sDvMtbDP}iJDuh7?}_2; znD0&X*Or}-4V`XercSz8IBVSfxd#|)(=hJS!Z$xerLpR_4&5p*OyM%momPjVPzgfX zpY&bs9T%7A;Xz?oMwGY@AL;|2(^OA$&aUFcdt+d-=QixsA+Q%kU`vQWd7g2ov^E5= zEVNzWNW*wQm=NB}xWRWnvf#k}0f@_lWDfU3K+GIS1&xCoK^_sLD530ho11w*`*{K$ z8C!Y}AQr{Vhbo}NtAvmO%%EmpXL3k*Iuq%^EFslGhW<UzhxCdxg>Mr2%fA1VKFDA{ z17lIH34=)*A*qA!VJ}@>sigOR2Z%}nAm7s!&eQ$Mv8}$)b8+d{0{a&616Zaut6@Dj z9LsR!Z;fd9n(~#vw!e>lj(qZc^~lp&`=HRn)@Rj+BU)yX210B5Cx&_Kh_eTjTqO@9 z0+uBuBpbW>5|V<EmIiB9VoL)b*uy{DsZx;xoGQ_*s8bew^$?0{+!&P?CfbJlH(0rF zQhRiX41z3ZwK!Jq^qpc5?T;~Bm8t5_6-QECa*yMgHX90PP?<0>;^ZVjta;VWAb?&Q ziexV%I7m>&?U!dc>7ng%sDUUrvI++Z>%qM{#<Wpm^pX7a+oij_r7XCXC1Z2Y%;hIM zuh5uRo%cN;VsuDNAQd%9_S7a<Ca~jynhDTFV9N|JBDNy<O9&$*n6DDanT5a)iLFK{ zW74ifsQIpV?luM+C#=vDnZgv2)o_l>ulfyz6V}PTip7N!o~})<5v^nj8doYo$ACoz zPxz|@JRk6zYiQ2n^ttR*|5jrSCxVC0lo95}X<Lfx<W8=ir}~;>vP@kDR?Q|lj81GV zzL<M+t(nC2DVZR*q*#MVq}$Y~JK{G~<aD3nGice1fx4@kQj5tpzU`GW#~MEW^Oi~{ z%A1BdSVG+MlSX}obpddsl?LWu3T#{=i@Y^Hr3xd8@0Mn2${W3zEdA)HIj6j=r>Gq{ zpCGA5LQV|z>C|Lss&PNs>mHgP4oT$(#DKm08&4mPWt{yEu7V0z4M>2I6eQ+uz(Y_d zfTJO5WK>3lhkX*j&|vgUfC0S9)x1v?Uo#b~6yOr{MKZa(nt8TT1Y?!tFA3IKfH}gW z=%2oP_Bn-ROywx}x)Y+seNu;eIReti^92GTV0zJd+~goyk>IEHVn45)TqJ_=tQhs6 zTw?Ot2wSg5d?NanN-N~uE_DKt5_d-4lwi{ExcJ{RVE`oBHbD`q+$~6ir4G`0)wD${ z=U9c-l+=}tA2+B>hoRg^|C7sf9a%rtzmm0kHYzb`7UjMFV_io0iyRuO9IO)AO|U}V zML@0U6{8tb6eHIYV}b9XG0#=OXP|9Ary)f|ab$+?0aK-hri2n~%eR#TEo`GE=GPap z@BMsKxK;cBjUt@ge8bW~+Bb41tnG!;vWM4Lhws$HrBdgMG;|3=iLZEwzF$yR$qn`P zxV9#=D)Tb<hT6A3u{%z9r9wNJu@SC!2FbWll5>KC8#HihhwmhS5nx>ik5cX<oZO7( z=G!jrTgCO|zX{JUk;5E*zzC?r;SSHjZhC^jVG(U$pdS=O!iZo%0U~frXN@gM%j?r7 z3i9`}itCAnJY+GTgRl6o)(0|}-(Vvr%+JEMbISw3_gs!Zl|2=xCD?01N)wj*0Ry-+ z%FNf4iMNrpNEWk()<QR0QO1;C*0t@`Winm&FKma0n8t3{#z#GC_c(dAX20Ts@2+iu zRbu%`8pm<<GG4{@kw19hcxou!y=}gPIUO^}=fETt%oIi9^QqsQrhQF4K|a7o?oP25 z?<o6@-kcrs!lFmPwcLhzrToccUyG@_f@Apa+z`xC$5CdtaUD13^nJn~8*cZ!(dTNy z9u$=8urRV=$dx``D)~4|ulzQ|a<?8%?7kR%q@~`u6`LJ<dtJ%FoOSZ6d$=FvX<Cv# zcLgbvVY=nnoE8@ROb7}Z*LBi6Lx-GpQQXdg6G_O!F&6*%pSqshwuN4O_Y94_Q8~n2 z+*#E?I-u*7g|Vp{iY4539L{UvHLe_7%eC<c8X^feN6N-P&TTPlga8Rz3I(~1g@s!0 zI9NS7Yset8KkFe%l_Vm7k1`{B3ngMkvBYqlIeO@MMV5ZNoYNvP@~Uzb+Z3lP-UKp? zxxc{Bu8xvlU0vgO=>?Da{7D<x;ccgY`?~Lg^J43_uf*ud2_fCT_&_Zbe!n@g&zF4) z`YsK#R8C#V54rg5t-hS(NWZp{QT{H>=#nDHsmDaPIQM!gS+RpX$M(frS|2@O@Y%1& z&4?(~0%FHGcRTGp`S?Bpp@5mHv6odW&=#8TrG1n3(y?Yo+LNTNZ$Dot)Lh2o>D}g$ zq3<XEdvJPH-LLce17GveUIBbVDg$C7ZeI+?tZ_lL<&EBeRs<ZKQ(C_0p^!t&$7L>y z{vNnhU$!JTIgXAPX@trJLKCKLc_Dn9D2|OxSgD3`)Jf<sV|Fh`ZjwYRY%yd(@fF|% zNdarqh{*%f2s%TXvvteG??GA4=$Z%yIt~FNMg&&~@E+)oaJncYO-;hgm-`fE`WPY= z|Fw8;mF4+dEDn3__F3i~d;28p-O!7XUV@1l6=m&qi<gjb!0qEWwK=)>DIP!TP%SN` zkYTF(GVsJg9d9qTV4DiV;IAFNd&)*M#1JLqL3M6C8oxTVaeP732zsve(b2x{IpD{; z_6M9|Y%wA7d^oEAdN7zDSPbA+wJe4SIP`vub8-Q^NA5EN&Ofi8?e?ph3jNEJ5-9GO zGZ*@OBS8hroH(v$vkLdq+3=kpIUn1Wjm~U8bpRP1<Z)875gIUuG2$MeGbM2MNb<fD z6#;8pizyLkI!bsV7(X)xLYxHix?g)4IqM&KR3HP`-hK9A)VC@JWzp=uXS|S&IA?$w zlkpYo%xL@PjN#-t&H)Srvyx4=`GzOS>K*`Czz$>t<bu?)Z}<Ld$bnJBP$Vj%M#HNO zi(J71Y+}MF78?3amp7oH>DO;^$D)H$G7Bg9Xidxv2fEt+3-eAG#7=qn9fvh{Jw1ux z-??#|oWt;!Tcb8YfIYpYk=HFSyG+s_zWW><=Usq<U*zau<sjJ@+Z&M<6q6y#N~em^ ze%Z^O56o5#3`*J+Kr@)A<E>6f{u|NHl!s%A3;u!m8HG)sC?k>wO+mU8tjS?HyoB0* z<B<PowyjU}0<t0jJa*)C*0z`MD1fx4y6hJKex-x}tbR^yY=Z%6(&t{nYBM(q`LkrF z`!>IH*44Lexq1JEDT4HFT>5wa!hfqh&5?~WQ3Hb>fr=h~w!#QXzT!#W?i^U`gIK-t zTL1T~jq4zq;NY<o63YfVNFXD?Jp_tS4?rznv25p){{^2>A6+WJqU3TAWIG8DuT{+2 zZIqF7F_7MY^G>rTkNN<zNcj28eyHr8^V_1;Pb`EO0NDXDvO^L|j@DiI&hiryk|$(O zg%!mW>eFmw^uL@%!kM1t4p)_^M|zz9SULbx%cy;FbHdp(G#*TTzV@cCOza6J`Am|N z*Iq|EJq(PhJCjsZSZkHg+*`$FLqY-TM<2p{MJTeO&hz{yk1~xT5{YA;$bZyH*VY)J zkhx{?h|1#&{_4)R4&=SPk?r(F+q^sI$b9dYKkYa+_;oIn<4{8naBR{+W$cFgEEyB( z?^w`iH@=G)QCAwlIbW!&_~f}C^6ARs=*9D8GoO2rX5Qod^p2@hsL1ERE>4m`Oc>Y- z|43k>jQJ$E406Msy>LP8Yh4Uq{lvqEBL&bqxJ4Bu3@*--`qqZ3@;x8g^^5?526b*U zvu(7Kj;vL@{?Vq6I&{V_zBAOyfV?0d2@x6Url^mYpOZJ|YZG{r>xrZ3OgtnAQIr*G z6BK1cUmApA0Pw>Z<mptmzMhwB!gN@joY-u2kq_9oT6=QGNmCZ+>7~vDEUanF<pWNB z2<rn&$}s)BZ3GcrSWae_{v;;j$dj>V-oee!lXIAT90IAFYQu!^gL9RVJwEJQ^KyXY zKWJ!$3J-f4WiR{@XB_=@xU*PCGx^6wS?b9&gQkh-fD_kQ2NT%`i?Rjs_)19T0bj<m zBp2piaP8+Pl->|XNE>#msr*b+1vv~MN{~pOdZ>!$7cY7H-{!utiaG9R*80L`M&Cd4 zyk_{5<)=rPVzWbU2_5N;%0;j4!g>4}FaL7)gWvmM1a)8|2P$2E*xbX;m&u|+{{vOw zsDN`ftcv4jz>0_jL4!DNTa)exn*n4%Q{%5aI<<~(6G0J5qW2kb$%adikY%ch92pGv zwaU%j_HEE3Arv)T6()t_FEr}&w?Bwpi(dv@2%^n=!2YlZhz2z4YI$%kW9kxgnMYUW zO^ILGx&ED~ZQnP1jF*`f<9l-2USl5B`eNh0+$A#a_=Vu7fKs=A6HE@ZBKEW04v2!- z97xNXF&gcwrPvU3^Q&+*YRmSTM+`px*3RbrhL5L%rY4`W=MN5XikvKc`<y6ZJhB!4 zR{If{y{n5@`##LTU7Y_5KrR+Vo5I7J*ZBRq|L-9)rT()=+XkdQRNj>d(nek2$3g`Z zA(a`!9sfm;+QDuDcj34uH5~V~@c6mwBmY_(vdHt2%o&#t>B6iA>W!j{|4P+0+Z0G+ zAY#_QgL6O??Q*G7dKtOy5q29*2t>g~uEMZ5J5)S1%1r{a5C>0$D*PlNf4uk}t}Ti! z0`;B=9;~xJ!3x<%-z9|&@Q@9L+Mr(GTqla9t-J%1SV$LkfmQKnRoDVQndk$g@bmdl z-tD3UzCCfO`7kE}ZBQaLvzC|IUgsb0HG>Q31X2&5TCL{}c}AZqcWi;G7d_4P+}9!` z$^X>n*jSoZjtk7s#l8TQWEn!x+VE|!7aDl^#s-dtNcyU&IdTs<F${4?V}V(p!Muu+ zW=wP09<KsG=l6H(>|w`;ghm>Hrq^yfDn0hmodaL@#=qD)6mpHuPqnZ|)WhM|#&V5> z@plQ0<h`0Sj8%&3oqlAzYOj&QGaGQKfx!HZU*pA%$f!j8*M4Ly&6oe1Zl*9I)bX~? zB<xYGS?TM*p~m0Lxi3I&DOr1684);^Ydp?!u4!aguOJks4WlH$Z0v6*-@D69-Awj_ z$zdoQt|zSJ@1{C6zz-zLzJYS7P^j_PrUO*h-V?%1w?uz^`@Guz^xe`N(iKMBzK1X~ zqiTVC$5zTGc(kYkQH}$;QQ!z%E#Uk%5FpI418Kv)h+<Yj!za4vM1@~RFG+v(K4;dw zS7u-~BX!td512$H5@dsR<63e_&SXiQ*Wdrls2U@%V#ZCrupaaDGE}77dOk(T<f1x- zv-IDQPa;(;iwY;z`8az8H)XZ$jdozocX)Ks)ci4Fouacq3jA*KZCq)zj=zle<`U~Q z!{CWUUb=@lZB6dzqd9hdV6f8?daNW#J^a|zpCE$JQ!PAq*@Va+=LNhhSGy;%H_M9z zIeH=fL^kiSXHgAa5C`~wV9#Hml~-}vKi+IfYtiVxX&y<*(O#{txl!8DBAZT2Pkz-F z1RnEhGWoGRkm}w5D-a~-!RY=57{C9V%9(mtvH1NaZ9nX`E++{dV8#Q4*e=`9p!k3T zQBs5l$fycf27PR=c*EKUrmZF*XaW6N46;4K6@VPCd;b0?0JLFf(J5XN5430vA-=WW z;fepGrwV@0{XW1M_zs$8-k>Q77{ATYS9_6BZX{GAlDhPP^<C@&)M@iQqbe(>QSra+ z$3v$W%o-cIx3Nsol{nUYQc~0EltcZs(1rS9h$Wlgye1VvuPvzF$(ZUgT~K9e^oJUq z^&n$Hr$6COqEw;JQ0A}s&497K*k>93%Cxzu3gk8*5Kp+@E6<f7k0G&K#u6PYi9nCk zNA8S+@e7A?!=eHXc|q?o#o#<Gy~KQ;v*9v&sIe$%0pz!lFl{=uOXBVv5!On`(BZzi zp#bz>u`kyYF6+>3&ok$>{$o19+V=<hju8Q_oX+e273Nt=_be@+(!$8k!yagYo)8nI z5@Jh;0TSHBseg7eHxpK};#J#2lm>tVXz>EdNB}F8EvU}0M*;$3pBWf~V;?@84GVz0 zST~0vCX5fXG6~3Cv@ka3DT+atDVF}rW|koQyNm22k>cw=h`;bmYs!4>{=GIEk@;4l z?MEH$KfOO!d58J4%&Q3_wlE;q*ycC%DHk+E;x__H)%SPAzhop%T1Bjye{aZbL?(y4 zxlB|KE*qkMO(K>{+P860@Z4WJi0w&(_^2=iL9gfm!0vy`6=mVu6B~&(B=#EziT)n^ z5q*KI`C1T4e7eH5WU$^%-c76~;bUG_-DoU2ARPy)EE>6I(P+MoS$N3*vrgFt?QbqB z9pw;`HPd5D<_vrA_ez^6gqjT5a4qh4(dD#+wmiysCjPJ|cl4d0g%QnAD(Q*3pCFWe z^7x50=p7Wl+e!%e6fAa@Fs(8?f4f4}k4gv5JvwkRow#OWU@>TrsV#y8DFE~V`H(K* zm7vE{yZYyUeW;5`_!Ib-aYg{>)=0t*peBkTY>bIQPu_U{fxm;>K1I($bs=IB)O3jQ zD?jikZ?XyZNbc1-K*{y{XW946uT77`lMKqJLVKgQGhloX<R`B`Y&azpj=4Q-=0_s6 z8%ZP=Bm?T~tt8b_cV-7}y?iJcNWY#A?ru|zMK<zA+Ke^<`W@d+T%U;z+;f<%H~4R6 z{kt#Ps;m??5oP#kc*87b>Qq;{>f=L&aQ|<dw=~)>8CJ}LjOEtlv<ND0S+gJfFg8zL zLpDt|lk(HV?8kC=`O-sT!#Wd(W%81yaxOHGHvW%;Ch^W4S*h_{SP`6|nVpvr_itK& zdp=*g{NwA7RZjcI1QSGPZhw)>NLM6rX|rPD@eVqWVH+qxV`V{J;98JajLIz^l&y3Y zt#T`-2neCVu20-RxczPpGVHfW@Xh{b`1z&VljH8mkZtLzdp-A$z8c`A&YquaK3}@Z zCk$&j^UYvUeG~(Pa*U|(1B4MD;Mzo3j?l6F+YsHXh-NLsbG3;*DH_y+J7CwM69i2m z4mKeA)Lv!|ThQ41UEVpr(4L(8`qPu!aMbjr{l|2pqWFYA$1Sz}yT$4JEyRtlbMan) z_onhr<pn*LCJqDTu5Wy`y`RK#7s=;_#!3=QDjo@BY)upfc#aUnJy!f}_-ukf%HdL- zhoHZlnrBRdDY_gaH;&8AbhR8Zvv^&G*X30^bRa47j12N3TP0?@pu755$U{mKAeD7T zM-vvXVVl}pho6d6;;{r|w<zm(=}~?GN@2_o#|hlodM-uG1ih2->~9iNq%_sLX7?+^ z2+8s`@Nbd`N2K#CFMy_H{5EF+RO63jnq0725#HO|#})s^7b`)^HyJ9ow@fylK?mW5 zi#O#$C;(^H_ELCtJ{&iNTa2SRh&2N7*F=OZHxNb26WJ*RK)j;%z-V$?W@a#g0Lh3b zKm2de6=tM>bu-Kf-fREH76a7)IeL;mj&dO_X~ftnxf)@()D8OMHC2{ZUrx8h$Kp>Z z6n^DmuIXrFx;Z9ogEHEf4Ft4LGrdyiulhnxoWO`&#%<#XLq%f9ovEHk3ci$+?Wyz2 zE{}x^gugPsa5T|k`a|<bBa4C<`{yq>V$NBItu6e-CV-%pwfY|LrQpYLvBX?~Z9V%- zG8spQ!%}GWXJo}us3o~}iQI{fnL9aaj}M0*>$9;Dp5}jicO=Ts_vDa&$Rnr_EJlYR ze1HMb@gELKW8AI>nh;-$W9txhFZ^*j6l30BUvs&g<sd($lA$hAH3goH1qCRWHvwJX zCw+3Zm>e;L0IIlc2{spuYgPkYA0|{?g_#Lpzp>lhy;`Y|bk3M!F!)QA#TZ6#&i|#4 z6w>^3^_<QBMzKK+1v%MM*#_Oi<HO=&52QQ(2CPi}M*+R<(pA2>DcfEKb%CvRm6w)a zVgm0q&{E*XJmQSi<XZZ8zcX7TH>`&_XH&0=Y|MR(IQOjGx~KRP9LS!L#XGSn{z3{* zX+3)4_7w9N7FWk7bp~NR^{ph@i2p`MV1{m^4`%F`$~9*P&Owp(nf;4w)(=ogOC8Z& zulf*ZULr88iK2FdBn;{wj_vKGhs^Njefn3$b2Q)0(cqW*?p4|7{hpKGA$S%>VL=8J zc*oL{Wn08>o1p$L9BC6KgHfo4rfSUa#LKdbzZ!!cSmknjubd508`bz%mqd-1jX>Z| zg&bSt?YraanzRSJvg}zFF5SKdrE^0jak@;dq(mi;woE|H!QiJ{M%?XR0KZsQWEW@_ zjKVt)^#cX(+U%<kALzC!a38Rl9k8hhA!8N7U%3FKC@#oKx;x6C^T>sLt|GdCqt+CT zzKc)b(<|_Zqyp{8DInndT(m9t<@WTi3Y@}0PA<lsEWpVX)mY4jOuhpt^k&JkPm8su zfBf^o?YS|F?7J=&AsU*(ota2ahHjg2#hdHEcoZ!K_~zb)@1vYZLBtcwjlFio)y~LY z5u5xg4oIHGo_mTfnUsBn9c<ACGnVbzQetMe_ztlD#t26&``3rnW$AKKl0<Y4;ey?~ z*%9Lq$-XO=f@QR1BkkWMI4CjVriDP%pY}E7`g>QBA@iblE1#%LBU6EowjZ3Z24=GJ zf=ij_w*KqY>X@XL%G^P9%@>Dn3I7?7QL+7(V-*-0ynmZ=m`%~1jofr4KmOG-CtWkK zK7PCYO64QOp9d=y^Nb#O)h2{`0De;o#t_|Ef<?nFD%h@Ox?tx$cPvS--R)f1f-oCG z9TZU{0eVt_nb*Lz^aC;6FOYv>y;GvU7O9cBxKt35(I`Zby+^hljQZTt*cfoRVmS=+ zHl{|cL&dnUT`u4laH_=S2nT35qJ8>D1HZW?49LiKOaGO}X{dM2#_lutEzOX-&EN4= zBpb7f;;hkb`q`a}ZQ<*L*q`d<b}f>{*9Oc-7j7@T*yX=>^eJvFzr`5rbUiCIYIBHj z->CO89c9#6r;zGw>HK53;F<VlUCjFDq(o=XSJIl$rOxWwD=E1_vm@D!Y(DJr!H~{O zy^CGbS1k$dJvz~#)=IW}d8x>5!iGk_N~ycJf9!V$f90XU$Dr+8E*kZ1;4bfYS>lk( zj~m!(Cr`EaAuP%;Op3Eee=od(zBQ4Q8biFa<{tm~oAx6gs^e~2zy+R$AhVlKd+tbs zM;d9uD7QxtC=vZbWsI2ux48&rfS?n=r!jhiiBhyvwSts}GNPu=5+ECewDb_9GBQLx zM((birM|kne7Juba6EmwokeP{jM4px@%BxeW}ga2rfJ07a=wRw%XqFMtX=RD%M9kP z6j1Z2_ws(teF8)sAA%Yj{J(H3ViHPcMkko#@K~AeX{j?=Rb-mrJb%PXW<6pQvVjcK zOMVqh3UKlvnh;zF><bC<7#Y(xCsURke&0fu%B-=s7HxXEx3>wcv%NW()FwHyf7eC+ zFP9lm!A_<{&&l`YY{;O>>_*Bu#T5+)a(+Iba?f1yR~h~w)6QL)<qllcpM~+YN}iEV z(j8Al1tlE)D<4j}X=|+$3cF;zeD;~+%@f$|e^4VRI$kbmknKguv!;;hmxCZjYHSx5 z7^?R~fDH8*umt$cJi{)66QI=uVa>o7klGH|7Q#iL&4=(P3O7%sg|4ooW&;$ssmm9Y zQ<tJJ1jV&3NQ38LuYY^kbz>pf-nGI95Ir^4$TkS%19*WYn2I`px5+|HnF{M&_M)`} z!ciXvo8+t3h#P&-T5+AVlG%DIPNdOtd!|5I8g6ZmRy%M$*^SfYnW%Zipioo6B&(;_ zY37fkK(_NBnZoS9S1fRv@<Q5ay(7_#y$qh$k4lG24e+Jaj9n#JLdnFm=;R}+PaID? z?Cf7ZJNmWrxu)9IJ_Gp)>`$aQtPN%;6P!sPRVDJ%!T9|79)A$ou{PxU`kCkD^dqik z{z%#>TI^wjl9>sJjABRST>_FS@qDuE`b=6j#encWuI!s&KHo+CeWZKZ9OlPp-V*Qt zrhTm|25?Yle-Xn9;SrzH--?CHww;xsrhXC;qsR<N4oIhgQ6P&XpG#>e#~J<RlAzUs zKJhW20Ei$9GaXo<E72QKnn){0+&h5!WQB6O!3)H7hayC2CFCqLpKhBKf;aYTlLfzk z?n7InjKj-7<cFv<%DD&O!RZZ=E~tkUh^GrHLscE0&!uWF-k2VEwYQ63`M>sa7uI_# zV$IIFUIgYTRqo;r=cITPfYNWchv6l{+tw?dtPbi7<X!COE6XOsBtbS+;m>cg*%Npj zUr=eBf_VtiXOQ*=O%KJ|L+6^b9_za#KHotH>HNi{&S(|ga<KIJ&$Tf}4yvn42vsr* z$l2*g6ejL`e;R~`;q~VkL|Oj=n`9KOQ1fEUWErxpU!$7zBJ7E`ghgciJ{x8W|7uac zCEdbGEw?+mJIbk6roP%$>YiRKj~#HY&Wbgf{$=n~_|f4vUcNv~Ng^kO7#GJ{4Ljyr zCpb!!#peM?G5C6($OWJVd`ObOF|#M&%HdB{h88Gn&O|uso^&|(4hWr)KyDa&v3_vb zYL9DEZe=fT2L$j(2mvA_r6P6!h6EXrA3S{XIu=@Lg|M~-^}==1GRKtFuQLvwlx8=t zde9W$J)lf!9l5mZDV8>x76Z5NpE)V%s*xw~y@`Kocki2Nrh7h6@K2#O+~Z_h`csNh z*Y2T=krXRtvn!OR>i)d7c<>bPdB*m9Gb_;cr->)s*9L(<f5~2dwbWD)$3L4w4{QhX zRBDBKRlmIdHJ0eAiP^NRS_Lm9uu&*gOj}E1yS+{=k{*=iT``qm0p!p+w%6uCe-!!- zD}dq<?3n@7JV9=8L{OApf2t-*PG=KN_DIn87wxzYM~90nNWrAy<$<A&%*hjD;8`y2 zJw>7&vOAI-PECMdLBJ3X&coL4H7Fk(EaV~6z~MH}*^p{tVg~_z1o*k~cTEx5P>;1c zR153@S<zp8#gE|I73<IOxCSD0MKT<NcP_$(UUkc9dG+^RjnIbcKN$J73#CZ+qmR6~ z$eBpOYe(oXd%r{>5!csjn3N85b!z`ZasN#K=-YSoPjM=W_GCwCVbP}3UvIPI9Z&5# zW~-u)MiWfv5^L=i_<_hQUo_!MNcU68!v9S4<i_sowEW&$1XN%D)$aGP^Ke$Zpk|N1 z<>1rp;hg`|G86c{&W=I)=P4~8!I#BsRrfl(Z2*Kdc<<nGArnWu_Y{fQrTfS2mQqYJ zp!v9yV6z26`2sjUMsxOspcpq@IJ1}j)-HIg4_c%!@3<U0zz4WVq|9yu&6zZdg;73R zLwnz54k?;px~`zItB5)`I)GNp9uTFtUD0u{{Qx)ta~H?{VV4=fDkNlpeEMA@=^+Rq zX>HcnMTUXL6ubx0Z(I%!jjjq)XfJ)Qa$I5iZPWl9C561MB<jmsyxIH%xepd#i1~v^ zr~2})T%IS!E*BKS-}wOS{2$ga+F?sv?&QxbrPa>3`vT;Hg(we&hh^{BH+X>Q41zwH zhb`p+W-LqdL*j4iZ<htM;glokKV``&Mf468>In=7?WswgGO1mU3A*PKs=--W@!j2n zTn?#3l)%>8^<)jYng?)vPozdI+rG-1=LEvSmcRd5BS*eAzhH;Mhsl`$8GX{m*Lhb8 zj|-`U2b!ORY`?#fBt-3|<7W*7zrS+m68Vfe3uE1)+sa}#PjPX^zs!1t`Oa#S_#(%2 zAZgpA1j=t7@0>Yz$HjYU%YY-gq^Q<4KuH62$fi25(IaxFaW*MT*}l^Cpl9gi5Zf;x z5eaHpNv66xp!<rj6s7-=e~%0u5c!X;Um%yQo`C6oFt_8(juN;wRiYH4+yr#4OG1;S zFe~q(!@j>b4Of74)fK`7=(HsmhKo-JAl;v=Pz1QKzXJc=+upHzy}5+{Fw>U{UoOZ4 zrFEmQ)$qF>>|FSS&5d{Ji^0G5@v_@**eV7Ge!}q#rxMvdiO33w_M|eOGD@z~NK<#R zlUdtNseME?)II!go*tx}6mNe3EV<rqbzYjOU}HrBBs!7oJ>oHK_56l8l34?IhHkU0 z()#V+N&9TZl|F2U{Vn{5aCfj^!W2;{R4jC$YsX$&Ji8%vK3k~h`IbD~sy0bSn=taT z<)!9jjVa%kXRKAnVk!*cyNkI1*mPXRhyE_nocD!W(lRwd_-lqR83}?OdcqE}1$Bb^ z;a&ph)#+W8u-#k3u*(%TTr`~TS{G)5KvzesaO`yJ&&tJP6!kE_=FJj~3Kbkrk<viz zDcS9WI~N4?5-86FP&ohBxSj+jFc*<66;cQz_>qX2(U2AB!xVsm49qQo>BeR}AId$; zU8R`^<aU4N(5~k7PF(d_TOA7n1pAtVl+JqrIYhzM^ikjE#MsjA-H|#MpBmClc$c9R zKTC<$OwF5{sX9Qo{_D+&=;n8rSB!p6W==^@F+~bb`l%f4gnaz-uQ#8yur2i2D3_tB zeVy@)>lB2@**();WuN)w#;L1;nX+zdilu5{SmanqLKSSQ2@8Q5ALM+G_^lQ%ksYvL zZ)m$I@&wV^ne2TtbhK;5l@$6-+;D;W^N6<7fQ-S}e?G%v8*(Cn-=;smuPeU(bFn|` zHz`k0=>q7{+42k+kYaU+;f-4wsE?MOcfiBDQZh4Qm9RNTlutN5)QXdGM6EvF>*|uW zUF93}1>t0Lam7{W_(8=<7!!bd3JTesG3(N<yqkw!ul<?80*bsb{2<XkuagnU;ncWy zG$dZ8q4~(LC)H_+CI~s*HCJX$_<0QYiCL!SCWJ+Rs-oWa(KD0Z{^AC|ul8~inih#- zUgHlVQZfAhRCWJG6MlR&Jff;ij^ZL)3bwt;l;9m#yJT8)E?&#-)*%vOVdwozmUQ5F z^kffNPv;qs*Zj2!j0w0<9Nt9FhBavW<MuC)?cWG3q#pkiKNBzDE?-1inip?4N2L&s zxc>Dk<*~JS$!0vS(>UDzuQ`Y06{;^WQ?>ByU*G8dq+H&MVMS<Tw9riDbi$gS=v(Py zltCGn{(Pwj*yFL(4FHpIi83_9GLi|M4_n!4V>}3`Q$~S`%b{Hrl@_M+6nFp`BXWc8 zwgA9~eF3$4oR~$U{GhEI&srsepXQ=X=biSo+^?8$`8eKNc3?U9W4NEbjVO)R1IYEB zVFR00fi$Wn{0ZZ8)nzjIx_M^00C!S8`42>i0bjFd-7(CFk9M3t7dNM3cXv|s4>FR8 z!JA^+q2C!gLZg0sAPhaWVrhzIK}H>H75ir9XFMA^5Y7Swd^L0MjzqJNc=IV@%YuEu z>FIV37!=9VFVFk-3mH)HG19*v5(J6n(H#jtts{MH-#+&`4w{?$iRtn*r@e;xPn?QV z+ipQp!k>0^0<K2&i&3tFju@#u_rQ%IhRP<19(UHWcXWD@s$I>yOny{8*O&4=!@{pF zMmZqo>C2Xedr>~+u3}qdcuP2wx!|X|o`0TMxbNQLE7-#atgzlZREg85T4)lyR|Am* zm<iHN$zUQa&qVg3!HF$5N}hp!{0zN}h+xQ&7f==S;1HM>;QJhS^-)BFU<JJTW9qUH zNWJDb1tmvPETTOhv8yfH9BChr8H->}hwxk95;h(!58!`>A;=Jv;0Mq|T}L|fO;56V z%D#h+f!P&igzTU-od+TE%#Zc!T5kRe?<Z9+J#dhfGaFKr{2Q56lDVeE5{Cf`<csK~ z4z~~gK1q#b;EFg9GCFNiT)B1P97(iJq-)+Kdg}c?vHHtN?&`e9?hdSPVWxm+Ckf2E z01m9a^WJCIq3kL5v_wmlY|ZC?+mn2p??Pr$*YUK<yrD7F6kGTAM?SxBaP~s*k4VX= zo}HX`XQ~njTXwv+y{{1im`wYZq1LK0F8F_xU+_i`By$Zd?n=zj&1k;MF4;)v;naWe zyLMg3Ul*QOkD-B&Z<Ln8lSjyqT!@27N;szBu9V~i2$F+;T4X<==U#H4FQ9k$_}V%j zY0f=j?rJ~YofCtij6$_7gKGv;NMT{DNu4@-2_6<#oHU3*iThicvu!jO7!SrF4H))N zvDE|4dk8RiXfAUN#ICA;HHcy+qH^{F1z(NI=eOz!LphVNk`JTu)=K$_r%0<9$ho3z z6)OCQ(pz`lPAL9#2Y)lR67D#smsE|;L@8U4!NqJ@16$+lMYfobA!f&@hTFHmskqt5 zX%~bh)tT-4@Y&1wt<4hqQi7@CpF$r;OS4LvbRSWE&k5SK3IzBH{%SYV^D59oL+F3# zuEU}}LH_(x3FFGby3}!WWXgZ~_3`-ZrA`cEr;_`7&gNkL2p-U~swK|xntaBM5@l#b z*9@=>7KXf)LrPy(8#;siES@Lv1TSMG!56Y=DD%|Vl=B=)yF*selTk*BOgm&9l<@mS zUd4P^2(GY=0Cw=X@&Cv46AZzKpvK(Ghem~k`$&X;qS;7A+zr_Qe$ew<8paXMXtYYM ziZyQ%`8!e`KyA7gMh>#00|Kwd3fbBiPBA|APl_E;{m?`r@|pN_WCCF}HD(+Vpi2$4 za8Ftv^uAU5kFz$!o+pHK77UYKc<z{R^87|ex&2&Dh982w(%IHhF5aOS=5n5^pk{i( zxLiL;hP_iX&@P9-cRe`Ml0bjWa_C>p{Oh_7Q5w|Mlbw+{a~z|IVxgy|t(@7H?Y*aO z-tsz$bW&R2d@}t_+eRGO#!HdN#*HnX@8M7E@z(6#mR7o!HVXzP#{H*tkh%7QamU&2 zNzcHFMF|?|0jgX-PO9b<u(U(o7z*v<sh3G_%8}Y|PNp{ww2plLolQp4Uee=)3uTdm zA9pz?ItWzqA^A}$9UwH&4{N;HS$f5fx*Hf%dLS`(0&^4K3;3J7d8wzL6S7ZeNnQ@( zam0QfxoJCjohPt->W2$Z8j%H|J=2IWlS_aXs2|!Gc4(BPs^)5d=7Dik;dCRQcN?nz znCS;>eg`Vt&Ibf>MXsyK+|LK?`z0H<VT6m%^STU+NF3X@#GcV1zQ2+&W|7!zzRT0O zh29U(^#1$0{Alm+XI3^@vH5XCi)WDK;(*4-?R^_Up)A&-pGBLYmLHg~O@8xyyFXX1 znhFZX8+}tp!klMHqR@r`C0{?%-fyg1<PZn_Sv3pg0uGCq%O^Iq_aZ(Nj1Hom)69Hj z{NhD>;{_f(17`2oC6Aibn^4U}eZMP2I=vUC$i%}nDB2`5wbJbBLmlhNrcb5_Xe|H6 zsJlt+&(tp=cO6;3URm=^-``M)44Zc*5=!Ijs7Sus8$n%y<}RJ+0aL*9ZlZZb5(uI! zMY-|Y$kLrN4gmP7ON|>yQ(_PitWB}(KQ)~@bfS<95EaS*xPTp*jm{Ic=L^HyE_O<0 zz)0|uBmyL}7cI1ZtB*mIp9l0igWAOJz4>+}%t*>7u+*}~t#c5*dtx}ayvt%8LCdG6 z@&fj~=I3I^GdYF2v=8(_vaJ7-V=7ELhX@cq1Gv#b%2~XMBYe$-=o~A4$8r!^YkH#O znqoszm(Z74diOnf=-XOLnc~J7gMIRX$cb^H-bC$B$wB;Kw3E+83bOTHG#KZ?&N?MF zEUJ$OT#B!!!#Qhdh7>ZBEM&6QN?$Yt8f)wGq8K=vM!gCIF8+Ku_v6%$zW0%_n?PVD zUggzoFA7^&%e~SjBo4y+S>hmV&9{R~=nI(vuuXz^F%cNLmjY;W<lkQCe<DQabZ`Ly z`2&<0+mpE;DtG<chPE4F&%mqM#oN{cun}+$yoK804ZvWwk|^^#F<mML@n{*LQ2xzO zU0)dg2OfZ{yY1E8Ca=ie{Pj>p7Qu*Q#Iiu^qaWeDFzsA%1b4Xap%+<hmlXO~sA05G z{~wWG*L>UzX4)Aao;rhfurmZ~ArL}==U<8D-TX;c2lQaWOE6^z6OMz{EfcO*{b?P3 z)`QExc8!0<*dYxU&+y(x=K1eDcwj_X|E<DvFmY3!FP(-nPc==!`4(Ktv@oA5)I~lu zJpV@T?Q7Yb0I0`3;b4NWb@ycQyG%^>d>|QX+q=J~TN<reS?4*Z#jWvZ#y+A7*|VG1 z4q^6jJ3nc~I<2vZx|_+NsVURJhb-yLEE&v?9~E5ny((8+T|NF@C;TiqJOi4_#I6t8 zBr0`9`~|W2hI`)LY~D1VvEkja=`&%4duJCJE3XdXOh7cm_&bJuDD(%2imEp9%TVrf z5^aV~mnpp1tGTQ1N8Q!jJeMn)06EO-Js5iV;??EOKYwR3EAIAmN(~vb1l!viBQAhK zlJNFHn)2B{r8QwtyF(;Hy_>v;1BcYvQ>=u7&@tQ1H(Be;R<y~hs^=$kSY%J{8|Lr7 z<E4sR@U@MNzP#A+r8}W36=Bo+^?9BKUHU8=&+cDW_-hu1S5D8*^J(dCU|N;#)^#J4 zY5u9X73$e0jx~E%oYsmhK~3fauF<c5SPQ?&Q2ncQuV%80xF4g6Ps8<N^hHwU#pF`W z8Jm$C4Y^M8ynhX4*4G*%aZLvmE!x1Ul1(9F(w+(V^iQMVzKvf+*RgxWi{ZP03uXg= zstPYef9st*Lj<H4^8tndQvag38z7I)_V3bZBLdhmJG_viZ+v&nN@Hf`y8-$*d`r{l zK-z$q;|uN+xm^~cN^(d(X=DD<;wH4<LFJ9Z_cx#sS|r*gMXM9Ezwqj^=K#b(id{fe zUHk-TgN#TLh3<Y)9XEZRzGsYQch>2L+jrptPAXT58H;4ac9OW0IDDH3uE1ntr&B`B z>n}M|;#GJEN{B<yE=`r??|i&X8JmI%2Hp#s-bd+?*GpmyJs8TwH!5Bm*j5-^y)L(f zR8}6uD|g3PEaw)&rMpO7I>bxwnY2Hxr}8$)_Ezo{lX5<N>A7267NxN6Oa&LKAM54) zZff?8J-?M>KCZsX`&U`nksIQ;y%|C!{UbVU9>3oXj(^<sEXyQN^NQ*kmbLTn)AH7> z=L%XPp566!m!_<4tuSZ)$tKVum^c5v%ZC~vB5Inh=bq#%0+6US(PD>kT4}Lbpk8Re zc0$<opJLF$<>!W0QB2rMH_3ZIF`U4F0o+7*OR&%>sT4W2+@=;$@ixQ>-Yb&$B+>Bz z{n{}67ILMj5{pXcfEDSXuIN;Lyn-<vxTfE2@0SQCe$Cw=#CyoC8Z4ytmYCa%%|HJ5 zIm_ru3n(K}bY4U77$o@AO~6brFfFF=^?O2!r{wRbugtSdis~JZHD~$1mDG#b#cH1V zA*pTEpUDyBDL0tt#XRKk5UNaG__)@{z-Ox_GpeVpSoU|sPx>%DYSnmKoLv7;at?-f zQzH6PZNXZzZ_TgV5^HDXWhYfp1d7)}yY)lDLEF!RHqF2HNNas!3yZ7sAU5A3c;3?X z6US4<e)6o$%;jMiGBQkl_E4SokY^y_AodfoX)2KO{Yre15OL_@Snm<f?+!ep^BCV| zW=aqtE|~%9D294~?5in)g!;%rNs&jUo4}IF910nRRVj~xfImEPgl^EH%3g+x%jIW* zXuZKD2V~gcdv^5rmkU=E1NilK6qG*zTQ@8bmdJ?RyEy=<fugKvNDfBjxs7BABh+9f z%9YR^L!LxpTOD5fU@GU_O2T8Ap{I}M(1H!5ReB=dC|7}*wJPh3@(D*lHzzu#!k~Hv z9>rMk5kk{5kL`j2;)7RCqYXt(Qrs`6chs4{f&W5QtD3|T6z9`?kuFGP?fzTMI9r#} z$4+Py?%%C1=s%F{bU4rV?G9$2<=Xakznu4$7i<<!`|Z)^iemgY#YW??+U*(DqRS8( zR8_yC_&kSwWg&|st?IvhiJ)*9L(VS0`f3bvy|y{tLiVha2l0!DYCbrL&3baX=%ckb z*eG;rg1G$MfnEbk8U<zu60=<zANJb>SOzA@ZC}EYoi)x+zcq+X-9m030tpL@gxFV2 z9Or-}J74E%JEc5`l<@I;uLFZ3w)DzurS6-<+XO-^3)Y4axVF&-DFz7zUfyOb8rz^{ z0ByWbaR}H1Jb&;^M=Tu0z?-COKEy)&Y$V&amxXKYVNWwP9mBk`-?vM7)p3iRdSyZD ziD|Y<-|yQZ&EHGb7_JF^#lM=FEj-LB_OX1vCqfi8x)9Xe+WOH*{xj(`FJ`O{?>>or z{LZmiNsYKk_G`N6>dI|T(o3UFAyTTEPh|JEES`oNR(FlFOWaNT2`4mTeZdb6;-s<G zk#E1@&Ak0FNR>9}OqL1J|AeN=dZZ|TM{&B0Ugfu#Xxay>=mAPkx!+_X3?Snc;X7zn zxh$m=mjlIzn(OUN;}dVg)kL$*O23T(iQjKBAc<fEh3ydD^$^?b^?~?Rn8n=;g3=}Y ztm_o6fsOVClQQ1fGZr7iea_p!FGf0Zl!;DyNUm)lH%Uo}S1Men)n#L1qViVMDwqf- z2g(Ik-WGu7*a8k3@}!T8UK~qdMW9Iayp7lZSu5-hnZRodiHZCni+aYlS$P&~yJ<>A zGL#WK+NhP>uvxzaLJ>ieuTl$VBWA5Mv~GLWfvSaPl6=&_$@oE&2JN{|6W?b`RqG0k z%gwd`rFCwBo@_GJac;rFeLmw6C;3v_QJQ|AxVM!>`N|3%aAWui>m0N2e<z6U$9+8q zWrcNhN7x51Jwp;p-yH}+485NOzVDgEo7`Fr*$3lwKhfohBl#E>R-cU>lF^w63_q5( zj6KLZ?WQWc(({Jgtlyx4RFaMWBWmOj`~$f0A}!jVO&2r;iP62w^Sa%v#yx;ilF0Fa zicsWc1Y6+BvEByk#q5FqTm^Ke0faDCco=fUxq5qF4oHZs3AtRKCHumQ&mHas#PmQC ziK7PO!<V%#WcxQ=lUeVrh$)t*<JmG1N8}EisfCgia<e8rm;7e%p+KYgJNcsv*y`*2 z@6(`2V`6N{r{i%X0$fUx34KVKS>eF8NLy~{Ld(J5Ty_6fWWAzN7VkTv&Hml2F;j0^ zf*J?zeCBr9s`YZ<-@~^TDgy#&(twR}Lc0%oOIL>1E$VxQ>Ji76e6KuO=6}Xg2tFnK zsUv7ydP15YwsP#hSGXbT>sR)OA9)S*>;-Q}cOFhgIEjQTI}`1l+Z@FN3Ng@Xwg@js zOA#*8q9j2CVCeZTSnm?5;xo~~+-}Yj41fhqL6K2mCMc-jog6$B-3X{f*hAb2s0E!5 zt*LO2M{i^=f8D0!!|{o*-FY8-dhZ_8%@=x95nmb^L=oe&1F*N>=E9PIX%=dV%bF*T zGs^FUpXb}QOGiHqnw;lXuaX^H7~plvC3?^R!FWEUshg3dM=_My=uTjTr_l6OBws%| zQG(Qwn>P>Y0^9--JPAsR(BH)intH!0r)1v#@=ks*n-aSaH#&=`+){Ag_CTx+3q8lG zvKpv#+)UpSU9x5N#=Z&osuL{jckKLWRbl$k^V65){ci*<Ms<9dlSZ<BxOruBkH{+p zb)7drK-k*2ihT04m8u^rrf)Qls_07|q!(m;;4v^QGEX3i43e03p9$&;$>O4;#iT`G z$SIaTLUgrZQP7b8=zkmIab2@nq4<d2-~o60)1lQxs7BKU+lYuLSSn)17=(R}J(HJ> z%3I3$9JZqJ`CKOus0O~0d8tTYZkiKbeCMS^8lb@8)u8fTl9&jr1?3bi$^;b*4#ze6 z2tJH&yPj_ed?;(sQ5XIB&r{wn!vE^@4PAt}C8~ozc#EK)7h5*P!t7oQ{7X8P&9afy zKc3L&T&wf$mcJD}c&?djg~y3d#~Tbh$kQok52NzqTGcf8?aX<WENr(FZ0(7);P`gB z)0evU8?zxo1?tl9%e&8e^SSg*xZxl7Yd7ES+N?wWKByN6R{TK*50jtuN~c$UZMson zI;g{8lY;X3H|8LrtaM>mQzqNWr?r3XlT$+C3?r>3bxjNJ_LTi~jnaTsP%cme+j7O= z$>KuU&kbP*`TxR%%K%4kh(!5ayBpt`2T_g<lZfDf?UG9=VP36<J;LqtU5NRpABcWW zARyPlHv5+si6_pXGAUDy0f`9p-Tx%8?+{>d5cz<@v%2$`T+QoWv#B_(fOSDWp5<${ z{;&Ko72OsRWatC8=$CxKdFr2MpEtVTO#9SEj-RHzS#r<IXinjmdXq_>>XwjIm{2U4 z=y;D|jikc>bGDFa_mh$GGsrlYg?alG{r!&NnYMw_reJ*a&y4(Vy6t`@^28O>FhSEK z`+|RS^*SLsT#sGfBOVSjxSDE8iR?JH#;HEp7-u*9@2ma(R5iPFj9crpghF-mmxIAZ zR{L;XWpt-h)!*9fl)ZIx5r1eV1z>_Y0vO0e2$8dGCYTA!HX0cI?SEw2W{H)cL{pFi z7y+>Zlb1kByw4|9C9yK%a%L<fLGi2Cs<*Qz4Iz#HVL07@SnYR<Faohzusk^?b%gxB zaw9o$A4Bd#;JuMd(pz7*^59*PUQP`yPa)3w4r4o}Qk%s80i{4%zwbyEF{n%{!lHKN z&}eUQ^IoDyjX_r=7(+=J9jQ479hcq+s7tD{BWK$$c7~5N!h;v2=5P%gYGch*;~@gV zalNcY_jp1lyO2fXBw_v{kfJpp(x`@Y+tnVr4oFOCaAj*%1Co6yP;SmH;`cecUwH|J z(z>s(8qn|rJ~9MIf{(x6ydKIW18<#*T}@ewL>&O#_*{nzBewbpZiOB)Yygf7MzsRd zJ7uCWvc>P^2xnkQfM-IK2<%MYGynI&LAU@U0>o8$08vXDA_ef=a~H$_p2YRZ6IBEw z4ga{J10>)vBLWkz&I=Hbg=N+8QZcNh69z4g9j5VciTNw&d;7ofNSR2Fk_1rIqJHq> zCr|%z^O@>_BpMEY1|Sh2D*{~(M4!ZT1ZWB9LLe~dJ}i?0tm^oq4>?8;3B!bQg5cIW z)Z)!~Y&;JT;dxd%{@BvHT%X4ff%&^U48KQgj`FE1VQ(4Wc@zn#<JJZ*P6gM^ElA+W zN#-L8>LPT{`PVS-Z5)gR&J8r@*Kr>)6@i!p?@bwLHR?1UR|aUE3KyQRDqkdcDD$b& zf4ipJ*s-fla;^s-PGIxzGVkM1h82rVgFHZ&<XiZ@!&<%A-Ea*q#~>~nsFCYzAd^3) zj_CKqIsYF1E8s=D_z8Kol00GoU<1$;EWG1t2}UB&bf6#Hie6w6ZU0a1KlzPJfGL+P z02F{s0Nq?5WJf@k$p{MjG!Fy(7zP%d1A6HISN$3ONPL67=?0mIk5Yab8X$B4D&Q}- zAIwC65L$v<nPY;<24o~kMFIu?StE&x<o^;_Dm{v`ZqFe9wY{xuQ16l)lHpLT4eR0E zBI{BxUN;byKpkaQS8U$ULo&F~J)j}~Hc!7AJm-zSAbPYURKjcrpd5;=18E3<NW1oy zjYZi|R4wKM)y{6X#evxqClgw$IuKWd$%_Y}Srga<0H$qs@UnT{|0q}<`0(Zg>~@!q z?spyqzOQ^PerE3qd~ucbnu%#_+T3$VMpMT}4c8s~{SBU<*esw?y{G=uDeo|C;XF=@ zf?8S<`;-G$H83Oq(?MUXFaQj|)l>k_f&x$);FAEq;4cFJQ6_L)Faabt0{hYcpi->@ z;=<$r(*bD-Amj?Nvh8b4#()=?`qS0;C;c$6j|C9>|ND{xm_<u>r2sB&siN^!FZZBu z!hm8tXF0$$0rpG=&T>F=fQwf9Q5<)lyUjO+@J$Cesin(xQTrwcKsih^+bQlZFw=Ex zwrk~fTk|-x<<L=>V4SrA2%;^oneQ$@_b5;r6O?%_$DOfX$N`_@^33j7Vg(}ZK3VWb znZbuPMzvXaWMRobfA!c<Q!egI?kQ;4<RzxNPuVWhF*{c<55Ka9BadBrS7JrbN@!`- ze+;qIB{9w^A9A$4cPIViKMBvcf#fM$E!e<!ez&uYp$!-FOpYQHP0)5CV$X)%M8Jp5 z)++qd|E@^@8Uj{ZU<CncE<l6<ufF=$le<6vxio;}H>m;C7l?v@wgQl;0|d-z0)!Hf zz}s5~WN1(qEp?TIQ@~?!7j+Rg`4YOeOsY})|NO4_&i6gi<);_`?EfJ%8~E4pXLx1x z1Su9!e`LCY(-x7|z~_tsP!+uHZI!tsU<n~jmRONTfi^}0y1Bi3+RYeffwK2<dfu$q z-M8wo<+@YsffVNhdLPdC{=b=y6OXHbl?0@2R3ZUVvt<0d9D!anNo{|4Y>3(Ws*0pq zL2#zv2X-5kQ(d_HSF-V;EtWyLqL!mx-JF2zU2*F&MZO-su^oa+%QTCL62zN3>NK=P zK4Cs}RPr7b-hK-&%hAt7FxqtIRqbk9*BpHFt&9-vWd~&m--pHIvh2L>{B?2%#ohNS zq~d3hCAI2~5oDc69?&#+r_9!PDvuBRs~rF&V8Dd|;jw>Sx%2qvKm2*%|8BrPE};Q_ zjHovlCP0etj|vD}B7#31!=M5z!uV_>>Wsm_ydEn7|C#Zlke>zTU*^WVMJ8gv-xMGg zKx6{^Gb#dK75xpv3m_L*N)81;F3^iSC2-D5ywn)5`vWiZ@ji0<o(l-H>&andy|xzt zaP*X9`m9s~;(z7{EtCoyJ?4BPRocF{#j*3C{ZJh+^K{&7En;>MTwA&8-)&#J%#1R= zQ%m3`^9%X@1R&7}I*vI^S#5#2SNxm%0)k0)c@vLgOw2aPI_AWis&hsB2Z|@kDy~ht zsP|(5l&kw_{>7H>tSwf~JlJ^?y3l21>Q{0SmKn8%{PwL}Y%ZvRO24tuZiTR^KdVP0 z9hx^f*}=b2Sg#T^y3NbOUn@Xj1+t*~HfzjI1@m{I1qlKs3)q3cNdm;^O!>&P1bgMg z|Mds2x_<lF#See@^Pm6lNm&5W0Kc&cpeFFZ2Hu!TVEO@H6&olGkOKrdIe>f~;X9E| zn4sDIJa*2%R0z~xTyyJ(aF|~hqWxdjQ~;8TkKFvu%Yy~zrXWIpT&3)S0SM*SBmfEk z0`ROuGqPLFRP&Ue{W!?phOE;w#z7SmOJ42W75Q(mr+r>2rt=rnNwM67+<{q!?Fy)! za_ELLM<#LY(Er}(1SIw+R`2>cFQ%#eSU$%|sf-Zhy*8ws?7L-kuKk0>L6U|7xb9PT z99sPnlAAn5pt*(BO$TzpqiMGxVeD^kd=V|}`39w*oIcr<X~qW0^Sj)=Ve6Q0!IvkU zW!ct*jW3gm;M!8TepFqQ4laht?GxNiz^);RZd;w&$zb42Oxh9AUMPUd1ZFajXh3>` zi2-=<s%N+Ubn!#E06!G`<BA2K+uMcystQIN4!{UNl%_*S5K5p0h=X@s|GUg~WB<AL z7vli>WdM+)Wc>g9@sr!X4n?LkAUJ@yg{MPBV2D~F3I0|9QjjT?*|z}J)f90KWh=dJ zrR!=o`}?*q>HCic(GdY9B;O7H-x+&b4BZjXRwh2LT}Hxo<u~t%8GeGbPV#g7Y2<j| zK{6sRj^^(T(Wb~ZN(9LySm`!St}%Z$6Is;pR7bm1q?8djoQJZYE%HhZz#><||GOJe z{+kE(3_EvW;E@VIu)`3W2?&U{%8^+i-u=LNT5K<kW1^A?;hr7s!O6DB-4hvNwf1XX zU1nUq@=(Z>X@j5`8-ag{F5cYDKvzg)q+_HOWXJSEEC5Kr@&URQ2or!jKr8?#fL}kj z`Hj0W0LlVD?)~^ZXaIBoRDgBBCnp&I9e{L^0QG`I2fpsPf?6y*^p4v6&H8Hv|H8f` zz6%llu>htDxC;w-TNBP)3=oUJFA)a-{*U!Qy6nya$j-C-Wxl<;goF^aF}F@0m*eJC z`LoGdw?ob4UhU0IP^fa3W4n+3bSr*4ny7x9NRJx=SpHsqqk9qZta6S!*1%COp`St7 z^SqVM<&;m^*x0J+(C9F<r<>7<0R2N7GgFbSx!no)=UZG<u-d9+9GWS6aATX7w^xT> z%B35q)`r#6v`(<2P_d%|a(HLF=W;Z53RRtjUuXQI?}*cl;vzvPc>o7{&ZQZ;+4`Vd z#J=6$=_e@F3Krltt^PEdiDn0RV%v9!%IVjt)0H;6bO8tg3Ji&VD*$PLU%&EIw}12a z=RcPVfC|6`xc8pl1pY&^H4sKXiH(3v57sIGlP4^H{;Oz#_6oFG3pjb;!2BipKZ$Mu z|B`S$9=-3aLccA5`_lrr_``G8g8_V%rUPU}@RjKVi1yGW+yL@`Qg){SbfBC&yUqM% zm`G~(4vs4I@ec0Gv?e{s|B(_s^<Q<X0HOu`z{F8&fKzs?F*Me>GY~JTNQB#Pz|-$J ze01#W_f4tesT6Lu%Z`E@XnSOb5{*aaon&6kgtTGOHTIC(cK5yaJ9)BJBa@8|MEM7m zfeQ?*rc8Fgw68=9s;rr&>;8zNk#PL-wakV?%HKF>TnYd&r7ws2Y8Ci)t?Uh`kK?32 zLlmLh!7#Q(XkDRNMbfr%pUJL}#0GfpcBsH~fYYC|FN1XReUk-1Q()QwPz?~M5dLWj z8gLPJ78Kxv=k7eYEBsFd@ckz+0QbTKXc7KHjv4?J03X;kfCVkk;MeI9`Md%_Z^T6+ z_{Z(I`v?A&oGj7)Zy(^{pYJ@=bO1O2MFB+v(if2VK$!~Yt{}@kMf$Q_{X^e~;h?(5 z(BzS=3govv&FTsN_R7#2PQ%+_!w+Vtl|KK9x#1Z?ZdlNP1}C$RdM7?Qnx@0bZ9n3o z$2#0&8=R4820ae02wkSDY`$IM`KV4)a5r(0SP)+I<MeyVJ8_Y;sgL5>H@(p`wq6Xr zop?1miKmU5sbrgdtRgw$7@IjaC*Rqsz{4;IIi;U4pW&c?6YeL}pK<5xVmpR>o=^QF zD0IBs=nOghPs?hv)PN_a{p;X!zXkHDvMEA&X@g@DPRL$100Y7`LO*h4B3`CqK-mD- ze;o?o{?C6H_{RtM{`Y17$Ms$~0q+SvAZ&nW4}8fB&?+LJ-2n1}S_$Y@y~70ZYnTD% z`r~1q5$Y@ChY^A2F9RSXl?*vZT5JGV0X+TNtp`^H|0)L*0dQqH02Bmc0N4b;{I8lR zI^zMo_1ISm0;^}{G?b`0U!61zrB<zR4+Sv`87iQQcAt8v=X5!4H%|%9vtesH&&tAM z?|y>ZRj8*g$jU@Cl8t8wWkLb^X#e+t?bfBB>XMzcOP<HhV+;UmZx~_E>i^RDE15=I zT{i)E6Kjy`COeV(zUoMb-Qnte@0aixZ68q(SmYoOwa0)*OuBHBgB)2}$zj%KFs{pe zSI39#t`w=;8G&w+>S<<ctCNwBxu5?5!#m$hli3~<b{vm{78};vafAV^e}mIu>gjoA z1QZP*0slD~EVjq!2tp<xQGf^o-2U_9pa1GtXn^nk=KFCC_)7u2=U!+4ynwe$2Ou2~ zNF{(DKxP06K;o@ETmh<wr4P^sXa}B_VE9A(f3o&|TmNzZW^qzm0LoZK1N{6#3LrUv zasjT$1yC|jF@P`1oXF$=`8!h9RBpXz+&-7FAGavPzUMyR344nwTUM|!3jnj6k7uKa z&OIrwuNdW)!EKnKudveQjfpWIHVU0XP{Hvo^P>`o;J1ef($+)fJ=A_h!KQ^f=4NgW z-|m7r4sWS@sXSByLKMU3x6qAjO%nYwNiw*4_`&GnWHjaOZY>RIv$g!4oiNc|fHzF9 z@;E2%ZR{trQPaAfHh%!Gn|I3FYa?oJn}XlwnQtw&6+CAZYegqp|I4}e31ac4&;GId zHFh#kO-TWsw0JUD4h9hZr2y~%uA%|L1yCL!`2YS7zb{GnO9O-r@SeBFd=RMtYXF4o zKn#H!DQw~gOP~ccAn^$=iTCJ+0RIL*=#PU{0QhegK;uD50XP#NZt?-DJ2-z8dsYOJ z0FXX_6hWM9>?aIYadgYYp3e5L*PlgRhvKny&vM`4>~SDZ9smX_M!joEcC-MGS1ylj z65`i`8QgOs&Wcsg0}3cR&51W`;e5r==~w`HmnoKQO%hrW`k;MOPz+5%FS2z^`?3f7 z4?VcFt;5Ha!URaQfl>C;rn>hx8l`W?Kr1ltRPussD+)e?l|up2R0D9Un5`Y<anS55 z8I+EPg!Bt6b|F@)3x*oB4RCBKL1goCm~pSI!X^ytWP6PcP@0$N@RRib?NQwRC9{UD z491>9Hvl+*X$><P@D<_!!~voKA_#EnpO1ei4nQhk3JyS;0QXP<2MwTWX#rOXTM48J zFfXVDD*(`gdtDH6eh=u!@+a{CX$#;t6fFt<VFCQ;=7U$hvf2V(p&E!esDXZ2056$) ze@+LW9{@an_>x9;o16}08@jI6b)iaj5ty?-cA?O5TQIx&KLFs)rs36T19%?|VxD(p z9lr-cPS%AJ|2-GO?YQ`UpYl@I+B%*gR?(CCK;x#>&9hn1T3d)z2^fHb%Mc>@h1eqk zRK2-f3lnOvt6H+hwQPosCy$x)Mxp;Dh6%4jyWdf;x1P40eQY^Y{*|kQOIuX-K7c#w z6poGwbI0o0hK%EJ3@Ao@)?61)H7B-r_@{E6asA!fL^;Ge*HrR;+*VA_xhEMo=K@43 zpkNS?5c;({LIOqwEk3}_pD79m{*ikv(f|SfPyo7xCvXtqzjXkVV5<S)xhe(<=$QPi z7_{qi_2!SX>5u$4&|eDRH*qCidH08z2tZdr3;?14Sr0sOft(45kO#ox0jtY4s@Qh8 z0LBPjnP)54-Bxy`(h)rx$9g%&z1ECD38|u)O3SmBP0E3sV!z&HCBQTp%G3Px;Y@m7 zdv=!0$ob(bhJtg55N4anrzncR>3tP1h^OUePyQJ$A!~c_s;yJf*{=TOv8>&0oNcdk z0-QbUN&g^2%0s}Cu*@=ByGY41KyMm)^-U}ZX9wShNjgRutUS->HdoV_+^J-SCTwQ1 z%Rvrc^mk%|*C%f*v|%WWk3+#V)Mj-Mbdd>bRz4RUI*xkss3tj(*3xo<0@x`Aj)hvF zE728<egMe<{QBz6FWmjr&wuqp3Ggok@XmYhd}k<tPy(R>LNEfX1d0qOnWX&<TLP>W zc6<cY&@a=QjDDoH{+WjKFT&2{)vl}v<LtfHzTSz_3AB)T=KVK>I5&bKwBn>i)PSMU zmPYM{5a<k?#g+(B+k`0OG3W<|C?p^R!MWf_aPB{0ed||M-`%lW>zuRB^PWetzgksa zy+Q}5M}ahe3KmtjB=|@E(jRYJ)NGJh3=k<!IUC>$^aY&BfV2eKp#X^kp3*#hiIstE z*xoiMV{x`;%GO2#_N$8osu=~9DsI~3zBHM<qw<3_<4FfRX8-XTx3e94zyV6wft4e} zuD26Gnz5?BAL1PuVj{15UbmMG;@QyGvFG^nbQu7wlta%#OfJK$p7-Y?Q#NKKy>~Z! z9;EmZI*#JxzdVJ-`H9X&<R<;wfdM4}m_e8oXVpRX*;*Ox#hV)QBWbyTuIiNg(UV@A zpXcLI^d9nM2*P~060z&YVT59_hhTt@(g=fYEk3-YoklW_^FF4d8PQGm>RazbC8gMM z=Dn`n6I3D|yb=Ll34Sa&fC~x&&eOHKVF5e=|JDGd141VFIj2|y#Ca~(0<&p|&PowT z6#z$Q)N?!5-1<rQoy=dMUm|BiS0QRo5(*&dl>T(E073y=KObt0Fo1qrpdS-}A))Gq zcy|9!CxGb5z7VTh<7Sr1X@kR*a$KM5(Jk><2Ozf+?j-s}>jV@Tr0gFnm>kU2S=&HF za(ZnYIc%^lVOcka+Cv1|intLT<nj7Kth+-{BdZZI2PW1MM>E8KVcLMsE?VYM_dP3g zn4cWpp>eIdZMY~4diicHaJ24XUZ_)DE4`qH7MTZ46u@WNN9H3u5}X&C;Tz7V=UX7v z+t)=x2~{3xFM`=E<~gVh(n(@gp|c7|ja(0Ovj5{e3dB(f$e`|x<{#$9Kvp*OE?coB zWyS7V;kWT}Nd@jaz|T_+Sd&4N1^@|o`P!c!p0xm;;{!ZT{C_p%>r;UKycGU{CuTqk z3_i&`Elm!R=)-l$A?Tm@hx3!9ikbMIDnRi6O)G$hX#re`(ID*u&=wRG5DoyN0kalB z=RMA%Ni`H8RwiC_7B8w90Cc(6*tyX~8P(58zIj$@#H~J3>CSV^<Tji+O2L$AC2nCi zf}B=94u%i1#d}f~go1;6PKoo;;T?|HfDyn|opVODH*|Zp>!bmgQqc*8?RpbVbe=20 zz!ms<wuV#w)!KJEnpTd*!)f~g9)Z1RcgNpN{(=CGAA;~n{1k)=3w~oWq!KC}!CalO zPPkaP_#edm0+1ddK)xZmz<mnpPiTWWD0WC83RUKQl^J)S2<9lq84KbZ7cF?7=u19v z?*Br+C_q;Oiv*+^sH*`*0=%Xq+FxG0rYPW(NB3^sD+2)df7Fh^*HHmyEdbQOF+up? z4IpTNSlcB4^{hJSeAxPR680^sOGW{N1rQPi3vvQNVckRlJiT<`RV)A`=YxJx$-syC zfT#1Hg*2dClb=rH^f2cQb)TpQmmR7C`=CU(cw*$NZqEm>GIxsYD#9>v<>7xox4}RF ze@`UREc)nP@>E&$+Zb3g&M8i2V&!#QFQXxAd=<T&Z$(8PYOQS)_w9Bq|EAkR;4@#H zbJ9zjS*28rDu)g@Hn!<<7ACyTf5PKby>#`=IOM@OeQscD!0x*k2al!$Ftlc=NQd)@ zYa4L)Caw5RaUzaO8-BZBTh|N`rW`NNKPY?OkyQQwix4Z$>7zPxP$2fx;0j!k)$gPe z_RFS2rWio=ztV;$1|UT6ry<Z6FIE^37oZftqg%H=_~0%!K%oD*6u?Ixef6WSN<s&q z2J8t~17NDR2*gKg01uxt@XrVIGy#8m{wW8xk=_J?KMnu}z@#o8{_)0(rz!@F#s;st zEhstw1u$6<y8xmAGXk)8q#kbEy?qd#<|yC=ha&Wv<I~8jgftYo%iYND*_;95Sb3Iz z7gMzra7do#St4lr$hSl9J3^njC^w$19bFs|X$O9uwbDzqwep4G^{SoV4Ei|%%7HiU zXS6QvxvI7rw(=iF)$i#Ajvz>VN~`gcMTxx3cnp80rys@brrmp!Mtj(%=f=@fuj|bA z+1e0GV$+V+Xx+-N&}w7in$Hb>aJZPtUVw80duG`&R}7SbblYq_vP7`&G1IQgWIz%d z%PH^8oD^prbW0S1TiV!~@ydQclLEj8I6o7C2m%Cu{`AFPrvkVa3P2{n-N66z=g&Wi zbKw7@FMssqUxyAr#0H=RQU%x<(8X$?@jn+NufLlff}i<@#kRlRkarjKm5U?=fCW%0 zpj?0#k1s`KW2OSWT75zFd*%O2m=NYLfa3o&Q;3t<tc4NYy`vAT=C;ztp{EPmYtg&S zb&uu%1u;6>p&imr1ep1EHV=SxpnPD|*=6>gFfz0~$vw>?#@W!%@i-y0Rja8P%G==_ zlKbK#tN}KH=DD3Uw3>?C_~j=4q_R9DsL9K%+3sQycdmOUGf->=BXE(KrnGm&ftqR+ zP8QpC?3a%=tt`iZS%fywrD&PqtU~u69Tihc?y|#hbP_6b9m*F&^kJU)WnRC^r<@hy z(rs>u+o6D@Iu=zHwg0P=g7IYbEJYr+h}^Os@uVg!1)WZ1>LS?`n8ARw1e{Gl=V-uC z0O$UC^Pvm?SpavZ0+0rf4hTU70DnvX*3<x{2rRY((h@)!G{MJJhWh(yUZ2>v;AyBP z5i$Pp03PZj1#sat6u^0%2zFusgt#BTX;%Yrj$=oHX}aRV?ke11)}Qwu{(JU~hZm{Z zG|+Xi0!L?nHFAu-KgdBC@}V8$C-Y1Xc|tVE1BjVmh+o~%wTpa6Sro{-E?pnAn{}uC zumkJJ=p(M^F?kfDTN?8MF7+5ts2_a7{pxi-{NC&7!f1hka+tWO58Os3{tt$XBSbk- zorij&20r)({N<AvZ|Ki9qA`kW!nhI$u6<*8QxiT$*CFL=AMPLu3*$}^hk-z*RaZ|q zvYoKHM=VBMnv_*?RKKiS!cbA#AClkQErK1<IB^FvVgM3G1A~9UfJ6Zz2VlAY7d03l zEr4q`%LTY~R~i8HgMZ|!r~vptbArSLb+K3lG^nivv><&?uhC-C&)`Sc{l5bGj~YNe zz|G%YfARRWX#u1Qpx=lG;Njq3zycr@ShDXBr<~JbH1P%dld(JaX(zH)z=olm&JxMC z|5nnS*3Y)>#&WLAFHg}~AiAJ;GSpS#^m3Vs1xnAyb{yRSgV7!3YTt8JUwJjWhn`?5 zH?(B;SZmA*h%0{_DC3qJ<jF$O#a)BSg(u^-6bb>2JskodVfAZso-MO+wQ^;QIm~9p z#@+>0+<Q7r^c*=&|3OF}o0tM8N~TLyHBV-OwjyTC57h@9wT;P5t$Zb`1V@m$rekyM z4k4xcb_W?9H{w!x(wQGzG=c0v9pPp1G8iyUcmRR_o(ph6c>pi2qX5bRC<S00Fin6j ze_3mwpA|0P$O^{Np}`|L$mJ-7dyCO;1%QUphuH)8AZiwc|C`eW`0b4sSHuCB1f(y} zIWz!mfm{waGo)lP%Ml1!bi0^)Cu!B*Fv=reD}>`V^ZW%C|9oa03B<f!sD-OG;JK&s z$E*TmYJG5Ln8P}qA^Z-tctpPAlW{SCWI=TZjJ!hR8E?oq@U>b7*jtygqb;$@n{1uz zBPWUQ+Ch&y^i|w)Pp~moTB4Ojo5?=I6Uhng+51_`9B2-77-IZlp#U|!CWkO;Lg%_W zT?#0XvsfNHB<3=gV*7Yc_U6$cdt3xC4d>Uff^I*+ZyqkZM0IxIH6)7uJuuh@j049I zO%;=ZM28{+`lx2j;;NLlk202VkMd>!scw>hjgM1WhM7}2@m}Wb40a*0^_^ohSd9gN z1qc!_P!oxOp#YxT3k7gX7J%eAa@!Wbm%|M}0oW2iI!O?5)!<x=Y)kTdS`Ts-`9}ZO zC-{G_lS-5`2=IYaz`c;k0fYtc^il*gWB|wosCwXY^aX|kDfmz0pJjScO|t>^;%^G5 zqG-4ewYQQ1m&6r`D3dUQA*lS0ayMOiN4uSk%C2(G*$+*CCwn+XmmKCzUdekwCGdP1 z=JO^nPvCfzmdkdl)qs%$C<>4X$<_m9!E_YAv+B~lCaREiza8N8i;+}z)_naLTl+ny zd<`n#nL~KUf%o)*txTGtLp*=X=}_b4kwPA5B5eu0m$Yh5Xh4*(dbx91cj*{axCDxM zW%o&TRx-oH0eCT|t>jFC*b_u^Z~mf)DOhKEh4_xig&q)!Dv&S*_v~aK?Sx7OmKA^n zaCwFSue`W%6AHiz0Qu;4;lCv8fP*W50DPS@G+?nJu$04Z<OBY?!Fwe9aWsCfQ)z$? zumIoyPyi7Hpe0zK|5d^ODh22X!A=G~#RS;99KhE4R&zp3t~%i6iT|DnV*gXC$+V6r zNNg=1$9E07Yt_I#4<ph}1OJ>hDWC=`2!qAb!)3KWXfxPsWvjDP4Ym6={73OfK%?vH zGqRsAA433DwbKCoG#7^ekgy4|+j?&@ez|JWteS|Hle<gfIqvVyI3BS;Wm1>fY}~-q z@QeiOgPyIrcLM}W33O%??YbwyI7k({@Xr3)R&4%^R>N6A%pDYaKHjpNN$0C;ttckO zpKHxFwES>b6pst^FoeZ39k(SF(WC(95x&GaYXRv9$Y2m@09gUA(iBK6z?E}W0C#VF zAO&zYEr2otUY7x&i_HL>fujy!1;35|&gKK`r2(8qROl~h_>+HJYjh`|PeDk;Dgyr! z6u`MlQUD=g`V$4H@nEV1&;|4h|2w&WdxZjacYbVtY;e!uw!j~)gN#iVl`=vnRlT9^ zR;?J8?sd6A>}ng2Wj(a1@kUfp`y~^N9dG1Wze*RtW5#Y;|0{o#JAPvlTX^tlz($pl zhwu*i^~?5wy4nY5auQ6Xx^Efj01=kdY*wMBOg#hF!4y{yYE5>HD>TmNB#a8TR<v?u zq$06X7VEbJ8MKNA1-Yykc8%YS_U%%{j^ZNYFnolj?Z-^!9?Q6j?d&4o<a5@&H8G5? z^BJn6fuku7`C5b2QzTfJTBNyU6uJh}(Ww9#2vj!!@UMD6oMdbO<pG?#9tz+Y3P6$? z;P&&|w{Ob`cs)+SzZO)0PAS9%0ju>uquKJ3FW?Q|LXx57>mXm?kM;LaqpY(!7Dxjm z{+}oc5XC^RP6|-`M$QJyWT12cf&?TAK&!Ofy}|wOS{bGUmTY;!R(DqTn9uk8eu<gA zx`+DaP~B}klMUj#J@8+WF+4W}>68SV?oDTx4)km)H`E^!?I&|a!A`%}4ODi>X|!p; z_RH_amnmvfC>x7#KlZdc9JD%2__2$OEVwa_F04kyN_$YYdJ}xq&|y=peq?JNt}Kxa zU@<I!tT}KG4!Q3BZV2r*39s+AM@BbHgPyOHp(I_j+LAb%Cs^!dDkQ$5K~6r!eA0xC z4<Zl#DuNMxgf6I`XbY;Fz|{n$<80O%`NZCj?qe#zsiOeG|K!133~;gV9|l0km2=nb zJuC%qEAjtfC;;T6*W(i4e?2Zz0W3HJDMSWs3mol$x(4!w{c+RR`6#VbPy?0^5IBH) zPj244el9lui=hB6gaUvEWIWh8NI)hdCIt`+3X+70-sw-WNyAQ=HwT81>0z&{18)^P z?xa55OE_U2csSpV*IBq2i!e5v`N3Md4`W77hf{=DmG+9$$fr4K&r5)!4^|&D9Hv>6 zoQh-|BKz69{-tS^p4q|t5hnjEMA_KjhKJvc)||-bYxq1t#Eu5<nl_XJecW;$78Kfw z<*~8VyF<Ijb|kz3jmPxPe=3S-lDQCY+9hjLwg*Qh=pxBF0z}_^R6}Gf{_ASjksVB2 zJzivlZA*7F;{Q*9&{+0WFW;>#q{pi9Y>i~EZ|P%kN!t>ybVjydB~CpZSRx#p%f8_B z1f(yxa)B;fyZ7YTvs>l>gnuaj<n`OH2l!u)B`(5#$$=3p4dD2oHNpQBuy52S_8a_D zy_`Y6&cc6mF9`|u@{jLao3nv0#gfGUH5{lqgNGajgw8C9>J3`n)WM81@{if5RD5(i zy#mxcGQiB9B+!xf*|R6E=K`(iBI=2RHR9p+i|6X(MwB>4yQBkAe4+Ve@YHGnlVx+R zqT30;xAFCJqqFDi;B>kJ`SEd^=A4k$r4ElRInAPN4%%&%iEGBfyBcb!9TJHtlkC%l zvhBo7^qT)ZN1h(yES}~y4%N2VCcOs@c^Cqa<E~TttXl{a@I4Q85r^Pjak6}gX?>9! ziHuQ|<fa74`LRveQ`IZTI#O+qK3)i9R}=_8fO;SZuWAaK7C_)46o4eKazR}|12|Xj zO%C8rD}WE5$LYh{Ekgf1l?t#gpj84^OB^9|jPM}bHS`a{JEZ8nm4Ij!fC&C5fPY_o z{OW6$&!6oGAPz7ta(bEttULgm0E_@#?C!6q`$W2fS<7LOfaTJ}SrzC_#W<doaBw&r zmx$YHj@q{=>7!LVlpLRd720K{+JO^;yv5=)F!zSb9VjU;T{`e~unC}#&Nk85P&S49 z0e439V=TN|>oEER*-0gH!6lA)gm>IvAA+Y7hH-ToX_Z)w_S>u4iBWACZ7h_}{eS0s zBIX$DhFvu5{4I$QaErm?PjWIxM&%95)*xk|l(IKz0}*2Ph^&gO*p^jrAH|hA=xN=B zGB-=e&E{}hoMwX2R!)!3nO;!MF7SEb0KPz5P<h5Q1PLBc9H9CFUAp$@;iG4d?z95< z@a~5nh6YIVe=ANX0R$)DXa^ju0SjBY1t%Zi*VeDa@xB%r6&9mE@Q(_>0EqK%LjfqS zIYiVZK0q=6g1<OWr2@w}c|h>bzDzwJf`+aCht<88U6|?Jt%$d+fV6f;fx+`Q0^RYG zj(c4Vu55c6xuFW$_FbJnfR(-I-k|R&eMPMo>{x<-r;|AtiHWe{z2ZjqPwmf1UBS<y z4M-tK4L)Ye@DXR4gpVT32M{gsHd^jRjuvl|e3%{Z@73F5pm>&9wKX6!S9bjBPK7SP zSY0eIzc{QwRo|q);W$ZaKE4)q&w5fA->|7guW*~Z%nawdN^>|}!>w6{v8(&;w}7H& zcXv^A`4@Bs8^b0CWD8Wtp<y~GcO@z02w6b7DPi6Xsjjmcm^gq;08)W2zCtQcHwJxr z<=Vd=K6>(ODu8#=1dy}_KnuM7t%D9I{Kr|BSUOu+7mKZXq=0{P_Tyq9$cR`2AW{Ih z0JpFK{`jw}kAup{mSAxb2}n6`bOWFrh!}uFDj+d{eO@RD;@{9D9+mKQuni(D?ORr9 z?wWVm!-r=_5Ff+P1d1?E*5*!sCH94A7Eh8|AbsD4dt;BbIQ4XQ4;=;ML12RHMZO7$ z<>z?%f5qrFPZ;G*APKyWVM(CTfU5VdttwS*0<#cdnA%F8J^*5dM{Q!Qc@qtY(34@s z%{Y<)7{ezFESj6D5w}2V2&wfI$7ZL4XayD$1WY&n;1@UFPi3<fhg7|9yOTk+^NS0z zdta`H(3nf*9XOqXyd(O?pjkT1jO9Tc2+@ZsLKt>2#;6<=&srbp%aY-yG<OODIu$5R zQUKW*cxD2yZC-hN_3t<DJbQMBFu*$vf1OGPgh&B=t5tw5b_eVV95n#ee2Q;*-}f{1 zYX1I+{;#Sq@ylrfJhu<<=*g1^0{rvp-!6#-Km%koAPqq#{zIey(g!Hhe~Hr^3n1^j zn`w$NvT3^5IB4c|w`aXIfo79!RQ9`i-ef6G#_`&Ac08Wmo-~jw#?5wKZb9t?jzKmd zcR)pUGjoO6Ruv)odLH+?a-bwWCi(;@&N&Kv>aB%%AdYZS^NvIS%=U(BVuj0?@uZyK zTDu-U1Xwt7$-})zgB)ipfzCl?WV0|>3&1*CmSq%=FHm_q!yU$W%T{=+eigL|V_3JP zhNoFt<zgsGv%8B>_4xv;TU%lhCorJF4mDHKSNSz7!tdFyqI}!&haIF1P$>#rJzE61 z(Tq;f?x{dp7lB`*kay1qry@8U;|c=^G7$*8^7QK8|9I!glRLL0!vEVJmH_`ZWB(5w zP;S6SwggHC*dMSKaP_b$0gJbPll=z21<N8k6FrYp)GC7iTY>-30Qdg*_v^n5Dnk}P zjR!to<-juqn)$%p4<uuNvi=uG%{eoEUsHRBtJwM98gS<wBsaxvE^8>zZry<sKR^^* z9@|MQ-E4<)AR-DLozKmMg!!bMY+m!}Xb8WWO@dF{maG+2#)6bV8kR0(W^`z7;^1`X zXSd5dud!GF1C9zC5;FG6F~nF&hzekb=;VeggXYT11Qt%hns`|NjJqA?)B&E-LUm^5 z*#HY&(6pt-jYsV0bvV9Pt$_6~s2d}<Ra@42w)=;p((t0jHcTlTOFpHR_Ct0aSha~# z0Z7KsrDlVcY?3E)h+UOzZk44u4_0hFS0~MzfIsms8vqjQ3(^5h&2~$W%OO{u-uT<i zTetx4ydxjrZNUG#!2j>&>CMmqNLm8ASdJP%3t~Hfl^ee4C*cr31^Y!csx!e<0ng(s z{ND->01M#WjdM@c+5`pg>KA7@U_?9U3HAjl0S=SF90OE;3e&mANt+n-h;v*AwSYy$ z`N;7=h>UAzLHWj`SZx{H*$Llvw77HVtA1eAklY2V<PKi8Ko_n;htZcvQm~^?MHi*Y zco+e}0<u)L3?l>V0qv>FM3;|Xhp_SZ`GC&AD@qNYL+_s8#6+PVDT-#kH0=SutbY>u zy-t)PwaI0AP=a#QJ%bfIr)`Wzq~}f}bt72_x*VE7QqB-2dX4#0t~Miuh8BkSl`ptw z@t&O^nkY7bfa1dDH<P$=(+MT>&R9rjN>gW`a`}Zlvc#1Wt{b!!K;rc53g}KTOuHZ# zKuNE#089o7Cjb^O<UBrrhU%*tC`dpQK*-xDfZuUK2gnEr?7xWyP+-tHz|KHd48)nG zbB1I6Y~ckjW8X?e2?!slIl)B#b5$(g(&<qsfJYC1b1fWzORo|HP$7V_0K?L`cy4+; z$4p?spRV9E1!gD!NBv+=8;1#!oh`C6klr2e+7+;yn9Z^FX}oUK28=a%n%eN?zV1pR zgud^3qmrH6xWOlte<JG~51=X&mQp5ZP;V|2+Xuu`lif}tO>Yy#mI`x%Dxr^UU_YeG zkX)EFP*o#a>+SPTAxZW%=?8x(7Wl|$oV{wjM4tlwi|<d#bO9W$_S~1jFKlIqJ3S!k z?9Q->>e6sI=5J7L!Ry>TrF-x8-{2pt!w#Mv*!G_6(d1@ee>V>@_|YDQ<{qH#F+lV_ z?+w;1KP$7Qj){IcV{2d*usHFlH~^g~2>e`}_MLtJqyazzN&_ek01I$A(rB+fdV&T> z3jh;9_($G+GZes^q5|TKSOXj#0(R_Ja&@MVQ-@iR&)oX006r>_3!wd<wndL_VF5%M zz?=_WvjO9*h5(%fARfRrz)n37^xvZEB)GEGm&NJ-9Iotx<xA3Nw-t27e362$Tec8V z!##BkfsUmf8roScq=w{h4l9~%@DZDO7Wm!iK>}~thBH8=T^@P+@iI1lXXs>E4M?ov zThoQXF*alzd()o0*W(_c;LhdSgksUC-0y5%CnpIZ=^wXa;l5yNJ3W<X53%5~V>lD( z+HECEnoPLLo4}6ApkhDHb+L{a*W)@JB4-9;&L{x6C9Cg-eMmjFrOtyw*^>iti4~g9 zV@LdXVo3=j;K-nHd8||;?VYUzSZE&P(#?8a>+oc-Bms5&pQA6h+5$2fAlm|}i2lme zyASU~7%(-!+fo1z0{>`$+j05cn+Sp_@Ot|LHUz8%j>SV<qXAe6^l|@Fk#G2y26!Il zDbcjx?yXy40Eh$#4)Af90HMex{s{w43P7C4<UWA^TxbZ0`%h<3>Vd#;QPjYV)|Rdj z$(xP}Z;l6LmMNpPtlKjWf24_6E{1NvXL<UhH^`G7yf@v`^!S}O;~PZVHqV)M>3MQ* zt=2Z(@qCRn3BC3`cvVy5?TC_c&VfoVVmyi_;ua?r!B%@RAcuPTASgl4U180y0YB>W zKJW`U%DZB)&{-MNif^hlRf8uonwNtca2^sjY;UXBGaK#&I-&mXYH|pF_W(Yd)6c*9 zF;&Uwll%)6@mVS50{`B_ygLnQ@bzrd7thFN<RkSz(7_>Eta(ToDz6)(W{QjPUlza@ z!~g^f7>+W-K|}*we0=raH=jKd{_n^K2>g5hzda2AT?+iV#A;3;&d6sHgSH1O7C+A) zSYAg1*aDdHK`4M*cclQN0W=ygN&&)|!34Odi>iU?2B4EQK<5EN0jO>&5^r`JwCqGZ zxrPxJG^^TXp?7YUM5J~6fc7NVL)=YTs-=4jQr(qJFLXvg8)>TUxbu?ly%*U`wyqwj zQMzacLy@J}MDd4)kDKZbxPdjzdiH!zrWj<I>o+$QN91iS77HyWuozvQeTR!~i=MLI zb-sK7ATWjGH@Fi32E=gDJ({76w2t{tUAmUR1h9Fk18~W)x~y<?70rlK(ioWhETu)9 z#4)C>>H55}=z+ykQA;_u+T=Gc$CQl05VcgGNnfl3PtU=U{QW48ftk||7h0}7QV$w& zYhc&4DGykkfhl{_JiL%VfkFVJ0=>d$5Nv>`34VO-pAVmX90~yVOMV&};KA=K-}_!z z0pEKw&bOrnbg>FR1F$wJfF=OcTs28(+;d+S))eyz3Obaq`%eoX;9nNNZ=T+G{OYC4 z83vSMqaoNiGyq|M&vh<vCIK%~0YCtpj?UQLU&_c&b$~OdnQR@kS#;fQBguY(arVK= z4u5596K|?oJND{9+Lk;1;`RkDCQhoYPE+b6;ABHvgB?h=%i{gbKc)H^XFs0i;3^lr z!eDkFTqiq!RQ29-@ndyC2BA*g;o@j~Lkk<(_5wRG(1iPLD<i}|2$YgFOK0G!u_KB{ zJ|rAqPj)q^AlOz%EZZUiz=TI!pT(6U_gfEIcQ}=!p^~4oe%IE9?n28klQ}i+eryPU zc`@jVoZpt8gk+f`At!j2mzuOXnVH%Z{Yu%hr3&^_qJSY01(yl%`QXIG0SF+J127}} z@|ElVP$EFO0B@%Y@ZiDkN(FrX`=J58CqF<J<XdyG;0`4Gg??@xB|8g&{M`0GW8>#d zu>aEoi26jqKRtkZPo~_wuBiZcGmwDzI0|=U41j825+muCj29p~AQN_lKxt8s=DxAp zr~{s9H_c6x|AS)I<5;FSKTkV!N98-Jw2e~PFi`IA>@HK<ta&6YUzh0(4g^ZT`BqTW zoUtq%kUv-h8yR~T+oc`Mh_ANF6Pf5L9v!U7n>#bDhKP)90UD0Lm7+wY@=};Bey?nr zVnq4He91I2h6``yfTLsib*BC@u7L$V=~8o>RVFw|JT_MkFLxDlwbQn*t`BuU2D1T< z1avoNff+T#KpY2>fl3T5mq?K@W*x~opV_VJTzgUEpIv{X)v}YUWs_k0v*dK}g=%0) zvVdR6mH-L^h$>ecATXl{8essL01_+!DFEaXEP(HS50NDh3xYRb9dP6X=JFY0+#C1> zeQu|GlzmAAegq3Z6yT#LH}77(5DcJ_8p#8K17!PuMOi?EK@XKcqyoo+>c<7xiy#In zRG^i<W_&x&-*A18*3D&pu7%5ucmjGKbbQ$o_vL-Iw%N1^%lZYa99Y_fOeum}XnU=7 z5NvFsTjnV3PA757JK}*JS<t$*!7701o^%SP3CA)-$E4EIV5Oc8<Rvta&7;BGsIE8V z3cMp*Q;Z{LdX*|zYmeP9hMaO+4l=qLYQ?yAyFQ)eZw)#P;%NXt(i0P5)6lXV?;)H0 zfg{^7b)n;Ymuf9^c5W=1pZ^}+MqEx_Q$js|B?QglP))sz-l@!NH@)QMbW+i74Oty+ zT`R)1j9dBwS3yvKATCn}&={0tVCDloeeK%4&;VzBfDeEAU<&yE1T!F1Kxl$kQw<>C zA7)UJ&VU76|1aSMr7;YBF1JHU1Khrg34jL>8bBQ2YnPe<c(o@3og))4^MITKApAr9 z$rM0gw)YK+39#}XhRYXX5^1Z9PU8ALdPMV~7}!-YuqpHKduMd5^G36HfR1<gksb%1 zHb=G&b_1x&e|1h`9lkpjOcVX&y?5&_j8cg{jsd+yyv&=K|93^rHs%|TO?HyWCn5*Q zi?wy&-Rn@|(8YS<6Nb|ZHJFVLcQ@bFBXhH=!RCE^sdnje3(XQLVAkq{xAf?};?U2g zO(eDqe?8BeWeos{)4X}TDc1c-W0z%LoiCE=jhE*K<A7i`g>3GHmPu!Xo#<%TQ^Q)7 zwlk3p4yt97^8`q4o!h^hfbI&$fDl4~VIqV7umPf(&f}~9diefJ7C_-Y;2)9-Ko_Y1 zlt6g|0sWV~0iCS}05u@zy7qV;0{ovU(UL?LiCUD11h^Yg3gF2fAK!Q!I_$E33Dd!A zEC7|jv;@Qi*g4naBr*ZJ+H@Zi!kt&?s9fFIdR{<MHK29$Rt2tH{8Cd~$V1C1mu-LJ z?N1{i2VdCkFcp@jwL8XWV`78Q?Wz;-q=NPZ%;*_9n`52s4(2{{Ntn~IBj0N0ZO~K` zRuu>J_}YZLb7V(tlswh`D>->WXL9yO>U7js#LFm0Loc+f^_?3Zv7F@3vI#^eV=$7J zXNiZVE0z|OM}|PfJ1dYr9IL1kx_Zz|)YDux*9SOEytp2KYDM5*C05f|gSFV*6m@me zwXt=TW@c}1!n0LVI;6)$tt}tv=HT)H7!c0ZH*s)o$}1!SpaA0Z+7+>YH$N^P01_}P z03^V#^Hcy9GyuE+7j(eOdcbPH>_FQDTzxw5Wk|5lmPGiM68P}0M6F8%|0fSWxOP!N zz!(a|RDc=`L_bi)K2!;mV*w`ocd39SJb*ZAq$o|GFL2|;=XGT_n6ZJL_BM%q|0j5C zM~{eraO#ku+d!0;QM00|-)&)}yhA6ZxGK@kri;Zno^5U)H{9|<iBFw$#ZK?m#*Ir| zb}Wy|b}3d2iXKm!AB9+9mVZzM28R^M)g=MkYR=N{Vb#P}YA{M)qIn7`6dhFozIAIM zktb+oRw{ZoLYMqq*yFedC3|Ub<|G-{C}`92ysd8KW>BV{IYskz+!|FhY(tFf>24Tz z7+k)yEsV7zeCy725whr9h%AbMDix4Cpe%#SWWW#%fQ#Y)2m?I5@c8=0htEs`pa6jX zgMj~(?|<^ix4-{M!JiW<pjP_>FY5uIe9!}*jeB05afR6a<BUiLL~tSvfT;kU{qg5l zV=iDwCIZR=NDh$Nr_Z}3;Jhd_I=ukYWTl&Jkn|mq-gkmDB=cf<4cBp}!RX$v5_ijW zuByiiXD*A|e-AQnNgc@iRniBs0jVIwX0I&00*FU^96OJAA-KmM=B<sW-KM=~BvF@m zG777;_UH*eJ)J7K0XZ~|>u)PrZAC6xzu8>Rf#WRX%M5Yz6^C=dA|D7P=HH>mGwTYq zy21VR4h{keXuJ?}qXrD&(wUwZHkp$qb(JN}$PoA$?qc^06m5|b*yQ+bdK`VZ61&Y` zW}VO+$3m8YjW0f7kd{W3FkhB1f-kFMF*6IKvL!uLah3tbG8=>Mo(__2!Crv|Boa7{ z08P}mcI(O10EPc>0j3HF<i`d1c3cAd-~RR)Gk`N<ZqQ*uE!F}+o8=&-BP3iQ^dbQK zaR&aa073=a{KvKM07wMvsUT8s*$)u@vp9e<00e*f`gsloo^%nvqYOq?NZs~PDM(w& z@yvaR8vm-y_e3vtm~Mfok39I>RqLrNbcLFWHZ!9%ba79*o>!kA<~ej6PPM@SxxyI` z9LXe*xWK+ne!7!X%fj&RVNl7O?~2A_^)kqO>o%Cf<9D1PKmksgLMMC(`VE`EYJxn? za1?YLNJUZ1)dflN7NBe~p)%fy-)<rhfTJWxN~nhXX^3NL@moRh;5JGw`P+HDbkJf& zAEJH;1);BxlV2*9tW!6HsKNkq1!E(Q>?!kfCmW@i+r^?z%r2+(bP>l{3lv@eZm&#W zl>^5a5<mk2b)qrYr3+85{Tl^vrxZZ@09XJh0G&bsSOwS}K+pgz=zv&TKziQJySgs@ zV6hgk3Q&3SSq%UOc;ot|%hLxa7vLiMzsdkI34ozMEba-sQ#`qEnWoP1N$Z(Hd3Bvi zIOHxeO>RJEAhf;Tq=Kin3DSUgGQ2sj7u?p8kdSvD=K(9fq6~&S5bB3;5S<i~aKj!c zV`KmmzI}1#Ksj&qBW&1UtRavl=?Wjm7hQopW_QzSTwD~pYbi1Mfq{=&H%`aLuldEi z!mT|Vd}r)hZ<wnak!XQ%7|oKjdgVrr;a%!$RFqNG1qH>DPVGLayjsuVJdAKAu8>rq z?XH8E96**PnLR`4jP-^4C9k7)j9SbAG`VD_Ev+$oQDnJfPmrPkX^VpsFgpTtD!_$k z33BQB-@*rw26*2J00I211X{iyTHxECt^yn(z#On0U;+F9AF#99Zs6MJ7yR1;zyx^b z<_D1nd`Uh)l>(Ro)cFfF9N4vhaYh)WLKTNKba{_-`*9oIm8%X~qcYlC+aT;Mu!M&u z-)BdSV?7|N8M>VILqu@!6-r|y*FSn^T=%pB@$z@qh`M11Or-!ds7dS~|62RK58%#y z9aJ-oObVp?HcfK2B}Z>I+o6Y&A1e!GbDMMC(LbMW!<!`_hHl3RG<IKbcG}JD8L*S6 z-RepMP>gt-VxqQp%x*Gh&KI>ss<)FXsPJnOYP1_qV4{({;TggvcJ2S%Qmh~85nLI; z?bJ}($H0{>Efd&*z0CXy`g)4<9Q<vm(r<@c;BMyH;{hiJ=wtxe0%S#C_XfV8H2NzS zZ#;Q&Pyo^ZZw3C}`sDuoPwofw--weefH#EwQUUe|zL)3!Rs&jr^#7B}D~KChh1^yV zQVRHw^E<--ojXAR{QX+Y1)Wm?<1G9;4`8-HlHQYeFj%kv*Z@6IH?AG~ahHcdIKC|W zI?fnVT@5CNfU(zBGY&!bGFg{?0*6&jra(g-l8HU+^19?P;l^2IZV=?A%`eHine0aY zYd9>(N~+tHmf!o}M69`uW$)zGt}8KgUBS;cz<|*^HWPMe`?+i|8k^H_xmDxA^AV6H zSdfax)>UqU9a=;X*NZ?UtZDrSF0|)C;lcL-aNGlOn29VT9;+mPVgn@w&}qMWzNT?v zA8me%*(zO2#w>7aVsYSQ@hDa-Hm-znyfBlNl_1C~>IYS{U@V8%^3-1X$AqhHx?GB& z&7NK^EFk<>oU$B%ra)iB1IRhyPhY$G?=%6V0DdYG@TYG{0R;L(Sb_hy-*_WdL`Hx# zfjI!6KwrOsqcPx&p$0c{yy+)-CD7-#kgt-2+ie1%03Jo^(!D>wc=1>hj<x&8<zmJF zumI+7g#b942yhyLisS%q4ZpDT5l__4RqrFqQX#rbTeC}a7`K`5B9iM5S$o2x&VCsO zCrvXsc(wByNL-JKJuMyvG`fn<?@ubTk3clq#2o&&tBJC-)=jcT(UfkeQ*+MU5pcDQ zzq^M%EMXPrxGKJcr!uYIn#Was&}aot)D#|oI71@~!jP*nI{*xdapc=E!ia=^X$H?3 ztx+O$Ov!o7D@+W{079&rLFVwtCHyT|pwbmK0?Qpl)1cFrx!qGnfjvWa<xKqAssV{p zqw2t-A$p|=bsN%(4tic|?P;-6?jmznF+dCe8iUdmOf~>c0G+`eU;BF~fR85&@b=UI zvH6EQc<X-3CvV&r^5dkdT&)K>JmC0%^?)u867;oBESz5ww1A**3g9j-fcF1LUcUL( zwWpeJdZE$)$O8}qC_NYcKQv$`0`l*%Bed%79*)xPuE$DJx7BcRXLPwEuea;Y(>%y& z*fz>+y*kOf-j9@_$~AJAT&_9=mF=fuZxsP#_peaVsJcJG7Jet5LQ>JJseLMG%|%cc z6~%TMCTZ>L(?cg|AE;*?akm!3c~7kX>QHu$Rs#x-X%7qMLT&WuIY6UTN?Tl6)l?C< zY`C&*IQ}GHlmTWBy0aHR5I?^|vxAZSK+6rr=S{w3=Xz((BnAQw16tjDXV+rXRw3=0 zl~69&J~R)ehLmS@W!B+P-sN^{FpmCzMLM&Tsn>h;z0Lz)7J#I}08|8rO#F)mc(L7U z8Zcdex2yq>H*{(-{>=)cJHX1R#nwP#9o%!r++nPo;}&Izp#x+Du>Y3_a3}g0KM4=u zZ&$(tkVuuypEO5;-~hzAn*t-JqyZ=kh<?C(J9)D<w8*Kg=zZ|uyi`}9f-YU`*n9pT zDxpj_{65nLqlQgc_*CNhadNU9+k|8{E<9oyHmeCdo<W>Sm#(`*5nBi9Tdg3yb??OM zAfP)P7h9T7ZKkann^~2h-(Vq&@9qTn-d(v8Jp1Uj=Col^wM?lVN}N$uc1qXrdt>bO zt&2yYpYSFmGl0gPLS{VeN%IsH1AL9srL4FV4<=gt?~LM>o56iHjQpmoJNK=uUAt_x zS>K-<J~(lGJbIF!?w){E4gd!Z2`Cj1a*?h;*&A5H0p5NxeSr7hKPZ3${^Mf79*FZn ziW3k!fJ2ZgRzTAO#=JcRo=#nX;V>JLQIdcHcsua_jtqcDcOE^wdHu#?#Q<Il_`4SH z;(1zvhp|&VfkXdQ2r%n`;Yyb!>j5NPX<?&}Xgu2hbwlKlVW)R|ry_9i%Gz5z9&2(4 zC#j%;EnRAtMoR*@3-xdZ*akcz6F8^);NaS}>hfQ6N@@9(bVA|$*xP(lPGM!zCh_Lb zAK|jL5>Q*tBEl>1vuGMO87ViQG+rWUROKVEhMUwAFpxwD%u+HVp*KtTv>u!?db+p_ zfwr051%bP){BTmEC(~YKNA6H?d~ppt2G)nCu(^BVZC2L2C%2lySzOj(q_0Ug;XR-l zNZNn_&ZJ?NG4T-|AqFLloT-Q2Q`qg84WdhR1}7O13*aL7zc7;lApu$gJU{_R1-yp_ zm?pq`aVoJKbO38Q1&$MFIf@knYJh945|thRek*`!07wHw?ZVA}U;W!_R|5WJ0l)yB z{~~k2Ur{^YsR7IZg!^9vAjtq^RFm@}Gq?D1@K!N4a4H;4ln;u=2FKhUK&st;bH=b8 zwE74df$kW)>F0wq6h#KxS~cu0Dcf=>eP1RncSf^~OZx;=%w=Z%=)zUomyjEbsM?CE z0@RhsYd@YttcsXyws#*sHpXq(B`^4zck2okhU(h^v0tw*$(QK)i#EOT%dLspdfZNn z$ARFHF-E2HFm0U`wc%Vuw-<rp!5v(O?u#d+0(fBQ@!=4Lx}I!4-_81!_cBY#c0eA1 z6M4vB7;9_QCYpJJY<;>_y~*Bh3=?4WL*oc7I^1eJ=-w89#sfeC&c>h@i35ZL{zD0< zG2k=-K7RlGU;H8zfMj|AKf8bbM}q%*KML@N4tVdqQ~?&u0JMNv0dCkNutQ+6TCf=W z;Q!4;zZNV241i}hFa7n(MI`|$57<M2s03mvs8WGZfE@#v?1(NTcTheJx#CGRC)~;| zvO@aI*mrw(j92t|K3-%uvDjvdc;9sSA%n);5OrMHgQ&#!L7>{{`Pd3FSO>YvSx~Dh z8v^yY4b@|&?yf)aAT7jy0*`2YC2Y_u$M)$)e7ZC6ckj5g?(y`1Z8Jm4L)<au-BA?Y zrDJ*akNq8iisuy==+LpWS2vieV+TM2DJCf$>ToWvA4)D*CmTUWE8sXOX4vbai_>Ay zv<r_&^c(9L)j0fd{#`w6RO`-TZD?|s?rq*I<>Q&NA`BQQ?$r`V7oq@jKp>rgqiLqZ zQvzc~Xv6_N{y6%AgaUZ`j1%y)`#<~HkAC#t{WyVrU69W<0|0)U!MzrT2`~q^%A2JM z{FD}H0O21I`agX8ZSWs4fF}=cU41MHu=jsO0luiq>;^J(9(p1`tZDyeLxAp~UVB2` zay2dGyms`uEtd01M#Zzv5IhI;ZgzS-EyCj@Lz;x+*`(|35obAY#r~ExWFuU?Y+X~& z=uS~}&N49P2Pvf+6(y$}7KnQe&tBZ$=zIhCQP-~G85xD1odUX?$iJj2pcNKYJqC=q zvTTrLbJ=5-?5I>`5bsERB`@A_&B`7s-P<+DR)bD-wE5$LeZzIh;DL#onh3FHz@v-C z4*^B=@(7jY)TW*b>jtXxMa??nAq_H3NkMdI2FuQ4t5ONkm4-*LNchR-ZBLnYqq#t* zI(1(#l7Ye`7C6cW2)M`zh@JpXul?g;L;;@Nkp=LJUjhHA0m20M*^k}}C2&UGon}B> z$LWnYBgo6#pv0O0sk>GQe$eFxw*S?h=s{?J5EMXID>wgs{b^JJH~!-kc8#)}qygjs zR5f5Ifs!5!3|mV2g!Qa@aWw3SubM@o38iC0wf$2eI+)T~wPc9L<xNN&9q}<JJMFYP zjxt~vIE5i_*;-leAyuH<1jAN*UAgnN30!hxTvM9gnRQFE`H<oW{tq?w+-IO(%?~y4 z$7ur}<_&uo*)oLL44aQ?GnSguepY${O$Anr@=Sb{-T@wJR<N|Sk-Id_&FsW<nnegs zR&fltO<mcYP~Y9ijjxqDkij0AQC+iDfiVTv{+_}qxdDfCJqL!@&KYghX?1nNgC+u3 z*PnZyJRz)9QXJW`|6`#kK-&NT1|k8<l$jI4+#USf^*e#8J0HIvB)~6z(JbK4rrZxd zV5)#0z4tY10m1)WUBB_hyKzFe@sbkYjBx!~VlAOYL>3$XSpeh!+<AEK`ngLX!hg!_ z1fa2C3Ij|HFoyz^6EM4h$O=#?Ai02h*7)r8KQlnj)&rv1ln(Ra2c~Ocv6D-x5WQVD zq})4#^9{s?WJe&g=$~w32gYmibkX(XyyK!~ugNvLb?+G&cKo0#7;Td{71vEX@gCuk zc76h9{vw5{<wOrVq_dixeYd5t(&C?+7*5`ChYP4}F6Ur*{z=bjZDMsfL<33(On6yc zXVKu1LwDyFeEiLOF@Y2*U)K~?&Jg<pH*5oKya@c4_C86~UTql&{h6NISC<iGXGbT2 z%iQM`rc5fUZ|%}VEm%1D&ONkX@NP5)Uj}U_;kz;lNEmQ-$EcFvSEvY-3XlR&Q-C`P z156V@_(uVt0)CYE|KSfC|Dg)r{o1<$|8@u7GyJt!EZ`rhT*A7+YEc^k<UwrzHUN|Z z5Ltlg1{yQLO#r$QkR%|rKywzrDMNvgB}}Cnrao#fw~g!hJp_ol^`g#h$lg=BX{Jr8 z%(};_`%Ve%mc4^l%ufKp=B7Mhn!s@3VnClkH)W>#!bhlw!M@SpYPe%{JX*(c*Wh+e zt-H%^3E$3YBe>z=o$QD%Y0-xcck8Ye2YQ*icCz%yDx1N8)}9o2LAo;7p|^u;J`4=R z)d>8<leb)y!{)h;z}ZvzVBFoaDc_<gA8+tTH%wY87To?Kxz)9W6Yg8mc^gDMNt5O+ z+jtY*Oars5`ElPyS9Mfy5*@hrD43Lu;`OzR*WLX9h;8HQ&fy>(2Al!03I)naKA%EE zy-P1%L^|-DNdkn}0zd&Ep#Xj)6`;%4LZk#j18}i5Fr`?*H@H~L5pY2;5t2Uq1c^Qb zD1Zm*Q3(D+0o)2t<;lbAFP_Fs1GNLK7+`>3g@DQeP)FcbrUPISaMvY6q`4pLb{>cQ zbpn2F54!+!kMk@}sIoi2C+&X;<wGcEZeXm!!-jET+NTxIIM4tbsK=QQj=UL3Jsn3L z>efKf*|VxaG;hjNMjKonk2vF`gokXykbA7dF7tgno7kzaj)&K47@O*^Jn~<aY(RqY zn{I+c+qQ!|!%CrOGk_ht9e+G0c=I0hhM$&rrUr2>mAW^NO7*YR0Td9EVsY7v8(PhH znt9K(X#O7mK&d2f9{aI}rxi-2e7LsM8YlHAhlQJwTM?oo+pIX@airtMbM)nef3bkh z1Q0il0tld#0#FoPHMLj&b@P4s0HOhZ^=S$qurCGh!ykT45*py$Sl?yQb?AX$1grzl z1D!As*Pkw~F5sfg|NC+JU7jdQ`sv$}X#j)^@Gyn~U$}I6RsrT<@bh!~CkW6<K)3*s z`Hzt#0M^xx<qvGy^=F@)#5pvcYelqHCTId|@9IBX(Tp&=ZD=>1Tp0*p+T8ohs0KS8 zE#)~vS_J1I1!71Jr>idnF!y|Oq8Nyi=1J6d7Zc!)8&3Sa_SwCjUQvNn^Iu%Q1u(MP zQYk;$^;i!ZR@=UOs&$_v|H`8docroN8ELS1K(A-#3}+6ovzAU;6XpKWYbDa5LEOr> z<{m)n^H9wiSItmye|YtUSkorm3JQbL?ng&)QX@d^)0m+$!0o>1(cw7&gSfK2P?rW! zd1>|<<IkFy$pDiJtezm}!UzEWst8sjFlXsqo^1gx-B3jk3g8z~0lz91&<eotx4b)- zSkVE2f0ly+s5`a>j;6sU0efzQ1rV)A<N-*^1CR?)7C<-vcb@#_#to$bdn8aRfEWxG zA`4&|09g*K!bs-<Q8Ja}9u8^uqgu02<*XM_F=Ki}acfDH47l)2%RU~c@0AYz9K_yv zJvki1p<>UQNhKEnp>Lp^s{SO_W*Sx(f+H*bN27eF)%d*Q-dMP(jlH$n8#-9Fxzeo& zwki;;^A3+jXR{g)(#DFcg}o}79FM2gfFEXy9^m;`kTju>Krwk{LQxQ-lY%`+$5~l5 zA)Vb8B)V#QB(aDaH%3hdfrBsws>jU>upmpZlFrg|ytk4{GI^NiX(Hj7D;q}$xjrZ5 z{++r>=?U@WCS$!{WI}}#Li`WpDWN0+?(PZF5(?l8(Kw%`ATj|&0;)BTB7va*L<5Eb z_|>oeU=E->0G%XX)2YR(02P3s3to;8z!0=SkbHqob@vkl{OdCJ|7iid6Cw)W&dq<# zGJvT7;QwBg`Jdgu#Q%9LFv7INYzZpYc|QSpELB97Ju5+yJA1IXOL>DB$CsgD+a-o3 zq!!22?*J#2;<us@z(p|(KIGg|)3zV3#x~jWnfSNUB6i_rJ%uz~563dr291r$oz2Qs z50DG?HNY|Ga!SyEE@Y?T8<qCq=H@{u!+&r71nl-Ok-f|eCCds0D9{8le^m+v89d+W zz?(HDLLtUk#r;4wXSJ`gn$Fz7k!6A7wZVqGJOK_1#b2!`<F#g{(zYK3p7x`^8JeI2 z`GhDeE-c3K>%`@_iIwL`Pm5d7Hg$sqP;J5X3<Sz5mIfdS5RlQ7pqvu+^u^_94*c=Q zQUR#|{_uyN2l{{98bIj($<zQ}`qGyI@^SfLtOpf<q&J|8g9AePXNfh$Cpx15-~sRe zPyp}WQVj6n!y6F-2=FTjNchJBs7gS=KZJgO<pu5Y9|O}!*BxSF>|VKo-WEC1c!q7k zM2m!)vwC4(EPjAZkb(|qp{-|+ZZ_*YYSx4Fdwf7;)nb@nZ0bfenLPZZDPuRxW;$UD z)h|pmr(sy`_T>=tzrZMEF!phXns@wB4>NnmkS_<=8#ivox@W%&v}>0*md2=lBye>F zss1rIL@Tq!>mOjH-X0BvkAc(gF#$l)4Yv6d3=+_14+E|2_`B<Hi6JKQLMXunfeX}s z&V{Jf1Z$5DfFnlSgb_VoR%Mz)9Sd~ifKp<uJjIbYnFh3s&a3s5D}rbZd|HhGsgP5u zoEUS-`HM6NKmYXU)xSIp{Nn_q1@QBqA6S6E|CdSu=pxj!B31(sgDF!1m>aNIHCWVr z;65tg0qAf1hbRK@=;1%FU5aMlbNdex&`E%E@QIp%k_6x&;GQ`E3{9x^X#`)G61BPI zqa!+;>-ZXiVODo1sOa94Mu6T5Q;*v9R2hTI;Qe*I%(NXGi7or+;cWOYz!@#3o7Yq% zG9*?sJ_G?__IBR)!i}*rE9XusC6U+6OlBW@AUKIedKQeP@%WNh(OuZ*I6d))F`QV~ zwd#WlFRX!M)zZ@ga~<T@Uz?54N{o)*zjH4ws<wMDQ~1nu(yV*{N<OrAMBQx<7S0uB z^zY&;nU33fChrbV`Ondn@YrD`C?TRPtxaKoGn;wCnahG8j~9006+exe9yhVOt_;}^ z{}WKVNdi;>EWv<I1dxTye2_0HeQve}i~-wMZro5;fHNB44}W;;=Z*iL#Cci(Uz+&m z^0ipCd>Sth5(}z;Rcb(sh4|s|q5JpC4|t$6`2T4I0q0QgU;r`)P$x8iCW6iB$7%(H zs_PseY=9KGM=*M1za1h?kk4#ukV55XVQE(#zDce@>mb{K1a^w<<q@L29Uxns3P5^% z@@R?ZV!+tps<IykVmnfB>^+4NUE3me76~CvI{`&v^Ga@WgUM!<4s>kX+pELt#GhUE z2OGi#Ol89$H&5=3ied$$&#i^K2NyR7@b76$bOj|n&wty~SDB}!=XrORG$pa;D8*JG zwB-<8fwdU6{GIX}XP0l78kq4|c|e9Hz9e=$@7{S+IvvzgclyG$BC9C10~?AzY)w*n zbG|j-p6>H(ZIA%C0F(We%$5KQ2fznFLI-G0xLAP51ql3G1H6R|@be#s7a$Gr6GRq( zgcVajXL$oJ`vXT_;0?J3*aVq9pj#LM+`m6B^dR`;KKMriObbA1z;|xOIFP3>fPsG- z0Ow~8kg@=!0o)A?B}f)97eU4Kf2}?t#_CYWF&_?WTe^zR02zasFK*$xj{|ZxK*#{B zV@#YKMoR`Jm<K$HVqA^;#6|TCt5CH+YHx$v#wNXVGiK0qcr%$cb++Lbc`GjxUbT*O z^zMANdjX8z`xs2RWyhq>*U{%6Q<BS+*2~?0nBRhifn>B`FjfCw|3Js{`NBps^T9H+ zM&f9Dwmn2Yqrj-vK;?A6WjBw3@N>yT8tqk}wp<y#+LJKaxv{yEXxlo6?9-HP)zbQw zPv}~0$B&(1PGE?7AeK`+;35J89kXG^<N-Y=@cgA$AHTRB4t7)o5DAb85G+8*&wecX zzu^C+pZw%YpC#a*m0+PF1gL^c6?l)!%pQ=0N|-0gjHo#T{~-zg2WbEh0(^AiMZmvJ z01*KC8OZ>K-~>$81N=h)oT?7^R4%~jp{K*njV^K*5cV;=A8Bz<#%xuyK>9h?4XvLW z5c|^3qriBK#D{y2m80ww18z~bYBUs9a2n{uoyXqJblL(L0gSF=!a%Lm_KsP4fZhtR zNWFU5=l$9ft!$Um#vml+YIGyYjY!HputS3R!hM_k9LMOx!8856`oG3IxD$#-d+nWw z?6<a7hasJ|!uql*mPnnAY+y+L0r2K2rW<<Rl-x+){{Yn!GZkbkJ08O(U9$VbPcWBi zicnJmo<pFs$xXD-OJYBaxv6{aS|{X%W=$|cFmRdx^ahg&@JbK>_y8f7!wI+^gMwuP z%w!;ZfZzcq6Bs%m6@V6D{hMF<<~LbdYztrvSY!yKMG%sigq2h*A0Xh54Pf|3D>4)S z_(uVR190V9%>%n!S%5)hzyN-c7=Wk_iIV`b6i6~R7F}6!VxGQ~f(DWjG#>s|2_D}6 zOwkotU_PI}=s+M_yc55(fSz^N2AAGM`T>4=wXPp)R@&s7RPCt2WrSeGWFx<Awe3mf zEy@bFo9%i>H6#&$l>kwZgF@VV)9<7&-#z{%a8t#pxo|!!DBTRlUm96iSQl3djFsW3 z+vfWE`jMWkdNy3>>g0iMlTix~0%0Ksl6hSjeAo^Xcmw$ahdOnCEyi=;cK19Jr*Cx{ zBxwyxkx0oK8sZLRY&3f(+Uu<YmE<3-7tmn7jebXtdSfFH(CL5z00jZ00!nZKR1riz za7+q+aqXQacb?e<_!SnwkF5Yo34r!*a(P(?)FtH87{d2_H_(q^K#{>z1NV_M0NyGF zfDmAW0DgY;wNL<;lmX-{V1j_>qySU|NHY*TfaE|*CDITmZVyj^N>vIFM2<HfrA@Ky zP$$amRS{=(aC(Mss}UAT18~>=GO4>->@bwB7zRESOPZj5MWg;(;Y>J$B-7wby4)&V zI<lMoUW<m{pk<-bEvI$BN7O!uS&*qrJy2&}w-~adJM*S4b#;^RrD@Bx!u58%^7AqY zFq3`w0;N7IOXk8)fbT$ilfUHg2*h9N@3FbD)^@@$9#T#t;H`fbK(D;qvDfym$DKm$ zw9fu_gpK6;*@{0+wsA!x6+@t4&W`y4wFHJMdNFte?Ez<Ojcr~KE$`WpdKDG`2fVWZ zB?3lx$r#Il8ES$=rbz?b_y;DyBmqM30fhh106!M;B{%`C0Wbun^rI4k-?yv>$RwOp zA!a~ISOCa_`@+BW{}A?nSpdNRUb%c_(iX%3B|^V`PN+3)|3m@eL=^x8Ac;UrHv*ow z!3l04${Js;E4bXq3ROU#p!6bXD+e*_2GK%~xi{CEV;!&!IaHmD;DQ~D9^gg~2Tl$x zF}2n~J8YHs53D~XB!-7fBMZ2&PH`JLZUGE{ym(Tl%k97(fSPP*ZD%Y_+%dhyr*<cQ z-CleDHlp2U$)(2JZCO2(q@TAz)h`E;1r7n;>^l24emH<}rhoy|Gheoo9Mytj(ItqZ z8^w;Q2SkISVzRCHUd2kQO*5w~xsTXlOU6M2-N?QG?)TmYry0mT!u-1K44#d_iV1`R zzzvWN5C?z-z_jp7$_9$Ez)%2E0jU7Q0!jt2{R4iXKGyHV4WQpQSdkxAnDEo$1V?EF zU<vda{_m?1=#xh=4d}{+C<DHfWq>&lG-U4nOal=5r{piEIC^m{5Sf5>xDFZB-0)Ee zNbPnyNK<8??nKi_Pi?&|@ZdxgaKMYdBUtERmT5_vZFC}yF-i+-XMimJ$i1QDquPJW z534WfZ%SU!%!jbAS~{)%bygZ_S-hhq?1#UslVeE7>wMMSi4(ZxHsP7Wa4;u4P_UY6 z0zx#8EvusL?PsOf#>SqZ>i}~O{6D$cEKAOXCm~}q@@o>pVB@TdRXrKi{BPPA*FE6v zSl{USUM->v_C*W-0lctOf;GEyzTFsocV|)b0`IZN(w(ABP#}O53ux#}e_$~I=i3RG zt%0sRQd#h`muWyO0Lc&HgaR<+Q2>^*3eH3cwAASc{7@1<eD7V|Dw*KdY0f4{0^rV6 z05^Yi_1uM^E1Uu>_{#!NHvsw_@e@PK<v_qm|D9$vU^@StC7uo9Mw52(^Y-D8ou)z` zyW7~-k%2sg#fIq_KwAB<2oOw{d`v4^`vq@HXBZRYDJx_;PU{}$QZ?=~u#qIR4T8h` z4ajuCiLLQENI}Hf#skGAG_O8F$oaz6d&mskNY34*v#7RWSB4?AZlo$mcszYBD^Dl> zxdaQS4CmI{tpL|`o2&+ZIYYGwP(!!F`g?=O^kDb($+#x3@?(52>~VkGNoP@njQl@` zb?Iu${)7$oWn&M@S*#G2Yn5?%Ai=R#2?MeBEnTQit1^Q{&>zwyIJ>8(P6(bZv9LjN zP?-S#VeH&lCF_bX?B09r<0Q(ApfLH#=Qj-F517Qv*kr&HctN}bhXD=D^b<ZX(m-UK zXu#nh7zl$PCI*6$AQ<{5T(zF6dfeXYbnm{N?%mz{tyT5bEr1jFiE^5WsEMrmKV~w3 zEI>$*0A&Px`SV}?;+F&GUjpt8dPM~Q_DdHm^nYcMgq2M^F9ZFH6Z}G;|Eu5qb{YU7 z5CGW!(*St$<n>(rXBm)<K&ArAq^1dfvVa*0{^?KvkHQQ%^UI(S2&eO!K>>t2SZyk2 zYS!4+Sh_yUlUZ9qzie)^fy_*`--dh-i@m`voz1`nheqeh76(wi1&2x@#3jYy!pc_U z8{|b+s+I0=_(8Wdz^Uhu&S2Ad68o;0_23gZt&02ETIaw+>>CM0xE%B>B3F;s;dAOg z*kKFs^O}wq<`PF2uSDWTLR=Ca8@<-=(++KAH(;Cb8JvTnu7G?)7nxPjKMj@`d*DaN zk49_>^?ZaU?^=R#Xiiu2vkXQR?_y!EW_~w8f~;h`Wq<2QCX+tMYUg+$wi6Q!2%so< zO5k5FV8+&_6HwVe<phK*^n?E|fBBnV`tr2?|1<a%slmLeR5`)t<8tN}Om6V2(Q^bR z;M-RP@Z;~i`|(svZ~l1q@Y!c83s?m}oAb{>Yb5+B1em8sv;(IOAQgaKm1gKQ0x-CN zIE$BM*14T%dc6dubptC*Uo^$BncLk-Hm7fFHR47$OPgn%X8LZUQw}-_PI?=T5J6j@ z)<lsMrHe1DStgc_E<rtkW@r0`d)z9(0lB*36|bubcxROB`|Bh4PswGP9aDkC11+M^ z4a4i^BdVy3z3@35SYD6Vcx<^4YHd|BMH*GF=f~sa^s}<jVn3wjbqRssfiEF+g7QWs z+Qtxic-&-2SF9u4tRjW>UQ4SOBh;-W5n!uM_>mEeEM!nHm-#@!1Kg$&@Z!bG`{&<# zpPfObq!aM%&;Y1_FE9Dx=fCu&FNF;-uK@M9si+w;SXj1zf_pISft6bv6-HqJe0BC8 zTloLlw}F2sfFCXg;1|Ds^X<Fa=Tpc53LynBR6vvh()E~`;Kl&62Cz;r#<5KY>P*{u znChv)mT0QJk7t7j`)lM}V6y@CTsqrw-IM0Ys^cM{owyjMYTw>3jFgDW3QeEQA9iH| zGi8l5@A71>qKaO&XgE3v!TLbw&5#F;8v?>1_#4LN8|?)PMr*?8*F(Cy+7V8<vX*dt zwwn!T<Dl7i>BgR2=_6>ZtK`HF*K8n0^B>0iHc)wpJIn->SjZn;%d2(KFojI?DPh;0 z<Re&q-I+Tls{`xAo~%w!dnr}Mo!0+$%onf2bW09U(wrmLJ=cHJfNT()JRp(4DGUo= z^)!=Je|Y-*?vL*?AMk1dv<DC}BLM;W_yhQ814Yw-ZSjUJDuE?o1JG|M@UH<7@W%s~ z>;L!eUO$iepE3Y41(^EgpfqY4K$HQr0DEN18UTMU#`~d+uk{)y2W`#G0=vY=$BB*Y z;e#b$`Dhl04_(WIOSy8V>$S+gwDK%Bmpy>$IoB-y1M|YJwh~9&q_wv^pkVI>dfnDR z#y%x&XNP;{W(M1?+Joh`x&ioYHlayO%XY&KHsK#5eo)1)>JEwgX7K$PaDoS=MhBJA z#SB1>N{lt_x`Y3Vf|Y0)m5Ql(v1#&97m%t8et3%6V5OLVGPMC%GPqNuAY}G(Q-NpB zb5IXgc?BfM*mAZxJ%r7+%2^hhWTJ_J%BZ~W>GIy3bO*%*K#CuWNEtoC=gOJzU%|i! zoPc+92rnW~Cm?hHM!>|r66lX}Y`CQc@bZd(3koLsk-7dy6ViG9HU>ad0Z#Z&2Jq?K z%mI!jrdR-#1pGLsf;0U%EF9N=hJr_Tl<1NcOG;vKfQ-|&RRF=oqRm#97yIPdJO|L| zeqQ@^(*wvf&S6h|CxR(ZbKR@5W8?annuF|0_4&|ka5gwJ_Fml%_ja@MtiE!lZixAM z6@r!v#4usk2}!4zTb%%`T3m`8{F3B3x!=wpIiA;9+?YDR;M5``OFA<es-lLaR63R2 zghmN5`?DG^pfs4*bB<<Y$au_p{iqusG%-K6R2bA%I(}p^?zmIxkfR5Xq0p<EkIX*f z!sj-$Jeoy;mPtL0;DF$X9fmuu-#-`pC{(`D8?0po$C(sNJ}_lL)C5dSJ%9RarUQNS zewhG2#0Dr6AmBe;fQkR91HSa-hJI`k`nBZ|rO+=oc&R23|I-DSbqC<T2>=wpkH7b) zR}XU(P*8v`Z~#^g@aJwr0niF`jRUn4P;6pIYJ>q+t2BPU?q`u6)kzL`D`V|J>Qc`D z;tkFg6o8J}$U-~Y1#YAkw2WiuVz$R_0Wu}Mtq$lUwnl^*oAfB?Nf>mz8Rz_eruL@U z3OsnZ?k<Ba+DEk#GZ(LqJo_U;*sB<5%gGQC`{VBku#A04D)!`3z-g3}AVIJ5tl?Sc z;DoNh4dLX{Erl=)*H_~&Jfpom3==OQVvSE?zLSj0N3M+UY;Rt#hvwafrhor_hsMH2 zfX+w<&rtZ04Ks~UDfKjs2|~nIn!)4DVktf@eucaag8?dysvLrw@_tWTfp!CE4z^t8 zH6Z|DRN&KxyNCDh-~HI4pfUk)16cm!?DFrmtB8K3atBobMFe~`Bs72ufc5{~uYd6C zcfb7Gt7p%G{(n)kz-~zasy+ZU6`WQe1%E#Og8x?Zzr-1MD1oe_pF{PSTb|qDZ)4S9 zJhcYjC9S{1#GWi6HS#MCII!XTtP~fdZB)21y3w83achcI*_JH9hR<Nv>2MeKoB%Sh zxic`xlzI!%GoyWjfXkK4TJo_E>|es2v>!n1U@&-VSpCe9!!xObHVWNMnQS`W_#!|; zy1|h!y@obaQilx$W%MBR`BB=lA0y(jK(r0BH4+@SR;fc%y#qIceTLCJ><xS5Z-iyP z6O}8{P)2z-TRMk-@7IbB6Rs#YO~yEGOPAJs_EV+-dy<taDHB(e@(#|;U}&_z%IN@c zs$8IO1Q!086Y_Xv(gqKR7x3))t3Q4(oB$I7bppQp^=Seif$+Hz_FTmw$eWS`+5vUZ z9Kbw(GtmDP@DKW@m;yAr0KNJ6?!$}c(*Rf{z&Ze7zAWfJ4(O8s7*>uXKurUSv$V>2 z;-hcLIC(7Cs-_$~sUlP{17HA^b?*n$f=&-(XZCg)tqWorht8UG;>~W)dl$ixR8pG1 zgQJEur>J0*knv1KCZThIJc@b!LIN#9l5JyVb+OzS)S+)SmMnFP?P=s35U;XhTFcog zwE`jr)&WS8v~8Lz;J$voqqQsDH2cHBn3_OPftP*sC(cUjpz6j_-#3Q(S!sP^?$o}p zr7J#1nh&lN8#pbpNa`u)GH@KFr7_4WgZ5+!R7H_0D8T38t;}&q8L}TFhn&kdp*0xI z0jvv(g87;hxF~ecRLy}tGYf;?nGB#8kQM+mz?c3HfgF?+m{&|70{;{Jv>96HM**<@ zPx;{wrx_CXfB&7k`-f-*4E-OCKySf+@c$u<KBE&zBmq<%fDr(TzZ2!e`i-2d<r!Bm zOz`Z`D1RsGZ2NXm2UQl}aJdhhj)4gp&2M@KtUd&eLrRemx5SN--m-iD(bF##Y<xbI z1GI-+c?H8ZnjfApjgGZIMwimy{Eh^7C^mZzkL_P^8V@&v%9x7LR;t*(2^>2!Jxp+j z`Fa*%k^%K*@nyE^-w9N*0GoH$O7_Nj%z}&|jdlt6c+B2nP<bR|-o)MYPD#Rz*6s(* z300jKI@wT)u&&F+z?nlcv!9k=X`qZ_BOY}WmFF}zJ%dU))^I{sTv;Cn5OOij3~oKT znO8CqF0+BK0T>n@Dqu#>!Unh{A23{im=p5qZ|~Ir*H8da0BnH&D8JVSNCm*ve@Pbx z{wjcfGyp#S);GTMjgLNh7b!sR?_a-sHsgQc0^t4=1H2^#;C3m1U;#1&aESr3Jr7l| z32$o7;W6W~O9eou3mx$C2BLc$ezy?mW0of!kXWjHQ@5!AO)JiRzYY$Dx2MM->%-NC z=KcEk=rUKcQ*o|!(QR3gosIV0`XUZq?u9^zD;U+71aV;w#E5#Gvu|Z%FgePQxO+F( z{Y<a9E2f}0Tfy#S$&xJVd%>*l7}J%WyDrhf<!mHP4;7C}LjX*$HBDoXc{fUp@6}>B zRjjj35AH<d+p_Z8RFOqObTEZI)KkAiN>*djq!-7IUbg|2BZwKUR(p{jn+q*XEHVQr z$6oiJ%hU}T&|%@E13!TUU`$8|jrAfS_~~TYKD_$b`$`B@184;327LK{Dgj&plmVMa zA3&nT7)?gLnj-$E0+=4aM?nD25}^B-1M-YE;7dpXrWJ5v{|Tmz_@_Dg{QM>X@x^GJ zgZ*%^9Yc-JXP3Rk<T&>L9J%j~r_{saH_LZPeD0>1k1`TfHd@TumH=pY?E4m3HFS7D zVI<N~8k|*?P=}y4S>)=@1GKBlZ(SU9;DFTnHxt}^Tie-lsV*%_ubt{6SqNSMO__$f zKJpYRr`4~vP<BVUMB8x<CfTFX6vMEP_~rBE`dgjG&?dbYbEUa_SKJNHPz07&m{Xa( zpWTFS%5KBHNZM)_YsJYyzP#?6`1Wgvy)<jl5~A>Td2Pl7vj8UgL!Qjb>J0FB4b)>^ zFyz|PsRQ2Lzy8503Q_||1V{y<0{$2J*(}_%`8-Ad9N;nlzFFXJ{Qqn!fFFKi!hf=n z?|*fF|2Cq3%mVz3_>WC2{xJ@OMj(|1WGApkcmRxA5^Sgg#UEM02@sg1S;m>hfcUcp z`t#7L_hEf5Oj|-oD>4q5Tnu+6MOqhn0wN%sFqcr)D*+zYBgs(ILdt0xqIK$SL1(A% z9^LJdRli!9;aBif#-GTGA8?LGb}La&;0bW2Ezp8BrRXwVn_7FnqBdk2P#bVXdb$>h zb(1By842oQID-T@cD^)h6^y0<L3xvjd6I_ppJ#-11|7}!&H2SvXQTKB<U4D=)k33e z3RHtc2rNof{8Nk7C0&QMVZom?v(p4@zID8}?%8DT2prp^cnH@2oD;Mfgk=yQ&gKHG zDFL_u5eZy=!0p3bj0$>(2Ke|N3j@Co6<7km|Eme070}*4r^Wuw^1@aCNZJ203>o(S zyO{uR|1b%Frz8Ql0T8|m1OPKnX#%i1AVUCj2%w@N&`MVQ0p?+MKoe|j#nCdFEu=yA z7+E1uj&CP;pS*Yn<E%5_xJ9h#21}hWujN5z2s1*7I<S9OsnE#rU#C;4ciW0rl^&Mu za5drB!~;;O+{np?@s4&%$3ReR1WUo}ko*uP%^9*+S*2^=Z3xX*!r)yWH@W$R&XElf zCHQQ%P=rC$F=A!FZfpiF9ge1)wczU$)V_{AmD3m}IY;@s=(_PHN9Bbc&U#!H4dhMh z#nb)R%oNG{2K*3#>1(oBT!l>l-shqLQuP|kNE*-vL`+&Vx|@B3s0dt^a6n>VgLFWY zKy?Vj2Ur|H)C7F?;qJ3Pec#PNQUmA(r~u;h&%hV^Mgy<~iU*8J;_v{z8S+&`_<#Jh zkEa5d4B%`7{O<ivZ(qHA{xH%1JoZikAiy6Hz_0;Qq0tIBoB-rebpgsi0LOJ#g8;f7 z#8y+@^YKfBpv=gzjx%NghB?T>9Ty91Jvo%gBbKhO0viy7bE|0pTL=3Gvh_4s8p-P) zH6@3jL%AP=K>WcEu0t%mH!_LDt>$EDhnhD&4*T<Ju%ax4E9LzviP4=uss%2ALdWxE zFpX33hc;It!H89`Ujc0c3cKW04;)s+smkNR;T2)0my+d@XdhmB^pxSj7hk*{fHc{c zx8b-*9V3ZkIgYw7p9Hbbzam6<4`^nswH!BOtNDJhU24@&q^Y-;C6s&T7krM@`eH0M zfS!0gE08~ufucJgEWi?qf?{Im-R%$FWP`AevM}&x;9nI0`s4iH)_)ZNr&&uF@c(ka zKLi2*|G(D%nE)KifB65mcai@eeM?_x0N4j$t^O<ihX+vOfYksK`3ti*H9@xq<Qmm3 z6doq=Q)=6Umu$es{NM^CF|xyk`8JHvt~|4eZWnm+f<pZys4kVuIFX%91Z~K1V9*n% z&Tto#$ysz(JU$m2K7^ggcV}tv49IN`BS1{IAP94Z3^L1?W?pa%?1NvFy@a%!4%A88 zGulz5bO9m^jK-1_X7TbU1T1TyxOHQ7lu*+zHV@WScbUwmQjM7VILgw2H7UxL6pRFS zg>JDzRF44EsYcot-EcJ9wxa-5y&XMq1PwZNSd(c%L(_xxJ5YpTAZyqhEfpnB@45mJ zz(o@QK>;u=Ja~X7jMmTofKLN!x6kkIKYH^n<YEIz1gHZ3Z@~zdg#=%wvrtMj9shb6 z0I~XiJnjFF-py>JIS2H`Zy%l~|IaAUiTsrYG}nG-0g>cfDZs`6ECfh=@P$QJPiw~= z7d0Z`d+*<vK+VVn4J4HX4bTU`-R<#mr4mM}26N3V=Pyrk&&2hSVd0ZtLh)V)<0G0? z?<zVDlA5g9F-F^hS0g&|1dA9<e6s2-6uENm)i(dE9K8V-P$WHT%gCsLWAoBFNwSU* z86yY5LE0*v(H2H5GeXZrx$F1xkxPdW4QNXomCKrc5|q^OIqErl`eu1`woq0mz}PM& zyWz+X7O?P=ye8f=9mkQm2c_Adl5kY~+4&A?myJ5`pE(pTt+LGk1Us>BoiT#lUo(H> z)`nez&Z_QjS_}9*lF->P9v&da1Rymfh#3JPfu)KChCG|ib{_73`{OrN7xXVVflUQq z0>s7tmUvot|It*$9)sHd-=FN?&nEuo+fDxOUCaUgaQF7<)1?3w1xOBH<^Z(<U=~=M zo~Q!?`=~tx@>MR?2)L6U((F6BM{H;D!5!`G&jx<LKu+rzd*;wZ;J*e006{y-YxcuB z!>s|!G^oc;30@v9tPz1uSwsqgbFJvOK$*`2zJI`^S;kAcke#WR%QN~8cGnRp<*XO` za3ma#t)GueVSX=s!5H-N+l8J%S5%atEM}lUGBR963m1dJjspx<Ys~D>sQhLixCX86 zR2H!8I-gq)!tq_?1JgQmqk!nDr#FmzPW;4<G0q)jL*N*zu<km{fE*(n$KkOC7XVG8 zg3FBJ$`;5l=YA#!eT{826H3FReEO!zbt3S99SRItXsKbLv6%w?X%94cfcrTy)IQ-^ z7!;EDmks>CEr3-?IN?A4r|}<c$H9NR!N*g6_#F~}-n@Ty7cD?n7x2(Z0sk%n;_pfP zMHb+)0W<<w{MkfE6rL}v@Hm(8R<ow5HtCrc%E-(b3g%n!vtXa?b{?afeC-^%)|<%$ zk(qvUeh41)en?VvN<lGsMAEQ0$t*5L0z%MqgX%2;4)aZE$bIgznv@U|2jsBCyaukd z**IIR)QSSoqu0_N&o`Zy;7_FIRV&{?yT-Y0kh0}a1zwMri7oL4pN~Q^%3w5vE2F{^ zM~(?IH@f00tm&yUI!e$ZOOA%V`^dx==9<Kg#+8f{YkKVIwGRh{7nyIZF-;gU&ti;2 zDy74zrxSukyBe|(E3sL9fJI8V<k@k6bF1=TIe@@FW5UP?jxgHl5l&-()f(XW<O1*S zemo0<eobM}MFU*of&Z5;09)|+FMYW>i>0h)Lks@j{@Tx`{U7)b2VnI8{BZyB*~{n8 z1OGJ&Fq#0ZHb6-L2Kqn!IIs`>xA4EronStvtj|tJWIrEecb)Q`Sgs=fUV^Z`&@*)d zsx>61y0UasBTs$1CW}n{C7X~J&>TFDK9+XE&J&O8pgf15v5P<Z(-_;wFf%_xhGGhe zdY-{tuAaQ5z3Fs|mojTZU6hm92;bhzlk;hHDae4~HW1YraUhAM6nYd^-xoXw0YY=B zJ0D0?gaWJgGu2V4wYO%BC7kWr-?%a0!V6~&fQr>nJ(3kmYK4x<+2aXKPEQfZ7a55b za>T0Ga;Rwf*OepcT55v^Xqh9q&>fP=YUFudRf;t!kgQ<)0?-_6p2!FcDzHN9YoUD+ zR>0f)58ru%1_&t)pcxSLftQd#r3U<5b%1@qqhb9o;o_@d|4#*w%m3E`|JeWYJ);50 z{o9HDm(M8yD*lfc;G`{}|0eoz073_#0%(MOb|0Xg2WDc19jPqU+9k*W?t+jz)&gIH zFgFJ2VAB<`2V<5xLmZ<u$kFI569xLeBM#X2!x+DC;NsFB#-3L?HncD{#Mb?eOE}bd zfE#>tDxdP@Y{zX4a+>*R<sN7#5I{T?m5BRF+q-#F;O|aia4=D&LkKdiJ5Rt?jlPgY z%$Q!}5JS{kN~!S@9>GPs`pW=53>jJlVE~=+vzRHA7(@;@RvpT~D1xRun3voZAP*F6 z6cu09fwnrMU;{9)Q594k+~6lYhq^u<v4y+aqp}LlI6XQ}^WkO4CRzgjWCTB^sm5*0 z3})c=3<TUx)J-PP9$^{*r2t3{Rs{h6@(JQPx4{3h`{zjk|FiG-e7P7$T=<XtpI?0M zZ?8Vg_<wi+D*!<FFVO$^Havhu08IGP1{_`^*Z)QT(FYKjR|wC8!8GNu_$tTW6}OGX z!~*x&c9t=*!&cc<DrR;d+q_E`QUK}|k5lR{E`dI@S}}YhAH(<WW7^!{iU`1N@lmAI z&?yNof`-^1T=t?#bOE52U5_o!&;%BHdlF?~YUz_M0;C%s9`rVPHV+7rpx>P{j=vA9 zc(frrtai+MN8m|lV?0BsGi<Asm*YNj)Hp>q^kdt{x@}%SnEiBGVKJsVD2uaA#WDQ{ zp^F++NN<#$AHI7uQMk{Y9Y@+mf6L?^l#My6Vr0FLKT3x;Ea_%1`KV~(E>=8T3giG_ z0Wky?K(GN;*c=;xoWNVs0fGeh%uERmH(<60m>K{kP%2PIpxFRLdmuJkA_e+o`N!on z{+Ib5_z#)z{}}#nhX4Nj>h;@*{)aOX8o>2`F8(NhSo~oCX#=XPpl7PR?ToWDu_U>M z)=s)uhMOI=jwzLNexkAm-e#WwAbHrz0zD6(3>dh-C7z2X!02DxbOVIg(6}dK)MS{l zC{Y5LiGHlB==+*kQF?&?X^*iR@SrUY_mjF{eCa0tBLDVGLX!UiE^uL^0*zI2<Zh#K z+ELIZCNuJSY+KZBms8h#tYp(7LIXG;K%f4w!V9JZ24SA)zMMKmaX=#&JhUc!Sr*`) zO?37YrfjP`j`jcv!&Z0*KT{Iavi{M72pKVf0zny`>+Pzl1g&5Qa)TN<ZpOeO0rPv4 z)oAvL?C^f{2QLzk(qNfD+UI8;{o}|7j8FjGfu@8JFk6Itc=e~C0__s!$RIU9H47B| zoJ+nqmw$Bt@Sn2UjekGb|F!<Z|3@!^AAj$o+q)MJ!Tyl}oHYQj|EmNbCHtE(_KY;A z%m9W4+>#4)axw=%d90wSePDQb+VrwqbfXWm0W7tt)II$G3yzq3=e@@Y^8j5-$S>>? z6Ehrv*?ieP%D33p3!BJ}RqnwI{1mc$&Q7{ThjHYxQ&aYG1dLzNxV$TO*Q4FY!>QPq zJ4$v<AC$7E*jQ*-71eJ?K2H4kI0zYOP4Ds*Lz}^-q_`g3Nk9#y-QmpxSR#53V1!E@ zK8QE9AsLRue^LJxioA}BAZfxtk5QZ48GSVj8y0Qy6RkJF{Ahy^vlRuPNjFxh(}733 zMjQ^XPogH#Q|zHEgL!0U5UIdL0t68l_@AfB269%&B;Fq0zWVUPH@}{+{K$ZyMu1|C zkb)Ax@{cm&HUYr?bRt3~{y$#wjd+W9vHbt-{{CV0|9n185o#1j|63zXX#%<i95D;1 zh5=?0Fn&Ph|5k%UYi3XVr2+b{eXv+X>OSVR4W~-VV9f_QFlIK(+3eIv{hWFkV*$I+ zq7fqkt0I5`P!f%JeS>z1d+ZJ9H?Wi)vs_groUbOKq+*r-$*mP%m-#Q+p)il}Y^se+ zj3y9{S}7`e7zlURsbhJ%8yD7ADmD9`RcDq<*Bgf=viO@UPwNK0zC{Fd&y8{nN{o?M zNd?wP6x3SE?{e<}=jI>!ipk#F=mRB-U#alug*s%P#d%zep0PM8UR)uN;0ns}A@h3G zJQBCu?DOLBOVL2JFHPW2femaDpr?fek48Gcs;&)~r6cg!+qwEaf4HA+z<UOVU)ewe z_-9A}Jy2)1f&00MKcJryzW=iRS^Ynb>i<vxZ{Gar)rV>L2mQaMfENB^*8=@3ZUOwm z2bh0!0f`gj9~MA*KvZQF1me~hHMRkfo`!@0)Xr`kr0IeIj|Sp;%_nLfV92o|QGHH) zs77Int}X=_n|TGe*~6)VXJ_6Wq|hBfNAf<XnMgI3PH%t!%WH+*7&X0~qs$h)geQn2 z@NVZ|7xyF4wv#PfJ_L;0S&e~qRHp)+iUASNzX^w09n>)QtI!Lmq`Oi$<3gaM8}8Ws z3h%Xw80OTejgmdA$Zf@Db7f^7YWGgBHeEclvd6el)x$=ON#Y{``qEk%_Z_X)q1g8K z_@<lq2-@*P8y}-049n>thC$f#+{8RPfR5;t!BAV(`1-uT3AQ_E3Jw6Z!67RZfCV<8 z_SvVi?M7q;Jw0B%_$ZhF$-sXb6C^pPXh9`u|M`gUXYv2`&y4*~3HZ<MpWlCd_waHq z{}18)uNDC5m#i?w+(TM`Ec^q0+!?EYApj~7V2e`$8Ue#Yv+x89xgd|K!04rXb)QJH zlp;HvfF9UWdB52=AOK8srl{Xx`X2{^Mu^<lNKDT=#Rd0oP99}iRu_pb-!LCO)`nJ` zS=wh(ZD;)IyjE&*!J=<s>mYj_oW?s2{$-Eo#(+~hNV6?sk@4e(NDtlv>H$Mt{y;Z> zH}X*A1!N`Nz*s$-?lMZdqm}s5jd$ul@N2fyq#35M4p3_ZVjET#kVw_0`q*&Z9rNt6 zZ|mnW%B`Sq&y#bqC?n@4>M2~jNOLl})fu|jMg*05#<PR{#scnyK%Id37tS-S^k@*; zBZF^OIN<j7X>8wO1fT(?r~%Xgio{@Eoi6|ULqtD|zxbaL>A&ya|9N)*n81I&qJK{@ z|D6N;nN`7z@$V!MD}Ywj!?`wi0GRw|BFQ)u#1kAq@q<j_q}FD~oEn`1)QPwdbX!qF z9nCq9rj<O@>>tS{p}P+}^3DuAdR{)6-k>pE^njO0zO)4bw~9G$y*yAd>f&U}e3#vU zxr<`Z+4RtM5V3Z71I3_SckGeQJ9Ld3BxVOdG3Zql8*;S{ocaM#vo{@anHa*NEy1YR z|3Aku?DpYxo210GCc(SxD8BPEXBB6wVijimzC;YbstwQKmpaE0eV*vuBv$--S`jNd zd(XFpPHZ_OU(5uo%jytle?WT#PdIffaODKX>2@UrJv_V(E|74*6qx{nf)WDCzrcPO z{!AO2p8xm3KImutfB$AK|F;jHo#bCsBvJl@fPdoupQ|3AODF@d3^-PQH~>EPa;n+t z@)8h4xD=*RuSpeJ)QSt~h(;-~LELL>CqO3=rDB1;#qNq@TAcOf&1aP&Xu2(Za1c;O zpP(AGw&P|<J<8M76U$WZ9pqmRpGa4Iz9o%>!A+*t66wAgR(LOlL-z903+Vt#Y|%}$ z>l{3grTMLRHNXNrYGmH;DTgqIuM%37PUctjh>}tvrMax??(%xMH#m;Nc_z+Sf}CCI z?y&l4qsCxR%n=EkrVML-R8zq$p3qeDGg-aHVdj{4erVz}sjQDGqK;Lc7sCmT4fv-z znB_m0&dLV(G=;&K0CPhCGeFG0Kp+4(2l75Vy}SF%3<nqyOe26YL8Wlcm6k9PViU5$ zen{hgdH*x__jh+6p1t@iwLeY)ooDQS27xmK48w&gAU=<6K&Aq~05~S~0qtbk+)e&c zxL}P<I`{Jn7xmM{?wVk(8P?kQyCEB4-7G$hbU)&KcKDYd1GaHKh=nm0=mx#P$|V(C zc=r$)c(gn|OgH4D1~b3R?3|sOolj~-s-M)!9N@(I2H{Fe|J}Lx@?B)Z2tr_&Lq2vi zLn=`BldsTk9#xE!r4a-G*$+pJItC@n{f_>)Is^-`j)qf_6a!i90elxz0(IVUZReS# z8uk^1g+}&^<*hKBc&>du0=KQwk3DTuXG-ZIXqv&a7LOr0%Gi|-A`KV-%K=XMgBl5l zFn}~bG}sCvfP$OozZVSLvkAtxx36FQ?mN>D_y{AQQ~-8>wt!OJ0T<pKe^=8V_V3qk z-u&hM?#0X7fPX~(pRFlCF$6pefVEQ$0j3Gar@IN@lbHsLK@$wXr!0U(?{%cyNuA5+ zu7yy8n?#qLL(hXHOJ>evTOf`KwpwKkj@Q%%4t%y%EiX@qUcR(`NuFpp7pOGR)(!wU zFvUL(XyXKVH6_g;!Rc{+nOfINKhOe(@uzXWbH}!G6#*>makJJ{)s2~tstk>Bh?7cB zr&K9JCe9=&zP<1u8Oe*<QRSkQ6s9sbTFH!mFm#xI0MnY%d9>SU55qN{@e->Alvp<1 zxln~ddoRCD3^9zs;r>|{4GWSPKoS{n7<PMfbZDNd@r!1Uo|iM-ummIu&NV0y8lW14 zKC(U7QUH&GNFyI$mDt{bwTuNKGbw2L<oB=s`0oAt6{}MT{LJJaRe-{RFZ#b0$VZ~; zch&vG>;3r6_x|$w)svSGl>P?$hy9;DK<ELuMgfupoO#T#`o}p5062h8F2WNJi0{!1 z-Ifyr?4)yZ8T6I)+Tj>Ebu-jD<Cc}7(`Tsum7g1#ZwrR8Ix0o0dpH?j0;Bd7Ms|D` z{#i<kz&WJ^X~^<!X0)`Ek=~2lB`Fj%Qq4gQlDWwmme3yM@ylr7Y_fWDtjmeFZdkAZ z;<f{DcnF~JU`~4E)IU!0ydfg(kp_XLc%{YZ{HVlH&6wI2<KUCz(#g6zcw}yq<6(gy zS}dK{wI7*YD#K!lUd@i)I%O)KQnke;U5<3n&ddifQEMgXCCC4*dWzi&Ks7;^y<|f? z1+35?XiW=UUch4t11G}fDcCksf+iT_{QT{+ySqQXfB%c=2S^7P6~GyoXRajT<5phc zF?=lRKhgigSo<gZ-~8<1)rYswpHBF%zsUYw89>7SGt~be+0-od{*x+zH3$eNU<#@) z^`PpUr4&o8Jo~un8V4Me2m<(o`nI*=GGk0Lu{g)G63XbPW#TTW_@vQ0hMq%>Tjfhi z5~N?s>w^eh-qphW>sE7Pqw_8aW}H|ucpun>5FlV{j-H&ov;TZh_CYtg@hfj}80~2G z1LDnbc+^!T7kOGebZjRzhE8#C#Ar&*0BIg!5NdV3w3}*K7c%}@GUW$W_5rj_bDJYW z78So8eBn+7XQ*mrh7zCG6&%uX<^g2#--&*%^@HCljCX!|)q=!9PdKwBte>_=k(7P4 zH#fQw2X{UOBtS{m1%??A)-}WSCfeWvPy!Q$3ysqecy<4mUqnElqJqQ)aR>gF0RAiO z_tAWn8TtR)!`=O}X#DkJ+5YMMcLSiN07FNGFxDWl05JYb!or~t$VR}<|ED;vjt?hk z1n9(>0IGv1z3|ceKqUqz!ga^aOhhF|Q0}l2!RJYcO4FaLhsJhveLd(^FqZl-Tv!>d zLg@o*S5t<M%OhP~rNWtn#4gxvWQ=nAM}s%*TGJ`(P{vk<ma6bPeK|WxAj@;9t!y2N zoT+oPsx<SBcvswPH;>^6R8$6Vy6_^%R*AdxiA{F~)Lx@(Q0i%fBl$)iMM>bc6$@Xl zdD5g)>|<K)B!sESLG|dgV}=k@k(C^4$!L(<0mw>&-l+=Z5+71rIVvUi?0JFRC>S0P zB49CWw{U^e_bw*z1r>tRGJkmZaQFJpKS(;TH2`J+qE~PM{@j!l`cVMyzxTbrO}+9w zmj6iodlt&Z^j`{qZ2(39;K~5<Q7{0eEC!JF$XkU0YZ8;3S7o*u!et`@ZPE!$JU$O% z0ozC#!6tfLO-j-qrokH3g0T)$U{RR{v&De4#XZ>#3IfDQ4uSI!+NN~Hn|2DmH%RJb z8D^-~P1y39Q?5r^IKY>LkFV&(UNim(KMPa4U)kB3s)UR>x^rXSc!`w@s|Bk{ZkOfg zMOSmbA30QxN7wGi1NM?=3=b_Njay!Q)(2Zjs7u3jZrB8=S)eivMe?YLjOc=8LJi`+ z@m6fO9=DRN<GJbGF;n2EG}F^qhNTr-l#n~SktB)3?&+vg08sg`A(YC2|4%I*FmM!L zs-mFP9bgR%S}lS|2?&Ec((*s^^kJ3<-2Lf?Z|E1M6@Ui#k0SO3|CHJE=cj*pc=h_> z<wFn+&(@nn?=ORY<o~5$0fe~%buk6#w?F|Rm_02Pd8;L5Xz>#1y@H!+;9ITEB0yvj zT3TIgPn#{HwS%D3;9c-6+bC3cyLm6AZ3-sGo+NLN)R+9NEO+f+klIKL!0y=~qj~u{ zVzvs<!F<xh3qX;+mP%z1tMFZm^}n`HGnYR_|G>iJ?mNyO7$+aHIMLmVqk6V3NrP4I zpUOCGv3|SkZ#FV4pkL)+*0G4Z{Dz8;MP1?{rLvP<898@RH>ix0G4@S9uE;oIPP~If zC1}9yTuu`$sEQ0d)n2v7H?3<e4CN*l{j)fA3R5$OVs14pcnXy=an3kECk0bj!=#PJ zx1<FDzcn>**#OTcKp);dxqJ1wzr26*{@1MnqGgEkAHk0R{&}9n|3`nke|7)t?Ogbm z;Pz|$r(CCi(gch#;H?1AY104awp@UloH1v%NGf8L`gQ`Zy^UAb{IKe~A%8{i5sLfe ztoNP)QDa9PR>$)*+S?*wW{C@71w=eKTZnYSLxQMB9b3VI-d}g>LO3__See8@Y>@g~ zX;FL<s|7f7i{Tu=m3up<fAqlc3`Aou-|)#q|G@O%IRrc*Df&qFH!?22RWX4=up6a% z`qj0TXmU~0%xV6D#xEGwqnaaTIHeyn-;n*G%!@mX2b`798K1kxx^-D!t{^HYKjdzB zA&ex38m?{4_dy-nnE_+Run8I8mPqxtpjmP(ju<asZ6;D=0hklAY=8x>g|eA(pGJTh z;Q6!zA{y}77cU=Pzq<S5&)$5G4B>!tTLNnX+7X3^!|n(DZ~pT3Zc={_(f0Q_ZNF{( zJp~06nurEKbO6lspCyF<RRAY~2Qab~2*$Dz-@@(<s+92WHI8*?OIv&ntm=STD3S?l zqct1gTS;tr3*N-hEodPCV!(KD;^)4vMI$3yX;c>tydSKfW{;1e)Bz6<LfT2#o4$WF z95ThfW=ybTYLqy~G%J4Sm+GKYO>F1d?l}*{@)Q!J4&ggs<4(utq7bfSk^^UnHhU=4 zy$zAk&AAA%1cZZLu)(XM`W#1Wc%gDN3=Cw|y@4FGLEw|N@kHu01RN=se27g7m=D5G zF?Puu;%+{S(Qs@)AD-C6jf*!`LE-EhQ0+y8dbBfu`CzS^+dksXk#4{>A*k`6c0lC= z5DvIq(ZI*ILA@mn7proz^e>;jc=`7A-K+aQe*ETr*a07@0zN_qC_(hs)q2hx_xI)( zf16t5^~)dq=*5fa`ae8<HgkU=0I&ea{R#C0_!$Enl}p_L2o;d<U)&!_&r1)~V(j<@ zqt+>uRatw>L1J*9`w3|CJg_=CK$o7gnJ+5lQ?Abtk+#42ZbrLht!256BA;X}fFTA8 z_ju3(OJJ}s<yNEXE{!A?!^i9!8jIqVTs$51T7Kg0Q`iRe=q7(Owdilg|29<^&|S+A zu1WpYBWQ^5-9z2lNQ8gl;$+_|jn8hTyWL7NR<C3Ok`+l!-v|cI-U`*`&D0IQ9{crl z_=nGId7jV1Ok37Y=1$r?KKG8erU%cqc8y7^KwQzPkV?)AXqWnigWHCtW>m0=!BHs_ zg!z)pqFHq{0WWfbpR7i~T^~%Ru!zrRcrGyeZ0dl!KTluadrJufq2E$qFLxi0Kg)gI zy#F}X{`=dx_)pURg>8Rf8?gbp{GSE@pIg-mBmjoN!Wa-7fJ$&amvggKFVH#~;jTPv zFrIU5G$|AT>b9FMj>ViF9Ko=D;k8v40-ja7>`B(h)A!izl;_CV^MDtEJkR=;;jFG5 z)1qZT*fbyRsh$JI`F&?mXYqbH77W9`b}HK?zlj6*2?>sJx&B|3rlZ}7R$FKNcajx} z2=JH%Gy!B!HWyDqXjSOvXExDKt6rAGz(0mLT8W59HA`dZ7q0b1?*)9gi#GQSq~xqO zUPLyKSKj@iS%!iYI<O1a8J8Zool~9<b%}>Y$h3wmX2c<OXo{MWs;Io>7|c~;j8l9m z2`K!N4G@1>6SORVAOQkz-5?+~3z`e4FoMq>-Uc1;`ZIs|!<+AY4@w{kdKT8_i7P*D zrXbe+H^2PF&wlgA&)vUzJx%|}`VEsJDt{3i011F){X+p5|HuEIii<X&Isp;hAk<OZ zCkyoHvW&ZCMt0J3glwGg24bsR%PBu*YGFWgTmb0K<KXur&ILjd>w|4I*h`(EsiSib z@Veu^vrSL2+?x*0%NJPtQtTl|l>VncaRKpKl>{>%uX5^Z4d0UpAEu``a*)N07$IGj z`mnvQFx7uu3E$`ft?S41x8l6p0=V;HF`4+N={uZsK=z~cJSX<)GHnN}bD0!Gr(v10 z*<ro?RBKS!%ig)O^kF8r*kvIJ;?j46s%P>u_;-IlJ-!M%5Qj{EktUVpUHZLwuxk3S z@_zz=tcn?>Y67qWrjQl1;(^%VBnO5WQ1T)M_D&t};q|LY<Nx{NpTyce)xi5H0eWSP z_=(4U@$EnTZmNvC*Uw(Q4Xb}?lGt|Pk22q{-Z|`l8UR!OivqX~0-+I*vCc(+&hur! zSNEK=$^T-$2OJsHeTScLYiR?O8FaV<SfN8ZVc_tSdxIhY`2}g_I*x8P2fHl-VVo@& zsxtGsMTEEP(tO<a-=%{pEm>poV%8*4DY9%Z#s8FJ;n2CzalQxtPXLl3*ZA>8eRcOS zfP!z4;<5)xhQ8F#h)cytpLq}18W!fUbqEN6a`-Stj^6{B5xz>Af968;{NHYXnwo-! z(y)H$#TpM_pVnAw2cS0?IhvVeTk3^z=T&_=s^@CA5m;m(H3>LDHD@_}7l@)F5YeTW zoyjb@Hn0Zfcnm?J0$6N%nE}9m@qmkdi^Sk5l^FOL#s>yw7jyq&`T{?C_T>JzcXzM< z^yfeS<>Sfi{q%dk{N9u|Q{rM82S5J$U;g^X*RSvH?q7enjXuBgRJO!aB((jgygxXH zkl2IA%K?C!h&h0i0Avf0xrP0U?IZdg>gVvurS8b7PnP)Dhy5Kk<3}8_P0p7qNMnXn z#inMSN!{pNFldS&l?+l61kST8W7+!T6^O}~FW#}Sf&Dg!TsDyf>c_FD@Bt?J7z@N! z9Sfj0;pdtIUwk02sH3f-UsWUk4XF*iM?QbeDQ8-3o8+3PWHQKcaKr;E;_;+J31Szo zETAjs?aV%7=i(|}N0}LV2zixV8ko-;zJJ_ql4sj`r?Y<!jyAL+_vOd0OERRKzQjw* zWw4s_p!c!Mc3H`4U?kUovuDlG{bNv5V*QVkY<2oOJ$l#4OBPm9HC^Opbp?_GPy^5= zl=T%^O@g{UkR~B9IDnOUB?r%KkaxE;P59;87a#8L?q2=&_5JJn4}bjQpZ}Qhr$7Da z#k~L3tGf?RUc7z#JODr4{-@95V)Y%%j{j_{`EP89{!#zG_J^H=`@19nt_`@)fG0W+ zKj`ASTK{g#>D3E{m8??o9yw=mHx%GPq)X|Gn^k;j+m7PaStx6sSmLRdnH(}U2pszh zYS)7<twHDqA+#s|-(f0~803=K!WEP|p&7H3P{K?4PR4Yr{u|l~doM$yD+`oyIc9rQ zslzOGC##iqVCC*`gR_9tyDF#Zzk)KX35UCVSw#V^M=h)6CG(p|j-<z8lO3mx9LCio z;ZzF)P*yXsft7f{ZMG;q`pc-)VviovG@a9~P&i!WpYuwS!zzv}I%9_YuG4tdc?s!& z%3Mro55~YiHNZ3k&;bz*oTnBR?NucZc#ass+lL>$yuE$$VQK;ddHwpsbQOO0_Tk~P z6Zg*_Chi0Nyg~!t(0`8qpKsfq|5O3FUu&!(;@(#Vz$21?8a}fd;su&!lI?J18-A#@ zu4>e?7&z;<vV$(O1*!0b2s8A)6Xi0K&Jga|>?8ZLnc9c-U^+5~Ur`m{5ta$Zm4CQ$ zJ+|KoXzwxD1h}3m0{HsT#DpPgjfl!*rrYGc<vVsbQIu7eBBxa1t)!29*(=on0kF<1 z8tv&T)*ecc5veRC=sW|vgCva1@4f_1+VdV3O=TowB&-i~QqN8et)g*pBu`VmUa8U) zrj2ltqa3C?<C<)n*k*T0mV`4JIT?lBYpXR0zDlrWi>sB!oil6D2|*yqs0w}>gq9D$ z+Nnf)AWkKZO9$91h}nF%(KUEE1F?NRPf;{{JDq|R(|dUS^5N~n+me{?KQsNF2i-qo z{<!>WyC#sh@Q0cS@KgCG^EXf304QUCN&cAy5P`t70Z4$_2#yyV)#uj%85D^TItq9b zTC!b7Ce&X$$kF+lDt-t=kZ4^SuUlGVFPIFl+|7kpLOIkZ*eMmynDNfx8P!?Zez(*p zpvjP3+kg!4-Q1h<BF!t3K#r|-I&G71!RK^BA)qXp-%QAm1IHb$>XRkK5+zjq<af8{ z*V5lK9}Zh292(HiT=vdK06>FFZZ~m{txZd|^!!pUwUW!%8A-`*zAg*#rGzrgGeW<q z9t&dIqS=r3uUv0-J;}jJ!J8cQQ{btLj_B^A=bm`v4x*gdNVzjV#<DWkZD|l**l|@> z!2<pji|A1S0UEJSe;{UtHvS<4F$3rmfCeBcxPpQK-x<EYefki{{_O3usOMR;JYIy% zXWYK{%&I1SKJO0=5C%Zh`agR?Sb=pP$G@Bn3V(wEApIv-f7X83|CaD(KtI$*U>|MQ zCXupPDsHw<x3C*yzxIYYaI&}Mi92wgRv#?V-IdXF8{VH|sQI4*2tt0Fre%r>VZHdt zsoG-*pXpr<IJ04B3?aL}vt{>rLXAMI@!Iy<r(<#dFOf<MjMj=X%ulp=hRk^{Rl7X; z-Z&Wc)_?{_N8aQUZ|pzh$i#*ldy1)m=toE$03FR=4DI|!X^;MXY)W1%C2#3GVgRUY zp7%JDqgU4B6pL{4CC)0q=B6z1ac!)IozhsfBYS6J8$~hW7}a(9KPfPZnW$1vS3#VM z0ANMR;s8Q{=|0;i_(`s?k6{B5B7(#M0;o$c-%}JK`gHUQsq%h=yDjytdSA8(Qn`Ph zWBq4<LF`_rD%O8%fCK*XGN2c7b8hM1%@anOb@+yr@sN(R;BASAfHB1Yjpc4!XG-Pa zk!tQp9~EOB`F$`QM_|t;)L;^We?2%xK9NUnC|lt~4U%!YbeARjoBVZtH;^~BjsTTz zkZS)B++e5S?*kmWH0_0@qf89vVA06Zl?)II$GC1zl9Zz*(0nU7D#yCWq)*G?Fz?!y zs18;1VfHNUX%Ae-rE;1Fla)`sDg@s`vz-j;-XFsI6^x1hlS$?E9qPny*B?Yea5ukn zDSI3ZBcl2X+$FV9vF)=)g|siW%bq}n<7LJZk|Gbu{Mm#*RzObL1^zQLh-RT{yW(<K z0VD^M=iYd3grga#>TePL{0CBtKO3-*0Wgz)m|wcUpWXi{0d@`$^k23+ViI7WKi3^A zD7T$2NYsv9hc;z&R=O!&M?1?*f5E^jfcL+dyeX~CQLeLJc=Pw<|Lq08IoJi;+m^oB z+%z*@L7=OH7APzL6)rv;gRtbuPwyZ07Ta?r6zW;OgZHBA>fj!Cze)j5%VVlDP$~}r zdRmr~V(Sq+qV82B3(i=9kx3V>a!AqVW<jg5#WL%pp1GtRM+Ps!d9zK6uS0H5@e{7w z{*S_I`xd?>)?sIE5D9=FjoTi7jt$tDZf(M;%DO){#TdCXp^rA|VYh&MyuhRYw(JmO zO~4r^#|7bLV*upjKqP{4D1d@L3-|43#dBPu40@Rt{Vx2%-=JS^gK$Xyze@ke0gnCZ z4&dDcoZ|mfXzNo__0Xd)4s53SGM)2a#yXFmpD?n8wK}h`3W`X(O7(!8ab08CA{coV zaGdKWai(9cMdBBqR8_Ir9Rw+rf7I`PlXvz@+Q_bsm7AT*qCLAg_6k`$b|2B!*DNnk z4Uc<US(Tl#S?5<8&d_v+s@hv-<H}|zKxi>8P=2z0Aomp2zH3_*AG6tk^M>6Vqjpa4 zHcq7}{q`OmffUzrGjw#m2T9-j^(?lGr&PKb7ne5SRxE05((oO;;%Ho>0@D1~V`oRt zI{rDArW~z=Fe95qghqh~CV=)d_zzEjp}PUSY8QA*g+Q(UK?Wp(!G2zL3z51a;BzDC z*Q7sbe`~v<|IGgX+{FKM0j4%01DJfJs$r-G$Df$Ce~$tV24Dfr^l((U<)z5x8Ky2* zPa((FQSHMf%}FgKDRb%1%X6E;+ph3Eb?wn9hS}CDp)VSDum+G;Cw+h%fg9J2B2s%G z`DXO&&}?LTR7Ek%OU~e|wxTwk#EK99iF;z{yo&S7#>r*-y|!1|j_dq&eHYH`?tB&p zePO7`(dwasB~e~Og?ZeMLz_b3eJX5cmbY;@zf|lCM)7o{A)P34gGIX8KQ8V(nO~sz zpR*E2lY-y*sr=0cfe5WZ-X6HCCa>MrdapgYJY+Khc*>q&6vw7Yg64hL%;4q{2|$7e zc#P*w3_iqI0D?0BEs&Nxg2)wko2^%Qp`J~?DiD^fvB-b)Pq-ri{dvXJKZy$(fYa?b zK3<~EHUJuk+GB#whsQqh3D>GX&E`%KgU8Y2)|-_y_VC>5a3yt^`*zuxUIh&&>}B%} z<`jZe-a;Q_CuqR`n})*sa?2jRX40^^!UGB(@qbxI$`5jvRbQ;X2YalJ<2B7AfI^HD z5Ab#}VX1eFb8egVhc<RIb)wkL+VNVC^7#sBQ75ma?3^X`QUgi=h;+4zVVIP&F`kx~ z@s;YfrmAsRD+2FCvEh-K#@$!IhKE>PG(A|n>0umlw}>(O&z-tt+#1;jD-fTnzw-i! zoS!VCj|>I`*48Ei0{8(FlFK#+|4a|Ta_78~cjsBSyHybs?gc+DM%4k<|Dqk}OF-AJ zod3fq69Cizo!c1h4Q)VCau}y3MVDShB)!i1nOxI4GuQ{{Bi#D@yy#v$(4?A7xOHs? z#F>~Z0|#K7GDW-#)2}D+4oh}Zy(8Ki0wa~2O|-Zv<-~gHGZTi6&e=HtnTU4mK}HQ` z{a1y{p@JCo{~oBi-bPt8<GpOp#CFJz{@CzcipIILaC6);m*-$yR^}h8#-$c6qk>dB z5nC6~mA&IHW8456rLat)x9Uj-R=p<)**eI9;Ym7Z9O%%{uGO|~(la<F9;Y@>t_C3X zx#Ant9W1-_Ob1y90Q^7%m=(z6Fbr?GfVjN9#TV#B8&;q*1-UM*uY%|-Uxme=bpQB^ zS6zO8cK-?q=ts{Y#(+cr*#k88zlCb28)!~*;ELwghjMMIZn$_1|BUI2UZ^}RrnYsN z7?r30jsWV|0z8^!$s1YR+J#VTnzJizH(>y-tV+eM#)QnPR|9y|N{<zK?90VB5O20v zC7tq^i@VrHB;$^J1%ep>wHI<jj<zLdpVM3cGh{Lk^rvpW8^#kcm`}6FUYwc^Y+Ra~ z1K?|F3mGvB4AkWC<NCi4xf2ykf0a4?owR)5+jW8F5O%{^KMR5w6+o}qWEe3<V<`39 zO-0i1vGj>crzf7JdwG<rh}|Js9*G1pMkD@8$g<6a7X=X8&pipJ{I(kh-#%W@M+c+^ zz#Z_Uln#i?a{X^{_@|I?%(_2sgy&BP;t3~Iz-s?DrLvdKPyh%nKz2XZ5ULiM%4W4T zLhDNg(Cs|k#y>{CH!Q_*j@^N=&flkA_R^K}O8=KF##7jg!}?-Q$vF3G+DHJoLY`)` zQVT919OfBWw9nko$Q9i{dv{N+WwpG7V(89?u??7mT+MCHT`24Y&K;k+Q|x?4Ylbe= z{ivzv<iTx@-(bIY=PF7lf`*ESnre(AWh-V&KIRJ%b%R=wIkIzTsx2^m3TQ1pg?;o1 zNu!!ggi<MeLg&?7AxM?d^Azz&PfzToug;ts5U4Hz)JCSw=F1Q-+dz)x!Kwh-g;&Gy zl^MVYakv2L1V0mV!~p;2;uc!KL|#?E=eXoHlKum&2j}L=3i&bgm!Ja?$jC;Rr%#cl zoCyF^QVA6E$Cls*N6a|kV^Grjy5Zp1s|9t~X~thuv6eIdJI10C_tL)dS!VZWdaLz4 zqR6Wo)F8RYw7b0RXQq%E-QUqr2N*Jvc{%EKop-@%rg53@-3K_UjZ2RyhkhiPeH>)c z4?O)CBM`6cZkCP~DeAI9@bxYE-P)N59Z(qr=M`dX$`r9`GG7=-^G^O-vW6<UW2^Y- zQOdn>rVu~dGwPGiuH5ob+7F!h%ehx<cUwca|NFW5A5}87ADZyvJV*nzAHtz8QUtNh z&oU`HZ#h40qYdk!@8>5>HkpFi1kXyQSxai5%Pt|27!3bTDQ@-(2#P)#0kVW~;RU&J zTla^pP+>kDeiT5w9Et@;Bhc@=G6CG;e}vrswOx{xKj8rwMmw31+M~bq02HP3UNz9x z`1!%;&P0)z9W}rS)h=JQZW{>8PI9KKIit%}5~8q{bh;A=x+0Mr<jMc^7z@@-+zb~~ ze|p`+$Oo80cVRHzUy0)g^?`|f>{$u#f?LNP_zh9NZPHjA*`3|W!Cm>fg$@#+c#gRf zlC7hv9Pkj5>ZYR^|8CUYa6Mg5c{MCJU|lgcpoQ2ht$7A;#g&YRIB%#hwrA|FCdsHP zxuBen-L`FOcSK_xC}id;6&mM`&UiF8it#;bq7RBfeVX;$*RocXrwf!kz$0b{rwL$j zKx+Wff-uDw4KO9(&m5suC;+Cxx&q|m{%Y%kK~PQp;+#UlZ*1uJ`FPFzArgte{c|FD z5&plUe`vNXd!X`LXI=`|{ATo2yST(gz*vYS#?`iw6gFwN9k-`e(9t;MvfBn%C!(Lz z6+}GF;Hz53)EX)F*3iy3o^g;Hr<Zvi*E$^SP>sO$dm)AZBTTZ>Job&2K;(~Z`m350 zK=T-`&5l-0E!p)6emlppw5JY_sZ?VOr;BdVCfQ-x=qbT6)RH+s=D=)w;uGP8EYM?b z*cyjl`o10(a(*E5hRAu$M2#C~2$%N{_7c~vwyL^m(3Gg2@7UH=rk?3g<a{)L?R@J> zKO<k9CX<wc8&$?D<?$ou))yT}n#`#<F)Xov78{tJ07O7n<mH6E#P03N5h6YS)U%X_ zs9yYW*KOTPP7#YfwEwl}Cwmjc+_LaKI`_v20MW}FcVPdY%kSAk+YawVBUUK@t6O)O zvoN#^Uo`VZkOYq2HR8H&I>YD55Z^wyJYc(4weQ!%>=-lZNFTze;^xZOV*rk$du4dY zmfs`awBtqCk~{B595K;hJ!gG8a(WCcTETu;5MYpi+yyfU9s3U-ap*484wgGl(-f2Q z+kf8;Dj*#CdzKj3pH$fsg_{dEX<QY#jl2fi5c;cK47aUwy}3`(OQ#x-O<GykJ)zEt z&p~ld&1^3Vt}L+1M>O&0C?kGr_c4y&vz0IR%hkjqvNST=3RwYNJZ~W2BJ|q>dl&*w zO32KE5)Ak*Fi-fGEdbJ4<++Kmu<pTY;3kVc^}dDtrX7j>8~9hk^2hzh2_XCDl$&X> z)|5Q5!<r4WV`j2Z&1ux?<eC)IqfF}Ck9Ncsk8G`HFG+{|*0o=N8RC6#8{bd*zRhgw z_R7UW4Kbi9&Yfxi-p)b=SJ{bTtu{B-ik%vl*Q$HX6X|U}v@Me>d0^8g@_3hW>tnD~ zo!tun;enqXC)U<Zqyv{H4TP)8zH}x3EomPO;I)16JkYPkKdn6~>~tg6Zd}-<6XZda zK&Q$msKN}UnpD!yU<YvWvl0YjKYz-a%!X=kR?{_J;IDyx<ucp6@rZ~&EL*Su<C^%9 z<}#Ng1)3448(^a#G6UmW=&YdNyx=Of0D7R%PfqWe=sW*{G@O6&P+UF<-QY_&?}wy6 zN)j1Z2J;_hz)$WEjen;CxQWYl0#+-Jp3AZo?uORWHM6_FV=G}cI__!+kj8!%oMDly zT4}=R&}tXITbvzE$g5d%q$W7euHBLO&rf29n%sx%=4miZWck62gKALtET1D@od)iq zo;Ault%h`45sl;A_5$ymBcF%$yDZWyjon<MdHR&iVEvWRtm$G_a#!oI&f;-T1jCSZ zIaB51J=e!33fnOU)w3oXphOOv`Ic*E|5<A-MP0sokwcUOYd!3_3UL}2<Dv^M9C?h6 zkoYS~b7a>Bf05IvuO-CDxTvIno2(5?^w-P)y#TWV(Eyxd6R3?7(2uLJ*w+#t8=4AL zU+=gb=XhRE_=`<kW!ewOUv<Bb{{j3@Un~Fd{>uiy4PXd}V>&uMHrDzm<oq2ElCQ-I zr~S&I<&b|ndo-=e?AY|+rF~o(U?4z+#iIEzw-G!uJ^9Q1)*06{{XJ1T>i*qjq7Of` z#7cCbF~TN5j{Ism32Gw_V1z`ePJhR-gCs}jVNzTBWSe#M(BLs0SlclHges*|){0Kc zgi_cBDMv>&{4zrHk!APLv?KQmMy|$@7)q7-hg4KI!=>;d13%8j$EsH7j4Hss=~f{b zZeY-$lBo>I{N>dohqX*PjO&c>a|gNhRm<VYe5|H8oMJ*5;@AvdBIiw70-NoDl1&Hu zaY2<(z#m_rl5q$MU<Kf+$Elro*7$V?D?Q4AKMH)vE1Hjh|MjYzf@KKYht*-?FNyy) z{z%xz2HCW0IC^SoV@Apm-2kGmr-oa@MjWx#5*}kP2Rj>0*7CC*99VIY{7;&eXRT@F zi5TQ!1-%-RJ>a78aunFC?jOf)W|%3;Ay(e9lyGBFhr?*vHGPOZQd>4Kr65K3#l}_g zHKnZ&F6~#xHuGf*?<1A1k80Xq`-3|YM@A$`zCoSsW+6Y>2!5?pe8mZ9XZf!CrggAi zk~`e-*5I0O^AAghdky&_?y1g0dJ6o48_f!F<;+OS)*s9UGuMk>(ez|?HhuplDuyc1 z0Bfm9_h`%Rpx~d_ISI7cPs7o{_6uH{#l>NtKMp0p^+?uTI3`apmwKc5RnymVeT?(R zzjAFtAI@(%{+aem+;47yzr%m0wlV?8aYuwV0kOTitpm+eR(~12D{era>{_n-5x<sZ zHH5t}?okZ`CETtZ!26lFs^xlV*jbm{yuX=c+#IF}d02~EpGklV)naae!oGW5_ui#P z&SIF0eqcW7o^WCJarZ#k@*CvQDkHoMVc?oIu>jha0Qe@>F&5ayy3X+ynrbTyg|qw$ z_|<OnWTrNcn_+uxra4eEB@S5iJLhB3udIOSxCvxj(uv1GGr4TI3cCU7hrXG;A2g`O z#gHN_iauoV=OM>7?t5Hy)|>Q1%?e5oHTDe!&KuH!iwl4SV2EJLW3&LF``ChaB_89V zDgJmOr*)HPKaqYeigK9vUv3Bu!0i43{^ymy({(O5w$v~Xr4t86LLm0PTIfD59|c6- zyt%)g+rQYc%VnEpC$s@Xv0YG)$oZ9aYs~3f`RIC$LgTr*83()WD#3peaR?g=7@jZS z*U#NI!>`vTRl1FS<r@_L^p2}%_nEC_l{%4!y<i_MUD96Pk9EWL{vzJLx_nvPXl2sG zI8Zw8D>*?)n*wiq4300U)Q*L3ghXbojW}BV1MnTzv*4*Q?a|3nuHDU!33!770WTrk zqZepp7V%Jjg6W3+TzFI}`!*p}i(>>Xr_1E{9QN6eKZm`WTr9w2Px!^FOx!Eo;|?Tc zIdk^zspn(^nAX`p*2vFtga;jiny@+^0J3lYKvreI03o^<@#+J_J$^yn;is+twD<np z{w5q_Tuj(OxzB-s{Zak@m3&kd%}<^EfWi<pWZxd$M1HKJAnzAleCuFP+qxt(yiE=H zjzRm?1-mpEq00U#wotC;P#lK9EnK#&44|3tYjX#K`yUU!PF5?>>rDy&n^l}~1Tfg8 zti8xSFNPo6kG<j@W!OAsJ>Fb+nhV9sR$YmonY1;fJGnvYzP>AAx$+c#Qps({lDSj5 zF}w=_!z5dRm30!XDDyx($Z@zUuQjysIjuLSPPiUdn_2)3O$uA5mVTbor@rG;J!*JR zFlJMy+^UrBtrCtB-Clmopn2fOn}1$;N|G>{wIBjI0rn4!4!{}s6u@N;{Q3T4jgJ8k zRzG>Yf2Ot<tOAM-eDS_+_xU9vz9ourJlMOM=sPkFk?P+}daP>JbTq;<Hn$al9s5eY zI?moFn9tU^-mwpFh@O$D(pmcwS9-H+!#y_e4Q)O5GOrmU!%Yv}0uKfDp@WP9=<d8a zr<dYed<iEfyRBOC4GpLgyI%Tz-nt<Qu~*qdG$m0rs5k2T4dRCKwp16L6S+q=QpnAb zSveA7-~;%!p1o9@@HWbYaIcSe^ed)HF7&-lm{nnQ{>M(`JlR)VBx%OK&MJH;3m#Rk z_i0yEttj<>s(n?FvAjZ1(M?(MH~2|<w$P27OO_<8v-8T!4@SU)<hSVm{CvL%1poxN zGV|=~&hs_sL9+kU9Dv3DC#F7<9|qx{`Juf3U*s78_5=H0l%IPL{Ac`x{qsWvZMuJ` zE*UQ7_p@+K8wV#~+%|J#^=9<QVk^AneJ$MX%O=yT3Y4^U=jNIp9o0s8&O(57?kS_8 z2Xj@jfH^$P?L6mmcRv*ixjT|bD-2i4xLdSWN|BM#zZy5)cNb+?ENjS>y#(@K0crLv zMUXM8T`8sgT;oBJ41fPbS-C1lN9Q7?@Q4x2c<i^_nYZP)?YxbWLZnhz39x@Fcfv=q z57b8OfzcT1@V-ce{Eu8l7)q-AV-aRdJ$5jP%T4RnzH4rBc|MK{fcg4_yodTV(~cYP zVQe4L_I2EKD4W;=?W<2vFg$_FD!{^L)&HwsvD#C3@K0iX^!tjMvE;Xd)}J{>n}0r$ z|8ss`ah3<SaoJ?8ILRbNW)-2vw$ajOR@O9NR7Vd0s}I}Y7Q%X53f6M{xBQHFp2P&k z$pT{*2wFgT(so%I*4?i&HK8oq>H|dRZoN<7_?vG>L{Ehl_{(rKaz`EC`Y)?e2;twx z6hqhazG9m*aH$dp7}YCtY5A3gQ+jjEy-*RQg9>=eH>A4Q=bPLXv{NK5zGJ;hMOv#I zg(>C7&mgkE3Vb;A8q~)cX5OY%&1Vpab)p1;PM%3LrZ$n65#<_<r9PJ~E_B7T_?0qY z=d%Q$1$}uzU1(P$!2EzIAr2r2L+B3zcogm;R`AOFYbhj?0Fxhlzs(3jegqlc2PyxI zesbvk{i>vlH>vSksayPiw3C@#WBQyzsb>bB?d`q;)N(KI;CEJ_%Y;?svMZVe0zask z$?&iSF|bS@SA@&p*Xi)3ONbnVbu0X5Cun$=em}%O&3xrQi;z%K2L3LhPNxIO44$o` zdv0{1->u8S6_sbZ<rI~4H(0u~ge50w%-gHg7a4yM?!CQpXFUcc+}XPKpi~mD#f@Nj z$1d6Kb7lVUk}=Zg?xYM&a7fr$ij|1d@WE*|Nq0BKDD;{Z^_G{x#=*9ddAKI6B#YPH z(#JZNedj=|5DDkRViYg|-*<2ZSpB<XaHv6Q00xCQ;tjwNK<s<rZz|vSn%V*w3Ow&b zW7L4qLiEcB{}BJbpEUl>ctU4HcAf)zLJ+2%HAl+#`uYk6UrBJPZ&$#k8CEet0E0{` zwwgQl`rUFhxV-74-%y)NKGatvU`34|0gbf;8XZr6Z+FDf$#i`Wm8lu7MHJLAz%yTf zT^??MZVyXNa&NZuA87=jSudD1Wwx{+_8oQ1o(K<0nX?#?)qF+6=oGlBrtj~Xc-|HH zPQYWeG;07~3dhVRo9LQbm6f|JtrJXv{lmGfmHQ`f-=TdY@zHbx#ANZPr(`tnOrGE# zn`A0aKpqDB4-MTVi;Wtok!JxqJfJF{+_-2m==PJgfl>t85O_Y`z4EVM_G8QMixLpV z0~esbhyi{4d>}t`h8uVNp-Dc{0QhnJcl96U-+{_7jgN2<G0inYb5ACfUXxM}Y3hM! zxVjo@&DE}YZbLNA7QlHpMwR_PBPz7GG^u6!d2j39RE=sc4E|Xg_?3{GR;`6*JXMyt z4d#!KbYXm561E0`O28913WBpGEv!^Y4IO%yB;n2A8Zxn`ZZ&7>Kq>L<t0ilzXvL{C zc04!9vuAaV`@<D+iHxu<IgJ<4xu@%or3nMBC0}>m_EMhWoWVDAi##nFl#O;ct}rYK zwJjZO#pC7N<B8b^elfQ#TOPOPzVxfTw{y)Tla0Acu$2X2n;4J!N_{CR1^*1ChS7!g zZ6vNEpe8_Wc|u>2Z{P}~l3(8ZXS~ubnDD3e1PaA?fBxf*Sp4s2e`+e#dldC`C%^m3 zJpB7(rx=pbP1-xj61==q!SoiJN49zKRPE2z--yxs5=8?24C__UY%;sNe>%T|U)dY4 z<yj1i+Bh1ynf^YAt9zRF7<g|9s+%y^bJKMB!ZH_lx3ew}+QH1RJBX%Mwdc8-Lk`=3 zr5^dZVkDh5WZn?lWgQG~id7Y@Y2p*_?uA@Nl7$1Kw#9rwXfC0W446J}t4UJaYe7Px z3=N_5bwlw~&0OPnPMbwrE+{8*RRT=5QX4%SR%pk$pVi^leVf2ucd@C1Q{3`IO|8Qa z2>6Hr=Y6<z0Se%D3<BllKifnP{29+d`=KL!4jDfmFOg*B!#`BgFRiM=D8Zfe8U=;t z2}B)Pvl{MUm7a_B>Weh*-MnBY6)1)~G1z)p8s?n#!9WB02%SH1b@^fhZM*ZDWrBlt zb@cDqUttfNb2v0h0KsJ6wN!;BK7p+*G6@rB3&CyQ=5kFL%W2rF`0%XO`vmg<EI_IC ztC*w((8;T<sxq(A=+{N<dnln@c3BoF;dRr%Q!{xJPfg4J@MBE9Tyc*B+OWrT3(O>_ zRTnhJ!JM9O#9TSwL4;-)qA^LY)*~d5Z-$mMGR;AOR*}vBPSg%f4XsSA&=(NjXn+FK zJMlyl^EsR8=in161vU`ybmg!w^!7U7DHwE(`0X(R{zU8p@-uW5F!lWtepDu1kqCvu z&f5e40<iush6+e6R5ojW--65(RdXA0%7^Q*7mc853%H$FF(74PFPyBE-kU9Z)eJI? z(I>Inj2O$p);T~KZc#rKjT4Ks`@&VSn6u8BAPck2{+DuDcJD3mh1e}8a-`V~1fdrM zT~$0E-7%TfS8P#~Q*R)`XEbv4-8#LH9=1@sYGg#MRcH(7p!gxO`7z-*HE*-XMAZIt zL=t21ZJvw4*`aum)m*OgvBppY5(YFJJY?X^sUr_bm#S;ziwL;HTrm&gKk}M=Z`+jU zxG^1)qZ$)ofsgF72d;Qp=2g1gJ2b-f$ssmC9<>4-Bjlok{AXOY0?!qC9~|%zApP?* z=zl{155>PGsty8ebhr{bIhL3BZ-Gq;#bE|GLAZh%@9=e<Eo)EmJosxa|E>vn_4=cZ zt`ZKj{nxsUVlB8;RCG)J(uwTOcfwUtp9DI_yyPs58Y?EQ#+!H`lT`j3V4IK~DktVr z`uW<VpG`AIHCzRqefy60c{Q3JfkW<x2|KP;C`)}ORG0Oe1^}y*U}A6o)I%<F!*Gx5 z;_{#iH-582HIG=^1)?!2mhDgXO|#r{q2rnY_D0Vh%*J-iHy#9LP7!9davEt=+=h_b z?x^0%(|x6MibgKuLi$~aqZ<+6;m}BII*5V76C8*;@T05>3n1UJ1On_u_7!+v+~RM} z&%3Yp0ki+7AJ2PGcq$jSW@E<Am9u>Pv)lSvh-Z(Al2Bt}Lgfw1-a6Ht!vai&rWk8^ z%hcW%f3WWAwQ3-%`nWM85-jEv8ml%#9@)^bDstvI{m1pbqV+4=r}T;9ix%a{BMl0X z0D=lM;Mh*UoSx%}v$B91)Sq73Y0h|n{CMYArm!0Dxg3Hl$17Daa(`sWC2xF!kXcXn zXHx7b)kdXuhuIXIL13cdb|1FL#L5!9GI68}GEbL=Xqa6q$x1n<C?bM%e7jTlB1bFs zRzq@vNON&$$Q*vAPQWa-Khr}H0~~P|3drNNq-zaG>EXd`?&tRi<d?)>jwcWRda7Yd zgr);1_bjk-vRXcW>vlC{8of|!Yq5d4IA|FeS9>2Iaaz_sRf|kBFqqU7>D-zIeNLFU zwKexeWUj2+DstPq4o)reOzz>5X=bZ)H@M?9%BJ2JIGxW{mKQrxgZvwP0&1xFS*2!` zfZYx|RsNyjL5(r1TesZk!>WGCvT5j|%<>E~qiQw<<c}Y89dxbFwKfO0j{RY)E0Xcr zprHCzeOmo7qKu!@P5ftVND68LcfXdmqA!q5B8L^tN~Gr{`!CSe?m4qa_UmIpdm42l z8hQm|L;t$K4CEm%q11dC_9WaS81Uh7-;-IP)0@xUf`9%eQsB_ncW6L3i1*R*|AQf- z1SkMBs}UA9da>s%@hiYK6GmGU%Jg?zdus=NA1?wzS4Fnea%TFC%wRl^im6OD)}#Hj zBsog<ta+sgQfvI1Qs#jw;Brjrd2sNmINogIm)!8jqa9)0c$oKDNm4R5T?^KZsCy!~ z{-m?nHselDR(5L~FY$m~X%D^(&G3*jS@dlmS#vrkrH;*!1hxEBY?RKQXXQZ%je+^~ zi}##1&r1j7ste!fUAD+TB$G=RcNFWSp1WKZrZ}6Xci6MF4q1t?VM1t`%qJ8hJf-q> z7@k~HqbgX8X6L~w;Nv>h3(kIdAj0<k>bjxHx*<pC=bvX(<aX`<gBm@Gvx-0$;9m0a zB#ih)q3|H%mqY1<#ozG!$*8vtzFD#wIstgg9=CSGTEWk<ekm8p>y>`_9JPI>68EK& z2eYbN%X@m1<=eQ;M0rfErAk;4`4^Z1X^_Ei!EkFgMa9A~OJpLJ#lT%K=?O2pR$I0I ze#1Z=Ck!TKjr*tw!ui1r_v?7O#?%$iw|e;a=o?UdjTeoAnfYtCv5qC2_!||rUf9$4 z&~v3k+tmSW)N>;o5a>mCs<TI7aX`bkGDkETk;rX?rch!kQ8u$=$K>B!ig@Qz=|RYf zaCo8g5Ov}fitMV2P!+6pK>=kVXfx%{vrjbB0tR%&eC3^B+e!BTLjv#rS4<BD1V9BS z)7|xYFVp^i9esayO>$5Ml99fh@@VJ}ks^PAd=d~&8)g?lyK?Hu+gG(`VSq-YBl!4h zr8mB`Kt!Ohy>P*(h?QKCNAldZJl?ul39fq}KR2w9Ld7!n>dq;UzqXb1{MKKWK&o<N z2Bp^(=Nv6VDG^46Ps0h4sCPDB$9X3<Qq~hD@R)mmmdSOyYiOEmyedIXidOA)2O|qD zzCW<wG3=j4uk!Gs3R`-&Xp0dNH9qKFtimOn)BJ%aTyi5T$-`ZQI4Dy9ZXmhyuKq%l zR0}InhXS9dOeuK2g+0j{b?P%YYeyg3td%4CV!)eb=$mo_Y{5ETwE?IlE=1uV>20jq zmbFj$q3ztX5j-T=1_?m^kM00TgTes@2^<b#zkfFKPeJ;S{*#73pF%<10Q)`k{i40* z=z!DK0FOC03q>hRW{E(}jhA=)9Fe&wos|@g)BzxpgMYsoQeF|TsV{KB*ba{dDZi}` z+g9Rttol6b&01{EeOs4_8KH07Rap7A-@Y>u+~xS?YRIi^jFO8e@-bt7<gqR5`T5`e zVLG@sw%YooqP>=6W=`A7gcunzmp+T|sMVra1Dkrkk&f*5{V{7q>ELXt$;ZgO89Ap8 z8593T1-agG47e9-4kra$yw!L)Fvttn&-`q<{TCPg&{Wb@=~*~!&zH*gtwGC>DKUrD zM*jBp?>f=hXxK?&9~?uXA>2TCwp0xL`4vnsr2?$Ug&+$D5GVj8aImVo>LdGkfj;@| zAol2%B>g|H4mwYg|0OW~L^Fl~RJP2v{*7rtHqke}K05PLt83VB4h4DN<+WMllnC`X z#s`-DgmLue%U!J4oXj*nL(9DLkF$*nR|junsztEKAvdp%@Qu-X02c?#J6|=Dc|@57 z%2b2HFfZz!HM(J;Z8L+JXgD>-E2=-O*H1XB&or##*^wcZFeTNGj(vHoc4iIQmKGrj zk_?$DS)ipHHW^#_H;^H;AOe#UutA|d$7W>@m}<Y|R!yzJhbVS<7t&(Ou?br=Q}Ob) z#;9rJTw_iM7h|~Dj)dvexCDLi2GrFuJStbd{YUiJfIy%?f2jZtvaK@!SwLt{n;;HC z7xl$$;3K}^pkCNVT>s~gsLU@8mwE>0{V_GG3*v7fF_%-W!U^X+^9{W4oSsz9I@j;b zQYgBbN`Jd8iIr{kLQra)W!qRAP`l=wq<+(9QDjbU$3w^5Q6Xtaq=a<s`8ry!$-Qwk z^p0b~#;sB8VxtqeXlgI0pldtZhk~nR&mZh8=wRCo@5vur59tP_O~NepQX98>WKZZ+ zYtr~o9y;pUkF1oJZ!og!-+#s6cTiT7vd@)t;aGB`j>Xau(N&4B(FY{+X|Es*<{PSe zc!wP=B^8FH{1Fx;%cWkqOyZW?glqT3FaV*BODIrV;ETEa1d2mI`NbO_Tu+a2Bw8__ zrCvQ??BHA9!TOF%e%t&>`Z4f-j)!I@Gp>N5GJ&jh<?=;q&=zO(Z1;`mRjts-Kfm6U zJ@7^$YB`Pts@3-a>^3NQJvqXfnrw5|KfNnI;3#}6?^gJ6zk)0D-nJqyw!KD~x&A)A zP^5l62Q2TPn;8PHt8Z|OR?YH^xi7^c9cfvfq{v~B@yf?sAL%Pma!_w4C(g1axE%Fl zP0Sc&AAa6G6Y1gni}OS>sC+1=rgt<7+x90HU$JN(C?skG&dfp1A{c@2d@*}0pQ!OD zp30Y24Qrq}S8T!F5*$*^@aOAfSFOg;J2FZ&P9;F<DpAIw?PWVrGa0ho;R{H$udWkT zSOAYiTpk(W>^5&0nWpKu3V=p_uXw{KZl2HYY4F3q-xvIckd$~t0K4bd0mRD{O<?lg z<#g5I8k)=l^y4NL`q72;Ilm1u*+5Qug=H-}@V|hRnbsPf<&o_xxb*DEmBlcij<X3F zcvU$Bb71-p2ou)_V|aBqMBz&E7v(d^y}L{O885@L?adPf$!spU49QwQ#G~%=fK=9h zjLomw0iVKB&9;N89ZTSADP5g{b13zyUAHp*ki!-|uadUSEh@BeuJ>}aG{cF&WLcyA zuGReOP1xEXMf3vFx<e3aVmCYLL_%?Ds#?E8Mgw}&vX6kyvl+l*n~;7$JJ^te9k_I2 zK71%F&ANp14e92UPU3^eYJMN$^<(8j<Kd^5dQ5`ghA4_=`APKiv*>_dc=%}r&_Evt zHr^R8lf{*F08ySIp{GUOK2{Ad<L)j1JwU?0(>ctE8#_=dX{f%yS4-{x6qfDS?}yJB zc#zFA$*n*PHxt5L7pmo`!C7+CSpOz>C9$6qlZYZWmhWw6e_3(71oSMlfpWOGtR~0Z zga89jfT8tq<jqWf6uYRyxfZ5lZ5n3|=StB<30w)ka9^%6jis(b1*Gau$|YR~n}PTh z7_Qvq#9+)_3@}vVxvlk7o^O*8vlo_<y*Un1*qd>>>*>o`L~88|_Ja3R`>s7kQ9bR8 ztw)6%eTL7m3MDZ?p8dWTX3-)(Qq&TS;;FmEA?cx+zBCXH1Mw66G!&<gP^<!%f9(U} zc|X8<HuB-KBgWTn%kyQc2g(8A2Mp;S7XAx(L+B6d72Z`dSe){%b&P@ftgw25ET5*t zRhg2Ot;<^fQhe(2LyH62g9I_z4~#e_g<S(}UFdCKgTWB54soXIUz@`<V^b5?V)nD| zJAs6c$nM99|GH12@R^T1?uF$5yNXcV>JZdk1?9PQAD2+RRfoGI0#wOhPa~rpG+rc& z*fol92d2;z#=7dF=(_n8D(%`^RE0;9ZML*!YiDn2>DRPV9nN+b{$6U%;NXi*mf#gs zp=wcP2wa5?+#JuoDfy6pl1oN1&v#Mxcg;s3Q1kb$yF`tvUWtTucBMT?NNtI@Y}z3k zs5Fio#}QEx31yj0yQ<T*rruD%^SwrXvCX@VC_{su%Ka_%_yq4SKI4ZMXaTnKaWa4? zS_(7q&gMD%KF|J?TXk#ej-O_UhpTd$25DR>={;%P&*w0(Hp{ha8gs2$fW2!=KWpU~ zkH&wKb))6JQle~|x?!+>CB*(^+Z{+et+4nL@iCVzzbJ*e#jhg{a*c}#X`S1)zD-!S zYLL@AjMGZH+x^JNQwdFoq(vdT%3neK0>f6W1>vfM289B#ygg1NrbAh4`jmC-%PUWq z?BosGllGbsu0n`a%>>@|VMYaCU&?3koo7!5C|7no+-fFC-KpHsfW&Vp<^eyUqRL4? z-<+>e4Lu%HE}z12Y-@l<t0`=e9QT=}j)xHJ`s&Kl7$F{p6$p83@h2ic{yjqZ+33H* z$VZ5OF+4Cj0aOp<FbaYfZ-kM=<MRt|`ey+h-g89*S<<Ybpf~~uvVAPrW_3B-I@~xb zHU$tVdU4MBUs~KI<XVS)ecEO6XG&15s;uv{q=p%b3@hcC(z1fRy$U1FuHCrqfrdAl z$%B*DHDQK0CxVNnN_M1^M_EG<CUW>2%s9#LwKq>!wFp*@!5SI^Zl!mEwP{*(Zcgqp ziicT*6)lVL61AKT_qqHCME~-zR@cjXZ|Q(6;yYs{tN`xQCGe_Sk{!d|TrJID1$BL? z6zggrp^2G^6_PY8r!x8ls-a}<*11jtD@d_XXEGXOt}Z?pIA|;m93iZ_t?@F<YZC@t zFf=Li<WO4g3?UOJ4!CgQa-V+?RN&aE1LNHeBV_SM?lt>)#rTDKqz}sDnW{uDwDQ^< zqyU~hZ8cAF{AAX0-MJ?EkT7<(H9_YhJ4v282j?DmmaVJfR}0_vO3p}em(3c{xH#}q zn6%UU5k(~3y<VNWr+^Rgx2z$vuT*axNy>$74(usrIkS|Cp33`AD%%(<mNCHcys#iq zZLDbKgJh8ntMU24IBCqYEoAKRx)K)ecFU^D44qvTTqrsGY4DlcNtex{THcpA$ln0N zR_gIW`3<=DtMoS)U4aB?NbmQaD|qIUR$;sNdXOHupk?<Io|Py6nluj&LtRSqPi-3_ zRxIH_N_)3#;(EbUSr#vI6+uh4Kz5uLI79a6USu>rR$w(F?%frKP|Nn&cc#-CHlVS$ zj{rH$08DTi3wF59%$;Y_2#x4rBJepH!T{q5xbW-G=WBIhVx2bH9`i>-rs$^@X2x>8 z&sH;WPhJ#63aMahpJ?e;zt=_F03@+Zd=|hpka?Mmpbc>I-y{Ta<E$Xy<+sh)C-cly zq?A#MWzJG0j5|BL=?#2|-Sr$y(!gtSpz$UX<i9~KW=v=)R$0^FvE3m%3-LAA2mJyb zyY;W-3G6mrjd48*1d#o?>C2t3HK}>^G*v6{MF9BT+hw3*6C61=Yj|sf$eU1pH~$$m ztR&IQ*3)4+*zL7eR%6X5&7PAbpiHbl2@qErm|i3T=bb7<=twb%wLYK{KNy$eWHL^% z_-CE7oj!7)B+#9%8u(y`(~b8ejkpc{bml|8b>lVa*^Ez78^8D&k^L!8{6o?&md&{Q zda<(nymJ*jDUfW2it-u1*L29@nL$&RGec6yV?ZAqxlC`!2SYX6TNyUqZwJ|$$bqaw z+&NuNPoVy<%%ORKTd}?>Y$ZDGdty8w`ip|TFMM{e|2<eAUUzg4rwmvn@V}h)Z%t0U zTaQ8dG3M)fExU+oqqRa8-YG2KM=G7Z$CCz)m=BYFwaG<T)nZFb106PVWK+uNgJrSm z2URzYE?mmeG5MmCz`-pWNaA@U2ii#97|3>V#_QRXVMD>U31saVw%RfJ7r?#2JXoQt zQ!2|^kg*0qwbW@<c2*=GYuBn<@Z(@lncHn$y@mwC$6=hGPfk$)r0FTs^z4Mr2X1I` z&ouOn34s211s}vAJ_pz=?KcDdVT*(jf}1AEg9QEY73DtTdir?7@k)rC9NA(zP>I#C z4sW}`k<1!);d9fxtT!eZZqJNt*mC6Po6UNOJ2@VS6#i=525R^*Kh;7I@B8nEq_2gD z8{V$?Mxut&Q1ab8Vj0<g0Ewuk$yafmGri2TJ=$SQ?OKEyHG|$s!{@cpfrGT&b&tEH z5VSy@p2c$bMdzNCG@+kV3RIE<mO<1?0{681DPzmAh7@Cn*1v|156j*<z6-q`rlBZW zRi{}EaL17w+22I2x!KrzuSR9j2d!Pma+LA=pDEZBA#P%$F#FfL>=Qj7BFVKhY--m8 ze_fxNP_s5OCh2kpj1fxH1fOH3z7YTGxc_`k0?t2Tj(xzBbg_uwziT=1{+9jo;BQQ@ zpHa$Bq|e^V*7{5X-ZF=p4a5rN62+t?KMo9aqvo6XW+_SI@(p6|G~-jIEUTYU+7WFO zXsWNxYgIUGW-z!J4Mk+WQ6y}=&{LTPMKDZ!>b5Zh89KJ8YJ**Q!86B{)ojqv>U(;= zXQ^y?#GjDN>av}(JgHN+v5r?!&FM!JLE|jXKs_okzlv3dS02XyV!qaYJBOzZ@2*rL z*%JOI&QxPmQhe3<rlOw3UUZQ26-1WW<&+JV1R_XHNxEkb5wbuthR#q-9*!6kz*+AA z%%Z4VItAsA`J!+ibd(btInzmdnrnJe7~4Dp1!$Mx@b4e94mtju{4U#fTA+JD??&XG zfuCk1?=vim&x!b(tus)P+y;SYNkUim|6iOMKbjX+;!19IXS`!u5(t_G`b{W_xPmz< zlEW+*uZS+Ttb=2`gwBU-Z3!>`IE7Rtt?a5Ny?d8c@l3~uYwiA-o>3)X2_!H;#p<*n zF?DOl=t%1bxb7MztA@|kDIhqD(>yG2>2#Xo;JSGhcxWM{=^Lvmkd3(070Mububx$h zbgyk8YEhQV6zty89LRVc+j;FF_D+_t>`pE%hHWT5dSp3gXoC`cKsFlikTp>?%LY5^ zV)n$hutwVFUx-iEtKNw}=Usw`1_<p!Tf@CwWq{SdfBX+%JRkL}Ej%FAdTY=vdM*`h zg3!ep4wY4aGWRRG!lP+6hl1KwcRT|<g`2Ln_L_saa|aH<nb*V*U7!(zKmGYyXc0<# z=VwY0ab_M??pC&tuw+iuYphclC2o7!ju~s@EK+B}sd5vMkrZM|k+mr31x!7<j!y6D z&`nNOg{GdhY^_>~>k(I*sE&;L!oV|Il+W7KVfv1<yJ{YfF=>oFs>?1Li`SU34{j>y z!bi7ovKfhOeU*ymx;TGpk>QVy+JNt?UWldG)OgeviYY<3%E%xnpE{$bk}G{tJ75}| zU{+V{H1^b>DRke684w4zhK0<l&KZ_Ql8H~-NvjCfZ|eR6w^d-(g(c^>#;Ao?@r7lK z8d=a5t@1Q<B4Q+<s*ZY4A`Bxw7xkEFgEmdbMM6xJt%F>)NyHWSN)F5}{3nnxWPo*T zDI{O`_ikY!wB7$x1K1Z({0K3o#NQ$Z;jYUEA;2D6E>G95HM_eEAx1w!a#um{szlKO zAyb~-&G4k`y(wjne*gt66R1kBL%DW~+9k<!dH@o~++CTLzj_(Dy6+`ywjX_CtzLt^ ztAys+H{W)hPoF}yko2V52JTMEZt%0^@Mev$3XW8!NtxfVP@drXZO`l;b*l6t3fe_u zX=UntBt7~_x=(zzYRYXj$F-zJ*@+)SGF>#TBpTKf=KB(p%k6CW96j3T0_RC@<iNyn zjvlR6(ntlAki4}S(U;w}g<fpf)I%mU<p4uUIY_#yr4bL@gZ_4~l_K^RN7cS;!)ak` zL_i%cj`0$hDt=w02tgNWeE>o*&HKpXXR8N2_}=`mhVPX6J{_z6uBI1x52y?b=m>$G zptRAi8@RceJ=HqBGEQ`pt6c{;Q7~ie@HL{Mn*OcFGxwu0!O(ag>??Jj<+DJAuE+p> z=3B+imnMntSj#r@k?$U4I>LgMb;|oNkY!V=T05+ht$AD}Wv3~-pj8}$T|@p=lINmP z4y7;uln%%43Y*_CGh>NN01*k*pzO-1s+&p*NqrW4Or1Zc1fJO01*oh?EP#O1$<u<e zt1fviUHQxThN>hYAG{Xzhxb<a`f3h*h?56nrtjNr>7@D3P!_c&cQ35%V*)b*92O94 zX+_#{#kNI^i0Ic7nL%jD!o?5xvoPIJ1(fW=7U1_Z@k>H48UVEK?_#sZpFsRCdSzFb z$ZQuq#Yu;$@&2kPUV_Afq5+;BtS>YYUAv)sQfQawx0T&#*<Qdh9VpeS&}^^9peFKo zu_FmSxZsnnE#c_sil9SuqRmr~GdJI)RpX*QnP6R&6&5|O=GG0Jw9Z%!8V__vknqbN z@PU^WMG8^Bj!BYkRO(e5Gw4wOtr~>qeTxbnBe@QUZMqdMNCsgn>6R90Y%$tPXG~nc z45nZr@4tv$>^xK-oncaA^Yj};&Im8)+v|r`A{q}rJaeKp2v-*hpCwc5;7mLL64E*K zUGZ41uBK3Pt8nvH8VBFhy2YyC1XH{E#Ui^31~H`R<Y-H%J3!pmQm|i;^Ixl;%bx#v z2uRD%RDj<HiRk`mTjJvN8)A^BHzC31+?9|7%I-xea(@N4+T3jnyJ70^;?Ygoh8Qki zWRDD#m^y)F*#}*}yY{~4Yv@tVtt1jK@@2i)$+$d-!DJp0Nu2F>@7K>6)t+LxdIv5l zj!5hZxlHu~g<j+kS9f+^;ls2G7-tw4n@TowLssm`AfZCU<oNt-Yj6O_8Ud|;@6vy( zh<@K?UZE}0WB8W1gxU11Au*)QzVM40iahHcWVrS!HHLPStzwJ-X9$2Kxg873A(!VK zQaDg`RtUYMCY4P|3cnDXk8vcrH0xUW%1){PW3_SqI=Y}5Zlt+H5gDkq@#G0J;dQyg z8Vf~)Shx>u7d8kI9kcNAF;%;f<%LT?0FY`?D)U^&(tcg&mmizs@1lM?Cy1WKRPr_6 zbQ~h{fAAQO1teUCH&dKpbPw_t@@EtSS1HVaoanmyeSGCS#faQ4lh)0{)-}&u@>{#l zFNw*fM|*e%;OZ{e3cpy+vAlQws5#4a%t0S!4X<;WgyM7UQvwXT*_!*~C|0{U1$<Qh zX{yf+s)(A<yM$ghOMVHP?$ZHnuop(G&fRtDoQaUuQ(8&Ekz{{RJk!4A9G1S=5wkXH zr>WCP+bx#XIs@5@uA1zSc7-QoYj=ZSf_2XHjz^+z2^GYR%aUgdLegM*2pCrOIV8kv z37#=@k_-A3NAqRO>3H@`YJi$?A5j|#ywujbo`)z;O2Ng;U(o{VavtmSBmRR6^!peC z=rwt`hd%&yn9^KhcMcWXk~ta0ZPE6js}!?I1dq)dsi|qhTsBw&{%drZZksWqD%E9k z<(0hGKR3<mVn;koo7Bx>wq?9?8Qp@4_PFCxoGt1`DBhw_)kdytv0i`%CiTGS5V4A~ zJiC$L$gBo<I-Bn7il?$gmL9m;bB8Wy<JGv1ORJuk$%$r~fz)+SQ1Wmf5d=T>u8;XG zpZ3)5GsV%c(6eWT-IBh1RZYfU#glHj4rDp;yu<!~stKkfdTlGCI<`^1PVm?V+{JER zh_5ZMnElPf9U_`Yfn8EgGu+0rU>5<6o~Te<M22m4AB#P(0%aEKTbX-xaU2RbJK;3# zZz;O@fpA}7!0VY{QQ;VgG+gZevGsurNASA_)Ot6+<8ETZjt-!iGkY<3*0-+jX=_fb z%yFPZi>2t})NWM%8VgWGkJiAVt34TB`i0Il@SwuP#pY1<5kG~KaJhh@^*BtfZNM!h z=Z3|0KG*DMP4QoFp=$e`Q6av4PAfS?!qy}*>=7}jxmL3Us?NeuWJLWO3**w;w*67H z=OG>wN=Y;xP%g}wS<vu#_nG!&g&lEaX9Uyc2tsn&9JiY5hoGc_VRqbG<DMa0mh;+l z0+c4s%GblPppX~m=2_WL?Ak^kY;)dhrCi(K!0XmUuOYZrbPi;J%g=fGX7ni=nygty zW|mH)u(fw*c-C6G1y!*2GT%d>a_+yg3FhGnd<C_C5CPiaWBHskkuH^xHAtEX_?1!p zlLGsd4!hdL>6Td}snm{uZJ~a>AncX)A0yO_E=adyiN4ckzN!V(thIS8*O1jqSRs=b zhfT{nTcJk3aO_SYn&M+t+ffq)t)KRHvT@+0gKxulO_}YLCtnsRSkn^2gDo&y>CMmQ zje%KIxiA_T{A?g>zb8(n4nIL|<6A5?j}FS~;XnyXtuCUt1WZ`ohGlu~r@bP58}xqO zlqyaQ6|!pPxy(KTA83Z40W_9m_yBkx$d2t(oN{(}yuN81OL2mO><~aGGauPpR>JWH zRuSF!pkF7^@lMR*fj3fIb0qxkM4Bv)3Wvk2IG(&%eei?qoM#6p2T16?y?KOut-<up zca3#}B3w~fV~TQqNk8U!(?Qpwf3;fCy@z3sx~ZHhe_AI8t7#^mO;-Q!WYO7rk;)DI zXtiU~#bMVN$Eu|Q<QWHkMaudqj#NU_)pre*0wpkb&U10-02HcrTeU+5RwKCS*4e5o z+4%RAdth3N>JkkY%o)|E!Hg@qciMk;rplluuX{!!Qz<{-Mew4+??yna&+oT#rgxlv zow*7|bhJFOl3NV)W+2z>`L}YnRd=gHok)C*9>V`Qm13Ly{gwl`;x+`ICR1@|pV)2a z+7XgH-@5SI+dq$@b${R}7A4QqV7HUL{Zrwwed`cUJlhIGDB|m-Zl+krl-kWt_gS$4 zq(ZOYuKew#qBwjZ+V?Z18UDX3X>tJ(2r8gXdY8XFq!$UmM8yTQoC+u?2Fc#{aApWl zOvfGtZic!HQY%dwB#%IdzX+)f6DJUo*?il@mIHL*qQCd5g~Fbh*3`&?0^oru%#H~N zw}RFoKGoVnu!J3AenW{wMuJHh3RjOBr`96zU02m!_p^|$80h%}Yi&)H1VdY;B{rih zSP{`O#F}l~ZlX&UyDWQr?5DLvZM=UjUmpz+Pv*_fQ$y}OVAxnq6qmZTEKG~k{R|Jb zt82;&GlQ)?Qfe+sCc7H0J&@5Jc=G$hbwowhS*X7@W-OT6`g4T_m2*ZsW8J%=Plvy$ z-gv9YQAn+dk|i56o3FIDnY*<WdZs!(#zPiZ2n9CbvY>xpz@>*j3_<f{Ld10{atK0f zqrq#}WuVWw!t&dG{hZqFv}Puf75plf%F{M^t4_OIWxu|xx-jfd)SPl9E9X@VqBV1g zJTS-<6G$lM3*rJ1Wg!PW&paDNbeBM$>}Hy)Ij%M2N2#b1t8%hMEu^zf{QWIRuRn;n zGaS#2(4@$hm3Z`Eq!BMCnZ3@Ah(zlWhAf{w&W<(VnR$y5ozXN#S)TO-=n$K9;4pqu zCff5jpK#s)1RPeWU#ex%$zEz+a-_31NXOlrbFEgCA!VVxm_7bLx5fi6*#@hF3k$&% z6(|~Y@pw~R-!NFiFf(h*2h)Nt);%K_{ApF6kUU;=N5Fxu^jo}3;E+CPcR()%C!~_R zucS?GZrt&g)}Iw>at0_+u<Uh5O;F&ub><5LTOt8{H{+qlIu-I9qHKZ&Q4cW)Ti?%Z zitBSR_g^`5g5Ge$4kVPjj)P$xp`~fKlAdy0-#4k@1~HK<t7t2md}?}&E9R~u>}6_n z@~MtV8hl2#ez7+AjRPF2Le4{xeazzA$=}uS)AP^-I1Jz9;S|L^^|7R1PzBPe<EXE) zvbj~9nLq)3OcI9kWFe@U`v|G9v67SYPO`-Q1UE`O&<d7in!o$)Y#exnrz<0|rZ80G zl@~r|F@$!1UzISJ;bA%5$fKDoE)|g<p7364h|(KEksBN)9h0@JnV>%dZ^$RZ?==Q+ zfUnqi>6vD<!~C~v<@Z)0&<Qb(_zGZ`edl3+nf13HXbiLx<TD;_V~fZ82Lob&gi>rV z^mgHkp9Rvw`gt!kaIC~$(2Ra?Fos<g%6w369O1K)kyw{m#}dJ#$lMh85})dyy=D0{ z$*qD^S&n8SrKDg2cDu{|B*`CwK&)|{i%2As@CKt2BB~uZE&zOiEz*Z`%RC<JV&n!l z{!b`RYG=INHYJ4a^iXWDtUZM1h|RqWB3OcHxvYXVJ3Ue^h#>$zZ^*z_JMmod-6OT? zP_3}Wl6o4jM7SF`i?fN-R8G+j8&ZGB^esm>Uapy96shIy=rFvkCm$VrP=dfc)Dfwp ze-f}j3DiQ(j^M^B?8qUcv%3e(lv$48oQ0OUm_0G>ch`@#81;>o^+MGS--{u6e`a|% zANR`Y;<z><2a(kE9Y$)^3X-J#e0Cw4Uy|8wvDsvSfd&TGAuAww1hZx+^EE_Bm0pJ- z@GyI-QsZlxW6)XZnw^I4Y;0%&5L3(TCw}(3bS-?a<25w(jq9YMyM38PZg~~iiYj1u znKhPx)Z0w7Bez$9Y<|<>P7p{t_<ipkbM>@K)&kRVkwNrm{c@@5ZOY0{reJih5oAd? zu68ekM}+<|Zp7`jE|7Ghc0M&Bv}nVVVipCbSR&IIPVi92wSQN)WO8?m<Mc4Y0ZHyb z8PS$TFQ{Un-JOA9rShsGxvcGz1OP5!4&$qJouLb+0vnN1nzn7~^=Bt=MO#w!BTajR zjfNn`qHPqCyEeALNiGV3WzG7@U|6mSeIE+BF>o&Gq%NcZ$|ZW{4Fn3bFIDV)VP(0L z+4o7FV^%eYbq`}aXCKZc$E<~d7rP?z%{Jv&Ha&Lt!^R;{VQJG{v?lQ!t~||MtyPHL zH~)SW*Ywy=T7UZE|0=<XCgWck$?P4(sCS-4=v0e;N)#06p;%B5f7Qb1eBha7+^?6@ zYHBsz1<hM^T8(pBt}{W=O+nxjFJ#5=KOsRTfqiYi;GWlvv^;v{JD4>!n_K27=DleH zn*Z2R_{;YPZ$Qm*3l}Kew|NC!1zhf-egxwfM)@dS>2LN#)vT<$I<lQi)c;MdIaQ$( zabyD3S<kk~tY^&6s{$B$xH$ap7w9C2L@KOe6%~FFpF$p=wi}<{SH+^`a(JHJc$`p1 z1pR3_O6f^^NlgX_)2IcOvX#KW^?U49yOJ!lP`<b1P!ZQrBUR$zWWm(OGX8TfnkBX@ zLkI}Id2m&DTl;lD93&VzPddxRHW1~<0umA$&u8s{ZlXrl@}kE;OC)1kGR=}FXHCE7 zx3P-{`58TI$v-i0I$FAhjmjmpS>7bFs|8k6XN&Lec`_KA_BAdj^2J2$B&xV5(HO(z z7d0xMtobCFgkC8cFQxbfLRlX<nb3}cClRT_42WyqSsTt%1-!F<{)i3!eL{^4G-jf` zD4}wAhY{|kdYjuxrQckY0a0$95X}fwZlr7g#{(JW$)j5mVOaO;=rNLGG)h&FA3N5B zKqV}bP{nndaU5o&Hddi1x73n&rCSEQn<=p31jtjuTk<Z9*S1sT|67|SFKX6+P!2~$ z5P{`04(x<zuk!^%KDo(X^{l7nuz&yiQHL{A*?PvBNvmp45D|kbwsh(5Z;YRsuXE9w zkIU&D`tt_0D?H-#MS?dXG!@s?XqAPz2Y6sIVK3i=OO12}wlUDhmL=nf=@y61X@Pe_ zwznHZBq~R&`H7dX--6p^QbT2#7dP$kuIxot&C9CCfxYJN8^?QuAvLx&HdVdA(*!D5 zo8;J;O3jwc=nICJC5K8wTIu{$1ak`wLKvs^SN=|DrKb2IyKFfg;kSx)55de!BctRv zU`K_^eX6CS)3WNjhU<}P6O4G0udEHl{c67ocf6ckxZO#J$9$t(xbf47ZCrnShFiO0 zkuBsYo`HzH8Ov`&=MW#ohBHi7E=MCr*3XzY`w7CRTORP%1(f%kgH;Q~h-x%m`KBa0 zW))g3rVJ*bekpTplB7zz#Krdr8K!~Bc+(QZi-s?)Dy1ZWfw-K{#+PSc3uNv0O++{d z5ZcCh$Kg1Z$f;WJJ@!n~;&kWT0^UJY(rO+32eHA*b7LWJ&TA~)`<AYh%xiMc<Q}Nz zh3#_f*Kx|9=?5T9Fkd4Ep8VDVsM@MZi>IiSJV+oX%|z{gjQ9x(%8%0$l8Jw&)THQS z;T_k~!2y=++snn|@R{FhQ2b$cmmYD91sz^X7b0`0HdlkwpQ`{l!gv#8lLJv%mqFv1 zSFP<hUv5$A|01y%tmbKd;~jXxcGc$dA`YnmEtuq`+~y4e-?ddtxdzeXV#hU!cSoAu zLE*UM6gb^)0!8AIs2&mKE#Jz~_P>Yp>R+jD&9)Yx@$gI8i3C1N_1W@mV%L;3S4IBe zd;a#Xk}!Sz*hzNywMw`Chu1RO(6NdE>TbdEaA!3Octqc~72AMG3(BCEz=Yh}^?eE; zkg<`2*9NJW-?rU$4)_l0KNse4CKQt3D`GX1L@t)PbWm@Gz(Y38LFUdH^~{li_S<0< zKyiB!@247$4Tfbg)6XM-t~JrDG7>r<<OQY$Dy%DcEcKV;@A01y`{ms!tT?Exa*_`< za9CvrC)mCPw9f4o&$b2L&?Y#^>~rVaMWl6ru(;LAXU4>Cms-}c2}`CtDbyRKtaP|5 zh<~+=Sw<bpfN==F)Is0hC|kqE`v&Y0ExwN*=TJt5{XhaxtsNF?BHK}ib1=kw&0XiH zMieFGRyiCQu!ve_)EXTQI*)_}>ZRQ&9qpiuQJ<5oVI6j+V`_j3=^}*JCGm#nEj@;^ zNZ(~7)Rw+FP0YK_2&W%sEBex0T!c3<g~ZehjJeCnY3-pw)d6l8ji?9rmKmx7u|Sa? zv=*4ns6|}Iuf?W0=VV(~oh(vP1+PZsBn1^081B}f%V0M`X}6<^p(Sw=%d`@wMgk{` zF4Y0jdF-W7ZU$v?v9{I`V-VO@aK~{o;@?S$y~`PTI^$A=;_Uu?E>EluR=swH@!oL8 zCtJxIFf>@2e;#uGWmA`*c*4MCyR<e^@v1`@N?6sZliXljhF)#<>rsgyZUOr&qI$!m z64#K(86lK#Q?gd`ygFaZojk%9R*2qb2E(4ZS>x2T1%j{WnUdWwg+R8%+Vk{g74@>X zp}l>O6gRV7G%h-3g%_<QbfU(>uZ8u+V&_o3RRrEPTSzU|^fQJ|hkWY<;+9jh9ev1q z#dZ6OUtLj}miy5t$W&lO6_o-cGrmP!1~ux$DlRYJ0oVfWFmAwJWmCTzhL+HgNW%<< z+<k*jONS#zO&eo8+UxRqN5l6Eq+(aCONmvC%W2Banu{&8!I!HPvp2}HC&#(aRJLI4 zR_{p>*m@IM4>$Y&&F2*xYq@vW978wC2UKr=LQ>0ZN@Y6IXu%7a0PKqJexu@p>SPA= z3c~tSKOo~Zn(%r_(#KKx&bJ+M>J=L<jq4W7G&A3KCn+A@xW(w6dI(~%Ybp?Vnr>_v zAE0uz7;dJPa%_Eub-wNE{uTlyEwug&3y3ID$94HX%+cg8Is|qIr{Em3Y;KEv1zqS~ zTwnnpv}a69-UL(ip7KWzv6tkG%WkoeX*wpU$6K-vgF#g1oY3{B5bvp={+jQ^sE#>I z5+ts&uP>M8t}mV;<w6uV{^LpxbHS8hOwSo-4%f0mBJX>G&>7ac_-@QG_5dFyyMJe& z&LH4|rPH9ehopm4pXLxwt&%+Fu&adbHNgb@z-|rt3@3!i2s193tVIoY@jbRzmqXoC zI6Kys%zEb3<v={ETQZKySx}gs?GB$!o5#&X^*!6!)_CjU&34i>Z9keyYH>+T9B%=Q z755ElhkN&O(P<F4lZ}Y(Sbl^7Z6>iM_1?$UAqi+^Sg8==-|5UD36&ZoXZ_VVQ&G!V z9eucK29zWYQ5uoaaKR&t*Uu@mHF8H^bA7{`CkVJM0+G2^9W*?<RaXfb598&2Bey4p z!lEpDM6NpK;xmOAfNW`dO<NfKL;W<23}{t~mdbE%f|{Hg7eHSpeTDc{wPiNC?IIws zmV5V6wu8RTVf;UR2*Nv*A!M}k-BCpiVPqp#yha5Wo#mBaf89$mfN8<y1PK?4Bfu6s z3PMg-^O*STE8>(9j}r{)C%HC(<z1$dGgb-DPSt8=akmcl^6Nn~AG(omKt&6(&VS;a z2_0FwLOw>I)Du;@_S;!N6t07zsYP)1N%?cl>TYvb6b#3rJyBCGi%K%BJuZ;kTud^d zJCiPRAZ{x%>wty|nf@Mkv87d+vAKi(E`u%&;~j1l>6Gt4pM6a+w4hnO$vWS1g9{s? z1B4bM^3WYxTccJ@y3G9?>eGW79(wTXGF+30H9sVcl5u}4O@(x;p<|kQ?PO5cE&mH1 z@4XV|L#MHohQfkW<BRVz=&gkOvYp`kZuvE=l}jg?B-;u;7dj!EyZ@|(x?GDnz8C9A z?z7ejz9c8#)ag`AU|jP@0E=5~n}^}u?m4e|nxJp|e&?4DUC^4Di5HIuD^Cevw)IP~ z4@ykvvt7Z5hF17inpn;QT*#GmzM)-v8IXKIjZFHr0Ev6b;nlt0pH`x>QGqULb0gne zcpyB#FpvLQm0PAzQ4eD1S;mwMS#IgZ47wD>fv1gbyVad@LMrhzYX-{(B5<QCAu<C` zh;$}5xulj49q@iu47q)WD6G|UvbV65q|K@k0mrco&POV(p9EUmH-z%TYm5~2BQ7gf z&dSO96h3@<x`Nz^4nF9xG!BhHu{<iEOmoXrHv9RqcfR9pch<^;MZgyz)fokL>4p9{ z4?4SQ_9QK!4XF4QJj}?^mD(;bGpo1~P8aL4`j9b(r=JApR=(eV^@&26m8xP}n(`f9 z{)GO^rZTN9wilgngL?;X&Y8|}FvEHO<y6tIq0;SD(84H}#)N!-I`tY0v9eZQ;`e%~ zCjk;Eo}rah=^jF6`Z>2BAb2k6QkPAX!)XdP-&Jk~^)i@mMsIk(HoL8yvM$nW&z5%# zD9+^vDhUjGUc?=hgXr-L;z`j4<io*zyD|ovPTLaK4aA{KC5-*rYFV8*H4v%zbnJ&P zwO(rjMPdqq!i`K^?wdo`TbH7X`>ygUlz}}Q0TK8s^!G+bS=0MUytCfNu9Kbr?SiY^ z=vpECZ@liIWCUC)$!5i$sSe>LtcLUVVFgV*IXRTq@XTJ5F><l2+QZr@E%k!PR|bPN zzk_$zk!+s_5i-|sMkur*Y^769ttt5uTHdILE#~irI8$??-BY<>8Bt-6xU(ooBe9*A zGUQ=AlDn|}nkOKBcp#(mwj8;4pVZfyx+}{hLUfdw@<@a>y7tIha7}ze$hUnvQ*X~1 zi_=QA>_V-mZy=)AWp*kN748x_MVtJYk9I)V+6^VVJwx-t<wF#<+{l`75-}pgzwt(% z^%2x~A0}e>5rB$3o<22ybLE1F5+DXUh~iVBCv}0vZupqQz<<~}7i8IS6o`%yy3zYz z@kG}lIiZ+wzrOWzm2FudND}at@P!D8`Tv*pW99=rQU7#W#~O2!LOSw%<iC(}s1?X1 zMc&@1kvGn&f!{yu+~WTj?Q5FJY_DT&sot~pHd+p{JQ|CtHJ&T}+Low1XZ=9DZL^kx z1DFw&ZlbtI0e;JIe~^ft2msQPNVe#o-#}u|nWCY8b!!)-EZSGmb7q<cT~nVeFf`_E zDSQifak;HGnJb32t$nr2y6pBp^OrG7jXD%lze}e>LhrmK-7uI^$M1X5MDgI-fUXlU zgeO-u$E3I)=3W;r94)2y%%G7bnNT*G?Va4-uFn5tV!Dz#41#Gp?72PaFCV?7)q!pA zOv&6R_dS)D*74U5$eSiOsXloujU=ghEyReLDbwl~`AEIdULTSQEt_ZHWyyXG0LWRZ zc%3(IY3_a_J7OkTO%F|j+124wyNJcvJjdQevx#?@JG%3%CM95TXkcT{RrXtp6P1E2 zgCaR$5=7Tf;=#&=qa)(%E=kBqhYwhO&kDWbG8Xg7R{(t8QkD{*{(e_NSbb^vi~709 zS-bpatO)Bo95VHY;G`qIAly|rD!dflIqb+&E8dkjAVWFSmC_n^2B+i*JEu5yCIK@8 zNc&Yeoslu-s$_f{75T8%s+@8@^Zq2PVHD|=#M(*HJmEa0G!0Yp4pYa2^`NdDiFW2? z#MCb34AI)Xr0$zc_IN}6bV{rk8s(yZD!xMeNB_nVWB1$3YqGNWOToNifyY9UzmPCD zfdzfaRoC$HtE_K0a?r2q>+H3Rw1Q#A$bz1JtKe8It6(q5Q`afZA*Cq4<(gtR3vlb4 ztoX?bQex7%nVD+88qeIr2K&@iiZ+kuY*U|_0*R`H6Y4{$PURI!B-XCNrge;Y#L3G( z9K>PoE}FU}^ltcG&2O;^raCh5T;=D>$YEJsqPKdZIbraRcfuX~%$g-#Q#eGZ_HJW! zpk3{<_%ts?b(Ts^y0Gd1yQ;!0jyY#tZjO4@WN1Z==!N+WJkBeIoo{LWXW!bXMQuJ1 zz03G7)NrXf^a_ur@9RoO3y8^<mpkK`66SMSwqwdLD<#<BCn#!oFr$=f$FuPZ(s%GR zwVkI5CR2PhL(;!Zi?Dz;J7ff{iS|bZ1A!&yw`pv)#KuBaQ{)DBjZYKq=`pfkxO|My z*jg5=O}0)6wAGd5*9Bz7*Q``8cV>Hg@~B!MD)4m4aK70MJFzF(5U*9r^MWZ=i}js8 z&M*E+Lx7NW;5L|U!~lYNYtTqgkrtCv4n4^spdlpJA=k2tN3t$|vMBoBPg1WZGXl83 zA;<=Z)rRts*SqqedG`5R3Z;UCQoj~nOlNmYF^GaG0m^Q7C!CC`i&u14aiGr~ujaR- zO4K!%{h1X;xU7x{@k7XYQl5^<TF|TXig=x$<8v$J%0!JIs3r#phs^JCiKPzxgqAEB zu8tpnJ>K;3-E@Lj`Y{X}ctHRsaABeD?Tbpfe|s&jBQb4$+U{iBF2@n|BD3*9w75>} znWvoY!S&staWP^zJa=Q(5zeD(>^<W(6_`RS!X(P<+EP|@l|6#-EO+5S8<SRJaLy@Q z+9MV!x5WFrSZDm&3W0^hHdKFOi7L*uQxh^)&PS!;8WIHVVc8$+{%n)xVk-0E@%U|Z znQ}X+saB)WpWc-0!@N1kYyrYIzyH3;i8goWFg;9^)Upt&zD-rrCGQwg{jLQB+;TT1 z{@nm1S4-mKWqVTWBUTyr+FI`4PXC6lwP~|{ZRn7jg2QdxMqB;qN+)lcj|QJb+Ci*_ zb$4(8lr~qqf*4$S;*3Xi@0!aB#V6G^@m{KtS8Ya4tEey*TJtA1P=-=J(B_H{Kk^kN z_|Fvi$+YGUO9gPV7Y*4i1dvx<E>K$|df|6hk^SSEr=e;N`8v;IUpr4_cWZ<?d)Sis zV|0L%4UwZwAk`Tv+ihOaq<=Ed+VhlmsUI!n{?3kv+Rj9;6ECaUz`x5<qG*d;|F!5j zx<6k-ji*9er5smZxB}ZbT&@)Zh|T5FsAzA2b0Fwj_yEl5jcy6it6vyNlIFRzt)4#1 zhsnB<*<3Sp47090+$#F$;Cx;ZH~A1NI5`p;k*owl>rc|OrEeP+7?Uaxx^}pB;u+Q7 z9Y}!wEGRhvUq#eo(zQ1fcykp{Fa;5cOo1tLN}TRHdgC8;EyGFA0Rs)oS^aXzL>JL* zym4a?1alAC@!k`w+3~@zD{q1!Fvvz_x|6e51ErmM^xbIP84-uB$9G#A?n%>I%hh+3 zy8!1)&Xd9<zXLk}LDo|$ITG9+PFO(r`DLTdl`J-U>PWNJiFB$*kCge$vDj(bgC;hq z$Q%|!B+o$mme_0vZy$*p_bV4@75uI5yYUB25pdFqgsMeVvi)&6f4~c^x^5BQ{P*}1 z$6Y@d)(a_IiL4imSJ_Se1#Ht7#rVpCOh*kZkM#EeFFC$Mu@@!1qcLKmKJ~#3SKB_F zyDik1QFPInlfMzJj#>-t&1kF0>599^fcQS&((p%BXr$m>VAHg3`xAjOJm1pyJrc&{ zV16mPWYtUzQ`f6LyflO1U>fWzBu{D|8Y+6bwe}HGx*ceje12y6Opc~ejH)yp?QsK+ zZoH#V+SQK=i+9a8MfCSrywqOn5N2;0C5|Wf@&kMgqD{p@JrdFE9ftSI(fKH$<GCPT zM#JmQo*0+^@QG;V%;4DjwSXS2y}<UZ+@W;8CZxJmje*=Y)A+tTf>Ooj4=R2~+T(fH zA$)55pFhl#evj@?&NGt%Up?qW2$eLl__qc_qjlXiM;canH#xY6h_%C$OgI06IUC9w zopfNcsDwPhMFL0(cAPr`ktuxE|C}cIQ}v_0Qn!j&IJ0mTGAS^s?in&&v-B>4O*$Q{ z{LSkh3dBge4$oOKgom~*u$)|7AJX%Z!$-uwQ%-s5PbFO=IHA#H+=}E{t)6+1hu_^M zLs99MrrIf!lJoxOr?Ouvg?Os|k3E6dOnSH3Q`!`98J(i~mDu=coD%(4_%-TpIdE@p ztFB2~Pr|P<r7*a3G`qy$9yH^QNyn|@b=wNuD6+8o)_ri@7i=iINxucZcuW4An*9F~ zhZxuU8=kO?OeQs0VQ&Kyh6m%*2a5!qH@P`+cI#bV${SvGEkq1EI)k6-*&Sj*RKZm> z$wJR+O2HIrSsDc5%o?A&<wXclf|)~bE{>`1mEt(dg6-FEsWOXUYaQf9E$6*EOUKp< zJ!u7V>g}qfELugzK#<kwc#zCNe$lN@E&nn*g=);<wbf#YQ)>I3C(BQTz@|l*Oa~hA zr4k+EdPNP@d^ju{QX!N_?aGCyWp?=Yd|DrRygY;`RCk!Nnqx2arXxyWh?Y&l9)RE| zyv4&8_x-wU>Ds&>7SN9AACwkFG;&lgAzSJ7E;ZeKz)RBlJB(ojv%QzHd2>rsdR*Sc z^-ypMm0(5o1f@_z80wXF7wYd=*XNBR$p$e-nW~;9tjgBXDaOo_R>W~zx-+tR*0GXQ zfMZ+HyXocd))@q4x=Mh-!pCl@LQB^D{lhue|Ii@>S<cub-ngFl{fIp0LXT2;qFcUB z&nZy&6vAv58VoZ1aZF;>*Gp1%E%1E^_DNo=fey|()Q3A$DzOZgk~=(+@)#YC#<PAl z&#hDyzQ($duylE{bQi<US+)O}<;n@_rVg_8l8w#JcjzNkA#^Ov?!%;xl_s>e$ib{U z-auy(kx0*fyZ5LXl{WtPPW(O2>emnC0zuXg_Av%`>_u?#q9$-FR>?@G@pag3ex3_L zFZR16+{{VoIjOLfQr;Z;oK9!6GFxA!oblApJNXaeV>`$@vuz;ztv-M0yd*Y>$@QA? z<9yu@39&O(XFPlih`H<lf7<f55i$o`FWjXsBLH>$sbEuYJ8_lK)V8W1-+xJ7*ZVod zHY(9(GN?p*`UyYS)2B5sI=3kaeU)33<XEd{hh$EsCL+q-p*P=Ze*c-iM_iXHJYC~{ zst#Tv)3G6vtL{ttq4slPQ!0-(0>^b~<b+Pso}QKogNF^0m?y((DAbMXExQie^3$9S z7m8th*P6NQ_!xfVWnxgWf|0-|yH*8(`B=3#?1#mNXzZy{1btecM_BMeZZ{*RNt9SZ zpScIhKEXFB<=0MhGu&0G+pWTHC3IVZ)t|8rQGkr8lw22N1!mhqwuwf=h-8W*9J<~n z@$1_cC%1B<ICB^?##SOkqeN|0oJ$h*f;ya`bRig!<$zkEHM>U|y;K4S;pu0V9>%!L zrp71$dx!$OnRX151^|(Q@Oj_0h2Yf5L<cD^Xfef?F1Pqe3E&WK2P_MRR4H)h%`)Sz zx0s=|&E3qe<cy3=#m{}(;}!yB+l+^9@MKYN!GBX`>~CaHaOaS&nq}v?*{JilDoHG# zopV<i!Nl9TxOsUa&?rv5!d+%sX_hLpqg3BvLk7nd^jjqGJBwp=FMHP;A^)OgIeFWD zoL&kxm5`+WdqcE739Fmh7K5N{Tfx!(>R%I&`O1D$83o}*OxMoW1OGOnS7q|N&Wr}F z_>3OnK=##4;fKTAB2g{~mTI?5ue6w^y^C}brI~=eZ`uSfLU<k!B>Glq5-^#lpJ@pp zt+7ekeKTI&vOt;kr3EA=D8<f=<u~sG_17|5?|M-3l(nL7p1df$?@49BgIU9{%#Njf zXNvu~Y_QKT!%25dsGPsn;1{v9-1G8%hRt*~E4fa5AvIAlCm6&g8V_HP5gNGW82ZIN zc1jZs5Qb7nXGIph<6xpUyniE+R4)T@I1Dsdy-oz))yiHOOKSqPs2O?4&r_4zMbA&7 zBzExypRueHQ&ldYFp*Q++dMSAtWO4j*<{|dP)1^$PWaov=GKf1t*TS>ro7At7?4m2 z2I<gnHrm*#(*n;ECxe84na>bUQXE5gV;RUDO~f=dlHD<}oFS|uy`|t}8Q3(AL-;Lg z-eVVRyib?X@Ro{)P1sP>9#xs##yyq+Ua~L@H^@;|>NKw$e3!WLLtgLXR4zQ%lS}wh zzyPq!^ov^iYf*fiDxLy6XkYiA(J}XLhL=rR!6~Kxt51rUd+Si~!qIch$|z)l`2Bu} zcFRG!ZJ3%nX!T0;kPejT@rvD>hPY^%5QaqtB91@`WBa%&nz+lbGyeKd2KA2&!f8}q z>ehN%oYhw!{19tNxr2c0Iu;VpV*ZvBN|dG#I^^#cq5<2!$7Ox2M3Ke{pyj4d!7|`L zn=rDSq#VZ;Be0oQau@FsT(nu66DNY``{h0CmqlpL;S)#is~s6{Q4dQ)169Xat<U>r zMx_u?xv(bRTh5?U?R!g<I%HK{(+5n2gqxoG`n81zb@DAVbo)Epe6Ne>LXjkbQDKts zCIoUw@i?yxLy5D>CvT>hGxvfY)Qxw{bPZP$G%TDCgZDbJ_f)+^5l7#ncWt#;P$Lij z=YWndUXxAU-)b)aE0`gjdu#z}U5{JQNR1TdEKDv^AM(lqX8D!}wYv&Wq?cOJiPA!U zst}YAn@Phrndv5zzlO@+FT07X5(QLGz0z1-tN)ynnqk|=7Fj(`X;PkZ0cW&$qWeZu zH|DE4s7g`sZadgB40j2S4CSxY{)I?Z9i37Y3x_&+>3@HKp6t#sXcKCo9D0c~yu!_2 zejbGF>UxN0*j4qVM01-?G?fp`K(dLbxUBQq=%gKFswA0|AnmC*%BCB)N=~EFMXf4t zb8rm?%k;;oq7vw@a`>;l*eyis?f~1Z5;8<}g<#xj`%ePdcRDc@`-z<&1L&yz!iOu= z(z7ZL48ty7q)AI6)32YHr83FGCs|XSzFRR3Ee%$zMt0w$?CA7YxJhexc|1(=a`a0c zlnyUL&55Wz7|PfS%Dk(%athRUbfl&j=lV7#^4oSJv(1+IR4J6mwt%ZbsZ(tPGA-@E zWn@vv>5pCGTBi-ee&&tQ>uw9B^Sj(@{cW{I7lluL#|2)pYd;Ze1IABq;q*1`tw}-s zBnHAyb!jY+51b|c=9>nw-Q%1Cw=~!8gfl5|Qwk6=#lHiK&t@07pwWYj@%M!9j<Xw0 z6%WZ$o4H|Ej_6h4NU`;z|L=kv>oab^V+6_r(5)Fw-hG2LT9Wn@)@xy|H)%<tL{<H5 z)+*OG44|8E-`o52n2?tNmDkeSD8dTVSUy+{7X8f*GCzcL(`(aZ4KwAfb?pgQqcX$c z7`1HIWUv(~C_%UuCpJk-MHsGXFkWof$?ETsur#G_-7C=RA$d@t&$2?UN2mqh;G+ZG z4W9k!*&jnH8d!64n*Y^rCl_d$O9$>T(A_Uq`mzzod}HXeRzz;caK_d+8(KkC1#xSf z@n_DbVbPyOIh%Oa1UZFbI{q!F$sova_5W7UACnokM{R~{mk8T9F#wqYTu-0TtpS|Z zU9De1JkbEJ|8<OBB&Stu>KL-1J&jTViq$>Yxet?}-icq%vE|sfe#!NF%718@R%3L; zS(5?tX=Ec^I~4yMQ{<s3B@EfLsxc7RaNS~<rU;;8Wxn^FH;m2QO_puuQKNx3ICu4x z_$eoE86OL-!lyY-S$*gvG5sFmF#K)6B^v6~=6iNlV^=@k84+MBYG_fQm*W|lzqU7( zbMVQCf9sqF`en{+prq|$%vW&1-f7lQNV1>07G0Ae@9Gb`>)aj~3v+-fGTpjVQcUGU zzqaoO3Z1GX)u{3DelYxnD6viPzhaj$=U>{9#UajD!9_2irSL^~21*F&mz2H6US>Wy zZBp%r6DblfGmXniU5Jb5alZ)k@hQ*Xy!Qoeti-V20&Eyn*C5<HJG;uyjpsgE@v%*Y z!^`TWmR@a(t<k=^u}`AleP|wg6MP75R_4!z>X{UX9&&)_6uRBv>_ta8%qNG#`7uC) z`j)3b01($z7jeIh1Kk}wo7WnGMKIv6Wrv2Bi!Zd)ArY6|uPVdeHEt=qPVSIcwTPVg zKGtq+)lns*f7i=Dmso&F{#P8>AHKZ}<u(VoYa+g9JgAm$E6x8LSv6Ok^_cgTku)e% zGwQ|~U{4*15E=_1`v;!ppUtzAx!UX3SPVQ2IR;*I(4<La8Av-Z@779r+|Gs|*jD_J zk8(l4HnJ8xU@6g+l}vj3&edNcZ%3AH7W~Yi8dt9y<+OP3D15O{<yW^-AJ&%X{Y9Qx zcCmryW^=4tQ!4bv&!iMQ<I|eTcuQu=lP$|f5SAIEs1;MQQf80I7$UA+`nS2xUxWI1 z)}x+lJ7oR6CD5FSCtcSa;89l=cs$%Qsmh{sj6VDMtDV&@^Ump1CqdXj!DMZ`9SP6> zWGLCF9wK~5r)P%GnjE);Yf%EubbWc7loJ=tF5*}wtpRJW`YX=kBGg$={YyO0AGqO= zSVS?!n5^~+I8<{Nq(-XVUMo`njd6D5)MK0tbD^<;lK09#fJ;q?XimAObH@%Qf^bm) z>x7cJ{nl%WTjJP=hPKe(x`{u5>Jx%UJx!LY=B^}BwiC{H;#!uS5;!EOVGsl{#SL<~ zkjV*l7;M32abjuslvCHXX3TG#hqjlx*)<*u0kU2WzS_}1EbDJPH$JpYM_Up^iwB}H z?x#X9bmA(?@ZuFe*+@d^IgkZA>QXvsBIw$+ZeJRWT>{!`n!t2dDq~R_kSoUaAJTgq zd$<$q-BMH;E|PSPMQsZ>z?<#Ly9|XsHXyRzzuU;lDTzUwN1IXV`&DqqSb2#}@vu;^ zz5&}tjKy;`=S~3_aVZ}onAh6Z3xb{Yr`@!Cyr*w=ZRRo|zuXSEMF2TK#=l)QQiXIn zlYp(n)Bd@oEwD;Ql`0<qdj)<NBW00*PfCh{`Ol~gVK&891iSKv?DP|r1g1WTtNm5V zB$p{R4{b^nD1qu(r$3dY0CQ;Goj^F;&bGS1f>$Pd@3jB3Fx}0ZE`?bsoYmtF8mtWz zudvgM@&*jhlv<4<v=*`6UN5RCC3&mx^k1qudrC6#T!;EIC~KMzXwv;Qa%S$8!=dWU z$=KVv*5)b5HLiQx<x?q(F&dp(?6PP3Y0`wx1FD!+-pLU<!+0nS+dwluiF&5bl&+O) zj`a>re0BzbPKLmS@1h|fNHtSTp`tBi+oWM*y+S{1T*(XfIQM&3MfRiT-8tXLZS5D# zZ|A-3^X*~&;nIne_V{IYxG23>BmJuQVaqhaz&X8pmNDhb*N0K)W}ld(%hg4?T>AsP z!`|InHcR9~IoCyeZ5odAY{oTOf(Au<4#HQ<+30F{#D4!tUQh_lnYm&2IEP3A=~bqZ zCf<I%C-D%e0GLKsduZ?s8j4u|y7^*wgr1>670-wfv(_*3Wlb?FhRD=-ih3(KvLbGM zx=L(5a}cqv0TD6~tnVjwyyPJ3nbdg-SF-nd<5r~EU->>4A*v69;WRDDwGh6tx~}UY z5^l4y^VlhnN1G|~LyIhd(iPH5a%vV#HXFWLxBOmLk<S=(qGw_ecB@Jkd}n*Su>Dz^ zGPgeaOU31Bbr#5ok{d8T@}B5-*}GyD92Ygf@SDT;CiMVg#%Zo^n}UN*=(+{eiGaRA zEnakn!jcGs#c5J|9U_rT?i%!fiWH}~`g1cIC~RTi@GaS-EB{#z<LfP_lIs8OVCqu$ zF3b1M+Vp4cfdsj4^T@ldV)*1j_;?vX(bRm5Td=GQ!491nXT2`?yK9O{`tF@^RZcto z`5YxaVw3XGO#rFh8Zmw6WBW|;8S+?dH$NG)*K)$$wj7k{c=&rd3~|dm)ZRup)@~?) zJ_yEf2F8_;$?IBu@2dh6pm?dew!CAiEv8eR|2-C&kMDi$mS_LBnWyfm8>>(8usZ6p z-sI%dS3eg);Bd2VEDB;K5-X^AglO`V8if)%rjtx&9$)5{K7`88q8zS;=jQmL0R8Eu zxTS}X@49&bR^wl_M_ra>tzUqN2X@L(^eLpr2@ZQveuy!1>70+$+9>v|^>L<%#L)pC zq~DtQyUfUC;L*B9E?UldSstZo43G5u1nCftZY_tZTIJ=uQyP*wW4yj4wPoX1s!vs? zl@<{EBQ83ZZbziJm8$k4*SA+;{M1F+d81Nx7o4$OWsl4LQSB|;+*ToJs`VWL4K*x5 z<K_$?GUObtx1Ca3T;iB{Xowr-UgXUNdZujvI~mLH?0EUsi%u(!`ZD?lz(m7&w<TZr z+6Sr05%srJ{FlEY>aC0iIykv^Dme1Zb)x`>oUG1H-ZB!|EDn>5O^wJf-D?(^@=Fy( z{sff?MR$tp)ftb#8F$PFxTccm@FbI@-~5Sn(Eq-^^!NGC@7ZOH1({vkAg)gYtSmZC zetw^}=%Rk41Y8~!M{#MQ^w$jLeP-b~fQhI0s+>u?UxrQ0%>NF6FpB6f#Mjm%D^5Nd zzpZ8^>(t#-P2$Q1i{WgON(D<Y5d`RpsFDrdBZjU>-$4fu_F?DP80hGOt+AgXqV@em zehLQXjQDJ3)0mkC1ybhIO3oaHjmbXBv%^xfh)OcOn0zDvo$7?B@AuVqOp$@*jc?A{ zcomHLX#`$;UKN+8=ZZnaR{!0&4TI2X6bUJ}>Z<uwjA_Yhyd7gCj=Rb<u{sUvn}|PC zRiwz|U62tQ=E0%*1)HMH^RQiXT%Oq4I1>~-6RZDF;aaQ_4)%HlY%*|!uzS_WXQSUz zmJ)B>#yGmZUt?h?^ma&d`Zxr)E{grM6O-+&h*0@0fiT7lyKDyR?`!dI(?NPDDv>Pj zb)1#YrqdKW=~KB$1?Uc<%#d4Pt#Z-PEUDv5F9|v|ogOc*r?GUqOdf5=KHW!5#cYmT zW~KCQK_1iaoPhAH)~p$h%V_<&RU2a}m)yX!mc$Juf`t74Tvn*J|C)4qr0B-&?cDUz zfzwkEL#opKn)y*XzuGD1;fTMsWx>r@i=rcS;%GyfakmztYcx~!&WK_-FSKz{Geg4e zI6C$!GU4lG_o`z~`Wj9Q(=1aFj_!c<k{FGFm0hoyO*nZY*L~Sr!g*U3VX@&6gw$2) zTzYEGF|F*Q7qxDf9EnbzE3~7IfY$f*0hekcC3=!Ve|mK*$`<HFHHLrE+9qdAxuy=g zu@{CXj#-9jQ(a;$_x;CC@8N(JjuA{~Ckp2%RoaUn0pR0%5=qFg%8VXh^N;ywtG&2( zN3^a(wwhve7N#vk^MwP4KhdK@`d2XGLnX<!FCB^z4+V@w7l$e~RbTvOF$g3&`WSN} ziXnH{O>nZyCTgawqOceOnc$;ZGn}R&hYe`xJy$3-es#&$1JLM;ZWj$19e;+d&tJ*! z8pFwq@(i3ssY>k{L3(GkFrV-;0%(~VRw^0EPdf*(cDrob!l&XIOnf@D(L~Wcf7TU3 z8^n$M(CU4E&GOP^)_qjY7XNU(aeo}`H&OjGhPx1o*CI=R;jm#ZE3Tjy08K(qNRz0( zRA}o>TadMRf~4q$qLl8O#R~6Lu0L>2JE7Ojtk<%zM2|fj;v%Yk5K#SlzObx%Mv8aa zFsR>eQ)&jXsFbv-tbqO90*V(TIHzzGI0NUEn8c*vnpg5x?(klYpxbd$sNp#FfBE?x zlx$=YXlVIFgoP(6KCtPrn;zml0g$%8$iX-_e{YB$D(^M);l}KoxhtJKiW?+M?%Phc zpi=lUO_f3?TGW{+l*HZE6WM5odWM~z0+wf|0z$rw)<!v03Xzo(p^#OE8td(R&GdFe zcU|x<FW8U5OT@F-Yk*jp`qp|y9nOHta^=n&)nkMr5L}y`?w>!FVeN$s+>TVf)6Ud+ z%E&0O0W(6QaHWZ-YE&$yq4=x^7XJgul>Ke8dH=f1;T`mkmztHXZ4sGy??NZiY)iYS zktEm1H!%-k$VYECu1JtQxjX>woemgV#W6;(=G2Y}+LkVSk!G$mvd&DeL+h~)+}wuT z<2kRm@?~@3-Q{ibp3^N^ft5z*qxtV5IS4tyjVHm7xQG~zO-Io6s}lOWX3bXjN<a;r z_IrK1>U@>&*Gw8Zv{O#;iu;x68g@m~NOo+`{J9$(>VT_)<~rQ8b7@`${Y{KUW{q`6 zCAQ`(VDbcAm;x#j8xmJcTLdmfr+T_{(%x8Z>MNY4)@q|&3{sckbZk=+pWDq&Hd&_m z^1#5((n?v%l*74Qx=>#t25JFWjiMXL;EMrRXZxMVuzhlbrwoz0{c7xC?8`!r7qdk& zwVX30&a)B$>N{`9S|^in^MT{)sp|D4-`Q{Fj6*?2ZYIJ1OFe+f*%q^bmIe0WF6LO8 zO;BnO?s^zi#<3fy_$(wY=8KO4#J%d!bO=l=P?zK&q0R=&B)Dz1lF^E=#ji?5w;FdY zB6OBhRH(d>YN?8IA!p94Gy@SFGTVmH1eEL=C4}aRuU^;k;>dMd;etYS97aU1v8Edh zK8m4Dcq?B4THOCsn+n0V<e768hJ_o|id$IO`$>kgM%ad}DTSg9AYjCWd%3>l4a0gB z*u=ZDi15dmvd6K*W)<PD9a001M7#C#E~MU2vH0hWz_>P5v5HUKyk8dH3Jx00tIHe< z4y!#~G%=`I1&*=r)ri%0Vl#uXYH+zaZIkDjsf{ix9F(J$621}Zr!N<<7lG|stZJ^M zEkA1C?95T#fI4BmIc{H1V~cVv-3iY=uPI>`tSj{BTrtE3j%-)v%Xx7nu`7Gr*?M|q z0%S{|u;5hb_ykmY?M;p4@BMu4A2FDvw3iDt6LsE6$r%&<%MflhpPsl!XG0E2RWpRm z(_=H^VA8JlWzO2i`CX4Bq3YYzExr5)9$`~%w`+nl5P5Qz;8VVFB}If%C?M#)H{#*S zY3*ZjF_y+Vjplzvu8Bp7g8Yc{PC$k#x3&3AGEt1*gY_?%N@E;H<H)00<TBi1C#nTw z^e&_{VPF8*lvrV*KK1G#bmiz8S+BR9=*v^?2lLY-pX6}u-`TMg0BvoLAZ#LGkC@it zH$3B1dL6Qu-3r78oO{dKmk@^yZHJ6gDMfrq5YI?|XE|r$2vT4^r>z$EJpHF;b)dWA zC&rL+u{?V)>qBojT6%OE%UBrLBnI;yuGG(5c!i8pN2KZ1G}&GwVUhfV24wt5OQ!kg z`HJ$%(cGfS5)vw`>|^bExruFMjo88-uj8clSL@eSzy;n+K$P?^=fc?@$9on`b?G!e z_=ij!7Y+hy>50nRHkRAg0&v{ka>Y?1W&jENIsR0VywDr&L&jc3P?I8Nz10w=dJPjj zb1f+nGg)!xEQP{?&)wISv<b5KILVdP^4+7IpT)fKOQJH#kw$EAldJ{1g7@5I0faM4 za_MYILiN7MD2AESsn^x0=B*GW`gIH5@?4m5Umx?YDwHm(LAq$AY?ZeO=rbyJ#@O5H zs$~0pg-;tLErO-{C$P`HfB<61;#02aOMndGBLrc1-6?2nKE>WH8dcqvgpv1P7}`q6 zo0#;K`S3;-@%9QEe@bJz=zC*T=W}4i%V9Yun3}*yV806gMDSnWDM6k7*Qu$$iu>g> zisXY75`o>}_p>oX0t}mCh}zK&F5UZLeYL})K4#s`<gTIQn_ef;bti-z6>MklqD$V% zu&B=TJw9uz<T9g3vL0VLOIP(+^x98SCb9YXt2y8r3T74D-lTPEJrz-dWGbBRoRhQi ziY&gd9wcJp#NC&<o(|U60cn)#c9dpoGx#kgA#A_-K&c!`yBP<|1yT>2RREhI;h@~+ z{zYJ8Xq`CG1|QtKT78}Jvj!-Ya-;Y>T6&C7+u)3-q_<>z9$LNKR{{n3bcNJnsJ%#o z#Gu|PFlG<16KipQr))l7!Inc$5E%HMWW08rwBw1KaNDWGOs{nwE$PZXB%ga*QItL0 zvgmw1l>7Ak)rQ!)AR7#uQJH|_TQ}eP3~>OkpOK+tvg)%Ic`#d6ZE_BS@g@Oa@B<6- zo+nUDf6!TBUbmpGty_htr>B5sD@gMO0aLr7LGNX6px}zS-}Oixm&<SOW�YnR<pp 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 literal 0 HcmV?d00001 diff --git a/autogpt_platform/frontend/public/storybook/tokens.png b/autogpt_platform/frontend/public/storybook/tokens.png new file mode 100644 index 0000000000000000000000000000000000000000..15e15a1ee6041e567e50073c2d7302e855c02aca GIT binary patch literal 290458 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%0A|*ayA9F9geAMrk7237=?+%s^&N7@$vGY@`Olv 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 }bkIGh;COSOQtQXTs*7LO<xp&XoN8O8fxN-} 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 literal 0 HcmV?d00001 diff --git a/autogpt_platform/frontend/src/stories/assets/youtube.svg b/autogpt_platform/frontend/public/storybook/youtube.svg similarity index 100% rename from autogpt_platform/frontend/src/stories/assets/youtube.svg rename to autogpt_platform/frontend/public/storybook/youtube.svg diff --git a/autogpt_platform/frontend/src/components/agptui/FeaturedAgentCard.tsx b/autogpt_platform/frontend/src/components/agptui/FeaturedAgentCard.tsx index 8cbaad4b65..c2728c4a49 100644 --- a/autogpt_platform/frontend/src/components/agptui/FeaturedAgentCard.tsx +++ b/autogpt_platform/frontend/src/components/agptui/FeaturedAgentCard.tsx @@ -40,7 +40,7 @@ export const FeaturedAgentCard: React.FC<FeaturedStoreCardProps> = ({ <CardContent className="flex-1 p-4"> <div className="relative aspect-[4/3] w-full overflow-hidden rounded-xl"> <Image - src={agent.agent_image || "/AUTOgpt_Logo_dark.png"} + src={agent.agent_image || "/autogpt-logo-dark-bg.png"} alt={`${agent.agent_name} preview`} fill sizes="100%" diff --git a/autogpt_platform/frontend/src/stories/Configure.mdx b/autogpt_platform/frontend/src/stories/Configure.mdx deleted file mode 100644 index 05071a3c29..0000000000 --- a/autogpt_platform/frontend/src/stories/Configure.mdx +++ /dev/null @@ -1,451 +0,0 @@ -import { Meta } from "@storybook/blocks"; -import Image from "next/image"; - -import Github from "./assets/github.svg"; -import Discord from "./assets/discord.svg"; -import Youtube from "./assets/youtube.svg"; -import Tutorials from "./assets/tutorials.svg"; -import Styling from "./assets/styling.png"; -import Context from "./assets/context.png"; -import Assets from "./assets/assets.png"; -import Docs from "./assets/docs.png"; -import Share from "./assets/share.png"; -import FigmaPlugin from "./assets/figma-plugin.png"; -import Testing from "./assets/testing.png"; -import Accessibility from "./assets/accessibility.png"; -import Theming from "./assets/theming.png"; -import AddonLibrary from "./assets/addon-library.png"; - -export const RightArrow = () => ( - <svg - viewBox="0 0 14 14" - width="8px" - height="14px" - style={{ - marginLeft: "4px", - display: "inline-block", - shapeRendering: "inherit", - verticalAlign: "middle", - fill: "currentColor", - "path fill": "currentColor", - }} - > - <path d="m11.1 7.35-5.5 5.5a.5.5 0 0 1-.7-.7L10.04 7 4.9 1.85a.5.5 0 1 1 .7-.7l5.5 5.5c.2.2.2.5 0 .7Z" /> - </svg> -); - -<Meta title="Configure your project" /> - -<div className="sb-container"> - <div className='sb-section-title'> - # Configure your project - - Because Storybook works separately from your app, you'll need to configure it for your specific stack and setup. Below, explore guides for configuring Storybook with popular frameworks and tools. If you get stuck, learn how you can ask for help from our community. - - </div> - <div className="sb-section"> - <div className="sb-section-item"> - <Image - src={Styling} - alt="A wall of logos representing different styling technologies" - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - /> - <h4 className="sb-section-item-heading">Add styling and CSS</h4> - <p className="sb-section-item-paragraph">Like with web applications, there are many ways to include CSS within Storybook. Learn more about setting up styling within Storybook.</p> - <a - href="https://storybook.js.org/docs/configure/styling-and-css/?renderer=react" - target="_blank" - >Learn more<RightArrow /></a> - </div> - <div className="sb-section-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={Context} - alt="An abstraction representing the composition of data for a component" - /> - <h4 className="sb-section-item-heading">Provide context and mocking</h4> - <p className="sb-section-item-paragraph">Often when a story doesn't render, it's because your component is expecting a specific environment or context (like a theme provider) to be available.</p> - <a - href="https://storybook.js.org/docs/writing-stories/decorators/?renderer=react#context-for-mocking" - target="_blank" - >Learn more<RightArrow /></a> - </div> - <div className="sb-section-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={Assets} - alt="A representation of typography and image assets" - /> - <div> - <h4 className="sb-section-item-heading">Load assets and resources</h4> - <p className="sb-section-item-paragraph">To link static files (like fonts) to your projects and stories, use the - `staticDirs` configuration option to specify folders to load when - starting Storybook.</p> - <a - href="https://storybook.js.org/docs/configure/images-and-assets/?renderer=react" - target="_blank" - >Learn more<RightArrow /></a> - </div> - </div> - </div> -</div> -<div className="sb-container"> - <div className='sb-section-title'> - # Do more with Storybook - - Now that you know the basics, let's explore other parts of Storybook that will improve your experience. This list is just to get you started. You can customise Storybook in many ways to fit your needs. - - </div> - - <div className="sb-section"> - <div className="sb-features-grid"> - <div className="sb-grid-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={Docs} - alt="A screenshot showing the autodocs tag being set, pointing a docs page being generated" - /> - <h4 className="sb-section-item-heading">Autodocs</h4> - <p className="sb-section-item-paragraph">Auto-generate living, - interactive reference documentation from your components and stories.</p> - <a - href="https://storybook.js.org/docs/writing-docs/autodocs/?renderer=react" - target="_blank" - >Learn more<RightArrow /></a> - </div> - <div className="sb-grid-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={Share} - alt="A browser window showing a Storybook being published to a chromatic.com URL" - /> - <h4 className="sb-section-item-heading">Publish to Chromatic</h4> - <p className="sb-section-item-paragraph">Publish your Storybook to review and collaborate with your entire team.</p> - <a - href="https://storybook.js.org/docs/sharing/publish-storybook/?renderer=react#publish-storybook-with-chromatic" - target="_blank" - >Learn more<RightArrow /></a> - </div> - <div className="sb-grid-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={FigmaPlugin} - alt="Windows showing the Storybook plugin in Figma" - /> - <h4 className="sb-section-item-heading">Figma Plugin</h4> - <p className="sb-section-item-paragraph">Embed your stories into Figma to cross-reference the design and live - implementation in one place.</p> - <a - href="https://storybook.js.org/docs/sharing/design-integrations/?renderer=react#embed-storybook-in-figma-with-the-plugin" - target="_blank" - >Learn more<RightArrow /></a> - </div> - <div className="sb-grid-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={Testing} - alt="Screenshot of tests passing and failing" - /> - <h4 className="sb-section-item-heading">Testing</h4> - <p className="sb-section-item-paragraph">Use stories to test a component in all its variations, no matter how - complex.</p> - <a - href="https://storybook.js.org/docs/writing-tests/?renderer=react" - target="_blank" - >Learn more<RightArrow /></a> - </div> - <div className="sb-grid-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={Accessibility} - alt="Screenshot of accessibility tests passing and failing" - /> - <h4 className="sb-section-item-heading">Accessibility</h4> - <p className="sb-section-item-paragraph">Automatically test your components for a11y issues as you develop.</p> - <a - href="https://storybook.js.org/docs/writing-tests/accessibility-testing/?renderer=react" - target="_blank" - >Learn more<RightArrow /></a> - </div> - <div className="sb-grid-item"> - <Image - width={0} - height={0} - style={{ width: '100%', height: 'auto' }} - src={Theming} - alt="Screenshot of Storybook in light and dark mode" - /> - <h4 className="sb-section-item-heading">Theming</h4> - <p className="sb-section-item-paragraph">Theme Storybook's UI to personalize it to your project.</p> - <a - href="https://storybook.js.org/docs/configure/theming/?renderer=react" - target="_blank" - >Learn more<RightArrow /></a> - </div> - </div> - </div> -</div> -<div className='sb-addon'> - <div className='sb-addon-text'> - <h4>Addons</h4> - <p className="sb-section-item-paragraph">Integrate your tools with Storybook to connect workflows.</p> - <a - href="https://storybook.js.org/addons/" - target="_blank" - >Discover all addons<RightArrow /></a> - </div> - <div className='sb-addon-img'> - <Image - width={650} - height={347} - src={AddonLibrary} - alt="Integrate your tools with Storybook to connect workflows." - /> - </div> -</div> - -<div className="sb-section sb-socials"> - <div className="sb-section-item"> - <Image - width={32} - height={32} - layout="fixed" - src={Github} - alt="Github logo" - className="sb-explore-image" - /> - Join our contributors building the future of UI development. - - <a - href="https://github.com/storybookjs/storybook" - target="_blank" - >Star on GitHub<RightArrow /></a> - </div> - <div className="sb-section-item"> - <Image - width={33} - height={32} - layout="fixed" - src={Discord} - alt="Discord logo" - className="sb-explore-image" - /> - <div> - Get support and chat with frontend developers. - - <a - href="https://discord.gg/storybook" - target="_blank" - >Join Discord server<RightArrow /></a> - </div> - </div> - <div className="sb-section-item"> - <Image - width={32} - height={32} - layout="fixed" - src={Youtube} - alt="Youtube logo" - className="sb-explore-image" - /> - <div> - Watch tutorials, feature previews and interviews. - - <a - href="https://www.youtube.com/@chromaticui" - target="_blank" - >Watch on YouTube<RightArrow /></a> - </div> - </div> - <div className="sb-section-item"> - <Image - width={33} - height={32} - layout="fixed" - src={Tutorials} - alt="A book" - className="sb-explore-image" - /> - <p>Follow guided walkthroughs on for key workflows.</p> - - <a - href="https://storybook.js.org/tutorials/" - target="_blank" - >Discover tutorials<RightArrow /></a> - </div> - -</div> - -<style> - {` - .sb-container { - margin-bottom: 48px; - } - - .sb-section { - width: 100%; - display: flex; - flex-direction: row; - gap: 20px; - } - - img { - object-fit: cover; - } - - .sb-section-title { - margin-bottom: 32px; - } - - .sb-section a:not(h1 a, h2 a, h3 a) { - font-size: 14px; - } - - .sb-section-item, .sb-grid-item { - flex: 1; - display: flex; - flex-direction: column; - } - - .sb-section-item-heading { - padding-top: 20px !important; - padding-bottom: 5px !important; - margin: 0 !important; - } - .sb-section-item-paragraph { - margin: 0; - padding-bottom: 10px; - } - - .sb-chevron { - margin-left: 5px; - } - - .sb-features-grid { - display: grid; - grid-template-columns: repeat(2, 1fr); - grid-gap: 32px 20px; - } - - .sb-socials { - display: grid; - grid-template-columns: repeat(4, 1fr); - } - - .sb-socials p { - margin-bottom: 10px; - } - - .sb-explore-image { - max-height: 32px; - align-self: flex-start; - } - - .sb-addon { - width: 100%; - display: flex; - align-items: center; - position: relative; - background-color: #EEF3F8; - border-radius: 5px; - border: 1px solid rgba(0, 0, 0, 0.05); - background: #EEF3F8; - height: 180px; - margin-bottom: 48px; - overflow: hidden; - } - - .sb-addon-text { - padding-left: 48px; - max-width: 240px; - } - - .sb-addon-text h4 { - padding-top: 0px; - } - - .sb-addon-img { - position: absolute; - left: 345px; - top: 0; - height: 100%; - width: 200%; - overflow: hidden; - } - - .sb-addon-img img { - width: 650px; - transform: rotate(-15deg); - margin-left: 40px; - margin-top: -72px; - box-shadow: 0 0 1px rgba(255, 255, 255, 0); - backface-visibility: hidden; - } - - @media screen and (max-width: 800px) { - .sb-addon-img { - left: 300px; - } - } - - @media screen and (max-width: 600px) { - .sb-section { - flex-direction: column; - } - - .sb-features-grid { - grid-template-columns: repeat(1, 1fr); - } - - .sb-socials { - grid-template-columns: repeat(2, 1fr); - } - - .sb-addon { - height: 280px; - align-items: flex-start; - padding-top: 32px; - overflow: hidden; - } - - .sb-addon-text { - padding-left: 24px; - } - - .sb-addon-img { - right: 0; - left: 0; - top: 130px; - bottom: 0; - overflow: hidden; - height: auto; - width: 124%; - } - - .sb-addon-img img { - width: 1200px; - transform: rotate(-12deg); - margin-left: 0; - margin-top: 48px; - margin-bottom: -40px; - margin-left: -24px; - } - } - `} -</style> diff --git a/autogpt_platform/frontend/src/stories/Overview.stories.tsx b/autogpt_platform/frontend/src/stories/Overview.stories.tsx new file mode 100644 index 0000000000..d6c70ce41d --- /dev/null +++ b/autogpt_platform/frontend/src/stories/Overview.stories.tsx @@ -0,0 +1,466 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import Image from "next/image"; + +function RightArrow() { + return ( + <svg + viewBox="0 0 14 14" + width="8px" + height="14px" + className="ml-1 inline-block fill-current" + > + <path d="m11.1 7.35-5.5 5.5a.5.5 0 0 1-.7-.7L10.04 7 4.9 1.85a.5.5 0 1 1 .7-.7l5.5 5.5c.2.2.2.5 0 .7Z" /> + </svg> + ); +} + +function OverviewComponent() { + const linkStyle = "font-bold text-blue-600 hover:text-blue-800"; + return ( + <div className="mx-auto max-w-6xl space-y-24 p-8"> + {/* Header Section */} + <div className="space-y-8"> + <div className="space-y-4"> + <h1 className="text-4xl font-bold text-gray-900"> + AutoGPT Design System + </h1> + <p className="text-xl leading-relaxed text-gray-600"> + Welcome to the AutoGPT Design System - a comprehensive collection of + reusable components, design tokens, and guidelines that power the + AutoGPT Platform. This system ensures consistency, accessibility, + and efficiency across all our user interfaces. + </p> + <div className="inline-flex items-center"> + <strong className="text-lg"> + <a + href="https://www.figma.com/design/nO9NFynNuicLtkiwvOxrbz/AutoGPT-Design-System?node-id=3-2083&m=dev" + target="_blank" + rel="noopener noreferrer" + className={`${linkStyle} text-md`} + > + 📋 Figma Reference + </a> + </strong> + </div> + </div> + + {/* Foundation Cards */} + <div className="grid grid-cols-1 gap-6 md:grid-cols-3"> + <div className="flex flex-col space-y-4"> + <Image + src="/storybook/tokens.png" + alt="Design tokens representing colors, typography, and spacing" + width={0} + height={0} + className="h-auto w-4/5 rounded-lg" + /> + <h4 className="text-lg font-bold text-gray-900">Design Tokens</h4> + <p className="text-sm leading-relaxed text-gray-600"> + The foundation of our design system. Tokens define colors, + typography, spacing, shadows, and other visual properties that + ensure consistency across all components and layouts. + </p> + <a + href="?path=/docs/design-tokens--docs" + className={`inline-flex items-center text-sm ${linkStyle}`} + > + Explore Tokens + <RightArrow /> + </a> + </div> + + <div className="flex flex-col space-y-4"> + <Image + src="/storybook/atoms.png" + alt="Basic UI elements like buttons, inputs, and icons" + width={0} + height={0} + className="h-auto w-4/5 rounded-lg" + /> + <h4 className="text-lg font-bold text-gray-900">Atoms</h4> + <p className="text-sm leading-relaxed text-gray-600"> + The smallest building blocks of our interface. Atoms include + buttons, inputs, icons, labels, and other fundamental UI elements + that cannot be broken down further. + </p> + <a + href="?path=/docs/atoms--docs" + className={`inline-flex items-center text-sm ${linkStyle}`} + > + View Atoms + <RightArrow /> + </a> + </div> + + <div className="flex flex-col space-y-4"> + <Image + src="/storybook/molecules.png" + alt="Combined UI components like cards, dropdowns, and search bars" + width={0} + height={0} + className="h-auto w-4/5 rounded-lg" + /> + <h4 className="text-lg font-bold text-gray-900">Molecules</h4> + <p className="text-sm leading-relaxed text-gray-600"> + Combinations of atoms that work together as a unit. Examples + include search bars, card components, dropdown menus, and other + composite UI elements. + </p> + <a + href="?path=/docs/molecules--docs" + className={`inline-flex items-center text-sm ${linkStyle}`} + > + Browse Molecules + <RightArrow /> + </a> + </div> + </div> + </div> + + {/* Technical Foundation */} + <div className="space-y-8"> + <div className="space-y-4"> + <h2 className="text-3xl font-bold text-gray-900"> + Technical Foundation + </h2> + <p className="text-lg text-gray-600"> + Our design system is built on proven technologies while maintaining + strict design consistency through custom tokens and components. + </p> + </div> + + <div className="grid grid-cols-1 gap-12 md:grid-cols-3"> + <div className="space-y-4"> + <h4 className="text-lg font-semibold text-gray-900"> + 🎨 Built with Tailwind & shadcn/ui + </h4> + <p className="text-sm leading-relaxed text-gray-600"> + The AutoGPT Design System leverages{" "} + <a + href="https://tailwindcss.com/" + target="_blank" + rel="noopener noreferrer" + className={linkStyle} + > + Tailwind CSS + </a>{" "} + for utility-first styling and{" "} + <a + href="https://ui.shadcn.com/" + target="_blank" + rel="noopener noreferrer" + className={linkStyle} + > + shadcn/ui + </a>{" "} + as a foundation for accessible, well-tested components. + </p> + </div> + + <div className="space-y-4"> + <h4 className="text-lg font-semibold text-gray-900"> + 🔧 Why This Matters + </h4> + <ul className="space-y-2 text-sm text-gray-600"> + <li> + <strong>Visual Consistency:</strong> All interfaces look and + feel cohesive + </li> + <li> + <strong>Accessibility:</strong> Our tokens include proper + contrast ratios and focus states + </li> + <li> + <strong>Brand Compliance:</strong> All colors and styles match + AutoGPT's brand + </li> + </ul> + </div> + <div className="space-y-4"> + <h4 className="text-lg font-semibold text-gray-900"> + 📚 Getting Started + </h4> + <ol className="list-decimal space-y-2 text-sm text-gray-600"> + <li> + Review the Design Tokens, Atoms,Molecules and Contextual + Components for your use case + </li> + <li> + If you need something new,{" "} + <a + href="https://github.com/Significant-Gravitas/AutoGPT/issues/new?template=design-system.md" + target="_blank" + rel="noopener noreferrer" + className={linkStyle} + > + create an issue first + </a>{" "} + and get feedback + </li> + <li> + Always test your changes and ensure it renders well on all + screen sizes + </li> + </ol> + </div> + </div> + </div> + + {/* Contributing Section */} + <div className="space-y-8"> + <div className="space-y-4"> + <h2 className="text-3xl font-bold text-gray-900"> + Contributing to the Design System + </h2> + <p className="text-lg text-gray-600"> + Help us improve and expand the AutoGPT Design System. Whether + you're fixing bugs, adding new components, or enhancing + existing ones, your contributions are valuable to the community. + </p> + </div> + + <div className="relative rounded-xl bg-gradient-to-r from-blue-50 via-purple-50 to-pink-50 p-6"> + <div className="absolute inset-0 rounded-xl bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 p-[2px]"> + <div className="h-full w-full rounded-xl bg-white"></div> + </div> + <div className="relative space-y-6"> + <div className="text-center"> + <h4 className="bg-gradient-to-r from-blue-600 via-purple-600 to-pink-600 bg-clip-text text-xl font-bold text-transparent"> + ⚠️ Design System Guidelines + </h4> + <p className="mt-2 text-gray-700"> + Contributors must <strong>ONLY</strong> use the design tokens + and components defined in this system + </p> + </div> + + <div className="grid gap-6 md:grid-cols-2"> + <div className="space-y-4"> + <h5 className="text-lg font-semibold text-red-600"> + ❌ Don't Do This + </h5> + <div className="space-y-3"> + <div> + <p className="mb-2 text-sm font-medium text-gray-700"> + Default Tailwind classes: + </p> + <pre className="overflow-x-auto rounded-md bg-gray-100 p-3 text-sm"> + <code className="text-red-600">{`className="text-blue-500 p-4 bg-gray-200"`}</code> + </pre> + </div> + <div> + <p className="mb-2 text-sm font-medium text-gray-700"> + Arbitrary values: + </p> + <pre className="overflow-x-auto rounded-md bg-gray-100 p-3 text-sm"> + <code className="text-red-600">{`className="text-[#1234ff] w-[420px]"`}</code> + </pre> + </div> + </div> + </div> + + <div className="space-y-4"> + <h5 className="text-lg font-semibold text-green-600"> + ✅ Do This Instead + </h5> + <div className="space-y-3"> + <div> + <p className="mb-2 text-sm font-medium text-gray-700"> + Design tokens: + </p> + <pre className="overflow-x-auto rounded-md bg-gray-100 p-3 text-sm"> + <code className="text-green-600">{`className="text-primary bg-surface space-4"`}</code> + </pre> + </div> + <div> + <p className="mb-2 text-sm font-medium text-gray-700"> + System components: + </p> + <pre className="overflow-x-auto rounded-md bg-gray-100 p-3 text-sm"> + <code className="text-green-600">{`<Button variant="primary" size="md"> + Click me +</Button>`}</code> + </pre> + </div> + </div> + </div> + </div> + </div> + </div> + + <div className="grid grid-cols-1 gap-6 md:grid-cols-2"> + <div className="space-y-4"> + <h4 className="text-lg font-semibold text-gray-900"> + 🧢 Development Workflow + </h4> + <p className="text-md leading-relaxed text-gray-600"> + All design system changes should follow our established workflow + to ensure quality and consistency. + </p> + <div className="text-md space-y-4"> + <div> + <strong className="text-gray-900"> + For External Contributors: + </strong> + <ol className="mt-2 list-decimal space-y-1 pl-4 text-gray-600"> + <li> + Create a GitHub issue first to discuss your proposed changes + </li> + <li> + Wait for maintainer approval before starting development + </li> + <li>Fork the repository and create a feature branch</li> + <li>Implement changes following our coding standards</li> + <li>Submit a pull request with detailed description</li> + </ol> + </div> + <div> + <strong className="text-gray-900"> + For Internal Team Members: + </strong> + <ol className="mt-2 list-decimal space-y-1 pl-4 text-gray-600"> + <li>Create a feature branch from main</li> + <li>Implement changes and update Storybook documentation</li> + <li>Test components across different scenarios</li> + <li>Submit pull request for team review</li> + </ol> + </div> + </div> + </div> + + <div className="space-y-4"> + <h4 className="text-lg font-semibold text-gray-900"> + 📋 Component Guidelines + </h4> + <p className="text-md leading-relaxed text-gray-600"> + Follow these principles when creating or modifying components: + </p> + <ul className="text-md space-y-2 text-gray-600"> + <li> + <strong className="text-gray-900">Accessibility First</strong> + <ul> + <li> + All components must meet{" "} + <a + href="https://www.w3.org/WAI/standards-guidelines/wcag/" + target="_blank" + rel="noopener noreferrer" + className={`${linkStyle} font-semibold`} + > + WCAG 2.1 AA standards + </a> + </li> + </ul> + </li> + <li> + <strong className="text-gray-900">Design Token Usage</strong> + <ul> + <li>Use design tokens for all styling properties</li> + </ul> + </li> + <li> + <strong className="text-gray-900">Responsive Design</strong> + <ul> + <li>Components should work across all screen sizes</li> + </ul> + </li> + <li> + <strong className="text-gray-900">TypeScript</strong> + <ul> + <li>All components must be fully typed</li> + </ul> + </li> + <li> + <strong className="text-gray-900">Documentation</strong> + <ul> + <li> + Include comprehensive Storybook stories and JSDoc comments + </li> + </ul> + </li> + <li> + <strong className="text-gray-900">Testing</strong> + <ul> + <li>Write unit tests for component logic and interactions</li> + </ul> + </li> + </ul> + </div> + </div> + </div> + + {/* Social Links */} + <div className="space-y-8"> + <h3 className="text-3xl font-bold text-gray-900">Get Involved</h3> + <p className="text-md leading-relaxed text-gray-600"> + Join the AutoGPT community and help build the future of AI automation. + </p> + <div className="grid grid-cols-1 gap-6 md:grid-cols-4"> + {[ + { + icon: "/storybook/github.svg", + title: + "Contribute to the AutoGPT Platform and help build the future of AI automation.", + link: "https://github.com/Significant-Gravitas/AutoGPT", + linkText: "Star on GitHub", + }, + { + icon: "/storybook/discord.svg", + title: "Get support and chat with the AutoGPT community.", + link: "https://discord.gg/autogpt", + linkText: "Join Discord", + }, + { + icon: "/storybook/youtube.svg", + title: "Watch AutoGPT tutorials and feature demonstrations.", + link: "https://www.youtube.com/@AutoGPT-Official", + linkText: "Watch on YouTube", + }, + { + icon: "/storybook/docs.svg", + title: "Read the complete platform documentation and guides.", + link: "https://docs.agpt.co", + linkText: "View Documentation", + }, + ].map((item, index) => ( + <div key={index} className="space-y-4"> + <Image + src={item.icon} + alt={`${item.linkText} logo`} + width={32} + height={32} + className="h-8 w-8" + /> + <p className="text-sm leading-relaxed text-gray-600"> + {item.title} + </p> + <a + href={item.link} + target="_blank" + rel="noopener noreferrer" + className="inline-flex items-center text-sm text-blue-600 hover:text-blue-800" + > + {item.linkText} + <RightArrow /> + </a> + </div> + ))} + </div> + </div> + </div> + ); +} + +const meta: Meta<typeof OverviewComponent> = { + title: "Overview", + component: OverviewComponent, + parameters: { + layout: "fullscreen", + controls: { disable: true }, + }, +}; + +export default meta; +type Story = StoryObj<typeof meta>; + +export const Default: Story = {}; diff --git a/autogpt_platform/frontend/src/stories/assets/accessibility.png b/autogpt_platform/frontend/src/stories/assets/accessibility.png deleted file mode 100644 index 6ffe6feabdc17f715771b69fd7f33ec2c57e7c30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42336 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 diff --git a/autogpt_platform/frontend/src/stories/assets/accessibility.svg b/autogpt_platform/frontend/src/stories/assets/accessibility.svg deleted file mode 100644 index 107e93f838..0000000000 --- a/autogpt_platform/frontend/src/stories/assets/accessibility.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" fill="none" viewBox="0 0 48 48"><title>Accessibility \ No newline at end of file diff --git a/autogpt_platform/frontend/src/stories/assets/addon-library.png b/autogpt_platform/frontend/src/stories/assets/addon-library.png deleted file mode 100644 index 95deb38a88de416671e20ebc28dcd397d6910331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467366 zcmY(pWmp?s)HMtgDJ}^PEgqy$oZ#*dBv8CiifeEvP~4?JC>q?oSkYp^OL2<3Lvbip z;NyOt_p|vk*U33ES$mze_MYralqN(GABPGD1qB6PSxHVC1%(8Lf`UEw^2PHf)^0V7 zC@3#bG}UzEpNErsw;Q#}zkk#YE&j33oH^|^Lk{&lH4%PQ3E|}vx9E_dW8&V(%VcAh zni!trNf;+20xph?pJd2@zAXQq+knq5-F5T56V8ko&mNSJG5*<3P`N#3S3X_%^n5(u zAH<=%bo97)^FTpCfnIh%&%iKW^K{v+{8)`bM$O3_`t;N(#`(&ZgM;Hue48Al^7Wj~ zPa$yNTs}Zh@=4HP%p&7y3^iRwLsV3BIN?b*T~Td&Z}V7EY3XGkDGpM+j`s{dV0K@;FN>bu025@kbl~*-ww1qejk0yBOozi z`gcU@K^pUEdgCdrwS4aDG6whK1UC}ptwZ1A=½zy!j8k^D_+Xmby+9Nl|wWphp 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

    wyQuQbqeDC?b4FVon9>0iW}N&#hIJCuHi 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

    dk-)duz~D_SQhJOz!_4iA-bxFdQMD2V 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%0D8UB5C69Q~b=MLW-x{a!p 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


    61#osMoUDN;g&I5i2>jx!~^YnweY`Mk-ISn1mks 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

    hxL-UTbgFOs%C>cNb?R-MvpJYh!+yR< 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 TCS{<%00000NkvXXu0mjfa^c^P diff --git a/autogpt_platform/frontend/src/stories/assets/figma-plugin.png b/autogpt_platform/frontend/src/stories/assets/figma-plugin.png deleted file mode 100644 index 8f79b08cdf28f568a9bfc9d2fee39bd85d4831e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44246 zcmZs>bx<77^8kt^xI2VHLLdnm+%C8UcX#{X7VIFn1%kV~y9YU(;O+qqhvRU#gW!+v z@BQ_v-qv>QPFHu&Om9zj&usrxRhGrYqQXK#Lc*1olTt@QLIoiqpDu(GlqJv^M=Kb+q` zoL=2t-921iUmrg_oLt^qU0pprJ?$JGA73C|xh^g)&d$!RZ~sA0FJb4`uWyHk(BtFd zqqFP1y}kAI^_`uaho5GL#}}8cqE1iuVduNh)BU5fgM$MI1afzO|CngHy$^d#G1=TZ zdMY)1%r}DHJ+Si#Tqy$z^%$_R^o~sQY zJBN>1#!uyjTU%S}+XokL#QM?E>dDFY#N^-2y{BTM#|)G7jLfHO2@_GFY)=U3L3);8gg1;ljU zL#xC5&W^c_-PZZV?9$(vnVA>au&&Xu;`+wLRmiWj%zw@HkiCPsxw-D1UJw5uBWv4< znZ?(uzO#F6Z+~ohzO12b_3&_HVitaS`1$kaoBrDN-aj-nG}H4dH_cg5F|m0S^@#2H zk;SFJ=$NA`#9i9=%M+-btNXv%DlL7Z)PjnCWs&)L`8WIXwY9ZR`Nj`jA&>PgH;cXf zBa=6O`_qd`ZpW+d`qJ+k!sO)SE_SvaD_qs|4F7dx+z+QcWt-gmseLGNcmD3#-rg=K zC>WZU2?Bxc^V}cp)XdDx?z6tHPv1vIMmEC!4iEi#De8ZTZNARce>uJ8YAkyBUi6}u zu%O|tH}Mp<^6;{}e^-#P-<5V;V)@cOJ9BzjVe>3B^fc4`(6D=d-PH=$VgDWe6s|Ux zxmHpYwTTRHxN>o^eo72DLscOs#z@C5zEHmORnCXLqNmwmx6A z$e8z2nfQCLdx_mwE64nN`Pr7ELI-uL)H8?QhAa#Hx1CU`I~*sl%IFJ;}evcCawGaJYGVQ;YIzwNsx#Tf&_G8o|JX3nKWY$pB zdh}vIFV-sn;z39(uiz^NL#}>>6XXi?dX!iA{~-Vhsw`gb{Chrg!!DzuPDzpSa9~RM z%x_$^G$O(xV#u^8Dl%uVKm_4jOfoE+6PDGaS<=COF}clK;Eu6yq!&NoPvgYKq#Bj9 z)6@HU*w3B5^kIZer_5!V&?$s#H2Yoh?}ApH`qD=z*^9|lUR^FmdkYa^6{9XMyZzI* zLvs-!8_WGrjU+CvZru0PtFG$}WNxLJ8=!@~dSI>BW59GkHwgd!!+}xz1b>Axo_r`( z;$CL2ZMhCN*z%O(%a^w9Wo|s+&+go$-(vApspy)lL}R=Zqk9bOpU;tY!_94colW12{+ zz>zU#w>I{od}s17&HDF;T`$kaf~Q`dLXXjpzM1uxa$h<{lxAFd73n%;G%a(Nh|9FT zDHmP^=D$_Qz5hQpkE4Bs0g+W+OU|EM+ggpR*E9NAl}u?-KAx)lYGHj;Ne=0&js+U3 zg2aG}8Px3Z{cXLwm!!wK4){dhajCK=#E0W6zIQhqEoW2ST4I}xuCYYkjFt7frt%+} z6rl|ynt8gQDl>+6fISXlPTmj5ecI0|X)i6^#~G{Bl0S+5>-y2E{$KrvVnU2_N4+v?I#U7K!9~9$hL=Su666P^yl5Q0+#|wLjk%+ThG6Q* zmSGCR{kgaHTXcP~=$xpg+)ob?SGTzOjiM(5uS3jxNqKe+>iK#J){{xif3hAv_DAc$ zIHNK64;+bgaslT^*k4t6(@_32n>}?&rT`1|Elw;)3PG72t4n!FItWNm0dlYDx`=D` z&6&$}N?H=HR+?J-=H|QwQxO!in_KsaRHfco5{)-W%ysCZjTCK>$jIu_Wd-_@?WtIK zHe3aaJ#t+2+s6K>Dso`(A+2-ewRsW=6jhvflawV9`pJTilOSE40fUCK;XC_V%$T*3 z&K**^Bw{ueCRVK9S1*TmCVLvw)&7=rgn=QnYqYy*t+;~IAN`wCQHf=EO`jWu`78^Y z)^zB7{0X9pNK$a~iEyhQ&of@GBTPUIdk34+a>S=KoesR(10D^Izs@KeY$T_Yj+l~JWn(jO!NZs8cOMWjOhOq9>b~AeiXY{ z+0ir^-8I}@^LU>05)uH*P_Ak0%Ku^CYOCxH`?Df#=vBHCzM=P@0rYEd?H;OIk?(H= z+arnnd^St?I8K5^w-+;@RA|M^BQZzI<(As0WooXN!G;vNL|Rx4^B56jaJG$SD6o{} z)f^lN*nH@|>XCeQhKO9uaSy}Sf(zNa%HD}g_Kf=z;~kkTt;?-R?g^Bw5+XD9Yg3GN z7An+XJd_IP$we}z$mObOq$bh_tb}5Hu-J^qTj)z+X(Q(Ot`*a8)g$|i4~Az__Vn>^ zgtY2{?t9nb2GDmeB*W62F2;X0X8~9d8&46i{X!YZ#;NZb^VQ{m#vnhL-^IqbZ^%RA z)Pn_TV|FwTYmRXWv)((&Oi>NfwKobI-EF>qX>+FaKB9by8R+Y<{{g4y-5rV^;23sI z5+A=2-k(7h%kUBv^PXSTL|1E=&%g?t7nig1|KV)PAshAGQbwNXyOLB&AM__nHTyzEahewx z7eR}Ml&M<;5m-`nR%`c8zWI|(lj`6XCVTt;;Hkdm;%4TQAtdE!YrbDVc}oDsiJt(Lv-gs`v{?l19!I zWsoS!bn^lStu#D75b^?QOK&`g<4|MzHoET?WqV^v1mMY@tu6y*%z4%_|4StX9{2~d z=lr-OQ$FnTT@1|VLtQdZ!Rj0^R?BL$Q61`=e+IMt>f)rUHA5A5*59*POKxN+_@TJz z1jMg7X0La1MHC3CTAtHzw(su>FTZ|QA@V8Yy4JNpnh}n4au$skY!)7T&D_@ zamG~Fh}tOCJx;0OCv4Nx*Y_Mc<@G=+Zvz?7Ahh4+^6NdP{ETBbIdEC_RqudErH<7> zL7OKzf+NJ@6yd(ZpIR{($<%)J7p@*KhoMKN83bx>rR>>SWw!&A*OM6`Q{hn({b?29Lz z0&w~u@fs%cy+4pQfqB-K=dohvH+^8@)3cQF7S2H zA_8yyE*cc)`HxU#IG1Fm6rhBN2hkC9RmvJZy9iAdxo6_ngrN6i8~(W(s-Yu3`*fb{ z{S91NmxrFwoOEPXW40!7nb&*Y?e-R0RRIv54HieOLkun z?&KTN!ynJm2Bvs@0|rZQu%|6gqMPn`Yn~U%i^zg+GFtF#{<3oT1NcvQh7-O2iUh0I zeT`T^Mcz^YNB`m10dh_6OBkQ2`F7N7ERb4ynux2CR-hxqFuXO+&+ZfvC;!d6@yQ}E z+#xmnhFG5$igxLV%F!iyvp|1DbimtxaoG25bG=tqk|6SXnkw(`gRIC1P-K9014>np z3|7R{9s}ShoyIklfuW^Dc43bTdjVB^O95Q93NvDy?HbG_i~Tvwzyc_6R?s=nO5@<* zukXi1=}iK8=~!JWM;@59-d?NI->+I1XdaAiTPu~zdRVIBqXjY}V&hcL#alr(SDhAp zw)*wNzywg}Hy~c`;A-b`G>Cjy<6Ht@aHKpR%+yGYEg_=L5d@;c=vQ@Sv$(?%{ICSh z^I(NnVOBQAI-tJlYa$Ai5H7f@Wb{Y9K*g~@4lE!83*ubqiQJ{S(tK^>y zbl>9|_bLKhhNE6!YZL*5b87&?#|0)T%(=dA%bXH;!&nnTWwJA1H48BM8!;x0;#ZQ@ z66G@=sCpcUHke2plHo~T1GxhIaH4s&5HT33Ki_x>_TBBMOhU$4`@@mwkcI|WfF8kj zg>zQ6I3R)jFUD4#<3Wn+(=QAn&T9|k9L9b>nhqggop-+^ z%Qny9zZGsjq7!R6ds|F$WSi!yCW-j=$?ttHJ8m~NECC=0v#{%QFl&DpDy;9C;-uo- z*L?VKHUo3z6hzb}*@sn>g-qk|E73%M0~P?njJdvn?O$Cq(H=w>mS7G3K;oXW^o2e5 z2gt?$J13N8cNm2FpKddV#7DZqW+SQKurdv@6n$KD0IFhCNda*PQm6p^>!Ku zgiyh|M`2YKHhb(jXq*6>{jX_cfqR^F>H~9Yq#_YEV&XvJ!0@~z``B^UbbaCYdn!+s z(znioM5nj~;(;kZg=|2kYMmScKvt3a$>NjVi8S_7mq5jGlSbTn=MDU5{`PSf?8{*W z`3+NBM|?!^WO*imLdZ%03oM2}EU>x8^mpt}bBB;`&Avamx4wHnr#}a%2vC@Sry8C; zi5wsDz3RukqM0kazCYymP{T;;Ad`iQ(do5W%A2m{D&Yh>6{J(`fBq<5FI5MDUWQAZ zbl4ql_)eW@7N?cqLKN@puf9HwBW3vwRV*88bb%%ecdM;ItqPuIEliWqRYhrf07>YAu51a=k{R{`o`(FAaP}oA+X-L{2k4$u};V+ zs}Mw;a`Tz0JnXoAoOe%0m-+Gm#zqyZS~n?D;ENa$F4KuCUtKZiHgsTjSRZ+H>)m|h zjgy_DkAz>!K>A8I>z4;tzuBiyLP2y$eidHtHNeLcIr;LXYpIMm3yU@5sA(8{DqMJ z#e#}qCo>lrx0?gR6Wn_=?%xD38@lxt z9kJb<#Q~FzK2IV@Oq0QHo)_LLi*$Yp&*XoMF8fG%k|3wWz4(4C=8sG{I*M2Y|C3Z` zt#v`qja;#2nnR-MNeZ`KmS%{Oad8-@_8TKnX+56v+00SY8kd~}FSntC%vHp1Sf>WNXjN;|qblAFASmi;9o;raWEI0aO0jf~964f`1< zR<5IODYSsuQdag&!1ky6hIKIjBal-49NpK(;k_V^|~zvNy>XGm7TF!!h|X zQ1E_V+;ePym0!)RGR52x9rt{L->j&P=3Zxm$l7_&=E_22R@dYnG)Vsw#8Pk5m#AKu zZ1H1c~pxAGk^9+#S-dF#zfQ!CfcI5HAJhh(xd5 zb&hUf`|Ztr5_5?SD@gnWOTb`Mb7oV}>#`}Y4%Uk1$tY6(N=<&VI|K&&6eB`x<^FJq zs%0plqC#XZ737v6V)+-}6OI%b>z$%-iSpYgU0)pGb?JDndA-gwm=SjLLMlR+>+hTz z#oX+E88|Ew2U28@C$Lnj^L7%icd=cuugUa{MX-x_%n%5Z%V9K@w~^HA5@tYlYOuXF zC6=v$O2;%D2M9T|#PYH%;0w52uAwUUn5Xd?W4*y~{WyWbQca}^8^rP)tuX=abnS~S zyA4s2WJHr+5VqGFj4D&OOlNMg`cJnFP&=ID3nU5^f%)KORHv?1sk83+2#(iZk9;3o zZl!UcVxS)>1XO3KslaQ!TRizI)_g2c#ho|r`s5{Em9^hPFX^qh4>_7FLgM#ikN;?? zHocDOh3sMPGA)a06m_fss9O*0$U+a>>3iV-|WbP6S1$oF{tZ?!2nDN0HQijf6J(^-x0QP=JV~x zus3+~aX=m=UJCdCZucI!Hs?Z|Sv1*1xHQK9`kz%><-Sg6+onLEGgA2zUe|S$qKOq86a=>x(Vgy6>ViJuE=vn!UgMozt2dc@beCq!QfXrf0 zG*TWp9?j+1OaAMFNzPri*tn3ukegM=#_C4HdGRAptk?1=Rpc`Z|wOE7uQK%ugyZH;G+_G+q&# zbUMm#*b@k8!_fqYF!T!N^~Tf>m6y50MX*8Rwey16oqhuuyf`#$AQbAR8D2d$G?XBk z(DG#it_4pm7W;6|P9y*R3|=%E0Qj!US?cHhUEGF7bS&WJTWPC|k)l~$Dz!3(>vWOv zcm?Z~f24^~$=Caq)LE;ky;EW=%2YPyErP#)0*`ie>Td)%td?VYQmn1NkKBhqDe2#47Lr(%MVnGeeztd` zJB-b5V)-VQ4=1{v&RFM&VN>E;By&kwWWJ z_sYf;u2@i&GhcO>kp<;*xjfw1ANB+3n>+pG>W7$+^Qseg@lJuqueGD{U zM?te4%sjVH+%ys@S>|@MBswnkOex?wM|g(*$fdLHJrI5X2=%Uqeuo08KUj}xBH2al ztT#lHnKNfG%2A%^{^1v)zyQ6QPYQ{)G{9qpW)>X&-v0jeR~TB6Sm=-7&|Xf%U7SyT z*658ZU_mPb%4nVuPZr!saYk;9>`x3{-VIn|4bGhRY;deGEW)yNIG*vT&&M}Y6}VxP zN|COa`tSj`(oa8%sVcSqN_opAFPgL(>FN?Ov$<*`4q0h$bclZ?3T$hs(YQqw3Q=`^ zwGt>`yi(Pa`q=qfGVZ$k)^3c0TCCJW-1S<^AcwQT1HJLd#7#LqYUq{ zuk6VDmZRgY((k-~F-WmUamTQ-MvxN;_aA-E>K_u0Nhs!wDQZu1wb-HB9aB#;%mwQ% zC4172B+p><2wd$>2h=JQ9pcmNKI3PQ^am1zp7hCzYd8~2^2#?Q$LqzCI4z+{pRtMu z;%ya3L`>i5zM+h?pTRn?1~sk9_u8}M>p1cSZ{Eya&!;&n-_tI^iJb+7IYa&vuwB~1 zyv3w;DW)q3dQF3@b{y6QH<-sn?n;I4T&g}V@go@#fg`zre%4Q~Jy&yeVAPT(k%1_Jdd`x^Blq>p77qAzriPR$_#-LG;jM^H%&{&kbI#b_jYo{I0qY0vRFa4{C zgpe9arm3eN8KobjZ^4{bjn3zn9?@{*JFdz1iqdK75><1dyV@31m?iqj57J70uYse! ztQoZ>U|VeU@J~2a8>ntU!e(nPC+_7O>~NunHi3%QlW&$Udmj&T{NS@4;#WLERft6R zHqrz79)Y0%2@Y|pcCbEK+!7-!4EsffH8yr^?Xg~NJEs!4nagIAO|_}2Mrk8aI{k0G13oOabv%}_8Y_NSueU?uw@DWOIq{aJESeFdG4`cOQ# zuXok+sro!cKp}gb%dOQGmhr9~6pu!>|N8&@*$~>!$F@vcBrA1U5~a!bz(U4oQ;77( z=y3Y0v(F>vG0GDg+;1$ZpsdGv=3)vD|9s7ANcGzBu_MK8Xh)w<%}SfO-2iI+wB%qZ ztF5mjjsFeEx1!fpA>@i~UeEhm>!bXyq>8z?-nFBnrnIs$=S#Np58Y7k3;YhDG<*6+ z<76d&X!4D{DSeyFUfZhOCS#W1I=AU4XYRd$jdcd}vPNa^Ewf>Ct=!*!b zo;znj@7+_JRg7-eS#Yi5tW1G=eRBN@t(fJ}!@8D@N)!9c-D*-q04mt0@7F)IlCR2! z&R@?|8pG?Jz*&*0IDTJFhEL5~Y|d+KjH)?o7B|J?R_<`VVbIt8-J}KnPT=(eQf#bk z8h*L>c|R}3F?WB2s6Id5xC@$9=s8ep5gB)GyEQf%6(Wl{+elbb&a$L>G!on7NxHQF z*5E}0+7+ySElS5QQ_-FSerT?%^_}dUx)>xNTh8?Sa(lIi>H< z`=BKi=*bL}es-%&4ZjHMIPSL2k|yhH)3}=Aru@9dTC_74p#hD-i#BHUV8b?|T0Y44 z`jvU&4CxoyJ(@DC6?mtBhZe`kCVzLZYkR;G8fC8}vK4cRUKv@WGVOZbgVHvf z;Lr~gadJWwJv8;v(49iUKlt@n-C|}G@eY0{IzNyM#=g%Eb)~-ePVK#OB5J{|B6VkK zHxcAlqU*WKTlYI90GY+1U=5gv#?EnV!HYt0{X=3n?9(fWK4uFtm&M$ z$zD!h=I6h2o_}ca9O1|Ur5S5$VcZH`^@`sJf_W6S=@!--wnN{{Gt{Y{%cdq9)eN{X zJni=92RKvfBi%I5r~@CmSlLer{bH7fUh)n>&u0ZT1;mrYi$y9ao1L3@0^~?|do{rG zb?Lg1GFK~g4sPQ#4}Mvul;_f4HcZ!ijg1%2zVG)0jsey|CxpK2epv;FFNJ-ZKumbR zVcea8tjak=ilNSJ810I{#n@*q3^Hckc9V(+D#+O3EN?Wkotwd)6Ob^VVjM`u8kj({ zC7LUcpcG;HWo!!US{Rfod%KUJFeCJfXfH`VzPJ^2F@E)L@!0(HPpshBL_SbkKlrH= zdB#0lA1;}(0X>bMc*MMZDTQHr)$3nN!7rXgF$HMgsSqLyR;OOdblAv&yi=6C?q1kv zAhBirXI33G>&pH;*^dY9@?G_uksO#{J+slz?f_1VkTFv|f=rayFYuZXHN?!O^_R@( zqKWjvfY=%HTcr{ED#*qY5;TFAgY!h9_eeNEw87|KT>TsP9wsn~-^zt}9v3ZJC--}S zSC?3~6JFEcpFOK@2_Fs!5b{`$@e%phN)6-(R;rrFoY-5)Sj74KlMy7&sQ_wy@jagA ze64n!O!{Wd99_d}0UpZ6Mtp%VAbnj4X!%wi&M8cI=(Ik$^ROm49nq5Yv7x<(1$y)z zyH{Bn-xCQA06Q8j3)c?oO&P)ow5-GAF@U|uloNEGBeSVC3pfW13u4Qma@=~BpLqyC zq*mltI;8Zf(#*jVD0Ypk<2INzUruHpK7jad|4SdrJxk!t1E|CO?5EVmK9PrF*FKmV zl8V;WcLH`!zhXhQxR|nB$z9z+&<^iHkUgR?tb=z-yD`nK#)A6frByTTz48;&au{?q zZW$=iyDH<{qFa411LWVraZDutWgL!Ggq}Kv(VmZPmc0O-WEhP5Kx~6jJiwYs+N#Yv z6Y^jG+~7OJ04w#I>^9e0odEPVOzXTH71#!!u}6;iO!5iDc&sJQ{#8T+o_=L`w(I7U z#9AlEN8fx(cj#cxT^Kh4cfjs{mu723Wv2<CNNSxyBtWb&wweL7>%4@@j#gkxrE64;*rY}Yfa;xB`@4DgRTm&*z_!q!{XOr2B3Zne^`-RsW>p=qfsFy>3Igw}@@$?_?Ah2BOVk1W2u(l~oQes;hFPB=_u05s3> z0EXU6VUWvpveZd;Fwc1DjUww5oxwaSUYFTBuH;A}<}ZI4JQWfeWGQG1LTUyqgd_v> zxo~HxR+Wu2z4u5kEKGgDL^#=vr{Tv zH3W;Ciu7H96p@=dvN@irKW})PXFi|RWn$;pB}?*9yXV8B^47u61`*4*6%0|sSwEr} zPBGX_`>kH~15gjw#Nt*pW_P!h0?~z$Kt`45!dcVgSr9ogB_&!Kq1G_!(Z9DYDB#YA zd--Xxz9RV<;*)fo7XoSD-YEYOLdENXz)!`54X6p_{0A-3bmZ@5i=-&;I4hS$@5M@z zhz*K)8>8PgSzOnim8wBUbu47+IO1>|94>jBE!X~Y|0%FNH+w+Ep90lb0)D2GU0Xs? zmWaD_AMw4|y1XU>9a}U^&M1sm_n_TAoNkj3vCTB%H5sn;C|Ald-MWpPTE@b@7@#tR zS`(p(V!%}~5Ye_RISZE^gkK-V<4G#-s?5b+n!p-%&2i(W+ z>MSYFL8Mjb{dG9l<6}$ejby6)x3?{Jf3*b)!qTp2mq)Ga2UtUMBXd9C&jK5ZEw#XY zJrXa6+3$Vd|C2+giU=&x5^|yheYtZwkML)pl2}_h6*w#Z?~l{+qV#-BC$#&V;98mj zD>=dwMZ}Rds-Rj3A1)*?#M0-?@7cYAYX&#c*lG-sjp-vF2;KRsq{n^S5!eF8W~d8| z7f&-YncDMQy>UO+9IkGEvRP}Vdk?n!1=;XTxAvijR{VGga%>b0@R!cJUR!3VdP-~E z_}Vr7a+o+-%b~lt#;BG+uV;=)o82V$jv0;L1YRSRd^De6__;(<2W~X`J3PFyJiOF7 zdMu{ks9$x-mtPV6(8~$SDg+dBEV)Q5lx-x4YlXku>OQFn_!|jXk?ciLBYeWs+F;ti?HI_- z0f~<3@z&S_eM-M=V+@wG0*L`kt>|Twm$n>OjBeO&A$l*(Pjg*{gFRS`Qw!TtNN2S< zaQ@4@=^#iMDfq+Ro2LPrHX>hEkjM)0RUsy5_zim|x6C*4-b8}G=DijBInhh%AIrwj zm;1|6v>gR;#OlVN^uDqoPv;7C9*If*`K-VVkJJYr-7CY~D5QqO8fhRUx7v8vSDNPCIk_x|{} zaHJI<8Rx*fY3TOna$`JAbSkD`8i^*!MfMYB@*CuimD8V^GiIrrj{BJIsQ3UamqSi+5S;{C)i__G1lrWt zr-HV+u~}Y{`>($R&RlO4Xe~+t|1$`~jv0h{TuM*^?OgSG>I^Mg;%<-QXLlO~ zaHUQLe~bxOPbwArc!U_qQ4+PfzOl(h1;YnU%y^AfIcAsst{)v; zfdjt~mWDRIsl%_ko|EV*@|kA+ng%El?0t@9&1zEJTMhgO^qRrQzgWEJpn=+y$2$Nw zN=!DK1slPYS^oYncL6%LB)GXA>0jaNkLh7hbaN!+X;>Z+3(xQ&Gd59OOltcs^H;f^ zm;+Cm_=sbIHk-xE{euQ3?zL3vO|1k&)oz~SIj%$H(vf9nGD;C&>&S^b+l_|sJWko8 z64~0OAAIj9x~&SvHrKkQGkwOqY5})g%dM@nSzL>kW($%M@+xc!_Wb*S`A$lP@mb1j z(t9$!Zl4{4eH4qxHHkuAaZn%3`CCIHr^^o>m}8_LhzU|z!aFoqA}1HiE#xl(;Y9z~ z<^5dAoNtRvl&SdX>p?AVUI}JJxoy}+`c*~54?ZK&k5UCKQZX&}%}+z?lDW2-(q;Ul zBHG|Aev>W(;q2(<(+3@jV<6d$=}ncT(4@Jeg~>@wWAd)hVQuaRNgPGihZ#$`8lNm1 zry{TV(pCNc7}RUy9OSa?dt&k&4}%lY;b&H}1~vj|_Fc8N0ztzkIZm2w3b20M@iZ%G z?$vRZB4%DAr?kw(36VU`enD!y!x`@O8^Xg4Ry)xql&)TXBvUu{H69t(F@g61bJ*v%U^x0+hnhkb^cEqKBe5nHPnk z07OH(jlO!sD8C*FSoR;*;W+>QeJR>N2wMWUJq&zI35?3i5F?4=84Yg+*(MLPBZ<0+ zYxFTr9y`J8YlRMzj>@QHLAR8H64tfjh^bwzVU}L{Ioj2c=AlK)L%LA^7WHo!2M;B~r z=9Jh>Ve_qV3ECT~A26lGKzOS_IL0#PgsBJyP@PltO*Gj3&~Ytl=O3$!+FE+c{E``^ zkcYi677D5niZ_O8zGneasNhK0XEbSAh2bd4g!a`$`I)qtC2`ui*L~-upin|B+A;%9 zyO7^HbKOX&=*xNZ-odIkZ6&h`E*t2-IBf|PD{DfQgokXMsu=6sv7x^WnP9oh`!t(t zn*%qW8&>}zXUZg89RUxj)$V++?^o{}!OS%^j=AE9+_|dF9B4a0Sq;dcr*?Iak(EG< z-LN~*-POJZ*#Wk)o4uY61~o43?CjgGDvwjE0xKM^=0U!~T-7%7Be5!NP{(p{L~;L7 z9`(14-dy|RNv_1nng5K7B;Ai1k%WdF(eft{q5rB~wRnd2z1+%-1D>PEQJJQ?RE5e2 z;g9x6R%dVvnB^+-;)7K*go$c$dm;#sRpkO&-1VK>^yi!6L(f0J1t4Uof>uO^+}YUM zZ)ujw-tK~zHz|mfwKd#!WVC_#64<1EMuWqkzZI? z<#&se5`sj?B>j&2XM1TQB|Kf^cBQ}Q$&>(Gv|9sntfUEzW0y0)FD*PQZ7PTP;F+Gq z?r|Qce@>?P(7h_s?Q25NA{S(@-TW?FS?x6a?x2Xlp2)_B0nF4j?=3hoQJXf9U69~J z_VTNP7lHRB;RFsZdlg$u^N4s#;^={sP9Z_odm+;R3@-a{AL0(bqzNvn_r`tM$+p{^ zR?0qJ%>7>gmwJkR4i2UeiRY6QEomd~C+!C(44{w9Mrnd;*!3PorB}BWIEDxAB7raz zjkbrGCA31=tWBl4zy6LqFr+yezbrsxq_o{PQi(gCm7Is>#vbS7Zic~r+*h}>7*qj_ zMW13O7_WiZ=K9+X{Qw^IsgO>g@zPwwUh6$V(0Y%LU$C>^lQ(+h?aA)al9TA~3$zey zRj_kl?$i#?ViQ)`(^Eiv#k-Zv42ejUo7CYs?z&GI2eUlf^6^SJiYU*T&3=#*5?1mz ztZ6Kw^T$P6>Wr&KJ%3<--+?suoBQ5C0n-e^LVrcSf{EeX8-;Cni!9I}ptiJ-6UqL!>#%Ypk z#d+cx%?4^~ihWl3M~~>&jGJ{wC<2s?U^G;igxv7qA++bR9HCC|^R)eM|ctGZlGt!^A}7Y?6OOt1zUd*!!D zQDa44qf`&I{yAg48-v^7xy#>YT6cx6U=-;7`oNvf{oP})F&g+LhKHja*@OQLsnpWmOvHbBsGL&Jx!0_NaKRgFjW9_h!ScJK|bC;TnpfC`0zO z>6W1a2DaTvbxeJm&+I7=-T3$JFRUGVksHn>6DLasy*7@sMLER$gWxRgMglj(B7hW> zvd%jYkFjQQ$+~wQ6ywW9eOz#F@^S?WC<43XbFlH|>pB#V8wrV-yK4n7B?6n3Q}60< zGhi(q1x6YlH{S69^M;^C=7jLSFHih`6ONs=5kxeq%SZF+(l`I&?XxM=L`@b3R`byI zvE@jMbcO5GV`ZdS72bqOCptwK+x*Fs^=HeuJgj*zr;D2%KV-?KSjMg_3xP5E9z~q@ zf(zH!Fog~FVjYrnf-j;aJNLbstRki8CJqXJctR}ccTpk80ww2HHP&!%vBjfhw^vTLC}s zKuh+afPyq_>EDTGj9OQZ@21KYCK;Rq(0}mc?Pmfba@i?`-LjfU{!8A)M_&Bs8KZeK zW7lQv=4~!(`<2N`+lM=9tiKY?<-1tiY2s|smDYma8zTScS>pIe{Px$%_GLxEAY*Q4 z#@#r5BG7*@S9IoZL~NdDk3KvZ)Fw-+Y(F;&LpQg?G#O(#L?f$pHD*a5bbySt0{=-u|g3MIscb|Fm36X{RKN6FR z&yDZG-D4t!ezMFYnRyST;S3w~CY-oK`_Nd%7(_z@IRs}J+0s|xW#7d=r7GCv2k>40 z0Cv%$B$d(oF#0}>LC%g+s156LiBIMNwYnnQ?XqPQHSV>jWa}tMrGr`(G0Qam%#I@) zL81zEye33xTF-(OiBCAwjh7o%Ss}^JywV$C+H)9(wXs}sJX}7 z`r3bfjO8)H9gW>mB<5ze#h@G(v`h-R)QPDvT)UV+(bQmGyahw{0ZA(`b zG56;S-1@jOMBM)RRL=*jOWl7?=0b*UG8%HGogN z1W+z3j3Xzd4Ij9C{SoPuYIu-fhPgr*c<+xPQ&;o%ZPqRZ6P>9=kM;{eGnkl^gRRoB z1B)>7HbOQ2>f?f(|2fWU+~o5P%++SDAvyQZ84{?NupwGHR+0Lp)nCEYDYMvA5XSi3 z8AUX+uU!_^cVU3?bM_`Ocx12-6iNMc3gCUTv=Qtan_e<-)J%c)bG^_@gBm}jD;);J z;gA{gVWNCZFCBttR;Zbkml{y`lI1*j@^77YKytr*KCJhadFX`jZud(9bPBZkxF|k2 zKRoGh+HXGHoSp1vP|a`;cDtm=x^WFmuroIGp<2L&I<4LMA4`M!-Ux^z{*8kk$)+Ul zm*mCbSh8KYZ+6IRrnOXxLa^6+B&GuLk-~D`oMo_`}RyAJb%tc(DuVju;MNx4jKU)C-i;2T< z4B!gAmVj4YfES{w+&CMoZ2!Tx${F#Uh{o_^@cxd}S-)QNqnKLp^hZICsE3)Qfe(vd zAsOTJfxA5g3H$@&>B3;8|oTnqY3b-?5GPdC%!X&gU=rBzgnRj^`>-zH4gQkf80?d)L-hHG=9eN;dN zX4CdH(on6u-(@EMj|=;U=FM_X+w`$xVOSdSl>-?Oa2^Z~`8vhYfxquL$Z(IYL6sok zlP*Du@z>j{FVPkqTNUHl4tu0V`V)~^phc{UJod{Jb z>pywiZ%ozdy06KPy(W;`SB?gltt)k-d=ZSHDG+dP@sNDaLO%F1x&JQ8OVWqFukAIxj~8{G&4CdwDg4Eg9G7 zW-TnPagedIWvu#9Ey44r)Tg^AL|uR!@Zlq}SJ2m5SK}%`99uRD_>_8-Z*FF3x9`o1 z&p1zsHlQvzw~y|g4v_G^y+G;Xmd$YCQ?}es4OfNYF2(V~!c}=G4PJkl($~6A-ddM# zjGMWcq=8>wk!ix@2q9lGyv*xl?Wh`Unw>4>a&q;0gMlOSUdVG&Tz>yS7jHILscj9n z(Lj7%Vu|FM93GOeN}{H#;+*@c_kCpc_k} z0-KwqX8$Pb>s(sjTBpe2$aW!4m8N)h zmiY3O5+yXqOg)>H1FZHDGe|4iQYS0ymNu? zpZ4lr^1O2~jtpUr-t0`U_LfDQQPnKy0l8I^TrWpYHZ_yZa7J<019{QR!jCyeI}1Dy zO`JZO<>MZ`ZpvQ}v9RFm;S~{YIC-q?$@ee=y(c2EIsL%=-`XHnT~wuicMG>dRL*PB`id*#hbR31zR;K^Q}Zv?!RnZ z57j&$y@{@c7(b2bo?xt6J%30h^|N9ERfX$%)}8K;sB;*n^(;icUbx;o zJ~Y(#>vdFcJ)*}i%kov61W#p7HnVu?DjY6|BR4{hTXVq_1JRne8*$w5P+U}Ak^!s{ zEDX(lqQJQ+^p=tUA<8QMglY=uW1D(Z_ND?=7 zSfD1(8q!wjNL*%^xD$HP?t_(;m8+Nozp?7*4VW^ycU1d)Mo#7QX>{=OLCjA-)@FY!s)X$De3w4-{5& zhGOm(LN2St^Jh8VE z{9ta(D%1?9-{?3MqJ`d2IW|EXR*Xzs%HCAfip07wc91$<4+YK-s37p@Dm(HpJ9_IN z&K9A!Dc1|zY8n+MT^6U3u3#ryS<9wwBzCY-0zH}Dv(6sGCl~l`2y`y6l?Cqt?3-CS zDn~CKQ-|%nm|QRW){yt>v9_h&wb&6E#HAKG28)Jmsy#yPm$!_PSGCMk@>v6gNGCXk ztNy+*PJx~T^v31riM~TJta5S9K0MDNHc6G|qH-dcEgp*0c_p?gR@Y+-3j*&`2Y8s{ zgRd%eY!&gC ze8rRfOo$irO`e4dK#Yki)`*IWvk%_!uxkQ6D7eG=5%dloY^`stuOkq8(qX!t3RiO1 zMi_U3H9}?s@d&Z&aklmxK)hvS3n6!_a;`_e!zz8(5(UoWdzUVuu7{7x-t5P4c2g{H zs-FRA-rmUsy#d(^GOX`Kr^L_>(TfX3iQFeSf>IF|DS9H%hGDp-qsy9~s^Tf=1u!#0mrOsOmH;P>m$ z*7dC|gj-v8_cv891bV!PDeT%syThVbw?vPRTVNLBZnA$CBrjFqWNDKR>-lSu%=BJK z%`7mzH+>9e-^|iYnd`keDsYDdL<_OJwcK?x>XJ1E3pEQQ2uA2~=?!xt~TpIkX9@3n7Gx#I%w>+a^v5CzQ zUVbPJ(FatOm5pX`^wh?g9@(SgAw)pe zbIby*pez&OsKzmE7}TTVzD0lZ4cnwqDhYiRQ4woV$q5_5FkCW?qqm-+=hSTgzCdr4 z@`~Y~kLEl`uYD)-pB#;uMFQm~a*PPxi=SN%J&k4Yjy(&#ffGtS>Q>k5TR1zbXyN2T zLkqwT=$&JUlkj1Jb~3oa`mi%W^hR4eEn&g7$e|nZVuaD*j(r+yj`YY(g`RY@E;)J| z8yk)uf%G}f`eoRjV$xr?;7(zcX9K6wnjU7L7cHE<>vdC6;2ibq3B7ZCXozBg z^GwR|p^vz*`B>?A%b-q0ZwqZI6c9Z4eS3R*V*|^!v3K|WH1t%9bh~94Gd7@BG7mjD z4Y444Zh4MhLeCzPb$Njktt?>g8qoW?e>Y1fwfN2D%ODTj`Ex_+*u$i*1@`NeknC)x zbkOAZldGAIu8%9wlkVQnIDI%{J`?ZL&Alp$o&|)@Uk2#idI26AIIT;4ZS6)se7c*m zZ!YK^xN^PlJy53t=l@SF^w6Fn0ljx!+nC-x6ME7!Q@y*Vuu9w(5hxxhmNoPZ^uB#`mUxwq_HS|_6QG27tOspI|V0Q;g zgwxO)X8NuA+cG0BhhF%eMzdI#I&2T4$k@Pn3Eg`0{=8ma;OwMqAQ|dk+eB zWNAan;p0hd)k3$09u)K?^rXFLRe?5aBhdR0liS`@^fK-1wkYjMI>c2m^yGce^NybN zF0i->@azS+K9H<`XsDxF{Cp7~*t0>LY~eJ;=hW5Ag4ta!H$H_KG84F*7*T7PAW;bP zB%qgi@q7V#?`|h0^g=*SWmD+EspxGAy)&sCdUQRa=k+`+Ko7IM9^wL@lr8+cUVY)y zUK4cTO5wWRB0sQaa`0$+CYqk3*T$os1Y$iExcme~a+;)LJR2MHYZ!@ne3Cj6)-Bv) zs|seD4u1YHDbO2N3%$`(e=)jxUm51cDS1^AZkIw2z!AJa&jt86eiOduj|{P{SFVNg z%BMfve!AD``swx$x33gNZ-74a^FiLi8*1RRg(EmI?M$zW$@SVR%xBU2nLau8=kp+2 zuO6R_np6ND7N95Hx#Q?bKo909^p1v^&iRE`M}J`dvHwZb|F-L~qQ{XeFL{r;ePrk& z>BF~9FqY-gJ9s16t#Yn+r3dfvy8Y>UCDFTV%`7Z%E@Y!w(nvDX&P?#s6HHG0X-BCh z>(xx}AFoP=9%tn}2zIZ#7f69)tP`6ga^hyYvwFivU5N zK5S{O=XJd`j%F!B-qXFN=m+{0JVirq+hR%-txGPPc|qF(scCL zq!K##`Lho{gA#gpfXHVT(95*9oaxMUy>|+ZW`XmuSI^jU^wg#9?|t_%oZlBh?{@Eb zGx%On*Bgwv-izu|2YF-gshMSVl}GO{_Rg-yr67#s*GMF+msQTv>aOPKmi5*fCxR|^ zD?y0J3L+AV;KGFqZsc4^T#!vhPD!u==*b?4sewRmi_*vB zZ6fm6$pXn)CkHvCjuGc!sadoYDR?TwO0<$KgRs+yvtW3BoL z6MUMnjxBLB^iY8w+K)|`M=8*a<@vLo;-eiU&`X9juKi{7aDuvJMZ$oSb0UF07(LC* z!e^aOMzYz|7Lr}uJk&aLFVzGQ6AB*4)2SXbLe*mGgkBmd{Th0n7(J7Z-Up!P>CMvd zZhdOraIptydH$p)M$eQ$@0!K(p{+mEv9zq7i>GhmxgHL-q`k71|F*!J)Q`-jcC_Wa z%|oq2uhO%6Gny7j7f=g$eujwObh89{1?i!8rdzE#PwO0fF&R0sa%fN&d(l%ug}~+c zDNpekPYLu+dHTEPDRp#HFAH&}TZVKQS+M}}ilda9B_;HRQ@wv^^(;3FP4+^6Im?K! zr+MEwt_O;=$gPYfQLKj-UGMZQ0U;YghKeS4a8J4)66n#Y6%>b_C!i++d1#a9347cC zJEw0gF9lljw~vV6?Y zUI7m)IEzKNI4K40?EM!*^!jO#t=0RhWUgyXm8GtA~*v$MtZTgVQ_Z3+##2 zGrLztNi5@Jg%h577h+}Ef~hgf@5y+bOF`9BfZkbDy`mO;lb=yVt%f=!>Gwf1Ab%e5qPJNV9NmaS`?XyA(ad^*|mO zy>qj-hgPq@2H5H$H;cXnRVs2{T&h6w5u=AL!YTyxylfI!3S+__-(2yI$*i|J+X7{8u6>!< zzeB24PYvEa$vh44I2qt}3G1CsAY#bB?FY>oD2KmWr5M7+|#486xSP~_hSt(de3aU?kt&tmOw@e4U(_K1IYba#!qmbebX1E-B zP6_nHz;T7*u0I&HxdJ0+iRA08^PZglDDnR34LCKrpvfUfv~xjETmW|mCr6JJk72+$ z^lu#vq{?>SR=kUgGZj6Y->m#aw7LDjgdRC8$2m?+H>|v@0fxRLmTV;nK^?n*) z^qynDi4kYUq6?wGH{vg#o+I99Mw5^qAIL>aO2@1*dZq+=5xPo$YI0TluoimR@k6>t zapP+Hf~wYF#ww_Wo~aLd(8I-qkH&dJp@om9yH&5LbF{rWvVpa8q8J3_gn~5C6XvAd z-tn{WfzG=MW4wH`P%Mm&(#D0^OaHai+xF)V3^00k!An-Mvv_kof)B;wdVzhl`{JbfJnx~}M5CrwKM zdS2&;ixtNi?!BYcg-4YpeBFeP89h@Hz2s=M!k3`;ow~DWZQ}^z z_*pW@1WoKll3Q7JOfhvNf)9J~wV?EnyMwDOObcDMMO(E&+blIL-2(Yd?vPtwwxCD6_41vWU;O1o&;KCz$2aGd zIrQp3eX+41KZQY0264i@i@-hkTJLhj1?|>DWsjys`sRo4Zh3*z&}Phg&|)AQxP=@B z?bqwmKuKNkghYB5%E4r^=)%+OYej2(;brG(bsoLOvz_gw$j(=r^XLt}?=Pl#)(q9c zsZA}iq%4n|cIaU&ixfEb_rDA`n#BkpMg?JZ#M3ByUR-0|IUG(W8%Na@xy(|gb(vY~ z--c+MI7An8EWTPD-RWTQa^B?mgBCcu{XW(7h&;EnEU=TFJ!P+2KWZ&c8b=;_oo=VK z6zTLE9(qTO#WeQ=pw}+f8A1q6EHsL93kA-Pc}^snmxb3lp>91ivwZVwumb12c`~}q zQPlqIL{8G45guIw$^vxPZC~cKO=p#}*L1qx&*^ zTEE!aCGfbe2cgPdRSKM&>!{}7fcsy|dau!(NAJPf`V#Jfp1!^_k6yFUTfC1>JxqZU zjxKAta_^Hn7{W0S!mgmrdiUq+O5I zg}e?57tyflRlynH%jVt3yb2=eyiM45G?kulIo;(JpWnN?fL-cGUG3JBL7Xyx8awx> zui=n&_JH1Uz=QPa{W39kzK z2d~pu5_p#{#YP59p;K#O zd=Aq*Q&K16lo5gq5k!E0nMLj4^sKaV&VFXIc$(msAwxQGkx^RtF$cadN6#fny?aEx z=XWJg*X$ayOZ|Qyqbz}*SUnUtn=RL;&g_-wRo-IuTGx>D;Tbw8>9xAMoUOOX#k_aR z=7J_n2AIA2_D+vOt!`_8Px7{cfX+n{ICt6Lw2T1bV#Rx zQ^TaG>3~Anq=aS&RPr3&Fp09v0*mP|8X1$KsA$a$^+2F!Gm}OsXc*hn#3P_rFl9im zFjH%&ut^6_5k$t=Gh^a$5{;21Hx^e(&tTYQ*(9UiPRBN~BZC6xG#=r1kc&-r8?M1Y zk0yatB58G%&mc@`=*Ag2L{5=Nld_6Dazk1@La*_l0ddQzdrLYKdsWo+oGb}Gmdet_ zyN~ebwePg4mM1fjk;!ALw}rkv8qNX%dwVo166Ev!N9flJW%Z;0)@H&;ltlQ@A?iX# zPN;AYC)n4_kUY+FOZc6EyK!u-9RovSF075Mv4HR_Pa+F}k~ktAAdQTf06pX!F?w`> zr3vNbG)N1W$xGouMc2MCmy%4QG))b_P2y2D%ZK_bvbp;wzqH}1H|%LdMgJxwU3~Ol&;M zb6}F^GY>s8jqJEY56GS2D4@**Jqw%?L65V~rW2cw`8eO+uG&23spg{>|40fxBk31IjG!JJ}OR529@W> z?~&!;xKb&Ok?V#sI5|EZ3{Fm--!#MP zUHM9uy?Z<>k~4a|tR2};Sj`P?u(5VUEU$%H~h zHl!Gbk_nlqG)KKH$uiO*5obYyG^JLR6yP8k&KEcmC7JLXA_Fc&Su}f6WD~J^P)=tF zdC*Hdap3u8PV^j9zC`IU=q$M^Ll!vcqoHkl?%E+C`kKU^2tg-np18Umpc7Bz@Ofpk zsN7Tl(Cfp)W8&$ia(rAleElB3aePo241PYWy#D%z84BzN#X;ry;k9@FH+$#u8cPv{ z@pa!>B!Zb_BAAXDV(`%mxr^QecYH6J{`R-{i{a8IynX|9Jdo%jFQu+|9BrBkEi%I3uz8+4Zc1g39h&wUe7B8?AJ=YApMwUML4SLC< zF@z5LO_216V9+n5Jo!Na_q#HO=A>4~&u=>nU2BAZ^{Aq?!D9JA`xw6RwdlZ)o) zou8imad9$1TdZhW;;1;8p#FGp(X?%dk2p9zDkjH`(7QN5?RWFr{92FTfj2nqYLT!b zL+hQm&(IEzFp&)4=~n95(EG}Mf)<#rb4tMaAg;hL1%YQbLFT!3r8Ln8H^42$(|fS_ zmOd~2eyaw=2j(_`tK)iHxxlGpZ4T`{Fs+xs2X}OS@MO}w&*Za{lQk)FTr?JGRvkP! zXqtU;I{AM0;CpyY)#PMyjsoy*eEX9>PL7VwCs2HNqvOoz(F_^f3TJO3;NE&GIJUqZ zu+xn#QRUQLmWL0qR5q8^TXKw8#8t&SPjrr#WMIr+V&H%3DKV*d)>3BaF^`Ru@Weli zahJ8x_vc+S^!D3g7K!8ucQnKq*2+@rRW_O~-fHaV+?_P00+|mE4t80jschc%87D{d zn!?(&z!Bd52rnZ!@kY7P18rvWR{L7Qc?;-mVMJXPE&x2*o)-At0(u`zzRNwhK#g;` zriq9KOj+_A_^c4er-zF7_LpOl6t+jYg3Q2|qbI&Y$X?GO=k>3pxQmUxKd)J&_04Y3 zdHAy}orSyyaHjQu8hwRsJ|>sUncM|EWiK3zNQG0|dQ#z}Ju(cbb9X&-vtSNqF0J=v z_;phZp%5^Uev%Oqf1pgG_>##rE9*1ct*nrf>d9@x{i9?;{OA+f`WJr{DJx71WT zI0n!C%kzd;)BM+GC5t?oNKUgzF#KMDJOvMSez>bM`#4qadGrdxrzZ>cGNQ*Cr!ZJ* z2-jH&tMxkC)C-M0+9Q+E1&pbGoKx%B&)b?~h{nK_h8#R+#4^)og7}Q^FoIYx#l&u6 z@594$lfI^TJgl@Qm=Cw0!S^p^9a7(ZyW(sX>11JzlUrMcb+XphV;hgituE$s=0h)z z>6Kw|y8Ph`;K4S_Mu+C7)fgc5T+lAghiiKnTsX-ot2?^#bT@oIl5_TO%HTqmL+Un_Om!Zok_mlX>)>P<$Xn>WoE1(u z2o~x|JC9c1J1v>PDQ&%t0Nzf}c|cE>%1*w^S>ZGy(x0_CdMS2k9?zR&!ZYoz`7540 zpYKZgte7t?;$gP%#_!Ln^$vA(VO=DGr|^k2GF>R^E1V=w91|9bFIR<=^a*=_k9rS( z($B)3Ep>-IwD#2O`)hCQar$%?^nABRN?7`HPnk#)d}^vduP*PA;NhrBJs0=o(|1eiq7-s(HFPqYRQG(YudvZH#q@u5`a3bazZ*B zU4Y(uU8a$VF~Em1xbSf`MCm z>3P<@)U~Pi5@)l(<9;V{NQLu3FpE@JTQ3mD=%TMB+mJesvPF|D!eS@rKJKN?wjSUU z@^tz%=5Xdh&m)%pY<=J=jb*BSj0arhnVfneJODn;pR)K3P}z+nvpw5$?Tfhk`ip6& zO!loUwZ^Gt-&OC04Hv{~n;lL{Ab zJxbbXfBDH9#HO{ZE}M`AFG-|t$q9o=9rY?={T;Mq*1-jAcT#ak9b#Ras`Y4@#n5v# zObIkx4De+dQdj&+VNXo~iXYYtZOEbUfjn46Vq5PGm_^Fh*1MActLF1xZl944xcfW) z->!CAbNB>t5lqoi4)sU}{q z6#ns^7A-B4C7UpX&fmCXnq{T0x24b0?#6nBp1+fQuK#|%Tz2%n5cIkj*rOdz>*C~8 zGPds@%d}Zm)E2}U#5v^k_eHzQCF6^Cz5Sj7bmSE33{|hW^Fyi%zOqoA%2UV zmOG=zVFes)=)tu%T4H?~1|l$nGc4D85j&}4CK=5l%}Iqb1*E)|xspM`+#Mc#|FzNF zL+aaAHz++?M&hC&IUcmbwz6*Jg4w|hu|+RuKJe`%5 zIz7aN)44Isemj{j^r-WIoc3_4>g(X(W+%F62;lAL-~#HKIn5${nP0_}NzL$|Nb9QS z{{G=*`SmvUTyB!&FXu;3r%zW^-0p^~mNDFIT#urSy=WF` z1^q10d@``7^T;-KUfsg}ZW2d9jvLuio<)~Ekx z=(TQN!Ubf@qxUY*bF%CsnI!MHo+v%#PPHDy2KICcr_*}2V8}-IW&z7VyW4+EtvA~* z{u>!o;#UKo+MiurVt&w5g~u)yXg!sdR5yh^T{1-U#4rmjl8Fi2{}*~0Dfs4HVn?la z%|qr9J>6+&bCdAJoh>C+h3yKk-MxtS+PDxA3`{pj2VBDUALqcg~Z zgHYw^qM>vSr;RM=-?-jiEvj+dD=U((8yKSy)?yXP}NUIqy1_9OS`y7si)HdkFJYq zTGvn8`yg>TZjbu~o?iE-^|)QtgJMt@{V^f~yzAVc*Ah|wIJCeJeJrSPJ|~uuxZTOl zYr1R*b2!n%`Dw;+z2zuN>M@kxF5FT}Q`FNxc+9NVoiJ*mrI&nqfQ`4tp}F+DWjRyf zHLGyKDSB6Am;Cl<2K|GY z9vlM1;b?Bq19htK$})DeNJnR<+|U}QP9w|nN7nYR+xTxQFB0i7E z1)&5yNU);(({et6hb1Yy5eq_h>Cob-lS_(1qV?i4DLf;re73zAQ~569NhJOLSXy%A ztZ<6)Y0-Mx&7$ND(FoMBq1PrjL0wl9;NQ} zf5H0*dc)zUUlhOKd5YdXXv6h>K#vie%?)}~c^pz#rKc;0HgKX_I-|N7R_nnSpe|g% zrm`4O&u1Va@FYIqk8Ks@MB1lJjHSy+O9;qIkg@kb02XZIp{&otk=ieAjs z;$vEHBwsxG1Tp5fcjSqEe>lqcRvEP(*6USVxd8a0EkJHI1bL8lvry?VHtw%Z>#EBN zXIFmJe?_nQ_t0yP#|6;aANMMtSJk6oKyPpfz5RJa573c5QG1GBu==h$I(LBH7JE1W zURbXu2FWr`pZ1(7Jq8RAS!Re7r>&S8!oRSCyTNOPyI#Kgqb0`~@2#$7H)3M&c|+Dw zQ?1AR3L8Qc(a=7E=MMH(WQ&>jhQ=K8O1s`(R47LNAzr!I()%SeaxK> zOBXs^r4A>1sbf$N?7j8y{e0{7Sd}Y{h%1kXRaAz-2cE8yYQQ{l>Z3&nG?ie&`9~l# zb0Cb=mewfz=1tLd?*`qcT2GXy(~c+}AMO8T=*_4N?ZZs?AGV9xusWL+!yZm>eO4S!hlAm>NN+el=mEJ{OjyzWDELw>9= zF}v}{PGdAtA0q(+l~_ngtW@KVSfN%BUo0ZTY7s1`APQ~X6hshFABxaF(C<0tyXWk2 z8aA36vzVN@GxyG&JF~N4Kl$F@7ncUXqMX(5kDOlCMtTJQ%eA#jm)2wxbJgQjCZ&Gs z=Q&vpb1)UpHy^i9=i~bqR=thKH#*XhOv&T=da<@87Ws-Mbsv@|8(jjDg}>9>tK~=; zPHf_YI5CbHYCoz|BdO}iD0Q6;P-O3UEO)X~QuUbOiuy)#7kI|=nlwm~fjbx(N)>@I zk~vUxFPTf^FyX=f>Prx}Zrq9L*;C=D zw0wp_=z5(Av>TX^h0s}xmZ(%ML=-u(NW6#d{% z^YULutl`vyFEoT5rM!p0omO!!z<}P|()66Dp7bLFdLNb>rA`7Ye{~^Y){JH@FW5PN z;v2X;z^Qne$2( zUG_wWF8Bnv$ZqyT^`>>9q3QE)lpCckKf+mYeVf;lc~GdAm_MAA4S|SKf;1s*%stf* zGr!5U{$2c3UhsqptvNYd(8mD1OM~dGuVEv3>-PXl{~msmV z&d#C(_Ba=yE<*m;s{o{`Shg?!zxg2xk2c|lY2u>k;M0@?7$ zMSPl}NBD@|fUVtg+yyrMbbl80HD1k7M?!?D#xRq2OEk}P*$Sig#6}0?aj-1g_4=dr z#@Uq&=#i>8Fp$)cdCk+y-Vw`saJH8E1m&-(6)iUV^c)=Wo4u!|k>AvQWY52WkqdhT z(W4$UCFG|ef&2w$<)b)dRcTVUJSp`DSJWX);o+wZZivZIjvkxOiQcMFXWl*kkO7Ra zGepxw2gtFwxMCFYD*e*vSw}Km?u4U;h#oeXk4&?i9r8uTJf+2@IU{)ev{rH+X}q4g zCL7c_PlPDm#Kgixd!daC=i)+7TJ_YXQNt-^y@IMY>+HBe5+WF4h>a(ydkW$ht-%8| zE@f5qG!@EdUQ%=PXo249sBV4kx_KAhnLSrwpv~U4{I?ODF1u>N$FYrmDw}uv_Epc}m4& zTp%9lhFEFzp4c$ehZ8mS_++876oNhp)FC=4boq&E~j!8gnw zoUNIQri^is&fnUlk^5}X#s!F;HZEufYMUYg+DFyHZav9jRoMg`L(U-2PH%DV2{mh-Q{QN@*1_U2mI4Qx zl|1{Zx2FA9P}mdxzWTk6UVb}<)WsD(EgPecUG?&Ky=QbrGJq%MOAU?p$1YeEXJ;xK z`C`bM85nll?g7jYEM?=K*ZDy=?);3QnDe6X=yzz5Fj92M-+x5v90Y!Ckr}I>wvu; zI+FDkWrOP3NZIoRR~oAQ;Qy^P?D4=Vza|!g~Gr=uz{cRS%)Ij9Y-Ngy zx-E7B(JMCv?#B-vx3!L%W`BLq{xN#3(LxVR>QdIT0ek0c?)Ol=$Z>X31q%^$$AhX- zmsFbWoeuOm#pY(gKHq0gk5a>e36Z32p|>yxXCr0dP|t#S-%Fy$d{xW0;lEoZWAeIG zw(N;j3r7hI-iBE9;~ADBl3h#o{r>8@Y;cC&b7Cvl5_*1jJTn3?_ah0d{{8D#v~gjB zswbK!lGioC^TjRGTI$h#jA$_wa@bvt$s>~NouM}bJwT^6-&E?b$?;L-II*kf^|W!J zx1>`~KPye@FTed^G4x0X9fG!3w&NPZ7R%j|_Q^_D{pViERpJ%5@sr|S1|%7`CzHLu zze-ydr|5+Nz4**{1F~$-)i?*AOwKZ%>C^YG26lUX$!Zqq&7!M(abl!%*1QliBW2Z# zeqy=4(}4tf-qv7_c81=tK|>~dFxGN{K3mNh1BSF=uLrZ0Ex{fd7i8Y|t6!8tkH32- zf&udxc3^BLc=Rn$`6c>sA1_M6=rk#N<*5frJODjf9X-3V@^{PMB+ePqKqWpe@M`#W zO#-~HaJ$|H>sd6*3C&Ye>fks-L~2~%fpDcVpsQY_JwxxGmi0J61Ux|xf~T!|b8X3Q zE{N*&rnRVtvYym%eqIVa3WR!NBu2@qGJInmA}T!b*o0fl35|H!$f+LrAU?xCqK4ke zDs82X-XH#7gJPDMil#)yhPZjlrGLfz?}OjJLXv8>=qPoY4A7Td@EXoX03B;t96eXF zpo^OeAkd50Gu8X2bF z41MD{U7Qs}5309;;d(I7Zq8T*CwA#c2Ft3~$o<7UWG6sR!bu8`#jLS>>VJbCVAC9@ z&46pxl(zH*rB8;b_jJIX<~BKM2yF`=l|s+a2?c7Y1lDqz1WvD4AgyJm6f53KP19g- zYd?KP(`VRjPt+5-P`yF>_4gOW9KFeF$@Gz-dab%J^W0_KMLaT{t&mdsg}YDNsdn>q*=BFyi^i1f+ksLte;epPl_q-SIbTuu=2 z2*>M*p`d3&7gY5+xoM%c;8zSEVun-CUVUeCYV*~Z#@Cn!`ef1j@y@q$es{O=&0b^g zo5l;*JEMl47&~q@v9Vq6A&k{i&9i|Es(M`Fi*vJ-R6R;wC`2v-1yu-{U|9Z=sc~+I z@fh`o;5wM1qB6kFFPey-p$vVvY;~cjx)UmW>hL89$$T*_M+~;Gr-`vzhpJ0`(lSOa0aTmuM zdn$i-I$-hEsG;Wz4Kqu^n#(o}sr@NAD7k_U05fB8In%l4nap z*hv}RK&3HsyPCxroc(pmqKDor9rh&S%cX`6o^iu%NQJu=(+v+)7GF7 zJue)Ray(rb3$Ej(`8MiDxmFYxM}?EO#yw>_lA(sv)|C~_<5*c>r&XLd%BZ19M=!1N zl~s>{uJ>!%-kuWlCf|JX1564%V(9IRDtc1ZYqBegOg+toEgxl3Z!xAt!UPc)FP2li z7Hqas+FGh~2*BVYQZGt$rDuq1iGvSMtdjKD^$LO-O~rs&*{Vge-#mRuV0Ymr`?2f2 zIOu#ww!_uXyL|cb*5xg@K<|AF$9JNk4sO;%VEALZe;|FdR_yO8yOnR@t?vGyBAJ;r@3ibp&eb4w5zL{q>E!h7& zeNiJ47c{NNwBA_Zz*j7U9#@scP+9BE0`B0L<&+IJE_u#`Uc(%@(_rdA4fHJb%J%j) z3VV|cpm)2`7zOmCfVX#}apQAPxHn?xH3L1k2~Nv0(Y97S?3@d5skdm$IirSChRS|a z5It%YG3#@rF%%-hh`(k=!WWaDFg#0OT8Im#F3N!#FO$ET$pw-MTOBl@_o6o^yeR0s z1iO402cl=}(OQ+iYWifu5LgLQMx%ZelX51rgXyD&{dEgZi^Q^?%?6kzpjPxm`Fzk& zYD<9g13ha}XM|)pUw`-O?RP(EG)@-1y<6Yj+H34yzj@>O3#i__b@R@sH7;;EvUzOE zUt8(JQM-_d>q%KpOsBwIlC{)1O1%tvp#z|Z+QY(-LTCY`D_hhw^>xBzgE~cC^+@S6 z6;o5C)1y;h>8mhe?m1D7TTQ0ug(-SrzW_b4bsj@j5em@leFZMV&jheFAlR<=_U#bC zus)*bc)e$AX-l1)#Uu|^oa{W!_0)3>r@@!Ao5U~Ia6;}Tr>15$U!TGG$)eZU+1Zh^ zovXVzzHoJ?F>2^3a3Om@&#c{+nE)|RU9+2uXw{RU3rpI%AT^u?RgXVE<%9x2& z?j~#!Qpji`8g3LWz0qP!=%|I19rJBdwUbykd${yk!FDiuzX^2keiQW8`$qI=A+-D! z@L8_yhg1gn29!ElyfXu3=i%JoD0Nn|#DG2JFHaB=T1WhN%5$n-Ov%aPiKADu5kwC) zo3g>$3Lgw5zJ<04(v$ z9suNw@3z#*oc7_Awml3}w~61;qW*S4^jKzdupEt0B3$>#Yzk&jMjf*)#E}82NZs;1 z8NDBV-a?h88_)|=^pgDzJXUJfVnemDRTbsjHzo)rF1*rE%)_aw2l!&dkXEwf@p|Nq zN0Q}U7ru)g)1IMsxIsg7+Koj41b9-*iJ7ORz$f6%Edf1%XZ^@_-Y(a;kV;^rB^gUc z2a)Ge=M)XG>b~spb|oBb=LtR3r-c3b(`#yk?_l(3)vz~GMbCiN{{&@K4-I=n4^0bQ z>&qgOB5_G)U3MX>UKTrS^qAq~g}5gB8G45->&**tvb9zAq$7*B>@5mUgp{);f z1uCehje3C40~{*Kr6;UPRLTLAOVqTgTGWaHCnRn?x1XS&fKS4IX8zu{`($YLKot8BJp4f{+LFq|xY6WqLS$OnqpX zI>cLQ^&Fbors!>r-XWrg`hUq>55rAyvw%SOH#K+q4c+8Rx3)wM=hxSBL~jRn%8NdX zJTx9X3h13UapDVU@GGPyHF zZ_BtI$%Czv4l)46=*?;t=MiB~$kVtUs!w0Jo}bmrLp5nziVls;lfQi9R344q?{Kat zdI0Xuojd4(-Ye1`Dz~(16-`+X!RtK1!GQyZx+{C?zdnS$p9Z>>gM4Ddgp-NkNKlFlAl@*{MB%v zcQ1HfUWE*3J^Lrq0(zgOrRV`ZX*eIRdQgi)`uXj&Zf*G$vbQFI9?Tx|r|IHU2WQzL z>gCMJ1-Gk0c8}-EB5(6nc$uf>=C)HH^FJwp`)X9kZLUY>CXhRXiJs7RNV8dxNe1-L zggrzTSob~061X=48>0ZK@u$QjMNRf+0W+r>FXIti5#T6A&n*kO_p3Tpq~Qd5O5M^4 zV{aSieI||QWx?9c_Xm1;@43)Q{46@xgDj$6LMQMQ{9G?-jxSyp1>s4nzP-h_g?cn` zRqCag9MQ9=f{rwC(F9JZ4Iy*A!e#lz>zBJo&+ z&;diaQh1r4wr`RquRQlsx5Q~&G2+Cb6TMj)Jsi4d=*T;g#3|!VRG-dsuIEhI2zism z)8F>@ygY29Bx#s9L~mn9q5kJ-UAXrvSu^j-!v{+$BTvwC%Aki2<;UZq=y^F)K5_Ku zX2E2yLiWHN)J!UImT+V}oFQmV+IqLHSIx2u5T|LWWQH{jg9I*qjAm5-eIaArz+CUtM)L`rwE z=!t1eR1CEuq+9vheRP7}o(C6_z+R=w@n$Ifu0eI@;SBLQUyGXW!Z^%%LZ?=5tKb5d zlS9BmFLv*cO!aVz-o#{YFx7+I!)7Ols7qO-mj=DoP(n%{&J>9w$R(h+gww2Euh(0W zgXr1fA#|!DxdV8Hp8M#1VD-McdiiY3ZDlQ_j?S_;(UnWgpLXbttcGhB_Pjyf4$>~O zyL7X#4w?E{G_ptT(7mA{b&W1Cn?*dF=dOSI@}L*5d|;_4EOXn}JTW;{_cjbNu!j?K zyC4+=K22xmtkIiGLG4L+V~>%-jZG$u+&S?|_iE zEA(dR*i-;PAMw-LEE-T}I?KY5!-y?teF*HOzR%FB)t$QAKraqf?_H<9x>KMpREl2E z!?okR9vV-eN9%|VXAx67Z6=_X)*nT$KW;fq9z8A^!qNrVRTku_to$^^Vt@$NIT5=| zR4*YcA(3Y9fWTKT?8fRDbqRFPo4QIJD~2HRvmkq#ZWg#W_aA!QhSOH)#c|w-DWLbB z3TWurhfhU3DiqM`dGt)Zq)s=B79>M#0pMY^ zo^0~9zY@uIfL>5*C@S7xa( z!U_7+=wX%mmAu_7%<$qt`L|yDDK8oH?16T8P_H~P=$&-xCviJDJzm-4TM`zIc(8SU%#gX4XXY_1q%Orss=(z!>2Gntsqi8I0;k`@lWGDSW2``kR z!Vb|pc8s-<I+&E2_DY(^Br*VuZy4%8s6kvf3&ke)*2W& z;^3vrPt)i5#8|6WUuE8kc0@1e9?&Cu(hZ}xKCq5;xd{5B3kdFI3xa~>@BJ|)i z{`=p^bwg(?8cM8Qb5MVpewMkC(N`)pqpgje-&#G1DzLruL(Vd0dOM!$&6>&62I$an zyoshZ&wMOem*pKS8DedgTs@qgu55ay(`X=Tu~Rp|=01t!c3Psir2=}44N!f~?I^W+ zK~L7s3}jZ%o??2-($I>dl|RF0qk89q+lCz)Lk~{H%=e#!)q~lq%YG;7;RJh3pysL} zZZ(8fs>G#Hp@nRaUBUBQieB~+=VBCLyz5$K&dlj!dHl2h@d z)9Pb`Ym8MIY1R2m zvKEMT3{ARj?4E9RJ85-0^*WG4CnwM|=cM*fpWaKkpu4}J77mBEdPHxPgf3Z_y?DWC z^|5^@_29Pd%Ptjm>Hl;Z|NU>|8rRdkEj79Tg#>CvkI@C3((4Uonc*^3P?;8QH*-B} zJOLdDwA$0GJS|PCPrs(&1u=T(ujGhco1;KKC2P0ab|sd@$fH;DQuKl;>$W_4L)>=j zX;oHJ>Cq6-3nF?!Pu5PII)jG8&lHt7T75kDWL?z$;J37qga0$NE)d7~@1Lui zfoWbqMmr0*zH7;IP(lH;4iE_ zyoQc{cXGdN4>Y%f9tF1C)72qvyM|mq&#BM3oQ*Sqo;sx&7K$L2>Qi`Ka?36(-nfi%3 zkxl^vdX(j!qBYG6jJAE3~E}%z9IUg)C(OUC81-%fBM_c<1eoko+_9|L^ z`~}37xPY&Q@0-Wu%iCCMy@v2p>jMe0|s0uKJ5irj&dyQjQKxVKJ%g067RB8H@v?r`*~GPnpF(~( zNBxkbd|ZH`~EpwJ)kG))5$JhfG#9ZgF7_Um=PzrV#jL&U&;&?ru=O_*Awa} z8a}annnpHjfjxv4-ck6FNcN7b*VBq*xs||eQ~LjUxw3CZ1`i?XRO@L0Jq1g9i0DxP zz0v=;n*uK`qoTp1XU`Q4qUUsfgQTgoJ5BT`pvT8ZYn#FMo`IY}FE#T^4@aNAxL;UY zTy9=ET;tadDx&3x-n`EB;uc+;K7pEBTYBg`b?Cj(<0Q|q$491qmd!kzOl3iIFO@(o zMc=utC9K|?S`6@rSv}-%!o~S@-sojj(d-maj8?5CxZtQXyLG2w^ddYI%-|^Wq6!pW zF0-J=qvyxZP<=IM(g8Jx9t89*di3y2kf28qz2KpN)*dbe1)JD=`fQQEN4x;`vdT4w z^K4A3XJ)U8!}eTY0(Dtsz7_)K@Y6HAqJblohT_z@xixx18}&*^pceLUGN2Cd5MAJ0 z4+Bmtl|@CeiKE9b9U9c>IJTN)&swb#r4OK&*6=^>4k}CC45g(WJwHQwfL>Zz^e$dJ zt*4>qpKg;h^0t1>S!4<62+ew;LVQ9Ui8 zM{$Yd0(yqfi=2QSAJt2F40`jCX28xgBp2#g@08Kg2UV&8dKXhN^n$Lf^Es;RY#`9H z+q9u;Ph6maV4is{WgRPpnFcP)m%6oySv_uT3HAnF7E7Oof{T;BO{SA&l;$pU((@`E zkExq;vqUmdhwk-|K#h82md0t@3>|?M#Oxt~TBdp!aDF>+^qSsq%{jKJ-N>mn^tS2V zmPh~N`c)a`Me)q#Wn6!GE`VGV^qdsEpe%Y$?bA-{*VH^xKrb1~0z?B7Z=TISN6Rxm z$hH1P7QI@|bGGK^_;u%8f)6m{#>C;SOVJS{apayuh zNEX5@PlF4(;ljeg`#GmiU+RvNw|Y(gwlY_D>LfqVDNLs#FK~|h#}WT=6~v9t4Gf!Gg|0pK}21uv#=E45#YyVL#)kmKEJu% z&3Mn$I69w3@71ek<2_O1YLrH=aC5}(@m-D~b+vk|!zp5dG_Yd=by*Jx{aB@3D`UPJ*E?F?GgT``)95W;j^@gH zp=#{VE6rE4zsG#O#Q@>H3V}VYTmX2iKkX8zvkD#*ec@t!0l}%8Wjg~-CQuuGX7ygt z-~t-A8B+2V7+gRO=k@KCz}-K)GL0$_z8t@rLaz`n;_ZJb{vM@98oj7F;`gZMIM=&; zbP!#L#1U-V4HhPpnLeE)a&DSL#up+6)u##6+aGY!=84qF2?=|c?7gmL&s>}uQGX3q z&r&#Lr=kBpdW)^O6ngdQ;>@1t)#bCxhTcsvzKz1-%p}nRc@i--qX+VoJ&UPJbYaT` zYCqd^P8Pn@H`4^_t!uN;(Q-(xwroMj;~qmeg*&l%i0Y};!(8vuxhr4&@6p2^9i_92 z$=(2^MqzKN8Q}M5w&Vg&4=&aEGJcPVqKB!T+vO{&0=+pqR3(EC{W$Qv(zRv8-o0;ak9)OFfrU4cWA;bda30#djpjGPAe_-_v&s!$( z`QgjFe|*0B>guq`-+a;C_!v}DuRC<#dT`anbF@S~hFOLzU7*<$dv{{l1yi&DUO*l4 zH+}ZpQ_Ot@B#*OMNG9+Fdswwdy+`Ja-fQpa5!EacO)fm_0rk$ieYkh}{_HS+`9G*f z^EN5?FGqj#<*Wr989w(=K)pHB~aJ?T^58OK(p1}s34PWFiHvfxyc#e}RJjeI5e#XB5 ztx=B+A|N?uGeCffmS_QW-Pz<@0qNFF0_rG-)65-1oS>ftS(JB#kndDo&Wj7RdN2JE$EDUi{ zK+R%VARKA&29Btw*}I8+0qPOYv`lu@3s9*in>}`Ym&ul=`Lvf%H^YZHNxz!snHoARb<)s$~%g=LGWUmZ>*b zlX`a*>|Q+e?(RBkQg1QN#VW;9uPUnLdep-c$@`Y6_Z`WFkJ_6>vI|nYpiOWOm{9kD z7MvmK)%!rW6dtekMGA8U<SwXk-}pG>3;A#?;A;fTddeK^!J#Y1J04Q3(I~nEt{Phw0zT-rQ1;?cpE=WhRwj-QXRaWuA#Gh4F zbjl?n713CLPRn_8jB{C5Gh5;?m_6VJsA3*zxhM-Rl7=pr+ZA zH8bYP5dgi)dNT;xIWK2P3hHn(K=x(<;BT_~G=iJ#fcsjjhNKyws#&D*d(pavbFfb2 zACtRs+>)=ASXl3d@t8{_@@dZhA@<=zpFh}WGeB59@i<*l-LiTLT-lo?#_n}%Z|(Gz zeD*eN_MW63xJR&J2=qgH2+r1%KAbjkK^2^@@Ipf}q}1>BCZ)a$*kqUm8cvas8C1h* zAx?mW>T+TY3#jX&7TP)z&hPkAdzN5ckA0`H8uPH#1L?p$gT^>Nn3Bw_-sgR&Qr{_T zvOxr>$Fv?poF{y`FKd$2iLyo8@eqJ#@e&^F+cq zK`%h;_4Y=?xf|H%Uhmy1w?OJq&7$nflyhJm4(D&iNI7fMhU%5W7J)Fr&h z-tR7>{$7+UYVE?8S6_5yT`-|57g^A|%isWzxvBlJTCj*_2KdP9;M>vIhesDUtM+Sz`t+UV1 zl}#O}BZXwdvq#wlDOzA3PHX#40jC_F(fB=4FNp1>o=zG%mZ`h8*%NQm$yr3bse%^m z5y7l_n0EC6421G74Y-U-F0c>aGm%b<*9iiukPH~X z+w8sNW{(5*)b3>}o~D30((Ki;=zvT4@k|QpzfzC9qj(cg>WQ-n>T%K#IjkmJ)N^f-04DaBQD<&Xc?S+kgfnWh_j^Y`z~$7Fgu2n{;nLIWf|5_` zWP7f3K_Z-D^4JUz4rj6Z-KTd7n=O^qsv%lEnXlJZqo+Eu7tE;RA`Fa?PW#}>-vrc2 zOBS$t9unQuNDI78R_j@Z2w1%jrzD6oA!q{%=NtOD*CH6e^Tv~J zUI8HIQlE%m(U2duU@A`R_Jnyjx!HriIU3ncPc@vA36cwY(iUk~u<2%iI)feyi-rJd zSyVWUixZN?ZT5I@(Ubp_^ehck>NqT)_hu#IJOX<3HxXkQNtlI&3!-NEmZ%rPR#Wdv znokS)Tqn*$1smY9BN-6oa@MB}`5{A2MV;Dlh8<4I$gpTy&r%D(k@f-nAd@Yr;hac= zh$4kqg4kl}-J@to2h=+y*@*-=S230YnmqR7jNIz!%HvVl5J{JsL9T@RDP(SA<%mBUz8)X)$^u?ZbItqbH;plVmtfIKFT?W5}*15K+oD%hiR9z8l3!pRc-C?q1Ys+tSVi-xl>RTlkD zq!{2)8GgONAi~&f`M5ho@9MynFZ&S!V5^gR+n)44f|*6{(!2|1_0+Fd&jqwBr_)WQ z4^06t8+c0$Lj~%h6HZIgdjctfmMgoqv1Tn7Hqyo3b`xv8QleP~Er8}*EgyM@qaWib z!r@~V#agkrrwtJ_GMBS;L@oqSPe$(%&Zl&#<3zfiRELn-5R7ISy7kJldfi^+60v$M z-)UVBT5UYR77kk1*S%Kk0D}Gn54Qubafj+Az1SUG;~TGgN$VmSB<^b9yNOG#d%fgZ zm>eA7e-m*mzq32&UC%Ij$C4@QHI9tvfjhH$>~+F!L$c2~wE}hif-~QOA*9JpLr+Yd z#FCLdxb#4uq%K&>P=kfvWvwUZos`kgdC*A?I)j+##qRc6(Mwz#4}+@|y}s++;$7tK zPTlT7;(L93BkbGlt@FL4=bfN8a2En(H$@K*^3KmJdT4h7k2+U+8cJ5Jvo4YxTumzOhR!!7VXqvk*NJeDJvQ#o5Fclip`p%mwsPD9kwM_PNDjfOxVpp!$(zGo9o2+jq#)XP9GipHY{F1v&B z&~x4ay{LD4)k~tmEq;y9p?B509n1xK+U~?Nb78f{#a^9hLqw0B_37S)TnStqN8W~H zy<%%UNs%>&I_|CAiJ+%tksz6FvdP!}Nhw+C7hcAw6XEdKTZ}JU9J`Cy`A&oj{?hjL zmy2V4cXz_~iaOr;_C=StoAz@BWEK|IKno|c&qn>euYPi7$s|A1>o6?)0&;Y?y1oOdI;eRwOJ-> zw$a;L^@bjISw=byRdklA7Z$-SpbWUIN3q5E--~5!7&}Yo4qw z^%T9s{TGL!BH3ikGJ41Cxlqk2zb`Kvdo+5LtO9l6DQDgS=F3rs0P6AR8GK;QqR0e3 zmS@?3r0#pe(A$P~caP4`g4LU-8Ak8;Slh~afltB13GyUikMOB4FS1jOUoqea8wtz2 z3^+njvhnDt7(*r#PMqm{b3?p(m~N_f!IFl~LxG6Nnql<%#~@GG8!Zq~OFLWAzn~v> zJi$;@Is9;=W2itqzATa=r?btcdMbcx=Gt5NZ3CYyd>RUCy{VdE^bpO$eHIV$*wI-| z?r*X*gbo<>Q+%z*r5-GkEIwO*wd!6C84(! z-MzM4A#GKnJJ)G>R!k^)!0grklFx z(==I;_!iXaS&q7N8ag~Lqc%&e{_~xyQZ3|wi)tnOr?XuBr3Cci{yME5u)|5Kw`^kS zf~M+WfOIHk^axoNx5*cwqxuA^2lg~|LC{kU*F=`4zA3p2nxw9NJ!vXiN*&IhBUgrM zrv+?Y)s>;8sHA+o=eEs4qi6dpwIyz|fH*DBGNevE#YD;oACa^ngtUB%o~Fr~7WsLK z7ebzfPs8Y;I!nWrdRhQi9DC;_?dhuod`MR$4o-tidZJzaA zfTCq)4dwjlQSs79qAaQ`WXeuKPf8Nkhfko)9#eK0AVU;hP;!#!hDe z)EMxTlDDDdA;h)NgfvkW?7a?aJ<%MZ2dii8PM!@*vse^ony|+bxSVztj-Xb`IOdjl zxDWBuV>%6)ofBXB;v=(sEW?S77Kz}rII>M$>*-Q&8*9Ci(Yt`lD{i+vAMX*p!&4c5 z|G0|r^yX$~-q4FL*Cl)!@WW^XmW#koxShE1JW z3XpcMSnCCXmajk^+6|4jdW)uh zQ-(5+op1_zHy?5H^;B+mzRnqXuP)8%tpdHOiZPsZmLvmuROZo(ieQ&ZRnS4Mq1Dhd ztB30&dKVVe@S&me1}vXe!2PX(k2us-QhmDA9nQ{y6ZGOiuPcvtir$v}yV;tE-bY1m z=L>G#yrK72*LuTBoYh=^J$!If)a2oUL#LZM6wK2jgrrXIL*e&-L+@d8*hV(Z)5Av* zv~3pn(=BO;iL$7QgbKKb;XEr3J)by554vjeT?rG;0#@%#=ACnf9(FjjE)v*FcQ{4M zDy7eWi*Oa<3g+yM?z51>%&i`BWpk=je^~gjxx!A)Y29gE^JxSpwE^^C_gI=mTB*aQ zUZ!)QeVrsNn`*{g4EK-T;b)y`-rUIToS_$^`1GE{Piv|yr<-*}k2B6l4xCUy?8sU+ z@l^3*=!Gh{BU-BdwD6$WAbDKy=}J$uwuU41>q!)6!#XbPieC?@vhPZDF2L%wJAI$r z_cqJU;g=h*_x0V*`;V}AtE*pE=L|jZ>sf<65Bh4^gj2Dj-J?s-(Bs`SaVIlRV};;_ ztf5iWs^2YqzrVer>pXn)pkHs1r2sb|31(678u063rH2V8&?`A};VN>zbK50(_lMru z2M7ed|9m4Let->}JM>Tta8KHNsZ*WK1v7YT^Tk?#ODf_w9zFt=J!CGtd=g*iIg}c` zhYJe}-!&hvr9Ji1v>`mg;wgLLQwMu8<7{kiH+IFlaP;EjWr${><_$eeIM+d*IQFc^ z9(yjR-6MOl!jo|+Di%OZy7(c71Q16^UdX9Zh0%i^G@D}ga6nq1g)L?A+0a~BK@Slv z62fWy^>!tYEW~h%<`6xdaEfmMD?MM$T3!kqkP$ml(O&lS{Frp)8!!&d^tOM3tqQkVk#@a9h;WaTha6+~cwj##Dz#5TZ6uUcWv+ zgI>OT`RUUifBfB#{tvB3|ujCIyA8!AHs`jx% isSD^m{OQ5>%G^J3Sw0|FW7|9c00002nf^*2nYlU3iQ7oM5MoL|0&N(a%$rLsi&8>hi5m(=Ql@3cZa9f zhv(M^XV(u85C6&k)&G^p$H)H@UO&D80Ko0j`_1Fq^}{Pj&d>VB#?}4ve~^{c)yu2v z`}>E(v+Ik?%bVNVjm@pqwY7)Gr^~yi+q?Vg>zlQ;^^4o5tLy8_n>z+Ju8W(8^XrGT z_4T#&jpK{k^NWkKtNYW-yXTkJr>Ez`)63Phb?2a%r{|ZY<>jOE>;3(M|Eyi#Kik{e z2S|qQA78w^y&s%ho}Hb)yuN*_5YElb?;W4-9-X~?d|cl>?w(#fy?(sBe?7l_eSiP_ zJ2*YOxcj$%baZn5`1<+y^mKf3YGdrdvF!1X3 z{@V5)2M5Rc&VEu_*4^WacVu#5VbT5bM@fC#>G_3`x%JBCztzp%(U~Q9c=&>X!kO9G zgTteW#`c0OKfW_W}4B6ariveOvLC zRa6a4%>JI;<&@XwS2iT9{Ob4rbRK^H%;;*QwsFBZ`3M=iH@`7gxoy%4&d0?Ax6Cx0BST4$Z&w&6n%dpW4Z* z7>CyFlGo+}PcN^?8JoeeiHU>Wy+=TBLgvFtsQbWDN-u!$+eS*W_V$m%SQ1+Fyn6R41*7Z8C!mtrisPgtP zu?*#j8nvE;%tfym;7ceVAj$d>Q}gWlV0k9D4{xr#G$379;py4Z4})pq5qD2_)wH{2 zU|Qe)t*Sl$@zoX_V)OOx^>nMAmTAVdem>usniDZ>>(Vphw5xtVDV|4hysLIVNf*ET zt?AjQL6%;16$Va&oc}%lnJDO9U}w*#OodT`Cg#uR@BjWQyDgnNTq2;ETyVkw^+1 z_mO2O3GbIqGU|9^BE>)P<6J(|3Bhwx(!P^!nxuCh<$QxO8H+qFiD;0#!h;8iqvE_c zI!%(BjO!R@PLkv5$T(fT0UHv6uCC0r-QTQu62SlN|M7VkPw*Fv9nvQ5{ve5`W)&ze z9wj9jiei2B+q?j}!B(gZ2-*;59p8Lcv#?F9Lf+z>| z6x!KSN*RI~M+IC#oYYD#QjJE6u%1c3$vS^{s#cr=;Jyz)i6^ix{9QH>J%UAnte1ZW z5+~5ZedNu&0%0531e0|0+7Mcf2P4WB-ju#<=k$4%kpHzG0-*O@g_fwlpQWOYz)p?E zhoX`BR+Re7c#@wCmD4&n(18T9z!)d_a3z@iH)6JresX~3d)@f7unpOsTH&}iHJDb# z0gVSSrv!@9?y`Z3fC7w^7*;5Da{ed~G!&C9Ro3@jG62@+(i-j;E+5b#fF!4fup?D4 zP+XFxFCG7(=!@kF2Dp_>LXMUDEk6PD+)SNeyo7`H(3Ng; z^r18j{Ru~am}Hi^gb~9@)j8SsS`I~cHizhXJwSzl3bt~j%|5@p-I)aBeCNNMpSbUF zj5BW5&=VuL)6qJx8Q)%cJOm|8$KFCgbjWV~3@kq(YNmI^#Sgd3x~Wt)E5M&0`z!qJ z^$XrDewj_Lq5ubZ7~mjZTTGn*&&7f}PbmcqmE>an5kmUP*|DK5ARm2w6zE$}qD*>F zf?YWF*ZJMcf2tgRGo$u|avpzLl%;aoGlGMw?P;kfgH)y@+9+w2v5x8x9Xo8K6=h;S zhcT1Zph$^f)Gzy}Y|PIf{jks&xL!FhFs0I80Y zLPa-j%JFn3rzQOza2Q*HGJO=J1(f@&~j6E!Ihg3Hv+-V0`C4 z=ri{3ULxk*<8)&Eo$gv~n(SMnG1r^Y8a0=$J#i_xuR^;mCDB=#(`w&LS)Ds|MXpiM zC6-n-e0Ap+eOK{1dsVMkz1djD?H0=$E~#+{fN1`b;EX1)d=%sa*bDxC6~BE5ZaMmS z)oQ=m=+FCZzxH1HRxi)Bt*d0LW%~q|wrse|W%TIQGQ3>g&(=*z$e@idkx-r5C=;-rWb_|BoKwWKu<#P9|Jn)4t8RN&`Q4Kgx}JWA71DR# z?X(>WwA{V^jRP_yDG@odS1-|?PoL48*vsv*VEtJIbLWYzqOF1!_26;TTF|i~p`bE3 z@W3L?ItR}!``x$`$;urZIUtfbJX0>QJ+-`}Ya?K} zRsinn{wGri>3MsGrw8Re^~0PPhV4qPB~XoTfgP&B~2M0Fm!ONnxyb$;&Mx@?A&~ z8XcCoI-lUscOUPS2~4C)n}o^K`non4Hd-&xei0F-ecb zwg`f24V$f8#3ioMZUqzGCWOgo%q@T;S|OUzyv;&{xzrZg53xPuYLUXHg~FVGhL`BwQ`t?B+&#p%aWopHN6JjL7h=F{BCzdE?{Xp~rx zswYQXMpmKw2Lyt$hsc^9ZS{h7R!vRTdG@T^^XDx$m z?Z_m8oFI;cxD(xTLG;Jl0PynFt>bkR9^~8}C6LA6`F8mHx6qYS?G!|$aMMI%iFZmRt zY*Ri>y$ceoMh&GZR+vJQfwi3iC9e{^`$+;WR}#t2vruL}>-CP)3XQ|&#+n&;b%a+S zUh8EwA{)%0CPZ6E))@g^#*mZKkYS-rEE3Aejb_NJ@3zEgO&vRdhFodbSlN$%xwrh8 z&%eF6^u(Sw>E3j3^_zTF?QF3Au@}FdSy@>WsC{U~&NC&-Z4D2RDfe&+(R`nDNK~4t z1|c5{HBvDrYYk4-9VzV|KCvnU&fFkPU4JbRogFMLgf3l~*U6m5kZX#l{BK#}weYvM z4siX~QkId?%Tpq7uPC4IU(QpMm+~E)7>(|UW78o+QkRrP3*pknje+S8!DVs8Ps|qA z*V%IACE^PJ_2tg&!uO{dqjM3jy`IlwG_`#-RnPFaIA_!Sue{+y0(LUVYV8%ZJVFaA zLK1&d=%#dB9GHxn8SRL*o0fCXwF7k{FCsxe!lV4$-^NXZ7l7=`oyo<=3j?S08FuZ_ zQFuLvs!wJ>YIyI5tq^_dTzTR8U+dtvl?VcLVw8lvycjGw^D;GNLNXXv$+2qMFtTQf#vaG;rDhUR8cTPbo^aXjnubU6Rfy#M#4&frBN-P`Z*;&Jv! z^6soX@1AAeK6{e?Yp%?wiTqm3v#u1Uu7^^l=nPiQB_yTWEj`cnDa}eR>PW#8-=fd~<6VvXg zgW(QO(C_(EKwt|`BQG7F!zQa7F=Ax4-T8B)>0_ zPEaCClMgkowByxSV0dX+cXo#^u*Pk66oO z@p95T+{F*BYzx7YIme+>^s%~D@ zcr(m6BEh_%^+{mQ^9c9sDT^-__11`GklIEE1tHiV^YKifyB>>kjLOeDSx!pl%~raZ*!n58`!#KVqbnZs7};j%6^HmHRDgDVA}&p!2t{c9K;;RgEg$7NChEPo0n zySvh}iYvb}MkK^%I>8;_ofMZyKYG%V!%vowz1f|jxT9+7Nl}jy7C6MO=rTx2p%Cjq zQTqk7=D8BY-?U)c$HCrZz18%-eQtcwdGj~FWpdA5Z!EGr2XG??jKlV(R=e3=?vtjy zPlenMuTs~WMv5>oc4QRH2nDyQWfu3~k56frwpzn2Y_7Lb4;jwD(PU`Tri!gJ4<47$ zOzNNA{zsNzBG*J{&!ze=A&R8bYBnlJ5XnSRY)}eTj^E^35ykkAVc?0?6FvZk@9eF- zW4OVOEh$wL{{T+g*F&JnzG8N(&!KEtu4x|7!(YsPw|u4Ka?uGs1uBcUr{J_oQrno} zA!z40GvZ=k6bf~Z-vWvt84j8a$guPv9*vN+m1V`CxRj~{r94*7UpLL(=XII)08vPT z@A~K1ZpCdk*1pB)=}WI>>7K#>3fN|7=U!lS{e5{;X;}s|@|ovUTf$YiGUq9=0J-&H8mE9`1N_5YPID0_kuF#8imH-W+0eY1GfT<9A(ymuJ-M3sIkk zl}2?Nj2pwAS-=@Y0OnP0--?R_)?-xU2#qW1UpQrT{aBLt1iqc@AU>Yv^tkBONRu+F zQ>LE+35vp6!Hp>%X`963z2!g_ngtA4(9(Rf=i+#kRW5V3(Wun0A!G}e@0&U=uRi+x zQQG5K?Y2KJW3aFuxUg+mT1QYF*XFv)>82|%S{UH+L@0{BN%1;ExI1P?`Mi`A#v+c& z4OvpleFx&}$8`5a*5RyaeHYD9UC%VB5jxmOY|=?Y-t^81ogq8Ys_~W}teh~+m?`d zaqtpK(84QHRB#VQp}j@GVj>m5#2A;+Sb3L17hE?6_|@S>SeUSgl=fXY>(^hc*B%o} zCjQ;2L3WGndL83Q5@A+PQIfWB5G?O<(n4GcFznun@VFq7xY``Vz5|=ISn1o6nf<@p zB_dKPb}Re~!14+`VI_5rAY`$#AtoA&;UkF|`$2&`3lT8(VdMUfX4SZJ$C5ojy`S9g z8}@a(K7|eH_K5b$KCDWJSG`B^1z5u5ertMC|3Rz&4g%1IJjaZ zQ~dm#4f4#WaDAE+2y$?+N|gd@fh27z zH?bpLl|0nTF147-gJa0TJ((1e%W9-m@9cZF`+UE;HSfx^xHDho+f%syocw!SLC@YX zsO=HB1MH3N!90iX|Kvz7@cm}Zu=KC!wtR?$=QoY~9O`_4G5<0TpTW8kM^VJIfN(4T z7e$!6P|rY+cIpNRaHz?LBR{o`5s_EzS#C5-Zi~m~O`a>VXmZplz3sWa=8x_XJO}VF z0fwu_^JRvL+Lst!+#sHxU4t|P5*ZT6kg%v0y~HOL6wqY4V3}H_(6^+7zKcq4#p+U0 z)L#}IF23zp%Axp{iYo=>!*4^TdbIs2Ge@$oMBW(5pZw7U3)f*TqQSjKvmo0>Cj4^# zy9I_5)j1~zq-J$UG8PE3Zx>2OFS5?fJ_95`l`6sFC&(wwEC(=4jAdbRaR z&(pFNLVCz7jJar{Z{_$T;ytCbYcR+!S!QaeR_~1{mW^<}0MPuis|_9-bV+}(3JT}_ zD6LzC>jzMmLs~wdPu0L}jAHcI@(70fF2GBETy=IQGLn+DaQqcI{&l<^@4|EBO^1ea ztIZAbJ~o-a%S>HBKtjccPB~7~T-S1@sJTrh6KyzO0r6G zkZ1bKAX&+d|K*>!#LrqLCg@Km+I6Iw$O$i(!cgH}!Gt9#dtSuIhJ%_Wis@VOFj_P< z7=fcknL}Gkce5Fu#Iq0za-{ti0amp`;a@$;YNwl^9zUod{9jM|fK zn-Dht-5Bm>59RSCEth2sI#2{&G6tT*7*&p|yb2kNj4sE_3X^CGK?27`<5f2_r0lf} ztHDo8HrUDLh#wIt4!Kw(GZF;UP40%t^N+G@aKFbRTaS)?&6GN2s%;*&f|6}RW-eDT(If1 zGcXfaba#t4C|99m?sxItiPX-yqh5dbzg=#_69GFa6An=zE(ZM%u&$|03VP zvhGx0uU@5&CCHY3J=dsYf_{5H_`%0wi?ClCHs#elL*5>|Hn5kz9D%rtK@R&7`lgh^ zFN=e%5w;mR;O$%ozrG?Z?#PaRS=zc-{bQJc93Q%zAUfQ`osEz1Co}iu*iD2qo0)T5 ziP#IuGx#3=v?TRwAHMkE@q@y7AmlZO{T$~L`Myf={u-{*9k)m5wfOF}Z^`Yh{uV!)4W zcf_9OGIIZdDK5{r@5RaH*^}yk45BFh`qWP@+cV9na=RP)`S(wT3(`qcwaE1_onBFy zz(3Aagp$)iH+IP5IA4?-%~wgEJULE9VHsAc#$cL`EMd@bN#4QsqzCLY+wVSZaqsLo z&2isB^&uh=!@x>}{8Hlu<^>_2#&i$6l|Bx0C^1vkz{vM(26<@y?U3@{PR`2;s|kN7 z+X$@evc^5WyVAjgdd=(PZnM%{gg#OFx?CkH9aQi3rFtu=Luy6+L(BBiJ;$ zxI&QVJp<}|_`wOSC<2F95Gq73RbF0mAOE(DPX@%;rh+!2e&21${Mui&e#FbQKDPfJ zy;uU6O}XY5c;oZq7LxNoU9W$b0g8^bl&6O-$++G{mdC;YyW%)6*VbMljK0vYTs?(W zte*Vf&piOS4QT_9VTkmS$CL0wg~!;yOstLs-3Wa81{6;X)bOE=eZt8&xdU5Qaj^XS zasCL7$iMhviBsU!ScF{}S7OP05b+TF@a|x@o$e6?Nq4+$D(8<1N6oQakA5r5M+0wd{|-qO9;i z3ivu$`et5{G$AlS_wJ?sE;s@OWlaBdTF(U3))z$ILVoUjkhbkXz>n^;Hb6GbTvUqu zE+CG7Q>st;AG2yoQob90I34tVKpgoW30lD6y&MCg%*7Nr=Dgf@0N;hIkfTHCP z_4W1M;do<~Jq%y%3q#ihN5QzT{Rh6h?aRciJTc};syn?G@s6MCorr*GTNFX*)Ho2s zWVpL_VofrYeIu%8%EXkTcrTr2kHQQ$VYE3lp#HK`OH)`p#yQ5IR@5b~udJO>{E_X- zNA+qLhB`-h+LX(gV0A8fS?CO_VBaKvniw9l2uY8* zwoE_#k5*~+52e>!AlH-sBkBWFQsO^rb2GoTr#-#x0tQcUfTmPjwPQRf z)Q?-646ZhKH+$G*J*eD2?2c-?CR4hsi|Nv;16AqTYrLMhc{Oyw2v#PhF3sY-TBleq zBF2y%>lNPS`Y^rMhC@jizy~wL2O$S?@3Pj}#rTC=bSPt?R@!r( z@>L}ndKByuTx5cJimG_O%3*erzM6fkmz9h`PZ6eX%hzm z2qV=3-__tFmXoJhG1LMn?_bNyS%|1+0B?UdZUYP8&Ch0VzRQE(aVgl>U85}3S;*eD zSNQc>2fMdQ_Odws%YY_Lx2dn;su)$*o&^czmDlaBxFgU!O*W9UChex9fzD@Bi=uX? zQwV~Fi2ZGIA!p@JRNekLFP^apkN~U2_7o+ogF%Nob^R}Li2ZNK?prkSc?TZh)6#9n0ZNsaAn_@F zj3a@6;l&F#BmdhDeZ52BIGR)rWsYGD-9jn7vt97r)lFaZA2Ae$hTeLj9Yyt4_s;q& zw|;CL!+54TUu==~7vlUyUE*WfmF8F60?oJOhWa03TD>nn7b3Jbeyc?um0ghHTEWY5 z1nn0qkD1&H@A3xQVAk&t0(V*oGeft3YWALF0MP5kH@{c^BVC-xK7=_YdP2?!tRN0 zZCV$k=h5BMKg01w7P`Noqi%kAckaKrikncir%rsE9i*-cbe(M4 z3*)PBJhYTDT6(Co->V0a>P!2a0aftR9OZcsL!&)!RGqx^KZUcv#he=lli6=PRn&Dt zi6kW+gG*h#;i*Zss(dMv!Yo1YRuzuLK@pE)N^d;>ci5@@K51^8c(XkZz^I$8ITB2|CnjLMq>Gy5G4UgLj(Efin%IRosr{nW1*M#z7_# zyZ=?e)5tpC>Yd2JM|E6SC{hFx4H6yBrI-TB-4fV0+Ajg}&PL*$!Gh!8uv#hJ4Wo2c zYlWRt$UG6b_c$n1LPdPwW_Uc{Cgid35R@!6d*Xdn+jGebrVQIH#Vkbib+?tHb8= zF_rGW!F+tk-eM=&Z0EN}K#d*2CL4!AHAR-A0X-lxuUd@(P5cvLtnoGqI8i^_kosgFLWz12GI$q z7Q*AydpE{Yi;Pwgt4`Jb+epdGkf(PO+^o#Vxw>mZr{&(rzU>l|w|dNphp^Us!AFx4 zCcEJxdId=~aSG$exctEpX;%AclX+DsOokvDGQo~S6$CZrngG~6q7vufW;EJ(8_bmR zqaPNTfQP`YN*<yf{^l8vV7#N5SW;LJ$fAS`ZT7hx&Rl7ow+o*IU+# z;cb^`8C}MxqedbOh@WA^@MU0gea(bAPfh-cAd7*Ai#-30Esi1%OX`FH!<`&MB4d75 zqKkn^6|GLYP5@ccC^yNb_U=%^f&%ZhvqO2|A)=m>eCmJVB{$Pa0jf*r{wqQ9%=1}4 zz_`!!;|^*SNcBqU1+H5H0PVgWYvmSxKD}*>q(PyH-f+Jqrd#(gn1FQ^?UA%ATy0mo zsgY(gMAJ~3=t;?1Mpq=Cb5H0jul$sNfX8^b@JF3_KO zw7TQQvwKwqcC3-st$k8<&1611HjQ&NJxX_8W_ngjl-3fsgl#4)ID_bjfZ}Uw3x+OU z6th1oIG3jHM=#IHN)y;Q9EQWXJJq`XK2Dn^VfUT*rk(9-joji2=69^{{_5RL`-=>p zMDn}s8%E^Of3s>ZYV7NDNW8k_aPzNwQx?AMUg_P6KlfpnsDwiai_Q}l3Ih!(mt-tD zgRoSgxNi&W(~#`$^11QqF&cf!}di4jIPuXc|97gLiY|uN=s39 zoo&+)#v9yTNI(*PO1Q#Fd` zxd@&Yhz`F8)pTTt@fh#?P1%iW-8*Yu&^?kzn8Iw=4{5uqivNae@t%|TJeLZ}jqip{ zgLeTOXMEUnzS-pHT9?Pl^XIHdhh%V&jLZMn4ty?C+t1Ff>>r0cxSJPd%$YP3!pqiX z_p;%3P517C3Wv0Ec~A99;GtW} z5UthbH)KDL&TG&A_Bdx2wpZzX5GwJ%_~as6sb_?iL4)(s0M=(mU{}hlmEL@3|2uyD zT8vByz_Q=@e*QoKSf=6IFA*%o7c7wo^#rN#-Dq$coy)wMUM>#NRa9Shp)6Sf)uaX2f)dg=D+Tf)g*r*eG^^r_X*wIz1g0)(||ZEk+g`O@Z|i z0zX}uKN{%q=MuqmKpWH>j#$nwoc>C$Syx;u-3lHI4D}VjtA&2lXa9Qd|8Hg40x!I^ zUVDQrwF+NJfAh}}H2`_>yzotFu=>dt9DHL4z!bcSQV25BzTb9QFbr-;o%R!AYpm5^ z3eI~P;8eLrGrs0TAv}Ld*X*nxK@@uiqdNw=``B+!!TH;_R;_&iM9Eq?7!|VKwq$4I z19P5BD=ny-0LA}Rnm2HS`jTzm8}819xgW_5=lg*Dg6lId5aE4GZccwP?ooYm;ci;+ zw0Dvo-5bBmh?#;f9D#F@8xz~B=qZ$4Qs>Un;MO8Lrguh-%-M(?MJ=gYkS+{`z>!sF zjvZ8IWcMHd=_w%Rf2sXdc%9v~{0PG+a%ZW)2-Rwi2<%k>0S*-vT!ZCFS_-|x*|!Na zQFV9KcLAxT)_S+y+`A`2cy7MAPbohLVTQ!Ni#vHq!8;Lxfs>I1fzf>vlQ+!;;4#|n zi4X82njEAAMKND4knf+R0!@Z@hInSw{VJ>HKSXw0X+rsoM~Odz<{%p^*)6zHKdOd< zh`qZi+bp!cPhp1qzzV=AbM9EJzU3GI0JS6JESOS4?ul3~b6RfqNyM{0yO~_+ngn9N zwnS_}N2LQw-zsL>jlh0asC0N24V=#SaQPFME#OW8A)j$Dxlk^z>CFv?&5PLl=hbT% zaP0(=BHfb$?A9-jjex)LO*qU|(!K zjx_Z=^Dn1iEIOsUQd;0o#D6HZZc|Q$F(@otZcGiBgN?gtB!JqH?|Be!53ShGgej+B z{;meq@=e$eK_tx6D%z^RdA6u@~iMLPA&Wd?>ft!}5XXYM#r20*!^?DzWHze!oBM+Nb)T zmo49z}lJ{CZcVg561WjY`yyXn^DMJ?=WDnZ#JQZom?qxmq) z((t1q%Tg3_!!0;okX;ivUY;wmVe zXulP@MH9K@L>nsjSd-pTPZOfCizWz63pGI)s}J!ecl!{&#DwvCX0O^U%4gzcu5B6k zE)H%DUwoJ6JW>`~KfMAWRgWNL47LJuQBD^=N@;0D_M%!ISD!m$OAiGXz~}puaLKtK zqCniw=7aA2IzE770o13O(470}MrJ<#h2?;+Ph=OyTiU82*L-8nCI`%QGh+Zee-u72 z5Ti!Q`~fY5p<*M+ixh{mQi^n7OdLtmf=>M`7)^A~V)A1#-Cq4ldRdZKK9V6`qX1DZ z4vH1NwZ==YI;ol2b`<^Vnfi@{=A6YFRb2?5${+x!m$g^bdx)o*<#;5oDw4}4r+ybk z_MBh<9DxiGnc*Dgb$vV@TcFq!>SysGxTgR1oiiX$IGw$o{{AW(i1BGQIxLSO=LgfR z!0x9`folJ1M2$OiZFEWMkA{}q(IgXU=cJseGZ2zAhhscU0eR*kDhBJV-%L)WZWudG zMDKBr@LjiQUXt1SeC(55E7R`hi}gHntWdJQua4;DC`8H*$8gj=@zUjvEZpgL4F;IU zZH}=kOe*)$I1st+qQ@Ms`yBn&JTOcQjj#D>YESTtFG-=lZp?xk4l^M82$L9C2~+^E z@?h^=n{J=Peeyyp%BO%C$ZyGC_cCCx4CD62DJnMz`xn`SMR$}>h$=SID-$v`4ZM#& z@a7m}zQ$wF5wtn=T;nmoCScZvm+AIk9DxZ18ah3vvsZfNL=ZDz?+XzjaOuVaIlZ|x zDBjscp^?Dm52S0WuwDeEAL?r7MxlGupBn`!idR^bhA3imX7Y zPrCh&{4g3B)*%P$f`E=CcbCzBM$7?FfoVf%6)n8htpeL@BE60asJuR<^Mgu&4W43?#Z7E2LG=q$&`|76sU#GKOs7 zhAEhmk*saoQG`!Hm$&cGSiXg$IUTRcZzA3w_57p~qkuGDos;` z3L7g~g=FBG>xk=S*p-KAwoTs5n^S6QI0RZ2i5vjyeK=`GsF4O2ag^}!XwPa0`y4#r z2!V3lOWMmz)otehPf(DzJ|P{_&G!x2?0OG(auq*>;jktajEsm5oAF&(M3Hs?-dq6w zT5Z+{JyqckeUL?$v|F2xyFl@{G^Zxc*HfhqLQzDCd5cjz@roNVT(sjAzn_UBG&1kk z;wa7=HBSKu@uwCjrSI6K3$KVrN4$S>&Ds1f0QLcVZpt(Dg#oxXyxxMGUs$n4f}q2B zIjQm_;vfZf7JZtJkO|5fLcW0s910IipE{eQD28LVVjnv8j|S~*-L!o4O)37q_*uD zO0sBUT9?mOB7_vr1xgpqXywd-5a1TS@^!ZRmFU$sb!h1OmfeIn>E+qfFqB74O=^fx zh#_QMXr%^6cZ;!Qg%Yi8Q-ta>%MhSP_gWy?XoKXomStQWkQ8_3VGaMMxV1Nr*XeN8Gbm4!7*S>k)Z6l_kzgU)vt&*@FUrK=`pE7$;o%;qj5&R!j2&n*vN%bu zb-U64b^VxW+MN}G4bq^)kSsZ|mvjJ4@`+l<-EQN+f6$gF^X%nXsgi?YaeK8+y{qpk zkjMp%mL_7DRu3dIfx2zwTBRCNDF(fsNE1JGS#w1wnfz5k{8OtV>AtLi5qpy>zDrLy zDCQSsyBxLK)V`PSk~za#$z{Yiyt?D064>rR_^D9f*S5fNDmj#l-#_Waqs?IxRiVjX z5f0qrXAHi=^$P!(i>1d7C&Sz2`GTE%Xr*eaniqcxHPV{L$TC#Gxz zB?_n{b`$6?^rA>ut4_~?1ha0OfOpZ9tHf0Bc`3;CGgmyX5fq%g@gF|K2xiB%MHKZ1 zBud};rM`94J0yaKl!=gYkXWi_c{)`7mI)liA_WjGOE(Q5;uqC! z-}QOUj@cr1#TU6D{nPBgyj|=rhmY5z@OTTrYUE;@Uk&8tCoLJQ5*SkfA_5Y+nN=>F zq|#v-z8SlzOJ0C5u~bLqN}UBRJX#=9`T!>9a!6x~qNi*=Ds^mMtIl9qvO8P~<0}t* zhpC*P8w9~*mVI}uWDAzjR4|5P)?xb>_nq{MTNVggL4O#$<_p(%K zGptti^}TX7_|`!V9M9q(Ti(p`+#O4~rF6aqNLMc`1^uG>E;Z{mSRjT`-56|9l3P4e zkzR?ZA-QxYBsN+JYsKr6ki3bc4zqLjf-x1_jNvrR5mV3uD&X{g*m+9E0+RpbGm=%Y zojVHS4O5_<+feYfj{N%$NMB^UehBBp=e%CJc4K+pu5{|}9B@K(RK&h&;0&wamb_oEg&< zw5wg<{!&)(X0_%&PEgO44Qy$hx^MHMT{Yy`6==9)F3 z7rF?&LVi+dfsN9hT__(SLcX$z!z%wSQk)_^*Tz;e=tRC*D85zFeQdRUEdIIt{5bhy zvtGyFS@*d6;{8^aou`NCeY4Bn{6=?Ave@dqWo09-sV>k-S;)0!<58G`hZ?!aw0X>f zo<8x>QBdq{kS`U$5Y5lm7)^NzlZj*4sZRT&B;zytB@Ejun0P_!rmBJ|Riz?nY?~hb z@LrF%O>uQ10LwZz!}+uu1h9y}#3TUeEe^uR^s4!RsaBoN(bA_$B`YCDq9V~mFT#M8 zmOGDh#KneQ!O<{b2?oP#-cnPlqRa_|#hXNcG>?>4$=|dl+PnNr*aa(3jJY6O;~%IP zQSYk9^Pve?wWMK%L32EH3m{Pau4)F115$gPrCmv2hVD_&MkQO&dt%|0?MMs;aiL6t z4~1NcK*brsK-a;!t}^*&QS<_)one0gn)-M}T+M@0nqBkN1ZQgM`I3Up8K3^T@$Ry{ zJF5N3h>ClejG0g0)@kMQfRgEA@E(m- z%u)*4TB_#UKTtH;Q-vS&+sqkEo;A?Y=A%hE+5G7ZLc@p`2gDs=3AR>2^C}O7O;lvk zyaxlBTVUKB1294GI_$0Idvc$I4Zl|}8S@S(DVQri@@eNDh;fPv3VA+W{u+i)L9Bq^ z4cvj0aN#2f{hAM^YLyDzxzc-rQaAywVS%VY$YctETJixXF5PA8q=TF+sD2~bY$QU& z-!W%0Ju$JDMKmXR2&C}lPreeRb676S3C$Z|R@J#czYTNmz zc)+SRxa7-7#Cqvq-UcI8Q@|sYW=i?WkYj_{N=UjRE`i?F;?%&Ri5XMETq~j-^6NM9dGQ6Z#;J~9y4n~sm%Q@A`H4B&WYu&O1L#?+i`!lNr)$|0`Z$5*oG2-!TYfw ziwwR+Lk6F$ibPmSvU1A6#nA!)jyy{adIV-U#Yz!k$H5B%7XZWa{$Gx%Y*?6A1FR{< zJ(i2gGwZEoXEVaxe0I*d#)+CEGsXQ9y2Kv^rL!kp<7Acw?)cip_2|ViF7~rA7ehGH zQJ_RJQRXo+=&BsYKzxdE0C}pCGsbHrA45(8y^O4=G2OK1*TUUM4i`s>&EUZ&>2#_tKLceIb{;X#~rJw%BeLUN(?iBv`deQr+E+PKA_rSh@FP&xrMuuZly3L0b zsUa=%ovN_Oyx#~54!Nq%g}MPZGt7vBs#stm9V$xJj*74x6A&hNt0gHtG&TWX6lq6^ z=FpJwOR{+62|Y{GOf*Osg2xvUG7{iShd>(iVLe?1Ij~@(X8BLTj$c!kUfC~Lh5b6r zoVVM@pf1LyoJ;?(XSV5^%|y#yQZKy#R6Utf0yxTnYY++1fQs`Jo$;hy4TKxnN=QOP z^W)72#rFiHes~GOonsR`{LMqj3}TWi!vqz1AU&lKtwkx3DJg>_Ppbk`8d6W`W4XoT z?-GE20f4G~r8Tura(p?3vg2$oshVy&c{zLj2z%#QRvtu))wFxdf zz_djMH9<*_v(jBl05V^^YsouKb&f-U2=j_OOt=MV%Eb$_Ija(S%%u|N#)owpqEvRs zH!-xuph5$}nv)*Ka=n6IDkwby%%=S3U`y&O$Ycqy|7;k$_yUG7)x*grIaYH9e%5$P z&$kLW*_Si>{ND1Z_X~{(J@2s#-iT6h#nvFVv1LXNF_O2di(7-fCS@z4iN*jH<(!yg z1P4t#JJtp4la1cmK&!-#-xP`n9pTC^B->}Lx6)>?(|%}6S9X)4l9DQoAz(wEE)NYo z%J^+^vZ_95v?>;hsavI@ktukw*UI4Fw*<&v&j&yA;AbQ}=&`wnH@?lA6EvN%DECr$zhI(j+&LvfYpx_^QcQ?Z$?+JLqizew0k7q$;*BLV=@1dc zyKEPds5G{^VVs7SJ)4MkAu6&|ta2vgu1_gab3@T0S{C|`438MMxuQWwNRv87BAXbj zVgaWGPe<*E8x0M?IISK|41JUhkzK@pgYpMa0$^`h{Bt&R?+XRY`BJx=iF?aHxT8C^ zOgHapc;{Sg;j?=q;P3aPkyx$xaa3WIJ7 zJ=%v6ehyhuvF^nU*5X8SEndpW`FQ{zZ&1^dvLwreRVrGv8LGT5;98me!%oqU|LVMZhjG&XQ1$=uW1K(v%31G{pJdTa$Kzygxzu*7H)TERU6|l7 z;N|yOb@bxZ#R>izT)Q^T*QXu%JdfY-VV1dIIgf`~j`>sBFBc~G$=(^PHW5W(_z@fp zL_{|Yh(w51h6`OKK}Z~(5aQCNAavc03x|^J5VCMnn80ji?;`~AEWU%U;D7%!O%sFU zrcHIOoZp$zNTy9;zW(=~bI-XRC?3S$pS@7-Dv#d!5>7ZDZI2b|&)Ei0)^Ni1+Cz0c zKNJtXzf$tNKo6(TchmCy$R017IGUiZtXxp^yih#2oIFwTyg-i;P8O-xL7(_uQ&Q?S zyTBnQwp44J*#UGlJw}Hw7^Z=h&URk0pbqfr%G#O`+FiSW*SJ(4FgAc7|fyxW? z%E=zdBY3#L_KxUz6f)}F{%1wc2gM)0hK~c459r-gsRO;*QOy<%(ehs2#96@Jcsy40 zs;_te^xgz2AJ8k)3mkERJLJ@X9<^!(*lKk{xSr1Ss;@Zy5QXmol|Sf}b+R>9$zr@& z+8*EodMCDCPa~W@2(A}>RP+KL(0jzwrqksFdt!S)52sBnuIL52Wb%gdQYGJ=P3CWo`i}J#M+s!jSW6IM#YS9~8%m zo;T=8l{(pz&Gm#lnd+5`Sz28*BvbS}kh-2n=pm1)(o*+@0gwk*>XKC8uCE{ zMb8`b5N5$Z^I^R%F_zUfLu|`pE$>)b;P!fFXAe|Wmkv1nL2uQUdpK0r^FTV_^anl3?3Gz{kSDzWi5^@J15VEM!gg-bneYv1FGE{*_JD<;@z+KTa$BlV9 z+7F;bmKc*{Mc}H*mHn7Y+-3IpfSu8nqC2A3iS7|SvL_Kv5f+ls^vayNEmDW;^*`%s z77yey*XzvEr7>oTf7z!yb$+&|0BD&m=f*7e0QMpQc4?Y{*$YR6Od3QPu)|#mKd77L zW=qNBZs=vneWAw!bxR)v>PpvxnlG*IS+#82_mkfET$fLKAh!r-l$+D?i5_JppSS^$ znfXX=PfflDugSC{mYFzG6qz(kOlfz;sYzWSpZ>1YOz()EnTlpJqIdA59)g^8IgZM8 zWJk6OU>Rm%(a>({azSg@t<=ndYb~7FTbR?;JEK!`;f7w8B%>Ab z{KmJ_=P%fS%oDfYo3HN~a}PTkOhvNdAeI8Qgx1Lt=} zZ;{>8Tu-+5lE3Tajf4;C@VQVX%GRi>AUQ8!n_{-pk~OT_eou^`f@<8 zFvY%8B1TI_n{Q3>V5hbLotfLD>MqQ}X=XQFQ&d^>$_<7jw{TOe_gwZmL3FeEnx-cK z&JfK2)%84(1A3X+o^S0Q(WUmTFin>>plReJ!?8!Zbq-+7M*KN18@w*RlK+j}<@U&eM zCtMqi!ps_66*f_^4|bzE36#Le|y+l)F} zv%vPkr^xGl(v*7j700(kZ+CvK*q|VC$}V)wa%;5fLhSPDw{L#&&(O2ZjpOHG&?9uX zi0P3(CKp&WMB77fvnjhR!1a!`Uhfxs=d+tc6ov6en5v1Ju4-Z^CQVUtlWweTtTje6 zD-uT&Gp+~-!HC3)vN498F%cp(!iEj9b5-mD7EKzS!Ho-7zJ=$0XD*i!8ZQ)O(D{lp z!)1zYex5Vu-(4CRSiKJ)W^p*Ld8oY*Z-%aIK_1%mFo!b?vn+!Q&^w$V%z|Hg%*=6mkFo|PBLCEHU2UV9H6;0c zdB=sKckSTX9MOaDz=sH@OzUxKfinv*d$FjjWFfOBx7Q29EXyDR^bW+qI3NcGbt#2i z%|^w{=%EO5#F~L2109Sys&Q1rED}AsVD#qcakACJMni~jqJC5D@P*t0{j9FWcfttg zQi#zrHz~XC-@&2VH3^v%6mGi}0S*nc%XQk^F(E|RI2~TuRTvh);lj|fVeYeYvwEP9 zUh+u~E3kWOZ1>pad09OY?Q9vJp_=7N_iOLy=*Mxtd*@EK@x5_mg)-0|-{k9!1^~f+ zUNB(K5g$I<6y!V<;!u1rXYWIqe(Q0$Al`#RBN3*rAHTTp;^4h-4j1Wg&NZ)hRtfZ- z<1nW;d|Kx9IJ39OW)BGlY`I{BUQeRd9}F6e?^lQFt*mtE)UZMs=+Bo=SHznU^yrUs z&5WYgg7uz$$&@{`{Xm5S*g(_YstAZ$jtHXH{|0(sPaZ%XOdpa9nES3moST~xyV&Ly z89lOk*J%Q-0ebzblk}DT=^=U(wFvY8fJU#3wjMKGd;I2g`6Ft1EE|WbDml%-)B>>!Id`-fPz3;T)g!=!7f42agjyLkP1ldf3#G?B3SK z^&9l8_jFeDdX4YLA$pUv2=t&gju4f1j9%sa``y3F-ofnbnGc94uapb#UWkvUL+@~| z)huWEM~W%b1=Mm7Ak5w+c%1a(#aZZC@9xuC(St(tCTTI~fq;*PvSh?o6HI1e53S_W zvo}-IdD$@-U^XK89VxX3f#i9Dnh;;V5AvzR!X4Naa_Z!&uI&bm@3AGJ;)dz~~b zM(d=!6+k(}TS*8(mhY{|gxj6?w9M#nj76PE=O8-4<3y`0CbMvWGbU>|<+I*>qv_KF zkFukcQ4J=c_i24pMJy$g$$E%hnhvp2=@}hGCbW7!EiHP(T)KYdd(L)`+tk-En1yr+ zjSHAZhA#Eh8xQYJgB}~b?op4;-UReq5Z6p5+le7K`;x)`9le-H>u8Hehv@mWtmwhq z;ia<+^r(j*r`%cZ9D#>c*{Ihhi}?_8D$@NM58!Z`q4#|SBKH&QeVc%u1g?|9Wj48< zutM~t_5|tkFYj|9dRj}1-Y~?eBQ98xHg639PVDf7-Suc=OP&s~it1^jIh=hDGB$d2 z^#fPq=tb8_^&vZMh#p%!XKxRrr37zHZ}G*o z)3QN*bxSrb+^1p|!x~O)_2^yyYq#6`F^*npjFznHHfb&4x^9+lsVCd*YHRqZo1(R9 zvTCJBSzgAq&FImGbib_wsC08NSsz(&lkH;FwMWqd_fk@hgaO>21X`cb`Qj zMDI`O=FPup^>8LJgx-T5gpGzSa+kVFsY~=^=K@W@ePxc`K;`uMe)P0zj72Ll89h7U zd&}ryEx{2QeoRct@9;R*!O~v>s0pxF)CoZu@-4ju6}L~r3b zJ$fv~o$6BOZB7V1ggDoL9_pu&S=d;m{q-I_cxr$i%$zT~&}&RauRi1;nVNteDC_L+ z<9%xM(;8#j9@@?nPPm=%tLp&jegZHm6g$oR4(y&r59`f{6$lY#IXa3xj&Byya6&WT zv)!dWf$mVeN#xp7tsIVHS7jch-1~ z(JR(dc7%Vm7WKX(!36T{ts3BDbQ88RYAxIX!ffD~Rp`|{vltNVNX~M~%vBtu`KI3P zBt&mzC2;8ZMj|O;G=$eOw5GO{MRoxpPGWCc1~^Tu9s(+?epj=n(DNy~@AnBcdVH18 z)-lWIDYr0M12znp3-o+`rmdqm%0#+Y$1i)B;?xQjc~(Z0B!6WKDpcr@E^LI=EQ{Bi zs#*Ni)8uce?VQ(0yrrzSjXHrxqGA?uICH;8@AlE?quud}r~Wv4knJL$4sbMjikIqW z;vmliLTt*KY#S5mo;vf4+Zos>R+6|WsY5eOc2~i2hYp>r6%=KJ1LO+N*x{52=7h5m zKI<)9r$-OeX`zsXheH57I!N?*b3Go4B%kzFccjBgr3KTL5u#8)m=oxIo+iu^KI=ijLl4kt{MhQ@IS-F}yvf(4 zO|G9t#}G9x$cMe{NB5o@TfP2@lzi~}#vbR%=xHZ$vcriFTbdwl-x(J$`rR(G!D|dT%tXC*Sl=LeJItba0aLDACoNwWyApc<5LrdJM2Vo^66~$gm9ke_n!;2Pzq}}7q2;_)D>~+@*HMEa5f!vWC(DQ zkX%3=S)9^(H)x}w$HwS2yzok6z!!sY^b$xFM65^_RDrna(0Zj*8A^+(8bc36!g?`H ze0v1TMa8a5sK-6(71|qpv~!%drBc|r5CF}qkW6RPK_QWc z7Xj$ahuDn9crXiZY` z{HjiZp=8sl7xFr#?t0%791RnBVZUC0G!OJZoz`j`%Qg^`_R7@#bmK?$pt*Q^RI!-y>`k>KEFtg3w3|zLN#D% z^@?!bIwI|ea=9Sh&SLd0-w8EuUAS;stH-?Y0V49aiVTq!*{in(i-$>ot1%)k7AJ@E z?p>q(^?)99tbERI{gWn=MN;)@GMRU6OUrKM^Z68iEHCS}ZW?kemd=zbVqKDL*={~R zI$jAW7A|haFc*oOO^jx_zIA`+(ZhQ$t*K_<4vvqGj*bU^W)7!a3shuszIukx zO01llaRly9_Rd~KYB-AGk1$R$q)C-xiU|Y*X{HKkCY5X{$P5fjWnrOgGlh0GTZom7 zAlPUnTWlo=Ya!a`6Zi&}zJceQo3Ps`J8@V4fqN!juJw<5|Mzo|xvpDndo5k+`+h2t z$)>Vo+PJXDaMGKzn58KCC`-z*NLY9B-~jY)diu1YBjGrS!N|iby}~=|>0#>G19QCl zwgnb&@~l^sh_IC4uBfWEUZaLHAoT7Al?o3>j-Dwz^e(WwsG$aU90sT+*(4`>h;Y*C zl?B*K*`!{rS6ArQqh9?9JvVxTIh+$tDyJ8 zHw_&mM{gv$p7Lov`=6~kvBi4uITy*CVV1s2wlMOVdbQpj!|Gi@-_IG>{KBoyTpz$zfjj}1UTL5jX;i`DMa)j1vGp5aK*BF8D8AvJkOZc19qhbPcLy-OZuDl z-0Fod?_4m2hhFDv#`qF>8a%B=J#HCNAz7~NdL;~BVMS!zY`NaaZ?_wiPrHJbSF=dLq1SJ*jP_GSSMbzC zq-n;27SOlgHfM!6^TGlxOqL}5`#1*_8Jt;W!KpOl_+)61-BYq^beE<--1=W(FUuaQ+z2)sPEf`{H zmQ8~Q=e9ZkksTF||PUSU#OBtW`E= zF$>sZgtK0akgtwJc4&=HPcf>xD13 zdZwVzi*VWTZXYYNr!GBwKp>Bo=HGIkGc)QK#0j%kfxW7BhjT1)^h_b4XS2wJTx1U! zKzwKbuKjE(QiilTyY+CPb)jmS<*EUCo?IA#96eJo==Iab%*;i)AUyeB=5lrm7r4%u z#nVNZFS%`jb!2IcYL;V1Zv^tr1yd;KMVHXiL+BZangy6xGChH}i3`no>|201jjU>_ zCT-U{M{f)oZuQRIe0cu(T#Eksq zw0rpiW09C$&;Z=W6%(*clH6?-MCJl-Ws!n-Vp4hi?J-Ejz2vT z+vd!ax{6uYF_eS6rKSN^DkNis^PyL>j6esYclP@2?BD2Q%E%wVn7tc zMG%6Q$R-;S*jqFZ$ki1b7DZw46bLzNa@ZXAkV~?c7;tXcoO7Bz&1t^I?kCuP{i|PI z_v*y%s2O{v|7!cXZ8Jld-_(0mud3Ffr_kt;JwC~xK!<|~sN-m|hSDqsn1k7K3WZ#e zsS7ZB%-KWz={g!Z$H9dth!f70CJ&R&2rl?SqG$apWRN0lIBJ9eue632vNU;8d>ZH> zzJSG^@v@XkQVj4go^VD$>fu~%^1xp7>>kkzw_nlXrYz~(gu%mF z4~>S{U=QTgwvU^K?_%^;U%H!R#mS4}oHGo1D7A@a(n2TW6r}S_K3wC6IcHW}Er=~R zS%{s6vQqcG!knQJ_HZ7@Zk8x0pw)X1^1i4p*CM9i=#eyEK%LGOvwaidkYfi7YDgVs zFTDvBxqZ4I;MMR#n=e$Kem9q!<)?l+R$wKQdrL*{a^p+uaV=U3hn^u$&+t$Or)jK5 z5Ve)M)I|byLZ5`x8BoWgQa~k6MD{9(E$pAX-s&YccShA%;WWxPyURlFapTMD(^{ky z5WT*MYarJZ`=z%?i_3&hlI%5kJc~okMsMohZ-Ya`9>}?8mI|qey ztiZ|^4tC_X<}4++aCf`$<#oOmDFsB2t2}G=AZz#Z4A2?w)XVAaBf~Q%^`{*ah$w)( zjKmfYRL5HH@KxyT9^hY45!0twVYQn+fbHAddqpqxm7i{kuGgZZfatCJJex^h`{tzG zyXmr*W_ST|z#nFt4s(X`CRH{g9?t#!=4%Q>>=p4pcQO&{)%1<3BWKYb&W{@_q1#A# zIfJ3MPAP(}l6r;E$w8^p9t`YtqTThR>U+WA9?oJ#(1S8k0T&a_SER}&M=^Nw3h*85 zE_SVVzOfpL)Q+-1=&dVrzS0nQ8u7GmoGdhba!{j(hm^q0N?;H8WuUxFIk(Z;GITM( zLbaMr#F|T-vXA8V=2v!9%`Pxi_I_hk6s6T(5cJk9e7=dN*-TB^G?LD1GTTfsUr2&` z@U?7mJBuv$SO8acPnY)h(O>UfNb+`K=gMNVJF0Fj%*}GQu`-I%YA+Ca{dH^po*kPO z#AjCv4{)&H>EJ4$OXt#3emc$SELiHn=&=%KrUnlu^7X=zcaVs+IQG(Ewok9VdsFps zEixi{vu$4AW-HjIyTL`vy_+6iDLiGu$wXN^P=%9wIFY5RdQot)i0;=Sqgm+Loze=LErjH&fvY>nL>TuS9K`aGyeu*oauQwOZWcxtv?AG2 zsLTbYI*MnTi&TF!+Fb~Gp8^1JvxL~gxjTwIEDKh)y0Z}U9z$(yzME3J<^23yxmiHH z+~^d?oq?V;aOUL=EO-k=xUoG`AAY(Z@0=@e{=-r({AMcRja61i`bN9B>Z^y^^5_;>ts2=sqBHxIeTl&^U7u4!Gd^tIw z$1R*BFP|?-Ob=FXJF|ayco-PHRJ_m&q#wI~eop;K-{q*fw}9Y607FHlOg8!DQqg-_ zi;7;hde*sum$|?PhLrkXq@%2!gFWtM(c;ru4N&+4e0j__+0Ge$mhF18i3#U#iGUha zH0Sdds5jpFZ7u0Fb=->Gt~OpPS3CYeUQD(es4x{JW+-P?}PJ zwyhq%$J3|D#?cD8J8VfS?4-7J~d=mk;#yO*^)Y4)=7T0Jloa>99T z&rb!!DZz@{8y(#}xnI5uo)q}cT151M)l4D-F7DJu#$Erx{StrH9ETAt} z$cmSxQlZ&nx07aV8`Y-+qPIKM7uPu(49>=hSkL-%2728|v$r$%TJL%zxSQqX{o4D> z4L^FYdhh>l^-iT@$_F`;Q@o#EOR)U*YjSaZ7CrK1WdrGuJLDnNH?vNiZVHV~n(U?0 z>@y@Gb?J8^4o)uiYPAe{siVSOS)h-cjjA^qi{mM(C;4yTjmiCVG$VPrZe?*csaR!TB3STsfGYUb06sa8W6q7Y036~n)N1&OIe@22J-`PyOYo$jezo|2tQrsYWYFu*LJ#^j(fjxJ z&rdk1(dcc_yM@`C1HG?)!f8o^Y|fCKZCV~})#;=gXXxXylcLpQk3B&zD^=esaB)^7 zx`5r&b;R|KgSuH#)zpO1%iEJ~uN@q{Zr(HO`qAShJDT`XK0kS<9Z#OvFW3{JXK!6H zdViFMGtkRa_vS?JF)(_R5514m&?Au_OrYS_hu&B2X0bC%m7&ls@T}$2^__{OV?_Q^ z{WQ*;G-C@nZlH$ptVo8{-j>v6IYw*CfD_I_HJR|M)$*M+W}(+9w|Sw{Dwo}u!Ige+(c_<>w6$^47{f%Dsh0Z} zXbhK%-e3QIHv_$5b$4c5Z*jo|jy`eA$&Hx6JA zkto`mGsQ&jZ*=)?Mu3Ai4#+P5$T3YOY?%`OknrEz&<`Gjrw(t$+XbQS@(X8n!r2Cg zP=0wvUq75C_HY2L=RL)MMQ6U?J+*gnBtjz z<0obdi?T-pD0^907{XbHhcm~Z9?C;VVV06q;pC2%`Z2Q9e+!7-gmYxzb6oUZ4lY=$ z#}BT`-9*l<=TUL(-pqKoA_;u z9=`xB6TN@``ffIQ&b$@LZbP8={^n8vIhB(S*NPtP8&Vp0nd`js8{UnPAHA|9*Uj=r z`H$}wW%U+b6zTT>)VX4uEJ@isokpu6 z2SVQkV8=b2m~hg?3GmQV7HhqrJr@rAYdxaW@tzD{fnIwOz5MgYOk~^B(YrF}b)LU9 zmU}IFGH$5`Q_$mCs|SzF65T9xvMgY&N2|Bu?G_^F;QXJ}^IJ2@cg+xI!s)t)lLvkA zg4V=MkR6VAe96_FNQ98?ihghsD!KI9sW8n_VI zx#GpkR*x2MVDI&!=Vf{-dQ_c$o8_QKC(A7K_`97Ky_=0y(pqF>(OdTwxb?>sERO!& zEXL%q=zCvL1aqmBq{-6JLhf*o9$#$cT&m!)wN--IYX+NePOeADTi%SysrryZ^w@wzdRj1Yw7r3z_QRgqmyO1aXo4kTAiq(lqu^&&t|22 zk@Hh%g65uT5qboDCS4uiNlcxMWwVg;|1>ou-= z^|0uH41(6ZGU(CsnU}XAM&x=-Ql_HUa-#wwquir(3h z(4&)OHhMeN`74rr*jOD!W*eCoy~#{ij=hDECMTqpQuT3~;$*OVx|@ZKEu|zGxMM(_ zZH7uUpcmM~xi>9msM~Iopo&>{?X$*%BIOc;h#OFrQDe}4VBBu{gtOIX zw_E(&-s?w?5rwn%S*zUkqo;rJ1Agwq#jp+BmxbO%`PbR#?Nu`Y(Tm26Gdely)7E-C zSaZgaIp@%v=uo7qJ-d<9k+8ZcJuU7{EsInsYM&uGT52apM~AvVEE*v9&pLa=%FVc>fQWI?<=;>h+g;XNz2*(L z3vm!Paq=w<@}!&kdX_z%*-5>)St*EzQ>P5rs-K|AO7Cl3f4*E%RV)3&B{ebsLL=O+h#1?qPNja{Y#Q}M2@`XoH zoGjAsWNW*L61bh87g3sp>|MS1`8SB(A7?>QWk;jg(|tuR5@s(-MsG5t?rWHCPyL=w z8~kIQtVqr@!a$>!WK^9Yb#7;2StOQ-sA0XgRjcnekB(;~4TVXjj;&t!EOkx)4`}rw zVfLbA^c1~`hC+UyinV?o$4lSbCDbvt$D0UW+D#b}^fs~7li&i9hBE9lL?_EuEwg`e z5*WQSs@AQJ5G7wt%|h?{&@~nu3N6(Xi&Jhn@4E>eg^%4=}m;kD;C8TaXq_nbFvhf`OHfqWE?HRpZ*l>xsa0BLRNwc#hlb;$!KRw z*t`u@AW!#1+C>y%nBwMsKz`eXZv&jAZcZ+rXa4vPaO!8-yXmYGmmgrkhfY42~9&wp=LH zGeeskSEu0>LQ z^vINsCpJ*q#0HMd!3`;h;Uja}=1ZgLcsa6v6Q(a;U?I*T$jeJey|#aBQ)R>WIjaXT zeDf)}QynEaTCmllZr*y*c^|=Lo)0}QeST-Aq0RpZq&HAX9Wm4r5zHFOBEToX1&uDK z*(;$Q*%sD>n4BuSfaoWBt^jN(1?Q|ZYwDcFKPsoLvkkJbXYxBhd^x>v3yeZJ%hj=%OU~3{p02lCY<4w9>MaZ;x*rEw3h{VJ1}|6 zLXWz;d@J~FucPQ+nMBXfq|Et)33g;Z;47t>LcS^y%#@Y=EbJ(YtRW#!*vmi?Qm<%% zh(i_w46pP~75{*WspLB z4@>oS-rhe(*x*e^&sX4Hd7tdtA=XpDrJ7qRyQUJ!{oCG=^^a zYR^bVbgBq;f}eI8T4#SRCr1w_W9mhQ7Fe8x<)@oRN3eRaR$VT7v6hFP?W{LhkIYvp z$y!D0-INSHzF_%i^U~tqWK|@I>SZ?>T95-1WlLM=c7mj#UlXxbT`_t_%balf?HiAF z%a~tDdrjt=f}FZGb;bz_#k=W9;c3a&!=zK#1AWZb+p5?0PmW{{XRK9MjGjkJ^l*AN zP^nRWDkcVUJU4^Q#ocX6toIwUY2?VEcGO`fG3Ip9-aIWqqq8s(NirE zJsUjdU?Lgap5S36)Zqyw3e4vi)WSty6EsQNdbh4Dh#UhXGV|X}Y^j2RndPYmMde-7W z)(ZM#4Ytp^3aE+cBYG*W_*ncFV-y1fe@s(nL>;978B|APFGDxWyI+1w#9DR5=&6>8 z9_5dy+cY8%gDL|id6OqbeAk1+;Z z^sKS7UQHf+G9McHz#HRw`i2Q77ker8au&k}!O=nwXC^QG7F-V}ws0OE#_0XW-qo|Z z4FtiT5FCRVS1PVJgRw!4E8#|N65Jab46Z}Kq*^)P$; z`Thul)1zV^&a#=xeHPK;73Lwjz_=b9oEU65;CY-Mze4pI zKv2)2mWLC(Dra}Eb6wz#q~_wpTS9yILH4xkyS#nYX(vLw4WkPqm^Wh5P*AT01oaFR zRnHtMw)q6=51&A-BByHCsmleYB<5%8B*4&Z+4!CFoR2#luP361!iC4{Pk1=rA3;4s zJ=Jr<#?|o=yZgTabi+c;la)^|=ybqWue|_iZq6fRNxj?k9yy#1AgHIPM?I^`a~*C! zO`tBX@NIUq%=}})5Dm`MX9=sry{Vm9Kt1gbaXO<)Jt`NPKm->Q6{)vyqrW}QcoVYNTsIvv`VJEZH2kkwL%ij6?yj@@6;cNikgL;N)!392im%ZPMAbREj zqI0Hrb1rpSCl0nuxtB(q8rD1DsyA}t!g(4YdaqX)obQh?I6W%PQa6b+F?1w!C*d1K zuk^pgSsq~BbI?#u5>Xc?%dpd{-UN*3NEYeSEg-08sO#bMAwBbL`dk-d-yBjG^#h8V zC2`nE2B3TJZ>pO`@>t{n^=`N4{a1K68$eJ`QIUGfZqsIZx>5zAh)QZ>!y>=axvr5w4c$f+F?TkD%WBBMi<;AoX;{!oOn2lQ%*As6Fd< z3owO+lE;;UhI&@ZLi6@HbCNn6vkaQVd4|FHyxxDuUGM!7)T;zikMg!GRPcis%E7Sa zvepD@svZM-D^L$FptCLWUPI~|xHtz|nIt%kRI~_EXv-W(~6wX2WzRP9ra=TxzkkWcwI-f7dX892Y=ldhlrz?TfTh!=%Slz7q zd)aMlGtEtWh~hDUdi77$kkqK}Qz;pu?g{xMeR_h2^BQ-(1`q~k9njz$$TF9xX`5$U z!I~(-*RAG&o~DrjFge$G?hla=Pv37jW@rc91M%SEyg>C{ao1}ALA@HVxSrkYyu6v+ zxp1%)kZom%Gc*r-5BZZ?y-wSa?ehWGJ*IG?4IqltPhxLQ&+G3~NPXeNbjf7? zKgF$y)#f)-_qbB^1f6z$&l1J_571ZvlV%%E~- zR_8x@*Xbti%`QRrK)$r6e{&~+J&o#}B!v^%Ea&^ILsNU2hn??av|b+4Irx24OQ-Xz9Gc?WiL@I z%@sGkvRDUd{CI+g6HDLaZQ{HIhV`I(gP5EnYlbA7B@)S6K&W07Sa5+_w@je6;GQxM z3y)@Ms-cN}9=E_*C(t~J>upoYB%XG_rRohQ073N!s?@{aYyjWBh3eHnsa$Zgn|*a` z`JiJ(V+!_xPY{km$DIcmw@}LU@&SOWh5pSWGdQP{gw&sp$l+`Pp?ZcIst59Yl0f~x ze?|AgI}#4>Ja0%lP|vZ2ECqWRl9xd~wte40_BiYW-KTF)j8YHPYXCt#q7LS4tmzdCs13L7STMAPgIZjn{cvhIaT(^kqeVdJGn_)q(~%d0AX-AzM}cF#^BhSOaFHSl9p zK?Lr&vh0v%Zv;Kmm^x~40zE8ua!g45%ex=?)bTn>-s+u%IBAH0Svb#T$r^cP>xiM9 z^xWVwU%b2Xj_6Ux>nC~i zPDGYS#$B}p?p--#4>YcBEW+k#5nNt?MR+)YUSGiL_oVLhSo)jirP-S>k!X z=)HGmpI_X;URLaaASjZ~L1o)`+bN2u(+Y*Hc@pnt`IjPk*1P0p_;Dk37DYGX2Pt+C zsXLPs*$v3vFqFU^(1TEjld%OUN5;XPq)-1LdNuYQZGl~y-t2-n?CjTVP%M&85VYhU ze01PRqNH_BUvKqPO`#{U)D<&+5H1wGnyaOf$!Q7HeOXji>Q1vF8Li%VxyBcUdQ+sb z0KAzjZTaR;(EBER&gzG0u#V&y-5$a!3f44zS*INe4?Ia0%sVZUN6*xVo5f}-SOT?0 z8cM)ynCFhf?o5rJo3qY}?_%?q!Z{4bqrv%T_*h~Kl0H4T5UYp!5XV|Q)8{IBNf5hn z-XUAD3Ray{Q47)Y1tOY|)n+NJUA+dG`$(bF%>sQ?uOyB;*|ZQ~S87BI$GX;u6ykh% zF0=I}aI;)UK{B9sq}BWMj{5Q|dN)Dxi+#&-yLjY`%RIn|DbMy<$VYizHmrMYtaW~< zas5fyhBwrHIFcu{?`VFBFf z1qza3=E8kCoOw|E()~>G?1reMK~Ze7WC<>^WE;#AXc_BGt0+t3WgWd@cbh~VK$%53 zfuq8u@|^`K{WY6BiG$6a#tywW&2s)Y(2I9PvXT4by?B|srqND+Xhpu)Nw!JjC|LyC z1h=mWy@H-O8 zuCTP_aUD+8uU0Q}=$Tn!FEpb6MMrsa>u{=}Q-91NsH3ONQ+Gp%y`E+6{YdRmv|NUF zH&(?#YL6!dl*p&{zXhAF%iqIyMdg?^YGsGhqt}G2Hp>H%?C(sVHgjiQ%~B*!#MOnc zL4y!~>~qrBGK9^O{wCsj6Uk)(dK0O`39EOn4rdl@JEl#rD35aiVxzvzw2B^W7Zl!s z-rQQqF)_gPeW7q;G}aqahByBcaGm09klTCGG%tTBL;F>bwAjt!(K9t-^_)AU5>~I4 z-UM;x*ysVXmim*5l~vflC~|G;l64^@#gkxU$%mrpTi=TrHj^i1sd z)zK^NfnI_Ty=qgTfw$6R={pC}i`^3$diGwT7xqJ$bY@$Oo}aI0Y9zQ&EBaTh&SK`y z5~#6pN9u&Vv#xeKb>2chgm5xOV2^eW)u%z;^g=Xy{#?*Ivcvh2`dkk#tn5O2ZS2YI zM=uK&C7*lH%gY<8g!5DSP4%aavwCU8>V?(5>c*a3I_;zL zYKvP%FHlsB9^6pek%yMu#OAdjg7wCfy~QJg3x*uu3(F_r2dWJplgfa8+vKfYBeLq# zvRTfiF-NJTbCL9)6R0^cR>SB$+CLr!0^SgH-_h|z0`&;|(aR!!7S7gtdhry&g_rjV zE|4G{p%p<`+Q57lclM!2dJt}l78+c@IE!EMgC2|HJ#sJ*$F;ISaOKu*rEwj-IO0dC zp%*R7_ZIF+%F$%RH`qQ}36bbTw@ZGk*MuyGv$mXGC4m~8?Mt90b?jo&=3xgAS$A6g zWU$A13%bacfcIoJnavPWzeX{@W31lC4<_btR@n=7>-8>REIh{WsR(xYe)QM^igR8> zOKB0OMvulFwrR23{Y1dRN0bIk-f4k(&RDg0A3=b z4lm2~v$t>Zqo&Fpm@OO4Z{m1+OESXbCSKn%LYAaC-$@0Djb1Dk+G3L+Pb^;ZJYC0& zh@WS0cc_x>I^ObYY8^r}xQPpVwzqM~c=F@6RBW5OeVddw*bl89sqJ$Oq-nd*^H#43 znTOMAyxStqvNzQds3CK+^teC6Q4`4|uqS>N0Z-5yO7&?@QO7pD#8~eVZkB&lk&F?D zqeUBfv`E%rE!UkBlCM79fUNMlP`59En(A5tHC~k(xUL=xkdsp#>-F)1?c+*A%x6Io zCkg?MP!x%)%3fYvUDc<`Hm_tJDNMA3ZaoCnTT4*^q3dAzS9lurnX0**i<1 zrU;wH6nb3W>rAMF%^Skeg4cK$j?RaSsk8L7#Py~q{0M8;qGt1~&`qzE7T@&-s*Ny;rY&F~IiAqt}FN($Ir?0(Esg zONEa+${n?j*@HC1hf9VQ1_L@-5Z0s4C5Lk|daNBztfW4ZS?YeJp%ait&(x6Bb5&XD zb;;D|IremK0FpWi49cY>Pxr*?b<41xCQpw>PdM0{!RpOsh%R8PcUoPq|5M)0qG}L5 zc{$)Lz)&O4s8iA8QR>_jE6Ccn;%kAI1!4{-*Ok>|76=_qDU0OMYrnkJGc^)iuy}&) zEr(j^vkHKEsk_q8slj!SN4wYW!s@ZlDYf56G<=VRJ*mM7yLUN5`m{&y6y(usMz-dH zu~tP-H;XIiW|ti7;j}LS1_?2}SN2`XB0*25mq?%X3p$^Gywz()R+|NX zvUBiN7FV|t5thsO(}cYriPJQG&_L!cFmoFCoxAeWlhK5lA&u-3D-FH&9nMpbN6*y6 zSdUTwErHrp_A#ygyQx>sTi{98t!p_z{w604>0&2B9wO=!4)!h(R7Zh`>u0Y$dM6-{ zo~e;UvRVSQJMx6o)e@+AS(d;had^q4q>(YW!1bI%z{h2V&Sk7Oo#O9_taftkt=>t< zqxYS?vuAOqio*Cu2)mJKQcW@F1cn4cAk~m2(kPme3fZWZ}j%f8}^%fI~k~z)( z5jrbc;4@$d)Yy`xjxK1`dT9KffjvFx6_|HYsF$UZOtK494Y`N21M+MZQwtkT@)k2k z=o$&s0l}kTC+gl5qo>&{l0}xKM34P%VetxRJmWa$K`HbtVDv6MuGb0qhO;FRy#Siw z2Jsoxw=IFP0X)dF1Zwbijz!8YfLRWuJm)celU0+K$Qe%9-Ne8bt2=w=~v zaRRj^wNT-R7pMyfF62&wdZbTd3>k&ULSE1J!hMX8Iy1>MeY%n=^*i5i{{Q7xuMJsn z!DdYk5sv+dFNDo|~_o1Wr|Ca|BOl@p9 z&w`x`vJY0IUayQid9WE7;0vuGNMe@ZEj|{^If0}B?s$wgoU?f;sx~rS@A}#|oE?x` zy*6Ya_1MrgN1sI2j*DK`H_peSsv7Tbe}U8=6lI)Petn|Sa1smO(w`PD<1P9WKoygPY~z+Ru6&kZ(9m zEm%DpX4w=d6W~Z5feV(;(pf?RHE-k)VZGpI!H};RL+S%@a00yr_MDYesekC%EFF-$ zSz3}64N>5)iJsNz9XBHj&*W(Wbt=jV(|twIrfv z?T=#S%*JtTfxT$7PkKn8W+vI3xzl*DQr4|r7xb1Vl0|B(H;Z+D2-mTW zx+B%H9cEwa(;<#KNqO8Gj%1=Nz=Ke(H(*yJY&S9F>(X1`c0+Hu)oVwzde#AnZ0S4P ztxPs3wtAYqX$jPLOMQB(!}T(R(-k~OI|0(gxm;eZK6LcDAV;qqF{G{*&sYUs|ycpH91Zs%pFN4_iozVrx7G{HTf@`u62dDSp?27!XXKLfDNBGE zirg%HjV?ssCE5xwllBmKF{%?d%Yn?bTr8^+ecyrJ$By3rUyh!sr447Wag9W28|NJV zfR{oSCs6aVOmfbJJW1h{4JR%H7X&?QIWOU6x$q5V7v%MNEyyYtsHYV{R-ac(fAMsj zb3bh)P;1e zr*v^9Id_~a8UlI{T$~HIIICsJ@p{+3;p~DOJyUxdPI6``W7d2#PN0rBIWAUfDmOdg#3z9UgBgNAHv(deQJol4jV2&y56XQyM2wvrL`Y zETdeGdIfs{0zDa}J})J@0P>`0=pVaTcGFtni^FvnWs!8OGiMjKz|5%59R|L_2yDB zgiYrKD;NF~dekSv#d^9v#GtLe0YEW&HJ!T#deC7ytzIScggmn6iDah|(X+T76>mG^ zPT+*7fySF(0saF&X;gW7VpKvc}%C9Dqwnz2&!u9P4{Prq2>*+dVv zvv>}@hkMbX_X^6G~dqeBq|-)oEnKfRim{yxu~( z;BJ^c-8k!g6O-3Oui@{Y9Sf`&Jh$9K?j!U--5&mz-8e??@%Hw1r~k_5-7GK8_Bnbd z6|G)et!D|;dN%~41nOEedE#H;hlC$8C}qu1o)?nD$)O7q38_!;nlG0X{4CdZX7!A{ zh`c6xJHq+R@t0!t?wcD#{P;FP5APj*T*Tg7U0e{oCVNWW-#_a;OmA+*duh6w-s~VC zd5F*xa)D!v9=EW2`QfW{*1Pw!-pLg_oKQ4Up>Z=WOO!xO^zb@Ppw5znGrq*j5}E-H zK;L{YTg^vQb!Kwe@!HN2%+$u z9`|$yTG*j4MvwYy^lH82L^80q_8iWW%B}d`f8W%(lc8^xCV$sl@Pa5ig z{H)iK%)_aACV|>M#XXS{CQ#S?SyEYKcxD+};ErmmS7=k zr>Q-w*GQlyig5z;93xkPhv5@l~yHESfg)Ydg zUaYp}>-GO6ff_QKr%K`tXE^eueZfvz0j7Cfq^|TqrOa}c6zX!hT>?Gt!`T5jdZyOS zdX0#AoJ>aPGYJyE3dC$ONL-!b-NZ{`>Kw0E$V)31Fh?C;7HJ3wtGB&&tJeiNdM$~; z1tahLPZOwP-zHxo8a=+a5@p~nVQUu7I}wY=@p>#%A4sL_QknsJAI@&b(Tmj5XiMT{ z&v<|{S7FQoWcQS}lzmxf0nZsxPe)$kx8~Gmle)>Tl9T*^#1?yY!+3U z=ox0s4%AfW#=@15hc#IX3DkYShs7B_Ns+q5^>oWwm&%sXhqJ1r1#WeDaeeJ>mJZ0R zo~mW^h*>;2-Ao>DcGMH@xKIzLJi>5im^?UI*cE9gZ8%5tv`hvd573pM52J=IFYY{> zr2}&GOzoWY;;JEYZZ?!yU_noI!ku|pIOGfTNsW50Ih>(zVKOV{v-wiME31pkYe%mO za`ak~^=1j?&VqWPKLjrX)N3YP&^)2uH62 za;v9m4Lt)b?m!(B=u7mW078ly9sxT^-%Rs-e$Sot{lBC z$k9`^g`UA@n@v9B3L)Nf9X_bt%j5-X$0tl)o~7*jE;~-C84@?kY%YhrK~+^H3KwwL z^Lo85$kB_{(tJJKqM_;r9#MlL4<|(KX!PXKPqECHN|tlS35|z9Po}9etT(|qZ?eRM zJ+?*i1`+>%IeMm+te$x{&Gml`S$kA&EC%x!iiGY)9niQLUmECs4;mPo)RG;NlEEmfGai@jR*2%kju0bz0gYjfXtz$$UK) z?9GwGiHXjuiSZZQWN>n{<;v0PfZXb}p?I{Vh12I=ygGkUZl3tr~6?61rQB9NEgN*E>Nc)&VD%YWqBfVhBTyJw`M71 zvZdHO>^K({tRBvKf2%>nSKoaf^y4qRNUy)G>bZ{O=ygPKy&mtnFasEOAUpQCP;55M zh#mo?)dP93d6~r2hmt%^FAI)(GUN-}%>}$H%azQw?ER&F`b?<%>}%Y9clu1c2QuEN7&n3l)x(9f6AP6k+-qWyrz1&d(G*Ud=*%3>iDYmt zHrvf=b@w+KMEv~GSMvDiXSx6Q(-ZXGc@KK$^EW>2JyHJdJA8iORQ}f9nY%s_1##T_ z*5E-zB7(*0Za`GhqzY+PK{Nz}fJ6)t3lSAWtvm`lMeP(75y1ns@W8@CEfg%o%0~PX z?7dpQ^PN1$=PkOJh507gefj-7st@yaX5M!^>W!&F)Qi|tSp&6MvFI|8C(?2r1D=|{ z%PmQSK7c1e$kT%hZDcrM2B=nm+qWa?{d&WB`B}x#d%Wl?^txf8pqaYqPTnu1z8!V+ z##2NuF6Vu7WWmrg@S-zAp|Xw-Z#wBDlh+#hPpkQKoABi=ptnxirw{*zBiZFgzk%MB z^o*nTS&m*g^trA#-~6Uk7W{N;Y2vp)qXL&CdJ_hvqR#$JF$3g$uQj82&Mm;#7az_X zqbG|PM{+E^K4;;9nR1Uk9 zT?Y;fD=vT5`;W4yH-ChkzWc*9BDF73tj9B{+>+|HGi${GA6mv^)Lp^B^P@e?^v zYneewGhZa)NAaK@JEmDr*Smzhx@=P+Z8gPy>pJ9JCcowqDe#HWlIImLS0C(#Lh@i!ViNUhwDMG0hF*O z9=J$v;^YEzoU+^Ock;pZt=sqQ-u*9%3&iL*(MugYf7Tll#g1g=Nk#(WkY~O~yazGR zfjsTxR0QkQH8Z_D)kMgZ#c(AmS%yhaTDvPoh2&jkw5F8X1G&dB-R!(BsiI4;kgC2PD9ee*%0~!=Ty)jYT zNQO^vptd0=D$B9x7ZaG{R+IcK)NLo*r!$rpB*VFyUVy>=HkaZ89`%m=jw9K%+lzu? z^2k+JbiS7k8R5=jZ;6T>VZ)b|sOP0Oy0~9SFLm*|TfMHM=je@zzC_8poSN^hoS6l6iC6)mz95Ix1wE)GMx11?({~@v zvdGbkR9qvOMZ6fjk;204a5+;iF$Zdh6Bkg}Q&%J{FEncG-~@P*W@#hAx!ut#g&e&| z1#8rr7gY$rcj*29Mz&xPWTRA-7atAji7zm-8l4XG|PT77`mU)Sw)w)lL# za>x%26(I9wu~D)DphZAPuZEkzXV+i{I6AfvB41Y5{%KBJz+g)lL^PTWR`v4EI+(x9 zXv_T`^~xZRdIiXOID;>eIRH|M;CCMPEZ+isfgG} zNm860c}djU?dX+28@;4X6^Wh|(8DS^G!$5qmt|Q(j)nZ`8HR<~sMrAb*hoevz#8IS zo}-;b1}^mbgTa>l`+cfx3FLLXNX4~J<7EjK+kaMrA_r>T81Etn>MXIEItzPEqSvm8 z7hoUgpR|5HlvjAB)3&WnpJiPgde38C&pr*tSLWxVTlvhG!z%IjyJtSGA zvbP54={VUo*z0!0hV!s*I7=W$FH%80oYv4H7hL1PmQmCT6ta{qZx-|*S+J%K`Vu5K zIcJF7({!H}4^A8z8f*o69`#BfN6%EihEt=S`LXEIZt)OjE<+oq`rneg;6M!!Goepr zeM$Q!=%XQ7-e}W=6Q9mHbWb~aWssj-h*gL;3lup}8+m4V8!pVYaBaiALS;RxOTepR zqU`F7jb!wnZnV)##xX-cuP>7=_Z{~3>G7ARSt1qG&0>{3yJ)u4$P;lLI0SQ}h!-5F z7c9@{Nw%65b+k}RGfT6`rfl^bKm?!LUoHGx~;tlr1hx63EifioU=ut(WH>nZZLzpv?-oJ`@u>&=j zll^9Jpk`Z3#vf%;)f4||SOLNT7sUmnS)_jxo=EhEfI);m>y88w8mo}650w>#_lgRR~^T@Lw%vly*k zJbS|Q+A5M~{nD{L3uL=Z+k4uiAt)qSsg%t+E7*(q|8UBj;&7zW~V{;3bLlZ(_(7hn>itQ$~E{ zdTJ=ow+{x`aGrAX#$S$J5kk&suLYpM$L6d8>ESQnS9)N*Di*>kIBd5~G1{UBK zW}b)xE^aukSC>=jI%udSjbwQP+~x3y81%Pq`P*l`H+MhlYQ^=1yskIyTEBVmdw29D_wu7B}duDnZOQG-f+{UepSqHGXlf+9LR~+5g-J1AQ9}L zQ>-(9B%898ul-y0A31XPFx~*~)T!NjPyJi;V)lUE*{4sRZaa~}?0u!{ue4;1qxVlW eW6r!OWbPAv3;#aBzwMO(0000^;6Uj@IKw>9VH!iNJ)3+3phZ)qq{q$;SGv}$BUNkIvVLxDQOTS4v-E7ln^DQ zB))#<^A~((J~KNz`#kf^?EbJbyR#enOh=uZgq{Qo3yWL>0q9|2;Q&}z*my*^|Cqa^ zm7IUX^|Pl2s{i2WQo;S&|F^rff}7QXyY<4`e{ePbexvCAA6zRSXrG&M$d!?iA*AQ` zU_2P|?YY0d#|po{oGvPMRXiU@7COuSK>z$Yl-v_Ow%1nkYp4>P?&sm4ud1cl5jryH z)AhJ>Vl=bkOK|0CWL{fw@OIwLL|gQ)hI|8E^{a!^H`D?0@XJvpr?1E$}_duu7{ z8hlR|BkJ(vg0O;5UM}weqZ{+S1DNnmAHX3h%+3z8J>=OU@8As=)8yioch-?A4}5am zezKpnLDTVN0`;X@J}F$o>k?yqSGd=%mu{mKB&O}M%8Hdonie0urb>ma?5_KqlJ4x94s!@2{SZZXSlt?i-IXk^Egz@A8g&45BA|{XEoM( zH|-t!jdb~rbp2|||D2InTk<+aajn#0@^opt2~+>EIuTbb_G&$POLte}U-y&x>*?rY z{oQB)ZKj?-gV@lmMt#7-qCM0AlnjEG59YN<1{BEvrI2B3|NFlL&4~GSvSovUZy5hD z%MnK6cL#p)AN@3fZEl3kD4ET~24$!{iSeC*;JI|(EH?B$nDb27UYCn5k-$;hOY9rGlD9G2_&jfE;)uXk z4@QLZrvkqvS--pxP6B^1s}D-T+Cv$kTj1hvAHd@ytVXs$2EW$Y{FV2gvvR9mj0gUu z+xW|OukLnmSykvUXgG;GBW}H+B~4&B(R(+`I@)qq%jN_wxb#a1?L4)jXd0K(E7$50 z6CCn>un<3$;A@TsdpNe%>U5zYK#fr@4#DP)p_rhwF?DlsQ;gt8C-u(auwPJ26yr!f z5S0y5jNnCQDxQ&WrLyrXyyK!rcjv*-pcNjPu-Atj`UQKW09Ex6Zxpsq^psRl=uI}y zE4F(veV*2Q1TBvt`XYe~je>mtOQm5@gr(#Kj0ux%NVMl4;WA-kC%GiU^o)B%NN^-* z&ho3^Lr@>!a9h=1?(jq5PL6pYLx2N!5(pm~i$`3cWQ06hTsdR~1j*vzo1m~STw3hq z;snsFHo3Y9N}>~1K^^Y{C$UV2?U3ItFY6>>Nn9C}Df<%w{TgDJ)kP!!a!IrvAlfY_ zm3D>tb^fe^AbdI5A6nhZa4WlT(2CCXyxV{!Rgpmpc02Cm1WH>b5*zlej*S*psGyI@ z6SeP8Zh~5JogBP*nz!O4(ak`abET@2lX`L)l)UtBG_<-<=1we7fdAuKR~=W93&nlC z)ISlGqfkcm=K}{=?!L4q(5G$iQ8KqJC~nj_o_^r*!BYn{{GobWRQ?O7mTIuMz_4<2K*syGD8vL;0fOD-6yloTAH$XgO|*C)?2jas_9vnWku|Gs=t(M< zA`xK%N;P7GL@5$yE7)cZU2m|Nggtc#9u_aS9!4v4*;poz&jMzL7 zu`)YHUyF|}6hX1Vu%P}{vnrYqmQ|KK*Ba@Xr3MR`CQntV;;~_xN3oe|!0Ce*=+hR=WOLjcaR4&pL0mgDc&dPfD+ZW1=xh$JC>NN&%a=O&H9Fi!#ZI?xLaFc1`D z+p)s3RVkAX>h7x86!8*<`+ZBAwPS7YArU3e2k|)emVm|)1*nO9$)~C(!xl*kf}8vn zL{knsF)me+`LbO9%~Dd#W*bWgTd;e7!%hrqd2wlGB)sxlkJb?yAPl; zRbPsS?R8TqH@9yOPm-WWp#n#GNyYhL#><6zK{|yb%3;j%NXsQh8F9#`L+kz^YvC{7f zHO4>uYxwGbBF( zp}o^lgvCUK3mKL9hE1CTRU*tQ9$j2D^A6ZnaVm-4(&&r}KyDZYgPa@gOG!AkAdL-G zUJ=b))|6_?_tl8Z$6iV>7aw7~H99Ic`1pYJoT;*+CPuWO zIfF(E#MN@aYt0s+^>EcDua$zhj3w=Ep`qfgUy1!1`?$7Zl}#b&pF{ z`T(EV_kacLP?boNauJ+P=$d^v8raT~DB=E-X z!b^IL{pVKL<@hp0wNGRJrrJoDJg(!>`ZtU0$P&Du%N6eYx6CT7AxC{5ABq2c&~}i! zLuuLM{nSsikr)>Fh0K?`JU{=*X2(@n&mdFW(9EjF(5i+~pZ_OwmeBMDYDTTR7JCEK zRzmVxqTa#!8J4*+ilTR62Ecr0UtxHewf0GcA-l0HOSMQh*irQ}1+y6)}H?Ik$ZytL;>iiO9#TfNY)fj--s`vq0 z?NDZIEu)GM>?h~}K7zK;cXCOiK3+oR&j*O?Ogi(ME|`hgY7BT5LgfTSy(G+Ly=F9n z*ja0#DdS5+^v%dlErq0tG*{dA=R5HKhtq)6z43sZZ?HO4L zz@F^h%!|#=OU&rneEryI4eWh}6rvtfrtSDbA{@YyVh-)Ae`BA-r|OW|5*$8!+LaK+ zx2K}5r!f4(H30Ceil?v`c7#%TIMV*8Ngizji$$C17aX9fm!?JN%Z-R@7s>P<_Qn!R z%Xt)<{S>0n_t2F~MP$s7CB+?TtJYW!3c?Uw;-y?}QT@c&oJ~^cfqjsL)YghY{g3?% z(5NGQGeOEf&<~GNsQW>fUN}uI={0rD?A!&#b9gFhA}Ih$wTG|?=Uz^_1j7K*Sh&yp z24q2f~h+{fITUiQX~I~5zsrCeOadr6gesEoG5I^&PT`O1Hs(%YEkd#Hb>|wo>|(O7Po$fpFo!=`lc*5i*;`` zsxX4mOr=PCStD_Rs7|7iUzhrW%{lLrN7WtFThqqB@88%AWSRvO=Ki8kcyp}a#RPhA zk7Zh$`~~k6n6Je551*)>$u_1^8N2Q}*@#Isj>(cih=hQmf7r!F?5bH4_}1&@8vH6F?!q(yyRBG9)F>}H zA*jvjRe3P;Vq1stu@`_%KnCwW545qLcP}Iqck1?auy=X{eT&Y*&5k4g?$}PKuVLDn zVW{!~2&8$3A%5YdB)$Z2wodj^7aC!RyYaI>M3(=Wf(_fFL|pbY5(svlWgu~QEtLT1 zCk1X89kVKX9AZWvK!faZ|HmObzN)HJR5Ip-Uo+Nkal$S?u+g3YDK`P2wt>+(Z#IsR|v zw+6OMdS1gF(M%k-WloKP!qxUs?ktfhSt(Ua*t`Jq}^uu ziMM`eDajr=46fvFCX5VOwyNkv4#~5y5QQ!|zsW?esRUT=&Qo$OSwno((fImpr}+Pj zoibG`qANnL&bkG6MDCeynj~-`T4jUyzz9P$DmjLuSQ-+?sVZ!&=`)K;(6bIM(v1-NunU?2 z91&CpY@IV22#KKyHFem<&by16_?E}#mp{fCYITZi**BxOo?f%TwAR|(Y+FHIXNhs> z7lR|;+8RoFL+FA%6Zfy$-=4;gf-20T16dlOId zdUCY<9qifQJFGKUuzI|I=6dZ#N7kL|1jk6S02(uokZ^qRhH=xtvbQ4AmxK8nR2r%2 z3e4XcsyswkfBX(S_w;o1b`1FSrSzII_`frc(9Ua*E6nUX!eBd!OY0hDMieA7uuuxH zW0pAO<~cc(fW<2kFEy$r^6nQBR=EY0D5u}{$PV+rXX%9K=c)dLYnQB?5gu`L`zDHrwEklG~jN9d?!Y(#k+)$<*oA9q_b&BQure@5QFyzG$kY|| zg!_s?)}HcRy@%Vy@f2jK_~*=&1e<{ldTi{6W`Ma;@=id2&()p3T#e)AxZ(0*RY_1Q z>%%(=uhVS%G-o0Z>lx;winRLa}Az?t+Fz=;yTa_`J(lDg>Ml=sRvO+eqpws zG=1M!Sxd4ce5SplF+P)C!)bilSURIw-de9%Q$s(lua>F>QN3YK2y(NFq(AwuCv#^Z z^DwF;*r~qtWgtiit$cw_!v>$fYg%%2*#=FnQl21)?D|M8mW+4zYS-n<3_Yb%@n7ip z;G=Jey;t5Sl&RiYEiYzz%hfoG3ZA`i`g3$<_#&SHJ=c!~MEpK&BWQRi5D8&=IeKP1 z4OP)Hi8zYnrJsqt+Zjn9@lwPa7iOo*&&{4gV`7c$Nna$pvGJv8@YcU9+z1&YhH^+@ zA)6VHnS?MhPuGqTEV>L!qqn_NdT$eR=2C6HijYd`*DIj;R^G6XX*Z!o_b#GJSPqLC zJiOMIHDtemF0NQ;kBbdrKjku7k3^b*0a0r6Y_~&0d*>&T@)1s{XKm_K>MB;XDkUzW zyRNa3!!&VIx7jbc$U9YoPx=UNo?JK&Mh(Jt9+$({&Y6`8kUTsqH zbN+ZmGF*ndr(e5kAeLi69-fq^%kYzCVSwD#%87_sbg```26eO@^#tv7I5GTuAKl~{ zO9-Rp5a2?Tzs&No$_>ITSMoyF?GMupFpy!<%jd;lH^Ksks(~$P2`w>rTBKX z4);W#pQkI~mXrn3=;=2fRf(SVQPN%; zIihy!#m1>GSLtX^kMCCLWMo>F3C~IRXQrXkO2*QE+acxl6uO-@Bma@g&>0kd9{j*Y z3)+;Loz|wCqZFyE0q)Ju8t1YT4mRIDh9xY^OQvx%q)j6@W|RS;*|wnCcmED8X?@sv zZQ`O-WIctIA_3|Av%{tqe@(-r^^3CDsjZ7^vXl69QdYx|;qG=b;?dD&Dgi`=Q7ng# zUtZoGjqHe|n17@OV2GF(`|BQ-E#iX``yxQv+*ALWZbS=tQ;Vozg;Zw_!^a}7wck#z z1#WgwkQSzp9ZT2^VUKon^_m&~0T&b{em(jJBbgW|0M{ef*a7#X0mzEbOfMt|FcmiF zXB1~Bw@?y$%E}H=k|uC>A|mcPf7azVO4_%ud?)D)3}m6pE_F{$?ikP;zt$Ao7?fyH z$GWLo;of;_Nql%}!z49mhy+29ykd>w0|?N;s5%1OrE!~iB0;oRKB89aHZgW83?Dd^ z>7#kL@os?s^Sd3Pbc+A3ECSzM39*0ZUK2Hdqn9?AGU+4)yuQTlIwr3@b|t&Lx%;E# z<_6Emps%4op6pb7S^3kDw_&mI!H@&?`;})bm^5J5M^5oHK1 ze)OzJ9)2M%6C{`JL#1t~R+VtqT~|_WG2a7DZrd`c-v6WCJTX?my&|(DzkM?``ej=4 zb+qP(qtECNb+v(8cZ6AY3yO-TLSagG_cWtxl3cy@lbO|4^*5XLXF?^B*N;w>P~qe5 zS1+XVwu2e#zrQm{Y)*K@!-WTd1_HpM0)Pioe(}F^(Hix!{%`-os^ MsOkXq$~KYz50#aYqW}N^ diff --git a/autogpt_platform/frontend/src/stories/assets/testing.png b/autogpt_platform/frontend/src/stories/assets/testing.png deleted file mode 100644 index d4ac39a0ced924068b7625735c9bccac7b17f45d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49313 zcmbqYWm6nXvn5Ed0Kt863mQm*F0R2LI4r?~yDjeS3GVLhun^qcZE;vE*e((R+~@rb z_e)px>8dl`GiRixqtsO7aIh$_kdTmY6y&8fkdRQoNJz*S7%2ZCc<=2#{pZlDDSeaq z&)q#f-#t3pJ3jl*?i`)&9G-1&U;YQ~A6@*1Y#*HL9-X|tzW%v=xVX80ettf`zB{`@ zSoVtSAD_QUBb{BspPrsh{@lVYZVnF*udlC< JACFEikIt@6Pfrg{{#;&Oa(xoW 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�B6};G&Xp9}-Hnlio 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

    Date: Mon, 16 Jun 2025 09:01:10 +0100 Subject: [PATCH 098/497] fix(platform/backend): skip invalid graphs when listing in block menu (#10159) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Background & Summary of Changes If a user has a single invalid Agent in their Library (i.e one with a Block which doesn't exist) currently the Blocks menu does not return any Agent results. Valid agents should still load even when some stored graphs are malformed. Graphs which are malformed should just be skipped rather than breaking the entire process, this PR implements that fix, unblocking users with a malformed Agent in their Library (me!). ## Testing I have tested this PR in the dev deployment (where I have this issue on my account) and have confirmed that Agents now show up in the list: | Before this Change | After this Change | | ------------------ | ----------------- | | ![Before change screenshot](https://github.com/user-attachments/assets/9263da25-ff4a-4dfa-bd96-19dfd689ddac) | ![After change screenshot](https://github.com/user-attachments/assets/86219055-b97b-456c-a270-80d729c909da) | ## Changes 🏗️ - Validate each graph’s serialization in get_graphs and skip any that raise an exception - Added error logging for invalid graphs ## Checklist 📋 For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] poetry run format - [ ] poetry run test For configuration changes: - [x] .env.example is updated or already compatible with my changes - [x] docker-compose.yml is updated or already compatible with my changes - [x] I have included a list of my configuration changes in the PR description (under Changes) Fixes [OPEN-2461: Loading a Library Agent with an invalid block causes all Library Agent Loading to fail in Builder Blocks Menu](https://linear.app/autogpt/issue/OPEN-2461/loading-a-library-agent-with-an-invalid-block-causes-all-library-agent) --- autogpt_platform/backend/backend/data/graph.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/autogpt_platform/backend/backend/data/graph.py b/autogpt_platform/backend/backend/data/graph.py index c556ba0450..7733ec3518 100644 --- a/autogpt_platform/backend/backend/data/graph.py +++ b/autogpt_platform/backend/backend/data/graph.py @@ -655,7 +655,10 @@ async def get_graphs( graph_models = [] for graph in graphs: try: - graph_models.append(GraphModel.from_db(graph)) + graph_model = GraphModel.from_db(graph) + # Trigger serialization to validate that the graph is well formed. + graph_model.model_dump() + graph_models.append(graph_model) except Exception as e: logger.error(f"Error processing graph {graph.id}: {e}") continue From f950f35af8960bb3fe94a81434c984e3acd0aeb3 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Mon, 16 Jun 2025 10:02:12 -0500 Subject: [PATCH 099/497] [Snyk] Security upgrade requests from 2.31.0 to 2.32.4 (#10148) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg) ### Snyk has created this PR to fix 1 vulnerabilities in the pip dependencies of this project. #### Snyk changed the following file(s): - `docs/requirements.txt`
    ⚠️ Warning ``` mkdocs-material 9.2.8 requires requests, which is not installed. mkdocs-material 9.2.8 has requirement pymdown-extensions~=10.3, but you have pymdown-extensions 10.2.1. ```
    --- > [!IMPORTANT] > > - Check the changes in this PR to ensure they won't cause issues with your project. > - Max score is 1000. Note that the real score may have changed since the PR was raised. > - This PR was automatically created by Snyk using the credentials of a real user. > - Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded. --- **Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._ For more information: 🧐 [View latest project report](https://app.snyk.io/org/significant-gravitas/project/7c1b6d4c-2625-44c8-8403-42505b3997f8?utm_source=github&utm_medium=referral&page=fix-pr) 📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=github&utm_content=fix-pr-template) 🛠 [Adjust project settings](https://app.snyk.io/org/significant-gravitas/project/7c1b6d4c-2625-44c8-8403-42505b3997f8?utm_source=github&utm_medium=referral&page=fix-pr/settings) 📚 [Read about Snyk's upgrade logic](https://docs.snyk.io/scan-with-snyk/snyk-open-source/manage-vulnerabilities/upgrade-package-versions-to-fix-vulnerabilities?utm_source=github&utm_content=fix-pr-template) --- **Learn how to fix vulnerabilities with free interactive lessons:** 🦉 [Learn about vulnerability in an interactive lesson of Snyk Learn.](https://learn.snyk.io/?loc=fix-pr) [//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"requests","from":"2.31.0","to":"2.32.4"}],"env":"prod","issuesToFix":["SNYK-PYTHON-REQUESTS-10305723"],"prId":"1b1e0485-c36e-4cb8-a03c-422057cc5b21","prPublicId":"1b1e0485-c36e-4cb8-a03c-422057cc5b21","packageManager":"pip","priorityScoreList":[678],"projectPublicId":"7c1b6d4c-2625-44c8-8403-42505b3997f8","projectUrl":"https://app.snyk.io/org/significant-gravitas/project/7c1b6d4c-2625-44c8-8403-42505b3997f8?utm_source=github&utm_medium=referral&page=fix-pr","prType":"fix","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":["updated-fix-title","pr-warning-shown","priorityScore"],"type":"auto","upgrade":[],"vulns":["SNYK-PYTHON-REQUESTS-10305723"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}' --------- Co-authored-by: Swifty Co-authored-by: snyk-bot --- docs/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/requirements.txt b/docs/requirements.txt index 6075801360..ea0eab8c2a 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -5,3 +5,4 @@ pymdown-extensions mkdocs-git-revision-date-localized-plugin zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability urllib3>=2.2.2 # not directly required, pinned by Snyk to avoid a vulnerability +requests>=2.32.4 # not directly required, pinned by Snyk to avoid a vulnerability From 81d3eb7c346a91bb6098e236d10df6cc06a945b7 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Mon, 16 Jun 2025 10:22:08 -0500 Subject: [PATCH 100/497] feat(backend, frontend): make changes to use our security modules more effectively (#10123) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Doing the CASA Audit and this is something to check ### Changes 🏗️ - limits APIs to use their specific endpoints - use expected trusted sources for each block and requests call - Use cryptographically valid string comparisons - Don't log secrets ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Testing in dev branch once merged --------- Co-authored-by: Swifty --- .gitignore | 1 + .../autogpt_libs/api_key/key_manager.py | 3 +- .../autogpt_libs/auth/middleware.py | 7 +- autogpt_platform/autogpt_libs/poetry.lock | 149 +++++++++++++++++- autogpt_platform/autogpt_libs/pyproject.toml | 3 + .../backend/backend/blocks/exa/contents.py | 4 +- .../backend/backend/blocks/exa/search.py | 4 +- .../backend/backend/blocks/exa/similar.py | 4 +- .../backend/backend/blocks/http.py | 21 ++- .../backend/backend/blocks/hubspot/company.py | 10 +- .../backend/backend/blocks/hubspot/contact.py | 10 +- .../backend/blocks/hubspot/engagement.py | 6 +- .../backend/backend/blocks/ideogram.py | 8 +- .../backend/backend/blocks/jina/chunking.py | 4 +- .../backend/backend/blocks/jina/embeddings.py | 4 +- .../backend/blocks/jina/fact_checker.py | 3 +- .../backend/backend/blocks/medium.py | 4 +- .../backend/backend/blocks/nvidia/deepfake.py | 4 +- .../backend/backend/blocks/screenshotone.py | 14 +- .../backend/backend/blocks/slant3d/base.py | 4 +- .../backend/backend/blocks/slant3d/order.py | 5 +- autogpt_platform/backend/backend/cli.py | 38 +++-- .../backend/integrations/credentials_store.py | 2 +- .../backend/integrations/oauth/github.py | 8 +- .../backend/integrations/oauth/google.py | 2 +- .../backend/integrations/oauth/linear.py | 6 +- .../backend/integrations/oauth/notion.py | 4 +- .../backend/integrations/oauth/todoist.py | 7 +- .../backend/integrations/oauth/twitter.py | 25 +-- .../backend/integrations/webhooks/github.py | 10 +- .../backend/integrations/webhooks/slant3d.py | 4 +- .../server/routers/postmark/postmark.py | 4 +- autogpt_platform/backend/poetry.lock | 3 + .../src/app/(platform)/auth/callback/route.ts | 14 +- .../frontend/src/components/CustomNode.tsx | 10 +- autogpt_platform/frontend/src/lib/utils.ts | 5 + 36 files changed, 312 insertions(+), 102 deletions(-) diff --git a/.gitignore b/.gitignore index d00ab276ce..ce70fab9f1 100644 --- a/.gitignore +++ b/.gitignore @@ -176,3 +176,4 @@ autogpt_platform/backend/settings.py *.ign.* .test-contents +.claude/settings.local.json diff --git a/autogpt_platform/autogpt_libs/autogpt_libs/api_key/key_manager.py b/autogpt_platform/autogpt_libs/autogpt_libs/api_key/key_manager.py index 257250a753..0ac5f8793c 100644 --- a/autogpt_platform/autogpt_libs/autogpt_libs/api_key/key_manager.py +++ b/autogpt_platform/autogpt_libs/autogpt_libs/api_key/key_manager.py @@ -31,4 +31,5 @@ class APIKeyManager: """Verify if a provided API key matches the stored hash.""" if not provided_key.startswith(self.PREFIX): return False - return hashlib.sha256(provided_key.encode()).hexdigest() == stored_hash + provided_hash = hashlib.sha256(provided_key.encode()).hexdigest() + return secrets.compare_digest(provided_hash, stored_hash) diff --git a/autogpt_platform/autogpt_libs/autogpt_libs/auth/middleware.py b/autogpt_platform/autogpt_libs/autogpt_libs/auth/middleware.py index d00fe1a05d..eb583ac1fc 100644 --- a/autogpt_platform/autogpt_libs/autogpt_libs/auth/middleware.py +++ b/autogpt_platform/autogpt_libs/autogpt_libs/auth/middleware.py @@ -1,5 +1,6 @@ import inspect import logging +import secrets from typing import Any, Callable, Optional from fastapi import HTTPException, Request, Security @@ -93,7 +94,11 @@ class APIKeyValidator: self.error_message = error_message async def default_validator(self, api_key: str) -> bool: - return api_key == self.expected_token + if not self.expected_token: + raise ValueError( + "Expected Token Required to be set when uisng API Key Validator default validation" + ) + return secrets.compare_digest(api_key, self.expected_token) async def __call__( self, request: Request, api_key: str = Security(APIKeyHeader) diff --git a/autogpt_platform/autogpt_libs/poetry.lock b/autogpt_platform/autogpt_libs/poetry.lock index 12a4970d50..155098d059 100644 --- a/autogpt_platform/autogpt_libs/poetry.lock +++ b/autogpt_platform/autogpt_libs/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -177,7 +177,7 @@ files = [ {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, ] -markers = {main = "python_version < \"3.11\"", dev = "python_full_version < \"3.11.3\""} +markers = {main = "python_version == \"3.10\"", dev = "python_full_version < \"3.11.3\""} [[package]] name = "attrs" @@ -323,6 +323,21 @@ files = [ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] +[[package]] +name = "click" +version = "8.2.1" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"}, + {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + [[package]] name = "colorama" version = "0.4.6" @@ -375,7 +390,7 @@ description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["main"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -399,6 +414,27 @@ files = [ [package.extras] tests = ["coverage", "coveralls", "dill", "mock", "nose"] +[[package]] +name = "fastapi" +version = "0.115.12" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, + {file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, +] + +[package.dependencies] +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.40.0,<0.47.0" +typing-extensions = ">=4.8.0" + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + [[package]] name = "frozenlist" version = "1.4.1" @@ -895,6 +931,47 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "launchdarkly-eventsource" +version = "1.2.4" +description = "LaunchDarkly SSE Client" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "launchdarkly_eventsource-1.2.4-py3-none-any.whl", hash = "sha256:048ef8c4440d0d8219778661ee4d4b5e12aa6ed2c29a3004417ede44c2386e8c"}, + {file = "launchdarkly_eventsource-1.2.4.tar.gz", hash = "sha256:b8b9342681f55e1d35c56243431cbbaca4eb9812d6785f8de204af322104e066"}, +] + +[package.dependencies] +urllib3 = ">=1.26.0,<3" + +[[package]] +name = "launchdarkly-server-sdk" +version = "9.11.1" +description = "LaunchDarkly SDK for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "launchdarkly_server_sdk-9.11.1-py3-none-any.whl", hash = "sha256:128569cebf666dd115cc0ba03c48ff75f6acc9788301a7e2c3a54d06107e445a"}, + {file = "launchdarkly_server_sdk-9.11.1.tar.gz", hash = "sha256:150e29656cb8c506d1967f3c59e62b69310d345ec27217640a6146dd1db5d250"}, +] + +[package.dependencies] +certifi = ">=2018.4.16" +expiringdict = ">=1.1.4" +launchdarkly-eventsource = ">=1.2.4,<2.0.0" +pyRFC3339 = ">=1.0" +semver = ">=2.10.2" +urllib3 = ">=1.26.0,<3" + +[package.extras] +consul = ["python-consul (>=1.0.1)"] +dynamodb = ["boto3 (>=1.9.71)"] +redis = ["redis (>=2.10.5)"] +test-filesource = ["pyyaml (>=5.3.1)", "watchdog (>=3.0.0)"] + [[package]] name = "multidict" version = "6.1.0" @@ -1412,6 +1489,18 @@ dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pyte docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] +[[package]] +name = "pyrfc3339" +version = "2.0.1" +description = "Generate and parse RFC 3339 timestamps" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "pyRFC3339-2.0.1-py3-none-any.whl", hash = "sha256:30b70a366acac3df7386b558c21af871522560ed7f3f73cf344b8c2cbb8b0c9d"}, + {file = "pyrfc3339-2.0.1.tar.gz", hash = "sha256:e47843379ea35c1296c3b6c67a948a1a490ae0584edfcbdea0eaffb5dd29960b"}, +] + [[package]] name = "pytest" version = "8.3.3" @@ -1604,6 +1693,18 @@ files = [ {file = "ruff-0.11.10.tar.gz", hash = "sha256:d522fb204b4959909ecac47da02830daec102eeb100fb50ea9554818d47a5fa6"}, ] +[[package]] +name = "semver" +version = "3.0.4" +description = "Python helper for Semantic Versioning (https://semver.org)" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "semver-3.0.4-py3-none-any.whl", hash = "sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746"}, + {file = "semver-3.0.4.tar.gz", hash = "sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602"}, +] + [[package]] name = "six" version = "1.16.0" @@ -1628,6 +1729,24 @@ files = [ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] +[[package]] +name = "starlette" +version = "0.46.2" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"}, + {file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + [[package]] name = "storage3" version = "0.11.0" @@ -1704,7 +1823,7 @@ description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["main"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, @@ -1755,6 +1874,26 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "uvicorn" +version = "0.34.3" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "uvicorn-0.34.3-py3-none-any.whl", hash = "sha256:16246631db62bdfbf069b0645177d6e8a77ba950cfedbfd093acef9444e4d885"}, + {file = "uvicorn-0.34.3.tar.gz", hash = "sha256:35919a9a979d7a59334b6b10e05d77c1d0d574c50e0fc98b8b1a0f165708b55a"}, +] + +[package.dependencies] +click = ">=7.0" +h11 = ">=0.8" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"] + [[package]] name = "websockets" version = "12.0" @@ -2037,4 +2176,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<4.0" -content-hash = "78ebf65cdef769cfbe92fe204f01e32d219cca9ee5a6ca9e657aa0630be63802" +content-hash = "d92143928a88ca3a56ac200c335910eafac938940022fed8bd0d17c95040b54f" diff --git a/autogpt_platform/autogpt_libs/pyproject.toml b/autogpt_platform/autogpt_libs/pyproject.toml index 2f2d05ac7a..71d6eeb1f6 100644 --- a/autogpt_platform/autogpt_libs/pyproject.toml +++ b/autogpt_platform/autogpt_libs/pyproject.toml @@ -17,6 +17,9 @@ pyjwt = "^2.10.1" pytest-asyncio = "^0.26.0" pytest-mock = "^3.14.0" supabase = "^2.15.1" +launchdarkly-server-sdk = "^9.11.1" +fastapi = "^0.115.12" +uvicorn = "^0.34.3" [tool.poetry.group.dev.dependencies] redis = "^5.2.1" diff --git a/autogpt_platform/backend/backend/blocks/exa/contents.py b/autogpt_platform/backend/backend/blocks/exa/contents.py index 7210af433d..87817e14be 100644 --- a/autogpt_platform/backend/backend/blocks/exa/contents.py +++ b/autogpt_platform/backend/backend/blocks/exa/contents.py @@ -9,7 +9,7 @@ from backend.blocks.exa._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class ContentRetrievalSettings(BaseModel): @@ -79,7 +79,7 @@ class ExaContentsBlock(Block): } try: - response = requests.post(url, headers=headers, json=payload) + response = Requests().post(url, headers=headers, json=payload) response.raise_for_status() data = response.json() yield "results", data.get("results", []) diff --git a/autogpt_platform/backend/backend/blocks/exa/search.py b/autogpt_platform/backend/backend/blocks/exa/search.py index 5915455a56..b003fbf6fa 100644 --- a/autogpt_platform/backend/backend/blocks/exa/search.py +++ b/autogpt_platform/backend/backend/blocks/exa/search.py @@ -9,7 +9,7 @@ from backend.blocks.exa._auth import ( from backend.blocks.exa.helpers import ContentSettings from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class ExaSearchBlock(Block): @@ -136,7 +136,7 @@ class ExaSearchBlock(Block): payload[api_field] = value try: - response = requests.post(url, headers=headers, json=payload) + response = Requests().post(url, headers=headers, json=payload) response.raise_for_status() data = response.json() # Extract just the results array from the response diff --git a/autogpt_platform/backend/backend/blocks/exa/similar.py b/autogpt_platform/backend/backend/blocks/exa/similar.py index 036d26a481..61f4ab9db5 100644 --- a/autogpt_platform/backend/backend/blocks/exa/similar.py +++ b/autogpt_platform/backend/backend/blocks/exa/similar.py @@ -8,7 +8,7 @@ from backend.blocks.exa._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests from .helpers import ContentSettings @@ -120,7 +120,7 @@ class ExaFindSimilarBlock(Block): payload[api_field] = value.strftime("%Y-%m-%dT%H:%M:%S.000Z") try: - response = requests.post(url, headers=headers, json=payload) + response = Requests().post(url, headers=headers, json=payload) response.raise_for_status() data = response.json() yield "results", data.get("results", []) diff --git a/autogpt_platform/backend/backend/blocks/http.py b/autogpt_platform/backend/backend/blocks/http.py index d186e7f70b..40ed6a684b 100644 --- a/autogpt_platform/backend/backend/blocks/http.py +++ b/autogpt_platform/backend/backend/blocks/http.py @@ -114,9 +114,24 @@ class SendWebRequestBlock(Block): body = input_data.body if isinstance(body, str): try: - body = json.loads(body) - except json.JSONDecodeError: - # plain text – treat as form‑field value instead + # Validate JSON string length to prevent DoS attacks + if len(body) > 10_000_000: # 10MB limit + raise ValueError("JSON body too large") + + parsed_body = json.loads(body) + + # Validate that parsed JSON is safe (basic object/array/primitive types) + if ( + isinstance(parsed_body, (dict, list, str, int, float, bool)) + or parsed_body is None + ): + body = parsed_body + else: + # Unexpected type, treat as plain text + input_data.json_format = False + + except (json.JSONDecodeError, ValueError): + # Invalid JSON or too large – treat as form‑field value instead input_data.json_format = False # ─── Prepare files (if any) ────────────────────────────────── diff --git a/autogpt_platform/backend/backend/blocks/hubspot/company.py b/autogpt_platform/backend/backend/blocks/hubspot/company.py index 81d0fdaf9e..002aeeef81 100644 --- a/autogpt_platform/backend/backend/blocks/hubspot/company.py +++ b/autogpt_platform/backend/backend/blocks/hubspot/company.py @@ -5,7 +5,7 @@ from backend.blocks.hubspot._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class HubSpotCompanyBlock(Block): @@ -45,7 +45,7 @@ class HubSpotCompanyBlock(Block): } if input_data.operation == "create": - response = requests.post( + response = Requests().post( base_url, headers=headers, json={"properties": input_data.company_data} ) result = response.json() @@ -67,14 +67,14 @@ class HubSpotCompanyBlock(Block): } ] } - response = requests.post(search_url, headers=headers, json=search_data) + response = Requests().post(search_url, headers=headers, json=search_data) result = response.json() yield "company", result.get("results", [{}])[0] yield "status", "retrieved" elif input_data.operation == "update": # First get company ID by domain - search_response = requests.post( + search_response = Requests().post( f"{base_url}/search", headers=headers, json={ @@ -94,7 +94,7 @@ class HubSpotCompanyBlock(Block): company_id = search_response.json().get("results", [{}])[0].get("id") if company_id: - response = requests.patch( + response = Requests().patch( f"{base_url}/{company_id}", headers=headers, json={"properties": input_data.company_data}, diff --git a/autogpt_platform/backend/backend/blocks/hubspot/contact.py b/autogpt_platform/backend/backend/blocks/hubspot/contact.py index b27649e1dc..b930062a1c 100644 --- a/autogpt_platform/backend/backend/blocks/hubspot/contact.py +++ b/autogpt_platform/backend/backend/blocks/hubspot/contact.py @@ -5,7 +5,7 @@ from backend.blocks.hubspot._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class HubSpotContactBlock(Block): @@ -45,7 +45,7 @@ class HubSpotContactBlock(Block): } if input_data.operation == "create": - response = requests.post( + response = Requests().post( base_url, headers=headers, json={"properties": input_data.contact_data} ) result = response.json() @@ -68,13 +68,13 @@ class HubSpotContactBlock(Block): } ] } - response = requests.post(search_url, headers=headers, json=search_data) + response = Requests().post(search_url, headers=headers, json=search_data) result = response.json() yield "contact", result.get("results", [{}])[0] yield "status", "retrieved" elif input_data.operation == "update": - search_response = requests.post( + search_response = Requests().post( f"{base_url}/search", headers=headers, json={ @@ -94,7 +94,7 @@ class HubSpotContactBlock(Block): contact_id = search_response.json().get("results", [{}])[0].get("id") if contact_id: - response = requests.patch( + response = Requests().patch( f"{base_url}/{contact_id}", headers=headers, json={"properties": input_data.contact_data}, diff --git a/autogpt_platform/backend/backend/blocks/hubspot/engagement.py b/autogpt_platform/backend/backend/blocks/hubspot/engagement.py index 15d0296117..eb22a00f2a 100644 --- a/autogpt_platform/backend/backend/blocks/hubspot/engagement.py +++ b/autogpt_platform/backend/backend/blocks/hubspot/engagement.py @@ -7,7 +7,7 @@ from backend.blocks.hubspot._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class HubSpotEngagementBlock(Block): @@ -66,7 +66,7 @@ class HubSpotEngagementBlock(Block): } } - response = requests.post(email_url, headers=headers, json=email_data) + response = Requests().post(email_url, headers=headers, json=email_data) result = response.json() yield "result", result yield "status", "email_sent" @@ -80,7 +80,7 @@ class HubSpotEngagementBlock(Block): params = {"limit": 100, "after": from_date.isoformat()} - response = requests.get(engagement_url, headers=headers, params=params) + response = Requests().get(engagement_url, headers=headers, params=params) engagements = response.json() # Process engagement metrics diff --git a/autogpt_platform/backend/backend/blocks/ideogram.py b/autogpt_platform/backend/backend/blocks/ideogram.py index ca9ba69a80..66c2380d12 100644 --- a/autogpt_platform/backend/backend/blocks/ideogram.py +++ b/autogpt_platform/backend/backend/blocks/ideogram.py @@ -12,7 +12,7 @@ from backend.data.model import ( SchemaField, ) from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests TEST_CREDENTIALS = APIKeyCredentials( id="01234567-89ab-cdef-0123-456789abcdef", @@ -267,7 +267,7 @@ class IdeogramModelBlock(Block): } try: - response = requests.post(url, json=data, headers=headers) + response = Requests().post(url, json=data, headers=headers) return response.json()["data"][0]["url"] except RequestException as e: raise Exception(f"Failed to fetch image: {str(e)}") @@ -280,14 +280,14 @@ class IdeogramModelBlock(Block): try: # Step 1: Download the image from the provided URL - image_response = requests.get(image_url) + image_response = Requests().get(image_url) # Step 2: Send the downloaded image to the upscale API files = { "image_file": ("image.png", image_response.content, "image/png"), } - response = requests.post( + response = Requests().post( url, headers=headers, data={"image_request": "{}"}, diff --git a/autogpt_platform/backend/backend/blocks/jina/chunking.py b/autogpt_platform/backend/backend/blocks/jina/chunking.py index 0ebc72f1ca..75a5d858f2 100644 --- a/autogpt_platform/backend/backend/blocks/jina/chunking.py +++ b/autogpt_platform/backend/backend/blocks/jina/chunking.py @@ -5,7 +5,7 @@ from backend.blocks.jina._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class JinaChunkingBlock(Block): @@ -55,7 +55,7 @@ class JinaChunkingBlock(Block): "max_chunk_length": str(input_data.max_chunk_length), } - response = requests.post(url, headers=headers, json=data) + response = Requests().post(url, headers=headers, json=data) result = response.json() all_chunks.extend(result.get("chunks", [])) diff --git a/autogpt_platform/backend/backend/blocks/jina/embeddings.py b/autogpt_platform/backend/backend/blocks/jina/embeddings.py index 67a17bf2c3..dd7966d500 100644 --- a/autogpt_platform/backend/backend/blocks/jina/embeddings.py +++ b/autogpt_platform/backend/backend/blocks/jina/embeddings.py @@ -5,7 +5,7 @@ from backend.blocks.jina._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class JinaEmbeddingBlock(Block): @@ -38,6 +38,6 @@ class JinaEmbeddingBlock(Block): "Authorization": f"Bearer {credentials.api_key.get_secret_value()}", } data = {"input": input_data.texts, "model": input_data.model} - response = requests.post(url, headers=headers, json=data) + response = Requests().post(url, headers=headers, json=data) embeddings = [e["embedding"] for e in response.json()["data"]] yield "embeddings", embeddings diff --git a/autogpt_platform/backend/backend/blocks/jina/fact_checker.py b/autogpt_platform/backend/backend/blocks/jina/fact_checker.py index c9b8c08d1d..91c17f564e 100644 --- a/autogpt_platform/backend/backend/blocks/jina/fact_checker.py +++ b/autogpt_platform/backend/backend/blocks/jina/fact_checker.py @@ -1,7 +1,5 @@ from urllib.parse import quote -import requests - from backend.blocks.jina._auth import ( JinaCredentials, JinaCredentialsField, @@ -9,6 +7,7 @@ from backend.blocks.jina._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField +from backend.util.request import requests class FactCheckerBlock(Block): diff --git a/autogpt_platform/backend/backend/blocks/medium.py b/autogpt_platform/backend/backend/blocks/medium.py index 6d871b4caa..d68bed3bcf 100644 --- a/autogpt_platform/backend/backend/blocks/medium.py +++ b/autogpt_platform/backend/backend/blocks/medium.py @@ -13,7 +13,7 @@ from backend.data.model import ( SecretField, ) from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests TEST_CREDENTIALS = APIKeyCredentials( id="01234567-89ab-cdef-0123-456789abcdef", @@ -160,7 +160,7 @@ class PublishToMediumBlock(Block): "notifyFollowers": notify_followers, } - response = requests.post( + response = Requests().post( f"https://api.medium.com/v1/users/{author_id}/posts", headers=headers, json=data, diff --git a/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py b/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py index f7fa145312..3792cdf53f 100644 --- a/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py +++ b/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py @@ -5,7 +5,7 @@ from backend.blocks.nvidia._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests from backend.util.type import MediaFileType @@ -59,7 +59,7 @@ class NvidiaDeepfakeDetectBlock(Block): } try: - response = requests.post(url, headers=headers, json=payload) + response = Requests().post(url, headers=headers, json=payload) response.raise_for_status() data = response.json() diff --git a/autogpt_platform/backend/backend/blocks/screenshotone.py b/autogpt_platform/backend/backend/blocks/screenshotone.py index fed43b4281..5620b8119b 100644 --- a/autogpt_platform/backend/backend/blocks/screenshotone.py +++ b/autogpt_platform/backend/backend/blocks/screenshotone.py @@ -121,11 +121,10 @@ class ScreenshotWebPageBlock(Block): """ Takes a screenshot using the ScreenshotOne API """ - api = Requests(trusted_origins=["https://api.screenshotone.com"]) + api = Requests() - # Build API URL with parameters + # Build API parameters params = { - "access_key": credentials.api_key.get_secret_value(), "url": url, "viewport_width": viewport_width, "viewport_height": viewport_height, @@ -137,7 +136,14 @@ class ScreenshotWebPageBlock(Block): "cache": str(cache).lower(), } - response = api.get("https://api.screenshotone.com/take", params=params) + # Use header-based authentication instead of query parameter + headers = { + "X-Access-Key": credentials.api_key.get_secret_value(), + } + + response = api.get( + "https://api.screenshotone.com/take", params=params, headers=headers + ) return { "image": store_media_file( diff --git a/autogpt_platform/backend/backend/blocks/slant3d/base.py b/autogpt_platform/backend/backend/blocks/slant3d/base.py index d5d1681e1d..6919e5ec49 100644 --- a/autogpt_platform/backend/backend/blocks/slant3d/base.py +++ b/autogpt_platform/backend/backend/blocks/slant3d/base.py @@ -1,7 +1,7 @@ from typing import Any, Dict from backend.data.block import Block -from backend.util.request import requests +from backend.util.request import Requests from ._api import Color, CustomerDetails, OrderItem, Profile @@ -16,7 +16,7 @@ class Slant3DBlockBase(Block): def _make_request(self, method: str, endpoint: str, api_key: str, **kwargs) -> Dict: url = f"{self.BASE_URL}/{endpoint}" - response = requests.request( + response = Requests().request( method=method, url=url, headers=self._get_headers(api_key), **kwargs ) diff --git a/autogpt_platform/backend/backend/blocks/slant3d/order.py b/autogpt_platform/backend/backend/blocks/slant3d/order.py index a1a342a98e..6c9f4ffec3 100644 --- a/autogpt_platform/backend/backend/blocks/slant3d/order.py +++ b/autogpt_platform/backend/backend/blocks/slant3d/order.py @@ -1,11 +1,10 @@ import uuid from typing import List -import requests as baserequests - from backend.data.block import BlockOutput, BlockSchema from backend.data.model import APIKeyCredentials, SchemaField from backend.util import settings +from backend.util.request import req from backend.util.settings import BehaveAs from ._api import ( @@ -181,7 +180,7 @@ class Slant3DEstimateOrderBlock(Slant3DBlockBase): yield "total_price", result["totalPrice"] yield "shipping_cost", result["shippingCost"] yield "printing_cost", result["printingCost"] - except baserequests.HTTPError as e: + except req.HTTPError as e: yield "error", str(f"Error estimating order: {e} {e.response.text}") raise diff --git a/autogpt_platform/backend/backend/cli.py b/autogpt_platform/backend/backend/cli.py index 87fadb88de..858188f084 100755 --- a/autogpt_platform/backend/backend/cli.py +++ b/autogpt_platform/backend/backend/cli.py @@ -121,16 +121,17 @@ def reddit(server_address: str): """ Create an event graph """ - import requests - from backend.usecases.reddit_marketing import create_test_graph + from backend.util.request import Requests test_graph = create_test_graph() url = f"{server_address}/graphs" headers = {"Content-Type": "application/json"} data = test_graph.model_dump_json() - response = requests.post(url, headers=headers, data=data) + response = Requests(trusted_origins=[server_address]).post( + url, headers=headers, data=data + ) graph_id = response.json()["id"] print(f"Graph created with ID: {graph_id}") @@ -142,16 +143,18 @@ def populate_db(server_address: str): """ Create an event graph """ - import requests from backend.usecases.sample import create_test_graph + from backend.util.request import Requests test_graph = create_test_graph() url = f"{server_address}/graphs" headers = {"Content-Type": "application/json"} data = test_graph.model_dump_json() - response = requests.post(url, headers=headers, data=data) + response = Requests(trusted_origins=[server_address]).post( + url, headers=headers, data=data + ) graph_id = response.json()["id"] @@ -159,7 +162,9 @@ def populate_db(server_address: str): execute_url = f"{server_address}/graphs/{response.json()['id']}/execute" text = "Hello, World!" input_data = {"input": text} - response = requests.post(execute_url, headers=headers, json=input_data) + response = Requests(trusted_origins=[server_address]).post( + execute_url, headers=headers, json=input_data + ) schedule_url = f"{server_address}/graphs/{graph_id}/schedules" data = { @@ -167,7 +172,9 @@ def populate_db(server_address: str): "cron": "*/5 * * * *", "input_data": {"input": "Hello, World!"}, } - response = requests.post(schedule_url, headers=headers, json=data) + response = Requests(trusted_origins=[server_address]).post( + schedule_url, headers=headers, json=data + ) print("Database populated with: \n- graph\n- execution\n- schedule") @@ -178,21 +185,25 @@ def graph(server_address: str): """ Create an event graph """ - import requests from backend.usecases.sample import create_test_graph + from backend.util.request import Requests url = f"{server_address}/graphs" headers = {"Content-Type": "application/json"} data = create_test_graph().model_dump_json() - response = requests.post(url, headers=headers, data=data) + response = Requests(trusted_origins=[server_address]).post( + url, headers=headers, data=data + ) if response.status_code == 200: print(response.json()["id"]) execute_url = f"{server_address}/graphs/{response.json()['id']}/execute" text = "Hello, World!" input_data = {"input": text} - response = requests.post(execute_url, headers=headers, json=input_data) + response = Requests(trusted_origins=[server_address]).post( + execute_url, headers=headers, json=input_data + ) else: print("Failed to send graph") @@ -206,12 +217,15 @@ def execute(graph_id: str, content: dict): """ Create an event graph """ - import requests + + from backend.util.request import Requests headers = {"Content-Type": "application/json"} execute_url = f"http://0.0.0.0:8000/graphs/{graph_id}/execute" - requests.post(execute_url, headers=headers, json=content) + Requests(trusted_origins=["http://0.0.0.0:8000"]).post( + execute_url, headers=headers, json=content + ) @test.command() diff --git a/autogpt_platform/backend/backend/integrations/credentials_store.py b/autogpt_platform/backend/backend/integrations/credentials_store.py index 847b20fa6c..a5a88dfbcb 100644 --- a/autogpt_platform/backend/backend/integrations/credentials_store.py +++ b/autogpt_platform/backend/backend/integrations/credentials_store.py @@ -398,7 +398,7 @@ class IntegrationCredentialsStore: ( state for state in oauth_states - if state.token == token + if secrets.compare_digest(state.token, token) and state.provider == provider and state.expires_at > now.timestamp() ), diff --git a/autogpt_platform/backend/backend/integrations/oauth/github.py b/autogpt_platform/backend/backend/integrations/oauth/github.py index e6b3db37b4..3358295170 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/github.py +++ b/autogpt_platform/backend/backend/integrations/oauth/github.py @@ -4,7 +4,7 @@ from urllib.parse import urlencode from backend.data.model import OAuth2Credentials from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests from .base import BaseOAuthHandler @@ -59,7 +59,7 @@ class GitHubOAuthHandler(BaseOAuthHandler): "X-GitHub-Api-Version": "2022-11-28", } - requests.delete( + Requests().delete( url=self.revoke_url.format(client_id=self.client_id), auth=(self.client_id, self.client_secret), headers=headers, @@ -89,7 +89,7 @@ class GitHubOAuthHandler(BaseOAuthHandler): **params, } headers = {"Accept": "application/json"} - response = requests.post(self.token_url, data=request_body, headers=headers) + response = Requests().post(self.token_url, data=request_body, headers=headers) token_data: dict = response.json() username = self._request_username(token_data["access_token"]) @@ -132,7 +132,7 @@ class GitHubOAuthHandler(BaseOAuthHandler): "X-GitHub-Api-Version": "2022-11-28", } - response = requests.get(url, headers=headers) + response = Requests().get(url, headers=headers) if not response.ok: return None diff --git a/autogpt_platform/backend/backend/integrations/oauth/google.py b/autogpt_platform/backend/backend/integrations/oauth/google.py index 310eb5ae73..4de5c7365a 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/google.py +++ b/autogpt_platform/backend/backend/integrations/oauth/google.py @@ -76,7 +76,7 @@ class GoogleOAuthHandler(BaseOAuthHandler): logger.debug(f"Scopes granted by Google: {granted_scopes}") google_creds = flow.credentials - logger.debug(f"Received credentials: {google_creds}") + logger.debug("Received credentials") logger.debug("Requesting user email") username = self._request_email(google_creds) diff --git a/autogpt_platform/backend/backend/integrations/oauth/linear.py b/autogpt_platform/backend/backend/integrations/oauth/linear.py index fd9d379c1e..afc84da22e 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/linear.py +++ b/autogpt_platform/backend/backend/integrations/oauth/linear.py @@ -7,7 +7,7 @@ from pydantic import SecretStr from backend.blocks.linear._api import LinearAPIException from backend.data.model import APIKeyCredentials, OAuth2Credentials from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests from .base import BaseOAuthHandler @@ -53,7 +53,7 @@ class LinearOAuthHandler(BaseOAuthHandler): "Authorization": f"Bearer {credentials.access_token.get_secret_value()}" } - response = requests.post(self.revoke_url, headers=headers) + response = Requests().post(self.revoke_url, headers=headers) if not response.ok: try: error_data = response.json() @@ -95,7 +95,7 @@ class LinearOAuthHandler(BaseOAuthHandler): headers = { "Content-Type": "application/x-www-form-urlencoded" } # Correct header for token request - response = requests.post(self.token_url, data=request_body, headers=headers) + response = Requests().post(self.token_url, data=request_body, headers=headers) if not response.ok: try: diff --git a/autogpt_platform/backend/backend/integrations/oauth/notion.py b/autogpt_platform/backend/backend/integrations/oauth/notion.py index 3cd3249fef..10f699d61f 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/notion.py +++ b/autogpt_platform/backend/backend/integrations/oauth/notion.py @@ -4,7 +4,7 @@ from urllib.parse import urlencode from backend.data.model import OAuth2Credentials from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests from .base import BaseOAuthHandler @@ -52,7 +52,7 @@ class NotionOAuthHandler(BaseOAuthHandler): "Authorization": f"Basic {auth_str}", "Accept": "application/json", } - response = requests.post(self.token_url, json=request_body, headers=headers) + response = Requests().post(self.token_url, json=request_body, headers=headers) token_data = response.json() # Email is only available for non-bot users email = ( diff --git a/autogpt_platform/backend/backend/integrations/oauth/todoist.py b/autogpt_platform/backend/backend/integrations/oauth/todoist.py index 543a7de84b..014be26332 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/todoist.py +++ b/autogpt_platform/backend/backend/integrations/oauth/todoist.py @@ -1,10 +1,9 @@ import urllib.parse from typing import ClassVar, Optional -import requests - from backend.data.model import OAuth2Credentials, ProviderName from backend.integrations.oauth.base import BaseOAuthHandler +from backend.util.request import Requests class TodoistOAuthHandler(BaseOAuthHandler): @@ -48,12 +47,12 @@ class TodoistOAuthHandler(BaseOAuthHandler): "redirect_uri": self.redirect_uri, } - response = requests.post(self.TOKEN_URL, data=data) + response = Requests().post(self.TOKEN_URL, data=data) response.raise_for_status() tokens = response.json() - response = requests.post( + response = Requests().post( "https://api.todoist.com/sync/v9/sync", headers={"Authorization": f"Bearer {tokens['access_token']}"}, data={"sync_token": "*", "resource_types": '["user"]'}, diff --git a/autogpt_platform/backend/backend/integrations/oauth/twitter.py b/autogpt_platform/backend/backend/integrations/oauth/twitter.py index 519ccd354e..8645c0814c 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/twitter.py +++ b/autogpt_platform/backend/backend/integrations/oauth/twitter.py @@ -2,10 +2,9 @@ import time import urllib.parse from typing import ClassVar, Optional -import requests - from backend.data.model import OAuth2Credentials, ProviderName from backend.integrations.oauth.base import BaseOAuthHandler +from backend.util.request import Requests, req class TwitterOAuthHandler(BaseOAuthHandler): @@ -78,7 +77,9 @@ class TwitterOAuthHandler(BaseOAuthHandler): auth = (self.client_id, self.client_secret) - response = requests.post(self.TOKEN_URL, headers=headers, data=data, auth=auth) + response = Requests().post( + self.TOKEN_URL, headers=headers, data=data, auth=auth + ) response.raise_for_status() tokens = response.json() @@ -102,7 +103,7 @@ class TwitterOAuthHandler(BaseOAuthHandler): params = {"user.fields": "username"} - response = requests.get( + response = Requests().get( f"{self.USERNAME_URL}?{urllib.parse.urlencode(params)}", headers=headers ) response.raise_for_status() @@ -122,13 +123,12 @@ class TwitterOAuthHandler(BaseOAuthHandler): auth = (self.client_id, self.client_secret) - response = requests.post(self.TOKEN_URL, headers=header, data=data, auth=auth) + response = Requests().post(self.TOKEN_URL, headers=header, data=data, auth=auth) try: response.raise_for_status() - except requests.exceptions.HTTPError as e: - print("HTTP Error:", e) - print("Response Content:", response.text) + except req.exceptions.HTTPError: + print(f"HTTP Error: {response.status_code}") raise tokens = response.json() @@ -159,13 +159,14 @@ class TwitterOAuthHandler(BaseOAuthHandler): auth = (self.client_id, self.client_secret) - response = requests.post(self.REVOKE_URL, headers=header, data=data, auth=auth) + response = Requests().post( + self.REVOKE_URL, headers=header, data=data, auth=auth + ) try: response.raise_for_status() - except requests.exceptions.HTTPError as e: - print("HTTP Error:", e) - print("Response Content:", response.text) + except req.exceptions.HTTPError: + print(f"HTTP Error: {response.status_code}") raise return response.status_code == 200 diff --git a/autogpt_platform/backend/backend/integrations/webhooks/github.py b/autogpt_platform/backend/backend/integrations/webhooks/github.py index 6a39192045..90cb06d303 100644 --- a/autogpt_platform/backend/backend/integrations/webhooks/github.py +++ b/autogpt_platform/backend/backend/integrations/webhooks/github.py @@ -2,13 +2,13 @@ import hashlib import hmac import logging -import requests from fastapi import HTTPException, Request from strenum import StrEnum from backend.data import integrations from backend.data.model import Credentials from backend.integrations.providers import ProviderName +from backend.util.request import Requests, req from ._base import BaseWebhooksManager @@ -73,7 +73,7 @@ class GithubWebhooksManager(BaseWebhooksManager): repo, github_hook_id = webhook.resource, webhook.provider_webhook_id ping_url = f"{self.GITHUB_API_URL}/repos/{repo}/hooks/{github_hook_id}/pings" - response = requests.post(ping_url, headers=headers) + response = Requests().post(ping_url, headers=headers) if response.status_code != 204: error_msg = extract_github_error_msg(response) @@ -110,7 +110,7 @@ class GithubWebhooksManager(BaseWebhooksManager): }, } - response = requests.post( + response = Requests().post( f"{self.GITHUB_API_URL}/repos/{resource}/hooks", headers=headers, json=webhook_data, @@ -153,7 +153,7 @@ class GithubWebhooksManager(BaseWebhooksManager): f"Unsupported webhook type '{webhook.webhook_type}'" ) - response = requests.delete(delete_url, headers=headers) + response = Requests().delete(delete_url, headers=headers) if response.status_code not in [204, 404]: # 204 means successful deletion, 404 means the webhook was already deleted @@ -166,7 +166,7 @@ class GithubWebhooksManager(BaseWebhooksManager): # --8<-- [end:GithubWebhooksManager] -def extract_github_error_msg(response: requests.Response) -> str: +def extract_github_error_msg(response: req.Response) -> str: error_msgs = [] resp = response.json() if resp.get("message"): diff --git a/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py b/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py index 189ab72083..7c923435a9 100644 --- a/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py +++ b/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py @@ -1,12 +1,12 @@ import logging -import requests from fastapi import Request from backend.data import integrations from backend.data.model import APIKeyCredentials, Credentials from backend.integrations.providers import ProviderName from backend.integrations.webhooks._base import BaseWebhooksManager +from backend.util.request import Requests logger = logging.getLogger(__name__) @@ -39,7 +39,7 @@ class Slant3DWebhooksManager(BaseWebhooksManager): # Slant3D's API doesn't use events list, just register for all order updates payload = {"endPoint": ingress_url} - response = requests.post( + response = Requests().post( f"{self.BASE_URL}/customer/webhookSubscribe", headers=headers, json=payload ) diff --git a/autogpt_platform/backend/backend/server/routers/postmark/postmark.py b/autogpt_platform/backend/backend/server/routers/postmark/postmark.py index ae744bfc10..d9c1b17863 100644 --- a/autogpt_platform/backend/backend/server/routers/postmark/postmark.py +++ b/autogpt_platform/backend/backend/server/routers/postmark/postmark.py @@ -36,11 +36,11 @@ logger = logging.getLogger(__name__) @router.post("/unsubscribe") async def unsubscribe_via_one_click(token: Annotated[str, Query()]): - logger.info(f"Received unsubscribe request from One Click Unsubscribe: {token}") + logger.info("Received unsubscribe request from One Click Unsubscribe") try: await unsubscribe_user_by_token(token) except Exception as e: - logger.exception("Unsubscribe token %s failed: %s", token, e) + logger.exception("Unsubscribe failed: %s", e) raise HTTPException( status_code=500, detail={"message": str(e), "hint": "Verify Postmark token settings."}, diff --git a/autogpt_platform/backend/poetry.lock b/autogpt_platform/backend/poetry.lock index 00411f1535..842ebe16f2 100644 --- a/autogpt_platform/backend/poetry.lock +++ b/autogpt_platform/backend/poetry.lock @@ -303,13 +303,16 @@ develop = true [package.dependencies] colorama = "^0.4.6" expiringdict = "^1.2.2" +fastapi = "^0.115.12" google-cloud-logging = "^3.12.1" +launchdarkly-server-sdk = "^9.11.1" pydantic = "^2.11.4" pydantic-settings = "^2.9.1" pyjwt = "^2.10.1" pytest-asyncio = "^0.26.0" pytest-mock = "^3.14.0" supabase = "^2.15.1" +uvicorn = "^0.34.3" [package.source] type = "directory" diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts index 54db111dfd..e0a991138e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts @@ -11,13 +11,25 @@ async function shouldShowOnboarding() { ); } +// Validate redirect URL to prevent open redirect attacks +function validateRedirectUrl(url: string): string { + // Only allow relative URLs that start with / + if (url.startsWith("/") && !url.startsWith("//")) { + return url; + } + // Default to home page for any invalid URLs + return "/"; +} + // Handle the callback to complete the user session login export async function GET(request: Request) { const { searchParams, origin } = new URL(request.url); const code = searchParams.get("code"); // if "next" is in param, use it as the redirect URL - let next = searchParams.get("next") ?? "/"; + const nextParam = searchParams.get("next") ?? "/"; + // Validate redirect URL to prevent open redirect attacks + let next = validateRedirectUrl(nextParam); if (code) { const supabase = await getServerSupabase(); diff --git a/autogpt_platform/frontend/src/components/CustomNode.tsx b/autogpt_platform/frontend/src/components/CustomNode.tsx index 0658ba9f7b..52ed10a867 100644 --- a/autogpt_platform/frontend/src/components/CustomNode.tsx +++ b/autogpt_platform/frontend/src/components/CustomNode.tsx @@ -27,6 +27,7 @@ import { cn, getValue, hasNonNullNonObjectValue, + isObject, parseKeys, setNestedProperty, } from "@/lib/utils"; @@ -435,8 +436,15 @@ export const CustomNode = React.memo( if (activeKey) { try { const parsedValue = JSON.parse(value); - handleInputChange(activeKey, parsedValue); + // Validate that the parsed value is safe before using it + if (isObject(parsedValue) || Array.isArray(parsedValue)) { + handleInputChange(activeKey, parsedValue); + } else { + // For primitive values, use the original string + handleInputChange(activeKey, value); + } } catch (error) { + // If JSON parsing fails, treat as plain text handleInputChange(activeKey, value); } } diff --git a/autogpt_platform/frontend/src/lib/utils.ts b/autogpt_platform/frontend/src/lib/utils.ts index 0d3e1773ce..b1ba8dc0dc 100644 --- a/autogpt_platform/frontend/src/lib/utils.ts +++ b/autogpt_platform/frontend/src/lib/utils.ts @@ -396,3 +396,8 @@ export function getValue(key: string, value: any) { export function isEmptyOrWhitespace(str: string | undefined | null): boolean { return !str || str.trim().length === 0; } + +/** Chech if a value is an object or not */ +export function isObject(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} From 97e72cb4850cf787b15387249045154512e31dd4 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Tue, 17 Jun 2025 13:38:24 +0400 Subject: [PATCH 101/497] feat(backend): Make execution engine async-first (#10138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change introduced async execution for blocks and the execution engine. Paralellism will be achieved through a single process asynchronous execution instead of process concurrency. ### Changes 🏗️ * Support async execution for the graph executor * Removed process creation for node execution * Update all blocks to support async executions ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Manual graph executions, tested many of the impacted blocks. --- .../autogpt_libs/utils/synchronize.py | 52 +- autogpt_platform/backend/.env.example | 1 - .../backend/backend/blocks/agent.py | 80 ++- .../blocks/ai_image_generator_block.py | 18 +- .../backend/blocks/ai_music_generator.py | 12 +- .../blocks/ai_shortform_video_block.py | 33 +- .../backend/backend/blocks/apollo/_api.py | 24 +- .../backend/blocks/apollo/organization.py | 8 +- .../backend/backend/blocks/apollo/people.py | 8 +- .../backend/backend/blocks/basic.py | 24 +- .../backend/backend/blocks/block.py | 4 +- .../backend/backend/blocks/branching.py | 4 +- .../backend/backend/blocks/code_executor.py | 40 +- .../backend/blocks/code_extraction_block.py | 2 +- .../backend/blocks/compass/triggers.py | 2 +- .../blocks/count_words_and_char_block.py | 2 +- .../backend/backend/blocks/csv.py | 2 +- .../backend/backend/blocks/decoder_block.py | 2 +- .../backend/backend/blocks/discord.py | 49 +- .../backend/backend/blocks/email_block.py | 2 +- .../backend/backend/blocks/exa/contents.py | 5 +- .../backend/backend/blocks/exa/search.py | 5 +- .../backend/backend/blocks/exa/similar.py | 5 +- .../backend/blocks/fal/ai_video_generator.py | 60 ++- .../backend/backend/blocks/flux_kontext.py | 8 +- .../blocks/generic_webhook/triggers.py | 2 +- .../backend/backend/blocks/github/checks.py | 16 +- .../backend/backend/blocks/github/issues.py | 91 ++-- .../backend/blocks/github/pull_requests.py | 77 +-- .../backend/backend/blocks/github/repo.py | 226 ++++---- .../backend/backend/blocks/github/statuses.py | 10 +- .../backend/backend/blocks/github/triggers.py | 7 +- .../backend/backend/blocks/google/calendar.py | 17 +- .../backend/backend/blocks/google/gmail.py | 39 +- .../backend/backend/blocks/google/sheets.py | 13 +- .../backend/backend/blocks/google_maps.py | 2 +- .../backend/backend/blocks/helpers/http.py | 11 +- .../backend/backend/blocks/http.py | 117 ++--- .../backend/backend/blocks/hubspot/company.py | 19 +- .../backend/backend/blocks/hubspot/contact.py | 16 +- .../backend/blocks/hubspot/engagement.py | 10 +- .../backend/backend/blocks/ideogram.py | 21 +- autogpt_platform/backend/backend/blocks/io.py | 8 +- .../backend/backend/blocks/iteration.py | 2 +- .../backend/backend/blocks/jina/chunking.py | 4 +- .../backend/backend/blocks/jina/embeddings.py | 4 +- .../backend/blocks/jina/fact_checker.py | 7 +- .../backend/backend/blocks/jina/search.py | 8 +- .../backend/backend/blocks/linear/_api.py | 43 +- .../backend/backend/blocks/linear/comment.py | 8 +- .../backend/backend/blocks/linear/issues.py | 22 +- .../backend/backend/blocks/linear/projects.py | 8 +- .../backend/backend/blocks/llm.py | 123 +++-- .../backend/backend/blocks/maths.py | 4 +- .../backend/backend/blocks/media.py | 18 +- .../backend/backend/blocks/medium.py | 9 +- .../backend/backend/blocks/mem0.py | 6 +- .../backend/backend/blocks/nvidia/deepfake.py | 5 +- .../backend/backend/blocks/pinecone.py | 6 +- .../backend/backend/blocks/reddit.py | 4 +- .../backend/blocks/replicate_flux_advanced.py | 8 +- .../backend/backend/blocks/rss.py | 6 +- .../backend/backend/blocks/sampling.py | 2 +- .../backend/backend/blocks/screenshotone.py | 14 +- .../backend/backend/blocks/search.py | 8 +- .../backend/backend/blocks/slant3d/base.py | 30 +- .../backend/blocks/slant3d/filament.py | 4 +- .../backend/backend/blocks/slant3d/order.py | 51 +- .../backend/backend/blocks/slant3d/slicing.py | 4 +- .../backend/backend/blocks/slant3d/webhook.py | 7 +- .../backend/blocks/smart_decision_maker.py | 4 +- .../backend/backend/blocks/smartlead/_api.py | 16 +- .../backend/blocks/smartlead/campaign.py | 24 +- .../backend/backend/blocks/talking_head.py | 20 +- .../backend/backend/blocks/text.py | 12 +- .../backend/blocks/text_to_speech_block.py | 10 +- .../backend/backend/blocks/time_blocks.py | 12 +- .../backend/blocks/todoist/comments.py | 10 +- .../backend/backend/blocks/todoist/labels.py | 16 +- .../backend/blocks/todoist/projects.py | 12 +- .../backend/blocks/todoist/sections.py | 8 +- .../backend/backend/blocks/todoist/tasks.py | 14 +- .../direct_message/direct_message_lookup.py | 2 +- .../direct_message/manage_direct_message.py | 4 +- .../blocks/twitter/lists/list_follows.py | 8 +- .../blocks/twitter/lists/list_lookup.py | 4 +- .../blocks/twitter/lists/list_members.py | 8 +- .../twitter/lists/list_tweets_lookup.py | 2 +- .../blocks/twitter/lists/manage_lists.py | 6 +- .../blocks/twitter/lists/pinned_lists.py | 6 +- .../blocks/twitter/spaces/search_spaces.py | 2 +- .../blocks/twitter/spaces/spaces_lookup.py | 8 +- .../backend/blocks/twitter/tweets/bookmark.py | 6 +- .../backend/blocks/twitter/tweets/hide.py | 4 +- .../backend/blocks/twitter/tweets/like.py | 8 +- .../backend/blocks/twitter/tweets/manage.py | 6 +- .../backend/blocks/twitter/tweets/quote.py | 2 +- .../backend/blocks/twitter/tweets/retweet.py | 6 +- .../backend/blocks/twitter/tweets/timeline.py | 6 +- .../blocks/twitter/tweets/tweet_lookup.py | 4 +- .../backend/blocks/twitter/users/blocks.py | 2 +- .../backend/blocks/twitter/users/follows.py | 8 +- .../backend/blocks/twitter/users/mutes.py | 6 +- .../blocks/twitter/users/user_lookup.py | 4 +- .../backend/backend/blocks/xml_parser.py | 2 +- .../backend/backend/blocks/youtube.py | 2 +- .../blocks/zerobounce/validate_emails.py | 2 +- autogpt_platform/backend/backend/cli.py | 24 +- .../backend/backend/data/block.py | 22 +- .../backend/backend/data/execution.py | 7 +- .../backend/backend/data/graph.py | 2 +- .../backend/backend/data/includes.py | 23 +- .../backend/backend/data/notifications.py | 9 +- .../backend/backend/data/redis.py | 47 +- .../backend/backend/executor/__init__.py | 3 +- .../backend/backend/executor/database.py | 23 + .../backend/backend/executor/manager.py | 484 ++++++++++-------- .../backend/backend/executor/scheduler.py | 8 +- .../backend/backend/executor/utils.py | 318 +++++++----- .../backend/integrations/credentials_store.py | 105 ++-- .../backend/integrations/creds_manager.py | 107 ++-- .../backend/integrations/oauth/base.py | 16 +- .../backend/integrations/oauth/github.py | 31 +- .../backend/integrations/oauth/google.py | 8 +- .../backend/integrations/oauth/linear.py | 38 +- .../backend/integrations/oauth/notion.py | 12 +- .../backend/integrations/oauth/todoist.py | 15 +- .../backend/integrations/oauth/twitter.py | 51 +- .../backend/integrations/webhooks/github.py | 21 +- .../webhooks/graph_lifecycle_hooks.py | 4 +- .../backend/integrations/webhooks/slant3d.py | 2 +- .../backend/notifications/notifications.py | 76 ++- .../backend/server/external/routes/v1.py | 8 +- .../backend/server/integrations/router.py | 42 +- .../backend/backend/server/rest_api.py | 4 +- .../backend/backend/server/routers/v1.py | 63 +-- .../backend/backend/server/routers/v1_test.py | 10 +- .../server/v2/library/routes/presets.py | 4 +- .../backend/server/v2/store/image_gen.py | 16 +- .../backend/backend/util/decorator.py | 45 +- autogpt_platform/backend/backend/util/file.py | 7 +- .../backend/backend/util/metrics.py | 11 +- .../backend/backend/util/request.py | 348 +++++++++---- .../backend/backend/util/settings.py | 6 - autogpt_platform/backend/backend/util/test.py | 28 +- autogpt_platform/backend/poetry.lock | 116 ++++- autogpt_platform/backend/pyproject.toml | 2 + .../backend/test/block/test_block.py | 4 +- .../backend/test/executor/test_tool_use.py | 10 +- .../backend/test/util/test_request.py | 12 +- .../frontend/src/components/CustomEdge.tsx | 8 +- .../src/components/RunnerUIWrapper.tsx | 5 +- autogpt_platform/frontend/src/lib/utils.ts | 2 +- 153 files changed, 2243 insertions(+), 1809 deletions(-) diff --git a/autogpt_platform/autogpt_libs/autogpt_libs/utils/synchronize.py b/autogpt_platform/autogpt_libs/autogpt_libs/utils/synchronize.py index d8221eea0f..348ae4d78d 100644 --- a/autogpt_platform/autogpt_libs/autogpt_libs/utils/synchronize.py +++ b/autogpt_platform/autogpt_libs/autogpt_libs/utils/synchronize.py @@ -1,15 +1,15 @@ -from contextlib import contextmanager -from threading import Lock +import asyncio +from contextlib import asynccontextmanager from typing import TYPE_CHECKING, Any from expiringdict import ExpiringDict if TYPE_CHECKING: - from redis import Redis - from redis.lock import Lock as RedisLock + from redis.asyncio import Redis as AsyncRedis + from redis.asyncio.lock import Lock as AsyncRedisLock -class RedisKeyedMutex: +class AsyncRedisKeyedMutex: """ This class provides a mutex that can be locked and unlocked by a specific key, using Redis as a distributed locking provider. @@ -17,41 +17,45 @@ class RedisKeyedMutex: in case the key is not unlocked for a specified duration, to prevent memory leaks. """ - def __init__(self, redis: "Redis", timeout: int | None = 60): + def __init__(self, redis: "AsyncRedis", timeout: int | None = 60): self.redis = redis self.timeout = timeout - self.locks: dict[Any, "RedisLock"] = ExpiringDict( + self.locks: dict[Any, "AsyncRedisLock"] = ExpiringDict( max_len=6000, max_age_seconds=self.timeout ) - self.locks_lock = Lock() + self.locks_lock = asyncio.Lock() - @contextmanager - def locked(self, key: Any): - lock = self.acquire(key) + @asynccontextmanager + async def locked(self, key: Any): + lock = await self.acquire(key) try: yield finally: - if lock.locked() and lock.owned(): - lock.release() + if (await lock.locked()) and (await lock.owned()): + await lock.release() - def acquire(self, key: Any) -> "RedisLock": + async def acquire(self, key: Any) -> "AsyncRedisLock": """Acquires and returns a lock with the given key""" - with self.locks_lock: + async with self.locks_lock: if key not in self.locks: self.locks[key] = self.redis.lock( str(key), self.timeout, thread_local=False ) lock = self.locks[key] - lock.acquire() + await lock.acquire() return lock - def release(self, key: Any): - if (lock := self.locks.get(key)) and lock.locked() and lock.owned(): - lock.release() + async def release(self, key: Any): + if ( + (lock := self.locks.get(key)) + and (await lock.locked()) + and (await lock.owned()) + ): + await lock.release() - def release_all_locks(self): + async def release_all_locks(self): """Call this on process termination to ensure all locks are released""" - self.locks_lock.acquire(blocking=False) - for lock in self.locks.values(): - if lock.locked() and lock.owned(): - lock.release() + async with self.locks_lock: + for lock in self.locks.values(): + if (await lock.locked()) and (await lock.owned()): + await lock.release() diff --git a/autogpt_platform/backend/.env.example b/autogpt_platform/backend/.env.example index 4c5830d704..18343d7725 100644 --- a/autogpt_platform/backend/.env.example +++ b/autogpt_platform/backend/.env.example @@ -13,7 +13,6 @@ PRISMA_SCHEMA="postgres/schema.prisma" # EXECUTOR NUM_GRAPH_WORKERS=10 -NUM_NODE_WORKERS=3 BACKEND_CORS_ALLOW_ORIGINS=["http://localhost:3000"] diff --git a/autogpt_platform/backend/backend/blocks/agent.py b/autogpt_platform/backend/backend/blocks/agent.py index a68cb05204..c25d99458d 100644 --- a/autogpt_platform/backend/backend/blocks/agent.py +++ b/autogpt_platform/backend/backend/blocks/agent.py @@ -1,3 +1,4 @@ +import asyncio import logging from typing import Any, Optional @@ -61,37 +62,78 @@ class AgentExecutorBlock(Block): categories={BlockCategory.AGENT}, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: - from backend.data.execution import ExecutionEventType + async def run(self, input_data: Input, **kwargs) -> BlockOutput: + from backend.executor import utils as execution_utils - event_bus = execution_utils.get_execution_event_bus() - - graph_exec = execution_utils.add_graph_execution( + graph_exec = await execution_utils.add_graph_execution( graph_id=input_data.graph_id, graph_version=input_data.graph_version, user_id=input_data.user_id, inputs=input_data.inputs, node_credentials_input_map=input_data.node_credentials_input_map, + use_db_query=False, ) - log_id = f"Graph #{input_data.graph_id}-V{input_data.graph_version}, exec-id: {graph_exec.id}" + + try: + async for name, data in self._run( + graph_id=input_data.graph_id, + graph_version=input_data.graph_version, + graph_exec_id=graph_exec.id, + user_id=input_data.user_id, + ): + yield name, data + except asyncio.CancelledError: + logger.warning( + f"Execution of graph {input_data.graph_id} version {input_data.graph_version} was cancelled." + ) + await execution_utils.stop_graph_execution( + graph_exec.id, use_db_query=False + ) + except Exception as e: + logger.error( + f"Execution of graph {input_data.graph_id} version {input_data.graph_version} failed: {e}, stopping execution." + ) + await execution_utils.stop_graph_execution( + graph_exec.id, use_db_query=False + ) + raise + + async def _run( + self, + graph_id: str, + graph_version: int, + graph_exec_id: str, + user_id: str, + ) -> BlockOutput: + + from backend.data.execution import ExecutionEventType + from backend.executor import utils as execution_utils + + event_bus = execution_utils.get_async_execution_event_bus() + + log_id = f"Graph #{graph_id}-V{graph_version}, exec-id: {graph_exec_id}" logger.info(f"Starting execution of {log_id}") - for event in event_bus.listen( - user_id=graph_exec.user_id, - graph_id=graph_exec.graph_id, - graph_exec_id=graph_exec.id, + async for event in event_bus.listen( + user_id=user_id, + graph_id=graph_id, + graph_exec_id=graph_exec_id, ): + if event.status not in [ + ExecutionStatus.COMPLETED, + ExecutionStatus.TERMINATED, + ExecutionStatus.FAILED, + ]: + logger.debug( + f"Execution {log_id} received event {event.event_type} with status {event.status}" + ) + continue + if event.event_type == ExecutionEventType.GRAPH_EXEC_UPDATE: - if event.status in [ - ExecutionStatus.COMPLETED, - ExecutionStatus.TERMINATED, - ExecutionStatus.FAILED, - ]: - logger.info(f"Execution {log_id} ended with status {event.status}") - break - else: - continue + # If the graph execution is COMPLETED, TERMINATED, or FAILED, + # we can stop listening for further events. + break logger.debug( f"Execution {log_id} produced input {event.input_data} output {event.output_data}" diff --git a/autogpt_platform/backend/backend/blocks/ai_image_generator_block.py b/autogpt_platform/backend/backend/blocks/ai_image_generator_block.py index 230f3acd88..39c0d4ac54 100644 --- a/autogpt_platform/backend/backend/blocks/ai_image_generator_block.py +++ b/autogpt_platform/backend/backend/blocks/ai_image_generator_block.py @@ -165,7 +165,7 @@ class AIImageGeneratorBlock(Block): }, ) - def _run_client( + async def _run_client( self, credentials: APIKeyCredentials, model_name: str, input_params: dict ): try: @@ -173,7 +173,7 @@ class AIImageGeneratorBlock(Block): client = ReplicateClient(api_token=credentials.api_key.get_secret_value()) # Run the model with input parameters - output = client.run(model_name, input=input_params, wait=False) + output = await client.async_run(model_name, input=input_params, wait=False) # Process output if isinstance(output, list) and len(output) > 0: @@ -195,7 +195,7 @@ class AIImageGeneratorBlock(Block): except Exception as e: raise RuntimeError(f"Unexpected error during model execution: {e}") - def generate_image(self, input_data: Input, credentials: APIKeyCredentials): + async def generate_image(self, input_data: Input, credentials: APIKeyCredentials): try: # Handle style-based prompt modification for models without native style support modified_prompt = input_data.prompt @@ -213,7 +213,7 @@ class AIImageGeneratorBlock(Block): "steps": 40, "cfg_scale": 7.0, } - output = self._run_client( + output = await self._run_client( credentials, "stability-ai/stable-diffusion-3.5-medium", input_params, @@ -231,7 +231,7 @@ class AIImageGeneratorBlock(Block): "output_format": "jpg", # Set to jpg for Flux models "output_quality": 90, } - output = self._run_client( + output = await self._run_client( credentials, "black-forest-labs/flux-1.1-pro", input_params ) return output @@ -246,7 +246,7 @@ class AIImageGeneratorBlock(Block): "output_format": "jpg", "output_quality": 90, } - output = self._run_client( + output = await self._run_client( credentials, "black-forest-labs/flux-1.1-pro-ultra", input_params ) return output @@ -257,7 +257,7 @@ class AIImageGeneratorBlock(Block): "size": SIZE_TO_RECRAFT_DIMENSIONS[input_data.size], "style": input_data.style.value, } - output = self._run_client( + output = await self._run_client( credentials, "recraft-ai/recraft-v3", input_params ) return output @@ -296,9 +296,9 @@ class AIImageGeneratorBlock(Block): style_text = style_map.get(style, "") return f"{style_text} of" if style_text else "" - def run(self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs): + async def run(self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs): try: - url = self.generate_image(input_data, credentials) + url = await self.generate_image(input_data, credentials) if url: yield "image_url", url else: diff --git a/autogpt_platform/backend/backend/blocks/ai_music_generator.py b/autogpt_platform/backend/backend/blocks/ai_music_generator.py index ce9cf45498..b4561bd513 100644 --- a/autogpt_platform/backend/backend/blocks/ai_music_generator.py +++ b/autogpt_platform/backend/backend/blocks/ai_music_generator.py @@ -1,5 +1,5 @@ +import asyncio import logging -import time from enum import Enum from typing import Literal @@ -142,7 +142,7 @@ class AIMusicGeneratorBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: max_retries = 3 @@ -154,7 +154,7 @@ class AIMusicGeneratorBlock(Block): logger.debug( f"[AIMusicGeneratorBlock] - Running model (attempt {attempt + 1})" ) - result = self.run_model( + result = await self.run_model( api_key=credentials.api_key, music_gen_model_version=input_data.music_gen_model_version, prompt=input_data.prompt, @@ -176,13 +176,13 @@ class AIMusicGeneratorBlock(Block): last_error = f"Unexpected error: {str(e)}" logger.error(f"[AIMusicGeneratorBlock] - Error: {last_error}") if attempt < max_retries - 1: - time.sleep(retry_delay) + await asyncio.sleep(retry_delay) continue # If we've exhausted all retries, yield the error yield "error", f"Failed after {max_retries} attempts. Last error: {last_error}" - def run_model( + async def run_model( self, api_key: SecretStr, music_gen_model_version: MusicGenModelVersion, @@ -199,7 +199,7 @@ class AIMusicGeneratorBlock(Block): client = ReplicateClient(api_token=api_key.get_secret_value()) # Run the model with parameters - output = client.run( + output = await client.async_run( "meta/musicgen:671ac645ce5e552cc63a54a2bbff63fcf798043055d2dac5fc9e36a837eedcfb", input={ "prompt": prompt, diff --git a/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py b/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py index df2b3a2726..c3c4e36472 100644 --- a/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py +++ b/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py @@ -1,3 +1,4 @@ +import asyncio import logging import time from enum import Enum @@ -13,7 +14,7 @@ from backend.data.model import ( SchemaField, ) from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests TEST_CREDENTIALS = APIKeyCredentials( id="01234567-89ab-cdef-0123-456789abcdef", @@ -216,29 +217,29 @@ class AIShortformVideoCreatorBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def create_webhook(self): + async def create_webhook(self): url = "https://webhook.site/token" headers = {"Accept": "application/json", "Content-Type": "application/json"} - response = requests.post(url, headers=headers) + response = await Requests().post(url, headers=headers) webhook_data = response.json() return webhook_data["uuid"], f"https://webhook.site/{webhook_data['uuid']}" - def create_video(self, api_key: SecretStr, payload: dict) -> dict: + async def create_video(self, api_key: SecretStr, payload: dict) -> dict: url = "https://www.revid.ai/api/public/v2/render" headers = {"key": api_key.get_secret_value()} - response = requests.post(url, json=payload, headers=headers) + response = await Requests().post(url, json=payload, headers=headers) logger.debug( - f"API Response Status Code: {response.status_code}, Content: {response.text}" + f"API Response Status Code: {response.status}, Content: {response.text}" ) return response.json() - def check_video_status(self, api_key: SecretStr, pid: str) -> dict: + async def check_video_status(self, api_key: SecretStr, pid: str) -> dict: url = f"https://www.revid.ai/api/public/v2/status?pid={pid}" headers = {"key": api_key.get_secret_value()} - response = requests.get(url, headers=headers) + response = await Requests().get(url, headers=headers) return response.json() - def wait_for_video( + async def wait_for_video( self, api_key: SecretStr, pid: str, @@ -247,7 +248,7 @@ class AIShortformVideoCreatorBlock(Block): ) -> str: start_time = time.time() while time.time() - start_time < max_wait_time: - status = self.check_video_status(api_key, pid) + status = await self.check_video_status(api_key, pid) logger.debug(f"Video status: {status}") if status.get("status") == "ready" and "videoUrl" in status: @@ -260,16 +261,16 @@ class AIShortformVideoCreatorBlock(Block): logger.error(f"Video creation failed: {status.get('message')}") raise ValueError(f"Video creation failed: {status.get('message')}") - time.sleep(10) + await asyncio.sleep(10) logger.error("Video creation timed out") raise TimeoutError("Video creation timed out") - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: # Create a new Webhook.site URL - webhook_token, webhook_url = self.create_webhook() + webhook_token, webhook_url = await self.create_webhook() logger.debug(f"Webhook URL: {webhook_url}") audio_url = input_data.background_music.audio_url @@ -306,7 +307,7 @@ class AIShortformVideoCreatorBlock(Block): } logger.debug("Creating video...") - response = self.create_video(credentials.api_key, payload) + response = await self.create_video(credentials.api_key, payload) pid = response.get("pid") if not pid: @@ -318,6 +319,8 @@ class AIShortformVideoCreatorBlock(Block): logger.debug( f"Video created with project ID: {pid}. Waiting for completion..." ) - video_url = self.wait_for_video(credentials.api_key, pid, webhook_token) + video_url = await self.wait_for_video( + credentials.api_key, pid, webhook_token + ) logger.debug(f"Video ready: {video_url}") yield "video_url", video_url diff --git a/autogpt_platform/backend/backend/blocks/apollo/_api.py b/autogpt_platform/backend/backend/blocks/apollo/_api.py index 157235ff0f..f4915561b3 100644 --- a/autogpt_platform/backend/backend/blocks/apollo/_api.py +++ b/autogpt_platform/backend/backend/blocks/apollo/_api.py @@ -27,14 +27,15 @@ class ApolloClient: def _get_headers(self) -> dict[str, str]: return {"x-api-key": self.credentials.api_key.get_secret_value()} - def search_people(self, query: SearchPeopleRequest) -> List[Contact]: + async def search_people(self, query: SearchPeopleRequest) -> List[Contact]: """Search for people in Apollo""" - response = self.requests.get( + response = await self.requests.get( f"{self.API_URL}/mixed_people/search", headers=self._get_headers(), params=query.model_dump(exclude={"credentials", "max_results"}), ) - parsed_response = SearchPeopleResponse(**response.json()) + data = response.json() + parsed_response = SearchPeopleResponse(**data) if parsed_response.pagination.total_entries == 0: return [] @@ -52,27 +53,29 @@ class ApolloClient: and len(parsed_response.people) > 0 ): query.page += 1 - response = self.requests.get( + response = await self.requests.get( f"{self.API_URL}/mixed_people/search", headers=self._get_headers(), params=query.model_dump(exclude={"credentials", "max_results"}), ) - parsed_response = SearchPeopleResponse(**response.json()) + data = response.json() + parsed_response = SearchPeopleResponse(**data) people.extend(parsed_response.people[: query.max_results - len(people)]) logger.info(f"Found {len(people)} people") return people[: query.max_results] if query.max_results else people - def search_organizations( + async def search_organizations( self, query: SearchOrganizationsRequest ) -> List[Organization]: """Search for organizations in Apollo""" - response = self.requests.get( + response = await self.requests.get( f"{self.API_URL}/mixed_companies/search", headers=self._get_headers(), params=query.model_dump(exclude={"credentials", "max_results"}), ) - parsed_response = SearchOrganizationsResponse(**response.json()) + data = response.json() + parsed_response = SearchOrganizationsResponse(**data) if parsed_response.pagination.total_entries == 0: return [] @@ -90,12 +93,13 @@ class ApolloClient: and len(parsed_response.organizations) > 0 ): query.page += 1 - response = self.requests.get( + response = await self.requests.get( f"{self.API_URL}/mixed_companies/search", headers=self._get_headers(), params=query.model_dump(exclude={"credentials", "max_results"}), ) - parsed_response = SearchOrganizationsResponse(**response.json()) + data = response.json() + parsed_response = SearchOrganizationsResponse(**data) organizations.extend( parsed_response.organizations[ : query.max_results - len(organizations) diff --git a/autogpt_platform/backend/backend/blocks/apollo/organization.py b/autogpt_platform/backend/backend/blocks/apollo/organization.py index 37537a6461..869f1be050 100644 --- a/autogpt_platform/backend/backend/blocks/apollo/organization.py +++ b/autogpt_platform/backend/backend/blocks/apollo/organization.py @@ -201,19 +201,19 @@ To find IDs, identify the values for organization_id when you call this endpoint ) @staticmethod - def search_organizations( + async def search_organizations( query: SearchOrganizationsRequest, credentials: ApolloCredentials ) -> list[Organization]: client = ApolloClient(credentials) - return client.search_organizations(query) + return await client.search_organizations(query) - def run( + async def run( self, input_data: Input, *, credentials: ApolloCredentials, **kwargs ) -> BlockOutput: query = SearchOrganizationsRequest( **input_data.model_dump(exclude={"credentials"}) ) - organizations = self.search_organizations(query, credentials) + organizations = await self.search_organizations(query, credentials) for organization in organizations: yield "organization", organization yield "organizations", organizations diff --git a/autogpt_platform/backend/backend/blocks/apollo/people.py b/autogpt_platform/backend/backend/blocks/apollo/people.py index 628bb5dc7c..4eb8bd3de7 100644 --- a/autogpt_platform/backend/backend/blocks/apollo/people.py +++ b/autogpt_platform/backend/backend/blocks/apollo/people.py @@ -373,13 +373,13 @@ class SearchPeopleBlock(Block): ) @staticmethod - def search_people( + async def search_people( query: SearchPeopleRequest, credentials: ApolloCredentials ) -> list[Contact]: client = ApolloClient(credentials) - return client.search_people(query) + return await client.search_people(query) - def run( + async def run( self, input_data: Input, *, @@ -388,7 +388,7 @@ class SearchPeopleBlock(Block): ) -> BlockOutput: query = SearchPeopleRequest(**input_data.model_dump(exclude={"credentials"})) - people = self.search_people(query, credentials) + people = await self.search_people(query, credentials) for person in people: yield "person", person yield "people", people diff --git a/autogpt_platform/backend/backend/blocks/basic.py b/autogpt_platform/backend/backend/blocks/basic.py index 2c7edeb0ad..63906a13d9 100644 --- a/autogpt_platform/backend/backend/blocks/basic.py +++ b/autogpt_platform/backend/backend/blocks/basic.py @@ -30,14 +30,14 @@ class FileStoreBlock(Block): static_output=True, ) - def run( + async def run( self, input_data: Input, *, graph_exec_id: str, **kwargs, ) -> BlockOutput: - file_path = store_media_file( + file_path = await store_media_file( graph_exec_id=graph_exec_id, file=input_data.file_in, return_content=False, @@ -84,7 +84,7 @@ class StoreValueBlock(Block): static_output=True, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "output", input_data.data or input_data.input @@ -110,7 +110,7 @@ class PrintToConsoleBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "output", input_data.text yield "status", "printed" @@ -151,7 +151,7 @@ class FindInDictionaryBlock(Block): categories={BlockCategory.BASIC}, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: obj = input_data.input key = input_data.key @@ -241,7 +241,7 @@ class AddToDictionaryBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: updated_dict = input_data.dictionary.copy() if input_data.value is not None and input_data.key: @@ -319,7 +319,7 @@ class AddToListBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: entries_added = input_data.entries.copy() if input_data.entry: entries_added.append(input_data.entry) @@ -366,7 +366,7 @@ class FindInListBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: try: yield "index", input_data.list.index(input_data.value) yield "found", True @@ -396,7 +396,7 @@ class NoteBlock(Block): block_type=BlockType.NOTE, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "output", input_data.text @@ -442,7 +442,7 @@ class CreateDictionaryBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: try: # The values are already validated by Pydantic schema yield "dictionary", input_data.values @@ -490,7 +490,7 @@ class CreateListBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: try: # The values are already validated by Pydantic schema yield "list", input_data.values @@ -525,7 +525,7 @@ class UniversalTypeConverterBlock(Block): output_schema=UniversalTypeConverterBlock.Output, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: try: converted_value = convert( input_data.value, diff --git a/autogpt_platform/backend/backend/blocks/block.py b/autogpt_platform/backend/backend/blocks/block.py index 01e8af7238..e1745d3055 100644 --- a/autogpt_platform/backend/backend/blocks/block.py +++ b/autogpt_platform/backend/backend/blocks/block.py @@ -38,7 +38,7 @@ class BlockInstallationBlock(Block): disabled=True, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: code = input_data.code if search := re.search(r"class (\w+)\(Block\):", code): @@ -64,7 +64,7 @@ class BlockInstallationBlock(Block): from backend.util.test import execute_block_test - execute_block_test(block) + await execute_block_test(block) yield "success", "Block installed successfully." except Exception as e: os.remove(file_path) diff --git a/autogpt_platform/backend/backend/blocks/branching.py b/autogpt_platform/backend/backend/blocks/branching.py index a3424d3374..8bfe8c4172 100644 --- a/autogpt_platform/backend/backend/blocks/branching.py +++ b/autogpt_platform/backend/backend/blocks/branching.py @@ -70,7 +70,7 @@ class ConditionBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: operator = input_data.operator value1 = input_data.value1 @@ -180,7 +180,7 @@ class IfInputMatchesBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: if input_data.input == input_data.value or input_data.input is input_data.value: yield "result", True yield "yes_output", input_data.yes_value diff --git a/autogpt_platform/backend/backend/blocks/code_executor.py b/autogpt_platform/backend/backend/blocks/code_executor.py index 409c02bab0..e25231e90e 100644 --- a/autogpt_platform/backend/backend/blocks/code_executor.py +++ b/autogpt_platform/backend/backend/blocks/code_executor.py @@ -1,7 +1,7 @@ from enum import Enum from typing import Literal -from e2b_code_interpreter import Sandbox +from e2b_code_interpreter import AsyncSandbox from pydantic import SecretStr from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema @@ -123,7 +123,7 @@ class CodeExecutionBlock(Block): }, ) - def execute_code( + async def execute_code( self, code: str, language: ProgrammingLanguage, @@ -135,21 +135,21 @@ class CodeExecutionBlock(Block): try: sandbox = None if template_id: - sandbox = Sandbox( + sandbox = await AsyncSandbox.create( template=template_id, api_key=api_key, timeout=timeout ) else: - sandbox = Sandbox(api_key=api_key, timeout=timeout) + sandbox = await AsyncSandbox.create(api_key=api_key, timeout=timeout) if not sandbox: raise Exception("Sandbox not created") # Running setup commands for cmd in setup_commands: - sandbox.commands.run(cmd) + await sandbox.commands.run(cmd) # Executing the code - execution = sandbox.run_code( + execution = await sandbox.run_code( code, language=language.value, on_error=lambda e: sandbox.kill(), # Kill the sandbox if there is an error @@ -167,11 +167,11 @@ class CodeExecutionBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - response, stdout_logs, stderr_logs = self.execute_code( + response, stdout_logs, stderr_logs = await self.execute_code( input_data.code, input_data.language, input_data.setup_commands, @@ -278,11 +278,11 @@ class InstantiationBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - sandbox_id, response, stdout_logs, stderr_logs = self.execute_code( + sandbox_id, response, stdout_logs, stderr_logs = await self.execute_code( input_data.setup_code, input_data.language, input_data.setup_commands, @@ -303,7 +303,7 @@ class InstantiationBlock(Block): except Exception as e: yield "error", str(e) - def execute_code( + async def execute_code( self, code: str, language: ProgrammingLanguage, @@ -315,21 +315,21 @@ class InstantiationBlock(Block): try: sandbox = None if template_id: - sandbox = Sandbox( + sandbox = await AsyncSandbox.create( template=template_id, api_key=api_key, timeout=timeout ) else: - sandbox = Sandbox(api_key=api_key, timeout=timeout) + sandbox = await AsyncSandbox.create(api_key=api_key, timeout=timeout) if not sandbox: raise Exception("Sandbox not created") # Running setup commands for cmd in setup_commands: - sandbox.commands.run(cmd) + await sandbox.commands.run(cmd) # Executing the code - execution = sandbox.run_code( + execution = await sandbox.run_code( code, language=language.value, on_error=lambda e: sandbox.kill(), # Kill the sandbox if there is an error @@ -409,7 +409,7 @@ class StepExecutionBlock(Block): }, ) - def execute_step_code( + async def execute_step_code( self, sandbox_id: str, code: str, @@ -417,12 +417,12 @@ class StepExecutionBlock(Block): api_key: str, ): try: - sandbox = Sandbox.connect(sandbox_id=sandbox_id, api_key=api_key) + sandbox = await AsyncSandbox.connect(sandbox_id=sandbox_id, api_key=api_key) if not sandbox: raise Exception("Sandbox not found") # Executing the code - execution = sandbox.run_code(code, language=language.value) + execution = await sandbox.run_code(code, language=language.value) if execution.error: raise Exception(execution.error) @@ -436,11 +436,11 @@ class StepExecutionBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - response, stdout_logs, stderr_logs = self.execute_step_code( + response, stdout_logs, stderr_logs = await self.execute_step_code( input_data.sandbox_id, input_data.step_code, input_data.language, diff --git a/autogpt_platform/backend/backend/blocks/code_extraction_block.py b/autogpt_platform/backend/backend/blocks/code_extraction_block.py index ab1e35aa5d..33bf225bfd 100644 --- a/autogpt_platform/backend/backend/blocks/code_extraction_block.py +++ b/autogpt_platform/backend/backend/blocks/code_extraction_block.py @@ -49,7 +49,7 @@ class CodeExtractionBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: # List of supported programming languages with mapped aliases language_aliases = { "html": ["html", "htm"], diff --git a/autogpt_platform/backend/backend/blocks/compass/triggers.py b/autogpt_platform/backend/backend/blocks/compass/triggers.py index 662e39ecea..6eac52ce53 100644 --- a/autogpt_platform/backend/backend/blocks/compass/triggers.py +++ b/autogpt_platform/backend/backend/blocks/compass/triggers.py @@ -56,5 +56,5 @@ class CompassAITriggerBlock(Block): # ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "transcription", input_data.payload.transcription diff --git a/autogpt_platform/backend/backend/blocks/count_words_and_char_block.py b/autogpt_platform/backend/backend/blocks/count_words_and_char_block.py index 13f9e39779..ddbcf07876 100644 --- a/autogpt_platform/backend/backend/blocks/count_words_and_char_block.py +++ b/autogpt_platform/backend/backend/blocks/count_words_and_char_block.py @@ -30,7 +30,7 @@ class WordCharacterCountBlock(Block): test_output=[("word_count", 4), ("character_count", 19)], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: try: text = input_data.text word_count = len(text.split()) diff --git a/autogpt_platform/backend/backend/blocks/csv.py b/autogpt_platform/backend/backend/blocks/csv.py index 3cc3575b31..f69eeff4a9 100644 --- a/autogpt_platform/backend/backend/blocks/csv.py +++ b/autogpt_platform/backend/backend/blocks/csv.py @@ -69,7 +69,7 @@ class ReadCsvBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: import csv from io import StringIO diff --git a/autogpt_platform/backend/backend/blocks/decoder_block.py b/autogpt_platform/backend/backend/blocks/decoder_block.py index 033cdfb0b3..754d79b068 100644 --- a/autogpt_platform/backend/backend/blocks/decoder_block.py +++ b/autogpt_platform/backend/backend/blocks/decoder_block.py @@ -34,6 +34,6 @@ This is a "quoted" string.""", ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: decoded_text = codecs.decode(input_data.text, "unicode_escape") yield "decoded_text", decoded_text diff --git a/autogpt_platform/backend/backend/blocks/discord.py b/autogpt_platform/backend/backend/blocks/discord.py index 08ba8af074..91aba5f414 100644 --- a/autogpt_platform/backend/backend/blocks/discord.py +++ b/autogpt_platform/backend/backend/blocks/discord.py @@ -1,4 +1,3 @@ -import asyncio from typing import Literal import aiohttp @@ -74,7 +73,11 @@ class ReadDiscordMessagesBlock(Block): ("username", "test_user"), ], test_mock={ - "run_bot": lambda token: asyncio.Future() # Create a Future object for mocking + "run_bot": lambda token: { + "output_data": "Hello!\n\nFile from user: example.txt\nContent: This is the content of the file.", + "channel_name": "general", + "username": "test_user", + } }, ) @@ -106,37 +109,24 @@ class ReadDiscordMessagesBlock(Block): if attachment.filename.endswith((".txt", ".py")): async with aiohttp.ClientSession() as session: async with session.get(attachment.url) as response: - file_content = await response.text() + file_content = response.text() self.output_data += f"\n\nFile from user: {attachment.filename}\nContent: {file_content}" await client.close() await client.start(token.get_secret_value()) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: - while True: - for output_name, output_value in self.__run(input_data, credentials): - yield output_name, output_value - break + async for output_name, output_value in self.__run(input_data, credentials): + yield output_name, output_value - def __run(self, input_data: Input, credentials: APIKeyCredentials) -> BlockOutput: + async def __run( + self, input_data: Input, credentials: APIKeyCredentials + ) -> BlockOutput: try: - loop = asyncio.get_event_loop() - future = self.run_bot(credentials.api_key) - - # If it's a Future (mock), set the result - if isinstance(future, asyncio.Future): - future.set_result( - { - "output_data": "Hello!\n\nFile from user: example.txt\nContent: This is the content of the file.", - "channel_name": "general", - "username": "test_user", - } - ) - - result = loop.run_until_complete(future) + result = await self.run_bot(credentials.api_key) # For testing purposes, use the mocked result if isinstance(result, dict): @@ -190,7 +180,7 @@ class SendDiscordMessageBlock(Block): }, test_output=[("status", "Message sent")], test_mock={ - "send_message": lambda token, channel_name, message_content: asyncio.Future() + "send_message": lambda token, channel_name, message_content: "Message sent" }, test_credentials=TEST_CREDENTIALS, ) @@ -222,23 +212,16 @@ class SendDiscordMessageBlock(Block): """Splits a message into chunks not exceeding the Discord limit.""" return [message[i : i + limit] for i in range(0, len(message), limit)] - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - loop = asyncio.get_event_loop() - future = self.send_message( + result = await self.send_message( credentials.api_key.get_secret_value(), input_data.channel_name, input_data.message_content, ) - # If it's a Future (mock), set the result - if isinstance(future, asyncio.Future): - future.set_result("Message sent") - - result = loop.run_until_complete(future) - # For testing purposes, use the mocked result if isinstance(result, str): self.output_data = result diff --git a/autogpt_platform/backend/backend/blocks/email_block.py b/autogpt_platform/backend/backend/blocks/email_block.py index 4159886cee..3738bf0de8 100644 --- a/autogpt_platform/backend/backend/blocks/email_block.py +++ b/autogpt_platform/backend/backend/blocks/email_block.py @@ -121,7 +121,7 @@ class SendEmailBlock(Block): return "Email sent successfully" - def run( + async def run( self, input_data: Input, *, credentials: SMTPCredentials, **kwargs ) -> BlockOutput: yield "status", self.send_email( diff --git a/autogpt_platform/backend/backend/blocks/exa/contents.py b/autogpt_platform/backend/backend/blocks/exa/contents.py index 87817e14be..920a5ac82f 100644 --- a/autogpt_platform/backend/backend/blocks/exa/contents.py +++ b/autogpt_platform/backend/backend/blocks/exa/contents.py @@ -62,7 +62,7 @@ class ExaContentsBlock(Block): output_schema=ExaContentsBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: ExaCredentials, **kwargs ) -> BlockOutput: url = "https://api.exa.ai/contents" @@ -79,8 +79,7 @@ class ExaContentsBlock(Block): } try: - response = Requests().post(url, headers=headers, json=payload) - response.raise_for_status() + response = await Requests().post(url, headers=headers, json=payload) data = response.json() yield "results", data.get("results", []) except Exception as e: diff --git a/autogpt_platform/backend/backend/blocks/exa/search.py b/autogpt_platform/backend/backend/blocks/exa/search.py index b003fbf6fa..1f4d0005ce 100644 --- a/autogpt_platform/backend/backend/blocks/exa/search.py +++ b/autogpt_platform/backend/backend/blocks/exa/search.py @@ -91,7 +91,7 @@ class ExaSearchBlock(Block): output_schema=ExaSearchBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: ExaCredentials, **kwargs ) -> BlockOutput: url = "https://api.exa.ai/search" @@ -136,8 +136,7 @@ class ExaSearchBlock(Block): payload[api_field] = value try: - response = Requests().post(url, headers=headers, json=payload) - response.raise_for_status() + response = await Requests().post(url, headers=headers, json=payload) data = response.json() # Extract just the results array from the response yield "results", data.get("results", []) diff --git a/autogpt_platform/backend/backend/blocks/exa/similar.py b/autogpt_platform/backend/backend/blocks/exa/similar.py index 61f4ab9db5..36dc23c5c5 100644 --- a/autogpt_platform/backend/backend/blocks/exa/similar.py +++ b/autogpt_platform/backend/backend/blocks/exa/similar.py @@ -78,7 +78,7 @@ class ExaFindSimilarBlock(Block): output_schema=ExaFindSimilarBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: ExaCredentials, **kwargs ) -> BlockOutput: url = "https://api.exa.ai/findSimilar" @@ -120,8 +120,7 @@ class ExaFindSimilarBlock(Block): payload[api_field] = value.strftime("%Y-%m-%dT%H:%M:%S.000Z") try: - response = Requests().post(url, headers=headers, json=payload) - response.raise_for_status() + response = await Requests().post(url, headers=headers, json=payload) data = response.json() yield "results", data.get("results", []) except Exception as e: diff --git a/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py b/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py index fc2152e0ee..2e795f0d78 100644 --- a/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py +++ b/autogpt_platform/backend/backend/blocks/fal/ai_video_generator.py @@ -1,10 +1,8 @@ +import asyncio import logging -import time from enum import Enum from typing import Any -import httpx - from backend.blocks.fal._auth import ( TEST_CREDENTIALS, TEST_CREDENTIALS_INPUT, @@ -14,6 +12,7 @@ from backend.blocks.fal._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField +from backend.util.request import ClientResponseError, Requests logger = logging.getLogger(__name__) @@ -66,35 +65,37 @@ class AIVideoGeneratorBlock(Block): ) def _get_headers(self, api_key: str) -> dict[str, str]: - """Get headers for FAL API requests.""" + """Get headers for FAL API Requests.""" return { "Authorization": f"Key {api_key}", "Content-Type": "application/json", } - def _submit_request( + async def _submit_request( self, url: str, headers: dict[str, str], data: dict[str, Any] ) -> dict[str, Any]: """Submit a request to the FAL API.""" try: - response = httpx.post(url, headers=headers, json=data) - response.raise_for_status() + response = await Requests().post(url, headers=headers, json=data) return response.json() - except httpx.HTTPError as e: + except ClientResponseError as e: logger.error(f"FAL API request failed: {str(e)}") raise RuntimeError(f"Failed to submit request: {str(e)}") - def _poll_status(self, status_url: str, headers: dict[str, str]) -> dict[str, Any]: + async def _poll_status( + self, status_url: str, headers: dict[str, str] + ) -> dict[str, Any]: """Poll the status endpoint until completion or failure.""" try: - response = httpx.get(status_url, headers=headers) - response.raise_for_status() + response = await Requests().get(status_url, headers=headers) return response.json() - except httpx.HTTPError as e: + except ClientResponseError as e: logger.error(f"Failed to get status: {str(e)}") raise RuntimeError(f"Failed to get status: {str(e)}") - def generate_video(self, input_data: Input, credentials: FalCredentials) -> str: + async def generate_video( + self, input_data: Input, credentials: FalCredentials + ) -> str: """Generate video using the specified FAL model.""" base_url = "https://queue.fal.run" api_key = credentials.api_key.get_secret_value() @@ -110,8 +111,9 @@ class AIVideoGeneratorBlock(Block): try: # Submit request to queue - submit_response = httpx.post(submit_url, headers=headers, json=submit_data) - submit_response.raise_for_status() + submit_response = await Requests().post( + submit_url, headers=headers, json=submit_data + ) request_data = submit_response.json() # Get request_id and urls from initial response @@ -122,14 +124,23 @@ class AIVideoGeneratorBlock(Block): if not all([request_id, status_url, result_url]): raise ValueError("Missing required data in submission response") + # Ensure status_url is a string + if not isinstance(status_url, str): + raise ValueError("Invalid status URL format") + + # Ensure result_url is a string + if not isinstance(result_url, str): + raise ValueError("Invalid result URL format") + # Poll for status with exponential backoff max_attempts = 30 attempt = 0 base_wait_time = 5 while attempt < max_attempts: - status_response = httpx.get(f"{status_url}?logs=1", headers=headers) - status_response.raise_for_status() + status_response = await Requests().get( + f"{status_url}?logs=1", headers=headers + ) status_data = status_response.json() # Process new logs only @@ -152,8 +163,7 @@ class AIVideoGeneratorBlock(Block): status = status_data.get("status") if status == "COMPLETED": # Get the final result - result_response = httpx.get(result_url, headers=headers) - result_response.raise_for_status() + result_response = await Requests().get(result_url, headers=headers) result_data = result_response.json() if "video" not in result_data or not isinstance( @@ -162,8 +172,8 @@ class AIVideoGeneratorBlock(Block): raise ValueError("Invalid response format - missing video data") video_url = result_data["video"].get("url") - if not video_url: - raise ValueError("No video URL in response") + if not video_url or not isinstance(video_url, str): + raise ValueError("No valid video URL in response") return video_url @@ -183,19 +193,19 @@ class AIVideoGeneratorBlock(Block): logger.info(f"[FAL Generation] Status: Unknown status: {status}") wait_time = min(base_wait_time * (2**attempt), 60) # Cap at 60 seconds - time.sleep(wait_time) + await asyncio.sleep(wait_time) attempt += 1 raise RuntimeError("Maximum polling attempts reached") - except httpx.HTTPError as e: + except ClientResponseError as e: raise RuntimeError(f"API request failed: {str(e)}") - def run( + async def run( self, input_data: Input, *, credentials: FalCredentials, **kwargs ) -> BlockOutput: try: - video_url = self.generate_video(input_data, credentials) + video_url = await self.generate_video(input_data, credentials) yield "video_url", video_url except Exception as e: error_message = str(e) diff --git a/autogpt_platform/backend/backend/blocks/flux_kontext.py b/autogpt_platform/backend/backend/blocks/flux_kontext.py index 1cff9dbba2..f391b41939 100644 --- a/autogpt_platform/backend/backend/blocks/flux_kontext.py +++ b/autogpt_platform/backend/backend/blocks/flux_kontext.py @@ -123,14 +123,14 @@ class AIImageEditorBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs, ) -> BlockOutput: - result = self.run_model( + result = await self.run_model( api_key=credentials.api_key, model_name=input_data.model.api_name, prompt=input_data.prompt, @@ -140,7 +140,7 @@ class AIImageEditorBlock(Block): ) yield "output_image", result - def run_model( + async def run_model( self, api_key: SecretStr, model_name: str, @@ -157,7 +157,7 @@ class AIImageEditorBlock(Block): **({"seed": seed} if seed is not None else {}), } - output: FileOutput | list[FileOutput] = client.run( # type: ignore + output: FileOutput | list[FileOutput] = await client.async_run( # type: ignore model_name, input=input_params, wait=False, diff --git a/autogpt_platform/backend/backend/blocks/generic_webhook/triggers.py b/autogpt_platform/backend/backend/blocks/generic_webhook/triggers.py index 66c106b0c5..66660ac57d 100644 --- a/autogpt_platform/backend/backend/blocks/generic_webhook/triggers.py +++ b/autogpt_platform/backend/backend/blocks/generic_webhook/triggers.py @@ -46,6 +46,6 @@ class GenericWebhookTriggerBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "constants", input_data.constants yield "payload", input_data.payload diff --git a/autogpt_platform/backend/backend/blocks/github/checks.py b/autogpt_platform/backend/backend/blocks/github/checks.py index 070b5179e8..9b9aecdf07 100644 --- a/autogpt_platform/backend/backend/blocks/github/checks.py +++ b/autogpt_platform/backend/backend/blocks/github/checks.py @@ -129,7 +129,7 @@ class GithubCreateCheckRunBlock(Block): ) @staticmethod - def create_check_run( + async def create_check_run( credentials: GithubCredentials, repo_url: str, name: str, @@ -172,7 +172,7 @@ class GithubCreateCheckRunBlock(Block): data.output = output_data check_runs_url = f"{repo_url}/check-runs" - response = api.post( + response = await api.post( check_runs_url, data=data.model_dump_json(exclude_none=True) ) result = response.json() @@ -183,7 +183,7 @@ class GithubCreateCheckRunBlock(Block): "status": result["status"], } - def run( + async def run( self, input_data: Input, *, @@ -191,7 +191,7 @@ class GithubCreateCheckRunBlock(Block): **kwargs, ) -> BlockOutput: try: - result = self.create_check_run( + result = await self.create_check_run( credentials=credentials, repo_url=input_data.repo_url, name=input_data.name, @@ -292,7 +292,7 @@ class GithubUpdateCheckRunBlock(Block): ) @staticmethod - def update_check_run( + async def update_check_run( credentials: GithubCredentials, repo_url: str, check_run_id: int, @@ -325,7 +325,7 @@ class GithubUpdateCheckRunBlock(Block): data.output = output_data check_run_url = f"{repo_url}/check-runs/{check_run_id}" - response = api.patch( + response = await api.patch( check_run_url, data=data.model_dump_json(exclude_none=True) ) result = response.json() @@ -337,7 +337,7 @@ class GithubUpdateCheckRunBlock(Block): "conclusion": result.get("conclusion"), } - def run( + async def run( self, input_data: Input, *, @@ -345,7 +345,7 @@ class GithubUpdateCheckRunBlock(Block): **kwargs, ) -> BlockOutput: try: - result = self.update_check_run( + result = await self.update_check_run( credentials=credentials, repo_url=input_data.repo_url, check_run_id=input_data.check_run_id, diff --git a/autogpt_platform/backend/backend/blocks/github/issues.py b/autogpt_platform/backend/backend/blocks/github/issues.py index e62821a36e..42c027c493 100644 --- a/autogpt_platform/backend/backend/blocks/github/issues.py +++ b/autogpt_platform/backend/backend/blocks/github/issues.py @@ -80,7 +80,7 @@ class GithubCommentBlock(Block): ) @staticmethod - def post_comment( + async def post_comment( credentials: GithubCredentials, issue_url: str, body_text: str ) -> tuple[int, str]: api = get_api(credentials) @@ -88,18 +88,18 @@ class GithubCommentBlock(Block): if "pull" in issue_url: issue_url = issue_url.replace("pull", "issues") comments_url = issue_url + "/comments" - response = api.post(comments_url, json=data) + response = await api.post(comments_url, json=data) comment = response.json() return comment["id"], comment["html_url"] - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - id, url = self.post_comment( + id, url = await self.post_comment( credentials, input_data.issue_url, input_data.comment, @@ -171,7 +171,7 @@ class GithubUpdateCommentBlock(Block): ) @staticmethod - def update_comment( + async def update_comment( credentials: GithubCredentials, comment_url: str, body_text: str ) -> tuple[int, str]: api = get_api(credentials, convert_urls=False) @@ -179,11 +179,11 @@ class GithubUpdateCommentBlock(Block): url = convert_comment_url_to_api_endpoint(comment_url) logger.info(url) - response = api.patch(url, json=data) + response = await api.patch(url, json=data) comment = response.json() return comment["id"], comment["html_url"] - def run( + async def run( self, input_data: Input, *, @@ -209,7 +209,7 @@ class GithubUpdateCommentBlock(Block): raise ValueError( "Must provide either comment_url or comment_id and issue_url" ) - id, url = self.update_comment( + id, url = await self.update_comment( credentials, input_data.comment_url, input_data.comment, @@ -288,7 +288,7 @@ class GithubListCommentsBlock(Block): ) @staticmethod - def list_comments( + async def list_comments( credentials: GithubCredentials, issue_url: str ) -> list[Output.CommentItem]: parsed_url = urlparse(issue_url) @@ -305,7 +305,7 @@ class GithubListCommentsBlock(Block): # Set convert_urls=False since we're already providing an API URL api = get_api(credentials, convert_urls=False) - response = api.get(api_url) + response = await api.get(api_url) comments = response.json() parsed_comments: list[GithubListCommentsBlock.Output.CommentItem] = [ { @@ -318,18 +318,19 @@ class GithubListCommentsBlock(Block): ] return parsed_comments - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - comments = self.list_comments( + comments = await self.list_comments( credentials, input_data.issue_url, ) - yield from (("comment", comment) for comment in comments) + for comment in comments: + yield "comment", comment yield "comments", comments @@ -381,24 +382,24 @@ class GithubMakeIssueBlock(Block): ) @staticmethod - def create_issue( + async def create_issue( credentials: GithubCredentials, repo_url: str, title: str, body: str ) -> tuple[int, str]: api = get_api(credentials) data = {"title": title, "body": body} issues_url = repo_url + "/issues" - response = api.post(issues_url, json=data) + response = await api.post(issues_url, json=data) issue = response.json() return issue["number"], issue["html_url"] - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - number, url = self.create_issue( + number, url = await self.create_issue( credentials, input_data.repo_url, input_data.title, @@ -451,25 +452,25 @@ class GithubReadIssueBlock(Block): ) @staticmethod - def read_issue( + async def read_issue( credentials: GithubCredentials, issue_url: str ) -> tuple[str, str, str]: api = get_api(credentials) - response = api.get(issue_url) + response = await api.get(issue_url) data = response.json() title = data.get("title", "No title found") body = data.get("body", "No body content found") user = data.get("user", {}).get("login", "No user found") return title, body, user - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - title, body, user = self.read_issue( + title, body, user = await self.read_issue( credentials, input_data.issue_url, ) @@ -531,30 +532,30 @@ class GithubListIssuesBlock(Block): ) @staticmethod - def list_issues( + async def list_issues( credentials: GithubCredentials, repo_url: str ) -> list[Output.IssueItem]: api = get_api(credentials) issues_url = repo_url + "/issues" - response = api.get(issues_url) + response = await api.get(issues_url) data = response.json() issues: list[GithubListIssuesBlock.Output.IssueItem] = [ {"title": issue["title"], "url": issue["html_url"]} for issue in data ] return issues - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - issues = self.list_issues( + for issue in await self.list_issues( credentials, input_data.repo_url, - ) - yield from (("issue", issue) for issue in issues) + ): + yield "issue", issue class GithubAddLabelBlock(Block): @@ -593,21 +594,23 @@ class GithubAddLabelBlock(Block): ) @staticmethod - def add_label(credentials: GithubCredentials, issue_url: str, label: str) -> str: + async def add_label( + credentials: GithubCredentials, issue_url: str, label: str + ) -> str: api = get_api(credentials) data = {"labels": [label]} labels_url = issue_url + "/labels" - api.post(labels_url, json=data) + await api.post(labels_url, json=data) return "Label added successfully" - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - status = self.add_label( + status = await self.add_label( credentials, input_data.issue_url, input_data.label, @@ -653,20 +656,22 @@ class GithubRemoveLabelBlock(Block): ) @staticmethod - def remove_label(credentials: GithubCredentials, issue_url: str, label: str) -> str: + async def remove_label( + credentials: GithubCredentials, issue_url: str, label: str + ) -> str: api = get_api(credentials) label_url = issue_url + f"/labels/{label}" - api.delete(label_url) + await api.delete(label_url) return "Label removed successfully" - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - status = self.remove_label( + status = await self.remove_label( credentials, input_data.issue_url, input_data.label, @@ -714,7 +719,7 @@ class GithubAssignIssueBlock(Block): ) @staticmethod - def assign_issue( + async def assign_issue( credentials: GithubCredentials, issue_url: str, assignee: str, @@ -722,17 +727,17 @@ class GithubAssignIssueBlock(Block): api = get_api(credentials) assignees_url = issue_url + "/assignees" data = {"assignees": [assignee]} - api.post(assignees_url, json=data) + await api.post(assignees_url, json=data) return "Issue assigned successfully" - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - status = self.assign_issue( + status = await self.assign_issue( credentials, input_data.issue_url, input_data.assignee, @@ -780,7 +785,7 @@ class GithubUnassignIssueBlock(Block): ) @staticmethod - def unassign_issue( + async def unassign_issue( credentials: GithubCredentials, issue_url: str, assignee: str, @@ -788,17 +793,17 @@ class GithubUnassignIssueBlock(Block): api = get_api(credentials) assignees_url = issue_url + "/assignees" data = {"assignees": [assignee]} - api.delete(assignees_url, json=data) + await api.delete(assignees_url, json=data) return "Issue unassigned successfully" - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - status = self.unassign_issue( + status = await self.unassign_issue( credentials, input_data.issue_url, input_data.assignee, diff --git a/autogpt_platform/backend/backend/blocks/github/pull_requests.py b/autogpt_platform/backend/backend/blocks/github/pull_requests.py index b29db0ff34..dbb940217c 100644 --- a/autogpt_platform/backend/backend/blocks/github/pull_requests.py +++ b/autogpt_platform/backend/backend/blocks/github/pull_requests.py @@ -65,28 +65,31 @@ class GithubListPullRequestsBlock(Block): ) @staticmethod - def list_prs(credentials: GithubCredentials, repo_url: str) -> list[Output.PRItem]: + async def list_prs( + credentials: GithubCredentials, repo_url: str + ) -> list[Output.PRItem]: api = get_api(credentials) pulls_url = repo_url + "/pulls" - response = api.get(pulls_url) + response = await api.get(pulls_url) data = response.json() pull_requests: list[GithubListPullRequestsBlock.Output.PRItem] = [ {"title": pr["title"], "url": pr["html_url"]} for pr in data ] return pull_requests - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - pull_requests = self.list_prs( + pull_requests = await self.list_prs( credentials, input_data.repo_url, ) - yield from (("pull_request", pr) for pr in pull_requests) + for pr in pull_requests: + yield "pull_request", pr class GithubMakePullRequestBlock(Block): @@ -153,7 +156,7 @@ class GithubMakePullRequestBlock(Block): ) @staticmethod - def create_pr( + async def create_pr( credentials: GithubCredentials, repo_url: str, title: str, @@ -164,11 +167,11 @@ class GithubMakePullRequestBlock(Block): api = get_api(credentials) pulls_url = repo_url + "/pulls" data = {"title": title, "body": body, "head": head, "base": base} - response = api.post(pulls_url, json=data) + response = await api.post(pulls_url, json=data) pr_data = response.json() return pr_data["number"], pr_data["html_url"] - def run( + async def run( self, input_data: Input, *, @@ -176,7 +179,7 @@ class GithubMakePullRequestBlock(Block): **kwargs, ) -> BlockOutput: try: - number, url = self.create_pr( + number, url = await self.create_pr( credentials, input_data.repo_url, input_data.title, @@ -242,39 +245,39 @@ class GithubReadPullRequestBlock(Block): ) @staticmethod - def read_pr(credentials: GithubCredentials, pr_url: str) -> tuple[str, str, str]: + async def read_pr( + credentials: GithubCredentials, pr_url: str + ) -> tuple[str, str, str]: api = get_api(credentials) - # Adjust the URL to access the issue endpoint for PR metadata issue_url = pr_url.replace("/pull/", "/issues/") - response = api.get(issue_url) + response = await api.get(issue_url) data = response.json() title = data.get("title", "No title found") body = data.get("body", "No body content found") - author = data.get("user", {}).get("login", "No user found") + author = data.get("user", {}).get("login", "Unknown author") return title, body, author @staticmethod - def read_pr_changes(credentials: GithubCredentials, pr_url: str) -> str: + async def read_pr_changes(credentials: GithubCredentials, pr_url: str) -> str: api = get_api(credentials) files_url = prepare_pr_api_url(pr_url=pr_url, path="files") - response = api.get(files_url) + response = await api.get(files_url) files = response.json() changes = [] for file in files: - filename = file.get("filename") - patch = file.get("patch") - if filename and patch: - changes.append(f"File: {filename}\n{patch}") - return "\n\n".join(changes) + filename = file.get("filename", "") + status = file.get("status", "") + changes.append(f"{filename}: {status}") + return "\n".join(changes) - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - title, body, author = self.read_pr( + title, body, author = await self.read_pr( credentials, input_data.pr_url, ) @@ -283,7 +286,7 @@ class GithubReadPullRequestBlock(Block): yield "author", author if input_data.include_pr_changes: - changes = self.read_pr_changes( + changes = await self.read_pr_changes( credentials, input_data.pr_url, ) @@ -330,16 +333,16 @@ class GithubAssignPRReviewerBlock(Block): ) @staticmethod - def assign_reviewer( + async def assign_reviewer( credentials: GithubCredentials, pr_url: str, reviewer: str ) -> str: api = get_api(credentials) reviewers_url = prepare_pr_api_url(pr_url=pr_url, path="requested_reviewers") data = {"reviewers": [reviewer]} - api.post(reviewers_url, json=data) + await api.post(reviewers_url, json=data) return "Reviewer assigned successfully" - def run( + async def run( self, input_data: Input, *, @@ -347,7 +350,7 @@ class GithubAssignPRReviewerBlock(Block): **kwargs, ) -> BlockOutput: try: - status = self.assign_reviewer( + status = await self.assign_reviewer( credentials, input_data.pr_url, input_data.reviewer, @@ -397,16 +400,16 @@ class GithubUnassignPRReviewerBlock(Block): ) @staticmethod - def unassign_reviewer( + async def unassign_reviewer( credentials: GithubCredentials, pr_url: str, reviewer: str ) -> str: api = get_api(credentials) reviewers_url = prepare_pr_api_url(pr_url=pr_url, path="requested_reviewers") data = {"reviewers": [reviewer]} - api.delete(reviewers_url, json=data) + await api.delete(reviewers_url, json=data) return "Reviewer unassigned successfully" - def run( + async def run( self, input_data: Input, *, @@ -414,7 +417,7 @@ class GithubUnassignPRReviewerBlock(Block): **kwargs, ) -> BlockOutput: try: - status = self.unassign_reviewer( + status = await self.unassign_reviewer( credentials, input_data.pr_url, input_data.reviewer, @@ -477,12 +480,12 @@ class GithubListPRReviewersBlock(Block): ) @staticmethod - def list_reviewers( + async def list_reviewers( credentials: GithubCredentials, pr_url: str ) -> list[Output.ReviewerItem]: api = get_api(credentials) reviewers_url = prepare_pr_api_url(pr_url=pr_url, path="requested_reviewers") - response = api.get(reviewers_url) + response = await api.get(reviewers_url) data = response.json() reviewers: list[GithubListPRReviewersBlock.Output.ReviewerItem] = [ {"username": reviewer["login"], "url": reviewer["html_url"]} @@ -490,18 +493,18 @@ class GithubListPRReviewersBlock(Block): ] return reviewers - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - reviewers = self.list_reviewers( + for reviewer in await self.list_reviewers( credentials, input_data.pr_url, - ) - yield from (("reviewer", reviewer) for reviewer in reviewers) + ): + yield "reviewer", reviewer def prepare_pr_api_url(pr_url: str, path: str) -> str: diff --git a/autogpt_platform/backend/backend/blocks/github/repo.py b/autogpt_platform/backend/backend/blocks/github/repo.py index 82bef9475b..f44cd95e1a 100644 --- a/autogpt_platform/backend/backend/blocks/github/repo.py +++ b/autogpt_platform/backend/backend/blocks/github/repo.py @@ -65,12 +65,12 @@ class GithubListTagsBlock(Block): ) @staticmethod - def list_tags( + async def list_tags( credentials: GithubCredentials, repo_url: str ) -> list[Output.TagItem]: api = get_api(credentials) tags_url = repo_url + "/tags" - response = api.get(tags_url) + response = await api.get(tags_url) data = response.json() repo_path = repo_url.replace("https://github.com/", "") tags: list[GithubListTagsBlock.Output.TagItem] = [ @@ -82,18 +82,19 @@ class GithubListTagsBlock(Block): ] return tags - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - tags = self.list_tags( + tags = await self.list_tags( credentials, input_data.repo_url, ) - yield from (("tag", tag) for tag in tags) + for tag in tags: + yield "tag", tag class GithubListBranchesBlock(Block): @@ -147,12 +148,12 @@ class GithubListBranchesBlock(Block): ) @staticmethod - def list_branches( + async def list_branches( credentials: GithubCredentials, repo_url: str ) -> list[Output.BranchItem]: api = get_api(credentials) branches_url = repo_url + "/branches" - response = api.get(branches_url) + response = await api.get(branches_url) data = response.json() repo_path = repo_url.replace("https://github.com/", "") branches: list[GithubListBranchesBlock.Output.BranchItem] = [ @@ -164,18 +165,19 @@ class GithubListBranchesBlock(Block): ] return branches - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - branches = self.list_branches( + branches = await self.list_branches( credentials, input_data.repo_url, ) - yield from (("branch", branch) for branch in branches) + for branch in branches: + yield "branch", branch class GithubListDiscussionsBlock(Block): @@ -234,7 +236,7 @@ class GithubListDiscussionsBlock(Block): ) @staticmethod - def list_discussions( + async def list_discussions( credentials: GithubCredentials, repo_url: str, num_discussions: int ) -> list[Output.DiscussionItem]: api = get_api(credentials) @@ -254,7 +256,7 @@ class GithubListDiscussionsBlock(Block): } """ variables = {"owner": owner, "repo": repo, "num": num_discussions} - response = api.post( + response = await api.post( "https://api.github.com/graphql", json={"query": query, "variables": variables}, ) @@ -265,17 +267,20 @@ class GithubListDiscussionsBlock(Block): ] return discussions - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - discussions = self.list_discussions( - credentials, input_data.repo_url, input_data.num_discussions + discussions = await self.list_discussions( + credentials, + input_data.repo_url, + input_data.num_discussions, ) - yield from (("discussion", discussion) for discussion in discussions) + for discussion in discussions: + yield "discussion", discussion class GithubListReleasesBlock(Block): @@ -329,30 +334,31 @@ class GithubListReleasesBlock(Block): ) @staticmethod - def list_releases( + async def list_releases( credentials: GithubCredentials, repo_url: str ) -> list[Output.ReleaseItem]: api = get_api(credentials) releases_url = repo_url + "/releases" - response = api.get(releases_url) + response = await api.get(releases_url) data = response.json() releases: list[GithubListReleasesBlock.Output.ReleaseItem] = [ {"name": release["name"], "url": release["html_url"]} for release in data ] return releases - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - releases = self.list_releases( + releases = await self.list_releases( credentials, input_data.repo_url, ) - yield from (("release", release) for release in releases) + for release in releases: + yield "release", release class GithubReadFileBlock(Block): @@ -405,40 +411,40 @@ class GithubReadFileBlock(Block): ) @staticmethod - def read_file( + async def read_file( credentials: GithubCredentials, repo_url: str, file_path: str, branch: str ) -> tuple[str, int]: api = get_api(credentials) content_url = repo_url + f"/contents/{file_path}?ref={branch}" - response = api.get(content_url) - content = response.json() + response = await api.get(content_url) + data = response.json() - if isinstance(content, list): + if isinstance(data, list): # Multiple entries of different types exist at this path - if not (file := next((f for f in content if f["type"] == "file"), None)): + if not (file := next((f for f in data if f["type"] == "file"), None)): raise TypeError("Not a file") - content = file + data = file - if content["type"] != "file": + if data["type"] != "file": raise TypeError("Not a file") - return content["content"], content["size"] + return data["content"], data["size"] - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - raw_content, size = self.read_file( + content, size = await self.read_file( credentials, input_data.repo_url, - input_data.file_path.lstrip("/"), + input_data.file_path, input_data.branch, ) - yield "raw_content", raw_content - yield "text_content", base64.b64decode(raw_content).decode("utf-8") + yield "raw_content", content + yield "text_content", base64.b64decode(content).decode("utf-8") yield "size", size @@ -515,52 +521,55 @@ class GithubReadFolderBlock(Block): ) @staticmethod - def read_folder( + async def read_folder( credentials: GithubCredentials, repo_url: str, folder_path: str, branch: str ) -> tuple[list[Output.FileEntry], list[Output.DirEntry]]: api = get_api(credentials) contents_url = repo_url + f"/contents/{folder_path}?ref={branch}" - response = api.get(contents_url) - content = response.json() + response = await api.get(contents_url) + data = response.json() - if not isinstance(content, list): + if not isinstance(data, list): raise TypeError("Not a folder") - files = [ + files: list[GithubReadFolderBlock.Output.FileEntry] = [ GithubReadFolderBlock.Output.FileEntry( name=entry["name"], path=entry["path"], size=entry["size"], ) - for entry in content + for entry in data if entry["type"] == "file" ] - dirs = [ + + dirs: list[GithubReadFolderBlock.Output.DirEntry] = [ GithubReadFolderBlock.Output.DirEntry( name=entry["name"], path=entry["path"], ) - for entry in content + for entry in data if entry["type"] == "dir" ] return files, dirs - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - files, dirs = self.read_folder( + files, dirs = await self.read_folder( credentials, input_data.repo_url, input_data.folder_path.lstrip("/"), input_data.branch, ) - yield from (("file", file) for file in files) - yield from (("dir", dir) for dir in dirs) + for file in files: + yield "file", file + for dir in dirs: + yield "dir", dir class GithubMakeBranchBlock(Block): @@ -606,32 +615,35 @@ class GithubMakeBranchBlock(Block): ) @staticmethod - def create_branch( + async def create_branch( credentials: GithubCredentials, repo_url: str, new_branch: str, source_branch: str, ) -> str: api = get_api(credentials) - # Get the SHA of the source branch ref_url = repo_url + f"/git/refs/heads/{source_branch}" - response = api.get(ref_url) - sha = response.json()["object"]["sha"] + response = await api.get(ref_url) + data = response.json() + sha = data["object"]["sha"] # Create the new branch - create_ref_url = repo_url + "/git/refs" - data = {"ref": f"refs/heads/{new_branch}", "sha": sha} - response = api.post(create_ref_url, json=data) + new_ref_url = repo_url + "/git/refs" + data = { + "ref": f"refs/heads/{new_branch}", + "sha": sha, + } + response = await api.post(new_ref_url, json=data) return "Branch created successfully" - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - status = self.create_branch( + status = await self.create_branch( credentials, input_data.repo_url, input_data.new_branch, @@ -678,22 +690,22 @@ class GithubDeleteBranchBlock(Block): ) @staticmethod - def delete_branch( + async def delete_branch( credentials: GithubCredentials, repo_url: str, branch: str ) -> str: api = get_api(credentials) ref_url = repo_url + f"/git/refs/heads/{branch}" - api.delete(ref_url) + await api.delete(ref_url) return "Branch deleted successfully" - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - status = self.delete_branch( + status = await self.delete_branch( credentials, input_data.repo_url, input_data.branch, @@ -761,7 +773,7 @@ class GithubCreateFileBlock(Block): ) @staticmethod - def create_file( + async def create_file( credentials: GithubCredentials, repo_url: str, file_path: str, @@ -770,23 +782,18 @@ class GithubCreateFileBlock(Block): commit_message: str, ) -> tuple[str, str]: api = get_api(credentials) - # Convert content to base64 - content_bytes = content.encode("utf-8") - content_base64 = base64.b64encode(content_bytes).decode("utf-8") - - # Create the file using the GitHub API - contents_url = f"{repo_url}/contents/{file_path}" + contents_url = repo_url + f"/contents/{file_path}" + content_base64 = base64.b64encode(content.encode()).decode() data = { "message": commit_message, "content": content_base64, "branch": branch, } - response = api.put(contents_url, json=data) - result = response.json() + response = await api.put(contents_url, json=data) + data = response.json() + return data["content"]["html_url"], data["commit"]["sha"] - return result["content"]["html_url"], result["commit"]["sha"] - - def run( + async def run( self, input_data: Input, *, @@ -794,7 +801,7 @@ class GithubCreateFileBlock(Block): **kwargs, ) -> BlockOutput: try: - url, sha = self.create_file( + url, sha = await self.create_file( credentials, input_data.repo_url, input_data.file_path, @@ -866,7 +873,7 @@ class GithubUpdateFileBlock(Block): ) @staticmethod - def update_file( + async def update_file( credentials: GithubCredentials, repo_url: str, file_path: str, @@ -875,30 +882,24 @@ class GithubUpdateFileBlock(Block): commit_message: str, ) -> tuple[str, str]: api = get_api(credentials) - - # First get the current file to get its SHA - contents_url = f"{repo_url}/contents/{file_path}" + contents_url = repo_url + f"/contents/{file_path}" params = {"ref": branch} - response = api.get(contents_url, params=params) - current_file = response.json() + response = await api.get(contents_url, params=params) + data = response.json() # Convert new content to base64 - content_bytes = content.encode("utf-8") - content_base64 = base64.b64encode(content_bytes).decode("utf-8") - - # Update the file + content_base64 = base64.b64encode(content.encode()).decode() data = { "message": commit_message, "content": content_base64, - "sha": current_file["sha"], + "sha": data["sha"], "branch": branch, } - response = api.put(contents_url, json=data) - result = response.json() + response = await api.put(contents_url, json=data) + data = response.json() + return data["content"]["html_url"], data["commit"]["sha"] - return result["content"]["html_url"], result["commit"]["sha"] - - def run( + async def run( self, input_data: Input, *, @@ -906,7 +907,7 @@ class GithubUpdateFileBlock(Block): **kwargs, ) -> BlockOutput: try: - url, sha = self.update_file( + url, sha = await self.update_file( credentials, input_data.repo_url, input_data.file_path, @@ -981,7 +982,7 @@ class GithubCreateRepositoryBlock(Block): ) @staticmethod - def create_repository( + async def create_repository( credentials: GithubCredentials, name: str, description: str, @@ -989,24 +990,19 @@ class GithubCreateRepositoryBlock(Block): auto_init: bool, gitignore_template: str, ) -> tuple[str, str]: - api = get_api(credentials, convert_urls=False) # Disable URL conversion + api = get_api(credentials) data = { "name": name, "description": description, "private": private, "auto_init": auto_init, + "gitignore_template": gitignore_template, } + response = await api.post("https://api.github.com/user/repos", json=data) + data = response.json() + return data["html_url"], data["clone_url"] - if gitignore_template: - data["gitignore_template"] = gitignore_template - - # Create repository using the user endpoint - response = api.post("https://api.github.com/user/repos", json=data) - result = response.json() - - return result["html_url"], result["clone_url"] - - def run( + async def run( self, input_data: Input, *, @@ -1014,7 +1010,7 @@ class GithubCreateRepositoryBlock(Block): **kwargs, ) -> BlockOutput: try: - url, clone_url = self.create_repository( + url, clone_url = await self.create_repository( credentials, input_data.name, input_data.description, @@ -1081,17 +1077,13 @@ class GithubListStargazersBlock(Block): ) @staticmethod - def list_stargazers( + async def list_stargazers( credentials: GithubCredentials, repo_url: str ) -> list[Output.StargazerItem]: api = get_api(credentials) - # Add /stargazers to the repo URL to get stargazers endpoint - stargazers_url = f"{repo_url}/stargazers" - # Set accept header to get starred_at timestamp - headers = {"Accept": "application/vnd.github.star+json"} - response = api.get(stargazers_url, headers=headers) + stargazers_url = repo_url + "/stargazers" + response = await api.get(stargazers_url) data = response.json() - stargazers: list[GithubListStargazersBlock.Output.StargazerItem] = [ { "username": stargazer["login"], @@ -1101,18 +1093,16 @@ class GithubListStargazersBlock(Block): ] return stargazers - def run( + async def run( self, input_data: Input, *, credentials: GithubCredentials, **kwargs, ) -> BlockOutput: - try: - stargazers = self.list_stargazers( - credentials, - input_data.repo_url, - ) - yield from (("stargazer", stargazer) for stargazer in stargazers) - except Exception as e: - yield "error", str(e) + stargazers = await self.list_stargazers( + credentials, + input_data.repo_url, + ) + for stargazer in stargazers: + yield "stargazer", stargazer diff --git a/autogpt_platform/backend/backend/blocks/github/statuses.py b/autogpt_platform/backend/backend/blocks/github/statuses.py index a69b0e3d61..a7e2b006aa 100644 --- a/autogpt_platform/backend/backend/blocks/github/statuses.py +++ b/autogpt_platform/backend/backend/blocks/github/statuses.py @@ -115,7 +115,7 @@ class GithubCreateStatusBlock(Block): ) @staticmethod - def create_status( + async def create_status( credentials: GithubFineGrainedAPICredentials, repo_url: str, sha: str, @@ -144,7 +144,9 @@ class GithubCreateStatusBlock(Block): data.description = description status_url = f"{repo_url}/statuses/{sha}" - response = api.post(status_url, data=data.model_dump_json(exclude_none=True)) + response = await api.post( + status_url, data=data.model_dump_json(exclude_none=True) + ) result = response.json() return { @@ -158,7 +160,7 @@ class GithubCreateStatusBlock(Block): "updated_at": result["updated_at"], } - def run( + async def run( self, input_data: Input, *, @@ -166,7 +168,7 @@ class GithubCreateStatusBlock(Block): **kwargs, ) -> BlockOutput: try: - result = self.create_status( + result = await self.create_status( credentials=credentials, repo_url=input_data.repo_url, sha=input_data.sha, diff --git a/autogpt_platform/backend/backend/blocks/github/triggers.py b/autogpt_platform/backend/backend/blocks/github/triggers.py index 0410ed02a3..83b1689b89 100644 --- a/autogpt_platform/backend/backend/blocks/github/triggers.py +++ b/autogpt_platform/backend/backend/blocks/github/triggers.py @@ -53,7 +53,7 @@ class GitHubTriggerBase: description="Error message if the payload could not be processed" ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "payload", input_data.payload yield "triggered_by_user", input_data.payload["sender"] @@ -148,8 +148,9 @@ class GithubPullRequestTriggerBlock(GitHubTriggerBase, Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: # type: ignore - yield from super().run(input_data, **kwargs) + async def run(self, input_data: Input, **kwargs) -> BlockOutput: # type: ignore + async for name, value in super().run(input_data, **kwargs): + yield name, value yield "event", input_data.payload["action"] yield "number", input_data.payload["number"] yield "pull_request", input_data.payload["pull_request"] diff --git a/autogpt_platform/backend/backend/blocks/google/calendar.py b/autogpt_platform/backend/backend/blocks/google/calendar.py index f119527f26..27cc9e5958 100644 --- a/autogpt_platform/backend/backend/blocks/google/calendar.py +++ b/autogpt_platform/backend/backend/blocks/google/calendar.py @@ -1,3 +1,4 @@ +import asyncio import enum import uuid from datetime import datetime, timedelta, timezone @@ -168,7 +169,7 @@ class GoogleCalendarReadEventsBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: try: @@ -180,7 +181,8 @@ class GoogleCalendarReadEventsBlock(Block): ) # Call Google Calendar API - result = self._read_calendar( + result = await asyncio.to_thread( + self._read_calendar, service=service, calendarId=input_data.calendar_id, time_min=input_data.start_time.isoformat(), @@ -477,12 +479,13 @@ class GoogleCalendarCreateEventBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: try: service = self._build_service(credentials, **kwargs) + # Create event body # Get start and end times based on the timing option if input_data.timing.discriminator == "exact_timing": start_datetime = input_data.timing.start_datetime @@ -543,7 +546,8 @@ class GoogleCalendarCreateEventBlock(Block): event_body["recurrence"] = [rule] # Create the event - result = self._create_event( + result = await asyncio.to_thread( + self._create_event, service=service, calendar_id=input_data.calendar_id, event_body=event_body, @@ -551,8 +555,9 @@ class GoogleCalendarCreateEventBlock(Block): conference_data_version=1 if input_data.add_google_meet else 0, ) - yield "event_id", result.get("id", "") - yield "event_link", result.get("htmlLink", "") + yield "event_id", result["id"] + yield "event_link", result["htmlLink"] + except Exception as e: yield "error", str(e) diff --git a/autogpt_platform/backend/backend/blocks/google/gmail.py b/autogpt_platform/backend/backend/blocks/google/gmail.py index 780cc1b16f..a6d2db3665 100644 --- a/autogpt_platform/backend/backend/blocks/google/gmail.py +++ b/autogpt_platform/backend/backend/blocks/google/gmail.py @@ -1,3 +1,4 @@ +import asyncio import base64 from email.utils import parseaddr from typing import List @@ -128,11 +129,13 @@ class GmailReadBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: - service = self._build_service(credentials, **kwargs) - messages = self._read_emails(service, input_data.query, input_data.max_results) + service = GmailReadBlock._build_service(credentials, **kwargs) + messages = await asyncio.to_thread( + self._read_emails, service, input_data.query, input_data.max_results + ) for email in messages: yield "email", email yield "emails", messages @@ -286,14 +289,18 @@ class GmailSendBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: service = GmailReadBlock._build_service(credentials, **kwargs) - send_result = self._send_email( - service, input_data.to, input_data.subject, input_data.body + result = await asyncio.to_thread( + self._send_email, + service, + input_data.to, + input_data.subject, + input_data.body, ) - yield "result", send_result + yield "result", result def _send_email(self, service, to: str, subject: str, body: str) -> dict: if not to or not subject or not body: @@ -358,12 +365,12 @@ class GmailListLabelsBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: service = GmailReadBlock._build_service(credentials, **kwargs) - labels = self._list_labels(service) - yield "result", labels + result = await asyncio.to_thread(self._list_labels, service) + yield "result", result def _list_labels(self, service) -> list[dict]: results = service.users().labels().list(userId="me").execute() @@ -419,11 +426,13 @@ class GmailAddLabelBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: service = GmailReadBlock._build_service(credentials, **kwargs) - result = self._add_label(service, input_data.message_id, input_data.label_name) + result = await asyncio.to_thread( + self._add_label, service, input_data.message_id, input_data.label_name + ) yield "result", result def _add_label(self, service, message_id: str, label_name: str) -> dict: @@ -502,12 +511,12 @@ class GmailRemoveLabelBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: service = GmailReadBlock._build_service(credentials, **kwargs) - result = self._remove_label( - service, input_data.message_id, input_data.label_name + result = await asyncio.to_thread( + self._remove_label, service, input_data.message_id, input_data.label_name ) yield "result", result diff --git a/autogpt_platform/backend/backend/blocks/google/sheets.py b/autogpt_platform/backend/backend/blocks/google/sheets.py index 141e359184..6a866051ff 100644 --- a/autogpt_platform/backend/backend/blocks/google/sheets.py +++ b/autogpt_platform/backend/backend/blocks/google/sheets.py @@ -1,3 +1,5 @@ +import asyncio + from google.oauth2.credentials import Credentials from googleapiclient.discovery import build @@ -68,11 +70,13 @@ class GoogleSheetsReadBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: service = self._build_service(credentials, **kwargs) - data = self._read_sheet(service, input_data.spreadsheet_id, input_data.range) + data = await asyncio.to_thread( + self._read_sheet, service, input_data.spreadsheet_id, input_data.range + ) yield "result", data @staticmethod @@ -157,11 +161,12 @@ class GoogleSheetsWriteBlock(Block): }, ) - def run( + async def run( self, input_data: Input, *, credentials: GoogleCredentials, **kwargs ) -> BlockOutput: service = GoogleSheetsReadBlock._build_service(credentials, **kwargs) - result = self._write_sheet( + result = await asyncio.to_thread( + self._write_sheet, service, input_data.spreadsheet_id, input_data.range, diff --git a/autogpt_platform/backend/backend/blocks/google_maps.py b/autogpt_platform/backend/backend/blocks/google_maps.py index 9e7f793531..01e81c69c9 100644 --- a/autogpt_platform/backend/backend/blocks/google_maps.py +++ b/autogpt_platform/backend/backend/blocks/google_maps.py @@ -103,7 +103,7 @@ class GoogleMapsSearchBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: places = self.search_places( diff --git a/autogpt_platform/backend/backend/blocks/helpers/http.py b/autogpt_platform/backend/backend/blocks/helpers/http.py index 33579ba0d9..f68b9f5a8b 100644 --- a/autogpt_platform/backend/backend/blocks/helpers/http.py +++ b/autogpt_platform/backend/backend/blocks/helpers/http.py @@ -1,14 +1,17 @@ from typing import Any, Optional -from backend.util.request import requests +from backend.util.request import Requests class GetRequest: @classmethod - def get_request( + async def get_request( cls, url: str, headers: Optional[dict] = None, json: bool = False ) -> Any: if headers is None: headers = {} - response = requests.get(url, headers=headers) - return response.json() if json else response.text + response = await Requests().get(url, headers=headers) + if json: + return response.json() + else: + return response.text() diff --git a/autogpt_platform/backend/backend/blocks/http.py b/autogpt_platform/backend/backend/blocks/http.py index 40ed6a684b..9bb6d9b55e 100644 --- a/autogpt_platform/backend/backend/blocks/http.py +++ b/autogpt_platform/backend/backend/blocks/http.py @@ -1,10 +1,10 @@ import json import logging from enum import Enum -from io import BufferedReader +from io import BytesIO from pathlib import Path -from requests.exceptions import HTTPError, RequestException +import aiofiles from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField @@ -14,7 +14,7 @@ from backend.util.file import ( get_mime_type, store_media_file, ) -from backend.util.request import requests +from backend.util.request import Requests logger = logging.getLogger(name=__name__) @@ -77,39 +77,35 @@ class SendWebRequestBlock(Block): ) @staticmethod - def _prepare_files( + async def _prepare_files( graph_exec_id: str, files_name: str, files: list[MediaFileType], - ) -> tuple[list[tuple[str, tuple[str, BufferedReader, str]]], list[BufferedReader]]: - """Convert the `files` mapping into the structure expected by `requests`. - - Returns a tuple of (**files_payload**, **open_handles**) so we can close handles later. + ) -> list[tuple[str, tuple[str, BytesIO, str]]]: """ - files_payload: list[tuple[str, tuple[str, BufferedReader, str]]] = [] - open_handles: list[BufferedReader] = [] + Prepare files for the request by storing them and reading their content. + Returns a list of tuples in the format: + (files_name, (filename, BytesIO, mime_type)) + """ + files_payload: list[tuple[str, tuple[str, BytesIO, str]]] = [] for media in files: # Normalise to a list so we can repeat the same key - rel_path = store_media_file(graph_exec_id, media, return_content=False) + rel_path = await store_media_file( + graph_exec_id, media, return_content=False + ) abs_path = get_exec_file_path(graph_exec_id, rel_path) - try: - handle = open(abs_path, "rb") - except Exception as e: - for h in open_handles: - try: - h.close() - except Exception: - pass - raise RuntimeError(f"Failed to open file '{abs_path}': {e}") from e + async with aiofiles.open(abs_path, "rb") as f: + content = await f.read() + handle = BytesIO(content) + mime = get_mime_type(abs_path) + files_payload.append((files_name, (Path(abs_path).name, handle, mime))) - open_handles.append(handle) - mime = get_mime_type(abs_path) - files_payload.append((files_name, (Path(abs_path).name, handle, mime))) + return files_payload - return files_payload, open_handles - - def run(self, input_data: Input, *, graph_exec_id: str, **kwargs) -> BlockOutput: + async def run( + self, input_data: Input, *, graph_exec_id: str, **kwargs + ) -> BlockOutput: # ─── Parse/normalise body ──────────────────────────────────── body = input_data.body if isinstance(body, str): @@ -136,10 +132,9 @@ class SendWebRequestBlock(Block): # ─── Prepare files (if any) ────────────────────────────────── use_files = bool(input_data.files) - files_payload: list[tuple[str, tuple[str, BufferedReader, str]]] = [] - open_handles: list[BufferedReader] = [] + files_payload: list[tuple[str, tuple[str, BytesIO, str]]] = [] if use_files: - files_payload, open_handles = self._prepare_files( + files_payload = await self._prepare_files( graph_exec_id, input_data.files_name, input_data.files ) @@ -150,47 +145,27 @@ class SendWebRequestBlock(Block): ) # ─── Execute request ───────────────────────────────────────── - try: - response = requests.request( - input_data.method.value, - input_data.url, - headers=input_data.headers, - files=files_payload if use_files else None, - # * If files → multipart ⇒ pass form‑fields via data= - data=body if not input_data.json_format else None, - # * Else, choose JSON vs url‑encoded based on flag - json=body if (input_data.json_format and not use_files) else None, - ) + response = await Requests().request( + input_data.method.value, + input_data.url, + headers=input_data.headers, + files=files_payload if use_files else None, + # * If files → multipart ⇒ pass form‑fields via data= + data=body if not input_data.json_format else None, + # * Else, choose JSON vs url‑encoded based on flag + json=body if (input_data.json_format and not use_files) else None, + ) - # Decide how to parse the response - if input_data.json_format or response.headers.get( - "content-type", "" - ).startswith("application/json"): - result = ( - None - if (response.status_code == 204 or not response.content.strip()) - else response.json() - ) - else: - result = response.text + # Decide how to parse the response + if response.headers.get("content-type", "").startswith("application/json"): + result = None if response.status == 204 else response.json() + else: + result = response.text() - # Yield according to status code bucket - if 200 <= response.status_code < 300: - yield "response", result - elif 400 <= response.status_code < 500: - yield "client_error", result - else: - yield "server_error", result - - except HTTPError as e: - yield "error", f"HTTP error: {str(e)}" - except RequestException as e: - yield "error", f"Request error: {str(e)}" - except Exception as e: - yield "error", str(e) - finally: - for h in open_handles: - try: - h.close() - except Exception: - pass + # Yield according to status code bucket + if 200 <= response.status < 300: + yield "response", result + elif 400 <= response.status < 500: + yield "client_error", result + else: + yield "server_error", result diff --git a/autogpt_platform/backend/backend/blocks/hubspot/company.py b/autogpt_platform/backend/backend/blocks/hubspot/company.py index 002aeeef81..3026112259 100644 --- a/autogpt_platform/backend/backend/blocks/hubspot/company.py +++ b/autogpt_platform/backend/backend/blocks/hubspot/company.py @@ -35,7 +35,7 @@ class HubSpotCompanyBlock(Block): output_schema=HubSpotCompanyBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: HubSpotCredentials, **kwargs ) -> BlockOutput: base_url = "https://api.hubapi.com/crm/v3/objects/companies" @@ -45,7 +45,7 @@ class HubSpotCompanyBlock(Block): } if input_data.operation == "create": - response = Requests().post( + response = await Requests().post( base_url, headers=headers, json={"properties": input_data.company_data} ) result = response.json() @@ -67,14 +67,16 @@ class HubSpotCompanyBlock(Block): } ] } - response = Requests().post(search_url, headers=headers, json=search_data) - result = response.json() - yield "company", result.get("results", [{}])[0] + search_response = await Requests().post( + search_url, headers=headers, json=search_data + ) + search_result = search_response.json() + yield "search_company", search_result.get("results", [{}])[0] yield "status", "retrieved" elif input_data.operation == "update": # First get company ID by domain - search_response = Requests().post( + search_response = await Requests().post( f"{base_url}/search", headers=headers, json={ @@ -91,10 +93,11 @@ class HubSpotCompanyBlock(Block): ] }, ) - company_id = search_response.json().get("results", [{}])[0].get("id") + search_result = search_response.json() + company_id = search_result.get("results", [{}])[0].get("id") if company_id: - response = Requests().patch( + response = await Requests().patch( f"{base_url}/{company_id}", headers=headers, json={"properties": input_data.company_data}, diff --git a/autogpt_platform/backend/backend/blocks/hubspot/contact.py b/autogpt_platform/backend/backend/blocks/hubspot/contact.py index b930062a1c..2029adaca1 100644 --- a/autogpt_platform/backend/backend/blocks/hubspot/contact.py +++ b/autogpt_platform/backend/backend/blocks/hubspot/contact.py @@ -35,7 +35,7 @@ class HubSpotContactBlock(Block): output_schema=HubSpotContactBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: HubSpotCredentials, **kwargs ) -> BlockOutput: base_url = "https://api.hubapi.com/crm/v3/objects/contacts" @@ -45,7 +45,7 @@ class HubSpotContactBlock(Block): } if input_data.operation == "create": - response = Requests().post( + response = await Requests().post( base_url, headers=headers, json={"properties": input_data.contact_data} ) result = response.json() @@ -53,7 +53,6 @@ class HubSpotContactBlock(Block): yield "status", "created" elif input_data.operation == "get": - # Search for contact by email search_url = f"{base_url}/search" search_data = { "filterGroups": [ @@ -68,13 +67,15 @@ class HubSpotContactBlock(Block): } ] } - response = Requests().post(search_url, headers=headers, json=search_data) + response = await Requests().post( + search_url, headers=headers, json=search_data + ) result = response.json() yield "contact", result.get("results", [{}])[0] yield "status", "retrieved" elif input_data.operation == "update": - search_response = Requests().post( + search_response = await Requests().post( f"{base_url}/search", headers=headers, json={ @@ -91,10 +92,11 @@ class HubSpotContactBlock(Block): ] }, ) - contact_id = search_response.json().get("results", [{}])[0].get("id") + search_result = search_response.json() + contact_id = search_result.get("results", [{}])[0].get("id") if contact_id: - response = Requests().patch( + response = await Requests().patch( f"{base_url}/{contact_id}", headers=headers, json={"properties": input_data.contact_data}, diff --git a/autogpt_platform/backend/backend/blocks/hubspot/engagement.py b/autogpt_platform/backend/backend/blocks/hubspot/engagement.py index eb22a00f2a..7e4dbc3d01 100644 --- a/autogpt_platform/backend/backend/blocks/hubspot/engagement.py +++ b/autogpt_platform/backend/backend/blocks/hubspot/engagement.py @@ -42,7 +42,7 @@ class HubSpotEngagementBlock(Block): output_schema=HubSpotEngagementBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: HubSpotCredentials, **kwargs ) -> BlockOutput: base_url = "https://api.hubapi.com" @@ -66,7 +66,9 @@ class HubSpotEngagementBlock(Block): } } - response = Requests().post(email_url, headers=headers, json=email_data) + response = await Requests().post( + email_url, headers=headers, json=email_data + ) result = response.json() yield "result", result yield "status", "email_sent" @@ -80,7 +82,9 @@ class HubSpotEngagementBlock(Block): params = {"limit": 100, "after": from_date.isoformat()} - response = Requests().get(engagement_url, headers=headers, params=params) + response = await Requests().get( + engagement_url, headers=headers, params=params + ) engagements = response.json() # Process engagement metrics diff --git a/autogpt_platform/backend/backend/blocks/ideogram.py b/autogpt_platform/backend/backend/blocks/ideogram.py index 66c2380d12..468f8f1d1e 100644 --- a/autogpt_platform/backend/backend/blocks/ideogram.py +++ b/autogpt_platform/backend/backend/blocks/ideogram.py @@ -196,13 +196,13 @@ class IdeogramModelBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: seed = input_data.seed # Step 1: Generate the image - result = self.run_model( + result = await self.run_model( api_key=credentials.api_key, model_name=input_data.ideogram_model_name.value, prompt=input_data.prompt, @@ -217,14 +217,14 @@ class IdeogramModelBlock(Block): # Step 2: Upscale the image if requested if input_data.upscale == UpscaleOption.AI_UPSCALE: - result = self.upscale_image( + result = await self.upscale_image( api_key=credentials.api_key, image_url=result, ) yield "result", result - def run_model( + async def run_model( self, api_key: SecretStr, model_name: str, @@ -267,12 +267,12 @@ class IdeogramModelBlock(Block): } try: - response = Requests().post(url, json=data, headers=headers) + response = await Requests().post(url, headers=headers, json=data) return response.json()["data"][0]["url"] except RequestException as e: raise Exception(f"Failed to fetch image: {str(e)}") - def upscale_image(self, api_key: SecretStr, image_url: str): + async def upscale_image(self, api_key: SecretStr, image_url: str): url = "https://api.ideogram.ai/upscale" headers = { "Api-Key": api_key.get_secret_value(), @@ -280,21 +280,22 @@ class IdeogramModelBlock(Block): try: # Step 1: Download the image from the provided URL - image_response = Requests().get(image_url) + response = await Requests().get(image_url) + image_content = response.content # Step 2: Send the downloaded image to the upscale API files = { - "image_file": ("image.png", image_response.content, "image/png"), + "image_file": ("image.png", image_content, "image/png"), } - response = Requests().post( + response = await Requests().post( url, headers=headers, data={"image_request": "{}"}, files=files, ) - return response.json()["data"][0]["url"] + return (response.json())["data"][0]["url"] except RequestException as e: raise Exception(f"Failed to upscale image: {str(e)}") diff --git a/autogpt_platform/backend/backend/blocks/io.py b/autogpt_platform/backend/backend/blocks/io.py index f9f9b85fb0..c42e6c1dd7 100644 --- a/autogpt_platform/backend/backend/blocks/io.py +++ b/autogpt_platform/backend/backend/blocks/io.py @@ -95,7 +95,7 @@ class AgentInputBlock(Block): } ) - def run(self, input_data: Input, *args, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, *args, **kwargs) -> BlockOutput: if input_data.value is not None: yield "result", input_data.value @@ -186,7 +186,7 @@ class AgentOutputBlock(Block): static_output=True, ) - def run(self, input_data: Input, *args, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, *args, **kwargs) -> BlockOutput: """ Attempts to format the recorded_value using the fmt_string if provided. If formatting fails or no fmt_string is given, returns the original recorded_value. @@ -436,7 +436,7 @@ class AgentFileInputBlock(AgentInputBlock): ], ) - def run( + async def run( self, input_data: Input, *, @@ -446,7 +446,7 @@ class AgentFileInputBlock(AgentInputBlock): if not input_data.value: return - file_path = store_media_file( + file_path = await store_media_file( graph_exec_id=graph_exec_id, file=input_data.value, return_content=False, diff --git a/autogpt_platform/backend/backend/blocks/iteration.py b/autogpt_platform/backend/backend/blocks/iteration.py index 0159e62d21..c0b66a2ed0 100644 --- a/autogpt_platform/backend/backend/blocks/iteration.py +++ b/autogpt_platform/backend/backend/blocks/iteration.py @@ -53,7 +53,7 @@ class StepThroughItemsBlock(Block): test_mock={}, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: for data in [input_data.items, input_data.items_object, input_data.items_str]: if not data: continue diff --git a/autogpt_platform/backend/backend/blocks/jina/chunking.py b/autogpt_platform/backend/backend/blocks/jina/chunking.py index 75a5d858f2..052fa8e815 100644 --- a/autogpt_platform/backend/backend/blocks/jina/chunking.py +++ b/autogpt_platform/backend/backend/blocks/jina/chunking.py @@ -35,7 +35,7 @@ class JinaChunkingBlock(Block): output_schema=JinaChunkingBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: JinaCredentials, **kwargs ) -> BlockOutput: url = "https://segment.jina.ai/" @@ -55,7 +55,7 @@ class JinaChunkingBlock(Block): "max_chunk_length": str(input_data.max_chunk_length), } - response = Requests().post(url, headers=headers, json=data) + response = await Requests().post(url, headers=headers, json=data) result = response.json() all_chunks.extend(result.get("chunks", [])) diff --git a/autogpt_platform/backend/backend/blocks/jina/embeddings.py b/autogpt_platform/backend/backend/blocks/jina/embeddings.py index dd7966d500..abc2f9d6ae 100644 --- a/autogpt_platform/backend/backend/blocks/jina/embeddings.py +++ b/autogpt_platform/backend/backend/blocks/jina/embeddings.py @@ -29,7 +29,7 @@ class JinaEmbeddingBlock(Block): output_schema=JinaEmbeddingBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: JinaCredentials, **kwargs ) -> BlockOutput: url = "https://api.jina.ai/v1/embeddings" @@ -38,6 +38,6 @@ class JinaEmbeddingBlock(Block): "Authorization": f"Bearer {credentials.api_key.get_secret_value()}", } data = {"input": input_data.texts, "model": input_data.model} - response = Requests().post(url, headers=headers, json=data) + response = await Requests().post(url, headers=headers, json=data) embeddings = [e["embedding"] for e in response.json()["data"]] yield "embeddings", embeddings diff --git a/autogpt_platform/backend/backend/blocks/jina/fact_checker.py b/autogpt_platform/backend/backend/blocks/jina/fact_checker.py index 91c17f564e..9cf1e277fd 100644 --- a/autogpt_platform/backend/backend/blocks/jina/fact_checker.py +++ b/autogpt_platform/backend/backend/blocks/jina/fact_checker.py @@ -7,7 +7,7 @@ from backend.blocks.jina._auth import ( ) from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.model import SchemaField -from backend.util.request import requests +from backend.util.request import Requests class FactCheckerBlock(Block): @@ -34,7 +34,7 @@ class FactCheckerBlock(Block): output_schema=FactCheckerBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: JinaCredentials, **kwargs ) -> BlockOutput: encoded_statement = quote(input_data.statement) @@ -45,8 +45,7 @@ class FactCheckerBlock(Block): "Authorization": f"Bearer {credentials.api_key.get_secret_value()}", } - response = requests.get(url, headers=headers) - response.raise_for_status() + response = await Requests().get(url, headers=headers) data = response.json() if "data" in data: diff --git a/autogpt_platform/backend/backend/blocks/jina/search.py b/autogpt_platform/backend/backend/blocks/jina/search.py index 248d8af720..90a6eea51c 100644 --- a/autogpt_platform/backend/backend/blocks/jina/search.py +++ b/autogpt_platform/backend/backend/blocks/jina/search.py @@ -39,7 +39,7 @@ class SearchTheWebBlock(Block, GetRequest): test_mock={"get_request": lambda *args, **kwargs: "search content"}, ) - def run( + async def run( self, input_data: Input, *, credentials: JinaCredentials, **kwargs ) -> BlockOutput: # Encode the search query @@ -51,7 +51,7 @@ class SearchTheWebBlock(Block, GetRequest): # Prepend the Jina Search URL to the encoded query jina_search_url = f"https://s.jina.ai/{encoded_query}" - results = self.get_request(jina_search_url, headers=headers, json=False) + results = await self.get_request(jina_search_url, headers=headers, json=False) # Output the search results yield "results", results @@ -90,7 +90,7 @@ class ExtractWebsiteContentBlock(Block, GetRequest): test_mock={"get_request": lambda *args, **kwargs: "scraped content"}, ) - def run( + async def run( self, input_data: Input, *, credentials: JinaCredentials, **kwargs ) -> BlockOutput: if input_data.raw_content: @@ -103,5 +103,5 @@ class ExtractWebsiteContentBlock(Block, GetRequest): "Authorization": f"Bearer {credentials.api_key.get_secret_value()}", } - content = self.get_request(url, json=False, headers=headers) + content = await self.get_request(url, json=False, headers=headers) yield "content", content diff --git a/autogpt_platform/backend/backend/blocks/linear/_api.py b/autogpt_platform/backend/backend/blocks/linear/_api.py index c43f46fa70..0acee7fada 100644 --- a/autogpt_platform/backend/backend/blocks/linear/_api.py +++ b/autogpt_platform/backend/backend/blocks/linear/_api.py @@ -48,7 +48,7 @@ class LinearClient: raise_for_status=False, ) - def _execute_graphql_request( + async def _execute_graphql_request( self, query: str, variables: dict | None = None ) -> Any: """ @@ -65,19 +65,18 @@ class LinearClient: if variables: payload["variables"] = variables - response = self._requests.post(self.API_URL, json=payload) + response = await self._requests.post(self.API_URL, json=payload) if not response.ok: - try: error_data = response.json() error_message = error_data.get("errors", [{}])[0].get("message", "") except json.JSONDecodeError: - error_message = response.text + error_message = response.text() raise LinearAPIException( - f"Linear API request failed ({response.status_code}): {error_message}", - response.status_code, + f"Linear API request failed ({response.status}): {error_message}", + response.status, ) response_data = response.json() @@ -88,12 +87,12 @@ class LinearClient: ] raise LinearAPIException( f"Linear API returned errors: {', '.join(error_messages)}", - response.status_code, + response.status, ) return response_data["data"] - def query(self, query: str, variables: Optional[dict] = None) -> dict: + async def query(self, query: str, variables: Optional[dict] = None) -> dict: """Executes a GraphQL query. Args: @@ -103,9 +102,9 @@ class LinearClient: Returns: The response data. """ - return self._execute_graphql_request(query, variables) + return await self._execute_graphql_request(query, variables) - def mutate(self, mutation: str, variables: Optional[dict] = None) -> dict: + async def mutate(self, mutation: str, variables: Optional[dict] = None) -> dict: """Executes a GraphQL mutation. Args: @@ -115,9 +114,11 @@ class LinearClient: Returns: The response data. """ - return self._execute_graphql_request(mutation, variables) + return await self._execute_graphql_request(mutation, variables) - def try_create_comment(self, issue_id: str, comment: str) -> CreateCommentResponse: + async def try_create_comment( + self, issue_id: str, comment: str + ) -> CreateCommentResponse: try: mutation = """ mutation CommentCreate($input: CommentCreateInput!) { @@ -138,13 +139,13 @@ class LinearClient: } } - added_comment = self.mutate(mutation, variables) + added_comment = await self.mutate(mutation, variables) # Select the commentCreate field from the mutation response return CreateCommentResponse(**added_comment["commentCreate"]) except LinearAPIException as e: raise e - def try_get_team_by_name(self, team_name: str) -> str: + async def try_get_team_by_name(self, team_name: str) -> str: try: query = """ query GetTeamId($searchTerm: String!) { @@ -167,12 +168,12 @@ class LinearClient: "searchTerm": team_name, } - team_id = self.query(query, variables) + team_id = await self.query(query, variables) return team_id["teams"]["nodes"][0]["id"] except LinearAPIException as e: raise e - def try_create_issue( + async def try_create_issue( self, team_id: str, title: str, @@ -211,12 +212,12 @@ class LinearClient: if priority: variables["input"]["priority"] = priority - added_issue = self.mutate(mutation, variables) + added_issue = await self.mutate(mutation, variables) return CreateIssueResponse(**added_issue["issueCreate"]) except LinearAPIException as e: raise e - def try_search_projects(self, term: str) -> list[Project]: + async def try_search_projects(self, term: str) -> list[Project]: try: query = """ query SearchProjects($term: String!, $includeComments: Boolean!) { @@ -238,14 +239,14 @@ class LinearClient: "includeComments": True, } - projects = self.query(query, variables) + projects = await self.query(query, variables) return [ Project(**project) for project in projects["searchProjects"]["nodes"] ] except LinearAPIException as e: raise e - def try_search_issues(self, term: str) -> list[Issue]: + async def try_search_issues(self, term: str) -> list[Issue]: try: query = """ query SearchIssues($term: String!, $includeComments: Boolean!) { @@ -266,7 +267,7 @@ class LinearClient: "includeComments": True, } - issues = self.query(query, variables) + issues = await self.query(query, variables) return [Issue(**issue) for issue in issues["searchIssues"]["nodes"]] except LinearAPIException as e: raise e diff --git a/autogpt_platform/backend/backend/blocks/linear/comment.py b/autogpt_platform/backend/backend/blocks/linear/comment.py index 6789fd12e3..d065609bf8 100644 --- a/autogpt_platform/backend/backend/blocks/linear/comment.py +++ b/autogpt_platform/backend/backend/blocks/linear/comment.py @@ -54,21 +54,21 @@ class LinearCreateCommentBlock(Block): ) @staticmethod - def create_comment( + async def create_comment( credentials: LinearCredentials, issue_id: str, comment: str ) -> tuple[str, str]: client = LinearClient(credentials=credentials) - response: CreateCommentResponse = client.try_create_comment( + response: CreateCommentResponse = await client.try_create_comment( issue_id=issue_id, comment=comment ) return response.comment.id, response.comment.body - def run( + async def run( self, input_data: Input, *, credentials: LinearCredentials, **kwargs ) -> BlockOutput: """Execute the comment creation""" try: - comment_id, comment_body = self.create_comment( + comment_id, comment_body = await self.create_comment( credentials=credentials, issue_id=input_data.issue_id, comment=input_data.comment, diff --git a/autogpt_platform/backend/backend/blocks/linear/issues.py b/autogpt_platform/backend/backend/blocks/linear/issues.py index f45e7fac0d..9f9d46d19a 100644 --- a/autogpt_platform/backend/backend/blocks/linear/issues.py +++ b/autogpt_platform/backend/backend/blocks/linear/issues.py @@ -67,7 +67,7 @@ class LinearCreateIssueBlock(Block): ) @staticmethod - def create_issue( + async def create_issue( credentials: LinearCredentials, team_name: str, title: str, @@ -76,15 +76,15 @@ class LinearCreateIssueBlock(Block): project_name: str | None = None, ) -> tuple[str, str]: client = LinearClient(credentials=credentials) - team_id = client.try_get_team_by_name(team_name=team_name) + team_id = await client.try_get_team_by_name(team_name=team_name) project_id: str | None = None if project_name: - projects = client.try_search_projects(term=project_name) + projects = await client.try_search_projects(term=project_name) if projects: project_id = projects[0].id else: raise LinearAPIException("Project not found", status_code=404) - response: CreateIssueResponse = client.try_create_issue( + response: CreateIssueResponse = await client.try_create_issue( team_id=team_id, title=title, description=description, @@ -93,12 +93,12 @@ class LinearCreateIssueBlock(Block): ) return response.issue.identifier, response.issue.title - def run( + async def run( self, input_data: Input, *, credentials: LinearCredentials, **kwargs ) -> BlockOutput: """Execute the issue creation""" try: - issue_id, issue_title = self.create_issue( + issue_id, issue_title = await self.create_issue( credentials=credentials, team_name=input_data.team_name, title=input_data.title, @@ -168,20 +168,22 @@ class LinearSearchIssuesBlock(Block): ) @staticmethod - def search_issues( + async def search_issues( credentials: LinearCredentials, term: str, ) -> list[Issue]: client = LinearClient(credentials=credentials) - response: list[Issue] = client.try_search_issues(term=term) + response: list[Issue] = await client.try_search_issues(term=term) return response - def run( + async def run( self, input_data: Input, *, credentials: LinearCredentials, **kwargs ) -> BlockOutput: """Execute the issue search""" try: - issues = self.search_issues(credentials=credentials, term=input_data.term) + issues = await self.search_issues( + credentials=credentials, term=input_data.term + ) yield "issues", issues except LinearAPIException as e: yield "error", str(e) diff --git a/autogpt_platform/backend/backend/blocks/linear/projects.py b/autogpt_platform/backend/backend/blocks/linear/projects.py index 695064a6a1..84f2b9ca53 100644 --- a/autogpt_platform/backend/backend/blocks/linear/projects.py +++ b/autogpt_platform/backend/backend/blocks/linear/projects.py @@ -69,20 +69,20 @@ class LinearSearchProjectsBlock(Block): ) @staticmethod - def search_projects( + async def search_projects( credentials: LinearCredentials, term: str, ) -> list[Project]: client = LinearClient(credentials=credentials) - response: list[Project] = client.try_search_projects(term=term) + response: list[Project] = await client.try_search_projects(term=term) return response - def run( + async def run( self, input_data: Input, *, credentials: LinearCredentials, **kwargs ) -> BlockOutput: """Execute the project search""" try: - projects = self.search_projects( + projects = await self.search_projects( credentials=credentials, term=input_data.term, ) diff --git a/autogpt_platform/backend/backend/blocks/llm.py b/autogpt_platform/backend/backend/blocks/llm.py index a1fedeec52..93f43c0690 100644 --- a/autogpt_platform/backend/backend/blocks/llm.py +++ b/autogpt_platform/backend/backend/blocks/llm.py @@ -3,14 +3,13 @@ import logging from abc import ABC from enum import Enum, EnumMeta from json import JSONDecodeError -from types import MappingProxyType from typing import Any, Iterable, List, Literal, NamedTuple, Optional import anthropic import ollama import openai from anthropic.types import ToolParam -from groq import Groq +from groq import AsyncGroq from pydantic import BaseModel, SecretStr from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema @@ -24,7 +23,6 @@ from backend.data.model import ( from backend.integrations.providers import ProviderName from backend.util import json from backend.util.logging import TruncatedLogger -from backend.util.settings import BehaveAs, Settings from backend.util.text import TextFormatter logger = TruncatedLogger(logging.getLogger(__name__), "[LLM-Block]") @@ -73,20 +71,7 @@ class ModelMetadata(NamedTuple): class LlmModelMeta(EnumMeta): - @property - def __members__(self) -> MappingProxyType: - if Settings().config.behave_as == BehaveAs.LOCAL: - members = super().__members__ - return MappingProxyType(members) - else: - removed_providers = ["ollama"] - existing_members = super().__members__ - members = { - name: member - for name, member in existing_members.items() - if LlmModel[name].provider not in removed_providers - } - return MappingProxyType(members) + pass class LlmModel(str, Enum, metaclass=LlmModelMeta): @@ -328,7 +313,7 @@ def estimate_token_count(prompt_messages: list[dict]) -> int: return int(estimated_tokens * 1.2) -def llm_call( +async def llm_call( credentials: APIKeyCredentials, llm_model: LlmModel, prompt: list[dict], @@ -370,7 +355,7 @@ def llm_call( if provider == "openai": tools_param = tools if tools else openai.NOT_GIVEN - oai_client = openai.OpenAI(api_key=credentials.api_key.get_secret_value()) + oai_client = openai.AsyncOpenAI(api_key=credentials.api_key.get_secret_value()) response_format = None if llm_model in [LlmModel.O1_MINI, LlmModel.O1_PREVIEW]: @@ -383,7 +368,7 @@ def llm_call( elif json_format: response_format = {"type": "json_object"} - response = oai_client.chat.completions.create( + response = await oai_client.chat.completions.create( model=llm_model.value, messages=prompt, # type: ignore response_format=response_format, # type: ignore @@ -439,9 +424,11 @@ def llm_call( messages.append({"role": p["role"], "content": p["content"]}) last_role = p["role"] - client = anthropic.Anthropic(api_key=credentials.api_key.get_secret_value()) + client = anthropic.AsyncAnthropic( + api_key=credentials.api_key.get_secret_value() + ) try: - resp = client.messages.create( + resp = await client.messages.create( model=llm_model.value, system=sysprompt, messages=messages, @@ -495,9 +482,9 @@ def llm_call( if tools: raise ValueError("Groq does not support tools.") - client = Groq(api_key=credentials.api_key.get_secret_value()) + client = AsyncGroq(api_key=credentials.api_key.get_secret_value()) response_format = {"type": "json_object"} if json_format else None - response = client.chat.completions.create( + response = await client.chat.completions.create( model=llm_model.value, messages=prompt, # type: ignore response_format=response_format, # type: ignore @@ -515,10 +502,10 @@ def llm_call( if tools: raise ValueError("Ollama does not support tools.") - client = ollama.Client(host=ollama_host) + client = ollama.AsyncClient(host=ollama_host) sys_messages = [p["content"] for p in prompt if p["role"] == "system"] usr_messages = [p["content"] for p in prompt if p["role"] != "system"] - response = client.generate( + response = await client.generate( model=llm_model.value, prompt=f"{sys_messages}\n\n{usr_messages}", stream=False, @@ -534,12 +521,12 @@ def llm_call( ) elif provider == "open_router": tools_param = tools if tools else openai.NOT_GIVEN - client = openai.OpenAI( + client = openai.AsyncOpenAI( base_url="https://openrouter.ai/api/v1", api_key=credentials.api_key.get_secret_value(), ) - response = client.chat.completions.create( + response = await client.chat.completions.create( extra_headers={ "HTTP-Referer": "https://agpt.co", "X-Title": "AutoGPT", @@ -581,12 +568,12 @@ def llm_call( ) elif provider == "llama_api": tools_param = tools if tools else openai.NOT_GIVEN - client = openai.OpenAI( + client = openai.AsyncOpenAI( base_url="https://api.llama.com/compat/v1/", api_key=credentials.api_key.get_secret_value(), ) - response = client.chat.completions.create( + response = await client.chat.completions.create( extra_headers={ "HTTP-Referer": "https://agpt.co", "X-Title": "AutoGPT", @@ -759,7 +746,7 @@ class AIStructuredResponseGeneratorBlock(AIBlockBase): }, ) - def llm_call( + async def llm_call( self, credentials: APIKeyCredentials, llm_model: LlmModel, @@ -774,7 +761,7 @@ class AIStructuredResponseGeneratorBlock(AIBlockBase): so that it can be mocked withing the block testing framework. """ self.prompt = prompt - return llm_call( + return await llm_call( credentials=credentials, llm_model=llm_model, prompt=prompt, @@ -784,7 +771,7 @@ class AIStructuredResponseGeneratorBlock(AIBlockBase): ollama_host=ollama_host, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: logger.debug(f"Calling LLM with input data: {input_data}") @@ -838,7 +825,7 @@ class AIStructuredResponseGeneratorBlock(AIBlockBase): for retry_count in range(input_data.retry): try: - llm_response = self.llm_call( + llm_response = await self.llm_call( credentials=credentials, llm_model=llm_model, prompt=prompt, @@ -978,17 +965,17 @@ class AITextGeneratorBlock(AIBlockBase): test_mock={"llm_call": lambda *args, **kwargs: "Response text"}, ) - def llm_call( + async def llm_call( self, input_data: AIStructuredResponseGeneratorBlock.Input, credentials: APIKeyCredentials, - ) -> str: + ) -> dict: block = AIStructuredResponseGeneratorBlock() - response = block.run_once(input_data, "response", credentials=credentials) + response = await block.run_once(input_data, "response", credentials=credentials) self.merge_llm_stats(block) return response["response"] - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: object_input_data = AIStructuredResponseGeneratorBlock.Input( @@ -998,7 +985,8 @@ class AITextGeneratorBlock(AIBlockBase): }, expected_format={}, ) - yield "response", self.llm_call(object_input_data, credentials) + response = await self.llm_call(object_input_data, credentials) + yield "response", response yield "prompt", self.prompt @@ -1080,23 +1068,27 @@ class AITextSummarizerBlock(AIBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: - for output_name, output_data in self._run(input_data, credentials): + async for output_name, output_data in self._run(input_data, credentials): yield output_name, output_data - def _run(self, input_data: Input, credentials: APIKeyCredentials) -> BlockOutput: + async def _run( + self, input_data: Input, credentials: APIKeyCredentials + ) -> BlockOutput: chunks = self._split_text( input_data.text, input_data.max_tokens, input_data.chunk_overlap ) summaries = [] for chunk in chunks: - chunk_summary = self._summarize_chunk(chunk, input_data, credentials) + chunk_summary = await self._summarize_chunk(chunk, input_data, credentials) summaries.append(chunk_summary) - final_summary = self._combine_summaries(summaries, input_data, credentials) + final_summary = await self._combine_summaries( + summaries, input_data, credentials + ) yield "summary", final_summary yield "prompt", self.prompt @@ -1112,22 +1104,22 @@ class AITextSummarizerBlock(AIBlockBase): return chunks - def llm_call( + async def llm_call( self, input_data: AIStructuredResponseGeneratorBlock.Input, credentials: APIKeyCredentials, ) -> dict: block = AIStructuredResponseGeneratorBlock() - response = block.run_once(input_data, "response", credentials=credentials) + response = await block.run_once(input_data, "response", credentials=credentials) self.merge_llm_stats(block) return response - def _summarize_chunk( + async def _summarize_chunk( self, chunk: str, input_data: Input, credentials: APIKeyCredentials ) -> str: prompt = f"Summarize the following text in a {input_data.style} form. Focus your summary on the topic of `{input_data.focus}` if present, otherwise just provide a general summary:\n\n```{chunk}```" - llm_response = self.llm_call( + llm_response = await self.llm_call( AIStructuredResponseGeneratorBlock.Input( prompt=prompt, credentials=input_data.credentials, @@ -1139,7 +1131,7 @@ class AITextSummarizerBlock(AIBlockBase): return llm_response["summary"] - def _combine_summaries( + async def _combine_summaries( self, summaries: list[str], input_data: Input, credentials: APIKeyCredentials ) -> str: combined_text = "\n\n".join(summaries) @@ -1147,7 +1139,7 @@ class AITextSummarizerBlock(AIBlockBase): if len(combined_text.split()) <= input_data.max_tokens: prompt = f"Provide a final summary of the following section summaries in a {input_data.style} form, focus your summary on the topic of `{input_data.focus}` if present:\n\n ```{combined_text}```\n\n Just respond with the final_summary in the format specified." - llm_response = self.llm_call( + llm_response = await self.llm_call( AIStructuredResponseGeneratorBlock.Input( prompt=prompt, credentials=input_data.credentials, @@ -1162,7 +1154,8 @@ class AITextSummarizerBlock(AIBlockBase): return llm_response["final_summary"] else: # If combined summaries are still too long, recursively summarize - return self._run( + block = AITextSummarizerBlock() + return await block.run_once( AITextSummarizerBlock.Input( text=combined_text, credentials=input_data.credentials, @@ -1170,10 +1163,9 @@ class AITextSummarizerBlock(AIBlockBase): max_tokens=input_data.max_tokens, chunk_overlap=input_data.chunk_overlap, ), + "summary", credentials=credentials, - ).send(None)[ - 1 - ] # Get the first yielded value + ) class AIConversationBlock(AIBlockBase): @@ -1244,20 +1236,20 @@ class AIConversationBlock(AIBlockBase): }, ) - def llm_call( + async def llm_call( self, input_data: AIStructuredResponseGeneratorBlock.Input, credentials: APIKeyCredentials, - ) -> str: + ) -> dict: block = AIStructuredResponseGeneratorBlock() - response = block.run_once(input_data, "response", credentials=credentials) + response = await block.run_once(input_data, "response", credentials=credentials) self.merge_llm_stats(block) - return response["response"] + return response - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: - response = self.llm_call( + response = await self.llm_call( AIStructuredResponseGeneratorBlock.Input( prompt=input_data.prompt, credentials=input_data.credentials, @@ -1269,7 +1261,6 @@ class AIConversationBlock(AIBlockBase): ), credentials=credentials, ) - yield "response", response yield "prompt", self.prompt @@ -1363,13 +1354,15 @@ class AIListGeneratorBlock(AIBlockBase): }, ) - def llm_call( + async def llm_call( self, input_data: AIStructuredResponseGeneratorBlock.Input, credentials: APIKeyCredentials, ) -> dict[str, str]: llm_block = AIStructuredResponseGeneratorBlock() - response = llm_block.run_once(input_data, "response", credentials=credentials) + response = await llm_block.run_once( + input_data, "response", credentials=credentials + ) self.merge_llm_stats(llm_block) return response @@ -1392,7 +1385,7 @@ class AIListGeneratorBlock(AIBlockBase): logger.error(f"Failed to convert string to list: {e}") raise ValueError("Invalid list format. Could not convert to list.") - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: logger.debug(f"Starting AIListGeneratorBlock.run with input data: {input_data}") @@ -1458,7 +1451,7 @@ class AIListGeneratorBlock(AIBlockBase): for attempt in range(input_data.max_retries): try: logger.debug("Calling LLM") - llm_response = self.llm_call( + llm_response = await self.llm_call( AIStructuredResponseGeneratorBlock.Input( sys_prompt=sys_prompt, prompt=prompt, diff --git a/autogpt_platform/backend/backend/blocks/maths.py b/autogpt_platform/backend/backend/blocks/maths.py index cb65de1c09..0559d9673d 100644 --- a/autogpt_platform/backend/backend/blocks/maths.py +++ b/autogpt_platform/backend/backend/blocks/maths.py @@ -52,7 +52,7 @@ class CalculatorBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: operation = input_data.operation a = input_data.a b = input_data.b @@ -107,7 +107,7 @@ class CountItemsBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: collection = input_data.collection try: diff --git a/autogpt_platform/backend/backend/blocks/media.py b/autogpt_platform/backend/backend/blocks/media.py index 6c9afcd10a..15a3d5d17e 100644 --- a/autogpt_platform/backend/backend/blocks/media.py +++ b/autogpt_platform/backend/backend/blocks/media.py @@ -39,7 +39,7 @@ class MediaDurationBlock(Block): output_schema=MediaDurationBlock.Output, ) - def run( + async def run( self, input_data: Input, *, @@ -47,7 +47,7 @@ class MediaDurationBlock(Block): **kwargs, ) -> BlockOutput: # 1) Store the input media locally - local_media_path = store_media_file( + local_media_path = await store_media_file( graph_exec_id=graph_exec_id, file=input_data.media_in, return_content=False, @@ -105,7 +105,7 @@ class LoopVideoBlock(Block): output_schema=LoopVideoBlock.Output, ) - def run( + async def run( self, input_data: Input, *, @@ -114,7 +114,7 @@ class LoopVideoBlock(Block): **kwargs, ) -> BlockOutput: # 1) Store the input video locally - local_video_path = store_media_file( + local_video_path = await store_media_file( graph_exec_id=graph_exec_id, file=input_data.video_in, return_content=False, @@ -146,7 +146,7 @@ class LoopVideoBlock(Block): looped_clip.write_videofile(output_abspath, codec="libx264", audio_codec="aac") # Return as data URI - video_out = store_media_file( + video_out = await store_media_file( graph_exec_id=graph_exec_id, file=output_filename, return_content=input_data.output_return_type == "data_uri", @@ -194,7 +194,7 @@ class AddAudioToVideoBlock(Block): output_schema=AddAudioToVideoBlock.Output, ) - def run( + async def run( self, input_data: Input, *, @@ -203,12 +203,12 @@ class AddAudioToVideoBlock(Block): **kwargs, ) -> BlockOutput: # 1) Store the inputs locally - local_video_path = store_media_file( + local_video_path = await store_media_file( graph_exec_id=graph_exec_id, file=input_data.video_in, return_content=False, ) - local_audio_path = store_media_file( + local_audio_path = await store_media_file( graph_exec_id=graph_exec_id, file=input_data.audio_in, return_content=False, @@ -236,7 +236,7 @@ class AddAudioToVideoBlock(Block): final_clip.write_videofile(output_abspath, codec="libx264", audio_codec="aac") # 5) Return either path or data URI - video_out = store_media_file( + video_out = await store_media_file( graph_exec_id=graph_exec_id, file=output_filename, return_content=input_data.output_return_type == "data_uri", diff --git a/autogpt_platform/backend/backend/blocks/medium.py b/autogpt_platform/backend/backend/blocks/medium.py index d68bed3bcf..a8964ca940 100644 --- a/autogpt_platform/backend/backend/blocks/medium.py +++ b/autogpt_platform/backend/backend/blocks/medium.py @@ -130,7 +130,7 @@ class PublishToMediumBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def create_post( + async def create_post( self, api_key: SecretStr, author_id, @@ -160,18 +160,17 @@ class PublishToMediumBlock(Block): "notifyFollowers": notify_followers, } - response = Requests().post( + response = await Requests().post( f"https://api.medium.com/v1/users/{author_id}/posts", headers=headers, json=data, ) - return response.json() - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: - response = self.create_post( + response = await self.create_post( credentials.api_key, input_data.author_id.get_secret_value(), input_data.title, diff --git a/autogpt_platform/backend/backend/blocks/mem0.py b/autogpt_platform/backend/backend/blocks/mem0.py index 64d7ca4bec..ad2c64f8f0 100644 --- a/autogpt_platform/backend/backend/blocks/mem0.py +++ b/autogpt_platform/backend/backend/blocks/mem0.py @@ -109,7 +109,7 @@ class AddMemoryBlock(Block, Mem0Base): test_mock={"_get_client": lambda credentials: MockMemoryClient()}, ) - def run( + async def run( self, input_data: Input, *, @@ -208,7 +208,7 @@ class SearchMemoryBlock(Block, Mem0Base): test_mock={"_get_client": lambda credentials: MockMemoryClient()}, ) - def run( + async def run( self, input_data: Input, *, @@ -288,7 +288,7 @@ class GetAllMemoriesBlock(Block, Mem0Base): test_mock={"_get_client": lambda credentials: MockMemoryClient()}, ) - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py b/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py index 3792cdf53f..f5205f6e72 100644 --- a/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py +++ b/autogpt_platform/backend/backend/blocks/nvidia/deepfake.py @@ -40,7 +40,7 @@ class NvidiaDeepfakeDetectBlock(Block): output_schema=NvidiaDeepfakeDetectBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: NvidiaCredentials, **kwargs ) -> BlockOutput: url = "https://ai.api.nvidia.com/v1/cv/hive/deepfake-image-detection" @@ -59,8 +59,7 @@ class NvidiaDeepfakeDetectBlock(Block): } try: - response = Requests().post(url, headers=headers, json=payload) - response.raise_for_status() + response = await Requests().post(url, headers=headers, json=payload) data = response.json() result = data.get("data", [{}])[0] diff --git a/autogpt_platform/backend/backend/blocks/pinecone.py b/autogpt_platform/backend/backend/blocks/pinecone.py index 6f8a83a24c..529940b7cf 100644 --- a/autogpt_platform/backend/backend/blocks/pinecone.py +++ b/autogpt_platform/backend/backend/blocks/pinecone.py @@ -56,7 +56,7 @@ class PineconeInitBlock(Block): output_schema=PineconeInitBlock.Output, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: pc = Pinecone(api_key=credentials.api_key.get_secret_value()) @@ -117,7 +117,7 @@ class PineconeQueryBlock(Block): output_schema=PineconeQueryBlock.Output, ) - def run( + async def run( self, input_data: Input, *, @@ -195,7 +195,7 @@ class PineconeInsertBlock(Block): output_schema=PineconeInsertBlock.Output, ) - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/reddit.py b/autogpt_platform/backend/backend/blocks/reddit.py index b3dca4ca74..c88407f6d1 100644 --- a/autogpt_platform/backend/backend/blocks/reddit.py +++ b/autogpt_platform/backend/backend/blocks/reddit.py @@ -146,7 +146,7 @@ class GetRedditPostsBlock(Block): subreddit = client.subreddit(input_data.subreddit) return subreddit.new(limit=input_data.post_limit or 10) - def run( + async def run( self, input_data: Input, *, credentials: RedditCredentials, **kwargs ) -> BlockOutput: current_time = datetime.now(tz=timezone.utc) @@ -207,7 +207,7 @@ class PostRedditCommentBlock(Block): raise ValueError("Failed to post comment.") return new_comment.id - def run( + async def run( self, input_data: Input, *, credentials: RedditCredentials, **kwargs ) -> BlockOutput: yield "comment_id", self.reply_post(credentials, input_data.data) diff --git a/autogpt_platform/backend/backend/blocks/replicate_flux_advanced.py b/autogpt_platform/backend/backend/blocks/replicate_flux_advanced.py index e75e0ad1cf..30744a28f7 100644 --- a/autogpt_platform/backend/backend/blocks/replicate_flux_advanced.py +++ b/autogpt_platform/backend/backend/blocks/replicate_flux_advanced.py @@ -159,7 +159,7 @@ class ReplicateFluxAdvancedModelBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: # If the seed is not provided, generate a random seed @@ -168,7 +168,7 @@ class ReplicateFluxAdvancedModelBlock(Block): seed = int.from_bytes(os.urandom(4), "big") # Run the model using the provided inputs - result = self.run_model( + result = await self.run_model( api_key=credentials.api_key, model_name=input_data.replicate_model_name.api_name, prompt=input_data.prompt, @@ -183,7 +183,7 @@ class ReplicateFluxAdvancedModelBlock(Block): ) yield "result", result - def run_model( + async def run_model( self, api_key: SecretStr, model_name, @@ -201,7 +201,7 @@ class ReplicateFluxAdvancedModelBlock(Block): client = ReplicateClient(api_token=api_key.get_secret_value()) # Run the model with additional parameters - output: FileOutput | list[FileOutput] = client.run( # type: ignore This is because they changed the return type, and didn't update the type hint! It should be overloaded depending on the value of `use_file_output` to `FileOutput | list[FileOutput]` but it's `Any | Iterator[Any]` + output: FileOutput | list[FileOutput] = await client.async_run( # type: ignore This is because they changed the return type, and didn't update the type hint! It should be overloaded depending on the value of `use_file_output` to `FileOutput | list[FileOutput]` but it's `Any | Iterator[Any]` f"{model_name}", input={ "prompt": prompt, diff --git a/autogpt_platform/backend/backend/blocks/rss.py b/autogpt_platform/backend/backend/blocks/rss.py index 9a5a17ebee..e3f5da3139 100644 --- a/autogpt_platform/backend/backend/blocks/rss.py +++ b/autogpt_platform/backend/backend/blocks/rss.py @@ -1,4 +1,4 @@ -import time +import asyncio from datetime import datetime, timedelta, timezone from typing import Any @@ -87,7 +87,7 @@ class ReadRSSFeedBlock(Block): def parse_feed(url: str) -> dict[str, Any]: return feedparser.parse(url) # type: ignore - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: keep_going = True start_time = datetime.now(timezone.utc) - timedelta( minutes=input_data.time_period @@ -113,4 +113,4 @@ class ReadRSSFeedBlock(Block): ), ) - time.sleep(input_data.polling_rate) + await asyncio.sleep(input_data.polling_rate) diff --git a/autogpt_platform/backend/backend/blocks/sampling.py b/autogpt_platform/backend/backend/blocks/sampling.py index d2257db06f..ffd509ff75 100644 --- a/autogpt_platform/backend/backend/blocks/sampling.py +++ b/autogpt_platform/backend/backend/blocks/sampling.py @@ -93,7 +93,7 @@ class DataSamplingBlock(Block): ) self.accumulated_data = [] - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: if input_data.accumulate: if isinstance(input_data.data, dict): self.accumulated_data.append(input_data.data) diff --git a/autogpt_platform/backend/backend/blocks/screenshotone.py b/autogpt_platform/backend/backend/blocks/screenshotone.py index 5620b8119b..7dd026a5c5 100644 --- a/autogpt_platform/backend/backend/blocks/screenshotone.py +++ b/autogpt_platform/backend/backend/blocks/screenshotone.py @@ -105,7 +105,7 @@ class ScreenshotWebPageBlock(Block): ) @staticmethod - def take_screenshot( + async def take_screenshot( credentials: APIKeyCredentials, graph_exec_id: str, url: str, @@ -136,26 +136,28 @@ class ScreenshotWebPageBlock(Block): "cache": str(cache).lower(), } + # Make the API request # Use header-based authentication instead of query parameter headers = { "X-Access-Key": credentials.api_key.get_secret_value(), } - response = api.get( + response = await api.get( "https://api.screenshotone.com/take", params=params, headers=headers ) + content = response.content return { - "image": store_media_file( + "image": await store_media_file( graph_exec_id=graph_exec_id, file=MediaFileType( - f"data:image/{format.value};base64,{b64encode(response.content).decode('utf-8')}" + f"data:image/{format.value};base64,{b64encode(content).decode('utf-8')}" ), return_content=True, ) } - def run( + async def run( self, input_data: Input, *, @@ -164,7 +166,7 @@ class ScreenshotWebPageBlock(Block): **kwargs, ) -> BlockOutput: try: - screenshot_data = self.take_screenshot( + screenshot_data = await self.take_screenshot( credentials=credentials, graph_exec_id=graph_exec_id, url=input_data.url, diff --git a/autogpt_platform/backend/backend/blocks/search.py b/autogpt_platform/backend/backend/blocks/search.py index 633ad31091..51eadf215e 100644 --- a/autogpt_platform/backend/backend/blocks/search.py +++ b/autogpt_platform/backend/backend/blocks/search.py @@ -36,10 +36,10 @@ class GetWikipediaSummaryBlock(Block, GetRequest): test_mock={"get_request": lambda url, json: {"extract": "summary content"}}, ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: topic = input_data.topic url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{topic}" - response = self.get_request(url, json=True) + response = await self.get_request(url, json=True) if "extract" not in response: raise RuntimeError(f"Unable to parse Wikipedia response: {response}") yield "summary", response["extract"] @@ -113,14 +113,14 @@ class GetWeatherInformationBlock(Block, GetRequest): test_credentials=TEST_CREDENTIALS, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: units = "metric" if input_data.use_celsius else "imperial" api_key = credentials.api_key location = input_data.location url = f"http://api.openweathermap.org/data/2.5/weather?q={quote(location)}&appid={api_key}&units={units}" - weather_data = self.get_request(url, json=True) + weather_data = await self.get_request(url, json=True) if "main" in weather_data and "weather" in weather_data: yield "temperature", str(weather_data["main"]["temp"]) diff --git a/autogpt_platform/backend/backend/blocks/slant3d/base.py b/autogpt_platform/backend/backend/blocks/slant3d/base.py index 6919e5ec49..e368a1b451 100644 --- a/autogpt_platform/backend/backend/blocks/slant3d/base.py +++ b/autogpt_platform/backend/backend/blocks/slant3d/base.py @@ -14,20 +14,25 @@ class Slant3DBlockBase(Block): def _get_headers(self, api_key: str) -> Dict[str, str]: return {"api-key": api_key, "Content-Type": "application/json"} - def _make_request(self, method: str, endpoint: str, api_key: str, **kwargs) -> Dict: + async def _make_request( + self, method: str, endpoint: str, api_key: str, **kwargs + ) -> Dict: url = f"{self.BASE_URL}/{endpoint}" - response = Requests().request( + response = await Requests().request( method=method, url=url, headers=self._get_headers(api_key), **kwargs ) + resp = response.json() if not response.ok: - error_msg = response.json().get("error", "Unknown error") + error_msg = resp.get("error", "Unknown error") raise RuntimeError(f"API request failed: {error_msg}") - return response.json() + return resp - def _check_valid_color(self, profile: Profile, color: Color, api_key: str) -> str: - response = self._make_request( + async def _check_valid_color( + self, profile: Profile, color: Color, api_key: str + ) -> str: + response = await self._make_request( "GET", "filament", api_key, @@ -48,10 +53,12 @@ Valid colors for {profile.value} are: ) return color_tag - def _convert_to_color(self, profile: Profile, color: Color, api_key: str) -> str: - return self._check_valid_color(profile, color, api_key) + async def _convert_to_color( + self, profile: Profile, color: Color, api_key: str + ) -> str: + return await self._check_valid_color(profile, color, api_key) - def _format_order_data( + async def _format_order_data( self, customer: CustomerDetails, order_number: str, @@ -61,6 +68,7 @@ Valid colors for {profile.value} are: """Helper function to format order data for API requests""" orders = [] for item in items: + color_tag = await self._convert_to_color(item.profile, item.color, api_key) order_data = { "email": customer.email, "phone": customer.phone, @@ -85,9 +93,7 @@ Valid colors for {profile.value} are: "order_quantity": item.quantity, "order_image_url": "", "order_sku": "NOT_USED", - "order_item_color": self._convert_to_color( - item.profile, item.color, api_key - ), + "order_item_color": color_tag, "profile": item.profile.value, } orders.append(order_data) diff --git a/autogpt_platform/backend/backend/blocks/slant3d/filament.py b/autogpt_platform/backend/backend/blocks/slant3d/filament.py index c232c2ba8d..0659a45561 100644 --- a/autogpt_platform/backend/backend/blocks/slant3d/filament.py +++ b/autogpt_platform/backend/backend/blocks/slant3d/filament.py @@ -72,11 +72,11 @@ class Slant3DFilamentBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - result = self._make_request( + result = await self._make_request( "GET", "filament", credentials.api_key.get_secret_value() ) yield "filaments", result["filaments"] diff --git a/autogpt_platform/backend/backend/blocks/slant3d/order.py b/autogpt_platform/backend/backend/blocks/slant3d/order.py index 6c9f4ffec3..f1cab18d27 100644 --- a/autogpt_platform/backend/backend/blocks/slant3d/order.py +++ b/autogpt_platform/backend/backend/blocks/slant3d/order.py @@ -4,7 +4,6 @@ from typing import List from backend.data.block import BlockOutput, BlockSchema from backend.data.model import APIKeyCredentials, SchemaField from backend.util import settings -from backend.util.request import req from backend.util.settings import BehaveAs from ._api import ( @@ -75,17 +74,17 @@ class Slant3DCreateOrderBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - order_data = self._format_order_data( + order_data = await self._format_order_data( input_data.customer, input_data.order_number, input_data.items, credentials.api_key.get_secret_value(), ) - result = self._make_request( + result = await self._make_request( "POST", "order", credentials.api_key.get_secret_value(), json=order_data ) yield "order_id", result["orderId"] @@ -161,28 +160,24 @@ class Slant3DEstimateOrderBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: - order_data = self._format_order_data( + order_data = await self._format_order_data( input_data.customer, input_data.order_number, input_data.items, credentials.api_key.get_secret_value(), ) - try: - result = self._make_request( - "POST", - "order/estimate", - credentials.api_key.get_secret_value(), - json=order_data, - ) - yield "total_price", result["totalPrice"] - yield "shipping_cost", result["shippingCost"] - yield "printing_cost", result["printingCost"] - except req.HTTPError as e: - yield "error", str(f"Error estimating order: {e} {e.response.text}") - raise + result = await self._make_request( + "POST", + "order/estimate", + credentials.api_key.get_secret_value(), + json=order_data, + ) + yield "total_price", result["totalPrice"] + yield "shipping_cost", result["shippingCost"] + yield "printing_cost", result["printingCost"] class Slant3DEstimateShippingBlock(Slant3DBlockBase): @@ -245,17 +240,17 @@ class Slant3DEstimateShippingBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - order_data = self._format_order_data( + order_data = await self._format_order_data( input_data.customer, input_data.order_number, input_data.items, credentials.api_key.get_secret_value(), ) - result = self._make_request( + result = await self._make_request( "POST", "order/estimateShipping", credentials.api_key.get_secret_value(), @@ -311,11 +306,11 @@ class Slant3DGetOrdersBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - result = self._make_request( + result = await self._make_request( "GET", "order", credentials.api_key.get_secret_value() ) yield "orders", [str(order["orderId"]) for order in result["ordersData"]] @@ -358,11 +353,11 @@ class Slant3DTrackingBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - result = self._make_request( + result = await self._make_request( "GET", f"order/{input_data.order_id}/get-tracking", credentials.api_key.get_secret_value(), @@ -402,11 +397,11 @@ class Slant3DCancelOrderBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - result = self._make_request( + result = await self._make_request( "DELETE", f"order/{input_data.order_id}", credentials.api_key.get_secret_value(), diff --git a/autogpt_platform/backend/backend/blocks/slant3d/slicing.py b/autogpt_platform/backend/backend/blocks/slant3d/slicing.py index 1b868efc9e..6abe3045ac 100644 --- a/autogpt_platform/backend/backend/blocks/slant3d/slicing.py +++ b/autogpt_platform/backend/backend/blocks/slant3d/slicing.py @@ -44,11 +44,11 @@ class Slant3DSlicerBlock(Slant3DBlockBase): }, ) - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: try: - result = self._make_request( + result = await self._make_request( "POST", "slicer", credentials.api_key.get_secret_value(), diff --git a/autogpt_platform/backend/backend/blocks/slant3d/webhook.py b/autogpt_platform/backend/backend/blocks/slant3d/webhook.py index 866a1c9afe..8a690cf1ad 100644 --- a/autogpt_platform/backend/backend/blocks/slant3d/webhook.py +++ b/autogpt_platform/backend/backend/blocks/slant3d/webhook.py @@ -37,7 +37,7 @@ class Slant3DTriggerBase: description="Error message if payload processing failed" ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "payload", input_data.payload yield "order_id", input_data.payload["orderId"] @@ -117,8 +117,9 @@ class Slant3DOrderWebhookBlock(Slant3DTriggerBase, Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: # type: ignore - yield from super().run(input_data, **kwargs) + async def run(self, input_data: Input, **kwargs) -> BlockOutput: # type: ignore + async for name, value in super().run(input_data, **kwargs): + yield name, value # Extract and normalize values from the payload yield "status", input_data.payload["status"] diff --git a/autogpt_platform/backend/backend/blocks/smart_decision_maker.py b/autogpt_platform/backend/backend/blocks/smart_decision_maker.py index dc45cf0fbb..d8405ca2ca 100644 --- a/autogpt_platform/backend/backend/blocks/smart_decision_maker.py +++ b/autogpt_platform/backend/backend/blocks/smart_decision_maker.py @@ -417,7 +417,7 @@ class SmartDecisionMakerBlock(Block): return return_tool_functions - def run( + async def run( self, input_data: Input, *, @@ -487,7 +487,7 @@ class SmartDecisionMakerBlock(Block): ): prompt.append({"role": "user", "content": prefix + input_data.prompt}) - response = llm.llm_call( + response = await llm.llm_call( credentials=credentials, llm_model=input_data.model, prompt=prompt, diff --git a/autogpt_platform/backend/backend/blocks/smartlead/_api.py b/autogpt_platform/backend/backend/blocks/smartlead/_api.py index 8caa266c2c..cff1c63b72 100644 --- a/autogpt_platform/backend/backend/blocks/smartlead/_api.py +++ b/autogpt_platform/backend/backend/blocks/smartlead/_api.py @@ -27,9 +27,11 @@ class SmartLeadClient: def _handle_error(self, e: Exception) -> str: return e.__str__().replace(self.api_key, "API KEY") - def create_campaign(self, request: CreateCampaignRequest) -> CreateCampaignResponse: + async def create_campaign( + self, request: CreateCampaignRequest + ) -> CreateCampaignResponse: try: - response = self.requests.post( + response = await self.requests.post( self._add_auth_to_url(f"{self.API_URL}/campaigns/create"), json=request.model_dump(), ) @@ -40,11 +42,11 @@ class SmartLeadClient: except Exception as e: raise ValueError(f"Failed to create campaign: {self._handle_error(e)}") - def add_leads_to_campaign( + async def add_leads_to_campaign( self, request: AddLeadsRequest ) -> AddLeadsToCampaignResponse: try: - response = self.requests.post( + response = await self.requests.post( self._add_auth_to_url( f"{self.API_URL}/campaigns/{request.campaign_id}/leads" ), @@ -64,7 +66,7 @@ class SmartLeadClient: f"Failed to add leads to campaign: {self._handle_error(e)}" ) - def save_campaign_sequences( + async def save_campaign_sequences( self, campaign_id: int, request: SaveSequencesRequest ) -> SaveSequencesResponse: """ @@ -84,13 +86,13 @@ class SmartLeadClient: - MANUAL_PERCENTAGE: Requires variant_distribution_percentage in seq_variants """ try: - response = self.requests.post( + response = await self.requests.post( self._add_auth_to_url( f"{self.API_URL}/campaigns/{campaign_id}/sequences" ), json=request.model_dump(exclude_none=True), ) - return SaveSequencesResponse(**response.json()) + return SaveSequencesResponse(**(response.json())) except Exception as e: raise ValueError( f"Failed to save campaign sequences: {e.__str__().replace(self.api_key, 'API KEY')}" diff --git a/autogpt_platform/backend/backend/blocks/smartlead/campaign.py b/autogpt_platform/backend/backend/blocks/smartlead/campaign.py index 3b4ef95749..0e6c72416b 100644 --- a/autogpt_platform/backend/backend/blocks/smartlead/campaign.py +++ b/autogpt_platform/backend/backend/blocks/smartlead/campaign.py @@ -80,20 +80,20 @@ class CreateCampaignBlock(Block): ) @staticmethod - def create_campaign( + async def create_campaign( name: str, credentials: SmartLeadCredentials ) -> CreateCampaignResponse: client = SmartLeadClient(credentials.api_key.get_secret_value()) - return client.create_campaign(CreateCampaignRequest(name=name)) + return await client.create_campaign(CreateCampaignRequest(name=name)) - def run( + async def run( self, input_data: Input, *, credentials: SmartLeadCredentials, **kwargs, ) -> BlockOutput: - response = self.create_campaign(input_data.name, credentials) + response = await self.create_campaign(input_data.name, credentials) yield "id", response.id yield "name", response.name @@ -193,11 +193,11 @@ class AddLeadToCampaignBlock(Block): ) @staticmethod - def add_leads_to_campaign( + async def add_leads_to_campaign( campaign_id: int, lead_list: list[LeadInput], credentials: SmartLeadCredentials ) -> AddLeadsToCampaignResponse: client = SmartLeadClient(credentials.api_key.get_secret_value()) - return client.add_leads_to_campaign( + return await client.add_leads_to_campaign( AddLeadsRequest( campaign_id=campaign_id, lead_list=lead_list, @@ -210,14 +210,14 @@ class AddLeadToCampaignBlock(Block): ), ) - def run( + async def run( self, input_data: Input, *, credentials: SmartLeadCredentials, **kwargs, ) -> BlockOutput: - response = self.add_leads_to_campaign( + response = await self.add_leads_to_campaign( input_data.campaign_id, input_data.lead_list, credentials ) @@ -297,22 +297,22 @@ class SaveCampaignSequencesBlock(Block): ) @staticmethod - def save_campaign_sequences( + async def save_campaign_sequences( campaign_id: int, sequences: list[Sequence], credentials: SmartLeadCredentials ) -> SaveSequencesResponse: client = SmartLeadClient(credentials.api_key.get_secret_value()) - return client.save_campaign_sequences( + return await client.save_campaign_sequences( campaign_id=campaign_id, request=SaveSequencesRequest(sequences=sequences) ) - def run( + async def run( self, input_data: Input, *, credentials: SmartLeadCredentials, **kwargs, ) -> BlockOutput: - response = self.save_campaign_sequences( + response = await self.save_campaign_sequences( input_data.campaign_id, input_data.sequences, credentials ) diff --git a/autogpt_platform/backend/backend/blocks/talking_head.py b/autogpt_platform/backend/backend/blocks/talking_head.py index b57a9b0da6..3861cb7752 100644 --- a/autogpt_platform/backend/backend/blocks/talking_head.py +++ b/autogpt_platform/backend/backend/blocks/talking_head.py @@ -1,4 +1,4 @@ -import time +import asyncio from typing import Literal from pydantic import SecretStr @@ -11,7 +11,7 @@ from backend.data.model import ( SchemaField, ) from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests TEST_CREDENTIALS = APIKeyCredentials( id="01234567-89ab-cdef-0123-456789abcdef", @@ -113,26 +113,26 @@ class CreateTalkingAvatarVideoBlock(Block): test_credentials=TEST_CREDENTIALS, ) - def create_clip(self, api_key: SecretStr, payload: dict) -> dict: + async def create_clip(self, api_key: SecretStr, payload: dict) -> dict: url = "https://api.d-id.com/clips" headers = { "accept": "application/json", "content-type": "application/json", "authorization": f"Basic {api_key.get_secret_value()}", } - response = requests.post(url, json=payload, headers=headers) + response = await Requests().post(url, json=payload, headers=headers) return response.json() - def get_clip_status(self, api_key: SecretStr, clip_id: str) -> dict: + async def get_clip_status(self, api_key: SecretStr, clip_id: str) -> dict: url = f"https://api.d-id.com/clips/{clip_id}" headers = { "accept": "application/json", "authorization": f"Basic {api_key.get_secret_value()}", } - response = requests.get(url, headers=headers) + response = await Requests().get(url, headers=headers) return response.json() - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: # Create the clip @@ -153,12 +153,12 @@ class CreateTalkingAvatarVideoBlock(Block): "driver_id": input_data.driver_id, } - response = self.create_clip(credentials.api_key, payload) + response = await self.create_clip(credentials.api_key, payload) clip_id = response["id"] # Poll for clip status for _ in range(input_data.max_polling_attempts): - status_response = self.get_clip_status(credentials.api_key, clip_id) + status_response = await self.get_clip_status(credentials.api_key, clip_id) if status_response["status"] == "done": yield "video_url", status_response["result_url"] return @@ -167,6 +167,6 @@ class CreateTalkingAvatarVideoBlock(Block): f"Clip creation failed: {status_response.get('error', 'Unknown error')}" ) - time.sleep(input_data.polling_interval) + await asyncio.sleep(input_data.polling_interval) raise TimeoutError("Clip creation timed out") diff --git a/autogpt_platform/backend/backend/blocks/text.py b/autogpt_platform/backend/backend/blocks/text.py index 21351bbbd6..f4357a468c 100644 --- a/autogpt_platform/backend/backend/blocks/text.py +++ b/autogpt_platform/backend/backend/blocks/text.py @@ -43,7 +43,7 @@ class MatchTextPatternBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: output = input_data.data or input_data.text flags = 0 if not input_data.case_sensitive: @@ -133,7 +133,7 @@ class ExtractTextInformationBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: flags = 0 if not input_data.case_sensitive: flags = flags | re.IGNORECASE @@ -201,7 +201,7 @@ class FillTextTemplateBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "output", formatter.format_string(input_data.format, input_data.values) @@ -232,7 +232,7 @@ class CombineTextsBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: combined_text = input_data.delimiter.join(input_data.input) yield "output", combined_text @@ -267,7 +267,7 @@ class TextSplitBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: if len(input_data.text) == 0: yield "texts", [] else: @@ -301,5 +301,5 @@ class TextReplaceBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: yield "output", input_data.text.replace(input_data.old, input_data.new) diff --git a/autogpt_platform/backend/backend/blocks/text_to_speech_block.py b/autogpt_platform/backend/backend/blocks/text_to_speech_block.py index 989dc54e12..f0b7c107de 100644 --- a/autogpt_platform/backend/backend/blocks/text_to_speech_block.py +++ b/autogpt_platform/backend/backend/blocks/text_to_speech_block.py @@ -10,7 +10,7 @@ from backend.data.model import ( SchemaField, ) from backend.integrations.providers import ProviderName -from backend.util.request import requests +from backend.util.request import Requests TEST_CREDENTIALS = APIKeyCredentials( id="01234567-89ab-cdef-0123-456789abcdef", @@ -71,7 +71,7 @@ class UnrealTextToSpeechBlock(Block): ) @staticmethod - def call_unreal_speech_api( + async def call_unreal_speech_api( api_key: SecretStr, text: str, voice_id: str ) -> dict[str, Any]: url = "https://api.v7.unrealspeech.com/speech" @@ -88,13 +88,13 @@ class UnrealTextToSpeechBlock(Block): "TimestampType": "sentence", } - response = requests.post(url, headers=headers, json=data) + response = await Requests().post(url, headers=headers, json=data) return response.json() - def run( + async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) -> BlockOutput: - api_response = self.call_unreal_speech_api( + api_response = await self.call_unreal_speech_api( credentials.api_key, input_data.text, input_data.voice_id, diff --git a/autogpt_platform/backend/backend/blocks/time_blocks.py b/autogpt_platform/backend/backend/blocks/time_blocks.py index adeeb3bee0..05d8e3699f 100644 --- a/autogpt_platform/backend/backend/blocks/time_blocks.py +++ b/autogpt_platform/backend/backend/blocks/time_blocks.py @@ -1,3 +1,4 @@ +import asyncio import time from datetime import datetime, timedelta from typing import Any, Union @@ -37,7 +38,7 @@ class GetCurrentTimeBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: current_time = time.strftime(input_data.format) yield "time", current_time @@ -87,7 +88,7 @@ class GetCurrentDateBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: try: offset = int(input_data.offset) except ValueError: @@ -132,7 +133,7 @@ class GetCurrentDateAndTimeBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: current_date_time = time.strftime(input_data.format) yield "date_time", current_date_time @@ -183,7 +184,7 @@ class CountdownTimerBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: seconds = int(input_data.seconds) minutes = int(input_data.minutes) hours = int(input_data.hours) @@ -192,5 +193,6 @@ class CountdownTimerBlock(Block): total_seconds = seconds + minutes * 60 + hours * 3600 + days * 86400 for _ in range(input_data.repeat): - time.sleep(total_seconds) + if total_seconds > 0: + await asyncio.sleep(total_seconds) yield "output_message", input_data.input_message diff --git a/autogpt_platform/backend/backend/blocks/todoist/comments.py b/autogpt_platform/backend/backend/blocks/todoist/comments.py index 210aa504b3..703afb696f 100644 --- a/autogpt_platform/backend/backend/blocks/todoist/comments.py +++ b/autogpt_platform/backend/backend/blocks/todoist/comments.py @@ -108,7 +108,7 @@ class TodoistCreateCommentBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -215,7 +215,7 @@ class TodoistGetCommentsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -307,7 +307,7 @@ class TodoistGetCommentBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -371,7 +371,7 @@ class TodoistUpdateCommentBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -429,7 +429,7 @@ class TodoistDeleteCommentBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/todoist/labels.py b/autogpt_platform/backend/backend/blocks/todoist/labels.py index fc1c381a42..4700ebb6c0 100644 --- a/autogpt_platform/backend/backend/blocks/todoist/labels.py +++ b/autogpt_platform/backend/backend/blocks/todoist/labels.py @@ -80,7 +80,7 @@ class TodoistCreateLabelBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -174,7 +174,7 @@ class TodoistListLabelsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -248,7 +248,7 @@ class TodoistGetLabelBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -321,7 +321,7 @@ class TodoistUpdateLabelBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -389,7 +389,7 @@ class TodoistDeleteLabelBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -444,7 +444,7 @@ class TodoistGetSharedLabelsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -499,7 +499,7 @@ class TodoistRenameSharedLabelsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -551,7 +551,7 @@ class TodoistRemoveSharedLabelsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/todoist/projects.py b/autogpt_platform/backend/backend/blocks/todoist/projects.py index 6955e0c136..33ad7950fa 100644 --- a/autogpt_platform/backend/backend/blocks/todoist/projects.py +++ b/autogpt_platform/backend/backend/blocks/todoist/projects.py @@ -95,7 +95,7 @@ class TodoistListProjectsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -185,7 +185,7 @@ class TodoistCreateProjectBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -277,7 +277,7 @@ class TodoistGetProjectBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -375,7 +375,7 @@ class TodoistUpdateProjectBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -438,7 +438,7 @@ class TodoistDeleteProjectBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -548,7 +548,7 @@ class TodoistListCollaboratorsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/todoist/sections.py b/autogpt_platform/backend/backend/blocks/todoist/sections.py index fd9273c0c3..764f7e166e 100644 --- a/autogpt_platform/backend/backend/blocks/todoist/sections.py +++ b/autogpt_platform/backend/backend/blocks/todoist/sections.py @@ -96,7 +96,7 @@ class TodoistListSectionsBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -166,7 +166,7 @@ class TodoistListSectionsBlock(Block): # except Exception as e: # raise e -# def run( +# async def run( # self, # input_data: Input, # *, @@ -238,7 +238,7 @@ class TodoistGetSectionBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -295,7 +295,7 @@ class TodoistDeleteSectionBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/todoist/tasks.py b/autogpt_platform/backend/backend/blocks/todoist/tasks.py index 67786efe11..d50124a9ef 100644 --- a/autogpt_platform/backend/backend/blocks/todoist/tasks.py +++ b/autogpt_platform/backend/backend/blocks/todoist/tasks.py @@ -130,7 +130,7 @@ class TodoistCreateTaskBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -261,7 +261,7 @@ class TodoistGetTasksBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -345,7 +345,7 @@ class TodoistGetTaskBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -452,7 +452,7 @@ class TodoistUpdateTaskBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -539,7 +539,7 @@ class TodoistCloseTaskBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -592,7 +592,7 @@ class TodoistReopenTaskBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, @@ -645,7 +645,7 @@ class TodoistDeleteTaskBlock(Block): except Exception as e: raise e - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/direct_message/direct_message_lookup.py b/autogpt_platform/backend/backend/blocks/twitter/direct_message/direct_message_lookup.py index 14aee69379..99c5bcab79 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/direct_message/direct_message_lookup.py +++ b/autogpt_platform/backend/backend/blocks/twitter/direct_message/direct_message_lookup.py @@ -162,7 +162,7 @@ # except tweepy.TweepyException: # raise -# def run( +# async def run( # self, # input_data: Input, # *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/direct_message/manage_direct_message.py b/autogpt_platform/backend/backend/blocks/twitter/direct_message/manage_direct_message.py index caeb470bf6..19fdb2819f 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/direct_message/manage_direct_message.py +++ b/autogpt_platform/backend/backend/blocks/twitter/direct_message/manage_direct_message.py @@ -122,7 +122,7 @@ # print(f"Unexpected error: {str(e)}") # raise -# def run( +# async def run( # self, # input_data: Input, # *, @@ -239,7 +239,7 @@ # print(f"Unexpected error: {str(e)}") # raise -# def run( +# async def run( # self, # input_data: Input, # *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/lists/list_follows.py b/autogpt_platform/backend/backend/blocks/twitter/lists/list_follows.py index 10722ce146..62c6c05f0c 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/lists/list_follows.py +++ b/autogpt_platform/backend/backend/blocks/twitter/lists/list_follows.py @@ -68,7 +68,7 @@ class TwitterUnfollowListBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -131,7 +131,7 @@ class TwitterFollowListBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -276,7 +276,7 @@ class TwitterFollowListBlock(Block): # except tweepy.TweepyException: # raise -# def run( +# async def run( # self, # input_data: Input, # *, @@ -438,7 +438,7 @@ class TwitterFollowListBlock(Block): # except tweepy.TweepyException: # raise -# def run( +# async def run( # self, # input_data: Input, # *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/lists/list_lookup.py b/autogpt_platform/backend/backend/blocks/twitter/lists/list_lookup.py index 5860b6e165..6dbaf2b23d 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/lists/list_lookup.py +++ b/autogpt_platform/backend/backend/blocks/twitter/lists/list_lookup.py @@ -140,7 +140,7 @@ class TwitterGetListBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -312,7 +312,7 @@ class TwitterGetOwnedListsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/lists/list_members.py b/autogpt_platform/backend/backend/blocks/twitter/lists/list_members.py index 8ad5125c20..9bcd8f15a2 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/lists/list_members.py +++ b/autogpt_platform/backend/backend/blocks/twitter/lists/list_members.py @@ -90,7 +90,7 @@ class TwitterRemoveListMemberBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -164,7 +164,7 @@ class TwitterAddListMemberBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -327,7 +327,7 @@ class TwitterGetListMembersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -493,7 +493,7 @@ class TwitterGetListMembershipsBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/lists/list_tweets_lookup.py b/autogpt_platform/backend/backend/blocks/twitter/lists/list_tweets_lookup.py index 5faa855019..bda25e1d2d 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/lists/list_tweets_lookup.py +++ b/autogpt_platform/backend/backend/blocks/twitter/lists/list_tweets_lookup.py @@ -178,7 +178,7 @@ class TwitterGetListTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/lists/manage_lists.py b/autogpt_platform/backend/backend/blocks/twitter/lists/manage_lists.py index 800b1219c9..2ba8158f9c 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/lists/manage_lists.py +++ b/autogpt_platform/backend/backend/blocks/twitter/lists/manage_lists.py @@ -64,7 +64,7 @@ class TwitterDeleteListBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -158,7 +158,7 @@ class TwitterUpdateListBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -263,7 +263,7 @@ class TwitterCreateListBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/lists/pinned_lists.py b/autogpt_platform/backend/backend/blocks/twitter/lists/pinned_lists.py index 7da93b531a..a31d1059f6 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/lists/pinned_lists.py +++ b/autogpt_platform/backend/backend/blocks/twitter/lists/pinned_lists.py @@ -76,7 +76,7 @@ class TwitterUnpinListBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -140,7 +140,7 @@ class TwitterPinListBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -257,7 +257,7 @@ class TwitterGetPinnedListsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/spaces/search_spaces.py b/autogpt_platform/backend/backend/blocks/twitter/spaces/search_spaces.py index 2640d78bf9..77b28fa654 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/spaces/search_spaces.py +++ b/autogpt_platform/backend/backend/blocks/twitter/spaces/search_spaces.py @@ -158,7 +158,7 @@ class TwitterSearchSpacesBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/spaces/spaces_lookup.py b/autogpt_platform/backend/backend/blocks/twitter/spaces/spaces_lookup.py index bf1f527970..d4ff5459e4 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/spaces/spaces_lookup.py +++ b/autogpt_platform/backend/backend/blocks/twitter/spaces/spaces_lookup.py @@ -186,7 +186,7 @@ class TwitterGetSpacesBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -341,7 +341,7 @@ class TwitterGetSpaceByIdBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -477,7 +477,7 @@ class TwitterGetSpaceBuyersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -618,7 +618,7 @@ class TwitterGetSpaceTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/bookmark.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/bookmark.py index 50add77be8..ec8976fc2f 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/bookmark.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/bookmark.py @@ -85,7 +85,7 @@ class TwitterBookmarkTweetBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -262,7 +262,7 @@ class TwitterGetBookmarkedTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -362,7 +362,7 @@ class TwitterRemoveBookmarkTweetBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/hide.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/hide.py index 78ab250c7f..65faa315ae 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/hide.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/hide.py @@ -68,7 +68,7 @@ class TwitterHideReplyBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -140,7 +140,7 @@ class TwitterUnhideReplyBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/like.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/like.py index 609c1c6bb4..8bbc30e8e9 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/like.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/like.py @@ -90,7 +90,7 @@ class TwitterLikeTweetBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -249,7 +249,7 @@ class TwitterGetLikingUsersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -467,7 +467,7 @@ class TwitterGetLikedTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -564,7 +564,7 @@ class TwitterUnlikeTweetBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/manage.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/manage.py index e9a59afec2..6dca0d74c8 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/manage.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/manage.py @@ -211,7 +211,7 @@ class TwitterPostTweetBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -288,7 +288,7 @@ class TwitterDeleteTweetBlock(Block): except Exception: raise - def run( + async def run( self, input_data: Input, *, @@ -508,7 +508,7 @@ class TwitterSearchRecentTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/quote.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/quote.py index 40df117b1c..b15271b072 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/quote.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/quote.py @@ -186,7 +186,7 @@ class TwitterGetQuoteTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/retweet.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/retweet.py index c0645e54fd..9b1ba81b78 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/retweet.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/retweet.py @@ -85,7 +85,7 @@ class TwitterRetweetBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -162,7 +162,7 @@ class TwitterRemoveRetweetBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -328,7 +328,7 @@ class TwitterGetRetweetersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/timeline.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/timeline.py index 1dcce6d12a..ca89039c2e 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/timeline.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/timeline.py @@ -234,7 +234,7 @@ class TwitterGetUserMentionsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -467,7 +467,7 @@ class TwitterGetHomeTimelineBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -713,7 +713,7 @@ class TwitterGetUserTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/tweets/tweet_lookup.py b/autogpt_platform/backend/backend/blocks/twitter/tweets/tweet_lookup.py index a71eb11b60..5021161b9e 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/tweets/tweet_lookup.py +++ b/autogpt_platform/backend/backend/blocks/twitter/tweets/tweet_lookup.py @@ -153,7 +153,7 @@ class TwitterGetTweetBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -327,7 +327,7 @@ class TwitterGetTweetsBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/users/blocks.py b/autogpt_platform/backend/backend/blocks/twitter/users/blocks.py index c83632067a..ca118e91e2 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/users/blocks.py +++ b/autogpt_platform/backend/backend/blocks/twitter/users/blocks.py @@ -147,7 +147,7 @@ class TwitterGetBlockedUsersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/users/follows.py b/autogpt_platform/backend/backend/blocks/twitter/users/follows.py index a810750cbd..160ffe9b35 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/users/follows.py +++ b/autogpt_platform/backend/backend/blocks/twitter/users/follows.py @@ -82,7 +82,7 @@ class TwitterUnfollowUserBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -152,7 +152,7 @@ class TwitterFollowUserBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -308,7 +308,7 @@ class TwitterGetFollowersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -482,7 +482,7 @@ class TwitterGetFollowingBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/users/mutes.py b/autogpt_platform/backend/backend/blocks/twitter/users/mutes.py index 6be5534bee..36bb4028f9 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/users/mutes.py +++ b/autogpt_platform/backend/backend/blocks/twitter/users/mutes.py @@ -82,7 +82,7 @@ class TwitterUnmuteUserBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -232,7 +232,7 @@ class TwitterGetMutedUsersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -318,7 +318,7 @@ class TwitterMuteUserBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/twitter/users/user_lookup.py b/autogpt_platform/backend/backend/blocks/twitter/users/user_lookup.py index 7c4bc8322d..585ebff3db 100644 --- a/autogpt_platform/backend/backend/blocks/twitter/users/user_lookup.py +++ b/autogpt_platform/backend/backend/blocks/twitter/users/user_lookup.py @@ -168,7 +168,7 @@ class TwitterGetUserBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, @@ -357,7 +357,7 @@ class TwitterGetUsersBlock(Block): except tweepy.TweepyException: raise - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/blocks/xml_parser.py b/autogpt_platform/backend/backend/blocks/xml_parser.py index 523fe1a69d..a3d5854499 100644 --- a/autogpt_platform/backend/backend/blocks/xml_parser.py +++ b/autogpt_platform/backend/backend/blocks/xml_parser.py @@ -25,7 +25,7 @@ class XMLParserBlock(Block): ], ) - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: try: tokens = tokenize(input_data.input_xml) parser = Parser(tokens) diff --git a/autogpt_platform/backend/backend/blocks/youtube.py b/autogpt_platform/backend/backend/blocks/youtube.py index 648d9d6dae..cc16c4ae41 100644 --- a/autogpt_platform/backend/backend/blocks/youtube.py +++ b/autogpt_platform/backend/backend/blocks/youtube.py @@ -79,7 +79,7 @@ class TranscribeYoutubeVideoBlock(Block): except Exception: raise ValueError(f"No transcripts found for the video: {video_id}") - def run(self, input_data: Input, **kwargs) -> BlockOutput: + async def run(self, input_data: Input, **kwargs) -> BlockOutput: video_id = self.extract_video_id(input_data.youtube_url) yield "video_id", video_id diff --git a/autogpt_platform/backend/backend/blocks/zerobounce/validate_emails.py b/autogpt_platform/backend/backend/blocks/zerobounce/validate_emails.py index ee87a8f285..b23e822ddc 100644 --- a/autogpt_platform/backend/backend/blocks/zerobounce/validate_emails.py +++ b/autogpt_platform/backend/backend/blocks/zerobounce/validate_emails.py @@ -159,7 +159,7 @@ class ValidateEmailsBlock(Block): client = ZeroBounceClient(credentials.api_key.get_secret_value()) return client.validate_email(email, ip_address) - def run( + async def run( self, input_data: Input, *, diff --git a/autogpt_platform/backend/backend/cli.py b/autogpt_platform/backend/backend/cli.py index 858188f084..988961b2de 100755 --- a/autogpt_platform/backend/backend/cli.py +++ b/autogpt_platform/backend/backend/cli.py @@ -117,7 +117,7 @@ def test(): @test.command() @click.argument("server_address") -def reddit(server_address: str): +async def reddit(server_address: str): """ Create an event graph """ @@ -129,7 +129,7 @@ def reddit(server_address: str): headers = {"Content-Type": "application/json"} data = test_graph.model_dump_json() - response = Requests(trusted_origins=[server_address]).post( + response = await Requests(trusted_origins=[server_address]).post( url, headers=headers, data=data ) @@ -139,7 +139,7 @@ def reddit(server_address: str): @test.command() @click.argument("server_address") -def populate_db(server_address: str): +async def populate_db(server_address: str): """ Create an event graph """ @@ -152,13 +152,13 @@ def populate_db(server_address: str): headers = {"Content-Type": "application/json"} data = test_graph.model_dump_json() - response = Requests(trusted_origins=[server_address]).post( + response = await Requests(trusted_origins=[server_address]).post( url, headers=headers, data=data ) graph_id = response.json()["id"] - if response.status_code == 200: + if response.status == 200: execute_url = f"{server_address}/graphs/{response.json()['id']}/execute" text = "Hello, World!" input_data = {"input": text} @@ -181,7 +181,7 @@ def populate_db(server_address: str): @test.command() @click.argument("server_address") -def graph(server_address: str): +async def graph(server_address: str): """ Create an event graph """ @@ -192,28 +192,28 @@ def graph(server_address: str): url = f"{server_address}/graphs" headers = {"Content-Type": "application/json"} data = create_test_graph().model_dump_json() - response = Requests(trusted_origins=[server_address]).post( + response = await Requests(trusted_origins=[server_address]).post( url, headers=headers, data=data ) - if response.status_code == 200: + if response.status == 200: print(response.json()["id"]) execute_url = f"{server_address}/graphs/{response.json()['id']}/execute" text = "Hello, World!" input_data = {"input": text} - response = Requests(trusted_origins=[server_address]).post( + response = await Requests(trusted_origins=[server_address]).post( execute_url, headers=headers, json=input_data ) else: print("Failed to send graph") - print(f"Response: {response.text}") + print(f"Response: {response.text()}") @test.command() @click.argument("graph_id") @click.argument("content") -def execute(graph_id: str, content: dict): +async def execute(graph_id: str, content: dict): """ Create an event graph """ @@ -223,7 +223,7 @@ def execute(graph_id: str, content: dict): headers = {"Content-Type": "application/json"} execute_url = f"http://0.0.0.0:8000/graphs/{graph_id}/execute" - Requests(trusted_origins=["http://0.0.0.0:8000"]).post( + await Requests(trusted_origins=["http://0.0.0.0:8000"]).post( execute_url, headers=headers, json=content ) diff --git a/autogpt_platform/backend/backend/data/block.py b/autogpt_platform/backend/backend/data/block.py index eca44fd7cd..b511547f1e 100644 --- a/autogpt_platform/backend/backend/data/block.py +++ b/autogpt_platform/backend/backend/data/block.py @@ -1,12 +1,12 @@ import functools import inspect from abc import ABC, abstractmethod +from collections.abc import AsyncGenerator as AsyncGen from enum import Enum from typing import ( TYPE_CHECKING, Any, ClassVar, - Generator, Generic, Optional, Sequence, @@ -42,7 +42,7 @@ app_config = Config() BlockData = tuple[str, Any] # Input & Output data should be a tuple of (name, data). BlockInput = dict[str, Any] # Input: 1 input pin consumes 1 data. -BlockOutput = Generator[BlockData, None, None] # Output: 1 output pin produces n data. +BlockOutput = AsyncGen[BlockData, None] # Output: 1 output pin produces n data. CompletedBlockOutput = dict[str, list[Any]] # Completed stream, collected as a dict. @@ -388,7 +388,7 @@ class Block(ABC, Generic[BlockSchemaInputType, BlockSchemaOutputType]): return cls() @abstractmethod - def run(self, input_data: BlockSchemaInputType, **kwargs) -> BlockOutput: + async def run(self, input_data: BlockSchemaInputType, **kwargs) -> BlockOutput: """ Run the block with the given input data. Args: @@ -406,10 +406,16 @@ class Block(ABC, Generic[BlockSchemaInputType, BlockSchemaOutputType]): output_name: One of the output name defined in Block's output_schema. output_data: The data for the output_name, matching the defined schema. """ - pass + # --- satisfy the type checker, never executed ------------- + if False: # noqa: SIM115 + yield "name", "value" # pyright: ignore[reportMissingYield] + raise NotImplementedError(f"{self.name} does not implement the run method.") - def run_once(self, input_data: BlockSchemaInputType, output: str, **kwargs) -> Any: - for name, data in self.run(input_data, **kwargs): + async def run_once( + self, input_data: BlockSchemaInputType, output: str, **kwargs + ) -> Any: + async for item in self.run(input_data, **kwargs): + name, data = item if name == output: return data raise ValueError(f"{self.name} did not produce any output for {output}") @@ -458,13 +464,13 @@ class Block(ABC, Generic[BlockSchemaInputType, BlockSchemaOutputType]): "uiType": self.block_type.value, } - def execute(self, input_data: BlockInput, **kwargs) -> BlockOutput: + async def execute(self, input_data: BlockInput, **kwargs) -> BlockOutput: if error := self.input_schema.validate_data(input_data): raise ValueError( f"Unable to execute block with invalid input data: {error}" ) - for output_name, output_data in self.run( + async for output_name, output_data in self.run( self.input_schema(**input_data), **kwargs ): if output_name == "error": diff --git a/autogpt_platform/backend/backend/data/execution.py b/autogpt_platform/backend/backend/data/execution.py index 757c788f2f..016a7f1e91 100644 --- a/autogpt_platform/backend/backend/data/execution.py +++ b/autogpt_platform/backend/backend/data/execution.py @@ -50,6 +50,7 @@ from .block import ( from .db import BaseDbModel from .includes import ( EXECUTION_RESULT_INCLUDE, + EXECUTION_RESULT_ORDER, GRAPH_EXECUTION_INCLUDE_WITH_NODES, graph_execution_include, ) @@ -744,6 +745,7 @@ async def get_node_executions( executions = await AgentNodeExecution.prisma().find_many( where=where_clause, include=EXECUTION_RESULT_INCLUDE, + order=EXECUTION_RESULT_ORDER, take=limit, ) res = [NodeExecutionResult.from_db(execution) for execution in executions] @@ -765,11 +767,8 @@ async def get_latest_node_execution( {"executionStatus": ExecutionStatus.FAILED}, ], }, - order=[ - {"queuedTime": "desc"}, - {"addedTime": "desc"}, - ], include=EXECUTION_RESULT_INCLUDE, + order=EXECUTION_RESULT_ORDER, ) if not execution: return None diff --git a/autogpt_platform/backend/backend/data/graph.py b/autogpt_platform/backend/backend/data/graph.py index 7733ec3518..d3d3ae8a02 100644 --- a/autogpt_platform/backend/backend/data/graph.py +++ b/autogpt_platform/backend/backend/data/graph.py @@ -1085,7 +1085,7 @@ async def fix_llm_provider_credentials(): ) continue - store.update_creds(user_id, credentials) + await store.update_creds(user_id, credentials) await AgentNode.prisma().update( where={"id": node_id}, data={"constantInput": Json(node_preset_input)}, diff --git a/autogpt_platform/backend/backend/data/includes.py b/autogpt_platform/backend/backend/data/includes.py index d763579d91..347bb9ef91 100644 --- a/autogpt_platform/backend/backend/data/includes.py +++ b/autogpt_platform/backend/backend/data/includes.py @@ -14,9 +14,15 @@ AGENT_GRAPH_INCLUDE: prisma.types.AgentGraphInclude = { "Nodes": {"include": AGENT_NODE_INCLUDE} } +EXECUTION_RESULT_ORDER: list[prisma.types.AgentNodeExecutionOrderByInput] = [ + {"queuedTime": "desc"}, + # Fallback: Incomplete execs has no queuedTime. + {"addedTime": "desc"}, +] + EXECUTION_RESULT_INCLUDE: prisma.types.AgentNodeExecutionInclude = { - "Input": True, - "Output": True, + "Input": {"order_by": {"time": "asc"}}, + "Output": {"order_by": {"time": "asc"}}, "Node": True, "GraphExecution": True, } @@ -25,17 +31,8 @@ MAX_NODE_EXECUTIONS_FETCH = 1000 GRAPH_EXECUTION_INCLUDE_WITH_NODES: prisma.types.AgentGraphExecutionInclude = { "NodeExecutions": { - "include": { - "Input": True, - "Output": True, - "Node": True, - "GraphExecution": True, - }, - "order_by": [ - {"queuedTime": "desc"}, - # Fallback: Incomplete execs has no queuedTime. - {"addedTime": "desc"}, - ], + "include": EXECUTION_RESULT_INCLUDE, + "order_by": EXECUTION_RESULT_ORDER, "take": MAX_NODE_EXECUTIONS_FETCH, # Avoid loading excessive node executions. } } diff --git a/autogpt_platform/backend/backend/data/notifications.py b/autogpt_platform/backend/backend/data/notifications.py index d0f49b7021..14cf77d3c4 100644 --- a/autogpt_platform/backend/backend/data/notifications.py +++ b/autogpt_platform/backend/backend/data/notifications.py @@ -111,7 +111,14 @@ class BaseSummaryData(BaseNotificationData): class BaseSummaryParams(BaseModel): - pass + start_date: datetime + end_date: datetime + + @field_validator("start_date", "end_date") + def validate_timezone(cls, value): + if value.tzinfo is None: + raise ValueError("datetime must have timezone information") + return value class DailySummaryParams(BaseSummaryParams): diff --git a/autogpt_platform/backend/backend/data/redis.py b/autogpt_platform/backend/backend/data/redis.py index 36410fe29c..c6225131f2 100644 --- a/autogpt_platform/backend/backend/data/redis.py +++ b/autogpt_platform/backend/backend/data/redis.py @@ -1,6 +1,8 @@ import logging import os +from functools import cache +from autogpt_libs.utils.cache import thread_cached from dotenv import load_dotenv from redis import Redis from redis.asyncio import Redis as AsyncRedis @@ -14,16 +16,10 @@ PORT = int(os.getenv("REDIS_PORT", "6379")) PASSWORD = os.getenv("REDIS_PASSWORD", "password") logger = logging.getLogger(__name__) -connection: Redis | None = None -connection_async: AsyncRedis | None = None @conn_retry("Redis", "Acquiring connection") def connect() -> Redis: - global connection - if connection: - return connection - c = Redis( host=HOST, port=PORT, @@ -31,32 +27,21 @@ def connect() -> Redis: decode_responses=True, ) c.ping() - connection = c - return connection + return c @conn_retry("Redis", "Releasing connection") def disconnect(): - global connection - if connection: - connection.close() - connection = None + get_redis().close() -def get_redis(auto_connect: bool = True) -> Redis: - if connection: - return connection - if auto_connect: - return connect() - raise RuntimeError("Redis connection is not established") +@cache +def get_redis() -> Redis: + return connect() @conn_retry("AsyncRedis", "Acquiring connection") async def connect_async() -> AsyncRedis: - global connection_async - if connection_async: - return connection_async - c = AsyncRedis( host=HOST, port=PORT, @@ -64,21 +49,15 @@ async def connect_async() -> AsyncRedis: decode_responses=True, ) await c.ping() - connection_async = c - return connection_async + return c @conn_retry("AsyncRedis", "Releasing connection") async def disconnect_async(): - global connection_async - if connection_async: - await connection_async.close() - connection_async = None + c = await get_redis_async() + await c.close() -async def get_redis_async(auto_connect: bool = True) -> AsyncRedis: - if connection_async: - return connection_async - if auto_connect: - return await connect_async() - raise RuntimeError("AsyncRedis connection is not established") +@thread_cached +async def get_redis_async() -> AsyncRedis: + return await connect_async() diff --git a/autogpt_platform/backend/backend/executor/__init__.py b/autogpt_platform/backend/backend/executor/__init__.py index a92302a62e..92d8b5dc58 100644 --- a/autogpt_platform/backend/backend/executor/__init__.py +++ b/autogpt_platform/backend/backend/executor/__init__.py @@ -1,10 +1,11 @@ -from .database import DatabaseManager, DatabaseManagerClient +from .database import DatabaseManager, DatabaseManagerAsyncClient, DatabaseManagerClient from .manager import ExecutionManager from .scheduler import Scheduler __all__ = [ "DatabaseManager", "DatabaseManagerClient", + "DatabaseManagerAsyncClient", "ExecutionManager", "Scheduler", ] diff --git a/autogpt_platform/backend/backend/executor/database.py b/autogpt_platform/backend/backend/executor/database.py index e1b4c9c776..81440f3555 100644 --- a/autogpt_platform/backend/backend/executor/database.py +++ b/autogpt_platform/backend/backend/executor/database.py @@ -192,3 +192,26 @@ class DatabaseManagerClient(AppServiceClient): get_user_notification_oldest_message_in_batch = _( d.get_user_notification_oldest_message_in_batch ) + + +class DatabaseManagerAsyncClient(AppServiceClient): + d = DatabaseManager + + @classmethod + def get_service_type(cls): + return DatabaseManager + + create_graph_execution = d.create_graph_execution + get_latest_node_execution = d.get_latest_node_execution + get_graph = d.get_graph + get_node = d.get_node + get_node_execution = d.get_node_execution + get_node_executions = d.get_node_executions + get_user_integrations = d.get_user_integrations + upsert_execution_input = d.upsert_execution_input + upsert_execution_output = d.upsert_execution_output + update_graph_execution_stats = d.update_graph_execution_stats + update_node_execution_stats = d.update_node_execution_stats + update_node_execution_status = d.update_node_execution_status + update_node_execution_status_batch = d.update_node_execution_status_batch + update_user_integrations = d.update_user_integrations diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index d4bf006473..aabdb94411 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -1,20 +1,18 @@ -import atexit +import asyncio import logging import multiprocessing import os -import signal import sys import threading import time from collections import defaultdict -from concurrent.futures import Future, ProcessPoolExecutor -from contextlib import contextmanager -from multiprocessing.pool import Pool -from typing import TYPE_CHECKING, Optional, TypeVar, cast +from concurrent.futures import CancelledError, Future, ProcessPoolExecutor +from contextlib import asynccontextmanager +from typing import TYPE_CHECKING, Any, Optional, TypeVar, cast from pika.adapters.blocking_connection import BlockingChannel from pika.spec import Basic, BasicProperties -from redis.lock import Lock as RedisLock +from redis.asyncio.lock import Lock as RedisLock from backend.blocks.io import AgentOutputBlock from backend.data.model import ( @@ -34,7 +32,7 @@ from backend.notifications.notifications import queue_notification from backend.util.exceptions import InsufficientBalanceError if TYPE_CHECKING: - from backend.executor import DatabaseManagerClient + from backend.executor import DatabaseManagerClient, DatabaseManagerAsyncClient from autogpt_libs.utils.cache import thread_cached from prometheus_client import Gauge, start_http_server @@ -66,6 +64,7 @@ from backend.executor.utils import ( NodeExecutionProgress, block_usage_cost, execution_usage_cost, + get_async_execution_event_bus, get_execution_event_bus, get_execution_queue, parse_execution_output, @@ -73,7 +72,12 @@ from backend.executor.utils import ( ) from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.util import json -from backend.util.decorator import error_logged, time_measured +from backend.util.decorator import ( + async_error_logged, + async_time_measured, + error_logged, + time_measured, +) from backend.util.file import clean_exec_files from backend.util.logging import TruncatedLogger, configure_logging from backend.util.process import AppProcess, set_service_name @@ -128,7 +132,7 @@ class LogMetadata(TruncatedLogger): T = TypeVar("T") -def execute_node( +async def execute_node( node: Node, creds_manager: IntegrationCredentialsManager, data: NodeExecutionEntry, @@ -205,12 +209,14 @@ def execute_node( input_model = cast(type[BlockSchema], node_block.input_schema) for field_name, input_type in input_model.get_credentials_fields().items(): credentials_meta = input_type(**input_data[field_name]) - credentials, creds_lock = creds_manager.acquire(user_id, credentials_meta.id) + credentials, creds_lock = await creds_manager.acquire( + user_id, credentials_meta.id + ) extra_exec_kwargs[field_name] = credentials output_size = 0 try: - for output_name, output_data in node_block.execute( + async for output_name, output_data in node_block.execute( input_data, **extra_exec_kwargs ): output_data = json.convert_pydantic_to_json(output_data) @@ -225,9 +231,9 @@ def execute_node( finally: # Ensure credentials are released even if execution fails - if creds_lock and creds_lock.locked() and creds_lock.owned(): + if creds_lock and (await creds_lock.locked()) and (await creds_lock.owned()): try: - creds_lock.release() + await creds_lock.release() except Exception as e: log_metadata.error(f"Failed to release credentials lock: {e}") @@ -240,8 +246,8 @@ def execute_node( execution_stats.output_size = output_size -def _enqueue_next_nodes( - db_client: "DatabaseManagerClient", +async def _enqueue_next_nodes( + db_client: "DatabaseManagerAsyncClient", node: Node, output: BlockData, user_id: str, @@ -250,10 +256,10 @@ def _enqueue_next_nodes( log_metadata: LogMetadata, node_credentials_input_map: Optional[dict[str, dict[str, CredentialsMetaInput]]], ) -> list[NodeExecutionEntry]: - def add_enqueued_execution( + async def add_enqueued_execution( node_exec_id: str, node_id: str, block_id: str, data: BlockInput ) -> NodeExecutionEntry: - update_node_execution_status( + await async_update_node_execution_status( db_client=db_client, exec_id=node_exec_id, status=ExecutionStatus.QUEUED, @@ -269,14 +275,14 @@ def _enqueue_next_nodes( inputs=data, ) - def register_next_executions(node_link: Link) -> list[NodeExecutionEntry]: + async def register_next_executions(node_link: Link) -> list[NodeExecutionEntry]: try: - return _register_next_executions(node_link) + return await _register_next_executions(node_link) except Exception as e: log_metadata.exception(f"Failed to register next executions: {e}") return [] - def _register_next_executions(node_link: Link) -> list[NodeExecutionEntry]: + async def _register_next_executions(node_link: Link) -> list[NodeExecutionEntry]: enqueued_executions = [] next_output_name = node_link.source_name next_input_name = node_link.sink_name @@ -285,21 +291,20 @@ def _enqueue_next_nodes( next_data = parse_execution_output(output, next_output_name) if next_data is None: return enqueued_executions - - next_node = db_client.get_node(next_node_id) + next_node = await db_client.get_node(next_node_id) # Multiple node can register the same next node, we need this to be atomic # To avoid same execution to be enqueued multiple times, # Or the same input to be consumed multiple times. - with synchronized(f"upsert_input-{next_node_id}-{graph_exec_id}"): + async with synchronized(f"upsert_input-{next_node_id}-{graph_exec_id}"): # Add output data to the earliest incomplete execution, or create a new one. - next_node_exec_id, next_node_input = db_client.upsert_execution_input( + next_node_exec_id, next_node_input = await db_client.upsert_execution_input( node_id=next_node_id, graph_exec_id=graph_exec_id, input_name=next_input_name, input_data=next_data, ) - update_node_execution_status( + await async_update_node_execution_status( db_client=db_client, exec_id=next_node_exec_id, status=ExecutionStatus.INCOMPLETE, @@ -312,7 +317,7 @@ def _enqueue_next_nodes( if link.is_static and link.sink_name not in next_node_input } if static_link_names and ( - latest_execution := db_client.get_latest_node_execution( + latest_execution := await db_client.get_latest_node_execution( next_node_id, graph_exec_id ) ): @@ -340,7 +345,7 @@ def _enqueue_next_nodes( # Input is complete, enqueue the execution. log_metadata.info(f"Enqueued {suffix}") enqueued_executions.append( - add_enqueued_execution( + await add_enqueued_execution( node_exec_id=next_node_exec_id, node_id=next_node_id, block_id=next_node.block_id, @@ -354,7 +359,7 @@ def _enqueue_next_nodes( # If link is static, there could be some incomplete executions waiting for it. # Load and complete the input missing input data, and try to re-enqueue them. - for iexec in db_client.get_node_executions( + for iexec in await db_client.get_node_executions( node_id=next_node_id, graph_exec_id=graph_exec_id, statuses=[ExecutionStatus.INCOMPLETE], @@ -383,7 +388,7 @@ def _enqueue_next_nodes( continue log_metadata.info(f"Enqueueing static-link execution {suffix}") enqueued_executions.append( - add_enqueued_execution( + await add_enqueued_execution( node_exec_id=iexec.node_exec_id, node_id=next_node_id, block_id=next_node.block_id, @@ -395,7 +400,7 @@ def _enqueue_next_nodes( return [ execution for link in node.output_links - for execution in register_next_executions(link) + for execution in await register_next_executions(link) ] @@ -404,11 +409,9 @@ class Executor: This class contains event handlers for the process pool executor events. The main events are: - on_node_executor_start: Initialize the process that executes the node. - on_node_execution: Execution logic for a node. - on_graph_executor_start: Initialize the process that executes the graph. on_graph_execution: Execution logic for a graph. + on_node_execution: Execution logic for a node. The execution flow: 1. Graph execution request is added to the queue. @@ -425,46 +428,11 @@ class Executor: """ @classmethod - @func_retry - def on_node_executor_start(cls): - configure_logging() - set_service_name("NodeExecutor") - redis.connect() - cls.pid = os.getpid() - cls.db_client = get_db_client() - cls.creds_manager = IntegrationCredentialsManager() - - # Set up shutdown handlers - cls.shutdown_lock = threading.Lock() - atexit.register(cls.on_node_executor_stop) - signal.signal(signal.SIGTERM, lambda _, __: cls.on_node_executor_sigterm()) - signal.signal(signal.SIGINT, lambda _, __: cls.on_node_executor_sigterm()) - - @classmethod - def on_node_executor_stop(cls, log=logger.info): - if not cls.shutdown_lock.acquire(blocking=False): - return # already shutting down - - log(f"[on_node_executor_stop {cls.pid}] ⏳ Releasing locks...") - cls.creds_manager.release_all_locks() - log(f"[on_node_executor_stop {cls.pid}] ⏳ Disconnecting Redis...") - redis.disconnect() - log(f"[on_node_executor_stop {cls.pid}] ⏳ Disconnecting DB manager...") - cls.db_client.close() - log(f"[on_node_executor_stop {cls.pid}] ✅ Finished NodeExec cleanup") - sys.exit(0) - - @classmethod - def on_node_executor_sigterm(cls): - llprint(f"[on_node_executor_sigterm {cls.pid}] ⚠️ NodeExec SIGTERM received") - cls.on_node_executor_stop(log=llprint) - - @classmethod - @error_logged - def on_node_execution( + @async_error_logged + async def on_node_execution( cls, - q: ExecutionQueue[ExecutionOutputEntry], node_exec: NodeExecutionEntry, + node_exec_progress: NodeExecutionProgress, node_credentials_input_map: Optional[ dict[str, dict[str, CredentialsMetaInput]] ] = None, @@ -477,13 +445,15 @@ class Executor: node_id=node_exec.node_id, block_name="-", ) - node = cls.db_client.get_node(node_exec.node_id) + db_client = get_db_async_client() + node = await db_client.get_node(node_exec.node_id) execution_stats = NodeExecutionStats() - timing_info, _ = cls._on_node_execution( - q=q, - node_exec=node_exec, + timing_info, _ = await cls._on_node_execution( node=node, + node_exec=node_exec, + node_exec_progress=node_exec_progress, + db_client=db_client, log_metadata=log_metadata, stats=execution_stats, node_credentials_input_map=node_credentials_input_map, @@ -493,19 +463,20 @@ class Executor: if isinstance(execution_stats.error, Exception): execution_stats.error = str(execution_stats.error) - exec_update = cls.db_client.update_node_execution_stats( + exec_update = await db_client.update_node_execution_stats( node_exec.node_exec_id, execution_stats ) - send_execution_update(exec_update) + await send_async_execution_update(exec_update) return execution_stats @classmethod - @time_measured - def _on_node_execution( + @async_time_measured + async def _on_node_execution( cls, - q: ExecutionQueue[ExecutionOutputEntry], - node_exec: NodeExecutionEntry, node: Node, + node_exec: NodeExecutionEntry, + node_exec_progress: NodeExecutionProgress, + db_client: "DatabaseManagerAsyncClient", log_metadata: LogMetadata, stats: NodeExecutionStats | None = None, node_credentials_input_map: Optional[ @@ -514,20 +485,20 @@ class Executor: ): try: log_metadata.info(f"Start node execution {node_exec.node_exec_id}") - update_node_execution_status( - db_client=cls.db_client, + await async_update_node_execution_status( + db_client=db_client, exec_id=node_exec.node_exec_id, status=ExecutionStatus.RUNNING, ) - for output_name, output_data in execute_node( + async for output_name, output_data in execute_node( node=node, creds_manager=cls.creds_manager, data=node_exec, execution_stats=stats, node_credentials_input_map=node_credentials_input_map, ): - q.add( + node_exec_progress.add_output( ExecutionOutputEntry( node=node, node_exec_id=node_exec.node_exec_id, @@ -554,19 +525,19 @@ class Executor: def on_graph_executor_start(cls): configure_logging() set_service_name("GraphExecutor") - - cls.db_client = get_db_client() - cls.pool_size = settings.config.num_node_workers cls.pid = os.getpid() - cls._init_node_executor_pool() - logger.info(f"GraphExec {cls.pid} started with {cls.pool_size} node workers") - - @classmethod - def _init_node_executor_pool(cls): - cls.executor = Pool( - processes=cls.pool_size, - initializer=cls.on_node_executor_start, + cls.creds_manager = IntegrationCredentialsManager() + cls.node_execution_loop = asyncio.new_event_loop() + cls.node_evaluation_loop = asyncio.new_event_loop() + cls.node_execution_thread = threading.Thread( + target=cls.node_execution_loop.run_forever, daemon=True ) + cls.node_evaluation_thread = threading.Thread( + target=cls.node_evaluation_loop.run_forever, daemon=True + ) + cls.node_execution_thread.start() + cls.node_evaluation_thread.start() + logger.info(f"[GraphExecutor] {cls.pid} started") @classmethod @error_logged @@ -581,8 +552,9 @@ class Executor: node_eid="*", block_name="-", ) + db_client = get_db_client() - exec_meta = cls.db_client.get_graph_execution_meta( + exec_meta = db_client.get_graph_execution_meta( user_id=graph_exec.user_id, execution_id=graph_exec.graph_exec_id, ) @@ -596,9 +568,7 @@ class Executor: log_metadata.info(f"⚙️ Starting graph execution #{graph_exec.graph_exec_id}") exec_meta.status = ExecutionStatus.RUNNING send_execution_update( - cls.db_client.update_graph_execution_start_time( - graph_exec.graph_exec_id - ) + db_client.update_graph_execution_start_time(graph_exec.graph_exec_id) ) elif exec_meta.status == ExecutionStatus.RUNNING: log_metadata.info( @@ -622,14 +592,14 @@ class Executor: exec_stats.cputime += timing_info.cpu_time exec_stats.error = str(error) if error else exec_stats.error - if graph_exec_result := cls.db_client.update_graph_execution_stats( + if graph_exec_result := db_client.update_graph_execution_stats( graph_exec_id=graph_exec.graph_exec_id, status=status, stats=exec_stats, ): send_execution_update(graph_exec_result) - cls._handle_agent_run_notif(graph_exec, exec_stats) + cls._handle_agent_run_notif(db_client, graph_exec, exec_stats) @classmethod def _charge_usage( @@ -638,6 +608,7 @@ class Executor: execution_count: int, execution_stats: GraphExecutionStats, ): + db_client = get_db_client() block = get_block(node_exec.block_id) if not block: logger.error(f"Block {node_exec.block_id} not found.") @@ -647,7 +618,7 @@ class Executor: block=block, input_data=node_exec.inputs ) if cost > 0: - cls.db_client.spend_credits( + db_client.spend_credits( user_id=node_exec.user_id, cost=cost, metadata=UsageTransactionMetadata( @@ -665,7 +636,7 @@ class Executor: cost, usage_count = execution_usage_cost(execution_count) if cost > 0: - cls.db_client.spend_credits( + db_client.spend_credits( user_id=node_exec.user_id, cost=cost, metadata=UsageTransactionMetadata( @@ -695,18 +666,11 @@ class Executor: ExecutionStatus: The final status of the graph execution. Exception | None: The error that occurred during the execution, if any. """ - execution_status = ExecutionStatus.RUNNING - error = None - finished = False + execution_status: ExecutionStatus = ExecutionStatus.RUNNING + error: Exception | None = None + db_client = get_db_client() - def drain_output_queue(): - while output := output_queue.get_or_none(): - log_metadata.debug( - f"Received output for {output.node.id} - {output.node_exec_id}: {output.data}" - ) - running_executions[output.node.id].add_output(output) - - def drain_done_task(node_exec_id: str, result: object): + def on_done_task(node_exec_id: str, result: object): if not isinstance(result, NodeExecutionStats): log_metadata.error(f"Unexpected result #{node_exec_id}: {type(result)}") return @@ -718,49 +682,40 @@ class Executor: if (err := result.error) and isinstance(err, Exception): execution_stats.node_error_count += 1 update_node_execution_status( - db_client=cls.db_client, + db_client=db_client, exec_id=node_exec_id, status=ExecutionStatus.FAILED, ) else: update_node_execution_status( - db_client=cls.db_client, + db_client=db_client, exec_id=node_exec_id, status=ExecutionStatus.COMPLETED, ) - if _graph_exec := cls.db_client.update_graph_execution_stats( + if _graph_exec := db_client.update_graph_execution_stats( graph_exec_id=graph_exec.graph_exec_id, status=execution_status, stats=execution_stats, ): send_execution_update(_graph_exec) else: - logger.error( - "Callback for " - f"finished node execution #{node_exec_id} " - "could not update execution stats " + log_metadata.error( + "Callback for finished node execution " + f"#{node_exec_id} could not update execution stats " f"for graph execution #{graph_exec.graph_exec_id}; " f"triggered while graph exec status = {execution_status}" ) - def cancel_handler(): - nonlocal execution_status - - while not cancel.is_set(): - cancel.wait(1) - if finished: - return - execution_status = ExecutionStatus.TERMINATED - cls.executor.terminate() - log_metadata.info(f"Terminated graph execution {graph_exec.graph_exec_id}") - cls._init_node_executor_pool() - - cancel_thread = threading.Thread(target=cancel_handler) - cancel_thread.start() + # State holders ---------------------------------------------------- + running_node_execution: dict[str, NodeExecutionProgress] = defaultdict( + lambda: NodeExecutionProgress(on_done_task=on_done_task) + ) + running_node_evaluation: dict[str, Future] = {} + execution_queue = ExecutionQueue[NodeExecutionEntry]() try: - if cls.db_client.get_credits(graph_exec.user_id) <= 0: + if db_client.get_credits(graph_exec.user_id) <= 0: raise InsufficientBalanceError( user_id=graph_exec.user_id, message="You have no credits left to run an agent.", @@ -768,21 +723,18 @@ class Executor: amount=1, ) - output_queue = ExecutionQueue[ExecutionOutputEntry]() - execution_queue = ExecutionQueue[NodeExecutionEntry]() - for node_exec in cls.db_client.get_node_executions( + # ------------------------------------------------------------ + # Pre‑populate queue --------------------------------------- + # ------------------------------------------------------------ + for node_exec in db_client.get_node_executions( graph_exec.graph_exec_id, statuses=[ExecutionStatus.RUNNING, ExecutionStatus.QUEUED], ): execution_queue.add(node_exec.to_node_execution_entry()) - running_executions: dict[str, NodeExecutionProgress] = defaultdict( - lambda: NodeExecutionProgress( - drain_output_queue=drain_output_queue, - drain_done_task=drain_done_task, - ) - ) - + # ------------------------------------------------------------ + # Main dispatch / polling loop ----------------------------- + # ------------------------------------------------------------ while not execution_queue.empty(): if cancel.is_set(): execution_status = ExecutionStatus.TERMINATED @@ -795,6 +747,7 @@ class Executor: f"for node {queued_node_exec.node_id}", ) + # Charge usage (may raise) ------------------------------ try: cls._charge_usage( node_exec=queued_node_exec, @@ -803,19 +756,20 @@ class Executor: ) except InsufficientBalanceError as error: node_exec_id = queued_node_exec.node_exec_id - cls.db_client.upsert_execution_output( + db_client.upsert_execution_output( node_exec_id=node_exec_id, output_name="error", output_data=str(error), ) update_node_execution_status( - db_client=cls.db_client, + db_client=db_client, exec_id=node_exec_id, status=ExecutionStatus.FAILED, ) execution_status = ExecutionStatus.FAILED cls._handle_low_balance_notif( + db_client, graph_exec.user_id, graph_exec.graph_id, execution_stats, @@ -823,7 +777,7 @@ class Executor: ) raise - # Add credentials input overrides + # Add credential overrides ----------------------------- node_id = queued_node_exec.node_id if (node_creds_map := graph_exec.node_credentials_input_map) and ( node_field_creds_map := node_creds_map.get(node_id) @@ -835,72 +789,120 @@ class Executor: } ) - # Initiate node execution - running_executions[queued_node_exec.node_id].add_task( - queued_node_exec.node_exec_id, - cls.executor.apply_async( - cls.on_node_execution, - (output_queue, queued_node_exec, node_creds_map), + # Kick off async node execution ------------------------- + node_execution_task = asyncio.run_coroutine_threadsafe( + cls.on_node_execution( + node_exec=queued_node_exec, + node_exec_progress=running_node_execution[node_id], + node_credentials_input_map=node_creds_map, ), + cls.node_execution_loop, + ) + running_node_execution[node_id].add_task( + node_exec_id=queued_node_exec.node_exec_id, + task=node_execution_task, ) - # Avoid terminating graph execution when some nodes are still running. - while execution_queue.empty() and running_executions: - log_metadata.debug( - f"Queue empty; running nodes: {list(running_executions.keys())}" - ) - - # Register next node executions from running_executions. - for node_id, execution in list(running_executions.items()): + # Poll until queue refills or all inflight work done ---- + while execution_queue.empty() and ( + running_node_execution or running_node_evaluation + ): + # -------------------------------------------------- + # Handle inflight evaluations --------------------- + # -------------------------------------------------- + node_output_found = False + for node_id, inflight_exec in list(running_node_execution.items()): if cancel.is_set(): execution_status = ExecutionStatus.TERMINATED return execution_stats, execution_status, error - log_metadata.debug(f"Waiting on execution of node {node_id}") - while output := execution.pop_output(): - cls._process_node_output( - output=output, - node_id=node_id, - graph_exec=graph_exec, - log_metadata=log_metadata, - node_creds_map=node_creds_map, - execution_queue=execution_queue, + # node evaluation future ----------------- + if inflight_eval := running_node_evaluation.get(node_id): + try: + inflight_eval.result() + running_node_evaluation.pop(node_id) + except TimeoutError: + continue + + # node execution future --------------------------- + if inflight_exec.is_done(): + running_node_execution.pop(node_id) + continue + + if output := inflight_exec.pop_output(): + node_output_found = True + running_node_evaluation[node_id] = ( + asyncio.run_coroutine_threadsafe( + cls._process_node_output( + output=output, + node_id=node_id, + graph_exec=graph_exec, + log_metadata=log_metadata, + node_creds_map=node_creds_map, + execution_queue=execution_queue, + ), + cls.node_evaluation_loop, + ) ) - if not execution_queue.empty(): - break # Prioritize executing next nodes than enqueuing outputs - - if execution.is_done(): - running_executions.pop(node_id) - - if not execution_queue.empty(): - continue # Make sure each not is checked once - - if execution_queue.empty() and running_executions: - log_metadata.debug( - "No more nodes to execute, waiting for outputs..." - ) + if ( + not node_output_found + and execution_queue.empty() + and (running_node_execution or running_node_evaluation) + ): + # There is nothing to execute, and no output to process, let's relax for a while. time.sleep(0.1) - log_metadata.info(f"Finished graph execution {graph_exec.graph_exec_id}") + # loop done -------------------------------------------------- execution_status = ExecutionStatus.COMPLETED + return execution_stats, execution_status, error - except Exception as e: - error = e + except CancelledError as exc: + execution_status = ExecutionStatus.TERMINATED + error = exc + log_metadata.exception( + f"Cancelled graph execution {graph_exec.graph_exec_id}: {error}" + ) + except Exception as exc: + execution_status = ExecutionStatus.FAILED + error = exc log_metadata.exception( f"Failed graph execution {graph_exec.graph_exec_id}: {error}" ) - execution_status = ExecutionStatus.FAILED - finally: - if not cancel.is_set(): - finished = True - cancel.set() - cancel_thread.join() + for node_id, inflight_exec in running_node_execution.items(): + if inflight_exec.is_done(): + continue + log_metadata.info(f"Stopping node execution {node_id}") + inflight_exec.stop() + + for node_id, inflight_eval in running_node_evaluation.items(): + if inflight_eval.done(): + continue + log_metadata.info(f"Stopping node evaluation {node_id}") + inflight_eval.cancel() + + if execution_status in [ExecutionStatus.TERMINATED, ExecutionStatus.FAILED]: + inflight_executions = db_client.get_node_executions( + graph_exec.graph_exec_id, + statuses=[ + ExecutionStatus.QUEUED, + ExecutionStatus.RUNNING, + ], + ) + db_client.update_node_execution_status_batch( + [node_exec.node_exec_id for node_exec in inflight_executions], + status=execution_status, + stats={"error": str(error)} if error else None, + ) + for node_exec in inflight_executions: + node_exec.status = execution_status + send_execution_update(node_exec) + clean_exec_files(graph_exec.graph_exec_id) return execution_stats, execution_status, error @classmethod - def _process_node_output( + async def _process_node_output( cls, output: ExecutionOutputEntry, node_id: str, @@ -919,19 +921,21 @@ class Executor: node_creds_map: Optional map of node credentials execution_queue: Queue to add next executions to """ + db_client = get_db_async_client() + try: name, data = output.data - cls.db_client.upsert_execution_output( + await db_client.upsert_execution_output( node_exec_id=output.node_exec_id, output_name=name, output_data=data, ) - if exec_update := cls.db_client.get_node_execution(output.node_exec_id): - send_execution_update(exec_update) + if exec_update := await db_client.get_node_execution(output.node_exec_id): + await send_async_execution_update(exec_update) log_metadata.debug(f"Enqueue nodes for {node_id}: {output}") - for next_execution in _enqueue_next_nodes( - db_client=cls.db_client, + for next_execution in await _enqueue_next_nodes( + db_client=db_client, node=output.node, output=output.data, user_id=graph_exec.user_id, @@ -943,13 +947,13 @@ class Executor: execution_queue.add(next_execution) except Exception as e: log_metadata.exception(f"Failed to process node output: {e}") - cls.db_client.upsert_execution_output( + await db_client.upsert_execution_output( node_exec_id=output.node_exec_id, output_name="error", output_data=str(e), ) - update_node_execution_status( - db_client=cls.db_client, + await async_update_node_execution_status( + db_client=db_client, exec_id=output.node_exec_id, status=ExecutionStatus.FAILED, ) @@ -957,13 +961,14 @@ class Executor: @classmethod def _handle_agent_run_notif( cls, + db_client: "DatabaseManagerClient", graph_exec: GraphExecutionEntry, exec_stats: GraphExecutionStats, ): - metadata = cls.db_client.get_graph_metadata( + metadata = db_client.get_graph_metadata( graph_exec.graph_id, graph_exec.graph_version ) - outputs = cls.db_client.get_node_executions( + outputs = db_client.get_node_executions( graph_exec.graph_exec_id, block_ids=[AgentOutputBlock().id], ) @@ -994,13 +999,14 @@ class Executor: @classmethod def _handle_low_balance_notif( cls, + db_client: "DatabaseManagerClient", user_id: str, graph_id: str, exec_stats: GraphExecutionStats, e: InsufficientBalanceError, ): shortfall = e.balance - e.amount - metadata = cls.db_client.get_graph_metadata(graph_id) + metadata = db_client.get_graph_metadata(graph_id) base_url = ( settings.config.frontend_base_url or settings.config.platform_base_url ) @@ -1046,9 +1052,6 @@ class ExecutionManager(AppProcess): initializer=Executor.on_graph_executor_start, ) - logger.info(f"[{self.service_name}] ⏳ Connecting to Redis...") - redis.connect() - threading.Thread( target=lambda: self._consume_execution_cancel(), daemon=True, @@ -1162,19 +1165,21 @@ class ExecutionManager(AppProcess): self.active_graph_runs.pop(graph_exec_id, None) active_runs_gauge.set(len(self.active_graph_runs)) utilization_gauge.set(len(self.active_graph_runs) / self.pool_size) - if f.exception(): + if exec_error := f.exception(): logger.error( - f"[{self.service_name}] Execution for {graph_exec_id} failed: {f.exception()}" + f"[{self.service_name}] Execution for {graph_exec_id} failed: {exec_error}" ) channel.connection.add_callback_threadsafe( - lambda: channel.basic_nack(delivery_tag, requeue=False) + lambda: channel.basic_nack(delivery_tag, requeue=True) ) else: channel.connection.add_callback_threadsafe( lambda: channel.basic_ack(delivery_tag) ) - except Exception as e: - logger.error(f"[{self.service_name}] Error acknowledging message: {e}") + except BaseException as e: + logger.exception( + f"[{self.service_name}] Error acknowledging message: {e}" + ) future.add_done_callback(_on_run_done) @@ -1212,35 +1217,68 @@ def get_db_client() -> "DatabaseManagerClient": return get_service_client(DatabaseManagerClient, health_check=False) +@thread_cached +def get_db_async_client() -> "DatabaseManagerAsyncClient": + from backend.executor import DatabaseManagerAsyncClient + + # Disable health check for the service client to avoid breaking process initializer. + return get_service_client(DatabaseManagerAsyncClient, health_check=False) + + +async def send_async_execution_update( + entry: GraphExecution | NodeExecutionResult | None, +) -> None: + if entry is None: + return + await get_async_execution_event_bus().publish(entry) + + def send_execution_update(entry: GraphExecution | NodeExecutionResult | None): if entry is None: return return get_execution_event_bus().publish(entry) +async def async_update_node_execution_status( + db_client: "DatabaseManagerAsyncClient", + exec_id: str, + status: ExecutionStatus, + execution_data: BlockInput | None = None, + stats: dict[str, Any] | None = None, +) -> NodeExecutionResult: + """Sets status and fetches+broadcasts the latest state of the node execution""" + exec_update = await db_client.update_node_execution_status( + exec_id, status, execution_data, stats + ) + await send_async_execution_update(exec_update) + return exec_update + + def update_node_execution_status( db_client: "DatabaseManagerClient", exec_id: str, status: ExecutionStatus, execution_data: BlockInput | None = None, + stats: dict[str, Any] | None = None, ) -> NodeExecutionResult: """Sets status and fetches+broadcasts the latest state of the node execution""" exec_update = db_client.update_node_execution_status( - exec_id, status, execution_data + exec_id, status, execution_data, stats ) send_execution_update(exec_update) return exec_update -@contextmanager -def synchronized(key: str, timeout: int = 60): - lock: RedisLock = redis.get_redis().lock(f"lock:{key}", timeout=timeout) +@asynccontextmanager +async def synchronized(key: str, timeout: int = 60): + r = await redis.get_redis_async() + lock: RedisLock = r.lock(f"lock:{key}", timeout=timeout) try: - lock.acquire() + await lock.acquire() yield finally: - if lock.locked() and lock.owned(): - lock.release() + if await lock.locked() and await lock.owned(): + await lock.release() def increment_execution_count(user_id: str) -> int: diff --git a/autogpt_platform/backend/backend/executor/scheduler.py b/autogpt_platform/backend/backend/executor/scheduler.py index 6b9008d4cc..acb3aa481f 100644 --- a/autogpt_platform/backend/backend/executor/scheduler.py +++ b/autogpt_platform/backend/backend/executor/scheduler.py @@ -1,3 +1,4 @@ +import asyncio import logging import os from datetime import datetime, timedelta, timezone @@ -72,14 +73,19 @@ def get_notification_client(): def execute_graph(**kwargs): + asyncio.run(_execute_graph(**kwargs)) + + +async def _execute_graph(**kwargs): args = GraphExecutionJobArgs(**kwargs) try: log(f"Executing recurring job for graph #{args.graph_id}") - execution_utils.add_graph_execution( + await execution_utils.add_graph_execution( graph_id=args.graph_id, inputs=args.input_data, user_id=args.user_id, graph_version=args.graph_version, + use_db_query=False, ) except Exception as e: logger.exception(f"Error executing graph {args.graph_id}: {e}") diff --git a/autogpt_platform/backend/backend/executor/utils.py b/autogpt_platform/backend/backend/executor/utils.py index 2129632c2a..025528909d 100644 --- a/autogpt_platform/backend/backend/executor/utils.py +++ b/autogpt_platform/backend/backend/executor/utils.py @@ -1,6 +1,7 @@ +import asyncio import logging from collections import defaultdict -from multiprocessing.pool import AsyncResult +from concurrent.futures import Future from typing import TYPE_CHECKING, Any, Callable, Optional, cast from autogpt_libs.utils.cache import thread_cached @@ -23,6 +24,7 @@ from backend.data.execution import ( GraphExecutionWithNodes, RedisExecutionEventBus, create_graph_execution, + get_node_executions, update_graph_execution_stats, update_node_execution_status_batch, ) @@ -43,7 +45,7 @@ from backend.util.settings import Config from backend.util.type import convert if TYPE_CHECKING: - from backend.executor import DatabaseManagerClient + from backend.executor import DatabaseManagerAsyncClient, DatabaseManagerClient from backend.integrations.credentials_store import IntegrationCredentialsStore config = Config() @@ -90,6 +92,13 @@ def get_db_client() -> "DatabaseManagerClient": return get_service_client(DatabaseManagerClient) +@thread_cached +def get_db_async_client() -> "DatabaseManagerAsyncClient": + from backend.executor import DatabaseManagerAsyncClient + + return get_service_client(DatabaseManagerAsyncClient) + + # ============ Execution Cost Helpers ============ # @@ -422,7 +431,7 @@ def validate_exec( return data, node_block.name -def _validate_node_input_credentials( +async def _validate_node_input_credentials( graph: GraphModel, user_id: str, node_credentials_input_map: Optional[ @@ -459,7 +468,7 @@ def _validate_node_input_credentials( ) # Fetch the corresponding Credentials and perform sanity checks - credentials = get_integration_credentials_store().get_creds_by_id( + credentials = await get_integration_credentials_store().get_creds_by_id( user_id, credentials_meta.id ) if not credentials: @@ -516,7 +525,7 @@ def make_node_credentials_input_map( return result -def construct_node_execution_input( +async def construct_node_execution_input( graph: GraphModel, user_id: str, graph_inputs: BlockInput, @@ -541,7 +550,7 @@ def construct_node_execution_input( the corresponding input data for that node. """ graph.validate_graph(for_run=True) - _validate_node_input_credentials(graph, user_id, node_credentials_input_map) + await _validate_node_input_credentials(graph, user_id, node_credentials_input_map) nodes_input = [] for node in graph.starting_nodes: @@ -642,13 +651,92 @@ def create_execution_queue_config() -> RabbitMQConfig: ) -async def add_graph_execution_async( +async def stop_graph_execution( + graph_exec_id: str, + use_db_query: bool = True, +): + """ + Mechanism: + 1. Set the cancel event + 2. Graph executor's cancel handler thread detects the event, terminates workers, + reinitializes worker pool, and returns. + 3. Update execution statuses in DB and set `error` outputs to `"TERMINATED"`. + """ + queue_client = await get_async_execution_queue() + await queue_client.publish_message( + routing_key="", + message=CancelExecutionEvent(graph_exec_id=graph_exec_id).model_dump_json(), + exchange=GRAPH_EXECUTION_CANCEL_EXCHANGE, + ) + + # Update the status of the graph execution + if use_db_query: + graph_execution = await update_graph_execution_stats( + graph_exec_id, + ExecutionStatus.TERMINATED, + ) + else: + graph_execution = await get_db_async_client().update_graph_execution_stats( + graph_exec_id, + ExecutionStatus.TERMINATED, + ) + + if graph_execution: + await get_async_execution_event_bus().publish(graph_execution) + else: + raise NotFoundError( + f"Graph execution #{graph_exec_id} not found for termination." + ) + + # Update the status of the node executions + if use_db_query: + node_executions = await get_node_executions( + graph_exec_id=graph_exec_id, + statuses=[ + ExecutionStatus.QUEUED, + ExecutionStatus.RUNNING, + ExecutionStatus.INCOMPLETE, + ], + ) + await update_node_execution_status_batch( + [v.node_exec_id for v in node_executions], + ExecutionStatus.TERMINATED, + ) + else: + node_executions = await get_db_async_client().get_node_executions( + graph_exec_id=graph_exec_id, + statuses=[ + ExecutionStatus.QUEUED, + ExecutionStatus.RUNNING, + ExecutionStatus.INCOMPLETE, + ], + ) + await get_db_async_client().update_node_execution_status_batch( + [v.node_exec_id for v in node_executions], + ExecutionStatus.TERMINATED, + ) + + await asyncio.gather( + *[ + get_async_execution_event_bus().publish( + v.model_copy(update={"status": ExecutionStatus.TERMINATED}) + ) + for v in node_executions + ] + ) + + +async def add_graph_execution( graph_id: str, user_id: str, inputs: BlockInput, preset_id: Optional[str] = None, graph_version: Optional[int] = None, graph_credentials_inputs: Optional[dict[str, CredentialsMetaInput]] = None, + node_credentials_input_map: Optional[ + dict[str, dict[str, CredentialsMetaInput]] + ] = None, + use_db_query: bool = True, ) -> GraphExecutionWithNodes: """ Adds a graph execution to the queue and returns the execution entry. @@ -661,38 +749,63 @@ async def add_graph_execution_async( graph_version: The version of the graph to execute. graph_credentials_inputs: Credentials inputs to use in the execution. Keys should map to the keys generated by `GraphModel.aggregate_credentials_inputs`. + node_credentials_input_map: Credentials inputs to use in the execution, mapped to specific nodes. Returns: GraphExecutionEntry: The entry for the graph execution. Raises: ValueError: If the graph is not found or if there are validation errors. """ # noqa - graph: GraphModel | None = await get_graph( - graph_id=graph_id, - user_id=user_id, - version=graph_version, - include_subgraphs=True, - ) + if use_db_query: + graph: GraphModel | None = await get_graph( + graph_id=graph_id, + user_id=user_id, + version=graph_version, + include_subgraphs=True, + ) + else: + graph: GraphModel | None = await get_db_async_client().get_graph( + graph_id=graph_id, + user_id=user_id, + version=graph_version, + include_subgraphs=True, + ) + if not graph: raise NotFoundError(f"Graph #{graph_id} not found.") - node_credentials_input_map = ( + node_credentials_input_map = node_credentials_input_map or ( make_node_credentials_input_map(graph, graph_credentials_inputs) if graph_credentials_inputs else None ) - graph_exec = await create_graph_execution( - user_id=user_id, - graph_id=graph_id, - graph_version=graph.version, - starting_nodes_input=construct_node_execution_input( - graph=graph, + if use_db_query: + graph_exec = await create_graph_execution( user_id=user_id, - graph_inputs=inputs, - node_credentials_input_map=node_credentials_input_map, - ), - preset_id=preset_id, - ) + graph_id=graph_id, + graph_version=graph.version, + starting_nodes_input=await construct_node_execution_input( + graph=graph, + user_id=user_id, + graph_inputs=inputs, + node_credentials_input_map=node_credentials_input_map, + ), + preset_id=preset_id, + ) + else: + graph_exec = await get_db_async_client().create_graph_execution( + user_id=user_id, + graph_id=graph_id, + graph_version=graph.version, + starting_nodes_input=await construct_node_execution_input( + graph=graph, + user_id=user_id, + graph_inputs=inputs, + node_credentials_input_map=node_credentials_input_map, + ), + preset_id=preset_id, + ) + try: queue = await get_async_execution_queue() graph_exec_entry = graph_exec.to_graph_execution_entry() @@ -711,101 +824,27 @@ async def add_graph_execution_async( except Exception as e: logger.error(f"Unable to publish graph #{graph_id} exec #{graph_exec.id}: {e}") - await update_node_execution_status_batch( - [node_exec.node_exec_id for node_exec in graph_exec.node_executions], - ExecutionStatus.FAILED, - ) - await update_graph_execution_stats( - graph_exec_id=graph_exec.id, - status=ExecutionStatus.FAILED, - stats=GraphExecutionStats(error=str(e)), - ) - raise + if use_db_query: + await update_node_execution_status_batch( + [node_exec.node_exec_id for node_exec in graph_exec.node_executions], + ExecutionStatus.FAILED, + ) + await update_graph_execution_stats( + graph_exec_id=graph_exec.id, + status=ExecutionStatus.FAILED, + stats=GraphExecutionStats(error=str(e)), + ) + else: + await get_db_async_client().update_node_execution_status_batch( + [node_exec.node_exec_id for node_exec in graph_exec.node_executions], + ExecutionStatus.FAILED, + ) + await get_db_async_client().update_graph_execution_stats( + graph_exec_id=graph_exec.id, + status=ExecutionStatus.FAILED, + stats=GraphExecutionStats(error=str(e)), + ) - -def add_graph_execution( - graph_id: str, - user_id: str, - inputs: BlockInput, - preset_id: Optional[str] = None, - graph_version: Optional[int] = None, - graph_credentials_inputs: Optional[dict[str, CredentialsMetaInput]] = None, - node_credentials_input_map: Optional[ - dict[str, dict[str, CredentialsMetaInput]] - ] = None, -) -> GraphExecutionWithNodes: - """ - Adds a graph execution to the queue and returns the execution entry. - - Args: - graph_id: The ID of the graph to execute. - user_id: The ID of the user executing the graph. - inputs: The input data for the graph execution. - preset_id: The ID of the preset to use. - graph_version: The version of the graph to execute. - graph_credentials_inputs: Credentials inputs to use in the execution. - Keys should map to the keys generated by `GraphModel.aggregate_credentials_inputs`. - node_credentials_input_map: Credentials inputs to use in the execution, mapped to specific nodes. - Returns: - GraphExecutionEntry: The entry for the graph execution. - Raises: - ValueError: If the graph is not found or if there are validation errors. - """ - db = get_db_client() - graph: GraphModel | None = db.get_graph( - graph_id=graph_id, - user_id=user_id, - version=graph_version, - include_subgraphs=True, - ) - if not graph: - raise NotFoundError(f"Graph #{graph_id} not found.") - - node_credentials_input_map = node_credentials_input_map or ( - make_node_credentials_input_map(graph, graph_credentials_inputs) - if graph_credentials_inputs - else None - ) - - graph_exec = db.create_graph_execution( - user_id=user_id, - graph_id=graph_id, - graph_version=graph.version, - starting_nodes_input=construct_node_execution_input( - graph=graph, - user_id=user_id, - graph_inputs=inputs, - node_credentials_input_map=node_credentials_input_map, - ), - preset_id=preset_id, - ) - try: - queue = get_execution_queue() - graph_exec_entry = graph_exec.to_graph_execution_entry() - if node_credentials_input_map: - graph_exec_entry.node_credentials_input_map = node_credentials_input_map - queue.publish_message( - routing_key=GRAPH_EXECUTION_ROUTING_KEY, - message=graph_exec_entry.model_dump_json(), - exchange=GRAPH_EXECUTION_EXCHANGE, - ) - - bus = get_execution_event_bus() - bus.publish(graph_exec) - - return graph_exec - except Exception as e: - logger.error(f"Unable to publish graph #{graph_id} exec #{graph_exec.id}: {e}") - - db.update_node_execution_status_batch( - [node_exec.node_exec_id for node_exec in graph_exec.node_executions], - ExecutionStatus.FAILED, - ) - db.update_graph_execution_stats( - graph_exec_id=graph_exec.id, - status=ExecutionStatus.FAILED, - stats=GraphExecutionStats(error=str(e)), - ) raise @@ -821,15 +860,13 @@ class ExecutionOutputEntry(BaseModel): class NodeExecutionProgress: def __init__( self, - drain_output_queue: Callable[[], None], - drain_done_task: Callable[[str, object], None], + on_done_task: Callable[[str, object], None], ): self.output: dict[str, list[ExecutionOutputEntry]] = defaultdict(list) - self.tasks: dict[str, AsyncResult] = {} - self.drain_output_queue = drain_output_queue - self.drain_done_task = drain_done_task + self.tasks: dict[str, Future] = {} + self.on_done_task = on_done_task - def add_task(self, node_exec_id: str, task: AsyncResult): + def add_task(self, node_exec_id: str, task: Future): self.tasks[node_exec_id] = task def add_output(self, output: ExecutionOutputEntry): @@ -859,23 +896,46 @@ class NodeExecutionProgress: if wait_time <= 0: return False - self.tasks[exec_id].wait(wait_time) + try: + self.tasks[exec_id].result(wait_time) + except TimeoutError: + print( + ">>>>>>> -- Timeout, after waiting for", + wait_time, + "seconds for node_id", + exec_id, + ) + pass + return self.is_done(0) + def stop(self) -> list[str]: + """ + Stops all tasks and clears the output. + This is useful for cleaning up when the execution is cancelled or terminated. + Returns a list of execution IDs that were stopped. + """ + cancelled_ids = [] + for task_id, task in self.tasks.items(): + if task.done(): + continue + task.cancel() + cancelled_ids.append(task_id) + return cancelled_ids + def _pop_done_task(self, exec_id: str) -> bool: task = self.tasks.get(exec_id) if not task: return True - if not task.ready(): + if not task.done(): return False - self.drain_output_queue() if self.output[exec_id]: return False if task := self.tasks.pop(exec_id): - self.drain_done_task(exec_id, task.get()) + self.on_done_task(exec_id, task.result()) return True diff --git a/autogpt_platform/backend/backend/integrations/credentials_store.py b/autogpt_platform/backend/backend/integrations/credentials_store.py index a5a88dfbcb..a86cc28e92 100644 --- a/autogpt_platform/backend/backend/integrations/credentials_store.py +++ b/autogpt_platform/backend/backend/integrations/credentials_store.py @@ -6,11 +6,13 @@ from typing import TYPE_CHECKING, Optional from pydantic import SecretStr +from backend.data.redis import get_redis_async + if TYPE_CHECKING: - from backend.executor.database import DatabaseManagerClient + from backend.executor.database import DatabaseManagerAsyncClient from autogpt_libs.utils.cache import thread_cached -from autogpt_libs.utils.synchronize import RedisKeyedMutex +from autogpt_libs.utils.synchronize import AsyncRedisKeyedMutex from backend.data.model import ( APIKeyCredentials, @@ -220,31 +222,36 @@ DEFAULT_CREDENTIALS = [ class IntegrationCredentialsStore: def __init__(self): - from backend.data.redis import get_redis + self._locks = None - self.locks = RedisKeyedMutex(get_redis()) + async def locks(self) -> AsyncRedisKeyedMutex: + if self._locks: + return self._locks + + self._locks = AsyncRedisKeyedMutex(await get_redis_async()) + return self._locks @property @thread_cached - def db_manager(self) -> "DatabaseManagerClient": - from backend.executor.database import DatabaseManagerClient + def db_manager(self) -> "DatabaseManagerAsyncClient": + from backend.executor.database import DatabaseManagerAsyncClient from backend.util.service import get_service_client - return get_service_client(DatabaseManagerClient) + return get_service_client(DatabaseManagerAsyncClient) - def add_creds(self, user_id: str, credentials: Credentials) -> None: - with self.locked_user_integrations(user_id): - if self.get_creds_by_id(user_id, credentials.id): + async def add_creds(self, user_id: str, credentials: Credentials) -> None: + async with await self.locked_user_integrations(user_id): + if await self.get_creds_by_id(user_id, credentials.id): raise ValueError( f"Can not re-create existing credentials #{credentials.id} " f"for user #{user_id}" ) - self._set_user_integration_creds( - user_id, [*self.get_all_creds(user_id), credentials] + await self._set_user_integration_creds( + user_id, [*(await self.get_all_creds(user_id)), credentials] ) - def get_all_creds(self, user_id: str) -> list[Credentials]: - users_credentials = self._get_user_integrations(user_id).credentials + async def get_all_creds(self, user_id: str) -> list[Credentials]: + users_credentials = (await self._get_user_integrations(user_id)).credentials all_credentials = users_credentials # These will always be added all_credentials.append(ollama_credentials) @@ -294,21 +301,25 @@ class IntegrationCredentialsStore: all_credentials.append(google_maps_credentials) return all_credentials - def get_creds_by_id(self, user_id: str, credentials_id: str) -> Credentials | None: - all_credentials = self.get_all_creds(user_id) + async def get_creds_by_id( + self, user_id: str, credentials_id: str + ) -> Credentials | None: + all_credentials = await self.get_all_creds(user_id) return next((c for c in all_credentials if c.id == credentials_id), None) - def get_creds_by_provider(self, user_id: str, provider: str) -> list[Credentials]: - credentials = self.get_all_creds(user_id) + async def get_creds_by_provider( + self, user_id: str, provider: str + ) -> list[Credentials]: + credentials = await self.get_all_creds(user_id) return [c for c in credentials if c.provider == provider] - def get_authorized_providers(self, user_id: str) -> list[str]: - credentials = self.get_all_creds(user_id) + async def get_authorized_providers(self, user_id: str) -> list[str]: + credentials = await self.get_all_creds(user_id) return list(set(c.provider for c in credentials)) - def update_creds(self, user_id: str, updated: Credentials) -> None: - with self.locked_user_integrations(user_id): - current = self.get_creds_by_id(user_id, updated.id) + async def update_creds(self, user_id: str, updated: Credentials) -> None: + async with await self.locked_user_integrations(user_id): + current = await self.get_creds_by_id(user_id, updated.id) if not current: raise ValueError( f"Credentials with ID {updated.id} " @@ -336,18 +347,18 @@ class IntegrationCredentialsStore: # Update the credentials updated_credentials_list = [ updated if c.id == updated.id else c - for c in self.get_all_creds(user_id) + for c in await self.get_all_creds(user_id) ] - self._set_user_integration_creds(user_id, updated_credentials_list) + await self._set_user_integration_creds(user_id, updated_credentials_list) - def delete_creds_by_id(self, user_id: str, credentials_id: str) -> None: - with self.locked_user_integrations(user_id): + async def delete_creds_by_id(self, user_id: str, credentials_id: str) -> None: + async with await self.locked_user_integrations(user_id): filtered_credentials = [ - c for c in self.get_all_creds(user_id) if c.id != credentials_id + c for c in await self.get_all_creds(user_id) if c.id != credentials_id ] - self._set_user_integration_creds(user_id, filtered_credentials) + await self._set_user_integration_creds(user_id, filtered_credentials) - def store_state_token( + async def store_state_token( self, user_id: str, provider: str, scopes: list[str], use_pkce: bool = False ) -> tuple[str, str]: token = secrets.token_urlsafe(32) @@ -363,14 +374,14 @@ class IntegrationCredentialsStore: scopes=scopes, ) - with self.locked_user_integrations(user_id): + async with await self.locked_user_integrations(user_id): - user_integrations = self._get_user_integrations(user_id) + user_integrations = await self._get_user_integrations(user_id) oauth_states = user_integrations.oauth_states oauth_states.append(state) user_integrations.oauth_states = oauth_states - self.db_manager.update_user_integrations( + await self.db_manager.update_user_integrations( user_id=user_id, data=user_integrations ) @@ -386,11 +397,11 @@ class IntegrationCredentialsStore: code_challenge = base64.urlsafe_b64encode(sha256_hash).decode("utf-8") return code_challenge.replace("=", ""), code_verifier - def verify_state_token( + async def verify_state_token( self, user_id: str, token: str, provider: str ) -> Optional[OAuthState]: - with self.locked_user_integrations(user_id): - user_integrations = self._get_user_integrations(user_id) + async with await self.locked_user_integrations(user_id): + user_integrations = await self._get_user_integrations(user_id) oauth_states = user_integrations.oauth_states now = datetime.now(timezone.utc) @@ -409,26 +420,26 @@ class IntegrationCredentialsStore: # Remove the used state oauth_states.remove(valid_state) user_integrations.oauth_states = oauth_states - self.db_manager.update_user_integrations(user_id, user_integrations) + await self.db_manager.update_user_integrations( + user_id, user_integrations + ) return valid_state return None - def _set_user_integration_creds( + async def _set_user_integration_creds( self, user_id: str, credentials: list[Credentials] ) -> None: - integrations = self._get_user_integrations(user_id) + integrations = await self._get_user_integrations(user_id) # Remove default credentials from the list credentials = [c for c in credentials if c not in DEFAULT_CREDENTIALS] integrations.credentials = credentials - self.db_manager.update_user_integrations(user_id, integrations) + await self.db_manager.update_user_integrations(user_id, integrations) - def _get_user_integrations(self, user_id: str) -> UserIntegrations: - integrations: UserIntegrations = self.db_manager.get_user_integrations( - user_id=user_id - ) - return integrations + async def _get_user_integrations(self, user_id: str) -> UserIntegrations: + return await self.db_manager.get_user_integrations(user_id=user_id) - def locked_user_integrations(self, user_id: str): + async def locked_user_integrations(self, user_id: str): key = (f"user:{user_id}", "integrations") - return self.locks.locked(key) + locks = await self.locks() + return locks.locked(key) diff --git a/autogpt_platform/backend/backend/integrations/creds_manager.py b/autogpt_platform/backend/backend/integrations/creds_manager.py index eb5e132503..bacc3a53e9 100644 --- a/autogpt_platform/backend/backend/integrations/creds_manager.py +++ b/autogpt_platform/backend/backend/integrations/creds_manager.py @@ -1,13 +1,13 @@ import logging -from contextlib import contextmanager +from contextlib import asynccontextmanager from datetime import datetime -from typing import TYPE_CHECKING, Callable +from typing import TYPE_CHECKING, Any, Callable, Coroutine -from autogpt_libs.utils.synchronize import RedisKeyedMutex -from redis.lock import Lock as RedisLock +from autogpt_libs.utils.synchronize import AsyncRedisKeyedMutex +from redis.asyncio.lock import Lock as AsyncRedisLock -from backend.data import redis from backend.data.model import Credentials, OAuth2Credentials +from backend.data.redis import get_redis_async from backend.integrations.credentials_store import IntegrationCredentialsStore from backend.integrations.oauth import HANDLERS_BY_NAME from backend.integrations.providers import ProviderName @@ -54,20 +54,26 @@ class IntegrationCredentialsManager: """ def __init__(self): - redis_conn = redis.get_redis() - self._locks = RedisKeyedMutex(redis_conn) self.store = IntegrationCredentialsStore() + self._locks = None - def create(self, user_id: str, credentials: Credentials) -> None: - return self.store.add_creds(user_id, credentials) + async def locks(self) -> AsyncRedisKeyedMutex: + if self._locks: + return self._locks - def exists(self, user_id: str, credentials_id: str) -> bool: - return self.store.get_creds_by_id(user_id, credentials_id) is not None + self._locks = AsyncRedisKeyedMutex(await get_redis_async()) + return self._locks - def get( + async def create(self, user_id: str, credentials: Credentials) -> None: + return await self.store.add_creds(user_id, credentials) + + async def exists(self, user_id: str, credentials_id: str) -> bool: + return (await self.store.get_creds_by_id(user_id, credentials_id)) is not None + + async def get( self, user_id: str, credentials_id: str, lock: bool = True ) -> Credentials | None: - credentials = self.store.get_creds_by_id(user_id, credentials_id) + credentials = await self.store.get_creds_by_id(user_id, credentials_id) if not credentials: return None @@ -78,15 +84,15 @@ class IntegrationCredentialsManager: f"{datetime.fromtimestamp(credentials.access_token_expires_at)}; " f"current time is {datetime.now()}" ) - credentials = self.refresh_if_needed(user_id, credentials, lock) + credentials = await self.refresh_if_needed(user_id, credentials, lock) else: logger.debug(f"Credentials #{credentials.id} never expire") return credentials - def acquire( + async def acquire( self, user_id: str, credentials_id: str - ) -> tuple[Credentials, RedisLock]: + ) -> tuple[Credentials, AsyncRedisLock]: """ ⚠️ WARNING: this locks credentials system-wide and blocks both acquiring and updating them elsewhere until the lock is released. @@ -94,23 +100,25 @@ class IntegrationCredentialsManager: """ # Use a low-priority (!time_sensitive) locking queue on top of the general lock # to allow priority access for refreshing/updating the tokens. - with self._locked(user_id, credentials_id, "!time_sensitive"): - lock = self._acquire_lock(user_id, credentials_id) - credentials = self.get(user_id, credentials_id, lock=False) + async with self._locked(user_id, credentials_id, "!time_sensitive"): + lock = await self._acquire_lock(user_id, credentials_id) + credentials = await self.get(user_id, credentials_id, lock=False) if not credentials: raise ValueError( f"Credentials #{credentials_id} for user #{user_id} not found" ) return credentials, lock - def cached_getter(self, user_id: str) -> Callable[[str], "Credentials | None"]: + def cached_getter( + self, user_id: str + ) -> Callable[[str], "Coroutine[Any, Any, Credentials | None]"]: all_credentials = None - def get_credentials(creds_id: str) -> "Credentials | None": + async def get_credentials(creds_id: str) -> "Credentials | None": nonlocal all_credentials if not all_credentials: # Fetch credentials on first necessity - all_credentials = self.store.get_all_creds(user_id) + all_credentials = await self.store.get_all_creds(user_id) credential = next((c for c in all_credentials if c.id == creds_id), None) if not credential: @@ -120,15 +128,15 @@ class IntegrationCredentialsManager: return credential # Credential is OAuth2 credential and has expiration timestamp - return self.refresh_if_needed(user_id, credential) + return await self.refresh_if_needed(user_id, credential) return get_credentials - def refresh_if_needed( + async def refresh_if_needed( self, user_id: str, credentials: OAuth2Credentials, lock: bool = True ) -> OAuth2Credentials: - with self._locked(user_id, credentials.id, "refresh"): - oauth_handler = _get_provider_oauth_handler(credentials.provider) + async with self._locked(user_id, credentials.id, "refresh"): + oauth_handler = await _get_provider_oauth_handler(credentials.provider) if oauth_handler.needs_refresh(credentials): logger.debug( f"Refreshing '{credentials.provider}' " @@ -137,50 +145,53 @@ class IntegrationCredentialsManager: _lock = None if lock: # Wait until the credentials are no longer in use anywhere - _lock = self._acquire_lock(user_id, credentials.id) + _lock = await self._acquire_lock(user_id, credentials.id) - fresh_credentials = oauth_handler.refresh_tokens(credentials) - self.store.update_creds(user_id, fresh_credentials) - if _lock and _lock.locked() and _lock.owned(): - _lock.release() + fresh_credentials = await oauth_handler.refresh_tokens(credentials) + await self.store.update_creds(user_id, fresh_credentials) + if _lock and (await _lock.locked()) and (await _lock.owned()): + await _lock.release() credentials = fresh_credentials return credentials - def update(self, user_id: str, updated: Credentials) -> None: - with self._locked(user_id, updated.id): - self.store.update_creds(user_id, updated) + async def update(self, user_id: str, updated: Credentials) -> None: + async with self._locked(user_id, updated.id): + await self.store.update_creds(user_id, updated) - def delete(self, user_id: str, credentials_id: str) -> None: - with self._locked(user_id, credentials_id): - self.store.delete_creds_by_id(user_id, credentials_id) + async def delete(self, user_id: str, credentials_id: str) -> None: + async with self._locked(user_id, credentials_id): + await self.store.delete_creds_by_id(user_id, credentials_id) # -- Locking utilities -- # - def _acquire_lock(self, user_id: str, credentials_id: str, *args: str) -> RedisLock: + async def _acquire_lock( + self, user_id: str, credentials_id: str, *args: str + ) -> AsyncRedisLock: key = ( f"user:{user_id}", f"credentials:{credentials_id}", *args, ) - return self._locks.acquire(key) + locks = await self.locks() + return await locks.acquire(key) - @contextmanager - def _locked(self, user_id: str, credentials_id: str, *args: str): - lock = self._acquire_lock(user_id, credentials_id, *args) + @asynccontextmanager + async def _locked(self, user_id: str, credentials_id: str, *args: str): + lock = await self._acquire_lock(user_id, credentials_id, *args) try: yield finally: - if lock.locked() and lock.owned(): - lock.release() + if (await lock.locked()) and (await lock.owned()): + await lock.release() - def release_all_locks(self): + async def release_all_locks(self): """Call this on process termination to ensure all locks are released""" - self._locks.release_all_locks() - self.store.locks.release_all_locks() + await (await self.locks()).release_all_locks() + await (await self.store.locks()).release_all_locks() -def _get_provider_oauth_handler(provider_name_str: str) -> "BaseOAuthHandler": +async def _get_provider_oauth_handler(provider_name_str: str) -> "BaseOAuthHandler": provider_name = ProviderName(provider_name_str) if provider_name not in HANDLERS_BY_NAME: raise KeyError(f"Unknown provider '{provider_name}'") diff --git a/autogpt_platform/backend/backend/integrations/oauth/base.py b/autogpt_platform/backend/backend/integrations/oauth/base.py index fc6c68c161..b8d08582b2 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/base.py +++ b/autogpt_platform/backend/backend/integrations/oauth/base.py @@ -32,7 +32,7 @@ class BaseOAuthHandler(ABC): @abstractmethod # --8<-- [start:BaseOAuthHandler4] - def exchange_code_for_tokens( + async def exchange_code_for_tokens( self, code: str, scopes: list[str], code_verifier: Optional[str] ) -> OAuth2Credentials: # --8<-- [end:BaseOAuthHandler4] @@ -41,31 +41,33 @@ class BaseOAuthHandler(ABC): @abstractmethod # --8<-- [start:BaseOAuthHandler5] - def _refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def _refresh_tokens( + self, credentials: OAuth2Credentials + ) -> OAuth2Credentials: # --8<-- [end:BaseOAuthHandler5] """Implements the token refresh mechanism""" ... @abstractmethod # --8<-- [start:BaseOAuthHandler6] - def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: + async def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: # --8<-- [end:BaseOAuthHandler6] """Revokes the given token at provider, returns False provider does not support it""" ... - def refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: if credentials.provider != self.PROVIDER_NAME: raise ValueError( f"{self.__class__.__name__} can not refresh tokens " f"for other provider '{credentials.provider}'" ) - return self._refresh_tokens(credentials) + return await self._refresh_tokens(credentials) - def get_access_token(self, credentials: OAuth2Credentials) -> str: + async def get_access_token(self, credentials: OAuth2Credentials) -> str: """Returns a valid access token, refreshing it first if needed""" if self.needs_refresh(credentials): - credentials = self.refresh_tokens(credentials) + credentials = await self.refresh_tokens(credentials) return credentials.access_token.get_secret_value() def needs_refresh(self, credentials: OAuth2Credentials) -> bool: diff --git a/autogpt_platform/backend/backend/integrations/oauth/github.py b/autogpt_platform/backend/backend/integrations/oauth/github.py index 3358295170..ebec116660 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/github.py +++ b/autogpt_platform/backend/backend/integrations/oauth/github.py @@ -45,12 +45,14 @@ class GitHubOAuthHandler(BaseOAuthHandler): } return f"{self.auth_base_url}?{urlencode(params)}" - def exchange_code_for_tokens( + async def exchange_code_for_tokens( self, code: str, scopes: list[str], code_verifier: Optional[str] ) -> OAuth2Credentials: - return self._request_tokens({"code": code, "redirect_uri": self.redirect_uri}) + return await self._request_tokens( + {"code": code, "redirect_uri": self.redirect_uri} + ) - def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: + async def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: if not credentials.access_token: raise ValueError("No access token to revoke") @@ -59,7 +61,7 @@ class GitHubOAuthHandler(BaseOAuthHandler): "X-GitHub-Api-Version": "2022-11-28", } - Requests().delete( + await Requests().delete( url=self.revoke_url.format(client_id=self.client_id), auth=(self.client_id, self.client_secret), headers=headers, @@ -67,18 +69,20 @@ class GitHubOAuthHandler(BaseOAuthHandler): ) return True - def _refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def _refresh_tokens( + self, credentials: OAuth2Credentials + ) -> OAuth2Credentials: if not credentials.refresh_token: return credentials - return self._request_tokens( + return await self._request_tokens( { "refresh_token": credentials.refresh_token.get_secret_value(), "grant_type": "refresh_token", } ) - def _request_tokens( + async def _request_tokens( self, params: dict[str, str], current_credentials: Optional[OAuth2Credentials] = None, @@ -89,10 +93,12 @@ class GitHubOAuthHandler(BaseOAuthHandler): **params, } headers = {"Accept": "application/json"} - response = Requests().post(self.token_url, data=request_body, headers=headers) + response = await Requests().post( + self.token_url, data=request_body, headers=headers + ) token_data: dict = response.json() - username = self._request_username(token_data["access_token"]) + username = await self._request_username(token_data["access_token"]) now = int(time.time()) new_credentials = OAuth2Credentials( @@ -124,7 +130,7 @@ class GitHubOAuthHandler(BaseOAuthHandler): new_credentials.id = current_credentials.id return new_credentials - def _request_username(self, access_token: str) -> str | None: + async def _request_username(self, access_token: str) -> str | None: url = "https://api.github.com/user" headers = { "Accept": "application/vnd.github+json", @@ -132,13 +138,14 @@ class GitHubOAuthHandler(BaseOAuthHandler): "X-GitHub-Api-Version": "2022-11-28", } - response = Requests().get(url, headers=headers) + response = await Requests().get(url, headers=headers) if not response.ok: return None # Get the login (username) - return response.json().get("login") + resp = response.json() + return resp.get("login") # --8<-- [end:GithubOAuthHandlerExample] diff --git a/autogpt_platform/backend/backend/integrations/oauth/google.py b/autogpt_platform/backend/backend/integrations/oauth/google.py index 4de5c7365a..bba2bc71c5 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/google.py +++ b/autogpt_platform/backend/backend/integrations/oauth/google.py @@ -54,7 +54,7 @@ class GoogleOAuthHandler(BaseOAuthHandler): ) return authorization_url - def exchange_code_for_tokens( + async def exchange_code_for_tokens( self, code: str, scopes: list[str], code_verifier: Optional[str] ) -> OAuth2Credentials: logger.debug(f"Exchanging code for tokens with scopes: {scopes}") @@ -106,7 +106,7 @@ class GoogleOAuthHandler(BaseOAuthHandler): return credentials - def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: + async def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: session = AuthorizedSession(credentials) session.post( self.revoke_uri, @@ -127,7 +127,9 @@ class GoogleOAuthHandler(BaseOAuthHandler): return None return response.json()["email"] - def _refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def _refresh_tokens( + self, credentials: OAuth2Credentials + ) -> OAuth2Credentials: # Google credentials should ALWAYS have a refresh token assert credentials.refresh_token diff --git a/autogpt_platform/backend/backend/integrations/oauth/linear.py b/autogpt_platform/backend/backend/integrations/oauth/linear.py index afc84da22e..09e3c6d537 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/linear.py +++ b/autogpt_platform/backend/backend/integrations/oauth/linear.py @@ -40,12 +40,14 @@ class LinearOAuthHandler(BaseOAuthHandler): } return f"{self.auth_base_url}?{urlencode(params)}" - def exchange_code_for_tokens( + async def exchange_code_for_tokens( self, code: str, scopes: list[str], code_verifier: Optional[str] ) -> OAuth2Credentials: - return self._request_tokens({"code": code, "redirect_uri": self.redirect_uri}) + return await self._request_tokens( + {"code": code, "redirect_uri": self.redirect_uri} + ) - def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: + async def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: if not credentials.access_token: raise ValueError("No access token to revoke") @@ -53,7 +55,7 @@ class LinearOAuthHandler(BaseOAuthHandler): "Authorization": f"Bearer {credentials.access_token.get_secret_value()}" } - response = Requests().post(self.revoke_url, headers=headers) + response = await Requests().post(self.revoke_url, headers=headers) if not response.ok: try: error_data = response.json() @@ -61,26 +63,28 @@ class LinearOAuthHandler(BaseOAuthHandler): except json.JSONDecodeError: error_message = response.text raise LinearAPIException( - f"Failed to revoke Linear tokens ({response.status_code}): {error_message}", - response.status_code, + f"Failed to revoke Linear tokens ({response.status}): {error_message}", + response.status, ) return True # Linear doesn't return JSON on successful revoke - def _refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def _refresh_tokens( + self, credentials: OAuth2Credentials + ) -> OAuth2Credentials: if not credentials.refresh_token: raise ValueError( "No refresh token available." ) # Linear uses non-expiring tokens - return self._request_tokens( + return await self._request_tokens( { "refresh_token": credentials.refresh_token.get_secret_value(), "grant_type": "refresh_token", } ) - def _request_tokens( + async def _request_tokens( self, params: dict[str, str], current_credentials: Optional[OAuth2Credentials] = None, @@ -95,18 +99,19 @@ class LinearOAuthHandler(BaseOAuthHandler): headers = { "Content-Type": "application/x-www-form-urlencoded" } # Correct header for token request - response = Requests().post(self.token_url, data=request_body, headers=headers) + response = await Requests().post( + self.token_url, data=request_body, headers=headers + ) if not response.ok: try: error_data = response.json() error_message = error_data.get("error", "Unknown error") - except json.JSONDecodeError: error_message = response.text raise LinearAPIException( - f"Failed to fetch Linear tokens ({response.status_code}): {error_message}", - response.status_code, + f"Failed to fetch Linear tokens ({response.status}): {error_message}", + response.status, ) token_data = response.json() @@ -132,13 +137,11 @@ class LinearOAuthHandler(BaseOAuthHandler): new_credentials.id = current_credentials.id return new_credentials - def _request_username(self, access_token: str) -> Optional[str]: - + async def _request_username(self, access_token: str) -> Optional[str]: # Use the LinearClient to fetch user details using GraphQL from backend.blocks.linear._api import LinearClient try: - linear_client = LinearClient( APIKeyCredentials( api_key=SecretStr(access_token), @@ -156,10 +159,9 @@ class LinearOAuthHandler(BaseOAuthHandler): } """ - response = linear_client.query(query) + response = await linear_client.query(query) return response["viewer"]["name"] except Exception as e: # Handle any errors - print(f"Error fetching username: {e}") return None diff --git a/autogpt_platform/backend/backend/integrations/oauth/notion.py b/autogpt_platform/backend/backend/integrations/oauth/notion.py index 10f699d61f..67fc5bcc25 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/notion.py +++ b/autogpt_platform/backend/backend/integrations/oauth/notion.py @@ -39,7 +39,7 @@ class NotionOAuthHandler(BaseOAuthHandler): } return f"{self.auth_base_url}?{urlencode(params)}" - def exchange_code_for_tokens( + async def exchange_code_for_tokens( self, code: str, scopes: list[str], code_verifier: Optional[str] ) -> OAuth2Credentials: request_body = { @@ -52,7 +52,9 @@ class NotionOAuthHandler(BaseOAuthHandler): "Authorization": f"Basic {auth_str}", "Accept": "application/json", } - response = Requests().post(self.token_url, json=request_body, headers=headers) + response = await Requests().post( + self.token_url, json=request_body, headers=headers + ) token_data = response.json() # Email is only available for non-bot users email = ( @@ -80,11 +82,13 @@ class NotionOAuthHandler(BaseOAuthHandler): }, ) - def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: + async def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: # Notion doesn't support token revocation return False - def _refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def _refresh_tokens( + self, credentials: OAuth2Credentials + ) -> OAuth2Credentials: # Notion doesn't support token refresh return credentials diff --git a/autogpt_platform/backend/backend/integrations/oauth/todoist.py b/autogpt_platform/backend/backend/integrations/oauth/todoist.py index 014be26332..66d34f95e8 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/todoist.py +++ b/autogpt_platform/backend/backend/integrations/oauth/todoist.py @@ -35,7 +35,7 @@ class TodoistOAuthHandler(BaseOAuthHandler): return f"{self.AUTHORIZE_URL}?{urllib.parse.urlencode(params)}" - def exchange_code_for_tokens( + async def exchange_code_for_tokens( self, code: str, scopes: list[str], code_verifier: Optional[str] ) -> OAuth2Credentials: """Exchange authorization code for access tokens""" @@ -47,17 +47,14 @@ class TodoistOAuthHandler(BaseOAuthHandler): "redirect_uri": self.redirect_uri, } - response = Requests().post(self.TOKEN_URL, data=data) - response.raise_for_status() - + response = await Requests().post(self.TOKEN_URL, data=data) tokens = response.json() - response = Requests().post( + response = await Requests().post( "https://api.todoist.com/sync/v9/sync", headers={"Authorization": f"Bearer {tokens['access_token']}"}, data={"sync_token": "*", "resource_types": '["user"]'}, ) - response.raise_for_status() user_info = response.json() user_email = user_info["user"].get("email") @@ -72,9 +69,11 @@ class TodoistOAuthHandler(BaseOAuthHandler): scopes=scopes, ) - def _refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def _refresh_tokens( + self, credentials: OAuth2Credentials + ) -> OAuth2Credentials: # Todoist does not support token refresh return credentials - def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: + async def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: return False diff --git a/autogpt_platform/backend/backend/integrations/oauth/twitter.py b/autogpt_platform/backend/backend/integrations/oauth/twitter.py index 8645c0814c..486c14a210 100644 --- a/autogpt_platform/backend/backend/integrations/oauth/twitter.py +++ b/autogpt_platform/backend/backend/integrations/oauth/twitter.py @@ -4,7 +4,7 @@ from typing import ClassVar, Optional from backend.data.model import OAuth2Credentials, ProviderName from backend.integrations.oauth.base import BaseOAuthHandler -from backend.util.request import Requests, req +from backend.util.request import Requests class TwitterOAuthHandler(BaseOAuthHandler): @@ -61,7 +61,7 @@ class TwitterOAuthHandler(BaseOAuthHandler): return f"{self.AUTHORIZE_URL}?{urllib.parse.urlencode(params)}" - def exchange_code_for_tokens( + async def exchange_code_for_tokens( self, code: str, scopes: list[str], code_verifier: Optional[str] ) -> OAuth2Credentials: """Exchange authorization code for access tokens""" @@ -77,14 +77,12 @@ class TwitterOAuthHandler(BaseOAuthHandler): auth = (self.client_id, self.client_secret) - response = Requests().post( + response = await Requests().post( self.TOKEN_URL, headers=headers, data=data, auth=auth ) - response.raise_for_status() - tokens = response.json() - username = self._get_username(tokens["access_token"]) + username = await self._get_username(tokens["access_token"]) return OAuth2Credentials( provider=self.PROVIDER_NAME, @@ -97,20 +95,21 @@ class TwitterOAuthHandler(BaseOAuthHandler): scopes=scopes, ) - def _get_username(self, access_token: str) -> str: + async def _get_username(self, access_token: str) -> str: """Get the username from the access token""" headers = {"Authorization": f"Bearer {access_token}"} params = {"user.fields": "username"} - response = Requests().get( + response = await Requests().get( f"{self.USERNAME_URL}?{urllib.parse.urlencode(params)}", headers=headers ) - response.raise_for_status() return response.json()["data"]["username"] - def _refresh_tokens(self, credentials: OAuth2Credentials) -> OAuth2Credentials: + async def _refresh_tokens( + self, credentials: OAuth2Credentials + ) -> OAuth2Credentials: """Refresh access tokens using refresh token""" if not credentials.refresh_token: raise ValueError("No refresh token available") @@ -123,17 +122,19 @@ class TwitterOAuthHandler(BaseOAuthHandler): auth = (self.client_id, self.client_secret) - response = Requests().post(self.TOKEN_URL, headers=header, data=data, auth=auth) + response = await Requests().post( + self.TOKEN_URL, headers=header, data=data, auth=auth + ) - try: - response.raise_for_status() - except req.exceptions.HTTPError: - print(f"HTTP Error: {response.status_code}") - raise + if not response.ok: + error_text = response.text + print("HTTP Error:", response.status) + print("Response Content:", error_text) + raise ValueError(f"HTTP Error: {response.status} - {error_text}") tokens = response.json() - username = self._get_username(tokens["access_token"]) + username = await self._get_username(tokens["access_token"]) return OAuth2Credentials( id=credentials.id, @@ -147,7 +148,7 @@ class TwitterOAuthHandler(BaseOAuthHandler): refresh_token_expires_at=None, ) - def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: + async def revoke_tokens(self, credentials: OAuth2Credentials) -> bool: """Revoke the access token""" header = {"Content-Type": "application/x-www-form-urlencoded"} @@ -159,14 +160,14 @@ class TwitterOAuthHandler(BaseOAuthHandler): auth = (self.client_id, self.client_secret) - response = Requests().post( + response = await Requests().post( self.REVOKE_URL, headers=header, data=data, auth=auth ) - try: - response.raise_for_status() - except req.exceptions.HTTPError: - print(f"HTTP Error: {response.status_code}") - raise + if not response.ok: + error_text = response.text + print("HTTP Error:", response.status) + print("Response Content:", error_text) + raise ValueError(f"HTTP Error: {response.status} - {error_text}") - return response.status_code == 200 + return response.ok diff --git a/autogpt_platform/backend/backend/integrations/webhooks/github.py b/autogpt_platform/backend/backend/integrations/webhooks/github.py index 90cb06d303..5d2977cacc 100644 --- a/autogpt_platform/backend/backend/integrations/webhooks/github.py +++ b/autogpt_platform/backend/backend/integrations/webhooks/github.py @@ -8,7 +8,7 @@ from strenum import StrEnum from backend.data import integrations from backend.data.model import Credentials from backend.integrations.providers import ProviderName -from backend.util.request import Requests, req +from backend.util.request import Requests, Response from ._base import BaseWebhooksManager @@ -73,9 +73,9 @@ class GithubWebhooksManager(BaseWebhooksManager): repo, github_hook_id = webhook.resource, webhook.provider_webhook_id ping_url = f"{self.GITHUB_API_URL}/repos/{repo}/hooks/{github_hook_id}/pings" - response = Requests().post(ping_url, headers=headers) + response = await Requests().post(ping_url, headers=headers) - if response.status_code != 204: + if response.status != 204: error_msg = extract_github_error_msg(response) raise ValueError(f"Failed to ping GitHub webhook: {error_msg}") @@ -110,13 +110,13 @@ class GithubWebhooksManager(BaseWebhooksManager): }, } - response = Requests().post( + response = await Requests().post( f"{self.GITHUB_API_URL}/repos/{resource}/hooks", headers=headers, json=webhook_data, ) - if response.status_code != 201: + if response.status != 201: error_msg = extract_github_error_msg(response) if "not found" in error_msg.lower(): error_msg = ( @@ -126,8 +126,9 @@ class GithubWebhooksManager(BaseWebhooksManager): ) raise ValueError(f"Failed to create GitHub webhook: {error_msg}") - webhook_id = response.json()["id"] - config = response.json()["config"] + resp = response.json() + webhook_id = resp["id"] + config = resp["config"] return str(webhook_id), config @@ -153,9 +154,9 @@ class GithubWebhooksManager(BaseWebhooksManager): f"Unsupported webhook type '{webhook.webhook_type}'" ) - response = Requests().delete(delete_url, headers=headers) + response = await Requests().delete(delete_url, headers=headers) - if response.status_code not in [204, 404]: + if response.status not in [204, 404]: # 204 means successful deletion, 404 means the webhook was already deleted error_msg = extract_github_error_msg(response) raise ValueError(f"Failed to delete GitHub webhook: {error_msg}") @@ -166,7 +167,7 @@ class GithubWebhooksManager(BaseWebhooksManager): # --8<-- [end:GithubWebhooksManager] -def extract_github_error_msg(response: req.Response) -> str: +def extract_github_error_msg(response: Response) -> str: error_msgs = [] resp = response.json() if resp.get("message"): diff --git a/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py b/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py index 898c6772bb..01e7b3a49e 100644 --- a/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py +++ b/autogpt_platform/backend/backend/integrations/webhooks/graph_lifecycle_hooks.py @@ -37,7 +37,7 @@ async def on_graph_activate(graph: "GraphModel", user_id: str): ) ) and (creds_meta := new_node.input_default.get(creds_field_name)) - and not (node_credentials := get_credentials(creds_meta["id"])) + and not (node_credentials := await get_credentials(creds_meta["id"])) ): raise ValueError( f"Node #{new_node.id} input '{creds_field_name}' updated with " @@ -74,7 +74,7 @@ async def on_graph_deactivate(graph: "GraphModel", user_id: str): ) ) and (creds_meta := node.input_default.get(creds_field_name)) - and not (node_credentials := get_credentials(creds_meta["id"])) + and not (node_credentials := await get_credentials(creds_meta["id"])) ): logger.error( f"Node #{node.id} input '{creds_field_name}' referenced non-existent " diff --git a/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py b/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py index 7c923435a9..bc0337d4c5 100644 --- a/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py +++ b/autogpt_platform/backend/backend/integrations/webhooks/slant3d.py @@ -39,7 +39,7 @@ class Slant3DWebhooksManager(BaseWebhooksManager): # Slant3D's API doesn't use events list, just register for all order updates payload = {"endPoint": ingress_url} - response = Requests().post( + response = await Requests().post( f"{self.BASE_URL}/customer/webhookSubscribe", headers=headers, json=payload ) diff --git a/autogpt_platform/backend/backend/notifications/notifications.py b/autogpt_platform/backend/backend/notifications/notifications.py index 808a8cb699..dbbd8fe075 100644 --- a/autogpt_platform/backend/backend/notifications/notifications.py +++ b/autogpt_platform/backend/backend/notifications/notifications.py @@ -1,6 +1,6 @@ +import asyncio import logging -import time -from concurrent.futures import ThreadPoolExecutor +from concurrent.futures import ProcessPoolExecutor from datetime import datetime, timedelta, timezone from typing import Callable @@ -39,9 +39,11 @@ from backend.data.user import generate_unsubscribe_link from backend.notifications.email import EmailSender from backend.util.logging import TruncatedLogger from backend.util.metrics import discord_send_alert +from backend.util.retry import continuous_retry from backend.util.service import ( AppService, AppServiceClient, + endpoint_to_sync, expose, get_service_client, ) @@ -55,7 +57,7 @@ NOTIFICATION_EXCHANGE = Exchange(name="notifications", type=ExchangeType.TOPIC) DEAD_LETTER_EXCHANGE = Exchange(name="dead_letter", type=ExchangeType.TOPIC) EXCHANGES = [NOTIFICATION_EXCHANGE, DEAD_LETTER_EXCHANGE] -background_executor = ThreadPoolExecutor(max_workers=2) +background_executor = ProcessPoolExecutor(max_workers=2) def create_notification_config() -> RabbitMQConfig: @@ -231,9 +233,9 @@ class NotificationManager(AppService): @expose def queue_weekly_summary(self): - background_executor.submit(self._queue_weekly_summary) + background_executor.submit(lambda: asyncio.run(self._queue_weekly_summary())) - def _queue_weekly_summary(self): + async def _queue_weekly_summary(self): """Process weekly summary for specified notification types""" try: logger.info("Processing weekly summary queuing operation") @@ -245,8 +247,7 @@ class NotificationManager(AppService): start_time=start_time.isoformat(), ) for user in users: - - self._queue_scheduled_notification( + await self._queue_scheduled_notification( SummaryParamsEventModel( user_id=user, type=NotificationType.WEEKLY_SUMMARY, @@ -387,10 +388,10 @@ class NotificationManager(AppService): } @expose - def discord_system_alert(self, content: str): - discord_send_alert(content) + async def discord_system_alert(self, content: str): + await discord_send_alert(content) - def _queue_scheduled_notification(self, event: SummaryParamsEventModel): + async def _queue_scheduled_notification(self, event: SummaryParamsEventModel): """Queue a scheduled notification - exposed method for other services to call""" try: logger.debug(f"Received Request to queue scheduled notification {event=}") @@ -399,12 +400,10 @@ class NotificationManager(AppService): routing_key = get_routing_key(event.type) # Publish to RabbitMQ - self.run_and_wait( - self.rabbit.publish_message( - routing_key=routing_key, - message=event.model_dump_json(), - exchange=next(ex for ex in EXCHANGES if ex.name == exchange), - ) + await self.rabbit.publish_message( + routing_key=routing_key, + message=event.model_dump_json(), + exchange=next(ex for ex in EXCHANGES if ex.name == exchange), ) except Exception as e: @@ -695,7 +694,7 @@ class NotificationManager(AppService): logger.exception(f"Error processing notification for summary queue: {e}") return False - def _run_queue( + async def _run_queue( self, queue: aio_pika.abc.AbstractQueue, process_func: Callable[[str], bool], @@ -704,12 +703,12 @@ class NotificationManager(AppService): message: aio_pika.abc.AbstractMessage | None = None try: # This parameter "no_ack" is named like shit, think of it as "auto_ack" - message = self.run_and_wait(queue.get(timeout=1.0, no_ack=False)) + message = await queue.get(timeout=1.0, no_ack=False) result = process_func(message.body.decode()) if result: - self.run_and_wait(message.ack()) + await message.ack() else: - self.run_and_wait(message.reject(requeue=False)) + await message.reject(requeue=False) except QueueEmpty: logger.debug(f"Queue {error_queue_name} empty") @@ -720,61 +719,58 @@ class NotificationManager(AppService): logger.error( f"Error in notification service loop, message rejected {e}" ) - self.run_and_wait(message.reject(requeue=False)) + await message.reject(requeue=False) else: logger.exception( f"Error in notification service loop, message unable to be rejected, and will have to be manually removed to free space in the queue: {e=}" ) + @continuous_retry() def run_service(self): + self.run_and_wait(self._run_service()) + + async def _run_service(self): logger.info(f"[{self.service_name}] ⏳ Configuring RabbitMQ...") self.rabbitmq_service = rabbitmq.AsyncRabbitMQ(self.rabbitmq_config) - self.run_and_wait(self.rabbitmq_service.connect()) + await self.rabbitmq_service.connect() logger.info(f"[{self.service_name}] Started notification service") # Set up queue consumers - channel = self.run_and_wait(self.rabbit.get_channel()) + channel = await self.rabbit.get_channel() - immediate_queue = self.run_and_wait( - channel.get_queue("immediate_notifications") - ) - batch_queue = self.run_and_wait(channel.get_queue("batch_notifications")) + immediate_queue = await channel.get_queue("immediate_notifications") + batch_queue = await channel.get_queue("batch_notifications") - admin_queue = self.run_and_wait(channel.get_queue("admin_notifications")) + admin_queue = await channel.get_queue("admin_notifications") - summary_queue = self.run_and_wait(channel.get_queue("summary_notifications")) + summary_queue = await channel.get_queue("summary_notifications") while self.running: try: - self._run_queue( + await self._run_queue( queue=immediate_queue, process_func=self._process_immediate, error_queue_name="immediate_notifications", ) - self._run_queue( + await self._run_queue( queue=admin_queue, process_func=self._process_admin_message, error_queue_name="admin_notifications", ) - self._run_queue( + await self._run_queue( queue=batch_queue, process_func=self._process_batch, error_queue_name="batch_notifications", ) - - self._run_queue( + await self._run_queue( queue=summary_queue, process_func=self._process_summary, error_queue_name="summary_notifications", ) - - time.sleep(0.1) - + await asyncio.sleep(0.1) except QueueEmpty as e: logger.debug(f"Queue empty: {e}") - except Exception as e: - logger.error(f"Error in notification service loop: {e}") def cleanup(self): """Cleanup service resources""" @@ -791,4 +787,4 @@ class NotificationManagerClient(AppServiceClient): process_existing_batches = NotificationManager.process_existing_batches queue_weekly_summary = NotificationManager.queue_weekly_summary - discord_system_alert = NotificationManager.discord_system_alert + discord_system_alert = endpoint_to_sync(NotificationManager.discord_system_alert) diff --git a/autogpt_platform/backend/backend/server/external/routes/v1.py b/autogpt_platform/backend/backend/server/external/routes/v1.py index 15fe8dc7ee..baf77c0e75 100644 --- a/autogpt_platform/backend/backend/server/external/routes/v1.py +++ b/autogpt_platform/backend/backend/server/external/routes/v1.py @@ -12,7 +12,7 @@ from backend.data import graph as graph_db from backend.data.api_key import APIKey from backend.data.block import BlockInput, CompletedBlockOutput from backend.data.execution import NodeExecutionResult -from backend.executor.utils import add_graph_execution_async +from backend.executor.utils import add_graph_execution from backend.server.external.middleware import require_permission from backend.util.settings import Settings @@ -71,7 +71,7 @@ def get_graph_blocks() -> Sequence[dict[Any, Any]]: tags=["blocks"], dependencies=[Depends(require_permission(APIKeyPermission.EXECUTE_BLOCK))], ) -def execute_graph_block( +async def execute_graph_block( block_id: str, data: BlockInput, api_key: APIKey = Depends(require_permission(APIKeyPermission.EXECUTE_BLOCK)), @@ -81,7 +81,7 @@ def execute_graph_block( raise HTTPException(status_code=404, detail=f"Block #{block_id} not found.") output = defaultdict(list) - for name, data in obj.execute(data): + async for name, data in obj.execute(data): output[name].append(data) return output @@ -97,7 +97,7 @@ async def execute_graph( api_key: APIKey = Depends(require_permission(APIKeyPermission.EXECUTE_GRAPH)), ) -> dict[str, Any]: try: - graph_exec = await add_graph_execution_async( + graph_exec = await add_graph_execution( graph_id=graph_id, user_id=api_key.user_id, inputs=node_input, diff --git a/autogpt_platform/backend/backend/server/integrations/router.py b/autogpt_platform/backend/backend/server/integrations/router.py index 4739bd8417..26f33eba37 100644 --- a/autogpt_platform/backend/backend/server/integrations/router.py +++ b/autogpt_platform/backend/backend/server/integrations/router.py @@ -15,7 +15,7 @@ from backend.data.integrations import ( wait_for_webhook_event, ) from backend.data.model import Credentials, CredentialsType, OAuth2Credentials -from backend.executor.utils import add_graph_execution_async +from backend.executor.utils import add_graph_execution from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.integrations.oauth import HANDLERS_BY_NAME from backend.integrations.providers import ProviderName @@ -41,7 +41,7 @@ class LoginResponse(BaseModel): @router.get("/{provider}/login") -def login( +async def login( provider: Annotated[ ProviderName, Path(title="The provider to initiate an OAuth flow for") ], @@ -56,7 +56,7 @@ def login( requested_scopes = scopes.split(",") if scopes else [] # Generate and store a secure random state token along with the scopes - state_token, code_challenge = creds_manager.store.store_state_token( + state_token, code_challenge = await creds_manager.store.store_state_token( user_id, provider, requested_scopes ) login_url = handler.get_login_url( @@ -76,7 +76,7 @@ class CredentialsMetaResponse(BaseModel): @router.post("/{provider}/callback") -def callback( +async def callback( provider: Annotated[ ProviderName, Path(title="The target provider for this OAuth exchange") ], @@ -89,7 +89,9 @@ def callback( handler = _get_provider_oauth_handler(request, provider) # Verify the state token - valid_state = creds_manager.store.verify_state_token(user_id, state_token, provider) + valid_state = await creds_manager.store.verify_state_token( + user_id, state_token, provider + ) if not valid_state: logger.warning(f"Invalid or expired state token for user {user_id}") @@ -100,7 +102,7 @@ def callback( scopes = handler.handle_default_scopes(scopes) - credentials = handler.exchange_code_for_tokens( + credentials = await handler.exchange_code_for_tokens( code, scopes, valid_state.code_verifier ) @@ -134,7 +136,7 @@ def callback( ) # TODO: Allow specifying `title` to set on `credentials` - creds_manager.create(user_id, credentials) + await creds_manager.create(user_id, credentials) logger.debug( f"Successfully processed OAuth callback for user {user_id} " @@ -151,10 +153,10 @@ def callback( @router.get("/credentials") -def list_credentials( +async def list_credentials( user_id: Annotated[str, Depends(get_user_id)], ) -> list[CredentialsMetaResponse]: - credentials = creds_manager.store.get_all_creds(user_id) + credentials = await creds_manager.store.get_all_creds(user_id) return [ CredentialsMetaResponse( id=cred.id, @@ -169,13 +171,13 @@ def list_credentials( @router.get("/{provider}/credentials") -def list_credentials_by_provider( +async def list_credentials_by_provider( provider: Annotated[ ProviderName, Path(title="The provider to list credentials for") ], user_id: Annotated[str, Depends(get_user_id)], ) -> list[CredentialsMetaResponse]: - credentials = creds_manager.store.get_creds_by_provider(user_id, provider) + credentials = await creds_manager.store.get_creds_by_provider(user_id, provider) return [ CredentialsMetaResponse( id=cred.id, @@ -190,14 +192,14 @@ def list_credentials_by_provider( @router.get("/{provider}/credentials/{cred_id}") -def get_credential( +async def get_credential( provider: Annotated[ ProviderName, Path(title="The provider to retrieve credentials for") ], cred_id: Annotated[str, Path(title="The ID of the credentials to retrieve")], user_id: Annotated[str, Depends(get_user_id)], ) -> Credentials: - credential = creds_manager.get(user_id, cred_id) + credential = await creds_manager.get(user_id, cred_id) if not credential: raise HTTPException(status_code=404, detail="Credentials not found") if credential.provider != provider: @@ -208,7 +210,7 @@ def get_credential( @router.post("/{provider}/credentials", status_code=201) -def create_credentials( +async def create_credentials( user_id: Annotated[str, Depends(get_user_id)], provider: Annotated[ ProviderName, Path(title="The provider to create credentials for") @@ -217,7 +219,7 @@ def create_credentials( ) -> Credentials: credentials.provider = provider try: - creds_manager.create(user_id, credentials) + await creds_manager.create(user_id, credentials) except Exception as e: raise HTTPException( status_code=500, detail=f"Failed to store credentials: {str(e)}" @@ -252,7 +254,7 @@ async def delete_credentials( bool, Query(title="Whether to proceed if any linked webhooks are still in use") ] = False, ) -> CredentialsDeletionResponse | CredentialsDeletionNeedsConfirmationResponse: - creds = creds_manager.store.get_creds_by_id(user_id, cred_id) + creds = await creds_manager.store.get_creds_by_id(user_id, cred_id) if not creds: raise HTTPException(status_code=404, detail="Credentials not found") if creds.provider != provider: @@ -265,12 +267,12 @@ async def delete_credentials( except NeedConfirmation as e: return CredentialsDeletionNeedsConfirmationResponse(message=str(e)) - creds_manager.delete(user_id, cred_id) + await creds_manager.delete(user_id, cred_id) tokens_revoked = None if isinstance(creds, OAuth2Credentials): handler = _get_provider_oauth_handler(request, provider) - tokens_revoked = handler.revoke_tokens(creds) + tokens_revoked = await handler.revoke_tokens(creds) return CredentialsDeletionResponse(revoked=tokens_revoked) @@ -329,7 +331,7 @@ async def webhook_ingress_generic( continue logger.debug(f"Executing graph #{node.graph_id} node #{node.id}") executions.append( - add_graph_execution_async( + add_graph_execution( user_id=webhook.user_id, graph_id=node.graph_id, graph_version=node.graph_version, @@ -348,7 +350,7 @@ async def webhook_ping( webhook_manager = get_webhook_manager(webhook.provider) credentials = ( - creds_manager.get(user_id, webhook.credentials_id) + await creds_manager.get(user_id, webhook.credentials_id) if webhook.credentials_id else None ) diff --git a/autogpt_platform/backend/backend/server/rest_api.py b/autogpt_platform/backend/backend/server/rest_api.py index 9214c00ab2..7ebbab9c4a 100644 --- a/autogpt_platform/backend/backend/server/rest_api.py +++ b/autogpt_platform/backend/backend/server/rest_api.py @@ -320,14 +320,14 @@ class AgentServer(backend.util.service.AppProcess): ) @staticmethod - def test_create_credentials( + async def test_create_credentials( user_id: str, provider: ProviderName, credentials: Credentials, ) -> Credentials: from backend.server.integrations.router import create_credentials - return create_credentials( + return await create_credentials( user_id=user_id, provider=provider, credentials=credentials ) diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/server/routers/v1.py index d9d39e4666..1b9d804b54 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/server/routers/v1.py @@ -50,7 +50,6 @@ from backend.data.onboarding import ( onboarding_enabled, update_user_onboarding, ) -from backend.data.rabbitmq import AsyncRabbitMQ from backend.data.user import ( get_or_create_user, get_user_notification_preference, @@ -59,7 +58,6 @@ from backend.data.user import ( ) from backend.executor import scheduler from backend.executor import utils as execution_utils -from backend.executor.utils import create_execution_queue_config from backend.integrations.webhooks.graph_lifecycle_hooks import ( on_graph_activate, on_graph_deactivate, @@ -83,13 +81,6 @@ def execution_scheduler_client() -> scheduler.SchedulerClient: return get_service_client(scheduler.SchedulerClient, health_check=False) -@thread_cached -async def execution_queue_client() -> AsyncRabbitMQ: - client = AsyncRabbitMQ(create_execution_queue_config()) - await client.connect() - return client - - @thread_cached def execution_event_bus() -> AsyncRedisExecutionEventBus: return AsyncRedisExecutionEventBus() @@ -224,13 +215,13 @@ def get_graph_blocks() -> Sequence[dict[Any, Any]]: tags=["blocks"], dependencies=[Depends(auth_middleware)], ) -def execute_graph_block(block_id: str, data: BlockInput) -> CompletedBlockOutput: +async def execute_graph_block(block_id: str, data: BlockInput) -> CompletedBlockOutput: obj = get_block(block_id) if not obj: raise HTTPException(status_code=404, detail=f"Block #{block_id} not found.") output = defaultdict(list) - for name, data in obj.execute(data): + async for name, data in obj.execute(data): output[name].append(data) return output @@ -582,7 +573,7 @@ async def execute_graph( detail="Insufficient balance to execute the agent. Please top up your account.", ) - graph_exec = await execution_utils.add_graph_execution_async( + graph_exec = await execution_utils.add_graph_execution( graph_id=graph_id, user_id=user_id, inputs=inputs, @@ -606,7 +597,7 @@ async def stop_graph_run( ): raise HTTPException(404, detail=f"Agent execution #{graph_exec_id} not found") - await _cancel_execution(graph_exec_id) + await execution_utils.stop_graph_execution(graph_exec_id) # Retrieve & return canceled graph execution in its final state result = await execution_db.get_graph_execution( @@ -620,52 +611,6 @@ async def stop_graph_run( return result -async def _cancel_execution(graph_exec_id: str): - """ - Mechanism: - 1. Set the cancel event - 2. Graph executor's cancel handler thread detects the event, terminates workers, - reinitializes worker pool, and returns. - 3. Update execution statuses in DB and set `error` outputs to `"TERMINATED"`. - """ - queue_client = await execution_queue_client() - await queue_client.publish_message( - routing_key="", - message=execution_utils.CancelExecutionEvent( - graph_exec_id=graph_exec_id - ).model_dump_json(), - exchange=execution_utils.GRAPH_EXECUTION_CANCEL_EXCHANGE, - ) - - # Update the status of the graph execution - graph_execution = await execution_db.update_graph_execution_stats( - graph_exec_id, - execution_db.ExecutionStatus.TERMINATED, - ) - if graph_execution: - await execution_event_bus().publish(graph_execution) - - # Update the status of the node executions - node_execs = [ - node_exec.model_copy(update={"status": execution_db.ExecutionStatus.TERMINATED}) - for node_exec in await execution_db.get_node_executions( - graph_exec_id=graph_exec_id, - statuses=[ - execution_db.ExecutionStatus.QUEUED, - execution_db.ExecutionStatus.RUNNING, - execution_db.ExecutionStatus.INCOMPLETE, - ], - ) - ] - await execution_db.update_node_execution_status_batch( - [node_exec.node_exec_id for node_exec in node_execs], - execution_db.ExecutionStatus.TERMINATED, - ) - await asyncio.gather( - *[execution_event_bus().publish(node_exec) for node_exec in node_execs] - ) - - @v1_router.get( path="/executions", tags=["graphs"], diff --git a/autogpt_platform/backend/backend/server/routers/v1_test.py b/autogpt_platform/backend/backend/server/routers/v1_test.py index 17c06b5778..cddee98273 100644 --- a/autogpt_platform/backend/backend/server/routers/v1_test.py +++ b/autogpt_platform/backend/backend/server/routers/v1_test.py @@ -137,10 +137,12 @@ def test_execute_graph_block( """Test execute block endpoint""" # Mock block mock_block = Mock() - mock_block.execute.return_value = [ - ("output1", {"data": "result1"}), - ("output2", {"data": "result2"}), - ] + + async def mock_execute(*args, **kwargs): + yield "output1", {"data": "result1"} + yield "output2", {"data": "result2"} + + mock_block.execute = mock_execute mocker.patch( "backend.server.routers.v1.get_block", diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py b/autogpt_platform/backend/backend/server/v2/library/routes/presets.py index 504f46e088..9df8df3c2b 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py +++ b/autogpt_platform/backend/backend/server/v2/library/routes/presets.py @@ -6,7 +6,7 @@ from fastapi import APIRouter, Body, Depends, HTTPException, Query, status import backend.server.v2.library.db as db import backend.server.v2.library.model as models -from backend.executor.utils import add_graph_execution_async +from backend.executor.utils import add_graph_execution from backend.util.exceptions import NotFoundError logger = logging.getLogger(__name__) @@ -245,7 +245,7 @@ async def execute_preset( # Merge input overrides with preset inputs merged_node_input = preset.inputs | node_input - execution = await add_graph_execution_async( + execution = await add_graph_execution( graph_id=graph_id, user_id=user_id, inputs=merged_node_input, diff --git a/autogpt_platform/backend/backend/server/v2/store/image_gen.py b/autogpt_platform/backend/backend/server/v2/store/image_gen.py index ed1db82244..b75536d3cd 100644 --- a/autogpt_platform/backend/backend/server/v2/store/image_gen.py +++ b/autogpt_platform/backend/backend/server/v2/store/image_gen.py @@ -1,4 +1,3 @@ -import asyncio import io import logging from enum import Enum @@ -20,7 +19,7 @@ from backend.blocks.ideogram import ( from backend.data.graph import Graph from backend.data.model import CredentialsMetaInput, ProviderName from backend.integrations.credentials_store import ideogram_credentials -from backend.util.request import requests +from backend.util.request import Requests from backend.util.settings import Settings logger = logging.getLogger(__name__) @@ -37,12 +36,12 @@ class ImageStyle(str, Enum): async def generate_agent_image(agent: Graph | AgentGraph) -> io.BytesIO: if settings.config.use_agent_image_generation_v2: - return await asyncio.to_thread(generate_agent_image_v2, graph=agent) + return await generate_agent_image_v2(graph=agent) else: return await generate_agent_image_v1(agent=agent) -def generate_agent_image_v2(graph: Graph | AgentGraph) -> io.BytesIO: +async def generate_agent_image_v2(graph: Graph | AgentGraph) -> io.BytesIO: """ Generate an image for an agent using Ideogram model. Returns: @@ -74,7 +73,7 @@ def generate_agent_image_v2(graph: Graph | AgentGraph) -> io.BytesIO: ] # Run the Ideogram model block with the specified parameters - url = IdeogramModelBlock().run_once( + url = await IdeogramModelBlock().run_once( IdeogramModelBlock.Input( credentials=CredentialsMetaInput( id=ideogram_credentials.id, @@ -96,7 +95,8 @@ def generate_agent_image_v2(graph: Graph | AgentGraph) -> io.BytesIO: "result", credentials=ideogram_credentials, ) - return io.BytesIO(requests.get(url).content) + response = await Requests().get(url) + return io.BytesIO(response.content) async def generate_agent_image_v1(agent: Graph | AgentGraph) -> io.BytesIO: @@ -145,13 +145,13 @@ async def generate_agent_image_v1(agent: Graph | AgentGraph) -> io.BytesIO: else: # If it's a URL string, fetch the image bytes result_url = output[0] - response = requests.get(result_url) + response = await Requests().get(result_url) image_bytes = response.content elif isinstance(output, FileOutput): image_bytes = output.read() elif isinstance(output, str): # Output is a URL - response = requests.get(output) + response = await Requests().get(output) image_bytes = response.content else: raise RuntimeError("Unexpected output format from the model.") diff --git a/autogpt_platform/backend/backend/util/decorator.py b/autogpt_platform/backend/backend/util/decorator.py index 9047ea0b77..84f128333f 100644 --- a/autogpt_platform/backend/backend/util/decorator.py +++ b/autogpt_platform/backend/backend/util/decorator.py @@ -2,7 +2,7 @@ import functools import logging import os import time -from typing import Callable, ParamSpec, Tuple, TypeVar +from typing import Any, Awaitable, Callable, Coroutine, ParamSpec, Tuple, TypeVar from pydantic import BaseModel @@ -32,7 +32,7 @@ logger = logging.getLogger(__name__) def time_measured(func: Callable[P, T]) -> Callable[P, Tuple[TimingInfo, T]]: """ - Decorator to measure the time taken by a function to execute. + Decorator to measure the time taken by a synchronous function to execute. """ @functools.wraps(func) @@ -50,6 +50,28 @@ def time_measured(func: Callable[P, T]) -> Callable[P, Tuple[TimingInfo, T]]: return wrapper +def async_time_measured( + func: Callable[P, Awaitable[T]], +) -> Callable[P, Awaitable[Tuple[TimingInfo, T]]]: + """ + Decorator to measure the time taken by an async function to execute. + """ + + @functools.wraps(func) + async def async_wrapper(*args: P.args, **kwargs: P.kwargs) -> Tuple[TimingInfo, T]: + start_wall_time, start_cpu_time = _start_measurement() + try: + result = await func(*args, **kwargs) + finally: + wall_duration, cpu_duration = _end_measurement( + start_wall_time, start_cpu_time + ) + timing_info = TimingInfo(cpu_time=cpu_duration, wall_time=wall_duration) + return timing_info, result + + return async_wrapper + + def error_logged(func: Callable[P, T]) -> Callable[P, T | None]: """ Decorator to suppress and log any exceptions raised by a function. @@ -65,3 +87,22 @@ def error_logged(func: Callable[P, T]) -> Callable[P, T | None]: ) return wrapper + + +def async_error_logged( + func: Callable[P, Coroutine[Any, Any, T]], +) -> Callable[P, Coroutine[Any, Any, T | None]]: + """ + Decorator to suppress and log any exceptions raised by an async function. + """ + + @functools.wraps(func) + async def wrapper(*args: P.args, **kwargs: P.kwargs) -> T | None: + try: + return await func(*args, **kwargs) + except Exception as e: + logger.exception( + f"Error when calling async function {func.__name__} with arguments {args} {kwargs}: {e}" + ) + + return wrapper diff --git a/autogpt_platform/backend/backend/util/file.py b/autogpt_platform/backend/backend/util/file.py index 5b876a3ec0..27ad4cdd19 100644 --- a/autogpt_platform/backend/backend/util/file.py +++ b/autogpt_platform/backend/backend/util/file.py @@ -7,7 +7,7 @@ import uuid from pathlib import Path from urllib.parse import urlparse -from backend.util.request import requests +from backend.util.request import Requests from backend.util.type import MediaFileType TEMP_DIR = Path(tempfile.gettempdir()).resolve() @@ -29,7 +29,7 @@ def clean_exec_files(graph_exec_id: str, file: str = "") -> None: shutil.rmtree(exec_path) -def store_media_file( +async def store_media_file( graph_exec_id: str, file: MediaFileType, return_content: bool = False ) -> MediaFileType: """ @@ -114,8 +114,7 @@ def store_media_file( target_path = _ensure_inside_base(base_path / filename, base_path) # Download and save - resp = requests.get(file) - resp.raise_for_status() + resp = await Requests().get(file) target_path.write_bytes(resp.content) else: diff --git a/autogpt_platform/backend/backend/util/metrics.py b/autogpt_platform/backend/backend/util/metrics.py index 3e1822fad0..f169887307 100644 --- a/autogpt_platform/backend/backend/util/metrics.py +++ b/autogpt_platform/backend/backend/util/metrics.py @@ -1,4 +1,3 @@ -import asyncio import logging import sentry_sdk @@ -31,7 +30,7 @@ def sentry_capture_error(error: Exception): sentry_sdk.flush() -def discord_send_alert(content: str): +async def discord_send_alert(content: str): from backend.blocks.discord import SendDiscordMessageBlock from backend.data.model import APIKeyCredentials, CredentialsMetaInput, ProviderName from backend.util.settings import Settings @@ -44,13 +43,7 @@ def discord_send_alert(content: str): expires_at=None, ) - try: - loop = asyncio.get_event_loop() - except RuntimeError: - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - - return SendDiscordMessageBlock().run_once( + return await SendDiscordMessageBlock().run_once( SendDiscordMessageBlock.Input( credentials=CredentialsMetaInput( id=creds.id, diff --git a/autogpt_platform/backend/backend/util/request.py b/autogpt_platform/backend/backend/util/request.py index 4dfd32a12a..a3327c137a 100644 --- a/autogpt_platform/backend/backend/util/request.py +++ b/autogpt_platform/backend/backend/util/request.py @@ -1,17 +1,18 @@ +import asyncio import ipaddress import re import socket import ssl -from typing import Callable, Optional +from io import BytesIO +from typing import Any, Callable, Optional from urllib.parse import ParseResult as URL from urllib.parse import quote, urljoin, urlparse +import aiohttp import idna -import requests as req -from requests.adapters import HTTPAdapter -from urllib3 import PoolManager +from aiohttp import FormData, abc -from backend.util.settings import Config +from backend.util.json import json # List of IP networks to block BLOCKED_IP_NETWORKS = [ @@ -61,26 +62,61 @@ def _remove_insecure_headers(headers: dict, old_url: URL, new_url: URL) -> dict: return headers -class HostSSLAdapter(HTTPAdapter): +class HostResolver(abc.AbstractResolver): """ - A custom adapter that connects to an IP address but still + A custom resolver that connects to specified IP addresses but still sets the TLS SNI to the original host name so the cert can match. """ - def __init__(self, ssl_hostname, *args, **kwargs): + def __init__(self, ssl_hostname: str, ip_addresses: list[str]): self.ssl_hostname = ssl_hostname - super().__init__(*args, **kwargs) + self.ip_addresses = ip_addresses + self._default = aiohttp.AsyncResolver() - def init_poolmanager(self, *args, **kwargs): - self.poolmanager = PoolManager( - *args, - ssl_context=ssl.create_default_context(), - server_hostname=self.ssl_hostname, # This works for urllib3>=2 - **kwargs, - ) + async def resolve(self, host, port=0, family=socket.AF_INET): + if host == self.ssl_hostname: + results = [] + for ip in self.ip_addresses: + results.append( + { + "hostname": self.ssl_hostname, + "host": ip, + "port": port, + "family": family, + "proto": 0, + "flags": socket.AI_NUMERICHOST, + } + ) + return results + return await self._default.resolve(host, port, family) + + async def close(self): + await self._default.close() -def validate_url(url: str, trusted_origins: list[str]) -> tuple[URL, bool, list[str]]: +async def _resolve_host(hostname: str) -> list[str]: + """ + Resolves the hostname to a list of IP addresses (IPv4 first, then IPv6). + """ + loop = asyncio.get_running_loop() + try: + infos = await loop.getaddrinfo(hostname, None) + except socket.gaierror: + raise ValueError(f"Unable to resolve IP address for hostname {hostname}") + + ip_list = [info[4][0] for info in infos] + ipv4 = [ip for ip in ip_list if ":" not in ip] + ipv6 = [ip for ip in ip_list if ":" in ip] + ip_addresses = ipv4 + ipv6 + + if not ip_addresses: + raise ValueError(f"No IP addresses found for {hostname}") + return ip_addresses + + +async def validate_url( + url: str, trusted_origins: list[str] +) -> tuple[URL, bool, list[str]]: """ Validates the URL to prevent SSRF attacks by ensuring it does not point to a private, link-local, or otherwise blocked IP address — unless @@ -125,7 +161,7 @@ def validate_url(url: str, trusted_origins: list[str]) -> tuple[URL, bool, list[ ip_addresses: list[str] = [] if not is_trusted: # Resolve all IP addresses for the hostname - ip_addresses = _resolve_host(ascii_hostname) + ip_addresses = await _resolve_host(ascii_hostname) # Block any IP address that belongs to a blocked range for ip_str in ip_addresses: @@ -165,7 +201,9 @@ def pin_url(url: URL, ip_addresses: Optional[list[str]] = None) -> URL: if not ip_addresses: # Resolve all IP addresses for the hostname - ip_addresses = _resolve_host(url.hostname) + # (This call is blocking; ensure to call async _resolve_host before if possible) + ip_addresses = [] + # You may choose to raise or call synchronous resolve here; for simplicity, leave empty. # Pin to the first valid IP (for SSRF defense) pinned_ip = ip_addresses[0] @@ -189,23 +227,58 @@ def pin_url(url: URL, ip_addresses: Optional[list[str]] = None) -> URL: ) -def _resolve_host(hostname: str) -> list[str]: - try: - ip_list = [str(res[4][0]) for res in socket.getaddrinfo(hostname, None)] - ipv4 = [ip for ip in ip_list if ":" not in ip] - ipv6 = [ip for ip in ip_list if ":" in ip] - ip_addresses = ipv4 + ipv6 # Prefer IPv4 over IPv6 - except socket.gaierror: - raise ValueError(f"Unable to resolve IP address for hostname {hostname}") +ClientResponse = aiohttp.ClientResponse +ClientResponseError = aiohttp.ClientResponseError - if not ip_addresses: - raise ValueError(f"No IP addresses found for {hostname}") - return ip_addresses + +class Response: + """ + Buffered wrapper around aiohttp.ClientResponse that does *not* require + callers to manage connection or session lifetimes. + """ + + def __init__( + self, + *, + response: ClientResponse, + url: str, + body: bytes, + ): + self.status: int = response.status + self.headers = response.headers + self.reason: str | None = response.reason + self.request_info = response.request_info + self.url: str = url + self.content: bytes = body # raw bytes + + def json(self, encoding: str | None = None, **kwargs) -> dict: + """ + Parse the body as JSON and return the resulting Python object. + """ + return json.loads( + self.content.decode(encoding or "utf-8", errors="replace"), **kwargs + ) + + def text(self, encoding: str | None = None) -> str: + """ + Decode the body to a string. Encoding is guessed from the + Content-Type header if not supplied. + """ + if encoding is None: + # Try to extract charset from headers; fall back to UTF-8 + ctype = self.headers.get("content-type", "") + match = re.search(r"charset=([^\s;]+)", ctype, flags=re.I) + encoding = match.group(1) if match else None + return self.content.decode(encoding or "utf-8", errors="replace") + + @property + def ok(self) -> bool: + return 200 <= self.status < 300 class Requests: """ - A wrapper around the requests library that validates URLs before + A wrapper around an aiohttp ClientSession that validates URLs before making requests, preventing SSRF by blocking private networks and other disallowed address spaces. """ @@ -228,112 +301,161 @@ class Requests: self.extra_url_validator = extra_url_validator self.extra_headers = extra_headers - def request( + async def request( self, - method, - url, - headers=None, - allow_redirects=True, - max_redirects=10, - *args, + method: str, + url: str, + *, + headers: Optional[dict] = None, + files: list[tuple[str, tuple[str, BytesIO, str]]] | None = None, + data: Any | None = None, + json: Any | None = None, + allow_redirects: bool = True, + max_redirects: int = 10, **kwargs, - ) -> req.Response: + ) -> Response: + if files is not None: + if json is not None: + raise ValueError( + "Cannot mix file uploads with JSON body; " + "use 'data' for extra form fields instead." + ) + + form = FormData(quote_fields=False) + # add normal form fields first + if isinstance(data, dict): + for k, v in data.items(): + form.add_field(k, str(v)) + elif data is not None: + raise ValueError( + "When uploading files, 'data' must be a dict of form fields." + ) + + # add the file parts + for field_name, (filename, fh, content_type) in files: + form.add_field( + name=field_name, + value=fh, + filename=filename, + content_type=content_type or "application/octet-stream", + ) + + data = form + # Validate URL and get trust status - url, is_trusted, ip_addresses = validate_url(url, self.trusted_origins) + parsed_url, is_trusted, ip_addresses = await validate_url( + url, self.trusted_origins + ) # Apply any extra user-defined validation/transformation if self.extra_url_validator is not None: - url = self.extra_url_validator(url) + parsed_url = self.extra_url_validator(parsed_url) # Pin the URL if untrusted - hostname = url.hostname - original_url = url.geturl() + hostname = parsed_url.hostname + if hostname is None: + raise ValueError(f"Invalid URL: Unable to determine hostname of {url}") + + original_url = parsed_url.geturl() + connector: Optional[aiohttp.TCPConnector] = None if not is_trusted: - url = pin_url(url, ip_addresses) + # Replace hostname with IP for connection but preserve SNI via resolver + resolver = HostResolver(ssl_hostname=hostname, ip_addresses=ip_addresses) + ssl_context = ssl.create_default_context() + connector = aiohttp.TCPConnector(resolver=resolver, ssl=ssl_context) + session_kwargs = {} + if connector: + session_kwargs["connector"] = connector # Merge any extra headers - headers = dict(headers) if headers else {} + req_headers = dict(headers) if headers else {} if self.extra_headers is not None: - headers.update(self.extra_headers) + req_headers.update(self.extra_headers) - session = req.Session() + # Override Host header if using IP connection + if connector: + req_headers["Host"] = hostname - # If untrusted, the hostname in the URL is replaced with the corresponding - # IP address, and we need to override the Host header with the actual hostname. - if url.hostname != hostname: - headers["Host"] = hostname + # Override data if files are provided - # If hostname was untrusted and we replaced it by (pinned it to) its IP, - # we also need to attach a custom SNI adapter to make SSL work: - adapter = HostSSLAdapter(ssl_hostname=hostname) - session.mount("https://", adapter) - - # Perform the request with redirects disabled for manual handling - response = session.request( - method, - url.geturl(), - headers=headers, - allow_redirects=False, - *args, - **kwargs, - ) - - # Replace response URLs with the original host for clearer error messages - if url.hostname != hostname: - response.url = original_url - if response.request is not None: - response.request.url = original_url - - if self.raise_for_status: - response.raise_for_status() - - # If allowed and a redirect is received, follow the redirect manually - if allow_redirects and response.is_redirect: - if max_redirects <= 0: - raise Exception("Too many redirects.") - - location = response.headers.get("Location") - if not location: - return response - - # The base URL is the pinned_url we just used - # so that relative redirects resolve correctly. - redirect_url = urlparse(urljoin(url.geturl(), location)) - # Carry forward the same headers but update Host - new_headers = _remove_insecure_headers(headers, url, redirect_url) - - return self.request( + async with aiohttp.ClientSession(**session_kwargs) as session: + # Perform the request with redirects disabled for manual handling + async with session.request( method, - redirect_url.geturl(), - headers=new_headers, - allow_redirects=allow_redirects, - max_redirects=max_redirects - 1, - *args, + parsed_url.geturl(), + headers=req_headers, + allow_redirects=False, + data=data, + json=json, **kwargs, - ) + ) as response: - return response + if self.raise_for_status: + response.raise_for_status() - def get(self, url, *args, **kwargs) -> req.Response: - return self.request("GET", url, *args, **kwargs) + # If allowed and a redirect is received, follow the redirect manually + if allow_redirects and response.status in (301, 302, 303, 307, 308): + if max_redirects <= 0: + raise Exception("Too many redirects.") - def post(self, url, *args, **kwargs) -> req.Response: - return self.request("POST", url, *args, **kwargs) + location = response.headers.get("Location") + if not location: + return Response( + response=response, + url=original_url, + body=await response.read(), + ) - def put(self, url, *args, **kwargs) -> req.Response: - return self.request("PUT", url, *args, **kwargs) + # The base URL is the pinned_url we just used + # so that relative redirects resolve correctly. + redirect_url = urlparse(urljoin(parsed_url.geturl(), location)) + # Carry forward the same headers but update Host + new_headers = _remove_insecure_headers( + req_headers, parsed_url, redirect_url + ) - def delete(self, url, *args, **kwargs) -> req.Response: - return self.request("DELETE", url, *args, **kwargs) + return await self.request( + method, + redirect_url.geturl(), + headers=new_headers, + allow_redirects=allow_redirects, + max_redirects=max_redirects - 1, + files=files, + data=data, + json=json, + **kwargs, + ) - def head(self, url, *args, **kwargs) -> req.Response: - return self.request("HEAD", url, *args, **kwargs) + # Reset response URL to original host for clarity + if parsed_url.hostname != hostname: + try: + response.url = original_url # type: ignore + except Exception: + pass - def options(self, url, *args, **kwargs) -> req.Response: - return self.request("OPTIONS", url, *args, **kwargs) + return Response( + response=response, + url=original_url, + body=await response.read(), + ) - def patch(self, url, *args, **kwargs) -> req.Response: - return self.request("PATCH", url, *args, **kwargs) + async def get(self, url: str, *args, **kwargs) -> Response: + return await self.request("GET", url, *args, **kwargs) + async def post(self, url: str, *args, **kwargs) -> Response: + return await self.request("POST", url, *args, **kwargs) -requests = Requests(trusted_origins=Config().trust_endpoints_for_requests) + async def put(self, url: str, *args, **kwargs) -> Response: + return await self.request("PUT", url, *args, **kwargs) + + async def delete(self, url: str, *args, **kwargs) -> Response: + return await self.request("DELETE", url, *args, **kwargs) + + async def head(self, url: str, *args, **kwargs) -> Response: + return await self.request("HEAD", url, *args, **kwargs) + + async def options(self, url: str, *args, **kwargs) -> Response: + return await self.request("OPTIONS", url, *args, **kwargs) + + async def patch(self, url: str, *args, **kwargs) -> Response: + return await self.request("PATCH", url, *args, **kwargs) diff --git a/autogpt_platform/backend/backend/util/settings.py b/autogpt_platform/backend/backend/util/settings.py index c349f0c804..b2691cfd18 100644 --- a/autogpt_platform/backend/backend/util/settings.py +++ b/autogpt_platform/backend/backend/util/settings.py @@ -59,12 +59,6 @@ class Config(UpdateTrackingModel["Config"], BaseSettings): le=1000, description="Maximum number of workers to use for graph execution.", ) - num_node_workers: int = Field( - default=5, - ge=1, - le=1000, - description="Maximum number of workers to use for node execution within a single graph.", - ) pyro_host: str = Field( default="localhost", description="The default hostname of the Pyro server.", diff --git a/autogpt_platform/backend/backend/util/test.py b/autogpt_platform/backend/backend/util/test.py index 06a1f44f63..72a39d4027 100644 --- a/autogpt_platform/backend/backend/util/test.py +++ b/autogpt_platform/backend/backend/util/test.py @@ -1,3 +1,4 @@ +import inspect import logging import time import uuid @@ -93,7 +94,7 @@ async def wait_execution( assert False, "Execution did not complete in time." -def execute_block_test(block: Block): +async def execute_block_test(block: Block): prefix = f"[Test-{block.name}]" if not block.test_input or not block.test_output: @@ -110,10 +111,25 @@ def execute_block_test(block: Block): for mock_name, mock_obj in (block.test_mock or {}).items(): log.info(f"{prefix} mocking {mock_name}...") - if hasattr(block, mock_name): - setattr(block, mock_name, mock_obj) - else: + # check whether the field mock_name is an async function or not + if not hasattr(block, mock_name): log.info(f"{prefix} mock {mock_name} not found in block") + continue + + fun = getattr(block, mock_name) + is_async = inspect.iscoroutinefunction(fun) or inspect.isasyncgenfunction(fun) + + if is_async: + + async def async_mock( + *args, _mock_name=mock_name, _mock_obj=mock_obj, **kwargs + ): + return _mock_obj(*args, **kwargs) + + setattr(block, mock_name, async_mock) + + else: + setattr(block, mock_name, mock_obj) # Populate credentials argument(s) extra_exec_kwargs: dict = { @@ -141,7 +157,9 @@ def execute_block_test(block: Block): for input_data in block.test_input: log.info(f"{prefix} in: {input_data}") - for output_name, output_data in block.execute(input_data, **extra_exec_kwargs): + async for output_name, output_data in block.execute( + input_data, **extra_exec_kwargs + ): if output_index >= len(block.test_output): raise ValueError( f"{prefix} produced output more than expected {output_index} >= {len(block.test_output)}:\nOutput Expected:\t\t{block.test_output}\nFailed Output Produced:\t('{output_name}', {output_data})\nNote that this may not be the one that was unexpected, but it is the first that triggered the extra output warning" diff --git a/autogpt_platform/backend/poetry.lock b/autogpt_platform/backend/poetry.lock index 842ebe16f2..4ea22878d4 100644 --- a/autogpt_platform/backend/poetry.lock +++ b/autogpt_platform/backend/poetry.lock @@ -17,6 +17,33 @@ aiormq = ">=6.8,<6.9" exceptiongroup = ">=1,<2" yarl = "*" +[[package]] +name = "aiodns" +version = "3.4.0" +description = "Simple DNS resolver for asyncio" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "aiodns-3.4.0-py3-none-any.whl", hash = "sha256:4da2b25f7475343f3afbb363a2bfe46afa544f2b318acb9a945065e622f4ed24"}, + {file = "aiodns-3.4.0.tar.gz", hash = "sha256:24b0ae58410530367f21234d0c848e4de52c1f16fbddc111726a4ab536ec1b2f"}, +] + +[package.dependencies] +pycares = ">=4.0.0" + +[[package]] +name = "aiofiles" +version = "24.1.0" +description = "File support for asyncio." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "aiofiles-24.1.0-py3-none-any.whl", hash = "sha256:b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5"}, + {file = "aiofiles-24.1.0.tar.gz", hash = "sha256:22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c"}, +] + [[package]] name = "aiohappyeyeballs" version = "2.6.1" @@ -3742,6 +3769,93 @@ files = [ [package.dependencies] pyasn1 = ">=0.6.1,<0.7.0" +[[package]] +name = "pycares" +version = "4.8.0" +description = "Python interface for c-ares" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "pycares-4.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f40d9f4a8de398b110fdf226cdfadd86e8c7eb71d5298120ec41cf8d94b0012f"}, + {file = "pycares-4.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:339de06fc849a51015968038d2bbed68fc24047522404af9533f32395ca80d25"}, + {file = "pycares-4.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:372a236c1502b9056b0bea195c64c329603b4efa70b593a33b7ae37fbb7fad00"}, + {file = "pycares-4.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03f66a5e143d102ccc204bd4e29edd70bed28420f707efd2116748241e30cb73"}, + {file = "pycares-4.8.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ef50504296cd5fc58cfd6318f82e20af24fbe2c83004f6ff16259adb13afdf14"}, + {file = "pycares-4.8.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1bc541b627c7951dd36136b18bd185c5244a0fb2af5b1492ffb8acaceec1c5b"}, + {file = "pycares-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:938d188ed6bed696099be67ebdcdf121827b9432b17a9ea9e40dc35fd9d85363"}, + {file = "pycares-4.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:327837ffdc0c7adda09c98e1263c64b2aff814eea51a423f66733c75ccd9a642"}, + {file = "pycares-4.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a6b9b8d08c4508c45bd39e0c74e9e7052736f18ca1d25a289365bb9ac36e5849"}, + {file = "pycares-4.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:feac07d5e6d2d8f031c71237c21c21b8c995b41a1eba64560e8cf1e42ac11bc6"}, + {file = "pycares-4.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5bcdbf37012fd2323ca9f2a1074421a9ccf277d772632f8f0ce8c46ec7564250"}, + {file = "pycares-4.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e3ebb692cb43fcf34fe0d26f2cf9a0ea53fdfb136463845b81fad651277922db"}, + {file = "pycares-4.8.0-cp310-cp310-win32.whl", hash = "sha256:d98447ec0efff3fa868ccc54dcc56e71faff498f8848ecec2004c3108efb4da2"}, + {file = "pycares-4.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:1abb8f40917960ead3c2771277f0bdee1967393b0fdf68743c225b606787da68"}, + {file = "pycares-4.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5e25db89005ddd8d9c5720293afe6d6dd92e682fc6bc7a632535b84511e2060d"}, + {file = "pycares-4.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6f9665ef116e6ee216c396f5f927756c2164f9f3316aec7ff1a9a1e1e7ec9b2a"}, + {file = "pycares-4.8.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54a96893133471f6889b577147adcc21a480dbe316f56730871028379c8313f3"}, + {file = "pycares-4.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51024b3a69762bd3100d94986a29922be15e13f56f991aaefb41f5bcd3d7f0bb"}, + {file = "pycares-4.8.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47ff9db50c599e4d965ae3bec99cc30941c1d2b0f078ec816680b70d052dd54a"}, + {file = "pycares-4.8.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27ef8ff4e0f60ea6769a60d1c3d1d2aefed1d832e7bb83fc3934884e2dba5cdd"}, + {file = "pycares-4.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63511af7a3f9663f562fbb6bfa3591a259505d976e2aba1fa2da13dde43c6ca7"}, + {file = "pycares-4.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:73c3219b47616e6a5ad1810de96ed59721c7751f19b70ae7bf24997a8365408f"}, + {file = "pycares-4.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:da42a45207c18f37be5e491c14b6d1063cfe1e46620eb661735d0cedc2b59099"}, + {file = "pycares-4.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8a068e898bb5dd09cd654e19cd2abf20f93d0cc59d5d955135ed48ea0f806aa1"}, + {file = "pycares-4.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:962aed95675bb66c0b785a2fbbd1bb58ce7f009e283e4ef5aaa4a1f2dc00d217"}, + {file = "pycares-4.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ce8b1a16c1e4517a82a0ebd7664783a327166a3764d844cf96b1fb7b9dd1e493"}, + {file = "pycares-4.8.0-cp311-cp311-win32.whl", hash = "sha256:b3749ddbcbd216376c3b53d42d8b640b457133f1a12b0e003f3838f953037ae7"}, + {file = "pycares-4.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:5ce8a4e1b485b2360ab666c4ea1db97f57ede345a3b566d80bfa52b17e616610"}, + {file = "pycares-4.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3273e01a75308ed06d2492d83c7ba476e579a60a24d9f20fe178ce5e9d8d028b"}, + {file = "pycares-4.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fcedaadea1f452911fd29935749f98d144dae758d6003b7e9b6c5d5bd47d1dff"}, + {file = "pycares-4.8.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aae6cb33e287e06a4aabcbc57626df682c9a4fa8026207f5b498697f1c2fb562"}, + {file = "pycares-4.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25038b930e5be82839503fb171385b2aefd6d541bc5b7da0938bdb67780467d2"}, + {file = "pycares-4.8.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc8499b6e7dfbe4af65f6938db710ce9acd1debf34af2cbb93b898b1e5da6a5a"}, + {file = "pycares-4.8.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c4e1c6a68ef56a7622f6176d9946d4e51f3c853327a0123ef35a5380230c84cd"}, + {file = "pycares-4.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7cc8c3c9114b9c84e4062d25ca9b4bddc80a65d0b074c7cb059275273382f89"}, + {file = "pycares-4.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4404014069d3e362abf404c9932d4335bb9c07ba834cfe7d683c725b92e0f9da"}, + {file = "pycares-4.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ee0a58c32ec2a352cef0e1d20335a7caf9871cd79b73be2ca2896fe70f09c9d7"}, + {file = "pycares-4.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:35f32f52b486b8fede3cbebf088f30b01242d0321b5216887c28e80490595302"}, + {file = "pycares-4.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ecbb506e27a3b3a2abc001c77beeccf265475c84b98629a6b3e61bd9f2987eaa"}, + {file = "pycares-4.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9392b2a34adbf60cb9e38f4a0d363413ecea8d835b5a475122f50f76676d59dd"}, + {file = "pycares-4.8.0-cp312-cp312-win32.whl", hash = "sha256:f0fbefe68403ffcff19c869b8d621c88a6d2cef18d53cf0dab0fa9458a6ca712"}, + {file = "pycares-4.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:fa8aab6085a2ddfb1b43a06ddf1b498347117bb47cd620d9b12c43383c9c2737"}, + {file = "pycares-4.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:358a9a2c6fed59f62788e63d88669224955443048a1602016d4358e92aedb365"}, + {file = "pycares-4.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e3e1278967fa8d4a0056be3fcc8fc551b8bad1fc7d0e5172196dccb8ddb036a"}, + {file = "pycares-4.8.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:79befb773e370a8f97de9f16f5ea2c7e7fa0e3c6c74fbea6d332bf58164d7d06"}, + {file = "pycares-4.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b00d3695db64ce98a34e632e1d53f5a1cdb25451489f227bec2a6c03ff87ee8"}, + {file = "pycares-4.8.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:37bdc4f2ff0612d60fc4f7547e12ff02cdcaa9a9e42e827bb64d4748994719f1"}, + {file = "pycares-4.8.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd92c44498ec7a6139888b464b28c49f7ba975933689bd67ea8d572b94188404"}, + {file = "pycares-4.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2665a0d810e2bbc41e97f3c3e5ea7950f666b3aa19c5f6c99d6b018ccd2e0052"}, + {file = "pycares-4.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45a629a6470a33478514c566bce50c63f1b17d1c5f2f964c9a6790330dc105fb"}, + {file = "pycares-4.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:47bb378f1773f41cca8e31dcdf009ce4a9b8aff8a30c7267aaff9a099c407ba5"}, + {file = "pycares-4.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fb3feae38458005cc101956e38f16eb3145fff8cd793e35cd4bdef6bf1aa2623"}, + {file = "pycares-4.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:14bc28aeaa66b0f4331ac94455e8043c8a06b3faafd78cc49d4b677bae0d0b08"}, + {file = "pycares-4.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:62c82b871470f2864a1febf7b96bb1d108ce9063e6d3d43727e8a46f0028a456"}, + {file = "pycares-4.8.0-cp313-cp313-win32.whl", hash = "sha256:01afa8964c698c8f548b46d726f766aa7817b2d4386735af1f7996903d724920"}, + {file = "pycares-4.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:22f86f81b12ab17b0a7bd0da1e27938caaed11715225c1168763af97f8bb51a7"}, + {file = "pycares-4.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:61325d13a95255e858f42a7a1a9e482ff47ef2233f95ad9a4f308a3bd8ecf903"}, + {file = "pycares-4.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dfec3a7d42336fa46a1e7e07f67000fd4b97860598c59a894c08f81378629e4e"}, + {file = "pycares-4.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b65067e4b4f5345688817fff6be06b9b1f4ec3619b0b9ecc639bc681b73f646b"}, + {file = "pycares-4.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0322ad94bbaa7016139b5bbdcd0de6f6feb9d146d69e03a82aaca342e06830a6"}, + {file = "pycares-4.8.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:456c60f170c997f9a43c7afa1085fced8efb7e13ae49dd5656f998ae13c4bdb4"}, + {file = "pycares-4.8.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57a2c4c9ce423a85b0e0227409dbaf0d478f5e0c31d9e626768e77e1e887d32f"}, + {file = "pycares-4.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:478d9c479108b7527266864c0affe3d6e863492c9bc269217e36100c8fd89b91"}, + {file = "pycares-4.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aed56bca096990ca0aa9bbf95761fc87e02880e04b0845922b5c12ea9abe523f"}, + {file = "pycares-4.8.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ef265a390928ee2f77f8901c2273c53293157860451ad453ce7f45dd268b72f9"}, + {file = "pycares-4.8.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a5f17d7a76d8335f1c90a8530c8f1e8bb22e9a1d70a96f686efaed946de1c908"}, + {file = "pycares-4.8.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:891f981feb2ef34367378f813fc17b3d706ce95b6548eeea0c9fe7705d7e54b1"}, + {file = "pycares-4.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4102f6d9117466cc0a1f527907a1454d109cc9e8551b8074888071ef16050fe3"}, + {file = "pycares-4.8.0-cp39-cp39-win32.whl", hash = "sha256:d6775308659652adc88c82c53eda59b5e86a154aaba5ad1e287bbb3e0be77076"}, + {file = "pycares-4.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:8bc05462aa44788d48544cca3d2532466fed2cdc5a2f24a43a92b620a61c9d19"}, + {file = "pycares-4.8.0.tar.gz", hash = "sha256:2fc2ebfab960f654b3e3cf08a732486950da99393a657f8b44618ad3ed2d39c1"}, +] + +[package.dependencies] +cffi = ">=1.5.0" + +[package.extras] +idna = ["idna (>=2.1)"] + [[package]] name = "pycodestyle" version = "2.13.0" @@ -6255,4 +6369,4 @@ cffi = ["cffi (>=1.11)"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.13" -content-hash = "8d59c154b4ec91c28424c552de7c85c6399efe24ab74a979bfd62275d112fbf0" +content-hash = "6c93e51cf22c06548aa6d0e23ca8ceb4450f5e02d4142715e941aabc1a2cbd6a" diff --git a/autogpt_platform/backend/pyproject.toml b/autogpt_platform/backend/pyproject.toml index b54ba12b23..26c05668c0 100644 --- a/autogpt_platform/backend/pyproject.toml +++ b/autogpt_platform/backend/pyproject.toml @@ -10,6 +10,7 @@ packages = [{ include = "backend", format = "sdist" }] [tool.poetry.dependencies] python = ">=3.10,<3.13" aio-pika = "^9.5.5" +aiodns = "^3.1.1" anthropic = "^0.51.0" apscheduler = "^3.11.0" autogpt-libs = { path = "../autogpt_libs", develop = true } @@ -66,6 +67,7 @@ youtube-transcript-api = "^0.6.2" zerobouncesdk = "^1.1.1" # NOTE: please insert new dependencies in their alphabetical location pytest-snapshot = "^0.9.0" +aiofiles = "^24.1.0" [tool.poetry.group.dev.dependencies] aiohappyeyeballs = "^2.6.1" diff --git a/autogpt_platform/backend/test/block/test_block.py b/autogpt_platform/backend/test/block/test_block.py index 48d2616f61..3f4aedb1e9 100644 --- a/autogpt_platform/backend/test/block/test_block.py +++ b/autogpt_platform/backend/test/block/test_block.py @@ -7,5 +7,5 @@ from backend.util.test import execute_block_test @pytest.mark.parametrize("block", get_blocks().values(), ids=lambda b: b.name) -def test_available_blocks(block: Type[Block]): - execute_block_test(block()) +async def test_available_blocks(block: Type[Block]): + await execute_block_test(block()) diff --git a/autogpt_platform/backend/test/executor/test_tool_use.py b/autogpt_platform/backend/test/executor/test_tool_use.py index d93797633b..54ecfbce0a 100644 --- a/autogpt_platform/backend/test/executor/test_tool_use.py +++ b/autogpt_platform/backend/test/executor/test_tool_use.py @@ -22,11 +22,11 @@ async def create_graph(s: SpinTestServer, g: graph.Graph, u: User) -> graph.Grap return await s.agent_server.test_create_graph(CreateGraph(graph=g), u.id) -def create_credentials(s: SpinTestServer, u: User): +async def create_credentials(s: SpinTestServer, u: User): provider = ProviderName.OPENAI credentials = llm.TEST_CREDENTIALS try: - s.agent_server.test_create_credentials(u.id, provider, credentials) + await s.agent_server.test_create_credentials(u.id, provider, credentials) except Exception: # ValueErrors is raised trying to recreate the same credentials # so hidding the error @@ -65,7 +65,7 @@ async def execute_graph( async def test_graph_validation_with_tool_nodes_correct(server: SpinTestServer): test_user = await create_test_user() test_tool_graph = await create_graph(server, create_test_graph(), test_user) - create_credentials(server, test_user) + await create_credentials(server, test_user) nodes = [ graph.Node( @@ -116,7 +116,7 @@ async def test_graph_validation_with_tool_nodes_raises_error(server: SpinTestSer test_user = await create_test_user() test_tool_graph = await create_graph(server, create_test_graph(), test_user) - create_credentials(server, test_user) + await create_credentials(server, test_user) nodes = [ graph.Node( @@ -176,7 +176,7 @@ async def test_graph_validation_with_tool_nodes_raises_error(server: SpinTestSer async def test_smart_decision_maker_function_signature(server: SpinTestServer): test_user = await create_test_user() test_tool_graph = await create_graph(server, create_test_graph(), test_user) - create_credentials(server, test_user) + await create_credentials(server, test_user) nodes = [ graph.Node( diff --git a/autogpt_platform/backend/test/util/test_request.py b/autogpt_platform/backend/test/util/test_request.py index e973e7dd6e..57717ff77f 100644 --- a/autogpt_platform/backend/test/util/test_request.py +++ b/autogpt_platform/backend/test/util/test_request.py @@ -54,14 +54,14 @@ from backend.util.request import pin_url, validate_url ("example.com?param=äöü", [], "http://example.com?param=äöü", False), ], ) -def test_validate_url_no_dns_rebinding( +async def test_validate_url_no_dns_rebinding( raw_url: str, trusted_origins: list[str], expected_value: str, should_raise: bool ): if should_raise: with pytest.raises(ValueError): - validate_url(raw_url, trusted_origins) + await validate_url(raw_url, trusted_origins) else: - validated_url, _, _ = validate_url(raw_url, trusted_origins) + validated_url, _, _ = await validate_url(raw_url, trusted_origins) assert validated_url.geturl() == expected_value @@ -78,7 +78,7 @@ def test_validate_url_no_dns_rebinding( ("blocked.com", ["127.0.0.1"], True, None), ], ) -def test_dns_rebinding_fix( +async def test_dns_rebinding_fix( monkeypatch, hostname: str, resolved_ips: list[str], @@ -100,10 +100,10 @@ def test_dns_rebinding_fix( if expect_error: # If any IP is blocked, we expect a ValueError with pytest.raises(ValueError): - url, _, ip_addresses = validate_url(hostname, []) + url, _, ip_addresses = await validate_url(hostname, []) pin_url(url, ip_addresses) else: - url, _, ip_addresses = validate_url(hostname, []) + url, _, ip_addresses = await validate_url(hostname, []) pinned_url = pin_url(url, ip_addresses).geturl() # The pinned_url should contain the first valid IP assert pinned_url.startswith("http://") or pinned_url.startswith("https://") diff --git a/autogpt_platform/frontend/src/components/CustomEdge.tsx b/autogpt_platform/frontend/src/components/CustomEdge.tsx index bb620b2e6f..d7ab076481 100644 --- a/autogpt_platform/frontend/src/components/CustomEdge.tsx +++ b/autogpt_platform/frontend/src/components/CustomEdge.tsx @@ -115,9 +115,7 @@ export function CustomEdge({ .map((bead) => ({ ...bead })) .filter((bead, index) => { const beadDown = data?.beadDown!; - - // Remove always one less bead in case of static edge, so it stays at the connection point - const removeCount = beadDown - destroyed - (data?.isStatic ? 1 : 0); + const removeCount = beadDown - destroyed; if (bead.t >= bead.targetT && index < removeCount) { destroyedCount++; return false; @@ -154,9 +152,7 @@ export function CustomEdge({ }) .filter((bead, index) => { const beadDown = data?.beadDown!; - - // Remove always one less bead in case of static edge, so it stays at the connection point - const removeCount = beadDown - destroyed - (data?.isStatic ? 1 : 0); + const removeCount = beadDown - destroyed; if (bead.t >= bead.targetT && index < removeCount) { destroyedCount++; return false; diff --git a/autogpt_platform/frontend/src/components/RunnerUIWrapper.tsx b/autogpt_platform/frontend/src/components/RunnerUIWrapper.tsx index 5fef2152f2..2f72754205 100644 --- a/autogpt_platform/frontend/src/components/RunnerUIWrapper.tsx +++ b/autogpt_platform/frontend/src/components/RunnerUIWrapper.tsx @@ -104,7 +104,10 @@ const RunnerUIWrapper = forwardRef( (node.data.hardcodedValues as any).description || "Output from the agent", }, - result: (node.data.executionResults as any)?.at(-1)?.data?.output, + result: + (node.data.executionResults as any) + ?.map((result: any) => result?.data?.output) + .join("\n--\n") || "No output yet", }) satisfies BlockOutput, ); diff --git a/autogpt_platform/frontend/src/lib/utils.ts b/autogpt_platform/frontend/src/lib/utils.ts index b1ba8dc0dc..1053cff5ee 100644 --- a/autogpt_platform/frontend/src/lib/utils.ts +++ b/autogpt_platform/frontend/src/lib/utils.ts @@ -397,7 +397,7 @@ export function isEmptyOrWhitespace(str: string | undefined | null): boolean { return !str || str.trim().length === 0; } -/** Chech if a value is an object or not */ +/** Check if a value is an object or not */ export function isObject(value: unknown): value is Record { return typeof value === "object" && value !== null && !Array.isArray(value); } From 2269e3593aba27f35940a8f092e2458ae1ddbd63 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Tue, 17 Jun 2025 14:39:28 +0400 Subject: [PATCH 102/497] chore(frontend): document icons on storybook (#10181) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ ### Checklist 📋 Screenshot 2025-06-17 at 14 11 55 Document the icons for the new design system. With the design team, it was agreed we will settle on [phosphor icons](https://phosphoricons.com/), so we will need to migrate progressively out of `lucide-react`. ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run Storybook locally - [x] Check the icons story and displays well --- autogpt_platform/frontend/package.json | 1 + autogpt_platform/frontend/pnpm-lock.yaml | 973 +++++++++--------- .../frontend/src/stories/icons.stories.tsx | 462 +++++++++ 3 files changed, 969 insertions(+), 467 deletions(-) create mode 100644 autogpt_platform/frontend/src/stories/icons.stories.tsx diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index ff174e390c..b8abd0baf0 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -27,6 +27,7 @@ "@faker-js/faker": "9.8.0", "@hookform/resolvers": "5.1.1", "@next/third-parties": "15.3.3", + "@phosphor-icons/react": "2.1.10", "@radix-ui/react-alert-dialog": "1.1.14", "@radix-ui/react-avatar": "1.1.10", "@radix-ui/react-checkbox": "1.3.2", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index a258b772eb..e418b8bb87 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: '@next/third-parties': specifier: 15.3.3 version: 15.3.3(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@phosphor-icons/react': + specifier: 2.1.10 + version: 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-alert-dialog': specifier: 1.1.14 version: 1.1.14(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -76,7 +79,7 @@ importers: version: 1.2.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: 9.27.0 - version: 9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + version: 9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) '@supabase/ssr': specifier: 0.6.1 version: 0.6.1(@supabase/supabase-js@2.50.0) @@ -230,7 +233,7 @@ importers: version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/nextjs': specifier: 8.6.14 - version: 8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + version: 8.6.14(@swc/core@1.12.1)(esbuild@0.25.5)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) '@storybook/react': specifier: 8.6.14 version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) @@ -266,7 +269,7 @@ importers: version: 3.16.3 axe-playwright: specifier: 2.1.0 - version: 2.1.0(playwright@1.52.0) + version: 2.1.0(playwright@1.53.0) chromatic: specifier: 11.25.2 version: 11.25.2 @@ -988,152 +991,152 @@ packages: '@emotion/unitless@0.8.1': resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.5': + resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.5': + resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.5': + resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.5': + resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.5': + resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.5': + resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.5': + resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.5': + resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.5': + resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.5': + resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.5': + resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.5': + resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.5': + resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.5': + resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.5': + resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.5': + resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.25.5': + resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.25.5': + resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.25.5': + resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.5': + resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.5': + resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.5': + resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.5': + resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.5': + resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.25.5': + resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1564,8 +1567,8 @@ packages: resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} engines: {node: '>=18'} - '@napi-rs/wasm-runtime@0.2.10': - resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==} + '@napi-rs/wasm-runtime@0.2.11': + resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} '@next/env@15.3.3': resolution: {integrity: sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==} @@ -1840,6 +1843,13 @@ packages: peerDependencies: '@opentelemetry/api': ^1.1.0 + '@phosphor-icons/react@2.1.10': + resolution: {integrity: sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8' + react-dom: '>= 16.8' + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2897,68 +2907,68 @@ packages: '@supabase/supabase-js@2.50.0': resolution: {integrity: sha512-M1Gd5tPaaghYZ9OjeO1iORRqbTWFEz/cF3pPubRnMPzA+A8SiUsXXWDP+DWsASZcjEcVEcVQIAF38i5wrijYOg==} - '@swc/core-darwin-arm64@1.11.31': - resolution: {integrity: sha512-NTEaYOts0OGSbJZc0O74xsji+64JrF1stmBii6D5EevWEtrY4wlZhm8SiP/qPrOB+HqtAihxWIukWkP2aSdGSQ==} + '@swc/core-darwin-arm64@1.12.1': + resolution: {integrity: sha512-nUjWVcJ3YS2N40ZbKwYO2RJ4+o2tWYRzNOcIQp05FqW0+aoUCVMdAUUzQinPDynfgwVshDAXCKemY8X7nN5MaA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.31': - resolution: {integrity: sha512-THSGaSwT96JwXDwuXQ6yFBbn+xDMdyw7OmBpnweAWsh5DhZmQkALEm1DgdQO3+rrE99MkmzwAfclc0UmYro/OA==} + '@swc/core-darwin-x64@1.12.1': + resolution: {integrity: sha512-OGm4a4d3OeJn+tRt8H/eiHgTFrJbS6r8mi/Ob65tAEXZGHN900T2kR7c5ALr0V2hBOQ8BfhexwPoQlGQP/B95w==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.11.31': - resolution: {integrity: sha512-laKtQFnW7KHgE57Hx32os2SNAogcuIDxYE+3DYIOmDMqD7/1DCfJe6Rln2N9WcOw6HuDbDpyQavIwZNfSAa8vQ==} + '@swc/core-linux-arm-gnueabihf@1.12.1': + resolution: {integrity: sha512-76YeeQKyK0EtNkQiNBZ0nbVGooPf9IucY0WqVXVpaU4wuG7ZyLEE2ZAIgXafIuzODGQoLfetue7I8boMxh1/MA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.31': - resolution: {integrity: sha512-T+vGw9aPE1YVyRxRr1n7NAdkbgzBzrXCCJ95xAZc/0+WUwmL77Z+js0J5v1KKTRxw4FvrslNCOXzMWrSLdwPSA==} + '@swc/core-linux-arm64-gnu@1.12.1': + resolution: {integrity: sha512-BxJDIJPq1+aCh9UsaSAN6wo3tuln8UhNXruOrzTI8/ElIig/3sAueDM6Eq7GvZSGGSA7ljhNATMJ0elD7lFatQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.31': - resolution: {integrity: sha512-Mztp5NZkyd5MrOAG+kl+QSn0lL4Uawd4CK4J7wm97Hs44N9DHGIG5nOz7Qve1KZo407Y25lTxi/PqzPKHo61zQ==} + '@swc/core-linux-arm64-musl@1.12.1': + resolution: {integrity: sha512-NhLdbffSXvY0/FwUSAl4hKBlpe5GHQGXK8DxTo3HHjLsD9sCPYieo3vG0NQoUYAy4ZUY1WeGjyxeq4qZddJzEQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.31': - resolution: {integrity: sha512-DDVE0LZcXOWwOqFU1Xi7gdtiUg3FHA0vbGb3trjWCuI1ZtDZHEQYL4M3/2FjqKZtIwASrDvO96w91okZbXhvMg==} + '@swc/core-linux-x64-gnu@1.12.1': + resolution: {integrity: sha512-CrYnV8SZIgArQ9LKH0xEF95PKXzX9WkRSc5j55arOSBeDCeDUQk1Bg/iKdnDiuj5HC1hZpvzwMzSBJjv+Z70jA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.31': - resolution: {integrity: sha512-mJA1MzPPRIfaBUHZi0xJQ4vwL09MNWDeFtxXb0r4Yzpf0v5Lue9ymumcBPmw/h6TKWms+Non4+TDquAsweuKSw==} + '@swc/core-linux-x64-musl@1.12.1': + resolution: {integrity: sha512-BQMl3d0HaGB0/h2xcKlGtjk/cGRn2tnbsaChAKcjFdCepblKBCz1pgO/mL7w5iXq3s57wMDUn++71/a5RAkZOA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.31': - resolution: {integrity: sha512-RdtakUkNVAb/FFIMw3LnfNdlH1/ep6KgiPDRlmyUfd0WdIQ3OACmeBegEFNFTzi7gEuzy2Yxg4LWf4IUVk8/bg==} + '@swc/core-win32-arm64-msvc@1.12.1': + resolution: {integrity: sha512-b7NeGnpqTfmIGtUqXBl0KqoSmOnH64nRZoT5l4BAGdvwY7nxitWR94CqZuwyLPty/bLywmyDA9uO12Kvgb3+gg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.31': - resolution: {integrity: sha512-hErXdCGsg7swWdG1fossuL8542I59xV+all751mYlBoZ8kOghLSKObGQTkBbuNvc0sUKWfWg1X0iBuIhAYar+w==} + '@swc/core-win32-ia32-msvc@1.12.1': + resolution: {integrity: sha512-iU/29X2D7cHBp1to62cUg/5Xk8K+lyOJiKIGGW5rdzTW/c2zz3d/ehgpzVP/rqC4NVr88MXspqHU4il5gmDajw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.31': - resolution: {integrity: sha512-5t7SGjUBMMhF9b5j17ml/f/498kiBJNf4vZFNM421UGUEETdtjPN9jZIuQrowBkoFGJTCVL/ECM4YRtTH30u/A==} + '@swc/core-win32-x64-msvc@1.12.1': + resolution: {integrity: sha512-+Zh+JKDwiFqV5N9yAd2DhYVGPORGh9cfenu1ptr9yge+eHAf7vZJcC3rnj6QMR1QJh0Y5VC9+YBjRFjZVA7XDw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.31': - resolution: {integrity: sha512-mAby9aUnKRjMEA7v8cVZS9Ah4duoRBnX7X6r5qrhTxErx+68MoY1TPrVwj/66/SWN3Bl+jijqAqoB8Qx0QE34A==} + '@swc/core@1.12.1': + resolution: {integrity: sha512-aKXdDTqxTVFl/bKQZ3EQUjEMBEoF6JBv29moMZq0kbVO43na6u/u+3Vcbhbrh+A2N0X5OL4RaveuWfAjEgOmeA==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -2978,8 +2988,8 @@ packages: peerDependencies: '@swc/core': '*' - '@swc/types@0.1.22': - resolution: {integrity: sha512-D13mY/ZA4PPEFSy6acki9eBT/3WgjMoRqNcdpIvjaYLQ44Xk5BdaL7UkDxAh6Z9UOe7tCCp67BVmZCojYp9owg==} + '@swc/types@0.1.23': + resolution: {integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==} '@tanstack/react-table@8.21.3': resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} @@ -3090,9 +3100,6 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -3159,8 +3166,8 @@ packages: '@types/phoenix@1.6.6': resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} '@types/react-dom@18.3.5': resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} @@ -3218,150 +3225,160 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.33.1': - resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} + '@typescript-eslint/eslint-plugin@8.34.1': + resolution: {integrity: sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.33.1 + '@typescript-eslint/parser': ^8.34.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.33.1': - resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} + '@typescript-eslint/parser@8.34.1': + resolution: {integrity: sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.33.1': - resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} + '@typescript-eslint/project-service@8.34.1': + resolution: {integrity: sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.33.1': - resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} + '@typescript-eslint/scope-manager@8.34.1': + resolution: {integrity: sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.33.1': - resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} + '@typescript-eslint/tsconfig-utils@8.34.1': + resolution: {integrity: sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.33.1': - resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} + '@typescript-eslint/type-utils@8.34.1': + resolution: {integrity: sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.33.1': - resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} + '@typescript-eslint/types@8.34.1': + resolution: {integrity: sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.33.1': - resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} + '@typescript-eslint/typescript-estree@8.34.1': + resolution: {integrity: sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.33.1': - resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} + '@typescript-eslint/utils@8.34.1': + resolution: {integrity: sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.33.1': - resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} + '@typescript-eslint/visitor-keys@8.34.1': + resolution: {integrity: sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unrs/resolver-binding-darwin-arm64@1.7.10': - resolution: {integrity: sha512-ABsM3eEiL3yu903G0uxgvGAoIw011XjTzyEk//gGtuVY1PuXP2IJG6novd6DBjm7MaWmRV/CZFY1rWBXSlSVVw==} + '@unrs/resolver-binding-android-arm-eabi@1.9.0': + resolution: {integrity: sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.9.0': + resolution: {integrity: sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.9.0': + resolution: {integrity: sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.7.10': - resolution: {integrity: sha512-lGVWy4FQEDo/PuI1VQXaQCY0XUg4xUJilf3fQ8NY4wtsQTm9lbasbUYf3nkoma+O2/do90jQTqkb02S3meyTDg==} + '@unrs/resolver-binding-darwin-x64@1.9.0': + resolution: {integrity: sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.7.10': - resolution: {integrity: sha512-g9XLCHzNGatY79JJNgxrUH6uAAfBDj2NWIlTnqQN5odwGKjyVfFZ5tFL1OxYPcxTHh384TY5lvTtF+fuEZNvBQ==} + '@unrs/resolver-binding-freebsd-x64@1.9.0': + resolution: {integrity: sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.10': - resolution: {integrity: sha512-zV0ZMNy50sJFJapsjec8onyL9YREQKT88V8KwMoOA+zki/duFUP0oyTlbax1jGKdh8rQnruvW9VYkovGvdBAsw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': + resolution: {integrity: sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.10': - resolution: {integrity: sha512-jQxgb1DIDI7goyrabh4uvyWWBrFRfF+OOnS9SbF15h52g3Qjn/u8zG7wOQ0NjtcSMftzO75TITu9aHuI7FcqQQ==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': + resolution: {integrity: sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.7.10': - resolution: {integrity: sha512-9wVVlO6+aNlm90YWitwSI++HyCyBkzYCwMi7QbuGrTxDFm2pAgtpT0OEliaI7tLS8lAWYuDbzRRCJDgsdm6nwg==} + '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': + resolution: {integrity: sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.7.10': - resolution: {integrity: sha512-FtFweORChdXOes0RAAyTZp6I4PodU2cZiSILAbGaEKDXp378UOumD2vaAkWHNxpsreQUKRxG5O1uq9EoV1NiVQ==} + '@unrs/resolver-binding-linux-arm64-musl@1.9.0': + resolution: {integrity: sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.10': - resolution: {integrity: sha512-B+hOjpG2ncCR96a9d9ww1dWVuRVC2NChD0bITgrUhEWBhpdv2o/Mu2l8MsB2fzjdV/ku+twaQhr8iLHBoZafZQ==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': + resolution: {integrity: sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.10': - resolution: {integrity: sha512-DS6jFDoQCFsnsdLXlj3z3THakQLBic63B6A0rpQ1kpkyKa3OzEfqhwRNVaywuUuOKP9bX55Jk2uqpvn/hGjKCg==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': + resolution: {integrity: sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.7.10': - resolution: {integrity: sha512-A82SB6yEaA8EhIW2r0I7P+k5lg7zPscFnGs1Gna5rfPwoZjeUAGX76T55+DiyTiy08VFKUi79PGCulXnfjDq0g==} + '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': + resolution: {integrity: sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.7.10': - resolution: {integrity: sha512-J+VmOPH16U69QshCp9WS+Zuiuu9GWTISKchKIhLbS/6JSCEfw2A4N02whv2VmrkXE287xxZbhW1p6xlAXNzwqg==} + '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': + resolution: {integrity: sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.7.10': - resolution: {integrity: sha512-bYTdDltcB/V3fEqpx8YDwDw8ta9uEg8TUbJOtek6JM42u9ciJ7R/jBjNeAOs+QbyxGDd2d6xkBaGwty1HzOz3Q==} + '@unrs/resolver-binding-linux-x64-gnu@1.9.0': + resolution: {integrity: sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.7.10': - resolution: {integrity: sha512-NYZ1GvSuTokJ28lqcjrMTnGMySoo4dVcNK/nsNCKCXT++1zekZtJaE+N+4jc1kR7EV0fc1OhRrOGcSt7FT9t8w==} + '@unrs/resolver-binding-linux-x64-musl@1.9.0': + resolution: {integrity: sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.7.10': - resolution: {integrity: sha512-MRjJhTaQzLoX8OtzRBQDJ84OJ8IX1FqpRAUSxp/JtPeak+fyDfhXaEjcA/fhfgrACUnvC+jWC52f/V6MixSKCQ==} + '@unrs/resolver-binding-wasm32-wasi@1.9.0': + resolution: {integrity: sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.7.10': - resolution: {integrity: sha512-Cgw6qhdsfzXJnHb006CzqgaX8mD445x5FGKuueaLeH1ptCxDbzRs8wDm6VieOI7rdbstfYBaFtaYN7zBT5CUPg==} + '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': + resolution: {integrity: sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.7.10': - resolution: {integrity: sha512-Z7oECyIT2/HsrWpJ6wi2b+lVbPmWqQHuW5zeatafoRXizk1+2wUl+aSop1PF58XcyBuwPP2YpEUUpMZ8ILV4fA==} + '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': + resolution: {integrity: sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.7.10': - resolution: {integrity: sha512-DGAOo5asNvDsmFgwkb7xsgxNyN0If6XFYwDIC1QlRE7kEYWIMRChtWJyHDf30XmGovDNOs/37krxhnga/nm/4w==} + '@unrs/resolver-binding-win32-x64-msvc@1.9.0': + resolution: {integrity: sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==} cpu: [x64] os: [win32] @@ -3457,11 +3474,6 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -3654,8 +3666,8 @@ packages: peerDependencies: playwright: '>1.0.0' - axios@1.9.0: - resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} + axios@1.10.0: + resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -3740,11 +3752,11 @@ packages: boring-avatars@1.11.2: resolution: {integrity: sha512-3+wkwPeObwS4R37FGXMYViqc4iTrIRj5yzfX9Qy4mnpZ26sX41dGMhsAgmKks1r/uufY1pl4vpgzMWHYfJRb2A==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -3838,8 +3850,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001721: - resolution: {integrity: sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==} + caniuse-lite@1.0.30001723: + resolution: {integrity: sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==} case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -4050,11 +4062,11 @@ packages: resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} - core-js-compat@3.42.0: - resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==} + core-js-compat@3.43.0: + resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} - core-js-pure@3.42.0: - resolution: {integrity: sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==} + core-js-pure@3.43.0: + resolution: {integrity: sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4246,8 +4258,8 @@ packages: decimal.js-light@2.5.1: resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} - decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -4395,8 +4407,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.165: - resolution: {integrity: sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==} + electron-to-chromium@1.5.169: + resolution: {integrity: sha512-q7SQx6mkLy0GTJK9K9OiWeaBMV4XQtBSdf6MJUzDB/H/5tFXfIiX38Lci1Kl6SsgiEhz1SQI1ejEOU5asWEhwQ==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -4494,8 +4506,8 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.5: + resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} engines: {node: '>=18'} hasBin: true @@ -4607,8 +4619,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@8.57.1: @@ -4730,8 +4742,8 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.4.5: - resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -5699,8 +5711,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.1.4: + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -5912,11 +5924,11 @@ packages: moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - motion-dom@12.16.0: - resolution: {integrity: sha512-Z2nGwWrrdH4egLEtgYMCEN4V2qQt1qxlKy/uV7w691ztyA41Q5Rbn0KNGbsNVDZr9E8PD2IOQ3hSccRnB6xWzw==} + motion-dom@12.18.1: + resolution: {integrity: sha512-dR/4EYT23Snd+eUSLrde63Ws3oXQtJNw/krgautvTfwrN/2cHfCZMdu6CeTxVfRRWREW3Fy1f5vobRDiBb/q+w==} - motion-utils@12.12.1: - resolution: {integrity: sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==} + motion-utils@12.18.1: + resolution: {integrity: sha512-az26YDU4WoDP0ueAkUtABLk2BIxe28d8NH1qWT8jPGhPyf44XTdDUh8pDk9OPphaSrR9McgpcJlgwSOIw/sfkA==} ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6263,11 +6275,21 @@ packages: engines: {node: '>=18'} hasBin: true + playwright-core@1.53.0: + resolution: {integrity: sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==} + engines: {node: '>=18'} + hasBin: true + playwright@1.52.0: resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==} engines: {node: '>=18'} hasBin: true + playwright@1.53.0: + resolution: {integrity: sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q==} + engines: {node: '>=18'} + hasBin: true + pnp-webpack-plugin@1.7.0: resolution: {integrity: sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==} engines: {node: '>=6'} @@ -6544,8 +6566,8 @@ packages: peerDependencies: react: '>=16.8.0' - react-docgen-typescript@2.2.2: - resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} + react-docgen-typescript@2.4.0: + resolution: {integrity: sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==} peerDependencies: typescript: '>= 4.3.x' @@ -7131,14 +7153,14 @@ packages: peerDependencies: webpack: ^5.0.0 - style-to-js@1.1.16: - resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} - style-to-object@1.0.8: - resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} - styled-components@6.1.18: - resolution: {integrity: sha512-Mvf3gJFzZCkhjY2Y/Fx9z1m3dxbza0uI9H1CbNZm/jSHCojzJhQ0R7bByrlFJINnMzz/gPulpoFFGymNwrsMcw==} + styled-components@6.1.19: + resolution: {integrity: sha512-1v/e3Dl1BknC37cXMhwGomhO8AkYmN41CqyX9xhUDxry1ns3BFQy2lLDRQXJRdVVWB9OHemv/53xaStimvWyuA==} engines: {node: '>= 16'} peerDependencies: react: '>= 16.8.0' @@ -7227,8 +7249,8 @@ packages: uglify-js: optional: true - terser@5.41.0: - resolution: {integrity: sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==} + terser@5.42.0: + resolution: {integrity: sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==} engines: {node: '>=10'} hasBin: true @@ -7449,8 +7471,8 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} - unrs-resolver@1.7.10: - resolution: {integrity: sha512-CJEMJcz6vuwRK6xxWc+uf8AGi0OyfoVtHs5mExtNecS0HZq3a3Br1JC/InwwTn6uy+qkAdAdK+nJUYO9FPtgZw==} + unrs-resolver@1.9.0: + resolution: {integrity: sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==} update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} @@ -8481,7 +8503,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.4) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.4) babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.4) - core-js-compat: 3.42.0 + core-js-compat: 3.43.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -8595,79 +8617,79 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.5': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm64@0.25.5': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm@0.25.5': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-x64@0.25.5': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/darwin-arm64@0.25.5': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-x64@0.25.5': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/freebsd-arm64@0.25.5': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-x64@0.25.5': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.5': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm@0.25.5': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-ia32@0.25.5': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-loong64@0.25.5': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-mips64el@0.25.5': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-ppc64@0.25.5': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-riscv64@0.25.5': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-s390x@0.25.5': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-x64@0.25.5': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@esbuild/netbsd-arm64@0.25.5': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@esbuild/netbsd-x64@0.25.5': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@esbuild/openbsd-arm64@0.25.5': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.5': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/sunos-x64@0.25.5': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/win32-arm64@0.25.5': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-ia32@0.25.5': optional: true - '@esbuild/win32-x64@0.24.2': + '@esbuild/win32-x64@0.25.5': optional: true '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': @@ -9139,7 +9161,7 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@napi-rs/wasm-runtime@0.2.10': + '@napi-rs/wasm-runtime@0.2.11': dependencies: '@emnapi/core': 1.4.3 '@emnapi/runtime': 1.4.3 @@ -9447,6 +9469,11 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@phosphor-icons/react@2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@pkgjs/parseargs@0.11.0': optional: true @@ -9454,17 +9481,17 @@ snapshots: dependencies: playwright: 1.52.0 - '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5))': dependencies: ansi-html: 0.0.9 - core-js-pure: 3.42.0 + core-js-pure: 3.43.0 error-stack-parser: 2.1.4 html-entities: 2.6.0 loader-utils: 2.0.4 react-refresh: 0.14.2 schema-utils: 4.3.2 source-map: 0.7.4 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) optionalDependencies: type-fest: 4.41.0 webpack-hot-middleware: 2.26.1 @@ -10020,7 +10047,7 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@4.35.0) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.5(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.2) is-reference: 1.2.1 magic-string: 0.30.17 picomatch: 4.0.2 @@ -10182,7 +10209,7 @@ snapshots: '@sentry/core@9.27.0': {} - '@sentry/nextjs@9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': + '@sentry/nextjs@9.27.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.34.0 @@ -10193,7 +10220,7 @@ snapshots: '@sentry/opentelemetry': 9.27.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) '@sentry/react': 9.27.0(react@18.3.1) '@sentry/vercel-edge': 9.27.0 - '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + '@sentry/webpack-plugin': 3.5.0(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) chalk: 3.0.0 next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resolve: 1.22.8 @@ -10270,12 +10297,12 @@ snapshots: '@opentelemetry/api': 1.9.0 '@sentry/core': 9.27.0 - '@sentry/webpack-plugin@3.5.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': + '@sentry/webpack-plugin@3.5.0(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5))': dependencies: '@sentry/bundler-plugin-core': 3.5.0 unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) transitivePeerDependencies: - encoding - supports-color @@ -10416,7 +10443,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-webpack5@8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/builder-webpack5@8.6.14(@swc/core@1.12.1)(esbuild@0.25.5)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/semver': 7.7.0 @@ -10424,23 +10451,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) - html-webpack-plugin: 5.6.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) + html-webpack-plugin: 5.6.3(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) - terser-webpack-plugin: 5.3.14(@swc/core@1.11.31)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) + terser-webpack-plugin: 5.3.14(@swc/core@1.12.1)(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) - webpack-dev-middleware: 6.1.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) + webpack-dev-middleware: 6.1.3(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -10466,8 +10493,8 @@ snapshots: '@storybook/theming': 8.6.14(storybook@8.6.14(prettier@3.5.3)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.24.2 - esbuild-register: 3.6.0(esbuild@0.24.2) + esbuild: 0.25.5 + esbuild-register: 3.6.0(esbuild@0.25.5) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.11 @@ -10508,7 +10535,7 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.5.3) - '@storybook/nextjs@8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': + '@storybook/nextjs@8.6.14(@swc/core@1.12.1)(esbuild@0.25.5)(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) @@ -10523,30 +10550,30 @@ snapshots: '@babel/preset-react': 7.27.1(@babel/core@7.27.4) '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) '@babel/runtime': 7.27.6 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) - '@storybook/builder-webpack5': 8.6.14(@swc/core@1.11.31)(esbuild@0.24.2)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.31)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) + '@storybook/builder-webpack5': 8.6.14(@swc/core@1.12.1)(esbuild@0.25.5)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.12.1)(esbuild@0.25.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/semver': 7.7.0 - babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) - css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) + css-loader: 6.11.0(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.4 - postcss-loader: 8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + postcss-loader: 8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 14.2.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + sass-loader: 14.2.1(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + style-loader: 3.3.4(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) styled-jsx: 5.1.7(@babel/core@7.27.4)(react@18.3.1) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 @@ -10554,7 +10581,7 @@ snapshots: optionalDependencies: sharp: 0.33.5 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -10573,11 +10600,11 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.11.31)(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.12.1)(esbuild@0.25.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) '@types/semver': 7.7.0 find-up: 5.0.0 magic-string: 0.30.17 @@ -10588,7 +10615,7 @@ snapshots: semver: 7.7.2 storybook: 8.6.14(prettier@3.5.3) tsconfig-paths: 4.2.0 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -10603,17 +10630,17 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.5.3) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5))': dependencies: debug: 4.4.1 endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 micromatch: 4.0.8 - react-docgen-typescript: 2.2.2(typescript@5.8.3) + react-docgen-typescript: 2.4.0(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) transitivePeerDependencies: - supports-color @@ -10646,8 +10673,8 @@ snapshots: '@babel/types': 7.27.6 '@jest/types': 29.6.3 '@storybook/csf': 0.1.13 - '@swc/core': 1.11.31 - '@swc/jest': 0.2.38(@swc/core@1.11.31) + '@swc/core': 1.12.1 + '@swc/jest': 0.2.38(@swc/core@1.12.1) expect-playwright: 0.8.0 jest: 29.7.0(@types/node@22.15.30) jest-circus: 29.7.0 @@ -10658,7 +10685,7 @@ snapshots: jest-serializer-html: 7.1.0 jest-watch-typeahead: 2.2.2(jest@29.7.0(@types/node@22.15.30)) nyc: 15.1.0 - playwright: 1.52.0 + playwright: 1.53.0 storybook: 8.6.14(prettier@3.5.3) transitivePeerDependencies: - '@swc/helpers' @@ -10731,51 +10758,51 @@ snapshots: - bufferutil - utf-8-validate - '@swc/core-darwin-arm64@1.11.31': + '@swc/core-darwin-arm64@1.12.1': optional: true - '@swc/core-darwin-x64@1.11.31': + '@swc/core-darwin-x64@1.12.1': optional: true - '@swc/core-linux-arm-gnueabihf@1.11.31': + '@swc/core-linux-arm-gnueabihf@1.12.1': optional: true - '@swc/core-linux-arm64-gnu@1.11.31': + '@swc/core-linux-arm64-gnu@1.12.1': optional: true - '@swc/core-linux-arm64-musl@1.11.31': + '@swc/core-linux-arm64-musl@1.12.1': optional: true - '@swc/core-linux-x64-gnu@1.11.31': + '@swc/core-linux-x64-gnu@1.12.1': optional: true - '@swc/core-linux-x64-musl@1.11.31': + '@swc/core-linux-x64-musl@1.12.1': optional: true - '@swc/core-win32-arm64-msvc@1.11.31': + '@swc/core-win32-arm64-msvc@1.12.1': optional: true - '@swc/core-win32-ia32-msvc@1.11.31': + '@swc/core-win32-ia32-msvc@1.12.1': optional: true - '@swc/core-win32-x64-msvc@1.11.31': + '@swc/core-win32-x64-msvc@1.12.1': optional: true - '@swc/core@1.11.31': + '@swc/core@1.12.1': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.22 + '@swc/types': 0.1.23 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.31 - '@swc/core-darwin-x64': 1.11.31 - '@swc/core-linux-arm-gnueabihf': 1.11.31 - '@swc/core-linux-arm64-gnu': 1.11.31 - '@swc/core-linux-arm64-musl': 1.11.31 - '@swc/core-linux-x64-gnu': 1.11.31 - '@swc/core-linux-x64-musl': 1.11.31 - '@swc/core-win32-arm64-msvc': 1.11.31 - '@swc/core-win32-ia32-msvc': 1.11.31 - '@swc/core-win32-x64-msvc': 1.11.31 + '@swc/core-darwin-arm64': 1.12.1 + '@swc/core-darwin-x64': 1.12.1 + '@swc/core-linux-arm-gnueabihf': 1.12.1 + '@swc/core-linux-arm64-gnu': 1.12.1 + '@swc/core-linux-arm64-musl': 1.12.1 + '@swc/core-linux-x64-gnu': 1.12.1 + '@swc/core-linux-x64-musl': 1.12.1 + '@swc/core-win32-arm64-msvc': 1.12.1 + '@swc/core-win32-ia32-msvc': 1.12.1 + '@swc/core-win32-x64-msvc': 1.12.1 '@swc/counter@0.1.3': {} @@ -10783,14 +10810,14 @@ snapshots: dependencies: tslib: 2.8.1 - '@swc/jest@0.2.38(@swc/core@1.11.31)': + '@swc/jest@0.2.38(@swc/core@1.12.1)': dependencies: '@jest/create-cache-key-function': 29.7.0 - '@swc/core': 1.11.31 + '@swc/core': 1.12.1 '@swc/counter': 0.1.3 jsonc-parser: 3.3.1 - '@swc/types@0.1.22': + '@swc/types@0.1.23': dependencies: '@swc/counter': 0.1.3 @@ -10920,12 +10947,10 @@ snapshots: '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/estree@1.0.6': {} - '@types/estree@1.0.7': {} - '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': @@ -10990,7 +11015,7 @@ snapshots: '@types/phoenix@1.6.6': {} - '@types/prop-types@15.7.14': {} + '@types/prop-types@15.7.15': {} '@types/react-dom@18.3.5(@types/react@18.3.17)': dependencies: @@ -11002,7 +11027,7 @@ snapshots: '@types/react@18.3.17': dependencies: - '@types/prop-types': 15.7.14 + '@types/prop-types': 15.7.15 csstype: 3.1.3 '@types/resolve@1.20.6': {} @@ -11043,14 +11068,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/type-utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/parser': 8.34.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.1 + '@typescript-eslint/type-utils': 8.34.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.1 eslint: 8.57.1 graphemer: 1.4.0 ignore: 7.0.5 @@ -11060,40 +11085,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/scope-manager': 8.34.1 + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.1 debug: 4.4.1 eslint: 8.57.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.34.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.8.3) + '@typescript-eslint/types': 8.34.1 debug: 4.4.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.33.1': + '@typescript-eslint/scope-manager@8.34.1': dependencies: - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/visitor-keys': 8.34.1 - '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.34.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.1(eslint@8.57.1)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.1(eslint@8.57.1)(typescript@5.8.3) debug: 4.4.1 eslint: 8.57.1 ts-api-utils: 2.1.0(typescript@5.8.3) @@ -11101,14 +11126,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.33.1': {} + '@typescript-eslint/types@8.34.1': {} - '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.34.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/project-service': 8.34.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.8.3) + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/visitor-keys': 8.34.1 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -11119,75 +11144,81 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.1(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.1 + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) eslint: 8.57.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.33.1': + '@typescript-eslint/visitor-keys@8.34.1': dependencies: - '@typescript-eslint/types': 8.33.1 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.34.1 + eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} - '@unrs/resolver-binding-darwin-arm64@1.7.10': + '@unrs/resolver-binding-android-arm-eabi@1.9.0': optional: true - '@unrs/resolver-binding-darwin-x64@1.7.10': + '@unrs/resolver-binding-android-arm64@1.9.0': optional: true - '@unrs/resolver-binding-freebsd-x64@1.7.10': + '@unrs/resolver-binding-darwin-arm64@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.10': + '@unrs/resolver-binding-darwin-x64@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.10': + '@unrs/resolver-binding-freebsd-x64@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.7.10': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.7.10': + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.10': + '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.10': + '@unrs/resolver-binding-linux-arm64-musl@1.9.0': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.7.10': + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.7.10': + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.7.10': + '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.7.10': + '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.7.10': + '@unrs/resolver-binding-linux-x64-gnu@1.9.0': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.9.0': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.9.0': dependencies: - '@napi-rs/wasm-runtime': 0.2.10 + '@napi-rs/wasm-runtime': 0.2.11 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.7.10': + '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.7.10': + '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.7.10': + '@unrs/resolver-binding-win32-x64-msvc@1.9.0': optional: true '@vitest/expect@2.0.5': @@ -11213,13 +11244,13 @@ snapshots: dependencies: '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 - loupe: 3.1.3 + loupe: 3.1.4 tinyrainbow: 1.2.0 '@vitest/utils@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 - loupe: 3.1.3 + loupe: 3.1.4 tinyrainbow: 1.2.0 '@webassemblyjs/ast@1.14.1': @@ -11331,11 +11362,9 @@ snapshots: dependencies: acorn: 8.15.0 - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.1 - - acorn@8.14.1: {} + acorn: 8.15.0 acorn@8.15.0: {} @@ -11543,16 +11572,16 @@ snapshots: axe-core: 4.10.3 mustache: 4.2.0 - axe-playwright@2.1.0(playwright@1.52.0): + axe-playwright@2.1.0(playwright@1.53.0): dependencies: '@types/junit-report-builder': 3.0.2 axe-core: 4.10.3 axe-html-reporter: 2.2.11(axe-core@4.10.3) junit-report-builder: 5.1.1 picocolors: 1.1.1 - playwright: 1.52.0 + playwright: 1.53.0 - axios@1.9.0: + axios@1.10.0: dependencies: follow-redirects: 1.15.9 form-data: 4.0.3 @@ -11575,12 +11604,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: '@babel/core': 7.27.4 find-cache-dir: 4.0.0 schema-utils: 4.3.2 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) babel-plugin-istanbul@6.1.1: dependencies: @@ -11612,7 +11641,7 @@ snapshots: dependencies: '@babel/core': 7.27.4 '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) - core-js-compat: 3.42.0 + core-js-compat: 3.43.0 transitivePeerDependencies: - supports-color @@ -11670,12 +11699,12 @@ snapshots: boring-avatars@1.11.2: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -11734,8 +11763,8 @@ snapshots: browserslist@4.25.0: dependencies: - caniuse-lite: 1.0.30001721 - electron-to-chromium: 1.5.165 + caniuse-lite: 1.0.30001723 + electron-to-chromium: 1.5.169 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.0) @@ -11797,7 +11826,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001721: {} + caniuse-lite@1.0.30001723: {} case-sensitive-paths-webpack-plugin@2.4.0: {} @@ -11808,7 +11837,7 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 + loupe: 3.1.4 pathval: 2.0.0 chalk@2.4.2: @@ -11984,11 +12013,11 @@ snapshots: cookie@1.0.2: {} - core-js-compat@3.42.0: + core-js-compat@3.43.0: dependencies: browserslist: 4.25.0 - core-js-pure@3.42.0: {} + core-js-pure@3.43.0: {} core-util-is@1.0.3: {} @@ -12069,7 +12098,7 @@ snapshots: css-color-keywords@1.0.0: {} - css-loader@6.11.0(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + css-loader@6.11.0(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: icss-utils: 5.1.0(postcss@8.5.4) postcss: 8.5.4 @@ -12080,7 +12109,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) css-select@4.3.0: dependencies: @@ -12209,7 +12238,7 @@ snapshots: decimal.js-light@2.5.1: {} - decode-named-character-reference@1.1.0: + decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 @@ -12351,7 +12380,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.165: {} + electron-to-chromium@1.5.169: {} elliptic@6.6.1: dependencies: @@ -12513,40 +12542,40 @@ snapshots: es6-error@4.1.1: {} - esbuild-register@3.6.0(esbuild@0.24.2): + esbuild-register@3.6.0(esbuild@0.25.5): dependencies: debug: 4.4.1 - esbuild: 0.24.2 + esbuild: 0.25.5 transitivePeerDependencies: - supports-color - esbuild@0.24.2: + esbuild@0.25.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.25.5 + '@esbuild/android-arm': 0.25.5 + '@esbuild/android-arm64': 0.25.5 + '@esbuild/android-x64': 0.25.5 + '@esbuild/darwin-arm64': 0.25.5 + '@esbuild/darwin-x64': 0.25.5 + '@esbuild/freebsd-arm64': 0.25.5 + '@esbuild/freebsd-x64': 0.25.5 + '@esbuild/linux-arm': 0.25.5 + '@esbuild/linux-arm64': 0.25.5 + '@esbuild/linux-ia32': 0.25.5 + '@esbuild/linux-loong64': 0.25.5 + '@esbuild/linux-mips64el': 0.25.5 + '@esbuild/linux-ppc64': 0.25.5 + '@esbuild/linux-riscv64': 0.25.5 + '@esbuild/linux-s390x': 0.25.5 + '@esbuild/linux-x64': 0.25.5 + '@esbuild/netbsd-arm64': 0.25.5 + '@esbuild/netbsd-x64': 0.25.5 + '@esbuild/openbsd-arm64': 0.25.5 + '@esbuild/openbsd-x64': 0.25.5 + '@esbuild/sunos-x64': 0.25.5 + '@esbuild/win32-arm64': 0.25.5 + '@esbuild/win32-ia32': 0.25.5 + '@esbuild/win32-x64': 0.25.5 escalade@3.2.0: {} @@ -12560,12 +12589,12 @@ snapshots: dependencies: '@next/eslint-plugin-next': 15.3.3 '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.34.1(@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) @@ -12593,24 +12622,24 @@ snapshots: is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.14 - unrs-resolver: 1.7.10 + unrs-resolver: 1.9.0 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -12621,7 +12650,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12633,7 +12662,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.1(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -12687,7 +12716,7 @@ snapshots: eslint-plugin-storybook@0.12.0(eslint@8.57.1)(typescript@5.8.3): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -12706,7 +12735,7 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} eslint@8.57.1: dependencies: @@ -12753,8 +12782,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -12862,7 +12891,7 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.4.5(picomatch@4.0.2): + fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -12943,7 +12972,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -12958,7 +12987,7 @@ snapshots: semver: 7.7.2 tapable: 2.2.2 typescript: 5.8.3 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) form-data@4.0.3: dependencies: @@ -12972,8 +13001,8 @@ snapshots: framer-motion@12.16.0(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 12.16.0 - motion-utils: 12.12.1 + motion-dom: 12.18.1 + motion-utils: 12.18.1 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.2.2 @@ -13162,7 +13191,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.6: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -13174,7 +13203,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 + style-to-js: 1.1.17 unist-util-position: 5.0.0 vfile-message: 4.0.2 transitivePeerDependencies: @@ -13214,11 +13243,11 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.41.0 + terser: 5.42.0 html-url-attributes@3.0.1: {} - html-webpack-plugin@5.6.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + html-webpack-plugin@5.6.3(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -13226,7 +13255,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) htmlparser2@3.10.1: dependencies: @@ -13737,7 +13766,7 @@ snapshots: jest-process-manager: 0.4.0 jest-runner: 29.7.0 nyc: 15.1.0 - playwright-core: 1.52.0 + playwright-core: 1.53.0 rimraf: 3.0.2 uuid: 8.3.2 transitivePeerDependencies: @@ -14078,7 +14107,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} + loupe@3.1.4: {} lower-case@2.0.2: dependencies: @@ -14130,7 +14159,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -14229,7 +14258,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -14304,7 +14333,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -14342,7 +14371,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.1 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -14386,15 +14415,15 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@8.0.4: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -14408,11 +14437,11 @@ snapshots: moment@2.30.1: {} - motion-dom@12.16.0: + motion-dom@12.18.1: dependencies: - motion-utils: 12.12.1 + motion-utils: 12.18.1 - motion-utils@12.12.1: {} + motion-utils@12.18.1: {} ms@2.1.3: {} @@ -14475,7 +14504,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001721 + caniuse-lite: 1.0.30001723 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -14509,7 +14538,7 @@ snapshots: node-int64@0.4.0: {} - node-polyfill-webpack-plugin@2.0.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + node-polyfill-webpack-plugin@2.0.1(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -14536,7 +14565,7 @@ snapshots: url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) node-preload@0.2.1: dependencies: @@ -14736,7 +14765,7 @@ snapshots: '@types/unist': 2.0.11 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 @@ -14820,12 +14849,20 @@ snapshots: playwright-core@1.52.0: {} + playwright-core@1.53.0: {} + playwright@1.52.0: dependencies: playwright-core: 1.52.0 optionalDependencies: fsevents: 2.3.2 + playwright@1.53.0: + dependencies: + playwright-core: 1.53.0 + optionalDependencies: + fsevents: 2.3.2 + pnp-webpack-plugin@1.7.0(typescript@5.8.3): dependencies: ts-pnp: 1.2.0(typescript@5.8.3) @@ -14857,14 +14894,14 @@ snapshots: optionalDependencies: postcss: 8.5.4 - postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 1.21.7 postcss: 8.5.4 semver: 7.7.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) transitivePeerDependencies: - typescript @@ -15040,7 +15077,7 @@ snapshots: date-fns-jalali: 4.1.0-0 react: 18.3.1 - react-docgen-typescript@2.2.2(typescript@5.8.3): + react-docgen-typescript@2.4.0(typescript@5.8.3): dependencies: typescript: 5.8.3 @@ -15070,7 +15107,7 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-components: 6.1.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-hook-form@7.57.0(react@18.3.1): dependencies: @@ -15433,11 +15470,11 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - sass-loader@14.2.1(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + sass-loader@14.2.1(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: neo-async: 2.6.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) scheduler@0.23.2: dependencies: @@ -15804,19 +15841,19 @@ snapshots: strip-json-comments@3.1.1: {} - style-loader@3.3.4(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + style-loader@3.3.4(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) - style-to-js@1.1.16: + style-to-js@1.1.17: dependencies: - style-to-object: 1.0.8 + style-to-object: 1.0.9 - style-to-object@1.0.8: + style-to-object@1.0.9: dependencies: inline-style-parser: 0.2.4 - styled-components@6.1.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@emotion/is-prop-valid': 1.2.2 '@emotion/unitless': 0.8.1 @@ -15905,19 +15942,19 @@ snapshots: tapable@2.2.2: {} - terser-webpack-plugin@5.3.14(@swc/core@1.11.31)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + terser-webpack-plugin@5.3.14(@swc/core@1.12.1)(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.41.0 - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + terser: 5.42.0 + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) optionalDependencies: - '@swc/core': 1.11.31 - esbuild: 0.24.2 + '@swc/core': 1.12.1 + esbuild: 0.25.5 - terser@5.41.0: + terser@5.42.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.15.0 @@ -15950,7 +15987,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.5(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 tinyrainbow@1.2.0: {} @@ -16141,30 +16178,32 @@ snapshots: unplugin@1.16.1: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.7.10: + unrs-resolver@1.9.0: dependencies: napi-postinstall: 0.2.4 optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.7.10 - '@unrs/resolver-binding-darwin-x64': 1.7.10 - '@unrs/resolver-binding-freebsd-x64': 1.7.10 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.10 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.10 - '@unrs/resolver-binding-linux-arm64-gnu': 1.7.10 - '@unrs/resolver-binding-linux-arm64-musl': 1.7.10 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.10 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.10 - '@unrs/resolver-binding-linux-riscv64-musl': 1.7.10 - '@unrs/resolver-binding-linux-s390x-gnu': 1.7.10 - '@unrs/resolver-binding-linux-x64-gnu': 1.7.10 - '@unrs/resolver-binding-linux-x64-musl': 1.7.10 - '@unrs/resolver-binding-wasm32-wasi': 1.7.10 - '@unrs/resolver-binding-win32-arm64-msvc': 1.7.10 - '@unrs/resolver-binding-win32-ia32-msvc': 1.7.10 - '@unrs/resolver-binding-win32-x64-msvc': 1.7.10 + '@unrs/resolver-binding-android-arm-eabi': 1.9.0 + '@unrs/resolver-binding-android-arm64': 1.9.0 + '@unrs/resolver-binding-darwin-arm64': 1.9.0 + '@unrs/resolver-binding-darwin-x64': 1.9.0 + '@unrs/resolver-binding-freebsd-x64': 1.9.0 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.0 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.0 + '@unrs/resolver-binding-linux-arm64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-arm64-musl': 1.9.0 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-riscv64-musl': 1.9.0 + '@unrs/resolver-binding-linux-s390x-gnu': 1.9.0 + '@unrs/resolver-binding-linux-x64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-x64-musl': 1.9.0 + '@unrs/resolver-binding-wasm32-wasi': 1.9.0 + '@unrs/resolver-binding-win32-arm64-msvc': 1.9.0 + '@unrs/resolver-binding-win32-ia32-msvc': 1.9.0 + '@unrs/resolver-binding-win32-x64-msvc': 1.9.0 update-browserslist-db@1.1.3(browserslist@4.25.0): dependencies: @@ -16260,7 +16299,7 @@ snapshots: wait-on@7.2.0: dependencies: - axios: 1.9.0 + axios: 1.10.0 joi: 17.13.3 lodash: 4.17.21 minimist: 1.2.8 @@ -16291,7 +16330,7 @@ snapshots: webidl-conversions@3.0.1: {} - webpack-dev-middleware@6.1.3(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)): + webpack-dev-middleware@6.1.3(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -16299,7 +16338,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.2 optionalDependencies: - webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.24.2) + webpack: 5.99.9(@swc/core@1.12.1)(esbuild@0.25.5) webpack-hot-middleware@2.26.1: dependencies: @@ -16313,7 +16352,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2): + webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -16321,7 +16360,7 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.1 + acorn: 8.15.0 browserslist: 4.25.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.1 @@ -16336,7 +16375,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(@swc/core@1.11.31)(esbuild@0.24.2)(webpack@5.99.9(@swc/core@1.11.31)(esbuild@0.24.2)) + terser-webpack-plugin: 5.3.14(@swc/core@1.12.1)(esbuild@0.25.5)(webpack@5.99.9(@swc/core@1.12.1)(esbuild@0.25.5)) watchpack: 2.4.4 webpack-sources: 3.3.2 transitivePeerDependencies: diff --git a/autogpt_platform/frontend/src/stories/icons.stories.tsx b/autogpt_platform/frontend/src/stories/icons.stories.tsx new file mode 100644 index 0000000000..825c782a48 --- /dev/null +++ b/autogpt_platform/frontend/src/stories/icons.stories.tsx @@ -0,0 +1,462 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import { Text } from "@/components/_new/Text/Text"; +import { StoryCode } from "@/stories/helpers/StoryCode"; +import { SquareArrowOutUpRight } from "lucide-react"; +import { + User, + UserPlus, + Key, + FlowArrow, + Play, + Square, + ArrowClockwise, + FloppyDisk, + ArrowCounterClockwise, + ArrowClockwise as Redo, + Cube, + Warning, + UserCircle, + Package, + Megaphone, + List, + Coin, + PencilSimple, + SignOut, + Gear, + SquaresFour, + CloudArrowUp, + MediumLogo, + YoutubeLogo, + TiktokLogo, + Globe, + Hammer, + Books, + GithubLogo, + LinkedinLogo, + FacebookLogo, + XLogo, + InstagramLogo, + ArrowLeft, + ArrowRight, + Heart, + Star, + Bell, + MagnifyingGlass, + Plus, + X, + Check, + Info, + Download, + Upload, + Calendar, + Clock, + Eye, + EyeSlash, + Copy, + Trash, + DotsThreeVertical, + Alien, +} from "@phosphor-icons/react"; + +const meta: Meta = { + title: "Design System/ Tokens /Icons", + parameters: { + layout: "fullscreen", + controls: { disable: true }, + }, +}; + +export default meta; + +// Icon categories with examples +const iconCategories = [ + { + name: "User & Authentication", + description: "Icons for user-related actions and authentication flows", + icons: [ + { component: User, name: "User", phosphorName: "User" }, + { component: UserPlus, name: "UserPlus", phosphorName: "UserPlus" }, + { component: UserCircle, name: "UserCircle", phosphorName: "UserCircle" }, + { component: Key, name: "Key", phosphorName: "Key" }, + { component: SignOut, name: "SignOut", phosphorName: "SignOut" }, + ], + }, + { + name: "Actions & Controls", + description: "Icons for common user actions and interface controls", + icons: [ + { component: Play, name: "Play", phosphorName: "Play" }, + { + component: ArrowClockwise, + name: "Refresh", + phosphorName: "ArrowClockwise", + }, + { component: FloppyDisk, name: "Save", phosphorName: "FloppyDisk" }, + { + component: ArrowCounterClockwise, + name: "Undo", + phosphorName: "ArrowCounterClockwise", + }, + { component: Redo, name: "Redo", phosphorName: "ArrowClockwise" }, + { component: PencilSimple, name: "Edit", phosphorName: "PencilSimple" }, + { component: Copy, name: "Copy", phosphorName: "Copy" }, + { component: Trash, name: "Delete", phosphorName: "Trash" }, + ], + }, + { + name: "Navigation & Layout", + description: "Icons for navigation, layout, and organizational elements", + icons: [ + { component: List, name: "Menu", phosphorName: "List" }, + { + component: SquaresFour, + name: "Dashboard", + phosphorName: "SquaresFour", + }, + { component: ArrowLeft, name: "ArrowLeft", phosphorName: "ArrowLeft" }, + { component: ArrowRight, name: "ArrowRight", phosphorName: "ArrowRight" }, + { component: Gear, name: "Settings", phosphorName: "Gear" }, + { component: Books, name: "Library", phosphorName: "Books" }, + ], + }, + { + name: "Content & Media", + description: "Icons for content types, media, and file operations", + icons: [ + { component: CloudArrowUp, name: "Upload", phosphorName: "CloudArrowUp" }, + { component: Download, name: "Download", phosphorName: "Download" }, + { component: Package, name: "Package", phosphorName: "Package" }, + { component: Cube, name: "Block", phosphorName: "Cube" }, + { component: FlowArrow, name: "Workflow", phosphorName: "FlowArrow" }, + ], + }, + { + name: "Feedback & Status", + description: "Icons for alerts, notifications, and status indicators", + icons: [ + { component: Warning, name: "Warning", phosphorName: "Warning" }, + { component: Info, name: "Info", phosphorName: "Info" }, + { component: Check, name: "Success", phosphorName: "Check" }, + { component: X, name: "Close", phosphorName: "X" }, + { component: Bell, name: "Notification", phosphorName: "Bell" }, + ], + }, + { + name: "Social & External", + description: "Icons for social media platforms and external links", + icons: [ + { component: GithubLogo, name: "GitHub", phosphorName: "GithubLogo" }, + { + component: LinkedinLogo, + name: "LinkedIn", + phosphorName: "LinkedinLogo", + }, + { component: XLogo, name: "X (Twitter)", phosphorName: "XLogo" }, + { + component: FacebookLogo, + name: "Facebook", + phosphorName: "FacebookLogo", + }, + { + component: InstagramLogo, + name: "Instagram", + phosphorName: "InstagramLogo", + }, + { component: YoutubeLogo, name: "YouTube", phosphorName: "YoutubeLogo" }, + ], + }, +]; + +export function AllVariants() { + return ( +
    + ); +} + +type Story = StoryObj; From b477d316416d55388dce0f2df086d2f98c5b4fa7 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Tue, 17 Jun 2025 12:11:40 +0100 Subject: [PATCH 103/497] fix(backend): Unbreak `add_store_agent_to_library` (#10166) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Follow-up fix for #9786 A change to a DB statement introduced in #9786 turns out to be breaking. Apparently `connect` can't just be used for *some* relations: if it is used, it must be used for *all* relations created by the statement. ### Changes 🏗️ - Fix broken DB statement in `add_store_agent_to_library(..)` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Add store agent to library Co-authored-by: Swifty --- .../backend/backend/server/v2/library/db.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/autogpt_platform/backend/backend/server/v2/library/db.py b/autogpt_platform/backend/backend/server/v2/library/db.py index 15d479e588..b0f8f7a755 100644 --- a/autogpt_platform/backend/backend/server/v2/library/db.py +++ b/autogpt_platform/backend/backend/server/v2/library/db.py @@ -466,15 +466,15 @@ async def add_store_agent_to_library( # Create LibraryAgent entry added_agent = await prisma.models.LibraryAgent.prisma().create( - data=prisma.types.LibraryAgentCreateInput( - userId=user_id, - AgentGraph={ + data={ + "User": {"connect": {"id": user_id}}, + "AgentGraph": { "connect": { "graphVersionId": {"id": graph.id, "version": graph.version} } }, - isCreatedByUser=False, - ), + "isCreatedByUser": False, + }, include=library_agent_include(user_id), ) logger.debug( From 86361fc1ae8ec08cecbeccfff5b15f04c3a7449a Mon Sep 17 00:00:00 2001 From: Ubbe Date: Tue, 17 Jun 2025 18:29:21 +0400 Subject: [PATCH 104/497] fix(frontend): fix all lint errors and add next/typescript (#10182) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ ### ESLint Config 1. **Disabled `react-hooks/exhaustive-deps`:** - to prevent unnecessary dependency proliferation and rely on code review instead 2. **Added [`next/typescript`](https://nextjs.org/docs/app/api-reference/config/eslint#with-typescript):** - to the ESLint config to make sure we also have TS linting rules 3. **Added custom rule for `@typescript-eslint/no-unused-vars`:** - to allow underscore-prefixed variables (convention for intentionally unused), in some cases helpful From now on, whenever we have unused variables or imports, the `lint` CI will fail 🔴 , thanks to `next/typescript` that adds `typescript-eslint/no-unused-vars` 💆🏽 ### Minor Fixes - Replaced empty interfaces with type aliases to resolve `@typescript-eslint/no-empty-object-type` warnings - Fixed unsafe non-null assertions with proper null checks - Removed `@ts-ignore` comments in favour of proper type casting ( _when possible_ 🙏🏽 ) ### Google Analytics Component - Changed Next.js Script strategy from `beforeInteractive` to `afterInteractive` to resolve Next.js warnings - this make sure loading analytics does not block page render 🙏🏽 ( _better page load time_ ) ### Are these changes safe? As long as the Typescript compiler does not complain ( check the `type-check` job ) we should be save. Most changes are removing unused code, if that code would be used somewhere else the compiler should catch it and tell us 🫶 I also typed some code when possible, or bypassed the linter when I thought it was fair for now. I disabled a couple ESLint rules. Most importantly the `no-explicity-any` one as we have loads of stuff untyped yet ( _this should be improved once API types are generated for us_ ). ### DX Added some settings on `.vscode` folder 📁 so that files will be formatted on save and also ESLint will fix errors on save when able 💯 ### 📈 **Result:** - ✅ All linting errors resolved - ✅ Improved TypeScript strict mode compliance - ✅ Better developer experience with cleaner code ## Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Lint CI job passes - [x] There is not type errors ( _TS will catch issue related to these changes_ ) --- autogpt_platform/frontend/.eslintrc.json | 24 +++++- autogpt_platform/frontend/.prettierignore | 1 + .../onboarding/3-services/page.tsx | 1 - .../app/(no-navbar)/onboarding/5-run/page.tsx | 1 + .../src/app/(platform)/admin/layout.tsx | 3 +- .../(platform)/admin/marketplace/actions.ts | 2 - .../app/(platform)/admin/spending/actions.ts | 1 + .../src/app/(platform)/auth/callback/route.ts | 2 +- .../auth/integrations/oauth_callback/route.ts | 2 +- .../src/app/(platform)/build/actions.ts | 1 - .../marketplace/creator/[creator]/page.tsx | 2 +- .../(platform)/marketplace/search/page.tsx | 5 +- .../profile/(user)/dashboard/page.tsx | 2 +- autogpt_platform/frontend/src/app/layout.tsx | 2 +- .../src/components/ConnectionLine.tsx | 4 +- .../frontend/src/components/CustomEdge.tsx | 6 +- .../frontend/src/components/CustomNode.tsx | 16 +--- .../frontend/src/components/DataTable.tsx | 7 +- .../frontend/src/components/Flow.tsx | 9 +-- .../src/components/OttoChatWidget.tsx | 2 +- .../frontend/src/components/SchemaTooltip.tsx | 2 +- .../src/components/_new/Text/Text.stories.tsx | 2 +- .../admin/marketplace/expandable-row.tsx | 4 +- .../admin/marketplace/search-filter-form.tsx | 1 - .../admin/spending/add-money-button.tsx | 3 - .../admin-grant-history-data-table.tsx | 2 +- .../admin/spending/search-filter-form.tsx | 3 +- .../components/agptui/AgentTable.stories.tsx | 3 +- .../src/components/agptui/AgentTable.tsx | 2 +- .../agptui/AgentTableCard.stories.tsx | 2 +- .../src/components/agptui/AgentTableCard.tsx | 1 - .../src/components/agptui/BreadCrumbs.tsx | 1 - .../agptui/FeaturedStoreCard.stories.tsx | 4 +- .../components/agptui/FilterChips.stories.tsx | 6 +- .../src/components/agptui/Navbar.stories.tsx | 26 ------ .../agptui/ProfilePopoutMenuLogoutButton.tsx | 10 +-- .../components/agptui/StoreCard.stories.tsx | 2 +- .../src/components/agptui/ThemeToggle.tsx | 1 - .../src/components/agptui/WalletRefill.tsx | 1 - .../agptui/composite/APIKeySection.tsx | 6 +- .../composite/FeaturedSection.stories.tsx | 11 ++- .../agptui/composite/FeaturedSection.tsx | 2 +- .../agptui/composite/HeroSection.tsx | 1 - .../composite/PublishAgentPopout.stories.tsx | 2 +- .../agptui/composite/PublishAgentPopout.tsx | 4 +- .../components/analytics/google-analytics.tsx | 19 ++--- .../src/components/auth/AuthFeedback.tsx | 2 +- .../src/components/auth/GoogleOAuthButton.tsx | 1 - .../src/components/auth/Turnstile.tsx | 4 +- .../frontend/src/components/cronScheduler.tsx | 7 +- .../library/library-action-header.tsx | 2 +- .../library/library-notification-card.tsx | 2 +- .../components/library/library-sort-menu.tsx | 2 +- .../src/components/monitor/FlowInfo.tsx | 4 +- .../components/monitor/FlowRunsTimeline.tsx | 2 +- .../src/components/node-input-components.tsx | 23 +----- .../onboarding/onboarding-provider.tsx | 1 - .../profile/settings/SettingsForm.tsx | 5 +- .../components/runner-ui/RunnerOutputUI.tsx | 2 +- .../src/components/type-based-input.tsx | 22 +++--- .../src/components/ui/button.stories.tsx | 1 - .../frontend/src/components/ui/command.tsx | 4 +- .../frontend/src/components/ui/icons.tsx | 3 +- .../frontend/src/components/ui/input.tsx | 3 +- .../src/components/ui/multiselect.stories.tsx | 8 +- .../src/components/ui/popover.stories.tsx | 2 +- .../src/components/ui/render.stories.tsx | 1 - .../frontend/src/components/ui/render.tsx | 1 - .../frontend/src/components/ui/textarea.tsx | 3 +- .../frontend/src/components/ui/use-toast.tsx | 14 ++-- .../frontend/src/hooks/useAgentGraph.tsx | 39 ++++----- .../src/lib/autogpt-server-api/client.ts | 8 +- .../src/lib/autogpt-server-api/types.ts | 1 + .../src/lib/supabase/hooks/useSupabase.ts | 6 +- .../frontend/src/lib/supabase/middleware.ts | 10 +-- .../lib/supabase/server/getServerSupabase.ts | 8 +- .../src/lib/supabase/server/getServerUser.ts | 1 - autogpt_platform/frontend/src/lib/utils.ts | 2 +- .../frontend/src/stories/Spacing.stories.tsx | 4 +- .../src/stories/Typography.stories.tsx | 2 +- .../src/stories/border-radius.stories.tsx | 4 +- .../frontend/src/stories/icons.stories.tsx | 79 +++++++------------ .../frontend/src/tests/build.spec.ts | 2 +- .../src/tests/fixtures/test-user.fixture.ts | 36 --------- .../frontend/src/tests/monitor.spec.ts | 6 +- .../frontend/src/tests/pages/build.page.ts | 12 +-- .../frontend/src/tests/pages/monitor.page.ts | 8 +- .../frontend/src/tests/profile.spec.ts | 7 +- .../frontend/src/tests/util.spec.ts | 1 + 89 files changed, 220 insertions(+), 349 deletions(-) diff --git a/autogpt_platform/frontend/.eslintrc.json b/autogpt_platform/frontend/.eslintrc.json index bb8b1c099d..f5bc19d00b 100644 --- a/autogpt_platform/frontend/.eslintrc.json +++ b/autogpt_platform/frontend/.eslintrc.json @@ -1,3 +1,25 @@ { - "extends": ["next/core-web-vitals", "plugin:storybook/recommended"] + "extends": [ + "next/core-web-vitals", + "next/typescript", + "plugin:storybook/recommended" + ], + "rules": { + // Disabling exhaustive-deps to avoid forcing unnecessary dependencies and useCallback proliferation. + // We rely on code review for proper dependency management instead of mechanical rule following. + // See: https://kentcdodds.com/blog/usememo-and-usecallback + "react-hooks/exhaustive-deps": "off", + // Disable temporarily as we have some `any` in the codebase and we need to got case by case + // and see if they can be fixed. + "@typescript-eslint/no-explicit-any": "off", + // Allow unused vars that start with underscore (convention for intentionally unused) + "@typescript-eslint/no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ] + } } diff --git a/autogpt_platform/frontend/.prettierignore b/autogpt_platform/frontend/.prettierignore index 2f038d1278..9951e9905d 100644 --- a/autogpt_platform/frontend/.prettierignore +++ b/autogpt_platform/frontend/.prettierignore @@ -1,5 +1,6 @@ node_modules pnpm-lock.yaml .next +.auth build public diff --git a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/3-services/page.tsx b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/3-services/page.tsx index 92623301d8..a7867aca50 100644 --- a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/3-services/page.tsx +++ b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/3-services/page.tsx @@ -9,7 +9,6 @@ import { OnboardingText } from "@/components/onboarding/OnboardingText"; import { OnboardingGrid } from "@/components/onboarding/OnboardingGrid"; import { useCallback } from "react"; import OnboardingInput from "@/components/onboarding/OnboardingInput"; -import { isEmptyOrWhitespace } from "@/lib/utils"; import { useOnboarding } from "@/components/onboarding/onboarding-provider"; const services = [ diff --git a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx index 5ea5e3adf2..7769e0c48a 100644 --- a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx +++ b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx @@ -49,6 +49,7 @@ export default function Page() { .getAgentMetaByStoreListingVersionId(state?.selectedStoreListingVersionId) .then((agent) => { setAgent(agent); + // eslint-disable-next-line @typescript-eslint/no-explicit-any const update: { [key: string]: any } = {}; // Set default values from schema Object.entries(agent.input_schema.properties).forEach( diff --git a/autogpt_platform/frontend/src/app/(platform)/admin/layout.tsx b/autogpt_platform/frontend/src/app/(platform)/admin/layout.tsx index cb72daee73..bfb2b2695d 100644 --- a/autogpt_platform/frontend/src/app/(platform)/admin/layout.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/admin/layout.tsx @@ -1,6 +1,5 @@ -import { ShoppingBag } from "lucide-react"; import { Sidebar } from "@/components/agptui/Sidebar"; -import { Users, DollarSign, LogOut } from "lucide-react"; +import { Users, DollarSign } from "lucide-react"; import { IconSliders } from "@/components/ui/icons"; diff --git a/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/actions.ts b/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/actions.ts index ad7f48f24c..480e79e669 100644 --- a/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/actions.ts @@ -3,9 +3,7 @@ import { revalidatePath } from "next/cache"; import BackendApi from "@/lib/autogpt-server-api"; import { - NotificationPreferenceDTO, StoreListingsWithVersionsResponse, - StoreSubmissionsResponse, SubmissionStatus, } from "@/lib/autogpt-server-api/types"; diff --git a/autogpt_platform/frontend/src/app/(platform)/admin/spending/actions.ts b/autogpt_platform/frontend/src/app/(platform)/admin/spending/actions.ts index b6ef75a599..ea4a194acd 100644 --- a/autogpt_platform/frontend/src/app/(platform)/admin/spending/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/admin/spending/actions.ts @@ -29,6 +29,7 @@ export async function getUsersTransactionHistory( search?: string, transactionType?: CreditTransactionType, ): Promise { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const data: Record = { page, page_size: pageSize, diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts index e0a991138e..62e324761e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts @@ -38,7 +38,7 @@ export async function GET(request: Request) { return NextResponse.redirect(`${origin}/error`); } - const { data, error } = await supabase.auth.exchangeCodeForSession(code); + const { error } = await supabase.auth.exchangeCodeForSession(code); // data.session?.refresh_token is available if you need to store it for later use if (!error) { try { diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts index 5d4100d48e..18e74369df 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts @@ -5,7 +5,7 @@ import { NextResponse } from "next/server"; // controlled by the CredentialsInput component. The CredentialsInput opens the login // page in a pop-up window, which then redirects to this route to close the loop. export async function GET(request: Request) { - const { searchParams, origin } = new URL(request.url); + const { searchParams } = new URL(request.url); const code = searchParams.get("code"); const state = searchParams.get("state"); diff --git a/autogpt_platform/frontend/src/app/(platform)/build/actions.ts b/autogpt_platform/frontend/src/app/(platform)/build/actions.ts index 16c577d16c..7907d919f4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/actions.ts @@ -1,6 +1,5 @@ "use server"; -import { revalidatePath } from "next/cache"; import BackendAPI from "@/lib/autogpt-server-api/client"; import { OttoQuery, OttoResponse } from "@/lib/autogpt-server-api/types"; diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx index b462cdb704..484022f151 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx @@ -92,7 +92,7 @@ export default async function Page({
    + {/* Icons System Documentation */} +
    +
    + + Icons System + + + Our icon system uses Phosphor Icons to provide a consistent, modern, + and comprehensive set of icons across all components. Phosphor + offers multiple weights and a cohesive design language that aligns + with our design principles. + +
    + +
    +
    + + Phosphor Icons + +
    +
    + + Phosphor Icons Library{" "} + + + + A flexible icon family with multiple weights and styles + +
    + @phosphor-icons/react → React components +
    +
    +
    + + Available Weights + + + Phosphor icons offer multiple weights - use the one specified + in your designs + +
    +
    regular (default), light, bold, fill, thin, duotone
    +
    +
    +
    +
    + +
    + + Usage Guidelines + +
    +
    + + ✅ Always Use Phosphor Icons + +
    + + • Import from @phosphor-icons/react + + + • Always match size and weight from Figma designs + + + • Ensure icons have proper semantic meaning + + + • Verify accessibility and color contrast + +
    +
    +
    + + 🎨 Design Consistency + +
    + + • Follow the exact specifications from design team + + + • Maintain consistency across similar UI elements + + + • Consider accessibility requirements (minimum 16px) + +
    +
    +
    +
    +
    +
    + + {/* Design Matching */} +
    +
    + + Matching Design Specifications + + + When implementing icons, always reference the design specifications + provided by the design team to ensure proper sizing and weight. + +
    + +
    + + 🎨 Always Match Figma Designs + +
    + + • Check the Figma designs for exact icon sizes (16px, 20px, 24px, + etc.) + + + • Match the icon weight specified in designs (regular, bold, fill, + etc.) + + + • Ensure color and opacity match the design specifications + + + • Verify spacing and alignment with surrounding elements + +
    +
    + +
    +
    + + + 16px + +
    +
    + + + 20px + +
    +
    + + + 24px + +
    +
    + + + 32px + +
    +
    +
    + + {/* Icon Categories */} +
    +
    + + Icon Categories + + + Our curated icon set organized by functional categories. Each icon + is carefully selected to maintain consistency and semantic clarity. + +
    + + {iconCategories.map((category) => ( +
    +
    + + {category.name} + + + {category.description} + +
    +
    + {category.icons.map((icon) => ( +
    + + + {icon.phosphorName} + +
    + ))} +
    +
    + ))} +
    + + {/* Usage Examples */} +
    +
    + + Usage Examples + + + How to properly implement Phosphor icons in your React components. + +
    + + + + +// Custom sizes + // Small + // Default + // Large + // Extra large + +// With custom colors + + + +// Different weights + // 1px stroke + // 1.5px stroke + // 2px stroke (default) + // 2.5px stroke + // Filled version + // Two-tone style + +// Interactive states + + +// In buttons + + +// Responsive sizing with Tailwind +`} + /> +
    +

    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 \ No newline at end of file From fb18ddf95d16f774053a42f40a4854255e17c873 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Fri, 13 Jun 2025 19:28:03 +0400 Subject: [PATCH 096/497] feat(frontend): handle cross-tab login/logout + auth architecture refactor (#10150) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 🏗️ Changes ### 🧢 Authentication improvements - Updates for [CASA compliance](https://appdefensealliance.dev/casa) - implemented cross-tab login/logout - logout now triggers cross-device logout - forgot password triggers cross-device logout - we are already able to revoke sessions given Supabase stores sessions 🙌🏽 ### 📙 Cross-tab login/logout implementation I implemented some session validation debouncing ( _2-second cooldown_ ) to prevent excessive API calls when switching tabs fast ( _more of an edge-case but could happen_ ). Cross tab implementation is done via `localStorage` and `window.visibility` events. ### Refactor and cleanup Smol things to improve our auth logic on the Frontend: - created `helpers.ts` with utilities for protected page detection, admin page routing, and cross-tab communication - added `STORAGE_KEYS`, `PROTECTED_PAGES`, and `ADMIN_PAGES` constants for better organization - refactored server-side Supabase utilities and middleware - updated import paths to use named exports ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Cross-tab logout synchronization works correctly - [x] Session validation debouncing prevents excessive API calls - [x] Protected page redirects function properly - [x] Authentication state persists correctly across tabs - [x] Role-based access controls work as expected - [x] Cross-device logout is performed after forgot password change ### Cross-tab login/logout https://github.com/user-attachments/assets/5dbdd204-faa2-419f-b989-e31f69ddabd6 ### Cross-device logout https://github.com/user-attachments/assets/aac9c97a-beec-4519-a391-f94f988dc7c8 --- .../src/app/(platform)/auth/callback/route.ts | 2 +- .../src/app/(platform)/auth/confirm/route.ts | 2 +- .../src/app/(platform)/login/actions.ts | 2 +- .../src/app/(platform)/login/useLoginPage.ts | 2 +- .../agent/[creator]/[slug]/page.tsx | 2 +- .../profile/(user)/dashboard/page.tsx | 2 +- .../profile/(user)/integrations/page.tsx | 2 +- .../profile/(user)/settings/actions.ts | 2 +- .../profile/(user)/settings/page.tsx | 2 +- .../app/(platform)/reset_password/actions.ts | 4 +- .../app/(platform)/reset_password/page.tsx | 2 +- .../src/app/(platform)/signup/actions.ts | 2 +- .../app/(platform)/signup/useSignupPage.ts | 2 +- .../src/components/RoleBasedAccess.tsx | 2 +- .../frontend/src/components/agptui/Navbar.tsx | 3 +- .../src/components/agptui/ProfileInfoForm.tsx | 2 +- .../agptui/ProfilePopoutMenuLogoutButton.tsx | 4 +- .../agptui/composite/HeroSection.tsx | 1 + .../integrations/credentials-provider.tsx | 2 +- .../onboarding/onboarding-provider.tsx | 2 +- .../src/lib/autogpt-server-api/client.ts | 2 +- .../frontend/src/lib/supabase/helpers.ts | 83 +++++++++ .../src/lib/supabase/hooks/useSupabase.ts | 158 ++++++++++++++++++ .../frontend/src/lib/supabase/middleware.ts | 50 ++---- .../{ => server}/getServerSupabase.ts | 2 +- .../supabase/{ => server}/getServerUser.ts | 10 +- .../frontend/src/lib/supabase/useSupabase.ts | 65 ------- .../frontend/src/lib/withRoleAccess.ts | 2 +- 28 files changed, 286 insertions(+), 130 deletions(-) create mode 100644 autogpt_platform/frontend/src/lib/supabase/helpers.ts create mode 100644 autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts rename autogpt_platform/frontend/src/lib/supabase/{ => server}/getServerSupabase.ts (95%) rename autogpt_platform/frontend/src/lib/supabase/{ => server}/getServerUser.ts (86%) delete mode 100644 autogpt_platform/frontend/src/lib/supabase/useSupabase.ts diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts index b3bd78f3a7..54db111dfd 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts @@ -1,4 +1,4 @@ -import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import { getServerSupabase } from "@/lib/supabase/server/getServerSupabase"; import BackendAPI from "@/lib/autogpt-server-api"; import { NextResponse } from "next/server"; import { revalidatePath } from "next/cache"; diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts index a78efd20ff..a9b7c6f751 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/confirm/route.ts @@ -2,7 +2,7 @@ import { type EmailOtpType } from "@supabase/supabase-js"; import { type NextRequest } from "next/server"; import { redirect } from "next/navigation"; -import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import { getServerSupabase } from "@/lib/supabase/server/getServerSupabase"; // Email confirmation route export async function GET(request: NextRequest) { diff --git a/autogpt_platform/frontend/src/app/(platform)/login/actions.ts b/autogpt_platform/frontend/src/app/(platform)/login/actions.ts index 69a1c0be95..ab84cc54f0 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/login/actions.ts @@ -3,7 +3,7 @@ import { revalidatePath } from "next/cache"; import { redirect } from "next/navigation"; import { z } from "zod"; import * as Sentry from "@sentry/nextjs"; -import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import { getServerSupabase } from "@/lib/supabase/server/getServerSupabase"; import BackendAPI from "@/lib/autogpt-server-api"; import { loginFormSchema, LoginProvider } from "@/types/auth"; import { verifyTurnstileToken } from "@/lib/turnstile"; diff --git a/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts b/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts index 685db4e6e4..a394b6e8a4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts +++ b/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts @@ -1,5 +1,5 @@ import { useTurnstile } from "@/hooks/useTurnstile"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { loginFormSchema, LoginProvider } from "@/types/auth"; import { zodResolver } from "@hookform/resolvers/zod"; import { useRouter } from "next/navigation"; diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx index 2c10864f55..0bbc0b8c60 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx @@ -6,7 +6,7 @@ import { AgentsSection } from "@/components/agptui/composite/AgentsSection"; import { BecomeACreator } from "@/components/agptui/BecomeACreator"; import { Separator } from "@/components/ui/separator"; import { Metadata } from "next"; -import getServerUser from "@/lib/supabase/getServerUser"; +import { getServerUser } from "@/lib/supabase/server/getServerUser"; // Force dynamic rendering to avoid static generation issues with cookies export const dynamic = "force-dynamic"; diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx index 309a41cb7e..e2cface85c 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx @@ -11,7 +11,7 @@ import { StoreSubmissionsResponse, StoreSubmissionRequest, } from "@/lib/autogpt-server-api/types"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; export default function Page({}: {}) { diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx index 3cceb3c6b3..7ffb97ca5e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx @@ -26,7 +26,7 @@ import { AlertDialogHeader, AlertDialogTitle, } from "@/components/ui/alert-dialog"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import LoadingBox from "@/components/ui/loading"; export default function UserIntegrationsPage() { diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts index 88d996cf43..09fc2e26e0 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/actions.ts @@ -1,7 +1,7 @@ "use server"; import { revalidatePath } from "next/cache"; -import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import { getServerSupabase } from "@/lib/supabase/server/getServerSupabase"; import BackendApi from "@/lib/autogpt-server-api"; import { NotificationPreferenceDTO } from "@/lib/autogpt-server-api/types"; diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx index 21898fe0ca..e000accbe1 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx @@ -1,7 +1,7 @@ import * as React from "react"; import { Metadata } from "next"; import SettingsForm from "@/components/profile/settings/SettingsForm"; -import getServerUser from "@/lib/supabase/getServerUser"; +import { getServerUser } from "@/lib/supabase/server/getServerUser"; import { redirect } from "next/navigation"; import { getUserPreferences } from "./actions"; diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts index e1e8a17af6..7cc4da5189 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/actions.ts @@ -1,5 +1,5 @@ "use server"; -import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import { getServerSupabase } from "@/lib/supabase/server/getServerSupabase"; import { redirect } from "next/navigation"; import * as Sentry from "@sentry/nextjs"; import { verifyTurnstileToken } from "@/lib/turnstile"; @@ -64,7 +64,7 @@ export async function changePassword(password: string, turnstileToken: string) { return error.message; } - await supabase.auth.signOut(); + await supabase.auth.signOut({ scope: "global" }); redirect("/login"); }, ); diff --git a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx index 23e0e336e4..5a8e04290f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/reset_password/page.tsx @@ -17,7 +17,7 @@ import { FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { sendEmailFormSchema, changePasswordFormSchema } from "@/types/auth"; import { zodResolver } from "@hookform/resolvers/zod"; import { useCallback, useState } from "react"; diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts b/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts index 3d3819e6d4..9fa41e4510 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/signup/actions.ts @@ -3,7 +3,7 @@ import { revalidatePath } from "next/cache"; import { redirect } from "next/navigation"; import { z } from "zod"; import * as Sentry from "@sentry/nextjs"; -import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import { getServerSupabase } from "@/lib/supabase/server/getServerSupabase"; import { signupFormSchema } from "@/types/auth"; import BackendAPI from "@/lib/autogpt-server-api"; import { verifyTurnstileToken } from "@/lib/turnstile"; diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts b/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts index 6394c5cb71..bc3a64291a 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts +++ b/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts @@ -1,5 +1,5 @@ import { useTurnstile } from "@/hooks/useTurnstile"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { signupFormSchema, LoginProvider } from "@/types/auth"; import { zodResolver } from "@hookform/resolvers/zod"; import { useRouter } from "next/navigation"; diff --git a/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx b/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx index e5a4b98aa2..b31e4dd08b 100644 --- a/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx +++ b/autogpt_platform/frontend/src/components/RoleBasedAccess.tsx @@ -1,5 +1,5 @@ // components/RoleBasedAccess.tsx -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import React from "react"; interface RoleBasedAccessProps { diff --git a/autogpt_platform/frontend/src/components/agptui/Navbar.tsx b/autogpt_platform/frontend/src/components/agptui/Navbar.tsx index ff188888e7..5e78a4dc31 100644 --- a/autogpt_platform/frontend/src/components/agptui/Navbar.tsx +++ b/autogpt_platform/frontend/src/components/agptui/Navbar.tsx @@ -7,8 +7,9 @@ import { Button } from "./Button"; import Wallet from "./Wallet"; import { ProfileDetails } from "@/lib/autogpt-server-api/types"; import { NavbarLink } from "./NavbarLink"; -import getServerUser from "@/lib/supabase/getServerUser"; + import BackendAPI from "@/lib/autogpt-server-api"; +import { getServerUser } from "@/lib/supabase/server/getServerUser"; // Disable theme toggle for now // import { ThemeToggle } from "./ThemeToggle"; diff --git a/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx b/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx index c83945becc..ad45fd93b7 100644 --- a/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx +++ b/autogpt_platform/frontend/src/components/agptui/ProfileInfoForm.tsx @@ -9,7 +9,7 @@ import { Button } from "./Button"; import { IconPersonFill } from "@/components/ui/icons"; import { ProfileDetails } from "@/lib/autogpt-server-api/types"; import { Separator } from "@/components/ui/separator"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; export const ProfileInfoForm = ({ profile }: { profile: ProfileDetails }) => { diff --git a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx index 18c30e1ad1..ea2b4473b9 100644 --- a/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx +++ b/autogpt_platform/frontend/src/components/agptui/ProfilePopoutMenuLogoutButton.tsx @@ -1,5 +1,5 @@ "use client"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { IconLogOut } from "@/components/ui/icons"; import { useTransition } from "react"; import { LoadingSpinner } from "../ui/loading"; @@ -16,7 +16,7 @@ export function ProfilePopoutMenuLogoutButton() { function handleLogout() { startTransition(async () => { try { - await supabase.logOut(); + await supabase.logOut({ scope: "global" }); router.refresh(); } catch (e) { Sentry.captureException(e); diff --git a/autogpt_platform/frontend/src/components/agptui/composite/HeroSection.tsx b/autogpt_platform/frontend/src/components/agptui/composite/HeroSection.tsx index e666d9f267..955ba1830c 100644 --- a/autogpt_platform/frontend/src/components/agptui/composite/HeroSection.tsx +++ b/autogpt_platform/frontend/src/components/agptui/composite/HeroSection.tsx @@ -5,6 +5,7 @@ import { SearchBar } from "@/components/agptui/SearchBar"; import { FilterChips } from "@/components/agptui/FilterChips"; import { useRouter } from "next/navigation"; import { useOnboarding } from "@/components/onboarding/onboarding-provider"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; export const HeroSection: React.FC = () => { const router = useRouter(); diff --git a/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx b/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx index f74fc3c7c5..26823d0177 100644 --- a/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx +++ b/autogpt_platform/frontend/src/components/integrations/credentials-provider.tsx @@ -1,5 +1,5 @@ import { createContext, useCallback, useEffect, useState } from "react"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { APIKeyCredentials, CredentialsDeleteNeedConfirmationResponse, diff --git a/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx b/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx index 61c2b64e8d..72589bc8d0 100644 --- a/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx +++ b/autogpt_platform/frontend/src/components/onboarding/onboarding-provider.tsx @@ -1,5 +1,5 @@ "use client"; -import useSupabase from "@/lib/supabase/useSupabase"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { OnboardingStep, UserOnboarding } from "@/lib/autogpt-server-api"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; import { usePathname, useRouter } from "next/navigation"; diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts index 043205ae84..1be9967957 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/client.ts @@ -1,4 +1,4 @@ -import getServerSupabase from "@/lib/supabase/getServerSupabase"; +import { getServerSupabase } from "@/lib/supabase/server/getServerSupabase"; import { createBrowserClient } from "@supabase/ssr"; import type { SupabaseClient } from "@supabase/supabase-js"; import type { diff --git a/autogpt_platform/frontend/src/lib/supabase/helpers.ts b/autogpt_platform/frontend/src/lib/supabase/helpers.ts new file mode 100644 index 0000000000..4d44c1ab07 --- /dev/null +++ b/autogpt_platform/frontend/src/lib/supabase/helpers.ts @@ -0,0 +1,83 @@ +// Session management constants and utilities + +export const PROTECTED_PAGES = [ + "/monitor", + "/build", + "/onboarding", + "/profile", + "/library", + "/monitoring", +] as const; + +export const ADMIN_PAGES = ["/admin"] as const; + +export const STORAGE_KEYS = { + LOGOUT: "supabase-logout", +} as const; + +// Page protection utilities +export function isProtectedPage(pathname: string): boolean { + return PROTECTED_PAGES.some((page) => pathname.startsWith(page)); +} + +export function isAdminPage(pathname: string): boolean { + return ADMIN_PAGES.some((page) => pathname.startsWith(page)); +} + +export function shouldRedirectOnLogout(pathname: string): boolean { + return isProtectedPage(pathname) || isAdminPage(pathname); +} + +// Cross-tab logout utilities +export function broadcastLogout(): void { + if (typeof window !== "undefined") { + window.localStorage.setItem(STORAGE_KEYS.LOGOUT, Date.now().toString()); + } +} + +export function isLogoutEvent(event: StorageEvent): boolean { + return event.key === STORAGE_KEYS.LOGOUT; +} + +// Redirect utilities +export function getRedirectPath( + pathname: string, + userRole?: string, +): string | null { + if (shouldRedirectOnLogout(pathname)) { + return "/login"; + } + + if (isAdminPage(pathname) && userRole !== "admin") { + return "/marketplace"; + } + + return null; +} + +// Event listener management +export interface EventListeners { + cleanup: () => void; +} + +export function setupSessionEventListeners( + onVisibilityChange: () => void, + onFocus: () => void, + onStorageChange: (e: StorageEvent) => void, +): EventListeners { + if (typeof window === "undefined" || typeof document === "undefined") { + return { cleanup: () => {} }; + } + + document.addEventListener("visibilitychange", onVisibilityChange); + window.addEventListener("focus", onFocus); + window.addEventListener("storage", onStorageChange); + + return { + cleanup: () => { + document.removeEventListener("visibilitychange", onVisibilityChange); + window.removeEventListener("focus", onFocus); + window.removeEventListener("storage", onStorageChange); + }, + }; +} diff --git a/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts b/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts new file mode 100644 index 0000000000..df79d18373 --- /dev/null +++ b/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts @@ -0,0 +1,158 @@ +"use client"; +import { useEffect, useMemo, useState, useRef } from "react"; +import { createBrowserClient } from "@supabase/ssr"; +import { SignOut, User } from "@supabase/supabase-js"; +import { useRouter } from "next/navigation"; +import { + broadcastLogout, + getRedirectPath, + isLogoutEvent, + setupSessionEventListeners, +} from "../helpers"; + +export function useSupabase() { + const router = useRouter(); + const [user, setUser] = useState(null); + const [isUserLoading, setIsUserLoading] = useState(true); + const lastValidationRef = useRef(0); + + const supabase = useMemo(() => { + try { + return createBrowserClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { isSingleton: true }, + ); + } catch (error) { + console.error("Error creating Supabase client", error); + return null; + } + }, []); + + async function logOut(options?: SignOut) { + if (!supabase) return; + + broadcastLogout(); + + const { error } = await supabase.auth.signOut({ + scope: "global", + }); + if (error) console.error("Error logging out:", error); + + router.push("/login"); + } + + async function validateSession() { + if (!supabase) return false; + + // Simple debounce - only validate if 2 seconds have passed + const now = Date.now(); + if (now - lastValidationRef.current < 2000) { + return true; + } + lastValidationRef.current = now; + + try { + const { + data: { user: apiUser }, + error, + } = await supabase.auth.getUser(); + + if (error || !apiUser) { + // Session is invalid, clear local state + setUser(null); + const redirectPath = getRedirectPath(window.location.pathname); + if (redirectPath) { + router.push(redirectPath); + } + return false; + } + + // Update local state if we have a valid user but no local user + if (apiUser && !user) { + setUser(apiUser); + } + + return true; + } catch (error) { + console.error("Session validation error:", error); + setUser(null); + const redirectPath = getRedirectPath(window.location.pathname); + if (redirectPath) { + router.push(redirectPath); + } + return false; + } + } + + function handleCrossTabLogout(e: StorageEvent) { + if (!isLogoutEvent(e)) return; + + // Clear the Supabase session first + if (supabase) { + supabase.auth.signOut({ scope: "global" }).catch(console.error); + } + + // Clear local state immediately + setUser(null); + router.refresh(); + + const redirectPath = getRedirectPath(window.location.pathname); + if (redirectPath) { + router.push(redirectPath); + } + } + + function handleVisibilityChange() { + if (document.visibilityState === "visible") { + validateSession(); + } + } + + function handleFocus() { + validateSession(); + } + + useEffect(() => { + if (!supabase) { + setIsUserLoading(false); + return; + } + + const { + data: { subscription }, + } = supabase.auth.onAuthStateChange((event, session) => { + const newUser = session?.user ?? null; + + // Only update if user actually changed to prevent unnecessary re-renders + setUser((currentUser) => { + if (currentUser?.id !== newUser?.id) { + return newUser; + } + return currentUser; + }); + + setIsUserLoading(false); + }); + + const eventListeners = setupSessionEventListeners( + handleVisibilityChange, + handleFocus, + handleCrossTabLogout, + ); + + return () => { + subscription.unsubscribe(); + eventListeners.cleanup(); + }; + }, [supabase]); + + return { + supabase, + user, + isLoggedIn: !isUserLoading ? !!user : null, + isUserLoading, + logOut, + validateSession, + }; +} diff --git a/autogpt_platform/frontend/src/lib/supabase/middleware.ts b/autogpt_platform/frontend/src/lib/supabase/middleware.ts index 7680323558..da9ee26b20 100644 --- a/autogpt_platform/frontend/src/lib/supabase/middleware.ts +++ b/autogpt_platform/frontend/src/lib/supabase/middleware.ts @@ -1,16 +1,11 @@ import { createServerClient } from "@supabase/ssr"; import { NextResponse, type NextRequest } from "next/server"; - -// TODO: Update the protected pages list -const PROTECTED_PAGES = [ - "/monitor", - "/build", - "/onboarding", - "/profile", - "/library", - "/monitoring", -]; -const ADMIN_PAGES = ["/admin"]; +import { + PROTECTED_PAGES, + ADMIN_PAGES, + isProtectedPage, + isAdminPage, +} from "./helpers"; export async function updateSession(request: NextRequest) { let supabaseResponse = NextResponse.next({ @@ -59,41 +54,26 @@ export async function updateSession(request: NextRequest) { error, } = await supabase.auth.getUser(); - // Get the user role const userRole = user?.role; const url = request.nextUrl.clone(); + const pathname = request.nextUrl.pathname; + // AUTH REDIRECTS // 1. Check if user is not authenticated but trying to access protected content if (!user) { - // Check if the user is trying to access either a protected page or an admin page - const isAttemptingProtectedPage = PROTECTED_PAGES.some((page) => - request.nextUrl.pathname.startsWith(page), - ); + const attemptingProtectedPage = isProtectedPage(pathname); + const attemptingAdminPage = isAdminPage(pathname); - const isAttemptingAdminPage = ADMIN_PAGES.some((page) => - request.nextUrl.pathname.startsWith(page), - ); - - // If trying to access any protected content without being logged in, - // redirect to login page - if (isAttemptingProtectedPage || isAttemptingAdminPage) { - url.pathname = `/login`; + if (attemptingProtectedPage || attemptingAdminPage) { + url.pathname = "/login"; return NextResponse.redirect(url); } } // 2. Check if user is authenticated but lacks admin role when accessing admin pages - if (user && userRole !== "admin") { - const isAttemptingAdminPage = ADMIN_PAGES.some((page) => - request.nextUrl.pathname.startsWith(page), - ); - - // If a non-admin user is trying to access admin pages, - // redirect to marketplace - if (isAttemptingAdminPage) { - url.pathname = `/marketplace`; - return NextResponse.redirect(url); - } + if (user && userRole !== "admin" && isAdminPage(pathname)) { + url.pathname = "/marketplace"; + return NextResponse.redirect(url); } // IMPORTANT: You *must* return the supabaseResponse object as it is. If you're diff --git a/autogpt_platform/frontend/src/lib/supabase/getServerSupabase.ts b/autogpt_platform/frontend/src/lib/supabase/server/getServerSupabase.ts similarity index 95% rename from autogpt_platform/frontend/src/lib/supabase/getServerSupabase.ts rename to autogpt_platform/frontend/src/lib/supabase/server/getServerSupabase.ts index ffa61fe997..555d32982c 100644 --- a/autogpt_platform/frontend/src/lib/supabase/getServerSupabase.ts +++ b/autogpt_platform/frontend/src/lib/supabase/server/getServerSupabase.ts @@ -1,7 +1,7 @@ import type { UnsafeUnwrappedCookies } from "next/headers"; import { createServerClient } from "@supabase/ssr"; -export default async function getServerSupabase() { +export async function getServerSupabase() { // Need require here, so Next.js doesn't complain about importing this on client side const { cookies } = require("next/headers"); const cookieStore = await cookies(); diff --git a/autogpt_platform/frontend/src/lib/supabase/getServerUser.ts b/autogpt_platform/frontend/src/lib/supabase/server/getServerUser.ts similarity index 86% rename from autogpt_platform/frontend/src/lib/supabase/getServerUser.ts rename to autogpt_platform/frontend/src/lib/supabase/server/getServerUser.ts index b456d768d9..2b8d57e2a0 100644 --- a/autogpt_platform/frontend/src/lib/supabase/getServerUser.ts +++ b/autogpt_platform/frontend/src/lib/supabase/server/getServerUser.ts @@ -1,6 +1,6 @@ -import getServerSupabase from "./getServerSupabase"; +import { getServerSupabase } from "./getServerSupabase"; -const getServerUser = async () => { +export async function getServerUser() { const supabase = await getServerSupabase(); if (!supabase) { @@ -10,7 +10,7 @@ const getServerUser = async () => { try { const { data: { user }, - error, + error: _, } = await supabase.auth.getUser(); // if (error) { // // FIX: Suppressing error for now. Need to stop the nav bar calling this all the time @@ -30,6 +30,4 @@ const getServerUser = async () => { error: `Unexpected error: ${(error as Error).message}`, }; } -}; - -export default getServerUser; +} diff --git a/autogpt_platform/frontend/src/lib/supabase/useSupabase.ts b/autogpt_platform/frontend/src/lib/supabase/useSupabase.ts deleted file mode 100644 index f450007267..0000000000 --- a/autogpt_platform/frontend/src/lib/supabase/useSupabase.ts +++ /dev/null @@ -1,65 +0,0 @@ -"use client"; -import { useCallback, useEffect, useMemo, useState } from "react"; -import { createBrowserClient } from "@supabase/ssr"; -import { SignOut, User } from "@supabase/supabase-js"; -import { useRouter } from "next/navigation"; - -export default function useSupabase() { - const router = useRouter(); - const [user, setUser] = useState(null); - const [isUserLoading, setIsUserLoading] = useState(true); - - const supabase = useMemo(() => { - try { - return createBrowserClient( - process.env.NEXT_PUBLIC_SUPABASE_URL!, - process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, - { isSingleton: true }, - ); - } catch (error) { - console.error("Error creating Supabase client", error); - return null; - } - }, []); - - useEffect(() => { - if (!supabase) { - setIsUserLoading(false); - return; - } - - // Sync up the current state and listen for changes - const { - data: { subscription }, - } = supabase.auth.onAuthStateChange((_event, session) => { - setUser(session?.user ?? null); - setIsUserLoading(false); - }); - - return () => { - subscription.unsubscribe(); - }; - }, [supabase]); - - const logOut = useCallback( - async (options?: SignOut) => { - if (!supabase) return; - - const { error } = await supabase.auth.signOut({ - scope: options?.scope ?? "local", - }); - if (error) console.error("Error logging out:", error); - - router.push("/login"); - }, - [router, supabase], - ); - - if (!supabase || isUserLoading) { - return { supabase, user: null, isLoggedIn: null, isUserLoading, logOut }; - } - if (!user) { - return { supabase, user, isLoggedIn: false, isUserLoading, logOut }; - } - return { supabase, user, isLoggedIn: true, isUserLoading, logOut }; -} diff --git a/autogpt_platform/frontend/src/lib/withRoleAccess.ts b/autogpt_platform/frontend/src/lib/withRoleAccess.ts index 685e9aa9f5..7b63253c56 100644 --- a/autogpt_platform/frontend/src/lib/withRoleAccess.ts +++ b/autogpt_platform/frontend/src/lib/withRoleAccess.ts @@ -1,7 +1,7 @@ import React from "react"; import * as Sentry from "@sentry/nextjs"; import { redirect } from "next/navigation"; -import getServerUser from "./supabase/getServerUser"; +import { getServerUser } from "./supabase/server/getServerUser"; export async function withRoleAccess(allowedRoles: string[]) { "use server"; From 1ff924e26039e090b6c98650ef17de0a19725908 Mon Sep 17 00:00:00 2001 From: Toran Bruce Richards Date: Mon, 16 Jun 2025 09:00:16 +0100 Subject: [PATCH 097/497] Fix(frontend): Update StoreCard component to use `bg-background` instead of hardcoded `bg-white` (#9963) Fixes #9868 This pull request updates the `StoreCard` component in `autogpt_platform/frontend/src/components/agptui/StoreCard.tsx` to replace the hardcoded Tailwind CSS class `bg-white` with the more flexible `bg-background` utility class. This change ensures better consistency with the application's theming and makes it easier to adapt to different color schemes, such as light and dark modes. #### Changes: - **Before:** `className="... bg-white ... dark:bg-transparent ..."` ![image](https://github.com/user-attachments/assets/9eb2b595-8712-405b-ba7d-babd2361e344) - **After:** `className="... bg-background ... dark:bg-transparent ..."` ![image](https://github.com/user-attachments/assets/58affa1b-7160-4961-b9f2-5fdc15c2439e) #### Motivation: - Removes the white background on the cards, which weren't part of the designs. No functional or visual changes are expected except for improved support for custom themes. --- This PR was entirely generated by an AI Agent. **Please review and let me know if additional changes are needed!** Co-authored-by: itsababseh <36419647+itsababseh@users.noreply.github.com> --- autogpt_platform/frontend/src/components/agptui/StoreCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx b/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx index 57919dc2eb..bc024713f9 100644 --- a/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx +++ b/autogpt_platform/frontend/src/components/agptui/StoreCard.tsx @@ -32,7 +32,7 @@ export const StoreCard: React.FC = ({ return (

); - } catch (error) { + } catch { return (
Creator not found
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx index 88f620f6ab..d9209b2c4a 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/search/page.tsx @@ -8,6 +8,7 @@ import { Separator } from "@/components/ui/separator"; import { SearchFilterChips } from "@/components/agptui/SearchFilterChips"; import { SortDropdown } from "@/components/agptui/SortDropdown"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; +import { Creator, StoreAgent } from "@/lib/autogpt-server-api"; type MarketplaceSearchPageSearchParams = { searchTerm?: string; sort?: string }; @@ -33,8 +34,8 @@ function SearchResults({ }): React.ReactElement { const [showAgents, setShowAgents] = useState(true); const [showCreators, setShowCreators] = useState(true); - const [agents, setAgents] = useState([]); - const [creators, setCreators] = useState([]); + const [agents, setAgents] = useState([]); + const [creators, setCreators] = useState([]); const [isLoading, setIsLoading] = useState(true); const api = useBackendAPI(); diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx index e2cface85c..5c86d99f21 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/page.tsx @@ -14,7 +14,7 @@ import { import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; -export default function Page({}: {}) { +export default function Page() { const { supabase } = useSupabase(); const api = useBackendAPI(); const [submissions, setSubmissions] = useState(); diff --git a/autogpt_platform/frontend/src/app/layout.tsx b/autogpt_platform/frontend/src/app/layout.tsx index 9df9c1b671..df8887eff5 100644 --- a/autogpt_platform/frontend/src/app/layout.tsx +++ b/autogpt_platform/frontend/src/app/layout.tsx @@ -1,4 +1,4 @@ -import React, { Suspense } from "react"; +import React from "react"; import type { Metadata } from "next"; import { fonts } from "@/components/styles/fonts"; diff --git a/autogpt_platform/frontend/src/components/ConnectionLine.tsx b/autogpt_platform/frontend/src/components/ConnectionLine.tsx index 2111a7b253..0a790aedd4 100644 --- a/autogpt_platform/frontend/src/components/ConnectionLine.tsx +++ b/autogpt_platform/frontend/src/components/ConnectionLine.tsx @@ -17,8 +17,8 @@ export default function ConnectionLine({ }: ConnectionLineComponentProps) { const sourceX = fromPosition === Position.Right - ? fromX + (fromHandle?.width! / 2 - 5) - : fromX - (fromHandle?.width! / 2 - 5); + ? fromX + ((fromHandle?.width ?? 0) / 2 - 5) + : fromX - ((fromHandle?.width ?? 0) / 2 - 5); const [path] = getBezierPath({ sourceX: sourceX, diff --git a/autogpt_platform/frontend/src/components/CustomEdge.tsx b/autogpt_platform/frontend/src/components/CustomEdge.tsx index d7ab076481..ecc9249fb2 100644 --- a/autogpt_platform/frontend/src/components/CustomEdge.tsx +++ b/autogpt_platform/frontend/src/components/CustomEdge.tsx @@ -93,7 +93,7 @@ export function CustomEdge({ return; } - const beadUp = data?.beadUp!; + const beadUp: number = data?.beadUp ?? 0; // Add beads setBeads(({ beads, created, destroyed }) => { @@ -114,7 +114,7 @@ export function CustomEdge({ const newBeads = beads .map((bead) => ({ ...bead })) .filter((bead, index) => { - const beadDown = data?.beadDown!; + const beadDown: number = data?.beadDown ?? 0; const removeCount = beadDown - destroyed; if (bead.t >= bead.targetT && index < removeCount) { destroyedCount++; @@ -151,7 +151,7 @@ export function CustomEdge({ }; }) .filter((bead, index) => { - const beadDown = data?.beadDown!; + const beadDown: number = data?.beadDown ?? 0; const removeCount = beadDown - destroyed; if (bead.t >= bead.targetT && index < removeCount) { destroyedCount++; diff --git a/autogpt_platform/frontend/src/components/CustomNode.tsx b/autogpt_platform/frontend/src/components/CustomNode.tsx index 52ed10a867..aa87ba30e2 100644 --- a/autogpt_platform/frontend/src/components/CustomNode.tsx +++ b/autogpt_platform/frontend/src/components/CustomNode.tsx @@ -95,13 +95,7 @@ export type CustomNodeData = { export type CustomNode = XYNode; export const CustomNode = React.memo( - function CustomNode({ - data, - id, - width, - height, - selected, - }: NodeProps) { + function CustomNode({ data, id, height, selected }: NodeProps) { const [isOutputOpen, setIsOutputOpen] = useState( data.isOutputOpen || false, ); @@ -199,10 +193,6 @@ export const CustomNode = React.memo( [id, updateNodeData], ); - const toggleOutput = (checked: boolean) => { - setIsOutputOpen(checked); - }; - const toggleAdvancedSettings = (checked: boolean) => { setIsAdvancedOpen(checked); }; @@ -256,7 +246,7 @@ export const CustomNode = React.memo( nodeType: BlockUIType, ) => { if (!schema?.properties) return null; - let keys = Object.entries(schema.properties); + const keys = Object.entries(schema.properties); switch (nodeType) { case BlockUIType.NOTE: // For NOTE blocks, don't render any input handles @@ -443,7 +433,7 @@ export const CustomNode = React.memo( // For primitive values, use the original string handleInputChange(activeKey, value); } - } catch (error) { + } catch { // If JSON parsing fails, treat as plain text handleInputChange(activeKey, value); } diff --git a/autogpt_platform/frontend/src/components/DataTable.tsx b/autogpt_platform/frontend/src/components/DataTable.tsx index aba62af6c2..b7bb83c80a 100644 --- a/autogpt_platform/frontend/src/components/DataTable.tsx +++ b/autogpt_platform/frontend/src/components/DataTable.tsx @@ -1,6 +1,8 @@ -import React from "react"; import { beautifyString } from "@/lib/utils"; +import { Clipboard } from "lucide-react"; +import React from "react"; import { Button } from "./ui/button"; +import { ContentRenderer } from "./ui/render"; import { Table, TableBody, @@ -9,9 +11,7 @@ import { TableHeader, TableRow, } from "./ui/table"; -import { Clipboard } from "lucide-react"; import { useToast } from "./ui/use-toast"; -import { ContentRenderer } from "./ui/render"; type DataTableProps = { title?: string; @@ -25,7 +25,6 @@ export default function DataTable({ data, }: DataTableProps) { const { toast } = useToast(); - const maxChars = 100; const copyData = (pin: string, data: string) => { navigator.clipboard.writeText(data).then(() => { diff --git a/autogpt_platform/frontend/src/components/Flow.tsx b/autogpt_platform/frontend/src/components/Flow.tsx index ece3239580..345fc60b5a 100644 --- a/autogpt_platform/frontend/src/components/Flow.tsx +++ b/autogpt_platform/frontend/src/components/Flow.tsx @@ -90,9 +90,7 @@ const FlowEditor: React.FC<{ } = useReactFlow(); const [nodeId, setNodeId] = useState(1); const [isAnyModalOpen, setIsAnyModalOpen] = useState(false); - const [visualizeBeads, setVisualizeBeads] = useState< - "no" | "static" | "animate" - >("animate"); + const [visualizeBeads] = useState<"no" | "static" | "animate">("animate"); const [flowExecutionID, setFlowExecutionID] = useState< GraphExecutionID | undefined >(); @@ -366,10 +364,7 @@ const FlowEditor: React.FC<{ replaceEdges = edgeChanges.filter( (change) => change.type === "replace", ), - removedEdges = edgeChanges.filter((change) => change.type === "remove"), - selectedEdges = edgeChanges.filter( - (change) => change.type === "select", - ); + removedEdges = edgeChanges.filter((change) => change.type === "remove"); if (addedEdges.length > 0 || removedEdges.length > 0) { setNodes((nds) => { diff --git a/autogpt_platform/frontend/src/components/OttoChatWidget.tsx b/autogpt_platform/frontend/src/components/OttoChatWidget.tsx index 3e111165a8..3eaf75951d 100644 --- a/autogpt_platform/frontend/src/components/OttoChatWidget.tsx +++ b/autogpt_platform/frontend/src/components/OttoChatWidget.tsx @@ -212,7 +212,7 @@ export default function OttoChatWidget({

{children}

), code(props) { - const { children, className, node, ...rest } = props; + const { children, className, node: _, ...rest } = props; const match = /language-(\w+)/.exec(className || ""); return match ? (
diff --git a/autogpt_platform/frontend/src/components/SchemaTooltip.tsx b/autogpt_platform/frontend/src/components/SchemaTooltip.tsx
index 313b55cb6b..b4010287bc 100644
--- a/autogpt_platform/frontend/src/components/SchemaTooltip.tsx
+++ b/autogpt_platform/frontend/src/components/SchemaTooltip.tsx
@@ -22,7 +22,7 @@ const SchemaTooltip: React.FC<{ description?: string }> = ({ description }) => {
         
            (
+              a: ({ node: _, ...props }) => (
                  = {
diff --git a/autogpt_platform/frontend/src/components/admin/marketplace/expandable-row.tsx b/autogpt_platform/frontend/src/components/admin/marketplace/expandable-row.tsx
index bc42c43686..569bdc7eaf 100644
--- a/autogpt_platform/frontend/src/components/admin/marketplace/expandable-row.tsx
+++ b/autogpt_platform/frontend/src/components/admin/marketplace/expandable-row.tsx
@@ -9,9 +9,8 @@ import {
   TableHead,
   TableBody,
 } from "@/components/ui/table";
-import { Button } from "@/components/ui/button";
 import { Badge } from "@/components/ui/badge";
-import { ChevronDown, ChevronRight, ExternalLink } from "lucide-react";
+import { ChevronDown, ChevronRight } from "lucide-react";
 import { formatDistanceToNow } from "date-fns";
 import {
   type StoreListingWithVersions,
@@ -19,7 +18,6 @@ import {
   SubmissionStatus,
 } from "@/lib/autogpt-server-api/types";
 import { ApproveRejectButtons } from "./approve-reject-buttons";
-import { downloadAsAdmin } from "@/app/(platform)/admin/marketplace/actions";
 import { DownloadAgentAdminButton } from "./download-agent-button";
 
 // Moved the getStatusBadge function into the client component
diff --git a/autogpt_platform/frontend/src/components/admin/marketplace/search-filter-form.tsx b/autogpt_platform/frontend/src/components/admin/marketplace/search-filter-form.tsx
index 4d406fab93..73da6da431 100644
--- a/autogpt_platform/frontend/src/components/admin/marketplace/search-filter-form.tsx
+++ b/autogpt_platform/frontend/src/components/admin/marketplace/search-filter-form.tsx
@@ -15,7 +15,6 @@ import {
 import { SubmissionStatus } from "@/lib/autogpt-server-api/types";
 
 export function SearchAndFilterAdminMarketplace({
-  initialStatus,
   initialSearch,
 }: {
   initialStatus?: SubmissionStatus;
diff --git a/autogpt_platform/frontend/src/components/admin/spending/add-money-button.tsx b/autogpt_platform/frontend/src/components/admin/spending/add-money-button.tsx
index 2f1083eb7d..ee84464df0 100644
--- a/autogpt_platform/frontend/src/components/admin/spending/add-money-button.tsx
+++ b/autogpt_platform/frontend/src/components/admin/spending/add-money-button.tsx
@@ -15,7 +15,6 @@ import { Textarea } from "@/components/ui/textarea";
 import { Input } from "@/components/ui/input";
 import { useRouter } from "next/navigation";
 import { addDollars } from "@/app/(platform)/admin/spending/actions";
-import useCredits from "@/hooks/useCredits";
 
 export function AdminAddMoneyButton({
   userId,
@@ -36,8 +35,6 @@ export function AdminAddMoneyButton({
     defaultAmount ? Math.abs(defaultAmount / 100).toFixed(2) : "1.00",
   );
 
-  const { formatCredits } = useCredits();
-
   const handleApproveSubmit = async (formData: FormData) => {
     setIsAddMoneyDialogOpen(false);
     try {
diff --git a/autogpt_platform/frontend/src/components/admin/spending/admin-grant-history-data-table.tsx b/autogpt_platform/frontend/src/components/admin/spending/admin-grant-history-data-table.tsx
index 818d385d04..80695b803c 100644
--- a/autogpt_platform/frontend/src/components/admin/spending/admin-grant-history-data-table.tsx
+++ b/autogpt_platform/frontend/src/components/admin/spending/admin-grant-history-data-table.tsx
@@ -48,7 +48,7 @@ export async function AdminUserGrantHistory({
     const isPurchased = type === CreditTransactionType.TOP_UP;
     const isSpent = type === CreditTransactionType.USAGE;
 
-    let displayText = type;
+    const displayText = type;
     let bgColor = "";
 
     if (isGrant) {
diff --git a/autogpt_platform/frontend/src/components/admin/spending/search-filter-form.tsx b/autogpt_platform/frontend/src/components/admin/spending/search-filter-form.tsx
index 5e0160cbdd..f301461071 100644
--- a/autogpt_platform/frontend/src/components/admin/spending/search-filter-form.tsx
+++ b/autogpt_platform/frontend/src/components/admin/spending/search-filter-form.tsx
@@ -15,7 +15,6 @@ import {
 } from "@/components/ui/select";
 
 export function SearchAndFilterAdminSpending({
-  initialStatus,
   initialSearch,
 }: {
   initialStatus?: CreditTransactionType;
@@ -74,7 +73,7 @@ export function SearchAndFilterAdminSpending({