From 32feb5362a2049a0330b997c9b3841b99029c812 Mon Sep 17 00:00:00 2001 From: yovinchen Date: Mon, 31 Aug 2026 03:26:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(workbench):=20=E6=94=AF=E6=8C=81=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=A0=91=E7=8B=AC=E7=AB=8B=20Pane=20=E4=B8=8E?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=8B=96=E6=8B=BD=20(#665)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(workbench): add file tree pane and path drag (#661) * fix(workbench): move file tree fully out of dock * fix(workbench): route file tree drops in desktop * perf(workbench): coalesce pane drag updates * fix(desktop): mirror workspace path drag feedback * docs(workbench): add file tree pane preview * fix(workbench): address file tree pane review findings - Carry external multi-root grants into the Workbench file tree pane via a shared useFileTreeExternalRoots hook, so leasing the tree out of the Right Dock no longer hides external roots on Desktop and WebUI. - Stop a lingering workspace-path payload from claiming an OS "Files" drag during the dragend-to-native-drop handoff window. - Publish a pointer-free WorkbenchDragRenderState so the overlay model no longer exposes a stale pointer field. - Refuse workspace-path drags for external roots explicitly instead of relying on the payload validator's control-character rejection. Co-authored-by: Cursor --------- Co-authored-by: Cursor --- .../web/src/app/GatewayAppView.tsx | 80 ++++- .../src/app/workbench/useGatewayWorkbench.ts | 84 ++++- crates/agent-gui/src/pages/ChatPage.tsx | 146 +++++++- .../src/pages/chat/hooks/useTauriFileDrop.ts | 36 ++ .../test/chat/workbench-dock-focus.test.mjs | 43 ++- .../chat/workbench-drag-performance.test.mjs | 140 ++++++++ .../test/chat/workbench-min-size.test.mjs | 9 + .../chat/workbench-terminal-surfaces.test.mjs | 32 ++ .../test/chat/workspace-path-drag.test.mjs | 248 ++++++++++++++ .../test/settings/right-dock-model.test.mjs | 28 ++ .../test/workspace-file-tree-row.test.mjs | 16 + .../project-tools/RightDockContent.tsx | 7 + .../project-tools/RightDockLauncher.tsx | 11 +- .../project-tools/RightDockPanel.tsx | 69 ++-- .../project-tools/RightDockTabStrip.tsx | 26 ++ .../project-tools/XTermViewport.tsx | 161 ++++++++- .../project-tools/file-tree/Row.tsx | 9 +- .../project-tools/file-tree/index.tsx | 169 +++++++-- .../file-tree/useFileTreeExternalRoots.ts | 69 ++++ .../project-tools/rightDockModel.ts | 12 +- .../project-tools/useRightDockProjectTabs.ts | 12 +- .../src/i18n/translations/enUSCommon.ts | 6 + .../src/i18n/translations/zhCNCommon.ts | 6 + .../src/lib/chat/workspacePathDrag.ts | 322 ++++++++++++++++++ .../agent-ui/src/lib/workbench/dragMachine.ts | 14 +- crates/agent-ui/src/lib/workbench/geometry.ts | 4 + .../agent-ui/src/lib/workbench/invariants.ts | 19 ++ crates/agent-ui/src/lib/workbench/reducer.ts | 13 +- crates/agent-ui/src/lib/workbench/types.ts | 8 + .../src/lib/workbench/useWindowWorkbench.ts | 26 ++ .../lib/workbench/useWorkbenchDragSession.ts | 177 ++++++++-- .../src/pages/chat/ChatComposerBar.tsx | 175 +++++++++- .../session-workbench-pane-architecture.md | 37 +- docs/images/issue-661-file-tree-workbench.png | Bin 0 -> 523879 bytes 34 files changed, 2077 insertions(+), 137 deletions(-) create mode 100644 crates/agent-gui/test/chat/workbench-drag-performance.test.mjs create mode 100644 crates/agent-gui/test/chat/workspace-path-drag.test.mjs create mode 100644 crates/agent-ui/src/components/project-tools/file-tree/useFileTreeExternalRoots.ts create mode 100644 crates/agent-ui/src/lib/chat/workspacePathDrag.ts create mode 100644 docs/images/issue-661-file-tree-workbench.png diff --git a/crates/agent-gateway/web/src/app/GatewayAppView.tsx b/crates/agent-gateway/web/src/app/GatewayAppView.tsx index 649faa1db..916f44635 100644 --- a/crates/agent-gateway/web/src/app/GatewayAppView.tsx +++ b/crates/agent-gateway/web/src/app/GatewayAppView.tsx @@ -12,6 +12,7 @@ import { WorkspaceCloneModal } from "@liveagent/ui/components/chat/WorkspaceClon import { WorkspaceCloneTaskOverlay } from "@liveagent/ui/components/chat/WorkspaceCloneTaskOverlay"; import { WorkspaceProjectSettingsModal } from "@liveagent/ui/components/chat/WorkspaceProjectSettingsModal"; import { ChevronDown } from "@liveagent/ui/components/IconSet"; +import { FileTreePaneSurface } from "@liveagent/ui/components/project-tools/file-tree/index"; import { ProjectToolsPanelToggle } from "@liveagent/ui/components/project-tools/ProjectToolsPanelToggle"; import { RightDockPanel } from "@liveagent/ui/components/project-tools/RightDockPanel"; import { TrajectoryView } from "@liveagent/ui/components/trajectory/TrajectoryView"; @@ -21,6 +22,7 @@ import { UnsupportedPaneSurface } from "@liveagent/ui/components/workbench/surfa import { WorkbenchCanvas } from "@liveagent/ui/components/workbench/WorkbenchCanvas"; import { WorkbenchEmptyState } from "@liveagent/ui/components/workbench/WorkbenchEmptyState"; import { WorkspaceOverlayHost } from "@liveagent/ui/components/workspace-editor/WorkspaceOverlayHost"; +import { isWorkspacePreviewPath } from "@liveagent/ui/components/workspace-editor/workspaceImagePreview"; import { LocaleContext, t as translate } from "@liveagent/ui/i18n/index"; import { type CheckpointRewindClient, @@ -34,7 +36,7 @@ import { cn } from "@liveagent/ui/lib/shared/utils"; import { useSidebarSelector } from "@liveagent/ui/lib/sidebar/useSidebarSelector"; import { toTrajectoryMessages } from "@liveagent/ui/lib/trajectory/transcriptMessages"; import { useConversationViewState } from "@liveagent/ui/lib/trajectory/useConversationViewState"; -import { hitTestWorkbenchDrop } from "@liveagent/ui/lib/workbench/index"; +import { findPaneIdBySurfaceKey, hitTestWorkbenchDrop } from "@liveagent/ui/lib/workbench/index"; import type { PaneRecord } from "@liveagent/ui/lib/workbench/types"; import { ChatComposerBar } from "@liveagent/ui/pages/chat/ChatComposerBar"; import { FloorNavRail } from "@liveagent/ui/pages/chat/transcript/FloorNavRail"; @@ -59,7 +61,9 @@ import { GatewayTranscript } from "@/components/GatewayTranscript"; import type { SttProviderId } from "@/lib/settings"; import { getNextTheme, + getRightDockFileTreeState, updateExecutionModeFromChatSelection, + updateRightDockFileTreeState, updateSystem, updateWorkspaceResourceSettings, workspaceProjectPathKey, @@ -464,6 +468,8 @@ export function GatewayAppView({ viewModel }: { viewModel: GatewayAppViewModel } switch (surface.kind) { case "conversation": return sidebarConversationsById.get(surface.conversationId)?.title?.trim() || ""; + case "fileTree": + return translate("projectTools.fileTreeTitle", settings.locale); case "localTerminal": return surface.launchSpec.title?.trim() || surface.launchSpec.shell?.trim() || "Terminal"; case "sshTerminal": @@ -472,7 +478,7 @@ export function GatewayAppView({ viewModel }: { viewModel: GatewayAppViewModel } return surface.originalKind; } }, - [sidebarConversationsById], + [settings.locale, sidebarConversationsById], ); const workbenchHasMultiplePanes = @@ -897,6 +903,54 @@ export function GatewayAppView({ viewModel }: { viewModel: GatewayAppViewModel } /> ); } + if (surface.kind === "fileTree") { + const project = workspaceProjects.find( + (entry) => workspaceProjectPathKey(entry.path) === surface.project.projectPathKey, + ); + if (!project) { + return ( + + ); + } + return ( + + setSettings((current) => + updateRightDockFileTreeState(current, surface.project.projectPathKey, patch), + ) + } + onInsertFileMention={ + surface.project.projectPathKey === terminalProjectPathKey + ? handleRightDockInsertFileMention + : undefined + } + onOpenFile={(path, imagePaths) => { + const request = { + projectPathKey: surface.project.projectPathKey, + workdir: project.path, + path, + imagePaths, + }; + if (isWorkspacePreviewPath(path)) { + openWorkspaceFilePreview(request); + } else { + openWorkspaceEditorFile(request); + } + }} + /> + ); + } if (surface.kind === "unsupported") { return ( @@ -1003,11 +1057,15 @@ export function GatewayAppView({ viewModel }: { viewModel: GatewayAppViewModel } const workbenchDragGhost = sessionWorkbench.enabled && workbenchController.dragState ? (
{workbenchController.dragState.payload.title || @@ -1677,6 +1735,12 @@ export function GatewayAppView({ viewModel }: { viewModel: GatewayAppViewModel } sessions={terminalSessions} sessionsLoaded={terminalSessionsLoaded} leasedSessionIds={workbenchLeasedDockSessionIds} + fileTreeLeased={Boolean( + findPaneIdBySurfaceKey( + workbenchController.workbench.layout, + `fileTree:${terminalProjectPathKey}`, + ), + )} width={settings.customSettings.rightDock.width} theme={effectiveTheme} disabledMessage={projectToolsDisabledMessage} @@ -1713,6 +1777,14 @@ export function GatewayAppView({ viewModel }: { viewModel: GatewayAppViewModel } onOpenTerminalInWorkbench={ sessionWorkbench.enabled ? workbenchController.handleOpenTerminalInSplit : undefined } + onFileTreeTabDragStart={ + sessionWorkbench.enabled + ? workbenchController.handleFileTreeTabDragIntent + : undefined + } + onOpenFileTreeInWorkbench={ + sessionWorkbench.enabled ? workbenchController.handleOpenFileTreeInSplit : undefined + } onOpenNewTerminalInWorkbench={ sessionWorkbench.enabled ? workbenchController.handleOpenNewTerminalInSplit diff --git a/crates/agent-gateway/web/src/app/workbench/useGatewayWorkbench.ts b/crates/agent-gateway/web/src/app/workbench/useGatewayWorkbench.ts index 1f3eee813..39a6903e9 100644 --- a/crates/agent-gateway/web/src/app/workbench/useGatewayWorkbench.ts +++ b/crates/agent-gateway/web/src/app/workbench/useGatewayWorkbench.ts @@ -11,6 +11,7 @@ import type { TerminalClient, TerminalSession } from "@liveagent/ui/lib/terminal import { commitWorkspaceDropConversation, findAdjacentPaneId, + findPaneIdBySurfaceKey, findParentSplitId, MIN_CONVERSATION_PANE_HEIGHT, MIN_CONVERSATION_PANE_WIDTH, @@ -39,7 +40,7 @@ import { } from "@liveagent/ui/lib/workbench/useWindowWorkbench"; import { useWorkbenchDragSession, - type WorkbenchDragState, + type WorkbenchDragRenderState, type WorkbenchDragUnavailableReason, type WorkbenchDropCommit, } from "@liveagent/ui/lib/workbench/useWorkbenchDragSession"; @@ -125,6 +126,7 @@ export type GatewayWorkbenchController = { handleOpenConversationInSplit: (item: SidebarConversation) => boolean; /** Right Dock 菜单「在分屏中打开」:同一 drop 事务的无拖拽入口。 */ handleOpenTerminalInSplit: (session: TerminalSession) => void; + handleOpenFileTreeInSplit: () => void; /** Right Dock 新建菜单「在分屏中新建终端」。 */ handleOpenNewTerminalInSplit: () => void; /** SSH overlay「已在画板中打开」占位的「前往 Pane」聚焦通路。 */ @@ -135,7 +137,9 @@ export type GatewayWorkbenchController = { clearWorkbench: () => void; projectRefForConversation: (item: { id: string; cwd?: string | null }) => ProjectRef; /** 拖拽 overlay 模型(幽灵 + 落点预览);idle 时为 null。 */ - dragState: WorkbenchDragState | null; + dragState: WorkbenchDragRenderState | null; + /** Imperative compositor-only pointer tracking for the drag ghost. */ + dragGhostRef: (element: HTMLDivElement | null) => void; /** Pane 头部拖动把手(pointer-down 发起)。 */ beginPaneDrag: ( pane: PaneRecord, @@ -184,6 +188,12 @@ export type GatewayWorkbenchController = { clientY: number; currentTarget?: EventTarget | null; }) => void; + handleFileTreeTabDragIntent: (event: { + pointerId: number; + clientX: number; + clientY: number; + currentTarget?: EventTarget | null; + }) => void; /** 被画布 Pane 租用的会话(Right Dock 终端 tab 互斥隐藏用)。 */ leasedDockSessionIds: readonly string[]; }; @@ -620,6 +630,22 @@ export function useGatewayWorkbench(params: UseGatewayWorkbenchParams): GatewayW commitTerminalDrop(payload, target, terminalDropDeps()); return; } + if (payload.kind === "fileTree") { + const existingPaneId = findPaneIdBySurfaceKey( + workbench.layoutRef.current, + `fileTree:${payload.project.projectPathKey}`, + ); + if (target.kind === "pane-center") { + if (existingPaneId && target.paneId === existingPaneId) handleFocusPane(existingPaneId); + return; + } + if (existingPaneId) { + if (target.kind !== "canvas-empty") workbench.movePane(existingPaneId, target); + return; + } + workbench.openFileTreeSurface({ kind: "fileTree", project: payload.project }, target); + return; + } // Pane 头部拖动重排。 if (target.kind === "canvas-empty") return; if (target.kind === "pane-center" && target.paneId === payload.paneId) return; @@ -648,7 +674,7 @@ export function useGatewayWorkbench(params: UseGatewayWorkbenchParams): GatewayW ], ); - const { dragState, beginDrag } = useWorkbenchDragSession({ + const { dragState, beginDrag, dragGhostRef } = useWorkbenchDragSession({ enabled, layoutRef: workbench.layoutRef, geometryRef, @@ -791,6 +817,33 @@ export function useGatewayWorkbench(params: UseGatewayWorkbenchParams): GatewayW [beginDrag, newTerminalTitle, terminalProjectPath], ); + const fileTreeProjectRef = useCallback((): ProjectRef | null => { + const path = terminalProjectPath.trim(); + if (!path) return null; + const projectPathKey = workspaceProjectPathKey(path); + const project = workspaceProjectsRef.current.find( + (entry) => workspaceProjectPathKey(entry.path) === projectPathKey, + ); + return { + projectId: project?.id ?? `project:${projectPathKey}`, + projectPathKey, + }; + }, [terminalProjectPath]); + + const handleFileTreeTabDragIntent = useCallback( + (event: { + pointerId: number; + clientX: number; + clientY: number; + currentTarget?: EventTarget | null; + }) => { + const project = fileTreeProjectRef(); + if (!project) return; + beginDrag({ kind: "fileTree", project, title: "File Tree" }, event); + }, + [beginDrag, fileTreeProjectRef], + ); + // 同一提交通路的菜单入口:终端 tab 无需拖拽也能进工作台。已租用的会话 // 由 commitTerminalDrop 自己走「移动既有 Pane」,不会二次开 Pane。 const handleOpenTerminalInSplit = useCallback( @@ -821,6 +874,25 @@ export function useGatewayWorkbench(params: UseGatewayWorkbenchParams): GatewayW [onNoSpaceForSplit, resolveAutoDockTarget, terminalDropDeps], ); + const handleOpenFileTreeInSplit = useCallback(() => { + const project = fileTreeProjectRef(); + if (!project) return; + const existingPaneId = findPaneIdBySurfaceKey( + workbench.layoutRef.current, + `fileTree:${project.projectPathKey}`, + ); + if (existingPaneId) { + handleFocusPane(existingPaneId); + return; + } + const target = resolveAutoDockTarget(); + if (!target) { + onNoSpaceForSplit(); + return; + } + workbench.openFileTreeSurface({ kind: "fileTree", project }, target); + }, [fileTreeProjectRef, handleFocusPane, onNoSpaceForSplit, resolveAutoDockTarget, workbench]); + const handleOpenNewTerminalInSplit = useCallback(() => { const target = resolveAutoDockTarget(); if (!target) { @@ -908,17 +980,20 @@ export function useGatewayWorkbench(params: UseGatewayWorkbenchParams): GatewayW handleClosePane, handleOpenConversationInSplit, handleOpenTerminalInSplit, + handleOpenFileTreeInSplit, handleOpenNewTerminalInSplit, focusTerminalPaneForSession, closePanesForRemovedConversations, clearWorkbench, projectRefForConversation, dragState, + dragGhostRef, beginPaneDrag, handleConversationDragIntent, handleProjectDragIntent, handleTerminalTabDragIntent, handleNewTerminalDragIntent, + handleFileTreeTabDragIntent, leasedDockSessionIds, }), [ @@ -928,17 +1003,20 @@ export function useGatewayWorkbench(params: UseGatewayWorkbenchParams): GatewayW handleClosePane, handleOpenConversationInSplit, handleOpenTerminalInSplit, + handleOpenFileTreeInSplit, handleOpenNewTerminalInSplit, focusTerminalPaneForSession, closePanesForRemovedConversations, clearWorkbench, projectRefForConversation, dragState, + dragGhostRef, beginPaneDrag, handleConversationDragIntent, handleProjectDragIntent, handleTerminalTabDragIntent, handleNewTerminalDragIntent, + handleFileTreeTabDragIntent, leasedDockSessionIds, ], ); diff --git a/crates/agent-gui/src/pages/ChatPage.tsx b/crates/agent-gui/src/pages/ChatPage.tsx index 6a4ece1f2..c611f981f 100644 --- a/crates/agent-gui/src/pages/ChatPage.tsx +++ b/crates/agent-gui/src/pages/ChatPage.tsx @@ -8,6 +8,7 @@ import { NotifyToast } from "@liveagent/ui/components/chat/NotifyToast"; import { SharedHistoryManagerModal } from "@liveagent/ui/components/chat/SharedHistoryManagerModal"; import { WorkspaceCloneModal } from "@liveagent/ui/components/chat/WorkspaceCloneModal"; import { WorkspaceProjectSettingsModal } from "@liveagent/ui/components/chat/WorkspaceProjectSettingsModal"; +import { FileTreePaneSurface } from "@liveagent/ui/components/project-tools/file-tree/index"; import { ProjectToolsPanelToggle } from "@liveagent/ui/components/project-tools/ProjectToolsPanelToggle"; import { RightDockPanel } from "@liveagent/ui/components/project-tools/RightDockPanel"; import { useConfirmDialog } from "@liveagent/ui/components/ui/confirm-dialog"; @@ -20,6 +21,7 @@ import { import { WorkbenchEmptyState } from "@liveagent/ui/components/workbench/WorkbenchEmptyState"; import { useWorkspaceOverlays } from "@liveagent/ui/components/workspace-editor/useWorkspaceOverlays"; import { WorkspaceOverlayHost } from "@liveagent/ui/components/workspace-editor/WorkspaceOverlayHost"; +import { isWorkspacePreviewPath } from "@liveagent/ui/components/workspace-editor/workspaceImagePreview"; import { useLocale } from "@liveagent/ui/i18n/index"; import { getAutomationState, useAutomation } from "@liveagent/ui/lib/automation/index"; import { formatCheckpointRewoundNotification } from "@liveagent/ui/lib/chat/checkpointRewind"; @@ -59,6 +61,7 @@ import type { LocalTunnelClient } from "@liveagent/ui/lib/tunnels/constants"; import { commitWorkspaceDropConversation, findAdjacentPaneId, + findPaneIdBySurfaceKey, findParentSplitId, hitTestWorkbenchDrop, type PendingWorkspaceDropOperation, @@ -115,6 +118,7 @@ import { toModelValue } from "../lib/providers/llm"; import { findProviderModelConfig, getChatRuntimeReasoningLevelsForProvider, + getRightDockFileTreeState, isAgentDevMode, isAgentExecutionMode, isThinkingAlwaysOnForModel, @@ -125,6 +129,7 @@ import { resolveEffectiveTheme, resolveWorkspaceResources, updateExecutionModeFromChatSelection, + updateRightDockFileTreeState, updateSystem, updateWorkspaceResourceSettings, type WorkspaceProject, @@ -2524,6 +2529,22 @@ export function ChatPage(props: ChatPageProps) { }); return; } + if (payload.kind === "fileTree") { + const surfaceKey = `fileTree:${payload.project.projectPathKey}`; + const existingPaneId = findPaneIdBySurfaceKey(workbench.layoutRef.current, surfaceKey); + if (target.kind === "pane-center") { + if (existingPaneId && target.paneId === existingPaneId) { + handleWorkbenchFocusPane(existingPaneId); + } + return; + } + if (existingPaneId) { + if (target.kind !== "canvas-empty") workbench.movePane(existingPaneId, target); + return; + } + workbench.openFileTreeSurface({ kind: "fileTree", project: payload.project }, target); + return; + } // Moving an existing pane by its chrome drag handle. if (target.kind === "canvas-empty") return; if (target.kind === "pane-center" && target.paneId === payload.paneId) return; @@ -2551,7 +2572,11 @@ export function ChatPage(props: ChatPageProps) { ], ); - const { dragState: workbenchDragState, beginDrag: beginWorkbenchDrag } = useWorkbenchDragSession({ + const { + dragState: workbenchDragState, + beginDrag: beginWorkbenchDrag, + dragGhostRef: workbenchDragGhostRef, + } = useWorkbenchDragSession({ enabled: sessionWorkbench.enabled, layoutRef: workbench.layoutRef, geometryRef: workbenchGeometryRef, @@ -2657,6 +2682,29 @@ export function ChatPage(props: ChatPageProps) { [beginWorkbenchDrag, t, terminalProjectPath, terminalProjectPathKey, workspaceProjects], ); + const fileTreeProjectRef = useCallback((): ProjectRef | null => { + if (!terminalProjectPathKey) return null; + const project = workspaceProjects.find( + (entry) => workspaceProjectPathKey(entry.path) === terminalProjectPathKey, + ); + return { + projectId: project?.id ?? `project:${terminalProjectPathKey}`, + projectPathKey: terminalProjectPathKey, + }; + }, [terminalProjectPathKey, workspaceProjects]); + + const handleFileTreeTabWorkbenchDragIntent = useCallback( + (event: { pointerId: number; clientX: number; clientY: number }) => { + const project = fileTreeProjectRef(); + if (!project) return; + beginWorkbenchDrag( + { kind: "fileTree", project, title: t("projectTools.fileTreeTitle") }, + event, + ); + }, + [beginWorkbenchDrag, fileTreeProjectRef, t], + ); + // 画板 Pane 持有租约的会话:overlay/占位的"前往 Pane"聚焦通路。 const focusWorkbenchTerminalPane = useCallback( (sessionId: string) => { @@ -2815,6 +2863,32 @@ export function ChatPage(props: ChatPageProps) { ], ); + const handleOpenFileTreeInWorkbenchSplit = useCallback(() => { + const project = fileTreeProjectRef(); + if (!project) return; + const existingPaneId = findPaneIdBySurfaceKey( + workbench.layoutRef.current, + `fileTree:${project.projectPathKey}`, + ); + if (existingPaneId) { + handleWorkbenchFocusPane(existingPaneId); + return; + } + const target = resolveWorkbenchAutoDockTarget(); + if (!target) { + addNotify("error", t("workbench.noSpaceForSplit")); + return; + } + workbench.openFileTreeSurface({ kind: "fileTree", project }, target); + }, [ + addNotify, + fileTreeProjectRef, + handleWorkbenchFocusPane, + resolveWorkbenchAutoDockTarget, + t, + workbench, + ]); + const handleOpenNewTerminalInWorkbenchSplit = useCallback(() => { const target = resolveWorkbenchAutoDockTarget(); if (!target) { @@ -3336,6 +3410,8 @@ export function ChatPage(props: ChatPageProps) { switch (surface.kind) { case "conversation": return sidebarConversationsById.get(surface.conversationId)?.title?.trim() || ""; + case "fileTree": + return t("projectTools.fileTreeTitle"); case "localTerminal": return surface.launchSpec.title?.trim() || surface.launchSpec.shell?.trim() || "Terminal"; case "sshTerminal": @@ -3355,6 +3431,9 @@ export function ChatPage(props: ChatPageProps) { if (surface.kind === "localTerminal" || surface.kind === "sshTerminal") { return t("workbench.paneRegionTerminal").replace("{title}", title); } + if (surface.kind === "fileTree") { + return t("projectTools.fileTreeTitle"); + } if (!title) return t("workbench.paneRegion"); const workspaceName = workspaceProjects .find((entry) => workspaceProjectPathKey(entry.path) === surface.project.projectPathKey) @@ -3449,6 +3528,54 @@ export function ChatPage(props: ChatPageProps) { /> ); } + if (surface.kind === "fileTree") { + const project = workspaceProjects.find( + (entry) => workspaceProjectPathKey(entry.path) === surface.project.projectPathKey, + ); + if (!project) { + return ( + + ); + } + return ( + + setSettings((current) => + updateRightDockFileTreeState(current, surface.project.projectPathKey, patch), + ) + } + onInsertFileMention={ + surface.project.projectPathKey === terminalProjectPathKey + ? handleRightDockInsertFileMention + : undefined + } + onOpenFile={(path, imagePaths) => { + const request = { + projectPathKey: surface.project.projectPathKey, + workdir: project.path, + path, + imagePaths, + }; + if (isWorkspacePreviewPath(path)) { + openWorkspaceFilePreview(request); + } else { + openWorkspaceEditorFile(request); + } + }} + /> + ); + } if (surface.kind === "unsupported") { return ( @@ -3531,11 +3658,15 @@ export function ChatPage(props: ChatPageProps) { const workbenchDragGhost = sessionWorkbench.enabled && workbenchDragState ? (
{workbenchDragState.payload.title || t("chat.pendingTitle")} @@ -3783,6 +3914,9 @@ export function ChatPage(props: ChatPageProps) { sessions={terminalSessions} sessionsLoaded={terminalSessionsLoaded} leasedSessionIds={leasedDockSessionIds} + fileTreeLeased={Boolean( + findPaneIdBySurfaceKey(workbench.layout, `fileTree:${terminalProjectPathKey}`), + )} width={settings.customSettings.rightDock.width} theme={effectiveTheme} disabledMessage={terminalDisabledMessage} @@ -3814,6 +3948,12 @@ export function ChatPage(props: ChatPageProps) { onOpenTerminalInWorkbench={ sessionWorkbench.enabled ? handleOpenTerminalInWorkbenchSplit : undefined } + onFileTreeTabDragStart={ + sessionWorkbench.enabled ? handleFileTreeTabWorkbenchDragIntent : undefined + } + onOpenFileTreeInWorkbench={ + sessionWorkbench.enabled ? handleOpenFileTreeInWorkbenchSplit : undefined + } onOpenNewTerminalInWorkbench={ sessionWorkbench.enabled ? handleOpenNewTerminalInWorkbenchSplit : undefined } diff --git a/crates/agent-gui/src/pages/chat/hooks/useTauriFileDrop.ts b/crates/agent-gui/src/pages/chat/hooks/useTauriFileDrop.ts index 9e7b21df6..05b7387d3 100644 --- a/crates/agent-gui/src/pages/chat/hooks/useTauriFileDrop.ts +++ b/crates/agent-gui/src/pages/chat/hooks/useTauriFileDrop.ts @@ -1,3 +1,9 @@ +import { + clearActiveWorkspacePathNativeHover, + dispatchActiveWorkspacePathDrop, + dispatchActiveWorkspacePathNativeHover, + getActiveWorkspacePathDrag, +} from "@liveagent/ui/lib/chat/workspacePathDrag"; import { isTauri } from "@tauri-apps/api/core"; import { getCurrentWebview } from "@tauri-apps/api/webview"; import { useEffect, useRef, useState } from "react"; @@ -50,6 +56,20 @@ export function useTauriFileDrop(params: UseTauriFileDropParams) { window.navigator.userAgent, window.devicePixelRatio, ); + // WKWebView forwards an in-app HTML drag through this native API as + // well. It is not an OS file upload and must keep its own target + // semantics (composer mention / terminal path insertion). + if (getActiveWorkspacePathDrag()) { + activeDropTargetRef.current = null; + setActiveDropTarget(null); + onDropPositionChangeRef.current?.(null); + dispatchActiveWorkspacePathNativeHover({ + x: event.payload.position.x / (scaleFactor || 1), + y: event.payload.position.y / (scaleFactor || 1), + }); + return; + } + clearActiveWorkspacePathNativeHover(); const nextTarget = resolveNativeFileDropTarget(event.payload.position, { scaleFactor }); activeDropTargetRef.current = nextTarget; setActiveDropTarget(nextTarget); @@ -65,6 +85,17 @@ export function useTauriFileDrop(params: UseTauriFileDropParams) { window.navigator.userAgent, window.devicePixelRatio, ); + if (getActiveWorkspacePathDrag()) { + setActiveDropTarget(null); + activeDropTargetRef.current = null; + onDropPositionChangeRef.current?.(null); + dispatchActiveWorkspacePathDrop({ + x: event.payload.position.x / (scaleFactor || 1), + y: event.payload.position.y / (scaleFactor || 1), + }); + return; + } + clearActiveWorkspacePathNativeHover(); const dropTarget = resolveFinalNativeFileDropTarget( activeDropTargetRef.current, event.payload.position, @@ -78,6 +109,9 @@ export function useTauriFileDrop(params: UseTauriFileDropParams) { return; } if (dropTarget !== "upload") return; + // An empty native payload is never an upload. In particular, this + // prevents non-file drags from reaching Rust's path classifier. + if (event.payload.paths.length === 0) return; const targetConversationId = resolveNativeUploadConversationId(event.payload.position, { scaleFactor, }); @@ -86,6 +120,7 @@ export function useTauriFileDrop(params: UseTauriFileDropParams) { return; } + clearActiveWorkspacePathNativeHover(); setActiveDropTarget(null); activeDropTargetRef.current = null; onDropPositionChangeRef.current?.(null); @@ -103,6 +138,7 @@ export function useTauriFileDrop(params: UseTauriFileDropParams) { return () => { cancelled = true; + clearActiveWorkspacePathNativeHover(); if (unlisten) { unlisten(); } diff --git a/crates/agent-gui/test/chat/workbench-dock-focus.test.mjs b/crates/agent-gui/test/chat/workbench-dock-focus.test.mjs index 913b8f8a9..71a82dfdd 100644 --- a/crates/agent-gui/test/chat/workbench-dock-focus.test.mjs +++ b/crates/agent-gui/test/chat/workbench-dock-focus.test.mjs @@ -8,10 +8,9 @@ import { createTsModuleLoader } from "../helpers/load-ts-module.mjs"; // Dock 位于 Canvas 之外,只做会话列表/工具面板;它既不持有布局命令通路 // (源码层断言),reducer 也只在显式 FOCUS/OPEN 上改焦点(模型层断言)。 // -// 被 Pane 租用的会话从 dock 的终端 tab 中整体隐藏(终端任一时刻只出现在一个 -// 宿主里),因此本地终端路径不再有任何 Pane 焦点入口。唯一保留的白名单是 -// SSH overlay 的 `onSshTerminalFocusLeasedSession`(overlay 的 shell tab 仍以 -// 占位互斥),它同样是页面注入的回调,dock/overlay 侧只调用不构造布局命令。 +// 被 Pane 租用的终端与文件树都从 dock 整体隐藏(任一时刻只出现在一个宿主里), +// 因此 dock 不保留 Pane 焦点入口。SSH overlay 的 shell tab 是唯一例外:它是 +// 连接管理入口,保留由页面注入的占位跳转回调。 function readSource(relativePath) { return readFileSync(new URL(relativePath, import.meta.url), "utf8"); @@ -27,9 +26,15 @@ const DOCK_SOURCES = { "RightDockContent.tsx": readSource( "../../../agent-ui/src/components/project-tools/RightDockContent.tsx", ), + "RightDockLauncher.tsx": readSource( + "../../../agent-ui/src/components/project-tools/RightDockLauncher.tsx", + ), "useRightDockSessions.ts": readSource( "../../../agent-ui/src/components/project-tools/useRightDockSessions.ts", ), + "useRightDockProjectTabs.ts": readSource( + "../../../agent-ui/src/components/project-tools/useRightDockProjectTabs.ts", + ), }; const chatPageSource = readSource("../../src/pages/ChatPage.tsx"); @@ -88,6 +93,23 @@ test("leased sessions are hidden from dock terminal tabs, leaving no focus affor ); }); +test("a leased file tree leaves the dock tab, content, and launcher", () => { + assert.match( + DOCK_SOURCES["useRightDockProjectTabs.ts"], + /getRightDockVisibleTabs\(\{[\s\S]*fileTreeLeased/, + ); + assert.match( + DOCK_SOURCES["RightDockContent.tsx"], + /definition\.kind === "fileTree" && fileTreeLeased\) return null/, + ); + assert.match( + DOCK_SOURCES["RightDockLauncher.tsx"], + /definition\.kind !== "fileTree" \|\| !fileTreeLeased/, + ); + assert.equal(DOCK_SOURCES["RightDockContent.tsx"].includes("openInWorkbenchHint"), false); + assert.equal(DOCK_SOURCES["RightDockContent.tsx"].includes("onFocusFileTreePane"), false); +}); + test("dock tab selection routes through dock-local state, never through pane focus", () => { const sessions = DOCK_SOURCES["useRightDockSessions.ts"]; // 选中一个终端标签只写 dock 自己的 activeTabId(项目状态),不碰布局。 @@ -96,15 +118,12 @@ test("dock tab selection routes through dock-local state, never through pane foc assert.equal(sessions.includes("paneId"), false); }); -test("ChatPage wires no pane-focus handler into the dock", () => { +test("ChatPage passes only file-tree lease state into the dock", () => { const dockProps = extractJsxProps(chatPageSource, "RightDockPanel"); - // handleWorkbenchFocusPane 是 Canvas 的焦点通路;它不得出现在 dock 属性区。 - assert.equal( - dockProps.includes("handleWorkbenchFocusPane"), - false, - "RightDockPanel receives the canvas focus handler", - ); - // 本地终端的 leased 会话已从 dock 隐藏,不再存在任何 Pane 焦点 prop。 + // Dock 只需要知道是否隐藏 File Tree,不应获得任何 Pane 聚焦能力。 + assert.match(dockProps, /fileTreeLeased=\{Boolean\(/); + assert.match(dockProps, /`fileTree:\$\{terminalProjectPathKey\}`/); + assert.equal(dockProps.includes("onFocusFileTreePane"), false); // (onGitReviewFocusRequest* 是 git 面板内部的滚动/选中请求,与 Pane 焦点 // 无关,故按 "Pane" 过滤。) const paneFocusProps = [...dockProps.matchAll(/\bon[A-Za-z]*Focus[A-Za-z]*Pane[A-Za-z]*=/g)].map( diff --git a/crates/agent-gui/test/chat/workbench-drag-performance.test.mjs b/crates/agent-gui/test/chat/workbench-drag-performance.test.mjs new file mode 100644 index 000000000..9a98524b5 --- /dev/null +++ b/crates/agent-gui/test/chat/workbench-drag-performance.test.mjs @@ -0,0 +1,140 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { createDomTestEnv } from "../helpers/dom-test-env.mjs"; + +const env = await createDomTestEnv(); +const { React, act, createRoot } = env; +const { useWorkbenchDragSession } = env.loadModule( + "@liveagent/ui/lib/workbench/useWorkbenchDragSession.ts", +); + +const layout = { + schemaVersion: 1, + revision: 4, + root: { type: "leaf", paneId: "pane-a" }, + panes: { + "pane-a": { + paneId: "pane-a", + surface: { + kind: "conversation", + conversationId: "conv-a", + project: { projectId: "project-a", projectPathKey: "/workspace/a" }, + }, + view: {}, + }, + }, + focusedPaneId: "pane-a", +}; + +const geometry = { + canvas: { left: 0, top: 0, width: 1_000, height: 800 }, + panes: [{ paneId: "pane-a", rect: { left: 0, top: 0, width: 1_000, height: 800 } }], + dividers: [], +}; + +function pointerMove(x, y) { + const event = new env.dom.window.MouseEvent("pointermove", { clientX: x, clientY: y }); + Object.defineProperty(event, "pointerId", { value: 1 }); + window.dispatchEvent(event); +} + +test("workbench pointer moves coalesce per frame and stable targets do not rerender the page", () => { + let nextFrameId = 1; + const frames = new Map(); + window.requestAnimationFrame = (callback) => { + const id = nextFrameId++; + frames.set(id, callback); + return id; + }; + window.cancelAnimationFrame = (id) => frames.delete(id); + const flushFrame = () => { + const pending = [...frames.values()]; + frames.clear(); + for (const callback of pending) callback(0); + }; + + const container = document.createElement("div"); + const canvas = document.createElement("div"); + canvas.dataset.workbenchCanvas = ""; + canvas.getBoundingClientRect = () => ({ + left: 0, + top: 0, + right: 1_000, + bottom: 800, + width: 1_000, + height: 800, + x: 0, + y: 0, + toJSON() {}, + }); + document.body.append(container, canvas); + const root = createRoot(container); + let controller; + let renderCount = 0; + + function Harness() { + renderCount += 1; + controller = useWorkbenchDragSession({ + enabled: true, + layoutRef: { current: layout }, + geometryRef: { current: geometry }, + onCommit() {}, + }); + return controller.dragState + ? React.createElement("div", { + ref: controller.dragGhostRef, + "data-testid": "ghost", + style: { + transform: + "translate3d(var(--workbench-drag-ghost-x), var(--workbench-drag-ghost-y), 0)", + }, + }) + : null; + } + + act(() => root.render(React.createElement(Harness))); + const source = document.createElement("button"); + document.body.appendChild(source); + act(() => { + controller.beginDrag( + { + kind: "fileTree", + project: { projectId: "project-a", projectPathKey: "/workspace/a" }, + title: "File Tree", + }, + { pointerId: 1, clientX: 100, clientY: 100, currentTarget: source }, + ); + }); + assert.equal(renderCount, 1, "arming a drag does not render an overlay"); + + act(() => { + for (let x = 450; x <= 500; x += 5) pointerMove(x, 400); + }); + assert.equal(frames.size, 1, "raw pointer events share one animation frame"); + assert.equal(renderCount, 1, "raw pointer events never rerender synchronously"); + + act(flushFrame); + assert.equal(renderCount, 2, "the first resolved target publishes one overlay render"); + const ghost = container.querySelector('[data-testid="ghost"]'); + assert.ok(ghost); + assert.equal(ghost.style.getPropertyValue("--workbench-drag-ghost-x"), "514px"); + + act(() => { + pointerMove(510, 400); + pointerMove(520, 400); + }); + act(flushFrame); + assert.equal(renderCount, 2, "moving inside the same drop target does not rerender"); + assert.equal(ghost.style.getPropertyValue("--workbench-drag-ghost-x"), "534px"); + + act(() => pointerMove(2, 400)); + act(flushFrame); + assert.equal(renderCount, 3, "crossing into a different target publishes one render"); + + act(() => root.unmount()); + source.remove(); + canvas.remove(); + container.remove(); +}); + +test.after(() => env.cleanup()); diff --git a/crates/agent-gui/test/chat/workbench-min-size.test.mjs b/crates/agent-gui/test/chat/workbench-min-size.test.mjs index 797bdf245..f2bafa543 100644 --- a/crates/agent-gui/test/chat/workbench-min-size.test.mjs +++ b/crates/agent-gui/test/chat/workbench-min-size.test.mjs @@ -12,6 +12,8 @@ const { createEmptyWorkbenchLayout, MIN_CONVERSATION_PANE_HEIGHT, MIN_CONVERSATION_PANE_WIDTH, + MIN_FILE_TREE_PANE_HEIGHT, + MIN_FILE_TREE_PANE_WIDTH, MIN_TERMINAL_PANE_HEIGHT, MIN_TERMINAL_PANE_WIDTH, paneRendersCompact, @@ -80,6 +82,13 @@ test("surfaceMinSize resolves per kind", () => { minWidth: MIN_TERMINAL_PANE_WIDTH, minHeight: MIN_TERMINAL_PANE_HEIGHT, }); + assert.deepEqual( + surfaceMinSize({ + kind: "fileTree", + project: { projectId: "project-main", projectPathKey: "/workspace/project-main" }, + }), + { minWidth: MIN_FILE_TREE_PANE_WIDTH, minHeight: MIN_FILE_TREE_PANE_HEIGHT }, + ); const unsupported = surfaceMinSize({ kind: "unsupported", originalKind: "future", raw: {} }); assert.ok(unsupported.minWidth < MIN_TERMINAL_PANE_WIDTH); assert.ok(unsupported.minHeight < MIN_TERMINAL_PANE_HEIGHT); diff --git a/crates/agent-gui/test/chat/workbench-terminal-surfaces.test.mjs b/crates/agent-gui/test/chat/workbench-terminal-surfaces.test.mjs index 5ea0f0bb7..afd6a6c4d 100644 --- a/crates/agent-gui/test/chat/workbench-terminal-surfaces.test.mjs +++ b/crates/agent-gui/test/chat/workbench-terminal-surfaces.test.mjs @@ -86,6 +86,10 @@ test("identity helpers distinguish surface kinds", () => { ); assert.equal(surfaceIdentityKey(localTerminalPane("p", " t1 ").surface), "terminal:t1"); assert.equal(surfaceIdentityKey(sshTerminalPane("p", "t2").surface), "terminal:t2"); + assert.equal( + surfaceIdentityKey({ kind: "fileTree", project: project() }), + "fileTree:/workspace/project-main", + ); assert.deepEqual(surfaceProjectRef(localTerminalPane("p", "t1").surface), project()); assert.equal( surfaceProjectRef({ kind: "unsupported", originalKind: "editor", raw: {} }), @@ -93,6 +97,34 @@ test("identity helpers distinguish surface kinds", () => { ); }); +test("file tree is a project-scoped singleton surface", () => { + let layout = conversationRoot(); + layout = mustApply(layout, { + type: "OPEN_PANE", + pane: { + paneId: "pane-file-tree", + surface: { kind: "fileTree", project: project() }, + view: {}, + }, + target: { kind: "pane-edge", paneId: "pane-conversation", edge: "left" }, + }); + assert.equal( + findPaneIdBySurfaceKey(layout, "fileTree:/workspace/project-main"), + "pane-file-tree", + ); + const duplicate = apply(layout, { + type: "OPEN_PANE", + pane: { + paneId: "pane-file-tree-2", + surface: { kind: "fileTree", project: project() }, + view: {}, + }, + target: { kind: "pane-edge", paneId: "pane-conversation", edge: "bottom" }, + }); + assert.equal(duplicate.ok, false); + assert.equal(duplicate.error.code, "duplicate-surface"); +}); + test("opens a local terminal pane beside a conversation pane", () => { let layout = conversationRoot(); layout = mustApply(layout, { diff --git a/crates/agent-gui/test/chat/workspace-path-drag.test.mjs b/crates/agent-gui/test/chat/workspace-path-drag.test.mjs new file mode 100644 index 000000000..2e1714b39 --- /dev/null +++ b/crates/agent-gui/test/chat/workspace-path-drag.test.mjs @@ -0,0 +1,248 @@ +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import test from "node:test"; +import { createTsModuleLoader } from "../helpers/load-ts-module.mjs"; + +const loader = createTsModuleLoader(); +const workspacePathDrag = loader.loadModule("@liveagent/ui/lib/chat/workspacePathDrag.ts"); + +class DataTransferStub { + #values = new Map(); + effectAllowed = "none"; + dropEffect = "none"; + + get types() { + return [...this.#values.keys()]; + } + + getData(type) { + return this.#values.get(type) ?? ""; + } + + setData(type, value) { + this.#values.set(type, value); + } +} + +const payload = { + kind: "workspacePath", + projectPathKey: "/workspace/project", + cwd: "/workspace/project", + relativePath: "docs/方案's draft.md", + entryKind: "file", + label: "方案's draft.md", +}; + +test("workspace path drag payload round-trips without becoming an upload", () => { + const transfer = new DataTransferStub(); + assert.equal(workspacePathDrag.writeWorkspacePathDragPayload(transfer, payload), true); + assert.equal(transfer.effectAllowed, "copy"); + assert.equal( + workspacePathDrag.hasWorkspacePathDragPayload(transfer), + true, + ); + assert.deepEqual(workspacePathDrag.readWorkspacePathDragPayload(transfer), payload); + assert.equal(transfer.getData("text/plain"), payload.relativePath); + workspacePathDrag.clearActiveWorkspacePathDrag(); +}); + +test("an OS file drag is never claimed by a lingering workspace path payload", () => { + const transfer = new DataTransferStub(); + workspacePathDrag.writeWorkspacePathDragPayload(transfer, payload); + // dragend keeps the payload alive for the native-drop handoff window; an + // OS upload drag that starts inside that window must not be reclassified. + workspacePathDrag.finishWorkspacePathDrag(); + const osTransfer = new DataTransferStub(); + osTransfer.setData("Files", ""); + assert.equal(workspacePathDrag.hasWorkspacePathDragPayload(osTransfer), false); + const bareTransfer = new DataTransferStub(); + assert.equal(workspacePathDrag.hasWorkspacePathDragPayload(bareTransfer), true); + workspacePathDrag.clearActiveWorkspacePathDrag(); +}); + +test("desktop native drop bridges the active payload to the element at the release point", () => { + const transfer = new DataTransferStub(); + workspacePathDrag.writeWorkspacePathDragPayload(transfer, payload); + let received = null; + let hitPoint = null; + const target = { + dispatchEvent(event) { + received = workspacePathDrag.readNativeWorkspacePathDrop(event); + event.preventDefault(); + return false; + }, + }; + + assert.equal( + workspacePathDrag.dispatchActiveWorkspacePathDrop( + { x: 320, y: 240 }, + { + document: { + elementFromPoint(x, y) { + hitPoint = { x, y }; + return target; + }, + }, + createEvent(type, detail) { + const event = new Event(type, { cancelable: true }); + Object.defineProperty(event, "detail", { value: detail }); + return event; + }, + }, + ), + true, + ); + assert.deepEqual(hitPoint, { x: 320, y: 240 }); + assert.deepEqual(received, payload); + assert.equal(workspacePathDrag.getActiveWorkspacePathDrag(), null); +}); + +test("desktop native hover follows the logical drop zone and clears the previous zone", () => { + const transfer = new DataTransferStub(); + workspacePathDrag.writeWorkspacePathDragPayload(transfer, payload); + const events = []; + const createZone = (name) => ({ + dispatchEvent(event) { + events.push(`${name}:${event.type}`); + if (event.type === workspacePathDrag.WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT) { + assert.deepEqual(workspacePathDrag.readNativeWorkspacePathDragOver(event), payload); + event.preventDefault(); + } + return !event.defaultPrevented; + }, + }); + const firstZone = createZone("first"); + const secondZone = createZone("second"); + let target = { closest: () => firstZone }; + const options = { + document: { + elementFromPoint() { + return target; + }, + }, + createEvent(type, detail) { + const event = new Event(type, { cancelable: true }); + Object.defineProperty(event, "detail", { value: detail }); + return event; + }, + }; + + assert.equal( + workspacePathDrag.dispatchActiveWorkspacePathNativeHover({ x: 20, y: 30 }, options), + true, + ); + assert.deepEqual(workspacePathDrag.getActiveWorkspacePathDrag(), payload); + target = { closest: () => secondZone }; + assert.equal( + workspacePathDrag.dispatchActiveWorkspacePathNativeHover({ x: 40, y: 50 }, options), + true, + ); + workspacePathDrag.clearActiveWorkspacePathNativeHover(options); + + assert.deepEqual(events, [ + `first:${workspacePathDrag.WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT}`, + `first:${workspacePathDrag.WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT}`, + `second:${workspacePathDrag.WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT}`, + `second:${workspacePathDrag.WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT}`, + ]); + workspacePathDrag.clearActiveWorkspacePathDrag(); +}); + +test("dragend keeps the payload alive for Tauri's following native drop callback", () => { + const transfer = new DataTransferStub(); + workspacePathDrag.writeWorkspacePathDragPayload(transfer, payload); + workspacePathDrag.finishWorkspacePathDrag(); + assert.deepEqual(workspacePathDrag.getActiveWorkspacePathDrag(), payload); + workspacePathDrag.clearActiveWorkspacePathDrag(); +}); + +test("desktop native drop never forwards an in-app drag to the OS upload path", () => { + const source = readFileSync( + new URL("../../src/pages/chat/hooks/useTauriFileDrop.ts", import.meta.url), + "utf8", + ); + assert.match(source, /dispatchActiveWorkspacePathNativeHover/); + assert.match(source, /clearActiveWorkspacePathNativeHover/); + assert.match(source, /if \(getActiveWorkspacePathDrag\(\)\)[\s\S]*dispatchActiveWorkspacePathDrop/); + assert.match(source, /if \(event\.payload\.paths\.length === 0\) return;/); +}); + +test("composer and terminal consume the bridged native workspace drop", () => { + const composer = readFileSync( + new URL("../../../agent-ui/src/pages/chat/ChatComposerBar.tsx", import.meta.url), + "utf8", + ); + const terminal = readFileSync( + new URL( + "../../../agent-ui/src/components/project-tools/XTermViewport.tsx", + import.meta.url, + ), + "utf8", + ); + assert.match(composer, /readNativeWorkspacePathDragOver\(event\)/); + assert.match(composer, /WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT/); + assert.match(composer, /readNativeWorkspacePathDrop\(event\)/); + assert.match(composer, /insertWorkspacePathMention\(payload\)/); + assert.match(terminal, /readNativeWorkspacePathDrop\(event\)/); + assert.match(terminal, /readNativeWorkspacePathDragOver\(event\)/); + assert.match(terminal, /WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT/); + assert.match(terminal, /insertWorkspacePathInTerminal\(payload\)/); +}); + +test("workspace path payload rejects traversal, absolute paths, and controls", () => { + for (const relativePath of ["../secret", "/tmp/file", "C:/file", "a//b", "a/\u0000b"]) { + assert.equal( + workspacePathDrag.createWorkspacePathDragPayload({ ...payload, relativePath }), + null, + relativePath, + ); + } + assert.equal( + workspacePathDrag.createWorkspacePathDragPayload({ + ...payload, + cwd: "/tmp/forged-root", + }), + null, + ); +}); + +test("workspace path drop remains scoped to the originating project", () => { + assert.equal( + workspacePathDrag.workspacePathDragMatchesProject(payload, "/workspace/project/"), + true, + ); + assert.equal( + workspacePathDrag.workspacePathDragMatchesProject(payload, "/workspace/other"), + false, + ); +}); + +test("terminal insertion uses absolute paths and shell-specific quoting", () => { + const absolute = workspacePathDrag.absoluteWorkspacePath(payload); + assert.equal(absolute, "/workspace/project/docs/方案's draft.md"); + assert.equal( + workspacePathDrag.quoteWorkspacePathForShell(absolute, "/bin/zsh"), + "'/workspace/project/docs/方案'\\''s draft.md'", + ); + assert.equal( + workspacePathDrag.quoteWorkspacePathForShell(absolute, "pwsh.exe"), + "'/workspace/project/docs/方案''s draft.md'", + ); + assert.equal( + workspacePathDrag.absoluteWorkspacePath({ + ...payload, + projectPathKey: "c:/work/project", + cwd: "C:\\work\\project", + relativePath: "docs/a b.txt", + }), + "C:\\work\\project\\docs\\a b.txt", + ); + assert.equal( + workspacePathDrag.quoteWorkspacePathForShell("C:\\work\\a b.txt", "cmd.exe"), + '"C:\\work\\a b.txt"', + ); + assert.equal( + workspacePathDrag.quoteWorkspacePathForShell("C:\\work\\%USERPROFILE%.txt", "cmd.exe"), + null, + ); +}); diff --git a/crates/agent-gui/test/settings/right-dock-model.test.mjs b/crates/agent-gui/test/settings/right-dock-model.test.mjs index 93371c4f0..73d3b46af 100644 --- a/crates/agent-gui/test/settings/right-dock-model.test.mjs +++ b/crates/agent-gui/test/settings/right-dock-model.test.mjs @@ -302,6 +302,34 @@ test("resolveEffectiveActiveTabId resolves persisted ids against visible tabs", assert.equal(resolve(undefined, [], true), null); }); +test("a leased file tree leaves the dock without clearing its persisted tool state", () => { + const projectState = { + activeTabId: RIGHT_DOCK_TAB_IDS.fileTree, + tabOrder: [RIGHT_DOCK_TAB_IDS.fileTree, RIGHT_DOCK_TAB_IDS.gitReview], + tools: { fileTree: { openedAt: 2 }, gitReview: { openedAt: 1 } }, + }; + const options = { + backgroundTasksVisible: false, + localSessions: [], + projectPathKey: "/workspace/app", + projectState, + tunnelAvailable: true, + }; + + const leased = rightDockModel.getRightDockVisibleTabs({ ...options, fileTreeLeased: true }); + assert.deepEqual( + leased.map((tab) => tab.kind), + ["gitReview"], + ); + assert.deepEqual(Object.keys(projectState.tools), ["fileTree", "gitReview"]); + + const released = rightDockModel.getRightDockVisibleTabs({ ...options, fileTreeLeased: false }); + assert.deepEqual( + released.map((tab) => tab.kind), + ["fileTree", "gitReview"], + ); +}); + test("closeRightDockToolTabState removes the tool and reassigns activeTabId only when needed", () => { const state = { activeTabId: RIGHT_DOCK_TAB_IDS.gitReview, diff --git a/crates/agent-gui/test/workspace-file-tree-row.test.mjs b/crates/agent-gui/test/workspace-file-tree-row.test.mjs index 54d28321d..9aaef75ce 100644 --- a/crates/agent-gui/test/workspace-file-tree-row.test.mjs +++ b/crates/agent-gui/test/workspace-file-tree-row.test.mjs @@ -106,3 +106,19 @@ test("workspace file tree expands directories with one click", () => { assert.equal(propagationStopped, true); assert.deepEqual(calls, [["toggle", "assets", false]]); }); + +test("workspace file tree rows expose a copy drag without replacing click behavior", () => { + const dragCalls = []; + const { tree } = renderRow({ + onDragStart: (...args) => dragCalls.push(args), + onDragEnd: () => dragCalls.push(["end"]), + }); + const event = { dataTransfer: {} }; + assert.equal(tree.props.draggable, true); + tree.props.onDragStart(event); + tree.props.onDragEnd(); + assert.deepEqual(dragCalls, [ + [event, "assets/preview.png", "file"], + ["end"], + ]); +}); diff --git a/crates/agent-ui/src/components/project-tools/RightDockContent.tsx b/crates/agent-ui/src/components/project-tools/RightDockContent.tsx index cc073b3ba..65543542e 100644 --- a/crates/agent-ui/src/components/project-tools/RightDockContent.tsx +++ b/crates/agent-ui/src/components/project-tools/RightDockContent.tsx @@ -22,6 +22,7 @@ type RightDockContentProps = { onTerminalError: (sessionId: string, message: string | null) => void; onInitialTerminalSnapshotConsumed: (sessionId: string) => void; onCreateTerminal: () => void; + fileTreeLeased?: boolean; }; export function RightDockContent(props: RightDockContentProps) { @@ -37,6 +38,7 @@ export function RightDockContent(props: RightDockContentProps) { onTerminalError, onInitialTerminalSnapshotConsumed, onCreateTerminal, + fileTreeLeased, } = props; const { t } = useLocale(); const context = useRightDockToolContext(); @@ -49,6 +51,11 @@ export function RightDockContent(props: RightDockContentProps) { if (!initializedTools[definition.kind] || !definition.isAvailable(context)) { return null; } + // File Tree follows terminal's single-host lease semantics: while its + // Surface lives in Workbench, Dock mounts neither a tab nor a hidden + // duplicate tree. Closing the Pane releases the lease and this + // persisted tool becomes visible here again. + if (definition.kind === "fileTree" && fileTreeLeased) return null; const active = currentActiveTab === definition.kind; return (
void; onOpenNewTerminalInWorkbench?: () => void; onStartTool: (kind: RightDockSingletonTabKind) => void; @@ -58,6 +59,7 @@ type RightDockChooserProps = RightDockLauncherActions & { export function RightDockCreateMenu(props: RightDockCreateMenuProps) { const { + fileTreeLeased, open, onOpenChange, shellOptions, @@ -135,7 +137,9 @@ export function RightDockCreateMenu(props: RightDockCreateMenuProps) { {t("workbench.openNewTerminalInSplit")} ) : null} - {RIGHT_DOCK_TOOL_DEFINITIONS.map((definition) => ( + {RIGHT_DOCK_TOOL_DEFINITIONS.filter( + (definition) => definition.kind !== "fileTree" || !fileTreeLeased, + ).map((definition) => ( onStartTool(definition.kind)} @@ -157,6 +161,7 @@ export function RightDockCreateMenu(props: RightDockCreateMenuProps) { export function RightDockChooser(props: RightDockChooserProps) { const { + fileTreeLeased, terminalReady, terminalDisabledMessage, disabledMessage, @@ -194,7 +199,9 @@ export function RightDockChooser(props: RightDockChooserProps) { } : undefined, }, - ...RIGHT_DOCK_TOOL_DEFINITIONS.map((definition) => ({ + ...RIGHT_DOCK_TOOL_DEFINITIONS.filter( + (definition) => definition.kind !== "fileTree" || !fileTreeLeased, + ).map((definition) => ({ key: definition.kind, title: t(definition.createTitleKey), description: t(definition.descriptionKey), diff --git a/crates/agent-ui/src/components/project-tools/RightDockPanel.tsx b/crates/agent-ui/src/components/project-tools/RightDockPanel.tsx index 748b82cab..70a8b8f16 100644 --- a/crates/agent-ui/src/components/project-tools/RightDockPanel.tsx +++ b/crates/agent-ui/src/components/project-tools/RightDockPanel.tsx @@ -36,7 +36,7 @@ import { cn } from "../../lib/shared/utils"; import type { TerminalClient, TerminalSession } from "../../lib/terminal/types"; import type { WorkspaceActivityClient } from "../../lib/workspace-activity/types"; import { Button } from "../ui/button"; -import type { FileTreeExternalRoot } from "./file-tree/model"; +import { useFileTreeExternalRoots } from "./file-tree/useFileTreeExternalRoots"; import type { LocalTunnelClient } from "./LocalTunnelPanel"; import { RightDockContent } from "./RightDockContent"; import { @@ -74,6 +74,7 @@ type RightDockPanelProps = { * 视口互斥(绝不同时挂两个 XTermViewport)是这里唯一的硬不变量。 */ leasedSessionIds?: ReadonlySet; + fileTreeLeased?: boolean; width: number; theme: "light" | "dark"; disabledMessage?: string; @@ -119,6 +120,10 @@ type RightDockPanelProps = { }) => void; /** 终端 tab 右键菜单「在工作台打开」;省略时菜单不出现(拖拽仍可用)。 */ onOpenTerminalInWorkbench?: (session: TerminalSession) => void; + /** File Tree 单例 tab 拖出到 Workbench。 */ + onFileTreeTabDragStart?: (event: { pointerId: number; clientX: number; clientY: number }) => void; + /** File Tree 菜单式“在分屏中打开”。 */ + onOpenFileTreeInWorkbench?: () => void; /** 新建菜单「在分屏中新建终端」;与拖拽 newTerminal 走同一提交语义。 */ onOpenNewTerminalInWorkbench?: () => void; /** @@ -154,7 +159,6 @@ const RIGHT_DOCK_TABS_SCROLLBAR_MIN_THUMB_WIDTH = 28; // both the panel memo and the context useMemo below. const NO_SSH_HOSTS: SshHostConfig[] = []; const NO_ASSOCIATED_SSH_HOST_IDS: string[] = []; -const NO_EXTERNAL_FILE_TREE_ROOTS: FileTreeExternalRoot[] = []; function RightDockTabsScrollbar(props: { scrollRef: RefObject }) { const { scrollRef } = props; @@ -387,6 +391,7 @@ export const RightDockPanel = memo(function RightDockPanel(props: RightDockPanel sessions: externalSessions, sessionsLoaded: externalSessionsLoaded, leasedSessionIds, + fileTreeLeased, width, theme, disabledMessage, @@ -414,6 +419,8 @@ export const RightDockPanel = memo(function RightDockPanel(props: RightDockPanel onTerminalTabDragStart, onNewTerminalDragStart, onOpenTerminalInWorkbench, + onFileTreeTabDragStart, + onOpenFileTreeInWorkbench, onOpenNewTerminalInWorkbench, onSessionGhost, onInsertFileMention, @@ -427,49 +434,12 @@ export const RightDockPanel = memo(function RightDockPanel(props: RightDockPanel } = props; const { t } = useLocale(); const [createMenuOpen, setCreateMenuOpen] = useState(false); - const [externalFileTreeRoots, setExternalFileTreeRoots] = useState([]); - const [externalRootsScope, setExternalRootsScope] = useState(""); - const externalRootsRequestRef = useRef(0); - const workspaceRootScope = workspaceProject - ? `${workspaceProject.id}\u0000${workspaceProject.path}` - : ""; - const refreshExternalRoots = useCallback( - async (_revision?: number) => { - const requestId = ++externalRootsRequestRef.current; - if (!workspaceProject || !workspaceProjectRootClient) { - setExternalFileTreeRoots([]); - setExternalRootsScope(workspaceRootScope); - return; - } - try { - const grants = await workspaceProjectRootClient.list(workspaceProject); - if (requestId !== externalRootsRequestRef.current) return; - setExternalFileTreeRoots( - grants - .filter( - (grant) => grant.state === "active" && grant.id.trim() && grant.displayPath.trim(), - ) - .map((grant) => ({ - id: grant.id.trim(), - name: grant.alias.trim() || grant.displayPath.trim(), - cwd: grant.displayPath.trim(), - })), - ); - setExternalRootsScope(workspaceRootScope); - } catch { - if (requestId === externalRootsRequestRef.current) { - setExternalFileTreeRoots([]); - setExternalRootsScope(workspaceRootScope); - } - } - }, - [workspaceProject, workspaceProjectRootClient, workspaceRootScope], - ); - useEffect(() => { - void refreshExternalRoots(workspaceRootRevision); - }, [refreshExternalRoots, workspaceRootRevision]); - const visibleExternalFileTreeRoots = - externalRootsScope === workspaceRootScope ? externalFileTreeRoots : NO_EXTERNAL_FILE_TREE_ROOTS; + const { externalRoots: visibleExternalFileTreeRoots, refreshExternalRoots } = + useFileTreeExternalRoots({ + workspaceProject, + workspaceProjectRootClient, + workspaceRootRevision, + }); const { effectiveShouldRenderContent, effectiveWidthCollapsed, @@ -610,6 +580,7 @@ export const RightDockPanel = memo(function RightDockPanel(props: RightDockPanel tunnelInitialized, } = useRightDockProjectTabs({ backgroundTasksVisible, + fileTreeLeased, localSessions, onProjectStateChange, projectPathKey, @@ -701,6 +672,7 @@ export const RightDockPanel = memo(function RightDockPanel(props: RightDockPanel const startToolTab = useCallback( (kind: RightDockSingletonTabKind) => { + if (kind === "fileTree" && fileTreeLeased) return; if (rightDockTabRequiresProject(kind)) { if (!projectReady) return; } else if (!tunnelClient) { @@ -708,7 +680,7 @@ export const RightDockPanel = memo(function RightDockPanel(props: RightDockPanel } openSingletonTab(kind); }, - [openSingletonTab, projectReady, tunnelClient], + [fileTreeLeased, openSingletonTab, projectReady, tunnelClient], ); const setFileTreeInitialized = useCallback( @@ -933,11 +905,14 @@ export const RightDockPanel = memo(function RightDockPanel(props: RightDockPanel onCloseTerminalRequest={handleCloseRequest} onTerminalTabDragStart={onTerminalTabDragStart} onOpenTerminalInWorkbench={onOpenTerminalInWorkbench} + onFileTreeTabDragStart={onFileTreeTabDragStart} + onOpenFileTreeInWorkbench={onOpenFileTreeInWorkbench} />
) : showRightDockChooser ? ( )} diff --git a/crates/agent-ui/src/components/project-tools/RightDockTabStrip.tsx b/crates/agent-ui/src/components/project-tools/RightDockTabStrip.tsx index de6fade17..c371a8e41 100644 --- a/crates/agent-ui/src/components/project-tools/RightDockTabStrip.tsx +++ b/crates/agent-ui/src/components/project-tools/RightDockTabStrip.tsx @@ -50,6 +50,8 @@ type RightDockTabStripProps = { * session beside the focused workbench pane. Enables the tab context menu. */ onOpenTerminalInWorkbench?: (session: TerminalSession) => void; + onFileTreeTabDragStart?: (event: { pointerId: number; clientX: number; clientY: number }) => void; + onOpenFileTreeInWorkbench?: () => void; }; // One descriptor per tab regardless of kind, so every tab shares a single @@ -102,6 +104,8 @@ export function RightDockTabStrip(props: RightDockTabStripProps) { onCloseTerminalRequest, onTerminalTabDragStart, onOpenTerminalInWorkbench, + onFileTreeTabDragStart, + onOpenFileTreeInWorkbench, } = props; const { t } = useLocale(); // One open menu at a time, keyed by tab id — the strip is a single row, so a @@ -266,6 +270,14 @@ export function RightDockTabStrip(props: RightDockTabStripProps) { const definition = getRightDockToolDefinition(tab.kind); if (!definition) return null; const closeLabel = t(definition.closeKey); + const isFileTree = tab.kind === "fileTree"; + const menuItems = + isFileTree && onOpenFileTreeInWorkbench ? ( + + + {t("workbench.openInSplit")} + + ) : null; return renderDockTab({ id: tab.id, label: t(definition.titleKey), @@ -273,6 +285,20 @@ export function RightDockTabStrip(props: RightDockTabStripProps) { isActive: currentActiveTab === tab.kind, closeLabel, closeTitle: closeLabel, + menuItems, + dragProps: + isFileTree && onFileTreeTabDragStart + ? { + onPointerDown: (event) => { + if (event.button !== 0 || event.pointerType === "touch") return; + onFileTreeTabDragStart({ + pointerId: event.pointerId, + clientX: event.clientX, + clientY: event.clientY, + }); + }, + } + : undefined, onActivate: () => onActivateTab(tab.id), onClose: () => onCloseToolTab(tab.kind), }); diff --git a/crates/agent-ui/src/components/project-tools/XTermViewport.tsx b/crates/agent-ui/src/components/project-tools/XTermViewport.tsx index baa922fd7..2b3b0d744 100644 --- a/crates/agent-ui/src/components/project-tools/XTermViewport.tsx +++ b/crates/agent-ui/src/components/project-tools/XTermViewport.tsx @@ -3,7 +3,30 @@ import "@xterm/xterm/css/xterm.css"; import { FitAddon } from "@xterm/addon-fit"; import { WebglAddon } from "@xterm/addon-webgl"; import { Terminal as XTerm } from "@xterm/xterm"; -import { type CSSProperties, useEffect, useRef } from "react"; +import { + type CSSProperties, + type DragEvent as ReactDragEvent, + useCallback, + useEffect, + useRef, + useState, +} from "react"; +import { useLocale } from "../../i18n/index"; +import { + absoluteWorkspacePath, + clearActiveWorkspacePathDrag, + getActiveWorkspacePathDrag, + hasWorkspacePathDragPayload, + quoteWorkspacePathForShell, + readNativeWorkspacePathDragOver, + readNativeWorkspacePathDrop, + readWorkspacePathDragPayload, + WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT, + WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT, + WORKSPACE_PATH_NATIVE_DROP_EVENT, + type WorkspacePathDragPayload, + workspacePathDragMatchesProject, +} from "../../lib/chat/workspacePathDrag"; import { CODE_FONT_FAMILY_CHANGE_EVENT, getCodeFontFamily } from "../../lib/shared/fontFamily"; import { cn } from "../../lib/shared/utils"; import type { @@ -143,7 +166,12 @@ export function XTermViewport({ onError, onInitialSnapshotConsumed, }: XTermViewportProps) { + const { t } = useLocale(); const containerRef = useRef(null); + const dropTargetRef = useRef(null); + const [workspacePathDropState, setWorkspacePathDropState] = useState<"accept" | "blocked" | null>( + null, + ); const resizeTimerRef = useRef(null); const sessionRef = useRef(session); const themeRef = useRef(theme); @@ -161,6 +189,100 @@ export function XTermViewport({ "--project-terminal-background": terminalTheme(theme).background, } as CSSProperties; + const canAcceptWorkspacePath = useCallback( + (payload = getActiveWorkspacePathDrag()) => + Boolean( + payload && + session.kind === "local" && + workspacePathDragMatchesProject(payload, session.cwd) && + !termRef.current?.options.disableStdin, + ), + [session.cwd, session.kind], + ); + + const handleWorkspacePathDragOver = useCallback( + (event: ReactDragEvent) => { + if (!hasWorkspacePathDragPayload(event.dataTransfer)) return; + event.preventDefault(); + event.stopPropagation(); + const state = canAcceptWorkspacePath() ? "accept" : "blocked"; + event.dataTransfer.dropEffect = state === "accept" ? "copy" : "none"; + setWorkspacePathDropState(state); + }, + [canAcceptWorkspacePath], + ); + + const insertWorkspacePathInTerminal = useCallback( + (payload: WorkspacePathDragPayload) => { + setWorkspacePathDropState(null); + if (!canAcceptWorkspacePath(payload)) return false; + const absolutePath = absoluteWorkspacePath(payload); + const quotedPath = absolutePath + ? quoteWorkspacePathForShell(absolutePath, session.shell) + : null; + if (!quotedPath) return false; + termRef.current?.paste(quotedPath); + termRef.current?.focus(); + return true; + }, + [canAcceptWorkspacePath, session.shell], + ); + + const handleWorkspacePathDrop = useCallback( + (event: ReactDragEvent) => { + if (!hasWorkspacePathDragPayload(event.dataTransfer)) return; + event.preventDefault(); + event.stopPropagation(); + const payload = readWorkspacePathDragPayload(event.dataTransfer); + clearActiveWorkspacePathDrag(); + if (payload) insertWorkspacePathInTerminal(payload); + }, + [insertWorkspacePathInTerminal], + ); + + useEffect(() => { + const target = dropTargetRef.current; + if (!target) return; + const handleNativeWorkspacePathDragOver = (event: Event) => { + const payload = readNativeWorkspacePathDragOver(event); + if (!payload) return; + event.preventDefault(); + event.stopPropagation(); + setWorkspacePathDropState(canAcceptWorkspacePath(payload) ? "accept" : "blocked"); + }; + const handleNativeWorkspacePathDragLeave = (event: Event) => { + if (event.type !== WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT) return; + setWorkspacePathDropState(null); + }; + const handleNativeWorkspacePathDrop = (event: Event) => { + const payload = readNativeWorkspacePathDrop(event); + if (!payload) return; + event.preventDefault(); + event.stopPropagation(); + insertWorkspacePathInTerminal(payload); + }; + target.addEventListener( + WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT, + handleNativeWorkspacePathDragOver, + ); + target.addEventListener( + WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT, + handleNativeWorkspacePathDragLeave, + ); + target.addEventListener(WORKSPACE_PATH_NATIVE_DROP_EVENT, handleNativeWorkspacePathDrop); + return () => { + target.removeEventListener( + WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT, + handleNativeWorkspacePathDragOver, + ); + target.removeEventListener( + WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT, + handleNativeWorkspacePathDragLeave, + ); + target.removeEventListener(WORKSPACE_PATH_NATIVE_DROP_EVENT, handleNativeWorkspacePathDrop); + }; + }, [canAcceptWorkspacePath, insertWorkspacePathInTerminal]); + useEffect(() => { if (!termRef.current) return; termRef.current.options.theme = terminalTheme(theme); @@ -634,11 +756,42 @@ export function XTermViewport({ }, [client, session.id, session.projectPathKey]); return ( + // biome-ignore lint/a11y/noStaticElementInteractions: the xterm viewport is a pointer drop target; keyboard users paste or use the file-tree context menu.
+ className={cn( + "project-terminal-viewport relative h-full min-h-0 w-full overflow-hidden", + className, + )} + data-workspace-path-drop-zone={workspacePathDropState ?? "idle"} + onDragEnter={handleWorkspacePathDragOver} + onDragOver={handleWorkspacePathDragOver} + onDragLeave={(event) => { + if (event.currentTarget.contains(event.relatedTarget as Node | null)) return; + setWorkspacePathDropState(null); + }} + onDrop={handleWorkspacePathDrop} + > +
+ {workspacePathDropState ? ( +
+ {workspacePathDropState === "accept" + ? t("projectTools.workspacePathDrop.insert") + : session.kind === "ssh" + ? t("projectTools.workspacePathDrop.sshBlocked") + : t("projectTools.workspacePathDrop.crossProject")} +
+ ) : null} +
); } diff --git a/crates/agent-ui/src/components/project-tools/file-tree/Row.tsx b/crates/agent-ui/src/components/project-tools/file-tree/Row.tsx index 30efb3378..e277d9cef 100644 --- a/crates/agent-ui/src/components/project-tools/file-tree/Row.tsx +++ b/crates/agent-ui/src/components/project-tools/file-tree/Row.tsx @@ -5,7 +5,7 @@ import { ChevronRight, Loader2 } from "@liveagent/ui/components/IconSet"; import { useLocale } from "@liveagent/ui/i18n/index"; -import { memo, type MouseEvent as ReactMouseEvent } from "react"; +import { memo, type DragEvent as ReactDragEvent, type MouseEvent as ReactMouseEvent } from "react"; import { cn } from "../../../lib/shared/utils"; import { getFileTypeIcon } from "../../chat/fileTypeIcons"; import { FILE_TREE_ROW_HEIGHT, type FileTreeKind } from "./model"; @@ -26,6 +26,8 @@ export type FileTreeRowProps = { onSelect: (path: string) => void; onOpen: (path: string) => void; onContextMenu: (event: ReactMouseEvent, path: string) => void; + onDragStart?: (event: ReactDragEvent, path: string, kind: FileTreeKind) => void; + onDragEnd?: () => void; }; export const FileTreeRow = memo(function FileTreeRow(props: FileTreeRowProps) { @@ -43,6 +45,8 @@ export const FileTreeRow = memo(function FileTreeRow(props: FileTreeRowProps) { onSelect, onOpen, onContextMenu, + onDragStart, + onDragEnd, } = props; const { t } = useLocale(); const TypeIcon = getFileTypeIcon(path, kind, { expanded }); @@ -66,6 +70,9 @@ export const FileTreeRow = memo(function FileTreeRow(props: FileTreeRowProps) { )} style={{ height: FILE_TREE_ROW_HEIGHT, paddingLeft: 6 + depth * 14 }} title={title} + draggable={Boolean(onDragStart)} + onDragStart={(event) => onDragStart?.(event, path, kind)} + onDragEnd={onDragEnd} onClick={activateRow} onKeyDown={(event) => { if (event.currentTarget !== event.target || (event.key !== "Enter" && event.key !== " ")) diff --git a/crates/agent-ui/src/components/project-tools/file-tree/index.tsx b/crates/agent-ui/src/components/project-tools/file-tree/index.tsx index 925a6a746..72b10ad1d 100644 --- a/crates/agent-ui/src/components/project-tools/file-tree/index.tsx +++ b/crates/agent-ui/src/components/project-tools/file-tree/index.tsx @@ -4,7 +4,11 @@ // Shared implementation owned by @liveagent/ui. Host-specific icons, settings // and backend capabilities resolve through the current application's contracts. -import type { RightDockFileTreeStatePatch } from "@liveagent/app/lib/settings"; +import type { + RightDockFileTreeState, + RightDockFileTreeStatePatch, + WorkspaceProject, +} from "@liveagent/app/lib/settings"; import { Check, FolderOpen, @@ -14,9 +18,11 @@ import { Trash2, X, } from "@liveagent/ui/components/IconSet"; +import type { WorkspaceProjectRootClient } from "@liveagent/ui/contracts/workspaceProjectRoots"; import { useLocale } from "@liveagent/ui/i18n/index"; import { useVirtualizer } from "@tanstack/react-virtual"; import { + type DragEvent as ReactDragEvent, type MouseEvent as ReactMouseEvent, useCallback, useEffect, @@ -24,7 +30,12 @@ import { useRef, useState, } from "react"; +import { + finishWorkspacePathDrag, + writeWorkspacePathDragPayload, +} from "../../../lib/chat/workspacePathDrag"; import { cn } from "../../../lib/shared/utils"; +import type { WorkspaceActivityClient } from "../../../lib/workspace-activity/types"; import { getFileTypeIcon } from "../../chat/fileTypeIcons"; import { Button } from "../../ui/button"; import { useConfirmDialog } from "../../ui/confirm-dialog"; @@ -39,6 +50,7 @@ import { dirname, FILE_TREE_HAS_OS_INTEGRATION, FILE_TREE_ROW_HEIGHT, + type FileTreeExternalRoot, type FileTreeKind, flattenFileTreeRows, ROOT_PATH, @@ -48,8 +60,10 @@ import { } from "./model"; import { FileTreeErrorRow, FileTreeRow } from "./Row"; import { useFileTreeData } from "./useFileTreeData"; +import { useFileTreeExternalRoots } from "./useFileTreeExternalRoots"; const FILE_TREE_QUERY_SYNC_DEBOUNCE_MS = 180; +const NO_EXTERNAL_FILE_TREE_ROOTS: readonly FileTreeExternalRoot[] = []; type PendingAction = "file" | "folder" | "rename" | null; @@ -60,11 +74,87 @@ type ContextMenuState = { }; export function FileTreePanel(props: { active: boolean }) { - const { active } = props; const context = useRightDockToolContext(); - const { projectPathKey, cwd, fileTree } = context; - const syncState = fileTree.state; - const initialized = fileTree.initialized; + return ( + + ); +} + +export type FileTreeSurfaceProps = { + active: boolean; + projectPathKey: string; + cwd: string; + state: RightDockFileTreeState; + initialized?: boolean; + externalRoots?: readonly FileTreeExternalRoot[]; + workspaceActivityClient?: WorkspaceActivityClient | null; + onInitializedChange?: (initialized: boolean) => void; + onRefreshExternalRoots?: () => Promise; + onStateChange: (patch: RightDockFileTreeStatePatch) => void; + onInsertFileMention?: (path: string, kind: "file" | "dir") => void; + onOpenFile?: (path: string, imagePaths?: string[]) => void; +}; + +export type FileTreePaneSurfaceProps = Omit< + FileTreeSurfaceProps, + "externalRoots" | "onRefreshExternalRoots" +> & { + workspaceProject?: WorkspaceProject; + workspaceProjectRootClient?: WorkspaceProjectRootClient; + workspaceRootRevision?: number; +}; + +/** + * Workbench pane host for the file tree. The Right Dock fetches external + * (multi-root) grants itself and injects them through context; a pane has no + * dock context, so this wrapper owns the same fetch and keeps both hosts + * rendering identical roots. + */ +export function FileTreePaneSurface(props: FileTreePaneSurfaceProps) { + const { workspaceProject, workspaceProjectRootClient, workspaceRootRevision, ...surfaceProps } = + props; + const { externalRoots, refreshExternalRoots } = useFileTreeExternalRoots({ + workspaceProject, + workspaceProjectRootClient, + workspaceRootRevision, + }); + return ( + + ); +} + +export function FileTreeSurface(props: FileTreeSurfaceProps) { + const { + active, + projectPathKey, + cwd, + state: syncState, + initialized = true, + externalRoots = NO_EXTERNAL_FILE_TREE_ROOTS, + workspaceActivityClient, + onInitializedChange, + onRefreshExternalRoots, + onStateChange, + onInsertFileMention, + onOpenFile, + } = props; const { t } = useLocale(); const [query, setQuery] = useState(syncState.query); @@ -94,10 +184,10 @@ export function FileTreePanel(props: { active: boolean }) { } = useFileTreeData({ projectPathKey, cwd, - externalRoots: fileTree.externalRoots, + externalRoots, active, initialized, - workspaceActivityClient: context.clients.workspaceActivity ?? null, + workspaceActivityClient: workspaceActivityClient ?? null, expandedPaths: syncState.expandedPaths, query, showHidden: syncState.showHidden, @@ -108,10 +198,10 @@ export function FileTreePanel(props: { active: boolean }) { nodesRef.current = nodes; }, [nodes]); - const onStateChangeRef = useRef(fileTree.onStateChange); + const onStateChangeRef = useRef(onStateChange); useEffect(() => { - onStateChangeRef.current = fileTree.onStateChange; - }, [fileTree.onStateChange]); + onStateChangeRef.current = onStateChange; + }, [onStateChange]); const emitState = useCallback((patch: RightDockFileTreeStatePatch) => { onStateChangeRef.current(patch); }, []); @@ -138,7 +228,7 @@ export function FileTreePanel(props: { active: boolean }) { const selectedNode = nodes[syncState.selectedPath] ?? nodes[ROOT_PATH]; const selectedPath = selectedNode?.path ?? ROOT_PATH; - const projectCanMutate = initialized && Boolean(projectPathKey && cwd); + const canMutate = initialized && Boolean(projectPathKey && cwd); const selectPath = useCallback( (path: string) => { @@ -256,10 +346,10 @@ export function FileTreePanel(props: { active: boolean }) { return siblingPaths.includes(targetPath) ? siblingPaths : [targetPath]; }, []); - const onOpenFileRef = useRef(fileTree.onOpenFile); + const onOpenFileRef = useRef(onOpenFile); useEffect(() => { - onOpenFileRef.current = fileTree.onOpenFile; - }, [fileTree.onOpenFile]); + onOpenFileRef.current = onOpenFile; + }, [onOpenFile]); const handleOpenFile = useCallback( (path: string) => { if (isExternalPath(path)) { @@ -275,10 +365,10 @@ export function FileTreePanel(props: { active: boolean }) { [getSiblingImagePaths, isExternalPath, openWorkspacePath], ); - const onInsertFileMentionRef = useRef(fileTree.onInsertFileMention); + const onInsertFileMentionRef = useRef(onInsertFileMention); useEffect(() => { - onInsertFileMentionRef.current = fileTree.onInsertFileMention; - }, [fileTree.onInsertFileMention]); + onInsertFileMentionRef.current = onInsertFileMention; + }, [onInsertFileMention]); const handleInsertMention = useCallback( (path: string) => { const node = nodesRef.current[path]; @@ -288,6 +378,32 @@ export function FileTreePanel(props: { active: boolean }) { [isExternalPath], ); + const handleWorkspacePathDragStart = useCallback( + (event: ReactDragEvent, path: string, kind: FileTreeKind) => { + const node = nodesRef.current[path]; + // External roots live outside the project cwd, so they have no + // project-relative payload; the payload validator would reject their + // sentinel prefix anyway, but refuse the drag explicitly. + if (!node || !path || isExternalPath(path)) { + event.preventDefault(); + return; + } + if ( + !writeWorkspacePathDragPayload(event.dataTransfer, { + kind: "workspacePath", + projectPathKey, + cwd, + relativePath: path, + entryKind: kind, + label: node.name, + }) + ) { + event.preventDefault(); + } + }, + [cwd, isExternalPath, projectPathKey], + ); + const openContextMenu = useCallback( (event: ReactMouseEvent, path: string) => { event.preventDefault(); @@ -459,7 +575,7 @@ export function FileTreePanel(props: { active: boolean }) {
); @@ -657,11 +780,9 @@ export function FileTreePanel(props: { active: boolean }) { isExternalPath(contextNode.path) ? getDisplayPath(contextNode.path) : undefined } kind={contextNode.kind} - canMutate={projectCanMutate && !isExternalPath(contextNode.path)} - canOpenFile={Boolean(fileTree.onOpenFile) && !isExternalPath(contextNode.path)} - canInsertMention={ - Boolean(fileTree.onInsertFileMention) && !isExternalPath(contextNode.path) - } + canMutate={canMutate && !isExternalPath(contextNode.path)} + canOpenFile={Boolean(onOpenFile) && !isExternalPath(contextNode.path)} + canInsertMention={Boolean(onInsertFileMention) && !isExternalPath(contextNode.path)} showHidden={syncState.showHidden} onClose={() => setContextMenu(null)} onOpenFile={handleOpenFile} diff --git a/crates/agent-ui/src/components/project-tools/file-tree/useFileTreeExternalRoots.ts b/crates/agent-ui/src/components/project-tools/file-tree/useFileTreeExternalRoots.ts new file mode 100644 index 000000000..85111373e --- /dev/null +++ b/crates/agent-ui/src/components/project-tools/file-tree/useFileTreeExternalRoots.ts @@ -0,0 +1,69 @@ +// External (multi-root) grants for a project's file tree. Shared by the +// Right Dock panel and the Workbench file tree pane so both hosts render the +// same roots regardless of which one currently holds the interactive tree. + +import type { WorkspaceProject } from "@liveagent/app/lib/settings"; +import type { WorkspaceProjectRootClient } from "@liveagent/ui/contracts/workspaceProjectRoots"; +import { useCallback, useEffect, useRef, useState } from "react"; +import type { FileTreeExternalRoot } from "./model"; + +const NO_EXTERNAL_FILE_TREE_ROOTS: FileTreeExternalRoot[] = []; + +export function useFileTreeExternalRoots(params: { + workspaceProject?: WorkspaceProject; + workspaceProjectRootClient?: WorkspaceProjectRootClient; + /** Bump to re-list after a grant mutation elsewhere in the app. */ + workspaceRootRevision?: number; +}): { + externalRoots: readonly FileTreeExternalRoot[]; + refreshExternalRoots: () => Promise; +} { + const { workspaceProject, workspaceProjectRootClient, workspaceRootRevision = 0 } = params; + const [externalRoots, setExternalRoots] = useState([]); + const [scope, setScope] = useState(""); + const requestRef = useRef(0); + // Scope pins the fetched roots to the project they were listed for, so a + // project switch never briefly shows the previous project's grants. + const workspaceRootScope = workspaceProject + ? `${workspaceProject.id}\u0000${workspaceProject.path}` + : ""; + const refreshExternalRoots = useCallback( + async (_revision?: number) => { + const requestId = ++requestRef.current; + if (!workspaceProject || !workspaceProjectRootClient) { + setExternalRoots([]); + setScope(workspaceRootScope); + return; + } + try { + const grants = await workspaceProjectRootClient.list(workspaceProject); + if (requestId !== requestRef.current) return; + setExternalRoots( + grants + .filter( + (grant) => grant.state === "active" && grant.id.trim() && grant.displayPath.trim(), + ) + .map((grant) => ({ + id: grant.id.trim(), + name: grant.alias.trim() || grant.displayPath.trim(), + cwd: grant.displayPath.trim(), + })), + ); + setScope(workspaceRootScope); + } catch { + if (requestId === requestRef.current) { + setExternalRoots([]); + setScope(workspaceRootScope); + } + } + }, + [workspaceProject, workspaceProjectRootClient, workspaceRootScope], + ); + useEffect(() => { + void refreshExternalRoots(workspaceRootRevision); + }, [refreshExternalRoots, workspaceRootRevision]); + return { + externalRoots: scope === workspaceRootScope ? externalRoots : NO_EXTERNAL_FILE_TREE_ROOTS, + refreshExternalRoots, + }; +} diff --git a/crates/agent-ui/src/components/project-tools/rightDockModel.ts b/crates/agent-ui/src/components/project-tools/rightDockModel.ts index 8d3647ec9..240e9fce2 100644 --- a/crates/agent-ui/src/components/project-tools/rightDockModel.ts +++ b/crates/agent-ui/src/components/project-tools/rightDockModel.ts @@ -123,19 +123,27 @@ export function rightDockTabRequiresProject(kind: RightDockSingletonTabKind) { export function getRightDockVisibleTabs(options: { backgroundTasksVisible: boolean; + fileTreeLeased?: boolean; localSessions: TerminalSession[]; projectPathKey: string; projectState: RightDockProjectState; tunnelAvailable: boolean; }) { - const { backgroundTasksVisible, localSessions, projectPathKey, projectState, tunnelAvailable } = - options; + const { + backgroundTasksVisible, + fileTreeLeased, + localSessions, + projectPathKey, + projectState, + tunnelAvailable, + } = options; const nextTabs: RightDockVisibleTab[] = localSessions.map((session) => ({ id: session.id, kind: "terminal", session, })); for (const kind of RIGHT_DOCK_SINGLETON_TAB_KINDS) { + if (kind === "fileTree" && fileTreeLeased) continue; if (!projectState.tools[kind]) continue; if (kind === "tunnel" && !tunnelAvailable) continue; if (rightDockTabRequiresProject(kind) && !projectPathKey) continue; diff --git a/crates/agent-ui/src/components/project-tools/useRightDockProjectTabs.ts b/crates/agent-ui/src/components/project-tools/useRightDockProjectTabs.ts index c0f07cd26..f96bb310e 100644 --- a/crates/agent-ui/src/components/project-tools/useRightDockProjectTabs.ts +++ b/crates/agent-ui/src/components/project-tools/useRightDockProjectTabs.ts @@ -20,6 +20,7 @@ import { type UseRightDockProjectTabsOptions = { backgroundTasksVisible: boolean; + fileTreeLeased?: boolean; localSessions: TerminalSession[]; projectPathKey: string; projectState: RightDockProjectState; @@ -33,6 +34,7 @@ type UseRightDockProjectTabsOptions = { export function useRightDockProjectTabs(options: UseRightDockProjectTabsOptions) { const { backgroundTasksVisible, + fileTreeLeased, localSessions, onProjectStateChange, projectPathKey, @@ -49,12 +51,20 @@ export function useRightDockProjectTabs(options: UseRightDockProjectTabsOptions) () => getRightDockVisibleTabs({ backgroundTasksVisible, + fileTreeLeased, localSessions, projectPathKey, projectState, tunnelAvailable, }), - [backgroundTasksVisible, localSessions, projectPathKey, projectState, tunnelAvailable], + [ + backgroundTasksVisible, + fileTreeLeased, + localSessions, + projectPathKey, + projectState, + tunnelAvailable, + ], ); const effectiveTabOrder = draftTabOrder ?? projectState.tabOrder; const orderedProjectTabs = useMemo( diff --git a/crates/agent-ui/src/i18n/translations/enUSCommon.ts b/crates/agent-ui/src/i18n/translations/enUSCommon.ts index e0e27aff7..ff8487bbf 100644 --- a/crates/agent-ui/src/i18n/translations/enUSCommon.ts +++ b/crates/agent-ui/src/i18n/translations/enUSCommon.ts @@ -375,6 +375,9 @@ export const EN_US_COMMON_TRANSLATIONS = { "chat.runtime.controls": "Model controls", "chat.runtime.planMode": "Plan", "chat.upload.addSection": "Add", + "chat.upload.filesAndFolders": "Files & folders", + "chat.workspacePathDrop.reference": "Drop to reference this file or folder", + "chat.workspacePathDrop.crossProject": "This path belongs to another project", "chat.upload.files": "Files", "chat.upload.folder": "Folder", "chat.upload.selectFolder": "Select a folder to mount as a project directory", @@ -735,6 +738,9 @@ export const EN_US_COMMON_TRANSLATIONS = { "projectTools.getStartedHint": "Choose a tool to begin", "projectTools.newTerminal": "New Terminal", "projectTools.terminalDescription": "Run commands and scripts", + "projectTools.workspacePathDrop.insert": "Drop to insert path", + "projectTools.workspacePathDrop.crossProject": "This path belongs to another project", + "projectTools.workspacePathDrop.sshBlocked": "SSH path mapping is not configured", "projectTools.newFileTree": "New File Tree", "projectTools.fileTreeDescription": "Browse and manage project files", "projectTools.newGitReview": "New Review", diff --git a/crates/agent-ui/src/i18n/translations/zhCNCommon.ts b/crates/agent-ui/src/i18n/translations/zhCNCommon.ts index 2db75e34e..a23682f7e 100644 --- a/crates/agent-ui/src/i18n/translations/zhCNCommon.ts +++ b/crates/agent-ui/src/i18n/translations/zhCNCommon.ts @@ -340,6 +340,9 @@ export const ZH_CN_COMMON_TRANSLATIONS = { "chat.runtime.controls": "模型与能力", "chat.runtime.planMode": "计划", "chat.upload.addSection": "添加", + "chat.upload.filesAndFolders": "文件和文件夹", + "chat.workspacePathDrop.reference": "释放以引用文件或文件夹", + "chat.workspacePathDrop.crossProject": "不能引用其他项目中的路径", "chat.upload.files": "文件", "chat.upload.folder": "文件夹", "chat.upload.selectFolder": "选择一个文件夹并将其挂载为项目目录", @@ -686,6 +689,9 @@ export const ZH_CN_COMMON_TRANSLATIONS = { "projectTools.getStartedHint": "选择一个工具开始", "projectTools.newTerminal": "新建终端", "projectTools.terminalDescription": "运行命令和脚本", + "projectTools.workspacePathDrop.insert": "释放以插入路径", + "projectTools.workspacePathDrop.crossProject": "该路径属于其他项目", + "projectTools.workspacePathDrop.sshBlocked": "SSH 尚未配置路径映射", "projectTools.newFileTree": "新建文件树", "projectTools.fileTreeDescription": "浏览和管理项目文件", "projectTools.newGitReview": "新建审查", diff --git a/crates/agent-ui/src/lib/chat/workspacePathDrag.ts b/crates/agent-ui/src/lib/chat/workspacePathDrag.ts new file mode 100644 index 000000000..f3a53b455 --- /dev/null +++ b/crates/agent-ui/src/lib/chat/workspacePathDrag.ts @@ -0,0 +1,322 @@ +import { workspaceProjectPathKey } from "@liveagent/app/lib/settings"; + +export const WORKSPACE_PATH_DRAG_MIME = "application/x-liveagent-workspace-path+json"; +export const WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT = "liveagent:workspace-path-native-drag-over"; +export const WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT = "liveagent:workspace-path-native-drag-leave"; +export const WORKSPACE_PATH_NATIVE_DROP_EVENT = "liveagent:workspace-path-native-drop"; + +export type WorkspacePathDragPayload = { + kind: "workspacePath"; + projectPathKey: string; + cwd: string; + relativePath: string; + entryKind: "file" | "dir"; + label: string; +}; + +let activeWorkspacePathDrag: WorkspacePathDragPayload | null = null; +let activeWorkspacePathDragClearTimer: ReturnType | null = null; +let activeNativeWorkspacePathHoverTarget: EventTarget | null = null; + +type WorkspacePathDropDocument = { + elementFromPoint: (x: number, y: number) => EventTarget | null; +}; + +type WorkspacePathDropEventFactory = (type: string, payload: WorkspacePathDragPayload) => Event; + +type WorkspacePathNativeHoverEventFactory = ( + type: string, + payload: WorkspacePathDragPayload | null, +) => Event; + +const WORKSPACE_PATH_DROP_ZONE_SELECTOR = "[data-workspace-path-drop-zone]"; + +function createNativeWorkspacePathEvent( + type: string, + payload: WorkspacePathDragPayload | null, + createEvent?: WorkspacePathNativeHoverEventFactory, +): Event { + if (createEvent) return createEvent(type, payload); + return new CustomEvent(type, { + bubbles: true, + cancelable: true, + detail: payload, + }); +} + +function workspacePathDropZoneAt( + position: { x: number; y: number }, + targetDocument: WorkspacePathDropDocument, +): EventTarget | null { + const target = targetDocument.elementFromPoint(position.x, position.y); + if (!target) return null; + const closest = ( + target as EventTarget & { + closest?: (selector: string) => EventTarget | null; + } + ).closest; + return typeof closest === "function" + ? closest.call(target, WORKSPACE_PATH_DROP_ZONE_SELECTOR) + : target; +} + +/** Clear the Desktop-only native hover bridge without ending the drag payload. */ +export function clearActiveWorkspacePathNativeHover(options?: { + createEvent?: WorkspacePathNativeHoverEventFactory; +}): void { + const previousTarget = activeNativeWorkspacePathHoverTarget; + activeNativeWorkspacePathHoverTarget = null; + if (!previousTarget) return; + previousTarget.dispatchEvent( + createNativeWorkspacePathEvent( + WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT, + null, + options?.createEvent, + ), + ); +} + +/** + * WKWebView reports an in-app HTML drag through Tauri before React receives + * dragenter/dragover. Mirror the native pointer into the logical composer or + * terminal drop zone so Desktop renders the same local feedback as Web. + */ +export function dispatchActiveWorkspacePathNativeHover( + position: { x: number; y: number }, + options?: { + document?: WorkspacePathDropDocument; + createEvent?: WorkspacePathNativeHoverEventFactory; + }, +): boolean { + const payload = activeWorkspacePathDrag; + if (!payload) { + clearActiveWorkspacePathNativeHover({ createEvent: options?.createEvent }); + return false; + } + const targetDocument = options?.document ?? document; + const nextTarget = workspacePathDropZoneAt(position, targetDocument); + if (nextTarget !== activeNativeWorkspacePathHoverTarget) { + clearActiveWorkspacePathNativeHover({ createEvent: options?.createEvent }); + activeNativeWorkspacePathHoverTarget = nextTarget; + } + if (!nextTarget) return false; + const event = createNativeWorkspacePathEvent( + WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT, + payload, + options?.createEvent, + ); + nextTarget.dispatchEvent(event); + return event.defaultPrevented; +} + +function hasControlCharacters(value: string): boolean { + for (const character of value) { + const code = character.charCodeAt(0); + if (code <= 0x1f || code === 0x7f) return true; + } + return false; +} + +function normalizeRelativePath(input: unknown): string | null { + if (typeof input !== "string") return null; + const value = input.trim().replace(/\\/g, "/").replace(/^\.\//, ""); + if (!value || value.startsWith("/") || /^[A-Za-z]:\//.test(value)) return null; + const parts = value.split("/"); + if (parts.some((part) => !part || part === "." || part === "..")) return null; + if (hasControlCharacters(value)) return null; + return value; +} + +export function createWorkspacePathDragPayload( + input: Partial, +): WorkspacePathDragPayload | null { + const projectPathKey = workspaceProjectPathKey(input.projectPathKey); + const cwd = typeof input.cwd === "string" ? input.cwd.trim() : ""; + const cwdProjectPathKey = workspaceProjectPathKey(cwd); + const relativePath = normalizeRelativePath(input.relativePath); + const entryKind = input.entryKind === "dir" ? "dir" : input.entryKind === "file" ? "file" : null; + if ( + !projectPathKey || + !cwd || + hasControlCharacters(cwd) || + cwdProjectPathKey !== projectPathKey || + !relativePath || + !entryKind + ) { + return null; + } + return { + kind: "workspacePath", + projectPathKey, + cwd, + relativePath, + entryKind, + label: + typeof input.label === "string" && input.label.trim() + ? input.label.trim() + : relativePath.split("/").at(-1) || relativePath, + }; +} + +export function writeWorkspacePathDragPayload( + dataTransfer: DataTransfer, + input: Partial, +): boolean { + const payload = createWorkspacePathDragPayload(input); + if (!payload) return false; + if (activeWorkspacePathDragClearTimer !== null) { + clearTimeout(activeWorkspacePathDragClearTimer); + activeWorkspacePathDragClearTimer = null; + } + activeWorkspacePathDrag = payload; + dataTransfer.effectAllowed = "copy"; + dataTransfer.setData(WORKSPACE_PATH_DRAG_MIME, JSON.stringify(payload)); + dataTransfer.setData("text/plain", payload.relativePath); + return true; +} + +export function clearActiveWorkspacePathDrag(): void { + if (activeWorkspacePathDragClearTimer !== null) { + clearTimeout(activeWorkspacePathDragClearTimer); + activeWorkspacePathDragClearTimer = null; + } + clearActiveWorkspacePathNativeHover(); + activeWorkspacePathDrag = null; +} + +/** + * WKWebView can deliver the DOM dragend just before Tauri's native drop + * callback. Keep the in-app payload alive for that short handoff window; + * successful DOM/native drops still clear it synchronously. + */ +export function finishWorkspacePathDrag(): void { + if (!activeWorkspacePathDrag) return; + if (activeWorkspacePathDragClearTimer !== null) { + clearTimeout(activeWorkspacePathDragClearTimer); + } + activeWorkspacePathDragClearTimer = setTimeout(clearActiveWorkspacePathDrag, 1_000); +} + +export function getActiveWorkspacePathDrag(): WorkspacePathDragPayload | null { + return activeWorkspacePathDrag; +} + +/** + * Tauri's native webview drag bridge also reports in-app HTML drags, but with + * an empty `paths` array and without a DOM `drop`. Re-dispatch the active, + * already-validated payload at the native release point so the real composer + * or terminal drop target can commit it synchronously. + */ +export function dispatchActiveWorkspacePathDrop( + position: { x: number; y: number }, + options?: { + document?: WorkspacePathDropDocument; + createEvent?: WorkspacePathDropEventFactory; + }, +): boolean { + const payload = activeWorkspacePathDrag; + if (!payload) return false; + const targetDocument = options?.document ?? document; + const target = targetDocument.elementFromPoint(position.x, position.y); + try { + if (!target) return false; + const event = options?.createEvent + ? options.createEvent(WORKSPACE_PATH_NATIVE_DROP_EVENT, payload) + : new CustomEvent(WORKSPACE_PATH_NATIVE_DROP_EVENT, { + bubbles: true, + cancelable: true, + detail: payload, + }); + target.dispatchEvent(event); + return event.defaultPrevented; + } finally { + clearActiveWorkspacePathDrag(); + } +} + +export function readNativeWorkspacePathDrop(event: Event): WorkspacePathDragPayload | null { + if (event.type !== WORKSPACE_PATH_NATIVE_DROP_EVENT) return null; + return createWorkspacePathDragPayload( + (event as CustomEvent).detail as Partial, + ); +} + +export function readNativeWorkspacePathDragOver(event: Event): WorkspacePathDragPayload | null { + if (event.type !== WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT) return null; + return createWorkspacePathDragPayload( + (event as CustomEvent).detail as Partial, + ); +} + +export function hasWorkspacePathDragPayload(dataTransfer: DataTransfer): boolean { + const types = Array.from(dataTransfer.types); + if (types.includes(WORKSPACE_PATH_DRAG_MIME)) return true; + // An OS file drag (Finder/Explorer/browser) advertises "Files" and never + // carries our MIME. Without this check, a payload kept alive through the + // dragend → native-drop handoff window would claim an unrelated upload drag + // that starts inside that window. + if (types.includes("Files")) return false; + return activeWorkspacePathDrag !== null; +} + +export function readWorkspacePathDragPayload( + dataTransfer: DataTransfer, +): WorkspacePathDragPayload | null { + const raw = dataTransfer.getData(WORKSPACE_PATH_DRAG_MIME); + if (!raw) return activeWorkspacePathDrag; + try { + return createWorkspacePathDragPayload(JSON.parse(raw) as Partial); + } catch { + return null; + } +} + +export function workspacePathDragMatchesProject( + payload: WorkspacePathDragPayload, + workdir: string, +): boolean { + return payload.projectPathKey === workspaceProjectPathKey(workdir); +} + +export function absoluteWorkspacePath(payload: WorkspacePathDragPayload): string | null { + const relativePath = normalizeRelativePath(payload.relativePath); + const cwd = payload.cwd.trim(); + if (!relativePath || !cwd) return null; + const windows = /^[A-Za-z]:[\\/]/.test(cwd) || cwd.startsWith("\\\\"); + const root = cwd.replace(/[\\/]+$/, ""); + return windows + ? `${root}\\${relativePath.replace(/\//g, "\\")}` + : `${root || "/"}/${relativePath}`; +} + +export type WorkspacePathShellKind = "cmd" | "posix" | "powershell"; + +export function workspacePathShellKind(shell: string): WorkspacePathShellKind { + const value = shell.trim().toLowerCase().replace(/\\/g, "/"); + const executable = value.split("/").at(-1) || value; + if (executable === "cmd" || executable === "cmd.exe") return "cmd"; + if ( + executable === "powershell" || + executable === "powershell.exe" || + executable === "pwsh" || + executable === "pwsh.exe" + ) { + return "powershell"; + } + return "posix"; +} + +export function quoteWorkspacePathForShell(path: string, shell: string): string | null { + if (!path || hasControlCharacters(path)) return null; + switch (workspacePathShellKind(shell)) { + case "powershell": + return `'${path.replace(/'/g, "''")}'`; + case "cmd": + // Percent and delayed-expansion markers are context-sensitive in cmd. + // Refuse them rather than inserting a path that can expand to another command. + if (/[%!"]/.test(path)) return null; + return `"${path}"`; + case "posix": + return `'${path.replace(/'/g, `'\\''`)}'`; + } +} diff --git a/crates/agent-ui/src/lib/workbench/dragMachine.ts b/crates/agent-ui/src/lib/workbench/dragMachine.ts index ad2dec6e4..96548d65d 100644 --- a/crates/agent-ui/src/lib/workbench/dragMachine.ts +++ b/crates/agent-ui/src/lib/workbench/dragMachine.ts @@ -4,6 +4,8 @@ import { hitTestWorkbenchDrop, MIN_CONVERSATION_PANE_HEIGHT, MIN_CONVERSATION_PANE_WIDTH, + MIN_FILE_TREE_PANE_HEIGHT, + MIN_FILE_TREE_PANE_WIDTH, MIN_TERMINAL_PANE_HEIGHT, MIN_TERMINAL_PANE_WIDTH, previewRectForDropTarget, @@ -57,6 +59,9 @@ function payloadMinForEdge( if (payload.kind === "terminalSession" || payload.kind === "newTerminal") { return horizontal ? MIN_TERMINAL_PANE_WIDTH : MIN_TERMINAL_PANE_HEIGHT; } + if (payload.kind === "fileTree") { + return horizontal ? MIN_FILE_TREE_PANE_WIDTH : MIN_FILE_TREE_PANE_HEIGHT; + } if (payload.kind === "pane") { const pane = layout.panes[payload.paneId]; if (pane) { @@ -115,7 +120,9 @@ export type WorkbenchDragPayload = /** Dragging an existing terminal session (e.g. from the Right Dock) into a pane. */ | { kind: "terminalSession"; sessionId: string; project: ProjectRef; title: string } /** Dragging a "new terminal" affordance creates a terminal at the drop spot. */ - | { kind: "newTerminal"; project: ProjectRef; title: string }; + | { kind: "newTerminal"; project: ProjectRef; title: string } + /** Dragging the singleton File Tree tool opens/moves its project surface. */ + | { kind: "fileTree"; project: ProjectRef; title: string }; export function conversationReferenceForWorkbenchPayload( payload: WorkbenchDragPayload, @@ -154,6 +161,11 @@ function ownPaneIdForPayload( layout: WorkbenchLayout, ): string | undefined { if (payload.kind === "pane") return payload.paneId; + if (payload.kind === "fileTree") { + return Object.values(layout.panes).find( + (pane) => surfaceIdentityKey(pane.surface) === `fileTree:${payload.project.projectPathKey}`, + )?.paneId; + } if (payload.kind !== "conversation") return undefined; return Object.values(layout.panes).find( (pane) => surfaceIdentityKey(pane.surface) === `conversation:${payload.conversationId}`, diff --git a/crates/agent-ui/src/lib/workbench/geometry.ts b/crates/agent-ui/src/lib/workbench/geometry.ts index aa6b2d588..5e20c2cce 100644 --- a/crates/agent-ui/src/lib/workbench/geometry.ts +++ b/crates/agent-ui/src/lib/workbench/geometry.ts @@ -44,6 +44,8 @@ export const MIN_CONVERSATION_PANE_HEIGHT = 220; // horizontal padding and the chrome strip that folds to 220×140 CSS pixels. export const MIN_TERMINAL_PANE_WIDTH = 220; export const MIN_TERMINAL_PANE_HEIGHT = 140; +export const MIN_FILE_TREE_PANE_WIDTH = 240; +export const MIN_FILE_TREE_PANE_HEIGHT = 180; // Unsupported placeholders only show a short message; keep them small enough // to never block a restore. export const MIN_UNSUPPORTED_PANE_WIDTH = 160; @@ -56,6 +58,8 @@ export type SurfaceMinSize = { minWidth: number; minHeight: number }; /** Hard minimum CSS-pixel size a pane must keep, resolved per surface kind. */ export function surfaceMinSize(surface: WorkbenchSurfaceSpec): SurfaceMinSize { switch (surface.kind) { + case "fileTree": + return { minWidth: MIN_FILE_TREE_PANE_WIDTH, minHeight: MIN_FILE_TREE_PANE_HEIGHT }; case "localTerminal": case "sshTerminal": return { minWidth: MIN_TERMINAL_PANE_WIDTH, minHeight: MIN_TERMINAL_PANE_HEIGHT }; diff --git a/crates/agent-ui/src/lib/workbench/invariants.ts b/crates/agent-ui/src/lib/workbench/invariants.ts index 445767522..b6e1ef341 100644 --- a/crates/agent-ui/src/lib/workbench/invariants.ts +++ b/crates/agent-ui/src/lib/workbench/invariants.ts @@ -216,6 +216,17 @@ export function collectWorkbenchLayoutIssues(layout: WorkbenchLayout): Workbench } else { identityValid = true; } + } else if (surface.kind === "fileTree") { + identityValid = Boolean(surface.project.projectPathKey.trim()); + if (!identityValid) { + issues.push( + issue( + "invalid-pane-record", + `${panePath}.surface.project.projectPathKey`, + "File tree surfaces require a project path key.", + ), + ); + } } else if (surface.kind === "localTerminal" || surface.kind === "sshTerminal") { if (!surface.surfaceId.trim()) { issues.push( @@ -265,6 +276,14 @@ export function collectWorkbenchLayoutIssues(layout: WorkbenchLayout): Workbench `Conversation '${surface.conversationId.trim()}' is already bound to pane '${previousPaneId}'.`, ), ); + } else if (surface.kind === "fileTree") { + issues.push( + issue( + "duplicate-surface", + `${panePath}.surface.project.projectPathKey`, + `File tree for project '${surface.project.projectPathKey.trim()}' is already bound to pane '${previousPaneId}'.`, + ), + ); } else { issues.push( issue( diff --git a/crates/agent-ui/src/lib/workbench/reducer.ts b/crates/agent-ui/src/lib/workbench/reducer.ts index 8082cb609..9e70972cf 100644 --- a/crates/agent-ui/src/lib/workbench/reducer.ts +++ b/crates/agent-ui/src/lib/workbench/reducer.ts @@ -391,6 +391,15 @@ function validatePaneRecord(pane: PaneRecord): PaneRecordIssue | null { } return null; } + case "fileTree": { + if (!surface.project.projectId.trim() || !surface.project.projectPathKey.trim()) { + return { + code: "invalid-layout", + message: "File tree surfaces require a complete project reference.", + }; + } + return null; + } case "localTerminal": case "sshTerminal": { if (!surface.surfaceId.trim()) { @@ -465,10 +474,10 @@ export function applyWorkbenchCommand( layout.revision, ); } - const surfaceId = pane.surface.kind === "unsupported" ? "" : pane.surface.surfaceId; + const surfaceId = surfaceIdentityKey(pane.surface); return commandError( "duplicate-surface", - `Terminal surface '${surfaceId}' is already open in pane '${existingPaneId}'.`, + `Surface '${surfaceId}' is already open in pane '${existingPaneId}'.`, layout.revision, ); } diff --git a/crates/agent-ui/src/lib/workbench/types.ts b/crates/agent-ui/src/lib/workbench/types.ts index 23a346ad0..118a49022 100644 --- a/crates/agent-ui/src/lib/workbench/types.ts +++ b/crates/agent-ui/src/lib/workbench/types.ts @@ -14,6 +14,11 @@ export type ConversationWorkbenchSurface = { project: ProjectRef; }; +export type FileTreeWorkbenchSurface = { + kind: "fileTree"; + project: ProjectRef; +}; + export type LocalTerminalLaunchSpec = { cwd: string; shell?: string; @@ -56,6 +61,7 @@ export type TerminalWorkbenchSurface = LocalTerminalWorkbenchSurface | SshTermin export type WorkbenchSurfaceSpec = | ConversationWorkbenchSurface + | FileTreeWorkbenchSurface | TerminalWorkbenchSurface | UnsupportedWorkbenchSurface; @@ -68,6 +74,8 @@ export function surfaceIdentityKey(surface: WorkbenchSurfaceSpec): string { switch (surface.kind) { case "conversation": return `conversation:${surface.conversationId.trim()}`; + case "fileTree": + return `fileTree:${surface.project.projectPathKey.trim()}`; case "localTerminal": case "sshTerminal": return `terminal:${surface.surfaceId.trim()}`; diff --git a/crates/agent-ui/src/lib/workbench/useWindowWorkbench.ts b/crates/agent-ui/src/lib/workbench/useWindowWorkbench.ts index 9fe62ce37..fa3eb68b5 100644 --- a/crates/agent-ui/src/lib/workbench/useWindowWorkbench.ts +++ b/crates/agent-ui/src/lib/workbench/useWindowWorkbench.ts @@ -21,6 +21,7 @@ import { } from "./layoutStorage"; import { createEmptyWorkbenchLayout, + type FileTreeWorkbenchSurface, type PaneRecord, type ProjectRef, surfaceIdentityKey, @@ -158,6 +159,11 @@ export type WindowWorkbench = { surface: TerminalWorkbenchSurface, target: WorkbenchOpenTarget, ): { paneId: string } | null; + /** Open the project's singleton file tree surface. */ + openFileTreeSurface( + surface: FileTreeWorkbenchSurface, + target: WorkbenchOpenTarget, + ): { paneId: string } | null; movePane(paneId: string, target: WorkbenchMoveTarget): boolean; /** Draft promotion: rebind the pane hosting `fromId` to `toId` in place. */ renameConversation(fromConversationId: string, toConversationId: string): void; @@ -349,6 +355,24 @@ export function useWindowWorkbench(params: UseWindowWorkbenchParams): WindowWork [dispatchCurrent], ); + const openFileTreeSurface = useCallback( + (surface: FileTreeWorkbenchSurface, target: WorkbenchOpenTarget): { paneId: string } | null => { + const existingPaneId = findPaneIdBySurfaceKey(layoutRef.current, surfaceIdentityKey(surface)); + if (existingPaneId) { + dispatchCurrent({ type: "FOCUS_PANE", paneId: existingPaneId }); + return { paneId: existingPaneId }; + } + const paneId = createPaneId(); + const result = dispatchCurrent({ + type: "OPEN_PANE", + pane: { paneId, surface, view: {} }, + target, + }); + return result.ok ? { paneId } : null; + }, + [dispatchCurrent], + ); + const movePane = useCallback( (paneId: string, target: WorkbenchMoveTarget): boolean => { const result = dispatchCurrent({ type: "MOVE_PANE", paneId, target }); @@ -489,6 +513,7 @@ export function useWindowWorkbench(params: UseWindowWorkbenchParams): WindowWork focusPane, openConversation, openTerminalSurface, + openFileTreeSurface, movePane, renameConversation, clear, @@ -504,6 +529,7 @@ export function useWindowWorkbench(params: UseWindowWorkbenchParams): WindowWork focusPane, openConversation, openTerminalSurface, + openFileTreeSurface, movePane, renameConversation, clear, diff --git a/crates/agent-ui/src/lib/workbench/useWorkbenchDragSession.ts b/crates/agent-ui/src/lib/workbench/useWorkbenchDragSession.ts index 2131cb2cd..fec7a6704 100644 --- a/crates/agent-ui/src/lib/workbench/useWorkbenchDragSession.ts +++ b/crates/agent-ui/src/lib/workbench/useWorkbenchDragSession.ts @@ -52,6 +52,14 @@ export type WorkbenchDragUnavailableReason = | "canvas-too-narrow" | "no-valid-target"; +/** + * The React-published overlay model. The machine's `pointer` is deliberately + * omitted: ghost positioning is compositor-only (`dragGhostRef` + CSS vars), + * and same-target moves skip re-publishing, so a pointer field here would go + * stale after the first render of each target. + */ +export type WorkbenchDragRenderState = Omit; + /** * Pointer-driven drag session shared by sidebar conversation drags and pane * chrome drags. Arms on pointer-down, activates after a 6px threshold with a @@ -64,7 +72,8 @@ export type WorkbenchDragUnavailableReason = */ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { const { enabled, layoutRef, geometryRef, onCommit, onUnavailable } = params; - const [dragState, setDragState] = useState(null); + const [dragState, setDragState] = useState(null); + const publishedDragStateRef = useRef(null); const sessionRef = useRef(IDLE_DRAG_SESSION); const referenceDragActiveRef = useRef(false); const conversationDropZoneRef = useRef(null); @@ -73,9 +82,32 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { const onUnavailableRef = useRef(onUnavailable); onUnavailableRef.current = onUnavailable; const pointerCaptureRef = useRef<{ element: Element; pointerId: number } | null>(null); + const pendingMoveRef = useRef<{ + pointerId: number; + clientX: number; + clientY: number; + } | null>(null); + const moveFrameRef = useRef(null); + const dragGhostElementRef = useRef(null); const cleanupListenersRef = useRef<(() => void) | null>(null); + const positionDragGhost = useCallback((clientX: number, clientY: number) => { + const element = dragGhostElementRef.current; + if (!element) return; + element.style.setProperty("--workbench-drag-ghost-x", `${clientX + 14}px`); + element.style.setProperty("--workbench-drag-ghost-y", `${clientY + 10}px`); + }, []); + + const dragGhostRef = useCallback( + (element: HTMLDivElement | null) => { + dragGhostElementRef.current = element; + const current = dragStateFor(sessionRef.current); + if (element && current) positionDragGhost(current.pointer.x, current.pointer.y); + }, + [positionDragGhost], + ); + const clearConversationDropHover = useCallback(() => { const zone = conversationDropZoneRef.current; const session = sessionRef.current; @@ -91,6 +123,11 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { clearConversationDropHover(); sessionRef.current = IDLE_DRAG_SESSION; referenceDragActiveRef.current = false; + pendingMoveRef.current = null; + if (moveFrameRef.current !== null) { + window.cancelAnimationFrame(moveFrameRef.current); + moveFrameRef.current = null; + } cleanupListenersRef.current?.(); cleanupListenersRef.current = null; const capture = pointerCaptureRef.current; @@ -106,20 +143,41 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { } } document.documentElement.style.removeProperty("cursor"); - setDragState(null); + if (publishedDragStateRef.current !== null) { + publishedDragStateRef.current = null; + setDragState(null); + } }, [clearConversationDropHover]); useEffect(() => teardown, [teardown]); - /** Run one machine event, publish the overlay model and fire any commit. */ - const dispatch = useCallback((event: DragSessionEvent) => { - const result = dragSessionReducer(sessionRef.current, event); - sessionRef.current = result.state; - setDragState(dragStateFor(result.state)); - if (result.commit) onCommitRef.current(result.commit); - return result; + const publishDragState = useCallback((nextDragState: WorkbenchDragRenderState | null) => { + if (dragRenderStateEqual(publishedDragStateRef.current, nextDragState)) return; + publishedDragStateRef.current = nextDragState; + setDragState(nextDragState); }, []); + /** Run one machine event, publish the overlay model and fire any commit. */ + const dispatch = useCallback( + (event: DragSessionEvent) => { + const result = dragSessionReducer(sessionRef.current, event); + sessionRef.current = result.state; + const machineState = dragStateFor(result.state); + publishDragState( + machineState + ? { + payload: machineState.payload, + target: machineState.target, + previewRect: machineState.previewRect, + } + : null, + ); + if (result.commit) onCommitRef.current(result.commit); + return result; + }, + [publishDragState], + ); + const beginDrag = useCallback( (payload: WorkbenchDragPayload, event: WorkbenchDragPointerEvent) => { if (!enabled || sessionRef.current.phase !== "idle") return; @@ -191,9 +249,8 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { revision: layoutRef.current.revision, }); } else if (reference) { - setDragState({ + publishDragState({ payload: session.payload, - pointer: { x: moveEvent.clientX, y: moveEvent.clientY }, target: null, previewRect: null, }); @@ -217,9 +274,9 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { // self/duplicate/approval/text-mode rejection fall through to a Pane // split merely because insertion is unavailable at this moment. if (zone) { - setDragState({ + positionDragGhost(moveEvent.clientX, moveEvent.clientY); + publishDragState({ payload: session.payload, - pointer: { x: moveEvent.clientX, y: moveEvent.clientY }, target: null, previewRect: null, }); @@ -227,9 +284,9 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { } } if (session.phase !== "dragging") { - setDragState({ + positionDragGhost(moveEvent.clientX, moveEvent.clientY); + publishDragState({ payload: session.payload, - pointer: { x: moveEvent.clientX, y: moveEvent.clientY }, target: null, previewRect: null, }); @@ -238,18 +295,41 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { // Once activated this is a workbench gesture, not text selection, // xterm input, or a menu interaction beneath the captured pointer. moveEvent.preventDefault(); - dispatch({ - type: "pointer-move", + pendingMoveRef.current = { pointerId: moveEvent.pointerId, clientX: moveEvent.clientX, clientY: moveEvent.clientY, - layout: layoutRef.current, + }; + if (moveFrameRef.current !== null) return; + moveFrameRef.current = window.requestAnimationFrame(() => { + moveFrameRef.current = null; + const pending = pendingMoveRef.current; + pendingMoveRef.current = null; + const activeSession = sessionRef.current; + if ( + !pending || + activeSession.phase !== "dragging" || + pending.pointerId !== activeSession.pointerId + ) { + return; + } + dispatch({ + type: "pointer-move", + ...pending, + layout: layoutRef.current, + }); + positionDragGhost(pending.clientX, pending.clientY); }); }; const handleUp = (upEvent: PointerEvent) => { const session = sessionRef.current; if (session.phase === "idle" || upEvent.pointerId !== session.pointerId) return; + pendingMoveRef.current = null; + if (moveFrameRef.current !== null) { + window.cancelAnimationFrame(moveFrameRef.current); + moveFrameRef.current = null; + } const reference = conversationReferenceForWorkbenchPayload(session.payload); if (referenceDragActiveRef.current && reference) { const zone = findConversationReferenceDropZone(upEvent.clientX, upEvent.clientY); @@ -299,8 +379,65 @@ export function useWorkbenchDragSession(params: UseWorkbenchDragSessionParams) { onKeyDown: handleKeyDown, }); }, - [dispatch, enabled, geometryRef, layoutRef, teardown], + [dispatch, enabled, geometryRef, layoutRef, positionDragGhost, publishDragState, teardown], ); - return { dragState, beginDrag }; + return { dragState, beginDrag, dragGhostRef }; +} + +function dragRenderStateEqual( + current: WorkbenchDragRenderState | null, + next: WorkbenchDragRenderState | null, +): boolean { + if (current === next) return true; + if (!current || !next || current.payload !== next.payload) return false; + const currentTarget = current.target; + const nextTarget = next.target; + if (currentTarget?.kind !== nextTarget?.kind) return false; + if (currentTarget && nextTarget) { + switch (currentTarget.kind) { + case "canvas-empty": + break; + case "canvas-edge": + if (nextTarget.kind !== "canvas-edge" || currentTarget.edge !== nextTarget.edge) + return false; + break; + case "divider": + if ( + nextTarget.kind !== "divider" || + currentTarget.splitId !== nextTarget.splitId || + currentTarget.edge !== nextTarget.edge + ) { + return false; + } + break; + case "pane-edge": + if ( + nextTarget.kind !== "pane-edge" || + currentTarget.paneId !== nextTarget.paneId || + currentTarget.edge !== nextTarget.edge + ) { + return false; + } + break; + case "pane-center": + if (nextTarget.kind !== "pane-center" || currentTarget.paneId !== nextTarget.paneId) { + return false; + } + break; + } + } + const currentRect = current.previewRect; + const nextRect = next.previewRect; + return ( + currentRect === nextRect || + Boolean( + currentRect && + nextRect && + currentRect.left === nextRect.left && + currentRect.top === nextRect.top && + currentRect.width === nextRect.width && + currentRect.height === nextRect.height, + ) + ); } diff --git a/crates/agent-ui/src/pages/chat/ChatComposerBar.tsx b/crates/agent-ui/src/pages/chat/ChatComposerBar.tsx index 291c67886..1656b3260 100644 --- a/crates/agent-ui/src/pages/chat/ChatComposerBar.tsx +++ b/crates/agent-ui/src/pages/chat/ChatComposerBar.tsx @@ -58,6 +58,19 @@ import { registerConversationReferenceDropZone, } from "@liveagent/ui/lib/chat/conversationReferenceDrag"; import type { ConversationMentionReference } from "@liveagent/ui/lib/chat/mentionReferences"; +import { + clearActiveWorkspacePathDrag, + getActiveWorkspacePathDrag, + hasWorkspacePathDragPayload, + readNativeWorkspacePathDragOver, + readNativeWorkspacePathDrop, + readWorkspacePathDragPayload, + WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT, + WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT, + WORKSPACE_PATH_NATIVE_DROP_EVENT, + type WorkspacePathDragPayload, + workspacePathDragMatchesProject, +} from "@liveagent/ui/lib/chat/workspacePathDrag"; import type { GitClient } from "@liveagent/ui/lib/git/types"; import type { SharedModelOption } from "@liveagent/ui/lib/models/modelOptions"; import { cn } from "@liveagent/ui/lib/shared/utils"; @@ -452,6 +465,9 @@ export const ChatComposerBar = memo(function ChatComposerBar(props: ChatComposer } | null>(null); const queueHadTurnsRef = useRef(false); const [queueCollapsed, setQueueCollapsed] = useState(false); + const [workspacePathDropState, setWorkspacePathDropState] = useState<"accept" | "blocked" | null>( + null, + ); const [queueScrollbar, setQueueScrollbar] = useState( DEFAULT_QUEUE_SCROLLBAR_STATE, ); @@ -487,6 +503,95 @@ export const ChatComposerBar = memo(function ChatComposerBar(props: ChatComposer ? t("chat.composer.collapse") : t("chat.composer.expand"); + const resolveWorkspacePathDropState = useCallback((): "accept" | "blocked" => { + const payload = getActiveWorkspacePathDrag(); + return payload && !isInputDisabled && workspacePathDragMatchesProject(payload, workdir) + ? "accept" + : "blocked"; + }, [isInputDisabled, workdir]); + + const insertWorkspacePathMention = useCallback( + (payload: WorkspacePathDragPayload) => { + setWorkspacePathDropState(null); + if (isInputDisabled || !workspacePathDragMatchesProject(payload, workdir)) return false; + composerRef.current?.insertFileMention(payload.relativePath, payload.entryKind); + composerRef.current?.focus(); + return true; + }, + [composerRef, isInputDisabled, workdir], + ); + + const handleWorkspacePathDragOver = useCallback( + (event: ReactDragEvent) => { + if (!hasWorkspacePathDragPayload(event.dataTransfer)) return; + event.preventDefault(); + event.stopPropagation(); + const state = resolveWorkspacePathDropState(); + event.dataTransfer.dropEffect = state === "accept" ? "copy" : "none"; + setWorkspacePathDropState(state); + }, + [resolveWorkspacePathDropState], + ); + + const handleWorkspacePathDrop = useCallback( + (event: ReactDragEvent) => { + if (!hasWorkspacePathDragPayload(event.dataTransfer)) return; + event.preventDefault(); + event.stopPropagation(); + const payload = readWorkspacePathDragPayload(event.dataTransfer); + clearActiveWorkspacePathDrag(); + if (payload) insertWorkspacePathMention(payload); + }, + [insertWorkspacePathMention], + ); + + useEffect(() => { + const target = glassCardRef.current; + if (!target) return; + const handleNativeWorkspacePathDragOver = (event: Event) => { + const payload = readNativeWorkspacePathDragOver(event); + if (!payload) return; + event.preventDefault(); + event.stopPropagation(); + setWorkspacePathDropState( + !isInputDisabled && workspacePathDragMatchesProject(payload, workdir) + ? "accept" + : "blocked", + ); + }; + const handleNativeWorkspacePathDragLeave = (event: Event) => { + if (event.type !== WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT) return; + setWorkspacePathDropState(null); + }; + const handleNativeWorkspacePathDrop = (event: Event) => { + const payload = readNativeWorkspacePathDrop(event); + if (!payload) return; + event.preventDefault(); + event.stopPropagation(); + insertWorkspacePathMention(payload); + }; + target.addEventListener( + WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT, + handleNativeWorkspacePathDragOver, + ); + target.addEventListener( + WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT, + handleNativeWorkspacePathDragLeave, + ); + target.addEventListener(WORKSPACE_PATH_NATIVE_DROP_EVENT, handleNativeWorkspacePathDrop); + return () => { + target.removeEventListener( + WORKSPACE_PATH_NATIVE_DRAG_OVER_EVENT, + handleNativeWorkspacePathDragOver, + ); + target.removeEventListener( + WORKSPACE_PATH_NATIVE_DRAG_LEAVE_EVENT, + handleNativeWorkspacePathDragLeave, + ); + target.removeEventListener(WORKSPACE_PATH_NATIVE_DROP_EVENT, handleNativeWorkspacePathDrop); + }; + }, [insertWorkspacePathMention, isInputDisabled, workdir]); + const showConversationDropNotice = useCallback((result: ConversationReferenceInsertResult) => { if (result === "inserted") { setConversationDropNotice(null); @@ -610,6 +715,51 @@ export const ChatComposerBar = memo(function ChatComposerBar(props: ChatComposer [clearConversationDropState, insertConversationReference, showConversationDropNotice], ); + const handleComposerDragEnter = useCallback( + (event: ReactDragEvent) => { + if (hasWorkspacePathDragPayload(event.dataTransfer)) { + handleWorkspacePathDragOver(event); + return; + } + handleConversationDragEnter(event); + }, + [handleConversationDragEnter, handleWorkspacePathDragOver], + ); + + const handleComposerDragOver = useCallback( + (event: ReactDragEvent) => { + if (hasWorkspacePathDragPayload(event.dataTransfer)) { + handleWorkspacePathDragOver(event); + return; + } + handleConversationDragOver(event); + }, + [handleConversationDragOver, handleWorkspacePathDragOver], + ); + + const handleComposerDragLeave = useCallback( + (event: ReactDragEvent) => { + if (hasWorkspacePathDragPayload(event.dataTransfer)) { + if (event.currentTarget.contains(event.relatedTarget as Node | null)) return; + setWorkspacePathDropState(null); + return; + } + handleConversationDragLeave(event); + }, + [handleConversationDragLeave], + ); + + const handleComposerDrop = useCallback( + (event: ReactDragEvent) => { + if (hasWorkspacePathDragPayload(event.dataTransfer)) { + handleWorkspacePathDrop(event); + return; + } + handleConversationDrop(event); + }, + [handleConversationDrop, handleWorkspacePathDrop], + ); + const toggleQueueCollapsed = useCallback(() => { setQueueCollapsed((current) => !current); }, []); @@ -1060,14 +1210,15 @@ export const ChatComposerBar = memo(function ChatComposerBar(props: ChatComposer ref={glassCardRef} data-file-upload-drop-zone="" data-file-upload-conversation-id={conversationId} + data-workspace-path-drop-zone={workspacePathDropState ?? "idle"} data-conversation-reference-drop-zone={ canDropConversationReference ? "enabled" : "disabled" } data-conversation-reference-drop-conversation-id={conversationId} - onDragEnter={handleConversationDragEnter} - onDragOver={handleConversationDragOver} - onDragLeave={handleConversationDragLeave} - onDrop={handleConversationDrop} + onDragEnter={handleComposerDragEnter} + onDragOver={handleComposerDragOver} + onDragLeave={handleComposerDragLeave} + onDrop={handleComposerDrop} onKeyDown={ isComposerExpanded ? (event) => { @@ -1088,7 +1239,21 @@ export const ChatComposerBar = memo(function ChatComposerBar(props: ChatComposer isComposerExpanded && "min-h-0 flex-1", )} > - {conversationDropReference ? ( + {workspacePathDropState ? ( +
+ {workspacePathDropState === "accept" + ? t("chat.workspacePathDrop.reference") + : t("chat.workspacePathDrop.crossProject")} +
+ ) : conversationDropReference ? (
{t("chat.conversationReference.drop").replace( diff --git a/docs/design/session-workbench-pane-architecture.md b/docs/design/session-workbench-pane-architecture.md index 27fbcbdaa..377104cfa 100644 --- a/docs/design/session-workbench-pane-architecture.md +++ b/docs/design/session-workbench-pane-architecture.md @@ -506,9 +506,21 @@ canvas-edge > divider > pane-edge > pane-center - xterm Fit 可按帧计算,Runtime Resize 约 80~100ms 去重节流,Pointer Up 最终 Flush。 - Conversation Transcript 只响应宽度,不在每帧重建虚拟列表。 -### 13.3 应用内 Drag 与 Native Drop 分离 +### 13.3 布局 Drag、路径引用 Drag 与 Native Drop 分离 -Pane/侧栏用 Pointer Event;Finder/Explorer/File Manager 文件用 Tauri Native Drop: +Pane/侧栏使用 Workbench Pointer Drag;File Tree 节点使用独立的 +`workspacePath` 内容拖拽;Finder/Explorer/File Manager 文件使用 Tauri +Native Drop。三者不能共享 payload 或提交路径: + +```ts +type WorkspacePathDragPayload = { + kind: "workspacePath"; + projectPathKey: string; + cwd: string; + relativePath: string; + entryKind: "file" | "dir"; +}; +``` ```ts type NativeDropTarget = @@ -520,6 +532,11 @@ type NativeDropTarget = 当前工作树已把上传区收窄到 Composer,必须保留。文件只准备附件、不自动发送;路径只转义插入 Terminal、不自动回车。 +File Tree 内部节点拖到 Composer 时插入现有文件/目录 Mention,不上传或复制文件; +拖到同项目 Local/Gateway Terminal 时由 xterm paste 管线插入绝对路径,并按 +POSIX、PowerShell 或 cmd 规则转义。跨项目目标与没有显式本地/远端根映射的 +SSH Terminal 一律 blocked。 + ## 14. Focus、快捷键与 Right Dock 上下文 - `focusedPaneId` 决定活动边界、Right Dock 项目和空间命令。 @@ -579,16 +596,21 @@ TerminalPaneSurface 9. Pane 内不叠加文字终止控件;终止进程/断开连接统一在 Right Dock 的会话管理入口完成。 10. 裁决理由:关闭视图远比终止进程高频,默认确认会训练用户盲点头并误杀长任务;终端进程的生命周期与视图解耦后,Detach 可随时从 dock 找回或重新拖入,破坏性动作集中在会话管理入口。 -## 16. Right Dock 与文件树边界 +## 16. File Tree Surface 与 Right Dock 边界 -首期文件树明确不进入 PaneTree: +File Tree 已从 Right Dock 专用面板解耦为共享 Surface,并进入 PaneTree: - Right Dock 保留 File、Git、SSH/Connection、Tunnel、Background Tasks。 -- 文件按钮默认打开 File Tab,并可折叠 Dock。 +- File Tab 支持拖出或通过菜单在分屏中打开,使用 `fileTree:${projectPathKey}` + 作为稳定身份。 - File Tree 展开、选择、滚动状态按 `projectPathKey` 分桶。 - Right Dock 可调宽;Canvas 狭窄时 Overlay 打开,不永久压缩全部 Pane。 -- 中央 Pane 不复用 Right Dock 单一 File Tree UI State。 -- 后续 Folder Pane 需重新评审数据层、权限和多实例状态,不能直接搬 DOM。 +- 同一项目只挂一个交互式 File Tree 视图;Surface 在 Workbench 时,Right Dock + 隐藏对应标签、内容和新建入口,避免重复数据请求、workspace activity 订阅和 + 状态竞争;关闭 Pane 释放租约后,Dock 直接复用项目级状态恢复树。 +- `FileTreeSurface` 通过显式 project/state/client/action props 挂载,不依赖 + `RightDockContext`;Right Dock 与 Pane Host 只是不同适配层。 +- 文件树 Surface 关闭只关闭视图,不修改项目、会话或文件。 运行终端列表是 Detach 后的找回入口,必须保留;持有 Workbench Lease 的 Session 从 dock 的终端 tab 中整体隐藏(终端在任一时刻只出现在一个宿主里),Pane Detach 释放租约后自动回归 dock。SSH overlay 的 shell tab 保持「占位 + 聚焦 Pane」互斥(overlay 是 SSH 连接管理入口,tab 需持续可见)。 @@ -597,6 +619,7 @@ TerminalPaneSurface | Surface | 主关闭动作 | 运行对象结果 | |---|---|---| | Conversation | 关闭视图 | 不删除历史;运行/队列按后台策略继续 | +| File Tree | 关闭视图并回到 Right Dock 入口 | 不修改项目或文件;项目级 UI 状态保留 | | 运行 Local Terminal | Detach 视图并回 Right Dock | 进程树继续运行,Session 保留,可再次拖入 | | 已退出 Local Terminal | 关闭视图 | 保留历史按现有策略清理 | | 已连接 SSH Terminal | Detach 视图并回 Right Dock | 连接保持,Session 保留,可再次拖入 | diff --git a/docs/images/issue-661-file-tree-workbench.png b/docs/images/issue-661-file-tree-workbench.png new file mode 100644 index 0000000000000000000000000000000000000000..45c1e508715f103358162989495bfa3c2996f666 GIT binary patch literal 523879 zcmeFZcT`jP+BWQ98+05CDoRxm5J3=;-W&@^S9(W5K}tXfJ%kK4q>J>fB1EJKflxvc z9VyZhdLV&B6Ctz&10)bak}uA4p7+r?-#PCrpTFL<4r?Vl+3f86_Fb?0y6>HYYnH}) zc8TrUvSrI2ldG4lw`}<}bjudu!k>2t_V{{zk`!!y0$Lki+){&)m=nB-yzOY>ZDFzH zwBYs6Tekfqwq^U*Lj(_lpTz&qYonh|ZQ1(gexWT};(fPl`^Pbsg6-G8CxXY<&-~YR z>$9K!akOCHGok-J`q$8BTmSpDaN*aFRs96LAlL}sz3K$qvgNSs*T+vL)+fJg*>Yiv z$>rZ{BY#?)5-z-D7j^1OZEJK9*yom{#+Ba&em-G#AV>Z;C);Z$RCkCDGUL-#|!>n^#c6qYkms>ax!N_ep-5$UU2lcA4K_YXSba$756?ESGW6Wxj5oeXzn}C zEuFR=*3}<9q2sobNvT(Y#FDdKY3_0VEa$Siq4{p`$`77yOI+~2C+ph3zRI|1Dh$r} zWGBW|iv}A9`JDXWqK5V0_Xk-0=P2>9%r8yiPa=j7xc5$N104O~B5Be4CzE2t(HOn# zjBQ#{uPKJq%it-wd0+}((R2Hcp0)h-+shW^g|D#ccBGwN#GGwysv>l_Fl)rW5jr*n zcysu~j}~?p3bwIqpH3G$H(3M>dx>>Ni>!qa-D>;k&OT&Q(77L7@Xw1ha(Z~@R8b= zU3D1UF~${WIL5Bfp(XYAc7)C;%E*ZF!XQQsAABV>yzhFURo)MOM~2%oNt5)_BCiID zUq3Gorymws4W&T$NLZwcCD=~2ym zRmAX%@M>R&oEw@b6}BVTSSPlPlH@GoR;gwGzqk~q8%o_7GLpJPMq};!tGG(ZTH=KZ z*6v$#RW;H&!d`m0qy(wgG&2X26;gw2rT&-7X%tvivsQkTi{!AMD+-t1Nu>;dmAsNx zP6dfRam4YO{(opIcejjc`+H;zrdAdi z>x(>jfnI??yyM?EL^lu*X;mb)jh<9-2( z!PV_Aado53cwCIYN~n2bVF`C>QEcOd@t)@J_6Dz1`@ zrTr-BXpLc1qhfh6SP_U5hXN44Z)>YVA2RY9@5%k-*@-~gdp9%vCJPJE z&(bgGiX1f7!QEw0rb^5oxs(BJs2G(eMa(t5Sm?0kZ;v!5tF*qvf zC4;RM@#9L=h)b6{4;LdT1vY@Y;S=MNsH|K)_^5Ugqld8lBqfDcebyTBiEK+OO^+AeWonpgxVoF()p;cVA9vj@uUe;Q>_xnqP zQ0LEyGGXG%C?`lMDjiNG_@7s1YA*D4rJbzNDtB)gWzMIJ8vU@}5B}Vsc(iUbD!)U0 z!3^X-VmQR|22MXpnd#&BFUh3TN*dDU56m0!o~E@2G>?08Q#R%sasG<*s_T$a)_J&- zM=(9Tb1c>FhcnFETlPiP+tE*`3%=Hpb&>){R!q`(Ztj zK5eWthf13S1Wz_7nzi|JWu+7BzAjP5SGsom<=`EUfP5c*-;*Gv9u+Ap%N^rUI5hy$B)U5G_r=$+AEv_N>S0YYIvFCNaxttLdR#_ zT2X?MfwV)LW`5}rwc=@gBrlTQKl!7}_+{7P+{<_ARisnlCuxm!jm%B(^;+a8{Jb%8 z+#5&*H?DcFjC5M|wq9=jz0dKY5Fu;vg7zn(q@Z2Ht$){M_J z0tkG9;J?J2sZPm*Grbc)!-vb>Fzmtk9it2WWq|Xljb4u`sV>ziW;7-~zvI89_WH+z zgVnC&lgI0v0+6U^fNyOh&8xcUoDWj4k_vsdMy&dH>jJvElcp1r*mM={zbVw@H+-sQ zl!b4`M@RpGhkG-spkbyE^bz%+L90 zkZ!bpL^lRkvkp*jydZ1;^z3dxul1RN&3s)Zxr#Vkj{Se3z3R63>zgsVw! z!WGnx=j0TmV7oeNo46 zSJTx(0Y}{Pj8U0h<;Z@R&gnALq5<&OY4CnYaGB|9mT4LBaU5##)5huR^GUX~mm?|; z>a({t|HBAHTyD@O*`qsMxo>+CxX+4H{~a)myS`gV_sjLsx`-)u<#p`MV}GsuZs_c` zJzb~Wn}@ePIy*ixsQN~=_gWP%^K_Pl6Kb?msn*Y{0^LwIsrm+mM%SzQyWsYhg>kuC z_lB+Rt(q7*_U5OEH|dX%_-|Wv>CIk1?|gaPnYH%GSB2oV_-re;o#t^;1@-f?m*a|Z!j>fDu}QHjh?JsmvqcpFj=!XO%l zhBJ$&u2;03+kUINaBk*@%jhj}2?}?OjE%dFN+N-tflGyH;Q@r@mYveBVL;X^E( z{2L51*kD8x)V-fj((I0MntzQ$nbDp4B?y(51Qp82g8x|dnmU4t9ar*pUNxBw;NA{o zTG)s?d|lwQV1d*%Pl#VHAwmILpc(Xz+`&Qnbym^+O|yoyeV--$)hz#h?Jrk*A^bd5 z8;o?r^?5WeRYt=k>I38vpR)lZHvkAV=V|E-a6v{(dDN-|RYufGI;a@A$Q^qQ`~onxdj`bkJiT0i5Ek}fls*x|5L?tFZ5q5}^ zG<`4ww<0i3Vll~|V}ta1ckjMs{&jlGY11rd*$&aaMz?irio*;nssDEutswYVB1|1^z1bz3c*zSf6qtl)0 zr=fPss7<1&i&Oy#ad@$jUlPu=RZe&nsu>%q|GzM~L)&(o-a0ikU1K(*9NAvt&6&fa zpn6oLsif(cUICt5*MmE0moyQP0?F|kf-(kLRtl;{H80b|E8)aD#nHi0F0oc#DH zo;j#LgSeCDLs6~f>g9nV77t#o*aL-5I;#0$H z$ufxDZ*~5rw2pYh^{iV4g$oT|JjU<&)G%IU@m|iLcHyBF@Fl6%S0%NjDBs#cK-JaKvG87`)oq{tE|fo5gv{1^g_DF?Skama-ZT;LR}%u7Lu)dWGD`pGyn%dF(+ zruiYLt=!)WCvV#i&(6=MUP;RCEM)JNXWft15z4rBO!hK%u~1S~jicb|FYPM1MuK<* zOtqE`y#Ai{wy}8D1Y1z!!gBO(Q{F2EVOZHA!<|n@oIZC`O#vxAjbQe=XAE(sSorF! z1i$IG=#{ccmce-I3c68sbYrN@Ow{(pCVde$f&?~;{Y}S~tGQrYA#+&SSz`BLgA*@g zI6Agv2M8NYSNQPi2`flIFMSS*CZBwlz&RaVpP+nAIja-~tK6`mD;aBN^%jk8o7V=4 zwr{P3NLMa-9NL-{mw-BiHU2JClfWC_+9|s5J}ZgKei}u1v&Q4mVY)hsR=qp_9^a7LBP8h*V%<^+ zJgco>W;#E+_!wjD^UEz#!`xMqI7;N6Uu*>z*-C)-z>kb;?BhBu-&Fr}*WW%TR7;3$ z8XCcDCvqf@=p)r$Q#1hhed1%aX}q{0BQQy%DX>q#M5}hvQ4(K5GWzH5>G*Mg(AKh^Veh~*B}H7#_i5fqV`ekv z{M&EbL5!pRUe+GOF@bO8%)fW*h>A}tvgS@JG!~=-N7h>OTo~K7uyl3f`DE*r;tjLuc}XMCC{ z9#X+Cd%#DDD`%**D19`Q#@25X?TvDUvGmFZo9#PifaVpPP>WfK?xgWlO$!6#SS(Iu zY$c@Cp%>}qhQ)53`de8-@SP#X#>|(!s0mo9-cMGaB``Yrz-U&evkyK=@r6w9o`R;k zCf?^1H+I51-tRTcto!BJ@e4OD{``xr;eTmm4wi2KQ~u5`a-)T&iO&lgp6fLRFOhZlsbPjCyVq{b@Np#8Wwj(+mut;he*`F;|zx%$lYH1foB`60M%pPOQ~&DBb#XTVLr zj`UquXD6MMAY18^t)=#hD%la2&#O#(2@r#AUG>N?Y&M}EI%M{ZkNwN_-&huYIjjWo z!K4-!7k96H*;A}Vlco7OmyG01KRDxD?+_ZA={a1!=W8h3;hZnLZ#+Zb1OjvUQ^?EO zYo9A`0=^Y>a>)fBY*l7K_VQ?=wmq4*eKz|bzLDyRU5d)MW2-%c$TJ_ zs@&I1?NFIw0=@(&nv%qx-l6!n2&LRzLP#*I-1eLgFW)vp2Zpr3Rl3rXqkxC)n$S17 z8*@E3NZaHdUf>iN+1K|HG+YryBr4y$cVYJnHZasGGcdp(s_*mr)!2d?!CuxG2Rv zZ?J8>Lp7>Jz>6XEcP)s`TdIXf2*O6(>0 zb)BzF^EQXEQ`8fwf^R*{Vw(=9N5L3y z%BT98W$7}@Q#+`4sUoPk@(AIT-lW9vYmbZ6Sr2-2(3`e1Xy}BXRB*4=JLpo8nI^^c zI{K|W{cG)e3i3{vG48x+h&jjtRBY)WNQq$xF896<*8++pD8_Z4dIGUu!P0L{-uL+q zf5y!S6=h-cjL%?in{Bn$uEk}q@ItK|RBIe-&p=x%uf)w|59FZ}{G!Afah)kI-GeZm zE~O#HEv`IDy3)z)Z!h#;DgEu`!?SdHLTU(O;hYHDw~H6xTkDG*o|`|l2ZhQ?e1Mr- zZ6z#xKJ>w`lI??&k61=!7Z-ke;yv4SPAeE!=NdY0Zg(pUF>tFh3=&^J4i={1yIP44 zBs^k%ll#1t{yhFPN?0sw#kg0{c&R`;xez^)75Z~kWjMnzS=^QGznL4n<5I1)dxn)- zRFUq!Sl^|uQQllCuIF=_I zh&X-O0gu4^O8dTG0rlBcjmusu*ROZq0(#C6LJOiZXxNVNd4xA_iem3dRZzta4MliVUj-~bkCzqpX z`b*fQM((`Kz9$1MG8N~1{8u|)WBj5z%O^P>FR-w?-zOL3y8^|q^qBJBCuLX^k#e8FNqESX^csd1RA zEaW8QQd~K9vZVU;^}aC0WkEm8Yo3Yo@1;PwU>zWjKFh%!Q1XcAGjCng)-^#`6!AUHa8P>sQzC3${khuuH${ zywM@ErX%Qj_0|ap`UYSUwV7H(=yDWKL#8p(f034tD@}{NSQs{QG{7SN(A#lfdyWWU+rGpUCv?Hg_K&MKq#L)PFxm;=Ai`Ugu7@%8Li#y)#6|= z2`)h#=Ht#?--Z33gfg6;p6?Ps@t~s7 z5mP$fsGiv0)i6}jmAPT28gUMJ3f40n8RFxh7s!32RRy$>z}qCSr|I)V=|$3kCV+BB zH6fbPnWsj64RG;tgDgO++ zHi>r>kCArOX9hQU%f30512Xt)uVil>`rn&vRCiRg(}CEkh_s%5%2dHRumkZ zxWh|_*OHo5m0M?rB6~g1$BD}`n(YOo4OY5koz3P?9GY~O{#*j1(gmWvI*E;9%>}>Z z?QEAfU{~CAWo_LIt0n`bg6Si%rsOk z6{er1!3|dhLrs|Bf(lj-VHrd$neTwNxd-$LnG%L~t=tq@F+d}9F_VSd6Ls~+Q|F3B zCDXLdnwsTYRxq3FtJQY8$yXX&saUH{jvG~^Y*dSrmrbo)@xzjP11Fxw)5bV$PSaYH zaRMdJ>ao^_>VyYmvBy2LcyWJ^u9VEQF&%WbJwww6JuuZO7ubB;B8JsEI`8a8%rGk0RY{?7K;sjl{+km7#r_02WO1_L@V#G`6rv*59dROj1G zD}SB#TU#eI1PR3KplTJXE=C5gN^TYs9)a-DJeZjZa+>g#`CW0V6o*!`Eb>YA2C zcAL2$Ow(C?GB3twl!&&|A|_QwYR@vZ&0u;_um*wo=)1k9niNzNdMK2S=QK5Oc)9QQ zR$4~2e@Y9~3G?M76wZy{`J6ib*XmM(Zl?%~t4)dM7<2x3scAt|AA{2XW;t zBK6s?!WdNfn#7FaT&}!Hk1l{k#~#qLG4EN?W92@Umy!zJyxG(Rg*0o`Y&cQ4sa@e3 z(i4)3mTkJ^+=q2{XKcvNLQJ!&A!XaJWnd=_KNf6rys>WMaRHh5o}LPk@;4(K2-%Wv&<`+fp>p=`-@e5_a*=2VVPNaw-ikVn@KbM69_lqk&MZy{`g4Vm z>z^8B^0`w>+J;0PT(fJx@hwOh>TZ9Lnr1O*<|w0h4OKg!Q%~MhdKX6Alr*Vf8hM0F zV)grUevBui&V`zn6b=Oq~ zgFm8VqU$r)C)n*>UEL8xkzP7V|8PWTC)Gc;PUnTN@xD!{Jn<-%Ytk+QbM3O0(|e)F z$;_;m=*h5r>85XF>;!y_Oy=t7J#??Jkr2c&X(NTI@`l z%99SRyvAl4%cH4J4TjLPG+c?QyVFgc7ZZhig4Ow5VU@7Ir)qbgYryOy=E52+irX5HAgcCwn9T3tRhxJ*E$|C_ZlZkF8NRQ9I7K3 zfVv8uU}O%7J)_)f(HD&{$s)-q@K9gOx~A zQJ)L5ADwY-KBbJ91zLDPKx~GQPOr64iGngqrWlR_9%xy+L&pcoAGE* z(c~$)uWe}V=_vn06V1qSL~g`sZOqEIn^-~c*E|eZfFKBP^6q;p@_Rm>H+(Vvu+3j& zDsuH02jJZE(iFY;n)}e1xBHEt_2_~OeoqTL@AaqvXv#F3on(Z}1T{;Z(ajNKiV~8h zi;VZ87z>SMs+TA|gLy@}oi-&#ew_d^GyB-t#nwvTRZ8i32>q4xN!fb_(Zt2bUX`HK zaaXCeml(kjGiox~iy8VMxL4AM{GT^o8DD8@$jJC8;+mOT3j8Y;qn{($05ht4uUXabgkl#^~OvA+cI<({X_ zrUB>D2drM$*A(G90OY1){oulk@;<;K^=y#)-aSAGDpK$f7{*a3g8Lx-qx4}mQ;dSpB)}h`g zNUNrxwtKXIrIc^FUG(ARXd!=lgm{!xf%B+6;~~$?+F`mCEUCM!yMoe>g*XRUF>hh& zkF^tfvM_wY7lznzWf1xMs&?u+K4y1aqBQyPYC=c5DhPa|5sQkxe<;!^37e2+46 zccI0jsd**Y8$@5DdvU$L(S8kpbetEgys5@Wb9gy1@h5#cB z*FTLivQ!}IIz7{p{ytDNZ!H3aC`A>RIdDI6(qoqwo;Uha+H%@XDI*un(k*uYLi>w! zHH*1bHk2Inrd=VY{+*${s|wt9{&56yh30f``Xj#+C1(b=z_}-_CHm-5=0=yHhMX3q zx$rN#&*P<{@951XblDPAHv4=k*EUN+pZYLbmkUUV(lPvbzu^cp_zIJU$01c?c`F|6 ze>~hxAtxD%2Z0E>Dpw(Q1EUR%=cJNHnfJ{QZT0hpqf`{cD2d1EK3lDBy9{6j@6P)`OW+XZq6&F3yb zzbFF$FLnoX^WJbHYBq>((zN$&Wi0xXh>4F?2OUAgzJK%x>@~N(v}oI#Il%7oDV#k2 zd}VdmGKF44U-!&@hF^^4Ibl;Msr|h1m~g;&GbN9|i7oN4Sl*0ZLmDb`$)fS)TAx2& zB9pNmM?~FXd^daJ4bF|Y*FLc%O|~(g=Zgo;<1ne^Eq+l%7u8^x zyNhz>Mq*tB(%nUhwCEn>iiCRu&3jODPY1N|qVh;#qv%obVZoHc(nt>XP(A7tZRGqA zlOP3|nK=_YRM_zqq5w*C`=f?l+XZ{G97w#_gl)769qHoz>?qv8Y3Y{ zdfYw-ls0iBxbF|G@*pP{szpYbcCFz|ar4?(N*yku2T($K@I8?F3(fMCH+;J;{PGqC zR?NQ_IXQS=o=}#hQ6;X|A1LTZ4H5|Akj)YPAt1FcCCPxF=Vwh_*Y9u7XIliVR|F+BNqTyk;k$Nz)+guBUzr^k~xCs_JsEFG9jJkLy?Cn{;9*<$X=gKCRKoTRd>1$*`Y)Hh$vR*{e{N4A*ONHFg+fa?S^Ahl4 ztgcnJ?}c{bfsjfJBWiTNsQVYj{?x+pPgzG^^;eztzT5b;Fpum{c|=&f)A@@gHFIt$ z_nhugQp!QntB$NhT1rn;jDVjOQ2ezUHm^e$H=!ackM%=K?3B9{ru(lOEDi*N?wyZt zmZ=`C@iz+6E@nUYCCmunJsDQ~kG++dGtrw|LDi8?%MZzkdJXjPx5eSh9JYQ9ILYyE z7bk$^FEXi#*5dr2sYpGj_P=Rj$iXk@#%&eP#wfUte5!LR?68C>tdqLZ#czLix>>6m~#f)2`rq;FkJqW=G{$#!ESwU7%k$= zmhz9WND%&d=OI#JN`Y9(iH*dZA_p#+;DMf|)rHe;+>6RTE1SL7b_ZE7N@~>(2N33K zRG)T=@V`7ba^#3!u$pWhkHR5}Oj~O!qgKu81l*H=E8(AziWo@`=Ff8k%BN#2rMVgF zlTbq^i*?Cv9nbG1b0d1!*NQxNSpjMXv5qozEAy+tU!yx`Aj@*`mE&WtTqSIh72t}Z z+X@Gq-X8g_E=$t^nLA=%3%)aFYJB^mY^XsCOz|tnQKo$#q79h+jo^3{D6Ix`*NZZf zMU5G*n>E#0^1F;DrHu{c3U2F>K21#erZkLc2Id-$8P}weLL;*W*trwI*P<+4W-2vJ z@uiw>HtIa^!I$IuptpI>4WHlm?`GasI6fLeF%%{>(s+PTTz?HQKc zms4YF379igRba*KbZ}S@`BWkv)T-dl%*QPa8nfT2=UIAa#_3 z12u~y!#LzdR$U{+#Wj?1+oEKJif)$WQCkVDzk%{SqCvA?gabYL#F1m zTwjlfi`0)U#~_q4=Q>x;jtZPZ?HOs@E0sp7VN?LqJ=L0~3fE;W(R(QMX!o(YyWPzy z1!GtJ8yBJ{>(vJbM{6d;uo-{ua0b4`FE)MH+2G&WxpGV3!+sLa|Lncvk6kmL33wk` z{+GJrTNUS$h30Dc(gm`BUwMl$2j0FDWV7gv9cU1fyA%t8-og~h%0`x>LYXXy}7ZD=*GxBBFg{6e^%W?Zo7I(08tYh&jQGI$B>6P`GC?>UpW z-iqt=l3JNvUlX|H8{xi9&R6nhGW{QY~We`0BV10s#eemMNA8sRQd)6TCFSIqg$9pzlGjh460 zrrj(mc+n8LDWWqh7C*)8?Ym_}KUdBvUBe83I?rD*yFV=ETMc*PR3&g*(|ie`DRTH) zknbcCi-pn4QZ6=p1v+n!Z1>C1hD5(-3IM5_UZ>NZ?|}Ya@Z9S^6TsJKL2E!ND)aqZ zBj0sZ0=}YQWRPQ%ayBWLU>V$DI&Y?`=G~tdV?Hk($RkT+v=lzo8O|yhVXN>r(}M9Z zOktnP^5ULtQXecSt|JrI_2XdY-kgz&`4ad1gRP}W|6C?U&<-(5EV_!Lr0Si+=q`2C zMKZ{{X5WP;d%)ZQ_Vo zubMa$Uaemp90AY%b2_`z_?i1TDmr#{>mVAi2#E@fDITx--rBwok>%wVvgN7yFNF5$ zHS1^qCJyMkxz(wfot|un>Wa8&?;~8efU8bJp-|&(Vg3P*f}~@uB_PuF%DPe^oBWUW z_oh}CXm+6?n}!h!F!z}5G6B2J>DXPLp=7u+x7%~63}lz##b+&%)XRs}ckbAbkxd>$ z{Hp!=W3IN>7hP+nCmp%AcIiFFfD@5!C;pkD^IV zlzD8edeBI*;MT5D|H>jYai@7pNHE}q>q_qwf_5F>GPdc2pw*RD`_tB^$m>BjB5Krm zh`O)kj9lhhf8r`m74mL#Uac%cTNY^fDyQrHzZgdP`hk}hbP`r@P30NW%eA?-Uwe`I zt5u2)HLtRVy9;(o#@zYLeEvJ_;Yg0>kX`c8KpySAJeRh)hN_I#@xgxpE82I8lU6k| zVy!d=9FNKR1>PAbI-r+iQoQGnaL~$cJEabqHI+1jKKU5r$QIP3MNODwV09OgBY7(& zIbd*ACKw#>h2u5HEA_8UD-e`(!C=hZ*e@~+V@T*liH61B=XI81mkc{!s}}pUM)j6Q z4w`wmueI#eUVqZOz9QOrMbtx#iso+(^IGooxFsJL*vpGtZcSNODR-k|V>(SP0etkR ztLuwY^tI|*C(gA(UKPx<mW#rRaE>!(UP*=sJqP2mA(&a|j=!{KzBk?fniUYx5ZBB< zR!uERHgR<{ZbL@|k-t+~f7-V$qytK8hM?j-r%b^-6Srv6F%`8eI$e z*n(nLArQfZcehGn^-Z>0U-YiT<<#5A=a5?TtnX1)Fwud10=m~doM;yRXm9(4&FNlj z5^i%;oDz?7RU0AF|L}$CtFZ_^r02dKj2vnwtx2V1UrEVQ3>6XlJ`JL?8qoOAxD6n*?yov}j+J_(1aSfFWijPOR12ws4_te^>ie-p5JCyoa1N`=>quJ7$` zgj_-Zt67G~qXN8l_W5>$gO)YEEcMI*%$JOYwfx`I^Zi}YFp7?N`i3E z(n(+zQP+T-07;|jul1eEVJ-5swhW{=v4p{zrquS zpaDPymZ0Bgs^*it0JE=GA9AL(1|l>)N%vtBot(7%%5Tb#)hqOMEl^&aj<6t2{5>I6n!^6T46?C~;n&b-_ zuj7#`F76(Jj$Bb7yC$MY+K@MA^%_Wu?J9D5N+q=uh|A?l6)W0|I0)M?cq$B+7Bv-a zb@y)ec@Exze|s{#OEQ=t>(NKtSwMcY06DNzD)I&*=bZF+=4u`i=ar^=obVf^t<0+= zbaUX>r0M6KMZ2<^S;h`aBj-9!YunN)3M%x26ti6>cvmSddBCC0tFr+t-%0lEep0e- zlO+THwKxB@Av^T0w=)cy6_CE(ivqI9sXu zNw}z@5I>Z4z(Dj&O)}^rwYrHY2H|Emb$B3IqjgILAO~FW9sXig(F~``r|19{WBDeg zeaQGS|1EsIkBZvI-w2XUvMA8}RiAE0;L8rEn;+wG?GW$` zEcpE%5z1#027_6TU)uyT^GF-;2-^&8o9X+~?50ISK3xiL=ANq!jN!kHMWuc}P-U+7 z=d6&RzccI{`^L*kOLfQ!CTQ%T#lDgW-p7aQYDZu8+f&M`ZWatt%d4zPQx0Y5if1Kx zxg;obTIDXMOmr7+t#mNz(h~5A0#(#S*|@M`DQ+vCHx}}P4W9vT_+NIebi=ig`V!O& zAR?-Q`yJA&RhKm9TACUb2K)c~5tFcOei=Fo5AOUW>VD^31GXPuW>}?&@MgP%r!`Sx z4*ZXx(aZh(wZXkzjW}1yozfd09G}YGDf`;`3GM=*Q%k0rWhUky7;aLu=8i%;MoH+? zHEo{rCF5+`lDl2w7wqc3+1XP|4TB+3T@IfTrw`hSBZl8<*z-8Lq?A?Q+xo31itcHL z+U@XUyG87=i-`E709iE-?##m`QeZaP86ASUpKRvAcHX4Q8ys4@1qF^F#%{^y3jh*d z0Tn6eJEjE105(4*bU8r2HiBY!yK_3HJ<#Vg0-ZgAW&?c-3?tmb#peGIR6MaKht#GW zOsgyeZLFZeyMJVOdS%ZVl-6n%vqt2*va4Ol#fv8${yJ6nCgVa6NSyw;-$=ECRU~KU ztMrD_1unKlkHoYDlM)Xh0=4`n;9>r4E0RHJ6KXrrE7_JZ$W=l4 z(aPM5OTqo+HYbN;MK9S4F0gISo;TFEtwk?pq)O{#t>7ymM{qo>I%3D3#{Yt)wgo32 z>g80kME6(dH>%HD5qiC>Cq{R~F-*h!-~%w_Y3Q7@+S~`-!{KiqfxL2`|ph0HlZUm z??UgZBJ&Ubd}iO!hjLMk+Zh4lBNh|4US;f_J%XUqqjqW_h_4B)P&CVjs?*s;Q z_mxSWlha|HU!0%8PBbn#s%T~DkfMBwy!&#W!!YhjP28m${lXAsm+&_#=~9ccGhjpZ z1XkoXjHZ1UALtKVo^}Z2=f|#>mfRV6wIA;Qubp}b;U(#20%qd<5aF~zj^XP5tSp+L zEv|uUrO&K_2M}LZ6X5djh{H3X;YO6};LkE8w(#vbZpt|t0pqWhdzKqk>h67it!E>* zwH|n@#~7KBNE4ZHijoSv&CXE~%&i6yOjJWO&!#GY4qtFfJef`~zO& z7J}La13Aw%7V$7MOlc*6DF)rxwdbd8`z~zx_9^xG?<;araRVBfzhCeXf1*(dAh7`m zVmSyu|7q1i_f2iJt@FULRh(W5sqVVku8`@|eM{-bI~6M%$1rn+h@n{FTBwVin=K^f z`DIFcjxYYaF34!F+i|68(#!UiBLCIUq>)FqU;a2^x5uOO(C~8O2bXb~9LN0?nHsew zg@l$J|GcEXtnkmb8#QmyQmuxnTF~eVJ~u7ppGCdv$dTKq_CR!=-l^oTd7SE)!^O@O z==mTlxwr1yWMOF`F0qHg2j=hO6Yl$bw*6Az8r<6X^qT1&|bs0#2#hNci+XvYiGQ|w&j)H zY`MMRntDDo6QDnI4f;@fZ6d90it*}mA)+ZClC@nK7=Lx5x6yMo!B}G6{DF3aa*mYb zi}n_f|Hnd6fd-G<5URU&QoS_5!`rU~df2%H#%zq9-z?nut#fa2Fuq++VE=uSrw9Hit#svOg{8Ox90YN(oz z7AGA}TVsDKdAY+54R77+>1T)=DSoH(9ySxguf4SP^mPBS+jXK9u{q>r0-^x_*hI7%ZQAFrpbE;|fQaOPDz%I5*Dmxv34`%vWW?vyT zS%JgF{(Fp3tg^$1^RAx2x+E!=2hVC5MV%g}gQbdy?xU-KWIPtmhM9_;pELTS4W1zh z)@vhUFyK3oDNcMB(h!N3y2#@qHe59SM}C&JhCnPZJWcZl8?Kq3@fuE***#C zIsgbxth1+)BU{6;&3a^9F|OCgU{Mfs=Tt0ei*m$S9XxKmuZXR<{XFo)jEIdYd{?nV z5q=}waw7r;*Wg&m+aCKonypG3CIaD0-l5?XuCr%ULXaCG%;3Gh_AVg&40qJc|uUbVF!=p}5B)na%9hL`)z7x!~c z1Jc7Io?N>=0W<;YU5^g=b-V^787EGq9EJRuPX6aN2U5ajisZQCDhONhDg-|uYl#J! zuffmWS(-9r+c3vOy_DZRJl^)42p2m@CGy(Opvem^!F{a~N+$H3XEyDlC`a;Fny`H2 zgA2MCCw)XUx;GAE;R$41dg^NSZxDd-*q6b0BlrG%7B?0XOb;^*nWW>n)5Oau5n$1r zD?_??Ug&hs)@;sYIgq*TrWLwG{H*G!od%^3HwsMYR983TeGfPN4i5hK>YHx$sRot~ zG`!@kvuQW`4>>>k6l{2t!5yl7M0V%F&IDQeVDSFQO}4(3o=w9KpiS+&%uF5$`d1#F z#Z;`8oA!m1_kHJr0`K#DJkGK3UdSN3MvfGq44k65**BI_o67i?Uh8*gN*v+p>&sKC zPQfvI_iM;|7%Xa0ke>H!(O<7@AyL;dimjtNFz2rrP3rh%-dxbuD?o9zITvJ znl~3-GG=Yb?=#+GPOXsuvDiBV=odWG+2R!xR3==85tQW51j?|@)Qdny@^=i}P0Bjx z<~eI0lc)Xi0~yPJvm}s)&aRFhFZ^)d@4nt-y28$6&meRaX#^3cs-&wBPuM`mC4#{w zX;M7BrngNI7k6#WVuV+SPhYCnfs7QQk{cgA$rKE1mi+?{ECQQZmevkN+-cBbV2`?nj{tLPbmw#rU zKmBc2Fwpt8?5F1PvW$DPR3k}Qf+Nin`)i|_uKJ#& z`}AYR))%#buo&>tQn$;~N*&;0gyQY-5{KZ-l2^w``W#<)HA6>a@98HBk+c(m5-0xe zSy30O`b6a#z(yQx87cliZl4{=c?mRXd;g&ib>*KY*Wa`GX5VcR)hKuJ3&GN^MF_WR zR%*zJ3r?Vdy@dV;OC=5{2~zHv)t)a;@0-1K1??=lSY0;x)iSzCgT~p!4rzz{&)gs* zmZidtmWQ3s2ZF7>=UAZ0FEg@I=#Sp$!m{ySoy!S&so39&<9r?INtORV#Shc_@2{6{ z23m9F<{piIiaaI+YEN(nL1Nw1LAA~R#-xAzbz-PC00rhm15PW4-%z+k6M?BTS(*m7D9;%dlWST zi6}Dcr~XR}{hiJR29t}O{c?1~@VU?+i}#HM?V=PJZh8bPF?2^hiqh8JcG*r|vTfdm zb=9rKT!Z30ZmdGp!pEa4A&I?lng#I!uy*-g>o83)}39}=Xm`~f-tLI;~PXq|)JAzLT=ZmNflJb=(|d)B-9 zOm5fKzkcxnJy{o+tyd`i;>K$wnut#{QHq5@)_VOP;q6&UL*}MNYctKrKz=35K)Gp} zn_tF6Hz=}x@Xj|ThzLY>aALLpx6OK2{4ARoJ%s{orEOw);IDnx*4!)?v~g|*=uSwF z;UOC_i&bj6x-1Ga9zt39wHb}oF z0~#AcRKC}aZ)$Vl-HRPdRi(zJp|Slyp#zijh`N#DCel<{?J1XqjX&Q1gD(6}Uq2L+ zzX_Hk_Xw54XvoPpUm|>nNfXxnL2Q4jzJGc_to%$(l|18~9u<)-ieqqUjhZq;d#0D) z)BWGr{pYOt;g&wivjPs2a@Yd-i*Ebx7iQDLWRF`#=P&+!4EXt!iGKGc8vNXUQYKl> zs%j;AS&lFh^C~9z??+jGB8h0Z7m?^+X50^+l0YWoumqRm43FvP+y8i6Z^ajdhP`6o zLoOl+swgP^QwDs4%@00A>#W1HY5ZtBe_K4ila^cp=|wkiQh42{~t#E-Xx6ah)JIXhs3x1`ycad zlA1V}v}p7{Hs)_8Q_DqkC0*KX5C0B_|H=pdYcRGM+>{y9UlkQkR81#76}-OXgsw+S z_627=t#h#dx#|A#VawuYIo$SB?^ykxP%iN;5x+&j_i%=z z@>AlO1FN7e}TZPz?~{h4m2e>`rW$yMSMDe_Ma-$$rP8lx-QtT%mP&a=?8vmsgI@$;fZ^wTcy>b5UtG=7M>3Fx-q~x2Q z0>e>7lXCC+>c~8+b#UGTj9guol2|&(ZKTzQEMW`n z90$3p0*rUmj8!U-MRo&!JJkPEoeF$U460~IDWc`17)F$1WQ!cIqF)L=)0aH8>Yg8d z>BY93>*TL4>c0h6759&>H=#29$Dl?m$SDv*E#sFADw7Nht9!eC2OOiL&jXQ(zs9dc zeqIw_8i*|89iRn%O;&4IHK4uB&Y;58P5Y-L{M`$Ij^CVy$Yhhu=3yA?0AsIgp7TUp z{s4V=Elqekt;=J=T!zF}d<=GVZoQkGk$jnWf~ z@21noRyJWAoV$Ha{sl+Lwjt&&6d*+}C5CME7Zo8T)V!t9cq$`~Veh??}quavAZnzZNe%wuUXoOP^oI7T_A~M4Shf4eS7np)2_Byw()P+IjMaGAPBbdLefm`G#rywS zAMsNrI;H7a)*nPA#_)~AP=S&EaQ)k-qj(~T2zS{Vlz#+$=kjlg@30jNjFGd7P{%&a zE!#82!Vm78OX)Cwhn@76Ne)!YW3ZBUudwV+D$dl%5(1B3?nw>^3J-r$-p&CM86FYF z>NP^JBlo8Cir*#e(12>Vzu3fya}Uy2&R7k`L-_K_xEWq^E^*cQxl*O)AJ0-RP>SYf z_=+YWEmaBsZ*55~{THG`v~napcmKQCCpwup^(@7nkne*_ncKubsds|>!cSTyn1~%v zkoK1isEBLJ_8B(J18$Wp_6>W8=gxv&Dy|KNy-LD;Hn)okiZsWHAQCPe`kkAHaS-5# z4!TV#Tu_9t*{T~U_u$y*)4b4e3EbF69a`+PCfFpS{_}0FZkuLRwkDf62?z&--|&jz z7&71CmBf&QgY;@|g2&v0#l=N-O|7D*eo^xe{|!okGB=5HrJ6V&`hB>`WI>#!5`Ajd z_c5&>af`MUYxSke-y7J!1S%H#O}w}K$r6Yw+Cc*n*(>(aquyA*jv34C#0BrFv>5OQ z6#Xv2&u6iB(`GJGf4f#X9DQ0(x6Z`xpJ~Y@r5~HyqxrEw%?0*F+-+6G!EnF)!4PdH zJ4GNFCGVoa1u zR`5-MSysDE^E(P5^XAvC*Xis=^%DvTGF2oKqzg6)4dMF2$ZFmX&J&RQPWsmdLuwSR zpbre-TPume`f;o0aCjBp!!D zi^^GbmH$gEkFto=5j;n3d|$D0e*R5d-7#6;BMaf)Hx^9^xBaC1YB%*8pUT!=3+lVZ zgub95t_`*x5CCH}AqKvO!kr&)=EbhKJ%cz_DW_EnxlWuH4hc4}i@OU_7gG)#V=HjP zDgvAgvRu|*x#o4FY8!-KLsR)-gY*&l9|Y;_iYDk|I2`Zyev}2S&+}+HPWlhUvS2#leJX}p zP473LV(9uwyWi0sq;aKK>)FJ=MXNfS74%J6g3Z}rUXR^g=#33%26XzJq(djGveZf9-qT>uZ3F;q z?a?0gvTJe}N$jvqTO@q}sL;4dreY%fx|-C=!%1%}87g-(q*uK^n2Ml`e{zuPz^cM| zTPbSr??TlJA7}OSu`1#k-><~uAuW#f zst8(6ygpC-VJ$Z{y)E9V2#3zuzN!XDc?aD+ZxpWgNRZ|=`?cu&qFdQw0HH4J+}bw<1!u2q(%Rl{zG|U6xLOmH zLmomzrK>`8(FM0?G!+ycW#r~Q6h^)aGNPq@UXWR8^7fHlsV$_WnpBE=P(MymA;jFO z;29qMnj`HTr5}3O;i!*HmMbRYS(Z+L+fAW>n_3u1fMb}JzW3Oje`&Ha>p#sw1Dkn> zL^TtxJHI(>cK~u->rd7N4pRplhlmt1ap29y@t^9 zKvmcTePwVf-Lr{Gm^Pz`y{@@xMLjsO9al*X;g>97CI%^AHpe=Lcv4#HE@nRnY2Z{}W*SYt8%N>V-PFQ`HX2eMyh^ zOO5+DQTMG01&Q@YP`On*xM8o8f`fx8(*>2wjt=s}sIumED4adn*@KT)$Xee*ek86w zuyJU%;lv$hk#7Jv`+RsAIpn^@(YbAW8CNfT*%OEh!19V#$7X@;#MdX|k;h|RovgCT zX&n*o-^LbS)-@_R5&$$-s0`JK7?AdTc;0@n7#|nMeHsYOMT%jutKGlmSE7TP?+Oo& zcu3Hu_ZF|E#$UA%V$e`^cdsLO9Udl&xI-1A7|ag!62Kc%us!SuthBV$czWGYuXgv{ zV1}wr$X;&Bba5kLQN6%HnYZDg?D1@jCYH?5*-I)}%&fjGk_EC{>EC*RaVKrikMex! zd-{vnYO^=Qbs!b%-LjnM^|y^R+l8R1@md3z2;&puXWQ@DB?#5}<7FPjB90T;rG6F# zey>SEJmn+7s8XB}-0&ue5LL8Xg{m_B*s20Mx2NW?T3Z9(>kXm^@DYwcna#%%vwT^htn~e? zi(!aby6@o~4kmsLQnW72aZed~ZxU{5E}!1O5B%EVP)j(%YR=<#tsGJ34rKFl5{xs6 zz2A+RXrRwLWdnXS-oJpEj84WAOSZeB?k`nwnASK6DDcsuTP+DP#%@%z^Ude;>;{~O?K&pD#ic@7ELH%TLy)kz< zmO@G36n%>2tli%3ip?8^IEMMLPsQ&7*&pocfBYIqV4GPFkhlD#WY|P)nY3p+O{t#J(t5O_`k5!D0BW$qxo$sXUJ`+UJDzc5L2VfQtWJ$Qz zjI=JVvCTt2$eeY4I0V3R-7w&+ndIob0iDP&Uo1uX!#WcsF-&o^YFe>tGtN)nn)3ZJ zQCI*S8lD7P#&xAJ8H2-vdftfJoY};Vb})# z)85H_n@L|(6s{!|c?KzC_nO6bS%x-&#zTxnFBb|JBxckIb znHF04AkOA+TlX3^HczF$c>QaQuTH$o51BQ6ex@wb#PE(ZCM3wZZx| zn`&{qKZi-8c*q$m4ms$9byRvva^{RMAL=ln_&Q8Oo%x z>(AcV>y|uN4RJq!6%|OFb(vU>bsJvu;6yR@$vYh@!aTTHQ{{|P_ek5PKSV4w=+dw6 z#vsxSKrt)^hmykQv2~tzYrjv-zRO&`VQ?RwWF_5pkFZz$K$iLo=NH|_TYR74rIx=j z08|x{2>YlF>)9lXEukiX(`osUuu#pycFkhRORHE(=;Jag8_W{3!Ol@id{<;g%B;ps zHYNI`F;`A`Gkl(fFs%#JLuByYObnF6t~{KL`|0N|hqmQ1Q$ztl%2VfbdIU19`LbKA z;UtXdPu)MupdHE3iAQ#IrwB65KsBo?RtAgh(IgOMq?ECvuJWx(;<;C&K}GvHj1=Sk z2X)g=C_pm!wX&n*>xk?ViymO=7i3R=0%3lqc4-wxt)f%QY+!^O&yMfT8WR>75In9jV?GtT0gfF?|M!$Jd2wh~8JuJ~Nd@r`H zbc&yU*yJ9dP(#O)Sj<^mZ=`GDQiBwmk1R*na5e}9uyxm%W7JMYaKI5xP7^>Dsd=6% zB-2U1Y1fnD%U$%4E-=T*4_^npH|>PRu!%Gt#HZ{n^7`?QDG*PAGd^k?X-xXlIQv5U z3!g{10&4f(9`ktB^X$RJ@*1Ly=Cs zOWDvsMMvQXqoF1{?6j%g1xETc;UhY>SSlH4A9DX>oOv{YvCaRey%XY-J0}BN<#5C= z-+n$Hu{NF4#tj2(H8GRNudCoTC@2sms5oKlb72P{r-x$KD3x$!eJt-lpNF3j;w?3* zwk?@~reGAdIpqK~A>`ZY%D}Bv0S4)T)$bO2hq5!;SE@_cY$nrm7u^jdj^(;~I0go1 z+u3KjhCtYLWk(rkZ%q;@gAQNYgLg8xg7I8vD1vdKhl<9=s9y-5fufTqgYk78u0a<; zl~ZTjtjHF&t8q^8eb!E2UDf_r&-#y_GQCNDb(!gvM+F(?Jp=+P<83tBQ8z4XYkLE@ zZLe+Y0Pj3l*ZJrhc2|X^7}{M8P5u>1Y4Bx$02~cU%uDqMozQ6j^>hk{>ur{fLp3{% z*^9ff68&!CDxhI3z$V1ZTxFjTJTp-0b2z3zW?eTFAaJ=o%TGkG`_WWQ88ZQ$=9yu)A@^6Ga+XiaAgfpU?b6HFT?+d|gv}!ktblR^~k1aCoOP z)j8Ew9r3W4ve@nbQU&ur!Jat1J7@h#P>FlcJ|Za(>;?qN zY}&Y=DlvT#94)iU^FL|bu)`ivO3c6G6mmSejDJ3vW%`@teboYXnt1ANm`y3h`V-=! z8Sw;*#PqC);(9%QyyhoEr}~^%=tBore28lv)RL?4k;9i^JDMt9_Uhv#^3Ucv&Vs#a z5VJsaJgp%X)oQ>MJJ@J~k}*MW)S>s-f6RgKCNpt~LtLs9_;c-b5h2olVu=T#ku z?20!@mdbes2B!JWbqv;)ZH{Kee7j71pISmWgS15G`%vH3d5Ku5AA2_cUp~Qik2Huk9$I=t z>w`tZ_2!!j{k;ku*WPPr`0e=J?}0FBgyuEi%sG8)PpFc{wPv+h931;=Icm6>k_0_U zpulQg?!F{DGh}2-M)>fM-WefLuSe-#R~(HB8az&79{5yoII@;{mToUFN8d1Z@oO{No=F37}x?d zhQoX0V5oc#a=Yeo`>%bRBsG{cXbY7Ir-w#h3s%I?WhT*A>u&y6b5Yo@Y=(O=4Sk#= zi`jqh#orm#IeB86SW|UOgD3^XhyoYQ*9G|lo1t*s@~=S=ZUcuH*r@;KapnqM4ZUS& z>mt9JChYJ&l=uR0N0pZ%llvj((%W;Wk>c{C^4q)JS^F9FfQiVl>xQX*+tt+OUm znIWBBHbpZlYmFNOvedkXDWK!Eg=afu0AUEfx%W}!IlD_6IzG87X@j=7z6h;6wK%OY z!7-D76H4MPNA;q+X+STF5Dq9*DEq_B5`Sckm0?_u3T$=UwYM#rF$LU>EfZ zwY6P<`5#8p8Qd9&HgM_*7=kV}*(;4qRM>fpFHO|P`@~iT)BfBE+z=v}t%60L<&rWU*aHB>8 zPD4nvFzi0-^tO6+51I#<3uI2bZdH4vB!fq(yjZNG45xI4O38$_<)@!Ezk|g!Y%-DR zNM+ou%Oe+;z4k=@gVRM%B`U3%Pc{4JDtG`VGipOpyDHC2$1srGOv7TW{l_~rzIO0m zeFkKev5Z+(G=Hr*e)owrXJ9qOiRopvoc0DE@Ct7uA!of2uP(9DeMe$_0VQmsBl>HY?< zR>_!{Lq}4?-t;uV5qg?rmG;&EOvhqPyUZj}ewg??jCjZjy5qCFOu}Vm?=LcNNu$!; zxnY?1LVr7I7($ELnD1aq8yMQC6)54AGwysYu&^?NlZsFc>oiV! zeJHD1YP3?f$&-gV(W>FfsU?4&pw4_CSvNcDMeY|asz5tt;L(Sex>VzOI2o>UftJ(Z zaI1RZ{(45zwo12F+e3;C;nA22jzxg4aB`nU@v*GMG3kM#6igX3>egql!TFEDG96R& zT7^MbC-=;(jVp{Cj%t*wlzSR=6W4gg45#{y_i#sdB|XD^U1>?V-dk=2JHg6W70Rcd zFr~mF$3iqKb$>zA`L_ni&My2y7O<~|1hjpX@(LxRDWK%6%u>r3iUa#Iez}$Ghg07wXunH>lR1kWR|`ZeQLqTvWhEntI4T zGnnbr?+#aP@cFEh!A!!O#}%1%Xabsr9;B)?Ce@2@&t>j$Rq!7BUx&uq&X*0pAZ zB`7x@t27{`cyd33el>_sn&2F2+$!`{xE<%wa!B`P!kkt-(4hDFoPhM^);r$aHa8@bL6LnGT*zU8gtCLh zHa*K>NV3jEYxJ-m)oMK-o@+Zi8oL%NSXKER-ajmmV)b#K59z#I)Vi(6PJ9&bJv6_W!o4d~$k2(2ljZoJG8d>{7~J^+On)E&6Tjq!)s z>JyB_K@dLsc;=L>fmMh>BStt5JUc26sbkysi6D>D5P103L!`iL?`V)c7+ZO-+7=@9 znbei4tat08Tduv{Ul;KoUBB6vwB9`4e7?{i55>T^3ZGk&Hy|9N7{tLrchw*n`fLzr zCjY!p_Q!`c@;gJOXB!QCv_})nS8xA9nyaeav7BLBkM+k*n#Em#Yv%2Q+(?jSL#}R( z-t`#`Ytf+awA2Hr#Yh{O#0c1dVG^Tzyib_y$^C57se^oHngdqi52oJV7|wniD+FHC zbC^a*m#m+cipBK+VC4?j$_425&W=`BSe>(8+#PPWy4?X~6wekhrP4@09&ATdigVWN z-w7Ya5d)H3QVFW#!*Vy9!z*fCl{`Gm6^9-!Qh&0=BCzPv^KMSfW;V+%+SfK47BTJ& zg>HryOP7`M^tStRRyT?@Q8GTjnnUi@Pa&>ONzf)h?3&-A4x@v5p+qK>6|QN0h$w%N zbGk6wS?879(9GOFm6E>7r?Q+nYBkS!yh>u|3|qU+`x{9jyx4G4mW}ha=t)*w^&O!D zApYeucjjzHTxuXli4#8=OIzw}zJ~#75(1FArrvMo;A*Jnf!*W94dW}~sU?T%%+PwO z?l)G}a$6!B#fn`)(1v*jQlJY-GA{TXa!UaSytl!GpKTZ(sUXjCpDv#<1hh8`Ob0z% zoRpAXe=BY?yp^a-N#&^3$~scP2pXPy+lc^|LdqV~o*o*^eQgT5_F2H-0<(9X!O*mq ze2L%6{mFyW>zXEDqx6#+CH4AQExtk5NWrk@_(gdcRaWYOcQyQQj;a~rCOKi9K*57- z3hE&)SUO(m*S;i=7O!pE_xam7VYDm1WiPXe7_>SamAYcM-wJU1qVHBPI^=7tOilxa zPyxDyh@CUW$cfJk;CW1(1>nK_zLye~j+kNk1)O9+(;7EE20^A?kgl$QVm(I-pW#m1 zLQ_40Lyh-byq+jlAyVh|gvaq!rxpCCfd1rY&JMaX5F`|VrS7~TaTlj&g|G;~zvf7< zMMqb>*)=Oyp$LoioW^w~d1cy8`|Ia4;%gbI+@$;HORw4$W{7`XWfo9zY@~kXaLLe8 zH4SFAaY#j~s6M>U>OVnJcAv6wU4-;5b6(<(c_x_w4i*F3E!rrs=}KO>OPlKA^$daN z*U~~?qfo8jXgE~^NFVuxa7tdem&@9>SHZ=23W$(_QY=km2d!le2Ic_J?!DXTU*=U$ zB_F$6SMU{@MmpAg&6Dsu%Gs_ws`Cb6DURk#H>`V#bPe~`33J&QWxHvp#(afXq@%|> zMm2nDsuC7FQhM4y4LmGhXkAI4Gp$GQw z=+dbfWn$H9dRmHiVpE89wG#CrLJBkfv^>w&ZXA)-aE%I0bxqHC6ta@QHlu!mZ>Qeu zfY3heCO8G5Wf*h*r?OI#94rPWiERO&AE)>PKeCi}Xb>s#GGv@Kfw!L?idu{(Fp-Cc z3;A~I(MI1WC`|P|EOn(RTeHlP)a7-&he~T$d<}dK7GIH}ppfXnX)o`Nho#adZI8D) zu$r{{n$#GZShNR+Z;Y7^iK80dqx>J9fV$36NhOlINeGI8I-Z>nJOUn_mxR2qDxGvX zF{oNywY4BE)l5O`G;E-GwLJ(sIGOYl@=CvgW*bUM%7XbT6(60OeWO@}OO2~4XM4cR z_N~P1D6^&I0YGP*x7Cmn-3T;Stn$rx-WHiO-q3}3IrKP1y33!kJ{DZQG~KZ{_LG(H zZ%ND~%|)3~t$r$ld;BvRNZNUT$HwrLUK%l<_nG@yFQ5_kcHO)a1y8{g4|y1DGuomy)?995mz3$k0*9dWM zCNaG{-Tj5msC+fm4n{kP?kiH?C50U&jxjOp#Oqabt%QW5`RWD>$E^tg5Yr*Fz|d|t zPYCzJl@ybkjgZ?YsCyfiv%#qy#UqhQD%_&4XKpF)#{*q%YlaF_>rEWFPf=BPl1M1~ zVP|40Z?SYsahxQnJj#Fzl~d2F4|sy9?cLBRl**4RAni=Fi6gh7y$43o)UA($o4cEa z=Hq;Np4SwHTYJ_4Wc|t>@Ke|vwJmi7Ja}E25FOXWQ6zHwm0N*xoa{lCOboe<>HDW;cecjOwMN}AK? zQ2OAT2&aE1_D(qa~vSC_tGXOw2p6PfP5E$BdqMHKx9?cE(GjY(#{Q#k{_di`3fxG{yk#VOtP|mE!$# zXQr5$qv4W_#nLNUwbtw0ott0Fz1ukrs(eC7=xdTCXD=K3Z0Fh6ES9B3Bh%-3`-Iv2 zA0XRpVU-OZdhj}SkJc~t(1XI4B4t%&VA@Av*AZ~hDsJrZX6v{PO0R%6CH<+s`;L{U z{Em`M=PU7TF9G<2CB|_;$sL?8%mXpN)9p3oGJ>v`DKH~7uV_Ci9^cBeP2nii#JD6o z(#r5A;Z0y?46^Hh#~GFD>ZfS2gK9fB+~f5A%@&t&;~IdI1JIJzn^Oq!Jl--=&op{N z0}=A<^my*{H)w1w<@$9fY3+1HbP> zTQo&)W4_1m?lD=Da)Qab+O}DquUy$a%?cReO4TGp%xxzgZWD+++*w*CCSS{&5uzEyRB|p!KzTD}bS4KL}+fm$=_|ZioZ&v2ZKgxkTg|TmZ}}cuNf&$&*NL( zN&tL!YqUK}r>=Az4stE>lyIb3MQNX~ijMOBmP;l9fo3FC_Fe*sNR`U(HI{B#$a}M% zcC;>ZZgJRd)KxJ@d3eTW&Po9Mz4Z+?1rD+V<17wtn$ikmH>RG?j>Ut#+cEd>?_6H< zS)H7qQ5-H3=KDSLne_qbutI8O8hxG23lz1r$pa0(bo-aX%%R5RO6# z8;YGa4yzoJvhL~+b?~y=5(_)5t-F?n%kJGY7MJPMmJJA-5UB6^)WgsH3ngbMZY?3D z1%Fv8^q%YGXuv3uC*Yo}S8^l)0sTq3u+23)03O-{11xsDAQb^E@v6NP=S;6x#-Hv7 zh)l&_o!>n0e;i_E3~RZwVJlNf5r}MhU&G*NhHNVLf*KO?_ow!Zg>j>a4C=bqUDx~% z$x|@Qla1&l`@78L)o9qe99GTw{fco{d<7JU_l734ACtsday}c9fy9eDLS2`*iO++X zRIB4R4$a0#Lyb>fKfED&`d)cK+Y3ize#>jCm9Hh>Y3^>Xjqvo9z!86Vc<9oH=>@Yg z_nkRjyQykH&G~ifTas_`7$}6NPUa5wzM=yF<{uA>PqNuDD@UcqwfR zYd}Mh-)3Bl0JapY~W|%OU5}VUjH4NPaY!GrMEFzxkZ#Z!gevrX=xJ0p4_P9ul`qfV>5+ z0VL0@CrY7#S|8WH$h=sG+w2c|Z8SFK94%d9L0QxIf(9PISP8n6y z?m;bk(~>Hus5wpW1v?ZxwR|}3s>ywEW0%iE5SjJrd0m^6Zw+3yC$B|jdkm)n%9eQb z-i)UkeB^~4&yY=PREoO|N4FhI)`4}atd3Fw?$^UkR(`%A!t|H?faiwKppF!j-tgMz z=yuSYY1YDk2@>1=cu=W@v0%Ud<30fwN$ilPx^kjmP2+lWg^opEknm@Ji!|9M z>pClKiWKi^pYdDhT`b9hCeyP~RvZ)xE|k_A#{#YaFd=7S6C~F#ZNyF>KvVooHYjLD z9!-0tjfTo|kscB!VrdnC^vUgnENVELN390f(Q>0-ic@1e3$#@&heWhj)<6c6Kv6@! zBJrzZ^`DcnLM#}6b=9xXt_o3Q9(mqXVw+1(nnYgAp*s(B=!UnXsSz8>v5^RX8HEdJ zp=RDlOEz;wTceXkxkO?mY^B6Fd?fVR$lhhD--4j?VG024tEeY1M2$-fI_N`>=(-^B z{CXuGyK;_~W+!%Dx$DQel{!vuWe(O~Sw=^U?N<+dR(9HR;?b%u(i8`&>8^KNH?%J4 zgMwu89{GWqI2t^544iv)05XROS6WlmVq7Uy6gjw<5|d!5V{9F<5VY@1V8E4zh2Tym z2}LuQV$Ft=tRu1IqIL-G+g#+L9ya2QwD2F$bQ)ysa%O59?*luBHsTOTQs z^^@f08=JuPopzVWS)i#;cfm?RbOhbUVxA~=TTM>~q!I@$x>n(1TxFXC zc;ZkbloZesqN5MConz54B)<5quY4}45#}<_LD5df;nA$W9djdKxfz@hM*WmYSIQX6 zHCX*@2UWnA2U>0$81i;NQF9beg1!hg)UMbxl7Aa$F7WXkU(ILc8hdx6jG^EYmlKbxoa_UjUSZI01s}Ffh z7N1Pl$v1OL#(@sS84h=xtaq8Gb&&63hjxc0aEB8CFyc#1-tu8e>RpWf@*JAw+a$~Z zEmKMt+WC$OUXX74vQ(8S_CEcbudr`E$8%_|fj0>|k*Jcc!%+zKKN>|mpMBRg|F#QT z2~DNnCuN8cSVIf*#3RG%y-%O^Rm%&)5L;0jkG9nPb1~__Tt5rETT4qw?KYItZM_Bqb~_rZ%;G;C{9Ido z^-5kq9rjbK+UnffpI4#_On&@aI zRZPN0sk=Nj8D4={Uuj)DI$fJ2^JE%oAZ&S5)U6uFbE9218fIp~o7)DTM%_C9$okT) zOQL66R2|<1d{K3EB6<0yk6F`^oIArKGRh~T#(dsU-}UVs!v@Eb^rWFq4o>}|(#4J0 zw;r8IAWNAtk>0FH5C5h6Apkq7M4*M}6=RkJ$pwnevLn-z!M7$o4fB5ZCl<);NAdZiyTZSwHaWpAa4JiF~xV{`dTjh6BBo}SCFgl z50Z*xbOiLv->6voC|DW&_Y!*_JV|K04SWq~=+DT1sjZOm)NJ4j`>OAW^piBtf_*7) z71YD=B5P)%;|YyW^FVmabZqgUM3D=uXF6wmqGySa7@j|Q)J31J%}O36++M4)*#1sk z_D!*v_UF>seuUp$6`SZNtaLXMT0Q#f^D;@AX#3G#gJ@Q9{gs3X4%jp6t>XZjQ_h$U z34$|xXYYW0ey$kJdRF||yoz;s*aSO$?gPj2AenUXDMA^vve3poQ4@r#@G>;Ond2gn ztL#<$+$UfCwBW*3`T?*~n~F>GcP}&KCGs>pIPe6jmH8``-jYU?N#wbSX3Xn32nQlh za_W+q9Z97R;ui9?T)P7GVcYYe(yZ*o`Cb($X1r+PyhnlZ6ZM>=!@_u)6zJ|(m6}L% z!<2SRe{-iVU`T{;Pzi4j!@H}kIYPa_{P$6JIwePs5j21`(Kunz{KC>Nh^5_6JmV%; zz16Mmx@&nqi!Yd{QK`FPe}zi_)D|Gp!#-ghrXZPwpwBI)4R`2WnoP@^YdwQhKmgIG;S-6w;vy0 zKS&|Z<==O8aEO{ZH7#nG*o^7bDH=!?wiEW=z2^h!Ws%;?vq~H2T|W&$j6RnRl-Y%+ z5J6G5@o1=br~;e8d+wOngXbWo9nqz0?3G`eJ7lw-N@cLdIHdsq6y$X2EFZ6+)>Jj3 z?-~0aS|p$B+M^c&$ykS-{7+UP&j#*rH9L!PQFsVI2`0TEuH*5o%&&DOhb=E5WNdsLXkh*s)XIV0goxnuB z>}zX&``sr{?RZ9yftE|DnGx^*$KH1aG?i}cj*2pXfJ#&9C`uKO-ir;CE+Is^f)IM| zEg}L+wNRuNX$gc#Zvj*Uq=p)5h=7C|dP@S~#_!zurkt5MGiUCP`(ys?kT>l2U3>Mt z)_R0m;YD`I8Hd~W;%Db2Do@ekK*D|PhJ+O-m~JZeUMg07B;K-u_}Gfy``$`|D9qU9 ziBslH(z*83&I}wVfg8{P(0G|vl9d-8{{DJAO%8Xem_bd^WzSe#`U&s(l@)gWW_kW) zp`f}s+JF-x7QT5KCC*Kk;;-8WTYz3czjOFl!XSw#hP znGA-()@hk}2P1PnuO-2fQpQ}9#)DSwlO-rB6MIq5MqMT&eCk!;(vli}K0_Suk(})Tv&5>i8CELguL#Q>4x{ zpafW`VE%_XMVqwFw|8;G8?5Lx1l&f$t0cEOOt1yS>I?(bcgqy}@8J#m04#(&ld&b$ zTFZPoOBW;g0a(l!zEmSY&I?&Tc>tI@nhR-&2VRsC673Jln~~ZZp=#|0)4Vi+kFk}& zlZ2%KarM;V5%Kh?-@$8Y-y6m_n_ZVyibE8sHH`}apwe&2qw7uUjtA>^H8VZ(&G@8* z^T9x7fHGWf8-z&#fhVMK%EOvl=UpNG%USKWu3S!~ zt>N=p@k(1N3f~;L)ub9aaD(6=#FCgU3Qi}~%$_$jFoRi5=D2G*YUi7}-mW;SrG2Ff zHjbO%@G03aOhvI?!oDp}wF0KjHstRbr7Ic^`*pq$_QEHVZ<-raa4-xmZBFH85GQ7i zq=C{{`zlLE#o0-B&1ZM3RriXEgp6+Me2uDQ8NPx`*V4)FF>FmE8&$-`#xro48rkfo zsk}6)8*|~xI+NyvbFje34~X*zq)AEwX#j148#7zXlC@dT05f>1-iYAQu>58TVdj<| zYX6T@K!wo91orRfL#>&w9n;=&KGXWC&0*4Ck{P>pRbEUpUq56k zKlCxpfwAT8yC>-q(|U!3CwCH{xW#7@A9N*S{J+!~2yGfRxaT+&ca}WVdu|JaQE>1e z0|lN0JA#G=^FrmRDwtcuiHy6ru9MTd(+AdlCMK>6Y`TMZh9U@a|Y=MA{|M_I7?d;`SChJ`mE2R9_Z>2R(R_ zHLX@SJRc=|BUIOskPm5gij-SxoF}0j-m)@yp3pz;~D(i#P3RgXeo)JBVfDt!$PB&J(Gs*A*v|LBCnn(R(=*CcBm3Mmock=^;ck z1BiG&EYf_?J#>}8r1Kdy3!=PuWj~CQ6O!C+(C-p_@bQU=w55AhuFkdYe)%?r8!|Bx z0XjCQryJ&9$**W!O;G1cI4Pi;G7y8idzDJhg)|-MpjqP@ki2JHR-X$Ni&|20!naPLT7+m05m3;w5MR8wYls4 z+SP1Ui+Z2UF8pab%a=3)se@G}DDABaVT3OaJWFp5>$vzngx);a%3zbi`7qCjTt)-v zL29|Dm;xi`_Zc=QegciT-ZqQ{_K?kCi zM6=KuCmC`-J3m>n`6lWk8I5Z01U%$UVz1Myf)*|A0LO;qGWgy(R6X|RK?eu}%^ice zN2+lfMjbpQr09|Ao2fgRF**PcFRpC6B^OJPk z-C4e&3pSZQI0x79UDVI7HP3=6fg6>$x8}kku&3m?+~dBaV}s|F55Kmn(w;Qu;M_x- zim1}dgTZl4yE~>kL$Bke_f1N5-O78GRjhcAn4`2seFTD%$c{ zL$}d$m?-lhw^|5vE1C(@k8$sh9ZLIse&9^BdX1Tb@@Ju!fWygk0P&fzCdQtA&2cftbGB7uy)S4qEUB>gdu zEXQ;bmV^^_H<7)Pkp&Nn*8bdjpesi{SS@#OGfG=ZF}l~G?yh!}W64h46L#FxL3b5&4Gv0+)Sgdp`$4_o6i{hlh;5$aDJiV8Hz(NFgaCO z8BJr~X2t-@xY6g)B7{Q|0-9}1o!`TyFwxMPs{6zxID1ZxEk-@Es>ijL4_Wr%?*0M8 z)=Kkwip=P}n%ep2JfqV{7=BqNzy0&Evh{n$vPYjv7ZzpL8pDo=84Soh2w(Sjt>%NQ zEY-qWfS2X=70108wruG~FOI6OjTV^4J2cv2eO`M=ve?5>2K8RD!xFPP&jy}e=m}%Q z+n%(?Uvu7?#_z?Bfp-`|_TKx!ZE%L67<-jG`;hFhnQP4rjQ6L302}G^nZL=rp|A;E-H9%tQ7qmDi`e&)t@ntr+e zi@ae@^iB1iod|Slw^Qi|!!mnuQfW=cS$L_*ywTd^4ZW?=!TQH;bX?uG#a4(NS3sU^ zBR}U3#Pp^zt^{I%Ms>It{UD{k*F+nh$(t4Gt&Fy0Y4+C(4=x#bfN89ZqaV*%#I>ij zw~ll39d{x}ugBlmx~cn_739N~Zx#rp1Uc%%StS5M@mjGhCW%;QU~8T?r08mxKxmj1 zzpe+qfqVrv7XlTYW>MbCRch!y^0oV8lM1e+bR0_(cX?V`(-;BPxzW1Td3sUc1OcnM;Cu z3=6ko)G-IR=nKV0@cuQ((Hj-Q*VpPK6VtlQ&Mpo-`N3*rEZWpmP*AkLod=TJ@tQHX zY)%u9FUh%38E0NL!%J$ndD4if_o-^;Ec11p4O}aq5~feZ21rWV^Dhz8v^!ZPdaNd(FUZQE;j-mD+b_G(w9+b;kdQ>K0%u?DMsB-N7aGoaE zw%ihz@=~Na6?yYmF{|P*{uzhNz1~lcSd{i&F!T}%4_JDH1Jqmj1@D7SmQDLjod{%+ z0`kD!%(c})!}UG9S9?yJjt6ZeCckl`;2(oL3ZRu2-kN+Pv_WjSkY=iL4okF6y*)4#|W*v8PF+_T)>k&gg#`uX6{OK;UX>H?!0NifAPvVXyKLDO(+{ zC(Ht4pj4?61c~9VK{+%2C>gp|Zn4+A7usPSOT|JJjP92&r#Y6BgYBlw&?>&^L30H# zd*{!E{)lQ{^7WYlHkvVdi9!(N(0 zx|qOzA=}&pPd#p3e`7X6_+cBff6c04f7TH^HId`1w%)xZ9gxsQ`J(1%H6ZgSP`8UYb`@14Jnn&7XoJEcgx{X>FzYo+2wp*oziW*kD+D+8N_Ir?y)$MVa}VWdUrC! z#XVBQ0u4#R-q*mz4#h$`?+1fY-c!ki;Q)hAN6+VLP|v}p#70WFa9!Uucx8VIQgaDb zp6}x?(FlxcpR28M9DzcPKD0}r5BH94p!G~A;5Cy|=+ams3oG+dPGm@-2DiWAm~#1W zm1B~XwH0N(=o}6=HY~xx)fbUC;nMJyzR_gWW2>j83R&@iJFESznJ1+@726cd;XG9% z*4!W9H`kyP^YzDB0QXCeBKHoHOR}mfsY4DQmt+~G`5*OWsba}xMB~u8{e3?QG_BD2 zi!a8P?yvl2+j4doo!>=T`&J+Af z*Zdb87@CSb}*XiF;NxnnDcuvd#YXu?mHh|07`#v+)@hkC!wo zt-b82p8%^yyv7=~IE|O6^p1W$CY|N4ZzK2qf;CZICggIW41>Qk*V-MlIp5_AUhU(N z`$C%9wKB}Br-zKv_98&y8G!;qd>&s=87U$fPDo@vwYETIb%=@ZJ3B58=Ut5|H}n3C zhKUhQ0rB?Kx=U5rEa%`PjPJ%lGRs6@(LiDF?G#W5Kzd@N$O=DjCo*H(8BH+F8C{53 zjf&EXlWP{{)w)M>cXMrw57JXct!IH{{_2im4Bb@0yp24JYhkZn=J5CYAqVohr^~1$UH1L@;WTNMY{Gd;)Ca0 zxXSwdXiZ?F?dus7_Z85*wmjh6S21Psp76)TcYiz`?h7-Eo!Rj&lRgX8!x+sd)EI1Wu&o^FyRZDMkTmKJ(VB2oSX4qC6fCG~Kt(#18FVRiD7-tF*1 zLx<)Iyu4TLF-0==jbSD=C+luyR(TqhTQ_z_>%18xTJ;K^!&QpyN*%P!ZwXRdPNShtl?&pNN36Qs*vQ&o`T@ z+qzuS3+*;6ywZJPF|O=4p;3-O$6=rBLsU5fL#m+;N$_lfw^z?3=B(A5iz3*i6Psze z;)C_VXQp2!mi8}t*tSm0`k~)ol}V|>f!g<_-1-a+y%d-OANmGfZ6-AOv`TF0*D<9f zI)z9?j?IV^y##xf2@10t9sq-xS$y~PhaW~b4Xz3?IqeLmMnRKzU-5px6j;aQ4`#ZB z_v#+odi=TXP8Ma#`^=6m6WL>l=LiT7v;{7YLoJlu8Z>;(=RoSYsGt(J6&_FHhuRuH zFrSXaOHMvLp9Z4V&IrkvTr@r_)^Ccm1Wuq+WnJn93Lv-pMYf~;+&E+b|IxBzYgpP%yODqIGB3_v3Xy*XwVG z`u0gcWvDHSQDG zI!b#yNX$wi@MP|!2>doL{g`X`62mIDt5=V*Yhno5;CpHhJg>br00cw)lS&UdT)olW z*n1wfNxLES`d#D$)qp)L%AQPAQjER;KAv??w1)6XBi09gXgEyGSOjp$RcBZ#UT#*R zpz?9%6vb|Bw{k#+$>}{X8B2wAK-Igj=I0FNQ*0cvu-x(+!2x^a5I()kys?U`zHm14 zA{R`3ikO~!V&X7x1hOMcoKPj_?w@*ylEsFYhKKW$1=k~cldk-@@t@irzg@{)I4-^A zlSZ9;a&CoN3><%pGKosDZ_MCJ{!A;EM`~1J>5yGM#_^*S{buYvj8!5LGwq{4m}V-7 z+6+>>%D$+e)U}&ZZf|gq94HuY3kFqVOF$W}ZjS&9V!X5iorRAkSP4Q%58E~YJQyt4 zX((0o1VL{)S=E?$ZF&EsO0ngrPO0Q>1Nak(UK2mazm6B# zP5~|G+vnfp)xp7Clj@p#^=B3fA+f{4TDb|fAJec6Fm*=Ey&QygvD8F5QK|ikr9kA^ ziIJ(Uhm4Q|kWS6)$% z-FbH|B33qEodYS~^U|Iz2$)eyte(8k(~>Na1+RUjGpEAT?UkzevR|1f?A~41N!|@x z@>&#Wt9cERDS5$2z+tzd3hKD;WtJ50=M`KJr|_6qMs~zROUAM@t~;w8Z(oEQovtw5HzPWUayPZB5M_ z=kg<60H*0bntWW=`NloWsyyJSUNOc(SS7%+sxECM@Qr_KO~N%lr^CA1K?T9Xa#tar zzWe@+EBD66TVW!Trp-t9Syd+FE#;|YU&AYW=>@2X@^#{Z`Bouj^BuTph)Q`VgMEvCBtIHe;Rq~ zW<$KA_lmT9bd@_69Oc`-ocmJNA*lJn&LJF@&X(ppOVkFr-ws8unK;0_R*SIBwj<}9 zKa)OFY0P?0KU?mpGB<1%6XYA7k||v~ooL8vXFer?mw7mb9?#6hmxq)*UI^!Hf{~3| zOqW9@cL{XSUs0+>Pb)NpT{?|-YfD#pqq454m&PyyLhJR(5-?A0S+`SvIGR-#5c)j| zp`wF$I;i3kTCbUoR=W!oT$(D*3W!%QwZ{Z@n3@(hT9yFGNnl_-BuglYQONoI_xb6H zfZn3>4d?P?&+D6cr}(6V=x*IwKHGB2@$0i3&AWGv@(DLSb^0UhP`k0a$)0hCk1kAm zG5albj0J2yR~4Y-J#MoK57{5y7kQAGz&SOwK3?sDEyW(Jh0)8F{Z1t?*RA)KGr*np zlTm4$v~~Vy&V-}v!q#F+cW%*AY(`W=eO4~2$Dplfann^Ok+(m8;h3O-c0$l_2=HK$ z4w~p@TSepAW;r#%@Y3Y9|1Jn>t93W}n0~Py@x&~Pwws_nTY*=K{E0GMd7bC|F_C+_3De1oKwp-A#OHf-i#RQc6^Y3)6e=!gfJB6&qMa zO`-AoN}bnIi`z4o3Rmme-kOSf*pV^?@WQl*+=O{Z{BTz^hJ6ghADLSjQdlWCl7D^d z*p*i5%D_7bGifp2dBv@3M>qR3>V>OO-_sKhj{_1t;6Z%fT^NLCO=eU8iPLmZTz*Mb z0jFc+D#0jSF26%T8*@n31?!>!>=Dvo%kwLy2GIMIS@Hg&t~O``Id3xs?`eA`X}w1t z*6OK_l)eA(6QzZ~b@;0@y{iG9tduCaUz4lzo#ew$%sT`u2>809e}yr1tMW$mqKBVj z)e)w-v!Z4r@U730i|0yLL8=|7l`*SCr8($sRYTLYP={t34+g3BRQ+Q4>V?K;sO?@7 zQGTLazsx5^GYOfaE0~esF?AI<=aMke&2o(~$O&P4Qi>8omM-)vGt2s=2OMo@@p;vE zn7!5L$B?=*#>Wgjw~Oq^&4v{iLsMm4d~~Dm&c-g|P>>~iS3Jo3-tV<(Y705oxVTm?j`r&v1{)Cry>*%yh=Wq4I=-PA zm$9>P9zhMsR|9mW4(mFRs}_Lk-cM#CV-Q){K1aHE$l^U-rL-);Fvz}^^#bNXaIk{Oo( zw%CzB2xYi{?0YJyb7ijH=RMUe%cGSGJ%DLYD>tXW2+k)0k z3n|E0oZvIh)}8N8zy@)(IuZ@%LUNwOPrV)t`d)eIplhhum$A+q*YTBaq0VKs*hKnB z1elb<2x_4;2%MCd7rb(Yi|ehUtvUQd*eRH6bJNmbP5i5KOjZ6}tj=SVw>g?e^Q0Zo z_OlW6g+u9(&q`*=^wC@mJsxa%tRw3Wx^n$3y+YpU!tFZ@S2g z;FUK(vz@vxDgvK8v1mR{?eKL1{KU20e+tUm81RLIJO2vR&Vr+;GWbU3-0*b#1Kk5@ z6G=*lCg5vZO>=}#;)fI-pL*Ny*^bFBW^r8Og9G5uyS;vvo7o9At&PvCT|J?#HkPxL zv8;2u8+WX)p#AAchTw&$uIjj0380GX=ymjZQ{4WNwyrbYcN{4NP;b8pB~~YboHICX=iw&%p_Pu z!-UaQHFso})@!_`jlnrJ|IP<3PZrAC@9(U^nB2TjaM$u4R02}tgMt|62l_0nbh!?E zxjQc;DuY%sma~JoCpq+_gQ{jQps%uenFas1%k4dspE5^zsDVHI>@W1VTkc8SRyA;& zB`Q%^SU1u2Ytc-K4%a?!3RAGJV%z?R_Qn$R2r(gXRTij_5n%sZs|(#=2n4|^tj(@~ zLVr5>`wkXL8Ieb0%5Maza>Eoni%b*WPu>n04B)}i<1e42d-ErZy{&08^LafG83%Co zhVP07YRC&Gzv0(RUVgIdGW^Uw`Hi7t0(AU>)UdL$$pNmyr125=!(N}p9PPND?)!_Y z^zq{~6~xb&E0nB8_IsG`=J%eN<2B29=@?-xj7cM}X7fQnY%d3XwaAt{~U7))sL_C{-E19^eqL&!hgsM+!iXnQO17F z;RzphpNk3YxaUcu5G3ftu>A7v``^Jhb`Y~gMjvg5e zjOra)-o4it5x+~HpS~yz{pKru;mcS7c-5t|tN0*$8;J`3oVp^!d4NepP*acv;O!tD zy)HiMMX7Ji*%mctxn|${n8pj|g2_!L@4rEZXujEcgcZa6N>Bdp)7Rw>O_lfGELAO1 zgK9Lzwr;Zd>lO~qn@!xyem9i!(EzNNc?|H!BX#~obT_AO6N!5evz*RC9wzxRg9C$J ztF6h!*!6oRqz#GS>PI=6T2aiW->|3K9&OW!p-W6%Kt?ETTH*;>^}F&DHA}9HN1BQ? z&Z~0VW;DML=%2Mcyr((4UZNsktoln#(O>3U{`YWa)V`elRtgw_S-+FK9OVNw9dX*> zQ8H|#rXOH)99hCAAK3_ba0dtlpfVf1dSYc4HkVxzI@~%Rk_C#329}S4t|O4^C7KMI zb7^;~oqmsoKfYu6&!YAI9A!7Bni)BD3n?S*h70vvujJ=BSduM*kwH));Z8hd`b+HK z+|av+EnaK!kdlin8lQ!}UYPT+UuH|&o>V25)~z9n$H&==g?~dS{p{SoOORiDVe)N8 z_VMnNcVqSgDJsn%M8Nb|0P`ZH%LtQrq@b_N){!tP0eWjDC}Bc7v9Lh1m@wh zGPH}IFf=z7$r^Dyo~;5L84_67i;Sb=@w8+9B?Rh!dH3fOA>;d@B!a4B9oN(tIQ^H& z`0vj@be1x!d`s>JpW2H>^<&d6f^2^uIIHRSJ-i~NTkmJm@C!@vZ@TXfzU8u{^gFgU zx0_x3Jwf|}AOEDE{&iJZK_Q?|(=qM%zwo2q+wDI)`!#ugk5WIa`-f&f(c;fu{X?@q zOR1mM{X?^#Xz^#S{-N2QrPNRB{-N1VwD_}E|IqBuQtGF5|Iq9wTKw6oe`xk+DfQF3 ze`xj-E&lA)|IajgKfEFKQrJl>v~v42{Q_36F<{RyS=3llJElf2KQ~vCv^Vbv(k-oa znJAsf4a0j!bw~g0$msoD3W%A%!5dV`-L@F6w=_(Ab}Pnjhbt%u4Pq*?vUNzr7=OzT8zg)1Ph${=o(cx?ap z2jzg>1aF>QJf={@w7L?V82tOY_|L)5|NNH!9;LYT?x)qy017tE-HOr_=tJHJv?VTL zhoj2pP{DZ&37pWmQ-Q4Po=Q%5RT9GICFj=nT`ar!fJz(fV~gM&7WUERW{Z$HponEP zG9-Q1Vx54bz(cGFh{~vE1y>u$D|*H)BuF%P$%GDXd6Bp6eflWqE-vy9b9$kG!i5Pe zA&JteC8E6jr9~vGuqB5S;uc@>0&lISl%I{odSF?1FJHc5x9}o|UFPbx1lKn< zwy*Gq6&D-6$U?Amfdu5`Z@=c(8>(EKw;x*2ua#8hHK(DWNhN)lv~90$kH`(9-Z|J3 zTiBg&9qukh3{e0&*f*qJy?T|1;Wag{s4t2plvz;Ib2}Z6zj>J{yVAtwcD{Pt`5d4y zNS$-`ku#@+-wV-(1Btpx${0LI$dMQj2pn@FE-ak)UP{P`iK)-(_M+#MyThyftOAVS z-WjpsI=@cv?#O3b-e}LXlVRZa_oT{SO7Db9np0RJh0Gw=wp>F&5$)h0J&7ioMo?eV3om^&+s`76O#^fq^SpRd)U7g6lni6-()}?eQa@ zo-=*Kq%~T2_5dlZ3cSh(6IkfGb+w8^jf&}LF`30cY=dbtq36hMCXa^L@|JOVwP6jA zC|)!ET2BQ=E--PpVPF;A!p6q3yoHjrJ0zm;BRy%=Mb*^>t>l%zo22S}M9H~m%IH|q z#W+(QjRZlZ#nZr{(~L_Se#~=j5g-nHd=%}Wv;t(@f0sOI?jJBW3<3tdyHDEOa~#C= z&=L=K+GWhoOL)DrHJ7be#HoM76&c9NBrLnrd6|SEOdE8u2e^!YgAG-?B4{mvgjFpG zEYUB74%w%~UrW5Tm$s$q_9dH^k$FMw`paJBHBK9!-k~I&H17##UnvC*qrb^B$EZxc z!FQL_2Qu)webaZN&vJakiY4azBjj5K_qFW?*m*Br>@OX%k9F=5Cqc)iMfvBvr>M6c z9m=Ka#$Hf1p=e;Ta_f2@9F5cvdRzu8tKS)h@dz6SimBrR-juqUSE6X!GTMjjX;kO1(VoDGvIK z8h$+rj9M@r(}3vr`G0U;%23&{dd5K0Gv_6JVhZ#WN2VGmN~3Y3%`_6;?LS|$R!KsI z)XzOGU|FhcTf#IHs>gEMqc%1)cqT5kuh7PbSBonlw}bSxY0$xeCQ%q!ik&da+++KCbt z8>yr;x6iff$ZcVKv5p&W8Uy#1NI3Qeuy3*NE+I%{7fk(k)0OXE(%s@BT;vRWEcNgs zReoNSY$y}s4=>lwP`C|3AwQDKl1v@Z_t9^RDsb;`4)MDMPz8r7M?_;m|8|Ci zq_l0f0LzM4AGjdZrdFOaZhhu#bA9exUhctSFk>J|1#nh!VNaNkPu<9_B0no4>?x@h z6Nz%3$F05s3jQz3>VIwW+^nb=vbGh(w5MxcMOGK`}j~JVd z=z4jvL|m-)K}1CCc?XnDkFlB8HII3wO7H&M*3OBW5C#Qoqq#<1VWybZ`?<; z1+#OnSEac~0F|0y;e2OEY19zMH5hzHYQ#O>+RO(%g1tz{07)3 zXuV84jXgs)J345*LJn~V`+>aYyYf2=EU*`ZRg&w{)(*#4pE_x~&uW3#+iVuuPynhd z8M660tHYS>>jBpC$e=4p)YV6aURH_l)oE^Z+{TsN7j4Y0V)Z71o+J0k!Eq6@+ILNk zsCqT<)T(~=;4Cz8XV5@cOsv8;F)_Kg9GPoeL&Ma*Ou~}liTLT|z>V1{1hA9ht}w_t?Jm@zoh*lo<@?*zBd(YL$Ef&Gr22Lvxc3wIz8g6Z4o zia^`tJ&51vln=gpnFC*8L@_Fqw|*7ljtFD{h2zJ&&^+;~8%2!=UtGBdR+R%+=J1L> zqljr$@N?8L-BAf3lqd!tw4xNsq#_!j>qUd!ao8Is(wk1Z$_vWCy zkiY-3(e5e*3$~2f(fQ0BN?;P`-)NDToFuI{)9Z?b7K1JNodW$@hCB;D6YWPMnurCq zs>%)1e1T4m43tUg7cwjEMKVbmYSE>P5pbh z+#5M4wfC1r;&c6#s)+sZAteWm1fQy2#MBvBp8Q%^U95T_1*7NDNiDE>U=<~_!r1W$ z|Lsi_7JSE|pw~n4(98nfzMU8xVl>yCm+%M(ibS{YI|IijYo|Rc0tCc@dWUWT<=Mnc zOe}*XytLJ#mtprJ+TU5g%i!`QteJxr@*g1EYgo&8mEAjUjSUO{D?8h|ivjZ(Sq{7@ z(vAX9w_c-p=UG(^2n3QHhg=pm^6ulA+`Fl~cc8k&X!_31{jj`B-`FB2l84+Fa`+yx zopt1&<$_$aJ$Xo04~}csTvKV3_UX1uOh|y$=8bZ1mXulJNBV68Tdpm>xOlVD6C8(r zvy`WUWo(}{JAdLYx#0i4SPt_|FRl8%ZD6uPlgcAH4<Jk5yJQJtFRT3MuI4376K^_cyI;8YPSFS^M9-+BT6tG|6Y{Xb<2n3Y*?sA-Ke$i*cyV0R_w9K?ug7Vb9=+96(yp|}DBgny_oI7CsA*nL=t#v|DrmYwoGc)H7)MVrk zuDJFt9zw2T^Iptn6OxJiJk<(jN95q)LR3x^4DMsg|2I8Cw^OvYGD1hXukgH8bMLqpmwxRg_sY?D< z9O|c~76#qwKHyG8qu-!MDgIzNPH7BZzYL}XZ_Qf4X;dtSD$Nui*L>kpq}d@U686le zgBCbnDdfkkRl5_X=mOGoh@wPH_CjtdZ>f2{KdH{Im-6UiMzRdA-x5@HDT2dQg)&*S zw)TE7p{r-!UPk=y#=Xa=;wZC>=g+$L%U@lmWQ3rVmkkp=$G5kJlp8esK%Yihqm!4a zK-fx1$s9UWI!U@=~|iz$F@7D~g1Wo|SxAcy&c6NLg(ii7ck9oTSc^MjX|heHc5>jw;ry>4sN z1U(*;BrT5Z>N#eVh?kU=h{J7r9`<;bPvi+Q&BggRwzdl!nwkze5yR=&iecrQRCY!KH2!wPV2w>GvA!OP)U<-{n^2!c>Ij2A0$qu1Z&6WF$YXu zY~v_Zbt zsoe;;a{2O7tnAbPCH&Hma@kwq_Oa=8d*g|n3ZnQSaj!9=Z^UmN688o(l>;m7ra!V4 zLJoIiD?=~}6trbMU8duhjI=`hM0L%m>OfpmFlk|`zBAqE%^=Jw;3^!T-gcHNWcs$` z5(!~kVMNg{dWOap_nLc5_UFXbMv|9>UdW91Kgie1QlUrR|IMcGzrvn&LKJTc`u(!T z<#$0TP=k~g*&MD1Fs`M_<0+IdcIXL#uF7eQHZd`=TEW7@BZ|^mSY$tl8Z7GP#Wxwf z*{Ykjcp<$@8Q|gF>pJD$po~8{oLlp_C4WUj?Pdf+b?a&% zYDu^o?j&1x-}ugQrOlR+v+Re~%>jwP1d21XBbg{j&A^^bF)QQkPb0DKLf)FER49K; zN6S+khEOu8uHG2$3Mufal1}}l@ey?5SjCYYA47FjU~sczX`N(ecsHJfWDVkTJ76*?`Uy!)$SRijdAD*u@o0R4n%a$zCwYsyNrFyi8 zGG|RW>TBumyLQ!nEy-_xTBH7IvWnahlFn+`xvd?Ri10G)z4@n(`dj2UZ4`>WeE+bw zse-^VwY;L_i)h&U2wwCDkJOQZ1F!)Tg3*q_^1D;uHNRO7?0Hi68}8S9Ix9X3dMX6N z$v_mcb~a9NrYUf3xw<6sUpG+mKgr(ioG872;0Y0PZ872f`6CF0vAjXfmX3|Gs&3dt zikBKURJSP0{^B`h?@|z#u&QaFo)ALP0Hk93Q@`GLXcHZ>c6+hoE<8yBInYZtA&BhF z*uyox>u#H0^bW{79GZI=*;{Xh?$i~cw=F=lmCafuXZS{SC~8N+Yo_>QCY&D0yaQPn zbD@;?oUU4IKT@h*-?&eKe8n#g`=9SrM1B8bp}n1m(6c}L+h0GMx9AUj#`APe0e|a2b0?`3gqu&P|MmO-?6yO76u&A% z?A_wo|EO(#_N!l?K9RyWB?s*1kNqv$&L2OX;obDUK;u6%*6(ljA7=S2eo*^|S$>Os z|6!JYnB|XMtedb1|BU0}nrVdG9n1ZfP8SK$>b z>o({7W}Y{G|>_*hiC7F8GRP41(dE8$q-xA%} z#%4uPvdBV5B?;usSh^F7Lla%SzH!i~HSQ6UP79?AKG=pQ74m|pWouA5zBc&qgO?#0n*hYyQk16@A0)rZsSwDddvEB z*=z#W?5--dU-Yt~@)+I=eVy7inC+B8G#=6N9`oO`PG~vB_fN|3a+C5~co=zWwifMX zT`vjNd)Rv;v2vxhEOz6$UdEfMm({@7(BA&HvhiXei(BH(MT>8= z@Pvr9xk{@n&!E#>qZQYXlB}wPM^dL9pFMxgXFIEVB13X7 z>2S&7&pHq*o6ihvLsGAbH7bkzCnfOvs!FZ(TS(GGRVDivQ>Ytz@2$G+iDrsq5-Y#W3#5EdCH??l59eN?4n?b-Bt&sWB5J>APHg6cG{Ox97eVWgVZwMB&tG;f8>n;(lb4 zd;|jrdrJhpmd_z4O9hzcEQw#y+#+CX&VBkM+id^<(4cU_TRdQ^-xw5~xo^5>US0WV zuX!(Q)T2v;k~6BpB;&s>p4H$!TfyK5kkZgfhfIZUtRE1Jp^PC5Jl69WJ~5=%?^h^w z6O(s)W?ZCY;-0^yXgd4A`BD2q!7?BG_Sm6dD5cdoE^xI;cC~)1^p5Xt5WY%!W2+)06+b}O|H%K!ZDHVz zxM$YYeg7K zmm7Ln`+m31(JGTlEWfs-+baSJw4WLd<=no%^))-+9ufCg`E*MpzoKbrbi-PcVz2JUG|yKU-uQnrJBrTDs;<3R zM{dZCqd;rckb^c^z1TrrMc$<5TBMUXcgUx+8+!a9S4~pWW($uU-m$bnWwpWA0*!Y86t)?I53e>6;E48n8a;88WLn&LiM)l2jo%Ec zUdZNbM_anc#_Z8SRtTeK!HEocPg_=;lQEVPdoW%zo6}5|wg~q2zG}RwZI;!&v(0k| zF7e-~8g)r?wjMF}6$x+=`tQ9ewfW;d3oDbY7#Aw;R8>_YxXCx)E$VO=D^^;&l9-Iw;5?fX>}3?*k=+%F87^jZ_z&8Acv(p)$_ zuoiqoy%CP0U_9;@$hN)6x%v9LrOK7W-9rb7BWj)l$4UQrONx_tH1v>c9=rCghLbgm zy#2gCok|$u)t0g`KXEh(>@T0nDxYOA4ivWZzhcx>UVd|eQDy%Da<7qR!3|6Q-`hNa z_{UrdU9)mUCdNp+dy_sB__1_w_ar}#GuW_!pf~j}Qf~dd@mS+GQ5S9AT=GE;Mpx>Z z$SS)uIJ@LIvvS*KRJsIk`h7XpQTj&l(fkQQmedd-jORc=S7~F=eQK>Yem?1Hhi|hz zyKV3+d1DMh);?GPt3J>0osvH)DSmyEQTejUAyn@cMJXP%L(*j)JnZ#SidU|_#(~C} zI&o9Pnnv8?>*vylMU_9Vv45@Fw!U*B>Cq@qWGCwqgs7M}oavy`@}2 zy)1^nYB>0fs^!wd>v4!X8G>MG0NSfBX-cXnHJrX!iDue^MC{qAYc1Sz3D0@5OFXw)humff9D#p3Ryz!{d9Vc-)jMw zT^gBTrit#88^VQU<5LWK3r(S0FGgOBEG|9H)*Li4HoUet-kZYQ5N~y?csT9pfln#@ z9a?vc##Be-kyV(w9Zpdq?MN1^;-31H9#v4dv^-!1`umvLcbeaF=H-60_CSu<&Je0L zwuRB_I~5WgtZ=gnxqW{>Sq%3i5kAUe2db(AEZM@92%7(SO|RC7)F%-CB3JzNB)o|U z7-tCNUjeC$Y!bxtv0`DZkO8gWLAUGQH!t?*HJRt-v^uBXIouf4X#{Fq6jiINoI9iX zyOD+Pz~2}NrSMh|D`ab)=z;{Xj9{6DYsYmxmcSNPhEdFM6E%*=ejuzkbo!i_MV zok-pu9xDr?L2_;f3nB{(?Fn*WVPqPs0G1=sz4nNj$mNbGA6__D<}yjxJEdmMz)qj- zX+>GF;$nOLhN@#bN1}Nt#~-ngR~`~GI2AwL2X~>wMqQ9O1+N-?_fC9PPT3e&?V5MU zjvXdDe5kU8hiWxbMUvP96U&cl)s;ZSA5s3UC_goiBX<^GaX8bK@ps zwT(B;TJ;2!a^g4$J{fJE>!;ir7=lFP!J_Z-S(p$lb(BjGh6(hli zd$vO>v8L#mm$&Q^0+&mnw~UYWww5^EQQCqI{I9dJg+vFXJ^F zqZbiF`$Fug%?IPhao=AN@_L@cl6Q@djPW}_QQLJReF#+paz5(wCg!56C?beGm{=62 z>iEkX*J`cvr&^}k`QG2Ccr!WJ{w5h0!#$n7XQS@BW9xwHZGO5r*9^oNE`ph+@STnb zX(V3X`g~GQlVWREEWslgf5$o`#X92s>`Ckkb%b3wqk8EOHU#rKSL>%wN;4X9Lm`iZ| zYB~1NzLi~)Pr&i*|IQpG2=bpAn|hd8Qw3k;^4yG>XoAB82->yXSi_k>q{i`^?d6M^ zS*Sa+Cst`^#Ir7Y+uj()ag#5&c^fev4B>_ZjZJm1%lbvJ8&g#U1h(PnO}Bh1Sgk#1 ziZVWYOd}N;Ja&v;WeyB49ecTnS;e!zdVDnDWVaqN1c$lrumfgknn@yjZb#A6lg}ZB zk8?cgiqgb>m%jdV`VM%%BTbkviF-oevy$=Qf~+T#Y?{XZM;u=b_|nZgGHuksK77_y z%R47Ym=hKp3Eq;oZKaOb&e;FccgBBDa9>RK`>v{GYgkx6-@W(a+A%A(g~xWEV&UiZ zh`bM}5ag>vm8nfmI5Pfd+SnE@%{{leZC_~AX}&(TdURigf7!KQXuij`jrLJht5qO^Vyarfrv%rWzx6aF;Z6oP-n>JQ(V?X5pyD@AU<_N2y&kuhfAWl(WIagGFe1jxZT z)@2bfweB7C91KTUTn`A)-_YxVm?N6>gM^550Np#dGuzQQvp*LX0GAbJ2bi!v(y}ao zIo4jGA^1T>v!T1^{!GMY+c?rWsG|pi`^tWD%mY^E_pLyFufd5EE8=L|>)I5(ju7X_ z%aUvgbN~NcblJR)UIr=SSs8EAS0ez%r|r1v4eQ6kurhPfU; zklAZ_Unm}Tl8cI7>UBQJMJeLHTUs&!qk zmGi?0m?~}aK?7y-yvCno>?fvGsp{*kV=@J5MtMo_%YJ2=-|Q0zOKRK}vD7p9=-#rN zfi&^Nn8V}wt7j~6U+CB3g#+U$5X*6GG-=tlzccC3=RX=#WMySE%xLTBDdhC{y%80g zGC{@hl>(%Tb}BT=gc!uyHu4r+E=4>m<&K7zI%VA!8wMTg+^2H+SADO2 zrg#v+1PTv0vCBYuC$3=P=%CR*>R`IrWfEy%YHBJF!pZMs`mBfY`J6BbpkXY0 z*dKK|cAtNIzh$T=Ig+3E`M0iDTYVQ-SY=uucNo^LK>1eUY498kzeVjCZ`t9^1w{5C z()JBBF~u=!8-~n4qz8)g20SJC=>goAdx%kS>s7$bG8&(#=o^rM28Fv+XE6OwzF__( zK+hgMfJx%NxEwWyUO9A{{)A}@B*q$m1nMmy^k^F%C%_DTUvgzO-+1t-9Tz*D9(KQh+&Ukq)`q5>%ejSW^NXJg;1Qz_e zH2=fec(GvtNlGjQ_S4h-uXCPWxd0)n`fMA2&g{%d`rIOGr!zJA?)=W-^^ z*(XHCZd}J#f%R(mEvjQbytrD{+yb&on4f?B|3h8@Kwh#(G2$%pH)$^Mi>geRX@)Fn z5>^pOyLBO+_;yHmuh!TU2jBTG{M(nEOpK)kbE%uR zMfjIg*|W=CN!a3zS;aW5r+i&4D^u<2+lvbw2n%46^mlj9EdwL=_1*rBMMB{nyPT>q zAwQkVoM*rBkAoC>EkX@keR=&U#64U3#Qb`oOtoUZ(k3c z;tuR*Cp#~FZ-Agd7?&_=PbU#)K+NTp(&ed)#J z^tTx%SOb#fzNrv>_T@_NUqkV)**kWPemVG+`qSD_yE}O`!A0NgC4{v{@hZOj&c)aA zEZo0~`4$N9$*V?YXMKZL+l|2o1;18-XNkrlXaU%C|2x<;zFOaMl}@>T7B*llo>bDQ zU3uDa#f`}Q);XJe_PeKH5Qzs2+(APM%ek)rDrL6EmPFblw*cuDKKJ2&uy@_um+FL< zVj_Ca0+L{d;qc7g4E1YLbdy2>UJA^haULRd)*Aftm`fgY%eg+~dUaM{Sz4~Vn=Qm# z6%yf1ju*be2rZ2d%&34rdOL5lvN^;yPkpuLOAOsbhkoZ_H`@AvpQ-%$QeT1_Mn%5X zzD9OyINveGLmb;#ZM0yHmN3QJBxq1hU9+P1@Wx;GUz^ z=`NqiDR@135RBc>zh?lx)Vv{;#3G^|N7Rmx_&KQYMQby6U)N*>%rK~48x$S>&&zRc zX=j1@pt%RuIorM{exLYF)=#W3`fif_Sc9Wv*RX*Awkl@DHn=vSA{FrSs zSJ-tX;_qF!zt?LKKizKvLxnh_=bWX}xHEW*db-enO&-X&TeS6@O0lnOp`usymNU4@k0zXWSz0E z-gm$H!9`t#NXkiZyat1F*pqbj@SEubO#FBzqz=DAZq8KrFbHTO;IeIP^!#v)UO0B( zt8%Q}9OOCLb9_EkUXUYfV0kdM)~~8VW_)~XjP2l%IeR8=jgm~*V=-=hn5m1P4yqZv zssWA?8(_+?`{bS}{?F2M-XMfZCQJu#v~k{A?hF4K$r`YKi8wAzuWRdt_q&(z-+pC_0(%rP*^FGzYzxKX`-1}azWoDiWN zkc+>ln6s#zP*pY6+6L!U7DGD@uD}4j*1Q)Jn{iY615b*EOL)u&VunF!#0y=qMH4Ot zM@N{%S|mY&C?|h11PRbx!q&_6NIH(>5p-*4Z;@7~J%Y^QQIfbdkvY#K)1smgSu`z{X|qcmR2OiaXXGn-6+o z4QQ=n__?jBe>Mr>=!Hn@5bGTEww~nK)XJfU*A*(-&DdKq8cWj6($-l0u^2kYG|M!2*z^dQ-i8%TQ1 z3GGJV^2esadiCM*Ns~awT;OG(&EatC(J@)ssGT|TZNL$Kjb--2a!qPkU{!ug?LlV; z6a4jjSsi-pBwOMg1U;qpEOHpi1^mX|@KC}PkA(0_RrGa;_+UzrDkY)!MeS~a(21|o zr?_TMlt;!(H;`xTYaAg!_Wa)Z0IvHn5^=SBc%SSZfwp<|JVvF0*Z0h#@=Jyaiocc+!2_8;| z32@NTPVZbq6D3oXz&+=!0w?E2UmyviuvEPnxIR#Jk1)o%!1-|VWxO9PP)q^C(8>`% zdzD}6Zcbt|GcD0HaRh$+Nbsm}iwbBAdsep|kk?pNyS)me@Pmr!=idB9R=hm!r2F1C z=BwLCru7?#772{)PKhcfm?m}&$Qesa^lEuwc2i%Jc-rMQEp7!MqOQJd~v+S zk;4&{d)(n@*)rddf6?Yc_ih!VmSBf4erDm*BEEw;V3A0O=wEvE7k2*+mN0_HE{XwdIO?!4A`{}4 zB@U;d9r`hR4}XmXUaQe#|GTcud+VB3ZdGvP!;m#&+2_Lpw#_y4^gDasn}K@Yp*)~D zdgvKurXbIQGS48O_t2mWxB_%nyt2wzCkRM(HhCT+WDCt=EKrp^TitI_!|yguY4MiW zeVnv@`ABv&M&dm4?RUJcN7JDup+0j7GEWTY*wP zdpjY0co{AYmc>1nmT#?iq1=ay_TS%OeOi%=0*Z!ZVdjjWkYn`7mpU=ha&k6%6LOD+ zpMqU_Tl1az1DCAZ+Q#;pV=5Vh%?B>Ax;1=Q+UGSs{uStQTP?Ie=~@E#BtOtSIZWglcU(h3Ca?%#@>d zVgMCBn2K{<`JfZ)s$x+BDGV{h->F`2%Do&=k__H1K^WExPOg=0m9x*rOt`(^xJh{r z#;A_J3yVR_aO{qF9xthr=DPj1!%lVY$FKqUu}fRVka=qnj7Vq^zRxbHf#l-i+R2Ff z{?~x6Z;1k~db%T^Wcr=%fE;S(iM-DJ(6ob5gR9N1)}6g}(Av*2t;fVQM*XQ;5KqPa zs|Et6o<7Uq&IzlWB!(FJUQsxWN%jo!3rFX}erC_HVVjMIJ&2kW$Pg1WCXjr{g&7Mx z?h12X-;9SUA9c}pPmXHNHf5@6f9!0wxP4HD$;wY5UZ}Y6sVJ!99thkCDX8W3nx7^a zU||?)EQY-AZ1f{`RQR%~3G^1L@3G^&&Q+`ZvME|q&hKDh9=tgdp$RY-F+#CZMtD8| zSXJ0(&-^f(o6=9cEc3eFzI{1mN<3C0G4Cm-y4=OFo2{9UEVp6ZXK(A{P$g2)#OJzN z`qs-`4dSVJncuzUqJ=6EG?1elfN9{)OL=S}Cz>K;k0gLzIKuS~IIJNnFSkqE6L8u* zQ(MRWiZc6%OBAx64y6vu(T7$^&nY0!B0$pdLX4&3Mo6_X2g}j!&XwdC>ssd#JoAS{ zj2?yUJE*B|@0MvA_SRc*Gg}MxTGLQT*p`1~n@M5;zRn|g*`<-vG`MK;x$)il(HdX8 zT+3f7*6nw+ar7<7RBd&RlEbp*(<|!==n7fyoF)9{+2LQyoqpHLC;D!NmkLy*QqdSC z;pir?mT)6OoG>1}WL(H%DhURUy1{b{SDt|X61S@vz`}J(U{5NG zMHZz6DVQoQWo)Bd<6KJau;+ZCCxWZPAiZ@Z;j?k=w5M3g|Dl|jN(>r*5ZbPsp4x#S z+)JgJ)jx4IH>Giajj&BrmwJI_+a}Ek7bS~Yu|j?mNy)?MN5VnI@u1JlbMO8djn}W3 z?|A**Arm#!F=85*B`fp{sIOkjV!*D@({>lkD*SjIvIDsk_UNBi;Y`xtBojEF{iTtl zAuDIzyl^I^UDQZ!L)*&)}iw0+IL zTFD)0S5X@=I_fTizqL5sWaOSH6YGJ682q>pTC8=C= z60d&&DmQ&21H?5^MQqAcYqL-BT0M#n4#CU~Sd>R<9kJ_8k$jN6NXXX*>*!T<0%u>8 zKlj+}BGN#z+`0$RF$2vq{Hu5PmkTAik{<@~{pxx=MQQC@Vm`7OIMg4xT0Yga)U%h< z)Eqw5?5LbQhAseF@Lk7u@rKMNlRqxURh$xi-TWJ&k#86ZTox9yJbBswbr!$^0)Lx) zwgW2#oE?~_>!ae<38uMtX8h|9g7iQg0$d?Sb}Is4a|;*0X8w;Jr`afDuJYpI25Ihz z&l8D;9g$5qFgmAFw|(ChZ`Pn__h(X(EDutbD~$04EI*p(Rn#ILR-t!<%fczxsD$={ zR*}jzyVU$|?|B~D+5&xd0do;d%gPj|Lxgl=FZ>W^fMjeoiVT};!l-4EQdP<&M4_C9 zM)`l)!c(hx3W`593dnoWZB}*iVQ_@mVHMk3JjQxC8%VXQ#@XDD(258!9LT;rS+goA zgayU@=nU-5pq9LWks;{s@KZmiaa41zv=rR!#cJHuGd3{jIN?6k{S>dOP0Mk4yI{5- zQOUUa;FPQ1W|Er}{w$HLU2XLwnB6k@)zo8;tJH`NQ7GXdAI*MRDTq%}TMXxv9{p#7 z=Jn+Ysc&Wqz88j9IEPb|5i^`}GPSk+&3&U>HKE|BaKG8nWw)B89iJ+)uHoV3jeVcb zmmPMxb&g481-F%?VtH6`d2Cb$RykF5M&^!S`;8U9)%o`$87JQXk+!14FfCK%+N2X| z)e|;M3K)iwOZHu{yzAlhclkkO>gSd|6QHz+wQQ+{`1{UxH+ye4HnN z|BC#P`y9y8N>J8=r*g}icym`ZPn+W5^8o+1xP13${J>NcCeW(41@?Zr&x zlTJF4x_*@&7B{EbF-$z>50r5Z;tZa)&PQ>lGk;fOL_X5Cyjk?N{eGml^d;hr?Uv4j z^0=K@@Uaea8!wJrKKp{JN$>72+bT2IdQKOXQQaR`?CMC!%kOO~Ib!UNvoi~);d!iG z&Z)AWU8Q;e8*>ag$%pJb?VoAa_J2PIg9+ChZge@uj2bkok&Jf-*N9uN30Rf?Y;uE| z@l@>3#^^7b=NUe&*cnD98KO~Ne6|n4u;x0d#IA{W&nMY#3p3dP($52YEz3rjC}*{z zLo3$a_)YfZxeID*?TE^w(@$0XMFg+^Zc`?%!1Kr|_uBMCntRIR@thWLiFnJHmf8fq zdM%`Myd5Avr3wFe=IMG~xWW|KKP&9Hwz_6jo$`t{M{8EbvEx(bprE;x-351~Wg5eZ z#jpJyt5p*R4jqxa56Nb~)G-DEc7!XOQS)BaQl%n!1mG?L(+z)m}9F2+r1LcX{m7R>3JIVw>U8+e~Up-sOug3-2^``WJ>uNuw#ktVM zsck*W)=&pkg$yLs@B)+;u%jG-BXlvSO&HoeA3u^Cn3@Cu30tsj`Br>5H92PgfpMR^ zNr^54sLSMq^$m!6l^fn?&k)>}9!qX?b&%1pu&Lffg4S|rj-5o(;YauHUj9oD^j4!!$n#Mlgl=keF0UI zvzlmW4zJQRMszw~IL-$ynPik}$YZXu>InHppTD&~H? z;c9`%H`$#l-I6YuR;;vI4`26P)G0~68Fx6jzLzDSXSasy+m79pwhhQ_tl6(D;aguf3YyC@_8HOAA;V=zSqEs;m=e&#iL z&_OjAWyCKTZ6_+6JS+-rMJe5v&_KrDn7U{%bqQk`An7Bv=Qk^d;SWA0975=YstHbj zbn0XGeRCcyzxAIX?GuOI{9%aTH*{eAa7R}}6bjm!&?$qbEU}Aw;)qxMXV-9Qnh9Jd z^-=Jc|JfFWMG@Wldy&*vDJ8Sx(mIBRSO5y39T&>pp$;GV#`VD-w~<*|p=t!mN1v}_ z#1@sT8kP7>&mgMIXA9&bLfuDkU_q81rQr=(m+7C6got+-Gm(s<*1E zSlH3CVr|>gKCBG4y%l}&t|m@;mhQU4EcM5i&nIG*qjyB&F*7H*o!sx0+&GIxf&xZA5f%OOL1y!$n>x2| z(ps??VhO4&Zg%^5_{C2I<5a~tywvo8AREbti5Kixmi@MOl}pf!JG*Wr=X$69nTc~U z%YD>A_X|Xy3#zb!mm&M-k!V~n@^_qt@yb3#tB|jvBWE=7 zw5`#-g&q2nIOeSytnbVtx;9u!BZ04HTKd9L0%|$gBHzS%d)^oG=Htd~bC3W<wMo^>WY=(A zNkruno9+!~r!*Tzc~y$*H= z!L+dM=gQ>>jA)dWylZ?A?pL?C{o`OjY}g_%Eh4(io;A4m(~>-$O6&cpV1rJLX0=v% zgRI~KeqfUd&*4Q+n7fks6v)2t4Saii2L1%nD|Qd^Gf5;z?xR9cWUsx5Z_h4mrw{iA zq`bf6N)fW8XJUD&O$%%pA*htuG3AzC#5QI|&Jb_GeKgp~V+D`9#p(fFKn8+u+F7287BeUunzpz*)$Lf-mL{u^8 z6W0{B=D5oq4VC+lVu4k$br5^_ni- z9V5of8Fo;An;2ezt^yQ?(SJtrG|Py3=;G zQw`QFhaQQb2aTmH2234MTt&zg*QVBqL!+fF6r%aV?U;t(sWC$CXtuqsL4)c)Clvl1s+TslQls^Pi=YPPIhX`* zShQ5*bT7H=Lqy)+H-yzA%^w%AbVQZb+P4-JjQFD`Cp->?Z5vpdn^Kd+#i*(vr9OP^ zp|MNOq%{l$Jx*=;fi)Y*{z@uyEuZx*{4eicDYFOPYx*w^&YRcq(mr}qJzD^sn;Y=4B=L$CkB;E@sntJ>3_ z4%Iues=s&*6U<9T=ET>>(rTc*8=CS=Oh2lsSS(nU?cD%BzoOK0^~WE;!= z_D%9$B86)6m7MiO^E@$^8mr|>5@Ee6r{joP{P?2*NBy9h-N4%mR?zy-V|*d1L@H7v z^lr))O_&7qJUN3l8x+`(S=!h?wd?=-!RrQa2&c*|9mE-fAfl^_>9Wo#k_T)NI&KNU z;S1544UY6Yu6BBLbh#B5`t-9jzvdTHcW^OBS;N+4JU?0Y)%WXNc%D?HQ7jL9aLilm zVkyKGNLCnjs-Gs+)W`={1E(?Vr;Tl+womLgSvy$>3uS zm?(bT!I--cKA){wpKE!!+7#R%53y(XYf?em3q^^57$FCmkfkJKMZy~&_Zl2!{J1H0 zW=SfB=BWmG8GLRsZmN=#`M~);2%*ao?7o@CN6$xm7ya)x40KC+u^kT=MAXoo?^U{) zFTz}lF%J(6nj!IscCd(dvUte^C!d3sjgrU;7O)JZfKBY6hdN*+de)%1tHd19_zslT zWUI4pR6UpM`4Q?cA}H=ZNQDgv=NugJFmaEyc{1|`F2vOfUKh%Xk~4;-OZ;E!`#GrAKH8s{gWmIdBB>ZK zMnyJquY}{#h%HTXCqnzK-z-cv^Je>ZV7M&Cia>o2e+?M2wTxA^qyv(i)kUg$U63+h z*JDcfRo#%aUndtO!PED+l5e16TVdPXW1crUBurCnYN<=$ooap>{E1yw&jc?XAE1Ag zTSGQ@nCc{*Rj1cL_Z*7;#URo-!xZru55s zb{q&zL~GHkT2(2nxa>H!k^3R``VMm(X_eFnzjj$G&C7K5v5ca@q#x!XwRm+2@HcIk zX_%OF_H=#f51hu%FYUQu{7ELi-Y0y#XE=GEkmcMK4LJm$ZE2qJ`~o{y8Ks#^sY$@r zPv6r#XqRc~d)dv(=-3><-9(`Z3cterz5zA6JtPBd)x@8-_&7V=AG*|AA><=onPv>H zOr;tf+BhDp!rNT z183a`WA1==w+dh07aS6xy>)$T@apBOK|oEwM)8s=^U=kM(YQ9Kb9)R z5+LVcINZn72tUNNbPtOTLZ&IWGv;eq{dX7C=ikA^n2^x&g&TMM?F{i?)dZtURil@i zzp&;kt*CGiwNotJWT4Sk=9&6fel!CUN+h@zC(n0B{<{Q(hM{NSdn^_=zswukzW~5RWP%2qPi2^fK}+ zx@vCt@QuAgnpyfiYDZ)Wy~dt}E^rdBgt zknmPtmhaoL^ab_3_-IgLr`+RgSDjt7*|JvR=9~*-X4U)UjodAYy-Ho z$}~Ga1vecqKNe#B89;1jj)zMY`E9iRE4eYFwbh85DhA#)+)Y9GwVJ~56loeImZtBD zZAGOw0t?p!W-a9@iy|FeMn!;mWj@aTVxEFHpgypkTp3sB0;nUJUfiYiPVY5M(szvvV~DdhJ8AFGb;5;R(YUkWp0rA9X7?``@rgl0T<7y zo64h}o;h=VQ3p6K1YP&g=-(XCuA~Tj#tHFTjS(>(=s5P(dvKsj<`|0{t<&y{6EWWL zw)q#p{e-}~K{_tafAONeFV}Nl-xRqmBxU3oHqh!Ot4`g4S>{XXgdN3iuvX~J1q$o( zbDy(c-e&F{vv!d~j2CO(#kP+_3MLhY4R=gqsonEjQTJxJRk@Ff2`%1EQ6w5I)`~Oa zt6@o_rweZ@XE7eec9T&-O1bXB9oY5I?}t^>>)$}L%2pJfzS2q}?s87-<`om2%QaZ^ z)$CRxVJR?wYdJb5k(8?a~J@CAD)a5T*%XwZMLNB!wElR1E z+r4s=sZp6w#Ckp~*h(_AN21n!K8$Rre(0=cND~JdH59suihh z_oGfmv&^2Q?HNy-fw2=ar5+%`$GF-LU_`NaGyBz(agmWl3IL?cG9edn0Hj&qMnB#< z9LF=)QFzS&w-bOXYSjnMVs|2W*MU7t2}LYvjb>sA?DWf?kirY<8}qu#Crp>$^sRSp z`cdCT7T5(&=OkXCnYL`V!mkHiUFgp>&x2QXYF3*?Be|`MUeAGsooAS&{c+9L6zUW{ zR(z9bw_2R9eU!4U2hnjZ5iOv}Q!sA3+Aam)6v?hH+-l#JRlD#e*3@wc1a5W^{-pF> znRR*mOD?^&imGeYB(W=}5UUlqRN@QvRsONIMUFmR&fSfp4^~3k#h&crJvjA${A@%7zZjX10!U5LVq{zUnc=GqouX#E&i}Oig2S& zL#;(~%i8hkJiIQE#Vhom(Sj0by zYs}~9>?_-1!f}*)+Z;7iL%zxKJ6f`F1vx#=?5?EmuR)t}Qu%Q9c#aQO`s`ypI_A^O z?1_aiZCR{&{P_7*FJCO9d9!*JqpGN+VqeKjMiI@>qVZ#?&0K}D=&?19KmZ^zp(i54 z!5#O9A^yY8hZh1mlybNe2`JHTl6C4Ixmw_}4IKKR%U)gCsmI$5qC4NX{_u{1UR_Jr zKd=AsmP~r!-IcXlfxlo#iX>DgYl;!gpSVQ2JlQn$A@hsmrI81M)7K43C7KME~ONKqAp ztAJ+*<)Qp*$(5CredT5~Y>6KxiEehP#e{nEFxD+7FWT$L=b5D$aws~mhDpd?69Ub% zTh3(|h_0)>f2C<9=ja%LPwW!LqJu7^1fY=Odj_6ta4Yt=J+b1G5Q672wy1h}!p|uQA zAzrC%b43>#DYlGdZ=`em`5zC-fll7No#J@qRyx>Au6&jtHtvbo8^==eb_#<;N*=Hs*m*5wk==W&AR0WsVrQ>FBV5FW#Aeo!Gi(>(P~sV{U4$+alPTqBJb zKg5SPLd*?JLrf!MX-E4ey}22aOrLaGK)U?Bc|lI> zre5;IYxdvd+ubxY`5lx66dxSC)G(B(8mN$m#yDn}PJR|gF*_|6VYfr32RI0Cbuclj z)??;|ZLf{iwtF=9V+md@p6zn($yGA8^y6~BdLm|Rw*V)0^iFxEJ#kmk&z7 z2xW~LtGA#sn-sJI9DLxP!UX!IsK&JYL+aO*k7`w4 z%yX5@O++8M8;2XDgU1mpId$DnwgC}CIwx}O@0tr=_M}<54O}DC2oQ;i!Abx3r(wF@ zrwz<-dEyfL2~j)a8ZKQiqXiT$90hJ>I<9gDA7rP|R}2tWha(5;!mTN*=K{gd1BBnO zjyqa12tjZk{Kp+mUNg)#xx0NEI#l#0zWEIXb~j z?rug3qOzSahpmPy#a534@Jx})2$v^P?V1`jGFj0JN3iyB>8tEH>8am)(#5a7x1Voa zo$vcW&AC#mnXxIzcicC{hgyDqr{ED{sa86t%1WW!97>a|WlTe$^8HQBT}g-3C4q(9 zAzQX6rC+T|o+#3$FtkJ!f*pmS5>8KG!OKr!9%AmY?x1z2S7uB_2tolz_Sj*G)|)cI z?Cw8yRkp_0WqQMgRin(K*!5$c>(Y6R&lP8*FjeEiP6%wd6lUql;7rcp-lw_Q>r!en z=3Hk1^qP5OQ!mZDO$3?$8q#iUoBc0Cb{b~gCtiN;X=NG@cb9YQJV({O3B8#+vIQ7h z%uw^nsHIh`VTF7m`+){J@6%}oSIrsP@>&Z07vTjsHZuzwn;QBFaK!>3;KW{)H^6*% z4qE0tzc3(7eiv1(0Fk*j^;b!+;Er9n#tiBOAM7py=L0M4MnfdtKlN3M0T4<2fHpX` zqS61^9t>22R>~D{k|O%xBUv5MIcCFlDFfqn?@22WCi4xOiw9k*oG!DG8XD0#zH<`H z2~ov#vAJw%S)&U(SV;P1AgI`}p9|6JYW0O`|A33eN3B?zS>H4*o-0S=eCmA2A4Xnk zrRPjG?L>n}Q5UI*X0WlWeE)d@LOsBGOhr%4d3=3;Maj`}Uwro7iGeh~L}x#M!eJ3Q zrR3M|=kH-C&1<=V#ZN@-G_JsZ7hk@<0o~r>N;Ywqem}IO!*dPeU(e=0#sJYH7}|Jl zz5%qM&s&7z3NN(20~HFlt*X3F=Za6L*0uid`SyFtea0GeO&G6&&dJE*dF=k8LuF_5(w-(G+BtA$Em&xk9E5DgL=4(}_O@VeN9X>9%-$`Hb zXl#er-%r$^V=~pHVkMlHQV#~RjYbu)B`|$mkg(CHhF8TGyiUs^;EQW{T)jV|!7h|J zZd_~l4K|ITWmTwhskbw1R98ETHly0I{Nou7KIKc#SipbT!moC>6GV-7q)|G8j0Thz zQ-7#!S&8F`V9ESTguLi(aFi9h)F>tv`L@^tzI^+ET!fy?bM|fd-s5NLSUC%|sd%%i zCDWM!MV0pGJ1nD1JV-a#O&r{XuW`-&!=nkEBYARsci_){&5+MZ;0=Fa&Jh=$Rk+~I zxNOb&1qVl?XZXuFF|JvHX-Wy6I(65yK}x4uhyv1quEeMc^}e~JB1s)#G2iDKE{-Eh z#mUB%IIZL@*8Mjk}La?a9e6WfY{h_1{QJ;5D%|5Y`Mgujnu8PVN+ifa49De zjl(K@UWRUoBvb+tmYr)|P(v`^;k!Tanc)^FfA-s;p3t)GRtBgJXI-kAcq<1;pS&l=(^4EQ6bs4OQyd1phwFt;5DG^7j9;!(Z zOeUM9%Zp2kN(`jRR7)J}(fMmLY62o{=J6l;nOLYkaK3v#fjazVyCQHgf zx;QLJ{WwZ;1bZ6OqIVJ6tgsGes329*ymBPW?nzHU`R4%|OWLkvOrDy26Fy62KDagu zhvAer!#7^5p)Q+d4bGd;?uHh*+zeRdERjalj~^HvMYGXJ`}NtC*~)Sazp_%TLamb! z^beole?s>DlDs}~z>8Rp-X;8-5(2geU?1BXG&FNhfDm2iaFzG89s5V3k|;8EjTahl z%xX8QH)IAMlcDUGFs$(ET6h3RA!U0NfeA5B$9`~U=c2*l8u-2akE)=I657-i2pQo= zPP)mslK2-q$?4cm!?L|^A`1eoESF6B<@mlF_1IEt=}8L*M@gw)lEGe6X8||7Nq7&# zogbQVC;Ej#={Z=5Oa+pe$ZAB$AL85ms5;oVP0$=xAps3vvJcWohl?iL5k46S<=K5R z1~wD`=iayJp&`@Amrp=1)qCd~mBHd*&V}=i+FjK}n~!H(I)~6op3{p#avhbXegI|+ zsQ~wA>@#9GBWb|yK7i;oyXq310`(7gMRHC)lMvc12jWtuqh0cggsOcnzIyYTS9j`s zV&`E!)=vgulV8;gwHFveY<)W%yF;;pZO@r>aQBgycoE*^WsLVln$B}x6*#!Ki>=n~ zifOo%3aWEAAlX_OCdECzc|LbOz9TGkyjN0_^<${FHpdpZrRUGuoGf0 z%oG~cp>`cyh+$0ksr&0%q)cp0x?&Bn#bEJ3_L7{weu(lCxvIcz$B1e*AI znZ8SWM#$2k0HDJ|>};py@ptIt@BoEG{$wA|`f6;=C&z3oc#WwM`3YW*q%CPT z8HE+B8A-U$9YAKK;_=sQb4<*YsYr{ESa~%-=29dzYcHx)s43gRSaHrwjQQRUoeNQD ze{qGkMPP2B$)E>Y?kkgA#x&V3zlyjx+nnOGH=qvoX5A1v$|_DJW1{|rk~VVt6A+c2 z0U(NzEL=GQqM8DLR74;0RpGypzs8e5Bepmj7f{yy3+k_$fmaIY>{isFY}k==#=(Ne ziSM9QwXr)I2#I$CJH%|h3XDq~X6$ntsHTx+uUs5PZdaDoNj^+^IJ}!mYP4jT+fGa)DB-#Qk3)~-jh;0@b~6{4{%L=hYnbAj3sb(zQoy%TYHnd zukij;I(l0&`N^^+qnWw6YIb5PimlhCq4AmJ(&9U8umWtObNvfOL?(OQ*IzIxDj`Z9 zG-0a+360$+lr9}OW(*2h!;k!vUi{{V^IHH+iSNe#JV#4T+z=lD5VPnoQ)%eH^|;PM zeup+c`FpHbZjN^JoYd8DmI`lF>uoN3_2-WJ8INj{QU@Gr*4-)dZ$NYSAbXflA?IfV zL7q3Nj%dgmIv_!mcUU)bcvaXZKC#Nkfg#~o0k7nk3{8I{5Q?WS@9IeVo zf`?*W~ZZeL|H)6(Gd6y8VT@B6wvB?MtB{a+h}VuHOTEWzNGnu?F0 z+6N8!IUYh$quN?xf2V1Ghv!exOgOrd4x~{Y9U&x68$G3SUiZX5|Ca0h6^o&jCGGe& zn{Mco!VjyT@8M`E%8p};z%_%eCTxci-OI><#&rwLbkjIq!=;~!%|VMx*f6v9euVjQ zS60b4k1u1$lvKh+N|N4&y>h^!BAy!{C{g zl@icWS@mEx%Lfv~-S!BEnFYYArKS;YkW)~=8(Q*z%|)eclaPtI$1X%+_Xtj99Re=`?go$3>m;J@&lMxHrD}QbMFeupTk)76! zQN}}?%J_x1`|*qoxv#AXDL>9pwwV{n>0ov=bMhjeLXcAi7%82QjNSv z_&7 z%~dw5o4MA9C>^UJFPz9NG#;dT=d;wTd=&zgY>4hJ-!{t`u6;^BtXW+U=1(7GL&$IZ z9+z0OqxNkzBX)k=lIhOg(2+Uhcd#|oS$<2{WCCtSVa5sfPhmZgY_$^#7_m~NKYJeO z`>#c)0Y9!HT43i6psj(LfLw$~=3mE8z+MA^sx0i8dw& zok_O$!Mdi_;wmCha6%;ulLKKnmhr)xp}r@$wK6h=Bkl$A3nn-0rvIYTabzHra$x?M z=m^4LvC`7K*mCSfR{Gu2;MsEGSo@zcsuk?|mt^SsO?f4V7mI7Kos32+AZEf-Q%Mq3 zO?S*q3K1lwl}UH0MR68oK;11V*bc2my5^SF){2_}yGT(ujTmD?#)qmERQ_5zTBik6 z#Av7=h=XVTV={rsUqas!*WD(UbiR0Qkj|Uq1%<+{o5+! zD`9HQ=CHMX^~Tg{DG2^CrzCqhf@vZCcq<69)1o)F<8!UQ)+$MXDBa@2JH~gW0pCrj zzspOjrL=!@(wKYyyyRG_j+Bh_&P)HtLyi(vWjV_KkFu+diz;o~D~bw;fC>l*ClA(%oIc(A_B_AdMg$Lw9$lbTf1#IYUa0@Rj3z89h=$2Rq``S%vMQP9Bo~6KpMSR zwSHubQ;jFzOdW$_N|yZb_X$S}z1Rg`zaAze zRa7k2?Df@%XSeNX6Qxdwic+C|`GcPSJF_Y=T%xl(_6_mRa*^XtBukRO|3Fu0wZ>s= zQ8l!ao1IIIA?Aj_Kqj@^fDGo$?Mj$VA(&c|14Sk+H0Z@5Hv$B3(ZKi03s+y!z~t*5 zhm(I^rpCr0 z+z#0^s297cN(@zwezi-cX?|$h%MEr{8TT`1(os>(1HzfF-W54|BTm#f(rhs@#P$KO1!Q!iW63xfHtROiOGby zUkMvLe#N(F>D-8tuRfSMn&2)2#@dYSv7CIs?3N6TWoh`=SN~BGTI^^*Aw$AEtn4TI z@K6fV!%q%IXRbq^NAI+URVSV|qpq;Yq!Z3?mym#DaBU~#lu-j1SG@;vJ$7{6EVxiA zaDl3peXUk~{?sV^1w9XpDRe>X6%OqlLGfE~vwYVruYJFpWtqcWHbX_k-71!8A{`sWVi5Px$X>W7P*QNJN<5fIhA z1u&(JwRKaWqm-f2!^qZCb|_$u_LRH!HLzwZk-Gb_k78p@^U}E``@UI zQvIc#Y}e@N{j4W+oF0zZHn)QVjQa1+L9b%ft5?k02ItYzb?Z1C&@tO_JbRIyBzhIT zzBxF)lL#WG7I+yu48j={V#;eON^PSTiY|Hu9w!k~880rX5oCgePok@X8&{MGlPSJ7znb;;ylC(z^Xog!-%b|9Q24_gkj{ z3S~HA?K%A!MVas4Dn<-}V$f+6lDog03K`GMQXQOofNhQtN9$W-4a%{08hTB_7*Z;N z+8FZX`D+T+t0FlL(St%9+K>7w`>+CyKl4QoW_86ZWTHO1OzXS>dNTM`{kNQ!bhCre## zRqj9EM3v1WG@wlT0K`fAS*B+Bc?!kMw)=*GLE>WSmiFU6zs27qy1&0fs|w>)#0ko# z>L=^+`7*Wki!zt9dCot|=ksPJydr<$wyou;2z4Un+1?1$O@@w%7mw9#pY>T8C zLi4oVhwZZL4B@5E3m_;jX-CW@j;tAa;+>xD?LzvVaobZzOTfIqSg=lWj_jqi57ml* z@8ev9UwKQ}GXUd_iqTM+X^_D1=zZvW`L+#WLg>kYC8osV=Wn?03j4cOC#JEO8=4Hr zk8R5U@%Bj=_){r%dQKmEm9n5mRpqm3N6K)iCj=F%Pz_*!r?7+M`^|!z%{Um2DzTr| zr}L|;;~vpYL|X<=reStk6S`hlQqU>I5QB{>(Kk&p(M{@kQLD4H@WZ3!^_;Tii`URE zU7P0~xazcZMGOa;QOx>X7dY2`QY#?cU1&E$X)cX_>J%~eMd?2^l+hMVS_x+n-x~t*utf`*dcm`kBVIx>tV7rb$%sX-Q5M zFRcpE21l;1g9utqM0DxXRUqr_vuKGKENQ@jJ9?O7pIwr}U)L^S=wi~-9EsOlT3?Hu zp_mN?m53ymVN_kzEtU>3+&3B+*?+Uj+uzXWG5(k0=g1~;mmLeN~m zBmKCggt)QKsB7p3u{l1DD{uxZEFifH1r9qCBvEkRCg_&dA0C{@GN98>>gzm>G+TO& z;Z&^!jzv_iTViNCMT_O6M;AG^$_g`1Pt@B5j+)ISAMa#dzj0buo2D5Kb#9FHx1Dc} z8}(>qRd*V`UaV28-bG_I8JxzRGHO1a(__f0wgjCtF%dC3pJ=}q9IWakRWS~~hB5PD z*?c5gwQ4W>o8+pD7aRfoOT+_M+Bm5%>IahMF$LIbbQCfOsNxSI1vFCy1Lz7mAc|t= z@*pQb%lpqPfWBOx{~3i(B|FSl50GbHBueSG9A;*lP4NAaIsK|yzX6lHtO5T*n+OCN$~RUU4ogp zw)9b0`H2@F4iPK-AhstpS0&?9u~B@!X-7UVD=g{b-5a@lnKL^~UL$CD5!9Rql-bM` zUK)FRN3_g2UHioYYE|FTYbgNcoLp#o(0-8Hcl|HlYx1Qrk=h1UV0|5Pg7wzK_Z0fO z;62E$so~`_`8JVVFH2Wg7^3wgaOm=1uIk>3K@dtlwzWXIaT;?MH6V@EtJaM+D^H#B z=Bi|kSZKH+W>p5Rw?-HIl4~=Y^l!2kE z!A5imw{qX||A)kX2Fefb|0j$pfvrC_8Vu$!wm+7dfhtr0>bchH{vCQ7f{OViX1om> zZt0ii>uXZh&ap343at_8y+-O~D!sG{nR#Whk8(yQ?v(B5k)?g|0`&)Y?UQPr=QAX1 zN_Wt>=*vXx#!c4pCE=~?^QCH2n>L9n^E`iGDn|*7Bz-0T)Gv!f5{kL%QnSPhnK_dO zt*H=ZZE}fGQI=plEnRt zvA->8{prax?p{{4Yv&kqe)jzn;V8^0VPP%d1XDfSt0?^OO%m^}NES4&42zG+cQr?3 z9lvk>s8F`yP!!}nYVc&4EKxyAmY`}wZ=5eW+F~+D9UDpkg8IGAvjXeJ$}a_U9T1fN z25t+I#k+;6DlnilF28D{szf|!8JOUrpg}o&`sU{+_!n4tbV~v)3d=`*%Fljg`8{-p zR;tadcOUtULk@{n*YZ%x*sS+eqD3_*tzRn|mX+GmlrJuWh}BbkU#a2bl)~;!BLz5a zy|j|&RtGv<%IEdPq7A~x@V?w~Ue(61_0By_pNU1c_O4qp=*m}3+&eFU*I3wTj}h#B z`7satC)oe#Q$!fR63hE9lresIXbX0xP)lJ2<=9=1tDOcblp0mwZ-6-JE zWdGb1kK6xi3Q=eP&=`JTjK|L$rWAz2kj5H68t3kT`XaW$vuoDUu{+c2=@h62xBiqN z-gG=uPKPg0!I9bYQC|qEH@`w4vnh8{A&^~Fg3{PmBbKay&c1hXhj)En({~Vj%;_+U zmdKejY?2hzF;#qjS7gimmFHFd5VBElvF1(C~5~ObWc2ZFB0yOhgz{sxxBLS}~h6+h!}0 zMwJ_-KMV&0?KnVQT~>h`>czE5l^{aHsePo5J=7dynA1#9L|VWEehf!tYq8rZ4~bkV zEzBThRiUD%YRIZDp~}mf5kARklWC6AIPyR0hQPlBR?Z8F@|ZTU4E&2S{7AX;ms;)U z*x;^kX_)?`1UlC%z^EH%A8iao)j&$PODXBL)4DKC$WYJT+quV+1DPW^ zimC`@TF}_{1ME*Uwvo+EJ;IXT~e4GyVW0pcnp0(6*(nF$-?zK@eN15 z5S`IPZ-%v;lKyNU>E+?+uV7d>ej_3wEK#^iiz2B zT&7SefXYGt zKycyvo^cd19?&}wy!oC=^f>99&jh~X!GMCvgXnu;%~itwrmvY5!l6&AshmEs z?PvBK#1+HS@J{zz;Tr;Fe+1}BL6kgka`dBAX%Y--wyzN zD7A`Wdk1bKf}72$ygJ_m3lABfTlhHt!8(Y37?!PHO^;_RCkT$rcZO|NABLJi~@i;YLJWPsj<` zb^{o0-&VqYwuH)0<<72K(Pov~?c}i1$WWxxn};%UhOEh2c@F!V-oJmcYXJ9qr~p~8 z+;EP?pWHh+MJ?fLFLOi-mFj%xJ0cHvvls>y`J~D|w@;s*`^7B?4bxcV7y88&3`k&D z*_lr!wMAj5S5ND!Xihr6k|ZvA3Z`4(4C{QK3(9C^logJ3evJT27##Od7wo3zbW!JY zz_Km8bK`NRO7{v0O>f~ZZ3IYU+HSn3JPk6cJ^CaObgL?BTpu`e^yx_Dt1rGy)RGLT z$8&mzMXyr*>=)2}&5K0=Y~9uS4@N5*vqy4l7rqGS$z;KNs~OkJpI2mNtoH1ei4eac zBrG+X0SV-0_xmokcfm&w$_y9viMgFBbKM;7e~%auY>TEoLdA8P5<8Ew=@F2ql5D=9 zNQd+aJpJ65BAwaap$E&dy6QFEn~BlUq)pbj?3`@}o;;%RoT5i7@^b;vPLn9n!6a;X z8M#d06fbu2zRo)_W|g1hZ-}Qe5wbb<03}^M*++daZbkwYCEI@7O;h-mks{cLr&CsP zePiJ&VeEaV0|)FN9MkH$Y@jSo>pTVPLUQ?KACOEvJgzS_E~(3L)SI%0eNW!f`$t{< z@5Z#ye_;;y0xC@I$i_FV68Px0#LKrt6v%p%->X)MyB^7$Qm-l#1wRE- zuW|gGPyeri2Wm2aq(@j4srEGL?Bcf^4~)AKdVO`N_VdiSILx`n)Q-qZr)xWFAYzYe zT}4H6%$!@}XTLTfB=Lz?OiF=k#REksWJM_Rvb%COyEQK)83(HLdsWo!5tw+NUECBf z6hBa;wyo%k2Lu|Dacv#2)C^+yK*k0dLqK^kYyI^|{Dbv|U3Wtpn^&skCWGc~YYqKo z347<`3oWO4nrGp0N0s0D#iX1)fN4MLipceChr1`sN65IogM>UpYSfiWCxyq%1C%)m zLouQ7BDOBb%+J^7k7rnpqzbPZ$OUt5@x>8{YQ0Xz5lDGvo2QYNV^*b3WL__dnZrs0 zc#r$XnKFy~Ap2eAc+gJj^|L;jxNkA3F2;2ouf`wMA6_vJ0Ltmc z$ojh3uf+B26`%h1V?M$sb2%4!F@*%zP7d_xwqvG8*?MycD3KL zN1pkVnr|;nzY7E!$hj_j8gk|?Is`}RoWf`KM{gXkLQbvIHZa;37Z;n-t%G7?D92b= zuj7C7*5M)#3H`ukEx7)>A+=K4^PXSK~r6axuoCixA>=;xipWK8i%m$_h?s;??ui)j8z z`nCO94CD993FA6#_`p~yQF}eqUUVB1L*towQ>^PTIr#(LEXKK^U^!jSRhzY>eq*FP zsWivO{daL&j`(!(?ijD`?Xdt6gmAITl^&P=m1@P#`tu7>^;l%>=2aPwoCiOdoPYAL z{xHOawU-*ReWZFYqE2{!pn}BJX4X>U!cS3bu6u0DA_yLN;hD41UCKJMtFygt4MFrQ z>7D6pa~{pCvJNsLA~hjg3ET5ibLZY%UyJ4-+jgx51sWw1#-n-Aj-A3FVn<#Ga-(7W z!2E)@4$g7}!+@Lx1d(#)9@VcCJGR$tpJ^0S)Gfw4PFdXj-WvGb%k-p)pCG^|bn4-f z-WHsoiEr&4mao6%(;Nnr1>Uvg5`w{FB4u{Aut_4#T=|!F)T4uWZeWq=f`->3pYt~K#b7onAH`&{Y((M-2M1Sg8|~~H zmQ|D*K}W@%zHY^qx@{8ryQb%vzHR~EHtu)7h!5gI*7ky}h)+D@^2Hw}D=Ewu<@!)j zsjh9yc+)IL^R4p#Vi7f>3h?{%F5czT)iP&D!X=T%SS!RU!<~1Xx~JTg>gqThr+TM6 zW*i!6-g>9k^PU}7G%T>xeOl3@>oM?&y`|8N21G~@ zDJT=z&-Y2}Fk6BCvB;h>Sfv~<@GD^BKb8U(VyQFCTq9mX|sKje*7#uBH=0_ z8#L!G*t^vF46klUk8#ir2%P9|#sGcaFuB+GK^stAj{T2~0^dXD=g|8*Hw`Gr0L95Ia|hpo?P?;kAx?$CAycqK zybMjW%y9kE*&(T8qMi7%G~E3+LJG?ehk@!gKBg3D`98#R_V$CHn%!oFxC%@X|!Rr+XlR zFQviy3gXbI4bm%pDXVuEHIlv9_c2PGI9Dm-ya^cHDpUE0#G~y z6w>_7Do0Tu(yjCl;MHi#sQqEiBtxthi=-?dCWW2a^>QX)1iKNtwqlhHoZJM*xNFeH z57bV~@M~qhw>%zzD~RzvdEyI3X@&h7=Qbi5=0SQ2kE~l{t%cF6)R@KFpRc;_TE=tO z>QsyOM?*o*hr|1h^`3(Z+5#=w1;zezTe$W!DfYEzGe#yRGE4~r6{u( z1mX7Tr3GDeKX=Bk-#XY5AIJBaiLlaqs-flFUgM@#;I@g-$gyE!Pq7`Z7uqPldUgm) zA-#wvIAZ%AAs#e0hk3&#%;mRIUQwXioRSK6ZP1Pfx~mn}SG?FBLs3s1fjUcYuJ(zC zin-SNy;4)NGUD|xJAVkKq&ri?A8E_UA7q(BGNgfCD24Y{hT@@PX2=fBvmb1qWIG+X zO9mR-8?|gr?H9i^gNo$*79&OxUi#wM8C}GOU|4hkvZnqlyx+)#Y(f5fzrBO|D^Ff$ zapAX}&%x^BGk)*cF^IAg6|NM$n^a7b*49(ZVR|0_OKh$-3#luBy|1`-q=bjC?1766SN1XRz+1CtHE)uPPh+NCEXS16qV*Dneg&&dC@l! zjLSrHmY#-A(3YGU`LO_db~Vz~kLqOa1`_+dk-;0fMH~NMq{G8}eaXH)^iTT+_QfTMh_7yd5$Bjz-i#XTC^qC6y$k9x} zy5@c|%#y@;N!#_bAKB9um0Jr-AlM)s$hg>$JV@(z*TA~i0n#&DGn0tW$Th#5g2Vjn zqDJtusje;E@7D#<(-q{&+~nRkKkB<)bav2caXHTokCx)s}KR6VIM>?1WSx zkrxZwBlh{g)Q2%O`}pbpjZNQe7b!c(IdU_4hi% zaPVcEm7|F$XpkLv@3w+yh^m+obUS0UU7Pp#&qf=dkM{sb>3Gzmq67j~E;$DqIoPNLiU(Hj zmCa=+)*o>Cy?8-w3TbH`{4nGlS8f}uu{Ica0biUvnlV?^8wlA|T#myP$Q3$f8W5f@ z+)$J@2(_Ml2F@$nKohrc+ zFm&mMICw~m8G^z`skjc$oZ4$<^B7$htl8Vyt#?03EM*QjE_vZwmD_s^j!|e9^aJil znftazRwH9Q*Y1Gg!E}?SQ-41q?qW;UU0E&)D*ook-+aUa!R(pBTH}{$^8M3E5qa=6 z2m3!`=6<7?6_B=GAmbWdcahb3?|DWQ(0EoI@G51pXx(V$D?fKu1g0X587})GIsVAr z=a$K%vVPckm4nWi+T;js^+;zLQ#Lh zNlRRb&WDS$tPibnRJiLU8^X#rN=8-nBf~fIdOERJ=1J}vd;NF+BR2OSUwqK5m9Jl-Hi;$gEWyQ|nFY@P>5Iyw`11F2Y zoaz4fj10pjeTeWJ#dQSf`7--h)wi{gf}rFluP`uC~ELG4X6~mbqX{^(kK<lq!f+5$Uz(#d5p!w2zg(kZ@eX>1@-3`S!QvgNr8)JWR*1PGGl9o=xv}`Nsa} zxJnU85~?n|SGxE@SOd5=h=){O~(esKxpstFkhOx=(MIyeX@eL*UY&NrHNfHq^kU% zd_CcL$84db1IBg9wffrKbs(3tjI)x9{dneoR?15V$ngPTHN`zxirF>3g%4zd9dReA zoBqYoaz=f&_6q|^o8` z{Ty|Y+iu%u`f7_m)bxxV&fjR!-2eLLBQ75)sAUvQn7>x=|}kCerOMrf=9H zM9pQJvvtl|Y3k|_p#2^$#0aUI990m>VM2E*{!6Ddyq9IDw-KUx+Xz(rp}~N!w2M;F z8tBn39;W9=V*K$q{qG6lPpbN-PjucuWJ?O-$n-8Z|gRkaUXnMoa>tj%K82_g&e5oJW6%fUan&3;-zfAa|vI|h}tzAcq zGrCBr7F0`Qy_&vAB2_Gs6;bUNl;4@&3-mdFai40!Ih{vidy6rw`;2P`0*7>?(zvSz z;<{?Lk=x}xW)44Tt4tIXVTho%hZ0ts7_N0qwgdjWH zZNGdTWN!%!4D7E`SjV`=W{kLgpY+ck1R6}v6P5BjMw58t;$A!8opni9jC2FH}3#n(?;|{TxB#*cJaf7C+cEMxJofe*m67N^lzzXM3vNL zfW=aos4kFPv{0hDUsC*sQY?T;mQPW?AT}Q_6#$HzBfe8>cunmY5b;C%vKC#i9=voD z%W~k*468i~B7K>BcT}*>ESO^-7Zd9?&7DB_@z)gQbQq0Y{@T`1LOUs>o}`TNMalP3 zAP+IxFn^f@{w+G{4=^2v5-#1IE#r^bHu|1%(zbbP!8@<+YI>!QP-0e=7qE!P>1>F@_L36lto>q4Pz`=nESclA=bqM z$X1INFTOp-W45b4xDfuq5%zBDC)+T;g4uV)wyY^MbfK4xk$*1SzkQ1E2Q+Q3G-7|#O2sEKd-=I96yY7y8vIhhfQ|j1{QNy=L%lr{KhX{h$i zQ^Z4{hBGlSl2%c_Oz*T4zbz#w=p#Q{+Aq@iz6_I^FbKYb;d1~SrZ;wa?tbpm)<(6m zFFn66Vh}-96uqi|b~XG&h+shwpDaJ8?2~ZQ;`e0rPfYkH&W3pa>w!5C*&Skd)H<2v zM=fe8Za?Q-Fq)^TIWWv>GMR}PI~!NAIm;{0KBUnA9pq90lsD zRTypma)1}MkN5S>)lkZklt;kMr2Lwv85NG!(PI3sbulN4Tw}{kX0j1yN3f5Aq~*UE z@KK)$dVA*;gCE~1$6h7C#KLk8uGY$2H)gsAnot*alay$nB0Q2Y;YsBEj zE78Z_>XuG}+AbWiM3>T~LkUdzWz~Bt@3UEYh!&7#V6LIEUp+eK_jgoLVovr}5=+qq zXd^b5IzcG2s;G&}I8gb}n&zDSpwT7-+UrVSf7^^z(C=lM zWm<#qW56%=P}vcJYNYwSYaJhs7Bxxz+7T@TXI`hVgOz=f5#XpWIm38lk*?D(X{rCi zr;@@!0{5dIeZNxQ_%M+R^?V~f$4*(NRkXoB6yIR6FTYvYN>g;Bsd%&YK%t%q40HFD zi^iod8tbt6B@)GsB9}U~|GHw+`v1-9|4+e6Ae4L&Z~}c)6D|38H29iXIGL1GWBIOj zpG-RFL~I9323EK8_*b;;HtDoha8PSOHsPUxO5$Fau;L|@;1@5wcgIZm2+~y==qDlVlY14huiE?jw{zyD9QnEVy{%EeBFt%hoEsD`&ZcDHxB|pDZmyM z-x5v#f9Hp98<*({c^+CM<&re@bs-k0+lHJOF=}hNdg&x3F%VZe_nuVz1*`v$p1(8Y zmB3NXHX7F%qbYvQeM(in#kd|paGQ=YKz7{X z3KdUc82638$U1~yD?tkUtcvqpJiFSS8qKKjvz9o=bk1;^-l=!7f4TfSVf+oZJQU#l zo42&WI8N$QMv{EOxU-Ts%9g|0@a0Wrl#l*FQJkbJL}yees^mWX4kd)To`ZexE;6;2vS=)+zDrR<3=oBz9M zN&k#Nk7l4Gif1Mu`j-Sm)T5`k8$C*eCBsq~>-|_DhB2*-hI#@!frK~b*rp%*k+{^cS625tXQK#y)(cGdA<^q@MUToIlcLS(#ct|U&UOTj_-PjF zKTG%zEfu*OT@XVg`LlJF()M5qjn?B(Sr8DDhxfde_urh;dz9fBB1=_v+YqnbyXQ@U ztx>ZZL)p%%C;d8O4?!Gp`(NPrFUnF2Q0A9j2b7-}!^01)CxB~ImZ>Cw!l^r|s#wP< zmKbg`<4E1F15)lOm+kD;;vLk(U5P8UG5_?-Z;XF4^5Ti)U-TN-(5-)cx%OD+>kQzu ze!Yr&{GJsOO-s8YTrd&GvlNHXy04H{ZYJU3c#`2EDsX$Fb|d5VoF2@)SO_KN*SZaX z4Fk0ZY#CG!mg0sg}$rcfN#psD&1c$E|cl(&17JCmMaa7OH|KSBWCxf`WIrI9&d1e=|e2C2j;jm5l!{ltYmkQuqaWN#K^z&T>Qjo z*x(65x4eE~A{7pG=f0eZ_Y;u*+n<@2;OmMVBL7hfe?!s3Sh{U=J=7jGX#U22trqxe zFg}~emELTiyVd8mHv=v1)~!QWu2BzFv zv)7Lp<#pC$69o#~LleOD9p}0u^W>g%TmD#fhiF-ZNW<@I!*+#nPK!54j51A*Mwh$1 z|8clj>V`gM*!{z~*`Py-vhp%&Jby<<+K)m8Zyc07`6G>9vR+t$vhHG3yO+C_( zU5KBsh@D!p>P-9ipy33$*xS?B)8}@?aOB<3dGyn59{c}xCBCy6uHo|I=i@!kDtlNymNT(p!NF4rZ9U%GsSZbH8MGDJ%>v4 zEwQHLxk&4!F53F~`iPR#(-YqdVaT(TIBsW})+4=%TbP$WVGjre?I!X{Khg_o&4-ZHfKZN((1wnk> z8k8W+_&e&h=o1^}c^X*ZM?wgVtT|@c)XaGq!KS#w)lrWGrvN{`vhDP5g`xQf6g0^k zhq)3aLRI?`3qDtIPzW>qHS6rU>gama`sS)9zhZ-~9Nm4G2%L><7^?QMpaAmb=1pwU zctm&D+mOe+dN{w!^{&+R$J08Q1~B}nZ;2tA>3Um74{R+ClqnmW_HC&+Zla)J!S5k5 zG|1AaRL0mUh~DGE*Pp&)gLagyA$GxT$&h-w|84+&{+5UD+RZhw4>3gjUw8a^x?lw; zvNng$E~oikUiq0magO=GIpbrVY+WR!qA=tUe{H0lo=Gjf-owjF-m0Qa3uAh?8nS0H z=b>6nCe+bHK`W2SUj+XfqJMgh5FM0P8)^4#;oKi1Dx_CE;^)FMr>K@emh% z%_JUZLAi5>kPc@7N4TD!6n{2Fogj9JNRRg$nC{^TVSbGEt$d?<2CC5`Jn73Seegc! z!_;TFUs|SX*g~~DgeRqMzA%2mjl)>$iMwVEV*T>ucY%Dx8PE(!oRd9pHkQH1>OV$G zvMRPw9&jmt^S~c&-b{@V3p9KrB(wcB|2D@6w_!zUjB|n=+64O_0{uzj{^?INybtbj zJntl%K9@e6-(DBg?<=)P8UMzcJTce*Wdq+M`HvYhN-YI9qw;Rp3p}Y>!G^*kvCuHJ{ z6_zI;l2w<==xU43-m-pYR>V$ic?4SMe`bAESl%+lIaKa(?k{z)hP=2|3vGKbp=X8W z;Na{Ffk;}>_gDW8B8~x+Q_dF~5|z`K!48SUl@8z5`_r9)EA}L4py=ECdt&3m*W&wO zj~AKb9_krA$$H}btmuK+-JWQrn=8NOCRmW7b__U@ewA&>Lb#rPZV9WL9kyT`zxoaA zXJ~6jN(c?nZ^;h}T@SfP>H%>wY}ppQRBz5yzeouhPa)faDmlxr@oT@b-aLdj4-=UK zr!$wv(<{3AV2k2*eM^OUe+*qWK{>5cXjql`X40pX9*&?!Q9S*P(E~bt+*jS7MsYk# z>7cVao>o1kva3d!^A{)UZ-TS`SH8-E-?9j1j%M2&^)$Eu)rFGxS>F1CbUj|(%sf&- zBoL91eEc8~^$ipua8#SbXhEaXzQ@ELRww72;pm^CcnzzQ!%J11<#mty;aF|iN4E~@ zZ0k~siFlr7tXG5({1O#pNdSP9vlo>y;3pyZvfjHX`N&k_86jUTWO@6>JO7MrPvQ46a>)zvV&bU299p7d(^hW%Ezq_f>7wCpzlL#3^TgMk4QX z>b}SIx>qQch1EekP29om$FY$AL=b<-G~@xwH5*DFBSIx;x2IO$bBow`!;h@7lZpE6cn!y_(@`T#@YFoq{Yq{vXspBRLZ~_CRz%WtO8MW5K7B$EG9aih3O-K4}IK<1G7v67~=rf^%223HL{? z8&}zXCsH0lJfW-PM=!nFBiw;2Mur@jvU3lJp9)EV;Vv{lF@!_`jYv=(V+Hi#Kf&)v7n|u15{qB+5k(4W$Z`pKPx^ z6XgL{2M`3h)s2~ty72RWOJfz%MD!f%&D1A~^)Rl)51JT|z2%v_YjMsHb(rr-{JX_T zM7;^GMfP88u=P zza3=aB$G%I9gJVxjUHI46g!>JT)8;0Flkw{CmTq&rR@x5m$KWMpyzf$hJ}56@I7cf z9^+Q#)Ynr6f?)ys1Mbli7jV(HQe+ua^8rWhB1@zt!iB+)RiB_8hJK*fH}?2_eg0Sd zYrOh+{^U1x+Q=9`)cTiE>fXpt0%l%67mSoViHo0!1NWt%?y&6{GWBr@L@t z`c$KEnk@UUja%PA*dEuylc&5xs_8y|Y zf_iKr?JG<+=}*}*{MF}Eh`pBl>v(0@k$Px5Bc$l{_%kpqkv<#NH$1)TuNk7oXcNNv z4_B<8`Z4^@@Bh&rk0ty8_XdimGS6^i!;sZ7iv%|l#RKiVIDgLOd`CxrBRg!(D=45v z+SbZ@IF$q|)I=BEcm>w-T@C69w3NG2K@ON;>>mg(r23kTHy>92a2XZ8eG0R{YYkp9 zGUmI_Mp`##kqf?l?E!IOc712=L=)e3()`UG|KWMiE`gS0)l;*LVm}O4z8iIwvhyf` z)n3AJ^FT38q%1p>N|Axxek*Qc=BR=$3Yqlabo+zos&o3N>`KRm zV|8NU!$Iyci1Taj;QNM$FLN9+dpO7iZ%3}Kj~3m+pp#eW%7ny7a#EPr&4@R*kkhrR z8>V924CxA|RZd^(_{hH>%%F@#TKoVSc!~+{`moSKhq$=72&FfEL9JRH@Z1R|U^rDB zuU6$W!_+o9&=hCA+8gR45>aYP5bX6S_+oJErPBtR@<}I6wyAl=NSB(dF2_pG^(WuxhwA)d+^J-Kdk;#xSC1BHfdtPTB+~PWA zZwDXOAaTwuHkm#zF`29sKHQw3O6&R*N(FI}NpSjNNse9OTv4Id{5k6os+J95vy@S( zFa-AyaO$Tn^+k)mFqwSpkH_%hl#joeZe2b{L*Dx~!JGZf*%Cpw;{~dTYTKNpo{#F; z*(RyBkOEpS47^XBVN@ckedeMTLYaE?kb(-aIJUl2DATBj@xIU>7N}`ii8Nu*W9nP$7FJR^JL)+(!;zpRimlkavn`5Kk<@Qt`^?_u1yjoJ=hed>4FHq zMM@YxxYyWlL+=32sCT^MF;vLQZ#eh`ccNT3BNu7OA8_&&R*Cz7?xp?f>yg)Q_}rIe zP_KP+I8lHjSNJx7lvSj*u2!!CU1)P4spS1M#_@EV5|vw6f-Uk@y_dq+2LC&@bgP8g z0IDV3p=v}_pO*(GFiXyCmE0*t@;Q}k8c{rXDpzk@G8UykfvmcRx#n`-Nfoe{uXYkm z0YnOztY*_vyn)*tg5CK385xmzQwxhp$lKjf(u)sBh&YXEKT#`cpx;0RcG8XtS@2}E zwCci4qzdv=F@&f@4B9t|Q@0~ZA&rY*bh^F^AVH8^~QZ5b-y4$pMrcg+jEFoF65Q@Bq6@& zje%T8V1S$O<2(0?vcr2@!bx3Uou8ivl$!=P4&+gNtG}2%oKFC}Vn>?PN}gB|{9fz6 zIU`Jo=UA0ej?c}9ou>NVSZeEk@s4oGOs#6<#Vv*9K2YHO2&zdh+3inqk0*|BM+S0e zqzXO4eFD?H?p|(mP;CPr9)wL}#=a2lCvlAr@^yPExuy1cEQ#MIg|xU7izEP)K&wcy zrRdD|m&R!K7L!48VCh z|8YtFhff}BD28Xyq`?AjyKMYS*)Q+z`H2}(ciZ`%+jnvgI_HNXORL&6+sQn!dxPHO z-eXYvtb|y}i?!N1N6i3(toEazi>LF0~0(HE!DuybRpag&>~;XwJbO0H|PPi z(t^Px_SMsYM663+(mE0+>6Eu;)L6)kS9o+aTwH>PgE@R4kcQMf$#d&wm^b@(r$_Lp z;0#=`yw;i)Uen5Dio#)TdWYk?h5jEbH8%g-Tk+3?)`TQHX249HML8eA$MeBM!dBUW z7_S(tPrW-l{I3WX>$~8w+aCrzqjRm^4}HXceb6JYC_Ik6q}8rtqyM8UIAa=Io}y^A z(qU#7&xw!AQ*E_ObF$EWu<}eWe5%6iB|NBXJLq)!I4`y$V7-{TAO#JiYOvDSG2g3d zcYVx!n#sGpol5Yq!x#e-D{_87OE4qpyTZK34Mm5RN$9k0{s z*AYZavur?@=1}yd=z%YsK{+?`lI!IJOI5UO)gtdwNp>ErkM*WR7O3GO!iJa6TSZ^< zfWLlejbl)+l+ykxqs(tx)Gz0>(Clcfp~fZPFOaYp+O?nMDNOyHgYghsyb)ztj!WS}%jg1o2)NHq$nLC)Xt|D=!buFUz&r_5zgZjpFKLKHJ< zl+g(ADZ+r;%BKAeIzB9LcDsmy^LS+{%-d0#m5TTGlAyWPy<73(dXCw4-4h*d6U=%4 zDEsoiJic$C!0X#`remJ7^X3U$Y-O(Fa$PJBj8Km9cKT#g6QDCdnv>u{-G+AS9gdHp z7m9%US|;iwbCXdqK8zjB=gU(=M7TNms_@fH9j+C1vqR4O+q_TnC#U_~g(tw(4hiZ~ zM{GS+^FnirogI=il;ohEIAJ@hor42Vp5tV#tW|f4LnXw%Ph+zr^%EEV;|hxoG`cFI z;86lcOyYM6dhCzZ>!7*xXG=z4%k8<>uEZ|-mk7RwD8$pA?aq5i{rcG!ALe&G;XMPz zw$$c_A@3p=t095as@R)a69ptKa;s9?fLu)o|#80Pc{BImw@X=(yLocH~B=I zW}jSQ#3Nz6$BNH?{K)BMD9Mt!XYV!SXP#q6K+0?60fM+IHr}EqZTMaR3F|Q)s_i=+^|0Xu(|L6;LXYyCjx~FtcP3>ZcXo42J>L0yjrnG~C)I=J}3VxNJNx-yByjRk^ z^SgQMiPaloMO>(>y+0i_c!@SM9oT)MG;?>t7!9?=`RMHV$AHr-ipxEWxi_8N znHcf-L&OXrGdMKYqi#h0YwpcVACaXScf}pk(xjkoS_x03>(CZ0&m&ByjS9 z+j37r6M^}?hh8`pb7Hla2e3+FvLiu#NZ`^lhvu~9UIcu&NDmW2MTcR;`?&vGQ)Br! zLhA4D&z3Lq@t(M+%8wr{14QiCz~AjWSet9E;8Lv+sa3q4Ug?K3uh6%&4Qggfocr}% z|HNv*qCnIi$GlpGq}Ubr78(o~%ENtx5TBu%tj89612%|fgAEKSv1CVNCA`YH#X9JTh& zLP$x{J~D_nvU#iTB(Gqx_YE$QV2RzSw{Fcp-Tto3e%=W)HijV6T#rW_Xcm2R9cOB3 z5ZG?P)d4ca45J!0*|2@rttlV8o7#h0XEj=G#$3RgOUCezJ{)+o)a2!m?sZzewSklD z^8%5Vob1Y|w6=aXYn)c09jD*IAD3)j%8KWx&+_!pcUq+~3-G(0IWMWZZ+LD_s5Tz1F;tvp>KInqARGVS+>Nx} zuj);fR5(q)xrceP1y`P4URT^)&Jb2V@88Aljv^+zP!&o$W^%cDxQwNbkbomO7|&6M z{cN=oK)B;3Gp09wK3hAr+G|6wNk|w0jfy7{&ZC2q8#Jy(*Zb_{^BWLVM$W&PG-@`< zqU^`BOvF#(wr)KLy{VXei8S()fM>w|wzMFUh3)ZUdFKDzE^iCTGsh@Euy+*cjy~Xp#)nkt zANpC3WW^?t$cMklj2le1Iy3leNyK~e@3iw1B2^~R#6m=?h@vzd1%bD~KvBW={bK!K z%rUda`d|zFPPr#E%6$%7~b2ror+&_;hy!JiR#A9N4`#!G-1il%QK;_%f7; z|JggLey};o9mxFtC>T2FZ5TRla`N{%L!>!Q8tryyeMZ8LUDj zL!$o>lw8{QvNlsq9ZxXR_#6V;%h6sylG94~F6!5-kA8;wJ+iMJ^>JG+%BV= z2R{i}BP$IW4wtBLV`#_kiJ|7#*SUKoPAf$n+hfu}eg{)yVeJzTl!|RxL(G0=H-ktg zqcorx+t)?SIdDD6_+ z?v;Ln81*y>dZ>QLWULO-{_^BHX~5~G2}3N#$Q*2lvORtJ z6YEgrFev}KRPh>C3IqfgohPgi`2TP1`QJ{?e|}D8_ZmR-_@fGZv2|Xo+7j02sWU+a zZgf&~K}u-%zj)4%8-G&wTigQXZ4^E=23k9M^dlaRAdP9-`5MnWH^$;}=%!1+bgSdp z;blv*?97_bizK)SsGy*n^6-3kI?RZ)v$}j04P{*^QO`-ThC1+n;^u z_6}nG*P}+MxWL}Gg*=+Wb`tl2f*N~%@>r}qrj{&$Q=OKde|^@qR?>3q1#87jO4Up1 zoF%$HSQtjnogq0uv3ZoM1Xtg6vqmR%-nv(yZpzHFy76|0aoOeuGmWz~CBEIE?quG&ooFpXrdRq{Rp>6(Zh1Fp+#EDrzR9z}?OM z`oB<%$n8E{1Hg|co?i0VTS|;t9ptphuJhc2wHInXSw6tc>V;7gd<69jYtCZfjBy z1^MW^_s2oj!mz7)%{h9d5TVIhxAg;u-2vt9sD+)=-swZgbAPx>;=(`?frRmD+JGEF z1gR;IA7t54b{=Cm;UX+n>BPA@Xe|)#aOP8Sa)RNv5`V-+tU*95+jvdt-=b+ZxfRaD zAB4xAa8^4_D@9-p{>i^pG2ypt)Hw+|R8@HK;yqwKnWr=Rx9$HuJSYGMIB;av=$*OK>0k59bjdfg5t$CD zB5VR~9ILYg#%tH9+`N05P!1kr%zDR4%l4Ni}i2a5EV zlcgLAhe{#6D*`Q(O>-- z)1LZhN}ak_Sw@xo;>j*(LTefpS*cF;U6%Is1Cyk;w9GSqqL*YS;vSd8hn;GBYJdgu z9M_lML%{^gp4<7%i*3;iuJ|^OYh54vZ6?pMkKM~~P3vYatQDQ}9csKK*LX_EsF)%= z?2lZr|1+29MM;6fvv*MDw)irci|c!5ik18qojn0z%nAtd+t^a}L#_yTc6nDg6iFQY zq~2YI1a@vtRy!E)`1&7=TkAYoMQRp%yU=v3(wX-JD#V}{UnVR@@;61eL{a_&e&hQz zK%u%5#P4D7a#PXgWQyhnA&!6kyz{dlf(hN%JAi*dja1jaUh`n%2yE3I00|*~VQFIr zoWNU2g4y-cxpq-UykJy(bn27#m00!ma!cjKox8&G_X-#4fZghUEPwk+@zA6`>2?Qv zw)};n&HJ}uVw7f86e^)NnDOiq+42pX-6>D1HqJ(81GJhOPG686dE)xD%B?XRI)%D| zZ7Z3*0Z>2X54T!#oSM9D*;C)7<#Jo9IcU+BvnK zL`E-S5=4-z1NhBq9`m!41@-WY>CAjaJS|~OcJy|$+XO-aNg%EYr=&66J4#gNM_#s+ z@9kSf8|jHme%ryceJWcM9X&~0l83hL(hN9#XSqqUUG1?>i#Ni&-k+_Z7Gl^wBRS4h zOYfL7le8IZyP^5j^rK(^(6HLf{m%!#zGfA5UokCi5%=0+J3Yn=$5P#UtPkTewgPyP zwIL)cfPf=r7_EyNJ*+lqtd<)Jr-_3m3!&(N?(MN>=Yj#uXM zRqiMr1B-m3*;_h@fB&jC<6B8p((G#cquPCq;MMk+TA1ioU`*w_1Cr9sV_AiUPQ z0{;qo{?*GrS{^JSA>X{ccW*0->FEATD*ayeeOmli)~w%eqC-aW+QxXD!WqGg)u8fF zmUXTT&S&(LpHaN=ksi{hY`;#HwTL__MbhpIeZFno7irYVqfK#l5Q(s?tZc5% z`V){}4^P3-Vgl;*z)IkG0t=1GXql|FXyAP-nG{h0m{LCaf#{q4Z~8G}I26^|#_T!c z(e8Rx59ha|{{7WKFjByX6w_9nqfTc^@4G(2t2{Z}_VIJeB5~Mm7e?;Ot6OYy@}+1L z#RnMcmJYvx+^<-n*+@gOLP|ZXepTx4+jYO{FYVo&%tqQS_ZaWapWhX|`(~B90Hix% z?RW<42lUxfwYyMm`JCs*Xn=LGSPXY*k&F_!zZCC6%{iH(`PKP; zGRPb(loO@i#@0A3i3NFIu^<(yLpld0cKq8U3Vd06+xs_0r~r^+Wl##pAiW z)HZ)n2mTYO{6BP=Ba6&q1jE$N%f=x}2=`vkrGG;YM^%^ZVw#8vi)(NH|#}5Cy<5)sWE8T;oYfc>$~D=ObM%s8%jX zVt(<-zWI2gc{mTaTm@)-^4-@3Dd~7MwdISt{1c0`Va=i8V%?tBV19Nck`s~~$aw&l zeq}D!-A_luuI?ax5eR$20=#U7ijO`;F^I^!V!JGB(wv&WoYS?QBDmzuIiNn~LhBAd zmgw6B5S$OVTEcMW=Fw6rzs{GQi{-Cd~LZQ2h8kz0RzDnZpK@ z0QkppN!@8d3a#z!3QwFSSm4?m9p>#Zogd8GEwjj_YBpKGCg~F%79C%kT}{s~if;E_ zG-x{GJlczuX5>v>X=D&7RW8yku>_WvaA~+zo$RicmLXTy*Uc|uS6H|iSM)v`iHbVU zLHfs~gsgjb5Jz2l9GZWUt)#xK#Q$*2MtOiFin^P{zN%+D?yfwWQ~BDWI18GMZ`P7>EhrXgR=STHo80G zV&+1F?R(4Jb__84*kq8!*J9|Y?>)ktiM)zr=Rry(uQN8De5F#{aXt1tJK~M-l0u}T zhf6n5Fm(NM>T7Z%_4qpD&SR1`54BHpJQcxViV6#-C&kSuG4Y(ioinKz*h?+w(e*|6 zKrZHI?ea>yySST`oq$X9+A#04SwJ{QxJJ#{s=s$iuvTgbyOCoP_n=L%L3jO0iRIQ* zjbPha%skhg4d5u^ZQsYGy>6LFoNOMM9ehVl7f-sk{IWmm6}{PPz`AO(2qE^!|o_6SVoeW9IRk z>P!oH`z=(Flp#J&ix0!;@IS8Kh++|Be0ZQzl85d1bsqmXv%>$KYq?uH-`>>c&z}c! z!BiC`+^J6-V7~afDNx@gr^a!E2pVq31L)ze2dqh2UPiBi3#V({;Z#ydc9-Q=GkfE3 z(Hfoaa7ybV4nHwMyXx(AuI*`vG@A6p3NM7o0ATUi+204L=Z31}sikuae(4doq}EO1 zs8OJa7fcoisJ~3}@Q;NzR$bnZHuWT%eX<oh@=JqDv*;PBHY<7ypboE~KLDK1++#cdxqI0HR? zN)a`R<0c`a&<>t^_3X64*ArgFRkXK5&DkYvpEx?S-Z#p*hPV@({**5?oZ=><4O7F) z+)TjfF(!{&FD1Obp&{3~|9QFJsAEO!KN*7Oke6N|P{5|K#o9FT%i-_dS6Al|?fKM6 z^ECbh8Y~wtdEwqh29*BK$)L-}cL~8F^{cnQ%9DUM!?P;GXJSOVndkHFX7zfPry2Kj zomV2$bRA|l7FNWQ*>dj+X2s2@!BZ8vHEEZDw67`O9Z7Xc+0+8uF*%)D-6*8}MEy(O zgAMkLpg9) z_)YP~SlMJpN6I5}4mTBzvrD^iDd%`Nr1RSjHRBbl>+8}*wpQm~G!vNZ07i589Xdu==* z&GwB>>A7;E*h+4NgIS<8>@(&r7Nm*0>7E@Cm>1qC-{yZ^^Cn$X>?xam76H-Z+;dOF zbN?X*H~j88yn`8R*2`2v(j@)r85}_9!Xp4|)(cL8E^b!WCEHDKu`9iR8U$?}o1T%C zHA=581fJFCs3AmIeO#AERI_jEjmunHskGhxi(>izz>fbYFl?qZWzL%8{dfTsGJpz#!{I~7y<+Txk&@$?0hI9F!pwU2i>vmk ztdrQaUcF=og~Tkb_i}LAa4O7vYoz6`AFVNA1*RCLff75qg)weklelo@#P}XAMPQM{ zAZ7ccm@=HJWW?BFqjf~YyTiE#;Pp#vrPjWyG75Yl5%uVQmQKwP1CKizES*Y#*>;<5>!JW{hvGRQmiQavCqJ zaK(X0B%*UZEU-g~6m4ls{2~cDh?01Mj%gm{QiRD!zKSn^d2k!aLOGv&DaRrj^Z4rz zvxa;ckvxXq6s@|FY%gD!jA=j0C!sRGwl);(f3&wO1b^yw5HTiWjh|Sk^^LJ^bFw?+eE`;PEfxCH>UgOq`v+ zz72bq>X3a)Ss+h}HmNn`vyfAx#7ND{vBI67)LBA*DDWR#%s`pJj3TbNW@(-+iHF_@UMl60c3c1pk`E2pd z^v-NtHpp@6=|WOKEC$B=+is-nx`h60(sC57(o9ND`*GJ2LvL<>-oM_f)tqu*kcBV1 z)fzb-b|*HRim|McQJ4=vWY<=@>LU zA+ops)@46FzVw=l8xauuXL*8@B5!xlC3YKQv9Y7+L_A9 zWjfL*oxARp{=!|iM6-3O2XH}H;4<>~6~nhU%D8L;*J@n>0e$ze~$(%<6gK#?2i8t|;%lqc z^@);_6529{obf`|YMm*Du*SSK~7B%SA!dRQO;iC;a{YD`c^$u}JW!?E7&8 zb!xe(>H>^S-b|@*L@`@;mct~$lm@l_1(m)f ziR__YfPsI1ZBSXPsA2uWJ#fDPvmbuV!LE(?)OX+J5#)2Rw(sIAbCry#8XXO+kxz|} z+ciox;;fUoLTtp%DK`yLH;?rZ<%5lAa@`1z7Tb;Q-Qa2}TF2K`3tOM=Gzg!S}`p^M?nqnONRB)N*e ze!v#Q#t6i2Fia{iPwbQN=ZH)DK_S&k~Tu`o~-t*@+OO#r`+7mBZ+U1q33Olq)E^zYW!N9%OEx;EULU^ zRKtrwNZsVc6enz?`I>zJrnEf_jL*TA(-M&HH(h`Ikn>sl(9Vl-1U!=cD4f^bK7*1J z(evICFguS#mwkIR$aYuzUp$TM^XIvNO^r)CFB86?0kGZWxsRSbrtC1H8B5ZZBio*Y zU!{4GrkT4a%RUTul{6*OSkiFDZjXE)C=+ zAdP2Z`kUOAk$0d6j93i3!bvHK$ao9fKTbF6TNk;ZHU89(ux4weJ$TVaS=x{XVD?~) z;+}T~J)U5=;iZPK0YBU6FAd49f&u~+j~!2>-MV5n#Vscry0U$ljc2yFAc3dvEHEj? z?rkm7=ZCVAGs5kh)|S7rT0vI(`mA>ziT1iRjhIweMX$^mGTzC>0DCDde!P9T+pmD( zH4xn-c>!u~O?v4Xj+8%~y$brnBfqc+x6@h#FBQkn>G9bP3qcw%1GVUWZD(DbOoxvRQ#+p?++e2U}t0d*_d362U!+BYdE0Ss95fD%sB2!c9Vw^ zwj}wW<3VRocjCUSsK;6qQPlE8;@qF{k=~QF(?ZC(RQXvRUTwCbEBZyzWg4FR3@x02 zuX?%^JJ|vA*Zuzg*82XF8=lhnPQ3Qmt3e6LZE^|7hq@j+em$IR;FfA^+(~I+`SaV~ z-@1DJhA_zORu{eH^BcjHJaa{7B0HJQB)stLb*HAz@rt--paZhsT1AcP5~!{xO_Ehz z67QZi&O_&a7%Z{3Ke$xy05-R>dQ3G_RDXWP0|+`v06}43|4c48`BE;VNop6(U7FIe zTo{#Nt%mpn^r()}+2Xih97Xx%V9VYNV@u9^W-$nmM+$vkfw+3Q81HoLJ}~giBmlz> z09DT(w{v*>HZs82!zmf9Z0pR;$KJ>7wyyPBV673I-})C8=dqZb+AeNAWWJxY+*0?s zOs&`E1AtO{66)viWW@KzT4&B9Ewjt+Ypno7V9`k42Rq2*O7dzp4#Di5{j85i8*bRoT3z(fcJIq?V12&-e)wf8jx^G95PFx88lHJWa}PyG1KkAQzovjG%c7|QXn(@a;Fm9=<&C|{_~9E|cSgFt3eF$9oxO*M|=ADPShWXa#C zP$uiQpQiPa$;;Tr>dh*8|1<{lqllYBHBPf8t5Zk3ZoFW**hwVFiAmb!#|U;{VF?ld z%d?ZDwi{7|)0%&kGbJFWxmK!mLvYbO-wT8|1CBQVJusm7HXw592X>9Q{Pt>KYO+N5 z3Nw*sBvSw<#GphKzAr>0 zfa8*4lhc}tf_wkOoHL~qWFuK!oBq;EP>h9Lg*5N*`0zvQ*@e%m^Hty9K!zgZfv`aIOU44|@ z9u*Hy6;2o_nbp7xf&$MjxorqlWzeRR4(SG*pHi`gW|c6GE~E(CMaf{QXSaAt3{kY{ zHT|z%+6d%1lw8H<@_$;qskqV5Uq`fC*DZjQe%@ajmgV}y&&@4Gd^(dF&6~7$(4D&b zGeLNvMs0C6B3Am9tbDA0@2`8ODJuh2buH#SVx>kO(1x|ITdvp+)+P%21LDCzo|Ck- zR=4?}br)!zkgb`c`0Eak+iCU(Vn({Ks2ag51u-B?jMy5i-A)@`Mj6YdYAsJ=@5nuh zG_KNVZP`MQy3bkJW5J2|eIQm~^>Ig8m7(Td-*|y}-Wbel4AN*M`bat;t;Kw6i2n9% zwxhizVgA)+NOt4HOvU~OFqQr~0ternaf!|bbRNQ=V|@gfpuE$?VK3dJUp8Ovk9F+? z*am2I+~>peGm-(LD|#5YzJJnzjBW$#9pt`}*?yx`sbLII{!!oX6VtBX-_X!GcEloi z@tf}NCKRks>Mq~Yx9$Al>h%QYOQPl;^A|4J>aYMHL?v0Qv%`ON<1V^z!zU8v{}71& zz+O|gsecl{AO8YuF43lHP@tAOtu}{Vc_~VhIjl}v3RD*G+DPCG2)Ea(2cFomEe2Ps z1st9o-)RE@c%)gMgmor38nZ)Xf^vIbnd6rsXp_X7pW@vwiG3Aenb_+X z9?nxoyq4$%S#|wkUI;J}IqC?L=RrU6|UmUV$rnvgk2%wXZRIr|vmHl#A#Um92@i7wr#*@=dcUTyGtqOM1kW zxwl4B7oQ&N$RO-@g#I< zHK{k1Igt2hWCumUt_-WZY_S$#y$39TbxeIDp<8M)Jb>ywG0H`o!^~5kID#fGo?X<; z*Z63GzW30_4g16-63!0+#flf*=6_{mncW2VR++SuEr%uD1v7<0$^Xa@_tK3r?QvOX zkL9Xw4xfVC~a&t^~)o=n${bj<<9!B1S)2v{7Qi>cF2TQ2!Q#NtwG6v*gUL zydH-*026m7*>$Op-zi=NtD_e9o2Gtt$P<9(@IH?`2%!6N$iGBVl>6Tuc_T zOc@F|Fqph88hBP*e0m^Wv8g0SrY^@{TJ5h2D*CRir|d^&@G`r!%&(W}l2~>&Tluu+ zG(Y2Zs%EY_qH(tqt)8&qF13bhsl~4wj;!}L4aJ1~Gm(BV+cFr!~kVtw9# z1MFZg0%rCr(!>Ls6ARSZuh2Z4+xIr3yizdg3ygY9n)c!_4=GV>z8Y5#B zOQXuf_wSwYBHlyNzW`f=`fvZQcp6(QAc?SvmRoB*%Wv(*bEu`Uq>Fn!o>;v!kbL@! zG60uErh|2(Idr(bGPL(b8mz1vxRZPOQQH_d*zR*>jL&!`ex@O7YkKa!tmV!;yNiid z=X@)+4mX;-0BC!OqO_r*~-fyv<_ZNYUh*+S@*x%t+JPC!9?&7^LF zZD$@;PDO1Rr2xB7HH5%L4)gEhvMtW)k5C-{WE0AF681mvw%^It%4^0hU(2WJ3kxq~ zp~VOOHSsj{$`n2HNV7nbJrDjx$eWMo988}>4|P5byJ68B9%%ur@7+D3gLH099|L}o z)m@Fw@TkwRy8bU{`3-H75Bhi2)2!AiC}KwP^-42t^P6bv7G7x3%2QJiPkE98U`|k| z4Q?u$J~QPBa=v-mk|faqCDVAq@%@8Vo<$=0jNLSsD-AN19@S^Jz;={ZckqF1-Z46rMAd+tXxL4qv0GvpkNo7nY`#&Jb@ zNCoD3O>y78K&8_y=rib}AZTZjpa!2w6ooTVlb6eHnS_C+ zJh`|3Kt__V0R#g!|2|~ey4=4l(f?BjvaU%$^3*CblDdoZO5aoRtOI^HALnyvvc=E0 z*rQQ-;dv_QPvq7{?N~;Ukl!S4=edbJ55UkST)DB9>Smu*HWQmjBGZ?ZbHb(EkRRkb0s(fagG$->BH(jNZf_SNNJqkh=uWOC9i4j0&} znv-X_5q4fKE}2~V$Rd}%FIm!$a&@)|LBVi_w6xcJe84=$KML5g;I*tV6*dS_s8SdO zBM0d&-ABV-3Et!L8Gi8DVM`iaLslq11X}gZsL}srU-*U9aI7?`D0&ZB9fpS7K2cA93I-8~KGbq%y#f#^? z-8f%n#(ewq29Vp@dxXHNKXn}rO73^n=kkvU*;lBy|BEPR{+Llma>u8 zxXv?Ss>ZFgwsTgX#HHvJCN1T!yN(v-b_N)G0C+O9e;8u zu+UTz$bHF?@dxa6Yr!n(fL;KYy1>L+6CE)2$S5Y!DG+ouJ~xY`*S$a3@$|T!RT(a4 znVBx|I%=q7Ql=-p$ut>$JDMD;lW9fZThd$)G~!p@YTz&lEO}Qi?w{}N>r3Ar%~N~h zEU$cAp7cjDHBQG}!|JzrN+bBB+`F@UB|IHvS0ppKG47gV9s}sOfkhV-jC~1Pyz7nU zYL|pwSQ$}}lgGPog*xTM#3hTb7tJyrxOsdm?s;Aqh_j!nH^}f21Nm8J(?LGDm~*0A zBVU?}TB09|x}3bF?>qXf&-i-}omNq;P+Y$*Sjvl1QdAte!|1$K6ac_yOFZQ^)yG>@ z1{KC_s0?VJ56ve#2$yzoW_j8c3KyXVoy}+hXjUE*bB9naDZ^(#Hq}9OyvnZn#fzVe zb8plXUtsfV0pnjI4@L*b<17uyN$ZtcM;h+;HlYfa@tgUSWL2f3#X3z4jV{h?R-?Ib ztZa5mU4m3UvpKceRA8^H<5#?5Enoc;e~ZjrV3nLu^t1r#Z(DIXIWtM70rr3$&To8^ z@##XbQN8~-;7jk}LEe*E}>1@cvKK6}>6HRZ38Z{emsd^|gy z6$HIWp*G52VfhN+>$WtPvlD}(tvXy63YzP^GY|6ZdYH|vy=lGZSGe`-we-*Yz((SA zfEW+I$uhM4j&6~P=1!&ePW+vP6-9wTe@M89}?1?1!{IYv#dZrJdCTf>Ho3P0~4?sTRMN?tgL%E^4zJk+mxZB=nbhfJt1}Q$9qF5Pv_Kp|a$N^Z-%c9g(vi;wYFYUK@8gP0z ze}!Iaf>#YT^822uRobVmo}2*u8!ZJF3nbvoXTN~28W=Hni0#9>imeKA=X_qd5>Wok zktfywRztmskob*vQXV@LhKRwH%FF~qUpLhg*hwChCqGr&1^8VZ`8h=QD;aBBN1?tPv2EQ6~!o`v~TxF3gA!8G#d{GmBg_ zik@bL)~8SQ_YR^&CZ8dYC%{Zu9oOLk|6qJ-$Gtg$ic1sC1_e(LsfqfZpKJFW^%#qH zTV|2DUzw#8jBVBJOyu^m4eDor-)i-2fZf@~#Hugt@Q^F-#y_&7a{)tQf>ON4U!Uk)FkK%#ncw~jFJPH+ zdsBub@PeSkW3~3D;z?4_E4Bw{%+klJiM&on5j0klx}7lLqGJ635I8Qa;M!NT5s8tMu=t+3J)FBu#UMWs(sL(0diQgSe>d#Aivu6Da;c$ zp$oCmhs-btPJvcqc>~cQq|Amud$1WeWdGf+Es2ISmARp}8EF`U#+rbp9hHWw9~|va zT($8xg5F?wTuEVY+-;~Vj%tH|tI_4LStgtr873fo%YF}SU?h1Ec#4PnJao#a2YG)N zx0*D_wT^X!wH%*|vNRQq`tR?mou9cb$Xhrs`LQY#ZKUmC@xZ-3VVhGm$^l1sy$W?Q zwpL{_VFZ}^@`KcvnIRPry%5=X z$`$_{Gi{W5I^)Q&N)n9vOT2uZ8e=Xn>MS{`rHQeF&!?Xf*7Xdi+ zX@Ck|E{t0@myrpo1gKTg7qKvu130p@6bSf1MA|$537|Y?n}Z^HFt&gHnd;k51JCLo z2j;#zIk4N`@QZ`{t)gjGhmKSMDI9%!h3m!Mk}A7^tTyU9B4FYn0F29d5`ZdcP-{^} z-$l>F#AjT0@R4D(6x=5IhT`s1{l@b%Fl!O;bZZt95;3`8g30cw*R1H>3=SgTIFT>6 z>~`G1x6;Yo6(%A8_bW|}`;lwPSfIbi5nyYxnE&|_wo%fqo}tlO(?corta)tO`b?#Hf5OKenrO42Syp01oDDRUs;zjN;qd)VB&R1{i3~|0@t5uXnX`> zK{FEWD}DDxw{cBY;z)F*?O={=LfbqJ=S0D)g{r*Gt!qTdbTaB)tkGC}vc2G2lVy?z z)%jy>q6+c>0a+XaOptI(ZdhamPv~%=ZX7Tlfl)in^;A5~#i&rCu()rR{8cq|WQy#PYu6&gj9$S>1;Oi`C7{oHV5W!+gAa)FHE?!8i$ zQjr<&7S|MEzQ&lIba8$l9ICArZP^@t-EwsR>#AcJJCqAp$GPr!hOEpj&sN*Vy~0Jq zR)uEtl8yb6mp4XB5%m-E!W9mXo!wncf@wY!o+jy~D|J49T^Rv2UmfURd6C}fJW@>P zmeG=2+73ML^qNIhFgp%;u&ij(+?xapm)RwdY`~wI$iXkHtnK_7S|>B4n)(DITsMbv zUmY+wa2ec6+LQqleap#%k~XIOj15c(>GjQ2D`PTke#6Q!K&#Ip3^qX^ZinI5>5BYT zeP!}$WF)vk!ze1Jm`|q=($co&Gi?j|u=_-)X*}^1paTyPcpyUZ`BFYz(f0{B_V5EW ztme^hzD^O0JxL2uJ&>KaxSEH6F$Wyp&qX!+{QaT-_oJfCX?ptBxNwq*;ji1_08d(s zOk!bd=O`rbbIAQ!m)g~Fp;@?(n>D6|D$!l6r@vVb;&flk?n}wW>9N!Je&E3tiBzGP z)52kb{L7V#&l71=_PIhvL&zf{ux1Tra5Eg~#Ya!Rhv+xELR$G~BfK5*^Y8I&vR-IqZ8p?!0o!YyF? z*H5GH^v1I#F!e2lU$s%x^A!Z)wRg*w+@&<(BkOFS2sCzz+y%r z%z5SX&qGbpyJAXu#tCf7ar$R1I`#n@of!soA+)sng{r_fLc_rSc$L6S|2l(i!)6!i101zHg(GlUc7clD}uCgGthN zCFFX~DBxb)AK*5x@)=yRZ=c`_pf7T3#J8oY$<=G-D%qkxb(SY`N=^b!z5F=Vj2($j z3l3mWeslKvb!45cxaXDtjZ8b%J7YuaiuEf?zB-p9Nyy~oj33Wi+<8QgzZ(aX(!AdR z^7vZk0jKU5UJ*>#ACjph6r#@GrwzZ^#4Z0aa;moP*DP(?Nx3^zx-9%eO3FlJ+Pw&f zWVNq*dx}4?5Zgxj?XQjLsjyF)Y;6JF$muW9VM$6rI`3pnYO7|aPnN19px4+T#m8%; z6tX;_W0>M~SoX?YmLS?2-SUC+xl=}aujn!)qizD=UhHRGN*i8tB~ZE{{5HxI@XOf1 z8p5W$2=%`IMn83;#AaFUInQu7bAW}2`UJA>%uvgCkE>Mb;0Ss;EMn3w;bs4En?x&d zK=-Lf6{l(|I#(HPGc$FBluec@{dS^MicUpRh9d4RPH1Zm+&n!Tq#!g-+uWKSYj7e# z9*7d(NGC;Pc^%XZYJ*irYVi#Foty}p`Jb_SI-f~!lC69g2NeHWr$6GtKi%vq; zYel6M0a7OEr}cYNLagbt;u3j`d-Ir-qjr^PKO9Mlz?o{E>vBxGxaz~eZ`LA&gYDNX zDo=^hTc-&QV}%1gwiRb7oBnVmINt)3qijcDcgp6B^*_PH4?kR*37oHBBX{oo`*C6- zwST|<1x#G~vDfQ$=`np?+2_2tUJ1MB#?*Mk`BY{ef+=etSE;U!lq`H@7sD^oj8fho znkTP&n0py7-9`OJ9rs9~k)XT40flearxvX+u~icV@c z#X7@E1oQziYZ^*0R^#_m1y>1(@Rlpl=zNHBFTCH@+Pc~i$41x&P(^`BL+#e-&~2PX z#__|dOqx`xXoJ0=1wFfGXt=-p(tyK;kHYch)MKH8CZ@&JK zQ_{fYG|^|Kq7o&vG^j2;%;+_P99+u@RL3Op=NVd+Aoo0vt47;>Pw$$JimY@tbBra$ zV?8#nF(fexZrGMed2X;$NyD(EB*-48CP@=O=t-KkU$w8zo@-5p$x)Qpx+6& ztrE5T`JPj?fMdp{!Csn^K=W9A<zsKHr(z zv9|4PI}zWcyc4eWwxOQ(Q>)r35s$}@CQMm7kbeL6O`m#2`Bhb6T)ED+5wBG{<>(iP zG+8P-7U*5I4~n!0{c!3U(fM}`%O0GLAL5^1OzXO`o*|HET3Wx$l}NsK8rTykxT-8E zY@>*J{k<4w%WXR2Ia$K-U0j0(t=BQMdCVNp#~LdETgSTVwCh%F^4b}ts@)M7G|M(O)1+|%YGs&AKJSJg@tuZ)84oS z0=~E0(xe@<_4YDZ>Keja=$)%Vlz*Ex_=MG*pmJQsaqskyT7C7DFynzJ(&bgEPH|p( zxMvsaa4kI62DoZ*YmceP=v(X!rv02z!fN^su25%P*LR_6w9j+zzq2We5M8MgH6k*#nkDh=g z`KYJDpML_qN}ft;J80C`%=72U=VRu5qSS=f62BIs8)m871ghQ&ypc}%j;U|mig);S zq+J|q_fK}AobqOxJZs1Q8HX0g-M6q=-tBjvykv z2Bb^xH59248;Vi{>7h$Y=)HptR7%7ULJvLkh?D>!a9(GvIcwJ1&fdD`&-rnF%ymIB z!F+Fd>iyjJK$Tr3O=CQ?1WG-+x)inGx+1hm0cG-`vly9TrAMCg)|32=p*o3? z5OelTlKlK)>1dWVcC{&Z4;RjTm!7n+=uvUxRY>2fbLPcv~PC`Dcv|9TQ2h8-35 z!*;fEqN_0vn+a^5Mo}5>Nre53l$76U>1}(`MO2j1xe`XNillK%?n?TKL11qc6@5E6 z$ra>{4(NU0mCSwZxEcFGOodF~CAz||j5cNbmXc5D6&>$fXz%B^Wc33xV8 z+n0N_8JrvQzhimQfo{cfH>*yArP69xg&U^0pDNc~nCXlQ3+D>HLE2pI?yJo_`kYPd zrjSXE4ps#9ve-oxQ&Y{G;tno^*vb)Jw-o4lY7MO|2Mv|-o6BT(Z@Qki*>D>G z&{kRDm09KangffN@=^o}W3-4=wVYY3iQ=rBsP0~owAQTSk69k2Avj|`#q*oiJl}rm zDd%>%+Mw|A@?fQrOMgi(-csYs#JhL*1m7B-4W51x?t3#)1ir1pinr@bq?$GfgZlt< zaRX_Lw9)QTy0E-TNTQAA?mYCIJlG;JVa2Ys(z~V@$+7x;kJ!4u4GqkI4jxOi}Jo-I^tLJndYn5%7 z*kSht{1!n}j+UI#T2Oo!<~KI=~UV3FapKO?s$J;VH01PW?KPn&XR;*X1G=y^ivu6!WKn}|mZXxY`km*9!8_2?r;`}} zd2}LL6q*l3diye_N|eYu?SFcKNn3054=|FKolH9fPlf@_tdQe(V~Pd)LR^_3N2@bOZh(wXbn8<9Fh(90)X$ z4ivrE0ewl&;BVBesVX^3{H@+aGZ=93zozYT8F*JeK1-kcU`931TI@dr>oT`!s@zle z5;;pO%Img9Is6~~Ah3%mZrhU`UQE_<3f(HleuH;Fan)&Y+9)~J+T|9vO{w=4x>=RC zf`5G6c9yXqtlDS^xaSf2wknc^PQO3Leo86Z?-Ld`g4y7vbFW zbGsV<3t~wHKVWw%87G@8DYJ8On04hw@Mh)IQ&mn=JQ?_Fzc6_DZ!yomwp79E7*Jf~ zNVh)ILd`zCgvRqLW1dLO^VhnLWuscR^sWrsXbnZj{l%yM^>_ZqpO}=x#id-ol$5I63oNoYOY{&Tv)*@u!VkiX!34!b% zAis=-7uDj@GapbNJvpaoh%i$PA#M7WY|p$>9b&D_Q7A>d|EVMKA7AZXzh+L;fU^>S zYHC}#hPbK8I9uh_b0=hDqgG8_bv0nwuG0wNK8iMI4uqun8cMux=lqf`8>E3-S_sV3 zPW0r{UF=UT<17Afczq?Lut$z0=+F%2=X)J8LJc!r7#M`})rA`e>Su-JQDAQ~cg+4Q z9`SDn|6kweuYU@Qy{M2`X)8yhs9!vto6P4>#@N}#-{r&-8@yi7k|v`}UTNw!#$IT? zB*k^Gd;6;Y@<=YY(7dmE;Hhb!(o@Afd@V!Q@-$c6us3tsd!<@Q^*t*pjPej`>-&pL z8GrL+DZF3;&v>5Obk%hI(@f_EfcGK%31j@`c~wutW=p_f{!&~!`brno`l?Q;yq;Zy zK*5r*GX(NcH#c_toiE^(^&6CMJ$Ae5tMs-JQr^>gb(% zNmpc6zwoj&jOstE$S?m&bpdQ!=Bs+GD9TvP_wCFAM$-kQNc5Krof?^y&-A*(3fRQV z!+*(q{`k;me*SLwM5FINnueSfy72x8z4-pE>ym{F$ymBHTeHE6iG|*&U|&LLdbab; zLWA2Ei_IH*c8f3>BKuzu7-S_!T1L6CR$we6por<8F0#lh0M($)B}jANh7Wf1U{lm!8arvM05B;gZSzaxms-JSm~FpL-(bd8FRw|> zIyX_Wae|@svtBMR4C;NLu~B`k`O)SIEZo}0t z$n^^df%X2>DKXy#e+&GwR%p9@iXb($mdBu;Qn<`T_648nZ}vIP8@Irehble;Ykn>x zL@QO?)kljkRy|x#-6+x$D7HM>+#$KLV+4vCQl+H99{1dc_~1iQ(j5NR%J%PVE{)>X zBcJf$(wanXgt#tsdo`X$zq7!Mt7 z7GlFKkRlcVXvbhk)bB!;e|15A;!2$s26t#JyFJN_u8tzHp6m7pYS4vr{D6Ltb{Sv( z$|mK?lu>t@gk_M%*K(!&&4vDABy@#KKkKTfr~ximWH3Z!n{_e$JPSLxVr=9$m9zq! zdGw1C3(K|bfa!TdORTHL&160=m4xVVs@~YLiFO>nw;qvFQ{lLqbvItXQmfds<|v3Bfa`s#`%rejs?VD|v+TSz#hKeq?N)&6Ak+DxEP^YZVV4ZPUX***+ z56}(+pN~gG%1*m_3^#Pk_E?4Ca<^x z)~~;R_bw?SO<)9T|0}iMA0;mzib0$+645K)LD8sDaOIPMZ?O~3&5XSVMoDO~WP0tEtx18vtqE!-+oR&{eYeEtk~7Ln>Y=2;%ThzECxYf;CMTz^ z(py&CeOl7Ai%X6YPHO#3<5S~4`f1VZNukzIjk(JOp7YLcw){8N%U)L;&_*dZETb2s zm=)qv^4`;(42nddqU6b;+jft^zgS(8*68Ov))cTXRQxPO+-XUwi}x2wvp=E>i{S;O zkN|6&V-$MBHEx>kJN1sfFKV^7Q?*8F$$9Q8S>V@1`n8x$_zkSGa+_zn>f%70l%o`oRM5a^j8%r59rZxW!JsTrXSZ{EJ$=;&&# z`fPxc@e?)X9IDpWx%H%x)+se%{)~>P9U5|6v~h7}IyjUpQ(7MA+wcs31-rSqEDi4t z+*qtXx(cXs|5nT}t$I(vA${P~!+T7SVnnJHd53;w8SXmmP?WZx;!@JzEkTr>&zOAM zrJK~c7vf-~QOVIl8)`iC^)8i~np8IESm}o!b;EQSRGNY2B(%ggHK7L|jPA$~Y7I?y z8Eo=J;!Ci8!Eequ$O{T~EnbuUTTclnncS)FL#6NS9X=g%Nhix%*{M))i%% z#Pz`y!{0oaCp(a36Le8CMOv6Vaz9`V-U7^{kKA(WP?h_#tMFxJ8S>!nd}4yN`~Am% zbE_zC-=j@CaL9gVQXnQNW_-j9bi5&1!OHJBBf3|+XB~=~KU7`BEuxZPY3qScRgOAH z!L~fJ#{$=cn%7pO^HS_p80%aM``t{CUQ>=3$>N%oCI8f+DyQ6ubLslude0NL9<8w~ zq#*Z~;g!?^kdjyJy}c&2R?SD3v>7UUk{cDs)SGd|Bip_2q75nyg&>6{%B$g%)y^Bv zM67`Lra37#pD>u{hYkb@`#rgby~(! zNgQT-I_G1GbWqfq4e3Uz=PV3VmCPG`b@3un^GlVeFaI#!HNnZQ7rvkuFrcau-`Ao< zeeqTbtVt?=`BY^{s^7aM1JJuR$Wo+YJgHeaTkp7v0~v=GY9=~zcW2v%zANl+?%4Fr z)7K=@<^lMYmoj0m(x9-=sVB@(2>tdMZ%_IFzj?#+l3il_j(-Ny0O`kxzY*G=o-_zE zUF;zsJ%a>q|syJ5A8 zH8-?}U42ozReDxd$&XpYTQ%sW|K_(p9djMnhC|2vj(;d@15ohlJ9`xQB!G)>;MW)5 zko0LYCyU)_OKT`6zT-?z6@B)8ma%D-B)4CoAMTrAb#CbsElx^-$44x#u)Aq?Xca2j{y- z0K2LF1inH1Zzo3<-_MqE%tw<*^EiPkXI{G{W|Xg}dY6~mt(~lP^ld0XN%aoM7cUzS4 zNS&VMm&TQ|pzE(aO7a8uu$kx6M9=g`G@z(d5p(OmQH%3Jy0O?Rb!rP1{xgCqwI!j8g3 z42)8|Xt*FMO-k~5XV^h%$7eM2xw*;TqC;K9pWg=9P+rj#=Mvje`tN~T+?FGCr%K>B=gjKb{JAp@ z$}+Gaztb?*j(NvjSw?()@^#9=&6RjV;8rW65fBso<;umsed0s2g3d}fQ{nNJ71UZ% zsT;ODE+jC$a=2yFyaT$y3aNZOd-ejn+nTh|ss!3pVqxm0`66X*?>}Jz9d;kKS)5ND zR8JJjVZ-Dw88*BWcN;ouT7ETONZtk-NRJBL4BS{q&wBt0b3sHcl>Q@kX&D*CtgJI2 z%J1}cqgqa!QM~ruwo>Y3T0FQ}pAxdxzQMa}DOu3~4JDSi@h*3${`=#FO`g*!wPM8E zi+kLTo6n1l;_CK!e(*oGR@pMscUT0Tdb`=$tGAVPV(LKn-ha#hOGu$5vOC8`S^)ME|xMKT2Bu^R+gmdkXo~ zhf>3iC&}0$XiT-}yQaJTp}+oj?7YJ9V`WrFo&IAf|ChfW0M#c}1+%DP3bepIOV{u)JEF!f)(_bYoG_8Z-?xg(b^qkl~V z@<*u(c#TqO`{*wh#r|!T{&|WHoCJG#=T6?Q%&-0Bavb*g#`#zK`{MEYNQ{ct@)qB6RhNs)W%{h3a zYyGb``7e*re|-ZOtp9XM|Es_I{|(kJT+jb+uzvoY|37Q6j4zE9|G@?D|BcsAnzsLE zjhEs<8TmhlH9BXh6z_NA(oQhF8qb`9g+~n5EN`hi6`jaC{=wvQw`6>RJ&v)`Z7(q; z!C4OdGS*q{na)}uag-3ULr%6l5b-&!%z%E&XcPJB zTGPF+*d<>>H5`*j(^NC^!A4+_nRB_mCZSnd6xucgLwv;lsph`!^dvdE| zsXG47YR3Zz-2}4Se$AmV(%ChLZ5Gv~@ld-ck2)NAsujyJi(8}Pct-cL$t;sJ__ps? zUYzV@$8xGseDjF*p}(I{)b!5Sq$br<=$!6gl)C*~a)3p?v!Z*q%dfsdWg}M_SfePtQ8edz`QWX(k zjUp+x9g-xi*Q@D@Wot>{61q*-LEo9*KB!BTB+@AFY@R>nlt&Pv6;f`$c3Jy@@jrXpph;bG zHKUm8Eg=HO6&qZ-T|1`OoL5PyjOs3;d zn-v)^Iev|qLJMFnaYOkF#9e(al-VDcs6Rz`KMdtEx99*uV-L0Ua?~oZB#oKt_!;(D zI2kKgY~HG+roLvP9do}Az;M17%pk~{3*W|?H!!bCn|I3Mg2GIyo#&s6NEL#DZhWcE z_13*_srI`&E-Sp>)}C<51{FA=^M-1CpS5h;S7bN{2cpdZ7stXFSq1=SA%FubsJHQe z;d2n8y}WaP_cOEWo_agwC&$C5J^3l`!#!0}GzLrh?&Rj#5sf};DK`?Q-F;Sa=gaFF+`pvsgolyLvndoUESPA2uIkI@zcB(|24$zA%V{{jAh zl}X*U3?UbP(d){nTklN}vMg-y)z;rwfcW+sk210Q-vT}CE3(kd@CwGG7o10>7*EPl z6_Wz+^NNgm>zLT+3r@He@=&vXG!P)lv)dQ!WOCdPyVTl|ohsU2z>*HB|28wC?}ls1 z(V>(YuJu5!HDn-_=@KagKW~q$p$e2bHhY?f7w^{OsD^|3r1P3g0_c!J)Z|i@0vZ%* z1q=#aHLk1>41AGB`=UUDD??3nlN`k~_onXD_oJy$L-A0u@DRvtfi zX`c>zTYX@7ue2s-QA82ev#^uO6pihq`~%&#;s= zcaw8y+A&hv+HV1HJD{WGcaw7V0+vPZevQ*gTGLrNL*DHyHMtB6^IINE!_L$CjQCAX3^`_)ty z(NNG zvQmGH_8P$^rSPTcF@h|nj&4HY-i3IBu=_i*t*>^xaX)*ksLlbr#~paRnmC0(qA(V3 z8C*El9E9{q{=#!8rST->oLcReU))XE{n*K)?`Pf1xC8U^^5)+%@CJ4p)M&6mkS3bl zDH8g{Lt>ChLwecW4+p%TYVIxj&f^ki;6qzfzM(9a>1 zRI8xLCZSt+)he&W!DQ3lRWC4-T^VUwTSChat&=Dsz1YDG`xFY#2zr(GY95@OPVav4 zJm+aJScH`Fb)J92#WDwY9RjB|Br2COu#EKV7=MN|7eRGz(&RH$00}ssL8+M{+Kbj^ z(8Vmg2wd5I(NIVzj(8?JSLtz@frmrw^U@%cB7kQ0_ZrgI90kvqLRqaObab}HqkAx_ z`$~%O2?<4gqWh1f(72F2ZHIk1A$z4Zd5R|Do|o-O%7~PEWDoB(;U=6dC?0L8zEcc&Vh6 zCnPP4rSTu9_%0nK6?Jk1DsNikyR*r?7b3eHgkajgBupM965w5+VYqjEyqOq%uJW`_ zALSA(j(YN!A1bUTdwb+|b-02_1etL-&pKh-Uq=fO82DW1L-)Ifl+BkHlr@vSK30pr zRP0hxFV(5w03b>YTa#Q;#3m@D(O!ruoXUmRBby@YAH@Tc)&#BVHIu;BJ%0dEy@@a= z&n9h^O(^*YZYNdBZx3GtIEES$eAKZQk$Y*uD{BE$n%|I*!L)>sszOI^7K2$+eO_%{ zZ|_-o8u|74tcWLkNJ0xK!+vkC5gS~RcC)v40ZZ_6AU?vY%(sQb8MPGY<~-&Ko(s)~ zfsv#h2Y|IG?4QG@Esr+(E#@X#c-4@%h1v5WWltdi;|KycJPUnX2w_yJ*qyUGUBn0% zN-hqx2!7EsH=^ohQvIdZM#Y!BArZJyi?IsYY*N6d2St4cV!;P-KrIK*Jt7Oyc~0B% zolQGH4RZ;r-P=oF^c(DBD>`xBKi>OT(lXTUIh(lixG(hvdw(3czQBQD6iPTa)EE>^3ig?5cSh&M2jSeSKu;_P zR-=+6Qe{x!-bxlX_nl!DKd|UNG2v@~eRv8bOR$uxggVf(?>#@k$T)&uzPV^9WYA(A z(4EoRwpfSPs{eM}8T9#}e1c0i-s_;`(ueInC3q42IZIC%D{pqxbf?zT9VL;WDqTl; zKeHO=R$xao*;J6mYaqT6x@lw)P=9CygA0+na;CT0O~N&4EjLlcA<&}Q8T*nf2{2uO zHY4mQS2v_fz5I9^yp*clhD}JCTWF)j(AV36yQ|^NT99I{izIY8R3&8RBYvlKKXlx8 z44Mx{vIBRYsx+lTIT^>Q`aVt8xFH`mngyxr3`z+19osA{qW-T%sZ63z&Ljy>VKXg`UI#bQBj>8r!_nI;XUoP z^4``I19*O>6O#|O?R((!7Ui(bH<{zs zy1y4byDO&Rf-N<=ao5;aE~m1jz9D+3$|FZbGsbfZeQsomqPqN?eLh#yzOKX0>jxP+ zuL{pf`fr+rY!05s5A^1!hBZ`4i?Xr%f53|k)i@Qa2X1^uFeAnM_hgDKTXnN$S?g2i zJB|hgmaR1%<<|OA+S>Jbmx`{s)8MtM8%2%7{-WUb7T`(?{?hU&OaY7p&#>-c}E_$ljDEZ|Uc4yVh;LP~rA`17GY~ zBa^YoV0ydU8H*?uY4kDtj_s&2W^7*FK{m`JNWXmPb0hzov2DYF->c}4G};X3bI#mT z=si|OaEaLN;EwdiaYuB8DU4IyB^>nVV*bA2d%;AyDRMc_AF0>>PQcxI%-Rs!(rd77zdDDS+$JY@0JiB28T58V`QT+-u|jD00piJ#xbTgH6(G7^7_}S(m=oVW$Y4|Lm;%= z0$lFr&C0Fop`!D1x_Brq?7@l+YXixxwg!YT&4IoSEkL(q2VM)1f?^>%3~UlBzW8L@ zB_EWzzvP5bP;l2A3!v(eE2#+`mC{U>dC$Q;W1!BtK0O5(7RW)DnU1n>)b09^aH%t6K8^3P=P+h}+F*yn)O!!85;i8JSLmfjN*t z{t!`cP1z_mL#hdGYR=9rC%YOmgyjyM)5!$E1J$SQ_s94|DfR-1blvpje<%R{FlGDG zK8Kw+1NQWW%&a~%?st@&7OA5^e)o>G0!weZ!MQ5mN^9#H>UF8TB$*yc9{t$3v@&zs z_)jYrmDJf^_1WA2Z!}B5`iz<>|tQaZ?jvVd7swv4c%i3aI1rh z(Wh36q`T%N?<@^?@%RjboKpp1PV%z|>!A~t!5O#;A#GGUL|wN;Rxan`w}5KT0#M=A zTRbV$$0s$k#x(qUXv0diM5z6~+$I!zcRk2gRC@Jnst+@{9e_1e?j_|o3RDDAMx_5n zaO(}SFFN%{iQvCqY`zIls#o7)xi>6NMZt3~po^01y75kDZOVChs4A9TcW9Fsn_KcW zS{{jM)u1Kc{QhZtiu^c> zac;I2(nz~mxYZz@A9B^|_WVqFsgugd$LihCvNN|Wi+zXt0bF(#p5mZbW?X$RZ)gsL zIhu17#Zta2FLM;|$>u$td8Rf9Cmx>jTks*nB{Lg-=#YX#T>Ds9SC4~_cf0H5c$LZq ziQ$Q68p1X_^}+9}G)D3I`etclCa^QQC&~zJ5!<}-k^b`XfzOpQzuOtQF}T24ol}&% zt1B#zNq6Y~5jFnL<(UgA<2O=@rbk5lBib%9^O@H?|MXIo!F>e>Yimwm6U!bMPF!!e zg-?e@1>vAM1_MvAHC}P;0Y`m?A~H2K?Am#{*^met_k?GByr%V6`4J8HnTVwtda;K4 zk#Zhy9!hqkT*fot_EC7JAWuRIBZ}81zrYzX8ZPcSG(EOiUET|?4eMdUKlsTF<{YBz(8S7(bTXZ@y%tl=+Uf zPZT0%zTEcuHa3rcDB?wjDRB)2bxU7gt3ofNuQ!#(W#y{Pk2O*+yy3!2Lli?cytqXm zLeIRVQ(jJ2@7n6SLHEZFnp6f>=V_5FKt4;9%1BM4WfqVcWdJ^EFNCBeC2BwHhY!9z zulF6k1wi?>qqrm^M2uYRvX3#r!k8!sxouW2@N?^vc?xus z1=|@CO$Fc-=8btqkSe6F4=v3qTM?#Q9zR@CnRX|BA_*)p`lR|i5KW-T30mGXG)#|91;gZHs|pN zOg$8>ch265x2RK8wpT)a=8v~7yh^MK!;szmY0G!^w18Ru)u?}_TO zU=Lu4Z7ais2k5T5B#v{R2Az?-h?cyJ>7P#Oe|!Nv5g><6=MN|`JxisQtYC*qmxTub zADUC+F}UD2(7JywD5$gF?YrLz!dbGrnbvy0f%~->S+F4izrsayADFa|^XkfzmNjuU z33M!bStyzeLEe^Yma;X(KkM{D;UTS|2a9h5=1x;2F0%!?GJZh+h1i3_((8Wi>~kZP zLD3)^SVnfLMgv7&9F32-tIqx_^0nWgxiKOKBKD@co?0Ac;sMsL7FfT_$z>o}$3S*E9;diUiSvJxRh=V+rui3O8$w1dQ4bQ$?Jp$u*2Vx67^$QSW+FYC!vd76+ zgySRGeZK5XhS!{VFHyO^;|8 zdb<#?U!mlTIc1o*32@q@M-3zVS2gi<=J*SV>z|zK`b$j-@WsBuI9Hu3HUjKiS!0Rj z39Ft_M8@dzQXybgD}CxpK4J>o`*k92{`JQeiH+~GGr^Z~_uCF2Ok}@EO4ziQ%8_hk zwuVqlLJzHxBw`jVw^@eLaRehdqSjlN zHwdtNY1<`9Ro%cp5{aK$lpif<*c*PZP-Swg{g79biucidMaKH2-0V$FZ3c2pr1Zx1 zK|FV1hw?n+SgreL-WB1df~uDj`%W$68ZE&k_#%Re*1?uIAOPipmOOhx)A|>6 zQJ)X`&Y#O#CXcrB^YHMXIe4YZJogmwKJV3-H@+$n8ajBe8ln$+8wQTSy6zp*Dw+6&+T8ZCFMG?pnFsKx7i#5DGT%arL zOjwcqZciT5b0aEIk}4nz^`v-7&o2JOtrnL()-3Fmu)pnK>A1H`CE37i`Vl%Ao^dUt zw0_fh)C=$C%#>zPj5fh~=vbapIf|*rlhx^glC)%HT1yEGR2@t_B4HhafY9a{SMa!; zB*ap)8uj(bVSJF7&xh0T7xhg#VxyeCO*@rjt)Q|uL3;j6ghT&j&%zY>kD1)UzORS~ zYb&3&Q4=Ft>AwZzlo$*Bu&c+qd)!i+6PjlW9mQ?IkZmb^_e7~DCzRl7�{#Qao+!h)Ey-UQBjSsV71k%G(VFc75ADz}!-O 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
AlD*^rmI{fzM>>To5m;uw); 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

W(u__tqDG- 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

W$*`Zv!fU2va z0+t~!$xuljO@BX^6!}l+Lbhm6aqVKib<#4Aj6dWUI$>4hf%WQ>Q0BgGDDwCO@({QE z>W~obMDvWxgCZ}w7Va_UYA-fZ%h6m9P8v!7xT}QjKyAg+y*y2qihjTlhQcPs_Zs5VBUc+=uBxkk(GBP))GLEAwrWvAg1N3=s3zjWt1%*PN) zqnXFZh~}vG)Y_nKA^mE|9zK7v6?=D9X8G1qZX`}|W-!z|Qo>cG@XT7c3cur2|uNtUo$Bd?wC?+X^bWX zrod0IY%{3zGR$lxyw;oP*G_hy8q~&|gk8_oR8gGyx>J%RuDiQCfkJFvN&{gB{Y@+9 zV+-m`t6P7X3wvGRJ;I~=+QK=T{b$ zG6IkXrMXXy@7mzzCq@EL{BJOiSuo>a44;l{v+Ykl#?i}>GUq}w;7DitNiYRA;4Pt> zcH`2248K*WA>iTTTNE!b2W7}!b{p*ZS<$4C)^M@(K5^aUbzqo_b8@36HNetRZ#$;d zXXaHRf>5&XeOoB0w7!S}s)#2CAOm_Vpg^IrN~>1gcqfXt@Vqg-ii3a8BiE`z`8^Kx ztrU=qclG4r>{gkYndd{p_vMiLrG@Wf?j6*kbPYVuuHnp-Mi#o)Nd3+j_%$>2KVJ}! zoiw7Dh-Kax%r54tB~e*tNXR97vCLLbl*d^&2&F9ir~dWS77}H*=D`fi1mNggtQ-Ms z*~8MIF4`;Jo`Vd3lHr>uy@WjwP~w&i0xi{ve+hdf={qCzaObprl+|CIx{pebZQoqV z`I;-W30}vO`L3v_n2$PnW^d>21-nh$r}RbiBZMSRrb!m%>s8JSY1FGX6V0(3SioM2 zgCK(ZtBkdq7aNEw?T_ffrFT4_2qYT|lc^GAZYQCBm=RU=)ch0Hm&4Qlmc6yF0EIvh zYTEE(nfO@%S4<&8v@I6}3tJju@{vQOLb`~Ly*-g)<1$dE`90r1KGK`CIuz=YQ)$tx96>HV5weX6A}yCAP@T9Cq1|$=R=JbSna(w!L3M zEORUz;*Gym;?^+yjqOs}oIz^x+Tr)^yM5^>c$|TULKu0mkr%O`S?jk<`bp)hOW&NO zJ|*ZE=wNu;v)*6)rdOke>Dh2scCADK0DtQ6GhecoWs-e?A=VK4<8=2ze@dbZI}{yW z=;^gfLf7<#x3gEii7Pv!I;2ox;$jKyQ7wD0g@K6Od}hs>XoqaO@iiZxpr546Etn4S zsSNux(>e7VUPo_EP8l;R(aZz5C&*qn(L_B<0T1K(45z6;L-j5<#Huj%n}@HtY;^Ip z2k`gB=^=%*Hsjk1H>4jw4k%;RE}-K}Ec7Wl6D+^$K0YId^Ilx|1TyLWs-=|~SL?o& zLcoEQTIq>Tn;R=VzXhy4@k1;XD?`kwG=H>hzfD@)+(Md1T0(d*MR@P#7h69KnAe%b zIYVV#(A?MT8t~03M%bJkyeq}3^pM>;cbXm5DumOP86#luBr+Z_?`4g)#eoX4dUI)?8*F;^X0eHLk6qD~x)B~VH^ z%T6awe%SD}I>#8`{-|S7Rg`cS^Zr=p^5v51BJ>be-&(7!t=V(FGW1y1W3~F@mtwfP zQWm=!TyPKR25(w2u})+=+Yr!5)!pAv!s?Lw;)^IQiSOpdz%fo=YfxmDriAtP6RoA} zH$NohJ-o#5w*Z&~^n*oVtJdQ(%$_)KLx_e=>;%V*t4(Sh#8Q9IcVBb#6yWRpbv28O zgxXsH067^K*{Am80ig@qSTwZ73S&`dZ)u;lnBs!2-30Lh&ao-N#M>E0fLq}An6~W; zP?%R!8^*(6K|+nZ*PlYu{!#b1B+tc`LB9y;0V9>gqMHzfu>R^Q3&nvBEg4UK<^z2P?$xwX4 zPXT4Ojl;VLD(og+|fSnP>$P&5=tyI7K55XTuvo1c!a4sgM7f;ry9l{bb3Grkj_VsBjY-=NFaC1?b2 zuqxBAQS?wL+#EHpF^#@m=vhshM~6r^Q_ZO6-(Efot|2?}I=+^S`Q5>=sWT_j&LHWY{sm9T_f9jhcA>}Dm*WSDqN zNqt$gaPD}+d?|fCRG)n#$i-* zW**frD}UinTlm@&q{}v3DN-o1^ft`lkC#B5-=w*4k@u0FQ~K{G%s_XmRW8Xp$6B@B z*9Zj!OgS1N9miS_r;nAFA^SqQC5(#^KJJADyL}I3Jucm7@%RXgYhiiwkdxO;3ul}~6D~Ad zrjm=s@V2E7QID$Fyho4T8zn+ttXI(=eV>gYgoe>3y6cP9ZoFO_+tQ-a0y$Yx8_XX6PRGNkx@iZqkd@O|uh!_aB$_X%-Qk+H>G17job}|R6*-^Pb(1m5! z**VhZm;4DJ)l7ZyO)l#}6}M`Z70y^rqtpb8z?^9pkuB{|0itpH1AlbCJ}5I6A~lx6 z1jQG|qu~$RI2x@i-hHIG{aLV}?#X0}pn=@Lf}f$H)mXNj`a=o^;BsXH64$p@$sN*x`FtT_RT0b z3bouZGgO5kkr)H2dU^rA9MV=kQ#$<3C`_Y}W%b;nPBY z@RA31$+tSPGbR|*n%QcsFPM~N&&8WLi?O+}9-pO(~#TMq~&Q8Bt&qInc(}8uDrdlXk zMp_ZR;IQl9uL3xVEv=N!NAy88BTAo+hL%<-CLCfnKiT^9A@9|w_G|rN#H4$qeWR+g z88{b;xgF^(U7)AdE$Q&plP_QHL&sb)p@5YeShns%drYf3(i{6p13eAmRyGc;8bvHe z$dKDX&wQJ(VvoU(1`d2Ikv?eNzsxk#kN%{k&|`46JjXqg+5!EkOK5169)aQaP zJ~n|MS|}%3QT+~L0^1t8qeMLo+pkJ}Q)(8|4tD2Xfy1{HR6z}1>vt1XQH|ghGK95Y zH^0ms(qsh&=_(9czL|h5PZm&smbTC}BcU+mG$NP9&~)%#+Za|UFMBi3VP^oORdFrQeBgl{tw&qc1!jSpp-0ET6L-P`73-#?$(DqZl z{RkY3HP3tKE73W0hBE=41dq?14Jv*dz%5YHI5t^wW-?Dxh82nnz!xKOK*hFq6k%MUMj}Y_j^Hy=9lH)QO!dlwj|mEBAl6Cyjc{5zw~CHtL2}>tRZ$+_Bq%kNnqXDx z6?OI=vo12DtEZBV0}@d?$;KJGUtWaucA9Qk*p7wz>*%&1=S_b3jR*Y4h}2)dvp@4R zVkp(n@>baL(ZTo1lV@P&3hv&OC1qi=tJo>itN_jP1MC z$+~J|nLwp?;LH@e%MKtsX#P!V6P>yV@<`(THfmn6Jko= z&O_k2s+sVf`oy`6>e^{(GYxm&{Gwu3ZJt|iNnp@);ZoAGX&D#yr2QZL+UlTqUjF1Q zlx3b=zC<&5c@hl;B!F4f)NU4VWAD!W0o)W)0$?oKQ~52Nt+%EMMJKLG?m_f~7OMl+ zgCk`>>X~xdC>!-lhWxBT!<(9zq~ZpH=ty0?wUU1Nw^1GeE=^fiEfXf_Q0X>PfM{Ig zv2efMT69~6k*gD48HvnRHhM5;;san1m-q77!vX+KgwQv+s)Wec?gVr{P-sCx?g14_ z%n+6rQ-!K2F5NXmxF)1KqGxrm`A9eHFF!p1%e64Sim-J~o^+2#9c?XewN&oO;dwa4 zVh@f91Fbl(LSi*q3#uv^!4uTQ0)r>>K=B?3oR?PufEL0EiFruZ((JZIsb^Xx*pR*H z`FvtkqUhbRMH!0r^~}|675NZjISqIfAD`L*!;Mi^}*ZN|Xc^YX-yqN`Ib=Z|?F0U^hut{j-E!ec$t+`$3 z+SPS=N$%;=PpiRCk=a{!2W%nGmV-{jy_X7<6mOm18 z{3l+D^}sb-EJ4C|MOxzIdyb`fQ7pSqp1$FI-4e7Kxzk2jObMOo`RAb z2vVWdQZa#RU|9&P752)@@h;B82NEk?Bqwx;Y;ML{5A=e#bAQg`XFlc{LuJLy6LadA z#48vHQ+f^%=z~Uf;@}EJbQe_yZOg4GM}dU8#$EtKb5JL(q+ru3^=-Qxp#3S}C#4@I|FItMG!Hv(*| z992980A#2#D!01YR@xWd=txN!&MtQQWen&9$3A#Bp#9JzA3&;;a#Gr4cI-K3ptVG& z-fJ>fe>mBr)3(TTF2^9W_4uS&+sRl~=7$|Nt0T4-#ND<9#Fshzt`(eRwq<+R=c=0I zLL}%OmWBz-G}?S9PS>|o8HgFP-=Iq2h#$+NE7xPHQ0JWR0C8fQCNu!nSt>(^%BPYi zx%$qTSi3Y27ezuor#WD9%|c9j{|26hZ0dZsZD+M|TB9k;LNP2SM1tSYp?ADH&7T_z z=t@ESp5{gv7q|FRrmyY|qrP`Cg=V{5@^Z`+F-_Dtc^06NN|ZqfjSw7dQOQkQgdmU4 zU1@0yT|AC#JFw=H?Z28;e4u0xhWMo&P@WJfzt6~&5aNV)_tg+5Lu_C$r-Trj(`Tvk zm@|avSJhB?=YMGjlq`sYpmL$U(!OeK9AYSLJ^~HFJRLF07R1;@q(%>1Tyr$^+M^dw z!!qHdyk@JhJB6(N4*jHt?HN7pEv{y)GyWx-&Rm0ihi8R)Gx(rfnQwuzximtdCP0cB z=n#!m3@a2G3pGgO&YM>YVBLHhPZmVz6$kmr(#bc$DH2f2o z!DTdbMG>`)4K$I*(zPhr@Hl$NL|e&zJAtp0K1OwTrTlfm=CN75i<21;M`^5?0JM0k z6*<%!5juzhLBd_kkP1bt0Qh8g0Ni6@tvo1u(j&@GeZOX=&V^!o1cpBOHdmQ^%$Wjm zqJm#JPUjco#Zkd!c}?`~(^b)=6b#ne(#6SXtSdy5o%y>Ml^hqsRH8Rlx zCRM_&q-q<+sIAq2u+@vYqP4R^2XnRaSSq=zHQCV#Z-yH_fQH6TfOFwFAkPP4mLmX53NK^oct8I_!ptDso48r(n6t=&%wyp8uYZLO!#uG~n2 z@3dj%!AXh}`6Xw_b9O8P@5ych?;dYY7pDP*$exPuZPU79nQRQ!%<{UWnY>K`+o3TR zNV{-lt313N8w;j!4Y6;9*f7FdBtw18F5=h9Coha$xAb-@mcSH`?Y40>qo47=gUnpW z=UkZU2n|(kMJ(pR?@MX~_7LVPT4Nv(?=e8Q>l$9y=qdAggEn_4lBZ ztvx?MzeumUqbb|dy?vKTx3w!!u4SAJqibq(tMU4_+Yd8w_uqIv_k>ZrBjB`)RhlK& zJ@UhOMV+~ro`w+lo~tPT?vm*Yk0OmfaL3=}sUFK~KSej>^jj3~i9?l3fM%;(AEDvZ zw(*SxJjb}VDI#wNtUvXT^jj~oXd_m`BVS>n|J6l}x%&lkXUJ$Z|NFF1?|}NQiSRW$ zc(TuSZs^xMs@W|DFX-7`ec5Muv7y?-%&CykvImoh4k*yrT{EO!g2F9t^7Zg3M0Q+t zcvEz2AJYk7ENqc{cY`e~g+yYx4^=34ORkkRWuINy*spnfv7n&YW~>_$m`BW~->`|r z9P0`6d2?XXj&>+{o9B+)oc?M@`611HMrX<^s+GH+m^d)r_{1oS2NSHDD!ps`N~C1#Et^s zFoUvle%YKilOnjFhD&zp$4qA9(oSDPAYoXXfZs1S!kGq;x!x_mQ@%)Wny7%7+I(_Xspm4^F zTRoUHx3B==yWr*17PniZG38qahA?F|@qd@w{-9dwzlzV_Tr#U;23ZNA(dO?E5u}UJ z5O59@B2|X3jvVcgphZVc-05c*$Y>6iVdT>cxlcVhLfyRreDXEcoZ`NAc=Oktg}rWV z9-g#Cazpa82WvV*eNj)P`+(XPX2A!DJ37xS_jhp$+}~_RG#iC=9td@UZ?{J+9#|`F z%ieyr`Ro4Iy%qR8pI*l@?|#J0K-ZK03h*R*lD|=XtVmdJGX6TkVA+G1iFvb711iV6 z8@wrnGY+r48d^8%jN}12>HgfAHkyqQLvXT9e+F6E*1fmgRtt`K`7F_UG2s`tJ>aqj z9swv#>eDsPMtO05=M>qoZ&GI<<1GeA4I4H-^|*-2YwbfvxB!=Xm%u1ES$K0G!kgCL z^~!v(!l%9et^2m14p|iVS+dnyUCd`!Hf)QIt~-M)@%BbkYii6HR1_89S=TvMZI7k^ zA@PK6pbx4c*x>Rl$q$NYHf^c@PHM|DQ^SS2O8e5++5M(}34V3Q{ne#`1>QS!F z3aRuYa0;H;51-*A)fkc`7M!`xYwz`tYFSs{9wZgWtfUt(uebB9I1c2mZoMgpI&eK? z53xQ&wFS9U58qcSbZfJ>zsl6`^Arp6ep*CCel%&%;JYkCh-5IhCjf+X@fR=-cf+FYE2i+Od z#WG-{YxhjbUsS@SY{D5H9O~t4eFY;jPBv?<`1|MQA72?rqT#M&mY$FIS-biXQ#hF) z-E<{0IqQ6cvo5(;HY*hK1z5~-EM)tbw%X6}^g)gBAcZxXeevI3b4++JrX4H=PTb&U zvF&XJwq$5Qd$>`%jgec4y|77`~4{ z>v&)p`0Kv|!ZDb&} zYUcCcd~H(%M{**Wzs={N)`-p@%!t1S11a7*xbpVp;F;ZPHXK%sv%hz;zf3oN{`eYc zXH|su`QcSM4xf?or~cGuuzUu~XNmop3qEtfXD;~61)sU#GZ%d3g3ny={{a_7oi%wU bTECSx^k%7qWd9G~&*a?YZ;QXV_QU@JIGUu> literal 0 HcmV?d00001