From be007322d24588a2b34e956a5d1c6f8aec735fa5 Mon Sep 17 00:00:00 2001 From: Jack Kingsman Date: Mon, 16 Feb 2026 17:28:21 -0800 Subject: [PATCH] Frontend overhaul --- frontend/public/apple-touch-icon.png | Bin 16148 -> 6182 bytes frontend/public/favicon-96x96.png | Bin 9724 -> 3763 bytes frontend/public/favicon.ico | Bin 15086 -> 15086 bytes frontend/public/favicon.svg | 20 +- frontend/public/glyph.png | Bin 98345 -> 30901 bytes frontend/public/glyph.svg | 10 +- frontend/public/glyph.xcf | Bin 124059 -> 0 bytes frontend/public/web-app-manifest-192x192.png | Bin 15680 -> 6913 bytes frontend/public/web-app-manifest-512x512.png | Bin 46914 -> 24821 bytes frontend/src/App.tsx | 812 +++---------------- frontend/src/components/ChatHeader.tsx | 162 ++++ frontend/src/components/StatusBar.tsx | 14 +- frontend/src/hooks/index.ts | 4 + frontend/src/hooks/useAppSettings.ts | 154 ++++ frontend/src/hooks/useContactsAndChannels.ts | 190 +++++ frontend/src/hooks/useConversationRouter.ts | 167 ++++ frontend/src/hooks/useRadioControl.ts | 104 +++ frontend/src/test/appFavorites.test.tsx | 60 +- frontend/src/test/appStartupHash.test.tsx | 60 +- tests/e2e/specs/bot.spec.ts | 2 +- tests/e2e/specs/radio-settings.spec.ts | 4 +- 21 files changed, 968 insertions(+), 795 deletions(-) delete mode 100644 frontend/public/glyph.xcf create mode 100644 frontend/src/components/ChatHeader.tsx create mode 100644 frontend/src/hooks/useAppSettings.ts create mode 100644 frontend/src/hooks/useContactsAndChannels.ts create mode 100644 frontend/src/hooks/useConversationRouter.ts create mode 100644 frontend/src/hooks/useRadioControl.ts diff --git a/frontend/public/apple-touch-icon.png b/frontend/public/apple-touch-icon.png index 42bc267d47bb0e92870d4bf9c6d4d502b6f61d03..f7e475f0facaf66ed643de8394ef637eb949ea3e 100644 GIT binary patch literal 6182 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 literal 16148 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 DthDTw diff --git a/frontend/public/favicon-96x96.png b/frontend/public/favicon-96x96.png index 8bae0b20bcf91dc9ddd721c31e83c951df73410f..4ebc89cbb1b5978f9f93ef350701c2f3b1f867de 100644 GIT binary patch literal 3763 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 dNkl*f literal 9724 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 bm2;B)UQmx#N#0j;s3ifs5n~w39OnKHZ81T} literal 15086 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 F{SR}Oz?T33 diff --git a/frontend/public/favicon.svg b/frontend/public/favicon.svg index 31392e6..746ec3e 100644 --- a/frontend/public/favicon.svg +++ b/frontend/public/favicon.svg @@ -1,3 +1,17 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/public/glyph.png b/frontend/public/glyph.png index 7468ee612859a226a56615297aacb29848232267..5504ce6de9dd17bd06f600b227570055dd63ddab 100644 GIT binary patch literal 30901 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 z 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
@@ -1029,162 +549,16 @@ export function App() { ) : ( <> -
- - - {activeConversation.type === 'channel' && - !activeConversation.name.startsWith('#') && - activeConversation.name !== 'Public' - ? '#' - : ''} - {activeConversation.name} - - { - e.stopPropagation(); - navigator.clipboard.writeText(activeConversation.id); - toast.success( - activeConversation.type === 'channel' - ? 'Room key copied!' - : 'Contact key copied!' - ); - }} - title="Click to copy" - > - {activeConversation.type === 'channel' - ? activeConversation.id.toLowerCase() - : activeConversation.id} - - {activeConversation.type === 'contact' && - (() => { - const contact = contacts.find( - (c) => c.public_key === activeConversation.id - ); - if (!contact) return null; - const parts: React.ReactNode[] = []; - if (contact.last_seen) { - parts.push(`Last heard: ${formatTime(contact.last_seen)}`); - } - if (contact.last_path_len === -1) { - parts.push('flood'); - } else if (contact.last_path_len === 0) { - parts.push('direct'); - } else if (contact.last_path_len > 0) { - parts.push( - `${contact.last_path_len} hop${contact.last_path_len > 1 ? 's' : ''}` - ); - } - // Add coordinate link if contact has valid location - if (isValidLocation(contact.lat, contact.lon)) { - // Calculate distance from us if we have valid location - const distFromUs = - config && isValidLocation(config.lat, config.lon) - ? calculateDistance( - config.lat, - config.lon, - contact.lat, - contact.lon - ) - : null; - parts.push( - - { - e.stopPropagation(); - const url = - window.location.origin + - window.location.pathname + - getMapFocusHash(contact.public_key); - window.open(url, '_blank'); - }} - title="View on map" - > - {contact.lat!.toFixed(3)}, {contact.lon!.toFixed(3)} - - {distFromUs !== null && ` (${formatDistance(distFromUs)})`} - - ); - } - return parts.length > 0 ? ( - - ( - {parts.map((part, i) => ( - - {i > 0 && ', '} - {part} - - ))} - ) - - ) : null; - })()} - -
- {/* Direct trace button (contacts only) */} - {activeConversation.type === 'contact' && ( - - )} - {/* Favorite button */} - {(activeConversation.type === 'channel' || - activeConversation.type === 'contact') && ( - - )} - {/* Delete button */} - {!( - activeConversation.type === 'channel' && - activeConversation.name === 'Public' - ) && ( - - )} -
-
+ void; + onToggleFavorite: (type: 'channel' | 'contact', id: string) => void; + onDeleteChannel: (key: string) => void; + onDeleteContact: (publicKey: string) => void; +} + +export function ChatHeader({ + conversation, + contacts, + config, + favorites, + onTrace, + onToggleFavorite, + onDeleteChannel, + onDeleteContact, +}: ChatHeaderProps) { + return ( +
+ + + {conversation.type === 'channel' && + !conversation.name.startsWith('#') && + conversation.name !== 'Public' + ? '#' + : ''} + {conversation.name} + + { + e.stopPropagation(); + navigator.clipboard.writeText(conversation.id); + toast.success( + conversation.type === 'channel' ? 'Room key copied!' : 'Contact key copied!' + ); + }} + title="Click to copy" + > + {conversation.type === 'channel' ? conversation.id.toLowerCase() : conversation.id} + + {conversation.type === 'contact' && + (() => { + const contact = contacts.find((c) => c.public_key === conversation.id); + if (!contact) return null; + const parts: React.ReactNode[] = []; + if (contact.last_seen) { + parts.push(`Last heard: ${formatTime(contact.last_seen)}`); + } + if (contact.last_path_len === -1) { + parts.push('flood'); + } else if (contact.last_path_len === 0) { + parts.push('direct'); + } else if (contact.last_path_len > 0) { + parts.push(`${contact.last_path_len} hop${contact.last_path_len > 1 ? 's' : ''}`); + } + if (isValidLocation(contact.lat, contact.lon)) { + const distFromUs = + config && isValidLocation(config.lat, config.lon) + ? calculateDistance(config.lat, config.lon, contact.lat, contact.lon) + : null; + parts.push( + + { + e.stopPropagation(); + const url = + window.location.origin + + window.location.pathname + + getMapFocusHash(contact.public_key); + window.open(url, '_blank'); + }} + title="View on map" + > + {contact.lat!.toFixed(3)}, {contact.lon!.toFixed(3)} + + {distFromUs !== null && ` (${formatDistance(distFromUs)})`} + + ); + } + return parts.length > 0 ? ( + + ( + {parts.map((part, i) => ( + + {i > 0 && ', '} + {part} + + ))} + ) + + ) : null; + })()} + +
+ {/* Direct trace button (contacts only) */} + {conversation.type === 'contact' && ( + + )} + {/* Favorite button */} + {(conversation.type === 'channel' || conversation.type === 'contact') && ( + + )} + {/* Delete button */} + {!(conversation.type === 'channel' && conversation.name === 'Public') && ( + + )} +
+
+ ); +} diff --git a/frontend/src/components/StatusBar.tsx b/frontend/src/components/StatusBar.tsx index 20805a8..29e01d2 100644 --- a/frontend/src/components/StatusBar.tsx +++ b/frontend/src/components/StatusBar.tsx @@ -52,18 +52,16 @@ export function StatusBar({ )} -

+

RemoteTerm

diff --git a/frontend/src/hooks/index.ts b/frontend/src/hooks/index.ts index 9904fef..d34f9af 100644 --- a/frontend/src/hooks/index.ts +++ b/frontend/src/hooks/index.ts @@ -1,3 +1,7 @@ export { useRepeaterMode } from './useRepeaterMode'; export { useUnreadCounts } from './useUnreadCounts'; export { useConversationMessages, getMessageContentKey } from './useConversationMessages'; +export { useRadioControl } from './useRadioControl'; +export { useAppSettings } from './useAppSettings'; +export { useConversationRouter } from './useConversationRouter'; +export { useContactsAndChannels } from './useContactsAndChannels'; diff --git a/frontend/src/hooks/useAppSettings.ts b/frontend/src/hooks/useAppSettings.ts new file mode 100644 index 0000000..e6496e9 --- /dev/null +++ b/frontend/src/hooks/useAppSettings.ts @@ -0,0 +1,154 @@ +import { useState, useCallback, useEffect, useRef } from 'react'; +import { api } from '../api'; +import { takePrefetch } from '../prefetch'; +import { toast } from '../components/ui/sonner'; +import { + initLastMessageTimes, + loadLocalStorageLastMessageTimes, + loadLocalStorageSortOrder, + clearLocalStorageConversationState, +} from '../utils/conversationState'; +import { + isFavorite, + loadLocalStorageFavorites, + clearLocalStorageFavorites, +} from '../utils/favorites'; +import type { AppSettings, AppSettingsUpdate, Favorite } from '../types'; + +export function useAppSettings() { + const [appSettings, setAppSettings] = useState(null); + + // Stable empty array prevents a new reference every render when there are none. + const emptyFavorites = useRef([]).current; + const favorites: Favorite[] = appSettings?.favorites ?? emptyFavorites; + + // One-time migration guard + const hasMigratedRef = useRef(false); + + const fetchAppSettings = useCallback(async () => { + try { + const data = await (takePrefetch('settings') ?? api.getSettings()); + setAppSettings(data); + initLastMessageTimes(data.last_message_times ?? {}); + } catch (err) { + console.error('Failed to fetch app settings:', err); + } + }, []); + + const handleSaveAppSettings = useCallback( + async (update: AppSettingsUpdate) => { + await api.updateSettings(update); + await fetchAppSettings(); + }, + [fetchAppSettings] + ); + + const handleSortOrderChange = useCallback( + async (order: 'recent' | 'alpha') => { + const previousOrder = appSettings?.sidebar_sort_order ?? 'recent'; + + // Optimistic update for responsive UI + setAppSettings((prev) => (prev ? { ...prev, sidebar_sort_order: order } : prev)); + + try { + const updatedSettings = await api.updateSettings({ sidebar_sort_order: order }); + setAppSettings(updatedSettings); + } catch (err) { + console.error('Failed to update sort order:', err); + setAppSettings((prev) => (prev ? { ...prev, sidebar_sort_order: previousOrder } : prev)); + toast.error('Failed to save sort preference'); + } + }, + [appSettings?.sidebar_sort_order] + ); + + const handleToggleFavorite = useCallback(async (type: 'channel' | 'contact', id: string) => { + setAppSettings((prev) => { + if (!prev) return prev; + const currentFavorites = prev.favorites ?? []; + const wasFavorited = isFavorite(currentFavorites, type, id); + const optimisticFavorites = wasFavorited + ? currentFavorites.filter((f) => !(f.type === type && f.id === id)) + : [...currentFavorites, { type, id }]; + return { ...prev, favorites: optimisticFavorites }; + }); + + try { + const updatedSettings = await api.toggleFavorite(type, id); + setAppSettings(updatedSettings); + } catch (err) { + console.error('Failed to toggle favorite:', err); + try { + const settings = await api.getSettings(); + setAppSettings(settings); + } catch { + // If refetch also fails, leave optimistic state + } + toast.error('Failed to update favorite'); + } + }, []); + + // One-time migration of localStorage preferences to server + useEffect(() => { + if (!appSettings || hasMigratedRef.current) return; + + if (appSettings.preferences_migrated) { + clearLocalStorageFavorites(); + clearLocalStorageConversationState(); + hasMigratedRef.current = true; + return; + } + + const localFavorites = loadLocalStorageFavorites(); + const localSortOrder = loadLocalStorageSortOrder(); + const localLastMessageTimes = loadLocalStorageLastMessageTimes(); + + const hasLocalData = + localFavorites.length > 0 || + localSortOrder !== 'recent' || + Object.keys(localLastMessageTimes).length > 0; + + if (!hasLocalData) { + hasMigratedRef.current = true; + return; + } + + hasMigratedRef.current = true; + + const migratePreferences = async () => { + try { + const result = await api.migratePreferences({ + favorites: localFavorites, + sort_order: localSortOrder, + last_message_times: localLastMessageTimes, + }); + + if (result.migrated) { + toast.success('Preferences migrated', { + description: `Migrated ${localFavorites.length} favorites to server`, + }); + } + + setAppSettings(result.settings); + initLastMessageTimes(result.settings.last_message_times ?? {}); + + clearLocalStorageFavorites(); + clearLocalStorageConversationState(); + } catch (err) { + console.error('Failed to migrate preferences:', err); + } + }; + + migratePreferences(); + }, [appSettings]); + + return { + appSettings, + setAppSettings, + favorites, + fetchAppSettings, + handleSaveAppSettings, + handleSortOrderChange, + handleToggleFavorite, + }; +} diff --git a/frontend/src/hooks/useContactsAndChannels.ts b/frontend/src/hooks/useContactsAndChannels.ts new file mode 100644 index 0000000..f147d32 --- /dev/null +++ b/frontend/src/hooks/useContactsAndChannels.ts @@ -0,0 +1,190 @@ +import { useState, useCallback, type MutableRefObject } from 'react'; +import { api } from '../api'; +import { takePrefetch } from '../prefetch'; +import { toast } from '../components/ui/sonner'; +import * as messageCache from '../messageCache'; +import { getContactDisplayName } from '../utils/pubkey'; +import type { Channel, Contact, Conversation } from '../types'; + +const PUBLIC_CHANNEL_KEY = '8B3387E9C5CDEA6AC9E5EDBAA115CD72'; + +interface UseContactsAndChannelsArgs { + setActiveConversation: (conv: Conversation | null) => void; + pendingDeleteFallbackRef: MutableRefObject; + hasSetDefaultConversation: MutableRefObject; +} + +export function useContactsAndChannels({ + setActiveConversation, + pendingDeleteFallbackRef, + hasSetDefaultConversation, +}: UseContactsAndChannelsArgs) { + const [contacts, setContacts] = useState([]); + const [contactsLoaded, setContactsLoaded] = useState(false); + const [channels, setChannels] = useState([]); + const [undecryptedCount, setUndecryptedCount] = useState(0); + + const fetchUndecryptedCountInternal = useCallback(async () => { + try { + const data = await (takePrefetch('undecryptedCount') ?? api.getUndecryptedPacketCount()); + setUndecryptedCount(data.count); + } catch (err) { + console.error('Failed to fetch undecrypted count:', err); + } + }, []); + + // Fetch all contacts, paginating if >1000 + const fetchAllContacts = useCallback(async (): Promise => { + const pageSize = 1000; + const first = await (takePrefetch('contacts') ?? api.getContacts(pageSize, 0)); + if (first.length < pageSize) return first; + let all = [...first]; + let offset = pageSize; + while (true) { + const page = await api.getContacts(pageSize, offset); + all = all.concat(page); + if (page.length < pageSize) break; + offset += pageSize; + } + return all; + }, []); + + const handleCreateContact = useCallback( + async (name: string, publicKey: string, tryHistorical: boolean) => { + const created = await api.createContact(publicKey, name || undefined, tryHistorical); + const data = await fetchAllContacts(); + setContacts(data); + + setActiveConversation({ + type: 'contact', + id: created.public_key, + name: getContactDisplayName(created.name, created.public_key), + }); + }, + [fetchAllContacts, setActiveConversation] + ); + + const handleCreateChannel = useCallback( + async (name: string, key: string, tryHistorical: boolean) => { + const created = await api.createChannel(name, key); + const data = await api.getChannels(); + setChannels(data); + + setActiveConversation({ + type: 'channel', + id: created.key, + name, + }); + + if (tryHistorical) { + await api.decryptHistoricalPackets({ + key_type: 'channel', + channel_key: created.key, + }); + fetchUndecryptedCountInternal(); + } + }, + [fetchUndecryptedCountInternal, setActiveConversation] + ); + + const handleCreateHashtagChannel = useCallback( + async (name: string, tryHistorical: boolean) => { + const channelName = name.startsWith('#') ? name : `#${name}`; + + const created = await api.createChannel(channelName); + const data = await api.getChannels(); + setChannels(data); + + setActiveConversation({ + type: 'channel', + id: created.key, + name: channelName, + }); + + if (tryHistorical) { + await api.decryptHistoricalPackets({ + key_type: 'channel', + channel_name: channelName, + }); + fetchUndecryptedCountInternal(); + } + }, + [fetchUndecryptedCountInternal, setActiveConversation] + ); + + const handleDeleteChannel = useCallback( + async (key: string) => { + if (!confirm('Delete this channel? Message history will be preserved.')) return; + try { + pendingDeleteFallbackRef.current = true; + await api.deleteChannel(key); + messageCache.remove(key); + const refreshedChannels = await api.getChannels(); + setChannels(refreshedChannels); + const publicChannel = + refreshedChannels.find((c) => c.key === PUBLIC_CHANNEL_KEY) || + refreshedChannels.find((c) => c.name === 'Public'); + hasSetDefaultConversation.current = true; + setActiveConversation({ + type: 'channel', + id: publicChannel?.key || PUBLIC_CHANNEL_KEY, + name: publicChannel?.name || 'Public', + }); + toast.success('Channel deleted'); + } catch (err) { + console.error('Failed to delete channel:', err); + toast.error('Failed to delete channel', { + description: err instanceof Error ? err.message : undefined, + }); + } + }, + [setActiveConversation, pendingDeleteFallbackRef, hasSetDefaultConversation] + ); + + const handleDeleteContact = useCallback( + async (publicKey: string) => { + if (!confirm('Delete this contact? Message history will be preserved.')) return; + try { + pendingDeleteFallbackRef.current = true; + await api.deleteContact(publicKey); + messageCache.remove(publicKey); + setContacts((prev) => prev.filter((c) => c.public_key !== publicKey)); + const refreshedChannels = await api.getChannels(); + setChannels(refreshedChannels); + const publicChannel = + refreshedChannels.find((c) => c.key === PUBLIC_CHANNEL_KEY) || + refreshedChannels.find((c) => c.name === 'Public'); + hasSetDefaultConversation.current = true; + setActiveConversation({ + type: 'channel', + id: publicChannel?.key || PUBLIC_CHANNEL_KEY, + name: publicChannel?.name || 'Public', + }); + toast.success('Contact deleted'); + } catch (err) { + console.error('Failed to delete contact:', err); + toast.error('Failed to delete contact', { + description: err instanceof Error ? err.message : undefined, + }); + } + }, + [setActiveConversation, pendingDeleteFallbackRef, hasSetDefaultConversation] + ); + + return { + contacts, + contactsLoaded, + channels, + undecryptedCount, + setContacts, + setContactsLoaded, + setChannels, + fetchAllContacts, + fetchUndecryptedCount: fetchUndecryptedCountInternal, + handleCreateContact, + handleCreateChannel, + handleCreateHashtagChannel, + handleDeleteChannel, + handleDeleteContact, + }; +} diff --git a/frontend/src/hooks/useConversationRouter.ts b/frontend/src/hooks/useConversationRouter.ts new file mode 100644 index 0000000..0b67223 --- /dev/null +++ b/frontend/src/hooks/useConversationRouter.ts @@ -0,0 +1,167 @@ +import { useState, useCallback, useEffect, useRef, type MutableRefObject } from 'react'; +import { + parseHashConversation, + updateUrlHash, + resolveChannelFromHashToken, + resolveContactFromHashToken, +} from '../utils/urlHash'; +import { getContactDisplayName } from '../utils/pubkey'; +import type { Channel, Contact, Conversation } from '../types'; + +const PUBLIC_CHANNEL_KEY = '8B3387E9C5CDEA6AC9E5EDBAA115CD72'; + +interface UseConversationRouterArgs { + channels: Channel[]; + contacts: Contact[]; + contactsLoaded: boolean; + setSidebarOpen: (open: boolean) => void; + pendingDeleteFallbackRef: MutableRefObject; + hasSetDefaultConversation: MutableRefObject; +} + +export function useConversationRouter({ + channels, + contacts, + contactsLoaded, + setSidebarOpen, + pendingDeleteFallbackRef, + hasSetDefaultConversation, +}: UseConversationRouterArgs) { + const [activeConversation, setActiveConversation] = useState(null); + const activeConversationRef = useRef(null); + + // Phase 1: Set initial conversation from URL hash or default to Public channel + // Only needs channels (fast path) - doesn't wait for contacts + useEffect(() => { + if (hasSetDefaultConversation.current || activeConversation) return; + if (channels.length === 0) return; + + const hashConv = parseHashConversation(); + + // Handle non-data views immediately + if (hashConv?.type === 'raw') { + setActiveConversation({ type: 'raw', id: 'raw', name: 'Raw Packet Feed' }); + hasSetDefaultConversation.current = true; + return; + } + if (hashConv?.type === 'map') { + setActiveConversation({ + type: 'map', + id: 'map', + name: 'Node Map', + mapFocusKey: hashConv.mapFocusKey, + }); + hasSetDefaultConversation.current = true; + return; + } + if (hashConv?.type === 'visualizer') { + setActiveConversation({ type: 'visualizer', id: 'visualizer', name: 'Mesh Visualizer' }); + hasSetDefaultConversation.current = true; + return; + } + + // Handle channel hash (ID-first with legacy-name fallback) + if (hashConv?.type === 'channel') { + const channel = resolveChannelFromHashToken(hashConv.name, channels); + if (channel) { + setActiveConversation({ type: 'channel', id: channel.key, name: channel.name }); + hasSetDefaultConversation.current = true; + return; + } + } + + // Contact hash — wait for phase 2 + if (hashConv?.type === 'contact') return; + + // No hash or unresolvable — default to Public + const publicChannel = channels.find((c) => c.name === 'Public'); + if (publicChannel) { + setActiveConversation({ + type: 'channel', + id: publicChannel.key, + name: publicChannel.name, + }); + hasSetDefaultConversation.current = true; + } + }, [channels, activeConversation]); + + // Phase 2: Resolve contact hash (only if phase 1 didn't set a conversation) + useEffect(() => { + if (hasSetDefaultConversation.current || activeConversation) return; + + const hashConv = parseHashConversation(); + if (hashConv?.type === 'contact') { + if (!contactsLoaded) return; + + const contact = resolveContactFromHashToken(hashConv.name, contacts); + if (contact) { + setActiveConversation({ + type: 'contact', + id: contact.public_key, + name: getContactDisplayName(contact.name, contact.public_key), + }); + hasSetDefaultConversation.current = true; + return; + } + + // Contact hash didn't match — fall back to Public if channels loaded. + if (channels.length > 0) { + const publicChannel = channels.find((c) => c.name === 'Public'); + if (publicChannel) { + setActiveConversation({ + type: 'channel', + id: publicChannel.key, + name: publicChannel.name, + }); + hasSetDefaultConversation.current = true; + } + } + } + }, [contacts, channels, activeConversation, contactsLoaded]); + + // Keep ref in sync and update URL hash + useEffect(() => { + activeConversationRef.current = activeConversation; + if (activeConversation) { + updateUrlHash(activeConversation); + } + }, [activeConversation]); + + // If a delete action left us without an active conversation, recover to Public + useEffect(() => { + if (!pendingDeleteFallbackRef.current) return; + if (activeConversation) { + pendingDeleteFallbackRef.current = false; + return; + } + + const publicChannel = + channels.find((c) => c.key === PUBLIC_CHANNEL_KEY) || + channels.find((c) => c.name === 'Public'); + if (!publicChannel) return; + + hasSetDefaultConversation.current = true; + pendingDeleteFallbackRef.current = false; + setActiveConversation({ + type: 'channel', + id: publicChannel.key, + name: publicChannel.name, + }); + }, [activeConversation, channels]); + + // Handle conversation selection (closes sidebar on mobile) + const handleSelectConversation = useCallback( + (conv: Conversation) => { + setActiveConversation(conv); + setSidebarOpen(false); + }, + [setSidebarOpen] + ); + + return { + activeConversation, + setActiveConversation, + activeConversationRef, + handleSelectConversation, + }; +} diff --git a/frontend/src/hooks/useRadioControl.ts b/frontend/src/hooks/useRadioControl.ts new file mode 100644 index 0000000..c63fc19 --- /dev/null +++ b/frontend/src/hooks/useRadioControl.ts @@ -0,0 +1,104 @@ +import { useState, useCallback, useEffect, useRef } from 'react'; +import { api } from '../api'; +import { takePrefetch } from '../prefetch'; +import { toast } from '../components/ui/sonner'; +import type { HealthStatus, RadioConfig, RadioConfigUpdate } from '../types'; + +export function useRadioControl() { + const [health, setHealth] = useState(null); + const [config, setConfig] = useState(null); + + const prevHealthRef = useRef(null); + const rebootPollTokenRef = useRef(0); + + // Cancel any in-flight reboot polling on unmount + useEffect(() => { + return () => { + rebootPollTokenRef.current += 1; + }; + }, []); + + const fetchConfig = useCallback(async () => { + try { + const data = await (takePrefetch('config') ?? api.getRadioConfig()); + setConfig(data); + } catch (err) { + console.error('Failed to fetch config:', err); + } + }, []); + + const handleSaveConfig = useCallback( + async (update: RadioConfigUpdate) => { + await api.updateRadioConfig(update); + await fetchConfig(); + }, + [fetchConfig] + ); + + const handleSetPrivateKey = useCallback( + async (key: string) => { + await api.setPrivateKey(key); + await fetchConfig(); + }, + [fetchConfig] + ); + + const handleReboot = useCallback(async () => { + await api.rebootRadio(); + setHealth((prev) => (prev ? { ...prev, radio_connected: false } : prev)); + const pollToken = ++rebootPollTokenRef.current; + const pollUntilReconnected = async () => { + for (let i = 0; i < 30; i++) { + await new Promise((r) => setTimeout(r, 1000)); + if (rebootPollTokenRef.current !== pollToken) return; + try { + const data = await api.getHealth(); + if (rebootPollTokenRef.current !== pollToken) return; + setHealth(data); + if (data.radio_connected) { + fetchConfig(); + return; + } + } catch { + // Keep polling + } + } + }; + pollUntilReconnected(); + }, [fetchConfig]); + + const handleAdvertise = useCallback(async () => { + try { + await api.sendAdvertisement(); + toast.success('Advertisement sent'); + } catch (err) { + console.error('Failed to send advertisement:', err); + toast.error('Failed to send advertisement', { + description: err instanceof Error ? err.message : 'Check radio connection', + }); + } + }, []); + + const handleHealthRefresh = useCallback(async () => { + try { + const data = await api.getHealth(); + setHealth(data); + } catch (err) { + console.error('Failed to refresh health:', err); + } + }, []); + + return { + health, + setHealth, + config, + setConfig, + prevHealthRef, + fetchConfig, + handleSaveConfig, + handleSetPrivateKey, + handleReboot, + handleAdvertise, + handleHealthRefresh, + }; +} diff --git a/frontend/src/test/appFavorites.test.tsx b/frontend/src/test/appFavorites.test.tsx index d048372..6f4c071 100644 --- a/frontend/src/test/appFavorites.test.tsx +++ b/frontend/src/test/appFavorites.test.tsx @@ -52,34 +52,38 @@ vi.mock('../useWebSocket', () => ({ useWebSocket: vi.fn(), })); -vi.mock('../hooks', () => ({ - useConversationMessages: () => ({ - messages: [], - messagesLoading: false, - loadingOlder: false, - hasOlderMessages: false, - setMessages: mocks.hookFns.setMessages, - fetchMessages: mocks.hookFns.fetchMessages, - fetchOlderMessages: mocks.hookFns.fetchOlderMessages, - addMessageIfNew: mocks.hookFns.addMessageIfNew, - updateMessageAck: mocks.hookFns.updateMessageAck, - }), - useUnreadCounts: () => ({ - unreadCounts: {}, - mentions: {}, - lastMessageTimes: {}, - incrementUnread: mocks.hookFns.incrementUnread, - markAllRead: mocks.hookFns.markAllRead, - trackNewMessage: mocks.hookFns.trackNewMessage, - }), - useRepeaterMode: () => ({ - repeaterLoggedIn: false, - activeContactIsRepeater: false, - handleTelemetryRequest: mocks.hookFns.handleTelemetryRequest, - handleRepeaterCommand: mocks.hookFns.handleRepeaterCommand, - }), - getMessageContentKey: () => 'content-key', -})); +vi.mock('../hooks', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + useConversationMessages: () => ({ + messages: [], + messagesLoading: false, + loadingOlder: false, + hasOlderMessages: false, + setMessages: mocks.hookFns.setMessages, + fetchMessages: mocks.hookFns.fetchMessages, + fetchOlderMessages: mocks.hookFns.fetchOlderMessages, + addMessageIfNew: mocks.hookFns.addMessageIfNew, + updateMessageAck: mocks.hookFns.updateMessageAck, + }), + useUnreadCounts: () => ({ + unreadCounts: {}, + mentions: {}, + lastMessageTimes: {}, + incrementUnread: mocks.hookFns.incrementUnread, + markAllRead: mocks.hookFns.markAllRead, + trackNewMessage: mocks.hookFns.trackNewMessage, + }), + useRepeaterMode: () => ({ + repeaterLoggedIn: false, + activeContactIsRepeater: false, + handleTelemetryRequest: mocks.hookFns.handleTelemetryRequest, + handleRepeaterCommand: mocks.hookFns.handleRepeaterCommand, + }), + getMessageContentKey: () => 'content-key', + }; +}); vi.mock('../messageCache', () => ({ addMessage: vi.fn(), diff --git a/frontend/src/test/appStartupHash.test.tsx b/frontend/src/test/appStartupHash.test.tsx index 3bb5e10..8752e54 100644 --- a/frontend/src/test/appStartupHash.test.tsx +++ b/frontend/src/test/appStartupHash.test.tsx @@ -21,34 +21,38 @@ vi.mock('../useWebSocket', () => ({ useWebSocket: vi.fn(), })); -vi.mock('../hooks', () => ({ - useConversationMessages: () => ({ - messages: [], - messagesLoading: false, - loadingOlder: false, - hasOlderMessages: false, - setMessages: vi.fn(), - fetchMessages: vi.fn(async () => {}), - fetchOlderMessages: vi.fn(async () => {}), - addMessageIfNew: vi.fn(), - updateMessageAck: vi.fn(), - }), - useUnreadCounts: () => ({ - unreadCounts: {}, - mentions: {}, - lastMessageTimes: {}, - incrementUnread: vi.fn(), - markAllRead: vi.fn(), - trackNewMessage: vi.fn(), - }), - useRepeaterMode: () => ({ - repeaterLoggedIn: false, - activeContactIsRepeater: false, - handleTelemetryRequest: vi.fn(), - handleRepeaterCommand: vi.fn(), - }), - getMessageContentKey: () => 'content-key', -})); +vi.mock('../hooks', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + useConversationMessages: () => ({ + messages: [], + messagesLoading: false, + loadingOlder: false, + hasOlderMessages: false, + setMessages: vi.fn(), + fetchMessages: vi.fn(async () => {}), + fetchOlderMessages: vi.fn(async () => {}), + addMessageIfNew: vi.fn(), + updateMessageAck: vi.fn(), + }), + useUnreadCounts: () => ({ + unreadCounts: {}, + mentions: {}, + lastMessageTimes: {}, + incrementUnread: vi.fn(), + markAllRead: vi.fn(), + trackNewMessage: vi.fn(), + }), + useRepeaterMode: () => ({ + repeaterLoggedIn: false, + activeContactIsRepeater: false, + handleTelemetryRequest: vi.fn(), + handleRepeaterCommand: vi.fn(), + }), + getMessageContentKey: () => 'content-key', + }; +}); vi.mock('../messageCache', () => ({ addMessage: vi.fn(), diff --git a/tests/e2e/specs/bot.spec.ts b/tests/e2e/specs/bot.spec.ts index db18bcd..ab38dc1 100644 --- a/tests/e2e/specs/bot.spec.ts +++ b/tests/e2e/specs/bot.spec.ts @@ -43,7 +43,7 @@ test.describe('Bot functionality', () => { await page.goto('/'); await expect(page.getByText('Connected')).toBeVisible(); - await page.getByText('Radio & Config').click(); + await page.getByText('Settings').click(); await page.getByRole('button', { name: /Bot/i }).click(); // The bot name should be visible in the bot list diff --git a/tests/e2e/specs/radio-settings.spec.ts b/tests/e2e/specs/radio-settings.spec.ts index 5e8faed..9ea342b 100644 --- a/tests/e2e/specs/radio-settings.spec.ts +++ b/tests/e2e/specs/radio-settings.spec.ts @@ -26,7 +26,7 @@ test.describe('Radio settings', () => { await expect(page.getByText('Connected')).toBeVisible(); // --- Step 1: Change the name via settings UI --- - await page.getByText('Radio & Config').click(); + await page.getByText('Settings').click(); await page.getByRole('button', { name: /Identity/i }).click(); const nameInput = page.locator('#name'); @@ -47,7 +47,7 @@ test.describe('Radio settings', () => { await page.reload(); await expect(page.getByText('Connected')).toBeVisible({ timeout: 15_000 }); - await page.getByText('Radio & Config').click(); + await page.getByText('Settings').click(); await page.getByRole('button', { name: /Identity/i }).click(); await expect(page.locator('#name')).toHaveValue(testName, { timeout: 10_000 }); });

OG21b{O~SdlWMGUEI-6AL*Ghv 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 diff --git a/frontend/public/glyph.svg b/frontend/public/glyph.svg index 430323c..e66f46e 100644 --- a/frontend/public/glyph.svg +++ b/frontend/public/glyph.svg @@ -1,8 +1,6 @@ - - - - - - + + + + diff --git a/frontend/public/glyph.xcf b/frontend/public/glyph.xcf deleted file mode 100644 index a4109d582cf93f23c761975753e825136477ac48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124059 zcmcezfS`f_MTis$ zA_9s+=!7Pr6GCsH6B0;BojH5|)_R}$+%Mz(Jg^A`<@GM~QO=}V_0c+!{MfIk$4zv!PAeet8M=*!1^%#ZV? zul@Ap_B#FO#PRRE{Q9`W*C&mCjZP_i|F5x=-<$UKxUk9jZ;yX1&LKAM^;h%X&Yu(( ziy?8+>#w{VmW2Pwadh`9|37yphv7fpJ$3TLmtP$};q|cOB)T=t;+FYF;(sQLe=ltO zgje4fH<`a9KQC|cxc9>F_(zVlL(2#A-~7lw-80&a4&O&k(zE)x;(u=cuNRP?tHbMW zPn-Bgm&sFJ=LZ<*i|>~770$*?Gh|MbuP&kg=@{G~xr z^j~ZDwcj+4P3Dn*HvQ}1zuWxpe|<0AcKA^{>9EE;ZZ(gG%;N>~c+Whl+US^K9@%{9 zpQHJ_Q>u2`>2dRzV;;wu$N!keS?2LO^SInR{%Icfn8#{ubl$CvF287_>qc#K3pS6% z+UWj+HhO%bjh^qB$N%2`)_i-JdHlmXR+`6?+UVu1jou$?qt9_|^!-g6{j$yDU)ty& zZ5|J3W57yn3^ZzE@Kp1-!91FuPw)xz?OO9_e&0fW)ozEssErYiX=CJ9+Sut$^LSAk zqh8R)=uB;lnX8Sl)3q@^K^qfpn8y}v?9Bc`|2p&RLjMvMXk%CN^GkYJyPe#ujosR{ zF=ewhb~pdN?z^9KlhU*=G%9*@zWvN_}L|G z{5)S9ztjfhEA#W8ZT@|8)@gUlJ)@2D=4<1(-L&yL^Y34fr`;}fH;+-;xbToR{_r33 z_?b2?Hh=$5`?cFk$7$owW_ww-Q@g#~JYOz1zkVzCYUfuOw6Xk@Hm@@f9#yw`g+G~EE`^vQQ`^|sPfky52!LHg^Wqw}{n_s8H3$*ixSDHujJa}}5 zcKf)uHlB#l#*;2Z=Me?zO3E89Bdvl%;RA5IKn)> zVIIx%@YPqe+qKKJ@tXO4ydI_9zG1eXTfMd0w}dv{HqTFY%&&Ldr`q{C^ZR_yR=a)A z*F2h^-@SD6?Lp?z{P)zG=YaPa+|0Mb z%wv*y>}MW_n#Zx`aiV!FGLLi3qj^4Q=QxG_wFj8T&&;FweQjT9zWtYZ+-DwZv{6wC z-Tohbx%N?nAtFs_wTc=#W#QHFDqwMUVg!>;^MEZOXW&^xu4SL9^2>nyeXf~U$Jp-&COOn>8v!{cIx-y#Nwa+ zsH$y?mNrVOdrEd*ae3thHA!}4(NR@vq0;fMUqK;Mxm;mgdjIR<;!g_l^G4=m^-YP7 z@Uo3o{A6RxjZ=F!u9!dTKjWV39qa0+M9b#3+JFA|>C=fX_Kmc4R+43FeRV}?L2g!r zwYAbic63~zTRDZw4$EKTswg7Gp|{d1)k|BxfA8r?eVSq`+uN(li*gdIk`!mz(RO6z z`%n5O{J(u){%>u-Zkr+^N_r`#q%xE2p@_^4Rx(Xd^}`R@$nG>|AF-9)Xv{ffPwzO5 zHIA~2qFU#kb(WnK)oScHR~fIUy60=$Wt<|i4tmNMMWk=@mQjjG_}y1VDr(qL)lY^i zs@s=s0WwrkZSrmh$q+>hJrg2>=w;mzCIb{TWSIz;ev0bwaZ9B1RYcC!DCw<;n7?DB zr=q$Rx5r9%`b96_ikEJRNZsFAy3pwoQz99T7=ELxbW}w6#$;(ve_ei4H)*Gcp2xde zzKeQ#wh0A2ln%SBk}Hy)sL3a{ywO^wD5kLdN?}V+(G)=k4l+?u6N;)`__=la;(|Lp zDK(^^#!GfmOrCj_!iS!Z$u)OFhd(_LlhqTeT7&4RsL@52LZ!cAvd^iYC*!NADWy%F zq?e-lOg$eXJ@|G@oOD%Gm%L-0>F-v%l{R&e4vK1anNqeC+Ga|%t}MHUG}X=TYo)U=xoE{0kX^Llrl$;3I`j!+ zOLjH-(cflt%_`bZ7fgRthjl_;SvCEAo{G_F(5&6$YOZvYRaDU)PcNd;^SP2EY8Pp% z7_CzZDvaHvHN7Z#=)9FsX{`JG-87p3C6Ml3^>$}nh~g_v zH$%>6M87m87QWd>4 zHLe)ul%bgF%W@ohDbg_0;?*d0m@LJEdsY|ZajPn^w<1*5Ke%*c``X2`XHLj{Ix96f zBFLSl0WaBn@5I(+bEb`bs(X-asNyJFTQ5|U73XEAxW-ee*M57?k{KgYJyI0o&(m^} zoeQm}|LfQEqgQ3GRTcf33*z2`ZuI8X+qwruB&TLQojYOXoS)WiKXU0oD4Bn=ZE)&S zFHf7heCx@3USwabb`hC51*IFR?mLnlwtJ?Hnpw8@wzcf37+tyze}7q_bw7(=KW*KuSn0#YS6oRR9H1Bt>66yo3nd3J z>btzN`c@##1*W*ym*4UwZ(@sT^rWXxMpjg%y3(X#@*cVTo|8-_f9msjwY^Lwr_9^X zW+Um%bL-A9pDeJx&-LVb~<7NzJi6`eF)D$Ta-LGPKVxgtL>O|g?| zby0K*y`?n9B`Gd67H1|Z?ovJbS(kWv>*;)_7_vaMD&M!0;xA36$~@e=ZQ%iZ4&PR!n>gmazUP_!)+sd;%l+IGEDZq=YHkKyw;-c;u zW#gcvNcC2cmz|PIk1Ic_%%(24DeZGKZaPsB{B>{b;Y%4VEkZNYh%}nxnlU4uH zdp#^CFuNi}ltuSeOj6yD+DoyLqB6S&d4sxtsE!vT^+c{!cXAW;WUf^=Jmp+0PHOc? zeHZd5_0%YRXL{=5Sat%rn%FlWPVtuFuWm7lk5t8~7&a=^xF|SM36N^bEW8YAUA}dw z5+cRPCqk4kDYhg9DdAEz{oo%!Zmm9?Zs(^&NpU{gmtGOECElCdUhODxVY^eWjncW( z3nO-Qb)$JfRZE>+l&(@-eTH8iu_2TVQEe`;vRAs3wRN|%d|&@>m$(1Z_q!A-(zmxF z{Hil)fdR`A>u33@&iP)RgmT!cPR+7LC^i4VU_|a}Zk#0rwzP_S{HQKl52~ogZ8wRirhvAT4#iFnUm~Fs~;_-wAkqK+g)fu6~2GF zQ8Xn6-s0s{)fK27GFA~@e|zz=+N;)EMk^w(-G|m8;k?R^JW9l!@|O{cc&R0TCVXK% zFNo$C;khN4SJ#)8n%>=@uG70PN>10~X zMC$EsvG=O5s;96uoYIxUWh?`rzaoV$fKG_;rY zq9tNcFimOVw-`OSoT%z+O;ep(o2R!STT>qv+1s-18B2Zb*%T|{9N920Kkv+T+Fs)1 z!e+Z6!i}t0oPE-Rjk;x;!IN!#TZ}hb{LNfnb^vw0n;%UM;#iLWau2m-igh5(8Dej2 zFip#9OMz7g%_U-YbQt?obAdjb<`}UlG?J&BmV8|&ay_v>I+|x9W3f#P`(<@X98XZ9 z)FEDRBX8;7nVeVr?wLq|rf7Y$D=mqlrfU*;xF~Z>CWjXfMx@YGC-#SSr)fZx8d7Oi z5RD_!X(ALg2^l<9EOqE%;azFc^l{&?=$cDCy#?BuG>H zh8$~Gp5dwsygg`1Q5zQ|dD9fgGo3F_12ppm@DzEjfEFK`GsUJSY0ji)+E&&%oM)4p zMP89SyX+rf6GhKW73+J&@{{W*ONi$w>0wDoXL?%d-6C4yX_me*(IJVauU7_qT*u@%bkVh7@)}cU zUU^d(t#2k>+NZ}lk$0H%nZ@T~$RkWvnI+fb$r()g{y*GHBtM|g@nRB(bD;$_DP*mx z>+Ac{EG)UuVTDq!_l!)*8ur?I9~XcBL;1Rjy;Wx^Ou4474^W!zqBEa=>%#?W_ndp+ zPrlcx3(g!hW!}0&cRJCJZx28&)YO?gsol_dcu{$EM~dtS9a{8jjj_m!nUF$j#q!rVkz{?J;}a`hgN;o)K7TeKmEKO{ z)$&Qb>^M;}8mo%4-FOu;8ux!O#4VOqAT1Q(#a9bOIG{1rE_~V{m^{kVT9F^Zf12s& zC#hI=O;<~@ta*8%xG>v>7Z%gqh5hu-N)jzNC7F)A;?@*J+p)jz8RueSVHy<98nRb5 zr_rQDf%*n|=_mmAers|ywIp!F?w)rjj`9$W)T23~cg{Q7iPIH| zQz+d%&C>*q+5=hYS~Y`Vb80EA@7?p=Cl{g!ebSbVsZ9^HYSnS4;hPe5ho&$|?Z;tM6=N4L1bXVNkTbh)R z#im|74aff8ljr7)y%}t?x|~b=5~=nD54v+w#Cvsd%h9p0hQ>2d%N3yhTv*MvF`KwJ6T)+!qRt3q`LJ5wsksHt)BE@#@rR2fu)- zKCda5SFnh!co}thjr=l-unK>2O;wlI5r4ZQLOb7?!&T8VjQxi0)Ccmy^oJ`4YT|S>$F8D& z0KzrnTL{-mtTzz1^6~{x_tHg~o51RW$%P@p)f@0JzQhcpPD0Dc2%0yxMQm%@AT`*1lD@59wj{62_lkr@`gQ22ie z|Nam6lVNnaZo`pWM6H3XCFG(l+fL90JGLa>8pLxx)edZ4J|`X7*xZjHtaI4yOwKI~ z8(r8Stya0RdFmFq(ICHcrw~tm;6by2eAAQ7_yyII!@Rz22=fx^5#|M6@nI3g^_VY5 zdv-e!?di+?$t&cX0E+qKq(GW*#FM5#_M4<8M1KBP5&1bBMC7Mi8A>iDi^FKDl4HX; z3hdjCC@}O6qCop9M1i_rI+2IUX;JL115Hu1(23}VX!c>}lL!g*>tiW0lpn@%U^rMs zU>JNCfuYTw1X`oy{LVBH$PtM&eTtaIL=F<2s=Lr2S9YZtLyk}4NU?JZB1MN&$uybB zAG*=xD|1pfT#UGnaM9*KcUn5-7pWXH4noixA&kp zQ2ys%i=INY*-|pBwwKw;uB9nF16KO!*#Z~XSn=#=DzIVeY|1vUt=1;nassl?*N*MD z+@3>1Rm{{mu&oYyibj;%ZbNCstP?gV=j7g$HxCbviJF zJ-a3#l*7kr|1k1*aoj7Mz5ldd1kVL${Udp1I2YK7Vo7l&EQ+U#tKrc+d0dT%;i=?S zbSwvy_q)Z>1S48{$8+}A@nix|KI#hyD@9%+#bI(v7n+#l=UsW0TBbvYxy=?K=5e=V zp2%v0y79DD7mG-w8;O@Q*pbdEYJY_zD;9Z_dpR1fylj{ZGqkYjq0 z_sY*QE&P=Hxh=mJIrpXHOhxSU>8(hcLc1B{OiO5?d*TK!dyd}=$#Zl18KhW-Stg`d z@rU4;xg%j@vt6w7{D0Q*}&75uHs75Lk;58-e5Dzr?)Phsq19=qUU zVKot!Q<*|pqxEx?Wcn9eVOc|$Ro*pd+Eo1gW*_uPUV0uu?UMCIB_C)EL5R zu19f87$twI(~JiZ9L?x+Z**c`&pH~-d0*UySdMx87n$P7msOkm2MO%WkDY|b8eGOA ztLpGkYZ7O9PhW<}8uVLt@=et$zY&R9(g9A)RHwP742~%tyV#Q=43`qMmlRK2EwuT7 zQnN+ml5O)t$QRZ2GExrHX*v8R(3<5DwLILw!J8{Y-=z;T z=tlbNkW#bQh^^xRLCb1*e zF`CzFl7-^Pbxfx9Pv{dkhq+Z8h8$-5aGNAno?3tGl0uF_=P3xLNa4_ELpr&ETA8iu zp{VMH49Z=i3w6@s*%cbj!v&JhQd(e*8RUa8_m&XLP2FDnY<~S^n3)E5!0)KIY3V+ zy1a@OP--(b(CkEWRZ^Leg7Th(M;)`-Qar+hd9tmpzE)40HgV?UBd44hYq zGlN}u?b{HBi4_eXHzcJt@O%U7uqR`Smer)V(mbV6jkw!17gGry%4J#i>wi={}aovx@gVk z`CekdfG zSK_+I_#F|(f=;|x|76FZy4df>Z;QCr4FP-O5CrU|f)HN$f3RUmRcvuXynZ4m;9usm zgJOz4Byo*yVP#l!yMlzxdwWk7!3>LfP+TPPP5knS!BnWB$SLtMzlg$*qA7~4Y?mR+ z)qNzA`L)dLVD}M&n>dFPiPt#g6=5~VJU5$X1T?~PhT@FoUaqesY z^1?IzFt!?BHa2n0lf7O1`dG|F%KaxLn6`gZw0tEK%mc9*vK~9v^guJzn&IJ?^$e0{M%M zrwloRDa4B~&ejYV=S?zB3SbY}^CTh{`%`Qy-_bJ4{+LhhMQ~+A9Cbuuxkks+iu@1K zOJg6Tm$w3tUhc5w^iqDVC7I7*x@m~y8kIQaz`3UU!G%_DIR**m!x$u-$1nlOIhcmT z(?~n-g&^(RZpE{aoPp$1?T_U1vMbL_aw(^vayU;FC#-j*5sjWTn3%E6qe!syo1ge8G#|&YFtf zv5I`%n_bb43K22nBt9(3xZdMI&hllK^=afme&@$-9MR5${E1Um5otu`x|lOpx`70C zF%sC&b{^!9L7c{hw(}r=2&oltEls+);=pJlSD>@Zv@Jx;qc@8E^6^ z`I8SX*EigGkk9(E_V@x@0gx6q7s+(5Y7{M3zayZ^VU2k+wFxeqgw%wDT2r32zX3tGt`-|TgU~Sj%!}B z3SKf3Uh=dGjV9(k@pUmFjG|YZJ%zmH7VNpt^)#LTN7SB1&^H*C4pWUPo!J z>m8KllIx(gbh(StT+B@_&577sX&gsHT}O#7^fCmN&?~60`JRD~xgO#Yo&By%DQy0v z65Xmo9Rc5ty0J>(WK1zy#b1G(klAox>#Px#Z#F81t6 z7dyd|PWZu-j*!4eK6KaLT7SSt{1w}Z&OVR zeB9YjcXs7cpn7d2EpSm3WtX`4urF?oMlJAGE^2|I%oDZ1<2_LeYy0AWBlYiebQz*3St~_*c_lt<=nv$B8 zH6$lmX|f6LG32F5vljlg^W@DAM_Ods+*7Cvr{aRqmx9`Mht$_fww&(>C9$(3fSMeu zNfLEYjDatd>}yJ(fZAx4kXu@vMDAjA$ST~_*qswqDjGIX`jb_Bs?cVug==$G@-XMA ztgO_Ot`QM_?k?Pp($sPD9^vnIXtR7SWBOZ;v1RprHbSrJq)4y9t-`HH!(c6Z>O z#f}>rimBs=qb6hH-nqjAI4(k)j}1pY#s`1T9AMAEjfs1wQ0KW&np0@=FD2c9lysLq zim7$eyD{86LP|$$2FnxGMbt_~hErV>#WAT#?9cb$IMhVNT^$!F)U!pw9C1>eIL8`U z=j9K)k#)9}#cNq-MRqugCWmva`L9>JLH>J z^KB6fo_*S#m&dJLIQ~=BG9Tod4F$H277j`8vo7Z%=PRlq|2}6bs?U5Q7o9}xW)=Wc z-N{=9^+)7MHNqQcKCO|bPBqN=6qUfa0dx$h7VjGH1`iZSb zK;jRXi%uO#J<`q~^>F;bgQKYD>QQqF*$u_OdX|bzW57*h8a@@M=~)%2$T5c0Bgcq1 z#5snr|JlHSU|t9EiaxiIR|FqKpOeFCq_(;uLF-~}p>2`Ht3dJhjU*Ivng${CZXbov zTNELcpN*JX{EQN*SgXCj+g%W6S9v4Ot`0<;eLe&=ohy+Dv2Vm9#J<%T!S$^~1lM=F zBDlVrh_L!j0>bJW(Mb5OMIxfU8i9!VVi3~)Q(j2>k5VK}OTr#UPX0F;DEVJjNTnUw z)<=pSw|mnv5>bt0)@=upS=$vzW_3kcGOHq)9o~jywm)f$l+32maz)8(9Q8<&E)aGW z^+>-HNNK%~AfgniP zDqqR>S(FfCQNHRJgz{BmGNg$+TKTHRlLaBM%a&6|`BOUU>eG-vijl}4TQZP8-V8zh zc*Ftu;~E|3k8&!qNcAaXkq_dLMV@j&7Wq3$jdCgqj_TtmINlCK9=Xe!y;^>SY*GwE zHhDh++2lX8`cVA#Idl#26mrVj{>Uk}(KQQB1L&tP`jZqMNvMa+ox<5-D(;?R21jxo>F#DTp#s-EkX|Gs84_7A(cO5|$Etk1a($&-H8hJM7dE3rYx5mJY~sOprYvZK}G4N^7JJaViNPF4i?J33ZSSMps2_Z&{cGMF|DOj zyh>TzFHl#)TD>hynS51|UCC~b+K@fV57>Cy6JflEZP<8a0Zh0x1}40d^laJ@ITm%; zIv+M@++9OF_BGMZsEeY90tq2 zit@Sq81~&7$@VSRcjda(<1q50R**_wfsx;GW+RtHF!h!YHg&lK2CsI5!SCR{PdNnk zeq7J?E?{i$Q%(=DaGL*3YWSBl5lrd+eUx{na(P$S z-awW24ODrp&hj8fz{n0ou-#>`-N_A+tky-TJjidk>MPu+N1aUdKPdiMUF1OyhYjzE zX0z_jW=)A4OMu>OJjenr1`GW~)P$d8Pmmi>84jV!5xK~$coq*0)T>XGz`2JRP&b@orLHvL~IMlK7c4PNU>Q4W)xBx??k~ zFk$p)Ig(CHrhD#FF<9=Q6W`N4fhryJrW5bbJy-Q~u!Bw%(>>lMI-o>Gj-|1h=AK_^ zoJw~X8c7}yVRX+xI&BJc^VBR%&i7ghYvDKTc#!XP=M>_;D-ZHxF7k?2AJlq(fGc-J#kT@$)ezKu&+2)Q zZ)b3t(Lg=}ELT~DWAh#%kTlA#{C2|Pc8aTwqaEKTRBT4kuZG$ho3NLWK3on=tFGw~aG1u*c z<>$ikov9&^Z2oK5d~^qFejSXxAIw}|1v4MZ1}^Nc!p>*H!hK1TC)@rOwjI_6+x{6= zov6a9*Tax|!H{=ybL`~6a7ibx<)M&TWK6YO%$or z`mkF^2Wv>(G9}WQ8bhrXasfT$M>^B!M`r@t>C7}b^EI8Rb)YjIO?2i(Iy05d{6pU^ zY_8Io0d!^*jepZG-A`p9kwPbW(urT_#40*riY0j=kotgSDV-^%Gi||iaGOqiXUB!4 zj!?_SZxX0}p`s>rL2M^MnzX4?Zs>xj>x3?d_I}W##2DyNA3={QCxx4osH2YPg}AHr zLKyo)gnEZXC|L$aJ7kB3i24X*)nX`|>oYjlc5Adn-0($;t!BZoK4F&<2W+~KABl!A zIMoQa)Aw+s^G;}vFlNAoK7BBt4mw-i9k6zPpBZ6v#xNPGy<%<&AIY!TdRD0e1_z`Asc7>d@NtZFn##BN5DgiS#knk14B zp-IA_SZk6Pe7Ps3L++)ds*Rxbbt5%0lqOSfT$SgjaCb!84+-dwxL*>8?uZNdj&|Ii zwC`EH18HRH@f@8KCC}=~9GweE1ZqvLl^aP^>g6$39;{I{7uiFj66GP#sQ&568kJf* zO6O04Fm;(bL!>&}4~YXxIkNjI@3zWTZ2NA$SY0tiwBXf(q^IiOP?~N(eh(z zTK)`eAL5-pg?3y2_16?hUBvy^l$1VMSvfCG`0(466-TZ%bC*P$T?Bfv8=@$z>hMS# zH*b4A2kyq8CkmFI4WKyO=#xzi=Ul-w+V`IN$3w1H8m%*ns{}d>{Bq0hb2ZXr82nQM zs{NSeosg4X zq{}T(GG6Y*$@pz3Luy=c9kvm;`+`OYF9D@0lAi9Bob;%=(bqT#Rms>j<>jQNycB54 zOVoBvd3gt2(<1f|loy(|kfIEzMRMZ0+#3^33xt=h=TY-@S&Keu+9Siti+HjgmEOo> z&|jQ3K!34bfS%ucO@4WnCOWFDrQfo(aMMCP^$e6#oT19gndljy4qjw62eibzF^@AD z@rxU>mn*5rURq!2&Y@GO0a^IL5M(Jg`*66W8VhttN>xUxk5oZ)>|FTArmTFG%l-Hp~D@H?>Yt4je zR2Ku)=z?@Ft+EO7MUG;`^v=!S06e)$*KZ91b#Q6=k-Geko*j`WxWTs6?~6v zOFr++1=mF|Fvl}!CFnu5SSrkZjD`a10}%US(JCY-!shgqko=-sxT8S+2Ym(lO7s=P zwz8Yc51;}XNL#0Zai&0b!9r+(t~cQRqbTuE#AZfR8?F6c(id$+wVV)W-oEC6Jac&% zCzvB(C3U_?FxQ1}{VxZma@U7VMXuy+jq*9IvhTt6Lh1q6_eFnL&1qY<8uUu6tLV&obfzzzskNblEp%cyHQ;m?^q1_VV4NasnNBBSjC5ip zomfl(uaV+k5ylbmXLM#Ejdv-u2x+(6uuf+CIn36LwhG5lq6*`+zsAPPt>e@HV}r?1 zz6cZ6A7K-gL%11F?m;iiK=i^uoR)*o5wn|ZSq^q#Q>HF;;$Rr`J~n9iq!Y!0@-SPq z90l99ItSZ+6Si%K%_;JISh&l5wr%-2EIgncjWcCnGTLW$!q}hHjQu_6fNVp7GEXp7Az3-l2ba0wZ45P7-#w8RjM^by5xI+yU@&KLb zVYw~=7C>>>kJm53MK3%^vaB4mvTF#&>9}q&q|~z3!eS zdYAXonHTAv$uusdF@o;U-Jm-T(uqVmF_p$iG{(_L@|iqO?}OnX9n7W^kI@|iXe_3m zdEY<>hv|-A=n-BdM##~0;sv_LBKJ5+fLG0K#%aI_fmGHJ4kOAw`e1UETI!W z(<6@3m`fvF)kO$@N4CY|u*k2#LEJ$jS{=|xvjx`s0oVskHEq;XL#<&uVCf%%k8yvE z=x{`v4eceO<>XWF3AEe@4<2Lhf81~pfwO6vo zrLe&i7~eh^TrL}&sI!CJeF^&#onT*o!=|2tP2HtE=y6hh4Qrx+i=wXsSZUtiE-?~J z(JZzSE71_NjNLP!Wo$kcs!VPi6IW=f1I2ZpVmV7f``Cs5S?6Rbw~~pgqz}+)I2)^B zCi=>5>(N)X1dAnwjnrM%PU->8uA8u=z72+>m!<|Q?mRFXO=m_IG@b24H2MLU&JAdy zk(vf5THVOesw@CA(3AGi20dvNVHQqPsHc_`YjT~L^1LTO80Ms+bn^@ zq^Rf~)9r?nya*?8xB@5n8150=4EHF9WAqkqjGgd>!SICxaDt&Qf89}-{|o59v^oXL z&xN(yod2)2lXj*%1v`HR7EYUw$h1>o)a7i{BHRSqo(D^IZ-OOHhxHn6zuu;J%LPU3HsCw z^=R09nsX$%9BrHSTHEIHeilwZ1y}tR-fbuU!@KN6ayxp#9BO(}yNmpu+bzWa!5v|a zmq@!(=90LOW}>4#M+k@ANO3sk!5v{|{Lm40IS?IT54u=!yJhVR1aIYnB ztc%nELG5Cu9&jm|tZ9P2g05;1DeVaEPzi3B*Invnc8M1onU51NJ`?Hecrgn-(cDL103_!#u=BPchHi?nbF(kIT-_1UO@pe7Ka@?mfEdHv%7IeCXO`n)z$ zAD1fE8AwR3upE{PSQ#c&sUSmTY5%y zA+guwo4c~klVmMZ=zITYSHp6DXTR_#$xH2B)`E*++2rg;Hk+}OyT_Hce-*vP_^fsdAT8QQd{SLH61lOZXo5OOaT!w}k z*NbS2=w(7%#9Xx1I8bXIm4*k)pQp0ok-B9 zYV=F!w$U9xe?*2r>H24;2x>*o&0KUzcsHR-;&Z5po)6F^@e$M_H>&tiv&3|0M$Y%q zEb%3jqd@8^52rr|`cWb^-qP;rP2fOiNxGxZl3ow6G(mkoMcUBYSU^RUwpbPjx8oX9 zavT~V8obd6@jV(L)D%dDm0BajFf>A3rOkFWq@JL!r#S?*(x1@}Au>=z-Nkk-2e6qb!JfTB%cQ9DN*S3<~Q2SlR6dl1R z3V#JHve6CI;wexhYpu~BF%ZBTqHi;r=l(kl9lXwdJ9eSlPfV(B+bo5MI)OsfR zpmX9|bWYqsU!WYoo+wKpYTl);M(Up!1TNOPC=BSL7!qaS6_mv+f@Oxb!!j2!MK~@v zA%BK}CSvE3+<-EF23mM_qYGdNELK+yi_L?@+TTU{z$dU<|905z&tM9y_W(M3#=?f} z@1Z+kHY_=sN=4MYumv0jdp6ubcf(vTk+(s~Dwy_LFm3l%nD#1gC{q~f&^xgZ>F$bP;gUX=PDU<~+ zhJQSuYyH@gH~{_%-M!fnZZZs92@Sr9t_(yz^9)!9&$(}a=L`nF1+Q?oE#S3|%Oum;^n0dTS5;CJ8&xSQ~XyFCle1&_e> zR984%7We_U0S;KFg9CN~M}yyj2brSHCf>qlC@RaRTx1qGN+74&$7n9!ODDo8)26l+ z7HO!Dh3@!^?l?&KN}Ds?!y*A~nvzj8enWR0qX(R!aVFgkr}L}`jHBBZ>3lhj-_SSK zvmi5w?nt8_X-nNK@&mf(HyU@+_zFG3NMergV@Y5LouO)x{DQ_AG#;QajUPe3ToW@x+j-#=X#!wpDsfp(dyqkU}9Y2i)$r(EpX14Q{tkW`XW?QL{VLLdRvPYdDWb3Kcl@DvB!Pp#G2mqIQ&3YyR^WIexDTuWZ-TAJ9POZ%_=9m^Iye9v0uBeqg5$x- zpr*8ZisQN9LU0+l8vG4h5B>@M4WcJqZpZO1M+-Y7U12zMh0fT1X0%0KbPDpqui!`E z7_bNEjdbZg^oA<%7w{8sESL$>UL4xM)=K3glFiRTjo1n<0Y3usz`M;8YnAs`8Iz$ow&a4lE^fxxOA0zm`>f`Q68oUY8<-w_y*%l4W zzF;hv0X_ka1oOam!S}&Wz^}mt;8GA3WBCV;agi~JT_186&g=mX_*=LKweNm_;%YzS z=_V)S=|_;KF964a@z^!lK#en$x>q1|r%PMVF)rFAqd1KhO?qVWyO7P7fG>lo=w}no z*k5^x6I%HP_ysr?Oaoo9?eY#{>OJ66a3(kkOanc!HM1F^_-Sx6_#;>Zz6xsLdLoW} zu$9wfg)X|=2+vDH27!t90o?-TF< zc4RtqU?XyW%oKIC9nzIuC~Y| z{J}2Z05As}4}Jj70e=Elf@{D(z|G)Ja36Ts@*+pHHMmJL-BOrncbMog7~yy}LQ<$< zi%1A1wUN4b((93^jt3*q z(OHAgc{Vr*-JM2fv`$wcD zHc-D0CEq)d7%T#(gQLKnpg%6H)k>Gva;9n&l8e8<1>j8ZO>j8)7)Y0SrN;+>_GmnP zh>Yb5SPdQq_k+8@iew8%DYPcVybA@8?&nD-*R40#n0QxbGj>_q97bX3eUy}jKgTky?2%8-05H`Jmpyv>Ro>YV# z6s%B*$d)d7PAvz|phUC+B_jJqNas&LI-duggMc0h0sUq02e1ZWx`%+6J^;m`iQtdm z0k970x-%+7UBGN`95@a93S8`FG1XH_5VRSsqR-di>Q_!nu$?;UINC#>YCwDF`&166 zz76XIXbE-RjD6H@d$Et&=Lq&u`<}u+YPZAC&Rzb|u2ry;RdZb#tLC5fCOM~%l+A^X z+b#YCs!eVRGJck8)YMxJURDY zr|DmBAlqn7L{@P~%POWKhiHrATtV!>#f{`hWCOL1i2aM0qS+5QeF<{4G4l9(PRQNg0FNSr?}prc0dn^STUhxJ@MorYfUC>OfpC;L;Au!=;qbnfz=dEn zQwR@uFzuP3of8wlMc{t$ZWrET;f$#u5zGc(1F@Snmt~b_;oY0S??J63{5Fn9fRBU8UBuz8Q^ZFXtP70 z*9)8iu49Tid>Dg_Lzws)_!D>z{dn58ucuMroB@`Drx5!#0yqSG2mBiR4crT!1?!nY(B;diAIcky1ABu*!Pme7 z@C)z#1q zQ|Oxz;_U&y1z!U*n8JnPKuRHM!M{N*C3qFbS|Z^NPpyNe?gy8FMc^2)2k65Tx)ylw zS#T@31pEjb2Mz|ig8oclt-{OifG5GNAZ?w9p*|V#Ly&q`>C9MgD2Ta%8qN58DCh|~ zFojNFwrB>a^h@dARq!-;1gruNfO{;reR@)2izsR=SOV^1iU+thv7{>=QW;=4_z}1U zJk6wr7sP9c;0W+za1B_)6zx`s^TNO^@D1=wa4kq5TtmO5;49#>;NxH~up1Z)hJfCnBU9*c^>NvX z`pP}<8h9C`kHesSfM>x|;0f?Zq{T8qb&7uw%`{+tz9)j2G;kC+6I=@J0dJ$o=YmM5 zGx#L^`s!5QGE;9PJaSO%^D ze*u35*MjT8jo_wk7T!UfXM2!P><15mTJy5TDx9H?G5XHpQ5(BmxPgrx^BDLn_!9UII34^PTmY^BH-U%1D_{$*Z%7y6 zp=LQvOYVkaTy{mih~vrNSKtb82S{B{^j%GS0UzlMB|8S}2j+q^!5_gb;CUu_KNRyI zuop;|5vShrLU0*)0BqoEzDR0Xdi2epP^Suk%@Oc8Sp5i3;P@DL7(57);z{4T7u1wc zO&i^SGn!`lGmaO5-+*6$h2SLcHSh)SNiY-a3Wk7=2)9VvrS#}JNV`Spcsuwj_&ulv zU~k}fD3}34Q-;7yt!(!YV$tRD>39S99XJ&n1@;C*nZk-bM~Q-{GvG$>8*m~x1dL+} zgAu{fS#TX#488=WF)74ET6P88;AP<)-qf*-2xu#~8TD2eNV%5iw@CAG_DXd?7zL{=YyE5Sod(L^7DM8Q)4*bmf#DlLRsk27bO z!sLkbECU=5E(8xUsY;F{EfLHGXM@`#Ec}D6jd2p{m$}g1y0L&?SP~IGP{PZ1>^#ckp{~1~?k*1qLuF z1%WhN1O5qq3%&~u0)xW%QZfxto%e!^z<0rcU;yt|l{X+Pk>$_l%YwIyNRp8 zDPS*TZiZ&$Y53$8S%l*O$l2_%RZmtTPn!kyMYd*r-?G(;TAKcZmh&6<3%C?q0xknr zfos6^;9uYtP}4t8;rJTZ$P_~B>TrW56b|+Phk~zzh2VVfH}DYH01e3vx{=mg^*oOM z18RDbcEOE?M;b!1AR*;HA}Sr`W6^;fp)wu1(c9n>u$n1Ud>o8?8oKmX;6F_2pZKqm z?LpUM!tpWw1V4$(vdLGFr>#bw)?kf%tPeOBSy?R!=QIPQf}etCFFAuERp^gFl_-0}$jdgNa1kxOvqYw&$A4;%_6gRa<+)&S|K3S0tC1|J7~uu<(C zG@~WpI4};I)-FQ`(j=pyd@P(aJ&1N0koq&6DIA&*X_bL}5O2}vv`~ySiAh(^LEtl+ zDS|o>)huI*D7x-01vfu2=>oLaH8C5lpKf=stKtnbfLa|w18CO{?8NvSZJ_pN(FU5* zjyBNgpw&*^+2MDcdOCU(Qa|CNuW+Gr5%s;0>N{ghyG6IBk1q+Ifeet zpo{45jHpF_XXrU}cKV(8*GGyuZ>P&<(GPo@^xQ?f+k2xm_g){?E_i!Z`|y)1q3FH7 z7Kz^L%bjph&YB>D#otA;=PDTG@8DnHR&d)RXS93EaYi%ZuW&pK90v{syMlBXdlFjf z;S&eJ#o)W3<}p5~qnw3rEe2l&V^B1?2#@>@%;r*vXr{|T(cFRVE!t^BiHK;j$CYiC zAYbT(>)X^&>Oz^&BwU=Mk*@VlO=Dl-`ZmT8T%v>0FSCoVK|Npz(wF*umN?KAowe7EG21p61W&V zhRqEQMwDNA!SN@8%fQpv?%*Y`-QhWC&~w1U*!18^LNzJaPeHr>3OtFO4?)nk$AQ11 z5yH9wjSzhibj?HCgYGKY9x@P`eF2_Fk3%vdI_hhn;7@qvRa0r+VhJyCkK+phDwg%h*{sPVg zr+_(N3h05I28|GakAiE#*&uelO1i`c?MCp%HiWwnmA8Z6f#bnGpeJ@GTzo{Mo`T~6 z*smbydOXw(aT?P0GH@c8g3gEs^r>V)v}*yv_*Ae5dLo()=!w{Zm~1APj&6v1R+a%8 z375O@*3n0a({Tm(_aoHK@5UKT$~=tYli(TfB6tnF12%w~JlX-HfNm=NVHycwFYqbw zMer?fI`}2H5L^vbfJeZ)FfKdV5l+m@JQN|akO(ysX z_!+ncJb``(eGB>>LXk&34!#A>1vi4{(E;JCq64Bg#PA8=PayTYlWuNkM>j+_1ZS^; z--3Job$Mzjs}P4D0gr>Hz#8x*cnmxY9t26yq}W~)H+SNA6Sxjs1ug{_g1D%j{2a$K zKuubG1;@j{fnX0X0i=(>qTgbNW`ky=7Pa6Ja0^%tE&#O-nQ=JI1~r*D2rUYNKB|-i z=R3$_4ufmK67W56IH=`AL1<%W)uU0S8d24Ha5nfBI2epVdqW3(&?|*x)d9uB?+P6ms>+2D`hYH&Mv0;CV3 zqOBmh4qST84H|JLFasO{z68?8)KNG6JWx}d_u%*vF4(4{ttGV2#0x@oA~+Bn2Yv!- z^7d{V*YcI!gpCOoc#C*M93PA0SztMM6qkQvWu5i`1jbsdAf$oP1uKc$!QJ3qa35F+ z?gY1i72x0CpP;67YP#ndoLL2G(F|(eat_XDD(XxePXXTn$AP24=fQzsIv58Af=-By zR4q1YfYM8?@)Rc>2P?sK;E&+v;1uvx5F1ovFC52!o`|tbdc;__AVwbs{{R<)AAzrf zPlMe-`g{~pzD@KI=CmK?8pLqg6+_3%!OuWVHXnrJSj26@0dX7Y?2iUn6vS5}l-~f( z0mp-ngJDdeZ$*etZOGJ&{5$vsI1cOsdh(T;C2gc8ZUyIouY=mwe%j_wmvNyj|HKLq z*SC;kaNHT`f;BbP^rUuta3T06*n=q?P1x#P1JXx|_o9kEn8q|2=voC7SsnoAfuli^ z8M&*cj#G`l88aFE8TRdzdF-PvzFf>R^yOJ-tysKHBpzywyf2}h_hXPgCYH{hWQq<0 zT7u)j9Iyyn4PtXUJ?OvN-s5R^KaOXE*cwl*<=8YI4n7Nh1a1JYd(cjN8H8QX&x80> z7`dH~u|uCWOebQ)^sC@P@C3SJcz-`_`5yungSZHQXxFYL(+3v`cpvY3z~n(26{=~Y!V5H(()bgNqiJiyO}@540Bw&*q7yZA z$21zhrIB|>JjZ(fy1d*wzfKo(8hoYheEmoX>0?JLT zltG08f?^RF6g5(;peQpcf(%knaYAGU0hz}n_w4hnwe~r1liFIp{@dE0@I3e3H#Y%t z@7a5wwb#4e^+uqDgS$Ge(8Yr(jMe?3OADUYV>D6n$#OReCQnzqN3l60?)XB~A1O{# z%vQ`~gxFC?{B6Y%iftJ&m4w~bD2`L?#%Ri*8Xx%oGsWi=`zhAYIsO}+7oJt@&S+Tg zkD~}mqY+0aUdCu559%Oek3aqR90E=q;nlLqwW*hOe8of^(s_QmVrQM|W7ON%oujio zO15#fk3XrieXgS14Zs#?`M;sqPn$r=JT3D#6?-$9_@i3e&nmXk+WtZ-`4O$;s@An; zrB?6lTD?i9A`9IRAQL%;#wozTH56}BoT9je(Kw}qnY$>W_7{lyJx0h>f0wwDs@{ z_}m z56aTLppLeV#~97dNNp6qP@KnT3MyUPBFuqU?FfAp-;;GzBQ5`DwfxVN(vrWA(R`sM z#c-0qGI!U>pbWMlu)%pNxzM_SBzV3+FiJl0yfQ8NT$>-UvXG8M&?W}5Vk9JHDt2Qu z32H>`<_fpp$Y_$!3Hw{Ad@nvX@yB)0n6B84(M0Uf68(c>{W4gI?pm$N+q5bZj%p1` zuVv~Pt-JRXZ_(;1J z&yA@kq(7d~97`1Ue~aQ8H8*RiLuD?b3E72b{kKn+)B^jh7T96b+gCx;7cHs-30g=4 zwUBnlY4P00XbuLrTAE}#PJ{&?I0sYFlJ-tF9sC%oui`CUV z>#y;;Pt8uEHObx5gyzW;4dj!Y_uiE>)SV$Gv?11budno>XIn@gy1%OQq1(z!AG#q~ z`q1Ulhlb`y1-=EB_-w?DSGs}c!tqtG#HxTB(WcPli-YgWdX<{T!}pg~LpdxmH@`Zg zYQ84lsCF-9VJ1rSOuy5rysNj7b#_klpi?TAtAREiP_K0TntGaY7m5evp@k>M`M{xS#&I z$!!qP(?;aZ>neDu9#X-}Bo(=oL<4zb_lC2i#S}ZF%9g>ZV2MXouu8zaU-c^S`&6&; zkPOw652_^ParGQ12eW46RiCDzx~Y{XUv;$`ATNNkeKZtaIJZBjQ+hdA<>Hh+OK0!4 zMjp;_pX*%xm~7SSoVWeXR?EtHh^(CJos*Sw^m-Yp|4vN=n&(TUU;Jx1s=p{d=R0Jj zUi+jJ`w3fQqCP|J>9FkwlD;BeUC=7*Qx~+@4`iMGocx?e(9hZQKxdH{G&MaV34iqi zlJJ-PLK6Pujgs)kE~bP(Di;#|i02XZA%7F-8GfnIDsQfCOt;#CE;MTgMP=!;(YlGX zAzft-Mv1kWrd!=L;-8MeCIM?>mexi$aZ6_s#Vy$!{dMAy4p|Oqk{F{bF-F^LiOi!a zjxq2!M~ZNTl7oHJOyF>ws$<5eBF5BKMa&ZA8E;?}jM*2XVi=@wkgPnDqKwT{mAII? zO3l2XbWA&?V>T%fgIX0NVm^yhBIXwBi5{&K%`2NgR1f)4q-p)we57SNuW?p{&tD=&l6!lZqc|Q6%JP zQM6Y^{87bsv_PUyXn|azMEYZj>$F%(hqPGwDhvODmQ2JxEty8j;SW)SnFCBtik;W; z=_*OUOf8}q_@0A}yIO4Avtr{S_lu2dBhGB1<;-?zU9}JgHdb+)7FTo8Ta&fKVh@Yn z>Mk1VFQTzh^0eIUlV%jA7Lc0Om(+9|mz;^*qm|c1h3s!>{Z)n2OKG&&R9l0%Lt2Hm zs!D#nnj17#LH$g%I4A{U>=JN}Qj3GA?OK<8Rj2=v+}5vFG5_+yt=gb0wwhwKB64fn z8ZQWsF^xaeG=5f5?Qh-2n$qWBj8GciR#MzLCfu&)4K&G*z*eCYdQWJQ4^eETseT?- z;K+2otK8%$#V(rmPH9d1ElNvTPlucIysB2fH(CKtD|S^$S6-5q!wM~jp^7Nl!lF0; ze->mXt%Bi3Ee)rPmd1K9aE~e49ObvR2gfsF(K>3e9D_AE7Rw9b#;((nIf-6&STb|P ze)SUjbr!xDacCl{^>edwm-(gqWdylu4=tu6=qeS1b_*)fZ=ogiC2DlAq~OYd+J9Pf zM4?z!b^yOpPV;n9t3oRWlxI85mAe$jDgH(AD{a{nCu0&d)+D-Fag?Iysl{!VeZZXxk!HCH=mu0F1~MqL8vO95i&I$2eW zSA?x4kZw7+TDtjQZ+-=`=0l7xVSEzz9GPEq1D(?XI4e{NPlEW)di=y%jAQTl9y93@YBJ*i4hjNz`QeT9avk;%LQN6q{;# zImI-+zLs~y8;XxBT4xEkOkmm_hvfvO-AYZn@&4q)D;b)C=itL039nLlSWH#CO|hOf z{gaW}^p}PCV06>-RNMgET{vgDuQA-ua2dj>XxtQ*;HEGV4|;7B3q}_{fQH||`8*1K z&G@h#c;dQ!@ZrLG)s#YiA$K{h989xdev9wWK4k#L<{05bZ6eS;!i37=m1ptFofx}d zge$K6Q%pg5yz*zfLci927(c{!O2h8RO~(uGVjPK)uB_WI)@TOl4#to0^#qJ;S9B1K zAN38Ix%?I1cpc*ie4~Jtu<7_458#C@_{Jv~AC;?8UHN@&QdgvhWvY~h8HZWCLh%kp zQ~a!E`JWYgFq-&dS`p7Fw&c;x{Y;BzD5I%Rpe6Q}Voyd`AZbxfQfwpxm9<*Fw=tT8 zBU<(o89{Yui+JzireWd^UEE+y)sSvk^A+36LTrofYf9&sgzqli_Dq!m-4^F5HdnVb zWWmBODL9E2#i(B;W+HNzIEmqkWzUhBc#)x%i@C88k2~>52u8KTrh;ee<99THlc^uW z2l8TRtQq&TDk4uNYj)nDxSl;W-ODtoXEB<*3R(ao8O{D!Ef#B`vR1v)vM#PVlV3%P z@<~Q>vZOZr!Hi~atZoSX7|qAlDa`sEtx=uimAb1StAtxmbIIT&sxu}-x26{v;c%`S z*lb1Dz3%wa^|9{EO3665NTUNnN#) z&{+(70Bo+YguvM&ULjwyx3y|6Gg>cm7)`~~S}-|UFbTV~RDPwU5+O4(a|QaM;kNgR z)<@+tS|4blhV_xOUn`?OqlsM2m0>dSwHn4SnuP6I4xPjL4OTd&6)=zyUFQiOO~ZTv z%O?s~>jz_VMB=!&U}}F`inIDz*7-VDXg+@uqnT`5{hh6$sr*hWqK4j@!v{)g4o_t? z=4wt~vqx<*sGuP3xoS>OGMQX|$ zH6@SN;FL5QVg=u%i$te&f;{wHm+0|>SmnrHU{4Kq01reazb(`4=3AuZQ4zK&LB}hU zfQD}eCh#Uzcd19Hx^r)AO<&VoN$<)WQ1i)Os`=zB>F-Kxm;UauJozgQvHpq+HDk)5 zgEr<$yO8F}skKc^cZH2&x0Buyqa8g> zEcQ^A8=D)?il%O=Dq@qS@_Q3Ei;7J%2o2Yf%IR`MtaIfx;+vz#ug)*Y`c_;H%hnaL5_WT!=HYQ7w!Nx3jy zlX6*c?W3Ql-rVeKtiAK()tZXukt_#TpD2~Ec~eer<|`a`u^Ari#F>XyMp2q=D=TQW z9sC7nn^W*xcvN7Dt*N0YcH&no88o@2q(t9&O%0}aa#O@Nf7^pTq~?|Kq?MiHgH&T{ zHeW#!*)g-rlQVXX4UQ*I?Cj2tRAOX(n-tQ)3!11k^3tZva5!dR6Vkqp^ICJZzi?J} zjZo*GkNd^QLic0|4(?NN=zakLoP+zCT4A(it2K9n_T|1Zx84gBfgKxm?LZD^;NlLv zFvXf%*Oj^TLhbb(X`IZ-1D$}qE8WtE!w^*UOfw}j%e)y1##?lcg^ zPRVKT(Zx;Vy1kWoW2x|3Rorcm#yMV%aO27?HJGxIq0#yXK*H^^8e`M5yZc-?ZV z76_yP>j6QwZjK*k?@2^->BC=*-Yul|Tit_8ofcG^sylIQC^3N5-ca!2b&c_=hVn_6*S4`NhaU zE6}T@<$!LwL`4*;!QgQx(%BDLuhIXP`SQZQ=W;Yfn>&^ z=>+&O;L*R<$^u|@%w!+|oWTxWCqwjiQdRR|L!kw9^b~-%Q^B%>L#D0 zGIFJKUz0&nKQ$CcJE{hp5vW0inE!5x`5TMD<9EXj$bEf{B)_|?~~bIYnc6ESyzSi1f>ic)uS_FZeiPhERN<{9P`9z z)dop`bIxPAZG?Bp}979M4kE;K?`~wVuYo&9I$T zmGgMzO}v5zTW%M;Pzw#Q%yyjI+!yi6LwKbDPK0PVj8_)ml~EYc&(@q{Guo(+@yZmu zayMZO>Q+oLFt__MUU>p=rzu{jaUL(cgBRxGh4wLED>1Ie*Bde3pmp^n{x^JqLn8i_ zuc8Hx`lVR8ujIS=9=b(gE#}piwdP~8 z&D;iTh(hA4WQO^oIuRUCm9J&CIuU#rsl{24sZIo=D;Ap3;Lu*sNv@rEvu`YKHkiqh z^JU4Ey?{wht6BFWO#55$NDM};Koeg)`xCyEbP^$(AbcZN0zPNN>FTzTd{XP-*J4$y ziC8NsKwgoRSQ-kXAc%ZiYa{Mkt&Q8I9oZm1u`4CHdQGlk)k9h)ljSN_`jl47qgpL- z2jnVtmt4gnwrbJ*QreXdjSUn-iPnpkMTW> zb@2_kA(Oqk7cV@4aTUfk_y##Q^IbGtJ0uPY3Jg8BNUsWd~noH1&1LcHdAY zF{?6;+U`=N8?UT{^R{aZjapU&!gAl%(Yu-TDpJY4X=)@sdtKtQOjxO=!}C&y@#?mI zeTt6c#C~Dx1=SjbzZ9rfD-5Vq`g{pXcLIK%2hhlXB0?8Hd!LF;(LA7CA8RYN@!X2 zwAT9w9rk0lN5#q|X~Qy*>oS^cKon)c-isMJP)vmwIXb+bwPo!u=m_uFA`mFekg30360@&j zmBYVZhx!w#QkOk1b(zybBF>GG(v|hsIsYK)qM$3AC|y~oi4IQ4mpg* zxk`lYx7dGhcU}=CE@6b+216aBCfid+YO-ZfRFk>q}5<+ML%s?`t&AM`)f; z(L9fOL-Ra&6YsNWyKw8RU9`O`X61dFl?ClJ9}id8O#H00X5xEsnuD)KY7UMjKFP^so&i;ayWDe;nm{i_YXZH9dmbjxl4MOC%FnXUv#6G) z&H>;z9EDDG(xl1jDSG^m=cUY#q|6HZj2jWQD4Og#4}@8S}jUA|a>A4AU$wDH3v9J&}+{JClTT z%*1HX;j3ioWDZ_M`q2sHM2h}iR$lb?9+|~Dd4nRvc`vD`{q5LI+}Xe_YB$@_hWi-) zy*TY!pEM@7?VNisQj=m+Q%(w}U`)KG!`HvybO6biqB(G&U!_9#K{NC`4uMCCAupG) zt}akFPU+EuPGc(M!+ploSb_WK9Gv7M2Oh71PPx!vrc48e?7mw$fI~j^y6da(FPwnf z_8U}vI;k(>?&S^wUC{hpobOH)$3dejj8ohv!7IdMA1n>{UcDaZgK_7ezIZJo;FKG4 zt~hE?8U>un6VIc5YD1HNQ)S|LC?EPX3ph1qpa$RUj%glnD&!nP=3(&VfxO~__QEi= zG>&kw{XUzFc2~_UHad{uLW4Q#P6`;^T#0H2=73% zwm$f{v^?Y=&JK-&#^*&4KJUY+%57G|b&d`|8HoEHguF;nK-}3KH7J{}z|xQW8e0tV z81Rf4l#1`pDvu0O@^P&AwO62&;;FK(`Lb6!sD^^luJhec*h0FmA(3)+bcy;nRu*@i zylEA2|${*ZT2POaOgx1D=5w?s46Q;GTqhdNGX%KXam)g#ZX@T`VQM*In#5aANS*b2iLi!C;5Ss7 zs^2wa9y>1N=^exX*7Zi2HOpO6B`I>3iRe5(9dqiWpGyOI3c4lK}F=n0ll`k5!k@v9I)u zlcZr>jf^<5l)K7_6Ft{l0>#^;Mto8V#HG>VM|VJV2!8YwnqYw+HAunZ?usg0s7YRj z2p44O2B-*epWTj5i%8{vS4TZ0&$X7*iMd%Kt%s$>nkEM6O*9&E+zrLR9c?cU+Ne%2 zdS#&x568>5Wa80E0DGnEJFb&uN913{OZJmlM;xl6us7T2Ib)=g|qY=$=X{XF~P148>Hh!zXmLr(ucKRo|Rtr zGMqE8hedrPb?yVw<)$KU0T-_M65)21{5J6$$#0*K@b?O3ks5 zB3DaW`+!unHBM_eMXu6vdQh6jx@YTA_Z0o1menJY&t~Q|a4D7AtmQRU0>w5Vt+JB4 zBu9Kr+QU1fH>`P5OD+0Caj|2?#ddPE;L0D+f{R=x{`GfMv75G#!eH5z+oxq0xwr+P z@MyMjHC=&=qd>l*XJq(op(ZF!F^3yfU87Mp~+56r^EtmdUE}z2yD+QFA)WIJ_D2G6P0A#@| zt(vn{r2KtMYTpA%Qv2Q^k^7b?t)TW=L9c2BovA7f?{KMix50KE2=!Vi+TW2#H!od_ z>2WQloy8>2wTgD=EU}_aRFtgpHxf>6M5jAQzZ?m0-HDPw?n>6`>ZH{LmKHWb2TDuV z*n`aMf+D#IXcEJ(ThZsZ`BgoI|Ys&e~Xf$8GT)6uH@As(&V?kzc;o|77;*cZ~lG|f|L zZkSSYkNIG;L_1V4p|1Yj!Q;UP93|7eWqhq##tV_+yUy< z1|d0CNWv!O*i5bC62n|?TQrW9Bqj>AVz_mc+apO#E9lwF!7N)E!Ku>4#H^GqCPm#A zP3CD4dN=AYxaEfGDv=)I-JH zq8>7iiF#MVR7Cx85LA}vN&VP@b@Y%C{EY{ zV*4}2h8=5dYbrrCBlD8qPdu2(Az5Mm6s-!%CB?;heOyU&#okQO6-PUWt|%Coz$DQ$ zB#FRNyo01v3#cut#S~gln3vtLk7IA|s1|^x;a<(iYF}tZmi|B@tzx$4ZPas`j1i+K zOf~%rH2=Dt6_wl?AP{$?N*gu*lIC;%IgyW}5{1I7Gn#abcWKh4$)Xj~Do#2lVwlY2 z&2>jK(<-mgOp6{PP1g0tG{w@lXo|&8WI4Y1)oHO8Ol+_3FdxeWV^D21v5=PLe`S;+T;3tR@?|XOYs-MpbhuwpC7ggk%cg{Uqp9?)?mR%pk#qI3N zDI;R({Ora}AoX=N_KV^2b@u+gRt9jSvoSlFEK=xPZb!N6JA1~|B&is3miH?`A~6(N zJ*XUcLq1W_GoMu8iVKC7-cyZiU}*cauJOErp|eYe)+g(SS9+n#C-h{{yCb5VC=yKD z#Uwwc2XX2E2dPj8iV8tfNw|<9e ze^8IFDGPPCVr?a%c8l$PLGczvG}1vPYAb(ZcamZ^Wu-zTFR9YRnEw~4qHwA%e9B)U zZvMNUK=`!?M!5ku8LUc~oTIG*1r^4efj3CNY4So|6z>=@eOAZfKH`)cx;vg6O0#Ka z6Ole~VtcJl25aIpc=BKg@Fh-(?A4{gl!PKX&OTFy+hLs?c;BIZzsvx1Zb3nRO238q zm9U$J%HT;=kQRJ`TV>fmsP2RBJGB7?Lx~;7d|nURbf`x5!t)v6@$t&UosCK8_m}Fc zs%ZVMCHk7C*ju}Nij{t$QVZzwDaFo=rdXa7VDBsDC|)U88heWO1NUvkhZLJInutRJ zs<}Q~1!%1$(7HqNu;&$T)=i{5#BHVEH?25P@t15xVUS0f4xJw7cr_zaxVW6m}K{&tcc zg+2%Jx!7zdWpE3O?6tiG5WN#~I|`XYfw+F#u5itu{lS<=VW0}8<(q3DQ7b5z2*cQx zI4Cra;tdzo{?POHjcZytOAzSqg4QI z{iS)&KQ=Tj1=Cc%2Q6ZwoNLX0zU5*A*XbB1th`pJS*o3srv74KbuvuF1GA5JG4UKG0s%B$7 z%Gw-fBFc$y5ZKX1Mzph0h-4034`!xpFxD;fc?2VZaPtFpdmd-ShbZLfSU_Q0%_Gv9 zmW2Bl6!=Gw>)p1cY+4;@L%0!K^GFH@#K(1DEYl}jwA5>_w&r6(cO!TG`T z5E1o=D5zH>wDvY8YVGYr{R9Z7lZ~V@4RsaO^c!(ZPm5z(6s=|WQIeM74!aDG)D_)& zuC=754tf`qLxxiH(UYQ&UW}~E?CL_xv#!C377KH82`$X8D`;Wvt1gO_Ct>A0TWB-DL5z&}(0HPDitD`4SlPD3HM5R0=t~+YO-O9M9{Z%*3k}GtJjGe>NHB&M= zSNA-lb9LiAI#*Z5TE$JW*z5LOouhMgzjHcQU$#f*>M|>Iu8tm~dZ$~?N>b8vmyXqG z@9SU|Jw|dX^GnO()K&u#lQ^6Fjp=t*=jqG77ITyQ5_KZx&NDhs*M-S76e95xRpZp> zxGq|C^&@hkhUV#VHUCmdkYdw#rBK#n{j%QTRWiMf7WRu1$#XkScsS|p!A&=B%^)FbR$l5D@qR!?Uqey}|-`o$wUO<$S6RVQ=a-4;&_$fN? z_rSIUu&{qjC4GQ-FSVjKpR*~uSYc6O1JvkCyfsR(gH)2|611f*O9{A#>cL(z1*(Ux zxdjjdXQ8s9a_}2qsbf*80NoQ0!`%DzN`X*Z*W7$?YWG$Rgv#Cfz5~LoevLq=;-J;w zCe41(aiQwJ-C#hHy(RnA_R4=KiN8G%sQJKj8(?7CGl1EGYD6L%p=^yOuNP~+ii zaO-!UX%Pq|b)2{ZV&Wda3+ea1krFJ{r_g2>ev-TN{6GH*gx^g5yJyEs|9kkgfYjnc z-pJg?72At4jsu*;nqI0n6f1i_zJg~@$XVJe2AYg0xNtjP4oia+V}3P&z}X$C#TZzb zBwW7) z&EY~jru9mKo^c9j!-7>q8bE1rL!?UruO!xZsrh%;2o}4m(87jJ4YXnt(u=EmMK{C2 z!#Ot_DFvK7wht|Rd7uF2l3r1`sg153Ok4&P!b0p2;74(kaMEYP*0=>M`lb~`lPjn* z2ReW3(D+(hLFU|0B8X|H^+KriQJL0pbqQ3lIMFwMT#5u~@dtONP+XCkbF?fOgQl|! z#27^P1Y-b}y!=qy&Y`Dh{c>Iv5bI8SzrR*5bW_lQ=Vm~m*r$2Usq}%)IqkoVB!Lkz z6x=p$%_(o|aFex*f)FQSP+lBq@iK4fSko3hnT>Hv85$}^2E9C*7URa>{jdZfi4%2* zY56q;Ax`wr{L%yt)mKXq5;5?!6d_fYsnn+5NeMzy7f8}^+i~eZ(q5MyBqIBy^dK2) zSwQE+422&Qq#IYjqa9px%5-qe;GQG;9ZF};s}Y<40E`lI@>EFIdpFM{rru)qDtAgx z45^MT`Zq_(ikOa{s!e&_+{?%Zl$nUqIq(6ALr;hgi0rkqB@P^>+b7@yu6Q>XJ+jcp zhn#V%gUT6a=jrF7C*l+mD7zAZji$SWj0Q)IQ`hULvA3BH^&eKyp*}Z(hk6uo!@m~ii&H&ys^8vF zCyP~Ob+VWiU6}~y+^rIF>}jsTwWVdMlYv0>cMW2q)s|P{ao)+#iEPUA{MIHq&zlMHI?sRG zMJeLfu&8jHKbGC9&^iPuaJHTPmAo#Jbmae1l8#VcaRcT~i8;(Y5_6c}NX%i7dq&dP z+-t=g_p1KQ3=~gbvZ>=Rzec7xbUThPzX~S(YsZ)HUGMvzV*yrKDxEXtJI*B4f<5_{|v|HEONoQG*#99WqkqQPFFz+pRoKiHRr~L)lB4&q@3tLvu=eUZr`B zc{J~?BLx?U4ig#gHDK*&*PT2|;MH?FMO2?p=M2;SW9D+4==+ZH{NR)tbB-qmr^c&L zX+b~I{9R^&O^C*`JO4k$Pt6r8HlLd?854d)1+QfQ&&_oM}( zjy7G_UdhB+v)M|V;deUC48K!+kUr{ARM(|OA99_E`jDOC*`M;@7K*s)FCl)uPU_I@ zyqA&OJ%3 z(2@y8<^=Gj>rkHUY#q~@x$)4~f4nM|$UbytVYa#<6qpUcET}(9xS>-^2UVxqn)ky} ztPv?F_;75O;?!0bgtkuWRhk&SAhdDfja4dQUn$tXFsCEf!#Zw$-kOR18bmR>lz)0P zo`Mubj>{GeKCS2d6`LyGl@H@ylvr(6rfa6+AVr(?G9{Gt+OB-pJjD@;*D6*N5pz&U zuXhx!^?e^bucMNz(~;t7K2Qd1isGG$@DxT(a6!D1Vjn9VHcRn-#db=KnNlj)`bI~Q zKP!$@yiT#AP9=w#&2^Umx$Fai8JmIwR*RAE7u0s$o5}}5#X62bt3rk$*dU&<+W|CR>${6g`# z?=*x~nG{K5=Emv-w>9IbK?0{sgzbYtFx0TGT*f|r>cyxk4$S#V{DxBy2jL`KI81de(?M)g@0pV zzodG|afQyl{;LuhfRMOr^-Ip=?d!YQUE`YahW7arZJ_>$zM`Ai)h?AlY_hf>be$INuqjc zduJy3knAf~g3_vGb%en8^rIg*em0>D->;dA@*$KGY`T)5+c|g_>eFF;lsB!+16`?wD%8)R<7?zPO@@+kO3*zmp3hyxjyi6HR_Xi3%yh~gUH&+g-sJm z2rxD#rpDNmtZ2dPI+yW`dVY3ool#FtOuL+#nS(hcTLql$cgMF5xY5Db!cZ5C>l+o2 zHangTAYAER_>wW@kUZVZr zfx+VC3eTG#`0W9yqd}~P4!wMPC9o3fQ{94t3x_sC6{0(>tXuFcosfS~@Eby7!@W#e>Duf7CDY&wO-6 ze5wfNk{AB;7_o|oZsJfiRj`%_T);ujY_1wO%_f*UnN%z45apYg^y-uSvkg$sWd zpGMR@_WM!8ym72IPV>fB?HKKiv3J?8<0jb=IyC-?i2suv6QEw^*To*QW6~^de8U^x z^~NpUxXT+)*fE*c2Y)}=`*%zBvtO6`!W+N!#`AWByCwfbl&;{7b-nR&JEnNQXSo9V zb@@i#*v1=w>5bn1Q~o~tHFysGiGb|gj#=J#wKw+m#%ymK;*Eds#;M*o*Bckv5vLpe ziKw3AjeqpUnRZO~e*bju_e=MFzjW{SOZR@i^pW1rkN3tI-Zz41YBe9VqFcb z(#M-8edc?wukglA-uR6-9`#0J$G*kAv5Ge~^2RoHyyZnZ-d@WaFZ0HZ-UtgX{E4{z zPH%kJ8z1+^r@iq-Z+z1mS9{~9-niErPusD7v>me_x8p$W_xOJXrg>w1Z*1j_UA*xo zZ~V144)?}!-uRq1=6d52Z(Q$-tRZk`~61d+t-7M-k9c%^}Vr` zH+J#Ho4oPY-ZW#dpPFpP@!mc$-rFa}d;7$AZ=aaZ-2U7o@BTUYDf{*0=e^O}FDEbe zzW&G?w|nCeJ3jrg9iP<@h95e=2M556EmG&R=(+0$ml>5 zr#$pYG1A7hM(vk+w&~MnnG!Q?W-7OI4a$j7THSR)IlK+ieG%;2;+EsR(?gu^n-T@S zXTIM$I8ySxQom6J2QV_0B#x=!r-uj2VUlsiqwIq8FsWfmf!shaD)>M7?>eb{&@v`e z3@nStndU>^IUj@1Bvk(989NjBv1W}}nT!u76yI&iwvwb~()#C~NMUZV&I3!7Tg)83 znrdXH$)oEk<0Eq#J+iJEJ~k(PF#P1fGgP=|aXLP}P;B2<3q&+@m~wzbgHvb3rbbLe z#NP6TG`N?K-z%P>#DEo9_*|V_~>+I!gamAfMG8|PQ+G-&Fw-3j=` z^Q(4wc*fe}CGh*_C$zY0(h5}bRtXf8>hR#~Efw)*3W~LPV9wTRcuS#-{?BZvjrUcM zeAOch57xuG3#IjZYE2`&#ZZ--rl3kNT2HoQxdj2dumx{=OE4Z2GHN;|Fw0G%1Hobi z|J2ueN>puh<#jg>cqr$IsWWrmT>imFpMJG-|KVe&&gF$17yuLxoGMnMWw$$rji2?_ z+OH17JUcpYHmX|dJ`X-Mchwgs8oLE|kD0rAcd*z}{C7FvILc$KBnBXk!>_RFN4=Kl z?lDd%@7$?lhxhON>eG)tSpH`2%&AZ0JT&0O>#l56wFE1rPK6GCwf3!9eZt!0g3 zT$g7~e6ecoQxEoOT`h|LD}Iw4T>W-f?U!SvH$keR0n(JU!75b+Z*1Qr4oY?=LFhf-{@Sg>`@18s__@Myy`{o!fVkR-z+S0!^@gw{OO zGmVQQw0X)+Rk%V5w%`fhGbRl_tGISpVXgIfB_i#{&y2-ZbT6-fos`yVRorS&WL4JZ z$17YPDMEgR%p>x1q-hWnkNhl|CJRR4v-}_YcO85%yibO^6=zVSZugO=jhT=Fv;mo%Xk(n@)EL|k$OyCMv66gDcQ%Bu6n$j|INSa zEW0B?ReF2IHe$a7Gw*tS*v`iLQzR%n^i(F%iFvt`^n@#Jm7egEhf<^`+&`+8^n_=h zZc4mjX0{<@F}c@BlewU)oaGmF$6NdXYVQB}_hZ_CMrB_UzA3(=aID4pVd5>m7tS9a zbMc-=9OC0H&LH9u&LH0BID_bi#~H+X9%oQFs5!XYnbamu;fklj7`J}n6?)%uZ{#H6 z(vQXJBzEB>B7TX$Ds`~~1TX!@|B=twG@b?eIDXh+Dx15#OE79`p?U<;s=JY+2gGeT zj}X_1A8{-msWQ`PnKV@?W2~mC`x?6JnAGtq4C%RErsSy;R1wm1Jx$3?>I9X7^jt64 zTVX;4Y}=;$hpCuLru0}@eso$@3Gdd49eGBcyus_D=bdSD2(qj}FUJ=`nD>R8^^yWy{fai3&aLLJ|$GH^tGw9nz|%^Ht%| zbF)l1hQI_F;*_+hs_4AiS7YKu-ZZ|B}h3U44MQ^6_8@eFvUzNZu zYo-Kl^(I64k4#?LsACPV_?`HNQDBFnf!j9fDqQ<^6Uu*@&18X%lREmeKL3GV5-6Ll z%Pz+UWExIK2~8kz_#r^<-fM!zuqhyq`R{yG!+WfOEsbD|;-b2^rUVqsfwD-@2Ni^o z1Qv8Bq^HIe*t*z*#)p+V#BnA=yodY$u~BK1z&JY|j;AWgY`jf23vXY`S#4%EqYtEWdUUEBAio?a2gqez z`H4*TVK01?g$Y>XLiGU$NS_ z3HeuzP@1AKUOB=+=E-^W=v=}|mhdY`c*v_rh{&r*n5Zim08|9*zVv%rT=pOPyc?pH z=Fsp&)zYl#P1Is$HCBDc;bCY7fc)pX-PondOs%CFnr(Lrlg(>M3l!(rhqJZ&YT$;tJ0YT&;(!|?Ymd&Xhyp1Og8nFvd@f4l99>6mXuwYo!P3NnN)!~FSD!z zSC!d6keJ9!PL+enlD1k}JMYrc8dqEnCi9!h!DMq!Ijx=?!n=o=nkEV0qL#wkpZ39= zH75rLA;Aom$N|#3QVZ=LJvS4}(2ZtZX6t_$jE=+#VLK-uUXsf5Ato;qyNB@t5oQuK z`%sfqmk&32Z3s7cReZ?FYeL{m*vTv6Lr-3haQI1T%!i=74&gAAJ6bptB_+d0I3(q{ zrYJ1+@6|=&DfcxWq7tTFdhb8m>)s#5Xv5C~JeQfI!i4&-r~tdIHLUEhMHo7JpUM-4 zos(Z>(l`}eSNfBx6EbquH>A~KvfZZBTGdvB_tt}EF>>*}*quaN$dKz6-Xa8oy z5(+OjT`0WdR5|6vqth>N+i3Oh4XSVN5F?-`X|-v((HfO)T-0_L4i^8jSnYOR2I z26{}Q0=rVKDzKCO!~>%{PPTZ%WQ&)5P9VLuN_i2BP}=}_hsR5}DEU0Db+ zn$Bx*z}y)u0V4L_j3$5VzfW95z9bwQkvH-2Q4)4gmaLLLAx0t<=Hn!CDLz&zj~$d) ziJXd$mnhmMx59fk(W#G{Xn;ht>tiQUXhgllPei`q7>YY*IF2H{#z#1wB5g@j9FD1c zbX*8qMYMA-z27YHV*gjKFLZfpI;#?TXMefeokz=ZIA2UEBMkRSeL34LZ%bm$Z0R8= zw=Y}e(C3D!wc|JxyP<0LPw*K=>!{oex!EmlC4=>~om3S4X)n3i?YvEHc8Bj3x;ryO zZgwU}C}Bp&t1@~*NjdOOEhmsS-4;mCsxAlqm(qpxUa7|t0rOgh%=iD?P>^qartIwI zXUfiQKKk^aZg;+I_b@+Gc6ReKt@(bY@ZbDQ+1br+C_B49X9xwpR!=DKm2}do=B4U9 zT$x!=3IPmGFDEcKwIr(uP*0>7Awv_)#QHC5fUhN!z%&y#ZRX=>ejiqBU^t#LB%xr^pK zrtMCl$X|i3?dP)9ey-(C`S>I)l-ctrnLYQ0%K*w@ z(>KZHd4~L*@0GuEt9`QciCrK|pOKVgm`-PeH%qUQwa-{t`*fG5bA=D(@H0UUKRspX zoVs2{KNIAE-ji0&CUw0WohQi3xhJih@sb>!$IHsOyR4j3&=DJz)MM!6Y&wMmN8^_< z@8FIg{c2hslcDoG8algolZ{0KWcfKyl|6bllCviMUD-JglZn>_6zC4emU#ZBhzoxR zM~34l=Gw@s`P^DKek8|649Ogvk0Xm>$)b2N98)q+$A^zCi{i_0j2VtI!?9*K-VDc_ z;kYv#d;0j(=ke_6{UQz}r+4Z7UpzPb9IrooO@<3*p0_Y_XJ_^BS(7Q-oq0l=?nJH$ zcd#Jm$v%RdpSBd_T$D!0=}slMaEH)Q*_`YtGv&=q1wZGjv$#8s=~4GCVbGmzZId54 zD!Y@JFm(qCi0u6R3SRo}ktpR{U@I#dwPT+IXxXnM2~hqF9iLY91GSHqmDk zeOyRv=;K2lBNoMpJVf}cWANwpzxKc#VTIC^h^{*)K@)5D~ijiTZusDtj~7P{Wg?6A`=n zvam@exnK7wA{3KyNI>O&Qo-&0K4zl+i8chT&$dJiMji}t41sO zfyLnZc+_1SjDrU8C&u^v*x!e_OFn$g&F9_xTqZNpKL6%(a6S*`=Qqj473Jgne5Z1r z39H=yYyS`OY=;}mpkWq2Ko>pNk#k#n`FIcGV8VT_6~H4PmUCOZelqA(nM#@@l(H324!| z9nqYvC0IL3eCqxbbqaY%@e{rq_f|q&*b?9!xt)k}-IqzHxtZiz-KWI39!eqFb?;Z) z$O++I-!S0kaDDcTxR?(+VQfy9Oq|cg5gjwX>py&E&S&Ss89JY(BXR5Jf$gc2T{C#{ zv=1U>|3UW7e=tw%Kgi_y59+nTAH>f7gSq7J2SK#|pjsyUK{S2o{o5S=&-ePf^Te(- z;^*LwRg?OJJ)+v~P}kvQ>QUc{OTwM3PW2^_$c2aB0Im)fod`2fOHZM#J6;T2>|XU; zyG1?M-VhB}hlW({2*pimyw-tawmU`b*J2Ndm+MQ#g!`(RuvI7!Nq3LB7%f&0wsduf z7_5js5w!zuBQ7KN5yf?K<8DHch5M)?I@F-xKa-LRceo@e1}w^ zDRy3r;I-5lyW0O_a^EXhN*0AYb(sMpVN12@6H0|c;({(;& z7f##x)SbU^UfeWmgl(EOW$bU97dK3sLiRV!i<_mD;)QRRHdSI%CQLJjKS=-i56bq! zAEW~>y?>kD|G8d&fQ@;C5N;zTdfl-~_wGp`%jVvpxQvLxZAHS(oow^JB}BUoP+TGM z?Q)WD?s!pfdt*t#xwk03!DZss5gRu`aTAe-+d)mwrihq35G!J?ui~r99~Z!z9xUBG zii?RmTyzRW9IUvS=)-L!*6tC-b;KZU6H<5Xql)W@MBGf~n%&`wtBFP2I^^=)2NahO zk+^B1_4+I3GMW?dWcS=|ic=J~5umtPqWeZDt`zB4o}{09v*HZJom_!#bFqL!72lD5 z@w|G-yVsHubjK;Kv*OT%t9*nD#b?> z7b+f9W;25&R&IaAXB0Om$ytp4sBRm@2NdThZdLNLlF#?vY{;$?^2wkxI*y|*P2^Z zBy|_XhZSciu2noP^17PDft?fwDNa?iX2rWD8cY_m-Bhu+;xNVOiYpa&aaFpg<@)|r zZdbm|HxymzfBUu70T*5Q|M=^_zbpK`-QwT#`la{(eY^b6>H52M<)zzM@ovR2igOiL zEACdNGfJ7xYKpBD`zTt=-lz0@uHq`iFBD-#g3M?!x&GErY^m5y@lM5IisKb$DZZts z{>JWCdVW|jq||B&wa2Wg*huk8#p@JrR2-oAkYbMF6N*z6XDa3@zNxre@dL$=6j6&& zEZ}~nxKnYz;$g*Oil-FMDds7L6dgsiY5v=l`$Oc{|N8fdZ2sPZdD?&G!CdZ-eOMWU zFNgT=jeqaG^Ywq`z5BWBOYi^3&4HiF^#``7tCV_Y#k&>9D9%+}t+-nW_b4UYt0}ft z?4$Ug;!}!q6;~;Kp?E?G`eIDbyEPPBDt1%6Q*oH$c*R+YZz---{7Uh#Vu+u!TS9sM zs)~&iuT;EF@kYe~iVrE~C_bS$RdJ?buHu`D%N0LR{7CUr#jg~1D(+W2tawcEl;SzX zJjIZrqiDW=W&cz#)erq1|9|k}KZ8Yo=>PqxeE-t>|Ho&8@B4iIeb*oDu!wRjUa{E4 z;uwo*EWWW=$KoD~fh-=f*vR4}iHYsWZ20fI{=iPa zB#0KDSgc}ki^VV&&sc0@agN127XMf*WO0$jNER|}A2#Z(qwS*&GoSC0N)i^nWB zvpCISwk!2ri{&h?1I7bl1l~im*w5lXiwP}0v{=#NMvEaWp0wD~;!KM;rYT#@Bin1{avtW#RD#wHAKs@S;oz>ZGl@2U~W+RUTPLfVX^%}ydyiH=vuS|ZvErp;#B z%%;t9BIAj^SIB-M+Dxd;irNgR&6Xl_iWXPMq9WRis?Dz2Oe?ak$jKrDi)gd4HZyCp zw8+>ZlZ)&vqRr&mtS&OV$p0eSi)b^yHVbSs!pIIIYm7`WqRkrH3^KCG$TB0djA*mW zHsg%!GqTdiL?ha)G&0mbgo6IpzfYv|k60*v?{9g@izmdtcS8Bw?1w#>{5=-^`*N${ zxmW*r;oX{9r@!5?i{^X7bHRKbo-e-i{(s)rA9w`38hAKxY>1X`v)r5I;VdU-`MJ9K znfSy2EJu(TM6_8#n=!Q6Lz_voSw&w`!I701{=KUfkKQrsK!=lh6*$ct2J!t z2BOM13~M@Ufd?XrJy8CE!jB6@ASeiFfRZwmh}^ND!VFYe2J(FMngRcsWO+kH8_a3j2+!{3knq7ROj-v7`0`ddvLv~tkLAzH1R)y+Xe z2W=hnbcj}4XLWYa^h4zjeg6fmKXm^vF=i0}ssmIJ;M(c{R0^Pi096Bswt~P`6QHsH z6$dNBDh^P6fT{#kA|TqT1XL(^ljeefGP*nH(aQ7K-~i>Ay5Nxp&kOY z5vZ0xoy3Kj3Di%Zt^&0bh_>OK%{4G8K%P$7ca5X4*RpmfBrXvD7|aWAh+TNhN8Afn17 z1*PREIq@rB{YqGltd8WvmJBD$hs5_Iq16l@^ef@RmTD)UY};*3r z776p=`=|NdDJ(GN17*j0uxR_z?-irZ>Yx9-SgwhpO_XkCf;mz#r%E~v>pN|+Cn5?z z(efBYponlVv2G@aayF68iS;}|g#XE9@>;m=~dS`gveVm(|C;pYN}mql`T=}tdxSiZ>o1@mDs9z8f8 zf^c`BYc(IVKjFi-M6tdQSHNR~KKQNFl!dkiv^n6zR~#_s;Om!sjg!xsFmFpXLzJ~w!Y$W%o3A`x;LL4@l_B#@bWNZ>{iC1(=E_WUI2Sc0Awv@eN4H87)$P2gh; zmlMzO#QLAW=$K|G))@s}DR4(F|<-asv5p3p2-R_!2^}Yh5O16VWpq^ z_u;=~XQ!Q+5uRBO%`@!m=lqg1Gr$-n5t3hqe7cgaybI zZis#$SHKA@l8*j#3bD2!Ezw*99wOFI#F~pB!f3>rj%2xp4kSpmjbzR87e62j5mt>`3S?^wRMh<~^89S40g z66@MUBMW=C^36-E%NI>B?A^+{Q$@R%erwOE>_72Yr+C$}teizHEvjg3MQth9u)Nl< zwPoFHN!8#Y!uA73Ag};IgdGUnnCT7T8->s`#2Sbo!c4>(iy+?G1arrQ;RqtkM-tKT zB87tsTN2NsB*8N*p?OKXj7$*QH1`Zn;#?PIC$TP#PY_{(VhvFcVU7a36d0vg(-do< zf(SDeYpj9@lNH#mz;Fc-<}31Hks}MOS=`P+%slLhg&yH~Nk9L}+^U~f^;!AwJZX47 z)X#x3_vz<5$piY_UpUVf&g+Hqc;Vb#IA7;;bm6>QI3E|z!4dlv#i7KX;n3Yt( z$b!OV7uil&?t1>aNN&Q67pY7b^Lj45$Xvp*w>$t3{Chn&Ut}j??VAdpK=}NEGKA?b z2tpVDdv3sB1z`;gB5(qUKzRmN!AoNNU?yCZFNx-Z%`iAUSPrAX9Q}tu=fR8^6dsI; z(Rz+9#hzy|C_5M!*9MgaH)FJBrnfPOIv5>;m4oTA=YWi+8}vg46$f)<^mC?DGWa+8 zCWCo{i844h7%HO=9^I8auVow{V7!de0!*0E--C|KoFx$=%|YvDC~8S>x9)V`bf}s7pYB{@HPNaW7<;gyvSR^s<$56jKQ}To&D(I3#Jg3 zzI9-H2!CHtg)sXCF$m+|+B60hCkRVm5P+};_Pm0@`oTCDOdm{ytMjKs^1)shj2^6p zJ>Ox_crYObbq7P@%C1=jcj8K}p;s}ex{)O53|)-TSdE^>pypt33{Gx_*f=^LqeTaO zkU_!06d7G}>5vTGjeg1C-C&*!t_?=Y;M(Y_TpAb>9?O8NFkA*!h52$x*DQe(a|!&N zw!*0}X$CZfVKbVC(7idyHS}`!oSlJ1Vejn@ zNtF5kmB&m1(@XEMFah^JdmSTk&|CpT2%0RYC712a<+bWUuU9tiih@@)+IWF1V^c4X zWy8qvu-g|{GPeHm8iBcrl7O6ONCxD}_GG}UY*vWZO2t zPd0Hw!(_H}1M*~pH?Q3rz$Tl&W#Ijw6&!FT8^Zx-vQ1nj-Z`4ac`f7sG1*WKZrf}x z2Xx71b3m7DJ(m?QY($4$?Wg^S0&6CA+M0D+{?F(BI48*Y`Fx+R)#a5b#kTp+C`I@Y1^h#IY4!Ke=lI zipbppZgyV}+ZqcIZL&bhqGc9HS@zEY9m{T7UT-b*I%cOWkg)8#1^Sg;xV)ZR=!(n^ zU4V7$*9BM?lu8bbyu7Yn0Ceo}<#qh>`hR)dz|bLNi%)E|fz-H`k25iP|XFz4_ zeFjvV+XY|cw6YF##HCMf?w>l2Ck5u*MPj(hYiSUF}kvW z6=aV#uVWiP7yGw?^J6zRQpVhY!l`1?#H5Icb;7A(d~(Tc|091R4!u6m3?xpSLBKDf zO9&d&v1Ld!fHE40MBxgfok%3o<7h5|>4Hup;1bc}%=SA|>od14f8U~D@rS-SM-myyy!6!*QaI5q&|Tj}3_nNo4v2rcYe@c#uS;|9SWToS#)N3goSagD?HwR&e-l z|GbIib^^z-ld2QQoX4IErp!bp>CE7h0&smkRi3luBAely%A2(ra#EnJ=Vqlco6Z+# zD?W}l1#{O0({sI$SLy^3Jorj9U+M%V z&hV8WSL%4C%1rk)#9B_un2=Cbr)5N0PW*^tV((hc;|6E$-lm0DYbv)l)9qcYxcFg* znUZfjOS3k)olb8&weiH}r`VZV=LyYUVLX{}bp`+JKOb;SZ(Pw(AaVF1rm{`L>BL;7 z>oP(vGw@3Sa3^*2XCvfC_^-{(W-$Z?Z(kdS z%V;*D;xcHf6gm_O$K9< zecA_rG_w5}Fj!&&e z1i7Yr13*V7G$tj3*l}5>MmRA!$410wlB%26vI*|`X4~DO=cd-W3|Ps$+bs*w%sD(P zz6G(_ti~;Y0?eA;R|K3x!xLKv+=iT_{xl8;okhVWz(ewif6Gtemu4Gduc9$Bn z;)ccK0!)v^+(|KTGsQsJw&}h|(4p%B?x^OPTrvTs%}injr|HvYNzgd8M(ww7;h|4B zDb1}bI44b~mkAS`%%=_!nL8=>ZE-5jfdf;sPHN5N-4N zQCh%j$MPRuHRVg}kY7}h3hrK(~ zbo?r`V}Lj@I>k5oXBvUl_0qnhd`+MH={4ZNA6`MpL zv&`&y?!B;=d*A>6ydUR0=Q*qPYui_-y6VBkbUk}dnw!SE3p-{gm)hs)Iw}~VYpCm| zQExs9m9EtZV{-YU_PgAFTSk{!a(%xskKk;FTtN>s$a=6@`>H~piL)Ct zye-|Xob}AFv>7R!d-L~S(hAv9HTtd}Y}b&s^t|HkN4IFteX#QvCqKOAZEdj+_WR1T zg&W?{j{0Er*gNO1-l-ux(Cz%|rY~6gW*WT8!Q=88fNu3^;FPM+jh?UI20r4~YDz7) z-M?i0PJMw7POKg^>F(J}>USV|(>=GZs{fb9-#UHH;^#Ir?J4Lc*wv%o&`YoW`jn|P z56xe+?Af{(H*ITberwO(eIFhu6k7?LrvF-dHU%9A@%$0*EB~+O>=k!jSbG269ra6Q z-#uwm^@;rEzQUfS4bLr}GyT@_U+Q1gg+14<)?(qnhx_*Kd8@f;+ol)mo?W(R{zElW zr+oeDONaLBk^Uz#RweGB4k`4h@z+jJgRTinyFKmjw5!u?$)`PGI(N@!^*ek^?vj=* z^S;rS&sW$CcHlNIG|ZmZr;<TGpSSSR_iv{DazLqN`w#9KUG+IWddrqa z@4ljEAHKlBx7R#8`HP+V@jVW{vti-1uk`x@U+3V?)${KhTYV1S>cE?87fiqI{B9$1 z2i7mS|F&_1E7SKpsg*;h#ztoq?VPiHzs5*mUljsroJ0c9T(0|3)3+vVg>5xv+WCsY zs9Ew}X368_J?q#IeeV)Rf6bI0IrfFc-E%JPz$g@-zOiFRMxyx2%t4)X`uN4XE4p%) zEVL}WzGHWWrC59W={*^m;`)0A_F{O7jkAWHrhQ)Hy(9WCOvUvxhW#-^Reb)gLDeiO zg?E?T+~+LDtnk{r@s$G^xZ>KG7Y$+X3e5{|IPE;#k;DT^KF5nl7>2bXj=v_HJ?Y?WTJ)MDRt(}l|-L(_WV0d`eS5e%R zUrXEV6<_VIxb3np570h)(ddD=PVs}e=MUD^dF$^64AB;Q>r}Sb#AVlfGi|LOA3K8W zY4PpZ!!BS9i!Xocl#z^M>+)+ZW-nUY^}x_ea>doRbk?BeKSGcEw9j+76LRqboH;S9g}aFcKe-wRsGdJpZb@)oc>PO(U0@snRHjN1c$bb;{~fluCHd?D~D4Fm7@ z)a<|?k1_tx_>}P(wF)rTjqcFq;Z9DrSW;Auiv_#`gwzK zqwy8v&jVk)Hn73hyTRAH!PmRNZt(SP@bzwZ&;M?}u@D&U zm8qCv_2fnf*aI^2<&7=H$jM4Y+ z=COW$wecF`MC0|w8;v&^Z#CX#yu!03A@JW4j`{bd%BJ*W~eQ^7u7*{F$M3a$@%rnrl2^R` zr+)rr<5fn_C;#!2c>bTCH}*50WgKKY$2iP*fzj{t#;SP!MlrD2>vr==e(rUlxtpK& zG=9$bqrf*O8~-bC=jBGvZ@a4E`7X~#yKji+yFIV&_Pn}#N_rjhv7J`e60so?&qRr` zm{Ar(a!APmCZ(qoZ_46NSv<<&DF>^_dMR|}Kvup}9m$cniLjj3HL5gzR;!r4~9Nj3#JIWD|EF@CelCR8@f?n{6frF0+8$J?^ zh#*D2>IL4e<`bg=BsKLp)uuivLb+oPS0%))oqU2Z4TgvPUVMA z>gB`xq4RwCh+jVRXHft?0|Ufo=rkrB{uI&jS+IOMET0$4C&=tbSw3TyPo3E@G&`1N z$JFfDnjK@aV{Q4In;m?!gK%~*&JN1i!I@kO$7n7^$4(@}=TKVNNoE{h zDd#K$4ed_}X-xpiPdi-=Ur@ieN;YBJ1pJn7#3ZmuO5Q`ZR4U(zeaeZH=7*xGq`xTuWRyh+ zfYT{@01Qu&1xy_v2i*rE0p-)86_A(~$-tBY6A*%p;0V3r^^V^2aTUvVWZ!XqNBt>N zQVt+XSTiZ51a@~PwE1kxZ#&z~hf?l4ONBc#&c{)n+*xzy(8;IgtC*$^!?*NNo^+ZH z_CDs5a?_#TApi#i93F76AWI)}U#E2P2&b2wZFcV2ndmGr?L2iPt#Qo-+4N94Z?tn~ zPNX@lmSx$TbR(Ok6r2-sPS0i8Iw$YA|5Gl{sXZ8DO7uDH=Omz0f)LJ>AauGAUr_SU zsYGaNN-R3fh?}RZ<5{>3Nl2$886PDmovzHXmyDB=nNDpw(Fxs7X-_9Xof3tlrvxcO zrgSMorsU~G(B?>`I?;K-Eti zEAy>zVX?2w#WFJsPZm$hea4@LJ(=8Jv}oK) zBxzHo@h%alnFK_q#>qskW-bubnz=y4YvuycuuaMihIWsf*xIIU<9i}W z(}O7Ac;Y1+()1uYxXI!8qp0G+8xIaSz9~XEQ-$c|xTwhH%os!J{sjI~uO~(YB|Y(( zO3nEmYY*$OZ9UmZTc>cH&~;iT7UCT*acCYCwmlg3w{9 zI20GY;;ruD^Q&$&ib$iN6hBsVDQmTAO{4G>r&bjzPCf9IUVsWzqgWNsR^_VeSig{p zTJi6(?7eo_sShoM z#3~Xg?LSgK%zQGqxwxZU3JhgH2=6t6`g8(yobHkLxw zxJAJmF0AS|HixQ(i^8}llEaTxG3WZZD5k@kRau8O*HdTLx1^%GeyIS@)p*sZG!GRn z%JlGS)$H|81$ZF1WPiXS6R`ve()T$4)9#$+#_k@m5X!?Y{PiXzHc1ifBQ?4{k zOIK^3H_{4*J`lUzv-b+59K=E<8KKY=3Vk8$(o0y=O6U$@(IBcwdPLZjTGy^+I?UBx znv{!5wfRn*R}ZrrJ>2W;oAwM(BEFQQGILX&${wnrOHv7@aFq#MRjg6c8s)86glI-4 zQ5vRlDb$2q4HLSwYeL8-L~TOgCd6)-+NFFGGB`}|(!>dY9INFp!xJ9H7BA8~zerM6 zm-DkU-+4?a-?5%y;O0WwBWZjjwT}?~z#;;|6oDWJwpQY45(>fAicemekYq$^#b%PQ zNQjIuVIVkyMSO&510fRZGSwwYpai=}ObrQ_WFjW59}Gy-2=XSZ^U^wDHbM9VyH#9v z38G-v=*TFc6zt<-R7pSuJ3H+Jq^uG$D_A5~LVhI#$5=fOAHzP-O{Y7llChK|i89HR z4b4fq42z5ztBMprGdWO6gR-_D6N;VFQ~Cwc4?QPWN@AiC7G;@1WE49yS;R-rPC}&E zd0KFiLMiJ`k}EAO)#{UUOj(4IsHp@_2j)tMonk}ybp2_pN+kqQv9ppzD0M)tglH=E z-eeI|WqCqa6+0tYs5dNCgW3qOBFf5og+MDd#99$hhBlJ1&1rcX*+y1&RkilFRr>{{BtBbuFv-y(O3Si`K<(k&7 zbw$=4loqj}x`+ZJnv5gbC^I&SGFU>f5j!JUlpI-;P<6!KmF)9(5qaPwyhGfWNAay z68m7Xs9mzYvC44~Lu+_$QXfWxn0*X-#Msa#4xM5&i+l5W>X<;U1Rh7<1bQf(&g-ee zLiARMJ`40*V7o*A1#I+Uh`tQ;Xh8Oaeht{@-4J~oqNfA>9oP}k>j4{mAEE~Y{UCbL zFE;gzh&~a~Ga~v&&`W|%6MZGH(PJX|O+@br`cNRpLQe{8^rwhk716h1O?sVv7U;Lo z+X5SXE~4i}^uLH+81%(pp{P!JFVQa}dS^r*jp(UCe+`yGdTn5%??&|Ch<+T=n`_9$Bt)^4EZqNT)x5pGo6DCccG?~)WN)s(jyEF;&h?H}n yogJe}FWl?LrK$d|LAp+hFrtOJA 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 literal 15680 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 Td(IC2La^RqXI{G5`}F?+?!m8F literal 46914 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 ); import { Sheet, SheetContent, SheetHeader, SheetTitle } from './components/ui/sheet'; import { Toaster, toast } from './components/ui/sonner'; -import { - getStateKey, - initLastMessageTimes, - loadLocalStorageLastMessageTimes, - loadLocalStorageSortOrder, - clearLocalStorageConversationState, -} from './utils/conversationState'; -import { formatTime } from './utils/messageParser'; -import { getContactDisplayName } from './utils/pubkey'; -import { - parseHashConversation, - updateUrlHash, - getMapFocusHash, - resolveChannelFromHashToken, - resolveContactFromHashToken, -} from './utils/urlHash'; -import { isValidLocation, calculateDistance, formatDistance } from './utils/pathUtils'; -import { - isFavorite, - loadLocalStorageFavorites, - clearLocalStorageFavorites, -} from './utils/favorites'; +import { getStateKey } from './utils/conversationState'; import { cn } from '@/lib/utils'; import type { - AppSettings, - AppSettingsUpdate, Contact, - Channel, Conversation, - Favorite, HealthStatus, Message, MessagePath, RawPacket, - RadioConfig, - RadioConfigUpdate, } from './types'; const MAX_RAW_PACKETS = 500; -const PUBLIC_CHANNEL_KEY = '8B3387E9C5CDEA6AC9E5EDBAA115CD72'; export function App() { const messageInputRef = useRef(null); - const activeConversationRef = useRef(null); - const rebootPollTokenRef = useRef(0); - const pendingDeleteFallbackRef = useRef(false); // Track seen message content to prevent duplicate unread increments - // Uses content-based key (type-conversation_key-text-sender_timestamp) for deduplication const seenMessageContentRef = useRef>(new Set()); - const [health, setHealth] = useState(null); - const [config, setConfig] = useState(null); - const [appSettings, setAppSettings] = useState(null); - const [contacts, setContacts] = useState([]); - const [contactsLoaded, setContactsLoaded] = useState(false); - const [channels, setChannels] = useState([]); const [rawPackets, setRawPackets] = useState([]); - const [activeConversation, setActiveConversation] = useState(null); const [showNewMessage, setShowNewMessage] = useState(false); const [showSettings, setShowSettings] = useState(false); const [settingsSection, setSettingsSection] = useState('radio'); const [sidebarOpen, setSidebarOpen] = useState(false); - const [undecryptedCount, setUndecryptedCount] = useState(0); const [showCracker, setShowCracker] = useState(false); const [crackerRunning, setCrackerRunning] = useState(false); @@ -112,18 +77,39 @@ export function App() { const crackerMounted = useRef(false); if (showCracker) crackerMounted.current = true; - // Favorites are now stored server-side in appSettings. - // Stable empty array prevents a new reference every render when there are none. - const emptyFavorites = useRef([]).current; - const favorites: Favorite[] = appSettings?.favorites ?? emptyFavorites; + // Shared refs between useConversationRouter and useContactsAndChannels + const pendingDeleteFallbackRef = useRef(false); + const hasSetDefaultConversation = useRef(false); - // Track previous health status to detect changes - const prevHealthRef = useRef(null); - useEffect(() => { - return () => { - rebootPollTokenRef.current += 1; - }; - }, []); + // Stable ref bridge: useContactsAndChannels needs setActiveConversation from + // useConversationRouter, but useConversationRouter needs channels/contacts from + // useContactsAndChannels. We break the cycle with a ref-based indirection. + const setActiveConversationRef = useRef<(conv: Conversation | null) => void>(() => {}); + + // --- Extracted hooks --- + + const { + health, + setHealth, + config, + setConfig, + prevHealthRef, + fetchConfig, + handleSaveConfig, + handleSetPrivateKey, + handleReboot, + handleAdvertise, + handleHealthRefresh, + } = useRadioControl(); + + const { + appSettings, + favorites, + fetchAppSettings, + handleSaveAppSettings, + handleSortOrderChange, + handleToggleFavorite, + } = useAppSettings(); // Keep user's name in ref for mention detection in WebSocket callback const myNameRef = useRef(null); @@ -140,7 +126,47 @@ export function App() { return mentionPattern.test(text); }, []); - // Custom hooks for extracted functionality + // useContactsAndChannels is called first — it uses the ref bridge for setActiveConversation + const { + contacts, + contactsLoaded, + channels, + undecryptedCount, + setContacts, + setContactsLoaded, + setChannels, + fetchAllContacts, + fetchUndecryptedCount, + handleCreateContact, + handleCreateChannel, + handleCreateHashtagChannel, + handleDeleteChannel, + handleDeleteContact, + } = useContactsAndChannels({ + setActiveConversation: (conv) => setActiveConversationRef.current(conv), + pendingDeleteFallbackRef, + hasSetDefaultConversation, + }); + + // useConversationRouter is called second — it receives channels/contacts as inputs + const { + activeConversation, + setActiveConversation, + activeConversationRef, + handleSelectConversation, + } = useConversationRouter({ + channels, + contacts, + contactsLoaded, + setSidebarOpen, + pendingDeleteFallbackRef, + hasSetDefaultConversation, + }); + + // Wire up the ref bridge so useContactsAndChannels handlers reach the real setter + setActiveConversationRef.current = setActiveConversation; + + // Custom hooks for conversation-specific functionality const { messages, messagesLoading, @@ -229,10 +255,6 @@ export function App() { const contentKey = getMessageContentKey(msg); // Dedup: check if we've already seen this content BEFORE marking it seen. - // This must happen before the active/non-active branch so that messages - // first seen in the active conversation are tracked — otherwise a mesh - // duplicate arriving after the user switches away would create a phantom - // unread badge. const alreadySeen = !msg.outgoing && seenMessageContentRef.current.has(contentKey); if (!msg.outgoing) { seenMessageContentRef.current.add(contentKey); @@ -269,8 +291,6 @@ export function App() { const idx = prev.findIndex((c) => c.public_key === contact.public_key); if (idx >= 0) { const existing = prev[idx]; - // Skip update if all incoming fields are identical — avoids a new - // array reference (and Sidebar re-render) on every advertisement. const merged = { ...existing, ...contact }; const unchanged = (Object.keys(merged) as (keyof Contact)[]).every( (k) => existing[k] === merged[k] @@ -300,60 +320,12 @@ export function App() { messageCache.updateAck(messageId, ackCount, paths); }, }), - [addMessageIfNew, trackNewMessage, incrementUnread, updateMessageAck, checkMention] + [addMessageIfNew, trackNewMessage, incrementUnread, updateMessageAck, checkMention, prevHealthRef, setHealth, setConfig, activeConversationRef, setContacts] ); // Connect to WebSocket useWebSocket(wsHandlers); - // Fetch radio config (not sent via WebSocket) - const fetchConfig = useCallback(async () => { - try { - const data = await (takePrefetch('config') ?? api.getRadioConfig()); - setConfig(data); - } catch (err) { - console.error('Failed to fetch config:', err); - } - }, []); - - // Fetch app settings - const fetchAppSettings = useCallback(async () => { - try { - const data = await (takePrefetch('settings') ?? api.getSettings()); - setAppSettings(data); - // Initialize in-memory cache with server data - initLastMessageTimes(data.last_message_times ?? {}); - } catch (err) { - console.error('Failed to fetch app settings:', err); - } - }, []); - - // Fetch undecrypted packet count - const fetchUndecryptedCount = useCallback(async () => { - try { - const data = await (takePrefetch('undecryptedCount') ?? api.getUndecryptedPacketCount()); - setUndecryptedCount(data.count); - } catch (err) { - console.error('Failed to fetch undecrypted count:', err); - } - }, []); - - // Fetch all contacts, paginating if >1000 - const fetchAllContacts = useCallback(async (): Promise => { - const pageSize = 1000; - const first = await (takePrefetch('contacts') ?? api.getContacts(pageSize, 0)); - if (first.length < pageSize) return first; - let all = [...first]; - let offset = pageSize; - while (true) { - const page = await api.getContacts(pageSize, offset); - all = all.concat(page); - if (page.length < pageSize) break; - offset += pageSize; - } - return all; - }, []); - // Initial fetch for config, settings, and data useEffect(() => { fetchConfig(); @@ -371,204 +343,13 @@ export function App() { console.error(err); setContactsLoaded(true); }); - }, [fetchConfig, fetchAppSettings, fetchUndecryptedCount, fetchAllContacts]); - - // One-time migration of localStorage preferences to server - const hasMigratedRef = useRef(false); - useEffect(() => { - // Only run once we have appSettings loaded - if (!appSettings || hasMigratedRef.current) return; - - // Skip if already migrated on server - if (appSettings.preferences_migrated) { - // Just clear any leftover localStorage - clearLocalStorageFavorites(); - clearLocalStorageConversationState(); - hasMigratedRef.current = true; - return; - } - - // Check if we have any localStorage data to migrate - const localFavorites = loadLocalStorageFavorites(); - const localSortOrder = loadLocalStorageSortOrder(); - const localLastMessageTimes = loadLocalStorageLastMessageTimes(); - - const hasLocalData = - localFavorites.length > 0 || - localSortOrder !== 'recent' || - Object.keys(localLastMessageTimes).length > 0; - - if (!hasLocalData) { - // No local data to migrate, just mark as done - hasMigratedRef.current = true; - return; - } - - // Mark as migrating immediately to prevent duplicate calls - hasMigratedRef.current = true; - - // Migrate localStorage to server - const migratePreferences = async () => { - try { - const result = await api.migratePreferences({ - favorites: localFavorites, - sort_order: localSortOrder, - last_message_times: localLastMessageTimes, - }); - - if (result.migrated) { - toast.success('Preferences migrated', { - description: `Migrated ${localFavorites.length} favorites to server`, - }); - } - - // Update local state with migrated settings - setAppSettings(result.settings); - // Reinitialize cache with migrated data - initLastMessageTimes(result.settings.last_message_times ?? {}); - - // Clear localStorage after successful migration - clearLocalStorageFavorites(); - clearLocalStorageConversationState(); - } catch (err) { - console.error('Failed to migrate preferences:', err); - // Don't block the app on migration failure - } - }; - - migratePreferences(); - }, [appSettings]); - - // Phase 1: Set initial conversation from URL hash or default to Public channel - // Only needs channels (fast path) - doesn't wait for contacts - const hasSetDefaultConversation = useRef(false); - useEffect(() => { - if (hasSetDefaultConversation.current || activeConversation) return; - if (channels.length === 0) return; - - const hashConv = parseHashConversation(); - - // Handle non-data views immediately - if (hashConv?.type === 'raw') { - setActiveConversation({ type: 'raw', id: 'raw', name: 'Raw Packet Feed' }); - hasSetDefaultConversation.current = true; - return; - } - if (hashConv?.type === 'map') { - setActiveConversation({ - type: 'map', - id: 'map', - name: 'Node Map', - mapFocusKey: hashConv.mapFocusKey, - }); - hasSetDefaultConversation.current = true; - return; - } - if (hashConv?.type === 'visualizer') { - setActiveConversation({ type: 'visualizer', id: 'visualizer', name: 'Mesh Visualizer' }); - hasSetDefaultConversation.current = true; - return; - } - - // Handle channel hash (ID-first with legacy-name fallback) - if (hashConv?.type === 'channel') { - const channel = resolveChannelFromHashToken(hashConv.name, channels); - if (channel) { - setActiveConversation({ type: 'channel', id: channel.key, name: channel.name }); - hasSetDefaultConversation.current = true; - return; - } - } - - // Contact hash — wait for phase 2 - if (hashConv?.type === 'contact') return; - - // No hash or unresolvable — default to Public - const publicChannel = channels.find((c) => c.name === 'Public'); - if (publicChannel) { - setActiveConversation({ - type: 'channel', - id: publicChannel.key, - name: publicChannel.name, - }); - hasSetDefaultConversation.current = true; - } - }, [channels, activeConversation]); - - // Phase 2: Resolve contact hash (only if phase 1 didn't set a conversation) - useEffect(() => { - if (hasSetDefaultConversation.current || activeConversation) return; - - const hashConv = parseHashConversation(); - if (hashConv?.type === 'contact') { - // Wait until the initial contacts load finishes so we don't fall back early. - if (!contactsLoaded) return; - - const contact = resolveContactFromHashToken(hashConv.name, contacts); - if (contact) { - setActiveConversation({ - type: 'contact', - id: contact.public_key, - name: getContactDisplayName(contact.name, contact.public_key), - }); - hasSetDefaultConversation.current = true; - return; - } - - // Contact hash didn't match — fall back to Public if channels loaded. - if (channels.length > 0) { - const publicChannel = channels.find((c) => c.name === 'Public'); - if (publicChannel) { - setActiveConversation({ - type: 'channel', - id: publicChannel.key, - name: publicChannel.name, - }); - hasSetDefaultConversation.current = true; - } - } - } - }, [contacts, channels, activeConversation, contactsLoaded]); - - // Keep ref in sync and update URL hash - useEffect(() => { - activeConversationRef.current = activeConversation; - if (activeConversation) { - updateUrlHash(activeConversation); - } - }, [activeConversation]); - - // If a delete action left us without an active conversation, recover to Public - // once channels are available. This is scoped to delete flows only so it doesn't - // interfere with hash-based startup resolution. - useEffect(() => { - if (!pendingDeleteFallbackRef.current) return; - if (activeConversation) { - pendingDeleteFallbackRef.current = false; - return; - } - - const publicChannel = - channels.find((c) => c.key === PUBLIC_CHANNEL_KEY) || - channels.find((c) => c.name === 'Public'); - if (!publicChannel) return; - - hasSetDefaultConversation.current = true; - pendingDeleteFallbackRef.current = false; - setActiveConversation({ - type: 'channel', - id: publicChannel.key, - name: publicChannel.name, - }); - }, [activeConversation, channels]); + }, [fetchConfig, fetchAppSettings, fetchUndecryptedCount, fetchAllContacts, setChannels, setContacts, setContactsLoaded]); // Send message handler const handleSendMessage = useCallback( async (text: string) => { if (!activeConversation) return; - // Capture conversation identity before the await — the user could switch - // conversations while the send is in flight. const conversationId = activeConversation.id; let sent: Message; @@ -578,94 +359,13 @@ export function App() { sent = await api.sendDirectMessage(activeConversation.id, text); } - // Add the returned message directly instead of re-fetching all messages. - // A full fetchMessages() replaces the array, which resets messagesAdded to 0 - // and skips the scroll-to-bottom — especially when racing with the initial - // conversation load or a WebSocket delivery that already incremented the count. - // The send endpoints do NOT broadcast via WebSocket, so for DMs this is the - // only path that shows the sent message. For channels, the radio echo may - // eventually arrive via WS, but addMessageIfNew deduplicates by content key. if (activeConversationRef.current?.id === conversationId) { addMessageIfNew(sent); } }, - [activeConversation, addMessageIfNew] + [activeConversation, addMessageIfNew, activeConversationRef] ); - // Config save handler - const handleSaveConfig = useCallback( - async (update: RadioConfigUpdate) => { - await api.updateRadioConfig(update); - await fetchConfig(); - }, - [fetchConfig] - ); - - // App settings save handler - const handleSaveAppSettings = useCallback( - async (update: AppSettingsUpdate) => { - await api.updateSettings(update); - await fetchAppSettings(); - }, - [fetchAppSettings] - ); - - // Set private key handler - const handleSetPrivateKey = useCallback( - async (key: string) => { - await api.setPrivateKey(key); - await fetchConfig(); - }, - [fetchConfig] - ); - - // Reboot radio handler - const handleReboot = useCallback(async () => { - await api.rebootRadio(); - setHealth((prev) => (prev ? { ...prev, radio_connected: false } : prev)); - const pollToken = ++rebootPollTokenRef.current; - const pollUntilReconnected = async () => { - for (let i = 0; i < 30; i++) { - await new Promise((r) => setTimeout(r, 1000)); - if (rebootPollTokenRef.current !== pollToken) return; - try { - const data = await api.getHealth(); - if (rebootPollTokenRef.current !== pollToken) return; - setHealth(data); - if (data.radio_connected) { - fetchConfig(); - return; - } - } catch { - // Keep polling - } - } - }; - pollUntilReconnected(); - }, [fetchConfig]); - - // Send flood advertisement handler - const handleAdvertise = useCallback(async () => { - try { - await api.sendAdvertisement(); - toast.success('Advertisement sent'); - } catch (err) { - console.error('Failed to send advertisement:', err); - toast.error('Failed to send advertisement', { - description: err instanceof Error ? err.message : 'Check radio connection', - }); - } - }, []); - - const handleHealthRefresh = useCallback(async () => { - try { - const data = await api.getHealth(); - setHealth(data); - } catch (err) { - console.error('Failed to refresh health:', err); - } - }, []); - // Handle resend channel message const handleResendChannelMessage = useCallback(async (messageId: number) => { try { @@ -683,164 +383,6 @@ export function App() { messageInputRef.current?.appendText(`@[${sender}] `); }, []); - // Handle conversation selection (closes sidebar on mobile) - const handleSelectConversation = useCallback((conv: Conversation) => { - setActiveConversation(conv); - setSidebarOpen(false); - }, []); - - // Toggle favorite status for a conversation (via API) with optimistic update - const handleToggleFavorite = useCallback(async (type: 'channel' | 'contact', id: string) => { - // Read current favorites inside the callback to avoid a dependency on the - // derived `favorites` array (which creates a new reference every render). - setAppSettings((prev) => { - if (!prev) return prev; - const currentFavorites = prev.favorites ?? []; - const wasFavorited = isFavorite(currentFavorites, type, id); - const optimisticFavorites = wasFavorited - ? currentFavorites.filter((f) => !(f.type === type && f.id === id)) - : [...currentFavorites, { type, id }]; - return { ...prev, favorites: optimisticFavorites }; - }); - - try { - const updatedSettings = await api.toggleFavorite(type, id); - setAppSettings(updatedSettings); - } catch (err) { - console.error('Failed to toggle favorite:', err); - // Revert: re-fetch would be safest, but restoring from server state on next sync - // is acceptable. For now, just refetch settings. - try { - const settings = await api.getSettings(); - setAppSettings(settings); - } catch { - // If refetch also fails, leave optimistic state - } - toast.error('Failed to update favorite'); - } - }, []); - - // Delete channel handler - const handleDeleteChannel = useCallback(async (key: string) => { - if (!confirm('Delete this channel? Message history will be preserved.')) return; - try { - pendingDeleteFallbackRef.current = true; - await api.deleteChannel(key); - messageCache.remove(key); - const refreshedChannels = await api.getChannels(); - setChannels(refreshedChannels); - const publicChannel = - refreshedChannels.find((c) => c.key === PUBLIC_CHANNEL_KEY) || - refreshedChannels.find((c) => c.name === 'Public'); - hasSetDefaultConversation.current = true; - setActiveConversation({ - type: 'channel', - id: publicChannel?.key || PUBLIC_CHANNEL_KEY, - name: publicChannel?.name || 'Public', - }); - toast.success('Channel deleted'); - } catch (err) { - console.error('Failed to delete channel:', err); - toast.error('Failed to delete channel', { - description: err instanceof Error ? err.message : undefined, - }); - } - }, []); - - // Delete contact handler - const handleDeleteContact = useCallback(async (publicKey: string) => { - if (!confirm('Delete this contact? Message history will be preserved.')) return; - try { - pendingDeleteFallbackRef.current = true; - await api.deleteContact(publicKey); - messageCache.remove(publicKey); - setContacts((prev) => prev.filter((c) => c.public_key !== publicKey)); - const refreshedChannels = await api.getChannels(); - setChannels(refreshedChannels); - const publicChannel = - refreshedChannels.find((c) => c.key === PUBLIC_CHANNEL_KEY) || - refreshedChannels.find((c) => c.name === 'Public'); - hasSetDefaultConversation.current = true; - setActiveConversation({ - type: 'channel', - id: publicChannel?.key || PUBLIC_CHANNEL_KEY, - name: publicChannel?.name || 'Public', - }); - toast.success('Contact deleted'); - } catch (err) { - console.error('Failed to delete contact:', err); - toast.error('Failed to delete contact', { - description: err instanceof Error ? err.message : undefined, - }); - } - }, []); - - // Create contact handler - const handleCreateContact = useCallback( - async (name: string, publicKey: string, tryHistorical: boolean) => { - const created = await api.createContact(publicKey, name || undefined, tryHistorical); - const data = await fetchAllContacts(); - setContacts(data); - - setActiveConversation({ - type: 'contact', - id: created.public_key, - name: getContactDisplayName(created.name, created.public_key), - }); - }, - [fetchAllContacts] - ); - - // Create channel handler - const handleCreateChannel = useCallback( - async (name: string, key: string, tryHistorical: boolean) => { - const created = await api.createChannel(name, key); - const data = await api.getChannels(); - setChannels(data); - - setActiveConversation({ - type: 'channel', - id: created.key, - name, - }); - - if (tryHistorical) { - await api.decryptHistoricalPackets({ - key_type: 'channel', - channel_key: created.key, - }); - fetchUndecryptedCount(); - } - }, - [fetchUndecryptedCount] - ); - - // Create hashtag channel handler - const handleCreateHashtagChannel = useCallback( - async (name: string, tryHistorical: boolean) => { - const channelName = name.startsWith('#') ? name : `#${name}`; - - const created = await api.createChannel(channelName); - const data = await api.getChannels(); - setChannels(data); - - setActiveConversation({ - type: 'channel', - id: created.key, - name: channelName, - }); - - if (tryHistorical) { - await api.decryptHistoricalPackets({ - key_type: 'channel', - channel_name: channelName, - }); - fetchUndecryptedCount(); - } - }, - [fetchUndecryptedCount] - ); - // Handle direct trace request const handleTrace = useCallback(async () => { if (!activeConversation || activeConversation.type !== 'contact') return; @@ -859,28 +401,6 @@ export function App() { } }, [activeConversation]); - // Handle sort order change via API with optimistic update - const handleSortOrderChange = useCallback( - async (order: 'recent' | 'alpha') => { - // Capture previous value for rollback on error - const previousOrder = appSettings?.sidebar_sort_order ?? 'recent'; - - // Optimistic update for responsive UI - setAppSettings((prev) => (prev ? { ...prev, sidebar_sort_order: order } : prev)); - - try { - const updatedSettings = await api.updateSettings({ sidebar_sort_order: order }); - setAppSettings(updatedSettings); - } catch (err) { - console.error('Failed to update sort order:', err); - // Revert to previous value on error (not inverting the new value) - setAppSettings((prev) => (prev ? { ...prev, sidebar_sort_order: previousOrder } : prev)); - toast.error('Failed to save sort preference'); - } - }, - [appSettings?.sidebar_sort_order] - ); - const handleCloseSettingsView = useCallback(() => { startTransition(() => setShowSettings(false)); setSidebarOpen(false); @@ -936,7 +456,7 @@ export function App() { title="Back to conversations" aria-label="Back to conversations" > - ← + ←