From b270ed03aeb9395e08bcd6993ddf6b5c02368191 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Wed, 1 Apr 2026 00:04:25 +0100 Subject: [PATCH 01/13] feat(frontend): implement corpus explorer This allows you to view the posts & comments associated with a specific aggregate. --- frontend/src/components/CorpusExplorer.tsx | 175 +++++++++ frontend/src/components/CulturalStats.tsx | 85 +++- frontend/src/components/EmotionalStats.tsx | 30 +- frontend/src/components/LinguisticStats.tsx | 26 +- frontend/src/components/SummaryStats.tsx | 122 +++--- frontend/src/components/UserStats.tsx | 69 +++- frontend/src/pages/DatasetEdit.tsx | 11 - frontend/src/pages/Stats.tsx | 300 +++++++++++---- frontend/src/utils/corpusExplorer.ts | 405 ++++++++++++++++++++ server/analysis/stat_gen.py | 17 +- server/app.py | 3 +- 11 files changed, 1064 insertions(+), 179 deletions(-) create mode 100644 frontend/src/components/CorpusExplorer.tsx create mode 100644 frontend/src/utils/corpusExplorer.ts diff --git a/frontend/src/components/CorpusExplorer.tsx b/frontend/src/components/CorpusExplorer.tsx new file mode 100644 index 0000000..e382b51 --- /dev/null +++ b/frontend/src/components/CorpusExplorer.tsx @@ -0,0 +1,175 @@ +import { Dialog, DialogPanel, DialogTitle } from "@headlessui/react"; + +import StatsStyling from "../styles/stats_styling"; +import type { DatasetRecord } from "../utils/corpusExplorer"; + +const styles = StatsStyling; + +const cleanText = (value: unknown) => { + if (typeof value !== "string") { + return ""; + } + + const trimmed = value.trim(); + if (!trimmed) { + return ""; + } + + const lowered = trimmed.toLowerCase(); + if (lowered === "nan" || lowered === "null" || lowered === "undefined") { + return ""; + } + + return trimmed; +}; + +const displayText = (value: unknown, fallback: string) => { + const cleaned = cleanText(value); + return cleaned || fallback; +}; + +type CorpusExplorerProps = { + open: boolean; + onClose: () => void; + title: string; + description: string; + records: DatasetRecord[]; + loading: boolean; + error: string; + emptyMessage: string; +}; + +const formatRecordDate = (record: DatasetRecord) => { + if (typeof record.dt === "string" && record.dt) { + const date = new Date(record.dt); + if (!Number.isNaN(date.getTime())) { + return date.toLocaleString(); + } + } + + if (typeof record.date === "string" && record.date) { + return record.date; + } + + if (typeof record.timestamp === "number") { + return new Date(record.timestamp * 1000).toLocaleString(); + } + + return "Unknown time"; +}; + +const getRecordKey = (record: DatasetRecord, index: number) => + String(record.id ?? record.post_id ?? `${record.author ?? "record"}-${index}`); + +const getRecordTitle = (record: DatasetRecord) => { + if (record.type === "comment") { + return ""; + } + + const title = cleanText(record.title); + if (title) { + return title; + } + + const content = cleanText(record.content); + if (!content) { + return "Untitled record"; + } + + return content.length > 120 ? `${content.slice(0, 117)}...` : content; +}; + +const getRecordExcerpt = (record: DatasetRecord) => { + const content = cleanText(record.content); + if (!content) { + return "No content available."; + } + + return content.length > 320 ? `${content.slice(0, 317)}...` : content; +}; + +const CorpusExplorer = ({ + open, + onClose, + title, + description, + records, + loading, + error, + emptyMessage, +}: CorpusExplorerProps) => ( + +
+ +
+ +
+
+ {title} +

+ {description} {loading ? "Loading records..." : `${records.length.toLocaleString()} records.`} +

+
+ + +
+ + {error ?

{error}

: null} + + {!loading && !error && !records.length ? ( +

{emptyMessage}

+ ) : null} + + {loading ? ( +
Preparing corpus slice...
+ ) : null} + + {!loading && !error && records.length ? ( +
+ {records.map((record, index) => ( +
+
+
+ {getRecordTitle(record) ? ( +
{getRecordTitle(record)}
+ ) : null} +
+ {displayText(record.author, "Unknown author")} • {displayText(record.source, "Unknown source")} • {displayText(record.type, "record")} • {formatRecordDate(record)} +
+
+
+ {cleanText(record.topic) ? `Topic: ${cleanText(record.topic)}` : ""} +
+
+ +
+ {getRecordExcerpt(record)} +
+
+ ))} +
+ ) : null} +
+
+
+); + +export default CorpusExplorer; diff --git a/frontend/src/components/CulturalStats.tsx b/frontend/src/components/CulturalStats.tsx index e62b956..81e059d 100644 --- a/frontend/src/components/CulturalStats.tsx +++ b/frontend/src/components/CulturalStats.tsx @@ -1,14 +1,34 @@ import Card from "./Card"; import StatsStyling from "../styles/stats_styling"; import type { CulturalAnalysisResponse } from "../types/ApiTypes"; +import { + buildCertaintySpec, + buildDeonticSpec, + buildEntitySpec, + buildHedgeSpec, + buildIdentityBucketSpec, + buildPermissionSpec, + getExplorerButtonStyle, + type CorpusExplorerSpec, +} from "../utils/corpusExplorer"; const styles = StatsStyling; type CulturalStatsProps = { data: CulturalAnalysisResponse; + onExplore: (spec: CorpusExplorerSpec) => void; }; -const CulturalStats = ({ data }: CulturalStatsProps) => { +const renderExploreButton = (onClick: () => void) => ( + +); + +const CulturalStats = ({ data, onExplore }: CulturalStatsProps) => { const identity = data.identity_markers; const stance = data.stance_markers; const inGroupWords = identity?.in_group_usage ?? 0; @@ -30,7 +50,7 @@ const CulturalStats = ({ data }: CulturalStatsProps) => { const topEmotion = (emotionAvg: Record | undefined) => { const entries = Object.entries(emotionAvg ?? {}); if (!entries.length) { - return "—"; + return "-"; } entries.sort((a, b) => b[1] - a[1]); @@ -64,21 +84,30 @@ const CulturalStats = ({ data }: CulturalStatsProps) => { /> + onExplore(buildIdentityBucketSpec("in")), + )} style={{ gridColumn: "span 3" }} /> + onExplore(buildIdentityBucketSpec("out")), + )} style={{ gridColumn: "span 3" }} /> + onExplore(buildIdentityBucketSpec("tie")), + )} style={{ gridColumn: "span 3" }} /> { { { onExplore(buildHedgeSpec()))} style={{ gridColumn: "span 3" }} /> onExplore(buildCertaintySpec()))} style={{ gridColumn: "span 3" }} /> onExplore(buildDeonticSpec()))} style={{ gridColumn: "span 3" }} /> onExplore(buildPermissionSpec()))} style={{ gridColumn: "span 3" }} /> @@ -150,8 +183,14 @@ const CulturalStats = ({ data }: CulturalStatsProps) => {

Most likely emotion when in-group wording is stronger.

-
- {topEmotion(identity?.in_group_emotion_avg)} +
{topEmotion(identity?.in_group_emotion_avg)}
+
+
@@ -160,8 +199,14 @@ const CulturalStats = ({ data }: CulturalStatsProps) => {

Most likely emotion when out-group wording is stronger.

-
- {topEmotion(identity?.out_group_emotion_avg)} +
{topEmotion(identity?.out_group_emotion_avg)}
+
+
@@ -171,9 +216,7 @@ const CulturalStats = ({ data }: CulturalStatsProps) => { Most mentioned entities and the mood that appears most with each.

{!entities.length ? ( -
- No entity-level cultural data available. -
+
No entity-level cultural data available.
) : (
{ }} > {entities.map(([entity, aggregate]) => ( -
+
onExplore(buildEntitySpec(entity))} + >
{entity}
{aggregate.post_count.toLocaleString()} posts • Likely mood:{" "} diff --git a/frontend/src/components/EmotionalStats.tsx b/frontend/src/components/EmotionalStats.tsx index 6350e0c..0e22b3f 100644 --- a/frontend/src/components/EmotionalStats.tsx +++ b/frontend/src/components/EmotionalStats.tsx @@ -1,13 +1,20 @@ import type { EmotionalAnalysisResponse } from "../types/ApiTypes"; import StatsStyling from "../styles/stats_styling"; +import { + buildDominantEmotionSpec, + buildSourceSpec, + buildTopicSpec, + type CorpusExplorerSpec, +} from "../utils/corpusExplorer"; const styles = StatsStyling; type EmotionalStatsProps = { emotionalData: EmotionalAnalysisResponse; + onExplore: (spec: CorpusExplorerSpec) => void; }; -const EmotionalStats = ({ emotionalData }: EmotionalStatsProps) => { +const EmotionalStats = ({ emotionalData, onExplore }: EmotionalStatsProps) => { const rows = emotionalData.average_emotion_by_topic ?? []; const overallEmotionAverage = emotionalData.overall_emotion_average ?? []; const dominantEmotionDistribution = @@ -126,7 +133,11 @@ const EmotionalStats = ({ emotionalData }: EmotionalStatsProps) => { {[...overallEmotionAverage] .sort((a, b) => b.score - a.score) .map((row) => ( -
+
onExplore(buildDominantEmotionSpec(row.emotion))} + >
{formatEmotion(row.emotion)}
@@ -157,7 +168,11 @@ const EmotionalStats = ({ emotionalData }: EmotionalStatsProps) => { {[...dominantEmotionDistribution] .sort((a, b) => b.ratio - a.ratio) .map((row) => ( -
+
onExplore(buildDominantEmotionSpec(row.emotion))} + >
{formatEmotion(row.emotion)}
@@ -189,7 +204,11 @@ const EmotionalStats = ({ emotionalData }: EmotionalStatsProps) => { {[...emotionBySource] .sort((a, b) => b.event_count - a.event_count) .map((row) => ( -
+
onExplore(buildSourceSpec(row.source))} + >
{row.source}
{formatEmotion(row.dominant_emotion)} •{" "} @@ -211,7 +230,8 @@ const EmotionalStats = ({ emotionalData }: EmotionalStatsProps) => { {strongestPerTopic.map((topic) => (
onExplore(buildTopicSpec(topic.topic))} >

{topic.topic} diff --git a/frontend/src/components/LinguisticStats.tsx b/frontend/src/components/LinguisticStats.tsx index 794d118..aaee748 100644 --- a/frontend/src/components/LinguisticStats.tsx +++ b/frontend/src/components/LinguisticStats.tsx @@ -1,14 +1,20 @@ import Card from "./Card"; import StatsStyling from "../styles/stats_styling"; import type { LinguisticAnalysisResponse } from "../types/ApiTypes"; +import { + buildNgramSpec, + buildWordSpec, + type CorpusExplorerSpec, +} from "../utils/corpusExplorer"; const styles = StatsStyling; type LinguisticStatsProps = { data: LinguisticAnalysisResponse; + onExplore: (spec: CorpusExplorerSpec) => void; }; -const LinguisticStats = ({ data }: LinguisticStatsProps) => { +const LinguisticStats = ({ data, onExplore }: LinguisticStatsProps) => { const lexical = data.lexical_diversity; const words = data.word_frequencies ?? []; const bigrams = data.common_two_phrases ?? []; @@ -60,7 +66,11 @@ const LinguisticStats = ({ data }: LinguisticStatsProps) => { }} > {topWords.map((item) => ( -
+
onExplore(buildWordSpec(item.word))} + >
{item.word}
{item.count.toLocaleString()} uses @@ -81,7 +91,11 @@ const LinguisticStats = ({ data }: LinguisticStatsProps) => { }} > {topBigrams.map((item) => ( -
+
onExplore(buildNgramSpec(item.ngram))} + >
{item.ngram}
{item.count.toLocaleString()} uses @@ -102,7 +116,11 @@ const LinguisticStats = ({ data }: LinguisticStatsProps) => { }} > {topTrigrams.map((item) => ( -
+
onExplore(buildNgramSpec(item.ngram))} + >
{item.ngram}
{item.count.toLocaleString()} uses diff --git a/frontend/src/components/SummaryStats.tsx b/frontend/src/components/SummaryStats.tsx index 01cedb3..d53d6da 100644 --- a/frontend/src/components/SummaryStats.tsx +++ b/frontend/src/components/SummaryStats.tsx @@ -1,4 +1,4 @@ -import { memo, useMemo, useState } from "react"; +import { memo, useMemo } from "react"; import { LineChart, Line, @@ -13,7 +13,6 @@ import ActivityHeatmap from "../stats/ActivityHeatmap"; import { ReactWordcloud } from "@cp949/react-wordcloud"; import StatsStyling from "../styles/stats_styling"; import Card from "../components/Card"; -import UserModal from "../components/UserModal"; import { type SummaryResponse, @@ -21,8 +20,15 @@ import { type UserEndpointResponse, type TimeAnalysisResponse, type LinguisticAnalysisResponse, - type User, } from "../types/ApiTypes"; +import { + buildAllRecordsSpec, + buildDateBucketSpec, + buildOneTimeUsersSpec, + buildUserSpec, + getExplorerButtonStyle, + type CorpusExplorerSpec, +} from "../utils/corpusExplorer"; const styles = StatsStyling; const MAX_WORDCLOUD_WORDS = 250; @@ -39,6 +45,7 @@ type SummaryStatsProps = { timeData: TimeAnalysisResponse | null; linguisticData: LinguisticAnalysisResponse | null; summary: SummaryResponse | null; + onExplore: (spec: CorpusExplorerSpec) => void; }; type WordCloudPanelProps = { @@ -60,7 +67,7 @@ function formatDateRange(startUnix: number, endUnix: number) { day: "2-digit", }); - return `${fmt(start)} → ${fmt(end)}`; + return `${fmt(start)} -> ${fmt(end)}`; } function convertFrequencyData(data: FrequencyWord[]) { @@ -70,25 +77,22 @@ function convertFrequencyData(data: FrequencyWord[]) { })); } +const renderExploreButton = (onClick: () => void) => ( + +); + const SummaryStats = ({ userData, timeData, linguisticData, summary, + onExplore, }: SummaryStatsProps) => { - const [selectedUser, setSelectedUser] = useState(null); - const usersByAuthor = useMemo(() => { - const nextMap = new Map(); - for (const user of userData?.users ?? []) { - nextMap.set(user.author, user); - } - return nextMap; - }, [userData?.users]); - - const selectedUserData: User | null = selectedUser - ? usersByAuthor.get(selectedUser) ?? null - : null; - const wordCloudWords = useMemo( () => convertFrequencyData( @@ -104,49 +108,41 @@ const SummaryStats = ({ return (
- {/* main grid*/}
onExplore(buildAllRecordsSpec()))} + style={{ gridColumn: "span 4" }} /> onExplore(buildAllRecordsSpec()))} + style={{ gridColumn: "span 4" }} /> onExplore(buildAllRecordsSpec()))} + style={{ gridColumn: "span 4" }} /> onExplore(buildAllRecordsSpec()))} + style={{ gridColumn: "span 4" }} /> onExplore(buildOneTimeUsersSpec()))} + style={{ gridColumn: "span 4" }} /> 3 ? "…" : "") - : "—" + (summary.sources.length > 3 ? "..." : "") + : "-" } - style={{ - gridColumn: "span 4", - }} + rightSlot={renderExploreButton(() => onExplore(buildAllRecordsSpec()))} + style={{ gridColumn: "span 4" }} /> - {/* events per day */}

Activity Over Time

-

- How much posting happened each day. -

+

How much posting happened each day.

- + { + const payload = (state as { activePayload?: Array<{ payload?: { date?: string } }> }) + ?.activePayload?.[0]?.payload as + | { date?: string } + | undefined; + if (payload?.date) { + onExplore(buildDateBucketSpec(String(payload.date))); + } + }} + > @@ -201,7 +203,6 @@ const SummaryStats = ({
- {/* Word Cloud */}

Common Words

@@ -213,7 +214,6 @@ const SummaryStats = ({

- {/* Top Users */}
@@ -225,7 +225,7 @@ const SummaryStats = ({
setSelectedUser(item.author)} + onClick={() => onExplore(buildUserSpec(item.author))} >
{item.author}
@@ -236,7 +236,6 @@ const SummaryStats = ({
- {/* Heatmap */}

Weekly Activity Pattern

@@ -248,13 +247,6 @@ const SummaryStats = ({

- - setSelectedUser(null)} - username={selectedUser ?? ""} - userData={selectedUserData} - />
); }; diff --git a/frontend/src/components/UserStats.tsx b/frontend/src/components/UserStats.tsx index fd38f77..50d96f3 100644 --- a/frontend/src/components/UserStats.tsx +++ b/frontend/src/components/UserStats.tsx @@ -5,6 +5,12 @@ import { type TopUser, type InteractionGraph } from "../types/ApiTypes"; import StatsStyling from "../styles/stats_styling"; import Card from "./Card"; +import { + buildReplyPairSpec, + toText, + buildUserSpec, + type CorpusExplorerSpec, +} from "../utils/corpusExplorer"; const styles = StatsStyling; @@ -39,6 +45,7 @@ type UserStatsProps = { interactionGraph: InteractionGraph; totalUsers: number; mostCommentHeavyUser: { author: string; commentShare: number } | null; + onExplore: (spec: CorpusExplorerSpec) => void; }; const UserStats = ({ @@ -46,6 +53,7 @@ const UserStats = ({ interactionGraph, totalUsers, mostCommentHeavyUser, + onExplore, }: UserStatsProps) => { const graphData = useMemo( () => ApiToGraphData(interactionGraph), @@ -87,9 +95,9 @@ const UserStats = ({ null, ); - const mostActiveUser = topUsers.find( - (u) => u.author !== "[deleted]", - ); + const mostActiveUser = topUsers.find((u) => u.author !== "[deleted]"); + const strongestLinkSource = strongestLink ? toText(strongestLink.source) : ""; + const strongestLinkTarget = strongestLink ? toText(strongestLink.target) : ""; return (
@@ -114,37 +122,69 @@ const UserStats = ({ /> onExplore(buildUserSpec(mostActiveUser.author))} + style={styles.buttonSecondary} + > + Explore + + ) : null + } style={{ gridColumn: "span 3" }} /> ${strongestLink.target}` - : "—" + strongestLinkSource && strongestLinkTarget + ? `${strongestLinkSource} -> ${strongestLinkTarget}` + : "-" } sublabel={ strongestLink ? `${strongestLink.value.toLocaleString()} replies` : "No graph links after filtering" } + rightSlot={ + strongestLinkSource && strongestLinkTarget ? ( + + ) : null + } style={{ gridColumn: "span 6" }} /> onExplore(buildUserSpec(mostCommentHeavyUser.author))} + style={styles.buttonSecondary} + > + Explore + + ) : null + } style={{ gridColumn: "span 6" }} /> @@ -166,6 +206,19 @@ const UserStats = ({ linkDirectionalParticleSpeed={0.004} linkWidth={(link) => Math.sqrt(Number(link.value))} nodeLabel={(node) => `${node.id}`} + onNodeClick={(node) => { + const userId = toText(node.id); + if (userId) { + onExplore(buildUserSpec(userId)); + } + }} + onLinkClick={(link) => { + const source = toText(link.source); + const target = toText(link.target); + if (source && target) { + onExplore(buildReplyPairSpec(source, target)); + } + }} />
diff --git a/frontend/src/pages/DatasetEdit.tsx b/frontend/src/pages/DatasetEdit.tsx index 798ec35..34c556d 100644 --- a/frontend/src/pages/DatasetEdit.tsx +++ b/frontend/src/pages/DatasetEdit.tsx @@ -22,12 +22,10 @@ const DatasetEditPage = () => { const [isSaving, setIsSaving] = useState(false); const [isDeleting, setIsDeleting] = useState(false); const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); - const [hasError, setHasError] = useState(false); const [datasetName, setDatasetName] = useState(""); useEffect(() => { if (!Number.isInteger(parsedDatasetId) || parsedDatasetId <= 0) { - setHasError(true); setStatusMessage("Invalid dataset id."); setLoading(false); return; @@ -35,7 +33,6 @@ const DatasetEditPage = () => { const token = localStorage.getItem("access_token"); if (!token) { - setHasError(true); setStatusMessage("You must be signed in to edit datasets."); setLoading(false); return; @@ -49,7 +46,6 @@ const DatasetEditPage = () => { setDatasetName(response.data.name || ""); }) .catch((error: unknown) => { - setHasError(true); if (axios.isAxiosError(error)) { setStatusMessage( String(error.response?.data?.error || error.message), @@ -68,21 +64,18 @@ const DatasetEditPage = () => { const trimmedName = datasetName.trim(); if (!trimmedName) { - setHasError(true); setStatusMessage("Please enter a valid dataset name."); return; } const token = localStorage.getItem("access_token"); if (!token) { - setHasError(true); setStatusMessage("You must be signed in to save changes."); return; } try { setIsSaving(true); - setHasError(false); setStatusMessage(""); await axios.patch( @@ -93,7 +86,6 @@ const DatasetEditPage = () => { navigate("/datasets", { replace: true }); } catch (error: unknown) { - setHasError(true); if (axios.isAxiosError(error)) { setStatusMessage( String( @@ -111,7 +103,6 @@ const DatasetEditPage = () => { const deleteDataset = async () => { const deleteToken = localStorage.getItem("access_token"); if (!deleteToken) { - setHasError(true); setStatusMessage("You must be signed in to delete datasets."); setIsDeleteModalOpen(false); return; @@ -119,7 +110,6 @@ const DatasetEditPage = () => { try { setIsDeleting(true); - setHasError(false); setStatusMessage(""); await axios.delete(`${API_BASE_URL}/dataset/${parsedDatasetId}`, { @@ -129,7 +119,6 @@ const DatasetEditPage = () => { setIsDeleteModalOpen(false); navigate("/datasets", { replace: true }); } catch (error: unknown) { - setHasError(true); if (axios.isAxiosError(error)) { setStatusMessage( String( diff --git a/frontend/src/pages/Stats.tsx b/frontend/src/pages/Stats.tsx index 4327dcf..d520ca4 100644 --- a/frontend/src/pages/Stats.tsx +++ b/frontend/src/pages/Stats.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState, useRef } from "react"; +import { useEffect, useRef, useState } from "react"; import axios from "axios"; import { useParams } from "react-router-dom"; import StatsStyling from "../styles/stats_styling"; @@ -8,6 +8,7 @@ import UserStats from "../components/UserStats"; import LinguisticStats from "../components/LinguisticStats"; import InteractionalStats from "../components/InteractionalStats"; import CulturalStats from "../components/CulturalStats"; +import CorpusExplorer from "../components/CorpusExplorer"; import { type SummaryResponse, @@ -19,10 +20,15 @@ import { type InteractionAnalysisResponse, type CulturalAnalysisResponse, } from "../types/ApiTypes"; +import { + buildExplorerContext, + type CorpusExplorerSpec, + type DatasetRecord, +} from "../utils/corpusExplorer"; const API_BASE_URL = import.meta.env.VITE_BACKEND_URL; const styles = StatsStyling; -const DELETED_USERS = ["[deleted]"]; +const DELETED_USERS = ["[deleted]", "automoderator"]; const isDeletedUser = (value: string | null | undefined) => DELETED_USERS.includes((value ?? "").trim().toLowerCase()); @@ -40,6 +46,97 @@ type UserStatsMeta = { mostCommentHeavyUser: { author: string; commentShare: number } | null; }; +type ExplorerState = { + open: boolean; + title: string; + description: string; + emptyMessage: string; + records: DatasetRecord[]; + loading: boolean; + error: string; +}; + +const EMPTY_EXPLORER_STATE: ExplorerState = { + open: false, + title: "Corpus Explorer", + description: "", + emptyMessage: "No records found.", + records: [], + loading: false, + error: "", +}; + +const normalizeRecordPayload = (payload: unknown): DatasetRecord[] => { + if (typeof payload === "string") { + try { + return normalizeRecordPayload(JSON.parse(payload)); + } catch { + throw new Error("Corpus endpoint returned a non-JSON string payload."); + } + } + + if ( + payload && + typeof payload === "object" && + "error" in payload && + typeof (payload as { error?: unknown }).error === "string" + ) { + throw new Error((payload as { error: string }).error); + } + + if (Array.isArray(payload)) { + return payload as DatasetRecord[]; + } + + if ( + payload && + typeof payload === "object" && + "data" in payload && + Array.isArray((payload as { data?: unknown }).data) + ) { + return (payload as { data: DatasetRecord[] }).data; + } + + if ( + payload && + typeof payload === "object" && + "records" in payload && + Array.isArray((payload as { records?: unknown }).records) + ) { + return (payload as { records: DatasetRecord[] }).records; + } + + if ( + payload && + typeof payload === "object" && + "rows" in payload && + Array.isArray((payload as { rows?: unknown }).rows) + ) { + return (payload as { rows: DatasetRecord[] }).rows; + } + + if ( + payload && + typeof payload === "object" && + "result" in payload && + Array.isArray((payload as { result?: unknown }).result) + ) { + return (payload as { result: DatasetRecord[] }).result; + } + + if (payload && typeof payload === "object") { + const values = Object.values(payload); + if (values.length === 1 && Array.isArray(values[0])) { + return values[0] as DatasetRecord[]; + } + if (values.every((value) => value && typeof value === "object")) { + return values as DatasetRecord[]; + } + } + + throw new Error("Corpus endpoint returned an unexpected payload."); +}; + const StatPage = () => { const { datasetId: routeDatasetId } = useParams<{ datasetId: string }>(); const [error, setError] = useState(""); @@ -61,6 +158,12 @@ const StatPage = () => { totalUsers: 0, mostCommentHeavyUser: null, }); + const [appliedFilters, setAppliedFilters] = useState>({}); + const [allRecords, setAllRecords] = useState(null); + const [allRecordsKey, setAllRecordsKey] = useState(""); + const [explorerState, setExplorerState] = useState( + EMPTY_EXPLORER_STATE, + ); const searchInputRef = useRef(null); const beforeDateRef = useRef(null); @@ -104,6 +207,82 @@ const StatPage = () => { }; }; + const getFilterKey = (params: Record) => + JSON.stringify(Object.entries(params).sort(([a], [b]) => a.localeCompare(b))); + + const ensureFilteredRecords = async () => { + if (!datasetId) { + throw new Error("Missing dataset id."); + } + + const authHeaders = getAuthHeaders(); + if (!authHeaders) { + throw new Error("You must be signed in to load corpus records."); + } + + const filterKey = getFilterKey(appliedFilters); + if (allRecords && allRecordsKey === filterKey) { + return allRecords; + } + + const response = await axios.get( + `${API_BASE_URL}/dataset/${datasetId}/all`, + { + params: appliedFilters, + headers: authHeaders, + }, + ); + + const normalizedRecords = normalizeRecordPayload(response.data); + + setAllRecords(normalizedRecords); + setAllRecordsKey(filterKey); + return normalizedRecords; + }; + + const openExplorer = async (spec: CorpusExplorerSpec) => { + setExplorerState({ + open: true, + title: spec.title, + description: spec.description, + emptyMessage: spec.emptyMessage ?? "No matching records found.", + records: [], + loading: true, + error: "", + }); + + try { + const records = await ensureFilteredRecords(); + const context = buildExplorerContext(records); + const matched = records.filter((record) => spec.matcher(record, context)); + matched.sort((a, b) => { + const aValue = String(a.dt ?? a.date ?? a.timestamp ?? ""); + const bValue = String(b.dt ?? b.date ?? b.timestamp ?? ""); + return bValue.localeCompare(aValue); + }); + + setExplorerState({ + open: true, + title: spec.title, + description: spec.description, + emptyMessage: spec.emptyMessage ?? "No matching records found.", + records: matched, + loading: false, + error: "", + }); + } catch (e) { + setExplorerState({ + open: true, + title: spec.title, + description: spec.description, + emptyMessage: spec.emptyMessage ?? "No matching records found.", + records: [], + loading: false, + error: `Failed to load corpus records: ${String(e)}`, + }); + } + }; + const getStats = (params: Record = {}) => { if (!datasetId) { setError("Missing dataset id. Open /dataset//stats."); @@ -118,22 +297,20 @@ const StatPage = () => { setError(""); setLoading(true); + setAppliedFilters(params); + setAllRecords(null); + setAllRecordsKey(""); + setExplorerState((current) => ({ ...current, open: false })); Promise.all([ - axios.get( - `${API_BASE_URL}/dataset/${datasetId}/temporal`, - { - params, - headers: authHeaders, - }, - ), - axios.get( - `${API_BASE_URL}/dataset/${datasetId}/user`, - { - params, - headers: authHeaders, - }, - ), + axios.get(`${API_BASE_URL}/dataset/${datasetId}/temporal`, { + params, + headers: authHeaders, + }), + axios.get(`${API_BASE_URL}/dataset/${datasetId}/user`, { + params, + headers: authHeaders, + }), axios.get( `${API_BASE_URL}/dataset/${datasetId}/linguistic`, { @@ -141,13 +318,10 @@ const StatPage = () => { headers: authHeaders, }, ), - axios.get( - `${API_BASE_URL}/dataset/${datasetId}/emotional`, - { - params, - headers: authHeaders, - }, - ), + axios.get(`${API_BASE_URL}/dataset/${datasetId}/emotional`, { + params, + headers: authHeaders, + }), axios.get( `${API_BASE_URL}/dataset/${datasetId}/interactional`, { @@ -155,20 +329,14 @@ const StatPage = () => { headers: authHeaders, }, ), - axios.get( - `${API_BASE_URL}/dataset/${datasetId}/summary`, - { - params, - headers: authHeaders, - }, - ), - axios.get( - `${API_BASE_URL}/dataset/${datasetId}/cultural`, - { - params, - headers: authHeaders, - }, - ), + axios.get(`${API_BASE_URL}/dataset/${datasetId}/summary`, { + params, + headers: authHeaders, + }), + axios.get(`${API_BASE_URL}/dataset/${datasetId}/cultural`, { + params, + headers: authHeaders, + }), ]) .then( ([ @@ -182,8 +350,7 @@ const StatPage = () => { ]) => { const usersList = userRes.data.users ?? []; const topUsersList = userRes.data.top_users ?? []; - const interactionGraphRaw = - interactionRes.data?.interaction_graph ?? {}; + const interactionGraphRaw = interactionRes.data?.interaction_graph ?? {}; const topPairsRaw = interactionRes.data?.top_interaction_pairs ?? []; const filteredUsers: typeof usersList = []; @@ -194,18 +361,14 @@ const StatPage = () => { const filteredTopUsers: typeof topUsersList = []; for (const user of topUsersList) { - if (isDeletedUser(user.author)) continue; - filteredTopUsers.push(user); + if (isDeletedUser(user.author)) continue; + filteredTopUsers.push(user); } - let mostCommentHeavyUser: UserStatsMeta["mostCommentHeavyUser"] = - null; + let mostCommentHeavyUser: UserStatsMeta["mostCommentHeavyUser"] = null; for (const user of filteredUsers) { const currentShare = user.comment_share ?? 0; - if ( - !mostCommentHeavyUser || - currentShare > mostCommentHeavyUser.commentShare - ) { + if (!mostCommentHeavyUser || currentShare > mostCommentHeavyUser.commentShare) { mostCommentHeavyUser = { author: user.author, commentShare: currentShare, @@ -221,8 +384,7 @@ const StatPage = () => { } } - const filteredInteractionGraph: Record> = - {}; + const filteredInteractionGraph: Record> = {}; for (const [source, targets] of Object.entries(interactionGraphRaw)) { if (isDeletedUser(source)) { continue; @@ -279,7 +441,7 @@ const StatPage = () => { setSummary(filteredSummary || null); }, ) - .catch((e) => setError("Failed to load statistics: " + String(e))) + .catch((e) => setError(`Failed to load statistics: ${String(e)}`)) .finally(() => setLoading(false)); }; @@ -302,6 +464,9 @@ const StatPage = () => { useEffect(() => { setError(""); + setAllRecords(null); + setAllRecordsKey(""); + setExplorerState(EMPTY_EXPLORER_STATE); if (!datasetId) { setError("Missing dataset id. Open /dataset//stats."); return; @@ -398,9 +563,7 @@ const StatPage = () => { @@ -449,9 +608,7 @@ const StatPage = () => {
)} + + setExplorerState((current) => ({ ...current, open: false }))} + title={explorerState.title} + description={explorerState.description} + records={explorerState.records} + loading={explorerState.loading} + error={explorerState.error} + emptyMessage={explorerState.emptyMessage} + />
); }; diff --git a/frontend/src/utils/corpusExplorer.ts b/frontend/src/utils/corpusExplorer.ts new file mode 100644 index 0000000..e1ddb70 --- /dev/null +++ b/frontend/src/utils/corpusExplorer.ts @@ -0,0 +1,405 @@ +import type { CSSProperties } from "react"; + +type EntityRecord = { + text?: string; + [key: string]: unknown; +}; + +type DatasetRecord = { + id?: string | number; + post_id?: string | number | null; + parent_id?: string | number | null; + author?: string | null; + title?: string | null; + content?: string | null; + timestamp?: string | number | null; + date?: string | null; + dt?: string | null; + hour?: number | null; + weekday?: string | null; + reply_to?: string | number | null; + source?: string | null; + topic?: string | null; + topic_confidence?: number | null; + type?: string | null; + ner_entities?: EntityRecord[] | null; + emotion_anger?: number | null; + emotion_disgust?: number | null; + emotion_fear?: number | null; + emotion_joy?: number | null; + emotion_sadness?: number | null; + [key: string]: unknown; +}; + +type CorpusExplorerContext = { + authorByPostId: Map; + authorEventCounts: Map; + authorCommentCounts: Map; +}; + +type CorpusExplorerSpec = { + title: string; + description: string; + emptyMessage?: string; + matcher: (record: DatasetRecord, context: CorpusExplorerContext) => boolean; +}; + +const IN_GROUP_PATTERN = /\b(we|us|our|ourselves)\b/gi; +const OUT_GROUP_PATTERN = /\b(they|them|their|themselves)\b/gi; +const HEDGE_PATTERN = /\b(maybe|perhaps|possibly|probably|likely|seems|seem|i think|i feel|i guess|kind of|sort of|somewhat)\b/i; +const CERTAINTY_PATTERN = /\b(definitely|certainly|clearly|obviously|undeniably|always|never)\b/i; +const DEONTIC_PATTERN = /\b(must|should|need|needs|have to|has to|ought|required|require)\b/i; +const PERMISSION_PATTERN = /\b(can|allowed|okay|ok|permitted)\b/i; +const EMOTION_KEYS = [ + "emotion_anger", + "emotion_disgust", + "emotion_fear", + "emotion_joy", + "emotion_sadness", +] as const; + +const shrinkButtonStyle: CSSProperties = { + padding: "4px 8px", + fontSize: 12, +}; + +const toText = (value: unknown) => { + if (typeof value === "string") { + return value; + } + + if (typeof value === "number" || typeof value === "boolean") { + return String(value); + } + + if (value && typeof value === "object" && "id" in value) { + const id = (value as { id?: unknown }).id; + if (typeof id === "string" || typeof id === "number") { + return String(id); + } + } + + return ""; +}; + +const normalize = (value: unknown) => toText(value).trim().toLowerCase(); + +const getRecordText = (record: DatasetRecord) => + `${record.title ?? ""} ${record.content ?? ""}`.trim(); + +const escapeRegExp = (value: string) => + value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + +const buildPhrasePattern = (phrase: string) => { + const tokens = phrase + .toLowerCase() + .trim() + .split(/\s+/) + .filter(Boolean) + .map(escapeRegExp); + + if (!tokens.length) { + return null; + } + + return new RegExp(`\\b${tokens.join("\\s+")}\\b`, "i"); +}; + +const countMatches = (pattern: RegExp, text: string) => + Array.from(text.matchAll(new RegExp(pattern.source, "gi"))).length; + +const getDateBucket = (record: DatasetRecord) => { + if (typeof record.date === "string" && record.date) { + return record.date.slice(0, 10); + } + + if (typeof record.dt === "string" && record.dt) { + return record.dt.slice(0, 10); + } + + if (typeof record.timestamp === "number") { + return new Date(record.timestamp * 1000).toISOString().slice(0, 10); + } + + if (typeof record.timestamp === "string" && record.timestamp) { + const numeric = Number(record.timestamp); + if (Number.isFinite(numeric)) { + return new Date(numeric * 1000).toISOString().slice(0, 10); + } + } + + return ""; +}; + +const getDominantEmotion = (record: DatasetRecord) => { + let bestKey = ""; + let bestValue = Number.NEGATIVE_INFINITY; + + for (const key of EMOTION_KEYS) { + const value = Number(record[key] ?? Number.NEGATIVE_INFINITY); + if (value > bestValue) { + bestValue = value; + bestKey = key; + } + } + + return bestKey.replace("emotion_", ""); +}; + +const matchesPhrase = (record: DatasetRecord, phrase: string) => { + const pattern = buildPhrasePattern(phrase); + if (!pattern) { + return false; + } + + return pattern.test(getRecordText(record).toLowerCase()); +}; + +const recordIdentityBucket = (record: DatasetRecord) => { + const text = getRecordText(record).toLowerCase(); + const inHits = countMatches(IN_GROUP_PATTERN, text); + const outHits = countMatches(OUT_GROUP_PATTERN, text); + + if (inHits > outHits) { + return "in"; + } + + if (outHits > inHits) { + return "out"; + } + + return "tie"; +}; + +const createAuthorEventCounts = (records: DatasetRecord[]) => { + const counts = new Map(); + for (const record of records) { + const author = toText(record.author).trim(); + if (!author) { + continue; + } + counts.set(author, (counts.get(author) ?? 0) + 1); + } + return counts; +}; + +const createAuthorCommentCounts = (records: DatasetRecord[]) => { + const counts = new Map(); + for (const record of records) { + const author = toText(record.author).trim(); + if (!author || record.type !== "comment") { + continue; + } + counts.set(author, (counts.get(author) ?? 0) + 1); + } + return counts; +}; + +const createAuthorByPostId = (records: DatasetRecord[]) => { + const map = new Map(); + for (const record of records) { + const postId = record.post_id; + const author = toText(record.author).trim(); + if (postId === null || postId === undefined || !author) { + continue; + } + map.set(String(postId), author); + } + return map; +}; + +const buildExplorerContext = (records: DatasetRecord[]): CorpusExplorerContext => ({ + authorByPostId: createAuthorByPostId(records), + authorEventCounts: createAuthorEventCounts(records), + authorCommentCounts: createAuthorCommentCounts(records), +}); + +const buildAllRecordsSpec = (): CorpusExplorerSpec => ({ + title: "Corpus Explorer", + description: "All records in the current filtered dataset.", + emptyMessage: "No records match the current filters.", + matcher: () => true, +}); + +const buildUserSpec = (author: string): CorpusExplorerSpec => ({ + title: `User: ${author}`, + description: `All records authored by ${author}.`, + emptyMessage: `No records found for ${author}.`, + matcher: (record) => normalize(record.author) === normalize(author), +}); + +const buildTopicSpec = (topic: string): CorpusExplorerSpec => ({ + title: `Topic: ${topic}`, + description: `Records assigned to the ${topic} topic bucket.`, + emptyMessage: `No records found in the ${topic} topic bucket.`, + matcher: (record) => normalize(record.topic) === normalize(topic), +}); + +const buildDateBucketSpec = (date: string): CorpusExplorerSpec => ({ + title: `Date Bucket: ${date}`, + description: `Records from the ${date} activity bucket.`, + emptyMessage: `No records found on ${date}.`, + matcher: (record) => getDateBucket(record) === date, +}); + +const buildWordSpec = (word: string): CorpusExplorerSpec => ({ + title: `Word: ${word}`, + description: `Records containing the word ${word}.`, + emptyMessage: `No records mention ${word}.`, + matcher: (record) => matchesPhrase(record, word), +}); + +const buildNgramSpec = (ngram: string): CorpusExplorerSpec => ({ + title: `N-gram: ${ngram}`, + description: `Records containing the phrase ${ngram}.`, + emptyMessage: `No records contain the phrase ${ngram}.`, + matcher: (record) => matchesPhrase(record, ngram), +}); + +const buildEntitySpec = (entity: string): CorpusExplorerSpec => ({ + title: `Entity: ${entity}`, + description: `Records mentioning the ${entity} entity.`, + emptyMessage: `No records found for the ${entity} entity.`, + matcher: (record) => { + const target = normalize(entity); + const entities = Array.isArray(record.ner_entities) ? record.ner_entities : []; + return entities.some((item) => normalize(item?.text) === target) || matchesPhrase(record, entity); + }, +}); + +const buildSourceSpec = (source: string): CorpusExplorerSpec => ({ + title: `Source: ${source}`, + description: `Records from the ${source} source.`, + emptyMessage: `No records found for ${source}.`, + matcher: (record) => normalize(record.source) === normalize(source), +}); + +const buildDominantEmotionSpec = (emotion: string): CorpusExplorerSpec => ({ + title: `Dominant Emotion: ${emotion}`, + description: `Records where ${emotion} is the strongest emotion score.`, + emptyMessage: `No records found with dominant emotion ${emotion}.`, + matcher: (record) => getDominantEmotion(record) === normalize(emotion), +}); + +const buildReplyPairSpec = (source: string, target: string): CorpusExplorerSpec => ({ + title: `Reply Path: ${source} -> ${target}`, + description: `Reply records authored by ${source} in response to ${target}.`, + emptyMessage: `No reply records found for ${source} -> ${target}.`, + matcher: (record, context) => { + if (normalize(record.author) !== normalize(source)) { + return false; + } + + const replyTo = record.reply_to; + if (replyTo === null || replyTo === undefined || replyTo === "") { + return false; + } + + const replyTarget = context.authorByPostId.get(String(replyTo)); + return normalize(replyTarget) === normalize(target); + }, +}); + +const buildOneTimeUsersSpec = (): CorpusExplorerSpec => ({ + title: "One-Time Users", + description: "Records written by authors who appear exactly once in the filtered corpus.", + emptyMessage: "No one-time-user records found.", + matcher: (record, context) => { + const author = toText(record.author).trim(); + return !!author && context.authorEventCounts.get(author) === 1; + }, +}); + +const buildTopCommentersSpec = (topAuthorCount: number): CorpusExplorerSpec => ({ + title: "Top Commenters", + description: `Comment records from the top ${topAuthorCount} commenters in the filtered corpus.`, + emptyMessage: "No top-commenter records found.", + matcher: (record, context) => { + if (record.type !== "comment") { + return false; + } + + const rankedAuthors = Array.from(context.authorCommentCounts.entries()) + .sort((a, b) => b[1] - a[1]) + .slice(0, topAuthorCount) + .map(([author]) => author); + + return rankedAuthors.includes(toText(record.author).trim()); + }, +}); + +const buildSingleCommentAuthorsSpec = (): CorpusExplorerSpec => ({ + title: "Single-Comment Authors", + description: "Comment records from authors who commented exactly once.", + emptyMessage: "No single-comment-author records found.", + matcher: (record, context) => { + const author = toText(record.author).trim(); + return record.type === "comment" && !!author && context.authorCommentCounts.get(author) === 1; + }, +}); + +const buildIdentityBucketSpec = (bucket: "in" | "out" | "tie"): CorpusExplorerSpec => { + const labels = { + in: "In-Group Posts", + out: "Out-Group Posts", + tie: "Balanced Posts", + } as const; + + return { + title: labels[bucket], + description: `Records in the ${labels[bucket].toLowerCase()} cultural bucket.`, + emptyMessage: `No records found for ${labels[bucket].toLowerCase()}.`, + matcher: (record) => recordIdentityBucket(record) === bucket, + }; +}; + +const buildPatternSpec = ( + title: string, + description: string, + pattern: RegExp, +): CorpusExplorerSpec => ({ + title, + description, + emptyMessage: `No records found for ${title.toLowerCase()}.`, + matcher: (record) => pattern.test(getRecordText(record)), +}); + +const buildHedgeSpec = () => + buildPatternSpec("Hedging Words", "Records containing hedging language.", HEDGE_PATTERN); + +const buildCertaintySpec = () => + buildPatternSpec("Certainty Words", "Records containing certainty language.", CERTAINTY_PATTERN); + +const buildDeonticSpec = () => + buildPatternSpec("Need/Should Words", "Records containing deontic language.", DEONTIC_PATTERN); + +const buildPermissionSpec = () => + buildPatternSpec("Permission Words", "Records containing permission language.", PERMISSION_PATTERN); + +const getExplorerButtonStyle = () => shrinkButtonStyle; + +export type { DatasetRecord, CorpusExplorerContext, CorpusExplorerSpec }; +export { + buildAllRecordsSpec, + buildCertaintySpec, + buildDateBucketSpec, + buildDeonticSpec, + buildDominantEmotionSpec, + buildEntitySpec, + buildExplorerContext, + buildHedgeSpec, + buildIdentityBucketSpec, + buildNgramSpec, + buildOneTimeUsersSpec, + buildPermissionSpec, + buildReplyPairSpec, + buildSingleCommentAuthorsSpec, + buildSourceSpec, + buildTopicSpec, + buildTopCommentersSpec, + buildUserSpec, + buildWordSpec, + getDateBucket, + getExplorerButtonStyle, + toText, +}; diff --git a/server/analysis/stat_gen.py b/server/analysis/stat_gen.py index f60d809..d45ab1d 100644 --- a/server/analysis/stat_gen.py +++ b/server/analysis/stat_gen.py @@ -1,4 +1,5 @@ import nltk +import json import pandas as pd from nltk.corpus import stopwords @@ -27,6 +28,8 @@ DOMAIN_STOPWORDS = { "one", } +EXCLUDED_AUTHORS = {"[deleted]", "automoderator"} + nltk.download("stopwords") EXCLUDE_WORDS = set(stopwords.words("english")) | DOMAIN_STOPWORDS @@ -46,6 +49,12 @@ class StatGen: filters = filters or {} filtered_df = df.copy() + if "author" in filtered_df.columns: + normalized_authors = ( + filtered_df["author"].fillna("").astype(str).str.strip().str.lower() + ) + filtered_df = filtered_df[~normalized_authors.isin(EXCLUDED_AUTHORS)] + search_query = filters.get("search_query", None) start_date_filter = filters.get("start_date", None) end_date_filter = filters.get("end_date", None) @@ -75,9 +84,15 @@ class StatGen: return filtered_df + def _json_ready_records(self, df: pd.DataFrame) -> list[dict]: + return json.loads( + df.to_json(orient="records", date_format="iso", date_unit="s") + ) + ## Public Methods def filter_dataset(self, df: pd.DataFrame, filters: dict | None = None) -> list[dict]: - return self._prepare_filtered_df(df, filters).to_dict(orient="records") + filtered_df = self._prepare_filtered_df(df, filters) + return self._json_ready_records(filtered_df) def temporal(self, df: pd.DataFrame, filters: dict | None = None) -> dict: filtered_df = self._prepare_filtered_df(df, filters) diff --git a/server/app.py b/server/app.py index ea59579..aa22a25 100644 --- a/server/app.py +++ b/server/app.py @@ -591,7 +591,8 @@ def get_full_dataset(dataset_id: int): ) dataset_content = dataset_manager.get_dataset_content(dataset_id) - return jsonify(dataset_content.to_dict(orient="records")), 200 + filters = get_request_filters() + return jsonify(stat_gen.filter_dataset(dataset_content, filters)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: -- 2.49.1 From 430793cd097de53794c0d545992cc046184be4dc Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Wed, 1 Apr 2026 00:09:20 +0100 Subject: [PATCH 02/13] feat(frontend): add "show more" functionality to corpus explorer --- frontend/src/components/CorpusExplorer.tsx | 225 ++++++++++++++------- 1 file changed, 151 insertions(+), 74 deletions(-) diff --git a/frontend/src/components/CorpusExplorer.tsx b/frontend/src/components/CorpusExplorer.tsx index e382b51..b80bda8 100644 --- a/frontend/src/components/CorpusExplorer.tsx +++ b/frontend/src/components/CorpusExplorer.tsx @@ -1,9 +1,13 @@ +import { useEffect, useMemo, useState } from "react"; import { Dialog, DialogPanel, DialogTitle } from "@headlessui/react"; import StatsStyling from "../styles/stats_styling"; import type { DatasetRecord } from "../utils/corpusExplorer"; const styles = StatsStyling; +const INITIAL_RECORD_COUNT = 60; +const RECORD_BATCH_SIZE = 60; +const EXCERPT_LENGTH = 320; const cleanText = (value: unknown) => { if (typeof value !== "string") { @@ -79,15 +83,6 @@ const getRecordTitle = (record: DatasetRecord) => { return content.length > 120 ? `${content.slice(0, 117)}...` : content; }; -const getRecordExcerpt = (record: DatasetRecord) => { - const content = cleanText(record.content); - if (!content) { - return "No content available."; - } - - return content.length > 320 ? `${content.slice(0, 317)}...` : content; -}; - const CorpusExplorer = ({ open, onClose, @@ -97,79 +92,161 @@ const CorpusExplorer = ({ loading, error, emptyMessage, -}: CorpusExplorerProps) => ( - -
+}: CorpusExplorerProps) => { + const [visibleCount, setVisibleCount] = useState(INITIAL_RECORD_COUNT); + const [expandedKeys, setExpandedKeys] = useState>({}); -
- -
-
- {title} -

- {description} {loading ? "Loading records..." : `${records.length.toLocaleString()} records.`} -

+ useEffect(() => { + if (open) { + setVisibleCount(INITIAL_RECORD_COUNT); + setExpandedKeys({}); + } + }, [open, title, records.length]); + + const visibleRecords = useMemo( + () => records.slice(0, visibleCount), + [records, visibleCount], + ); + + const hasMoreRecords = visibleCount < records.length; + + return ( + +
+ +
+ +
+
+ {title} +

+ {description} {loading ? "Loading records..." : `${records.length.toLocaleString()} records.`} +

+
+ +
- -
+ {error ?

{error}

: null} - {error ?

{error}

: null} + {!loading && !error && !records.length ? ( +

{emptyMessage}

+ ) : null} - {!loading && !error && !records.length ? ( -

{emptyMessage}

- ) : null} + {loading ?
Preparing corpus slice...
: null} - {loading ? ( -
Preparing corpus slice...
- ) : null} + {!loading && !error && records.length ? ( + <> +
+ {visibleRecords.map((record, index) => { + const recordKey = getRecordKey(record, index); + const titleText = getRecordTitle(record); + const content = cleanText(record.content); + const isExpanded = !!expandedKeys[recordKey]; + const canExpand = content.length > EXCERPT_LENGTH; + const excerpt = + canExpand && !isExpanded + ? `${content.slice(0, EXCERPT_LENGTH - 3)}...` + : content || "No content available."; - {!loading && !error && records.length ? ( -
- {records.map((record, index) => ( -
-
-
- {getRecordTitle(record) ? ( -
{getRecordTitle(record)}
- ) : null} -
- {displayText(record.author, "Unknown author")} • {displayText(record.source, "Unknown source")} • {displayText(record.type, "record")} • {formatRecordDate(record)} + return ( +
+
+
+ {titleText ?
{titleText}
: null} +
+ {displayText(record.author, "Unknown author")} • {displayText(record.source, "Unknown source")} • {displayText(record.type, "record")} • {formatRecordDate(record)} +
+
+
+ {cleanText(record.topic) ? `Topic: ${cleanText(record.topic)}` : ""} +
+
+ +
+ {excerpt} +
+ + {canExpand ? ( +
+ +
+ ) : null}
-
-
- {cleanText(record.topic) ? `Topic: ${cleanText(record.topic)}` : ""} -
-
- -
- {getRecordExcerpt(record)} -
+ ); + })}
- ))} -
- ) : null} - -
-
-); + + {hasMoreRecords ? ( +
+ +
+ ) : null} + + ) : null} + +
+
+ ); +}; export default CorpusExplorer; -- 2.49.1 From 6378015726205b2ff154669b9dc3d88a9f4b1f34 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Wed, 1 Apr 2026 00:22:29 +0100 Subject: [PATCH 03/13] fix(stats): remove duplicated entries in corpus explorer --- frontend/src/pages/Stats.tsx | 42 +++++++++++++++++++++++++++++++++--- server/analysis/stat_gen.py | 29 ++++++++++++++++++++++++- 2 files changed, 67 insertions(+), 4 deletions(-) diff --git a/frontend/src/pages/Stats.tsx b/frontend/src/pages/Stats.tsx index d520ca4..0d4c10e 100644 --- a/frontend/src/pages/Stats.tsx +++ b/frontend/src/pages/Stats.tsx @@ -66,6 +66,38 @@ const EMPTY_EXPLORER_STATE: ExplorerState = { error: "", }; +const getExplorerRecordIdentity = (record: DatasetRecord) => + JSON.stringify({ + post_id: record.post_id ?? null, + parent_id: record.parent_id ?? null, + reply_to: record.reply_to ?? null, + author: record.author ?? null, + type: record.type ?? null, + timestamp: record.timestamp ?? null, + dt: record.dt ?? null, + title: record.title ?? null, + content: record.content ?? null, + source: record.source ?? null, + topic: record.topic ?? null, + }); + +const dedupeExplorerRecords = (records: DatasetRecord[]) => { + const uniqueRecords: DatasetRecord[] = []; + const seen = new Set(); + + for (const record of records) { + const identity = getExplorerRecordIdentity(record); + if (seen.has(identity)) { + continue; + } + + seen.add(identity); + uniqueRecords.push(record); + } + + return uniqueRecords; +}; + const normalizeRecordPayload = (payload: unknown): DatasetRecord[] => { if (typeof payload === "string") { try { @@ -233,7 +265,9 @@ const StatPage = () => { }, ); - const normalizedRecords = normalizeRecordPayload(response.data); + const normalizedRecords = dedupeExplorerRecords( + normalizeRecordPayload(response.data), + ); setAllRecords(normalizedRecords); setAllRecordsKey(filterKey); @@ -254,7 +288,9 @@ const StatPage = () => { try { const records = await ensureFilteredRecords(); const context = buildExplorerContext(records); - const matched = records.filter((record) => spec.matcher(record, context)); + const matched = dedupeExplorerRecords( + records.filter((record) => spec.matcher(record, context)), + ); matched.sort((a, b) => { const aValue = String(a.dt ?? a.date ?? a.timestamp ?? ""); const bValue = String(b.dt ?? b.date ?? b.timestamp ?? ""); @@ -662,7 +698,7 @@ const StatPage = () => { )} {activeView === "interactional" && interactionData && ( - + )} {activeView === "interactional" && !interactionData && ( diff --git a/server/analysis/stat_gen.py b/server/analysis/stat_gen.py index d45ab1d..8eecb7f 100644 --- a/server/analysis/stat_gen.py +++ b/server/analysis/stat_gen.py @@ -89,10 +89,37 @@ class StatGen: df.to_json(orient="records", date_format="iso", date_unit="s") ) + def _dedupe_records(self, records: list[dict]) -> list[dict]: + unique_records = [] + seen = set() + + for record in records: + key_data = { + "post_id": record.get("post_id"), + "parent_id": record.get("parent_id"), + "reply_to": record.get("reply_to"), + "author": record.get("author"), + "type": record.get("type"), + "timestamp": record.get("timestamp"), + "dt": record.get("dt"), + "title": record.get("title"), + "content": record.get("content"), + "source": record.get("source"), + "topic": record.get("topic"), + } + key = json.dumps(key_data, sort_keys=True, separators=(",", ":")) + if key in seen: + continue + + seen.add(key) + unique_records.append(record) + + return unique_records + ## Public Methods def filter_dataset(self, df: pd.DataFrame, filters: dict | None = None) -> list[dict]: filtered_df = self._prepare_filtered_df(df, filters) - return self._json_ready_records(filtered_df) + return self._dedupe_records(self._json_ready_records(filtered_df)) def temporal(self, df: pd.DataFrame, filters: dict | None = None) -> dict: filtered_df = self._prepare_filtered_df(df, filters) -- 2.49.1 From cd6030a760f5af5f850e5867b5a73edc6657b7b5 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Wed, 1 Apr 2026 08:44:47 +0100 Subject: [PATCH 04/13] fix(ngrams): remove stop words from ngrams --- server/analysis/linguistic.py | 76 ++++++++++++++++++++++++++--------- server/app.py | 14 +++---- 2 files changed, 64 insertions(+), 26 deletions(-) diff --git a/server/analysis/linguistic.py b/server/analysis/linguistic.py index a242739..1e91728 100644 --- a/server/analysis/linguistic.py +++ b/server/analysis/linguistic.py @@ -1,17 +1,30 @@ -import pandas as pd import re - from collections import Counter -from itertools import islice +from dataclasses import dataclass + +import pandas as pd + + +@dataclass(frozen=True) +class NGramConfig: + min_token_length: int = 3 + min_count: int = 2 + max_results: int = 100 class LinguisticAnalysis: def __init__(self, word_exclusions: set[str]): self.word_exclusions = word_exclusions + self.ngram_config = NGramConfig() - def _tokenize(self, text: str): - tokens = re.findall(r"\b[a-z]{3,}\b", text) - return [t for t in tokens if t not in self.word_exclusions] + def _tokenize(self, text: str, *, include_exclusions: bool = False) -> list[str]: + pattern = rf"\b[a-z]{{{self.ngram_config.min_token_length},}}\b" + tokens = re.findall(pattern, text) + + if include_exclusions: + return tokens + + return [token for token in tokens if token not in self.word_exclusions] def _clean_text(self, text: str) -> str: text = re.sub(r"http\S+", "", text) # remove URLs @@ -21,13 +34,24 @@ class LinguisticAnalysis: text = re.sub(r"\S+\.(jpg|jpeg|png|webp|gif)", "", text) return text + def _content_texts(self, df: pd.DataFrame) -> pd.Series: + return df["content"].dropna().astype(str).apply(self._clean_text).str.lower() + + def _valid_ngram(self, tokens: tuple[str, ...]) -> bool: + if any(token in self.word_exclusions for token in tokens): + return False + + if len(set(tokens)) == 1: + return False + + return True + def word_frequencies(self, df: pd.DataFrame, limit: int = 100) -> list[dict]: - texts = df["content"].dropna().astype(str).str.lower() + texts = self._content_texts(df) words = [] for text in texts: - tokens = re.findall(r"\b[a-z]{3,}\b", text) - words.extend(w for w in tokens if w not in self.word_exclusions) + words.extend(self._tokenize(text)) counts = Counter(words) @@ -40,25 +64,39 @@ class LinguisticAnalysis: return word_frequencies.to_dict(orient="records") - def ngrams(self, df: pd.DataFrame, n=2, limit=100): - texts = df["content"].dropna().astype(str).apply(self._clean_text).str.lower() + def ngrams(self, df: pd.DataFrame, n: int = 2, limit: int | None = None) -> list[dict]: + if n < 2: + raise ValueError("n must be at least 2") + + texts = self._content_texts(df) all_ngrams = [] + result_limit = limit or self.ngram_config.max_results for text in texts: - tokens = re.findall(r"\b[a-z]{3,}\b", text) + tokens = self._tokenize(text, include_exclusions=True) - # stop word removal causes strange behaviors in ngrams - # tokens = [w for w in tokens if w not in self.word_exclusions] + if len(tokens) < n: + continue - ngrams = zip(*(islice(tokens, i, None) for i in range(n))) - all_ngrams.extend([" ".join(ng) for ng in ngrams]) + for index in range(len(tokens) - n + 1): + ngram_tokens = tuple(tokens[index : index + n]) + if self._valid_ngram(ngram_tokens): + all_ngrams.append(" ".join(ngram_tokens)) counts = Counter(all_ngrams) + filtered_counts = [ + (ngram, count) + for ngram, count in counts.items() + if count >= self.ngram_config.min_count + ] + + if not filtered_counts: + return [] return ( - pd.DataFrame(counts.items(), columns=["ngram", "count"]) - .sort_values("count", ascending=False) - .head(limit) + pd.DataFrame(filtered_counts, columns=["ngram", "count"]) + .sort_values(["count", "ngram"], ascending=[False, True]) + .head(result_limit) .to_dict(orient="records") ) diff --git a/server/app.py b/server/app.py index aa22a25..7f7c8fe 100644 --- a/server/app.py +++ b/server/app.py @@ -424,7 +424,7 @@ def get_linguistic_analysis(dataset_id): dataset_content = dataset_manager.get_dataset_content(dataset_id) filters = get_request_filters() - return jsonify(stat_gen.linguistic(dataset_content, filters)), 200 + return jsonify(stat_gen.linguistic(dataset_content, filters, dataset_id=dataset_id)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: @@ -448,7 +448,7 @@ def get_emotional_analysis(dataset_id): dataset_content = dataset_manager.get_dataset_content(dataset_id) filters = get_request_filters() - return jsonify(stat_gen.emotional(dataset_content, filters)), 200 + return jsonify(stat_gen.emotional(dataset_content, filters, dataset_id=dataset_id)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: @@ -472,7 +472,7 @@ def get_summary(dataset_id): dataset_content = dataset_manager.get_dataset_content(dataset_id) filters = get_request_filters() - return jsonify(stat_gen.summary(dataset_content, filters)), 200 + return jsonify(stat_gen.summary(dataset_content, filters, dataset_id=dataset_id)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: @@ -496,7 +496,7 @@ def get_temporal_analysis(dataset_id): dataset_content = dataset_manager.get_dataset_content(dataset_id) filters = get_request_filters() - return jsonify(stat_gen.temporal(dataset_content, filters)), 200 + return jsonify(stat_gen.temporal(dataset_content, filters, dataset_id=dataset_id)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: @@ -520,7 +520,7 @@ def get_user_analysis(dataset_id): dataset_content = dataset_manager.get_dataset_content(dataset_id) filters = get_request_filters() - return jsonify(stat_gen.user(dataset_content, filters)), 200 + return jsonify(stat_gen.user(dataset_content, filters, dataset_id=dataset_id)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: @@ -544,7 +544,7 @@ def get_cultural_analysis(dataset_id): dataset_content = dataset_manager.get_dataset_content(dataset_id) filters = get_request_filters() - return jsonify(stat_gen.cultural(dataset_content, filters)), 200 + return jsonify(stat_gen.cultural(dataset_content, filters, dataset_id=dataset_id)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: @@ -568,7 +568,7 @@ def get_interaction_analysis(dataset_id): dataset_content = dataset_manager.get_dataset_content(dataset_id) filters = get_request_filters() - return jsonify(stat_gen.interactional(dataset_content, filters)), 200 + return jsonify(stat_gen.interactional(dataset_content, filters, dataset_id=dataset_id)), 200 except NotAuthorisedException: return jsonify({"error": "User is not authorised to access this content"}), 403 except NonExistentDatasetException: -- 2.49.1 From 1482e960512bbb028cba217a8c2f72db6153a332 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Wed, 1 Apr 2026 09:06:07 +0100 Subject: [PATCH 05/13] feat(datasets): implement deduplication of dataset records in get_dataset_content --- frontend/src/pages/Stats.tsx | 111 +++++++++++++++++++++++------------ server/analysis/stat_gen.py | 78 +++++++++++++----------- server/core/datasets.py | 39 +++++++++++- 3 files changed, 156 insertions(+), 72 deletions(-) diff --git a/frontend/src/pages/Stats.tsx b/frontend/src/pages/Stats.tsx index 0d4c10e..0651a30 100644 --- a/frontend/src/pages/Stats.tsx +++ b/frontend/src/pages/Stats.tsx @@ -66,45 +66,88 @@ const EMPTY_EXPLORER_STATE: ExplorerState = { error: "", }; -const getExplorerRecordIdentity = (record: DatasetRecord) => - JSON.stringify({ - post_id: record.post_id ?? null, - parent_id: record.parent_id ?? null, - reply_to: record.reply_to ?? null, - author: record.author ?? null, - type: record.type ?? null, - timestamp: record.timestamp ?? null, - dt: record.dt ?? null, - title: record.title ?? null, - content: record.content ?? null, - source: record.source ?? null, - topic: record.topic ?? null, - }); +const parseJsonLikePayload = (value: string): unknown => { + const normalized = value + .replace(/\uFEFF/g, "") + .replace(/,\s*([}\]])/g, "$1") + .replace(/(:\s*)(NaN|Infinity|-Infinity)\b/g, "$1null") + .replace(/(\[\s*)(NaN|Infinity|-Infinity)\b/g, "$1null") + .replace(/(,\s*)(NaN|Infinity|-Infinity)\b/g, "$1null") + .replace(/(:\s*)None\b/g, "$1null") + .replace(/(:\s*)True\b/g, "$1true") + .replace(/(:\s*)False\b/g, "$1false") + .replace(/(\[\s*)None\b/g, "$1null") + .replace(/(\[\s*)True\b/g, "$1true") + .replace(/(\[\s*)False\b/g, "$1false") + .replace(/(,\s*)None\b/g, "$1null") + .replace(/(,\s*)True\b/g, "$1true") + .replace(/(,\s*)False\b/g, "$1false"); -const dedupeExplorerRecords = (records: DatasetRecord[]) => { - const uniqueRecords: DatasetRecord[] = []; - const seen = new Set(); + return JSON.parse(normalized); +}; - for (const record of records) { - const identity = getExplorerRecordIdentity(record); - if (seen.has(identity)) { - continue; - } - - seen.add(identity); - uniqueRecords.push(record); +const parseRecordStringPayload = (payload: string): DatasetRecord[] | null => { + const trimmed = payload.trim(); + if (!trimmed) { + return []; } - return uniqueRecords; + try { + return normalizeRecordPayload(parseJsonLikePayload(trimmed)); + } catch { + // Continue with additional fallback formats below. + } + + const ndjsonLines = trimmed + .split(/\r?\n/) + .map((line) => line.trim()) + .filter(Boolean); + if (ndjsonLines.length > 0) { + try { + return ndjsonLines.map((line) => parseJsonLikePayload(line)) as DatasetRecord[]; + } catch { + // Continue with wrapped JSON extraction. + } + } + + const bracketStart = trimmed.indexOf("["); + const bracketEnd = trimmed.lastIndexOf("]"); + if (bracketStart !== -1 && bracketEnd > bracketStart) { + const candidate = trimmed.slice(bracketStart, bracketEnd + 1); + try { + return normalizeRecordPayload(parseJsonLikePayload(candidate)); + } catch { + // Continue with object extraction. + } + } + + const braceStart = trimmed.indexOf("{"); + const braceEnd = trimmed.lastIndexOf("}"); + if (braceStart !== -1 && braceEnd > braceStart) { + const candidate = trimmed.slice(braceStart, braceEnd + 1); + try { + return normalizeRecordPayload(parseJsonLikePayload(candidate)); + } catch { + return null; + } + } + + return null; }; const normalizeRecordPayload = (payload: unknown): DatasetRecord[] => { if (typeof payload === "string") { - try { - return normalizeRecordPayload(JSON.parse(payload)); - } catch { - throw new Error("Corpus endpoint returned a non-JSON string payload."); + const parsed = parseRecordStringPayload(payload); + if (parsed) { + return parsed; } + + const preview = payload.trim().slice(0, 120).replace(/\s+/g, " "); + throw new Error( + `Corpus endpoint returned a non-JSON string payload.${ + preview ? ` Response preview: ${preview}` : "" + }`, + ); } if ( @@ -265,9 +308,7 @@ const StatPage = () => { }, ); - const normalizedRecords = dedupeExplorerRecords( - normalizeRecordPayload(response.data), - ); + const normalizedRecords = normalizeRecordPayload(response.data); setAllRecords(normalizedRecords); setAllRecordsKey(filterKey); @@ -288,9 +329,7 @@ const StatPage = () => { try { const records = await ensureFilteredRecords(); const context = buildExplorerContext(records); - const matched = dedupeExplorerRecords( - records.filter((record) => spec.matcher(record, context)), - ); + const matched = records.filter((record) => spec.matcher(record, context)); matched.sort((a, b) => { const aValue = String(a.dt ?? a.date ?? a.timestamp ?? ""); const bValue = String(b.dt ?? b.date ?? b.timestamp ?? ""); diff --git a/server/analysis/stat_gen.py b/server/analysis/stat_gen.py index 8eecb7f..7371ffe 100644 --- a/server/analysis/stat_gen.py +++ b/server/analysis/stat_gen.py @@ -89,39 +89,17 @@ class StatGen: df.to_json(orient="records", date_format="iso", date_unit="s") ) - def _dedupe_records(self, records: list[dict]) -> list[dict]: - unique_records = [] - seen = set() - - for record in records: - key_data = { - "post_id": record.get("post_id"), - "parent_id": record.get("parent_id"), - "reply_to": record.get("reply_to"), - "author": record.get("author"), - "type": record.get("type"), - "timestamp": record.get("timestamp"), - "dt": record.get("dt"), - "title": record.get("title"), - "content": record.get("content"), - "source": record.get("source"), - "topic": record.get("topic"), - } - key = json.dumps(key_data, sort_keys=True, separators=(",", ":")) - if key in seen: - continue - - seen.add(key) - unique_records.append(record) - - return unique_records - ## Public Methods def filter_dataset(self, df: pd.DataFrame, filters: dict | None = None) -> list[dict]: filtered_df = self._prepare_filtered_df(df, filters) - return self._dedupe_records(self._json_ready_records(filtered_df)) + return self._json_ready_records(filtered_df) - def temporal(self, df: pd.DataFrame, filters: dict | None = None) -> dict: + def temporal( + self, + df: pd.DataFrame, + filters: dict | None = None, + dataset_id: int | None = None, + ) -> dict: filtered_df = self._prepare_filtered_df(df, filters) return { @@ -129,7 +107,12 @@ class StatGen: "weekday_hour_heatmap": self.temporal_analysis.heatmap(filtered_df), } - def linguistic(self, df: pd.DataFrame, filters: dict | None = None) -> dict: + def linguistic( + self, + df: pd.DataFrame, + filters: dict | None = None, + dataset_id: int | None = None, + ) -> dict: filtered_df = self._prepare_filtered_df(df, filters) return { @@ -139,7 +122,12 @@ class StatGen: "lexical_diversity": self.linguistic_analysis.lexical_diversity(filtered_df) } - def emotional(self, df: pd.DataFrame, filters: dict | None = None) -> dict: + def emotional( + self, + df: pd.DataFrame, + filters: dict | None = None, + dataset_id: int | None = None, + ) -> dict: filtered_df = self._prepare_filtered_df(df, filters) return { @@ -149,7 +137,12 @@ class StatGen: "emotion_by_source": self.emotional_analysis.emotion_by_source(filtered_df) } - def user(self, df: pd.DataFrame, filters: dict | None = None) -> dict: + def user( + self, + df: pd.DataFrame, + filters: dict | None = None, + dataset_id: int | None = None, + ) -> dict: filtered_df = self._prepare_filtered_df(df, filters) return { @@ -157,7 +150,12 @@ class StatGen: "users": self.user_analysis.per_user_analysis(filtered_df) } - def interactional(self, df: pd.DataFrame, filters: dict | None = None) -> dict: + def interactional( + self, + df: pd.DataFrame, + filters: dict | None = None, + dataset_id: int | None = None, + ) -> dict: filtered_df = self._prepare_filtered_df(df, filters) return { @@ -166,7 +164,12 @@ class StatGen: "conversation_concentration": self.interaction_analysis.conversation_concentration(filtered_df) } - def cultural(self, df: pd.DataFrame, filters: dict | None = None) -> dict: + def cultural( + self, + df: pd.DataFrame, + filters: dict | None = None, + dataset_id: int | None = None, + ) -> dict: filtered_df = self._prepare_filtered_df(df, filters) return { @@ -175,7 +178,12 @@ class StatGen: "avg_emotion_per_entity": self.cultural_analysis.get_avg_emotions_per_entity(filtered_df) } - def summary(self, df: pd.DataFrame, filters: dict | None = None) -> dict: + def summary( + self, + df: pd.DataFrame, + filters: dict | None = None, + dataset_id: int | None = None, + ) -> dict: filtered_df = self._prepare_filtered_df(df, filters) return self.summary_analysis.summary(filtered_df) diff --git a/server/core/datasets.py b/server/core/datasets.py index c2f2214..6e85eac 100644 --- a/server/core/datasets.py +++ b/server/core/datasets.py @@ -26,7 +26,34 @@ class DatasetManager: def get_dataset_content(self, dataset_id: int) -> pd.DataFrame: query = "SELECT * FROM events WHERE dataset_id = %s" result = self.db.execute(query, (dataset_id,), fetch=True) - return pd.DataFrame(result) + df = pd.DataFrame(result) + if df.empty: + return df + + dedupe_columns = [ + column + for column in [ + "post_id", + "parent_id", + "reply_to", + "author", + "type", + "timestamp", + "dt", + "title", + "content", + "source", + "topic", + ] + if column in df.columns + ] + + if dedupe_columns: + df = df.drop_duplicates(subset=dedupe_columns, keep="first") + else: + df = df.drop_duplicates(keep="first") + + return df.reset_index(drop=True) def get_dataset_info(self, dataset_id: int) -> dict: query = "SELECT * FROM datasets WHERE id = %s" @@ -52,6 +79,16 @@ class DatasetManager: if event_data.empty: return + dedupe_columns = [ + column for column in ["id", "type", "source"] if column in event_data.columns + ] + if dedupe_columns: + event_data = event_data.drop_duplicates(subset=dedupe_columns, keep="first") + else: + event_data = event_data.drop_duplicates(keep="first") + + self.delete_dataset_content(dataset_id) + query = """ INSERT INTO events ( dataset_id, -- 2.49.1 From 37d08c63b835892dc28c2066131e80fd2bf7cadc Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Wed, 1 Apr 2026 09:50:53 +0100 Subject: [PATCH 06/13] chore: rename auto-scraper to auto-fetcher Improves the perception of ethics --- frontend/src/App.tsx | 4 +-- .../pages/{AutoScrape.tsx => AutoFetch.tsx} | 28 +++++++++---------- frontend/src/pages/Datasets.tsx | 4 +-- frontend/src/utils/documentTitle.ts | 2 +- server/app.py | 4 +-- server/connectors/boards_api.py | 2 +- 6 files changed, 22 insertions(+), 22 deletions(-) rename frontend/src/pages/{AutoScrape.tsx => AutoFetch.tsx} (95%) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 1b10f61..3b80cf9 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -5,7 +5,7 @@ import DatasetsPage from "./pages/Datasets"; import DatasetStatusPage from "./pages/DatasetStatus"; import LoginPage from "./pages/Login"; import UploadPage from "./pages/Upload"; -import AutoScrapePage from "./pages/AutoScrape"; +import AutoFetchPage from "./pages/AutoFetch"; import StatPage from "./pages/Stats"; import { getDocumentTitle } from "./utils/documentTitle"; import DatasetEditPage from "./pages/DatasetEdit"; @@ -23,7 +23,7 @@ function App() { } /> } /> } /> - } /> + } /> } /> } /> } /> diff --git a/frontend/src/pages/AutoScrape.tsx b/frontend/src/pages/AutoFetch.tsx similarity index 95% rename from frontend/src/pages/AutoScrape.tsx rename to frontend/src/pages/AutoFetch.tsx index 9697fec..08a6b7e 100644 --- a/frontend/src/pages/AutoScrape.tsx +++ b/frontend/src/pages/AutoFetch.tsx @@ -37,7 +37,7 @@ const supportsSearch = (source?: SourceOption): boolean => const supportsCategories = (source?: SourceOption): boolean => Boolean(source?.categories_enabled ?? source?.categoriesEnabled); -const AutoScrapePage = () => { +const AutoFetchPage = () => { const navigate = useNavigate(); const [datasetName, setDatasetName] = useState(""); const [sourceOptions, setSourceOptions] = useState([]); @@ -106,11 +106,11 @@ const AutoScrapePage = () => { ); }; - const autoScrape = async () => { + const autoFetch = async () => { const token = localStorage.getItem("access_token"); if (!token) { setHasError(true); - setReturnMessage("You must be signed in to auto scrape a dataset."); + setReturnMessage("You must be signed in to auto fetch a dataset."); return; } @@ -243,7 +243,7 @@ const AutoScrapePage = () => { setReturnMessage(""); const response = await axios.post( - `${API_BASE_URL}/datasets/scrape`, + `${API_BASE_URL}/datasets/fetch`, requestBody, { headers: { @@ -255,7 +255,7 @@ const AutoScrapePage = () => { const datasetId = Number(response.data.dataset_id); setReturnMessage( - `Auto scrape queued successfully (dataset #${datasetId}). Redirecting to processing status...`, + `Auto fetch queued successfully (dataset #${datasetId}). Redirecting to processing status...`, ); setTimeout(() => { @@ -267,11 +267,11 @@ const AutoScrapePage = () => { const message = String( requestError.response?.data?.error || requestError.message || - "Auto scrape failed.", + "Auto fetch failed.", ); - setReturnMessage(`Auto scrape failed: ${message}`); + setReturnMessage(`Auto fetch failed: ${message}`); } else { - setReturnMessage("Auto scrape failed due to an unexpected error."); + setReturnMessage("Auto fetch failed due to an unexpected error."); } } finally { setIsSubmitting(false); @@ -283,9 +283,9 @@ const AutoScrapePage = () => {
-

Auto Scrape Dataset

+

Auto Fetch Dataset

- Select sources and scrape settings, then queue processing + Select sources and fetch settings, then queue processing automatically.

{ color: "#9a6700", }} > - Warning: Scraping more than 250 posts from any single site can + Warning: Fetching more than 250 posts from any single site can take hours due to rate limits.

@@ -305,10 +305,10 @@ const AutoScrapePage = () => { ...styles.buttonPrimary, opacity: isSubmitting || isLoadingSources ? 0.75 : 1, }} - onClick={autoScrape} + onClick={autoFetch} disabled={isSubmitting || isLoadingSources} > - {isSubmitting ? "Queueing..." : "Auto Scrape and Analyze"} + {isSubmitting ? "Queueing..." : "Auto Fetch and Analyze"}
@@ -527,4 +527,4 @@ const AutoScrapePage = () => { ); }; -export default AutoScrapePage; +export default AutoFetchPage; diff --git a/frontend/src/pages/Datasets.tsx b/frontend/src/pages/Datasets.tsx index 90ad7d4..d878d7f 100644 --- a/frontend/src/pages/Datasets.tsx +++ b/frontend/src/pages/Datasets.tsx @@ -108,9 +108,9 @@ const DatasetsPage = () => {
diff --git a/frontend/src/utils/documentTitle.ts b/frontend/src/utils/documentTitle.ts index 7452481..3bbc3a2 100644 --- a/frontend/src/utils/documentTitle.ts +++ b/frontend/src/utils/documentTitle.ts @@ -3,7 +3,7 @@ const DEFAULT_TITLE = "Ethnograph View"; const STATIC_TITLES: Record = { "/login": "Sign In", "/upload": "Upload Dataset", - "/auto-scrape": "Auto Scrape Dataset", + "/auto-fetch": "Auto Fetch Dataset", "/datasets": "My Datasets", }; diff --git a/server/app.py b/server/app.py index 7f7c8fe..5af0f34 100644 --- a/server/app.py +++ b/server/app.py @@ -152,9 +152,9 @@ def get_dataset_sources(): return jsonify(list_metadata) -@app.route("/datasets/scrape", methods=["POST"]) +@app.route("/datasets/fetch", methods=["POST"]) @jwt_required() -def scrape_data(): +def fetch_data(): data = request.get_json() connector_metadata = get_connector_metadata() diff --git a/server/connectors/boards_api.py b/server/connectors/boards_api.py index f5c04e6..507e9a9 100644 --- a/server/connectors/boards_api.py +++ b/server/connectors/boards_api.py @@ -11,7 +11,7 @@ from server.connectors.base import BaseConnector logger = logging.getLogger(__name__) -HEADERS = {"User-Agent": "Mozilla/5.0 (compatible; ForumScraper/1.0)"} +HEADERS = {"User-Agent": "Mozilla/5.0 (compatible; ForumFetcher/1.0)"} class BoardsAPI(BaseConnector): -- 2.49.1 From afae7f42a158cdb6dd6f27a9a6a92a2c6315e3be Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Sat, 11 Apr 2026 15:03:24 +0100 Subject: [PATCH 07/13] docs(report): add data pipeline diagram and update references for embedding models --- report/img/pipeline.png | Bin 0 -> 26117 bytes report/main.tex | 25 +++++++++++++++++++++++++ report/references.bib | 16 +++++++++++++++- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 report/img/pipeline.png diff --git a/report/img/pipeline.png b/report/img/pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..c98fe6a29be694b5e736943669ce17234194a17b GIT binary patch literal 26117 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 IIVCg!06@p%6#xJL literal 0 HcmV?d00001 diff --git a/report/main.tex b/report/main.tex index e3847d3..944319f 100644 --- a/report/main.tex +++ b/report/main.tex @@ -461,6 +461,13 @@ As this project is focused on the collection and analysis of online community da A unified data model is used to represent all incoming data, regardless of its original source or structure. This ensures that the same pipeline works across YouTube, Reddit and boards.ie data, and can be easily extended to new sources in the future. +\begin{figure} + \centering + \includegraphics[width=1.0\textwidth]{img/pipeline.png} + \caption{Data Pipeline Diagram} + \label{fig:pipeline} +\end{figure} + \subsubsection{Data Ingestion} The system will support two methods of data ingestion: \begin{itemize} @@ -952,6 +959,24 @@ A middle ground was found with the "Emotion English DistilRoBERTa-base" model fr As the project progressed and more posts were classified, the "surprise" and "neutral" emotions were found to be dominating the dataset, which made it difficult to analyse the other emotions. This could possible be because the model is not fine-tuned for internet slang, and usage of exclamation marks and emojis, which are common in social media posts, may be classified as "surprise" or "neutral" rather than the intended emotion. Therefore, the "surprise" and "neutral" emotion classes were removed from the dataset, and the confidence numbers were re-normalised to the remaining 5 emotions. +\subsubsection{Topic Classification} +For topic classification, a zero-shot classification approach was used, which allows for classification of text into arbitrary topic classes without needing to fine-tune a model for each specific set of topics. Initially, attempts were made to automatically generate topic classes based on the most common words in the dataset using TF-IDF, but this led to generic and strange classes that weren't useful for analysis. Therefore, it was decided that a topic list would be provided manually, either by the user or using a generic list of broad common topics. + +Initially, the "all-mpnet-base-v2" \cite{all_mpnet_base_v2} was used as the base model for the zero-shot classification, which is a general-purpose sentence embedding model. While this worked well and produced good results, it was slow to run interference on large datasets, and would often take hours to classify a dataset of over 60,000 posts and comments. + +The choice between this model and a weaker model that was faster to run inference on was a difficult one, as the stronger model produced better results, but the performance was a significant issue. + +After testing multiple models, the "MiniLM-L6-v2 " \cite{minilm_l6_v2} was chosen as the base model for zero-shot classification, which is a smaller and faster sentence embedding model. While it may not produce quite as good results as the larger model, it still produces good results and is much faster to run inference on, which makes it more practical for use in this project. + +To produce the results, the topic list is embedded and cached using the sentence embedding model, and then each post is embedded and compared to the topic embeddings using cosine similarity to produce a relevance score for each topic. The topic with the highest relevance score is then assigned to the post as its topic classification, along with the model confidence score for that classification to allow end-users to see how confident the model is in that classification. + +\subsubsection{Entity Recognition} + + + +\subsubsection{Optimization} + + \subsection{Ethnographic Statistics} This section will discuss the implementation of the various ethnographic statistics that are available through the API endpoints, such as temporal analysis, linguistic analysis, emotional analysis, user analysis, interactional analysis, and cultural analysis. Each of these are available through the API and visualised in the frontend. diff --git a/report/references.bib b/report/references.bib index 519d062..11ebddb 100644 --- a/report/references.bib +++ b/report/references.bib @@ -13,9 +13,23 @@ howpublished = {\url{https://huggingface.co/j-hartmann/emotion-english-distilroberta-base/}}, } +@misc{all_mpnet_base_v2, + author={Microsoft Research}, + title={All-MPNet-Base-V2}, + year={2021}, + howpublished = {\url{https://huggingface.co/sentence-transformers/all-mpnet-base-v2}}, +} + +@misc{minilm_l6_v2, + author={Microsoft Research}, + title={MiniLM-L6-V2}, + year={2021}, + howpublished = {\url{https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2}}, +} + @inproceedings{demszky2020goemotions, author = {Demszky, Dorottya and Movshovitz-Attias, Dana and Ko, Jeongwoo and Cowen, Alan and Nemade, Gaurav and Ravi, Sujith}, booktitle = {58th Annual Meeting of the Association for Computational Linguistics (ACL)}, title = {{GoEmotions: A Dataset of Fine-Grained Emotions}}, year = {2020} -} \ No newline at end of file +} -- 2.49.1 From 68342606e3bab105d45a4551d4782b86f467176b Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Sat, 11 Apr 2026 15:24:57 +0100 Subject: [PATCH 08/13] docs(report): add NLP backoff diagram and update references for NER model --- report/img/nlp_backoff.png | Bin 0 -> 146101 bytes report/main.tex | 60 ++++++++++++++++++++++--------------- report/references.bib | 7 +++++ 3 files changed, 43 insertions(+), 24 deletions(-) create mode 100644 report/img/nlp_backoff.png diff --git a/report/img/nlp_backoff.png b/report/img/nlp_backoff.png new file mode 100644 index 0000000000000000000000000000000000000000..c27c29f9593e6304f4de9b8ace15ce724adaf594 GIT binary patch literal 146101 zcmc$_WmsLkvp0-8#oe9a?z(Yzr?|U&ad#1PzekSN#0sa zOj$-uj8xgh(Zbr!91Ki4DpdiH-~&RW=r0 zbReFgJ=hipt@3~_GPr`CGzQt-o*}xE8C(5}yYr`$kt|e^^v}D#DUN5)5BqBY6TF^h zIe1_PpZv->aOR;%m6Dlb;BPIds7h<4C&50j+^a#J`332ZL`5UO)*>|rFxS+8i!U2^ zDBHZ$zjb3X0;QS2z@mbAKGEXrh(2S0c~ywejlu@fhIKqt`jw;CglS8`5QVl#MzL$O zXhh9w+;8VA=p*55OMxZMKltfTgW-Qpw8VmA1AZWqM9iiH)IpgDM}7u@Ea1otpz4qt zf=p*pA5X4p+}PeqGK30-_bua%G#Em{2uaiATpwItC*7XUlhZ43iTm+2Zy0o>W7#ae zHcRoc_kGbO+HOw1j+BmU1Q&6xbDA=U%Fu~U^hy=9p-6N!o&dwxmI1A4Z=jM;?7)VK z+QB)8Q*x90{VbssBP?nNdJv=k@zB8&c|%%_HVkPRVHZDa@dGKrmr-nR7wJ;z;kziw zm&ZIT-b=z%p^_Y`ZRA7K_%I#kC{#7F545N>;v$vc&Y=P{Ty{UH8(CrqSnVj(e$blM z1!_|#Lp@bo*MX39l*bZZ&IBHuPL}EzSeZ@W3`ZuT5mj~(d?`0k9#KqtAH~rXpKIf# zb1{VoW0Wyb%c6;BVkj@`=!h3n_MV2y&IV44T2;huTe@kvwTH7r32B%kiMpCeNfZ@R zg$&5Y6Qb1~qO>fo#0u44H=jg!HiN->AP}@?dyx{6e-L#lbYA3rqk+2!LNbFubHX(V zKbIyvN$Rm>poQudql5q@Jw3zvO5}rq@+9kI6$Sdrt3QyMmMN7dLlTQ+!}f_VJ=fr> zC&zjvf)R^KKBFYu*CH4pwbs%-y$K4B`5W^j!jqU__EUU6=ui70Vgkk*iYwkQfb2xF zhKLfOC9Iv}%yq^}IE3TdX9}R%0^gzo#yGjQwMcV~j1K1`9>F5-(!3l$Z)z&fV%-gO z0{PSjGg`o%dOmIP5U%0GpCIU*CH@+ztd+EWV+^jzok}DchzeF6RDP!ADm5wpkhn+reAc#IZav%kc zaHuXjCwm=Cxmx(!CuFW{pUJ zhhGC`CS1-;&UnrkbwOUSOEP}aCp1aYkCeX2+#i#F(CntjN)t%?N=wP4ORpC-n{j@J zU(O&DS0t1BDY4@MasZ)$s6ZGX*l6m3>N z|5EZuj~{0taaCA61+pHsZfwA4@NHK##*Z^!bdjpyb(3_xbw?XKY;)#)zA4N!&3u@{w!yJ= zToeMnBnGjL;pvA5)`ixEI7d%ciOtn5Y#o{%e>psvKb$(8onLUDR+!4E(ku4WZjOm! zt@?t7DL!{frY z;iK}#T+Ye1skVv7c;xZHMT-)J#&ImY0>)LYA&-<(3I4f>d8X0ok+Wbyn{x~1re9{i zc;i_nOta1OZ(5E&9DN{+fQaCWc#4-FavCBZq8`He%{W*ZYsmR}eLtyKt=Ou_pY5PD zm5a&;v;vHV3g?_=Lr-W-Xi?8l!zk$U)Ol~q;rQYtjasA=R3j}8SO02jYV~(<^-O7< zZ@+2LYbkAYbnBj2FqW!IubcEj6?hiJ_G$3xxN^H1yIVVdh)567ieGf7DNU)QiK0IJ zdOfu|mUZ4a-aZ=d@k36B1tquc8>q;+V+kA`(? zl82;c8~*@4=Fg@+d4crW%w9~_7}Z#}ksT5h5=v|x?3$JWyS$pk2IC ze$AGurH%En^bH(l<}>&q_bAjaeJW31zLx<2|$ zZf!g5)-6+W&E0vrw{PKb;RNXpe)Tdfhcg!4<2QP-O<(N2yEQs)2AekRxhqr6Z0o|k9as|tMna+@xR`t)7 zyQ_khm77pb)J}YFO;-{YZzE0}`Fn(v-%@s!2vFEQq;ZkQx#B-%e$Q;nOv&O$2_v?# zy|m%Ium3&SuB)I|@!^=*z&X^X=>BKVbYJ1iP|=W2f+cal5?ANxZB!A4mZD_d2@jUX z(HOI6cQ(&B@8|2-yNreUTuYQ3(>z)y`E_AxcftMMzvtx^whqNX7*oLSRr>Y7)brAGtUNp6M!yeFewL(;Mj|8Wm$1zcxXQ%#Y+(1UIA9HCV7M1+ z(m4fuBp*2mq!Zco8_5RPWmz#|L5QTM^8qA;Y6 zE_56&*2)>gy||V#A3q8*6Fp}Y@TK_g-W_1mYJBQBxHWW33;6(s7ti>9ynr&55mQD& z1_O71{C)oZ9Br;GW1*k`M)#hF1A_v`2ZMgkfxq8E-~|89OM=saLH_j~0t_s|8Vu^6 zbrj#zKUd=W{in@8Qpn_RFxdAe^!M8yJ;)P^O-u@GZ~vXnwT?r**pEA z118|b_nx&kcQYpSvbS?^9Ye3jmPzt_Qb6FG38&G#S>BGZteaU@{JTiosmmJ|k<913(0Up^^4+ zJH{`clKcv;5b;PiL+e-14O6VNlrM|7gI4UR`R+dtQx*S`P>{Mdk=nfBi! zzmf`s<78hKBcI#muD0T`ytrZ*M6}51f=ilay-cN6#G1&29%|q{UaUfy&X*P~$#tUoT zt|cL*@-51tgKUK2fa=pDsJE|JmFriQHaeP_+EVS0kUdm#4sb02#PJ5ti#z*s`7XW} zA5|a$fV|$BQ#E;^t|suOrW~+|jPL!tZy`?i&zklMsu~&E=Z*ZO#&=QkAHQ?i+7eta z{=#1a`2hA}m+$cny8J)LHN9kR`b6*0!|w_n2ihuf*D5;puR16ex#uTL6j`-x~Ww5?*dte`ggGQfJGl1SH;+~KUwQDPj`QRS$Kw3Hs8|H zBBCcOES=6oRHM^s0xd2sUe>5;PDDtU@Bi|+naRz}!^a1(vt#J+dqAJa6GmxvT%TE? zslr4DVt1#E$KZr##MxX1kHjp9N{gHM6~n9bS9}Qz!s_6ZBy2s$wd?fODiokXycqE4 zpR4eLk7;^F%KE@?e>7UISH~E8B7|5uQywYFx>c+~nj8)hF$F}vb+7{^=z9xAIo~i06pPpdQN47}*&JIknTwYV zoU6N_+E9JB49m&UyOc5A7V2-c6usCv_02VOJ*8gr%4i$2NX}BOuXhh*3|NCAu$3%g zhxfiBBo@%m5C$@J9Wa!AMg1xXX}dw-H`f`|?w@kcJvCZuJxC%!mQF zuyUt&FvQWL%oj%oS<`25(NK*-KIcY;VVFA;x)MD71Z0_I6N`%U8R8ga5_21qdOgW* z_m_VL%&QVR>>4fH(NzudNY)B{=s@lTDtTALJ?;13Jnhf<{IJAPV1iJv<-ZDEfOPCV z9Q}4)dyoBv{BQhXfdNlJwF!Yif${bAt-8V&D@$cIB(_=jR*Wl!16;^LbJXcVb)3u< z45`qn0r{oUX;7Xvx!W%GUF}a|{Vq;LLbJK#&maudeFGI6o6WoU&4gDp^{h{EUm{9} zeWYyhKVZ$Ou{#Dz_!xeduk+(T&K7zm5t?i3tT$f1{Uy)J5SJtkB`;dWS-Fyw^`+CF z07-fz>FbA}F8e{TcsuVcP!$GD()hcz`ryl|DvM#`yD$8ErQtvrB zO?UCIe--($3T@51azT-C`O~g-_rdI62pZem1BO5?U2s-S7_xtSwG=oAQHQ#4=E{r zj2B5c`eZC!S}q`HBpYIOwJdpIE7gM;nt7X4&OwDr3K+jGE2RXcQ57QEJ-^@!mvgpT z_C*uTA_<8CdGQGdAmdvMay<9cE4io^fD6s@4Kzyrg@mx^O> zw#c7IaByH5bsGW;2Gsrakf`SPJdU8MtE*8736UH(I>4_7!VBV*ZRc88y?lH?j{&&G zw~1($0H2#P*1h}FD$3sL#8MORhkJ%zJEDs-Es!&x!JyFO(mC8nP#)9@35 z0pL$(f)JkRmGFU5ZH$ngs8sR$_MNn`Fmlb2PFI?!2J1%&?eP( z!jJuP_|4NEOShhcj&ji68j$yK9b_q#t9hOY&RRDOau8TASl~|FjiIo=Ufj`Xfna{S zJ7Du7L31pLE0MRXA(=Z!fEGHN2Nr03qBWQzII$<(JWH{4iheNSb3F}QxYdsADqUGP z9X&?LUWQ`++NxGwkeaXfps5_3A=c@Q13|-d9-cF#RkyEFIpG{zwYkJnDS(g)iL<|U zL3@EcB(*A#Dmx#t4c)Qzfj_TtG3TPJ9vktuies3kAMStgL;5OK?=GhMlosjx znpFC=Mh6n(g?@(nOPoVe!tJQS~9~zp5i;# z71sU;xw1u&$n99$)eaqDcLM=2?7HT8LDEnlZ5NiVSRF($_}yuLsq~qn!_YLA)6=wh z+^tFHieK55_PCAP@6Q_&9YIwQIJVc^dmBF{!Z-39H#$QD5}4BW#O(Mua4B~QG>(yU z*msSDOil0E^}ZQJQQ*AJN6k-k%ZV%}(*@W=+ZY%vf-JqYWdFVgqlEZl8IP{;<;t*_ z4G1$iwL0gRbvkgrY1CAwD<3a*3!D8+4C*c#&t?rt@oIs|V>9nr)GE%QUTCoXE$Q`q zU-z>lqp%pwhAI9-ZIeBQqD{FYx#Y6lZ=lO|B_pk9HIm|mR(;!M>a0X3{bYiW7X+8S zR#)w=*=NO@1wZfwE)g4e*+2_3`z}-kkoys$?9^a0^R+#HF85ISX3%LslIO1Vb;RxX zy$!xuUw6O;tS=`>qL7__3j0e>JTEiJ-6^>uw)L@Vc#>oa_RX|xBx!4dQEaqRR-F$N zd%z<$!d?`O@PJndhv4aq8Lpe{V<)bzvp4{SXp|y}!tC*aF?$EY+xbWO<~}nC>-P6Z zS`+^iA<-uiSy7&=LQ1I1j44OFFE?c$qcMkmr+fB(p@PH|FC|sMM0PhD96v5e-NCf5 z0y%_3Q5~$fLAlwp0X7t5g##W?yYi+bLwe*!8Y4miR`+NmD{oWwRFsUa$A)9v7b}_< z)1+q1$X8*%sMPcKNnqD$=8@tFmfRV33`=`VEOw!0P~j~LnC@`JRX+x! zDzS{!&`7cuzryUNiga-#1TEtAmp*he9oDGiEv zqiF}CTDhI6Oq8~@iUo^_zmTTO`D;I1;ho0K%icg!wFHzg@bGCnlOw}(qW^7Y7*s@& zxE-1q7l(|5%aO>--W)WV&fE(OiO9FExA1{)BDQbc~*S&mA#n5cT6pFVAMN6-yT@Z?goGf8P^S?e2jF=f$2q(B;p1jpIz ztn$6-m6Owoa^?+AUB_sKbyiX2U)f-OW-fG5g2-Zzw}SQ*B4&jt8?5A2z?dH$^YM7Ggu1cp!n8YbfvG zunt|wVgkIc(P3=+C(GY=AlxR1u8&wlSx@8FmJwZ$cFnzfT(4stj_3s3sWa_kRWnV1pABA>pYzmxY#^++K)Hw&jw&N(Z zS=JYDXcnKo4&j_!$x|Rxc&6P|QY3win0SR$OGm-}w6x(F@tw-%Lcm5AxIjAMT5@<5 z$;*_Ecvi|)HE{VkJrHu1Nz9p9J3Ive9?izZ)o=}V?fl|rvvTIce1E5?DAN0GZFF{< z;^U&hp^1jkO6|BG?Hb11TKmHVdOkI-%}+ApsG{GK0Tq4cS7QDW{On4As64)0iN zPYbg}X#ts4OI7sN7wg$IHm zV;m+g=7baMnxIJCPFy_9I)Tsbc~*l7UU4vM!Zo!0@+C-zTetr6#G#>*Vuu!594pG; zf7^=%Ucwde0I7f0D@{+cI8G4W0!Xq*fz*CY!!M1I9Oxqr zr?T3&yCPlG9~@=MQ^{}}a49PEi><-i#gOS5pM@l)V4v>4 z@#Aic+M!$@p%Z*&H9_=hOWi+KrJ+f7IVD>TrB0$vc|99f5b)j`g|(43H?{CRT2TgZ zg_kTUb@svQQrcWRUq_KfW3(A2(~r9TARQ`rIXZ(is(#m|%MH^6)ej7t2rsQ}%huMVobi_i*Hki)Zj>IgMW-=@8`k zGI<1TnX0^hS3oqlB3fX$(Cm~a{zyC#|K@F#o&cjX*I3z;vRGUbnOFqK1Gg80!W-KJ z9Cf9^x_^|*VW~%km-VdCcG2ifXt$=N1DFw@jSl2$j$-DZ(@i}8%4ZxNR{G?&y<++` zZLu&d<4q)$B)cCa7myclXNnPaZ92{0{f6FIKORox6lPs(jUh)m_sZLXiv7y2;`~_u z)*NF^_u!-ui!G*M(HIS5$To;-6PzzHUfM(<$RRJ&`Bk_<`0Fs`$Ss8&C%OE)lKEXq zjI&(xUvrwd)j*F8=_3lcy$#>A?8W#I>k;rT30*M-0HqXabH_NaB~WdYLe52N;OVOB zx(A7&xV2EuuBuj-qC3{d&YNBPWE`;R7bCNpOlS#t>XVwWNUDym!(aXB6v{Q)UjsGx z-%vGXSU)nKn4kiwN|nTr8#k2+5G1lBacvN*zZQ}6%)x);1zMam(kz5udEkH242kS@ zQG?H<*1EIqYv3x(e@N`})BfS<6k+I%-v|{p*(2zhcVTOMUhd9fIuDm4C#?vuzrRky zSMm28_x>S6_uyXYS_h*E7mSeQX>?bV?KQ||-1p64Cer;8O2KOS3%101L!;v={M6u` zoXQ-4mtBejTCJWjC1Vlg1tqHw1*y-P!ugk~P)4rCOPo7+dzct-PQ; zA-ZSM>g*W3bJic1o$4P-!5N0@j5BLo?B-SUrsyoWUF2{i;HqMUbu7qmy&x7^F zE*$8@d5Y+Oy&RkQ$^NGgc6L4tiUEt2te63p_Z0qFHW52A?A|O~B`LSq7u%-G2}7Y| zP#@DET2X4YG`jotQilZ!?sb?pem_U@1p7FpI~vrtw(z8EW%k>Z6k8Z_>sF^L@s=O* z_>It$%7zJb58)d8eHTo0GpeW(pE8jwg>EE4Knr&JiX8c41kP;im!g^6oFDQEO0~xl z>6A3U5=FpPW~c?FO+W#5*++3y^#j+sQL9wV0zZ9cL1Uc|@akmm2CI-eWd-bO3T8x> zApfxoKBwJQ+4dBCgIb&3YNa zQOrB)_>?bC?5v@>Suo2+XI`l#C((>#7r(EET9E$7_KuP~(IixNJd+dX7lz>XfEx)$ z;fpXWRc4%(^ebR8tIOvGL0PWK?QljQdH>n_YIC+!2_der-g2_<(sby@l=Ys~yLzO) zej=l|^7go0Mm%WHxuR;+!ehq$B<9XI4BxoGpxoQ=NOwvq#^paP5paKc&s(Ly7^HkW z(oiy2c!7NW2%E4Fk#FV8ierQ)TQ+P+DPj0o%D$_4Cp5GCx#&>0|5nG7DnPbv<>x2? z^4R2y1w26EYl<v-Sq^2 z_RRLczcWm4AFqkJb|gW()D7Ag1ocic8g4_@PO+N+?2`aV)ni!XgWVd13wgd*osQ< zh8&7iw7>b?apOgz(QNvqViO_Y^gFy%>b8@qPE;%fN}17Pq=<%7M=cJ~VTxE6LQv z27sIsT4;@hz(*?VZl2)B7w5KFA@$cuyER)`&2z8D$|^XPwE80K^ZNnWM@pPA1B>5( zKa(3B=Kxo6MCdf9zoLX0F_-4haoxau}gH8#5%4A^i!~no;iOEaPpA^BWgX z_HsWiP^Q*}bw2YNP~4cgF<~~%D5wJli^= zEA@Q`gXU7~zPn!pmFKLwHK7R2^lJ&#<1oe!?c;*YT}Zlm4P%miXeQIlt}VLF0nTNF z&MAi?!LTGHkqXSSF3DM)RX!~UuFVVO;g?{4F0$v=r+Zri!|4j9Syi>Is3N=#9Keq* zD~b&Xf=^P;D8_>53AE(6L0oY%mD~fJQNJm7U*(a2Y5Wn4`YW3FrQxNbBtSrxt$+f_ z-~D1TVx$9boM_rTQ@e&OPT=v+rEI057)l&iSm?O8aJGw;XgXyEg)r)sWgwLX_fhPY zfVVF7bWQX$@v@wQd2km?w_sal1JR0`Rn8_SWeE~oO&zRWdBrkgvx%_rBhc+AH_|?Rj6xp9L7gg~AEg}cMR>z@+;wQ)dk}sPmjGizSqEK;S%=t>v;)LfNv0Ku@ z?VSCO71n8@bZ9il{m~5-4+}QzbE>e3i6H#nSJ?NhKQ1u*byj&)K5J=ZMYik9yEm4M zDJ?9*GKnuqUF>kGj$&uL0<@1gRKUjce9Rmfsr=Fxdn4HW0Q22^G+aiTC7`Py9;YM- zMUH%K;fXU0RL#5fGNiQGX_Pv6HtwJ=1qz|2nM2^Uv``UP1>JV%@t`0wQ@(0>lh4VE zm2FwTMI0nRIQBOSFD@)ih9V@VC}W7?P3faGCYt;^Vr#hVXj*>lYx*M$U=&`kCO zgQz6>Fy6w8@)Ae=LU_&$Uh8J()Xjkkn#b_{AaWKXaapUf!%Ww+1mAq^pcz83t%T`e zG7M5|+J87Ox)ynAB!r2KUk{@%UEBfoe!r-ayCv)``td`C5ukw7+@oj9+foNh7yKJX z3;l8z>*osQf?$74X5dHBvK;Mm=&-BRtE=HpyB*sdv|@h?C?@j!*%-|>uZ8-RVKJ#f z={Bln;Fa5!nonfo`P?1$!}DI(HTf;GeOAk`&!IxId8^PQ?qbx6KG%p)Xy1Ik!kOvf zUD58}eO+&np~W77Z@gx>=o#?;)bhqj`FrH86Q%%8E&*&{PN3F z5QeD+(>fUSt(stn65G{A6ryj`w;IW^xc3m+k(O!(p-s#f9b-?VIN2h4t|l0pg=SnN5U`_ zS3X(S5sU-Z^G`nrywR*E=4ykod-T4$v)L^PD;-%z`(nV#!2?dyjURyNhKl}7{vnS2 zQ8DL5R|Qai`}9P%QU3%A(6|t>8EC8WRd+`c1${kog}pYx#3dvyuiNj=$s#i>sVU$6 zA4>s0Yk^~AjmRWN!WIZV4>MFhzp_%eoy@_rnf>e;y*ph;e0_Zt$XO6#h*BQiI{@47 zI{nei!U2M8u&~IR+z5kAwwBZ5+F7wR3D^zAPviW!2UAZ_(U1=T02u$wecRm1YVP2b zd}PR>=g+Tcw0XF)n)k=}jSjTndl#f}Sc%507E+jLx(8gDcf*hPxUP^)^UPjlY-gn$ zCpkp`a#VTTY&EMw5koe|a*HGJRSK8FjQVKuG_>ygAu{eM`sYf48QB)jL?2F!Jp>yF^;zgA7XZ0-+ua%1 zOeMAJeX+9rceS zYrbn*k=1yVIi(FyP}DEzu6@_N{uj$dcNha{YXEZN9E_qh*rXV-%Z&3znc&(9&gIvR z77`;jU9!F%jH_;jBSh(r0%}^x^Jni(y5Ufq<9T>a2EAdpas6eGG5XZnZL@hu@v#6i zJEvsT_o?Py7LQyy5Vzw`AvZJ|+)$J8ovRtnP;l|kZf>>ptan3TKK>qZ^?ax$Apoyl ziw%_QbbzBhkp8onoT@phA2C zKB|_fjA1Jlj22}~wi0aBP$3NF)2wP7b$X#YWczb)CCyW88&^S0Hdork(p>o(x2fvV2&8YYL%t`i;LajDAXgKDUfYKz(w)Sr5)X*gt%gUCd z-Zr&rUmxv1j#w5;*lwAJ%2KFq)LJ`p-xn)tIJ|yj9^$a6wC{4pdF2bx=#(9qw9-b@ zZNUl8ze7{DANDC1Xrxq@`_}!7G9-=S4lh*Yj^&X!x`{TfzfC?uQiJ~zM}O;1dX*CN z(D?8&voKWengV!1q?gMA`es;b?C2&{w9ihpBAjuBd z{6$g1WO5!eS@Pn`3mU4g81LuLQ8F@MQb}=Y6$yaUijFA$iqmL5=|lfFdd*sF$^mCiAdrY&@&& z^8=4dL36gH{k?l49qj}tARwaA*W%;eNYXr(CVL!>7}R2X*JA^GX8NryKk>Imj=gW@A!DcXSsR?vi zNIILOz3O(sENLde3i`CGSG8NaeexJkgNwtCm-D@+MJR^np~@giMQgvBq-rX7fC~`9 zE`lAUwV}0^rS0*Ky}7qP6e;H`zbkpp6fyLJmq1OUwulP7)!fh&{IpC%VVAK#5z|cM zh5Rz~OUn`9{kOOYIK`h;%HoHgVX<|Id%!>e8R>jz{2t%UGB~D>NXswn5rdNl1qEhggDNFzf`?_2aH>WS=QG ztNNyS1$x5MM8-cLh1q;Eo5Y&^Djsur_}`{Ckcupk8je$Lg~ho#O|~rRN=Z(Nf6r9* zD>t62fwMe;T2@myt7*|q(}!C;(ia@d%fW104vL>bY>d3g4MAX^U?1<2az!66W#k$k zu9kW;6pCAz8=cwndbSmMtq-pc^#2>VCaw97Fq6}4QQ*cyvnlCkE0)TGVNbAJS0l|EaxDKJA_#(0zzkL_+e7>Tl2!Qm6*9cWfJ% z`dEJKJF0An5;C3VDI#anpe#11Ds?N$ee^)?&2myq6nYGve(#Si)E<~Y#3jJ?B zga04~MKZ##JX~<(b8Fx&F2z{5SB? zDCw^Ot~z`aPbtnW%`gc6zkr85Hc@K6z5k-vm3@sClef!Lm{XKE5Dq!b6xx8Jd1Z<0vi zWo5Jy-hd4KR#&lp$?<%VUVzcL(PWmPK)?qsNBwkVt#8dDP;@9KFnBI)w3E+QmOKL9 z#6SEWix?JDhogp-2*RQ66RccM&WP`r30M97nB<2jaD^x5Tpw;jd z!@gJVVvcSESTf5C3n{3i;j<%u28ryNEN|_$qp)~Ro|@^HbUzM|HrGSyw~!$4GYQCH zxTeu(BZqT1FY=^!rb8N!Uq;~XmeArZHet4yeGln>Wj1v$L}YUy7MN(x}+{J(S>+mS5@O>>SkO@BcgiXRBGQ4UUF}HX`{wyRnf|y-XQg z*2@d*7|OA~&*-W|;XAf9yY*kXXenz@yy{5;;p@vEN9E?Qh+xp^Q?627k?+2Gdtv|9 z>qS7fv$5XJQtPNBp(ASnvT%ix(zAs_euD#^BL{F5|H#ZasqE#fp!iW|dDw|_u4V#n z=suxHuoqmF5;915{Qidq6h~xX!w80q{FkE)zidP~?%o?lU(P`ejUeQ9t!x)FQ$xqR zt$DiIE(76dbaU>X@wVr@fHy}4I-{o6UxVe$c2ST)vTlS2%liLfh6GWWcKlW91k=eK@21nmi-Kb3!TNbH2JaA&pm*Ebt#v6o+!JQ)2pf}LcB?g`4Xpj@4JoAstQ zYnT)d%_RO2M};f@M*@n1ql>y4v{EoustX$52&Ts%D{+s%Xu@+o2kq@JBR@RE|MJ30 zd-F8p^HigLUmmD3%UvsXDCbmN7w`8|M? z>opk%P*>nM(@&Oxdd&_-=H|s#F?i&29Hgwr5ae^oo==Y-aFNQa!%dKYnyohOUoWmO zHyqE;a#&m+9p5=5{JtQ^wL@&qH=%K_{+P#;D+9u4-fVR~M6ECRg9SUTz1Yymgk~B~ zWfA}vx@<(tb~7*l8~%Zp1l9N+$uf4FO;tFHB7)w>RFy($wS!3?;W$nA<+ncuPZ3i9 z7_FsCpaG1nHJwFdxzC-Kuq7Slour^~J)Wn<%$hbZ^0_X$4i2986+|2N&&fbCmT*{s zqwpVC%0T}wYisJdOyTG@ii(O;&4$8?$?pzy*-VEOxW?y)E3x+5Z|ScW7fw7rJ8*N= zY7uv207m;yz2aq5=l;}b%ExoX{BCb0D269@{V@HF6^288)~2stK*v!CbQ95+h{ z(7I4v&F1ICq4v;0m)z`5i1S=n+b^Stb~%K-qcyB%^!i}g`q{0MnLnpk;5u9&i3xd; zNq*74c%)hFA>L-NgUDRc>A-mfqA#wiaw4`&z5G^NmUvp)&I}*a@ehA|^=o6R3M22* zAT>QB3=~=`_!`jKJQ=*%yETiy;-v%H4+3z~NniOqaDu;sGsZYLk0!;+G2MOUgukUt^ z2+r9c7T?0x>9Z6+<{@r()Y`wn40vPb{F3sE48q>M0@&~QGE!WH?M)I6Oq$#kG0mPZ zC^k)1%Yw6JyLDV%GiJA7k?-zC6$zoBv(ro@boG8q{|O#9x)T<>oI~nM?F(lNPEaij z59y~!+z$NQ32HRuYlUyj`|4o~8}5u;VjnrVTkmPmyMlqTrDIj}IO9cp*C2zZRW@+T zf`W*ev^0$1iRW5P)A5$h+sRm4Sr9Ocyj&YxwrN?j#Cid1~-8TD+z_eRH) zTIEIF3hzRG^{3SwiWuR+>XaWX3J9Q&i)f~OI8(J&{^@Hl44J^-`zxM(x^ zDFiHkeNHFo2*;8-yL!^IDWghS`xS7eVB<=X4l4HZ!s!h@&Q8RUv7Q?oJZJg>D>VUd zn}c<#&`EkSsCRY?oN7M3CqeGYAn_T`_>31w0vbbtaY`6%wcV498-Z(fGq zy;#*N3_dXfON2=FqLgRDqaV_B@PTQ0Nvc=aOwiY8WpcWl_Fzd#m&}(1pX`76uz&(g zdslQHf+KHOS?gHbK~Ov%*TU2K$J4j~`~5BoBU95VcS3JtSy-xr@yKFl`;HyCnG6F@ z5ZZIgW3r^6WEH{2oLC_t;uM;DJKhl4h5IuiL9*A=;DgIA(R*}V?`wldW3w34>n)G7 z=E1t=p^{)a0DAT1@@{AHW4+B3KNSwS`4P*=& zg-~>=?MbYFxux!a?upxyZ!Brb^uHp40R1nm6(DbK+=J@j!PCXaj^@ETHhZpeTL=E>rTbFa(f_OHoA(;#NT~~ZBpKN zCw}F14qAM*8X2aF8}R?Q6u^o4$jn#jRc&pXl^v?vQ_n)1&0aW|yUC9IVxHSph4h`` zE}+EzRQvWAJ3!k@^lG85x8;8TB+xt+IG4cJ1<5SXOB0IU_1f{Y~fBxtYV+=xIg$-ZzUqljYVD{Oj<} z8)6pgO15N=o_3J+8Ge^UXKIE6%dwu^7XJ4Tl6}@y=d}U+H7Vc* zj9LAg6pA<1$&8PLot@NWwtf;45J3rqJ|jC33vHd8^Gl z^xGFhJcwFL2P0e|$9&w7YtJ_-Il`8@w(fbdYFMqk0qEkVzlk<}a!iPLNy(VOH?nQ{ zhE#meT+(Ri0{(R`QuyC&NOW92MKaR%EX}2}oS05ld-sbRdOi+fC|)bdh zVRvC3w?66D79yO;i%l)jM^k#S2^_x$*fe{;AzToO9nBMtx5V;UiT01Cij!%7yzS+{ z?V!x=*A-~s&%MDL{jsxWa`f{~C~dKebK4Z(nf7;8TIv^B*zCa+Kj-3i6wnC#pG_;! zJx7+m8{VioSH37_K>MZ*867KNIm3eMmM12wU)QV#Sn-Fpee&KS0irHpTH&^(+tJ>b zMYK(;mRfTC&Q=yNuN2AFJ}*cJA?RDi?K;P-xeN0?;?GDN%O#tQl~4kwvz-Fd?#cC3 zB`n6FR#C&@M42M*Fnk9P87XDVy9Jq&7pgklSOBZq@oY3JG=UOUcHM@9ZyjjBBoPTk zW*oJij2~#3UkOiB*jUX=n9=7GiUo)|-^5*LE^@pfx;df%$6pA34+pfy z4TdDH?Zv9w4K^`ss06hP!P)gFQ=I6X;^EUCf_;@nKkvwfgc2j<2(4EWj@6V3NmDf~ zF5S<)M+1F5?FNQ^PPbS^)wl~>DZIvMNFx~+rN)QV)>dkcrmU8Oba8?*1r(mHHJ#8@ z_>U-!W2&D%Fn2q&Pu3=+v|w z6nFv5TkUUP=g9=`u(r?7zj2lZLjCT|eto7+_oM5=DeR&Bm(}-%ELW6t0D(&^+dCpA z#QoE*C{SMqJa$Yo*|nJYBkGeFU-2j`9DkKQNa2rgb|*(;WjIZYSLr?iWnCHb9MSb| zrc?&}42yMUEIjVg;(I02YkjTtB}H9H^xDDU37Xy3!X9^T9&Qe)=Spd!$iUm)-3PO1 zth%)Fv6CmM;l{Zg{F+74=XuGYot&9ZMG(FRD1bYP;>*{cl^ltI|ErDis!}`3>U_Ya zr%NC|f+Pj446;$^)A^O3l$8k%$BtNKa*lx8WgU^Cp8Yps2R1Wr>W#6lvAXo8rKf9F z#-|oL!nt(TljAq|lKEcKBhTVwyWGjD7|&<>->5JejD!+!4k*BgS`0&tvo#x?5+&>X z<5V3$3!kz5enWY|jg4Bj3k`6%*~bS}yXV{LsE)A_gl-gr&>lF;Lpq#=I;stCWB3jv z#5f#=neg)@3L3C;%}@z*&-5COc&6KLR`lU|DIqtvr;ZStxYQNENUGHmWG2vo`H?t< zE3V`do7cK}U_>B}YKb4N?))7are_jqPB<#M#pd`@)PX;n%T?Jc+1^5gRsY^Jf_YFp zy6Ac95Yl!d-z|2fbRmivFnwMj4Mk&HOZq>WIGcUN9U+g-uQ2r|8LVn2pUeBQh{hyj za`Rj7ZT~prPJoDbX3i3>{m-s0)7@wb-$knGGT2TfD&vP*1y(qyPUJXb;n-7^nJbNMf9o53r6bDr39G|?W63Jo zrQ5F)q9caqup;G6ljq=4r8i2>E|s#@MlB?#T@WMP(S3Gjd7s~{>ZGZ!`SLcCsR_>k zv-injd8RcT@NvG@<5r5u?Ckj9^yB)i{P-g0Hue4!Gdz6tRrOx<-;K63(FJ zU-zfnsT_7~(%o}M&7wDie0OVF(TDTKLvEK6?q=lRZRnl%_J#0S!Y>++8> z=8QeYfRKz+h~Nv9bX3a%-VNHz@rP`y_6Z>b8K?lMq(L@7JT4S9a48x`rBWxPy`msu z^Ik{GuZs6-_k3qrrhFZCuNQy*$)q0Z8|&IQ6cf$0!>ZBIfE8U%!d)=>PihpMMKMA+#9(UkeNpJ0)MW7sz%ZToY;**n-Oftd#!Gam zm0Ma-R?3p>Ns?_Xim+G$U;to82x{NkToLINh2gP+f? zM$FVIuX$~cB|(}p7QzAe)}UXORQI8#BFpR}87w5`Bl#Ep?54w_Ex&y=k8~tKbS8Y9 zUBo;%J?flE{YE{(g;1KXL|+S3I4Q>w(N?I-iYU?@^4-zWzaaE9bzz`V-<5aOvi$fM z&F6~yd}-;sD=H|-VnZ`e8H2}R8H9}YehEVddoD9(mfw;8%GI#?p`sG>!lHo6J^L=&q_I@CJWi&d;sDsk{ z<=G0HxyW0IVLO%X?5osHcYrP-S#gLf4l+l4Oi> zdmDSQ8Kz8LRt5YZ2+%18^*t}npLJM+4t|YZr6wHEWfL{p}m`xLEb@Y63KgZx8u zgEtwpy|m5NL%n`xx-}1W6NmVfm|T##@fUTyI)5}n;6g?Y6hR&tsMMkYvDKlmEImJC z{+5rgPbe-y@dEn*W89l8Gyk<~>^f6_j5*AQ_5+LuMvT zvEDVl`8i8dWBi-3#bYPFBcf#QwG$Z;hpr3=jIK}N%^KfMp6Hf`t7`O;k4q#KwS5Zy zS-r|Ojuz8qT-X(UBCjyemu$2?JzWS%gkWZrI~{beg2O>|{|(o|Q3$Dp_3Noa=R4sY z?|6YM!XW%?jj?+XC~3ijv7s|rH=k*eNfuo+H4}Lf*^4i!$^eTop>p&ps9y^mMfs3@ z&)z5N_@JmERq|)&5xBg4X8H-2Vr;ThGaByk8TnjQTn?}0cR~i987}K$>SK<$DhH(p z(UAv*(J&()tN_YEW==MpCG%fXY?9#_?KmNPeqOW>~_s z7JL6r^ERcd(%@q<5OK@W>ws{y*RUPfE8j=y+Je2bI3*A==yNLO&FS}I3G4b#eY)x& zKzQlw9Yrd3G*+Y*E&>jV;rog*^O5-VPHr5@)zJ#>uE3LT zmz6(bP=Q>UkD&D;U+hzP)~fatHBMe~jQ43G5Q-7b()$Sa;{u~^9r~{PwN>h9dmzFU z*a}{ks`!Dti|3F}_*pTocbSffgiuz6QD#6GFyZbl@ffy1Tz&5B7xm!$SH+{C zr9aW=q9qQp%D1+lw8l^G9puWf8v~w5LeGsE_jyISBPklna>;|GtJ>f*l!fNq=>XvS zOFRtuet($a=lgIQmg|T7PRa$vcp0a`J)U%OQ|Ew%4f<$(qiTKCcoTp1cqxEd-Uc?l z5?3F~)_r^1EdM9jrcKx|0+)uqXUI6+Qf}H|b(R;UgM(U(4D#@-%dSgIMu)!Ml8!hN z#cY`1r5yz^BlK+v!YqB?8@wgx=kg@yiShE?T9O#__(mGyUJh(UO0MwQprtezyVRRA zlL0y)^XM1&SB{7h36c&##c=uJOU;HdM5$bxaG3S|C|(b^1%MzY8T3T`Dmq}gYV2!N zD*t-;0g~ewPScP|HTkvrOTc9J>TX|Y)^ajfy{OZ@Sxbq46_Q^Z+2kq?o{P#nrI>3& zZTyO_NbBauc;2NWXNDTjeZ~Fk3-oKQ3UVH`*0=1mXVdN88%-q9%a8Yz9K|Y%eWlPG zMl;27G!Mo7Y_0HI_pM}dnjjAt+Eq~T_AuVjwT%T8PagHWor4upYp2lnPC26CzL+Mk`6d$cM7atbAmO%Kp4a3mYC$}KajTvY+h92^_|cIiDOk*w z9Q^Ih?(CAx1wnoY?-(wGJLx@iuKui|HK`eC1ir}0>{(}saO)2qoQP6*u2vh70dOao{AIvqIg|q|8cmsrRHo#vZ-bWJ861AQMw={dj|)qIwpQ<{2%>0SEU+$h3U+| z@rlE}Yv4Engp2pQj=20tq)RiWggtLCJw6}NYN8SIqo;E_ja+U?(@}WIM@C*v8x4_IU5(hC-OzN%@qeeMRPm>T;nyI5AbrAsZP~%c7Uz zRE(&y8HM;ug)zsgE}}!G<(-5VUKD(vAFg}K6K$0L+w}zd z*lfu@Burm|i4UPM(Tx~hFerx!FsakU6^3yGfL2Wrd;VmfHaQq#>nQ|HrZNtXTML*! zMpp;HH~OVbw1!L@VE5-$>Ar=#cEQNN(RFSk+&jIi<-WZS(NzwHwcnY|y_vnnn{e|W zn$>!6nXrgH2*&WN_#p+#n`+cZAh_rfdEG*bL|dK1l`&k`4!(yvD!YKQw0^I8oP!U@ zvwNR6J8SQZ2lwD%2L5_kOU#>wt6wtOj7I82#@ z`r}*Abz*0R1TMH{+#KLbB)(2}GB#Ac_p@r0V#GR8ryu?BTb(Mmr<&rP9kS{79t2c> zIy!%Pfa;jh2;5;5QR4d3#g|a(iI9@LD(VJ7sZJmrMEJw$C#UmhHkX*VQiH@M8iJ?< zWfA;eQqbR-4rJLh1ksSmxF$J7qWE;yAvoU+fl@!#OFqS|FOeugP~a9&N`i>8Rb%-c zr$9V)`HO-5#4vdw&&wQ_eH_O_=w!IE5L0+N(__w}6ULa}rr!M=+9j`QcO2Ic;2D}Y zI+wu7vz*|RI-Rl`SjH27+BSh+IbeY%Y(qaIZq@LwPJN3|&hw6bR)bN&Aqc-p&MPH7 zT~&hQ)4m<5l=fRlL%K&=AWCtJuNj)6Z`pOFt1Lubu1VeKtsRL?cl{iCNkfyDoO%l5 z|BmS2FiGN{R9$_2{hy*!c?#_^eY`rWsmV(?G(tZRttNEi*V8o#RpVT+vUcxVaTM>0 zo#8kM{CtxwX=5`7C^j~>8mn8!Qo&TIw(Cx(rthf`3P6ge-~uJZTT|}7fu0Cha-SaOnQ%pR;js6&xT?Rn zx&~M>>57#%osdP`Qyl+n?A$MQNyPYCTU+aFyheOyHS4j9bIcJ`|EL{Rx;mW+54bXA z5<8}4d$SF`P{zN)W%!9Cw#LxYy)C~q?63qO-Td;$8&^sHK|hu}9V3H%q%|9zVA1V_ z_AU2dbkye{mwiCUg#nuX)m^+y;#Jb{KFi%_xbCv%WJRM?Ia@TE9n2`v^BvL~C)@wc zt^_r|wA@O#aCvt*EFNKn2{*;d3zA#Ub8FrK&BON(*9MwZN`AWd`|Y7b4f67xs*Ak* zq9xa#TIeWj4Pfkl!F|0Ug3`AJ0{(Y*hRt8H^MZ6oxTC*!x-h{T$7G%!3!v5-<)@f_ zgY-%p`8FGDR_D8d4BtW6o$@i4eP~RSZ;}&I1fT|GIN5HI@GjU@*;94elBr1srDisUYK?sMf)~Z&dbu)V9T)b(=+N` za+bu+AHMPABYaUqsT_*LFq6&4WWXOGJ!O~)8E>_e<#L<}^-d=28p?48Jtr|lLfPZ1 z1>UP_NXhp<1i^E;i@tfKaavzsTG%*OnCpz1;^g}fxj`C)po))R*4}_T0=Z z93YTum`1_O7P%600fNyY$FBF6g_!4f2;aj`6eLdKTX}yD64at;7p4`@hM|jbh*^OTA!CGeSj16Bzb)b8SR(@0@ODH$0SxmAv$^`=BiceH5U@Ax!f}qK z{5K<${^ucL*xrS8Sn9VMw^lBo?~%>Mo#r583sNl~8jqJx(RzpcFxU<>xgz8T9cV}x zk$eKx{}qg@=9`K)WHq~iJh+e$M|v$lX!w?zs#EMg|1KaPvA-cw;fqd(DHAU*Z&-1Z ze$0-Iom~<&gry-gjM(j@k2--vc-$)i)HOcm49H_-_<)&6*Dlda%oL#!=;q^JU0uz& z3nBfT<>AqZ?v)GuFdgoK?}yqsE!S)g{Xo5fd7?GJIUDS;eFdiS>-4)iQt*laM^82z zeYeeBfcD1FFF)@fbCV^weftj`L33%&q8=ld4*hDW4B;J5I=Qdd?#VXqL5lCC$R*Esl%ZsU!uWPn5DpWDN1JBM=1c}&() z4?3d14(+c0`cRY<@CVCqxrID%a42M3t%Xn5>mp*>X{1V@B!pv@Lb5Fn*irJdVZsRp z;@1Yv%t2S&^BoMZilU~|^K>u7Lx|pSD>bV{I%L-T5&|1vJWthlg}zd8YskvKvmLn? zY+>)D%fV#t6Z;FLdUG>|y z?<9Dt=;UDbMLno^cJYGfuMZc~j)QE(@S=vvsSTMxz%eeWXRrJ%<)Ur$8cW^NVzmz& z?p#^n`;Z`9-SuU52Qy4CsYC#h6iFU;W*R=K33cdF;p0kzGbO2xTCmPK8kMXnq8L*( zFL&#AguNS6|F=PuJ4+a5l)G+U9TgDJp4eckmHfkTRrDm6fk?8_XiM*tFxJ2i{@BAi z$Yt*Jp{&h`s5|Pb>XKdEx`3x{skDU8YNx1nVT&I~-(U0Tmx2=hyf5X}L6c zxRU5~@`rfV#D|!Fxv4cP`@DT3mo=>95Hj0U9M0gWelK!3M6&Vn{HXq7M>UEy2`kcY z7E~8pPcO^%M;VgISbB=e{1Pu$>|*vBX}MbGdg{2x=OFUvD?fvo3AU-uYj}Ew*Y^R< zU~j`13ER4D`)LN2pJxhRYIu zVOk25WZ7RZg|q3R)GmgwNj8{3f`O4p%9jK8@q`j65h^-jTQmBaipJX7UBPx#_5IKc z4Rhj%wGv=%#MF3%5;Gp?_-#hkJ9RT*P^YN}1<~T!X<&&{2fe&U^S#!PEqer*%C21MUN$blfdAV6~v%AINU^KEkpn zjH%odkRr$nG0WXO+n+a7>}##rOpE#4@~VLPE5RqXrw(ZHv?x*=u<)r7osUvoNf;IO zsD~u??bpw8$Bhf$yr-C+w03qyy%pUJfnT|{o(z9kV1*C%QjuDF>^U_NemqxL;K~3V zmEP_mos2Gum)sx`MvLJ%lqKfpEFK{tU#^waN^rxNUKi$qYagtq44YBmOY>(`yW`t{ zNqklArB(Cg+2bH~wf*a9Z|d{|S75wn^x@?O z$q}(TM?Fs8_zLpQI}U?3qC4fI$aIgj?eQ%n`&vOfGAAvXD!fo?zEYR0k??RYX3GA$ z)}2t~R()JN%K_he-^+dX{4k39mXN|7eA|3)*JB#%x{kPETS7K`8_Na#DEM*6xIB}$ zH=J)*h0x}$Q)Xar?IEUAm>*A%gAaxB*e1oGYC$d(6@bMmMTYPoF04b5E8elc@1jopJeCal307Lg;F87vO?m5U zIc_8Djs-C{bP((3FzyEaZx>S8v45e-?RI~O7=R|r>2lkaB%Pi4O^q8(oSF3LpizhW!^ovU$kIE^@pO=TnCdK=o+%KH6c)Okl5PAC+3UCSheuEQ z-TFTeWq(NuRmQK>!#nm)uCJ+!Q$Wu+8H(v>Q2=Y;43OVUE5H4-{pvr# zbZFqG5h%xx{~ZoaGw^B9|L6CAqx;|U|6;V){=ZokcEz&I{wlD@K=hyZw33%wo@LsyqbF|s`;b&Bt;iA| z+YY)*>X2Uf^#RFO$Hk^Ke_WkIxyn#A_kefcV8}ZnNN>!8c9b^Z=55VHCP9Sjorb$< z&erj~Sem{58KZPL#dU`eTDX79ePu9es4CAC^SrFf%9)Ocu^o$~|pB*&+aPKF=AWh>A z8QxHXmj7y9<-)F_Y!tNY8DpDx#6YWB#JGJykE&*Jy1oZ ztNDVO?%ANKNb=T;DCC4NpH_iZqraIRNZ$ty|KM>p`AOY5F}u7Z`jglJ4}7rr>;WJx zBJ<0_R18@{1fu7^6*!ZfcSAeyE#3okvh(;3YEcLYn70%OLqSZj-wtSs*pnEdkyl~I z=l<@vyB?>QB&QfyuW>>Hcz({$YM3(KVNlKdI9L{mz+096vCFJz(2B~S*7kOZ;0P=T zIp(`3JgsV73(V=A%}q#$=cl_dT=ABV1BgKJ`HQZ-l@;8ou<-iM4on)mg()04qE5$QmNww4$ zCt6r#${<)G!O{*`ZIFNu{5I2+A-#xCz?{RwkzM*W|KoVtci~U4!rE?U3Wmd8kh`B= z5S05Y3(dbXJV;yw!0Q@YjlY4=9u5xD7HZUnojcJr?C;Q34qJn3Y81Ey_UtIZCwRLj zT((jf!aDPSn{ulQY@B4rfFr$|Lz}FAdg&#Lk(3OyfCV(e`oS=u1zU>+rkB?xrtpw- z-?Ar7G~VEP6Hw9M*OyS(JVdUMovB*m;ePONbFhLw^PwmZtPJ8x z6-57-!VFldB*seZ{xc6KO7P+*F9~R>m4V%pj#~5cs&z^drCpM<{OjwPd~+DK#7svL z!K)|tZ9HE{M!5P56Ie;f;2Y7V)qZ$cXh3;bJH_iFa8ZJmnA1jayn!ToOY7FR8;l=n z^fcfq#c~J|L*XCOGn@liJQHvPZ~|^VbZ=0f3gynyEt3;TicV(M$e<_!f{*WA=%I~N zI`Id7jx~n%p1iD&aRsSj>;(_`@;e1b-J~G{5Wq8PMBggX1{?-l>tT++L{4Jb^Y?q5()u<)h* z%Sk{6kE85;Lt@Q)ag^J${q%Uh?kkQWB4;OOgw^1o;-X5fkyh7V7dW{G2Bz?h`PbzV zt96EN?{}FppY5XM<_qk;ZIgq+drq9!GQ$TSIMssE6>7!T2RNNol_w2RbI22yoDV-y zQ8~o~;oBN(lB{Or+(e(ik=_mdDiqCaW_f4pu^|^H|2U49*O&ewqV<%BABM)#HhrER zzsNWQz7Z2Tr}&?BLEoeP^vLBl-IjIC$0Nc(*_+A^1d4P5GcpK52UNu;Mn(`GZjOc~ zcqk|+sFZjdf^>g*T(84WOjj9oS3!7}&J^VV?YcVzDJg?8qHH&9-EyC}IV+?aqDSpDOY&8r_?d7P~0c29AKWyhl} zO*4rK!?s0jN+ofx2Z31R6+Y>yswlnlXsugB-}tuY{?neitI{CQt0fSHD{}i{!vOjd zy|1`oAy*cklOyfVHVE^N69Z3q7D2J66r`ILw1UE)-(_dELb|ZAsf%RxjaAns%Iv+| z^%CI_z`bOAk=sfA1H;{-H)9oOr*$yjN>v~8%XJW5pqBCgt@&!Y@ggRO-vt_ z8$sQ-MrhplR(!GXm7`g&~y3vl||Ww{^?x3umy+Zx2k;YraCQp=4O=`6r~RQ z)80hwSoRuK$~N<3hL1-(hX9AbWftGkIOR9EUzs$LG|y_?o!>y8tb=xtm3A$C4(wOzBUlfq|NE|-_56?sEma@uVbC8 ztW+qkZ&@{TU5b)bz?M$gst_oLvlqW3-=xu9Eesv7Zhv}a;Hk;jcqTVJ52qpk16aSx zJFx9SsS=Z3lX|GnMLz<*(9(BprhXK7zc>H6L|fj4Ig3qbw$sd3^2X7*!9juMb$0HJ>B@T~beyOG=x}WWx=_*u= z@plGK1$Q@b3ATJ|g55qcy2ZFy>E^u(s$(n__5dcY6ET33EXRoav5pE<+wxs`|0j8P z!t2T7)qbxgpLPy%X>gLJrAZdHD1#m@lC4yGL+)ZY#wfS&!K~`j`;l!Sy#|+lNvhg` z7_Ex;qm9}!FkDSnwsq$Dz*EP|S4ImLrMf%%tcwBGX&E-`tnm8mN=8dFmiA$F83W9# zBUz87QB>gL_+3j0ZORZ+OPeLwFC{%btaJEDtMORE=?O)Rjc?Sp3=-BT&HlM0%+7xL z?rC1=-f*Yy_O_9mX*=^BxM7nGZraWD9REJ@w)XOQ+r3V%yf-ib8~1|()l^c_N1LEQ zS1BafLBT0FD`wih#Dyczmn5w$>0t5#EbwAo^ewEfk)e>6q7zJl8(o4t!&JRpGx`({ zIfmX=(tTGwVQ*J${lTDr0oe2!`JTwv{WUJ^=04%)SwjH6$hL?AaaiZe#)*JDMFn<& zyHtvUo1>r%l?AhQru;3(Q!}6%8eJWKrC7;l9d^GI>bg}~&nx(>C0Z>pKyxvntOWj7 zxZc3?%9HlOa7hW8+126A7OOcsJAb&zheI08I>ofT5k=qNtJL&#^y_wtxLw{x2g0HLc(^_~INustl40)t z3cPs|HFxueVgJzK@dr@tS>H4}-w7VqtRnJyL2fMu6(#d%R9f?Zw>Mx0n>U4Z1TS!{7t=G#toz5|Gn!!@I zktLZG2(}@kAyYaC!Mx3`@#Bja;0DkA-{W|ZTDy0YFpV86doF?i+V5aT=ieidtG~1Q+Q1FgD)K>3smzthc*ZYo;-0J7@kaN-`WB zFZy&cOWa}#sqv;h0<%*yT+3F4cc5eoqv#)JS;O;knzBeaoB}t$t_gsr9@z}D6ej& z*2gcZSGL~~xA4=6*q;&#DYZ*0elGKrqOG^e(*hY#jLznk9X}5I3U#$#rQfiA?a;`V zHOB_ug;`&_gits#!q%udYY_TxZTZ9$pS=a=OUFuAzNS)yntMoUZ$c*Ma}Pt`JE+~2b?t#PJ67k zS4g8nhUL-sVw=3(Chd!-uwy8^Xww7@5B%h z6~?|xHKND}CNCOaJY`f#@VM=e!_Z=?{7c5B)BNWOxEboSR}n*G?KaeTnR zlEF=h!Bvs2!|c*M&0}*+r zLX~^@S>k;To`5qoeLgKV)h_Q z7Roqy;GF3aP6#Lr?N&9|*i-WnC8#Z3%;d0^_U`Zg}g8NC`*P^ig$c3dOWtF0K>8h950dj8^JG zU$R=?FBkpnEP=PRgpz^yj|l)A*P=mx#JAF^+XqwgPSk{f-N?v@0-llo&g;wZKl0PbCo-|KF2!p%O2F|3dTkmsiHF)5gj199ccg$q^c?WOblGI!s_ZvNu$>3jj1AueH#174icnAF7riAJ`~u(kJwR5LQ`FE&KR zOd8}dakrtNi7DC1Suvqg=qP@v(qO-H%=lMo$U;!9C5bIp(KNh2-DgGO7&MS zRw18KEU?zO%e)m!REU*|>X>0=lup8Y-NY(e{r+yxR-r>**WBVzdL^{j1U8W%)ISc? z8fnsA=tiIC$FZ%nd00!`Nz(yCGGXh4=4Kx6<=O&z_2Z?+NZzOp;`mj7Y0tROsOt|Y zNJtxfoXKb=`DOc)&%@#VVy6g=>jn#?1ia6ufJu*g_Qqj3911H)3Xw%j2~Pk?My}o} zzamKi<56+b%rJ9tTb&Z^gi(hHl+xxZwxS84v9Lm@G-@w&BgsyF1h>g}vy8Uqt>X6CZsCLW^qA!EGsUN6rLJk46Yw-b@s^T0@zxq~vv zdR31~h+jtI)P+q)?fTrIG}eit8q4P==F<3VU>M2)`s3P3&Um zZbKq8iqWryiR5y7D?9V$evf36-$M?NKgSaWO0PJnJgXNH+OO9Mj`hd(1|Qm$iAHH4 z%_W~ZLfxH@7h)@!fYVflr%Df7MV~JmyWC1Pl2*o7)pqR!gvRASFzdM!hLhrS%$AtF z)?ueBwaXBDOap@;^F;XJaD8;Ln$Gdq+V$i{kA4n(9@dp4eN_ZD+Dq0ljXe5-t~~_v zL8ib<7r$Cvt3$?a)UYvXJX^O(jTrBJwoP^G;ro1YB9!^~hqtMW*TtXGP5ikyCzL-qx z%FamN1Num--co5am95~ROtY5?@{#GY#Y5X?@6m;pkmHNVxLI=aQuo)N{Vj zfW!T+C?bceON7_Pzb4&bs`+XPymm0U2DjZ=i3WHUAGe3axcWWl!(Sm?fF9ZM*xG-a z4{!XPso$Ceq*uBxUFHqSNa;1(NO&d2Bv2i3={?JYSb1QB*^9%)Lbdi1##)~JL>iwr zB9<8s;)@jKwuS^jGUWT;ce`Kmvjo1V0)H*h^{YN|l5EdKGpCC>T0(>TY;(_h24$nTw_s@HG#2?3e;xIgF9#I(^A|WRJ&zkL*f$UhiFWSnhR! z(_|&@CY4ksczgd_ad>d^ZS|VYN*|+X<0`KgB-eFwyELWj|q8zPrLo#c*MB!b8a%5QG2GrfPE;p$moT|LgUfVE? zJthRmQ8z*?@C7G`dOo+JA$^k+rRNld914!kc+g8fZgwq@X689zFX?x5)lz{g;jzgr z3r7&I`;cP|ToDE^6-F!tbb+M3ZQrA=uzp_k2wTDV^aR*)88-taP!Usl4n6XVa#za0 z`)m?8`*loBuh@@ZMioM(FG?9cT2Q>S^PdPFJY# z>?PiXb(#+5GA7AuOixa1mm99QixRZy#=h16e0AF|W5AcCQzv#OvCMLl;qV&!n;B%o zgkrSnD|saFOu1+E5Lar?_E6mY_Eu_!nCVM!?w~ilDb?DiHkb9(6||7d6BT&dru%ie zf9PmG3rOa7V0OzCS6L;RV@ylUWHef_)DLO%JybM3Lzc zX4cak6Wuh+K2J%+h$fRJfk($NP3ScmVz2uBNh=Bxc@t7 zql2w%c*y(A4a>+)J|`Kvk&tUNd>xW0iJrR}P1z{-CCex!17C4oyzA5nwa#jVRYjU;#1*ma}RWI6l%*=dxQb3upz_A&PPz7yLpOt>r zGCu57LFv4+HnD*`;l>?MZ8ozd8W-CmbIdZ&7f4zBpXDb)Z=?zIdvz0aeBe&0utoSf z&wZuJb#IbytI)v>&(1@>*Y|1J`mJ(+t~P^Rz}4BEo=C4BcE$bWc-RF#k79bf{$%f; z`J}=$Tb_HMC&j5z(FPc8DHw-(p5{lUFD5rKmq`7B8H)ScVX*TR8?f zjL56rh+EkR;a#9_e|iMsQ&eU2WYsVEl4Pgtiiv)o8pMVQ89aF`c6=)xpfDRkvrb!2 zUc13h4O)4YA~hn1CnMqR>04#YWW|HRt~$=R0+nYInIYV4f57;JZ_I3-O(bntEXR^8 zV+{6v6G9P#+P98@POTc(v|Q@dDRB}#BI>EEIcv`5S0TE}ff>wEJGN1)swJ#aS(?D$ zWHkw-G#Q+r*d~Zw88CYiojjFC6Bou=>TD;*p7j(6Z$1_ZiH)`Sj4P!?O!J)udp5pO zywRz=Sac;K-&-+GmQQOrjBkmuyTVeFIujYSu>r*fg~ydt$(v-Zq&iD%W&Ucc{q?zk zv)0q%7Jf{->isic7tYY+GQwAcDnXyB#-?|Pkg`WKKjNKrH`}=r zD@S=??G~2SbhGNYdM0h5CZGW2w@5z6W)AekeKkY*uI7F9UTCzXfN~xW&S__~i5pV+cL4k1)KBq=7}Z za|huX-{x$pkSP}AiQSKGB`@QmK^Z4w`m^`+e!}xhFsF8ucCG5{&5q|O?{mWmoI~8S zP%Mu{7ooUhBy~mmq?`g{0isFjMpyx03>NByqtA@Bqa7SH>X|(FR0gNBSE`V#PRIGD zB~|=PDrlsZ%@T(%LO8hA@V)5%lw-Kcar~{rjGh{FLLYS9Mp-JKYkMNKiF$BDAcC+Qjeh*CWD3*fg7>#AZW%aKeNFo7@ z^}O;>llF-311Clr0dCV#ZF;Y_8i&H;_tw$US(5RJx0^yB_z}AB!u{@9-GUQKS)(5`*`%OnvnjT&T|9ZV|patXK zKy$_Fb3YT`U;WtWt@-mE=?VfPHhFq;ST7MNx&7C}#W(;L!2N9oKZeuvJhn)~05`Gt zW5;)s_V;Ct7t;gmKkV!`5OTmYLmi=YK<@j!CX0WCGnmP8;cW?_cYqLFgYOd|;+aG) ze#&<#ntuj6z95LI)<+Ht0XP0>>T?h1Z`b@Evn3Y+_LjJ9@GV%-b%WLZAI9O|bBLvR zBQ_zC@)no|GhqnI-z)g{XzS^p#Z@nV1o!>xp8qk(Un2`<0}F#@ApU1OXI$=o zD9!)Mn%@wHU+!+60tiP;iRJR@heMdjKjW1DHl+NRfjhhWVX+YTqcFwYW1qYKe+?*_ z@~9qhE&|4KG3fJ!6HI_6S-2IY0pX6oBpB-10qO--^I#}@_lnvC%WM_6&b9C9ZWEL;@2|$>bjEsnw?&fkbm@PSfpiiHvqRl82rL)p; z0W}MsRjP6quFg(m0}}5vew4B8m=~r@63HA$^-c$gmUA_DM(~~f5;|7PQK93x98q%T z(;tHI^>p-HmIF0J6_!(i_A|>e`gLzxF`(cej8>*{njEg|2gl)Q6o{i|_QQXmg}7{GS4s zHCH~X+s6XUI?M!)?#Qzio}{{TV`Tk}``+=~CH=u92=chTRLV3E4?4zL2Q6q3q6{K2n!`qf==qHofl?zJ z-jEglN?!wEBP3nr%R4<<#mYi?{!xUAttO0}otawOi(`v@kL%=x=1}2@vek58KhDE3 z<966eSIli%aSR@KPX0XW*Ma~c2!if4ye4%t^z`zDI(1c+F1OEnulWZ4An{@tSYr01 zq+phtnC@5~2(DtW9a(=j&ji)eF||JKYiTRDZFCDJS4D*MHZYezA3ePA3o;PDCkTpu zPVSwKGwZ?_-9AA0dl6430x{t&J|u}wwbMjWT4)UQ z(UTYk#jwFo;&g?t;QfvMsDmV%qiWyQAJ+fR3t*Mc;nu`4JN!k&nYDQO(qZ)hQQhh54t(vH6KlPWE%7|L zmFE4kOt-Oi{@pI!9faVUYv~Es0Vv2=XkW&%t>K%*s+8DBql_?KWNXH!h4B?~^w0Ct z79L#hzJ(v(7(3NXt0XmP$`Oziq9h@=&LNt8f3vsRfnFlkg*uyFE30efpFMkUK6c8* z8iRd(pa59+BE5AP>S?<>xPCK=d9uFm9S6}~_H)}_?u&nI6xAFo2$CRZNZUez>+Th^ zf%xBjUm2JVI#cMh>q%kD7+0OOJ()1$a$PSO2al~=$bFuS$xA;zS%0Ji-m15GOTXts z(ojbB`kO(?H7V!A!iMJ7Cz@7l^r@+XD7uy?G|x64#f8~gZEE5 zR4^nZqpoWN;4C50=XI+DSdw60CW@Rwn#F;xmV#qq%`_{)p^P)j@KTp>v_G}e7{fOm) zOWmaH5xO`=c{p*(I#BBt>!XyukUquk)>q2u`D`*=>tgJ@`=dc4nZfO0V(q)U#45Y* z+eyR4h9$_sVz5bfx`y`)V~xJHYiZsruDjtIm_VJxyaPU*sjPXFU~>RijX@?pH6WVo ztI!}HRXF!>4VU%Zp;1uV2m$GDjue`&ql46|!+>k9ERVZ^d#;gV^7~KtpRk$fYrI=u zc(5@6%QAg+v^EkB_z)PY^ggH~zH+vY5-MmxCRTFPH{wMP9dv|`qe#57mLQ^Ox*`_| z$3oH%BDvn{Ho9Ca#VlX=AzilLq>eE(>2BEFY4LzUZq|6TT}be}Xr+N$cwc7cyxS*H zL928ZU;Xf8{bJZ|NB$h`azF!HojBEN@~rmShL=OYlg$n7t$sn?O+RUg(d4Hij~vk0 zY`BI;tP%W6CMXlzO+pa~9ep%n*s_&$(rqV0UHR$k=X6c$&ZOS9Ej--ac)(UqigE6l zh$1YV&3F|X0&0FUjR?fw$dWW{^jkwRrU5igB8$2}-;*UE|0#M3EgC|*mtyusDqDZ zKVmhXRstDIa#aQe(=`O+F&k1|%jneYk{oT!io*aZz?YA!9YUnR#^#2&pu~B94$YCC zR8DCN+{C13uig%lBsoAc=Kw+L+QvxNU?-i$oW2<^P78hZu<4)#+hqu7U+u+6j;FW3VuB5}0s2Ap?i{D{^%jjGwplcf6S8_Q zdMLqYUQtnQWj*r=5KrciHF;z+uTO=gBqOuw7g$}-6R{iFs#AFQiR{nH3req_97hRo zSuf%l%3`P4LYUwqR zu39i2y~B7W=*Kp$b&@Y^=O8TKjgFnviKnp-{v4*2x?IwP9jMd(yeLfn42^Isrd{g#$8`6NMcu*{_&W7{y*U=Hzl_ymQXP{`A2P1zD5E^&9TJ8HmKBv9w-*YGuZ9Rw#DHU)%MW*ZEZrTq6 zAz`8vh|7SB`7*>XkGot{T`!9TbvBd+&-t>AQhU^sln8uN{NL6@i zj}ZrLyJ4FiAf!R?1>g7Acm|~ODZ(L@rSOsljDWUrvV9L1S32IT=>)9|u zzWAp^EZ68Aqh_v$)|cbD(euxU&X(+FxGJK&h*W>npfvNGfeA>iEGNH~Dko1Sc(b#b zjb*`|37TQR-0r_|XThm)WN@uJ?&BYw*e(&>v>&dqc%%-@BO@4jrLE>?gBY~eS(2|x zz;Va6+Z(u>1bhqJRs+Z#A7Cq|MDD00(3zu~d5>nW9A~wVt=5+}cY%Ad#JA@nl4|TW z2bfFvie$pX&W1HYV4SYO=Zwe7{!9gm^7%T?E4r%^u2Hvn;kkTewu|P?(yFI&?+;Vx zmn_g!z_~tZQ0dF7Q4rMIGKjYdBgIw!>?-{U{i*YA)z? zRr2+Iz1fTB2Ms)Yl@IsOwTS70gW8IDm22PbS=r558O)AkW}RdFQLGT)zzC2N40X#X zfwRaYu~}qF;xcx+h#D-0fJh*&by4@p;&UFM68GoF(Dj71B#a&`{dMY|WCE-WhvUab znck%7nUv(0c_peqFZ8c8 z5?S3!Tim5lDsUjR_LtI)VZ?e$hSv+&gI0u(i1XC5lLyK^8fjFT%EFo(lTYK<7km$d zCb50RO}@ySBSkLZ@WS)3_xa>eoxR8q*B6WqaA`63BAaY+0nHoZ&pXT& z5GJRTZZ5i)KDp^ergakPGi0Ww65QT~dS;}AJ7uJVepTs4>(A23ydE}O2vj>0z?}?b zVvCp?Ktil2IT7LXM7hh4NYRI*vs%qN;&b7Y%&{C3=h1c$Xw|}PoVU#90Hm8z( zOZ*td=5+9&tjPXp9<^(JOPrTx&JKYVC0AlS;)CBQ1lm&sGATLzSA}L(mQ0DOE{`jmb+!i)izzUxy>aTBFc)BxZ#uBDWB@=VKI4)5P@nr=2htP5+=utL?Bs|wF zk!#DGT#@$Z@50qByd>OaV)063Vs{_wC7LpwUQ6rIsWm?$X~wBa?oH;S0NrU+!k~Ok zX8rLV-@WcO!2)IatK|~^IZirgiLm{(e6jS_P*AvpO=A5bQ>ccA%*FWDthy&@9Y7vD z&x>Y^;c$=pFc|z5VbAx#MTRi_xvsPK%c=L@UQIe~g-uLHdjTiW4!?(V%OiXQ*X1i$ z<08^=n8nHoXUp=nJ9FxSp`1G;^1l8;glccwJBRjX zXZ=;=F0>IEp3!H^G zsLnflrSw@V_?@~BJ*P?1fV^xGd$~LxM0fU0eJhTMxpMnOoFdj9D%EV8DJFqynKDU5 zQt#Ye-16yf(BQ7@3!vJo0VJ!?cM)WfcmN@1QCq@BOipofHwMN}tC}ZNZG#sU`#F2E zG+VMlnXIS&uP8c4MQ(GdtYBB)e$>3ta?VXIR=eKDx5mLTm(SQko80{@27^MTFjl=r z&(laCjX0J#qReY@GE_60@rd2$0qAIo>}m2TB`z_l1!ECC`-*h)Cn1VRdi8d)i~MG9u6UZY zusuv6)BQ7MV)NV!Ex;qN?m5r!z^PN@ij>ArTOV9VL{5NY$B^%ccZLI&qKb@>hAFxUaVUA5yZl+%n+_*Tv z6)r}lt6!@*wPs+Ou_NC=UKyssm>G3zUds~mE5KUw#|lAd>Rb}EBmt-Z>05frzU%qJ zVx4-7-n{~vnelpHFxf!(1Hz=PW{PS^5P4t22f-Rg1Z)wDqYY88`Qz;g(Jb)O5gg4r z)WGzdijOXUUV_z1N%gWC$E3u=FjO5nUDbB_I>FRCd;xqE9k|$ixsoti79$%$_JE?2 zycsf87T$1k&CK7K4Z|FC0h&;Mb0(i;dJ|vIz=R0U29L&MmxmFdxbVjGvZ~7tc#Eb} zH-mQMxKidjl68)Y`T;EomiAn}d7{$^ z7VD!&4&9R+zZr+FJoxn9BP%YbJ1fpAZ{pMa$fR}VA=lRk6?XSKPbXu zyRq<V( ziIg{L7B)Hrk;ux@D}lriuP173JTkmoW5MwSchBmQ41ipDD7(*6v}Iq#kLRGVQX8S& zsfabYkuCy}Ta+px-elzd0aBUPe2!w_C||ukR(8R0WJ>RH-VZGE&Z;~ zJZD0`rGQ@LmI%C|adL4fc&pj(|NQ*fWdvX@Awr+e8JVvHlW;m%iBV?1I-}CAF}Sgk zAX*oTfWg0W-7?Y=g+>LCc26iGcq9;urQznnD84 zUF+s(mE<;q+}1C1F$Sv8LHhIZCGizlK3@+XNXR`r4p%9FaE^5Lm!}r&qYXnk$Ya8| zOpWR2Dk~S1AiMT82hF9~8L%U3k>MW!5qYj}hb#s>O!tU~K2@BSQb9rM>X8i{30hoU zeS?drW#B_A@&Cxe+0g zq}D#ei;XIAV8glK8`)0U(NP^612~PF(lsr1&-PnHp|2O8xB43`c8H#~fAz%UV13ru zN8OY=NLBPl=#p?tC^bUKmjU*tkW`AfgJVvOPmu|?cG-U2tc|x_7rLWrPN)p2-?4pdox|18o;eHBVZiB>W z+zrkWj>X%ra%~+|A-sx;qL?!~V?OO~CF$%~z0{KiVrEuk?IgX^-ondO%B#@0)rQ4K{J_B(1XkkDWOX$fa$WIK2&B)>DG&wozD=!lbU7G> zls|A9r1;ds9}_1^<;z%KgX6kRbCd-R-jFj;&gT1L41a{(;&?3q=-$Acw&}gaYI_UO zET#$xbJhBfO8TD5F!~l}KRSVTxoDD9BCuZHohWdynisf4PeHpL0jdIEpqeol=-~Xy z4;h;l3jU%Kfav~ywY%hqHry@eukskQLT>RAxSqA(=MAgLK&eDb*zbm{A+0Y@^+cvLgr7`EZW91|lnb>)MUJOm zo2f7;-bi&uFylVCF)ZZrm*+=~X&4^TQ$GuIx+ncVs2IwgX-HMVy1 zdYaO0p~R}HvC1MRFRC>!7UJqtuAFqd@C8D#u5Xcv2t`wm1WE${G@R{5PAj>DdNn7v zI&m|2R?A4e=6wVYTtDX^gMv1dC5YD-D-RrWvjdZ^qegWJ_afagvnAgKM7Q^CBSAEB zk7e)A4w#^yDOtzgNG+XxF$CgJIeof{#4HEN2wKbTwI*CGr?;Mdis5JA(Bw5bFyEPa zRW;b;BJZMU{+en*KcUfqF+=QPX>}B!)3r7cqS$T~HeS?a+5TuE55D{O3j-Cbkr@Z% zM0AqMerkFYL>x2ThyO^D8YmzszYd}n>^T|3w^cfgO{zR1yP`VArwR+21R!(#(Nnqv zaZKL@(yd`nsJB%!G&Pvt0eFnMgWzD9HNH zA2q~TIJrTB7i)R*jdF2|=Yn|`;t5d8aI^kbb_HtC(>}M=n~(%1dGCi$wqydyooqy8 zT{_SOdvr)#w?f02Otbta%@)P`eiei3PNW{NGUy8~FSfn8mCP9%CbGCcwwT(Fi=;S? zsC52rL=L_%uV`Li&OL$874(@SL8kjAL#LYMw;16HI!$v~IZq%o>PLz2f_p5^(*{{= zt_IO<1j=fm?`j<98xe7b8#ZUsAfwlB_uBLgNWvzoOR=@f#2%XA*?BD(?H^7=Gpkx! zM2uWi6sY!3&pmFl0bg-NAmcEpVQE-ACyw8rugPwpk-Q<;FYEl+Xl>9%RK zZvb$tDVl-nx;s%yek7tj;hU>0^@<&I^p@|Q>m+JFg%D0-*Uhe zFaG%3S^4^)V%$zWwTGvd7`&1aYE1wXt(q6)bGp?z%%aCjuInb4eGSKP=lC>&YXApY zL^DNi<$%F=O^R0C{&Qxj|8=dcK zsO-j1!1|2%v3^x7Ni*{EyM7b3=vnyZ~Oik@jv!ja7-4dca?i4*Uc7X9PZ-IfZE8zCnC_6{xu39}! z6LP+=mIf0Q8AWXxi!;R^ehJ(oo4?%NG?`4K`srDg$lacqRaqL!gv!;r{!=19{pN>Y38?kdu)~`1^>6R*7 zQ?Z(HG?Jyl>pPp!+~1{T+fXWsvRbgq>eOeY`M^0>EE9!lP5^lyfXy=VV(a%)^7V28 zz&4(bP;HJxikW+{Nlw5$h*cl$k@bV$>;?yl9~gq5Ov<>IdP3GpbQzZsm*SUwj29`+ zw1rYan~Kz#D~sJOzjl_CgClTDO^uPu~lr@i*=(G%U^ur9Mp9j z)|31`?X)ldRF9&q&D3i4i%cBDb#5^KYLjuF3+{RHhm;Dp=&iN!@#9(?#&Lp(}mLu5}a}p@(Z-D$cS|vdL@deGj z-26on!80PDz_6X(uH{q8O?4v)jm_!w#J1law_FE0;|>BJrW$|xW9;r|4iO%y@GpMQ zsMpi4H*dNVOlRFOUS~gA>|-#F&tUjXTJm8BC_(em)1vTSuzHP&rbwry^Wg@#Vq+L( zV0s*Prif@tXc#9{K!6e9`ZR+cyZs}z$dGTk5rO9G2Nm41_w$CI1N`Cjg+KViBJ{vh z(YyGYt$vZ4{2a;G()ISSXnd_IwMY~5;CoqvaJ2yZEOf**AA!o~JsMwGsa)d=(o;+# zjO&4qg_zXI6ea3k?{8K#@;IGu@TTCpPyf;7z#$k1kd#ie36jWvwR=*_oCo3eH2wo} zpaYmu(-2NVl8|3irM(!i^zVQEjVpNuP~HJ%zUp%y_+O2FN05&9yQhBB-vtoRKBVK^ z?bqIu_{EW;J4QJF{h&Wufk*bg7kWAgue_h;a95?Prn zb&7s{_rbQ`{GVLRzdO?eQ9y3!>+UDbUp+~+%^UK^A^3MA4rOlHgFAPA{>s>-O0TOF zL@hrpV!P35I_cr=0j;4+gdr|V#3ktR2nq~NB~={S5HSg@Xpg+XZ7#!P~n_?HF|%q-yQOW=W2IAsGH_UqU4$&*^iX>Adnuw+|A7;aOzmT!Hyn zFC&l*Xa(S2v+@PvFc=$DA)Uz%I{a;`8eW0PVn3r+wjV(KIwhCIO*=PtsF<(Dnf^?h zbH|pOy9T?6oE()B? z*a4(8^ZZGJTGw>-dw&&}mMN^JE$$bcP`H+qTu4rGJ<2O+mAdF@y?7p_0-^(zAjmB6 zJi5`|!7e0hmQb73&oX6t-o$SBPmS5H*7W1u>OgoKF2dfnhM1zK0HTHYCf_`%iBhpE zAchwWCr+ucgUigCW1nye$|=5fJjV7))Zbi{5QMol>^BL4_<2zsWl-!HY|Zavj+Qn^ zcF@(}R!60;L{V}Z(&)6AKgIL0BN7c2O7rqwkM&*5i#smPiF0S~naucOTK+vv;{V5M z>WT(bT((>7@)8kDfVTb_6(G>yuwIZ`WzeRE3_}mkkIY5}d(Z`85+nK1>{dFaNNrc| zywWLOIbJ?OU~P--j{%x##ZtT+=9PFx{eh5FTxL=+|{1>x{pP%3P`jWGRkxd53fR{R=6bnWl^2@q5mjTY9r2v8w z_-&E@@HrH_Tj68rr*^4pPezlAj&1ufdg0Q?&7SuG1bz~+i}?+ah&NKRh$*|^VzD%9R%U|m&RDW&~@2tev0gR{UOrmGH7tQSRim{ zIkT!bb)f#>(b{B$^r84AUOSCwWz$j=7eW0KM=|y=ix|Vn@N(UltS@ifba<;J9r|{L z_!QuaRFYuRgP16IK+JQR`rTSVSC&fyyB?=i{69_MSE2Ml(IaE8^ogK-&&wdbiyTvtb0Cv&OwB%TBc-) z>|uzL_LPTDOs)184b@5o8@i7G8j|N|*LgnGLIkSbA{ zC%-1~;x`G_wucv{$G%j?$sc}S>3Xwgw@9Oz=ZD4b^ssDCYrHJE*CLIvtIIxFK%99s z7ZpC+@0Y>avoU(A$Juf$E>lcAmtlc9naJCxoWZ(WG~8O4jH1JTlEqu*GGulG#!1V4 z9pRNDla#}!Uocl`L4T61()6dZ#xLsehwry^l7s#IOiSJx$vH_X*;KR$P6zoOjS51H zVTovJ()*;Jm8ZM$nAZUI5ZW-Ij&mOr3UrX;@!R3tFhNA(I&(zr8i$URh3++;lt^T= z>_<%!`D4?wrA1^=nkQG6S8JVDbkS_48WL&4XlJnxO4*{O2HRvGqR?hD=w6I%gG=i4 zJ2L5ocor@`V+~W<#lOzO%#DSkxDvdk5;5riA^YvnE~l8ree1OJa<}C>%X(kO{_F@z z2Kw-9gR8`=MJmd>k@r%0(;b@bfn*kxuoMv!a8HUpl})X5&ijc0?(+qY3_}&BDY*`tw9m zdRniRaBy}=E@Zpi`0{iw54h5IFyH8=!Oiw?O@84A!e_bn+YbZRW`TuR;#dJafnyvc zdW;SN|EskS`)2lc-lbb=m~(Qb>Y1=avjU`dv+rF@S7Oy6B<4sez(w&1B=z;OPLTVq)?7(Z03idfXOFlOk3@BOvW#i{+- znAu3CV1i&Gj4Wjj>97!|N06#vz#tNwUf55&xd_BuaEj#{50)AheQ1^CSaf*vD`( zM?TcYs(iIlM-Y(k1+fxHnKshWUCh3!U_P5`gdC=tEPSC4=a(oq!P;FSwji?FCCvlm z(f_nhxSbC_oNvn$qJbE`zf2VPoDTy4&$my#y{YN3RI0xA zEQE#K8OWxJ`9B~V(ui2iHb!_oV|sRr@!fiOIj#Vqm;TTRgs{{O|>$8UYvy)&z`V`d2b{xLq66%dABJZC$jg2md z%c1S!80xOUBj>i0pVW^CL1iS$zK`Nj${h_1yYj`g%wA-6%+(yPi+~zAMAxwWMW2S8 z7|rrxy4j7Yx~AalL0U0=KF#{o#mV8}IxZc1HsPOQ*O=f~Un0SvgOLg`DuJeV0M zqEg#R01h_Rhg>)dYCN^>S6o1eM#j{SJdHN6{e2d$AgnZ?^vojrsm=VPw5e?ITz$^+ zRUA5r=Tf<2-`n%eaU=X`N3>;Z_wvj8S9wDrz593`)PNm924TsDafMd3`qdS!Q?0U^ zD`>h}j;7M_i6p?uXe>eH01q+GQx$d<7KN!ee9m7@ODK)&P6gb%1i+FGuvN>I6?R|N9X@JoG zwk4>;xGkI{7XV41PqG59C8FtR4qUMgf%6yZg=<;L%XM9gAK!p62DA}EnQ!dg%+m^a zKDRO1%uVo3=@jKBFO4jD?(CcL=jes=lk=f$bKfH(`nCag+An1Pj-Y)=JP|R6&yV1Y zLkN&R?P93vQ23TH79+vegP-=X~do zNIfz;-`#m)@l0c=(0yBQlSXVB;c#P*Xp$`hcCJO^f%`+&Bg{NKcJW^axxiPq+v-OS z;Z(U#)6|qE_SCrES=*0r+tYs1xAL%e^G!;Hj@FVr1_YK}fxaxq1kE@QiT-=Rp*-bs zztF6y-BlcNYL|^I+mjCMAZ&6RimU4%X%6SqmYPc6*1tC#+ouIHxD>!4wmbYBf4%1f{I6 zTEB*bF6ot%82*$|NKN}i?{*fRrjdfzIFgBFI49)nY--i?v=bfBZcGcxEv6$AYIzPF z`Hz{dHyAFROv|pMH8@L<@ViBy(6}k|M~5jcUDc*Luqbx#ecnaN{ZuYKC|CdX2Jia{;4?~@w4}~}#q@zX{q~F`WQe@a zM>R0vqoW|AI0TlOFIK+0QOC8AJREXMA<|*ibo!Rf*Cb}fRekKjKu-G@3Hk3N;;%ox zX5ZF$47;NP0R=RC)BhLDj&v)q75SCy8Mde%>K2I|UpkGv=5pCAbUoA@Q;(+BA#-Xp zpR<{CY#vv4GeM|0o9oGPELort{_M2PT#P#7Vx*3>x|n+4+)eQ`^G%{3?3v8X%$Y36 zQmK@bmDY6kNt>^$$c06}X3#peBJWPmawYxvsncskM?}b5G9{~V${>a?IBj6Khgcvb zSru}|RutN^vsop%#hMN#+;pqSaMt0g>3Fvi(O`zK@9!`A))!KjfkQCElkT5*f)B}U z_GX?k`gtIZq;1siW^003uLU*JM#YI46jPquWV3bCCzUxTl+d8z(#m=cYLs5&fdSJobUN;8zxQjaSy z1&_DgKNrWZKMsybQUC|;SGPEzTs4?QD9{&6Xl4n~;Yq?rRiv@lBM#4EU#W|c>shq# zXWXVU7Ru|4MIQC;gZKK@Jlj7nPv#Nin)V)Z9&Yr|4Yg(Ta??R6UPnaGp0HgSek~bk z9PGiIBEr9aAw)N2oe2qT4dr`SpZmSbBj;X)i=27d(&0t~qQuJ*n7YR+U(|X93$aMq zM02A)wT~{e^w_c%siJ*5&)zS0c0^KStuq@zx9|Nj>G_9I;jiVNL4FIH+6oJ7enk5P zqWBr0io~*+PsDN>8m)VThWpKWIENGS+$>mi53P2%_qr+=ljAI>PV-1IlFZmcB&PX1 ze=J7PqSSj}3f%STlWa`Fam(c#c}4s0G}9;k4nhT5R`9srufr-}M%wYeu_9&wJmeJa z3f6rJ+1%z;R^7?1m?W}j9+*S*qrMz z#y_*Q+XWH&&{*8J4bczZcp3{icmBEA`~))qGdlp& zRC|;QzMIiuYG64dz___S8vNngzt8;-AG~je7O`_CfBp8EGZw3QJpVahx3W-F0h9fH z-!dli`oi3p^{i+AF0#Jcf)Y+djA_6x^wpt(ibhct_bo+*fbi^b#?WDe7E)6*nYs?k&y7IJiyq7>Sc*x zQAl7-82uDXJ~J8SbJ|~0Y81Sm#WeJ|@%^{Uvz(R)%3|ER4-Z0EG)EUiFq&lq_VnAb zss!O{d%AG#1KF3%1W10yMD?6=0n-X{Z8vV`YGO5a`#W$1(V#pC5b zDgOh>8ah6bdSlImAWJi)`NXs9T{=b$wnzE)V>yjR8fV5Gv1nJ2N@xnLhQ zve6uBYybDc{O~~&0|0yO82b5=^N3FEKcD#Dsr4bS-Y zE+cNpJ7XAdV>;C%OS3!0u05}9m-gi+ts#%xE)OG+jX_cgk;c(*H5ZcN-Oj zbuWY4-F|YRRvC!1O^0%_fv`UBtSgRj2!LZpcr5?Dt`3E7jbv#U0OH-&M42LNvO@H+ zw=9dtEDx=64GYj6P)a96X-WYeo`Sd|gKrS$Rnw<1oJTZke6{}SGmkr%`im{vI``)) zdvfr7^A#swnD%T~oI2dUjh;24O=ax(f*tk8ZX_C1-Fh}kU!S-X`<7mwf8RV@Tu1|S zjYWz{8kOeRv1vTkUSi?Iu$4dM4}UG#bdp_8?jN7 z1FB}}CIgur*o!|Npc3<>dpsq!r7eY0F;wXwJnJ69bjUq=RrYQKrlDFPH2c_zCf0$T zCWoZfMhdi=q#15C03a6lG1g*q&|9dL&)Utvh2Mi85cNKwkd4>UsJGxLjfmaWlpz$i z1tPZ6G!zGh{(kK5OZCTDIwdv3TS-QxCY?Dnhkd@nlWqINUWs@ZSbxL!|C6#?B8hxS z&j~PwdwZF*mYZS`5^hBUmwfM@m$eXOu7a zh5;8)hwnm@pRvEMuNUM(P988Vx8iB? z4Ucn$x)nWm_)x(M0f|~VktM$ZpM+$&l2NDbqnlVIYCYo1cw>X9>ed4!z)5WGK!%xn zC|F=>?x0B>W#EJJ{iQC|EnPtZmg`9cDjDf0E~)6g>(FL{DcL?++|u+Y!J%4gi*d#ER{@!zUJIgQ;^Iq)akVEa9A&IfiiJD_-b+@o1lUqEXYyhEGYtIj;rdUH!xz1th#aN4kpOW*f>%-% zXQbw2jTAJ(v9Q*Rgh{V_aLRPsLAh;K%1M}ru=Jc$@v^hXKGZ2ybFgw_5$*dcoWm?` z*&PL}y}kv$;DD@fJ}h}r7i7UFf7&Yk553>|i9_6a0kT4roUhJV&(86|GhIJJ&82mJjUF6zBkZwD-8W z{NPY#$P%z-`XgP= ziILB4@t2;DakCHV$#K3AiceCf0RoWh_i;IJ$l=H0Gm9zn4Xx~`%d(a6m_-)L?;J_R zeZbi~0##Rpy$1}NC+l6R65IX*Rd)YHSS-0EEGk7`WvNTxF&TXHL^_>FVz)ABJzS5? zcXCbmxfv~1<@X@j7SD!uF42&0mdB3|lA@FV7?ymNNH&EVPL!%GW0v(3t$qHQ^B?*0 z38oL_`K14I@dDv=Xx3cG$LvpUTY?pDlTdpg2~`+h=$1sshJU-dkYFuPbpaN*ZY|@v zUN9>l_zuk4wjS=|aXL`2-m`3}359`W;!lms&J|Ey?qqa)$La2UcT}31^9+KWCkpGV zjBd%bO3kUBS{+!#4POT`Z4G3A!tVwV<>_s7yz=6bfj3vN0modDE+5`+4Z1HEdb4=5g*wCpce<~trT|6DC#E5%yxldv6W6c>h< zWzQD<+^^jaXOdHm+p#{^w3X zSo=`pLbX>dC4G0$dxrX?T!RBjeA~E>$iBWwoi9l`JPPA@wb1XCdayk3?l`ISdg%YE z_x~>`$Gb;N2jyh$Xjj7(Qe4td1|nMSLXBEvi#&~Q5F2XD>v#b$1Bso#p5EhshQmHF zk3j$P0=RRJ_|`V(5h&Ik>Wu#8rR;Y8BHt&3h1L+dFh|Ny`)9OrcBDDhKO(GpNmMY#c7fy;W^Cn*%; z`yVbOe?4dy>oy57%$90J%IH7{@HYl#IB|p2GroWA@plkk|IAm&*KYF#UR&?~^pQae z1gHQ9{Vl%zOBpD}hU3oavUEe>SO4)eM=T%_Ag<8TeOPcCoL`o%eEF{w0PP(r@Y-p8 zqGaL+K9so;)pqxRA=6~M_wdm_Pe`DDpWfz!^>a&Dh#Ta|*lzqe)x5|%*({pP;^ z@95z11yUASb($#a4bkMUJkmI`-eu0}lBhalkBR=35_}Z|ngKWsS&kf%$-GJ3sXP$k zBd#wrY)8tV_}ABc$OQ-QV5OfvNWnDMzCO)l?L7|qtdN%~~`JL>0n4UC|7`ZO$2 zrx~exXvSWry)7%Q;xQ*_`M(dC-vgG1Yklv4Mcom#cf%0G>lpab_Ft0&NT2{>23mBj z@=!2`r&G;TFUpzYVQDNWl~3$nv+>6)0vD^a%r?P`Tz^?FsO1>S4zF6s)1Tk}Tmg-G zUs)@WiyHHR+o=dEw{|*iG2fS-I(9d>P1&pV{^x^Gtb1GvO&-W!K{hoL29VMk?pW(LNg z<#^gMQ~yO0xHJOz&;MfIxcwzJckPTtl@PmsxC~`#)RxprAG)R`lR>xC17vJ~bcm?{ zmCJC9i0O*$@4##`r(rly`|$xhfxMIo;;whP3d)fpG$xHZ5E(NY_pw>+FlPHvU1r?h zu?X&2@Rsz^9Tl7g6!PU@Cy7WFJYN)&u(GA4J^gZk=3cO6I-5__5=4~Lo5n3XYo@B% zLogm#G%q~33{$6(T0<+pY39x!n1{S^5U;c%e*{^Tm8e#1$*k?;AAAOvWQ#q&C_O5Q z^jr{mBJ0A)mpuZ8U)kNK-X>1l|Lo*^y@Mh>Nyy`_Td~2G-mN~p4&cEo?%e^6mNMqs z@5YGTsKvVDZ7-xXbv0U zQ)sq$l%LH?r>I_&AH_MGUjxwnx?P=*;#z-(Q-f}!`+)v&)=arIdA-}k=-Y`#&Tr~pkvMxBonjJ?XVg~)ZHGPI z<9Z3nHN_)2F80mxMZnFI>o`E! zVHIl#m^-jIjM|nt8V4exlfB56Nby5GxvsB0T#s7j^`=M-N#pSz{3PA>blF|5TEQ1& z_&)IzNzq7QgT=I`mD{RUN~82$gSzXxz};;wr~(iZnareaYfE!lFP_^$rbkzVI z?5~*OYxKUC>GAabaH&Cukki3(7SMa~hb|k@G%9yrMRjlGm>#TPf%2QEKLPxmsM$KF ztiDz_FAop3o8MzU(*Uh1OCs$?9NT`$V4@>Yud)xAHpvZYgo5P(W!;8yZ#)XAOH6FK z#OvtZJ9KCFvJUN8G+eIP!xr2hHw}2-Ua3= zzuZ}@;PZPS z(HajpvF{t355Ub1xwh*=|A(%xfQqAAvu#|01PBC&1PSgI+}$<70>K+6KyVs&m*6gq z1$PfYgVVSM4eoBQ^52;?Z)WbSvldM^R9Drhqx;)?e-nL}BxuC}-EkR68L=A}!ez4` zw>jvBQxIYPKbQ!wjqhw&<_jUpvY#{o^D;v#?6GL)?F+dLZMmBnHoE;w(0ySXN5IeE2t!zd+7*x=ZZ4PjGjuImQ_xdOWr{)%j2L!-@fk zN9}ixNh%LT-tem!;V2(q5Uen?t0~cnr)If**N&Q!LkPUO&0ZvSDs|2_Lcl{Tsp|fk zJqirGtsox+Am0}DovP1f7LQ%0IU1VqU@;4p^2?vR$0F93w>k?eQbcrGH7BZp1zd&7 z6Rp@Hk7e}f`!1+C+w=8|Iuj318v;`#!qQb#zqhyh1dJJTw)ghrnf2;FdsM$kZRvZb zH93N+iZHa)A%T*0O;VfM04WLT@OfM?9aklK#LmDf+GJV_B(*sC*fq-WP0YBDI)~tu zd3O_b2NEn0ak}!;bDYd6d|#4)RXG)i`<+>)QjaUG=m>4_ACBpg*;ry8t5K6y7dw@m z(X5#*RPsihl*2l@IPr=57!i7{Fby7Th8)PNbOBSEd_-6|TYrokTs_v4tLR9K4OV^;=YKKB`c2o4Nr<+k<;WmlVw5ezy=xqd#5XG7jvz`fh#LjX(N z`U(Jd=b^kUpOg^ar#xiS-Su{18N|Mp%=_j!0QR{y$(SVHH$esOWw&%5B@l`ogpME@_? zdK$)P>B?D4t*Qrbyt(HUnwDig}8vAUURTiX?)8Mf)%FJJ7k8Qi!GGEREL0jwXM(`|A zeBbu0F;$VyYq?NxI?U(kR&=(Iyr|Orbq5QRf+u!`XpScc6Sm+&qJ9^dN@v)1vxK#9 zxj$=}aIM?oH1B1jnmN*S=FgUW`{9#Vm4wUfBoaA+Z!+u0frCjiS|$pVdblTY5BR%71}gQX;WjeE>~KfDjT_YaCtJ=>&j zHux5Ra)ooZ`zbJB0L;DbAmA8=_ik%1OeI@5*W2^!ttINJp(ti)9-CbTpBzUxfe^9x z{Z$m(HDJ)Q5u8@7QYXo$+1u7+F)|t@Kt-WRXJ1oa<#Wi;;@(p;12;o9)Mw`Uf=Vh{ zFZrj}zQQ&*Ad5f_uCjqyr;}1ppNdAGD3LjnrHc`SO zsqdps=aw|({rQY{e-cYEnqJ2>Y8FShlTZBCJbkOte1O)=T+f^tE?(>IeRstPEK+r% zWQ;^K5QKa-3gt4I2D52-@J9&0alDJ_v;Caec^}-6?Wrg*=PRT&mJrzfMSq_2MkKB6 zlHnZQqN7jVJX(bamyy=2?P{gq^>N3Uhu$~&3T>30M_>}lr?81qUir-5Com@bfy*gd z(2g3cCP>rV8zx)TbG5y}>v3_%$=P@k+fe;Pd?{ng1%cO18p{yk#p^?V>ifJQ1{{qFTTmC!Re{Q@Bzdzi6{7hE z8uN3EfJZ=kU6?BHeJX)BTZs>f1k+U(5a0SjU9e8Hq2|QHt3%$Nf9q+dtN(=-|8~8v zaX-iB4Q~fQy;6s{wPo*{snrM`A)TQV&B&2#mAbPNp_Z$gF;2P7{tWG3nSo9Pq20c( ztL9y|udH?5Z&(a`{(QLK0A@Jt=`(8T+_y5(;=FU`=D(!v`CTun{-h1!^QfPG4-6E} z`bc+vbV$IpLwnPe}7%3K1~6%R>7dXf(Ec9eC}R3@Cn$rcI^8)X5Wt zWbBS?khl2_+dT%!2G)e0ZfkcJrb@l8PHa@R7&MEPhL3DB_#AhC_n_2)d)3Qqt?te2 z`6yR?Q#yZ!C44x18<<8LMbUHc$Cv$A$omT2c3QKcgVEb?p&wEEI#xY*+&0-p>GXaf zC{9)HX<4|+y-kd2BUszar5(Vb7g~j z_mftA6K58iLYU1$%($uB1?Sp--n&dMKfY;8C(>m&u;dlJI(35E5@^$)+8GD1&zh#T z-5Yk_OxA~sRl>!vlg1#iK?YMUCTF4y&-ke*qjhD+nY?oxAJ3tu&2$d-_DX<_@*n&h0Xnr6l+a)Phrcc5F=CBdH)g{pH*#0ot@uv`<2V_WH;L~?|#>0 z+AOcpW+J7^>@Xg_5$V{qNa1UR4|e>CJ>;6LhokiEUP zo0dLxpy1JlSS4Hb45GkXXV?`6;Rskk+;braO{s#>x96@uTOu%I+rTr$U-EycC88RS ztV{iDsEvVM4x1dX9eoRZ+xZ+v(X~5y8g-jpWZqgnE!V&Jn}iBEf)IZczRAwOebAfD^vfIMqKORf{+5-C3OoW)T;VB;VxOADZAfvSwqY7Uj9`(u# zzMC*&z=@6TH@zo)t>?Zh`k(97Nv)LwQTntP2}{*t{_gztWTP|Fn?I)yFSSWne(K5o47?}s!|9!QIDq(zr+-H!S|-0=w%tb(Sk#AGwh272n-6! z3C9}W-S`%B@n@QfB^P#UPLmVA=8 zW!>CpyBQ?IQg^x0uQHTEUkeTw!&VMeq8<_*q5-@}X>(Aia~(>VK$&;-rB3ujoBeWI zfHD_`$tn1y$APV2RGn>??=*_t_<(LfM8CP()5({MoqGc0%N)sZy~Qo@JR z1}bz3^Q_5_$adIo9zhh#%M=6f+kEd)H#!T~PeQay2>O z9~W^;LxB^$Kii6d{gB&EG&=opE2#7Ux9WLu#A-J`r+(&gl<-ZZQ#b%ICwP_9M<-W2 zXub1vXLz4%#;5#)ia>0_^C|&96>2~Gf{Nl(Hyo?hmUoVw zL;Xl~bv+M+ZOuU`$*xzdV)Q9LU!#)Ke>HIX0ZDsq;=&hn@Q)NNbw4~)kGmMEZQ5Ac z2y78Mxp6yK<#_epi;%@#`@(l|zE$=VkuT4Y5Pap-t=YIxt!w(HD; zolFkbMRNsY?g**16FwLYAIduBW4nvVFq9(Ts~v0V04yP z;=Bf_AqUPp^gHv*>5q?2E>Qyok5i{RIFo&mq|$o4>0mLNrG{^0!|YmLu9kd%7POIz zcu0Q7F-Q&cFn3YO6=~|ql~SUWq5;qo#Wu{k7XYRFaH%7S$Cho`WZk`K!ISZ;DWr`K zWzc{W)wnW+P3?0>4D84(R;Bgz522Mtw-{hc7%DeQKSq1N&fxZH>)2@Xlo6@#zB0iA zTYfuvseFI#g;jgNY{kdkpJfbJE(+S^8e}(Xk64(9I<&VaQ3!1bq8jgFit90q>ZMy> zo9A%Z4LwyjCnz{yg`X)lYWImu!IP=ttr6MeDrND-`8+-BQsvC_P9-pJ#yZEme*-~) zhlc+_OFxr}AYhMs?lP53cZu}OuV0u&ayTohM zsqO)Cb{0zXp7we??DbTu$}x1Y?T8lF#8Lto5O_V`2?9zt;1O@fuGDpqfl1~JYOVKiS@3WY_UOA#rrfX zbHoiqQj)_$rdyVG`x(#u_{adf(!?^x=^Iy*l?$GS+F@eZmFqU9e#_)>hp+fppAk}j zRSaa?mOj+u*6<^M=D}(H>=)sgnkG#7ED556|M9E1fvh}$_R_j!uN#D8F{(FQcnb2E zDKl${gTaFVFR0IE)}?!IwX9)91fA2K*kp4m2zQqp#6^|sRqj#bRLHC^v}Qg|JwvQR z121$RgOzUe^}t=^q7{I#3WlYR)PBld9r=f&iB<}HX2W>i{8cuIUiT5?t$7ezg-0O= z?Q-{BnR+`xg*gMKh|dF?96}QkzS(%w1eN7^-zDv?YLH)Dx1YDC;(C-FqR}2+RVnjg zfji^n2B!70Z2O1wPZSNkzly1{#Nbu&4p~2aX1GNgZ&jNj;4(gtjgx9ery36(FuY|F z^14$}I;S^^Ib;GMnvj_7Xo>%TcK-}0g=tt8)zo+B;K*mQF{rQ#xfO?jiK!Q(G0xXO z*j?ZJpKbC(DupK=u5O_YEqrZ?#qRx9BWg&NoO_M!JTPR~uwoQCBSo@@96byhzl%@p zM=D&HwC(-Z3<6cp()Wp}z|P>UQ#Kc2qfUIMxPS*cxpOSu%I=a?DH0JUX_X zEy}{Uc3|6)C?E03A6l>Am6kn}D$w_aP*A>YQ(p8}iqLVUt3VkW?UuvAvv*(qlo3?n zrU;uL-(!6m{$dHo-6lZ7F<1y-nrC$x&1d6Xxm35FAeswNW$Udqx z>khrf8ME>D4oAQTXwEbyUl1@#Q&`NBePyy@~pO+(6

T;{uE_V<`lx0uH+%r8y%a8?kw1e150J&!}IsX9JD|TLW_BW4AB&xU$8A zFr;FI_xWlQ(rDrRFriTfyvbOf>RD*YkzhQetD=UjuS1W{%hndZ*?)p|HwDvLb+r3c z6xOveO9rvZ7gaSPzcMq(L8oER9qofV~_H9|q!<5e%qu;$QqVZ#zyug$NNpUNva29~Vh>c78G zPMhDEln>Z4W2gpE+2+c>$D6q6d+#=bj8U*)4Oj5D8`h9LhI6)7p{o|7s8n1k0E=_2 zsjp{6tZCedEXJ=ogjIdI!oP4?%wk$=&1Y;6xKQq$VdfBscpxqaR8fE9xbK76!$k^D z4pUKcutw64^}B43GGeLkq1>v}D=PlrLW&9g`Gy+%1wMl$CJAiTqTWNq_6~#JRZ-1l z1|G}@n^>gJXMZE(*n(5iwPa8$ z*CrPA6GebgdQSi(hwtKNktNG+K>iW`ayT#>B}S5pSPX?ok<^RV;d(3;$nVg^>k)b8 zDV>Ox2L1`Ut<^eZnz3AR(n8++B$4yoJ&&>F4;G*jeVDM8ng2wJPe(1D8gHKGVBABr zU??%#g$P@7&HD(r9uf?hg+%i8Q5tdlv3@SzmhmWw(VS)(mUXjqwgzPs=jQ5! zAeC|#s6#Yrd_cCNfrt4I!ZbT!OV|Wo5EUe3 zcvCz9c_^%YPV&clcpFYXM7IX(ejZ|BXUZ77^aUl7nW-CgDz}X5WCQ(WjAJV*0mG!y zD$FkeW7g-1i|pvT=PtMth)4!kGtgrs*GBiaV;+&`&~wY zZM{SgFXxc!%d8T-$n0inFtseAQAH(CE_u0DY!tSxWT9bqHD+Ujg{$kmDxzw6l4g^L zL&wy%Ef<0jaqWE7Pn5qKUCxnp2SEyY!sT_ic@B4Mo_(4N{apqReTOusj=2BXm(t>F zNvzxW8{fR>4IkB{P2DrggMU|U#;s6`B8$^d07CA%?K(E=*~d7&H~5f7RE(0@dY?A* z+?pOz?@Np?r;GqLoso7-H+H|b(JEY4#O3C_f(N&kndT(ZsGkzs345yqXlGeS-(}y< zMHdZ%UV!21H*IGfNSqe>_6cN*{9~eMDe{&Tr?nMQB5+gJIZ@!$PNcF?zB!hPhDn(8~yO~m!S{k_>p7AB`B34swyv2fap!3ld45KDI`VArY z!S3}C-TC;Sk%Gwj_&us%%+EY3_*Q0WLWyUZD`M8co!e!3fi{C<;#U3;X!(B8+PKby*%K5?A z>~hzKN=BW}q<+;`I<&Drp97h|=C5TgU>PGthsKN0K# zw5H-8QsI=cdZ|(M=R0HP4i0x4{}E%V2cj@{M0k+2imsOhW1!@Dc?a{H>p-FuNZO2Y zT0OfZTz$jTA`U6DcT@q@M{)>iUlWJvm75Zy$>d-k63P9QwejCyBo~QB({W7 zD>>*;D>3>B9c!Hm^rAV*?*{GhMasne5olRf-JHhyA70d;z1$i-)PvQOyj?D|<<*PU z=W=d>_t#x8vbsOY#s$N}Aef~!G%u`LOM-jd>L66ONIA%{#rpJSzIglHlQs!t-1Zb3(?nfiKVu z-j7_g*FHFcF$j*z{+M8@jlzl6M*$**1kM98NK<{kg~+$O!)Wc)>pJQrEQhGa?%2_| z^sFu?JYnux-k=t>WdJ2JHb}+YK31M9##dIa!##k$h%V4=*zFpjC!A(pk1XhuN^|pB zfQRO`M;pA#Fn-ENHRoZI%9Pfre(gUP30S?Ro6WcEgJP!S&(qCnINw&S`hs|0SAHl% z=jcvES1kP_XH6`YZSL&5e#5>ul^>yo8EY?mX&DoNOxqXsP}QFxMQ{gK){3k&FVr3G}Ip0g~r zPF1M?g2b4T87Ts5hYNlB5Oa`a5To94O}tBAX5DW{RQMt~X}xc?UtCkAR%i3m zCz+X2rEC!F$SdlK)SL0c_Qtd}Wv|djXWhkiw#wtagzLJ?NSCmH*5SDa4rE=TI1o)N z^0WxFL&$Bn7CpZmLcACAnprT)E+td$@@LNY!DAi`l;lV7x9c#Jg+HQbFGMjLswZ7^ z?PpLb_$#zI=)Loxb$;{T@swYD7xef=irQ|h?)#}p?fEA=mFiYTn7g-hX+ho_y;-=k zesh4L$|-|O=_y7A2mOaJ62}bbi^v@_w-G*9U=a;s+jbA4qc0wOi#lGGgts?x1r&cQ>wi!9rN z(FudwGggfKpi_U>PHe{0xk{Y1Oiyso+_)~U=dfleku?YkWdV-6>#-7z0%NBYsnI>P zHFJ$HvTTO>a19;!8_Nn#Jt*hx~~dMbyv4Vbci5^)ITy`GHAC7}X+G;V}|T z^zd=#8s?mL`$9Y0SGzTJ*i+kdd-;HwJKGeC?aw*M^5P3<(uiR&F@fzs8JN3}yZtk{ zRQ=}1!33v5bslCQ!~>%(`Q4ip(PS}dG8;Vst=~o=1NW`^b-@EUQXxCT>f~Echl%wi z*A&@+5NS8?D{9!OLz4y&(ZM+^vlc}Fdz6r6yd=TVe5YNmb)ZKmhfS1(;39YbFztSw!t=kKW+hnGq6Li#yeX zl$JO%C0xCsH%e8#LF9F=QUq;qmhv=~F4`PAbox6$ePFL5E=Ur8rDd&U$OH#|%W6~F z?dK;me^&b1pulQ6T*~keAL2f9@E$7OTY8X|K*A@@KjV!Q^Vz&qdZ7jtMN4!9=WoaG zetJk{NMg>VXqmn@Hb_v-XQ+11@+}rAI6bHMI8v!phcD~*btJ+BziXN`i@m-yB99`* z&^Hg>J9X%t#$cm#2OLb&J2!%#k`Ev`pC?>Aw z;6gdOby1zCSK7*3-k4eWv=OU>5YKZ-|F|eFxAY8{<~#)-x~hbp_~Z3l)N4)e3t?cX zXr4mds$Zj9iYnDnj30N}wLj&q z)5xE0Uz)Q>X8+XM_mUInf4jW0|M8gVm4Gy%;c&$txx0t0Z|z!qT)sKLfSGN+nTeMl z0E1LD!r41^&i(pxk}H9zim6%Y;~jp#_;~O~Ex##>EbHW61+XlG0_jN~?4F+PFdxB(NWiAbtu(d`e%(;35cY*EFp?t9$$!S%B@tBuAp!rA)(DoF z2Gcbx05QX1n=%{reeJxTa+Wh~Qi3bEf6TRIUmL%O<@h{|xSh+u$ZBO8z~CO980Zd9 zChQD(nr(cCy`f?x3+?tHK7jgpm7zz}oUZp40}2eP0ilF$iBz0!;Wr1b{3C6KtqNay z0k?7a+Jxll$Yukp#&j6KtVj%NoP_?`Kgn1LO@YrXdm73SY<&XjOPQXwwx)oFs}^Dp zswYi-J9%eibvxevwLOo(+kS7}=+qDd4*4!rykIh-by9~^sZ#oL`dy`vj|>g6?lQ|`=cy%&EL#-d@>saX_A5tLIU!#|+z&4!iDr7f9dGXm{sZ57xW zs|39r@H$x&<9FFhEChR#0Z~9rkk&_NA-F`Lxeiuc&e0F#t;n6~6!IV^*G*fOi4eU` zku-waW>;5vEValhlF~S_)B|zr0rnc2Wwc@5CrI$es7g|^!&5zoY15!ss^aj)*#0wlA(yo7&qK1-nY!)w%ewWA( zRDNg;o0p3iw#_A(|1h0~R)wTGMd3^oB_t1n)_GkbXPHJwrZ->#EuKkKY4LU7e*~k6RjvU1 zIy2=(tr-yx6yh9nTOiy4i0FldlIS&pb>Li-+lMT-7_{gB?WLgiWvQ0)e)4XAZhgaZ zGS@$_&~q~W?iZ22TiT45pwtRn@bsB>A@QyC2{@VJgEAv_#iUNjO3zgBiVra^PG`aX z=Pdi#W&b4@TQ6^5s_YyNlyVThVJOtum=C+@S zTahAg*yXL0bB~QC^HFi)9 z8DEL`J@GUp#D1JJz;tpM?lh>jP_nW~45Ez=C`>U`YXLmzduoM~#^7)`Lip3KvB|dO zZAz9IKZTUoi#R_!e}ACy?eo8UY{XX$$ZSRkkUxDd@sa8sVxF=i=12h@Yjj!H&WrQZ z!KtN$?`b;cBwt)y3V}xuN}c}w`e<3FT^~FRe|^BgTlQv{ek})wyideO^MDL}Y(sUi z-?-@N5$SlZti7@3y0hjAKx*JqfNTxi)8*SpKMc5qW@Z?H=q+yyB9=I&6`2RyZs;81Zl?R22Gp))dX) z&-j_*gX{hiFAN%T`w-d&=kk|KxxOwgmq4p^pCO<^9*)mQ(79Ue-Fg?`(U0*{*k`jg zrAY-sEJ-Zjx>vBErq}4oyxdkIXju!;exxE8C>R0ucHv+GZR!JPTKQ=U?q7ZGEU0w1 z1K1vz4+vVa<{-0SfV02<)^ENzT*%)??MefU=1GQ%o7H%#(qF4D^)1AE`wB1A+p_*S z=;cXcXEQqI_Q=?KP} z$yE%f*g}chp!#s_4!>@-bKISsd;$*{CLu=#K>zRSFS!m4jRNtwo^V8At~M}}G+)0l ze$8NBKBw7fj8|l+Iem!b8nOpoh7QH7YLgpGd?3Q*rglF8j)9~NQTj2SZmXs%I0qj`_(cj-_UHe2*_h6XT_z4(41 z#u~onp3#P?su2imNwUxXHOs4wuMwu4N}gW2?><@TO>tToCv8rw{Qn7$VfVpye2O!kk% z&5?8=gXIi~%UaLM4n#eE$~jGm zM<5ri>sIXNNv_q8KE}HHb-XNW2Hz?fWUAAu5@dXZ#s+Jq85}|g@g2;3n|;CS?u`KC zg;>vCi^fQs-0i?cyq7o_JIq0ot?wRJ42-e1h(6|@$XE2aA9Z&I#O*l)w-=5x7!>`u zpSw^NysSQ}dB$)peX#~3GYI(C zL5Q<@-DG-rh_a@hNiJBoh7!KwNB-d2Qq42YQMm7EV#H*dW(+ zzMS)^^cZP@RVi~{8U%4wV^`OG!a>o9c9wq$pwYP>A?zldHk*N<=(&sg`4&uKjR0vS zwMdEstefI@*K{$SH=SfT3l`VmKx4q?!^H$_|uIeOqoBz!@!%B%E07~*Q@lsM;j}Ds&O>s z=VfKDa5)}h14Hb|#tya}9_H`L)lMe|tlynPs@AI|j7epxXgzC)EYB9ydGaWsiSO#f#BmxwZXr=0J+%Lz>~K`6__o9p~R&o1bv`?g{zR2Z9juuG5G zN+qZMRQk7TMH;TAi0GUwf*?L32>YV{Q2=3qRwakK>=nLT9BUPbJEMlxh@8z>Q}^Xf zm^;2;!?vkd;-F5>%S#eA$)!>q7?q%O9bqJ zDy;pyk39<)H`Tk{<)H9blt9;u{prc$$;N$AE4f>1VD{gb0Cs}Y1dW6<0Xsh4$Y{d1 z(pz|$iW>x3uB@6q#hx+k`MQ~jtAV|656T1aT*MXoYCqW)*AW^^0Ja3JRc6Y9u|<&& z9qQUxais{ozXIJfoA6{Et_>!7^F$87e#4Y*D@&`y*729c zHBA&m}F+v zF>(pbZwHXNg2P&l7RpF0AA{{dAu2@_^7qk)kRi8U)wYPy=#@3Lu_I(ikjKw+s z&2`%u@*Kqp;nfx5R&<2}Mj z5Y7PhXO{>^ebQ(43WM5UAfrcd6qdH}e~X~b#d-wLn>{3698C#;c}kjv=hwXfxd2oq z>1dN+c7zFA+2^}Zi}d+d_lc-}-r-4{?&#N0n`jQrHx@|#h{V*Zh=3?T^^o*~1*kWM z{FA8(#q#q+FdoS~iZ~)e-$D8Bj=yZV79PqBT+(*eMCnShd?gMHYqB?7*-QQ_KAOt1 zQrpSHMd>QG;cX3u5w94;e*FNm=j@>VhFQ0j3k45~QX`5cls(g~UeJ!|@^{ zl5-mF7d9R)M+*_Qpl2`G8ywFVH6SH>-dr;{Ow>M-?%3& z^IVv_Vr@ySt$qz90hih&-?f=ZPlJ|@TIsLl=!^jPR{e+K8j;Gq~?Y}GY%B$KvD2)!m=q*v(L+t+wg%&(eb43EW9A({_?S{{lFDx&4&+T8%PO6T zBHo2SKx$o_7iBVq7Ywn%d&c7(lcDVwp>oW-XwfLrGh;>kx-WNSDm!!h7{^K==_an-tz%MWZzshsdF_{=zdUtpXJ9O*E4ou#@l7$RBcfo~`r1v8vhbVYus z!IJc~wZe5p%I(9zWvCNQ+Hb$%VqWlFWFqMr>d@j$D|d`TyF$q&7787yppu2qfzET^ zsMdQhC+xJjiF8R9Wie=$$}{UW@_Md{OZg1_tY%o-PRR8KquF`qaj3%(k6qOjS}`Y3PCSW2r0;RSaM%{r7F;Z;DC zCiMC@>~)s*>c^_wd2F1JvUQT z`x_lq=X-T!hmY19K_Ff%IY}{199~=@kH=J&6<>+56`xaEmnZen#{I5O{3a%aDZaAU zeUY!C1NuM*59yU|qdR6OTtJfXWzB4?VF%RIIJvU!T)bgaQV|b6(QCaw?}k;@!XH;| zzgQe_&>L@P-q0_u-aPfd;gAAg7)}Ct&DTeOf8*sf`)M^U>8&)X6n3^({(+W%uro0& z%LfqHN7v8S>R%Jd^CS{@+!jE`19E@S4Z{5`t$Yw{tl3bULk232eN37NH}@n`2Sk+Q zC>157FOo%#$G+-m>V4{l(U$#0d$MC#FYlg@efLybJv@-D4~boJ#OOfWt5q0Gb>DKr zF)lUa;t@KwK*Q95F6`faT$Xe^r^pvnglGy+U-A~d9wZAQh>`1U)z6(a4~9h;C%(U)tY=~tO0pUtvur-)r#5H*UI2Vr0u zIV@Q$L|ZH_AW4m&prG43z+^`jfon~7{K)-eH*@Aid3(P6q(^TLFVN;qy`^D1Ah_b+T%qWsLZEzTDdobt1UUo495wrjy(ATFbF#Jayo6`I~f z9hFVUi;n2nBn0_<5uK~Qz?1+)mL%VAKM?^sQwsaXdh>s#^+y*XB+D(J1H%nz&Zqpn z->OYe@&4zv{Lj~iI0RhPbD8Zsi|K!ky4ztupKAd& z1_;SzHQfJdW&i7^U)LH05e6Tyk7YUacQ2ug!jw#@9t4PxUm7xXX;h&?P^`+qS8iAv_oU|Hf-&6kE@{$m!3|%9KWjNb^+Sx9o_ib4$@F@SU;y?$~ z!?vm`vc4IvB|4uWilo9QM>bry!u#MrlV^&^Pzy|S;aXpQdwy6=Db z+`m5k^!I=cbAvU4L{W{kv(j|M?jI>-|Ie-v?@sb+7R_3g0#0csB(fKP~@nTg<;& z(M{Ul1Gx9$8*>oT;J-ab+X3bPQxjeZmvUG)NeD!x98Vu$XFzJhw0~XQ6FW-otaQug9 zfznVTcv)A8SB|Y|9&jmGZugv}+&YeSA^=H8pC20**IfH-h&EOIrqkX`xrh)_py=@W z(>PR~_?^d-F9@BakGj8-LS*-G>h;C;ibP8l_=UI8Z%Ua1AslWs!4>9<alk+!MTVLU z#s{5k|B}IZE6KJy52M!@2C*k#w4@gS9(Z+7wduK!oEDRS@e#}uWSeEsT6!&vG*fP< z1lUSn&@X=a#^P7hX*X2vItSD$1DO&)R84QC*P^g<w(=9L3vvjF1)R|)UqBBy$>f9?1)f;-{^^#{V6`DT6b&^bh9Ky3p=*9< zwFz`tgljP3yX}103W{qNAa{>0;=U!M$ZS{CA+jXYlzjp9cE8UeCl#@%wvHLq&(rga z{-F2`Egs>2m*^cps?RMODdu!=A9D;CWw3{nu#z`7H=nL7phKHmTGW4OSJ0Ub#9r)9 z{Y!ve+ZX(y`m-8fjOLbHrc)VzeRnxi^IUI*Yk6l~JX*B@botL-pH2#iVfTUTx6|SHK^UQVibX?t;GE=P}JF0@IW= zN4rBDNj{UGn{|JSJ3C9ryRWDFFs2s72FM+4x6-2DnZ!pXa=UBGCm z{a92a7N8G8#}ChH^AQiJB+Ug#{Y1%Prv8LzfFivukwHv89ETlw+1D|fWw}#vam>bo zXLPvG=)7Q5Da?eXXy@2)y!#hQiQD#i;`B)7Td7b<9di9#@7LE;f48Fx=L5QFZ)HM< zH#n&WMN9DL#%e2y8zw_oDPRvGzK;b-A=)L^K4_>(DpaDFm+1Affv+{Kq(nNsWnwi- zCxhtp6J;;f7i>M8@A5*mE7|TSIGpJ`ocG|{n|x%VV$%48X&6%yQWqX#Ml0te)l!)2 zOp%<_ADDKVnCpsPf1gaH*+*+ws!L>(p=Eg=(&V7_Rs$R(E=a^Pt}3md!+Tt)!urWN zAGKjnJ$b+$HzZxB@d%H){o)mE#tSp(c6UCUjaj*N@Y~)fDQxA8{HYhS>TSbT^aj1S zuikiQwtT(d%KTWT{3*z33@cOp)h`9d$>Kc1!GtPypTZp-`-vzrl-;i7#jJzk#CvewT`*VwZGbSmwSq74`o!cQsOrUhjzA?)a`kEbLk!J zzRC}6Gdi`+T|5nb`EF>={!kJXfV=FIwO z+u(>#{*m2BI@(%|KYQy#*$BMZO9lC}(KV}$w;7iE63ya7=xP~IM>_o!hrghL$IafG zXM>IFLyANO7h;AjwP^KXIR&+RX~0>KeEhc7!fL|5**yNn{S4pe%I5sUuKZJLxZP@t z)lA_95vSTIZlU{w-=pX5=4rmU`^&gDCgu#jV2+dU-UNPbpG4S=hqqax3gRXG`vx zmg%Z+KPM__Sd9eAx1Mf!d&02PQii*L%D}9$f`;Vo=fFvaNQ^iF2arrs8>#=XR?b^@hTjtZu)jneTP`w1Bu8&mh6~wH5Pf>9EoUBu)1o4JH=AvfnWR0$hA(J zuW7gnLnQFN-Cmw!yQo-Lp=IRBiVP}>feU?q3Py)X(vpca7d2(Xt}rvRM?a482q@1#H#?G9f`fD(lSV;yZnjgbL&`veS4R6&ugC zJfI7W22+zHY74Q!s(j47MDr@Q_tnLe8!hSyNuQ$;BSzjnO% zlc3a8Rk-(0;<{KJA2=OKokgY1dE>t7MUL)q)}Zscm565wPQC`iQXc!r1Xur@V0vZ> z=OW6g`1%Lw+qL<+fVpq>INl86F&=k=e0RMZvsgKQi&#Yj;T+PNT#|KJcEHTg@_!md z-j4KfOxxMf-bFm114Wj$5lwQ8yUpT1NtNOalT>&jA>)xUfzm8-Q8wz8#B8z9(U2@T zh(I2%o%bG(R~pKFeFa+)$v`CnSSy`G;fxNGp9EgxNpdSqouQ(Em$$4K7^v{g_fZ21 z;;W4zHOWL47C(6O;p3w(L2TX$~Cak8tRh(_xL zra)QC;gkE1zM;C9`kb2}Uc%hjS(Azd^&b!!l*t%AyPwRNJW||N>j3{`^(8KQ z7EsXg>!K)Ty2e}#z~i81*;WM7hHf8f2hdGNinlmpX+iqtGLj+_(y|>)vZn$8qMKPkmC>h-IWBok5-@&rS@!A9gEVLp+lcCD7vtsD{F<>%`-8J+Zv2on z#J#|NLpY=?h8^*>_jTRGP#Fv2&NyShfa|t-Nmv%tZP27>W|mErj^fiPAv_?3TJwdk zi-hzYV=?ZcTc=&X<<1pv772E#K9*ql(Yztk0Gs}hR{|6ozLvhv5mc|R(J78pirUnu zbz&;xX_BQcfu5Fs1!N7Y-*xX6dX+uCXPDM@bG=j?GK2K75(*3B;fTSPQYxo9o?X0; zFq7GDTX^@(-7;3aY!)q#32DKK04qeWUeA zt6Nb?rFx+Er%u8-_;sKYZE6aLeO`t3q_m6*f)(-k zvQU931LTD=QCwNbh4jef)#FBRH%@a!t04p=94X_cWBymQOap8btuXK%WPQB;*O@=e zluqt>pJelRU}R4!uOgN$K?sXD{=T5YFLkCfSu@gpzw;!_3PZLt-T`-(g(hlVy3WMVR!$!V%kt& z>1bG(XRtPCauNV7*ig`twant;kAE_98`BejqzQ7y;q_(W1eCv zrhc>pxnhz(z64Vjpz=Q<865|xtb)pi za1uZHKOrDKn}#1$Q1?WrEk0wTdzARu3)tYt2u1IDcHD1FN6;gkC-w z`{BKnQOwcB&v~g)Auz|xozM!rq~P52%q#dywekA492Fj`@K@7Thg_2Pq9fxR*3K2s z4ScQcUAcqr5zm9f#c$(q7vfe|c%7piky+Rpyd9J;8x~5*`F=4MOHX zBkvaR>RlRewv-=aEdO*l{ocZdWd+hd3Ck91f3CdG;B^xP?D>+?3m_9~q3bKNVgL7i z^*=aujxuEooUh2nFPr_D-M}&WN z`fn&Y)`?NWKotrh6wcskEDqcHVA1W@R5Ivz+3PH_BAcJrCQl~oGN~v%5oMj36Z`X_E< zZ?NplPWYzI`4MNN?n=wh41pB#{^$mnG;e$7>n@>b*o*shG-{Hb5unJv1MaI0C=+@b zxK0e+09 zD=PckW|`?yTHr|`Osu$gMGT1j)rrlH%TO5YeXKRT)eOdAp{RIVnrFf1yq}7%4qVFx z+hzevbirUap}cjX0?-~<9oJbMc8PIa7Hdrnf0csm0+@z+4*u*=yOBredJ!=4GUFUq z2hIav{D71ApRbM}NS{}Qm^8|PcALt4$v*?Z-eyA0BNXaw%vLE;!jHUhF_628Ixg6!`q@%x+XE15W|bBTi*xQEm-02%fq~uS=YlH@NP?`1BX2^FZ)6+#lZQ)@m)~V-%Y%?_xt1zsYuN>40 zTS1GMYdGFj3sSx3o^X-$1TpW2ZWm9#`~J_~EJ#7lv?%X+%WJE9?rr3{Vc1zuSCU zS*094z{?bZNac)QWnLF$iBkqM-;8uAoeT=mCW);Ikt`6;A!<2&t{k2n9E_(MzW#9c z8xfZyr|A-}XhI&*FSro(L)w(v(7SZ|tuykyAN76;>^PJ!Jf~|H&nL7j1jr%jg&UKj zloOQPLjEu*{XHgHGT;8*Uap6L~g6gtRzJ4=Pb3geUsr$p5z_7}9n zn{jhu{BU(m;hW!l+xtD?@MAeQ1(3%Sl>>=k?=&RXT1;I(6>8B$EC(=O*8-^1RT;VPOxjN`$w|Pfdo&(QBLc_60^v}9a zb6A_IoY-<&suA<>?&qU)ACpj96F2-Z-mkzC)iub}ygCRRcRlo@ua&xHKus4r=|va> z(D<&$Ll{$I*EmY^?1Ls1&Z9?^`)C$ez3%~~eDl(5!vk-n`W!5Q?!MFF><~x>1F^Ly z8U&vjh$eGVpg@D>%*Df!sn{P;ILtcVoar`elBH-rht|)r%hqfu!wGZvc$*S)hwxsQ z&47#9@A*KvI35nN2emusS|o;{Q_7B~FZY5d5%Jiv0k7Ao=Js&9Ooi@kgk~(_^6N^v zzcThmG<>9gX8@wyInT(3rw_ehqe+>c;1@rOLTXzxcHKLFc`R=QBUS;f%H3ZVJs^!Ah+iKVYfT#O|C_+iHRNBH~ew(M;k>4iu0jFc){6zNz?B1?=8|0Q$N`#sj zRAErPc4Dw80A^UEJR2QLEkWTR_xXO;a*t{CN0dL6`Tlb?>JsZKBrMtlS~GK|826&7 z+?>-Glf)wTdJD}AAfwM9T5SoI==e{8pBW@7eZ@a{-ScN$Bq-d>SNCS}6RaeKc(9d- zdy4IzkJ()TNT>pAyduFE&j~g?Ije0RQYPnCdNO<% zFpLt8{I=pzGbs)5LgI?3WU~j7%Odx1yB3-;u5|mS9>^Nd5a1vLoXeZ1hxrW!Ce|6x z&Sl@qto#Idp=DyB0FpPe0iPiXk=~UpMzys)Z3tvtt)Fh9agnsP*e0~_AhPbt4l557 zE+w|T9|aPS!*UZ>zUE1Yl`j3**!monh6b95rpOJBd37=yhR>kB8*e~9{ToMKN|y{7 z^TeVz;InBow$5VpoP{Znr%>D~e>$TC)Wg_Nf%QRTrkOZRUX*RS`7_CgDhX~YyaDoq zH*h?ke0JnHwSC~J4}@lMbktG~_D?J-$f4viDqU3D>`{drWX1o5uBeJD z8KHflzeYoP(ZWCg>B+r}ZWe`@w7Q{7UT)vNK&7DmGA=7?XB&AA0*$si_-P(-DD!3A z!R@tXA}>3;cQLZ?NrM}jQKR1X6FeJBOIhjA_n<5x|Lv=3Ujy%O7M>(;C~wS}+U`nU`nRLJsq#BNi!ow?%iuKvN^rt>{u zVGb(6D8&k&_V?ozsA7)ugVjZ52`YYdU~&0)@u0}_OXxd4INJp>8jv{euZKj?HnpyK zcso-l1@_MC;ihKgi2|;!9{{P3Th)CZCNSUKxLjnq>gfIhFvzo)g<@B;M_rZxz2k`eP)QG+wL&bqdrT{-N*3vZ2rW&5!6}Ty4Kz zX?ObNAP;L5rspQe@rrG>{v%W-V6*ugF~G*gmP}?X8q8R7IV+?|1d@pg#xgJ+qMR(I zE^j7C*)sB;A%9`ELy71Xr#p}a0T0u!W*=;Bsl(qRr$DG6#bm7I81Os3acMENHFN*m z%9_d@26X5>qw4ldtC#D;r;f!2H?-M^5Xul$_)HL)A=dg)%D#qBq`ybz@# z3*V-hQpEL6S53lFE(K%vQijR1f`7VWyNxjokHr)xlR5WgtIkqbvGIKIAHZI=ejK7|Z^u=5Z@ zI>E3Iw)LJ*5oPBVeLo1kl05-n-QS(R;&{$!GKdfRsx-cA!i|$_CHe zKokjGr@)o&tyw1CT!qqNeArBFBSO3a06BK^piEI$?--}gB4a4fiV$C_*c$v?@NF!c z(!Ge-k*?<#jFB^{<2HVl7h)QfKypesxDJ>^^c;rj|Mbdyv-?i$t;x*6QLL%Lby(X= z<$UHVCYRB#DnJj&1LdM>J3F`QBOT2u_eMDtm=ycJO7KWD8;&>-;3;%%+XLZ)6)>!} z%YS41sqA1)1|t7a8xBo$2wlWLKSQq^K(k%kpM#{sCA=|9o0--RIhF}lkS!McE}N6l zuO58XClnvnP(0e_PWjk!9r0wSfuZF!7{>?m@KSOq@8o_+qSr>XG>4Y?4S5ZOtHE@} zb9#vWif7*jM%Gak41{I6oZU!0Ag1L%j&9dc0U?o=J#($Ai7bh87f!n`oXSRb@^5e>Mw;em{OdkRMWPATcV^@oC6kJ51{pGt|!u$53L%YkoIhE;s_ufYXbh+c&t9Qv^RlXEqpRx#e$@R z0@or3N8!1PrtNz7d$X-zO#7Wtf*gwuW?2ZC4s*>kBfh$tc@WwlM9eOT(Na`AV1_|4f`E3WvPUs^P2FOGo*vN5eZyl{L)q^dMTbaM6} zwO5nL(0cc2IS3w~izXuWj^|S_e6r>TD6qd48 zhYxXX!4*|^?!?|XYt++u%5`nlxj-?W6Ip~}-khfi7$;05lHn!}v-Q3IlgY7eW=`QK zSh&~wPEv5V2r|K1GH_yX0SMv6;u&vx%`F8NYR#BgNety;n^NnNw;`66A<$KrWoMQ2 zmUW*NTv1TXwdf+LAZR}IfOU|O1wfG@qX(wBZCE+hq%2p?lkt3h`W$Y!JvyA`=C#VU zb7E^!{yOCXF)dSzYYXP%%GORm9Mc=KnK;qS4MwrN@x z@{QhkT{wz4=t0m^igm~xQmXkrj+_6m?m6w8-uDa;rfeOq$<*QC$0bVJE~N{aw8v47 z))fc$^tepv2DCVko9%3wqS_4O(2_%2W5(d#S&vhYCiKi_r48~YKmMVk1P*5`x5I!t z=?Y2NjkQ<%c>bUXF!KQJr7qBe6q{7s8Nculgcad1ZN z^68ERPqqJws07<>Wopu+?reKKgWh(G=DcO>4wDQ98LNM4D89e>*5xkNoC(sw<~RaN z^6{!Hz2TP!+t9%Z%-h*}Ow29j`@I3axlnvI&9|nKcv!0@7ayAJKqq2Ke|Xh zgV|>}A5m{r>l(*mr5=1yiDpb0ES2|rO|OV=?};#Mp^4s7#p`;72`yoP5liygoenb~ zc-p?a-c`H*vN*|TM}1W~WFMV@P($JrG7m;eTTTB-c;9JOV0W%0LpB(@cvXvDoA+A} z^6BTSJFEHr+KFh_Bk_krX0{S(^4erio{_P#GMeD<@Tl|B;~5Idf6eY z)x_Rl5U@nR+be`f`5Lnm3D$X5n-SK2qbnL@7W7<>5tS<62Qio&Su?VBtE zX)Oui@3~;_J!w&)#y9htjs5R>|GfrS`5oBjJJS8v9a)4%qV)2V{*3vrH*YMWEaNGk zPyfE*?SK)Zc% zAlM(0z%BR#J zfcap-N6MQME9dGMKTlG0p+ATBUpM*Jctiq%Bl!m2!Z9+CbJ8_3K_)EA1#kZAKHyq# zz@n&p!^Jayz7Kov(ve$!_vDdn_QQYOt^-=U5Sk;npH^Bzc6=-l-;L--!`-)G>@o_qmz7{Ll7N-Z%uH8TU1>$e~% zmb&USTtLddx9sl@T95-zqWTkLQA#}kcQ^m$bMtW$npAUN&=u*wsO9e*ps&A#wcIO8;XkqS2qX!f};_Jl-)P#^m1XydMRJg+!FS)kFH| zehYj|>EPukq6nN6Sy%)F^lWTwiXT5(3k%2qDtVkI-%9i&1fi{ z-sjyVS3+tenL+fFk$k()WZq|NkH?wcYFjzkPq*55;a{u`Q;E$p@XJdS2WnRzw!}G$ z^N?N;?srrOJ-NcX{QSXNY;7Wi<)$F_Q@>J;R!zRA-{)8ch;JALjE7UH)3_ZbuS)@> zIvQHqhZTNidYN}^H~K+ALAD=1I#tW^%|8XTwAtn;tEk+zj=}lmlTrREKo>O^B9sm? z$_#9+TyqIJdP`6E7Eo^Px*{NT_8i{roZ%;Nx_(hh;#R-ymArLZ;ddYGQmEXBV~S=Z z8oYbZVUS3={aF~z{c^whV14Pc*o}wZ+}`#qmjmi=VXhQPvOy_oxOn1A|;PU+aZH$W&;}31fz9~cWU?h+C zA;FRqv~*r)bh&5}bEx~M{v>W&cn}%;mUgCZzoC`H4gMO+)lhsVU-p2q-Ninz&FQj9 zv2ou7nt0~F$kba2x-(k7`Lcd77sv(i43nkIijRsSPSAEOQsaF@0|||BiRH_rz3`{?HqaM+tN+nAsT|9NhHV$+#{aqlWpjmP(?ffdKVlRN*nV)7pBh z8_xMGpDi?3KsQZ$yfYV!*XDX$yt_$Px$f`lxnJH{0GXU8vr5S97E$0x?d3Xc-UKOG zUQ+Fe{7X#ySyKyYKvpbtiiBLyChR#39cncUBtgPRN=gR5GBXpDX{}HCd_FSS_}S#4 zINv-!rQJ7q=b*Nw<-N=2b7PJ+*O`l}MQf*ah`SKV^vXv?(}%Kgy_DxOw43T{YNK|n^ilAMYCeibG~tQzi6zNa>&E2!?fY1Wmo#Y%p(jyT zB>aQt_BPu3p};s)CXHKV6o*|}sg^a%@i3JuIx&%ooSa-ySNGkXmIdfML4Ig(H2&MS zZ^mP*k#Xdwr>A!u=d zP1z~Qu|xT~F=$67_D7<6n!MKas>6|8T@DsIr?ToVmDz=_&>CMik5YwoMzZ@5Hha`? zbr~!zTbCmK%?zJ81*ZfN9b8>LQ9+749-sR+>2zk1F)}5%%8*jOR}kdW`D2O10|Nth zRSfMH(Fd!?5Af41x97{Nc5Ze9XhkI@<_p4$gelL=s-Cd;2q_Uw$|;~MZMsHrD~b!* z4Quy7AOx-ZIw--2OUmQuRBaq91a0%t(KnQEMvDL4`Q380iC0~_n3DgCIlZAD{|Q%D zSV)!RwC^6Yhf99kb{}rx>Jg*O=3@8VH<=c^fJ9AQoyz>_M(o-=4HTb}e3;M9#v()h zEA?B_^JGSGS^<{LqEEvW&tg{IOl4`4>`A~YFDO$6!F?R8wR9aSiA&DgTy&h|LA=Pn zaP&@%r*ZL#!VUTOlE(b7qbI|aeC2C#6@G4__GbMSY(@7Pyf2Qaf z$g__8%pTRVO3!ZB4q$}I*Ne?d$jv1jGxxgej@Gm`%DmQokW-@y^yeL ztUgFGg)XBMLn9+`t!}t{p3Bj`$?)B8XtNxX;?&KXW~Qh6_f$$Ye^eRB$Z>7|_(M~} zkw$THw6Tujg_xED<6p}wzo{~pdya8IMy5Y&82^!5dKkYdeKiYY(>CK>&Mz89ftE-l zC9382PPFR4Dnb>j-r1Lt73=yHmzT$v>oiMpn8(T00WF9XXUlbHMKV11%I73_$dXer zWSB_i4F?kuS(y)G_m$p+BebXkr&oqn?)7r3QVRN^*w+`I}X>FH&> zkYz+f(v;>f+|PnyV`F~_Je-8{Tv*g@qZucmQ}lnc-MFZ$uwJ6#aXc8mm%Z!ydsqvB z!|Fp~9N@d~$k8h?_BO3d1V#9j&aYNj!OS+>m&yvGL}nKn2mzaZvZh}%I4vQ8(%Nc; zPGOcd4FQX8ya5vvb0EZg_D0$EYTjh%z`T57i^u6Gc8=ZRq_Ou1`VVhi76TdF%LEx2 zM0i{uM9SaK5sD6scktS8Ock_I_T<&I5oAHVP;3~rpU2$0H`_}wd1SvNV7(m7Uznz= zy;Hh8yNajJjs{IkOfXwNx_iius4Imavo60veoMzv4;y^l9$ZU!UsvJ5LzGk3bBsos70yC zewXC(^0L}uSFxz#)7drV&K}kiUxPB%yLUI$m%m?XQ7ATWzT{c6Kuw~Aq@>*p^~Z;WIkI=} zWC=^G6N@l8XB>amjA_>H8CUu))P3F-*VoT3uPH5+e*9g)FJWYq$0tk3qe>y0T6jG} zNSp2=8cx8o&F456{)fb3QO$cL^E6)Bv(Hkj23xnA~M;g-yo(`6EhV%nhZjT-F$l?oYtZ?>W zt9V)pH#v<#XI%#$n*5u+JOxxAFU4s=8>%mN!sU;cnm1!H9(`T>`Qn$t?ega_=+>jb zlJaO&Qqf=g$tikRczCo4A8q|o9cDH7E@x(E2DW8V41vmUzMWLXPm*?DJh_d!lR1Pe zzvDm}-j2xCQF-qXLY3cdU3yk{e42e=rZJ0E_RuAtm-8GuX8ZZ>V5O|)V3AX`NyH(V z#9ZM^)$BTy#f#Gq1`+l=F94Y3(QVH`>C)A#{qZ5MxL9(UHWPDJnzO(f;3b%P=<8;J zglVia*vpAj2-X&fdF(Dn0nrWjzA;T=A77krA62*?d|9)_D~mVAf5@o!Ypui-aA0Dr z7Vl2F5O>iQn@fK4JbfE(v8*V&7u4Tiy0d6L z+~JR)I^--|xKYUOt`5T~di#Q<2oOO)JtBjFJw45>?Rx*KOYVUVv@?bTx`(*;TI3oE zk-81nrj3(R!rIZh07Cwwqa!G%IY=a+*C!>^ZL@2l-mKt7^m5U*K|!--{=S1rjEj;A z0Y!btKC(?U4-~V}Fwu_t)sjndO0yTmuTrF$cBB1v)NhWX-G2s@2LIRP&p&=*gODzKmnBhY;zp3WEuLV@5*v@-X-Wc?Ce%Nv?)!uUXSQu)8k?gun5xA`7s4cSR5 zR$weX#h|80;@;lQl61Aj;)4Z!heQ1Q!7!S0(u5tucGWfu@OuyYtd zy#W{XM*Z}UKi`Q_KM9V=Cd~X9Ak9jic51t>76Lxx|GM(|cL!+T0mRcl1FBE}%Xndn z1j=wyS{4ebZhW!t???eSB4d%i%?6WbIdGlX>k>PEe!Z_UoNz~IwEhBgvdq-q0*NQl zAZGUkzDwcrx_X@>_WMwaqa0xiRyYU^)8h_VFp*KO5_GGWdULH#mBAzz@p85+D6n>d zBVApPKn>BC7-#X02txH*8)6{C>>)Iyq=dFurQ+QaY`!cIM(P8SCQGjh?hVJ%2}Vap zs~@h9S5Nn5Xz_VnF|Zl5D;N3{d_`SMO?U~6`fvkGnFrGm2hubu^bDr4pGKzgLa@iH zED=6ejo9t6zJ0^%2_L9DMM+3V7)z_6&amE+MjT1>L2y{BMR3&hc2Xpf<#TeH+4m`< ze=MyxD(oRF6i!w=xfIssKnk`Yb-tWZfpnEb;O=74EyYMOvFdOl2(`v|w0nQ9qOLl* zNUfc3y)U8yi@rPniJ&v8D}a78oP=>uh-ZJ7iYFe9txsbha*j-7P?<`jsgykmKCU<@ zfyUbluI@HOjl}Z{lwImrMyu`dktIsf6%f~ajq^hdFN5VO0HBJi2IKbz|J?fnL?0sJ z>4kdp0P!dijhSVB-{;1c@|E($F}9_sAfV}`=qVbxVKc+Wwoi-omdu7OT91sI733XjLCgK}uhD^S z7r%&cXUb5MmDd}g(7-9CA>fFdOkOP44L!sM!9s`K1(hc4JNL_u)11CdJTHJ*xO{F$ z0|BtlA41~kQQ0ljaS&wc>}x~|>#U|kYkX6fJh)fdJW8nd*4H7%dV^`lM^ZSdj4wfD zqfyL%ci3d^Op|+5)1O@iLa?y0Hz=fMXii*(-C8>W$i?twuXE<}5%7kq6Y%cS!Fh2) ze)|eUqJV^b)85-cPm+4i{whCY07@D@YOuzc8H`>AbF1(Z;SyGreCE{En4Vs zI4d*D>v5;ts~!WrEcVqO5tYMA8@2NgrZ)mFpyFfu9*BT+Xw%oAG^f}Pb#@Atd(stG zM9$&3cuu)!%3D9BCn5uEB3rDl51A0a&-;x3qXA~I!3shHeNhq`9!oUc9XgW42!u0s zaCMl%`OS;L(PB}*BqV4Fn9sy|UL>&r#XN^UEPbTfQp_a%>Dks~&pERkA%Lp%z4NxF z&h8U45V8_$y4cObqwYClmcyh`5m_gbu-Un?v{A?%D>6}f(cLly z^JvzOy;;R08KYVlMw~7OjW`|FKgMXu<2UP*ODgoM45u^o=w}#?B}sJ~jUZb8jOKCM zR*q={W!cT(-mu8=opK24>&1D>9W}e@I`_`%9TLKUyla+S6 zf7)Wh8W4QjJ8^$`_C7(ClAw_JCg1iyl0R1+em%pa5r=qgG1s5K-!3CaFB9S8s7e%ww#N!P(Ejwy-KR!5immQi;<*{|=@!e>_%Ud8 zC-YTJWHW@XM-S=ub_J52!f=rzYIo`O#BEMHT`qo2u6!|MvOZ7~d~U^NBNsK<(k#M7 zg-kAgEa9tvt0+QuRM%;a{_7eyD#D>yjk$sUo;Z~*`@AI352kNnhL*lKhTN&| zWMTuA#h5OH8_hY0Z%TMIQ`TXRP541n#;>js7Gy#WAPk^D-d|3Gl3C6DaO?I5?Yf#~ zPJzI7Svd1o|8RlwC70Y%!zgzO2U%I!HymdEoLOvfL8oW3&H$Gl1innqD9Gh{#Lxa7d4JGb$VASU^_?}c3Vo(AimM`=8Pq;!=^`I7WZ z$;9FrGhcpBP*%5THQ5n#`XNyEjB3Ax}*1Qro7J%+{>6q7>OQ79&H@@K?zGYGge2u{iDfe4_{L zM;(j@$-;pSFVA0Pu~-bL0nndKc1ym}5xx-&6R-L~@{X!eXtqQHXDoxCB?-GRW(D=A zs=;c7F)HE>3u;o0VO%v^NxZ>bY>*~zPk2g$DRgRTr&LQxEW@o9fY{92 zjU20lE9&L-uK$$eZ@@Q*Q1pE@0nKT=*ui|aTHo{A_hZ<) z()sEv(}`@mI6yn9@>pbl?{+2Kn?$WznpkTkpK!9e(O2bktXubsQ7z|vZB05-jS->{ zD~{1vF;9(o1Rs@dbuC?V$>sr$QkB=S)yRUhrHSWq(|%?x5s5hke55t*XQ`m}ythOr zYmXkRRwqMoAd^^Xf5rfH*qQl0Lop0v)bbJk|};_)BL zGgOXzv%@uc;HA)vz8=d`S~I#LqOb^G>Imuv+f}lca1ar`{Jg|JOLe_~=`P%*8qE zKw(ieXBmr^4@7?|SB*_j5ZS#FejFZ$)mky zE=JNg_!k_1>0d%m-d`V2lxT^a^2os@2pl%sABUmk4a%#gN4p*$5hOKS+8+Eu4Y_fw zU$~=Kt#oLpJP9TeV!RRcOpZVW{I_*0q+hD+tA1~HkvQNYOQ#lh_pne-!;S$s9z%S> z{mV@bkjOo6-R`f-VvQb1dC8+!RY3C z)vL-W;*yg=czA;F%w7^duf^q@#3}tfvo-yzl+wy`WD3dyckq#X>%W#;sp!O%1;P-C z2e!#jIwU5ID&|}&^9ip?q?U=_qzD_w_g@ntsTFmSsSH|_-kNx;@dxc>)8b+e$K}VX z?Fh8g9fLo_V+zJFDedyBabQNwHym;9yqApjl`9MlF#4xx&oQY20Tn;^bkY?3nvmBu zP}ITP^r3jRFl?KCvA? ztw84S#9?5qXL`0w2iR-T-;L;$pmv&EXzqk{W+9 zoMKfn5jOQM9NR+{VgNEh_jga;nRg3u+KC(8VYEZig=UpD{x8&}@2`DONT-Ll^%O6p zUbDp@H3?oF%qsx63e=|~#WHg}?`ouFe{5CHr`G<}{~_>1J)R;ECa)e8V`SWr= z2h4u6IVx4Pej61EB#HJ-GUoB%} ziGq%mPig<;<2cBQ=)AWn@fweP*wDh`gWT^#bQz$PvuJa;j^XDg6wtKZ*1|~OTi&MH z$0>BsMRu?(3?d<4Y9;J%f0`|+h1bQ$*cO*fH}P}m2EtaT14i_yI5%fK2xTekUjZqTO&_Kh1XfuPSB%bREA#le7upaiD3stCi z&x`TtG@5}g7hpmkq3Z34qkBK>JMoQ_7dF?7$z9N~AIF%+^G$Y?7~Q3RCc z&zgJ8b!jW{r&!*S@}b<_&xZIzc_CPz0Hr;8n502G_+h5u3B^oA8w?6;(oQv$b>KmVc(e3JT0t4F1+qr0deE$RH}nIMTp>QA^S5m*^Duc*CwY>B?Xk3?s3?18qq^ie zg#ulnBD9{&60NRjm0BxEIabqL6isX4-wf5A*)hu06APQzN0HO~w$Ztdc4M)SH)mDu zBd@wci@Nz+oqxUun!@F$wIu_*cz&a;N{Kay2(4qSG))02B^|ExjG%knL z`_K$#r5c;uSFVC#gT>8sTa+?yz9O2>i9g&S{>F1Td*m(@kSkQsn%Rmu1M2^J0l>{% z9%cZqta+8lQl>B+j!n=9{RQLnW`p|TD=&3)6kg1a3|{Got|Ch5G8vTKF6Bu)&F#2n zIAs*uU+b_x`}3~OyuCSYc^2$g{S<)Q7I|y7UzV2 z)ElAqhSt`ugXXGe2UTuFUZI|DZy3z4av-obA@mrMUMp4)GC%iN?2HnE8Sc5MfUN`U zQ2nl1AmcQF8_w=2cZyu%mT4QdOQ<;{uV-7RY+rKF(5H+Km8V`4exDO@OfLF{&Suagg%Liy4Z&^F>n zUycFTf*1NR?xWg`6H?t>!T4O&fY~RU4GRY0msyefD zBUC4z#nWc2*#UP&L9*@nQ%ZoLP#8>C4iq_y9yTG$oXF!TJb57zcAvC=W$)E2Rj)d| z4rHQ$N_tGM$(QTM2U^5MwM3im_!hC`EtYG3fLbq4TSOt3#IWs`=aZm{r@0&2leScA zF*Mt~D~i@5Q>)5Dm!pol+-%`uG1PtdwX)BEL9N>9>rSd~*>^>MLlP);i7~zx*G-*a zP5<;tq3egtkUnqngC5dh?GjV&z*n-W);SVB&h5 z(O|R;njz&AuRj28SyKFTmCPLm6Wv^Z;&Zm~Gl{d?r?kRayZvs_6ZG{44vnbho0A2$ z+WT)#*lOLa8Sg!FRbhtW^c!7rWf+hRGqH6HldhV%V$wCLjrx`s8*Bg-sieHAobJdZtjwguJ~o7LqNSi0T;3bCQV8&Z*K~>GP_uC96(E=xEd24co91T7 z;AtiGI0k+%z5OCD)#;l|@Qy$(>BX;!pa4%bJyZwsa9I+7^X!^cQSn!Njxqdyl(|KAVrGL-P=KW`lpAmc#iU5ah# zr$pbXe?IR2!_|1`Ajc*P_5w?&>H)yL_gB0p(f%(Ubw;p1lOg%bA^%_A{{NrM3yK87 zK>uHC6F!y?|FT_<;6kwT??)yIeB2#I*KIjnuso%Njz1gf$n{Fptmd3to!c`_yS9IrlclM~y;3vl`CFxbKlD8~;0Fx%` zF1pxx=OJ9r@Y$+nffM*RIInbdiCT0C`jh_#8-Rwk=<z`)+MYllxlQ>-oIjno^++fOOKeN z>3h4|*!%#F?&U18#Sfbwc7TfX7T>@gR>KQ0&R{8^zJ$sTMUx|(ZH~|e(LZPx$R>S3 zCgl4iqS+=fl^=*n8?Ra)&*gYQb#=UIt$@iTiQ(+(`bC`0+zg22b2^;m*3kq+{x$3a z4{74o>g-eNUXLU*W*IkePdTl8a6bLAKN?r_X1X-j%!rE44Nyas%w-2)TeWJF03;LtK6Bsb-|G;so>`D|N=s;mdW5e$zh89}f=Nj`ae z4U5j?bUY@!SUz&bYP^l!>iZ}HBW?k6{5BA>fi8pp3&==nt1Rrt#Kz#yM{zY+9Hs4O zAd8z06$udZi4Ew3&ap9&vnZ;d3jWr5{8aKk9#tr`e@3#>fjC+hL&hvLAc+=u3`)TcRLPqKJ@pzWPiRM?=CPE%l-12P{ zGG2nGG=0q?GuKb6WXxJy4!zm86RGFZr6B(4#v((Qr(cem{l>5i^&GnzJOGrAhKt45 z&0kEwc>=sr-{D~pGNyAZ)ujw?{`SYvg@j+$H8u_u-1sZHU)+LBMv`|;)pT@q$0RlK zl-y3%V7G=7vMz=$CAhHZl~rQ_{8A98NZrygJo-<5zWc5*c4pjenw`@UxO8{-W{EPm z9Pi{r12;nRu57Z@Qxd{8jP+k>??HuZH zs4#Q(jmgTFw*@zhKXBBU4)`S=!^4>zhcR&wCSV!20US6*R|D7;n@;H8Rr}|8)wHTV z1x3-y|MI(j(ruE1A90RRll!bi0buROkM}S^lux0)j1|$4=F! zDvA2pbp%rsu)Fm8W3WQFJkCzKtF%q+>}FniJel0xB^@RFq^zy8v2Swqz`7bC{TafC zCjvnR#kmA27CKo{o%QTFvh%yk7sK^;H$6RTa6y4|G0Qpz7c6JI|CnI9bF&^&o7Dg zX)(hJuG-p8D1XuxlzSr>S!G7;fyD}cRjU1EN$+zBYRVvG)g(u~#)w&kPM1cl?Zu$b z>|5_*WS^4b=vq~j?B4IMxLH$0+l>ppm%Jxv!l}5P9wGI$G>ym*p23ieVWVAcatV%6 zfm_|1%ep<%N}UGDEMpoXZyp!jakH*=w#dC}n2@nFVpd7_5TKHYB4AD9|Jm)o{)J@Z>lBU8jK`)_qq3W*9BowInyN!w{j_i zdBASHy_KC5czXu@=r^4M>L1Zq-*h)_Uk!Ct5@W9jgW)cH--<-{_G&aE>nKx+Vb5q> z?>&gsS+{g|OyJplKE`lqt$+(zqkQt&|=(O=!0_OuNrdDVBeEn3+$hoRRAad*^qac5fjQj3~SItY?o&<5f!^%43~1I>$?>E zedZX+bWaa#!(#raCDrS$w|x4TWhT+~WR>HgIY1`1cJ6Yyhrvav<2TE;mN80-^Ib?= zQ#2Tzptkd!3|B%vH280~3kKo2rJpcD zRfhnLEzu&kn9M)L>z-vZq6(7u+?&Wu6pX7@JTb{rqEqqG`Djro1oboMkKW;}_VioP zD5cBd297f>{7}E$(|n-#*Q2gb?r!1k;dZx}&EojD*Q-;L6P=$o_VCcSC)a?A}>yDSbCFEkxxO6w`@_QwZJh9d~4|;M~2h zveo)djpYuTk|XuN(xH@Z_{y^OCCS#?VnJth|Tb_K;WN%l5ak)-;%`6?3*d8*<7glMbM$%oqkAEFAbUk zLwe4|k|+CCA1(zh!;-&Z`toU4Q;Jv%i}~lzs6PkG55ebgnPYI`h6`#F$BdrZpfsj> zzHbq4Slg>KB4Q4pZq&JQZ_2nNM1_x7^s9us#c_{2#tJn*oV4G611lsDe8wX;A2(L! zQajgW?0&28Z|_^Ixc2RqTBXPJs4()u%!CCALPr2f#8B#j@x#eo&!}nAsbPmn09pQT z)(mi~4&EedQQb=7%41uV_6}EWAysF-_3C${!0jLSR9E+mWv-t?PR9*sS1~yRkN6vc zO?(l}FE09>M11X+sw)N0uDb*rNK{}I^aV#lp!a@nl72-pF)n+#1Q}E5xW=%Pe@3{Wjwdy0sYolSQMO!HB?Sh=Z+wXgSVq zR?zF7Zt2}fia-cZI@eY!|Bx3B^wz2FWRrN+YBD+yw4m0^USGe#h6(3+DbF`JG7hJ4 zcp}j-9^7~QRcqO(E}gqFJAQnpSYwN1aPosctGxW0s(8F~^-zU+E61`jH1G{;!DRGa z)9dIsTA`xCeNq#t%Ma)X3Z-e$(^d!*TjI07S0NLhwN2JeTObzPu0v`?+>4cTtO{la z0dc4uK*&HPnSwPcAPP&6acQdLfL|fGoKzeb_**dw5bKlx6=EvNO#kAVwZ@$9V3W!e z7q*$tKruIKnl#eexa**t z`}Mn8Wd+b^C8jG^m!UstbTyQ zQsN`Qwb_=0TABWe`J6uVnlD5rs3Ry%X&kDXz^Mf-NehT%d=mR)kRufYzu`SpObvbU zGF~d0Tu6CCd9l7-A`m7ndv`<9i+VD@!n?)y7aq?bi{@t1}a7NwgAvrtC}qO4S{rP5EnqB!CB8kzZJ3Vp^pN6P?nd3!qKXQ7L(czg7;;$5vh^l8J@?$w0v^S;f1umA}{KEY3tXb9x$@KfiT#)t{?&3~M8k;g%NlAQ5QAVqNAJ z{)WvH$sc*DdvkiIGI^9R)yXUGgigwkaoM$9rLj=HM!@oN+0!EoPQjYO5XSWTCXr{E zMpByhRjQl91tF^iKT~nNC@$I(uJIm=KR$T>rvJIf^!_6TJdR%?Gc}NL1b{53e@fiH zC{VB%y4lr{BndQ=+E+UQE|y3rMmGFDFlFWX{jF&E zJPX3ka{JZQ_@kS$HTyIq0PA8;^7i9l(iQE*MC*1e?VofR6Qjcri#QM z684%_{hhSFA0K0+iiLeRrmi5d7nbNCEgR`sHth#47JRfa&8LaP$>Vz=?7~UKSk^Zy z5o5X*7LGuBy84Be$zuq<#W@+L>i|g90hhHBCV{I^1x1I~RdJZC*fx)t(;E$wN{)IU zr2D)x6?!(5R}kat-r^==WqYPv=XryCJ2Xq7YiEv`#S4!6tS*%^Lb{wKXAU_s-n_V? z$cQ7$353~S$$y(F)RH&UEOmU+OS#BLf2hIsYJi3w&6*)Y+z)(4A!Ynfol+}o9Q*hi zw*9Sgbbg)3DZ03mYH`W=-It@eA}8x1vG~Qn049DiqhXArt?c5a$ZJIe5VQ$$LRE~( zl4_y6$nS2@mVcxitz4IOnb;)1)kp2(5pipw;z}L2EG{5Ea9=uARbkw8Ix6=PD6jzf zQ6I7fI!~9U?!vn=AexSlR5Hr&SW&a50)&c>H>ik%*ioAUEF}|Wq5F-f>%V5_Xgb6~ zabXdva(hZ1dSo|lMcy0b7x*RePM>HF*clu;LE-ayhb8svVdPoC(|Sed39Z4G5-rBC z+4=LC{Vw}fH@d+5I>SLxv;WNRgML;>BoguyJ!%b#dX<( z&G;`<17&}DNfHV2V3|R%-m-=zo+>-=kxobbllu^jgASBBlm~_IyERho8hmqED0B8 zRGM^dO}q7Ov4hzPP$w{*EBIpH>%ra`)5eI;L3Md?3?bFwhpD~YKO$3wYLGOXfw%$v zZ0P=E}~W7_8*t2`kRL^Y?9 z*MW{*GB2v-2c^r^&~hTGRo1ZHj5>UzUF4;IOc2B{=Y;H|?Dpr?8ml5eXGYS}Wn!2r z2Ld;He*GXrIJb`ZfO{0zN!i6tG@D)bDX%tAo6R*n^eng4bTd~#sZ0gFJZe639Lxr@bqCOC(w7|r19h_d-3Jd2iExKdhNeulyYwn39ia0-E?|rA4 zvlaUrs_$^({2*N>SBat-2r^e($n=a@_Rf%GgCuA8T+g@KL`Wq88Y=RzfLS97xzxAd zZaK=4sN;5qXdPi20BJs+ig?R5Q>y7-5Y??&eNvRJ{q+r9s&s;W4(#U1*mjnFb6d<3Y`wEwmn$2|i~-_>5PfWXymFQ7^VH!LY~ZENIy8 z*25aHT|If<`Tp#n%tNB^b7oPh;)3TQ(o<4aC+9?MMaLuQG)HqYrB0 zug*W0jv@tmrk@r72mXD3^I7W4ZcHYY2%~xdh1`f#i`l9Ozt_D6R}eNm=6sDx%K;E~ zq6J4zH^>oTxRYl(VCe2|`d^={XX$xvhV6AB;g!3dnLPYPjWo4yCy!N9Y5%L}76$AC zHLl(!y}V4N?k1v+QhtGBhUB5w67<6JLYo)M3C-80yB`zs&;&ASY)sVoo9(2FvIf%} zZ|MVY1L5*xnnTPTc`VQ0kALd-4OjPGMcuHvP5)4uzJV!CpN#;Tfw9JKxzA4?D0rpK zRuEz6NDeC`bWSC=Fkavvv%sfmq~NC|Hd31ZYffy~eJh>o+B6Rmni!N+MrJ>`Gpg;e zYo~bjgp-lmjhuB?xIv)lT3{W)pp;|7?RG)Wyi9-*U|f+wZ2&7Agh~%jO72t5pA~N$ z4TNxOJr~6}_x$-Aa|3y3V{&zO%6mfY0q+LMeftpd-1h5D{4up*9-YE5QKD*eVjeDH zt(1SCeNf21$d8=pER*cB(Z}eWrymiMNb4J3s`GWrE zE(rZ$H<2rv5ZSzeE|}J2=W%JjC}@kUFX(Z4Rt{`%W}8uhG`*ISGXb@bk`ci)MT537 zJmTrsy-{WVJj-Umkqb0k!gn|$vNt?I6ijTpkasz9MAHWCvytp&UW)i}IYrY0E*6EM zrN+DBxHi+{lbUC%EQ`Ed5p4Z2Oxg9pT9$WwnvML2N`QZeLQP)>)<*D-q-Z6~s$?0^ zjQjh9jn>5alvoIx2rgHy=3($Pyu037`aHRlDg`ck7A zd0n65#_%z2Y|dKmXZt5DLma?Q5AD<{t^}e~ske*n&@4?O5zJ(qguBF;gZwDsYGO4 zHjmQxIr>LejDUCjBDOit8n&=z`Z%r#Y_@hok|x%E|J-gy}ij4;(e;eZtQB`uIYi zFZYMb?M>o}4AjSiLZ0wYmo~!nf;CQo#K3HrV!-dH=^w2bEs1BU3Qs@>eGhaaz4BarasyALJtfXnuQoExX`z zg%gRgA)P&qQtvPOGwF4J6E&SEl^{5sFeKi9I8~xT`(v(pm;K{Gr+GCjg!l6;c7rom zFF&a^=d{pK+c>luu%9SZ43@1BOwT{cb2Xhy8q3AYaWV4b#gpyA$l!(cmH8zK#%dZF zAebDg4w`#9w+kroV%b|tCi(X!WaK-{6^{u}^8YaH@H+~=cvmo$zLMs0f6p=<)<_dn z(fm}}wNiz{Ew8qvej!tfvEshcn#ie+0BY^DarA52QY3?s7wiaNRI@!T*XyWMf>1O;Hu zeSb7P;@aa`_o7XHv`GAiWX@(#Ju`wik3OGM()~#4*9w_eVM9 zoP1#sWof~`js%rsOY;qx?|ERYVbLXKd|X^ z#aSg9h!K@0o86q6Tu$GYWe!dRNt>FIQFG->1tL4&=EKsjq-~8Bl;qjPnJ+7uqJ-Jiv>xF{YuU804OoiDOfcTP4 zRwkiaU~%il2JnswXvZirxeeOz8C?muzW=g3q`D#wRm}2**NT(PC_4p}MLf+^h`a_+ zdwYm`XI(_hA=GD3Z%MV+eu`%!&Wax|GUI)pi?h=WF`dq)R8gye2Nc|+MjT?uQbhFS zeuRgfIPGm9oFB}$Wu`F90s_*&30j{eq@p?toS6DT$H!)t0w{8+ z(%Mf6^Z*F#SNug_LlSn0F#gD@OqL&dlW?+k$PrQycG!Ts+hy<~TDn>}P@7lrOYb}B zO}^}Z>YczWq`wmo@;HbJ5Xo<)P(7eJ&)`s zyq}gxm?8CdM%o;}!e-dF)|L2!N?qZk8l2Yp{>4Urj7-fHW&q)0o!y81eL8|az2)#q zqp&~X?eSrU5lvKY)mlx@m% zdt6c?X|=tugnN_l949um5`LxHe1wPgX_rwdZ_u?mYJ+Cz-}=p$Q%j(8+p%L+j(FV9 z-H}R-HSgoGrQ0c;SqzB`-A%v==hK&JDyUl~mS|;hCDy7wdZn>hv4hLXn=rhYF$=4Z6{ncI zZNyAfInjLYr$=4p$ICr+krIO&>wInTo0Nr1?;PkWgmdnAzTae+U5-85tnC8o-%X>> zE2etYs;x>gB!4AhXW=@C&b(f?eOTrxo@YbZTZNr!gmfld^~;pvP!5xuaN=R%DL*{i z|4>JO0tNj{Ep-Efqlk^PW>YJT;0Fo2SvqFEDwxlYDOM!}1Ao*gKm?f)t0OW*OS+}}b%LYNd%*t@djEseMTZaSwHCC7;--3R8#-1l zlN#Dsf$B=77%F;i#M)F+7P#@NJ$6|_M}=JmQ#v{ZKaoQ-d`)O;UL(ct~*| zo#In%Sujp6NZ_2^G3=FLMs6yX^txt<_f{I-KMHbtQPJb$x8bBoqM zUXcbdPZGUdIvBM3^-3Yt(y;|HsUq0?>U}m#I*mXw2A{6n}r}oTH@1U*}m9(}@+K&r+_h|4=?_?ln$mdTMLA4*Q&-)-=P_=oL3A-Xqmqrq|v-OuYgdq|@_cc_s{!~w3 zAP|;LS<<9*PNn-)yo4vkj+e_+6Jhy{J3@|`AsCtxtPzC6-I`7@iJ3DJ!haD1SDn}((Yc!6K zQ1c^L-OS;pc*YzbQQevG1M4gm+SoI@32-HHf)SIZL5wMCBN$8)R)o~ffO#dx41Qc0g40;pD~DpPW$26GxoZ(;K*?DX5|+69o= z%Oes#qml%F;Ohxdw$!`@GDQP@ypKsGj;$zK(!)f_HK(nXsYR;%qNWYi`s4g+uS|MmSF3Fzv~RRKh3!Eze`0e zCde3ml-aD`9^GZefA@g*8k-}`FfUS@h9tl8X+s=2VUGA|zZ`jvAJOa-EABF524)k2 zf}&UUiI$Ttud`II+>Q#@iqO(t!IRwM9j(U$!I3a48ghpC`nBWn?s37^1xprWI|kFb zDfdp!s^@Qb_%is}=j+gJ0z7Ut4`A!!UJJxGi*`Di{i=`_4HsCu7Wa#CwMDAHtin(- ziHli2O)#uz4R2)tk2NP*euqgf)6c}<^5)ER)Zo?DhIW8FN!Ko?d?ld7bhibh_ynQV z!0f+3LQr9J5|*9v4jJiRovCpLBFKfA#FSZ0PIHAsa&ptl3IJ-BwM z-r_=RE%at87yh|eTRiHFLLsiUnDwa14s$hp^rDNpA6$@S`{4lsi%SR(I)ss8v!O_O z&BgNV%0?gIs>cPNOx`i{jrNUhz1NXhaT1?&M+o~~Uwm{LM=>R;l_qK)JjR&8HAVIV zC20`kG)$4`oijIPo+RVKp_TxVcC2i7k!gh2C2~WEn+0{4ByHk&a*OxVx9Yi5soFN% zHS(l!eH5hiwvqvMn?p)YEQ{676=G3iaffgwqau>UCS)Y>t5K#Y!!D^W!C{T$>SNOE z-Sdm9DLKJk$tMHjlPGlL`WhnE>X}n!N%_?2aXB^#9Ylee(uP1_zLhRRj(-fD+UswM z6HzUv;%i0;@g3nY9FvCmjo(awxs+4mzv)!q@usbNrmWz8ABKoDjFZE5-8#RYbScFg zIeh5;wOW7#t_VvdV<{XYrr8&4aq(aJK)b#< z)3sSr^mvpZkQ}rDCJ(#Src=XYz5H!f4gBZMBjA#jTjUTJ&+Vv_;xJz1yuC{c zhrB)ry~tT^rXLuJ(i0qMx=EiQ+FdfsrP(P(RG?Yd6}rW+UNMG{jcsH#%nPxxcoirM zWQI=%0uP=kDaos9HYxnyKOPSWT)RgY!sgp_xc*73UWPosIkzex&m;hKRrc0>nrY4t zFdu4G-A?PghU(Nf6!7;=G?8l-s1>S8X=NtNC?&{0Ww*3>vPVGOpYYgeXdjWHpBmlq z{~YRv_*pwr4a%X_h@R?{9-^iU{pVA6QQ+xq-ye!HKMLMH7Eh=*=XiY2#%k)E2&Bo9 zH6xo0L?>V^?xeenO{5Etr;_wS6l}skbHU-z_)b2hbuPTy5Zr|bqGqgpE97|3@TRjP zYwz#m!qwGnz@WRBvo1#6fwyhBK9g@#rbckAG4kw&)Q-{<8^WlF9ax*ixWq$YBO-xkm{&VSIryi z)$4<$ZeM?;o}`l$g5A%nzP*>072=f>Y7+DM--ZWoyt~-N*L@6fa#W1EvaTmh>hY7NfG?s$JUnXJ&cYw?#jK9w%YSF+ zKMoj(W0|L#Tr_Gl(t`Mx=W1wUe;#0cPT-cZ%wt;em2_N%b6WH2skKf;&DnBhxOQ`; z4g)uC86@BF>b#e8NdJd~DP7?f2zM0fo%(V>37@m`HMlPerzhukGmM3~iy+TDO*EnsDH5OY`rI<0xY4~Sxj95SNF2w_X=D-AFi3F#L?y(U z{O>KZYONREW)ljwdOsKU-D6lJQ>%~#m_I^nx^m=J$PDHedv%?^5NpSHwmIsK(-) zYLIX)HP|07NF>_K77X)Oo5h9BuO;q|Wadv-M!bVebolupNQ;D7OXs;<#_zyZTChv4 zU9s0wlqMGzhe)Mp3R6#7>+<@OGk4y?*(pm&KdizVZ;DOpiQ%0E}QKYbTx#Wsx1mJB!qX?NvP*SQN2@qvlBya5bln4*@K^f!Egb z#SJ(~i=E;bk`RT-!}HqW=0APAVv{ULZ=lL%i4W6e4B2&SQX8PbD|asx;e@&5+i||C z1gGspg!V49kW)0$fmLt0M5C7l&sk9wlF`y4($3XzU4c$o?_4#_;_3ZYc#1Mwbt_DZ ztUEG!LX6_aAwH&}g)u|fR`}Prq@jz}t{b~?F}UFCk~^K|Z(&M})*rBZWSY_H#U4Lj zlYM(CsrwCh-d_No_oykNX;*{sYkjba1*!VXyZBb)7~+WDx&{!VW}QuUFphRZKtrBn zfzw1OkbqC*eVq6PO_WXB)vYVDywQtlm6A8e_UkGSf0)~Q(l~{>;7_^y9@ifH?rHg_PrLu;k z7Ti47nVrPe%g0I)<((YJt1NSY84;?W||Nxc(?J<0=1eGtwXFdqN3R;!S%* zu~&1YY`z1r%(v~eR##crmG00t0=$bqXu2#7UP!P_4K97~+_x-q1Z<7_{hDdDe+y)L zK!NNmg%}WCc1p)fYwUZ#XnwtR@#eI_WP(tf>nx71buEQZd|N2_STCW7LP-9j%64in zg6e43_HK_rhsRL^lcJR<4W5{yt0kE1y2rV!BM;5Xz4vaZu1$?p08E@cqKVF?yEcF& zWTVexWZ;RXbM?sDL%rXjO7OW|;DPk|`Uv!9u_-jk2VT`E54J~V=X~az2TAJmcyVmW zHC-7uV)UsJ&@B(oF+Df(j+R=JZ+fl*? zyYWS=ybt|U1iv5GwfQ}qkVJ1aLsD>~uWy`>A9iDje1jQTQa=HI!PsWR2G}2Xo5c-Wua62FmNRB{p59yL{ep_tjY+?;qQ+(;(JFr(Mm zDTG&Va4$Q~?6Xh^XiInNCNzt!@()b`n`+8=JUmVrIDEzyyRW+X7DpIV98|gbv*ZE4 z$vr*m{ZF@N%>$h%z|B#tqw`7tB)ML~eO~kb-sA7GcFcu@boo_)DB(BSOKh}ZkT9le zx+p9LAaEP;FI`DzvsZN{cmu~&y2r3s+qqEr~ivb1rLGWV9`X8yOZTim^zbi z9xHNsL!jNC?Su4Z=l)9s!^a2kLI(~f3CZOX{#9&Nf2j_e0M&u3hCKuT{QMlo=v6Cb zPkaK2S)6R1(JnT*U>Y?}AxzKOI-wFMr2WTtgd7ZbIGh@O{|VO*9elMCxXN;H6gB?z z-u`c#*vB|{Ks+BeU_#7@Ph)WK|M9E40rojd(vUgP*H7#K59}x4D&I2MLi`h4{VCG? zA6ysmmp>2F`~Sj%2%zqV539HO`XOsqkX|1n$i|5Idmf(KUrkuv?}?`igDPyBlOyfS$*eH(r$EXiT! zM1NvU<}#)8>WUc6L7)ug^mn0c`K|u*&EVO9XGCJ#dF5>Mr^xzsfi|Ony9{Ecg_4T& z$5oj7{NDz{#r^j>U6TM${eYUGs5P=7N~atDkNm*jk9GrqvHq#$bq313UlpIfU50~! zi`IWOF1p3D!EKTy>==vVPZV+|Se~b)C*!Wge3xSR|L_YjVlje0IUFx3gjboh>FB(3 z<{CBn*8SqKHxdcZS+xU*wztObg*@)B$vNdGwvqvRwI5JJ7iJRVDm`nT13GIpn}{+n zKqQCZ18VPJfc70-VEeh;`we_@lq?9|`0=Rz;j>y@4GD=_#VI; z0m3ce)FxL99(&`cUAYu?SW-a^?}4RkbCu3uoPq3S*VWmvtl3uY)_Qyl7z2r`fkY4^ zfEmi0!gA%dYlkU0$p5!UU*+rioa}$7q6wGG2U$;Jf-GmE%DD@*Uq!qTK#rvbmS5u| zG)efvPpg2P#~*5FpugSnaT$ED;{IAT{{|6D{m)_k*P8h1`I^>Ra5_Y%SEed@3m8D| zZZ8;F^lKicAJ+Vl>fEnN`({h+*3yN2U&9k|6$AEP*?i6ShBGgLv&rp7mS)7#{3RTo z55hBx4Yjx#3rIXA+J0tqQ2zs1>)R^4QQ?S@UtI!%5PY^Q!^yg7c*;km2FEjUr(@or z-)ozYj7-f)PIC`>+L>RMB|YnNDEr>6eg6}@^5ySC0+fv$zAq!{q{KpQ$R}7-Um6=5 z{f1cm<{4LWdEB>Tg*pzlw!RU9Ec*egQfp63v%6BAB!)Rjk6&V%L3PMC+4k8k_8apb zO|f1+K}4{B=y9m&z!SfiNp{D4$&dlgmjq8*DvJ1=o^EP89P>}Xq*q`qP-s=tDRX)5 z@gAJa8!C_d4>N42&vV+!tX0$5hec~Ea-Vlih)u+-wl|5{@r!H{6TZDvw%&fW(VZKZ zEKYtr0VpPDCW&ol*b&y>h4lZ0ph$&YA4w)c@plM$Oo%-mP6^6Lmw$#d;@NIbqTZvo z;ti^tyYzjhQX!{rX);B~>~h4~Y!8fMCu+HIS)VJZs;jen(c*n)v8={8A%NwwfqNwv z&K+U1_IUHk#co@qyhpLo>ySY@uH?%kg~`sodYSFffjLv65L}v|=lE9cNM}geKLET9 zr$TUovL+;?y41_|sUl+(>7NGr~lvccT_0&=1n5q1(p$~UX1Md3^z&le~YNu4`plRG2 zPoUr8vOeC06whyf?BU^YzT`utfV=%{^q&4Sx4O2+(BpA;$!rZ@JX59{1`JZtY(_JP z;!_X|X%J|13Kmpn-Y85rihGleU)++jJ(6m$oJ;^tQq*bwkuyLZCZW|CN`Qn$y4=Hq zaqM`~UVnN_R+Ms2&jhZfJKg9DBj7My1yInB2Zv8v3>jN<*_@|aBUEs+&1W#NO!MaK z8Xes^k*!~pTa6a%2HyxQWT*bmkO21CZ8X@1Xe}~y@1<%YGDOI5$!dhz{WzmI^<_p` zti7Vtl?Yk9-NE$}!^O!I)Yy z7cHI-hRS$cIxZWQoX9825ROQd)yMi*lF4kX(QrK(FmbH9(Hqe>VJpq<0Zz|+6W9x1|Lm$m%q~;6N|;7k!Cs#hR$DD z&iuYPW0k41Y4<5}-@eom0)2?pHtJST3L!f^*b1}!5la4&QLpLRkXWT%5&&=X9Itry z@?f~e0!*93f71U2tIf}T9b(d}z%Au1s@CQ%ThF=X`*JQH$qp^2LJ9zYSiZI#3dZyr zr9L9oVxjmLQlgUZ(yf$}-Lmn8yIG`BYvp6}insSSRb-RFyG73+Dr~0W1A+E!fCcGt zaSE%95CUqC#(WS^DKR8)Whjy|^~MF9IpHqiMoG=2o; z3H6^CvxoKN7(5*2-YyC}3^>Xv#wf!r2{+6bA24HDyM#CauemCy6 z-Uka+GSg#lk*uQPLrDS??d=TuUqyDfKL&ns-#V8n>cm%jy%9Z#rM#!`;?`8| zNvt$7w0LHZ`;!l7Y*oNHvtUJ zfy}hc6k`k2;)5SgF8mx=Y`9C9!I@5#S;p%eFJx7)cvh`%P>A zO1It~2OQEGwbNz%F-kgr>|K}4*87V@|LTr3Ad6={HTbob`MsxF2$yxSEzjdMuEWuP zVG^9e-Uk9$Ad@FRLfbC42KCS;1_-8ya{T1(7lnaomDWo(!X_ezwdiw@S3oFXKUXZD zI5W<`gvyLe+C~rqXBEx6{I4qZb`Jqs1P5Lnq?!1+Ew&&len9nR{B)?uo2MjAqD`w; zL(49MN_}iUpt+j2f8*+&bSmH!KG_i^r2>iI9HBR$~1q;{Rt>DMCc48c6(QS@keX(`c%I~q<&%2#Nl2a zCed1NudkxH0Kn+&^KyJtC!)Ac&?0rt0<=%$HmUsiE9rvc!LyzQfphl>foA+p_wP(( z)4nFvS{E34>tFa0I?As{!sxnBPs`t_!cmNV@eM)l|634u3nC1lh*tEkfF-~f}e2GJ2=3x2&$*Wd2S#w1yamcFG~ZgJ+Y7& z(e}|w8suX6KE6A{SZa(S;$ zyx2OEeG|xr^_@qCYqv$K&`dC@;U{*@5ieayOE0AhFmG{O_Y4s9JicLn>!$@JgpL*G ztm#PwaB&u^bhJZMjuYK32hF9D9}=@gY{$r99nfLwePda2J5TSXXw2*}C`8|<%tMtj zL;(8|n8bB5e@vs*z*p;hMol4qs!$udE7)}A*4-UR;YEg_sGSYSO2-@Da)ublz!)h0 zn;Hus^D_MsZ9d{LX`u7iZ$--iKxCf}aA>#F$!OHSaY*h;I1zaaV4i!=57`7_3K!bc zTEyJX#bG5~tOAN6^?$X6DS&pDzllY#Nx4{e@-<*U_;5;$*j8PchglW87hFw@7H3Q# z`h`^`Q|@qkEf!Twi}9q{$5(No&Wo8QoG52mzL7;2s;8x%q-_%^vmRK170IAxQBnd$ zu15#6wa1fRyQbz!SZa=GgV(?5!BJDbA@IGeAl_!L=54ey)1X!FWTjCK(6jIHs6rG|=i7_YM zm%}dwgOgF#(X28Q7nhb&Is|{w9UZv=PIJBh;v?mA;19$BxXuBFId#=P^VA!RkyZ6ust!vHkNunvan=)v=U0sFgTPf>Vw)=Udh7d<0B}if4UN@EFDFk z1efWA`=6N*RmV^asJl|OXjJ~3nNG7XREKC_ zQB~QT%nL?cF^TJQOMGdZ6fUcNVf@g(WdSS{fFli{U`KO}vQ@)?3L8cH#?2NoI1GEj z<&=DXzlXOx>~w=rfwhpxF(wV+mHGk0Kz#?DYwyL51#gT>eeRl+L=q41@<~W>xo4Y4 zs?aLDJ+bGoBn}k?hT^K0>L5TZr$mCExIQWdPsmsKzDDUzsQR{?D($5xA*M*gwTDI} zN2s3|K~PUzYc0r5m&mB#=5V0%A$O_e0smovP#%Tr?H2t1UICh)FzswF0&phz`T4VF z2r9hqui3yZu9_sTaVLw{?B-=l0C=D9;>89;{Lce`WuQ9!nm&HFb+AFkQf)dq`1N>(D zJd3UgCV+>P=v21V$l~z#jaR{ zaTV$SKJ}9sON;Sf3}f8v#iX1*^I^5?%_)RQqYfRIlrx8j7&NTrZc={5ArE_ z8ug3~-A}5mt4*GMxIA>PE}ZLlm$d$8!va4pVE2x~JpaU$^W?)4*N8L_1qB6Xp(?dV z@i|Hc!b6w@+wwEP?=t+oEHWa_%_pRV3d;5_1|N^~30K0L2t(6&X{D8si2g&=7VhJUSAOI@IMU7b*ausZSU>7F>8nBglrKd z#fS0vq~}`4o9xKjh0B~u&esPiNXpFKT7DrFA_ zqVoDwq*&+ZN-=arLSh7(&4#bvdFigj*HIYo+kn^a+KnXrK z_R*(MO+zgNmp`eU;q7ZQdp}_?7w(HXR((tE{m+a4)mD~l5C)W3^U*5l3YS@XFVE{> zvEmgTi%vN&GE=^0*Lrn=76xtgr~>nOq@bDBF6{;MLUBVx*B_pb_fqv# z4622}Ks~Jwplt`d^|1AJ)yvV6bJ!`yA{s1do`y=0?goi(ZC#Vt$$VXocdlRhT@0>E8*uUt)*t?@nJR z&s%yRho^(Hz`E7uD^g$sbF7!^w|q{!U;EV@4Ue|M_D^OerMhWu-&x6`PhzVzSNKOc z9nNQZHM`yFVAc(%2t~l2;r*lyYz;d1_p!@_x5(;-VlIERGwy56bzNUfAbJhOX83`_ ztfltD{Oaf?Q=us1^$oGX-?R03t9}8)&x$F2c6OF1R4q6kM8swAyEa7OM09sLp7wUX z6)!$M5tUuZ{-s%n4M_7tKW`7O-d%c3q^m*n*z7ehC~V@lD91 zyo?B)ZXjto^$dQB2C?WBe4CZrBtubGg){-*ry})W%{m^7&771w0&8o{A$U2hdehxu zS^a7nd$n=bk2g!L6iz3^^xSy1c8*wlR;Z$t2ST_qwQ=dTD>`OxZlr4Dx)X<`#w2bloBoL$_^r0R0Dx)#Y=ELD|r^#7Z=ESAp=w zt)KRRg-Fo&ANi*{G&ORVAg6ql)(rkUQeZVF&BqNd@2SUQr~3#&9_TE(zh5w?+t4Eu zfly(Qa3bd(AInB-P1P6cJ!QK87hP`|kX6>b533;39nxJ=(hVXY-Q7rccS@IZNq2X5 zr*tFT-QDm%pfmIQ-kJBKc%O52tiAS%>sm`2ayV!40gTYNdS4n#c2}}yN1-S!2B^?4 z8qbF02Zz(T`quhWJNn!B+Zn(|)9Fu^={D?iaaUsBX>dqWm zCL;5kr8r?807_!7RB8E4(!z-^Y?`3(6gB@^89!^m<_Z{w#?M!4v=Bf|yBMFXE=f+v0Bt4Y70+1YZY^569oqi(%vMH1P_iFzqvd?h zP51MoDNeS-S3GNF{rPGVS#8}7RDcrFGxWb2^h+3#at6lxMA)y!$;~Ayf;Y<;g1YjM z41+5_fK0ayat1czdZcjguI*YoLmK_Gz7O$)ar38G@;+W!U4^XW8>#UU|12UYL;YC` z1j0}lPs(7u6!#$geC90H(@o%m2NQ{ft!=axYyh1`iyO+ScYz#Fa38g5J)}@1u}nTK zOZ=QAy>JwnA_

cvddr|ER#u?w=WE9FVZ`l=~198^z?0H?^D!Sw$APo|kq4A}Az zorSvNw+^R#S3Zdmi-P_NM4B^*W($oTfQu(G9vEGaW?hragG#^2`!*1j!sE4NJ(omA zX1#OT+NMv^w^n^Z5d%Jwxhs-NH4&Fo%TOUD?>z{_1bQ>A6ZDt6rOb)hJA0mq zBAfF*<@Z1{1Igmgx*%zRbOT~LnKrZhRs+}Mf&j&W|H7lQ7PxVFfQAMe)TumFHWK5w z&gVO!s&!}W3!LT1>rs6J5Jph~s{$p>ASVs_=pfF0gyBX&t!S|HP^TiMc=bGopm0u~ zG{T;A$(3~JD2gp5+1Tqy?w?4eV^QdMN5$aW3?E#JLc7q6v;|-y8!~p0p4bg91&rHD z0xZjCu7S2%olcr;p{=JV1*yiNi+TqW0h^$VeG*YDWmw}xLXr7{8>|p9KxC||uqAtW ze@BMoCL}Qxbt0Y5QXpswC7j-#t?uSq{ld}-HmQVaTZ9k0caQ2TC?g{lm!ZG!DTBao zYM@mq_+Nq!$DV+&$xrix6mItrwAH8KV$M@~Q!C$cN^zDBvYEv%RNtR%B*NloH;knP zTEy(n`$Rhk*BcpwZS|-{kui)ausVGaC`X;L^MGd|vNEjnh=K~u0g#WTxXFpuLKzTSvxpGd`YWD=#BPkzW|D`>Y3E?+AVJvHQ=lc^M*TGdPn}*H&dM&$?6TT3o1ryHJ{RHuHCK0jgv|V`k3P zG4P>S;5Q%vj~xoueg5Z7iO+u$dZ$Q1b1*MK+Qc)+kkB&*jV!M9MqCunI>zM3>GVGQ z#qxC-;d{2Qw^i_MP+6ZTbA1pMi(>$X3-~vbxvagPEa?AncyjQ82gaeJzw#<2eq3MKr~NHAS84LM zJNqfDX54^X?h6c#e!Y$M?>T>i0OkMowkj2z)u8$1OR!ELzNtzaG5FuQ`Cs1M;tz;! z3pj&@?>}>7{yj&X|DGf8^28|MA#pZ~d6U1tgf{?Qnu@Bo?S9z)vfq#MuB(Dsj+EGj z47F4*)8+-{gnqjG{(t-jPl8rYWl3)=hLkRdci2DRnM9!0@_e{_Ew1bS_h)}C0t@>o4ayT@(>0-gWY@%-y6JP5#^l6{7aFF~>NyxU1- z)&!5wiY|kGjX~Z1w;K3oP~u;{y=5fD{Fqe-Sf{lqeg5oEQWV-d_k>-Xe>~d1Ui`dR z9;wf(iH!el5by`u9&AQ1KY|X9^(kUxC;=3t^303YY*)AUoO@}OOg(Xb`^100p%ntc z8;XZYD^t)S0RAr{$3}UNFb%s0N!I#A@?7JxOW~{>tZV?HE=oh%RGb)=Jpa`SQ3w zsw3Z~%vF1($i7&)>0p8JKf?K2>RM+Y06Tc^R~{131I;AHhssk~QxmUPy~(KhUKjuS zLW}znUI~AJygxQY%(+X0+XEYrO!FL0;lej%E0dRsp>&!nQmI+(+vvY_a9|sK-c4w3 z`yxQF=KVK@5K-nf_mag_u3A3#zh)kcv;6k}zCo}+JR1a@PM65zaRhjHA74E^S|bJ^ zl75M2FeG}T0$Qc;_^9~NJbADeumxZ=@YB^A9Y!-nLlRk~vPIG39sy&FQmwqRlZ1oF z;Q8G6`ZdT+zXK#73xRzj2}uZvA948Sk)YIm6fwQH{y#3j-*QEYr-{Z>BsN#gVtvaX z9`sZhf?gC1q%Xi`9)J*t=jv>e09;)$284^uQzBwioy?~3^JmyL4h*YDmC;2ilF$N> z?y^63d^pjyI}o3?SU<-U$-X^b{~4J9Fn(`Y9M>^Q$n%ERk^V#Wu605833AbEmhBvdI7AOOV0fpklJp>CN|pXz6$dQ>Tz*?IUISSVy^h zd7g|f!54Nw`=hoWwA$yET>s=F6?mq_Hj~75-pM8%P71e)J6Up&MTr zShmbmaDREKo~ZZ#1_1sX_8vUogYm@3a5x;_0A|daW|uM@t%$|cue?M;5q#N4zW|q( zM)hME1RTVRzF1i?o4nwm&^9#eR8=DY(r+$wcQgI3)(c&RBJ#MB-ZFAR{>Q{vkUc)4 zO=xw0C%4}@N5e!KVHgAjs!s!rL7W6D^+o{h>xHE;DQlN6Xx7tQSnKpOT7N86h2G(W zx1jB^k`+@; zt6f2aK#!BLb)e7zi_^M4zxAn=@na9Jg|&4Dpe>#o#f{jE9%KEb5DKHqDw(uGLpRaV zxsP{k@yesPjR&L7{rsi-t=E)2#~qUjB;cTA1bMf5?VKz~B2P7=`d zpFCgBHV13%F7lP;j-zt_%t`s>u!$u9!X};G2%EXWb?-K>a-oc~V*A(X0mq%?IYcB# zX1tW<)p>P&qFs1=O2>l^Kt3u>CLwi1z8)<$u{dvj4^VRu9r>eAN&tN_<}XKsjYjX6 z6+Y7tdYd6sf*B*qn)DwR9aiGE4oIUsnVc_!%2h;MK!?Nq*}Cyp#9~L8hRF;Ik?lYv z&GP;iEl9#K)?W&%?BxS6J5gAsdjKVTL13w^kBWveZg-p>xE2DVKkTfX`?LZ0`TySo z2CwHC9~1-y{6w#8nj!ePC=#9fRtR>j#fs-*OdpfsEHaP^i8KTPYwaEncNaIxEPs8x z;^pI}NwIGo%fCd=>~Kh|JqYvlmkK;zG{^fF%GAbj^=ch ziUOZakU^LpIi2e)gUjRnjCA#Q_HR9VKxH&$0Z5oo4}W{ggG`1xagu;(1s8MaS!oL^ zeIx^LPQxtT{7ceW@t-3+gh!RiRmSgT@VU9UDS;+HWhj%g3gqHQY+0N=fe`y)PQ_9l_iRaY+5M>YLfntEkh#0lHcn~K z>zj83#y%C@B&ciAowtSzO==K15-HuaW!lkXxc_0Z;C+7{&Rtw}Paq1^Ik!=z0pQ(t z0nOn~KHtNEgI~uPb+{`1u^T7=eH$!LXxrrdeu~vc6gI>@-jWmRzpkzx{AV|0E!Cnp z=H>2Vn|3uUssb)0Z7|>{emd8&UVIT? z^o-jAzRte};$iV(nqo^nFYa%@NCnXO*?Yfzk-t{rj}5%?VkNVs{=Oid{g!Irbc#;1 z2K-CFf&9RW!EW>E<)%zJ2V)#J0pv8U*c$O)()bO+oBrA9+4=Tj+q1naG)IhHs>RE1 zTY13wL?YPus2s1Z#r^v%@&9M>S=gW50vk}JM2j(xiV>6Fj!{QJw3~8mG;16%F47lg z3l@tx;qO6$KYz^!{Whhc^u;mawohS^HpCGTz<@D>dLCVC7~l^0aCeFBa3kd+d_HF%4D53G1Xm^)fRGv(0>fx^z@-unJMlS7GIM8_oUm+wEe znGJIH$3K+lvbZ09AHOJ(n+pM0N3W@`6FW9x7R9IC%t~FszaJ$*1{ZY2MsMWV;YcLA zjw+alNd}=(K{mTSg}@zg?;J!&+J_#I<$SeT*O&aE33thVgN|&XlctO(pZMeY`Z2@7 z{`LgA)UJ&zT+PB-LcO;3)m=!-mkyliqBv`u=RN&I54umCtJ@a^@z(7Q2EnKI?Mct{ zsct_dq?%lTJby%{P*FP#G5vO`dBYg8}JN1dNIib)sBPB$#BdpFlkEJ(#^mC7ynM?|}QvgIcX&hJz^>lkxMz?M0?*O0%owN;`i-zcQU@ zI0?BCQ@%fzV+EcSvOORC6Pe4yElMcvwbtz~pIZ03@T^rj*B$S3GBu(Y4w}Vdg5sqc zgUMw27ger|r^(DirBJL&rkd%0-<1Z&Y`iJj=x+Wk_AIYU^m_2SwZ&8 zBOYfX<*C_jOvm)S*RZtTjm0F5$1-V^s}1n+2Q*4wiNsRVgK8018*jm$ycN`Oxjl!_ z?Te|8bndw+lw8Bamoh(o>d_;3g2NR+FKoNNKq>5p=JEK$cds?6;r<3NcZ5=ws} zu^m2KV6i_;KnS%_78CS`B}&Cjmlk5ItO%hs=uNHyrkt42?0=R{Pyn zd;8+wvJDqzQsBY~zO;^`z3!FkIyWcemkdIuz#tJfEVZVDgWAfXSU#1^!(MG3DGv7f^=mSOZ=N-THo8Ru)Q-kBjRNS3=G5D8_wWVfU#>>)Tf z90hdU!aC{l`c6n0AR^L5b9yl!H7ozMSg6le{N89q4szL>Hz3DH+@#@xqFthqB*E+Y zL8+I0OSn**gB5Z1KPV>}L0 z#@Pv+&U5KZhYEv#wYW9#JeGtU({C#vZSB3~Pqo?*-X>lQCUbBu>50md@%oTHyj1Rp zq}2(O;bX!(Vqlvk{GL1tXB=zNJrkKdE+8O!5PTkIdt`cNkJFVX6w|aLj1uCbi!|O( zGN^We3}nx11kP$+#c0h z-4HygS0G*;EyxYPgy7&vNi|EOlpX5fcLL~msZM43;pE#@pxf843S;(S^*R$x354OX zjWDVPvp%5##WKlE16o5~W3SPRiLZlw8xE)IWo$z3;u-@J`E#%0==6C4k@J>6G@2&| z8soCn4(p7%T~t!Xp9+~4$X2nPu2bMmpJZAs7=iv(3&40diFI(b>KqMb<>ygymK2Z> z=mZ*FA8KKY0Nojn*G~vdma5T7C9vpKjQ4+8N>+$-Mm7SVXMe6kW+4T{`pa#?sZMK| zbiGiTWbU3-pUozc?fOaMNd(mj$k3C_2m&K=NoMSp$Zgs3oYcU++3OL zCX!j~1=zt6By}6v1;EQM$lh zd&{wBW9s)`$JE7zGpjH-CYN86yFkDn5`W=An24_-3nh3OckRABU=2p;zk098^pL^v zs302K;=I+O_>tUX8X36Akn5NTxV>y@@(4M+mcs z_B@*(;8!ov6B$Smo?yGX{VAYy=SYM9+k9?Kpx0RUAQYNqQDdbwcSqO32lh5?bhmEl z1*8q#sjHtzok*T=rjn_!OWvhSR=+-Bak@w*L01XthNT6Dy=OMBUZHoHYU~n>WJ>Dm zJKedaB`mYQf<^LjdF$5EicgsJUN3?iQ9VExba%3_a9Fwq&~r&-C(h)NZe#63P4%`w z|0=Ze4Yx~gCN;%co2;)sOACc_uHmsR8dI9-kpi;kHh;n>t#jZvjvpWY0p zW;oMkR|Y;Af2W4&CZ8ecq4^Ard8|N~*ka}o9F856_K695FF>S0Yx;x{Om{DO&zn2{ zGScv!xM}P5Tei{RRzW_qgF&cJGHPi-LY_fYNzkeflYyziRq12v^D~&&#`!fKj>F9t zVdOHxan)nSa7@%Ub9he*0@vu7ghRu4tq93H{E%qfKWH;HQi1X*xV(Na6*q(@SF?lv z&~sh_qYON)_@Ios_TtLlBKb;VS5@|*xVUP8QjVoy_)h2BT1lRCw>#Of)asp=2VdDy z@D;JaeQAS`+P-aoW-GschDMk%7M;u7D3a4u2q$*t8Y|Ec0$t4nlU13!zE3IVX%qy) z=iejKXNtwXrr)BDIzgjRUj}kZ4k!2MtKC6BFRQ>Te<=nz?B1giDI7^YFDs2 zu3=StmSUv#49ires~v8>ltd;qr!odFMF9$bH7-(#1mdQP^S4jz_~z}%dc(}hh8yadqEcxxbLH2%!mL}>Du_VQWJ&U z=K7=FU_5pqosl-so%G<2`5JtM!nxklGdf}MduOSMAyjW=4eq^Eg#fB6j$>t2F4rsB z7|>cj3G#rT-x{rt3eh|)uu1qGG0I3t8{P-G9n+H)xbc2;1ABz%` ztLybIHI%s=vK7S6w{T$6Wd#tJ_B~jlZCY zP=7QCku;zL$`~eWM{c(r+F)Q_$p)SreaF@0>-^)H^+kV`B^byCk*n1Dk- zo`zmYz>as)T+Nt$k!y}wu5wfMcU)GRSA@Q>6I)#f>4G`boV4ac(B#=W^qml5GbhRw z>X7W`#3C2Mx)U?E)>R|Ad$7(F(`KM*3GF}{`lI_0oMrG>uXB;*IO_IT8Y921q=p}2 zwkSsEfeQ0aj(E0uqXj*_pzH*3g`tWc4&k>XXKt5%WAcdU7?VXIXf(-~vP$VXhWOgAtc z&P^X<3p0$S&#$kQuF~U}tu1v#qoMXLhq|_CaAAshJZG)};C;Ct7S4j*Ae$q=y8@pldRuvs1rWL@R{>T7(J4Q?b` zY%_D8t5)NEe;2qqoN^};&TcmU136k|rZMKgE?12!PwgK1%{4mm?J!>b^nedg-9u|? z0G)0xN)ar_*?xgR*t)vgP$ZU;CtsF43tpkX4*MjI-enPUZjRy*fe~`E5FPGT?NaT2 zZ&d3&4)<}D@v!3NkUNh|nv+d5UGxXS?VV3jq+OQ6Bg~+f`35u}s56 zl4{QJb24rUTeAIPZ@SEI?F+GyMdnUYCBCO+>aBcDh-6b=|x>zziUz8FfQ zDRnBF8G_tAAMDd}qshj!8K+>R$!W*SeR7QH@c{2YwVYy3sXSpubkouGEzZ&?ClrM5 zjpH9;De{Q?wsR*?qWt3P`h=hf?T|xo**()h?l6AH6-Z$ou-SzhsxXVYU?Dc}K2J9Yr z0=-HWvMAoICKfX((lW3F-Oz|YVlC~*ZJY9Z#yR!W{$6(BDlmbn)Gz4h^uz+d&2`b> z`k|YlK=a&Rx1CVtYV6^#?B*8vZiMTU9(-AUq{J0WsXhm7AjR+e$#H$EVCj>C7+L9F3Xf{E2aUFD5 z`ONMVQM!r1_(3aB&C=k20TKv*gSgJ|F2bzP{^fkD|8c&_Xe!oGQ~{QNZ45^Wn|874 zbqc{I2Wk43V3Mxfb#iF}kLx6O@`wh?SW!{5EW>-`{3sfq;S^h$A)R)2?upN_Kz6U6 z>A+`N3`EK4+#jE%*1e>jEeJqEVsVthW%$7{l@`g%G!EE~KnR1}Ubf~%KD}S}V<@-T zSaK>U1&UN^1GU_M7>B5TK2%<+e1W)YrO_OZdL)yn!E9F&wN~U1N?6=i6hiCvf#4jd+UIew|v)W-D{-(bj=c&$Hk&V=8j(YRpt! zYWJ;fK0tvjhypdVAh$k{GBLnkHT?R~%5TE*2|xDN1fEqU*|GB(^u_Hu9a#q77u)mC zkA=SJm8_vmUFxh;loZ*$utJ0xB8@3&N1e{XF>O**xs%4*9BYj+G?6Kx#_i~-as^Yj!@`oJ^!oQcCNt$i z6~IlocA2C>C_QZ?4N-+57cqTt zC3u1JLQ9^;jxPFe=xI)pH^4!&6rWGM9=~LUZCNjSKMOPl8zR752>VHuz}V?^$F08Ue2I={e{hfA z{62Q7%UGT&)ZTn4UMJs&8pxhXt&tFFxGfw-``Q}!GR}#9V2n&{9@>rWFSAHqQC8LM zllv69_@FBkKP5b_a)9uCnmB{aF!CLDORQp(7CMt@>3+11%R?BrQRU)%COQ4atnoVW zw4^AztF|6zYMeD%0ON_xUM9N6w5khGsq|NMSL0S4tFwTh43rU-A4-qw5~kpLX4aVC ziGZ9y2UMVo(>>=&gh@F;xm2f`zb@|_HK^D_CF=cBGhfo;%wT-2!1wPc+Q5bgP{v8D zs$@LgAY3!H7B)p(s|;=b`bZH86zX_DtzuJ?D~ApVOpT#eU|TuKJZrx{UP0;(IY&%p zqRBMfWeD(@R_1IfWiqQo8^U2RksN+@fq?@r`HS1j;DKKGUGV3G>H~|7K9mG5$aU3H zyFnvEXO%+EnZg@frsz8*!eL1M(R^b;d(%a|Hr{oZA_7qIwhS7<08Cqh`~P~FZ+2Q;wml?G`kOl-!R0~*yLLnT=3FCK~e zh8jx!^lBNjTJu-AhEqD{y-gUP!}WY7y6ZdWaP|@@-&y)RfLfZXT2)_}WB3i|B-O5s z-xnSW;WO`ehHt605ETJj|M4hRFQSc*Zafu_Ytl>P4RK)tE6c>7 zX+ZkHC-5GwGjIxm5q3Rbp+rGJwM9=IPipR+f@BbWjP|i|lez=+7epLGt^NAyo-8P? z-47RAA`0LV^?U(3E?bvHw>BcAmCkz)&h}Kg@8ZOhx8vybVaLQxfrge9Daw(8RJr7s z@4{+k%B4s*bZ0}Uy?`o=1Wpr*ip)|qU*eP{6G*as^$=zF$VWnwbEt8@9reGvzTQa^ zEs##HL+)E_yy7iNW|KgPOS?^5O#K#7WXhNN!M78FU}eBJk#46ga+pkV{GR25=WMBz zyFdTrn#dh3VQf$^Cr(}gZ!yQtXqh!koZa1}_PIIx{BH*Z*~t?ln3&tkvpK^MlA4;yu`Xw>5PLYVj>ATB>b8~w@aa)BO zd{+a*y){K$YU+l%K7=S2KXG6Mf|2LAHdP*lU{yJfzB#US-G^1NQ0_s7=b9NlK&L6B0 zbY}TWbt`UU!b$jQ3|Zh#gGt3d|6$ zir1PR_&#R*{q&jbtOv74riU8ZhA`nd>)m=yfb@6|#cH*iO)g&|D^FQ}=wDMZ3wVEc!(-whA z?>PYkAWHsXAynDW=)bTKtaAnh`(r5l_GfHmNSMrLy^W_muY%e)p?uQPUhMR*4v{lA zV;nJdV7qvefZrH{I;2r+gAzd^LeiAj=eWy+hIf=xwP%|w+7p7)R?6cl=9EFHC4n9T z%BXB_`lz)KOJywY^tG)~iR2;|$>4!OSs>Vx3ddAfNdSH#s(K{cj{HKoiKkfR@?uXx zmdw-@13wxffAfug?!&p1E>QqFz;iY<1SW3~@ zhBACHBmq!Q##6u+=?xr^hcX+pyO$jT{dOJ+m1U3grn1Enn8rH7=|J9q z&^pIl4Cl-Un+UE0RuaO*1aI1fepoy|kSZwEzGET}yt%naQ?^aI%AV~Wb9{1pkStbJ zisQ8TWdVc%h9mOS#>O)xJP^k3TIC8C1lgU$G1xG3Lf*P__B+2j!Z-Zq&+LcFy-)j-#I71mR8cp&iTqfx(QJH>DeRsAb6p~m+yE42( zce&i=T4|C$cir|YWEG+7NKd(BOaINo!>5MTw^f(Pw-^Ay&2OndVK-AV>1iNp81W`Q z-5o0FN2N_aALSC;%<}AD{yC4=shUnaD^D;J_YZo55_JpX5t@=;D4YcH!JI*4hf-af z@cx^;LG4#vu3k=);o%F?sr(1tba{3;#w=E|Hi0n&xxpCI!X~~50<({dgP2=G^O6e0 z*{}5YgXHUd296fa_*3M0VNRoa<782$*)6GIEF$Ir0v(NAR8CC&FE`r zE62&p=Bbf?G7AZnXQkZn7ql*1zcPwc-@T+Dn8*deOR`jJfV8xtG@!u;Ck|V%=ZHX}`hQS2I!s^vfw_kpiu{)$)@VezLpHywmiB zpQKi=B@{D!sH{FH*w*MXj2)J%uvJgrt>5OL1Z8vsdwn_o-Y12p+rH{+V&?;AgZ#BU%_TF0Y z3YxAMxbW|{N_9&rvXI6yY{C`G74x!VpP?yhA6QLbX{(89d&OrF7bMlaASVHfsB z%|{nQ0Z-+_`MRQ*v>mVl`QoVbIIUc8BjNe6@Wv%nDpj(_RJa@Fv6x*uZ<`lu4SU6` zLITr)@}OgM)Cd5I3(sv6t5W%g*C;&9%0-(vnoL#`8cpWqND%VuH^4&!h0}F09K-lg z_gJJ#Npfuur=Uk~!21#?44z6ckalEj=Gg}SMD6z4D1d>|`aWaI^CcgnJRq4m1#ecK)~ zn6yqj?8N=+wZ@k6I>XEOM;G&QLn}M|uRt&X=cH3eh8<5&bRjkpSwRmu>|3gLj>N;q z)M1WB=R%~pC>yqjh5X5aNug^L9HYLsH|RE>cur&l+`yE2rW+mU8J^5Rs&3BEGgDt+2>ssuRUFJ{v`G$RUdUVE>i9I+3g=S07(x8@lcZpm73+nUAk` z(AJA^?swAlC^q?CQc*}q&k(6a!zvStjT~}rC^X8jT7%$g(HE&na#~ z8hYDQjnB5bQvmiVJfX7A;_6VXZZp0d$Y5dWOK4lR&j^f^KK${+plx1=oCg|ev#8qK%q zF@E6~4yPDuQjR&WKI=8Z5-{Jk?_tvlx6tSp>GAa}j=TeLtYQwAJJ}QYXA?3ilRKM3 zc`YdY$gxTr6!JXNI8B3b=$Uay6TRP>k1-fb7$EQEdo@L)+kqrpYkgHgnfU(cjtNgw z*(acN>hbmrc4tu1dx|e9F=~eNV@Q=NpDM{{mpO0pMfaG>K2R@=6)B*~Wx^S8qB+u` z&~M-7(BRTqsT(uokBA+<*?qbs-aQ|pHsyet;7i%8&#P4M5m4DWiH7d`5bo#&ho`#= zO~1+@_ZdxRdRGwZwHX28t16_*DD%&W+x=10?Q`PT=M#Lc);e~pAs zsk1q*LdHzRyX08WhxZo1=l0r8zMUKf8V+oW zfW~*L*NZAO9b-*AsI|CpRvORA$2&R}wI)g?i$zlEYKbN?6Xojtya%d^r8&x-dCq>b z`#Dl(sbx6rdX8N85Esh2t z7MbFas6er)&NF=p%d>8n1bZ@={KJu6(r|jQSsSY@3A7XEhsA}tTIy^MWki17444pQ z(g2G%=?zrl6#kAGW51Kt$w-aai36x|JcZ3%t;lajf@-S_&5*BEAdGm#gaG(UdhHb= zzHUC>HMPmn;zid2d-LiUcJ7ZKC=>CJB}suO6uYLk=ZC=n(0zL?&9QwL?{0iUKa6}F zW3nK_c$%6{JE?{_TRch6NC#hcFJ^E|BtCmM(jEgl34i`qq=1S4YM?-~Mpy}$a}I0A z4@*n{T>x7u1=I!UA^(bWpaCBqG+W{4Uo&w>F!90By4|5tD~!pi6UhJI{X$t8B6#J1I` zRZHXf)O0Cnv72Mdy*F8il}KRH54!)kRoxTlZ>O&Hpb`s?pwnQ0*7*(&=T}y+YQO;~ z0Bd0{2vbC*Qbv{{5b!;c(NL|m7~TAUNGkr_M5#jfj!+&xo2r{YtB}d1HSaqE z5Z7)h^l9}5LNCCp`j{wh2ZvKjQ-`Miyt?QGk0+q||78HcHZ|`^i~V`#@|i~D%JO)steAMc(aU?``6nNUSaeP=%MGu}3Rs>kiNL2? zuvj(1{>IB$SiPY0UcE4McV57XXNvJ2?Z1JI@1Ec41r5sV_0Izs&kqbrqBBKxLGa=X z;f()=FW?$wr3^jBtz80%Oie+66vK;yrTq^o@ss2;s4XzeYt#4{S@oM&(*=-r4E~d} zgB9_-D6Et`%z<42spzbcKED$I&f*jgHrc~yHPL?$2#7epP+Bz2fq~5=Y}4dRJn!AG zh7Iq7XaBL{e(*0ouO5=&&Gl4VAO8I)@xMKWo zu1b46Fs!efZ}1y`)2{Fvd9X^~hh~AmLNfmsQ1UY$z|w;M3U&9HQr!FD{jZ9*zjx&j zqUd})`HFk`A21Mu6fZ+In+2)!iBpD(n(^)Nx__~YYQ6~(1Gb|F2REn)xYr3Vat20zPxK6! zsQ3*J)Yl9`CqACE%V6D|eoXt7E}*`D;m^9DtTReaqPmLJj(!D}DuW_xdtVh?Gw{kn zTKE$!;_f_=yRxm6mX1OV0R?@5`1SCU+XDri56<02?AfrQ!E7k2D|hyI<`-uUr~5&2 z&O?8W7cfbz$Zrd8t3>1I(pt@1@BuPYY724klH*Dvt{W7DYfw-5W!FHx*^ve!MgcoOp8WsPI7O@0n!^Pna z6sQ|4H;w-&VmEKm+cljf@qyF!$)daVh2xpAw6Tr`Lc`=j@at=I^{Tl!X>Zd3_~%$H zfxv0&o;}UV)1?nOlsF`;hnS2xM6%Rz3H$`u{p3d${sTRgNqShlP(g~lgz{_J?m<_b zsza8tc?(NpGyfhE@jn={s;!so*YBfD3-L=#vOk&v4HAv~4ICVtSMpFiD-uu~ky%iN z0H|8X2Q)N|&YfBN3D~?qwXT89Jf!hVAuphW;%+1khr_qY0{NY_l>_gtfMdq=Khh%% zNY6D=E^5+aT*Vs&rXxls%h}p`bIRN@09?v^+D*<3-^KYsT!YKsZG7*^#5SJh2;6hF zPOL8MqdFg`+e1htvBa9lHw#WE0+aYi^qUHSNcp$MH_MCKXBu4Zq+s;_k^HZMt<;{% zJ>p3~9UYyDg;IV=C}`-;$pVGJm=>2E#KWZ)b0!HP8*6LcJ6LS^fX3BFD9T)NqQpCZ zBk>vP;ThXHo()i7xs@i;kpOOwO}juM=fpmJ2yj;YGNeTmp^WM(_`0fZlyt1C_uYNu zLCijgRXEAU&VA^ssw_*K6lRV5`>0=MJ;Pouwr6B&iv&J>(tP#!utkJOEDnA8K11_w zpc#~9&+mX&g@{CLu2e>!6QFr$#r;0~Go+4;=OK{+tV$BZ$5mh``l3pb6>tJsF#yVP zN_^Nq-BG)Db3G5W@nS^Waf@$^FT8VUcqu&n7kQS5%Ri!==>1FwW-^^y9oQLXp?Y+` zyM(D^QU**^BF_=j2}BZ6f1sOoukk4IaQ(&ZPip|rybcSU{!b+fGyRtmDwOW9ox{0z zr$kl*?|T)SS%^EXR&6<&9K--Wq}Y_346Q<8wQsa*@-2E_^r!a19RzwMEf=>d9GYUF zMfpR|iu+TUmfqzL007SyxapA-YqoqcBjO)T05KLt=B;y6-p@FntkD#3R=~8@e-}!! zp*F7?UMwrsIUI&zIhOeeR6(K9^&Z(iG_gIYgA`_eQVU<~rqO+sat!%N>@tOk(t(_b zoTbJpa^?|T_8cjk#ZU%MH;uzTfr&VsG%z&u(fs&yic?j&rGLF%=uD4y-X`z(WYT#4 zm+i0h{JbEPPv@Nw$D83L`z2+sFPM2}Rt2LtK?rJVmq+7*YRk^xA??k~Y+pRJCWl&3l$v zBFQlPR?z~t$gE*x>cWjqXVA>Js-5+m6(^t1+gP5lB*`t4e7i((2;6pvF1M$zfdE8% z^juD7_UpaQr2viKpdX!3n`FWB=udu?tFyEjU9V3#-4AlHB8Ok6K<`g_&K|Q;bzaN! zw_)jqQGQka>3Im^lgGm&M`WMV{>%} zKFhX(X^&p%$3jO!sJy?}d}e>xd{8lofVuI9O~*p;98>7VzKaIxD>wpNqMpG7<}%$g zJ)46mF($vajB8SsL$&`@XNr5S&P2stkA}F_%a_CB%h{2=y3)c0W=AwH`+f-x$5L#1 z?Edk9U7SkQO9aynJxWRdqa+1n+TX0!{vO(Z5ESv(_l|y*tFpTOk6!DbapP^)lBBgg zBSjiIVdMnnt|{7T{mr*JRjGD{58^uciipMG1iNQD>&Bn(s%NYd&~Itb`M}-sdUZ zQSad`ZksAbvdHB~(nV*TfEb0$A#)!iqSm>b*sZT}R7SFz;vof2a8nV}8OC&mK(3_| zIi}%#OlP1clZc`fg=iFO<|oex1_W+1Lg5RoGHDFLrZgz6BpL*yd&B5RA9ownl2eXn zi1{(mr5=u5Z(d>dMA5^a8aY+-Bq;OB%Ew65;Hr6W$6iH&nH3|HDN)u+tYS{i=`5S; zL0uZL$w4|t%~+Z^s?#0nrrbya3h zB59hGMA0o7k6WK(IZvlk{jV`1@COj7kb01{IUH>bqZ*VlsK0~qB1=Ab_q zKKFhAoxT&7!viS%1G4G;%v$_Y_($ux@DHQ5&rjoCq}pcLo%>MZ8U&c*H`A>F9o zc+e9nj+DfO32;w%#z$Q5_fa`w@4B!5s5g$xnZM-HMnP)8>JL8f;+wI-Sz2m#i%fQZ zgiH2sCI*G@Ldd9HyB^r6tu}3WbizlO=5VmTsHJl@)%^Ur7S7;T%$I>px{h)mP`P%%%Ma zN*Dp4K`M;+yLm?Dc-> zH-JGG^YbcMRiI#nc%Aj3mt?m@DL*CFU@*KzB#g)6nPnHL{3BJzXxmSPiE48NFb7E`k5{$UZ?d!gQXi!;z%^Ph;B z{4td`>)nv!@|PVkydvj};=5%yGvg1wp(#sH)o6Uq=Dm$31i_8($X%|_VJ92(k!w6w zT$eXd5%x&bV=f}FPgva_ejNKdhsX-i-dJVnPO{W(U1qcXZeoLeCVA zKroEhO_oS$cHyfsLla<$Vx{exXOP%7#Zjs;qi{qEVeH(x%M?FUbe-Kf+<%&a`l_Fk{T%XA27@XW@p zXqDYNo|6=aiAy@d`u-1GjV?Y^3j*j44t4%Zj&J9fIy+>ztT6Jeiozg``0E)2ZpZj_ z8Np1v4P?X}2ub>qr8a>uTDdG$u!I)I?g6h>eR{ZLM2oIk)75fXz?sEeD@0ZvK37Co zrPI74zEdYifF37_Tu+wD)9zkBHOC+c1do5aPr_5L3!B0pa0LGK_uXxudnNZAlP14d z0-c){R}Z!(+ePVa&)M}2&eFA9@eylF%dSc;m5XG#DUL4B3SSJdltg;T8tp@B+CiID z=_Isflfr8$7JXJ|(+0^eXyzDxD0A-fHGyJ+Ax34VK2JzCI0~b!1>ZYMLTm-r*1MWm z?A-hw5gCYMejIRDwefv4mN6y+)NM?)HkxfG7d}otuU|c(R8=P~9Uv91@7W6K+Rl|u z)%TXPVg$|grg(!PG3W`7DxNlq$@Z`Su<<>`uG|~3gM$T=`0o++Do;Bw7t_|ZmPm{K zbL&w6yP1A$d|!5U<+G?UF&`r&(k6HNx=-jvT@klx7yThX^&Y$bL-n3YH+g||zqqn2 zul|s`14t#3TQy8Xmp@FE3WedlUhNFX5U_r@wKbWomBLjJk7xLQ-MwX0)Z6^J9P_&Y;UZqYgLBgt) zJQ#PhWM)OpWhb-sn2e7`I+&K0Z;H^>XUM){n|)Ay*BuC(OK=tFt0o)9X4>f_%NURE z%Viq?j=}yydD>MgjS6c|ohn@wZq&_KULDPD$}~ME%;%q6R8Om7hb2(a_M~nFxes zrRyJUb2T`&To>}pO6>gR2cuE_!VhFt|EJ2}H-HHXrR9PSbdZS`&A})FSBS<<>$$QG zb$1)JIg|N<84*lUD%>dRk5hg~ z+)BO}1UPW>=)k-ayL9q}@o(&wA4ih+7je7DxPPX;FDheT8`wKJOcRD?4B$({UwkWV zs7iEJd(Q)*nufPd(xUXZZ!-KbJ^7&46%eser<>w~ox58hl6j8nQ5`(_iN)!aK%|vk zID4BqVrEeD^f^(NU2tBmtxT+%#cCfZ)x?{$*X3kVoH|mw?O11Wa?DzS#zz z{glH%2o=9%a{0fk)h$UnMLdx8{g33FVJCRkWut)pXA3J4^xHs1SL*eNDxl#8&;{V; zrVD0w7+?lvi0qVs8VErA6;Q*-`)Bzec;Q2cu5+oBigk@ugMLBRV2ueww|Y{RS6&V^ zPoGDECo7vDY)inZ)fO_3!^{v{DUd}DXxyv?%H#9>r308zh*q=AP~ynomP4zk%hv^u z!ObM8Y=8z}jLLE19Zw@kvE;tCcNdw~`9V@8lUlQ&ZzSkuIZ<uq(_X2eytb2P+Kfs98yUr+!RoCuSf|9VP0I<$Sbq^FhOZdX{`5@ zT9qS31;40E`Ye;T%u{*DkZQNf+L*h+jg_aE%qZtJ%#n6yR0vc;z&f`zaH3{^ zqvLV9_;AnB-&Ca73h^&BZ`bN|pRr*Zap^C_ryuK|S4{w-CindH4fGe8@S?>a;y@?T z;5TpnNaCkHYuLKTnuGXy37!&!XAj*@AHD^b%1yfhs^E)eERp5-sXtwMo7vneLEnf7 zNs}ZLUf<+m{UG699f3d-m&sVNFpeJ-akjWmzC#M6md~zfUPsDroYR`D!?4K{T2rbuB~~*&bZHA1Q~u z$t2R?$syTN;E2ZXmFV0FNZMoVqF-;X@r};A!^r(^%VhtnFcuG`wH{AnD!2W}i`6xr zhYcR&(l{|fV@?N;VN;`>rcx?>1XnT|z70gvJ+0n|Bx;LzW+>m!^PSb$GpG8FzIZ75 z-uTM|A7**jExB5KR*1M&gf9$ji4e1nDWde!)T{!y$)`RJ7K!;xbM`IqLxCIVJ7XDE zC8(Ah!tw`_KSux1k!iXnW3PDYGRMdjR5gf=s=6V^#Z#EU zYhh6sN7>rraM6V-T@mrvmw#Vo#jg(dK(UeKxw*GM&VZ~M;D&3x&NE zTUfe<^l+w$CQmJ?C)OHC<*p*597pcJ9=b7kpZ1euCU1RevHZ~IY3SRzV=dS$VBrfS z`RCZIykLi$J<_@#AjlhG*5grCE&b8Ib*9X;p`zsaE!sWfo$}%_iw8iB#WhCwz&x&; z;EjVe_nF@m_4asyj3rXE(V;Q~P!kYBF@-9i_KGi`@!XSSRKr1oM|{0&;J9@Fk7~lL zyqW$7@EX>;whVPxXUtmBq#(J|84XlLQuuUGTP4##gW365Z$fYTj2o^TDQxGuxvTsg{669 zUl!WQL``$Yc!q>CUUQZF=vTe9j^Sf3g1Re}YBVbX833yv-yE!!j(twAT77@B6K2=y zr#oQB@u|1$iN>E!DZb^_*3~67d#&sQ&~ovCx}*1o?oO!gZ$LKz)B09XN{zKJrWnu8 zMLUuL%C(nNLQJE!aWE}E0N@%7ubSjFhyI9uofsHn+ zQf>?mw2J^zIzi<$TeWHipTlq8LcL40z9QsJ^hRI9uSx;+Nx5U7(&wQ^&qn6vi=|ld zZw(^k|8*4s6)eKU;t8OSjXjt7*oJI%%WZzy~&u`JG%6A3h>a7PY5wUFX_U%sO#qDK#+{ohG-{+DsA$0vMu=nPm7z z1FSKw46T~FhY4!zNx>G@Z3(*;aIl=lr`nGd0n-syPzKfW;qJFgi<}{5Id?BkSFUVMrI`g?|3 ztp0w0zap4{LTI79*JWc^V;c4r#mR8E_33M`Nn0ikx0vyWFUkJ#eB};I@*^Go^-)nR z@wJS*guF1$M^abn3=swh14-4NA6q5J@$m4(?+}S!5zkY*c?X~1DzUDm+>b_Xhj3KV z8UX=K&-nCg1FfU0g~dVl>(rRz<(ICl@t2is377j0x}98Ce!i6BHk?)01AHwEPoJu4 zA`Ch7Ds5uBPZMhDpu_o&0b86$F>EN@Lzk072MR%R#q)aWxCytjNkNtHGw!w*0)=;2r@Y0>mxbwBg{pSaGq(ZX0zzru&v1-bsL zVqMOi)OKIefn(1KqbYw_P0r~j!@hRP?sT2hp&i#E$5c zqYiqPj4Wa(8q}TG7LH`frxp!OeSpdJ&67#V)9JR>A8XbosAzmVD}7(L+Ibbq$C}tAEKwma-ME7~W9V5S`3&u&4`sLEkc{P> znzan7rOJZ$?Q@ye%=&kZI?`V-B9U(J7}^ivb#lu02=5~i^pHwf_oQaSp=OZGM z`X~$B^F1)ghu3Z&P_V^O65fta)R0(@Tuxrf^AhdXKxPnu>!-ot%@8~^4WIK0$HBee zC%Y$Lwhn>lbW9$tMWRZ<%R({i8AM^v8=2&Wc>PSB47Xd2YH-OGW?re3&wZY|$k&15Hhx;KAZ z!l%3AcS&3h&WJ2vp005bG&v|OEoE3e&=LR|MwxZR1{h|ZovnY|`r{AopK_Ao>UfUm zXqHHrZaEI+@2{JlR4KF?yXa4aU41W-k87VA1Q#@_=uXW@=}wuS!X{6c4Wp16nAeYM zr?e@`DoZ4Cs+W?xBLWAryPtP-b;R^-cq!h(rTpAZI`l@_5JRCN2)j)o=BF_`GGYaK zd7Dq)*SR<7g&HOn8kU@Rv*r22u-Mj7LniWBuMgvQPxB1_L-xgk%$T8CV6F^;47h&FeBg)4Ng?2 z-Z`$Hr0NEm@;b&au6Ee(6$F`2sy~#rWi2tYo5}p*m!QJEiD(!)J}z9o&5gf|=_?Sa5sV;Pla6h3BHYntZkh1xH6PB_S{^{7@z8!La_avS$% zdZ(SoieDN75?NnoM6KC|J`PKL#yX(-R3xbDyY%NgjO*(m`HYP3q0N@X42D+1gG$3Y zGt#Hb;&$~L`UXf$dJ)%V?TP7UH|l*Nu|NL2az~7=9M3OO1(G>bbFkvjnqqEl-svSL zS7QjIeJyS)Q->b0ogFT99A8~sUEMw^)Cp*~wP0YhUO*5^dyiLps<(;VzXQu8@c4ZIcPtu8`6-eQ!dh zTL_k0AiBK|&G>6XyCBPr3vzG{1IAe)(Gi^U*M%o0oo`3HJ?|l;3?H1$7DRedi6m~8 zb!H!&yuyprYOO-nwYyVq2b~bvI??hP8X2IDvH8&U@$PhUSFzA#2*MYJ_zGJ>b6dCB z2|rW}-PoDwwT-6J62@_+n#Q9iADS$_&|8R6iD3}>!loorf1tYA<*Zh+!`;N#Aoo0V zJDS#KguWNKB8>Bgrsd6`d=)jtY(2i#fLQX?54w%+eS9 zQe5n|#8}n-vsM~Uf5~YoBzI|E@vgLt3v>;N=wa zLnMlx7f>xm_~3@BaIVAb9{baOT43`mUL8sCb@U4wMp&9eryt}*8nF55Fo3BF-lcRO zEx4FEDc6u<8e?VJrdGX!X85#@PMqgzw@2E-$)6#NwvG zD7}m`*gXjp7%Z?R_1>Jp%`iEUUn?$PrSQd*+x|Y%D%<&_L+BHmQt^?FQP*wY5T2jJ z&v9ZZ#8BUyu9A|HjI(GCEoJ6rE-o(9)GZkfrmtk$UpX4fhx)$uy_xR4qfjfgW^aRt z2rSUfeGg~&B>&aaW`YSCJvLhsgV2gicw1v9J5SZh%9@WN)faq!I71RNPrSQ=`1vZcr;!oUu^djhV~b~Pt&Y0nu`_Fg zo=iaKwrb_GaFB4uOs_U}N-uz9_T(3hsy)Cb_8{=M(cUzgbYcfx{z+GZN>+M=X574c zT60VSAMMidzE#K#st(hAJ!dnYW+-Tz)UU>xOu|`vaK@_VR+3G)zal98x-OyMZf9bMI zsuW6OaU2?9@wSq5C{dvZs#?l&6tC|pGuKfic93@eTmb=lFK_t9U$>*}N1^VISfhzm zl#VdX0}rB-8y%nfA6>cgC__w+0r~JdeYT@b9Z#`W`fkJ4tmoYn=msW=HgbGc>9ftz z8lUUEA*)4Bp_e)j#9mG`Bs(6M#9eu&@br9@e=W7~4+4-cQR4lmq|b6`AIB8=nul(B ztIxSAhz1{8LT>)qh94~{QDi%$yxskEOXNK?BH%5jzHOmT3JPLJlVmHwF|8f3Q!FzH ztC}PE&%E!5{kU<70onV<-Td6?Z3V&88^g?>57!^Yw(u=nzj6nk`t8*USmzk-bvD(m z{$PEn9@@qVA@R zDO5eRA>RMFA7X#J{R#|rY0`g}B9i0*b&4@x@69de=d>C>rU(0sMHlt|TIj`Ufq&0r z-}u9n-mRWXG*^jMCD@!qf$;9fzb@Nfx*rg|4U3pWPwY#lzDM^WpYVE%aln+=IaD4= zT)Yi`|NEQ`2v6^QDDc51vd`movb@#l;jCZnRxQ4MNFe#Ii2sr^;T2i8@3sE*bG_@IRLac8 z&Od1LXX5&M(5w^s5l$=~f6TT0^N65-V-9)mH}}=7PJL2}l;3gGgd03~HPs&>*OG3O8Y+ zQH}aYp^ga+y6^DNeRZNJ5uAW~i|sv#j64aZcKS<(CNw&u46v!~?upZmkb*nR1KAmi z{R2&oKUcmPyX87{^$u=+Y{1q$*qq{A)md$6xJLe;oA%c+@W%6tRk0q(2q?FnH8eIh ze$6vODX3XmR_5K={jT8@E7$UowC8zOA8A)y7f{*PyLY%qPYb{xbC6}Paz`}+q3$SK=}oqTy6pkAb@gdQ%)Z7g|2P{B_BAa=J`aD=1$(Vj9~3Aacx z-r!v;#bH5SeX-0WRJ^tTbFA`8N2(H>|JxgpUq$+LobU=``iSq>KaQ-1S#``#_+8M^ z@ah3dUTBt{l*IblJIGiJ1M~Hvl3D)0lp8n&nEsxTPKzVy(%=s6!Ct{g91JxQO~TL2 z;NqL#eSE|=9$VRiCJw?6|D;Ur9N7w@QV8uFW;}MUw3#l`XgFRH9IvpiS^{YqxyK}t zIEC4amr3zvojhD8nUpKQ7G-&6qa#Z>rIyclz`X1G)O-3}mf+gfb)kdWt$C_FHw)^H z$N+0^8E(XQN#)l)^momh+l@_5QL}E#6tiwz2U)%)A`PF<0tWl<^|;a-3AS+uS}X}Sr5 zncB%kdmq2D`+j+Wu~S>+#cA&zRyRg=XBO#}x5>j7lT?E#t?h1-5N+fowz2Q?t`$p; z@HULlMUAkk7>;FJ0Z(DS@Z?QPA}-Z9FQ_F8?KXZpNNk83HLu@*6xz(J;od)1fZvl5PVn22B-oQb9#KxRa0SYHpz=2x;cY*osW6=@S(HTus+nv%Bs}4Bk~Pf zFxj_eG7VYfv4@IMc3D*O=hobt+U(Ss+f^`ywf$RFULTQ<;M9%lpSI09sWQtb(OIK? z9im-3sdYc{GNr-wd<=4((s9FP(DIR111iQ!n?jy~Aw@8KnsNw?Uq06M?3+{a#8VQe z`P|H9uRVCBu0utZvOcvzp>*5ysV*nK3pQFrlm17sb+YKZ0;#@f2r&dgdSBR~T#O4{ zYZQBrzAYAmsq>vW38!&1+}m+h9sZ~x+>sC5^X_B#rk-`ko8X|25z8)#i7i|w^>ZTh z+h>XrMK9v1!2fM{q3-J^4cwtf07r&3#P*5R_<6Qb3#qy z3IkbtN*Cmf2F!rS1fIG7d=Wvn zrWv&8KmAbC-D~;|m~U5AYMkSgCv~Nkvr(b=)O&FhIKiQ#_@W>%DV9Hfv!FG}3gn#Z z)q0Y8zkC0*7F&`?8)NR0xVnSG{&*lf-&2>KpwcB6lPi<%(PyMtC2!!7HyT`nzGmc0 z=cMUvWw^YfLrhT7#w@D(!mhHTiFuXC1mjv5Ws!3_I@DUG1ka1Gr=7wzG=x*K9HtV4 zyKh)+xVNn(grBitT#LEETfaT4Qg`0KuYT?eFigSWT0U&9JC@$2)fwffjZNthKs z?e02*lLxaEy7*B^nTWl+l!EznUg0!q^`2+11<-qaawN>2S`OU}dOlXUsbLK0cCJdTM))(`;Pkp)+chaOi^`hP7ol7+iAR#1d z!OJuh*p15~qxl^t%(oKLy3C8>m$+GbYmEVXZ0EB|w#l^O4XOc$QYt(pBT&g4?OwMb zfhs`@2E4&5lkfp==-kz(h6oM4Gw=Xno@qoLX_opL7o@1ST{45Z_M74`NRuRi27ttG4uwzOJJv^Q@o?hiWAJqGy!PObIAZPy*_(`g8PS3kRY@2Nz^-l1cPMa4da(* z*ah>k$MRW(vp`+Y4}Jl_UpFs3NK_Hzd#voaht5t+NJ?Vo&H-~e_S-cs+{)7|f)$Ip zcHdJaq<&^g&p%ffSab2-d$LXsf_ECloU(M5=M*V^j?|kwq^Cj~Dp=^5fMAVa(s=Tb zCz>1ghwY<9k`9K1Y2)cIpF8z@))Fz z(n-w=M!O7P_b?dfLYwcS#`V*6#kjGJx{K3P>BV!IH(vW{R>>ZL)8q1_sr%KZ!-5~D z$YWF>K^2R;rbh>d9|-kxHLtxxW8fJip1(FfPi4I2q+rXQ(-;Y zskO6ATHWQnSuMlb+KR?z8hTfJy>Bbkpo*`>z)$r38-H+4^@WVD*8`wLWSQRX{$pFp zrN$J|pX=h04o{kdG*)u?-L&_&Y*vM9z;9~|CT8fW+`bsZH9k3&I$9k~6>Oiu5=MW&3$S?-N-!JKIa z6n?huAr%`AXbYo`dTPInBlJz%EU~V>*aTN^3Bt-mZ89DQiH@Zn&bU9d_C^hK%1lCq z1lRey>|!_}hPP-1*Z2<(Il|?J1eEr+q97@eMy{vx{JE~(S`UVOa3z-|l|I|seUpXP zyKHLb={J-r|B)~G!l9~BAU$Woq?a4jcnL0Wu;~NwN_U<(AXii=#mKX&6 zJi0Q2g%~U}=G90UNPfrZhW&@#J3nBrYR}=Ys;X)RvCgvV7Gs=j($j0O39{}~1c@FL z*FV=3Xb9-{wZ z74n=FMC);c_lIWVwHqbQW{;pV#lYJOK?br{XcVX`(R_IcR}K`$br7a>p*8c^IQKkN zX$uIBX%h|uQ#KVCJ+2xE%1$s>4xtJSF*l?odi0aky*rSbIh~`{WS!qKukE>!Ew#-? zs8I3!v<>1&6rI3kQ*Z{ChK2-2za71?dkC-e1gPN>w@I#BX6*_?Mv=*_tQkW_B=I2311?I7-v3md@0$+RNqZL*%+y&(nu-}RpD+FbfV^M?0H3QdrJ|Z^ z>X{vi;28gq$J9lQO`_>J*Hh6)SqvkJNYwCcmmEZ>3w-HnEIbk2*AxAjpjOI zS{DD|h~>FWc*d8K1+XWVmc4Cjo^G%0=#(w~_~u7{)$?F=f#Tb;cj!c4S65U^FnJfN z$u2C4FOsD9WAR^*GIx;UbQj0@S>KtT!e`-$m0E2Oj)mWO_Y*@8IMOW9_tC3jnPZy4 zdIP?`cH=S$T}_w}XvwNWC{omOoLwsw9U~ocuT*|8Z)ce`)k(7_;&#KC3aO4AYWNx0 zlhP>ylt0iO1y>_2B8G-fpTKzvCcC#q&H|v#lOblQXyculOy)3o#HiP?7O9i75&BFW zz~9Ab(or{ST+>b#PJG?TyOxnX(%gtlBprj{;s%1KK4o0^)oi!6YZm6hMt z%-}^tL=fAbL$*D32-Af7`c7a83}x7LCF#ILdEBjwbA5M+1zhMwtOU6BE(<3>uV}1) z(T%)g1P-H+%c7{eDat;Ahq) zVrO4mU}anE8(p46ZQV4Le|+|Z!k@&@${UGZ(%(M$m#kif4%ir5y_F#P_4xsaOAb7M z6ymZ0NF>V2H$AS;OFIBE?@xftyDZY3^f$Y80p|7T0E#O|-1S15Ik(|bWkK0^*QI`i zxd3peyi1pE-u1cK;_eN(dx;`xWIar=WRLFtiYb8gjHv;u;AjFgPtHriF&jRH#HoH6 z(ic^`+&`MS34Yywv9EaN6c?rG|L^5iH4kQB{yFe7MPOj1%jnp}E2rfbQu)94XJ1tb zDuA|hvdYR~i_6Ob?234`3+L-*zvopO`-L$!{cfsSMD}9Xt*T)EfQ}58VAJE7^>n1r zgx~KcPV@hR4io!-qQl4zZD#7K%Pq&%04s+9xSQA$pq~;02Zz#fcM1oPvCjS~l;rwU zWKvqHvb*li@sC*T_iD|o(M5EdH}2;q@;D4gCREJts6c6K#eacz0L#jDr`%r`=z5W5 zaJ)}ULbC8~YhGC6r2VotNWJ_=^lEVQK2^(oeF&?J2&bXb#B+jzN zc#g?RJC0XH|6Xl|yi`Y;^))n8k0HMd?|S8#7jN{0qTa7&^B;c-;-Ampbu+%n$CM`> z9X%1Wafna(!})Uco_o%?;7FA&fmdRYGak9^hCnZ;$ZyZz%YKOv613`0;GJu_&B(^q zh4LIu8ER$ARi3^Ocdv)vG_e9oG9=|!Mhw{QE5!Kn5=FQ-e{K)uYm{~#W=aR={Y8m2 z?jU6005Vl>G|X>!u}^N)4ltva_xehfE`*2@`feAL?b|%T3#E4{K*pSY;5PdP!&58K zm$Di?B(6TJ3ziC{Q|OS5SnV>G)isBq2A>c_0i;4li*$W{$riC5ujVaN+E1n?s&6YM zN84f4*1|5QZb&x}ck$k=CIIz!sLxQt4({4t^v6rf8XDvSSZh9FXN-n?hl44z%(C?i za=JRD;-YRT3ATHHDCK%OL1wda-lZ;mnhD24Lj14SUVX(p`<>(-Q>A-E0K$dgh6yS} zypPdR_{hL7qcZi&xV_?Mt_qHRJ_0BQR|WP{`h5T($iIW$bXK$4MP)8UB+_mn9(v?% zFIH-KdIB98wo{@*A7l9UXOA2(@*XbB1y})`lbeBSuD;uV%UO$KjugQ>YjX!%y-_Sz zcGul6BkW(CkOqzqbALSK=D<{ZBH|0XQ;`qH<(#GXyu=2V+Mxt+ko)w%SYUukCB+W{ zh=F0(#dad$+mk@fpc(G$wA5~0cf8Uzk+G29Vsc};)(j{~G&rceROWMvRh!V(QLo3I zTWejuhu^k!bMMwL@{5ZmZ#RDgF8&!2Hwl!rB+F1L8~}7{3*)8CPT@4^nwgF_g}K&Z zys`k^ry8Ib)fyB%4D6@FT(-N*ah}Cb-2ln;atL6W z;Df4zaL+T#Ic`Rz^q#kdx*oC;_tR%QvPOz4bQ58iSHn{@Em?)y81?J`NOx!Ioi;p| z#A5~mzKw}Tg50k1q4FRh`Xwah;PNaD!||E z0Y5Vst4_iD`b&za5{G6Q8C_sV$SyzP)-4*LM^Q{lk(qyL-s5=nw&yQR!|U~g(5e_P zt-&vtklou`vmtSuK1sGTXrh;+Rn^Kl97ki2ky?noPU)QBIBfYi{5o2rUkh8uUeQ~W zjoJ6kG)hN6$XsH;d+1gFYpocseA9_~`)QO_@B~2n_9L8pYR~jiRUPt$7p~TGkQ%eD z@UzjTp7`4+Pp?(;mS|=OxlBf3-4`}Ox0@GFyuoR>Aa6K|Mmg!nZ z00BTKX358}VqKJnoVsE;xPYE9J1We5??ryTL20kUt@-R{Y)+uegM}VWED$DKO!oR@ zRo5<9WGfF7eYuK(c_kN;qAd;2lYM+-78G(eA1X?UROrKfxY1zuxuMO8R+JOKGq>Cu zGnkObIy?K>15xkP|9Ark-NBnAxF-`_iwBjj>vm0!+^xPf+8eENt3gxrAk0&C-bcLr zwkNbyzoCg2Zf}W|;4N)!T|gT<22RetHr1j#o{-UE?A{|6<9UCA$dnXO3Rh?6a=4aA zj}qg;d2lWb+CNd3;hSPUWBsw+TT(IM7~8t%86BE+|w_x)zI zh<)w7#0XPiyHWfrk7K$TDe7Z&f9uD)6on#UbD)oDtgoSKLNRw=yov3!07~io`uS_S zD}=6`bpUk9WiuwEdPb*L3J=b6rp=bBBE}0rL-$nm=}ZgWep@#M8xRI2rsqHmbu;p* z(w`I%y}vnx_>kXn!;qSP5MsB1gsVQc!z45s&j4*|7ZU>rdmv#) z&KIh0Il|>M;|lbF-%RFl($h48EtjQ$TEm|q{YroqU##!&G)=?`A^<(?XcYwnPt9Pr zIgZSyGu|AqD@!O%XGuvAu6jw)2JuNZAKB|2*pPx`V7d{=DS$bML5WP`s<%wm;Iuu`#_-{QO+l ziqUT4K2$X-g{|K6V5E(T*X9!^s(UNRsqDA8MP z+uJT)vbq!n9{D}cuyWVX$&P-ijZxIQWR)R4kPn=HSa;Z-QOm$R8yQw$OV*Vu`kEC& z2Hv}WyU`&YKHvaB#&bHGn#^yV|cEG$M?|rz`B^Zur{!=LSQ+y(QoD5vMKCk^pE3I4TLJ zEa~pwhsiiY@k{>-yRNJ;+==$rRacKj7U_)+Z3c5zOU{Sz_aiHT+I#%2Ywr&6dfWD=k{&2~}t?GXzyyAJAkkE~M1 z49|%+Rj2k-ual;lB--CBE1=j5;1pGWYk_NAFs{@1&;Yjj7Z(eZX6?fe*jdY zE)S9;3xz`8vI6xAqu3BNoseSb+JJxn52kHRW}q9i6$7Ty9sSIzjiZAAyPA|c!cnpt zuI)eqoylzI_M#T`(9cki!90(NXQeXG+&pGR7Tb)EYpbUrJap1iF>b|i=T5WHJd^II zeaFo>;XS7vM@D8&8RQC&6NG*l$p%l5*~V=(v5PV<-=`Qp&|opjsnf}l8O^)w#E?8O zyES?1X!P3cJOkd}Exi46Rw!@4YT9eDFB1|kYi^!X7Z)vBBhJ|TcoR8*B7eMTJv215 zw4>818}#mop0Tbk;dn1Za%RuK?$N98C}wb{MXC=g3k!?6Mw|CvNM~oI<{apF?T6vy zo6t9x`Ujp5ZuWScfc0pqz&6a6iz(@#{&5GD4x`dXFXld^jIy7r;Mro_2xJMSsilAj zs~2huSO;EjcIXUuMP7s@)HI1QFX!y#cV7i%aO_j3*7joW+EehV$)11(uHXzTz_a?o z<20pPxYh4!>QVXdw)EYHzu`DuA^>Br_w9msc{MM1j8&~?+!v8q%x&7=%HVoHDR;G6 zO%8rr{ZA>enwG@H@PiwBp64*TPsNuwct)hExpd`Wz-UNF;9ZceQc-C_N(@t?tNmFQ ziVhO=bT9ebyXt7x*)db-EcbL-sY@VI!`;MJ)H;MHHa{l+9LF*UvFld}GMdEsm{rK~ zr4j%BfRmhism7aG7GXdD>Xp+Q)iRrfREx3NDWE&#zpn*@`^V+GjujUc$b*BGWS4hS#9d`q=OunS27mlHi4TOSD8XM- zU6|*)p|#23z!em13#|Md5aZuf0s@@|k|c^_^&&}jxff~b%j`bs8GDR~=?DI1yVAX& zI;TMhV(gz!pPQQv4plo5dd60$djqb&5B@fT;FAg)4AMUAc&?1!Pi4A|+;mi6@1qPP z{FT@NG?fiKK!ot7Z`;DpM<3$ba1{Z5xPG60BJB6URd|5GrJSx;>t5{PC$HV!8gaXz zC7sI-4}KH;8=%A)z{4=9H{4|8pTm6n2TODQ)t_#_{Eln0-kk_DApLH1uK#W+o-gL@ zLmUkL3IUB^|f6li&gN6RS zm~(E29N>0_?nJ7TS^co&{e1<%kH>)UGnmqIS%B1en>qfk!C!ct4}SB(|NG#6DJs@e zUrNfYCN+Ux?HrESa>b-4;y^#{mjuJv3gmf)neUhQ%YGhbE0_TaZaMwz{;SP;VluL2 z2-(Vu-nH>kCseOkuC1Q3L{DXU=G?z$;Pf^P(3jG1yg(DA2gm}F$wwO8$tx2$$*fn|CZnL zE9ZeLJno+*Wn}as?=q&xCML2a^4gZxoyFaxVqj!!K~2SI8ECBFR{*uL(O3@;k8P|q zq61(@UKhK4|C0d3EE(}zu*$_AyrI5`Ev9cpwwC~p?vcaM^*r4o7_vYM>~%hf%a1n< z^*hQcC-d|3iyMaZyY;;GGwi8-Fw*Gb_Y+F8@Bm#&%iI6juP;)76j0fC0FXg}{dze=WVp_jH35YLqTL|$3XT6duXIQ}iHCsurGlE@QL?Yeb$3N|ywSI@ zP_I@K=;fx#-ndMzPnRs{HZsZ%(!6G{e|peTGou_M2OnqAEhqh5$pE)9iQx|5suoMD zbzP67Xk|?Xti!AM^N@{t=n7S)Oc&5n=5?>&DsV!hGUSZ@HJPuMg2NYq;Z1k%V+Ot}xwr|*=5^FIu6 zzVxp-**sFoAgBOh!^W%ZQx}((j{5URCG61?8i@P(%I9Z$aA?RIeMqbCvNt?fZUr$A z8j}5L3nF$fn*?@)Qid0MpFcmT_FYj4 z3JHmxn$q{MMZ({>Bs=;6;(sXjTky^W+WKnut7lg@Dk{nhFcki@CFv72Dz4wx^#*u^ zJ+6Z;&dVb%odm>CgqG3PXtE6FeL*{j%~RA77tZm7M`Nm9t@yxQ{I!$T5mDX$xC*`f!Uj zmSC3zLL!$qh0=~xil_EwDN7+r+B$tHi=;%c5Zq(MK$ipju!Ug@- z>X9}VX(KSG4nq9hRmTM-zEvlnvTAgAu2NYcs#yZqvk+GAe}td{dv?Jp=1AwdYz{1h zoN5H)!KE%EfjCC)>M3`FGIdjyE(~xk0kl;n*%M4=S$h<#mj!gW!0s~B`mzhUuHmZ> zJ1j9E?~|(u{KM%0Z05f}&Tr0|-qh-%1q5UI^5LB!@qaH_^&Ec$z!lp0g8g;dKLlR= t2j~EvsOJ|?)aU()oRqR;vBV3%{{ Date: Sun, 12 Apr 2026 16:15:18 +0100 Subject: [PATCH 09/13] docs(report): add stance markers image and update related sections --- report/img/stance_markers.png | Bin 0 -> 114010 bytes report/main.tex | 106 ++++++++++++++++++++++++++++++---- 2 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 report/img/stance_markers.png diff --git a/report/img/stance_markers.png b/report/img/stance_markers.png new file mode 100644 index 0000000000000000000000000000000000000000..609f8f5627d2150a120d87ec3e5d9dfa7c96e19a GIT binary patch literal 114010 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

  • U0+YhE&?y^cT42*c@+D6{ zJ1yQpbap3(hH=lN*SDrxKSH`XmcUy%^&DhQS{7De_h&!r%r1Ag!Pi@Y|7zXxD1db< zcM*%Hr*t7C>G-Tt_pAJLczx%% zV?xigX-KHASl+q#rb$}Ku&)3xqW7Gak$h>3N%eNrpEvaGUUL07t(bXGF#dd7M&mhf z9QEka4tXHjdXFyajgn&PK;1=m`kh|L1n2qgrA|OJ;aI_^E)l~65y9q!ZLR}<1&`z* zq!TYL*6|#$%z=d2WPfDL2$p4?V=)S7v=i_2<<6?k^)vxDWu&cIs?e_6RZOmmzXu$HIo!k-IN3aC zTqpe8BQ3703MIVl-jn2ue1U9)%14JL%+m)8tS|O<+t!ddq4_abT(vX0!=~4Q))eC~ zO$$w7I(ZW?Bw%jn!e}PB$y}^^>1l-(d_FsguXH0JGMp1EzgY(XEkc`=$b6IMzgb zc=R)wQuZL|G>iJ(PF_*Mn%D=1+&|D_=G^{3dqm5?9og)<#`U7-s#zb3<8W5a~w zn9b3qjfz<^`n{02Je~}w>76VMoz^rOo*}H-uc=@iE>7VMmv8{syzs&6wQ#m9J<06*^J{5)BUw4-d99Vyyf4xE~RqB82YH7M#XkC7|Li5T-M2 zoHS8L_>IdcmC#pRT(-&}m~Tj1!e&u)Ohvn6NXq~0B^XyrHEk9Rl1;6lIMsH+yQN;z zx?}XRde)oVR$W%Ua;bPH39VGFk>QHnd1M2%e3}Qsd(wB&COju&dv(fm8a@JTO{C# zH~rA`;80N>ICNkI&Ijanc(y0A7_W$lz}B+2prqT<8j@o)vKMJ)aK27rVLo|6wiKCp zRJ0LlP%@@Xbp8o~f({e%~v8_<};AP=-&t)|J?Ti1(prv{w-NW#mxBc5D3H&0w` zmmR&Z0f%s(toy0#>J34f8@_=x&TDx}TB+*>ZoEGhDzQ|&GE=Q<(fVfey967{!fNL9 zx+ndr^&u>BSTgI-+t{YfpWvG~URqZB`dVw%WQ>nK1lvHeC6YWVuDz&jeKhdfe0G{x zTJI6S=8rlF#-Eg}v`Xi9(WUtWWJw8rNCv<8^$TDeaCQ&%|r%i-miy` zTyP$5vwavi_mc=nIHq~ArBI`g<2TRXk4(3o`!I1?AQ8#fC{1DDm2!63ZnAXH6>6SD zJ-WDC-9z#5blhq24fO>-$I^(tmBsklW77r4vmp_4>7j#CPMb{W>t1zykI0$e{5yQQ zm#5Po%SJmZ;@m*i9??gJKRj#h?wAtf7Y{W9I$e3%o4;IN7)Qg7E)1BuvS`+O-;8`F z;0Z7*5xHKxN4`v{j4K-LwPiyHQu4D2*pCBq}h79U2SIK2-L#HkZ|b43A+BI1_ZL>3ECgC;PK}TQ7BD-IQw>O zQa@>`L$iuqrp6hqKs=D$tHIzGf}>Ho$63(8x9oon;K^SBuF;J2%nh*nUGPJ~P|T%l z!eWE;1}>Ij;Wk!_yA>*^-fnx=wEBnKySwviT`H;4S0VKp`7UVC<4FRoTCrZsWT0-# z*3Au}-h$_>I^@ImgE|4o+i$IubdKktAWUXYs{P+SCR3#AeCyyMi+aHYqPQ><=1Z*; z|KPdEqge#6;+@CQk@zE80)zfWln@L~yQW`?s{3|ywmq}`1K&?6#_Pfc`&AhU)IEb# z=3zk*(jNYP-1sYFvE)=P)4`-viyoJ3#mJd)UcGH-hIfXXu{{p1hEMPBHXmggTM1$b z?`A^zJf^}CT1ZfnDAnNEy693T(^*Rrf+sSF(AT@GQzKLT9D{W$}@)O7ajMam9%L`V38T*R7@~0j|GN2q$X3&hb1ku{UAy&$Tc;K@Vi`D@ub)2 z1HL7I)&`(S^|ZDYa@FVhIUze9wG#=$m+Z+iW0Tw)xUzyKt)_fHlAnf(tfpK^vWo{{MozhDIXw(R}S$|xXs1Q(F$oW=l3LQ>A|48q^u#h3o$JX$2|29 znH5GJ*2SL*UDn}|i{u*Q>K;%Ls77>N@19)sukHIT;bk6*I`8mHXV<&%d|k?dJ0`zE zC;gnb#O=`zhve4?RG=50?c8?MP8B~6$VrP*vD!~0#2|YphWB*dlwf*SHai{}&K&Wo zfeNQhhMr5cH_hDQZPF*DdsZcHkJ>$x`?bj9xT(u zF$1_Ewh`?nHN`Z?&toZ{QIlPRd$`!Waf`P)#aEZIx;I?hOLROzI8LIH&4Z9hU+aNy zao+bEa)oS;5!>hWUe*zS4BxaSh%HxKf-mJxGKv~A*l_z}Fjm*G23s=gh}yiO#S*YVWe*V41T(ejym^ z2(rcJJr#hU>(i|N!76DY8H6AC8Am05-OXVSYX?hoI6ocqxSfC)m8T@Fz43Yx9fkz4 ztwX3L=J+tYm` zrh%?@>mr^-&LP(MkGO*#9(6VueJ#mJ3IRHiCE&DN8MKpkaF7!_n5KC=XUgOUzpq$1 zhOq4^L6Nde{kI>usCqu~Vxm#+Tp{zN^sF$VuR|Lrcr!aD?!A7C=%JJ+xmA$W#MEto z3i@3F0+JoasQf53Ig@vvHi#mTjgt^NKmNk`mQQ8fiXA^c?NT^dx9h-lI_@#A6_fw9 zDN@cMo`(;}9}!*ET6A6%;OgIB^FtfEOTeRe`Mb*wQE#6Fiw00BcU?M*unrMGinfA0 zWP#BSEy#D%$GC$xs9%mT+=ekR8KUI%)pFX>zc$>a&8AL+;Al3~2+uZ|m<%j03yid@ z2Fx}LDDMb%7h=DbfF|*rSKB4%Au)Qdur1L%QD%p}X%qxow9S6zKe2tG@D7df$-kxK zX`E+GX2PAyJv99BHX&pTs(Ygnxk`@$TTeRb!K1G*sCe<9pI2Zu2#cEZG5n*duw=7x zU4~=*_2Ep=4>=*J@TJ8HbF6g|t0w(2dAl1X1%hAB`u6osS=!7mvg-quV>XWb!T!P& z>(IBAMs3l0yfBFQUj7z4R8wtaX!q`i0hbc_#DvHK&u3UPhbR$*I)u@Zc??ve^rHE9 zf`GxoI8)D9PL0H$C_Qo)Ru`O9Sh$Gd^vyC4aXS7`RZnJe*b8lAhr8KhJ(j?T_1%bL zfi$P(1Gzr-P%IMktR7pSIWk;poqpoD*?stjk|kj^W1G-kqM}yZ8v>RBy%l`F^Oses za+{}pzch*Y(s*Qa_Lh$wRzAGMeIiUAH~wW`Qij-u!A!t~CaSHb((9%YzkvMa)Su}& znvuroLsg9ZlG1Gc8@N$5XuNoJFOc1p_hoK; z6#;L+cJ8Q&I^~+8-kBY;-#44y9cps9pttb)6suhiCRpTS;n;HHNRL8HYqPz+2aM%3RS9YfQ_f?6l*@;+u?a=;mV>zRP5zF>;|bu9e^ zXFTm%5&0Uu-_48K;cNT-`{e;-LUx<{>fQ_#OPD9Cci?iF>lI!$k&Qa@X{;hcqPRP;nm1Rer&$8r?|`aNR4c5=9isIxZu>wu-=O%O(RpA8>$?oPD~242ca0zyL>XB& zyvsK_^*2R4!A1L%=FIZ<4X~3;(f+MG7mRefDnm575KXHe>j=|59kD-g6b?(PCbhl7 zM<4gk2&(N}4LJ)RQY8PUsPj18CWESf zj98rC{L0r68P)CZM!>POIWV>_xY9lTw9im?wBq>?K_lakN?w*5Zna@kNidRI2@3*FYsjEQ=>!FuV(B8I!6c#MtEcs7ByN*z_V7p7 zmM|VTlhL{b`|Z5X_siE6(Kg33m!9w1xCvbdH=WL`(28v`Q9;@tSUS%z=`#ZZ;=LO( z0^?TjINR&8z2BN1=tOQ1a%{hb`x(l8@pYPT_Ia(zI~XoMD8$az=avFv>>GfxnnhLw z=bxd{AZ}3DM8Q%$d*!lpxaeK00&=`a0!5!Wi1nfwrC8@%wwyp#?fi*;2rONdTm3~) zyVx~8tZ>I8sk|R3wYsjqyYsduX~^F~8jAQC@1*tJ4^}Bqt~+F25>ohrSZO>j6R%~D z^=?n4*R&{2k6v9oLeQWn7FY0On;U4Wcu_|gfg&XG$w?q=_c+C&NOPI;}1Ip^QU|k(~bMJ_RT(}s&hwb^`0|2jwVCsyQfY45uW_$g(G^wxnru* z8pC1y=T55NF8KfL|CcUPD}FwVOda*Sy|~X!k131y51vkxh5&gcefR~;%oq*ZgwHjB zWOZZCst@9;oA(55s)y=I)i>l4=r3L-BE9k@sYAthiR}>#dz>(HrRhx=du17fBcc=4GiD~E zhz1%nbD)hMy9gdv-dS6puNyf3xihv!GxLxiIB|5LahwrQ(BwEx;=wi%k||lGf{==?g?nPqd-py2% z7$q82TmgEWJpAc8W`U0?XTp7d${}JQ-b{+5N?~q|&ZQGNUY>wpa|9b(m@1X8O+MnK6rhpNekQj6Z?FIFryXAb1qwZu z1a^%7-mmk4gR$6To87uv)6Xd2zduR)wJ@PP90>YcI5#j`QQ`<6MmIBX|Hwzq z(ANR_PnY}Oufvf;y$U?(q?NN7lw{0u8x4&opi-$Yyf`&vAPSrKTf)zcH5?SqTCPe- z{bY&8D|qjdNn94|;lpDSWZSI&-5dY*O2=pZ3>2_n;9G%sXXAW^OrcSpW0#nQgVR-k z_ojc+6aJ@FoGc;3v2-G!rH|5Jt5B~|t;PR%20c1#ce^knvn%{Qyo=q}o3Pqm&_y65C|MrSNI)4TlIHGt^8h$+>$_VYjGltjm0sVsNKe<|j-&fmE z&CC@DG&Qd`X~;9PXR{}k8j&pOe{UcB=eqX)_klnBUp@3z!qGujHux&@^6e zAKO*7=U279%)|7e_qzW4`o;h8BmX&q{(2w)sIsGgXX_B|U2iXfDYXK9c84G91VTyO z|0&?||9;?qzVY{Y(L1FcX7zV>3kU5PRN>m_=>mPQp#E;~y+nqy`0aL>YQ+=_HL3G1 z4!<|f>KfcL{;(7F`RC^UKMewYU*MzucK<7k)zd--1(=UtXsEZM(uD{=TXph5rE72lX2O_o|yA1MPpT<`34?@f!fQ z%J3h+`uz9-0Gw3Ddl<)m0O0<+3IC5aCS?D8Rd}NR0jv+1@^`nQ|MZpp$Hu@LSijK^ zL}n9Vj_6c^lsKG+&z(HiNu#5xa-O!hY- zLCvidciX@o(4Ix?b~@M3Cvm|V>aOoHMnxw`ORd+_e91yfe{5KOKTX#}24k39>DZ*@ z77sB%y8bQZPYmX1q)iBRG`PiGVx|;qcb8%@St?eu&-$(Rqm_CPy>8>KBYwxJFS3C> zo5~)`*(88zkp$_s+TO4%;iCoN3JM^@!9ewI773LUA;p<0*3CpZ?muBPnPQMweA49J zv`KC@1raFaB0@fmKazAXC&8wwr^gDuIo#Qti&rjQHh(sQarzTz&esj z)fzF}B9iX+S9Gy-3cnyQM9s5eaR903Ea{`J34H=v^7e3&bz4TNvP*B5Y^?YzKRqdc zE7$##ghhpJesNX4l%FRAWefH$t}}F|9bGw3&v7nDS1Tp+wa-t%(f7#0|A)2wWk?U< zfaHjekY$^J3&m}f$%sJPOfd}&!Dt;UkK4nnx6q0PbwK>_r*^x>m!gDD-;0%N5=7*& zdCFe%_*_nAwuT*)hcM;+dK?PCs;he9kke8bSqbzPUJA6XNtadP|qU z7W%>6PZWYqh3fTi6U=I(ZJOf{ z;1yl0-P%PR?h=9tk_e6_t&z}WaEUv?IPWK4N+89++&wlFJDeWj z)jY$X6o*E@%AK`aSB#-lfIy;q9VKqc_49z`*5w?fwqvL<0$~I}KgP1g0&wkevrq(NRDl( zE|tpqU<|vph5MuGjcubt+Vo+fkZIZM9miUpP~b(zc-v&oTPk~n&RMDevR`PNB>hM1 z)&8Z+yp|J9Z=iAIC&d|ee?fGVS>!Mz)48!y8$83dO9_aIIXe}G#t*4PI>Q{F=HZj7 zt0`JWX%*^q-Iy`5Bhz`u{lg6@b!(X}l;Xa}kb-d|aVF|K&^Hfqy*{Xqf(D;hY>hAELff+VOG=7IFV; zDvM^1>xh1IkXh^q7q`Spg#*&r37m2C_0uCP4rh5JGM4k)X2mG8#iCIN9!I52S^`48 zaVXa4+p<1ZxBa?S)shiCfi`=b~thJh_dx-4<*lm(1 z`+%&y;4gOx0Mk{@Vepiq!D2J~Hu>TsZkBdCp}>Xn zCt&r^5xKJH5vnv^Q3+hHG!+13B zjwn!dv+M=u*y?|3>qSam&MpV^k>B%%C_K%lB21Q-iG1Dca^Gr_zeFuDeo8a6r1H74 z7uCR+yT69PS)EdU<4-MPm4CTNCY&^BF*7@Tc=;FfZT6aOz4%12%8{#3rza`7@Hyhz zX^(wRt?~LKPqK0jycm^A9DqaxjfDwD{*wdeU)4f^lV2mtb8Yf@T8||KE5@(QPZc@t zProxyM4?OSCSo$3MFV!!`_dUG>(K=5&y>9>iihglBhHmJLCMum-E-XNaZ-`4#`vyk zGixDz#^-h>to|z{788w1F^B1n2_Qwy6Bg@UWRSP1;DllVpw^6=Q?xfU;p|L_(AoB6 z2*Gs~bT;c^!8oz**SN)qnaTwda0o#R2KLdr7X@gdoMJ$wN*G|BluK@;0y4r1dn^zm z_d#_=iHh5#lg?@G>>gRBy^SYuqbv9-yc@Q5((Uo?T`WjtmU2T@7#>uJSb9I%=abVO zOYNlj*=hy6wCi*Kq};vf{BxQ|(bM(n0DB2_TBy!uDeG$#@te@N!7l(G=)uimEGNxQ zJAD3;yR_Jh_94JhxyPsj0<|D?#l>v)w8q?i`#w3nGv-$94C#lbauhO{V&6d z$a!N<#l}qzBgJNQ391NFLF{YLTCUsFQx_&LUVT}RtQEyEg$vc^@-qn>z7lEEjso}i zV&}jt$|%9Hxso}f29M=qN(YS_mneplKP4F_GH_5oPR4Ck8GwEHVs2RjakM!QB|74l zp(N4GCJL2Cea2}T01_#7pEZ;$n^^p1wpyL6l2jlKv-UR%w6CX|RtT}%oX*Loid1BJro`&Nk7ffsmyQR!`mv;S+|v$Nbj-Bg zg=$nbF7O;nA;uleb1W{?jz#XC3w9>biw#%G1OQ!aLOo?~z5u_)>s}RejdhRh6LGwW z(m?iYcTN8M^L(vFRi5%=-Ab$KAhpk4wRyE(hhPzl8o;3m+}Gic%T$23-k!}|C}C5h)?Nu@zEm26m5KbYw5mj((2*(Vx-|&W2$$W!OoB@4?+X`9+EP>?K1EPnf3A5v}-=V3zDWf zA1`+v$hld6yg^hswm?B*mxBl8gYYw*e-5C5Y-(M<8e>->%*ZL83v^R8BO6SI)xw1d znbu_C2dSN8s$zm@jaUe@wcmV9>GdBeZoSX_`g2F2RY#Ht%DaMggUOvTx(ux_@(VCqfjJyU1J#+2SW!aw(N+2%C3Q0s7MJD?NtZZ}o`gN4 z`@McBuJu$7Ygm36%^KQJc4)QEzkX6uFUt95>{x{EH2RG-lu9ef)4p!5J!{G3 zpwsDe2svd4jP#owH(pyXuU19{!TquRbi?NN0uAg+m3yh>+;`4(I%2msS(-c4P^#Xf z!D+&V0MhZe$bA(^J78ELGBA-Z_mP0HQ(Ghe3LXtd%HGLrLQoUK_O5Y=YfDj=_m*{x zVwyq@eZ38YiAZ! z)?f%Air+2wjlbs*o-^gNBmm2$l*jGWx)4A^97>cp?|v?WZmYj)ofg&W1Gs&-VshhG zyoR2Knkiug1zoFrM%dt_gQvt$qhd?b27LM1Us05@Uz95cPem*tH~t@6ry=6oC(Z*@ z4uu4{a&hBy(W60;5gKE~n3z<}!n234Y6Y?*&8#vQ{Tfk?lXdELZxg4!JAbIXsZi)d zK;Wjmu$3ncZ55tPV%(wfoc&s@w_%o4WnE93j{sVtn9L!`cjpJ~kDrE}jyku-T|zWm71jfXUh)C41q+mtza73`AQW~O zmwIpHIdYWB@`CX7 zq$JjWjgn2@_|^|A*a4{9YAQ7I?r{;(L`CC%rReRFz~j_%(WI8Ix9lq0fVREGgL0GZ z!rn|8brAyS3W`!icI6K6{xet!8;vJf_jacRBai?xDSG{}b+h{V^B0HsAD70~dE>O$ zZxSxn&eo@t3TJu4Bew>z`z5zF1BE8_jYJ%3FWxaJWbFJFzy*EF9IkoC)vW5GApTC zaU&ApA0#qQHo6Is=!m?EK4G#Rca%)+VLCM%xf8ye1Jwb7Lw|*i#ueh@`ylmtN+-y& z7CD61l*wpNnxsdXB@F#&xkX5gUN=t+sU>$x`heYz(gQK{YnQk0jk?2)YG-KCOxm)p zj%$HJ4Ka_at?o!I?scf;h;_F!Dv4NxbTI0iCdw?81*uMheIU5mRsWy~Z7eYUStdbh zhxPchrt!duMyaQt%sA09C}LuxsLqqlM~jx(`M%4iHO`JyNu!k8)ic@qIB6+L=og8y z**trPftTIQB;p?9n6pG(fB|+TwgCqdqUH5q7JO)v*191`v7TYgd^@S5+V$KuF;Do7 zP6iM)pC#Lhm)%Q8VFX8(MAI$K%E{!9#i~>eP5%W>tH`La9>Gh#x(tZyILP$m1MO{kzv{?UX(~#mTF}!o*N)`qld@;d5#Iy0HnK>1Pw?1rta^9-sV~8fj(L33sdoP_o5>?2wYe9 z%9Aq}02@PN%jf2#!(yd5JFd(9{^(<@dFo)w;l@)Q{7jC|cZV5S`GF3yPyNO+=Lqkt zs)Y08be7{)4-%+1`q#U4)^fMLeRn+C<5N968#kg|x1Dvi#eSD=cv@hjvU?uk10dXj zQgh6rcp#@$u*#Q_(pQbE^7EH1908*k{@~U-@je6shu!z+z<$<06s6k;k@Y$eT)=eq zPM3Qa7TRTbL$^QrOsY<@>LXiuZ}yt!R)ku6&>w; z%yY{w72rYI!^>wTsf|}T#3G>s7W36+(x05V^yl^fp;}4wv%X_Qt-kV_x3K8}@d3f8 z6Bly`M%Yz)Ew*Lrnu`W0Xn<=SvYXLm%STt$I8QNX{8`-jXNih?3;ZV>=ZywB# z7RqNy){pp!tWMNcE3HetpFP+T1^A3B)aNJnqLPo?b+0Rm(<&Ti;fZLwa{jCCdO?d_ zrdiDKv3ORf$3wPQCP-G}ZdI*wAOSknY=d{eMdV`|ubV6m;3}_8uIBZtZKFrLowPB) zFm;;3a}!(fympen-kRdM0|c!NPMZuCiAvOa8-0NRg%yrH?MdgA^{^Oj1@;Eq>s}IS zY^^`_4DyM~tCxT{7`zLZEKjik)u142rw1Mj6Yaw1Yp^?_$r_o`b}@@*wQ)fz&?yQ( zIWZ~DdO9>o9d}31Tw`-+WnJ6kMoJy^p24wXby8|pglPd=@<4d*cs*=|y@S+-42F4& zEx_Th73CC1qY<#&>}EB2EZ(KCMke4Nz+!krtU(5PRH=|wz%{*2!TvcB4b(Nc#xK+c zb~^{Ahj7g|%LP<>DaS(T3|y(0YVX#{4Gv9yS12oN5-Q2wXkIdZnzgOAU&1^)DOV@C zA#HYbbshau(q!xfi*%5`yu>w7PeL#p7R)u1wkM^B1tt~^6Ng9bQd@E|^EjM$a=+Y* z6*6v9{iU%+X7uBmvf&)*8w_$5fK3>I`7|wQeOQC0s4Yg&?PP*DmMun6J3sc*5d@lV zbSg?S!T_BrIa%mVRBEqR_*~1+oKBUTP00d@F9Z@QW)c6TMn@8$K+|4xMHC8C3~M3u zp2Ohf&8EQ{wYJhG=)!~It)HZ1VAVs1f6pO!&h_8SQe>YKuNR(-H(U4=%9r~U7e0P{ zOkkd+94$3T$>2^#txEyr4Ksi+*+~%^G{_7j+3e2iERxaF zXSM8F85c)SLFEaqlmlX4k)!(K%EU3c$5qR~tvT*Bg#f8R9H>8sqdGaPx^vZ95z&EM z*S&pDIHEr$cdLEoDZ&J-VD?R5i2{2HfK>eQ?nrK?Ob3nk4R3#SnHM{Cvn`JoEMhLV zo6mO@UZ8Z>==ezrDAvT>D`bnHb*h3S(}_q_D6J~Uqp+<#cLDu)^XxB3#F%=5U*1Z* z4vNV7H0SVZ9toeDzok)wT$MvWBgNJe$c$OcAKtqI$~{0`JW@2&_?N4qHgq}wD^%O~ z**RQ4_S5`0y=nKh%5+bjpl&!K7`T7#@dFm3%=g;jH--37TBne3%L=UIe0$4dGe2g7 z$J1ypbQFX07o}hKeL6I{^nGYK`F%@ueTLu`H-VC%xXhxu5mc`FV{IEej9&@@+xQ$U zp^b7sh&CS9)H)GnY8)3xlPWASF2b`A#DSuTe8~q)A4%UO!p9u@+kHs_ zhUSZ;7Gx4&;%EMw%3TEK(+UFhT)Tn3X&LSKA8U5)Ab6ngfl4eauGwtxP9*fo*dR52 zRnb3`Q^BKCYA~U~>@Fn`o!8S2*VpMq8BCP`jMs&gf)sB*-(SyV??*cq5+_~f;YB>;4x*CP1Wx6I8=ihRa>_m4%W z2v*d)s-)E6y(uNJ>?f7BYn>W#Z_i|0&6i5iV(GQOD*83}OyyN7^2X zqyXhL`-E%=V=XX}o}(I}TQ+_C$L>Z@${LwSRv3#Y?HC4m z_14|y9T?bcQeEB!htW@rN5EV26OgrG@=6}cYEBGsP=>ie%bqzsdepL*Eqk%l>Lap! z9t8M;gKxY!_19-t0AoRvuOa*cnkCA$8q#CZNG3NnKALHZ>Q%n+0{MQBR(Jl@tN<_< zSp$?LW4T()`YV@3-Qym0ePY}$4u5sOi)TFTJB8d%cY{P`@-hRMo*g*Fgl%aGpld z?X;hl9K_Sx{%DIk}2n=2(T+bA1(wB%_IM%X4 zCUb*Mq7(+z8xpClg$p#-O7X4?^|}Y$EDqzvY8E#gg*@|NdufmW)k^I02ck`V1lii zOKD4-6(C(rTbeH!I6mGO1eDd=8m~MpNy;}NyjoY`X%bk@2QKxN=8{-BDensVjC%)R zTihSQ=nr}M#qvOmrhQw`sh7a+-e5dNoXby}WN}DU>hT4RzcFe7-AlV8ZPSoGCUB87 zY@tG7D!RbMVDdG+0ucN{IySi6D~Xz=bwB#XS=Xo^mVEH~3mon+6NxNkAO3wSK9XHT zfw(7QYaxHM8spJOv*k?ZhkNie)3T*K{@lvw2mP=+jT`;3ts4!kX`y-Ayiew5*v4L= zgJ3S@n;`6cLlmUQ(aFqh%Kqer`hz;^dV_oAq{hzme6if_uQwR9{gYPmW0o9j4E={U7mZFJ88hBCmFaawbwLWQ|Ai zJrl2(ELV912}ubT7`k=xXq=(PP&r_}!KOz42S9DB*R_Fq!c6R3r z1|F~Vd&br&tl4w*MS}{8802dDug1f&>6}Eg^2_%cbxv!!28jlWDL1D(p6DcBDDZDq zz~)|?T88?a0hwW)K63ra1rQ(=bKD$#N%PFzijOPrRtolbIkj?}yL7^srC6-oN2y&+ zdGP=gyd4k8TikcsR;<9pH0BR1U8)QqU7ma?Hra`HL|HeOK;>OPVm&u=Qlj$P^+wZ0 z830&oKJ(BeZ9Gw|m9cLq#=2$}>3l2Lej`Qiw5`SWnkn+Jo>c0a?A7J%Kt3?tZro_U zUmV%0Gw8L%LV|BBfg82l@+>TYfQKd(2OrJ%=k+%yVz2x}T~B)*gr^XZ_4c#Ac6I>B zWk_`XxLCM`t6eTV9+3U4UPB$ggS=NHSBw8Y=H4Kn8+A`3UWnC;grfCJ6P22Vm`4*@_D9{=;Mlg6pQ0`n&z3HDl_ z4F{Y+>v!;U&l&(~Ah{C;{vCb!0zeT|KYI4@CglsHxOG#%H`oEN3rUU@)>L#1yg?3J zfP^ny)@lAJ;Jza0m1^ara<#tI=T}>8zB^i(wnRYCx&9TS@W=hv0I0>5>VJ>w1` zxo-de1J>Kq=)(9_%r_lY(X9leH_diVUO8?x9XI}zKf?Im3)7&3*16D<&Q0*(#|1WJ zPWzP8(ME6WZpc-PqGb4!FPlG$2^yVoqoEf4jW8;b6B zdcwu>WN7-eGY=lCGAHB2+m!s3A92!-yItm0x%qEi&|j%Pt<6tcDdsy`YGtb0z_hvN z?kb-KfM$n|h&jx5XFOmqH`-jDtRudIp=Ng;^U)tCFfc-2L$eTkuj{~wE#5-I4J%W{ z&v`OkAWo^M+bj^5i6T+>n;$nQZfVm1B}CW2P4P0eHIFOfVaA&IpPXUZdggN)cSQ}Sx$~SKt>ahN48#tZpIh6xYjd!u^sa& z^#YxY9RF13ypjvucNMxU6P;}}&hB`Py1nr;XQ=89j<|N-L>*7-85Kq1#p=^-T`ng7 zqqvUPRm#FoMc9^a5s#W&yi+r#NtLrdQ<=5zmvNem6c!~%1<~TAcS>jljp6ophLxKu zyPxmP*oC)e&3^asEKtNyNrww*i#R_Ns{TZT(j}uHyZe_!&Pm-+HQ~O#&ZbkDp&m9_ z6Vy76^gGS*@R5_`;5eD0et;{s!_z@D_Ima8z}?%=os!rWuzyx@rs;{gU7Y)2i)I<%d7DJ2p|uFGVNG`TWk%?MOVKagqw*?XH!y!?e z*6Q)F`~wo18=e_yXHJ8z6Q;-fa+=>@D9&SZrIxYgOLsY_wcrPKcUSALEjb(m7gdlP z>F}0@6T^`%f~EC!Y1971G|3Q>3vKS|cj{()_o54i6p|GBCy?u-(GDnki%_up(0ko9 zC9&dq`xV|}i0+{NIi4e;Ji!>Fr5X{z(Vj6MPtC08hBie8kgmQcaGUAz~Q`N#T zsW68+PPTMiDNN*w80{f3$Wq;tS%Ax=wg$g~fa~|Fb|ZugLqh}Vjcz-{=?ks`NVA5~ z*j=6dhYZTYC(8kiJ-a%`)(4}qkLh$>02&vO4YjHtRTiV$?-N{6^ZaN0J1Ms0<*fQ2 z0!?IT6f@_)_&A=1UlHA_{vd$hJ48*y9jNV6PZH~Z$m?M!%{Fr6-n#SN-g0|-W2ckc z_E6NLUERgkPS1ad{GlWPJ&XA2gfIkX&6dUiTC+mJ?<;c~80DtlpZWeC&W;iKo}o}slWa2aB!fZM(d?zqA5!ft`k;rN*;AmT!<|qJx+#Qkv8X}Q^o$no z;bpVa+prWTZKdi*hLQoV%lL;Q$VH$hjK})bo#)TWg`8myVlD$OssDx;<5&S)jTkMj zHgoryvW5*e*a9EZuzI+h`bv(-NKlIKnlx+!_eau2X8gU+4}yuv1Sp%N%y3k822$0X3F+5M-UsnxO;&T@D^^MgB%uL~=F~%Dy!RHK=Rh?2 zrlnyT?hoc$P3`|2x`#=gJ<0KxmjkWJMy996SE?=Nf5$1t4=kfSWK^V{8|7|n9XaUCoz0(WJ96v9mYP$@Sp-6VJ!oVvpSp4;VsnjI{DjEwd~M z!4$dzvg?Oxsov`cKR9+L9k-8Q{FUZ0dw2FH#&X@Rz!CPDm1lw3KOrRb*Lwpt$UWRN zrDzi&Z4ix3-g^lg{ZWb#Ej|%7!si?(ph0!Uu$Sk#kpB>1(lC! zCFO2Nu%?}$;{h2`Yd?-oXL?f=bXJe4UinhLUrS=W0NMAt7G5HUq#U;|8768B>GW!C zyK?L6TA5V3f@_RPP8oEBgFNqm%PyL7jMR;JSQ1_WTv`<}9J{>y1G%9_B4o>(?^C|m z;lB}|k3v@LF*QFL2-^WGUU0L<$W~>S)^UMEo38q`Qt~xdXg?jf?u{kK`(Lc`=CMD^P`dE)m_VgUp8n#$`PE(hxa zH7_QBJjWEqa3w%XxZ1wh(bqn1a9n+SjjRbHN(%PJ6Cz9$fB}Sa2%iV)*)+Ta^!>aT z07sc@xpAi|zuntfe)8H$vOC?%mC3Tosj9^9u5G~lG~+w7b;CBU(H+}_1rz=eS=|aH z3-n*Juy-*$DX)KMmn===L%OeCMUPYo`rg>wC1QJj9r4%v?w6kBt^@BZCQJj9FI?Wt z5;O?AV$f<7);}|6@7|Y-qr;R4rBJc0XC}ul^BHdsqdZb63oN_NSWt^s%4K%FA(K3C z2lzdtCo0@Rt2M|f8S{3FL7xv6V4oQsDEKPjKG@MhmaCmtMMxLBliHlByahnx9A&im zR^)6AR}cvszU$J+yldR0^X0~r+u~A(pH9awBsoW*s*H*C&QC!j5yCI*$AAYBBEB_~Iyd=?lAyNxd&n z>9lv(g+e@l*pT~dS+3?5FMnqd=GmptJlmYR^m)P^Z%EwzCdw9KZNaZqVf_(+#(aY+ zpQ5$9kU0nGOLDCiwBA&3&T=H#y~Fy z`I=CJm8=!lsU1}$`1P;)D%W=o!?gBKpUYP!KUZEdbCiazo>3fab-wD-$&c6~xwr+` z?dSn{jif^u7hNuXpF(w3S5*7~Km_;bTKuNX%nO6&0Y%z8To6x}I#t;2>{sjV%<-$* zzL8aZ?~XS)UtCy=%Upy#VW@o$s)#ck#EIDhAYxlDaTI3HSmI)xf1FA zLcOjZ+mVo5S$&c_qvUaDMShmPG!ju$|1c}+N_v_(|qx$}g>_(1^~ zsgwS+X&w(*Q7fF7Ab>STEXN+6PKlS5=B{y_5!7Bev|i7&&5cP3dSCJs_b<2gDGmTf zKES${p}yicob?twZrBhjYxXK6@G+m&lX!}#gsO->R}nmXBZ=%@rJ$l1dhA`5iwCj6 zrNUR=%^%~0>n_K=`L0d)#;DnQ)X^dgFBreo*}uO3SLX=*}M7VZV|W$COR#nAZcU5a8+LFgl7u4 zeRyg==$~%$#U|}%wZ3f&PoYtcA7s!I4|7PD2` zM;{B;8VP4(1^5TLwmG+i!3yAu;T2*kbu36XKC!;n21v0jk-uCPWqTcA8L(eU1Q0c` z(aZV`C$<+v;U93vQqSk(kV!h7h0Gw_Eu#yn#>-#h1dc7YQpcTptN?40$tIhq$J0aDL#wg?2;s7g0Z68 zrbR-9*(SB$Rf`Sv^7u#k%A~N(Y`YH}PtR$i-&rlv%fCu&V~#X3d}a~8-JLmuJpE%n_Rn0UjuNAxAj3^TFh?pHNFR3-&f2Yl# zlU&k|dz`pznPE3CuI_4)1zvq~RXF9+eD5^BHkuf3 z1#%Y(UaQvk*^t-ls3uOWRxWeo>eXD08a0J{o5+OCI-DTe@sXE27(vP_jbbKUay9Qt zkre4w>udF+(`;;~{o@#?+T^~<9}g;wxjaZ8XHcl{jO(5z@RfRSou95HOF9$^U!OtU z<))vvk7Uba`s>N;Q@v~ra?NuFGSN|aO)d99^T<$m9T42;FMxC7U|V?#)Z zM6eU)x-_>P#U?90v%+_{BChA8zo|j+&wcBz?df8F6YPrnGYRV(^`nWa$ul`~F64X2 z9K`7vP`oJ z(ViziO21clzc`;^><6wj&2Y-JCt`KWFVrrVNM3FJJz7tk?g;b@kk-XYFXK zSBKvf;JSice`IeDkVwL9db5tqTkHAc7sa4xV8LP4ur-gr>pt9IXp&a-Kd1ZiS22|f z*VPtp2TeEB9=E(zgdPA40MI*Xb1UOCOCE=4w4Fzo5&^L<=|nti0hX>ZIkaqh3sP1& zv-#PKk5lzmdkg>x^fi__>s#77e;@B6{WFcsebO$*DS&D2lC9GmxE7?Zv_|GJSHT{J z=TnxgkInltO=qNP+w-_UM6Czn38(|4iiI9sLC1AREqgJ+M7G+szq|hPn*LeY%DK6K zo~Q*Z%jgC(UC>0s)aK!v7%UwLiC{eWoxLRxC6RzAdtfB5j~d@$dRE@7e4Y%D*l-h3 zihP;-NUBKaN}v@IHCykh)sR6hWJ2b;opZ5sUSniF;@Eu}F!@8GxU-&glHlaA$l>Ws zBHNqQ)t(so8krF@W3mW#BL&y#!{c^!MK|7Jrt@R96&B zYln*JJ5Bd6w^{D>v4<|9IxkAAH4=$NbKU0LC+gnl9X*35OQ=WtlS{RGhdCVc+pZ#c zY^D*9*(@B#w}})fyH~~J3`B`Vw6tS0g?mn)j%0Q@FM&6AzGPPpk0xR`3u`o-9t7PE zqnru{Ik>bbyreK_`T_7Ot`E;omlA6vds^LMw;OUb7i}XDA{u>lnI9U@ODl1FDLPsp ze5veWFrWFRKOomaCW^YgjtJn?D6XK;*(@##piU#dz(D6VVbmE z1?TO|>V|Xli!3e)OL;9iHD+Zd)fC|NuoxAkD`pD^X7vI(6Z|KepPI^lS zu9V-E^t6t(W}s$Pv^de1-&Y9=V8)Gkl&t`7jeouJ`KbwK+*B7kvFFhg*GBEzG+=fB zYET3@luvK2$CLb|%O5k>_zF>K0oD5Vr!AO4mv z@$wBh<}$7}tMqr-q&@HI`V<6KXSYy(5?c?LO@D|i(ad_(nWUr@&5zFzqf%r{3!P7m z59IKeLqRN_hxHhPxH4`-Tc`-92;9-^(wURX;?~UzYUTdwE~J*ITbX&S+x@cvh7_YX zJsR+c-DQ~hM)m?yr0Mp&F5&)~CV)D{Bh8gRM9M5sYPR?gS)DyQfS)qJ0wXI+c7&UY1z> z6?7U)yI7Hxw*AiCs^^fp<-SNMeC`B-RIO*7iIW0$wto43A}%>mqn}ngJPw~(Z&Eoh z9EM34&#Xv9nvE}^*!!FgCQuj=I&>$OvH*S1#G>)q-QHPx`s}lbO%}R%%BdRGi*8CR z?~48~!y1A|lP$_Jbq^yScn0f<=9HnHJNLRW3uEa)UkCa^lUQUk*qH;5c;H%>+bW3S z+=yK6UD}u+bCa!jdLg|l8xjHwT&dlA8x8G#{0`d^$HDRy-Y+`|Sx&vzQtzP(gLRQr zkF&rC7X=oXOwQ6YOao_coLs)W($G&jnuzGQ=Mr}}gdE~~cyz+6`RPj8Mb2#7+Jj(< z&L<6~JGp6*mu~U8elX9|`z&-xWA{H^mE93 zE6+ODQ$L!mB%VNwf5l7SY}%B#$$Q;TwZBzpG8Ks&SCwY2sF1oWXqK%6{BkC$omsUO zkA&uoAx{jZ;z9O4N^3uslwj8e&E&I;Jwwg|K6cklTBLI%K;cT+x4?fblrmd2e!d!c zmKEdSbPV3?JM4#se&6Sxb5QNq1(;Ac(i+{!zg%=)uyn0t;qfthQl7+CeGJt*JE;0n zf6#|o8TNq#Y0JTcKH9aNWtGy6`)>qu_Rp^DJFWUib?6Jut`3avpe4iZ9YP|33bsyu zu%M^mp;h@9B>m&x`GOCgH`R#Aj`B``r@*({u4+H?Km`Lai$ya-Xd$pFvY$5csSc8m zw!Zz~Y{DNX`GBGP+eT#}YQmCr?}p9tzdRbWjgfVO6(CJUIk(kqjn~e^($L%;lk6*#H zp*Xri?q26yjI5guE3cAq4j}Uqo)?vt$CL#y=*6h1hnS?oa6B~BW&0Zyz4mw(7U=Y= zmyKPqqoMwM(Na+K9eB>qV$A5AX-Ps;5tc(qSnOkEYZw#oB|)<@nj2zCp7%jk;ol>N zWquewKWC>h+5EUq+TRtRTIp-9#a|Jf($&6!_Mqr?KV-}9xpK`{97-0iPMZ?edSrnu zs}Xa_Q}k@#JNQpTc(b!H<9hnXTc$)a0g&528FF{dFG?9r?LD!IdEUPR?n(&$DwTw?c1&0He^R$X@8V7CCSp|GCTlLw6iK7oRl{&25YD zUV&;L;&qGoc$w;W-M3>WId+{%%5=|T<{UlHB2N8Sgs2NbT*jHeHgZ**KmZ}PSgF*X z?b~sJfKik6xdgyjX}1a-kvyiR?pO1cSt`+F>T2tBHXgrppu; z2XQ~s8s7APk~}4iS;YZ(KDIxbU6wpx%g%-TCE)S!e$DX2@@21mw2y!UXl&s#vpvDm2u@*VJM_jMm*l^1}uCb zd08D41u4P=+xlu#B-+?{bL+;!@j1KT7m&;}=FUtl$G`a)CuBSkI$poNb{CWf{fF)K z!%HQgD1MnVG=jCRe7rnpG`aprUK=!S^~{)2Rj-mOOIG@u!#*YD!7R{N})2I>(3{)^joKl0kKY2Qd)LFVpXQ>H8{LN6>F>uWm&UBwK*9-H@Y0EFK
    1A) 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 Date: Mon, 13 Apr 2026 12:24:43 +0100 Subject: [PATCH 10/13] docs(report): add summary section for dataset overview and update authentication manager details --- report/main.tex | 66 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/report/main.tex b/report/main.tex index 58ed803..1167655 100644 --- a/report/main.tex +++ b/report/main.tex @@ -864,6 +864,7 @@ NER output is stored as JSONB rather than in relational columns, as the number o This module is a simple interface to deal with datasets in the database, and abstracts away the details of SQL queries and database interactions from the rest of the application. It is used by the API endpoints to manage datasets and their content. \subsubsection{Authentication Manager} +\label{sec:auth-manager} The authentication manager is another higher-level module that provides an interface for managing user authentication in the database. It also uses the low-level \texttt{PostgreConnector} to execute SQL queries, but provides more specific methods for authentication management, such as creating a new user, fetching a user by id, and authenticating a user. It handles password hashing using the \texttt{bcrypt} library, which provides a secure way to hash and verify passwords. Similar to the dataset manager, dependency injection is used to pass an instance of the \texttt{PostgreConnector}. The most important authentication methods implemented are as follows: @@ -1063,6 +1064,19 @@ With the identity markers, in-group markers such as "we", "us", "our" were count \label{fig:stance_markers} \end{figure} +\subsubsection{Summary} +During development, it was helpful to see a high-level summary of the entire dataset and it would also be helpeful for end-users on the frontend to have a quick overview of the dataset. Therefore, a "summary" statistic was implemented that returns a high-level overview of the dataset, including: +\begin{itemize} + \item Total number of posts and comments in the dataset. + \item Total number of unique users in the dataset. + \item Comments per post. + \item Lurker Ratio, which is the percentage of users that only have one event in the dataset. + \item The time range of the dataset, from the earliest event to the latest event. + \item Sources included in the dataset. +\end{itemize} + +This is implemented in the same way as the other statistics, using Pandas queries and in it's own class. + \subsubsection{StatGen Class} The \texttt{StatGen} (Statistics Generator) class is a higher level module that aggregates all of the different statistics into a single class that is called by the API endpoints to generate the statistics. @@ -1076,10 +1090,58 @@ Beyond improving the quality of the code, the other main function of this class \item \texttt{search\_query}: A string that filters the dataset to only include events that contain the search query in their content. \end{itemize} -Initially, stateful filtering was implemented where the filters would be stored within the \texttt{StatGen} object and are applied to all subsequent methods. The filters were applied once and could then be reset. This worked during initial stages when only one dataset was being tested, however with multiple datasets, this stateful filtering applied to other datasets (even and caused confusion - +Initially, stateful filtering was implemented where the filters would be stored within the \texttt{StatGen} object and are applied to all subsequent methods. The filters were applied once and could then be reset. This worked during initial stages when only one dataset was being tested, however with multiple datasets, this stateful filtering applied to other datasets (even with other users) and caused confusion, therefore a stateless approach was implemented where the filters are passed in as a parameter to each method, and the filtered dataset is returned for that method only, without affecting any other methods or datasets. \subsection{Flask API} +The Flask API is responsible for providing the backend data to the frontend. It provides endpoints for user management, dataset management, and analysis endpoints. It also handles authentication and access control for the API. In addition, it handles extra data through some POST endpoints, such as filtering parameters and auto-fetching parameters for the connectors. + +\subsubsection{User Management} +Three endpoints handle user lifecycle management. + +\texttt{POST /register} accepts a JSON body containing a username, email, and password, delegates validation and persistence to \texttt{AuthManager}, described in Section \ref{sec:auth-manager}, and returns a structured error if the username or email is already taken. + +\texttt{POST /login} verifies credentials through \texttt{AuthManager.authenticate\_user()} and, on success, returns a signed JWT access token created with Flask-JWT-Extended's \texttt{create\_access\_token()}. The user's integer ID is embedded as the token identity, which is retrieved on subsequent requests using \texttt{get\_jwt\_identity()}. The token expiry is configurable through the \texttt{JWT\_ACCESS\_TOKEN\_EXPIRES} environment variable. + +\texttt{GET /profile} is a protected endpoint that verifies the token and returns the user's profile information, and serves as a method for the frontend to display user information. + +\subsubsection{Dataset Management} +Dataset management is split across several endpoints that cover the full lifecycle of a dataset from creation through deletion. + +\texttt{GET /user/datasets} returns the list of all datasets owned by the authenticated user, used to populate the datasets page in the frontend. + +\texttt{GET /dataset/} returns the metadata for a single dataset. + +\texttt{PATCH /dataset/} allows the user to rename it. + +\texttt{DELETE /dataset/} removes the dataset and all associated events from the database. + +All of these routes begin with an ownership check via \texttt{dataset\_manager.authorize\_user\_dataset()}, and return a \texttt{403} if the requesting user does not own the dataset in question. + +\texttt{POST /datasets/upload} handles manual file upload. It expects a multipart form submission containing a \texttt{.jsonl} posts file, a \texttt{.json} topics file, and a dataset name string. The \texttt{.jsonl} file is read directly into a Pandas DataFrame using \texttt{pd.read\_json(lines=True)}, and the topics file is loaded with the standard \texttt{json} library. Once the dataset metadata is saved to the database, the serialised DataFrame and topics dictionary are passed to the \texttt{process\_dataset} Celery task via \texttt{.delay()}, and the endpoint returns immediately with a \texttt{202 Accepted} response containing the new dataset ID. This non-blocking behaviour is essential given that NLP enrichment can take several minutes for large datasets. + +\texttt{POST /datasets/scrape} handles automated data fetching. The request body contains a list of source configurations, each specifying a connector and optional search query, category, and limit. Careful validation is performed on the source configurations, as any failure within the Celery task would cause a silent failure. The dataset metadata is saved to the database, and the \texttt{fetch\_and\_process\_dataset} task is dispatched asynchronously via Celery. This task fetches each source's data using the appropriate connector, combines the result into a single DataFrame, then passes it through the same enrichment and storage process. + +\texttt{GET /datasets/sources} is an unauthenticated endpoint that returns the connector registry metadata so the frontend can dynamically render the available sources and what they can do. + +\texttt{GET /dataset//status} allows the frontend to poll the state of a dataset. It returns the current status string and message stored in the \texttt{datasets} table, which the Celery worker updates at each stage of the pipeline, from \texttt{"fetching"} through \texttt{"processing"} to \texttt{"complete"} or \texttt{"error"}. + +\texttt{GET /dataset//all} returns the full raw event table for a dataset as a list of records, which powers the raw data viewer in the frontend. + +\subsubsection{Analysis Endpoints} +Several endpoints are implemented that return each ethnographic statistic generated by the \texttt{StatGen} class. Each endpoint takes a URL parameter for the dataset ID, and an optional JSON body containing filter parameters. + +For each type of analysis, there is a corresponding endpoint, the base configuration being: \texttt{/dataset//} + +Each endpoint needs a JWT authorization header that corresponds to the user that owns that dataset, and the dataset ID is validated against the user's datasets to ensure they have access to it. The endpoint then fetches the entire dataset, and passes it through the global \texttt{StatGen} instance to generate statistics. The resulting statistics are returned as JSON to the frontend for visualisation. + +\subsubsection{Access Control} +Endpoints are protected with Flask's \texttt{@jwt\_required()} decorator. This ensures that only authenticated users can access the protected endpoints. For dataset-specific endpoints, an additional ownership check is performed using \texttt{dataset\_manager.authorize\_user\_dataset()} to ensure that users can only access their own datasets. If a user attempts to access a dataset they do not own, a \texttt{403 Forbidden} response is returned. + +\subsubsection{Error Handling} +Each route handler wraps its logic in a \texttt{try/except} block that catches three categories of exception. \texttt{NotAuthorisedException} maps to a \texttt{403} response. \texttt{NonExistentDatasetException} maps to \texttt{404}. \texttt{ValueError}, which is raised by input validation in the manager layers, maps to \texttt{400}. + +A bare \texttt{Exception} try-catch handles anything unexpected and returns a generic \texttt{500}, while printing a full traceback to the server log via \texttt{traceback.format\_exc()} for debugging. Error messages returned to the client are deliberately vague for unexpected errors, to avoid leaking implementation details. + \subsection{React Frontend} -- 2.49.1 From bc356848ef0c88dc6df65b5c5adc1041c5578aae Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Mon, 13 Apr 2026 16:43:20 +0100 Subject: [PATCH 11/13] docs(report): start frontend section --- report/img/analysis_bar.png | Bin 0 -> 26591 bytes report/img/heatmap.png | Bin 0 -> 88157 bytes report/img/interaction_graph.png | Bin 0 -> 116634 bytes report/img/kpi_card.png | Bin 0 -> 8873 bytes report/img/navbar.png | Bin 0 -> 14707 bytes report/main.tex | 87 ++++++++++++++++++++++++++++++- 6 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 report/img/analysis_bar.png create mode 100644 report/img/heatmap.png create mode 100644 report/img/interaction_graph.png create mode 100644 report/img/kpi_card.png create mode 100644 report/img/navbar.png diff --git a/report/img/analysis_bar.png b/report/img/analysis_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..612a4b8758f538d1cfc1cd90af8cb3b0e002bb88 GIT binary patch literal 26591 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 literal 0 HcmV?d00001 diff --git a/report/img/heatmap.png b/report/img/heatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff744733f3b8400148fcf5ecfda379d3fd34be6 GIT binary patch literal 88157 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ᦺmJNPGuAATQocKTNGEbvZLVUyd|pms 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 literal 0 HcmV?d00001 diff --git a/report/img/interaction_graph.png b/report/img/interaction_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..eba79da42eba91b2db925b8220d73d21011444fc GIT binary patch literal 116634 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 ma;BJ|w5qb_WcqHr$Qc3G z8aDOPZhJZ|i5>&0pA^yZ_CTYFW~^rWS{++aFi(QpinVc}j0wZk?ibVzpUZdo@9I9Y z7d?-0r5hWoyhb*DAN^Xt1neAC>T@(T2fvfUD^RCXT3B0|84D_)@c@1U4-B$Cs1}<0 zp!gR87b!aZ@!`d>K?kX@%ZX87UQf``Ba%C3j3zWCOrSgt7ahiWm z^+Xd``(v;DbwQ)hoppK939(r7qXm)o||^3fV5pxAB^ z4uTW{gLXy%Wx0D!T`%&lFBkI@)C~pG)61lCT`9a_v;s7ohzt1EBs|6E!yE#SP4#n1egh!SV}cQR}W7LN+rdmImSY3g_rOC1Wqf&UR-Gi($dq4 z$VBiN5FRvl6_2&Fq@9AhnA7!WJ}^qwyU4J*LL^GmehF7 z8^|XOR${jOkr&cBmr~_QW?aVGTuh3HU!5Q4Hspn9=~gls)K!Dv7mtT%(xe?&z%$c9 zgqomcsVfzrWjzs|4#ahQA@L?}A_1hd1gUQRYh7fKM)!<+s>+guh0$3lB4LmO-->ao zk&c4=2=2pcefauUO|g+`O5=cVudBsRG!|IMnyUwvxIhcC%7_m2RghgCjGs2L>rR5f z8Wek#5Cqf`Ar{SqIe&L77jPybNC%nhR<)@9JJBcU{0gibH1@a&Qxo>7MMl}ysz>}kaR^rH1Ib- zAPRUD6D{qI`p1h=9q6+%Cvr$cD8F25l|5dSz~BNa1-Einjt~02{;RjwQ78TO%~!e0 zt~+*i8~tfpA)DUAB!PnMX!=aFX_(Ft5wjY?9|g`tfC}d47tb-O4H0GWUmHoX(C1nF z2B&f(whmQ~k2e%;pe6D8B~9h@7i?9!9qRD(7a3Nyg`Avl8RfnzrMYmrMoskuHU)K8 zhRWm;s~nyp;C24Z(~P5in>v0lbLy9t*V+{wAcc|tyu*NxN=E~UB?`)|N+>7H5-whQ z*xKk@IKe(2_)?6Whg7R~%~6K*>TD14lU4urBHqx`1K{o>o3ok?W9H#A9YZaDm6;c& z1Ly8+j+!376VCXd+A|!>< ztTPavlpD!Ho-6`R-}ua=VRVjFa6pkHFZ?*1WxLg(&7M`bnf6S?@JDD3V`t4`r1g@S zeGf^^0k)4qOY50r;7CWr%uGyC_|EgY@3RD3?9eN2y((Xz;2i9Bkh+?nDwto-)c==h zM)LdDPi0|BtphhP=u2fR8O&rUTZW|mI;8D)5cU4>wosE3@+R&=VI?dcbED2H&FW|y zy=W;6h+yT3cHu*N;e>KH1(f2L}hU!Sh7g(TMze z0Ki%sA#Zd_x9l9Gq$H~{43c~UJfw_wffIg&(CY#*L_MN6W`YfEK)!!UQtLjTZ$S_R1^^finC@VU5zag%Gk%I2Ra+81TP zr7F_R{>!p4O9=kQF=id$XR$<`bJ&l5DtZei)`r~?DU0MXjazTdULK1mJge)lv6jDG zt3*9|XH0{)abVsMN7Dipya>1DWAU;6qkmnj#_u`lU+ZA&s-$6u6^!09?`8-+ZuQrvMJt6Gm0Ca4CukfS?K5}igQ#AFa3mQ_ z85V==-*aJt{(DkI%E~iC{DBfu#)WY2v@~u+3u@p&b&-jrw61^A&w1YA`UvW3Xm&&Q zMN}^v&T^;jWgdGW>Zq7S?rxgQ3h8IT{5~UX3re=fm34p}Rcq*7n{(iO5#&=%`meY>kiWjD{3bwP0XNmw ze%_olfy=)lg+zpas88NPYBwFyTTvH|oA#HGvn`V!8L{a&yrTDfvs~YMyUh5^d^$ zkE|C`5jrmooYK^v2Dop5B-^~e=i>RjZgcFPJ<7Rc2ibqsyHkOv(k>C4Ri}0C=0VKe z!2atZbsXCn-S%6l0t}uCXz3k7hKer^BFT)1;!@yvZHtbv6c;MsHZ?#Z*9a&wcVW<& z$5ZqxawPLhPWOApsQt;VXRB!g4QrWwoxPUaI%0JvoQ7q%dg0|=(kY~#4Q~C)s^tp6t^6*R5$9oP{@dU z-LM{4K_Yl1Y?tfn&I-&6-50>>!8l*8k7b04%WCC4wztr5@KWcu0*wSJl+U5Pzfd;Xxo9+I{=RKtf zlT0kX;sjdml7aLZrm{YcFz-H%c;si*tPoLVwvR4@giP=3ItUNH+|5pQcXUj-b#Qf? z@L&HEqOx)|+o#PmP-3J@DVN#V@x&p}Ph0VRpcL!KIA2HHC?e*>(bk1(+AY7|fFj+3 zUBRF$GKgE2_g8k~U~cg<+V{KBfZ$&GswuHV^pe zmn#^mBe>@Y3UV-LL;*X0jFC`_z^ZO*{n>@`(%w?cT~=$@vE_&nsazE5Z10xX%&DxR zV(PH!$N~&D_i6a0%VSKWVkQn(sfJcFA8_T8)LyBcG|J4u5t5lXw@RGpeMRDZaH;ow zD;fj)Mf%1i$&;xnj3o~r^JHjfh~!j?8Gm+Wp=-Pj{XYv9BI1E`V3^anurZ33IeH%y z)Z7xEAoC3? z^zdpCLhId4L~BZvG?}z76pxDSN@GD227$m@WSk!PTjt_cEN9dF-c1P;{?5)~rUc;y=UXJphFanGYfX~iJ;z~wC{4IP~>#Yxd zgKq}J-nEn}1Gl5tD5RPbBs+R0yUKx8R#V+v`N^WLb!qUGA6<&;4zhRjSbtTR+`Up? zO;!Q}m{_QTs>Hrb7|^a%hp+m4-iu2s+;KZn8rg?lP=ih&=Z?cO8lG^%ZLKpvf|PV# zq)}?uF7*PftnckjeDJ-EV@aD7kvDEv{Cv=WX6un0yj(=AVg(#+02N9dU0& zm$S&|#`^b|C(0vD?Gk6UpbVa^UHaI^qYsrBrY{~UVdNY>h{cUwbm$mZSh>yl(7CxR zDA95p1Tu1APC5oJivk`nFZb)b;f!8f*VsvP3keAcqD@XmcF|-B6VuUN|7r0eX>?l0 zST%>wfd-JaycN%$&_%FPLYjM#L_(m<-N6AzQ!&`z25AtHP`1CT0ZPUrjJ%to$ zAcLs^uD;r6GBPO2(JZP5MP0~6h6|G-|M#KF<(X0ihrOwsV~vD%SXNygx!k6tg*M-u z=|IQ*p}o6zdZYU_CV|Is>)Z#eSq%iApy%n!<-3SD%=B^rP5%tc^^XyEfja2$RV@W@ z%gdNEO@n-#5zL?cS2s6fcjs)5^J{7(VkNP^|BrO@qeJ=lm=d3-@Z%p)kMy8e zRL5zIyoR!0ocSK3L!6B=NLkXHndsp8=!ePc)~tFe8wM5K1{FY<;v&LZi$tu1FKYYmM#Fzx{O}fN(TzgnGSM(UKnJI)K~lg8*dH& z=Z=FRv-!YkACc`?V0G`QZhS@{B=kEz><>D9f-ktb?mxAw5oN`VBa9S^w3`=gG&CM( z=eWh+uO$9Jg*^+@2C~P$>JrTbTD&bAT+z;>1l|Xc6T%r59=f4Z1JNp^qD!nQ{nbQ~ zB{q;U={twF;;{Rl;V~aSdHrk%5_o(b9h4Y~u>i3_ZG(<>lN}vXk#{JohISnEZEY8w z2vfqf)TS2#ZSL*74It=NFti{rF=|wT&D73s?V=1_ErVA4Ga6kg2(zAM3Ya>!p$BM9 zVr+S^$p{D@^&`!yUdFxZ)sJT@rWHWr)jk!LOcg$tX)a7mzeMHaXmvQusGH{1AGIs> zU8)-1@TmmdNl8YM{9oKVhyYPlI*ee3BLaix21=C|v*o9ov4@4~=D$#f>_j2^{gYWy z3^kq*(aylg@n!W5SNX!>QYxmJ!xuw@$Jkh2zod8c8y-WLMoCFSY<`wJjb*TErtU^q zKc)N29`;vnnOK$NLv!U-)@zp9x=i@*3=NN&ah{0X9hhEYT|!^By_c z2h8$Dq4|}pD9B=Jur_dDDyVD6 zNROs8!Fvk4Y->Vb)@Nvj(2YPg_?w#-4voB#xVc!m_4b`yCbTF^Omd`+SK%p^SJn;` zRpV<~r@$hZ* z&<~br-9s3^9!cM_+2>VhZ_UD|TSVGsI;gu3lI#;5RWFHNA?G;yp^2+-8uEbq7MYZ8 zZe*@mci-fVoLAYpZGW)TC23`I{qPp;ZF1JF<)slc=C_oA%}HI`6t|}A_p;w`$d2HK zJCqjcH1*gy8ftr*FI3Srq~w*B0`tCcHLC4i&yw6^xjn){7G`m*`Pkh){)~is?7z%F zUoL-BLfEWO_sO=I!1(~6^Zu72rvbHxMGCqnct286U;1EzwJKb9XC7alrc1w(uf)cm zqP4;hxA3-KxtNcBzXYQk{_ zDZr@^XjoWWg}t)6>W?vWsHvcxo52nTzV`{}xLYZhTpFx8_3h3fX}!5gTk=){Q(Keo zz}%@#%1fw%xA@aJCqsE$f@_a1g#YKB2MHihj;aS#-7!I8v7O@j9|UyPyKB(v9(gin z8{gl(O+hFA5)V^}{at(Z!hSW$(@-Yq;NgPj<+cFXI4^PqojwQ?eF<)ILFMZ}+raO+ zs8frcs)_3Pnyzt#FlN)Ckzzs)u{vo4)8ZafO435h$3-#RFFB*3S=uT6qr{G(@XA_S z_4SFR`-76Sa}U1b=V2O^bvnL=75Eag4BooZn5HJR#Y!>_RHDZV-JI<3o>b*uojK-O zx@4v0a%$=VHdk%F`!vcOZ90X)3rn%D5NLF+PKwZ<66v|_f3LBG0m!}ooR0<>k)aOe zFUfhKjY8B7q^Bg$^8oG3cki>tTX#AYcBqc{c_BG%b19baGRgDWV$npP8Xdo`+Klr} z!kum6YRuZ7s#L4zym_LV(+DeV{Qc7wJ=*+w7v6;}l1{No(4;n660>?$7f-DCS)kDDFDw4>ktcdyrK z#0{lCSTuZd0win&o*y`^}r+pQ!Typ$x1yWHa+Vh^&mXgFQ=wKKt|Urj(sTFi@~ zKQ_d`EVm8{#V1kUVAfhem#fXobK{s4ZgnPQDQTR-LN(u>67~VX_S>0&I$Fr#du_|j56rncz7&N%u~KZQf`vX|M!SLBn9b?6v-)1fDgn| zI<3|pAk=H){z5IMHRQrYNwK9}m94uuN?qM|=?r&hI&r85|H2A0V#exTG<(TIYBv!N zV#yD=Xt1AekllJQ)r#V$C}@WW=|ynbZfLAk1~3Cs!j}iT3Byvf$Uaw9HZ^$s)~%6# zz7OgK@rqZ-B~lKojEIlW#y}Bk^|J4c&dJbg3|uf!%BtoB%3(gaW)1N8Jmamo zZhbrO9{t*u&mAZEf6fgZfXkfdLD>I$J1s~{%j1oC1DfmW1kLm+fCY$O9%gc;wWi0i z%OGs$@;^U^1&|jxi6cjd%LLbb=E;;~rISyI%*o@U)v|ZY2&8{`GU@Ch@(IBs& z7+I#_s0yZo&f5gF%xgF5$<*d9SXFRj?P1ib1 zP0S}#DZTQewhG39P$|}vYzDud3u7AEq4K(;CsANCHrI7dPFW=G1ZPP|s+ z6IJ@Xj0|-BRr&+n=`^h`T~@-b2X+FA1)G}l_E0jFxj#@5Ze$_-A!ZWUNYNW?8{9N` zbSu;xNh9WAwFDU$#rj2#$P6e{-?zAWRYoUDU@f?A{r;mf$uNv#%mqytl`ty=0b$hC zP2)$uSf!!5?dnwg#aYL>!E3`$Y5$B+QbTahtm|Nf$D<5at^R+Cf&2iTHnvpHR6Zj8|S7b!wWhd**u;8 z;Cue=U;ZgO>f~iQ;5d&}ko#FH>^XhW%X@4rgGbo@K-SRO36H!_WIsFnxTM4iXrka) zmKkx!6R7y7?95a#{1@p2`H`svoDu7H(H1mQ`}^-~O2LJr@l=9Mv97jjqkB_UzUdeK{rhgP35|&9_p-BHQ;h@#%59e<<%cIpQgE0?K zVV#O~tC!Izo4@Rh>5rItDcy>@;!^kpm3?PtwQ6+gW5nD{R8u9HGsV-+f~{|9feH)r z7}#7s36N=WmSoq_pT(}Km#p2gqVu$eUUX`za{^m{O!G<@=At$D%qWK&LsgQOZVRQ^M1c_97+D<%FLW|uC->(xtra?ANd7G6Y{g$^FP%OKhXdAALl9ctoO1J zkiaj1ggmQM={k<)X}vEW>lzvdAe74*rpK zZ=7|8Lw9@CWoEx#UAbXFmz1oh6G{+mb=@(#Ztg$v@t4S%Iu8b%4_RSRm|m_jhA z)>|S6vi~BM%o%=Dsp|GbdQ~E>_TlyB1Xg{q-J$~joN55W zAqq@LM#UE&N7K|dL1(3Xv)JYh2aTFt>(5`X+n=D-@vwhI#AajMlV+A+1~2tpS~+xc zxNNqBT_OO2z7_ZRcx!Fkl?kx0}aX{Yv`LU2FlBtVQ#Lv*L0ykX>P?0+B%=L3z zMcpv@cv590U}3^!D*i_?xv_nu3W+siubN!^x`C&Cw=sazt5s6E?D^TfWaP^o#K+EB z(KBzZsk*3$-sa_fIyI+!*vGV#Yb~dqvW$h^o{V=6Z8aYW&U=!)^xL%ba@26#LwcyL zpN)iu8YJG#&j9ce`p}XVk0s{OZSwj4`0-qs`o^%n!^q2j=n-un4P)7~8VYw%{9D+| zqY+koU#J5*w%7_zH-8%Mef)d&M(sr=8vn}-2-?6%><7zPo2=x@Umh*R2F8h0M?KDH z%Rl+UgAt$iZ#z!r!%GYL-VpWxl&R7|PH1QDN|N z_+zWUS@-GW<8G>`MgVOJ>C7}+oR|B)Bi)>gDAkU*qoR9M9|FIZ*Ml@QMMfvwL>HCO zc|)wqilV`2lt%~;XU`vee`QVmrhcb6ZO@9N5~1pH;Kgr!_tej9Yz}3CYgsw_;8xm< z&eR`Xr;&sDXl7YVGuUgVx~|*=DR$ggZC(G!Vc|J51A|y;W}FLG$joW}@@>dYt{h4M z#1*B3bWQ|7I+)IrDp;ESf5eDnu?Pm25JfJUR{{8kj!<}INIz+tIA z>VTC7FeBWl@f%l_mW}=cEoekez2@hSRKvYr?TWvKiwg^XK$@khcXP^Y--A(ZvV(9l zToI`V^$uH{v>|G={Rm*r-fk3uWI8d^ar%>?6zl^xTq~7)yy}Z#L>DB_A=zp(yaBR@ z_fg!y0qzB?rr{&CYM?G#f;A{aEaHqvGU;iv@^@<&Koowv(?-OP;U&~_I)UG_Ddkf*|TL?@#I26uvv== zaVE?(ckX)_A^Mc(&u^J0MV*^8`(h6dR5R(^E5RAHFrlRPo|$>)nVT0_p-Yhhoq-5_ zfHKvKsOP(!3`zYmih;IiY`iio`So7jMnr#;JZgOEV*Z#)MrM$XEUEavrbCb#xx6oD z=_D4}F0-GDD5UkBWzqX3)Fz-!pq5NOVNJWR?+VDefa~c~I8xx;)sO`|aiKfqOfCQ- ztv+5-QmXGx#cNVYM8hX^#-J>$DtYZZhkJB?5B;1ag6waF)~A}Rb(_3iNem1M>`ol5 zSC!w^74tTS(@CQpFHNqfE-tJvG^ZQtz;6mID^7CJ$ZsSS3l2`&+a-hDcWuAAVg4-^ znC^L56Csu1QjcfH?V%>RH8<n;%~r~`NYiI^NC}QSu;Ah5`M@IjAl3eQ0}Omz0{%(N@-=_W%v_;qZI&)Iri86D zUfX2NdxS5HmYfggBnJfqq^WU|mmH|xk# zuo)jSrq4jvac3$JLb~#fCgpow26v?qicK(UmC0Z@)5@Hek3Kmi4q;EEv#(X+B2EAG z^;KRbk#F6&A%mbVS%`u76aBh`wL1{tf14D{>!YHk*4eZ%ZLnFE|&r+LFg|<#e@tlc>5O4M<;_(n0-jF0|~~! z#Blw`-soViVT^iun~m&>>he! z#QLVEF?DsASHW$$Lk%anvQy}{pA@QtnnWhwi7g#FE(>|(Er$y` ze0`oR4kq^>A+C&3dc2Ng=6%93fr^)NvWb-r>KF4pFUxBVl2Q&E|1i0kW%mf#h==Wl zNqa0+QqA_@IC680y%Z+HLx>_h6|}ei0Z3$l(y&7yql0YGRu>Jtpdcgsv#tK~06kEP>&A1`>khnk za3ov@McYjk=vlnsix{Z1SR&kmN+;d! zYw0IfqI68a^YVvF10#xxCL$>B(h7Qy;KCFTz=8G72!r2&Wcg+_I=qP9>*`+ks;a-^ zjqFd+ld`2WG2v$eibSzk*{#^x2xH227D4H+zji8NJzA4%XpQ$BIYN@(cc%-YEe6=F z>*9K(uUQ7$>~O!^>?LOZUQyw1p~sAV<@;TBW*VrYTbMzri4WJNtUo)~*ocLtxB+EW za=uwuumV8b_&im3j)QDPeICdn4KSY zgsf-X$vq{w?MJvn(Yh%^HO&qo#9XArE-5AH`y7Qk^-pvZ8Ekq}sjRx#XK5gsDg z*VbeB9=QS^dUwuJHVa#>kzUa^g37tGJ~#ASnn%F`skyyKVKUtif-d0>DXG$Y9NIv5}6Kx zK)*J#NAES1aiUc6OGATrP5XqS4-Un6OJ3i15LkHgx0ysHj#NSJrJWy^n3qFCM(7`> z+uCrZ5l1x}+CR)!G8|ku^hK&T$}Yb@nhUpKD=)k@9*QW&JIKfe1!e*(HZT~eQUqO3 zbtIG2R6Wz|6ITzz3w<1(uhHtY(1(VDmkqCH-P>w%(G55Ce@wf1w?*yl?8N!V-B^~g zo^(*2?d5x5f>yf^l;L`UP#eHa%O}fjzmObNSS?}C4W^2Ie;9SKEU;!N@HDr1R^m~k zc6xUS8`C;_pqs>lzZ3jbJQ${XzfIzBoa3hKijBhGkjCt5w~GgU%gD&YSPNo;3cNKu zrW)(f=$ere4g<~p*(5??e^fL++Z7P1$$2M+p30re_u9kN+8DP^Q$L!xHbXPJ-n+MR z#$aU4T+MNa>)h_;rcaD_+jqxc^j{5uF%F4|zMN_kC*>!e=sW>R3 zt2*V*zP{J9%{mTzE|n@qN1gTufW(Qq_Q+*V4^tYNkO z*3A0QgZ=?0%(3x_uGXU4deRbS3%!#F05##O5<QZES=%D3llr?*0qFZH27pLR)Bh#^C#g({05L2z4&!|8P8!*V)=R`pPF1u z$4T>IHQ*yQKQy>xwSH(QsGG$Zl0NlR029I(P^_c=vy$oaz5i6H&?8w4aLjT*DFPZ-=E27xNE=2_yGmnJulCyLg1Hmq>m( z5lsgWLw@>5WK9+GM9}vZ*4Yq=!{5U29f-+e*4r*y?)mZoAiw*V?DyZUb1+xDqH0Qx~E3Ovw&~+c&tECjL`<8cWmD zGMjGIH|gWya;I2>0H$xS59<%%SI9Ac2x=f>4M7MYopi>HHQ zYZ2X5vzgwQC`XaC&+6`u4PVuN-_T3>ZBk;S#q2<8ULE^8d-?MGOcP)A3Cwu!GcrFh zd-PzkF3Y^r%cu9AU$w9lohnSf&ZXshoe*-GYC>Yo&16@JSp8b%dSHWWGhZ!9F(DW1 z_6^hK)4{UXAzbs#{{brm@Q>snx-i*wxM5BCj?k*sTrMkHjudkPb^Fbn{SGqDm)bb0 zUnqtGcVDM)Vx5E8UD``4*x0J3d^uOrDx$b+7r|c(z_oiuKNwQg^`=8zYS2b$(w2nN zt3Zr-qRmnRemu5zV#YtBz&Zs=s*YCchLEz}Ed(L}7CHA)k(HR4VGT`@7^1NYU;2Cx@MmP;T=L#M@D0Z(1ObaO|0u&VX6om98y zqYQ%_Zdtp;SNkY6^{)^mcB8+8nwWC}u!2LH0Ox(&-t~t=%s0+Jg35 zd2Y{+Icg@eB8H_G9>zIIrOS@^?JxP_gO4*T;vpm;2pQB3Hqb>t?YZ6tKZIn{#9bjsPZnATOCBCb3(@$)y z5#!HU%X#<20G-(6oK|b@2cYD_@iygmRYMQ%22p-f=GwI@L&k-(^X^8rXugQaXnwhX z3^d;--=|QgJdaqbz~cl^GLiRgrzaI_lt^3FoUY0)t=)pbJQW~ zm*6p~)h|qU*~@!3gnz)V$908|ZqkgrV38B`+W0S*W++ z`sKWnKYLW-NCg(5o92X4P`mJ}9wXu@9kn->9tuQU8nTvu$eGn6+Htp^c_|FTX~uKOm8=AHj>Khk6BUA(1VF=>NH46 ziFwX}wvGC$t)Y@5?n65(i)7&JS3!j^-kGN@3uvCV^6hi!$<=%As+(`7xk_L*{IZ>a zN1~a*s$LET!gC!>5w&^S*JKD}|+A(Z-4sH5#Iop1`guUs`Fhxf)M5bNLK~-N^ zl974zUodu1ktH}I-K_Kv{gc$NOzx&?CtbSjnc-tJ@@FG~!qeCwIgm5IHB+^uyg=xW z%_}O3HAsmxG;%|@$rN~<1A;D$_Qz@C_}YBhS(=9(b{75Ko(UhdISs!oaS<@tNyh*^5ST-Q}6p2XHJDkv3{n49sp5>kNeRi;%wo7Qfj z_5d~Wc7JEJlEfP`DFZ%tHfl=>n-rR?t7t0`zb72y%;TQXtQ?7bplp-kd8N5%4nfrl z9bJ7Il)2eAgF%OZL zdOAyvn(ad^2mNcnhp#^W$ybG_VNIb>t0$}LKSxXk_U%-@$KLC7wAH7PW8TdD^>iJ{ z>eNYo8BIFr%yFuNv(iU9NCaY9jOW%H`u>z~6w+^Ua+?)wXdstw>pRMQqTs5SO0ZRP zC)}p`nL@C(fqD>&W_?SAnSlZ7EXc4$i=;}g2YzE_C*jM{!GVUBtH8+bA&QI@#G1M~ zZS10Z=M790Ah0n$)~$O8^nLRNfLAk(z88wMd6nS8{?m9ywOZyWM3h%0ad!aVW$`$f zZp1F0tzRE>qtf=sPeNX&gm+!otM?-sv6(E)XDM@Xe+no z3ah+B^0D0R(ta;)KVcxCpbwVbVMJ%AFz>l&@por;J1_`!4dWpte$?c*UJTOYVj^AI zNec!vLm*1vWwC88@%-k4GIpmVrJ`77vb}dLY1@U>YhbJ5<9ZYSQri5(st92Bs^TO( zJe(qkT28TJ#`W^@M`lZvTiZM@pl+Mn+7Wk9pb^I@XYze#C zxz<)QeOgM7I8M_I@88`#HQVcVPqR}X5#i+EmB4j@HZCR|-xo5bv?8d$9q9GD50i6lX6s zG}=}Eh@XRK+hvK6#II>6y;d^6ckOPbbf^nI^!)kZTkPE4Y$Z-{nCn$3)%)rzYMT2!cOhS83GeR#<7Ek|0ftuCc}KTB*$*~N-C_U`?mYG$X9oV zJP;Pz?FhH8-#0l`AkLyNpB+Z|^<%?7>c{C?RVXS~OOm#CC9t`(_N2+?&+I9rz74%MGAMdZCM)F5SLBfO&c2$=;qkGn#YCz7mU>lhlv>T zK7Gygq8w8+7ONuOE2&vW3r}ZFBYT$OAJN^RL_kOJKWW4UsnZ-rY@i(n{;pTwc}Z7E z5E&k>IV*)I0vUCmzj1f55oMlS_g){4XUoTIr1#KQY)qTaxNtf7Z_ha%O$=-h;YGRkiZSb$ z)5tuQD{X|%&&POjLQSM|X~&}$Sy2Ez5jLg0J}`YgBF}~5w83B@egFp&-g(!Jl^r{1 z4RVM;Z6p49d)J?_^CvEu?$)gvaJ*Nu?S3Pu3R=XvkF5CEa>lpgW_b^+)%wOKAk}P? z#k82)rxEmWPWptEkdSyjf@EvinWq!9$?TV;LYr#u_CGXL zlh@PtIgdj2-?U$Q``3fz?doG->(%6Ruvsxvt}((nN;=i82WnkNNHv@kGhzCQ@&20YFc#b6WQgR%Diz#h%+?e^wk zJ!@+ungo)%@`$BD(u&H$oNH|q@wVLY>JPM(IG7Xg#RaQu()M{C-D?QF)qcKIlObWc zkb`&L=?9AvO^~0Mc5KQ2WXrF=!K4ANeNm!M;PYl{$3P_aU%Z^yaYXO;CSu}I{Fkug z0ZbjoWcNEOc!^m{8>4$>QbubSFQz01g2)a1&MRusw$B}l1jIC%Jce(YpJl#(Ne0nq zD)cZ^>@<|u2ZfUIgI!l!Di$LU30pu)%B%H;@t<>hatTQ@mr9yub0W5WZdvW#Ci66-; zxp=Un8^<60UC4;d&Ow&|7|{caLB@{9I^AY<8TblCh1gV^^G>qrOI89CO)rv&O~@Tf z*U?CT7#u+Cr=_urg!EF=__D(EPLd|D7GJDKv+m7V`|EtW4N;ntC4vb^k1%YM`bOtr z9$cx-`K*E1&{`Rvup%t0 zOB44%K0Z?7TnIV7nkfc~p7Y+`&^2{`=qV5jpP!kT2~ore;(ax)>b1j0?6y6v@3p(gk)@s( z@~POQ@_*&ejuyt$xzgHfj%x>fcapeS860pF`4t9%WE_?X`lcfav=BQ8u)afVNDhmL zMS-_M{4J$s$^pO9@fNlh;rNq{I{p~sr$P7Gz_!PHkix zV(V=)^$Y<6i2hKLY(6A+$REi=<5SBA^KD~@Ee@k0mCm<-e;8Oiz0)?iYD+Tv5=%A{h{ z>XR_@K)Cg7&8jbRiFvtQrz-D*`iA=S@kl@Es+fzB6K^N6s(M%H@*`JD)3>ZXjzC|p zKb$)IgfsBBr+*3;&r2cg>gojg`uGew+N@0F9vvZ}6Pn5u3R9UB_Nt1@S2D*LHcP$3 zh45GMM|HB{J$(kmnp8zb=y}}z!c+C(S(`4~Pr7SBe9HDkP9oS;&*^3Wk zX3qEA%0r#@g!y>yVXXd&=ux@i+1~>_o%Cpy{&&e)|BJn@H@1)cVMi<~76}&VNHN^C(rcw}lUm2UwLTj5)J*79Ll0Et9&x23uIjd+ZRr z8#oExz4(^Rtt?EeTW`NfQdE4bH*VwM@uf4Esc4-)T`#e%-2_uMsT1!6#+UPhq%Em| z1>NB&iK_Y3gfx{!n@k$Ti}pp^K2{}odUJf3(}xeIt5Zw*TwSJ|3`baBcJburS&`KA zUj=We&JXw`+J~pcvd{O+s^T`aBy}f9O1HIW>8Z)wR8;0^UyBTBrv_$x_WEC%YIaeK`WjdN>6&&Q7t$8Ol^k9P$foLm(5(i76R$lSF zZuvNKur@Ou;KZNNek7x$3pLE;z8mqrF`uw6+nn366Wn_0_7I3|iBFm?=6z0)QMlr_ z-TkH2m8OO3NbQlEjX=*dKT%#4A4}7KMc)+^r3=+GY~W^#z8jpiEAj1gqdT!TH?Ibn zI{8m8;rB~Lh*2^X7kg?d^$>rGL;+#}5|GNjZjJ&gUm26XFBZmzUTvs;5c$2NtPZTg zoqs**vc3~9wA4T%baJs%=9O?w<0?qwyQsRJ=`c`CCSFD+&adn6sjJ$qVj^m4QaJYN6fi1%Ffx&yYMvZz!?NLm_OU1y%<)2Gt5h;J^4=fS1IbELHGWzV#A1dYBg&`CWo zJrf(^G^cwd7Rn_!Zw9yGd-`jWTGI1FP9AD35LYB)1eyF=*OeFNTVKfCWdoGd_f=e6 zBPG`FZM)_sqo77N?v=eEA2)hQ$rRiY`hSU8j$MA3Cy)MUCM;$Gh1S zB`ViRwHvL+W>PU(RXpD59*Vh(z>z#_)g`PuS2F`03UBCXH1&!b|NIe;h>%(TQ^I3r zVH1Qawzq#I_9Cxq)iKg-#3h%Gbs(c0UDOGgPWdUA7=?LYr)<`y$$!3OPS$Qu@Q~B{ z|E8a!DE>lm8`_EN{}qNGA7R*8Te)G6k{o=esycy%MNxk&G_18XCRdi?)4)JfiT>P# zO=J*%ymlp2-A~rRQ|rPur|!#le%C(%GtiXHS=%6lPB;$Dd#mi45~{oc{9s7mB^HctjHE2uC zGzQuil)1tGc0(|Z1xEJuHql$cruP34AI12+@*SJuw>o|6Dk~f5w%76SiJdR-{Ja5y zQ6y0~J6#R?=%lSp2wZ$Ufv@=%k)=*MWH_9@o!H@gv8oDH1%E6o5LkUTi?l}J+NMO) z^ywSR;t&YqLw+_8i;Y|c|6zu-jQ62-OW{LXbXwR<};+i=!? zH7Cc=E#`y{#aSyQHTA3miPYl3#Mch;c~#@LaS}i}Qj3YLe+wJqbEj%~r0tW})X@~J zbdgdOzu`E2g0ULf^27XmOQ!MU>)wI_;60~00-musfIIxT-(a@AhF~bl{gV@ihmE!M z_0~aSUQg~}AsrP%l^E}oc2xW^_S^>9PvtLPW))PGqh7B2ot=JKZHVmxT7B#MPN3Xr zBd}p^emUYBrK2K|{{8$l=5m9kUkLRNaG5jV4)ZGT>EZe*{hlMQRphNiYv+iWh&q;^ zJ(H3~j!z@TEVlFi*T+Bpossfc!Ap++-#ckANy^&INigKVgU)j&nGISlI!}|R)=ayH zntde1^GJGMZpX!KAGpFkb6VD&skQ0jwZ&vP9mLz(svA7JeJy8R(az1i&>vZjJX1s zb2R^OHktXH7DPl7Ch((Q{Oa00vxi0wwW8v^ps6YL`K36re!r1F`ybL%x1PhUF`2EU zR=Wyv1-!WM@KtsG2mzNtbu2Iv3#w zbK^b?ThyFfkbDHsnhO{kWGuID6MFyjTYs}NI+D|p6A2lU8aK;H`e`Jya6m6nvRLH& zw9ULKQL!p@)`{{|?`bNImT$edp!tcLwbhdG1Ei2f8dNL3ENtf;34AZD&yXFB$kUm# zk!l`dp_qmlSaOgg9ix@hb~6z@P4)kqQxpBmdZ7N>qQO`Xd-&~=FOVq2u~~sUW8dw1 zRX{Ob?TSH695A6z-Ue>mfY@-dsn=l!iOO@MBXT0DB}!gnNyT*%Ln4XvWg=7 zjA>^rUiFeNXQ|&xHc98bO2|~K2N1u~C}&XO$)H7TjMBsmlwLb;mOv1FtmU zMo&ihHop&nFAs zam7Be_zTe3pPsZ7uopD;GJ=s!4~fibZ1wC63F|n7HzF%^=%GN>q2v0Z6zkIrtv8yF zg`J&0W)El3U4wbTJpp9z&CDUB(N1axK5XCX3PZ5ID{E5u5cK4C3N!S`frq#)hTx0u z`+93_C%}foE?NZWW(3;Pyql5JO0HPX$HupTgLGg4@$=X!cm|Xzx6Kr;vLz|LjF?nM zZ*8jDzLW^DMhh$@X}XHHO=%9jCaICnpJ@)oN9G2M4Ga{kFr6BRjI{BhByKK#Au?OC z!>2eeoNs19RsdkMWo;E680PNFz@UF~5E4RvV5OdcXo?;A2RR#j~Vbh+1ZrRG377k80TSl z9q((B1U?dZrnh#~y|HqHQVigV0}YXmqy`_O~=ZbsZ$hGRIzTU5>7n7t9}^to|#cKv>y*-l@iYGQy#ml6uxOm8|h&v z?0yq5J-cQ=?sNLh)=YRxM_93@1&cj5ate)V5|rvk=xXRpa7mk;xL$znoea|Pr@j-1!y5q2N|E+SOF)zRh;|7_(5CXp2XezP83(k zh|Es5(WTI~hbD}3Tq(JV7VEADH4{C?YICCb#^~johP~N3xlS7<6zI1rObo!wU(b`j z_ZC>yuYe^6UMe^Zc5x;{LKu1Ro(YT@0S?fk9E~SA6l%T$-fE0T7f&u~nmoxfbqOkDzHQ^& zf}*@WH5>`6bbhZYa3M?@1F0Bbul;#2J^KScHVEb5M3k+1(}C+w4Sl#NHmHD#cSUyI za#`qVCO*rsMv*YrkA6=VC{+on(NOj?mWG3Eledfg9*>*|stqtK&W{sI_+4@hqK#CU zbFg5;9AI5oo{S8RjCrtJUE*%N>E)?NIm+04$bHvjWE1Q5`yC1&FEv=Iw==tpo|rgG zCjWqQMpai=+jOMpXH2d-Qjf{v%6V6bahE*(y^ECKmWx=Am{|e3diEWj>6pqmWP10Z zFSltRr1Svm(W+Zw)DCg^0TINAvm4384CAS~B>>$9@oQhGzKyHb_7oZN&Z-*s>^4eO z=r492=NYJ3kWrc?37V1 zEY=*yFEo@8^MkM$n)*-IDP3dR8q$y`oMZv@Mn)Px_F`P)Ek|k7TYn++vAfY^3H7?N zLTa?CW@;?!@h1xj5kBc;VK|gK2o`c~Oxx(SFC>@dVxrH}HO>`TWX|*Kgx|ypGiOpm zOC!9T1K|tJdYiV7ldiUU#GRnAQ71ZL@e8;>2;1x+ugm^KZ}c=hX=Hjn&7mSlrU7SS zwF(;Vfz`ovrxv`e5852+vfQ)`XYX2=)gO%pMcP$C1$=c+pu{UZO#;|bVbuKnTccOfjD_usD_*?xlztw+|C{hs|%4RbUjqk{Ln zO7u-o z`#rRPP|lUP&*~BtoK-UReRGv`Mu@d7AJ@(jWHRQw2IL0@M3{b4QB8ew#%=^#%~9NJ zys^Y2W@6=A$|+YN(`?3t?c3?iV_d+Hw`y?ad`FZrHzzhUe{UZEA$8C2!pNgrq%VW6 zlO@ikb5)#u;lN8}XIr~FtXebqhyu|#u(|k7TrABN_Ek;^uw;+LuU^2`%ePtYRa~4^ zZ$*kG*Qxft61|0`rm!Kl$iBF!nD$R*a7@t2>=*UX3Ta>ywd1;GU+HSIvE5Pl0LwOD z2k$mWb#6K})7G%T{qhUZjBHwAO_o{BD*>N}SeMmWT9V~_NlG0^SqIy435eqSL|BCV zd8efOyXDcK+fZq>XPCBBn(2?IWvzHlsCR{4Z&_`^7cH+Xa!APpo1EnbBCyxD576Om z``5{{D~)_fVWqz@{#ThpQ(z2E=>4C8jUd5iY>*Bb($L7u`~Yfj`#R;={JbbYBJL~W zh|eDi$aEyFwXXl}GG0xsl%U>WQy6j`wHNM>!PK~=7fzeRO5TJ0eNnD3Rm(x2N*4Mt z1J&oIL?$t0Odvo-MMa_6d%*6isymRZr!of2ZV#B|3_P?U?+8YuVFC^W)$(j;NJfs2 zoMQku+*XKEOHzPu=7mRhQ5w=K5ee~XBR24wz@?=nV(Odb@di(13UOe7)=TOO?x2yv zthjHa_Qg2D@_2&bfPSA z2_h5)M$^jzQ7YeQOaf~3v!V@WD%b&dD{53$?D!6ZJC_5;)!z}S-P3>NE}W^J$~7`f z3)WcKV4Z++1sQ(sqXKFg|m9?7-5J9BHqrAarXEzOl@T1;w|SE^a%%z58$WS}5dA7m6+N*m!8Wf(g%#WOCB$$HG3i*~^u&=p(yuD;?| zH4r;2!qet=D5L(S<>b63QTMUrApC1JBgCTpfbVrs`qy&Kes$aBlR0=&rGsPh=}Ml< zORUNw6gJh3%g#7CV$^)t^4dVIm0nz1sD<*`^{De1#zS3Zc)DwY_fH z^|WEtQxGPf9pNH-kRKB!EQ$-b3OCB4M4eI%CD#}9(q~FSl4N#Ff=o6*B)=9sQP52b zKZ*D*)Y+5n5?m563NmSMy?l@q465#Q5_***cBZ>Fxwt6q?VWSrm)zHNmvq|RUQV&~ zS?Kl9FZ9Xva*wu#-J&Ad_)IiPjC&wmtvISbd#0%l(tG^=M()&jjM4{$f|5Bi%_WfN zGd1b3)zD<%H)o}eC?Rx;Hlnu*q@jMD{L9PP3G>ai9u^uUp+$#Na;z8E1c%U@n`3FU z{kz>v<%8bfc;|uQ>bS&JyqB=BUNlt>4L6_qKliPbIPr=u)<_BnmFR463V8b&gxi*R zT{`2c*e*K{uOIZ~>o!4!b!%L~BZIf7wK*vQ!2e}4N7;{x-KTJiQ z<#_Gy1alBF+Mo*U$ITfFvR^9xE`lj_2*HmqA)63n3jVkYI0=P=3a2S6|FnM#VM*YE z;3MRPcCr27Knwp`arR)&DGCmEA}|J-7g z@@Twv9W}4h=7}GPk89YOYMXEBa|&)y50Mmi!_FKYeA6Q5u&TIt@7_^^4s~&!+1&9j zI%#x!Wu}rUc-)YOfqEOwpDnCH&$%o$0t=)Cd>>W5qw!%hTztN3d`VJhrf~AjuC>qn zSnX!7a4|{!PHA5P6B7XePH1iG?<4JR>tz)YA~Sq%c4CzqmQ@jPtxJT5z>4gDAXUo?L6{y|ZxW5W+}qJcgO4X{t*zkJI*y z>@?b2l%ULjdUHdS#Nf+da)jxwhR&Z@kzFbn6rCIAyPvGt?U8i#$v~fl^20u*q6Omz zATw7Zn)`b>ysheSSJ!f)AaOwVPAi_ziap>?S?Y%oGP-@je~^Om2BXMIhc8W%_W^MS=U za8U5SpbZcVp}>4RW)z_zw?TmqXzv$Udz2u_lHfn5qc4vin|&$sb-$pdWy3<4K=sF+ z<-U8=tmfVPWxQK-VdFkufPO!F%DrC}w^n9p8OQ%sOHdX? zovO1lptv6uzUy#%1Lo)Mib_fH9V>|%^s81R3E1f)^po7_^PqwL1xsRAFxm!cYk&;0 zL~P**`t9W8q*UhN-0ydzye%W~vbx%pMfOC5np4Z#a^LvXB}Vxdg#_;G1zOH~f4?Iy zg_N^=HPHIzctiGXm@=AQRUT7jMhG$V8N*WEM`*sT(PB%+k>wmvD1iBGUgm&IOVKc| z%ejhR(5{CP{czSkje`RTk#2DRgz$to-|?J(eQ9?e@L zdU&@_qsX^r&ORXrnuKO1Lw(Xe3oqZdA^JN>ydp2MUGe&uYa=XXT6(1%wN-1&o$lVjWj6DTdk{$`u#J2lRf zU=r|W*a8M7Ubt4oBwP$bU;M6drLDP(zX0~&ewXH8_?*81+SY8lUzWqwotD$)8)02( z<+oOdan3_^$859GNM`uw_M4BGVgp~lfFYv-M z=|_hQRoDouSa1b=JJh|maI*zVG@{z#I^y=+ftUplphCA4z4jX}epz7gLSe=@!$I3<7i1HoNjEqCgb>p5C2{Pq%3-ie?2q8Sm7xxID9}uU6ox3?uA6><+yD{UJP|+=27Mr zKQoioi7*NhXq&P%&R=NRNe*3z!A9Fs1m;z|`nqrAyxu2i;kz5%zJ>U(8lRqoHl6bacs^eN2^^@sE)sRQ?KEIikm7j|8^_Gfq! z1EX@#O5abpX#Rg(y=7Ef+tM{0yz#~f+PDRGcXxM(V8PuzSg_z0BxvLA5+o4Z3GS{5 z?q756J%q{PK-GgXU6y|B8dm zX;r}&94lP3>Xj`s6qd>$bwbk@YcaVb*D6KsBn^>O?EfOfW$K=QRoD{Yj>Z*&fVS){X{NeV$`Siwm?yU=$!vad8sx&tlHf{k$-ke1r;BReZ=%l+n*rAFuX(t-TnWprOKD#TEBkM=T1^ zTGbH_M!WA@ykkEf`(+~TKG?EgH?T=W+ZSp8#NZD2_)tZrF!Jok270F_Uyt) zn-kKi%4&V^?F**Ohx8LVGakEO7 zb!Gi$oBp#~Bcp>7+*LOdLm`1RK>-#V&A=1Ylmpf^O-MN(@w%2^tNq#q7i>Wm#PTcl zk-o+v7Ng3zbjtjdxr>z<_FV%s_%qfg@iQ;x%XD>2VJtwD$_GC?ozG1>PP*e60wO=Y|eYWcSz2 z-x!S~ZOPUY&a1r(`N6FS6na4RN7%Nk=!5U^Zd1Abw?4zB@1Rl#HJQ~-;me$JJKA$e zQDBK>$ThP4OMmzAo_koEwFj+j%YlEN?+5B(gxTW*3O~G*XqY%-H}>f8lzjfxJ($sR zWV}INbvq{oV$Ew2cZQ@UHz)Q#nTns{=U&SfZg&X<>*N=qg6Xo6*^pa*xEb+= zaUWqrTO(T%tGdlmJ_N-BGUh(pYXmcz)hU_py77eqxOb*6AKfGA!3le=ksk&3X|mMt z$vbdxqYC?2V^QZDH8pck3eYyIgJy{wj=W}M=c9@Ax{r&t=BNF`R##>>Wjr%o*e0X~=zI$IE`l>Z>zz)cNwlIv1{mu@wdP5A6Oec7xoEeMk=yt zDM9$(tPeq?xKL!ry}jg+yAMS{i-5epl%KqvQ#y)|ync~rKj6W_1`EPw>KwAMV(>Qq zHX7-#*3{IV-U`V_lJh&C@}1pDG@75obpZ&eHu)N2$oq7kQMnPqVkzvRiK`-`;f3p= z|Jv-OOKNaId44Ks7FO9eBLxTmEdhzA2Ol)NczD*AnR95`Iy=NAcjq*a;K&(HwTPGq zj9G=aeJ|@uC)&lin82!9T2ke9z5~#iS%j@U61fC0fhrr&H?fX>sh2~Q)7|&nj^(G5 z!WShV;oQsPdmYpCzUNf>UD6@yJNus^`-xe`I_fxpox~C1#sDcCrhq(E2v!M($99L`tL~>-BF3E? z$63*osiKWqvAt}?#P`uC*Z{1f$jo7P1d@zMbJLVM-#6hxDMf|%$KAohxk(igGnDJC z4+cKPm61Z1d9eY<=LqSA`bBhA?;aHvXl%w>#d7Idl>{a4ueRN}pVNPl0I5kPj8p+( zWS{kX+jF=KD^ASS>dMQ%l-HkyUluU->La%tF%-Ic(}zvxV@Jq24~FG&DNg6hAw){i zJ{E*GA6=3&2B)aetvTjJw&f&=&Kh=1DkiD3Cl+_L2in+J=C(Q9ZjfoKXjo>t5<(lV zls9cj76tj`m4|#gsGCt=ExJlV$2&Y{djDe6i`H-S!2>88A*9kEg*8xnMQ8s%&j;Z{ zwrR+p1je_biVS+ZlG8=$luk^IrvZfuV!FXEB2k^`xN)+&czo9x*YCy*atl4EPvXoT zWdyXw$gCF0BRWEUPtPyS4~H!#&^!FujDU&OP~EJlV5^!~FFYNyZ|ex^MfPxcT$!C# zldlR2op0j7OJ^1_%uaHca-eZ}U#M?rNPNp(g(P&)i|O;hR~8YATj^n2xNY=unc@gI z9mAqcyKIoHJ$}BvCt!uPi!4JzWM}s&&-mdAkFKUueBJ-K9qa|WG>Ewd9*l3|C_hT( zLzf`NlO1w{+$pXhk%RX7g)8^)P*QT9nA14h`-@za2udB=ErnC~+}ykxXM}HGU7f4V zct(3U%0QQW*DYWB5-(*|N|1pUTrr|W#qCX#D&)K%u=Z{Mk2H_JdH>*SwG-TAja**3 z;dK5I8s+%C@d@XxntI!du)!)2M2aja(e&o_mH-V+O(&)-lW^%___W}+0Q(#GPIi0q zVoGP|iw0km?QB%TS2G5@bC$myHst8w!lELoA~ynJ;$@0I>7X(&xUj1dGt+W+`BXMc zj=;26Zc3|JYFARLjq{tb<5+vT#`0b-=Ka-y`EEm9_V-!$*zE1IRZquKx&uF#W1?@! z;o0$*e|YE9aNZ+4;hix&H5hZHzHVj@gXyWAZ4YlEJb!7a70L+g6kYNNMn6rR#z!aV zYFYu^`DsE*VGfZxwpyF>KZ(;`J@}XnG3KCSEDW9Al$z1?yNl%&66fsK{3amOw%~MO zKk|!GiAYULQ#DtI$r&N}9+QImfX*GmE6|?vIYNpyLi{@+VY$W+;Ev4G%06Fddr8PQ z@8ZOlMaO5*frrSM*#DE~c?cj7iWpUxS07@|xS*gEQvCcKAQr^3GZ8^KDeh6Db148= z(M$=spMmKwF|92y*h)1r`Jo^GB7@lybfD0_+glH90rk-H*%(~{gM)rpef02XIzsmT z>*8W?RU7ZF+B6^+c!9v4?KuHxk>sHRd?#YsFtvg+vJ6+h-oAd&_yM>JPpfj#H!xFA z(N;y-7|#)Gi`2WrzF>Pa{4j<6BW&Ci%nI;3x3!q4lxdncWeo%;-s? z5OML5=!)gFoBDN+8(-#*_OARm>ei*&^nZwtf07Cj3B*y+;&Za;AZ{rw(PNupydDq8 z&t?KxP(lxt?K<_Rk}}L;UD-ckvQcWdgZdz_u(kJCYZMj@fW6ZTV}tM&4t9BRk}^kl zeE_Kqr*3|4S}7$rMpTE+u`~T;Gh)WASSTi-wK+)0ApJW6$w6^rqdU`+%0So%T10)D zhSw(u#)*#p5`uLw@kvv_>bVc`rz9<7DoccUjtVD7;^(f!ax@9zWaE#$Y>C^2ZOmb+ zFpqudRii%XuIPLS68i3qG2`D(HxlMH^Y-YO$&Asl0bFpMlkixLpf2@KGt#7cY@|F#h@Ss7q z^9#h_8Zo|cgRuQ;9zim}VpVl@=_KQX z-?g$LIy6a;IAE=v?SntVOP6*#eyi%_mR%gMoYjv7H$mZm?|vXOXMl+IofagE68btW z_-F;{D;nI=tZi&;wC-=>P^4rKKxBXTWF?5JFlvMW>p@OG|&3v!qA96rw{y&JZPRU1>uyGG$@ez26X?r`Jpva%7g5h7G^M z&7EhH?q+gPFP3MFnv>hHG_UaQYGF-DU96`$d;18#@_=0vQ&lKbSFYgTUvLB-A7@TZ zh!%PK=K##H_Gk{bMsSOa)wO8QG%?RI4Pr`=Mh@Mk`z@YY2dh@v zWM5ypUlCDb6-x_%oK(73?D2EpYf^Nc!_fE4DIe34Uinm$Iy1!aj;+5e7ku4c4`7kU zIwPt}(WVOlf*b3te9LNT5-#U)B*Ml%vR5Gx1j&fw=yZ1dy6owaSPXm#3x64z(9zXx z{pN(pqAEmEOsetZ&V#8wfP2(NTovt$Eq>S7N%_Rd%)l5U(?iDb{zycl)X>my`>{BT z0oUprN0hgR?g@}aON53mhXx^h{zF~TkOW`&++hjZXXHVam53Yq?t1lbMZkgE!Vh8- z9(Y(F{k}yfqtQ@0OF6q`0 z{+*Q#a1G9Gwz-3|XUAW*s;y`-sK&-w-#zHLl@_Vq3z4f5``KXqxS;>BFwiY`&r(3XGo6 z@A2Xe{clOqjVx#jGs8p$f4~eRJSsuli-O^h4j{~C?L~A%Wu|XbHx~~DbMdjWx64P1 z+&2xSm?f@{59F4)r|i-zlgJcCkhYbAySE}R(90_ml2B~vh-M0x#H~mR*PpKgr6vUL zRj0{nE+A)%waeB;mhM`&Xi)YyG{+>+dns7C9;W3h%uzaU(*a^rNZIk^@3-SVJj9>- z9_+FTSHf>0S89Zo9Fl4XDRPMJ{$>$Nbao`3e^Na&c2~S7n43+8cQ+o9lyzy2m8*St zx3slJK5n48peDZWuX`0KxEyS_1&*U$c}M> zg`Fo>GuZ-M{3;6(`APOp4IxDpb-DUU_9iS~Pn*$s(GUxRspy#ui8*QZv@7UK7x2QlK*L9%oGe#2`XwX4f)%g1E0}*`e?;H#N8n0 z-t_!>i6Kv$=kGJ{|$mDANE##>H!CF9J5AuM>6x;uFn zExJ|UEh+i_`Zhj-SKR~gUsnq0F$Dta&R9x+@xGag5>{x*tf(Vo!+1A-Hb46VBssnh z4I13urM%rm)TS7K?uq4&pyj5yA^Oy1zux8G>!XLWi7z*uPc|zVr8ajMoS5bi)2Ge4 zRwS>D^J@TyddR#{b+vC|YHuh)Vg&yFp!{ryWzn5_Fhp}CQ)Wi~>hx+~Mb?HP)`9O( z`1KBzp0U}ri!Y6Q75I~%m$y^CXHx(e5FQTK{@4&WmHM%OseyP8rk9;4F5iB}x&8b1 zMDfp7Uylf|6C-{AVC@R+iku_1K`NrZF}%}1)lWszq&?Lq&ZvKh|NFQJo#g(>wMwvH zd_0WwO!fbPNHRpwnDALVABt!o+b0q#*rz?b?PSsI^WH&J@hBi7##C=w0+JBTL`3k? zBJ*w3GDqVaCx`t`T6aV~9f)DIiP1#!N|2{l%y+a5Rahta?Wr?QRzKZ1(l>tf7Rc!d z^z{yhCS=&*N~Emfcbq)hh?uPcq+55guX6LtueCeQOm~)Z@Co&qHn9(TCUB>u;3Ve| zKZPOz+Jl6fCQZJ4VbR@@P$x^qFkr=!#>gz(bs#>=8WM2dq~;T}-$6m~JjwH~HDZwb z?R?-NE-u)~TO;>8vaH(v0;$X{+Ia067*2SkZ>)?9V|$lM_kW50>m!hNMTcOZtv-3Z zHzpkeqm-UQ$iv`_(Pe!i)UBUs*A4Q`At3DVF=0xH?%)A4pwDY`|B~K4Y0y0E6dheT zT#$IUUZU(MuXuQ@HX;6l#xlM_2xy%K#kTmGP?+rYw-G)yprch^yR}AK2k-XOjd85( za}Mwod^{QF;tKsz@-WDS%1{KfY@6L zJT>F`c_xa6-Ng<@7*DQDhDk~QXl9+8OoFH&LU3NxAyk8=BL9F&&g>kBCUJyURZiXBeXieuM2TV-^xYmG?a#X6m&$@md-Eee9DRRrNkDl8Yn^4JJq;bkn)o#=PA1GarVNX=d19d_&wrZ4;Gx@r_p)n67tbGKp!h#EnnwG2|^ zTk@o3(9yteVq}>lt0^k-&@+x9>O#Vl!SYmD+O+)DRCKDOR@-u2X-I?O~69Hqa`;0}a$|cEV;>ze$DM z$!13OLA>&y{&#-D$aurPkPI}PdJgjj29 z8FlHqLF*i@cx*n!x#tdS6_n&U6qbAgm#nQt>nO|nw8!B2%HZ9~JeZim4{biqYU)Vx zdmE%QU;3rv{yBxdx2ngP!V)aHiiyX+KmM$6o@QgL+E3(mdWwn^Q)Fp1E6Qo3-J&iU zYk8`nt3uk?Nre3`qI#ngdjn&Z`I+qg!JU-YPy&=boj*fO#rRXlA+83Z09rd#<$sWO zDw@*Z>$+P)a(8P|^|%*+j3$^mI-*a~B+1Np-+umc&d`%1Dx7$Y5nX$fG2oa}| z&CYJJRb_a(Q=2;YofpT{b^3Z^ybfAJ-R4LxNO9}pSgFcMyQ1-h@r&CKpyMVnY&RV0 zelK{sLUmTc&znw!M2mkE0|^i{XN5d4VLBG_N&jaNl5%KV+*C8W50!5Sv!86k%>lEQ zQQaOgOo*syzfeFco)L|ymX9$8GS6jb`{o2wY08g)D3g-%KKC1!P`8LeaK|#@iHf>9 zDnl$0!dLa7LHNI;hi-Lx%zgk<4$`YyNb~l(?sbk)tBu0}$n%hH)aGr}+PcZmjEjv; zTQ{!q`+XRJ%Uor(r1tS)7lx2cLXcf_-V7{hs*fR-C#~G3+vi)=TfDZXhlN|f%%pkQ z8oa9Zx{5S}JT3G&@ZaWLdx|3$kNN9D7m(>`?5UxWpjwwIztScuY( zfANhZ4G|Foia3;f8h56AYp<4I1!FR?K!u>B&|ul`#^b4}CM58AtsU;}6T9O38*hB{B{RN#6<#z#j5O0g9Orkan29JCw6dY3#w}u_W@)~$ zVKVf7UdSi%UJLO-*_)eCbVC{B0;LJ8^oNcg-uTzGUTIXiM&Qxa;B^Ds7b!4A47?ZJNG1mb5X|1REJ4=rPMhx1W1O0^`kl>v2jP1ILP@{#?5p`zqTdwq-Ym z(}p2vJMaKLNwz?1z>NM80zK5jqI^_=S6ffQ3DWK3g}P<0!)5K^kQbVsPl`z1eNyrx&1B| z`r=x!3z|*;@Zo}U|I(S5#fVx*TAISJ-GiOcu(F&%_^UCfhIu`w*f}kH&j6tt&(}vs zlaKSe4F8G{9+Ml^1;!hHHY#pX?-)}Y$e}#29rZf(;c^lf4;OqT2`R>}I=QwoKu+Ws zB2_eRK$9m2kWDv{PY{zOG-aV#hz`h;Sd3c-UWRlPc-s%Tqs| zV|wI=saFVz81CFUmhY(`N>emDRn*mm%=xOjJ>KNmmj41f$<@dEJ$d_Vspo!~!+|!v z4Sao>xw>c0j`c!=WJmATRj%-CJG8D~mKjYG)--GQ-Id~z#`w~i{dW^O03OAa!#}~| zZQxUSh8Ubyd}Rl&Sn0a7o=1>7u|{rU#n%+)Hl3f3=H(ox3|}B^bVs}LebU8L&r2d` ztS~qT^rKVj==864>TkVyrXMNI8F>ShGQ7~=?%!>Ozs_8|;Jz8?NKu*A|1d?(dqWySZc-Zug`78g?@&40`PwOPgRBjt2;PKjpYHw=9J%!iJCtg?7G z`7!JV=BZ`Bo%IG%!|0t9Iis@>ivQCZp3l&^`xH8p^5jU`ZM0S?{NFc0(KIF$_Qc`Q zC-NOjoPW$I_O`RyNVZ}@PG%U^`^L+;es$kINopzCuF9|9E3HT6lq0a_FpM$hXg@*HPIhix;~cM zRej$N{NpM?r2YLD9}zc}o1SyTvx-K@$y^xGjU-!xv!g~?pCIGzl?OyXP@U+P`V2|h zBGHk9RzW}y7j6LbVFZNsJM>iSrx4wcAfH?_D&E^&St*E(-7tPo-U+i*gM1&-Wejs{ zN_{`vR)e~=qN}g})3#Aja@OXnlBe_WG&ZAB<;;nf7hJXj-h@jijyui(Cr5oPzMI~J z`E^HkW|hVD)a=0zxrV$X@9pdJC*nD-`RSF}0Lib^*J2YZC~n`NB9GjjSO|8VkA&oN;0m0SsKh^M8ow8fNofZ5n#$d$sIg!a$_O#@~TUP}iD&aIT@>=x!9{3;q0d1C4qGZLRb0sn#J zrmilgN^rN-rE#|>c_ZDlP@gP1Y+O_om4fa-KjUR>QO5D7qf^*xI8F1?}v8;|+MNi-pYr$auzc$2;_WQ79{uXeFQHHT5F z_2^524n@SO%j``pNx%EdTq1^6R)rm2xo}CDp{^oo1gpGi^^DtCJm10+6Co$pyoycZ zPMQ#Xs!JCr0RStZn+CuxdgHwRE4PV64i@PtU5ic<`56=z^%0=FbI|X9zfzEsRAH{K zZ*X|s)qNqjibARAFutZO5a!0kG3#0zNnE5cQ%L+yQixCEP%5C^Vie9IcBVBM7@j?~ z@NKE8rZiIg16C4YC4{PZbg@vlEAQGb==AhB!&)jr-&5C@MmBu)=oYeHuOq8bz$0NQ z`D4$`_~*H^;}f>s;=)A&|5an(V{ut+w9nGGnz|xZr}Mo#L52eQ*T)2P`Q;g)UbS$^ z^t`O|hf1K=?u4U?zN7fk(?zn@MkISk4=V^X+-CmH@bmv5J=9j%{Fo@qEQDCJH-|yb z@?vDPrwmtE;x<9ySFyoqo&756Fu?K@teEgYfFl{_{zxPp1dA&lCJ~ZNPdikin8tAE z`Xily*+AJ>_DAq#eetqz+Ybg7{g`2E* z$`e5M@N3PvOlK#=vBN_Z#^T=vUB*X4d{jga1hO#HGk|v%`*-np3;{v-f9wh8^jTd6 zG#p%t)a=_SiO&}x%0dqVdEyXcOG6{0HRo36QfF?%tl8DoI>H-0t>}b)Og%$=?VZ(p zKEZz3OzTU8r|2+2Tb;r)=8fB_xCKeLA{^ETJ&)PnhrHBZw9_jD^a+Sk{UghWm+8C$ zH=fP7HVVf66er`YVs&UYzaJ zrr5@mUyzlhpV!o+MPF{Gl3xw*4d(1?cY2fA#m3s3Yh4L!A_a2NYGb24m{O;V;_)ny<3Ff5A z-%@Y}+0bwXUoEvARw+CBzsA2?vr<_I2iqqJyBtY-ZN?bqfs3h+d|#0a1CP~?h!ZgW zX~xKaAiY*9pu(Ztf0kuqhwMV3Jf)cHiKFckHV%(ByFl0b)>V?DBirI1KcWmRRroO7 zLCK>>LX_vyMT$VO3==?bqo&66J)V%_e6LvBLtmP8L$@;Bahxw&6y@oP!t9SPLTR&n zRm73}F#}?>4W`tvszq0~#+?!#RXY4cRs(u--UQE6M|_w51m(W8w41+br#7ZL_$l{-@OKk9up7K~sXlJ(p zu7x7NXBk2@l+-as-(`+A@dlIhta8ELcSc$aeVg z0x^A?q=%EoR*C=e$!&coO=k#}8fCcMV&9tmF=5obvI?17%HIz0c{Gg~o>(m066nsd zGP8-|&%{iaU;E%sSe0`k?+B}c`0zJ5=>ld}w)s!Kv)+(X(TQxg6q_*QB_dIwRObgi zCpBRHhlk)P0zCDxXvnAp?Goz;R3||TlHBBsD~>;ZOmGH4UjU=PHKF2I?KAxWVYEz4 z#YXpVE)ag6=7VhWF-U7v_dXPj=oKFP!}c%SEhCE*&hLQ?o4*bYrH}XnRB`;UTm))* zi*TY>LoBrcoTNc|!C1 za9YX>Yz#=u)=EqLeMxS`T@d+bX-KwT3bVKLw-WA1NT~#rs2eL?6ui87H^&wLULhf%Jq(r#JjB?{S=;$LEbeDA3_(B*X zT9zEArE7}pf-Gsr+B`SMsX6A+*P4$czhN{^8QPts9;1N0t45LJ5y4v8n?S=ly;2+K z<72~(f)`GQEjna7qR_zjt$gvSgW2FfOM*CVlPOMWGGk)l*em`66C;C}x|lg9eVqb7 z?DQoC->C^3|Lmo;AZISa_kAM)t2M@B$UpC-0Fc2yVTEGuL;6oEsE`IaoY;!48Jse| z{urQx@TUj)uek8tXM49{&yc*(0XaX>&6&By{`?x>;am+-K%FV1K(DV}s;;cOqHMqL z1INH_2(7xcY5-2usgOB-!EQrq-;P?apOv9XLR&e9FANM^rx&ZMeWEJmH1}UG$eHnW zl3YxOS9Yc_DO?Y|`5LmCpt*vsshPsT$@yJ?p1HXUsWrk`c{@}nD--;yc09#{isObw zWtdl1?A>|jwp>X8ig)nq50BFRwItdnvZuKAD3IxbTfpsD9 zNnR>!sQT>E!Sqom($9#rgm#%M0fuE~{AhHnU;=k{65TMMZ9m0{aH9Y*L`Rk{`}9j6Z91vrdc&tiwbxov*Re`R5bD`>n`gf4({mF74h z9ZE$JcWC$7&P&As{B_H3cw|Iy)*T){GrgB@i0+H-D2}DJPGx$jfX@LxZxanOxU5Vo zoZn5T@8?gSHg`J{PaQ~!ICkbRSZ8KZpT}ZjSGjKx#D3LZA|%V+2gAY2fh&(UEd`Vz zfEHfgppmE0{?XZ$(ZH&tHV8<|CGPhBT1@GR0n0`JY3#5){EfQ&Cz=DGqojJ=_fh9| zZ~n^tuKH6Gr=7DdO{H*ritR$eUrqCAd8Y1?mNMr(1vaJ*+iv~Lpea#~3_maVZ&UhlPMTMPe{^@=tlALhZ$+Qk< z1?`@Xqv}X{-1~eee84{VpD<{`*O$5Z4`=MN-kapBtxrsbftRQF#hX1hr!3uAyuF$5pRsJ7m6q&||l$bsY&Zi9S9H>UDvgLy?wj{sn>+Ab4;lO_o zpT3tDo7sA)2!n%7Y#poDrRQzbc1oX*FU!kMu}$XbpK(-|w)>b@9h#AXbFvNcUYBy^ zaraU#heI#Zb07z4_%DY(rL`8PIO<))Ps?;Gi*DKT#03OG=VX2=IIA-|%3?(-#NQ?` z{ZmRCGXX^!NKz=zV;$sAzXOeVQQy&#EcH~BY-m!t4}|6yv=8f}J{mU9CYDD_DmJpM ztS%0*`i5J_q`Dy|93i$Ly$v7CB(a*mk(BhtwWebvKw}O1L0NeH2fGK4N}8-#g{23p zgcKlHKxvrVe0_qUxt8CL8lO80FD3R8%j77nnM_04Z81y}R`jr~$>fkJ5 zpE3;<2W7D#NuFQ<>qFZXynJw|slT6K%)B3*!W#Bj+luP@ylMfh!n4KIocA5jbu#Pm zE%USz!QkdU*j!Ou&&@0RSF4rJM?{KCrYEb>bq4OZVK>f8n0UdE^0PpzYGr9%SV;x7 zeeg@oLMVMV$^3cIA)Wit(-ytrdZ(yyVu(*i1EH z?cWAu@ZDQa=_&o!dq}lHaS?8nbs*;Z-g4h^#uz-%GWzcPpO5OC1YnLAkQxV zK0P5t362a!^+LJW-#qIFEUK3V}*{U;6;fQNEYx}t$QAhE&^*by_e6&PK zvP^sX6f3-}_mi0J&!XgJYgrZGk$Qpw6?z8O1LNoN2^TnZ2LJ2wb7>+uES}dLEXJ$r z^Z3agi;wiDV#sn~UFfRbJeqR+s7*J)I#l4~<|prW1EhbCsrvA+lYeh@8D<$w@kz<2 zE}`{>Mo!#1PGeavHk_;#3#1|o%%@AAD;KR>8Gmt-W&gL529-gyCro7*a{D17witJP z>s|>$e^hW9HFniK-Jza;R2#}v!mwpR!c>^#JM<$^Yyv-WA@ScOn?BZ}t{Ae393h&F zk+n4~aCLc}JvGPL!;7E~q_mx^l$Rm_Tg2I&wU?JKcC@ymp^W`LB?0J`ee?^at5Hl1 z_8J?J@6L8tktT!1{tVOsMiUY;xi~mXon(hDEe)fE?Zg`s4C@r2!BLT8G(7m1YC3FU zS0jWZ1;Im(UxAnKfL^sbZC@YyTHy$5=q#l)CB>NfI^?*ylRq~B)PW`3 zP3D4{OaCVzDM5qa)tokYCM=;cKm#}SG?z9{zuio|V);{zR&uVm;276YF5o4^PmMLf z8xcAqD2N*K!pW%LdjLrC*+06b-ik`n5(}BBv(vtzp{3A8p3F~W`NYdM#TAjM2=c`e$>hj3JSUS&!oIUk0z}DA1 zGBZ9jQj?{$l@)^*q9H*S$;Ghn4?~k zP+P9v+N5t_a0&p>O`A$n&c=hi0RsG6#Bh4b#mmKJPem#1AU;55LX83j%kfCem$;OR zo+f>%X^}}eTjFg>q1#E1G?ELfr5WlzWz= z!eWw<-S=q6(Jeui4@&lVzQ&M5a`)gWTC2tW5_vm`MzcQytMfrTb3GLFK#mhOmQ;R?q%eKEL5VH8gP zky{qqJ%2&*O>zDIlVAsh zqlUm7`k|MIG+7wrsCZQypE6EIfR!z)4JfG4wFZffSeCD}uU9i14j*)6Lcx7ID>^sl zfm8$LNui|i6NxnCdmqVHJ}0O9gbwCw_peq7qptOs{$ip48$gvEgD$aZ8l`vX3v68j zZV{as5$tuudQmN-1d1^X>+yUEpr|lj%57@$(K9g6+Pv|}_14u%P*!JnoGY~sUET_~ zYPiS#pJEO+*!&GN{3pqL4SqN4Zk)>nXe-GL;CL@CllumeC1A%rbMg@;vP;s|@5mG< z#+(9J-O?rR;Xna(*52OX0r$Zqd?SUcx790o=PNP_LpdJpO-%~BtT3`xXr6O}Gp12u z2#NISFY&MYj9@#u;#fgzTXA8UF8pCxiu$e`CP|WBbKLH&g%$ii*-2#YA9n zURg*|!VKwIe>rH^FxHfQ7XL2#%*%Bn6O3*TH>>us#JOrGG6V@Uk10xUVBoarq6NpB zv`0Af-HHh==4jN?oN4((*da)tus=Oqdb7yHDn z*EDT%wD?|3m5QS+3Jk*G|L)7ThYT`o-1)M-o`P{UM6t{S?S)@mRw>kqm7IYH{XV*9 z_5|9n)tw!DTfIhDvi_14m}eK7#L-68fx|QD1rG38v3~?5znOaDn&M`hFE)ly6J6*Usqc)FJ0@l9Yq@C?k zOk`(7Dl~MrG>gn`2Jpu{GA#Ltto#tx*M;)t_HW3+>7pINEf+S8jlGt0k8owlRe_mm z@AxoKD(0MM|8L&dXaNE(SDndn`<;a~lNGI888s3t^Up8vT71{8%C*w^4|AidVlpr0 zcTI5PJ~}Jik&iF_AY+!H73AR|sf{IiJ1ub~Ey7^CRcVxQCdXDJCevi|q;dtR`zirf7V+=xUa>s!=r(E-EcsntBz$E>D^_Ls z|9u+;sF;%zp4mO>;T?~HN#^62+-l7^%O(FB`SlU+5nyr2`a-DZxdsP)RRwRY_libl@c;CyHA36 ziAXCL|5t?0?d?^=8P@=3kGovaS5_JtPfx#2Ot3)TD{_WITb@LrFPZM8c*|+=ND+Nw z2!|3vc|}ED);YR5S~-1tyMAw*hJo3(%4Wu@If%5c?AU{FDEfcQBoRM!?+(!;l}rW9 zb{8?hX0&xpWrqR5=<4f$U@e85W0?e~`=^+#2b2=%F!`q7OT8?A(Jq`>i|GcVK9Bi;xghjyvk!io= z;V4awOB05L&d(-G+NIW*f9%DELtLW&k_UJ9&GuSPNr|g`Y^9;;W9id$xQZP9?-f;9 zXQAEQQ*CW(moL`-o1G=DJDXh%i@jKTQx7sbwWtvoZEYYlw8 z%R^{R~+|z%n+se;MT5Hj z5-O|u`u3f<3A=2PyK^?qJVb|n^W$j|6JX&eKUNCaa`D`%Bmb9&%6=*r2tL@2zhhpA3X1~Ni z21l8Gk|imxdK6)z;$*tO7;>;qlo`WU?P z#8-O9y4=}-l$*hBy8Is4xg#UQ!NvVrIfSdB)0>Gtr@a@^X)BY!?vQgH<;J#R;JTU%E87~>7nfuS;4h1A263AL@odS_^U8%9oMQp>ubNiugMo7m;6VW z`k~>a$1SJAxSgFAj2>~=ugVi+l|TKfvJ<)h8&LVh#hC`#(pDZGR2AQqg`a6VpKlOM z<9{hZ{^k%7>@dl2$;wZGI_1;^M@AnZ4nHmt-ISc1NAE?g(gJ7pA})1FI= zSm6*7YCRXsJJ%%^3QTStY5gy!64GNMYGP$|FQeY+Viz>-*(`NxeooU`I<~VRDuaG!h^WhS#ulOj`2x$ zyjkD)&A*>_vMbeRmt#p7+1ocBmA1FX^cfmioYN8z06?R{Y}*};dQ3l{LWyo|d4 zVe8>1zG)lw?M(Y3xKti;tX%@3N=Y)AZwhQFcnJ(EpE2VPc@Unv`Z#|G zrhS-38`g0B^A(~rqc({(2*18=%-(j6So1yq9Aa(jA99oAC_Vd!?p)q$yl`Sq;uBFmtYyJ(Msl&&kFe+s#ZPJUxUGX4OeQ>EDes3QGWl8Oro9Cgh%b<07V&jB0=ne)P=Bihoc~M^sa#M5C^T)bS<+zTST;FReNKoDlH<8@_Ua z67li!^)VlQjw&t-(f3)rO4Y>dl{epi=uN2nUzV~E9zxlvg}Um+s*RYk$v?e=so&pK z@icso3TY79Bxqp?hL0a045X&=Rl&F5UWFUrW#SWYh!rZ439wndo%fjZK8&2V{;P&< zqlZ$DOa+9TiVp_LhrgfG^~B~K#Hi3PQXL;)xr2;^Foq1%rfRdbl}q7&xKwzAUq{t6 ztO?Q4HkgxdK%k3=&If_=dizFfcMWnY#{aTm==?OzbBNC>F2;4gmDYRNe!wKiwF;qB zV4gu#`x}1fOuZcJ8{Vmxi;)%o)6f2w+4>tbk7GFbv%0{OhV?=b^;4zc{Q0<^{Upj+YExt&*q? zLZ*m}Pvx5DyAA~0#n9L8O*Bn4)!YYYyZ0jRhM1;^GwG zEGN^3{O7D@Rn(itL*C1(yz7Ok_rh^-rwSKR?(S50`@b1LKt@=uAL2BP{5u2^fJ<4H zm8AKtcdgBrLxVVR%r~=13ucx$rSTs+PE9oFP`vL8cGLPhN#k_-_QR9Tp%iEHnRC(4 zL!UoSV2AY|J$?2v)?C=&57j9ETHD#?4KfMH$(J)+ZF{cCX*5sA|7TTb1T z>d!xy7sj&c0(yZxc#aeEsl(6HGe3m&9nD(uU@NrHOk?c z?QYG)fbVFEiL3&;@%IQS;PN#=l@sSM*Pi{&%ab^`+L*1gz(SU8qB(soA=1>T|HlR~ zDN=zpF^WPzzOWH$Q>4OHFr8X2gN{J@u!bg%LOAA?x|Mq5Ltby6bm+`Akn*+1)xr6T zEh_|+C)iNy=$Ru<6`ruc1Qs>q;yT5~5-n}?@3K#G8y^nu8<`tLtGzaAu4Xe6fdCgw zE!Ze$(CVs^AAO0Aj8;ljHMzfSKB=LhNCUdTz=(WnW zLiOCcc|CDV0Qb;X;d7wN@b!MVRWgkCzp=|^EA+&&vV5HeEf*u;) z)9P0JaR|ePOLWie@db;@iV7aN^72a60wcMYt0bf)MlDc~VFT%>_EL~23gA^HR#fD% z=o|g9Z^(VxGPyW2h;8o1*;-J=nDO2Z`F7Bz7Ssu2R9fJ|)y2(Hq29Y6_aHK}!1FC|S2g$)Yo3OF46jUX@(sRpww^019hvBG& z0wYA6Mp8{8LePREwR(iI0`Y#jYzU<;XNP3#*_7zSup0cfK93K$s_e=G*~hf`?w8?W zOR;NM%F(l}cvDl-rr1@#nWPLWLmR*ThHbat@1IS|X7piEKWBweHlH`bD*3M6WBGM- zj8>!3r{&wKhR=^h(9B@q)Z~OC<_6pXLQ)S4mkUOczR*0uUEB9Qx`bFn#GlNOt%X(Y zoKRJoh0t|4Zrj2SRZ_?g;d8B}5#}Y|+oj%a8HuR(5>v-+^-TGFce7-^Q{Hu|W6Z}j z5@(zvY^Vhj4I$H)<~07G`iJ#_`zrxLjWUN3JB-6*p76?JPw5xTW_`vz(JyFHgPy36 zpFTXMCpn9GS{=SD#tWRBq*ygel4(I{+WkIgM!WhI7*!XoqQ^5d__=ZjrL4>s+Atg& zfjo%8LQ!{3j{gJe$s!s;d!@~DeM}V9?Tf}kVbbt+<_z+VS0uZx4`PbCn(A^sg9W&% zG9m31`zEhoBW`XB?G>q27A8#UnC{C_{H53RA1f^E z?G-Kx9dhutRlM$8_3AL!EDXS`q(o|qB>|NKu&WhyGfk9&OW5@JRna$f2n>3KnChox ze>mGy4*m(u#edBXcAm#QS_TwgI4t&}E(e2sY@FMb9=zbZhjZq8gx%^jbQ?NJdb-HY)-|#Seu%{?jA-g(iItBqB>WU)y?e~*&zQ>*bVGpf$0ED zi#apFBM?&mV5b-&WgP{gthcUsKFd5H`IcG-zQ4&a+%Xangv0cG_2oFPoD-funhMYm z0$j$ig9t_yuESp^O!$h}rPXOGrdEisON#}Yw6s{q2XKvJD&OJxX~X9hoy&e~r(TPH z$Gu=Z!_Gfv)wNCgujEwvxAS*?hyFJ##840z2D7v^{(Z0h~g7mHu zR_gKnF*$nD0cy>^x#%V`Q~=&q1X!}*-j)hAIS)yQq2$rn&`=VUMFq*q%Ui}B+lWi= z^pWNNhj-)s66x)<)k*8lR#DfN4Y6_}+0ZsAO!5=C%J0I-{15l-P)B*w-cI&Ud2s<9Z)TQ-)TTX^zS2CYj zwx}_S|66zbWj*T7TYjZDLIskO285h>V11Ho9wSc85Y41$3EY|rf4+|Dg|M{xij3vdvo^?c3flUCuW=5_Pde7N{W7Lz$G zBct4D($?-=eNqhf#Ks)icP}sesJ*&Fbk12hYHw~2BZ4Mt2?_ZgxO(Pd-mg%2#2)u7 zJMZ`7lR$oG%^-7fl~nX``W+O=7UGng@)&u#npJfgTI?%LCgvOQQc4rZlV)^c#B_GT zow&AE{7+tlpaW+<#if<2P&6;nZ&$mTwi!t(!oZWz%)r%e=Aex@gubUFUZ$=w>=e(3 z&t6TVVxQ^8pB`?xyfn4cM$34%cjf;y5n)^`F%1SK+&2=A*r@6JcPf7gn zlQ|!&0Tn6YU{Vd%&DFKcwy8yC*rbyWWJLbi>22OeZ|Z)6=$R7y>6S*3sdB>Gsjsg- z6uWLz-62RciP;ytL;bH5T%6+#4F#fcd|GT+m0J!&o9%v@XW6Nn%6)+-bqCs*SJ;0# zEWh#&-o&!b786qCHACy%0tHUtmsDr(13N(CS>*dAvVg3wuk-Cfb!X9F&>380!{JiD+1S~s zoY5uIRf(Rcomj7}?0G*z=-${UyM5r%aAYrNP2{{FiFu?g#3rBG?DsuC6ZVw&P0Sz> z+@L{y6%;1C-{duWP-gatX%Bf{>+(GsHr^HwdTxu#&8I$)TYBmYw!D5>tOPIoe0F4+ zx3J)adau;8~Ilyof>6$uVNbIE%ecjLvz$pt|qLaWnB(ecph5V88WA7@E>x+J4NHQ;9Z zs-!8~r!KungT#b(vdBF9sAyz_?;`+NPiw<0du;QWZu@2-K1pl~FEu}-Rg?AnlP)x- zibow1kg!MsrdLDgpjC&#Md<6mKm(SBacFj4OHe!#J3oJEug^^?*y;KC9v9~!daQs@ zwQReEp>1?U2EzcLc1&pL%aS;{L7w4Qc_u9rK}7*)PL#AwF@?NtM{2M|Rb^#f8>DyD6UvLuPQ{vPy9F^HUEs!+9xt22$nv3MrNJwfG2I7hg zEJ!rY0xwRI(78J44$*3EsCB4laL6*b&y;P&$j*J58*M3gy`AG*Z?yndiKlREmz!;% zT}*pgCM!%yh#R4ZImo7DenVMk%il9#)61GJj3p=|pa9G*U572A?GJmNHZk+*ef-9T zc?DKmGv@NfAl&t*d@EXzH7Zv~-nTH#(mfZ3^0)2xh9)d!b90`ASmoPVUU*DBuV7qj zZws#-Lf6{ss@mE>{>MLFEy@d^ZPCwqy}q!R6v5OSA5{zu{Zr za%3b(a0i9+MHGF(-68%m6mhiiKta`*>8&>T|bJ$@&cfMYUYBW21OG2a6CXX=$#XJun+M8NYKb z?0yH%AP@7g%c>7Wh~#|I8K{qzOk~C-%7{qkLEf#dsyaVt;wh1kz<7vpfw@38aMn88 z4lh6IfzCLpem~}W7w}+$`Mej?=PFdyo0m6|YaF>O=(-H@k;KJG+uS0cWo2TZ;q*V2 z!FF}h>#qj9hFO`Hoc@?z#wI+?V{}LbxZB0~?QImLWLCWYo#XgdRSO{j1?Jw|#2CoH z-y{laYDG@6wyl7Wlrcj?%z?f0>Q(U*zULL;Ww9ag7&r)Ml1ph2O?(eGleJPo1~3N} z9l%t3$d(`Ne1+L102VZgcQ$l%@K*geTUE^-;1)NCL77a#oP-^Q!V?@itDv971X9p* zA?%P68cp&tNVLVou#aBT&B#B1EQ%Wf_1bQ;N7>j15mP#3KHHJ;E`1A`?7Uy)!KYXg zHs{1Xnw^D9;EfZZ%$pChUlk}h`$dGzb*q%uR9?Xv<$8E^$168?ePnLs(WX5=Z2(Vt zBAEY_#u*lm_#jk=0BO&ut;HPG_@{nv1=`Ef*)N;lvFN8>D@WTJe!<3{K`{D6Y==-! zfy$d$$iFP|zw?F~kaUq}a$bKYU;0QLcJBa;y@$qTAX}Svlhc}w0bfGG^xPU+hNjYd zbVqk$(4ccMMqtb+7@wwb-j*l1z&?ziEOh8BFQp%LJ_G-wVjzYnfdfmzcYTjNge>cd z)iZMIW9yC2MEIVM+DoTq{It%JO{U zt@nh=C&XKB>(+@W01>RIQ9H$eGMaX&=$fAGIAXksu(GUX`z_Nt^NehdoqW=Z@uAvH zWz1avw{BA33+LAM@NXXjVhnQq zL7awnUYo*79y1(VreI?VRU-kM6tR5PdVN7};{?eX@v#dy#`^Ehv-xiZ^z@BoN)2sX z=N~YGhGRWMKJ|t%fSP191=(O2CVR z@*aBh_Ci=4)kf}u6WQW~j{DE6o8M@lu^a9kV*1~Isnz|p%=+h>I`WrbG9jUT1JyJ! z-Idy(U@1?nXss z;HBKO1F=W5`rt^$kdjQ(^N!A_VUn4@|0%hfLU1%6RFc5oRo4Ns=Na-Zn*^XCK$O`3=7=)Mwc&Ii4Uq7i|N358QrbMu6uU8Xo$ zGoPP#NE8KhI=T({t)ZJ8E?kRw@w4YUbF#O?Lp+D_UH4u}&#}dG4xstsW=!mi%OAx< zeT}X*Hl@9!2lbBCbaZqyMvI;&@!TQuge5Ek|K>E1!pR0xK+!5^br7GZ*r^jQOElIv zEx)f>5;*e=K(kgFjFSVoM~i`l5I7-_gl{M!=)WsEDn_*Z&ZPooe}`1lIbm(_NMdhF zwlp*5JR=#dl#09t~T`o(%1--KUmHceIKiu02g z-Y|2$XC z@9XUmf6mE%^sQ{5CX3L?oV{Gx{`K)O$*_e{7}GUXNn4vQyswBKbMW*uvkjTG;=p^t zN7vjuXzl3!{|~tRe`n^vQ=6`;r!rn`J(9Y9$T_<<;`o6&$U#1@ZKH>bAJ@^hFI^u& zo)3{)9O!P0{9ZA7KBqnkjr|%F+WmR_dC2LtnUsHxBm-bVHa1!_SVs&kk8GZFFqiH{ z!ISthpGRAUevW;@PIuS!xbC4m9LxDoMWWX+bF%rl>Ho19H?O3n8cx%|J&qBK!?hm- z+o4M-L#yBjnl>p+gcxzV(90oRz7#AiStE!e@#)1Tg~ka4z$7e z{{YS2U-A_EF`pdJ1mO+))=g%TH7Jt&8G@ePEj>%Sm^34_yf`UKLql-+?Yz(Y2sr6B zgH3dp=YLbrh!WARfq-nUU=Z;iJ@tDx3sLTbCw6NwGQ}@BIJB%Rw`ahXcPdEL#Xih= zpDRA}dBB0Iz?yaWh=Nl`6d aj$fN;3^g|5Q-06XG(D2eufeXb5N%`QCqr?5)6oN z?B1edkS>Z)QpQ6_4}8<0QEV5R=_P11dxx;`rF!Oybs6A zZ&lfmQ!D#}85Cb$mRHBjUY)2Lf%<0!KsjE0(b|Fyj71Qe6M)fU7pT}Y{HR?^<)V(DAhR36v+lD#iKmbt@K!@#%;iQ>J9PGIG zf7-JD3wGoGPTn#ZMKjh6GlDiygoqf}xdm70u*X}5^Z3o)L%BihEniP(^v#G|Px?2c zscE>j)HZp}690Mv*kf0{|5k~~B=H8b0I$aL?s_Fd)wFPAMzP>OgM8h$Uue~+{ z?4#6F`IFE@N6<4#8!JInd={ zlL`|9YdRP?o6F^qX5J?{TDmMEv~OF1JU8n%M!X?1-wnurJ2Y1O6nF37V`?))oWpIy zJzKztL=X+{0ct&(POTIxNlGcn#5Qg$*>)uIY&pJO)`;?qoF#4U?8>DGn3;XVmB#s0 zJeA4MBIiDoF!DpbiOZPlY`K;|J04py*~pdwvv5^opt1#>SR#P<-t_z;j}SHpEOH;* z1Nm{2yX4_=)A!;192iJ`Ibd&yT8sNLl>Rn_jYEC&6dO!^Hmtjso`gGKCSWpbgl4edWD&!RRi}Zd1Ei zdzNzaJ9_5zy?8#`IP$BjkrL3**+|K-c-Y&>>UvI4Ke|8BW_?;UI-ur-21h9of*_17 z{;ZzlElC&g6|N9hiNY70Nkc{UY2zWVny)rdTph|R%-SbUp1q=B4JWezH(R8QEexrQS?tcddz6X1J zhH#Y$*lMY+sDNSo;dXpx%Oe;hK$jN?ItuI~*Qp@UO_aJ&ALaMv1^we`yACjP&5MhG>HbLy0d(^B^M97wmF>+8=1RTplyf zdOPS3i`%9o?$I$mxZ9@Fxgk}D6&)#e-#Ax~yq>Vq_y?HLTs3#R$J4J*>^Sq&iPhMg zl8fPu=8pea(katJ5DhLiozgY799zoEO3*`hFunmt<`)P3bQqNAeS|#<>ZhR?M2Rs2 zMYj5B$Q(h=Q$=?ipb!`&XxWlrE++)aNz@+-(ofTZf55<%)ubRkIpCV(TpQC_3^QAmuT2zLY%!1$-#ffh`hPnN1O0ipZ76*4vj?hGI0r*{CR&CqdSV^y(VVNgvy_Z zmMeuL-RWjzq@mR=f)Ar z@g{;bF|>1Y(;Q_jC;4MO}Uwt5{EE<3sBr!NC`$vXR{~p{ufh zpj#fuXToiLDayKmDg<^=dl~3>1PGpdlAULEnC96R6vqb(gac{!Yd4oh;Q4CW;^D42 z&3N$Ug&tM=J1(i}1nSDBLeUwD7;zHz0;x#o(QfM+KSs>f=B6@HE{v6+$Y-nhtn{&F zTEL)U={epBrt&ui2gAr$H@q)k6(5bdzF1&vw?;Yy?Yw_siz$NBC%?ID^V>eAf1dQ_ zIJ|Gu9<@(lz#6^5ZZq}f%a)Dvp3<5wJS`mVT|X>Q)}n+@q*DkL8>Xt>_zD+5-n3}h zYeXDu9k!GIIAnNV2Q*-q8VN$6tzm(;x4{PDn<&PJwYlWU5z00F+o@YQCm_gWK!hGt*>|p&RZiL1ldpw@q6u6pIDFM(wJzzSeW zd*7|+3bNQuk}v#H^N0F_VS>#}ygk&X6Oie8^rmsjg3G18@lJ};_3`pB$5+gKID*W5 zbd&QEek*;wY2NPPgXOabulr~v!JQmY z-0@LB$@QLr6@(_RM-iRKE5IU^qko<-rS^_y`G~IDzyBZ1JRZ%AVgdj-PK<{(~5D@no#< z>*gdk?B4_w0J;PTPy;m7_a>Uw9y(PSoM3d+$RJnK&*o=N3tBF59aaaA^(uDPMu`M} z`0ma>2TISE`lsn6tZc0>4NK?Jj7@JaO|QP-VQBF@f3jCa=r3>;3AhOu*lnc$;*8XE zIzWhv(KSVPKCCC37JS3S1?kpxvHG5!IcDd4lN;dWlb>ZIT(h!{5TRq@mY%(d-g_VG z@W_JYXhLF@+m(QYrRyS$f%AOoYi{AUCa>?!mPBM{WF+B{Efx`)c?U#>i>8Yrpdj3@ z6VA?=8tc_%0u4?29~5OrA|3N@iYhAREz)%K++ZHmt=uQ&y#62*@W1F(rq)*0->I#n zb86C{gLZm8YnSMuY$x5&vWt_;uF~e5UfBWnvSJlt94~O19|_7gHVA184;wa_pP~J@ z&G#AUJZoK4QKT-W;`~%=M}*4@{?8j51Pek;Uo>gb&L5X+Nvrz5HcE7(U(UL5-XUI> z*;iquXw0WK^+Pw6t~t-!F(nB3L}+VXVXz@Fa7zS)e!3WC4}C>BMw;!3lR~$!xBji& ze4*mC8Z|K_VBbpHMM#l`X=h~Id@0e?Fui)~vKY+;nLLN+u-o9g=FZnS%TrIBh(eM| zhi2L&@G^>bJFjdEGJyI%Bdq(JN=-8Q)iZ{ViCNICKJeWBJh#%D@{p)%J+Wh2V|?FX zMv$0FnDGIU3@dQ9&vI^v-b6ruJEl*AONR&dCtM)o{vAE6^G@N(z3uv4suOZltja?|M^7Z|ID6+dtCg$5se-gTZjC=+>!kkeeT%#?`-bg;sx{F z7JeKo9RbIzZ{6+n^U8O$O&gxSI@sPxy)p0)jRrd_V{Eu76Q5$kj@T+?XDo1+Vx)bF zGz#Y;P-#NmiINQn6wF0|$Tu>fZ@P&Ukir&tMgVnnxjv6Hzh8BuX=1=f3d2e@4&J+2 zwEg*f9xDQfO+6qTMEZKhOG)3(EOILv3x4Ol7>351k_^bjQ$z)edbAAJ(Y+ zSYNil$QvzXoR5JsrZ*_7(9Q6=E$}9nb4z#>Hf4UW4ldvJ3e^DZgE@)Fac{tjMmmw@ z2;)1#6@y__-<_Z+DSVh%&v84k;4XxcF6I;`z{c2C04@xu9`#Tz^L*1z=u39ansP&o z0VUVJ-*GS)6H2gJ2A-5m@z}_MQTYhwdsnmH}JBr5YVGAxK99g%XvbMJOrc$VG<@x3=a4NyvH`FWk zrzzV!2~9Qw&7)Y>=BnI?M+gKzGS2E+guj0g2bSv|ipCSCx~i=GI^`D_6|r&uBQKiR z>J=NT>un)$4&{b5!qxm1d5_dcC{_)mdwKmO!xy@7$2(0VW7!919Sx1u3C1BE&LLeH zG!A6E$_D2i)$M`%rtpwgiqEV5_Iq(F$u6j}SYMuaa}uuCVC8x4pA&AtN0$hj8rQ~6 z(6}&G66_3Z-)gEnbDUd!G(%f|!PuHrOE4(KRbD-7)JW@_H~DdX{s+ks|H=UCZ(Fyi z%f_*Eml!gRDv=tNJ%2e{MFMfiiTfyrDIiFXlSENF^!W9)~SZe&ep>UoZxVN7N9lmR<|^2 zk;gq+4&Rhq-S}r@J{E|9R8r^a!uOsW5hJVn8Alya>!2A%oXzdO)cRo?rj)9V%#7mRr9b;Fg9(sMRK@oURCuK0@)q(%_G#q|` zP9sufs&wl0U)6((rY90~)G5$i}KI2r> zdITwT$5Ok%-WdqLOk;qL1;o9==MnMw%bcCX#7@0Lfm`wTrU{-Klt_pN|Px> z#l8R~E-r=(o-j(#Po7Z!a9n08v^N)v>--5aNFib`UDAIWDTliKuHJ}#=(YGAG3@j8 zN7stT$h_T0t_O5&{?gn63|v;CSGC4;JfOes=YWx{S*XT&we%P^mG=VQ1AOr9T~5jG zKjC!Cd)IZlR*Pc|La=~1LQeM>_E4~ewKd6dWm%Q;SEq4JtbPxD$?X{DX;cCXXU#8( zX_uK#>??9jS2NIrSpEV$BMhSB+N2z(nFeZ;gO=Ej@22c};!V3pZ=ANlts^>2v0b;V zwaEWGXD!Oyxn~Fi0hoY*dzee;*rWy3W0WUCZ?QrRR+JKPh%om%j5Z}Nr8lcuZ?@Ee zE<{R8{`73>3av#D#XdPU*fo@Bb*k!~I`k#HyJ%`@(=LxSOAal4Im3E>MFv@x)53>X z^-P8OMT#IilmKb&^sojEs5WM!(_!Ff7MA|wbDQg1QU6X&&Eoh;lEwj z9VBFfSb%`b<6ATpZ(ilvXKPGSVoW&Al@-cvDpr?)uC*qA95z`^0gnvr+cQlrZY9Y>f43VuZHgR4Z>F>2`+2oBAbF#PBJ)F)8Uy zOy1;zd-K5R>2}1GJ|_4d6vl@Rx^uoQ-wFaq6~O>_`F>Ht?6^37OpQGS&K);yzjSoTd#iSWAoqvZ@4;>k~sV$80NG~oG@a%-JBuIlFV zx|hKNcwPSDXlI=QX<^FSBQ|5NMi#@HyWP{#(HsJsP7~AMqX&q|zw?6HkbjV|1 zfxeK-<&$UkXFNrXlyb#Mgx)qGgG2Q`VDhn3^Q*nrH7S7OL^Q3Nt1{z+S)es8zZ|zX zJ^G0#%{~(iSHLXVHf|CG}r%;Hm@K+HkO0w1p>N>abR6(5B4tu z8Se}*Zl-%b^2((H00n5L!Ua2S7tn4TiJfr0?#oL#Xt%!(sO6v82P083LOf6!PS5p@c(#21Wg^hz<51#^a_e__TTg?4Q z^WJ&Q#bMnu=dLa`bK>kGL6Lr;ZOEtkS>6>tb@OaeK4SNT$p66DWqTGH`A6WV|AiT7 z&`t9ULyCjWyi7D;Yn+k3GNPsm2_w5?man^EpKO}dDTq$~UA^p~CUPjh0N!3%eyIof zfH^A-hY|3&gZN~bWt)Vm4LW3Lhh^JfpoFpPvYZ0=4P{{v$oIBfMTo9eH(! zNf;2i-ri+@P`sB2coy{~S)|gX^+bw>bf+Yt8+9#|-llx`qdDA9B>X!AwJvxxh{G+8eWM*<-I~CW_Z+cFYR_XAM&I41 zhkd)R_OfT6cl;wSd%F5w#qh9swr#5hG5wbgfFpngi81Hs*0ycVe=t};w=Rehxl{tx zw+aM-^Wg-|w|QqGl=v>2aRuK2F$X@1&lwL&dgNs+xSs>NQ6YQBn%xEZiDpzWi(6Nz z1T<>!h}o1QV?E0>hx?g;+S!T|;b-_}IiYwOnze^1ualiNxf!_o^Qo#| zvJ-y0oO#hCs`MPuuqRs2%HL~{9RYss-J4+7b#$IC*tbK!SWx2T;q-)-Gt`4Z^&S?i zc*)SZ1a?07Y$MK*Y#e1QUif-8KMS3c6!+06Xj4dNnRm6=u(xgK;Lzt0X?GJAxYhT) zj4hfH0q*}V{As99xf5AKgD0VL+HO)5OUidTe8Ra!oTsNb;bXSQUplu~3l`m9Hq^s` z(V){w6wIjBzCSd&3K4719cFB5>imiyf*Z1A{kC5YPyI*L{b)sgZlvD)D98ViEFQ4W ztnZYW5yMvlGMRpW?U0PSa4_zZ*C{Y@W*P8jvnkHVuxmRuto@#0q+5n|N(i;WQ(0c0 z(AJJWYi)N?(R8o%>5LVq8Q0H_)pcXb*vTRLDq)|tRBzKxLNhhFg?YT!IpzOG-~~Ke z>)$?>YDSbFUE_0JuaEsXd!+9$yC%>gR{b$oIX>rs^e?VbAO_#7phfx8208+jWI`nZM{Jl@J~WW*?bs?L#;%-M4ULUri)urGWB4h4N#6xt$CT{2Q^o)nyxwZI_Qf6b zoGwa8jkjLDw@b}3tY?eo+T8bFj8U2EYt?nbhYd$blC>%^HjN32jI+?=Q)sqC3bl(A zC}Z`J@?wVM9?lbhJGLLxc($!gmZv`Q&xWV}JV7uR3`xQEi_<8bZww#}VHzoLp<6FC zYsKhy)25%6+-WGdrTN!J+au*Jw{-r;a&v3%xUUs4e8HSoKJ*QmB+Eyndg+Jkzv?Sn zL~k0q^Ag!QUVm24wO4lvr;!AHR@5OuMVxtFO(*~1gsGwVYxl`SC>n6w5=6uC)FJ1= z?bHKT$*#B7M?_GJ{BivBNqQMIuQL;V!s45S(@%c&0Ga3cDLC)JB#{~(u*x6MExEAa zy=G1B{>;+a^zP|71GQnyYUbU#W}`Ks;0(N=qFYnL4ph7U}B(n$~ZP z6BIT!w#Z)eN>`j9b*y1H1a5!RXfmKisTN26 z3V$ElKwLaLOR*4rv`WdLlWl?e6&btc>b*jzd|yA4rc|mbl$K}atK^Ik8?=vN-lM%t zJD*Iz@jdpdgp|>@E%ZwEdRh712lro-UkYDx@Qd92c$?cX?ho^fIjBlssDBS@$_c^K$_1@lytVRnn3HfCvO8xma&@O(%**g9oyOwnWSxO!`ZR+`% zu4a;cf^oy#%i&TrFP2q-6hrEfVYt3wK}JM9LWV=W z_GGhP`F&SME6kzJ9=fD<&ueSDxVUl2&sHr4yQaarwyMOh>Cdn>D`LO`I5z1~=}eAh z8J3OSuIcC;7%=s^vfoT1TnYJ*%?SVOSDV5uV3&|QiqJx1KlB!xP-PvFKBX6rYGGDx z+7lyUC?6#SSiy}hWp9_g4w!Ny9Qr@B1-g9(0l7mc2;y8ch$>fXKF8Q#hP%hZ2TJyc zaww41WodugGgC01Pf*WvRk7+@1@A}F`=4rtIe7mEzjy4ClH${uwvHt2AHHV*BBkD1 z;9DW-4JJn@;FwvAd4N(9?;9qB^zCh$@omzSPbR}pBq>aTeH~Xz-G?(LyZ(^Ds7syn zFU67B3|eVh$%HRhE)S8Gy`p#wilHr*A1hgisB)Py3eL-9sy{dU)!wEWXqIbV8&!2H|P8 zd6S+PWq6CcTI{{`c_+Ql(9V@qf0Vlp1{DPt8kIaqb z{G+?s8}K><%5a)`4Su>P6sS)^TG~tB3$3tDm(6s8<+8=1P>@iX_3}6;1s?HJYv|kY_R%VBfQ-_bc)?HoArkWe{*$p zRdTM^k8o=w2rDUkQI&5>A18%m5?2h<+UthsTVIc&NMS!b%^M=}`0;+AJq2vo+OClv zKyY$XxD@q*so*`mMq~{2o!h(FA3jR%JCa8VPlBTJHd<R*vE*Iy-rAE;y$=wV0ieBNwXQwAiSHF^3(PhX~=Ite&Q|@1Ta|Svi#r?IuKE znOJPbAJVW`Tcz0~i|jKzX_O4gx~$mEw4@7=m1mq?sUHdjHa?5hC_%Qz`oD6%W%%D{ zEZFk^(PV5YrIDAiv|Xuj)!!((!TyR&Ez$-hT`8-lNY_t*2K3tmfg1WV`-{h6yT;i* zAQ2cXCg`0j?#+Nm00m_@GL*;=%OPM=2h|>}W{tL%ld>o|gLySkJAq`CDf@DAcz06L z7hhXu!LdzIPYQ*rl6ql;nKE|*V^hQM&{nG^8WlN3B^U2k{xGYp& zPEHc@hjL!gG1gfW>glq`?RqQf@tLxC9^A*Cbw4uJdCSN{o}PZJ2FKqZq!QizYIN@M zb;Kmdi<`UL6!(BH1Qb?9{`|oJ5jS42GWvezIgaZ3{y){Qk={v+dM3}D;O(OrKvMgf zJ7PBIFHnj98T_efSz}P+m2FX25eD@x(-T8mX%<$P%sgbcWER%#=CTJ=O`(x+TpliU zzWahSMr+=~z#z=j-gb%xgC(E|6CGvzu<0Gd&7(Y|oH&2yPZC6+-fe4ZUC8MF1bsW; zf2Zq8FRIb^uswT-@;1ZLC0P7?m8am!0rUB<*2^21qw7Zo#NG0;{{WU{5;*4PLn;{L z=ePXjZ~~Md52^v;_FbUH*V~8bD8lLYCC757c#B@4V29BF0_>`TlIeZ_`%$WGj!Xhm`nc=w+hdply{f^fyY-3*h zGn;o#N*&mAc>F`%gMRZD9CwX^*UNnn%}9-byUI-DRjp9ecd~dG%}TNLC1X;+aNJ{p zc3dU}@AMi&)=9nAAq_!=P3Dbo=3ki-bQ@`4#qSYO{>4Lbisfwkj+4Q45zQ@ide@I% z1U*6JUZQyvDkuTc2gH?PwwmN3Z zw$u3-CT2Utv)I1(c{Wr%tuN`$tBH;lhnFe)#u<*for-djt{u{X&Pc7V6SG}UXhss* zrSMC;Q_t1u!>5T(W5Id13%u(t4>kR;dA5*+;Fjp!Fv@P+UK&DOJ3|buKPWJlro85Q z3Tus%o!voDh1b(bWzRyFkxQp7acK|$_{_bCPnowc<5HfD#lEW<{<3+uc6&R*B&GCL z2saD|3H>*lg8&t$dAa&t#mfQwR++}UAXJKaf-(t06NNo378FFIe1HH3#_D6A7EP=! zq~|GIX!tuOnL`DckbaA}IPg1NJO>Iq*Y$6IlL$F|P@l+gAtnp!n5f7@)9l>G&O4oX zgY)444uS9PMlOoDD4X;Z&u=t(7RY44vDAcW%Gf!jz?CB|F42T*TT$#*OT8r1c3=~F zloELpB~@YgU>REu!P?=K4Vw212sic{R@D; zi{Yyihl6y*y){OSm)1LEX=zLMme>#xqUR6-Et_LHnQ@9OA9{Kr1YTy!XSp>xc1^DJ za=fnl?rs}q9|67?k)jr-*>+C!PZ9ma?rbX>!_mYjFcO{} z!%t1hNOu*`;!>y9^0Xx&Ep9v%8JJPdU>o7v zPB+ZPmPSn?iid^YdiA!=wR6QOtJf)fUMP0N*5^F-^PzRClY%$(cU;NvhIum5#j2+| z;%q)jhIEOvK1X<#6OZ?O3rfy!a%_3Y3*{JJtUp}Ii5EoSdxPku4vJ5m-~9cZGAiIF zSlPU_L;4sKrhvbpwZ>gWO>))w^wOiwJ)3aa!o(QbQ6|PGPSs3I+dX~#wqi(yv&QoX z%MHe?hp_%uoAWXOefmFt{%q)s(aE#wlwYy21~r;JyqB4u#JQcmm2$NaZ?+`P;^Hce zm`dY(S^_2Cc}8%ollQgQ*fWU7S#?VHhv=1UBF>^#xDZUf)?*%rQbS8u;$ zVnso|-h%w5df6HM4$&$jkYC;Hrr;dC<#X3C0inYNthm&U>iveuxjM2~5gGy0u+@#f zN(k3-=Tv1K#?6Xte$z$O89e+6WoUEU`06L$;?C%(K`_6xBAwaLx_sc`7IpbLk9RmT z!yiXENU@-9AQVCf;c;Nm39dOmbu%c9Ak(^UIrqiHSV2nhACC1pA>&EW-ZAQh3AgzOh-G z3O|Mzb(+IH--R##{WXKVJdK-st?*L)iBEg5?y^DR zZ&O;FdJ%)Svs08D5fQ%&g2y636f`9$kj;M&0Fb_)@-$l(tO?`Ks#xtJ@A`FRWKJS+ zdpdMiDA#y&|_qt9g@=B4bmXp zEzO}DN#70Ld%wSTt-W0S!8-dB6VJ>%Gu!(MF#WGkywe#zda1X!%^_<63moxh#UnLs z<=a8;i2+Mfptj~`4yT$Wq8upOeVHH^BMX`l(Wv|CLJEyK^D*&^)4t;AwA0J`zIs!E zU6bX>5N@qs!0&#W5~shWjtD;m+Y)<&H}gJ}AO3N&WQ=gVS>+{rjC5>5{ciBv#KE7dri4Sa^+qZ8BK>S!p{B%j-8VeDOOkZ=r9|VY_W;c32FP>UA-iMgF|^W z==`1S-;fQJ=Co4jp$xOb0R_8Y&30l+q343+@Nip@|6zYW{pk2ON9e6$)eZcNmf6uL z;#l)yTZ1Ox#DxN2ev3NjcoEn|pz)>mA5RzRc|#3l;GSr-|E?(PwJ+#+$o*5-nKDiU z6ls24hNw<_25Nv7-`2q*MBfI~%beC=VfmzRUGZH|lxgXa_!8i=kM=4N$hNW|hKOCI z)sc_(F*{6pSl*o3d}{V;&fBjE$WYz0Zr4};8P?0QcCF980QI({zQp^F8FUHL>EMQy zn?}->aC3EQwSwc%8{feLCF9`=2>`|6>ibpWl6ox?Q7@i>oC+&2T@8Vp4?tag1@$MQ zTgVfuAlfpk(OvL7*D+lmWrrwF^P^Z$5Wnf$z5LTT<96)g#xDFc^h^+bi_u$LAShgd zF&+Cl)z1U|^E(5}6vzHJUH8dGFg?HGkNZ>SMtR5CU4RJ}1XP_QsY>1^yE!7ryHt3~ zRi${)fpMEDdKd~-Ft1WL+YtF$lH^mA78mtnT3w^9ass9wFz?|FUV zCK##>FC*4gmIywdQGsS>nuG(EIj$=gzQ^{9=Iz~cb@N!?HM0PP)g6jc6fnUak~y@G zL2zulNfm}yFKm#oR7||Sg)w=%M70K?SKnX`-mVcNJDa+`M3qj;E2NHt1AV&S)T7Ng z@aX6$q=E*s;l_m>E-z8}v+WOPrs~{SW(i-bOaGJ5+sym!D(Ba!2F||XqgvYyEy*xC zTpAkHB@oIK5&%~Ianj<0WiK!oHCI3Q1`M7eah%-x3Ad8GMxxL5xSFtn76XEYM*=2@ zlBOy48@l{}E>D-kq26K|qe5bRg{VbK`zybKF3B*7ZlJ1@B0~J3&)4s_iM3dL%G`UN z{k+>-UhtG*2QaL%0;yfsm)T*PYznr0R-N@$T=>=6&UJv-SC0&DA5TCxjHNwwhMc!* z5)2}$lL-Ilo-d--L?cBLCaS#u<}vZ=*%Jt*b-r9e#;$Xdd&dZ*l}@l3qPGB z{b9iVBod-oa7F-s0qDk%C@D3c{)6y3B-WR>jtN=ncrEw-o|}+gAA8$%Np^-zUVnfM z*vA^6npPWre`}$*T1}J!rO$?M)*zU}2g5g-mdFH?*q;E~!#NWp`t5L?)D81F>7t21h46pbqR9zmIiFE`J8` z=W(*d6&0mCJtbH9JzuGS+CnzNNEDupBcyCC(v)p$>_ApR5f(}U0c1Nlt1eAg80g_4H@Kn40a-Ejj#4ZUkBCIz zLuMIhU8}*sf4KD%jn3)MU3QCdc|vlATahrt>_JH(ZzO$h$w(=8XywS)$pgJ*y8T+V zCS)3;dfGqv;^S461zMy(^|kLtO5DU)2UU?N^;Rch+w`8;jzU4*0kMnB#Mn<;bJj7Su2=3Q&sKCm81%TJBE zehK6mgUl{Zw?WkPN%=C1Y87q_i(TJQR8*91K07jxQ<6_v6(u~VZ~JiZ_WdMHj}h}Z zX=~N+bYdIAM(8phq>`x!pHrQ&fkjha_s18*O9RErdw-!(Vs+#iDk=s`X=z1w#VsyZ z-<7!WObLr3D2D>pj0N>DG989R(PEs@dU&7l;qDj2M8_YkeKh0dej+5d4<;0LpWjlr zFAw%q&d>*V2lIH?=}HRQM0U^_;I4jPtafq9Yc(HkgM0Gn;yyNhvUBH7AaI4;tZ~aw zmcu!kA09QYQF3$1_;C2)Zs}(FURa^1&V=w~ed17UZEY>!chmI(sDAADC^__vGIrm) zGBM%zq#JRPo^vBYdgzWV%W-accg7~^9cOsPKckA} zMHCuYP6tJ+l8ogbw+4E12qgbcl}S;&VxY56FlV^@|Im#WDaI+4iYi`APtjcE<1dywHqHQAugYO@`h~1V$FP5wN zR~(`}z?#lqQh_QQE%8`J_|#lQj-oh66qmXlR0twSH(A)mn8<79*1PDz!V&?Ul?Kh*UsmGlj-&t~_vK&1gjT2-QR+llD3e7Jw$ zt7Fo6b4@R2Q5~5`X4U}Bdh}GPB;wQ0x9zNhp%iyORV`bDNT*;9%wUrTRg>>EQ#D^$ z+MweKt%VKLzZMiW3hCi1-Buj@9)fe~y@A}#gW)JRb_R6N-x|r+=+3>p zO4<+kc^cm9_4PVSdoFXiTeV-5;4g2MfKBG{88RXOQnKvL;cxS%YYa2=VC8E#sW_ zSDB>ceHpHDzx>Y0ekiHH(@@pCM_2^^tWAw8_z`5Orr8< z?WceuL>!j-A!9XVPvqlf&jKlU@@IE=5tB<=OR!u`FyNK^&1ab2z8reveV0W~rUI`S zDOeJb?C|9*Rru0sl@xJeBDQV#htu7I%asOo@NBhH_RvCUyf|;PMf`l)N!P2<&*)lS z_2vJt>i|0`$IoL;XouaKMP6ICNi}T3w8f>7@=(8!*z($m=(lH-sPpC^jQB=^2TA-0 zGa&;SWRF2YD8mO>V6nnbnJCfNh%L>{T9^C!=@SzXtmh3*zuWUHV;U8epmIme@8-Ux zq6gN7_--l~Fj*gtjBNNZho@EsN4y7e2YAIgVdpS(Q6Q0m+rFfg}oc*-UpUOh5kdadgG)dubMh#Z|6tpWPQMf-d ztr7+_`a{fz-beEYa$-Mf7w;lzRknEF;9RTdiok zsZX4XsGE5eP|tzn11^cDVsafWdD>4jF+sii_Owd_URrA>^LRIi#33`IwQVsUD0GD| zpk{Sz5#M$c7(mK*RP3i?2nno$2ouj9KRd;NS<&`gc6jkkrhgJ&0K@cb`dwUY?;$D9 z*|>EyumbCoOk;82;LIpHS3!1mc4q02qCrAt2$kraWbXNFIM}u0nB-r3Hy5(YM|bp` zx!FKAB@ZGdO(KSFxPcj|l%%2kA57j!)dm&l$*r0*A_5AO4+Hngiyb{8LHYnC4aL!%g5&(2)pR>`BV*jO!cIS=#bnMM0`hx zKR%5IwGoCn9 zY8IrQD&_7~GA5woy#Zr6i1>s9-8$9yY&VYHg z%FY-H@K8@6Khz>rnQILNu*Qm#11BB02wWDiONdZ;nV6f0JjXJt_P_y} z$xnr)HHN32G%=V*-wTiCr4|=lRN`kuOlbPS*H=1MQE&&(Z72bO@U54V=>v8xQn|TB zg^<3Z2A{G5gz^FNS;F@5Cy;~4vVvk6-Lvd#NNO;~7s>d3V$p{8XF){_sS2lg{hS`S z@(UZqw|VNsHJD3^DcusGUr;Xnvjbe#N%?1T3UI}K^WnpPjqi+XSdIDQ#=kx}=6!QA5$}@z@7x@LLkOxYcRNGsj^2519GLAvVIK zEKns8CAH1J%U0Tb{epkj9lN;3$QR(wAp0mYe_uhJ|J&KX73Z(s@s-cXXfMkeICxcH z<}=|x1<|h`{Cl_4(h!>Y``_RUV^wEJ3Vj}OP12;i)sdiCY32TQ#1=I}_pCzV8f$J7 zbv6gD$vOiw0Dk$-#vEnq5q%(0JRsxK=#Uk2I-(_A%C#a8#u@6z*oS~`dd{y0kRv?o z4yUV>^LcD9E;1^2g_FybESj0uq%7MTXzjZ3+z)I^hf$hkNFv+Uqz*Jh7FTZXl=l4A z(J}ITI13051A#dTf?L=ecrkt)FI{&pF%w~4zlb$+z*xGVREO&mTNzs_c>4o|&*M>v zAvDzMXWD>q;X90fwm3~4;I8Y{H2>3FMau!s>#g_?qe)Aij_T^7o34u1gB)CgMm;s; zg;pSs*@lgOe3ih-*IJC!zx8ZAVrT-wR@FUCd!(F+(ZKjFm%k+iVabi|MomF}e!Erz z%`*@HSYUU=s)BjhE#TsC0({c~aD1w)kgj%c`V>6l(h^4U{CuWcrR;umh70$vrWw@XvSn{AA%l0VIM+ zvu=^Xv<#hW?z3M&XE14qhqS`+QH|5p2XA&kVY!lBqtTci6yU_`<78^>!_8tNy9kp!I!r2v2v&g2c|{QvSU}PpiHzXZCHeqW)JYDw%*ujd&feD zgLnWDV@N)IhaWPWy&NQ^!wk3#_?Tb#M9TNwg#wPb5>KJ{j`Ja&Fq?)qtdKMvUz+ zh@Z@%YtOM3?CV+KXN*F$Ah^FrmlcG5;Lpo#W7D5N6tY~NHydh<#aJNZ(@Yd~Zh z`{0m+wHFIPDo=(pyjLx#ONeoUiK!_pL~1n}@#Dtp*~jIRdBKx3iVl0d*`W3lk_4JBb zy%|w^H$Uzl*2b@(I;f|pXrJ5Mh!It&FxH#cejEw5ir9)q;4$6RP+=L_2idR_KK z--3e38v|7gY5$Q`hyeU&+udhRoA`1@+N6dYX1H>-hF)b$zvnFl+ng<=w7(x^M=Oto z`l%Je=o~iBkk41m*VQHPHwk)`CQNb#C-Y-^l(_H?r7`;mjK0H*_&_PlLcBy`JxWdz zI)onyH}kmwTyOHP{d$&N!)T!X&W|(y&rJn1)0`#@&slk{$iS`3NkqzhmF$r=&w=ZT zYTKWWvW*NWRTee!SOyTeodZLB5~G1b^Uo{Cu!tzsG|G81EHaNW-;QrU{o%7~%IVPQ z16F~pi&0h;GKGocf4kJC26mZv!aVyD{?Su)20}()Sng9)`ZUB@*>;PDm4OyB+jBn0 z&fp%RDo|=z(=v)G)5FxG1FuT!UUe>uY9sV^;MeOVO>?Lj+9Rc-r~dVe#frqNDb60_XeGB z@CYo6lcnnL>8{przd z$I4TuqEiwN>OULz-1}Ej&=OhqoJ{eThQCDBDzf+~?bBUft#uh7jKwdYocde&^GBxs zvAFG?M=h2&gam`0x*4yyW2(K&@B>$jZuhqmJ|yK#7cvOw0ssh@7{9%axSF^jmt+d|lb+v$LylvQuM|Z=rp8=?6*%$8&TWC9N-G!0;?Gv3>Lm%)Co55X_;G z|BvJ9-{}h&sq2eQ)|cx5+OjoM*1qHZ+0oO^yhyOCpIRB2&SR)J{c7(Wv>@H*E;OXm zr^b2jxs?AHZ$Yznrr;fT_bDB`qShn`wJ8do9wp@|`OX!cjO|K?6tuMog9n6pTtGm8YhW^BFImV?KKS0YRV70K?6@~0_ zv}Al4!AVV3rT*HAlWd6c-v!=cbZUIR{V2lnSA;?kDh)Mc?|;@5>@CiKnq5agd)q84 z2va|`&o+j$gDkiQ$#R`!aP9aq(`vzIllvRR-r99bQ{|xdocnv8c@Nz6nw1piGUBM} z8vJHvn26gqJa5zRLkg1&)?|Zx+?*fHhy@Ru7_&S=B)_}JP@=Aijv6%7*Ms&{yZjqj ze$+(ex7(5Zu8QPniR2JN6|LZO->c(l`qugLOJVU(wEx;SUeZ&12Z%7Aj{ojthH8Am z{yWRV@hwGUvKA8ILV+?-E$K80fF1msptD? zt6`#sNEio0>vBogCegTt zmAhsc_x;{{#A?9EG-R|%9Y@)rLap>GNM_b?%WuB@$2kBRK`0Gjyprwii1{MFLUu6v z?&};rH@uu^C&zOE5xVs= zcOON)2qu1MA=aVH-6>ZI{AVEEV+i5drgR!>{*}>l^yHK?Ou@#gQ;gS50JZ62o^_}} zPnXujgK@U6kk^%=?ae}V$!qw45y~INicKQM+y*Nf8|!3K;AXPRAXxkR`JE1$Ha_|G*qii`6Zfo4H0j(OiU==Aj2Ud`sy2a z;Ne)B1C1|Y1C=M&E#d0Q<%`BZFaAH?RY>hw)e&7~5&!x$7)TsqO~$=r%%;X!w6Wg& z9`8E7Pczop9hpo9UD3Jo2`ZJm*2k9@{r7g*QDWeIJz=g#-TFsYrL&7d^m(V9@5AO; zBwl|;+y>fOzp`r>zmLs3K30$IuxFjy_8=L*Zu>jL6 zNeX7{IWhpyvN$Ofju>S?R*6TjH`)43b=$5~UQw^=pyqXLYKC6<VwrE^JQH*bJdF1LvEmnH#-JH$OKm>@X>hT`8h7lK(Bvzmqv&i2D0N2F^44 z@%hPO3=mV4IFf6_o-dM3&aR%-aHs_w$bhhGrITeHqcnm*5q(wuq9F&aKI2Bna0!r_ zJFi$CzTM~Gcz7jSrfS~|jkW8Mr5l*R*T%REpbslwfrQ=TGn!Aqw1?l_*Esz-2#(m!YWiRmzL zPI0;%WU&{@8kn-1HUD)DejA)09J)d=Mp!U~D*-O~b9@i`hPwuv)OTx1vy?)6;Yi=k zp;=G#eBS7!VN||lz(C{a+ne@+wfkdiex_p?@^z{-ISGpsB3!Z_3~OuaoWw+&^ZUn* z#so|P{qW|)Enp&;!Z5m>w#Go)(V&U=9@M{p7AUp~1EgKMWr@k-^rc=JUpDuk~&x%c2Gm zaY|`DY}Oq@=am)m-A(OVXMy(1$>s7vR@StZ5Mx)ga3XV_L(5$I+>DLE;L|(gSUGIL z>^@rXl_z3|$mM!8VXgxoFh~3S|GFlCwBhso1(gP@i05!S;EsCSlmiK3h9NGC>Tc>l z{|?|^vDGPi#s)Z*wP<#g*R07`S$;8I#arM_9Wo;Z9L2=e)>rI4twHGuY39P^^~#j` z?*Q+A_cynf$GJ&XSwLwd>SC1bM4*NK{*cJ(UKOh6<%H4QEpLQYZ@aC@2HyW9%`y_A zho@}i-8|CE@x{dZS4|{e5Xuu$o=#qUg?Bpr;u(caF>lAx3r^Urh%cLxjjv!z1ijO~ z_&y9LigV~*l9-6OcikaiMmBb^@=38EkpPzWKY%|3#P)hxmBxyH&5||x>FqBy4V2^U zOjd)gs0cHzj5e3;A-N6d%FKlGFa>`8vMpD;m{gc@%b=4DX|# zvbWBM3Dy+l|BMTHJ~?H8;%rNI>G&d{gN(Dd_I9)@;R&DFMlRxQ~jq#?7aeT4vg zzkgOi0ndCeVP$#Lyvy%j^@As?#zgh+$rcAD|lu%>I)uOiNoT8PZ0j zXqsg3I;`Sc*_hNf3Um6Y7WvLY?*oO%U`ZFT^E1l%`v~y>pc>3p`O=b$PjmXHp`Yd8 zeZq@xApUVDI-OhY2s)@&?@I}rD5(n23r6y+1w+{TjYCCok!@hjfsNaxC8n*51eP9k zsTL%n2v}ZjG=uE99H6K7zjye*hl#0?e-niV`)uh{g|mtV8N(2Y-+uq`;ichbf5SS& zqSs}Hv@`Hc>^ElJ#w1{L6&gIKTCV-5vQ_6Yu?_s5p^Z8o2p+`Iio%duTEw54*{^mh zreI|85dNoiu$VwQYd|MJ@c>>kEh{vq*wHadHeGa^P}FMI#@_}Y3q@MhX40hLW*3L% zO975FfP3-)4z;%a)^@P*ZmXiCC@sAAzja%N3qAT4PfgneRz2SbkXXULxgLy%YM$W= zcqVN2k-HpRL-poNq>Iyp_r_$VMTM07>@(IY;{<-`iucRa-%1Yfdxa^0jI*y1%>(E; ziz}dj$@7jxN6sauibJi8vVS)_KnMj3kAwhSM9+ouGC@4wHZWsQS9i2och%+nBmmo) zW(+?fc=&*I%!hk<|4;M^P&{P-`8M+~;Q(Zj9?N}vTnHyVfSkS1>bbxNrxU0~{RJ!x za6*Bw)cSa8Dj9vBgDFK*)PRIJI*0f$%8ySx{|662 z0Q5va{D`OEU_#*8qS9#VU%%eg2n+n)%`c&)X}n%mP!MTM zu6kW)-oPFU%*1JD{?}W}^bLm0bMo-z8Ha=PF8()Niiq`#Pxd*C-KY80hLe4@ z>r;DnzOD}fGZ=M^X3bfYVGggl9QyPdRbRugJoZX}E(gONd`W(L-+KJYUs7hcf1r|} z_tUc}V?;Rk?+p-;GnhhnrPdB8$UqQCO9T1zc5P)ltM01INj|6waE--chF)G3(uV_0 zudF=oaA50~<9<({INE zbV;ZeX5%bZbYIn0Ko)oz*H@t+O6CmD!yuQjkcdl}j*FH!&J4!sv;6d+W4}LOSN-)( zfYpVMI(LCu_dSkAA@eZH;i+pV&lEJ_}D&WbD;TM^*0LJRb7@5eZUp z2xB6B1mM6xa#<})N^=MO8^T%Y2*E#!blsFXk}l8Q_6F&n+lAgRxtW@N=HRH-NLraY zJB}B*GjC~E?ti-XdxW=h2+e!&yh*pt9pm$oo+xrFZOe0(R~)`Acuj=+Pl@%fqUQl{ zu$uuA#yY*zIq4I4`khx~MRntLRp>x}U-X1CS|+nSgzj@g)JuMU@vITN!+SEW!}9RU zzbuT;S;LwR#?@t-`3ERy%k|#M$0u!8-RJTrYd>0P+gE5FomW&8kl`n`iSLoifokI4 z`%^>+h;@Y?L`z6ky)h@X&|B$%fyhckc)0rG7@H~!XYK9n|8y7XeEGnDRM)y3IOkeA zEN{`GJveEZ_l<>d@t{pKx-IK=hg+?l}2tcc(5V=g?PZficC<^ z$SHe+Pv+7Ii_&pV#{`)qEO2`>O^+A|Gu2i4yCIqy6>h`_4($^tzRQoD5v#NPY|5l+&@aI(oSogk>cE&KQigdWYx5GWydo z0QG;ii3y{TYg`i7Q??ch%cJ$gmvt~ZiHB^Sf7;}`gjd>L!Zv9e2iinA{>^J+J@!Hq zdGtbvfRua)Ii_21st{Xi-+WVfYe=~V`XJ+>X#RgCvRH{yK3U&3l!Wp9^ zMBtmrTDD$0DKc@I{XQI=7dLrkRZ)@z#w+vl5OOQXlVfWhqVQH_B9cqkXcb?C&&tLQ za)FK(D^DK5b(N3MZ%P04gF;F$#|LkfN#p1n`!hkh5;8PTHs}DAq>Z+xmA4&_$u{S$ zfl`c2BfPO5!l@%2d|^iCH$RIH?>~BbOCEjy@e*m#rgWYtkm%_KhP3teZeJRywgACWF7djW`{Nx-k>dw$ah^9&yHB;6 zOg+7xv$N;8LfZ#b|A}QGA7p{3M7BHq@2g*jMVpNCZ+iT0KhEtnlEhDAM2ZlJ$JN)_~t7b}`ahg4Bd~Qs@TOK(v&yte z{hxr+{gq2a!hrm;o>*KbqVmt^my5E8&Y|j7P^bSC#MH%7QQEzFYJq=e0nkDR00RM6<`y(R#lHJr%aQ*O zf@3n~?mKNAiO+FE4zGU#)^Z@IbFkf&XKGF~q6?kr1cov@ip9$Zq(_g(x_K@MOWlZQ zYu@5fa}4As-tNef!=d|0$cGpB_k17#^#b6{#OWo; zUjbu~_zNN#_p{Y9A$}M#j1jU10^zMKf&$hkUGPh$PMhZR_a3Rw={)JQphVT zc+DQ%p;4&Bpw2_ga_Q}x^LyN@MN||#FQJw_@TiDRE zTND^s<#M|lKfUab1vHXN+ftsR+GS*9Sv5h}i82yRBUeC>@` zRUTOR?lrt>JVa>F!qK&Ls(;gSpeTd^b;!@zQYAjjBgidaO_Na-0Cj?>(DY#aK~cn1 z7KiQ#wajpF)jrm#lg`*N1#UeM^LgMdy+4`P9Kh&D+t#6`#CsvnKZh2iXi$vPD{jYx zuz`?gzWogZML-Ah_-pBq{+)No&A{A`ABMy5xS~P+i@-Etvfv-ZN8dY%0fd$VFI(YN zR3)cymVqbUkb~V^gL`fLJ`I&9UeqY`lbG6k-LeOt)=wM7k7qR)N{@*;>=)D9fj597B0G{Vi^vl`jQFcLlA#}92Zv=_ zM|Yl;PhFm#hFay^BZC%s*gAxsAbLrJUK*COaNyl5#A(}!^G|2cVdpSmnZP?Ebe?+SMHk2_k!O2b_qe{TjB!TaIjTS0-~ zAK1IC6JOyjrFW`K7M;wN6WEc=12EC0k1rM z?pf&$w)Lz4b)P#rt8cwL>>Q{%;A3!3J{72=sUB=H?GUb9Lnej$3iZZCmBL~k=Gl~J zQ;i!pgb!shm}1`Qj`4X5mkj%_n2~pito+J~&zUIvdNI4Hw2K>WrrrMi6TrJIT7orU z5H>9I3BD^e!Hx={!$ed1N)lE%|7p;EvfXV(LIUgZhjZlR4+{c@04(QcI3cu+u=S?> zZtO&1YMY6l$@cgUW^UO?&Z0x=HXq3P>Mq`agQn12;aHJTN?9z%qwbm{V{3kljbch!0rU1k8?DId9FaVZtF$ ze4GhR7GP|hBz8_6v>lHvsmge=GS^A)*njT;r4j86tDHSJyb1xZ0tW4E$SYWq7heC9 zrNXBCrK6Yg&1YAK&Cg5!<)YEK{PeNE!XL8GDj^*d&#?be@hn@_DlIXELRiN{mkICL z4*QIL68K|^Stzs9dT>+S*#{}{;@z*U8M zP(UGS;|wntXbI>QuQ>b>QiF|YB{F~D&W6}X`}CNUCFk9(DzO8=Kqph9=3U| z%URRX_P))f?L`PmV}^DXzgu|kheaGl1D-Wkox1r_(&IEr_zy1HM(7ElsbA~p*o!-_ zF%)CMkYu5)YHZ9Ky5Z8^(2~+w*V2$$OqOAV(X4z)2sZ8G@H3Chql&(y(^dhL9kPuZ z`QbJwQn6d?;&yuTs+TM;Ne`pB!nuNU+{@lB0`x#OY5QKuts!W3ww`k5H`)t!&vJnR zT+6v^1KW>iqe3Ai%iuANy28uaWp+E$Dw9KISH|zS0G~u9PCB@vQxd*qM zilj?7^M^w48=L7*=0xJVjg%a7aE_^GpS>Lp)JvxlYLz_GjVOvMG8&4C;#Sectv5`z zJc?W1TLN@A9XyuHa#5&kMI&N-&}VoVfMp8AN9dKB*RA8{?AA6m5g$H$0{=cErsLFY zpHnL)@tU6rSEOMT?LtU_seiVoiae0OfaAqLMGc<8#Ww*+(zTkY;=*CUr^Pzu86h(h z(xkI96C-`f&xZt1_JJH#O?>H%F6luLlIbzHL;;>#{qf-2Z{&;&E{WYS&hd`NhNQiq zq)*P5J?kz|iSaiDf=t#1*Ok2N)&(m4hvJa|5zl@E0_O9432M{+sdNm2VNgjd=T*^1pD1zyFW8iD$n)Pt z9G=%zWbgMkE>i@3%aX|)UmW%{Q$YWxk*%nGD@c71=pKJSmut6(03V+;3XqX7S)N5t z;3{-(kY@i~)+)>)t{}Zw0$C0ot|IztWe|@vVpUWK?`D|9z*f8H`qfNpe@SoDn)mv* zJhR6|2LbB#0MtphcIRB2q@umlz`uhuTgZfMsG<(9URm{K(6hapT@wMoxile0(sLP1 z$Oqlsb6M;Who60)V2?=;x^2B88f22tgixvIw&t@-iw;k!pl2_e$_-s5&)R_a>EE?I z!K6m7h@xCGOBKo>ew3#L#c4{2l-m5-HMSw{Anj>(*cG&lyxwYM_B+F^P*I5o><4v~ z^wuNyzIs0gAGSjS@yyY{MU9Pbs`mNRr1{tS+&+r?T<8}}FBIMxCn&Ec=ebUlnHOK? z>1hIKx}VWGFz_~{n@p+@7#3CRMwn_K=rn8fgkuc3O-<@k$aF*bmxzK*ZAjP{8aGkt z9!%S{)ac$L=3eN2%0bt9t~N8L6Y_h?cyrf3hXV}ejbAZmw&K%8e)e`(BK}BddamM@W;D!p2WBgp z7Oqg~1@=O!_0j!GisZaxM?@hO8P~^e7+=%{KqsOIc#BK4DW4+*K9Ws_MZ)`0O(Iz| ztKu<+{x}yP+16PV%Npf~E*T$JqK^sl)|@!=U#*?G5Xe=H zG{Wino*Q`VfCe7DY)v~B%o5%>2qaKYki52z8=1mNY;Elnq;ZDp@oUC1D9HHBY!>a1 zly_8sc<^IXBI6BqDE6(fhXvEpkr9_3eMX;$Bb%in2zIBbucMqEtVj`4Ugh;(nwt}y zu+(j>(o5vId-Nsyf)L9*c7R6GR$GIh)OFOm+acdzKXO7auz5B$cTH4ujJ41rPxny; z$TLU0_=RU{QTeU2W-KEC_2JJ^hKFPBjmH{^KMZ6HgnRriIp&i#sxs!`MAHSOEzQX2 zd3l1lslHo^_#JB=yU7&OMX)Su{GY`X&+o^zQj2*~@s`$2)y50qr8?SH8Z9OHu5~S~ zCs;62r=8*uKA9xHorEzdg*K=@`uO3)ciumZj@`E}xY(c(QU4wJ6oUlASofj$sYx2~k7)qM_p2)9_X{Q05?Eo1Vkt{i zGb>MZ)t+OE+8ef&Wo01KDov}2y24Umz)Yr^V2UiYwUymY!4$Zzv<0-SJxd79Uv^+R zA<*%yxJ1Uv2(k*gW{0vrXm^9~d*?^3ud^O!w!CMeZN}i&U%!t`i??-&!c=Ieuov@Q zkI4%U^lq%gd2w%R+H$`-@`p_kJ-EF8R`Q)j`{%1^Y2Ud;ZT~W%ZZ5b%3Q@TiKpH?u zJwBx(WpKY}rLA>VoYcR${VGy_^lrZ(RU6vpeo1b6C5Te4$rTZp)K^Cle)SC8fN~rW zDVf`8`eRWSy_;H8X>Gwj7;&;G zC4@3h9q>ljHd!Rgg)!@TP}CW(mE{a$dlU=*EeE}k`_;6|GuSP%a()iikrTLbu6(Hn z(<*+$N7(a2)xrHhL)O6R~vpHUj3k1;G(P_>A44H%%eWf+GFrZ+U&AoqU zNmEcGGIwR_X~Cg`P*zdlOpbsC8yH}RJ3sHCQ>HG@H-VT*c`z!m7+;%S?f&KmctV!jAkI3H= z1s>ZUH)o{MdBS#`t`FZth3=3Wq&FXnbIK`iW=ij6cG(aG5XN+kAs z;LG4vkCt`Q7g@eXfv3rsqiXZ1`eT<78cKRO5%YH1MHp(RSDlhK<7ub9Y9a+L~pXzkyT40ZyRu z)xp93-bU|oq_eV`8I46L7f+jJUCW_Wn`&FdhGk0VmqzcJqdl8TE{TxafV#yNdq6SVE1&ZxU~0}?-<>p0F+2nLJS=CB zs=B%~P$e7W7@7CPi7@M5rpyi=G0#QNFA&_@B>jn`s-*6lbx=i_64U6qJ&W&zy?*k9 znkD7yu@NRCH7i@5swsTU_2W`uRBil35Dxd-R$=x_0?A*f9Nqn>PU&vd?>6QdYs>Wh zro)d(BQXN>7LqTs#|i?f1-{npt8=G(n8#K@AQVLkBGPorgyk>)t#-Y-v)9jHDoQ@< zq)jSLgC_#s)!Z3FO+!P4NM|17&ED}!tcyHdewCY7m$V3iR_<4l);rPSit^l|-a_$p zUud6QUfiO^Y3Y-;>JP*?VSEANscAB+ux1^;7iKN+HYzGA(~}CS0&*OV_`mstTQiN!+cap_# z{Ez{5H&KR!klV8(iSdQHIgX6g%v(5eEv|5@jwp1{`6d155S2IR-YKJ}NXLkQyG(ZU z=hXRr^)>r(%Q8fgM)2O~y)*Vk`EsTiJv{hi_Kn*q;o{!Xm+_>Ii)e7)(#iN$Lk@zR zvfe69Iq6IS_IM;L4m8Xd>DYi}7Rgv@tIrMZH5M3$Rlnyo zP$u3AhO=R7;}HuOfHR&u%1Zt{e7MEP6onE$(Gc&qk$69stdB7D=Wr=2jTQWnV9n2b z{x78vI0Oi&JIuGGUXM}**)21I($VQB(pGSAqGr-Z6L>K4f&QB6eD}7mP*6Vvx$MMi zef%g&riH%{9=zhak~F6P#n}gF(*QbD+{cLYRc$3F(Fa}%7>kRKwUvD~U>f}OQ-m8Xhj>Jp1?wIV^5Zq#`RZiX4i?wfx z5+}AvE0R%*5|UFjxy34d4kK1*in+z*bC71*94d&$?VVg>Z}sPT&M&(CV#Y5ObTQh8pfJW* zj9m5JEq+i8m*v`Y=KcObI^}|{8!pDV_i8Q;0w!5aeZ8$)!|zNONDQ79Og?`390JvU zO<4o}uv>7D4(^fqzK`3>nzA^hBBj~DtnK*>ww%%lp!>7NaJFag-M*!(y{|$#Pf9E0 z_~|Xx)XhYMCP5BirhmFZfRObenjpQlzmO~Do;7{;pT}3xlbo5hL!+>Uvw-vZ2eKI$iGRkymPp_h}Jq8&TPWv1D{tEjYG~^0A zn_ANNLv>OyA@$0gm;|uk6mg+rt?#cA!Tl`WFI~u+xjnRVH>Q9)` zO4Ew}VS66sPs#7En3UP=d$Nl6{L#R-c%~)n1(>H(tnod$(&^1WUv%T^1SH#VbwGpRuj|uDkmb6;GUc%1^tNQ^@woUW46dm}f4ATR0F?A32Mij2f@VWZvjx7K6p)4UwCBx>Wany1pJ9qe{Ur(n><6nuZMEqajuB4NMb$ zie1f-oSx&Mt7Vf3SU;$BJ-Xs62-+s02{^Bw+&m=qp^*}TDK@IFj3<}E@ziP@4kkA) zr|ja|1J|aD7WEY`wW({)9Z|1HSEzgeK54N&iJ&`UE3Vnb_P%6${Io; zX&i5}OFat>RRv?HhAXpaD(E&RwkJ~-Qu_-d%LM)(bFLup59l z31sS?94WFcXU5S_L4?&3fH(0=GmfwT6};9${c`aDs7;z@kRs9ti6h7)C$vxf~F@BobVLb1KE)7`+)#OWRk2X~Ku zKkj!boP%YZz?DPK&pTR`X*)N&Eteeze0R3FOk}h9(&$IRq|xxxpam-@_fI>0%O17X zjO;`(sr1?d=7o7NEEiAfvah0L->3vv4Gz+ojZo)EC@9!0eov&8&ybbXHDt%t;-{fc z^u*BY%nNq07vO&bN=lq$wU@3O=OTk_TUo(EEi?&PU4(x;Q~6NLS#dDW&ZI`%iE@hfXYY5STCKPd>}n(RDO_4qyfxg(x)ofB_UH z;X?+=TJ~hz&_jrS!Z&!xn?6LjMza4`-d8ZSwS`?5Ymt`XR$3rffe?yYaVZW(13`+r z6DaP*gS!=Ii%W2)m*QG1XrQ<|6f5wh*WNqd`x9O!lSwkeA)K?%-fOS5p7r47V(-yE zcKLVm`gHBZ9FaUPpKP`=*{=_qAD3OZ)Gb35V0bNr8VN;;)k=J8aBo&AG<`v#VT5j> z_|q_o1_a(-&wKTxd}|Q%H!wBBM{Dw!ef$tV8lEXwGmK0Rha#7Tv?j`Cn@r;`QaY0& zBwtkjaUh^{iQ0d~Jq}zqZzN>=h65F+&BS(dp-v7QTf-WsQxO=Oe-;Coo*h#m>a};* zHX^@*AuOnX<&yS!Fnzun* zuBG-9V<&C~>!|N;5tQGr#4ZU++iMP!q0jE6fSh@a_Ls~itMd9%PM@4&2Abi3ZLW-& zAa{JzsT1eBlo>8Ov)yarA`z)AKiKjQ+qg#&GlVvkkxb_i&3#l{4xt3QTnBOQBvDN! zF;Qly^<9_KLURW``t2OU;8i*~T{UZOcwH>N%EUQqUF^z&yX2EZpiD0WIN zGGMT-ufh>pyF#g0BFg%E81Mx~Y~v(M`=vMo`~+tQ_mamRgi2n>)G^jq?;q0S!(bY~ zY5VbsQBj3q%YouA-(*!W{b7$~i)}v+inU4|wzZxzLAlqMW2a^EoX(0Z>{^SHNh>oH zEhh|6A#eF3BV;GCh<+;8yxg|?8VqBYK5(C}t23s` zc)ob|;_zEkWqW=|GYrP(b$n=)&*gnp53y^#7HK;_TX5aiRM(d_y7%I^{qd;RUxRuX zXi`^a&ch#e^xznVQy=)%nTTTbv0tvkWnTm1HO(g2>tesErqnOPgny@v>OqY1JTG2jwMyV#29cbdw)iKa+nt{@Rpx$98Tp1Ra(Cy^kddJ@Xme4% zEjoYL9bNb2=t6;?9Zg4XIgDFYhc*s^c{fg+@6kF7B^27T zzJFkK;0R4-YnE3xCEEZIu`5ASJfWadjD12$64jx?TA&Bdi{jHp9jy zd}laqC}E1x&zRTfwq2&6$H^m*ReRp=eF%d??BiDBffKfsF*!5wfoyvbc|GE^ap#zR zhv{#&)HN{LUWv#}zhSoadBDk0bNA5%jrJ?%08PF6+XCJ7NR}71>Ym1eC~Y9>VgVzU zhmZhoW4u~D;r;HcRsUl+NSPV`16H6N^AGpRw^CBR^&A+dD3|K@Kyhe6F#9(8z7CqZk3vv9)k_E2Z^JC^Fx^AAGX*)$7ZJdAo`uY5#ksty+D)F%7; z%LVl0*qQrEcFI4p-CzA6pl_-<88VO;^tQBfu*khBl_hbgqQYrK(fZUGD9Uh5UhM8z ztiaK4cOh>+|99d40fAF}QgL^PAX8KqCLuZaUN*o;;-tIv5k}@CP;+T%sDeV-q`zYT zpVU~hus+$rX8p`WY-6%@y6wf@>%b>@1p0F-54b-(2rOfEvUN!jZRb_dSas0T1Al(h zF_Uv{+lh|Cl>#^-z2BoTJJ%qmW51%Ka5E$rvoVuyN?C-FM!XILyF5hiQRh#9B#^@o zp1cR6jfrWpnsRlbE|!8u51=r-?wfb+c8)HgD05TZFoAuwIJ33~V6lmLy11euhQv0A>Vl$MryUyHz>v@Xugoe)36$M`*&F{2Q>y54F> z#EFOVx77l3vb`P1^VuefAykg|yUc*ieO}z*NBw$cd8CJ|SL9Fq#G8-=G;YjlJ5_PP ziF5-}3*QzLcSPe!ghQU$MLrm#{>`Hu9T7n~fa5=YtVHyD7|>ZnWx1LOqY)nRrSSD@ zn-p-tXw-EnKX%JBC}2Bpj|;+>t7Uu68Erg5wj~>a?^dpXO(taaHE{2U%hWCw6D?*? z^@>Ag1%N-8m$xq=8+1oOj#(Z0RjDH^i(PTeu7%@3HP%AsL#Lf_jAzhSd7`7?&|)5w zFU62kU3P+OhMHBX(z4cQ$-TUI`&m?=Gb&g)6T2NX2pDAEy?-Ctet&B#KPAJ6QXv+Y zzF#ad82B{rf0Y@50mpt665DBQ(z>Q$ymA%vH~{kUPED+>Jsut&*67}#V)u-?tdq`M zUaJu%BPA`KahH|4?h?|C1!D|MERfcxNc^5=0>S7+)776oNt-kHoL4$Jo4gQ?NY4Is z`+E-R^Fu#5>?rP&c1`qdds6KWovlH4_GbqIH7}BdC5z2QiRvwJ`Dg4&F8`z|P?w(8 zNfVu>L$KOWgK%f9w|Id^H+afyzRc1C%sj=zJC;8=^hTv?zRyOjDLlR8uNUF1f`IxV}aMG%x7nA?t0ujP$oWL z0~Z|!TMjX{zMhO(S9K$RBaJk=YL7c4uQ4bhRzXcqBQ;pQf0v1g=MWI=#)bBi3SCGK z;$MIWk9h{;BUjW*8X7du-v9hZpGxzdc z5=F4{z*FqN_b+#tyw!#iXUTCxRV-+uf5WI_%(XC6bFI(SUotadp?jm3#il{1GZ98h zi_m|z`%I9I;JL{xrOs6U)1cuE02KwrXk*iJbIHF~wLgVU)IIl;fIu-m9S*T+X?)** zf$Z*Rk}&oUX9|<;w{iZy)`h98+>|uK1ge(4vtJ(BF8kagn}|!$T3;_KicdlfDJj{b zB#-S{*VBq%+So`jDU2MY{m2&h1;%9~vj54$u({N>V@pX4{baSROIz~v6z>wPl1BRs z6P@zSgM-R#VFrU?z8xAP4Pq<%@`87-`Yw_twlm{K=%vagC|@@JrP-sXq>qh~+1{q1 zUv$Dqayn~d%wR`PXOB704Hifdi2M|06UIW5d1ou(reoGuWNN6`C$u}ew4ApH_XN!# zfwJt4jd#X_t*B|8aO>N08>p3%lT!&`iJde(SG2Fs`^2A1N`v01WuO*=?I}^$fcApn zThw`R$rQKNrEEeTEEt-7C_l(lzPYTEwbsc zYXA5OSX(?-@I;}lCQVeugO-kp%_Q+8t}N37@v`mqv#LaWHbYMf#ZWBSof7uE#b%;w zF`lmAU`(D(5LJB< z2F-1eW2)1?V||s_d-w&t-2zggGL~k0+4uZzg~NTKp~E*YawwEXpi$EQ&XUGr=(abW zJXz*RW@(hQ=TwKts$@Gq5XhsRHzwC{loctk-tSE0x0p$pebU1Ih|f8T=i=oppLnxn%0lqP6UK5 zV~$n3y&Q&h(h$7L7@AFo4eiBxb{iCckI8`9TkM4K1h~Kyk(;SNNv;2B!g9yjmD>h6 zwVMIYD2&#`d9YK#;Qua>iRtw`+&CXp zouFxw9I3>V93c7d=|g@&meBa}{j33HZFI3pC%eR%6PjF}@AP#{`2>#Zh1Em^htmSv z-Idwg-$(DKd@mwr_`+_ZrHR8BKU~ws8DMsag?vXoyFxR&q#JkF6@vTQrP3o|~ASv~bJ;q^MVw7<77wDCl$y}mw+Sow#nC^Tb>E+t^fCe+*j z7)N~9dSV^WmD1zWlP~*o>8C`I@Um&ZviOfG%#;-Mnxe#GYInS;Ba!ZG;Y7Fdow3!$ z=k5onsQIr)lMio8?-6ebsRaC9rt*y>fB=Rd(r{>#8xQ-La{KlB-nNz8dtt|*~^9!=mgs;L0l+J!516I&R#efZ{}%a1PN11 zC6eJ0eTNlyb@9 z#or{q0EmZ`zc5{X7J6Dc%7H2YKiPe6TKD%KkAq@HMn?V|t`*=W8@@KLnX~>e0hg+@ zPh1_acfdh~FYVz9I%R|Buo#_MT_Q!?QoX6ZHak2evXhH{0Nhc>4Bz;DASY~e*toi$ zp5(7tDOxG5=h#R4FLD1CpaaC4aY)jK_Xez0yr?XqLL-6w)2Xn}%ErcYq}6yxKl>*S z>2)K^UP;A1 zB#KudQhmI2bhNM$cLh(+S(47(^@BCrj&{?$&n*e${KYVb5sy7F^})&~+d@WNBY9>*ml6$<4ZV!MEm!Iv3@}z-#KX?Eq+#yTp7} zk8JX%WcDg2>)Kb~v_O0Im%>cziB9@6a*eHb($3mB!NU~eppsMR=-3QZ10qa0@>hKt zYDLCp_&$SBh$%0Bgcx(zo|^oA6~+-C5t^wXBBE(hW8H%9BQ`amygrqzIh3z#E%?Yh zN@GZyJKOI^pnx~5o@MNpwD``}KC;187|(E}v$=(*p%){@8}PDx|C=jl>X z5XC*F-^>eYEY5_9E1EvP4O_aEy58Y7%H#0a==ZhhUIIGrFi0ea)QY18CNjlc9`DJI zVy~h$Gk-0bcEm+y#wwVkeD!&G!nbSg>}rP?KRFG+@# zUdD7oXdOnmDF#8ew9{acZi@w1YMm7-8JDMjwOnjhpp_KI#B9430M=iJ-oK0GWb zs>m0nxfm-x0G$9i5^WFs5TP1KBnf_4QAJa_==<9zJ1d?D#Pme9cf^Oo#XJ)-LWuBu z!={cM+m{@?&3-eJ2JM44J;FENgV$cNqtKvSB7MQ6>oK*K_Vjn$mdqj86X!Ca(Vsr< z{$M?Q21`?s82ra2=R(giNodLq4K#?MIR{#*U2h&f?Bf-FL!VM}wzI+`0%?-;vt_&j zYH2pR#ik6l^xKve0+zVi#_m}>mJ5)3mW51p6;s}9c-Eb^eqJ9&47|e0EH>nJ`ly&c ze9+APx%k3jTA466P~T&dg&LPLQN>1RN&zi5*J0^04e|N~V_LTFkwm=>@Jo7xJk_tW z5g5EHf5eJMoh3?^i{p)MaWySeC zvTv+?tlp0b)^F%C3g?Pha)=adyyE7QEeMvwj*%RtG5Hq7WsxYI&Ed+77coRjg4&b)X3JUR*l5&F^ptU1itUX!VQ>YJMbziYj_GjBfrBW%D+wTZlX{YMzL z3Ku5qFah}rk32cn=!geT9^sn|8}bjd3UtI4IrzDQ@j z?q18~9%NXFojua?@Oo_rnvt3Dc4Z@GkcJgr2!z=V^YwOrI<$?H_s4TKpKL(f zR!<%&sJU@8uH=| zGSS>sR;)oA$qh@No!jv<=k)r)1W;Y}%92m*rPG&Q%@q~7$Z7FCwdaMZHDK>x(f6nJ zL}*&l66N6ZN*}TCI_#|#kT5UREgj3WcUooc3;^-P7KmuOpWEHJPP*zBTGPMULS9^* zzld^kK|Y%l1ehE>s_c-*tEtf(b(Q>+pRi+g`h3WwJfu_=N`3FU_K0xV>GCTh)ZrGQ zr>8B;{i^|GkQ$fyac3aWY!Tr6myH9pOsx=Axr&=M6_emmv$Q{{bm@)K(aoXo$cgEZ z&U`^rz)BW>UE$Yt@tLqbx}_gI*f{oq=7{9*Nq!WnABz{V*$>q+ry}}km2eIiVOQOq zNkSO8k{l6FSihmCtt~jQx(e}SXR`$nelQu_-{nsZO~9rlx*4>CtA9P5uK*mBzNjxM zwP2&o0g>wAyB{WZJwdCtNuaQQNQO)yUr>;X$FHj^hl3equ1TjQ%YRKjd)U17WTLp| zRe7vu@xogrj-m7My)%-^O%R^w@$5YHX9Zeai@-5n{?f7yhW7MuF8p?QD%Acct_R*8z2&Y;W`PK zR+{vHwX+zz=m0B>=xuj?1($4Gvb#y%OUX*=B^FUW6YH0^AQ14St!Qyg&%Q}i)sl#q zGcVb)Mx;=~jEIMWjY9cbVDpe&aTDZh;*#ckfhcO&Y3A#};-=Lne{tQ%k?Ye3u1Z}J zgk@bNZwG!&^5FGB2LMVTD`o=4A2{#X-YqMak$)}{2&6vbAZc~1E1{^aE6MV9=ss!p zP6EHW7O0QcFEwGLgslCtva;98L@iWWL7TXcJcTB|E3VLn5z0E_U4JcSu+F6BG1arA z%by#uM#~vvuJ#GB-3I`J5hbM(Q(kUCi7B7O{;bLxY}V<_>`?>3c7VHL`io~eh-#Co zITF)Z3S`v%pC)Q|qW8yBIz{k`4@{OTOM_OW*B%|WkIdHnCvb6<&PM7yw%=6VO3#OS z5C}Mf1=rhuhE?<}M?vVPNBJqN$*ozmBWmo%kXNX?@=%9h90O#xd?j8AC zE@$Y06ub$!y@bbh9`T}GHpR8I(h(u1d(9a|*ok`X{_Ms&a#v-fx{$9lq*UgaU}8#M z8I#iSh351FC%fic{E+Q#nzrHApgonVIHDI9ribRXLd(F4Sb%iIOJ+bi*iZh(#=S#- zZB*~L+KQgB^FE?+waiv+sm@f$=P;+*hhz{auSPq+PBGg1dYC+gNd>fgDsyvULk0tO zh16e`s(9Rv4%r9ojkCxQXLbQpHu92ZRypR^DC8otjna^%rlah}Y__R@U2?LPs27{s zcrEXvz~xP0J;J@xN_d3N(fxQj98&&$q4m%#7#*ua_!zWuQU#zk!%|3XvScBriOzVNW+dJ(M!T zb@+SwPeYsa_Z}~4<3Okl#kkCi)qfmD=;(k4{ZIEImI+BK70ccMvdZ05mxYM%6ivMP zZGE9JSOuQuGK|ocQD^E#cE!Az`U6k$WH>ZCnhuncDtbd%H(%45zw))8oSB&|4sc_N zJe%xEyN{?-k%4}m1IW_{q4`g)OV>Ny13Km7{35cMLGI>SW6dRKhp7P0b+dztbn6U? zOm#{@^A>PvKlN%dmIFPgfGFC(+gB{K6fB^1L@}fFyh#XQ} zsf<~8_VL-Ffws2e4V;{f(Rj~dkd;LdM9!OIV~W=;d{ph5$_U z^7QHuUue_xRzQp(S~s5@1$$)n4oXM~F;ahSYm^cn8f0TYvbq7P11nih#d9m_9~-;s zNpk=v1FvhZu)t}FhbIZE^klXfkh;bw_Z;JkJp;xmSH&{<%(T+R2ph&lL8eX%i9BmI zjHN1Z(py^3(dS~EdZQ%LBj6ufFuAhNrVA%VbH zKeDTd81C*d8(XI@wUQ44^#Qiz<98h{pz3N?n%eo*Mt2XxGaDN}M#+3`98)ZlbB_4! zN|l3&n|f2;W*+*7=3Kh0gz5I5hwG(Fz6(NS^BQO?#L=MJUm~nsca7hC86rIG;;q0^kJq#BFh<5-maLifM9SLVBG@H?)AyqW>Okompq-xU|T!HEj}0#^@=tq7h6+f zkBPi8ypJ9}3G)3}Lmjfzp8Xww!Zr1;FVlM`!2n6QED)h71Hu5KH=K~X_YqA;7k{rY z8RyWX$9f6X&RAjY8ik`H>vSj5G^#Ek7vs3HJpA*bFWtl_;w>9+1VynR9W$x6a!xJMOQZd==Htq2C(M_z$3p8s*xkIF16QWsnRChY` zLiZHBw`){iIx}XZ(RQwEJ*d2OW@L)|>JlR(rTnhkLc-3+$*Kc%fdm068D3efUfNW< zUyac@4wwIa327@%{dOKRGnOmGn zHnksFR*=#ujwrL7a&zzD4>~_t%`z>xy|n=iL`JiZNDGiQEK9F{JY}ulXM%9dF}f4t z)v2$gRaRkr&VraMZ&>OaGy<-*nc*l%!YkxrvMyg0NY zF5A?;e<|W3T33kuP--ag40F}^&%S|w?gV=sOb1`V@rfl~8ph8!0YKesfcI9;n=AXN z_C$v&3)i&*wl`CX7A;**i3fp%VYNiUVsL5P>cQOT&%?^P81OU#y1=@Pp&) zWCDP1)=CIAJ+QCu?smYlU2J=Icc})_6L;rw-Zd(T#5e~qt_R z7c=PSv&!OkF+^;0I(I0957E_c+7y zuwEp&+A6rK)0w?O-St$ZVGXD!siJgVw3!?Zp=rCxaWN&+nVbx%U6t{?is6TOJUGKg z_muot!g~G6+TMQi+o#vMqA92}n7D`Ns0xFJTNHn#>Y;GYJLbS@u1Cts$kF^}S4Rim zQ>VE5iV8AwnU}aaJ`WyXc*;vlXl}ZtY$8@ptaumCW1`7+*3_(Yy-&BQ-W8+h?7$LM zVP^Cb!Vn?kSiTfW{J{84G(Es~|CcAB7DEd|4uL|CSC60HZ!wDn&9}+o!#tS~P&%^= z;VX=Q-+dg#Y30$MJkeq`yhY};xcbfd-R*`S;Ih6 zERR>RXR7vJl+D|CCkmvrMMY`%si8AF=%(64&OcrcxBmA({)->_pJ(v_%y+t}T#|18 z$XS11=l{IDMp>K-pT0Rm%~JpQ^uMoJe)pF7KXeR%B(RPdD?_E&$I-s6e~M@Rg6jW$ zMmcS)Z1T$)S;L5SBg}n{m-R%fZatvpsZY5C%vv_lKo9v(zRk; z+Sla2QC|PwFNr@!8=I7dC~D#}B4#7Y&FV|1PktNgL?)Y++7BD4UpjO?gZCBa1SK7yF+jZ?#?^F?=NR} zKkS~fbNbHoy>+WvtLy2fCs5efZA`$H#!ygH(VkKLpM({#0tEj0jfj23=dhg`{1#zg$O@nH)$DTC&H}&4 zDuS{Y*KDHRE+>OHCQInorjS_V2%D{ZFPN~b8fkxU_3`Sm4L1}{J0Q=g7pf1tTb6Oa ze~ObsFX;tCjV|Gd|c3; zpI7&v!FD8{&v5^WRP;x5o`Bn@U97%!BEibjYC@H>SQEXf)02Ih+ir1-{U}msZOKX3 zqI{mq_dw!W)B6ppoW_~8r*<)) zWaNoOZ0wDRIT)B2m`M2%iHV5;_C_W=AW`vu)FF3#q-KtewmgiCE-o$%F02eT_NI)? z+}zxZOe~BnEcB2!=pEdw9ra!5tsTf-jQq=vsIh~gJ=oR}Y-3IQWLMw7#>tV7l=P{f ze}7);Y3vIAPf6Ae|1=BIK*lEtBQpaNzcv3$^1o^-I~d!G*jPb|bmaff$o!-H-@<E`FBkbdSz1Tg-4%=i%riE!DWpgt^0i3%yXLhq-)amAX%=|3zHiIJ$tRNI5b@)F*qd`5TSW>7JmZE*@^{3^bNC0T1pMjB#pSu87P>>RO3VjOGGp4-* zJ2C0wE9Nus+keY&p;5LC`9>-6=(MP*BhmQ^QNeN0&wbXD040%Km9ZWB7KgzTUkLA| zKhUVCV9?5aNQ2#9tRwnE`IX2s<)A-{zxqJBnT9H+@Xd4oXUW40)+55P;=fq@e^gEK zv*q);OR`=>DVTTZpr)rUlmCfjL?$IAh2?(#deIwAOfCaJ-BVmO5ucGE>(W8?c<%gz zE$r=6O{hM?z_msh>D=&r9&l~Mao66WUiRiornz<1X?iYegE9eLS}v$af%>IaKLWZPfSat`xlvx?(s$Btu7&Bj#6ciL>6zv*Z%6XTRNgeHs) z@!d*M1p~T&Er#>EwlQ8$7Li}#(yKFcQ@Q*mI>>1%L8`Gjg>l-sOBqnPDU7SEsma5i zEFOu1_Uu_4R5lR^^AgpX4jwn9R-s$pSzi|oC%92;dp$t(|O*Z&3;3o%qqGdcOV=nyB>DY{*O$z;59yQlge|u z|22^8Vt#C_F;4aumUKQ?qU=(Ro@-l3VbDd$)Am3eiL)^sjT|qCDglDkBOa?Q=EV;v z3vwm1HBY*Ae_OqtxK!+S{CsXqv#~9Cd9YlN{w+ga_-bn?O*{exC1yP1J}|dX_2f8z zzv*H$VZW)jeMx7tC|>W?)AW)~6C6dH29|wn?O*L;^e_2_dcHlTF4pMSY2Lu+)Iq6K zE8RtE_?e98Vw7vu5L9npM8u!3 zz2~Ye^EE!p3KMV9YYFRfTAN^$C;DS=s%NJGx(6rY)fQ?G=j3dh&E@ntZ4`QA$ctjp zIB98Vi`83b8X6NQa7Xzup8On(5=M+hi~FlldvH)Q(7FRVKL{uB^7!PVgv6UhCraU= zwTi6uI9bGLbzxx`b}$xkDfXK=kE0+gLe7u}T~S0ttPYA57#ovP|At~!+Wllx~Sp)qN!gm|3=&D3nI zDU)ED-W0Q@m4WcVt-SUDXcQp zb-Ip+n1=18U#MM)Epz#NwM^svp5M&wC(Ceq5X`4N|5V$7AQBK@SQ|duS0Z8*1s&^T zYu5>lK^rRi4J5YxfDKcrpIPiW<=%TR$Sx*@;pEbO+wdtkI9N%$e$?Ip^G83udi~PX zY5%J6$>)b(?O31J7}r+HH+Py=bh{HdY?j3${jZd8aBwxfaY)S%f36tX^8=H8Pq3~n z)zgt%iAAp50BN%6$O+5XHFT9YGBC>MAvowhO_zkZe+`yGwu&9eQHK8H)?*5!vW2Uy z^AnzvupfP=6;KuaWpsPT_0|6h{R`|<9Pa%3MPYf+J+$IdO0l4ys(IR9tiwUPWXdXL zVfo;~r2OtO_?k`@lb=xRgB*R@eV~u1>%BR8E_!Z2szWli1xJ)(k*Rg}&o4J)Ej`_A zv2B@*WsCJqhAU~_^533)4%qnBtpOAfX zzFXL-5xUJstrZvv@$9TM%1M^ymEF~EiuLBxr400R&WiSDM3fm@1}mV=I-~rnU+6K% z$H&z&e)&}+wkK#ROBF(gy=czK*=vy?MgiV@Je1+=v$V9|IWY8osVDcXEfar2+wX5B zr+4g*2k?>JNxZAIToMI{k4Q-%^}sv@<8g9%Qhw&yELCpUKtBb&Me|1*XlEyXi6Cx5 zbU`&)zfM}~I`5iMm{I^Uv(%XYNKJ!0xU6VFD=mOy&}K*vX?%hUkHwIb=vY@(eSH`q z%@+jLB?HxAyfFQy<<&Dz7=eWRF&H217kscr0l`@Ze|?v}KI1Gi^e?tx=yrw|7-NU| z#TM`KT3s+-I!tvmQaPKJ4};%jKmM4On6=4Z#Ye7tFT+x$E-u9N~Q_ zg&u9rhlL@^(F2(?=ATI45ufi^Vyw2ar5$;?$kSX z{btM`nJVL**sIJ8%U7K@)j17GY|w2sq9z2mCdsDrizuKHfg0?Mi%i1t*(|s9PRi0x zLDc3O8U)PDl}Z8?)OiI3p`FAfBMIRatno>_-q2Rdm9&aFvb?Wu&hu&+YkEO`%Q4F> zszi;Rw-N4^lOe|TJ2>pG2%g#{KY;Kq-IfsGnDl_aUtnNb*-KvuPyb+5q-J`euC5aa zY3j4&*r4vUFVIZJ9FX_xDBMSnPdz;4~GaR_{k>PhP`>J?5sXz5V^kC5sG~(<%B!%n#)s2)ME`8+mN` z+8WO^Zk=~4k#I#O_U|msYD>}%*Vbg9k?)+m#{5cbCR5ss6(|cpXXB`>!MGU{(zh2x zQ7VMfd?pi;gCdVN=6%Wdzn`8~?wc%C7g^l8S@oODr}o)xFCehF z+!bQ11?QPK{Om4Y^qBPY_Q&YT7{=ft*vDCEj1zi8!uCE+q@s)K_M%-=`oxO33+sZDctU(P9|M<^h-_2zLL6NZ(_TP8h!L+Bz@#M-<_q8?U!9{1Su+lcc+&z zkg{SdEiKKK8pz1HaXdO)pBTH9I+vv+FEyiMV~f3djXZcJ zSdo}Wd4IP?clWr1dWD*AnJcd)MaS$oAm_DagMNd_9%16>klphlg$(1%9* zbNustfhg;x<~$rvZ2&8~+iJbmE0zh&w+nhJS}mKiwApiY9%829c6P@sk6q!ZXU>^k zJpHztJ(2tg-9zcz3@}`KKj;HrJv+G;d{Ub22JUBJVPT5V)$7vWOmA`RrMGK>hw&@tI#DEt&Uzixf~(u;uGh7l~#I2QN4 zHQTHYt=!$q>uj!Mcqyp;djbff3GeodFl*1`dZ}6;IXN|XJS-Vch*(Q+{U{rbR4b8z z&x2LMdF{^y)+L3FMgHFor$TBiD~&dJDroW)&z~I6?neI9y1SpNfBbJzKNJ?6IOsJl zfeW!DfxyI$ygl3r&N`3lKINK5e1ELB-#CJhpQa4eYgp+M?($}Pf&3aQNuA-X6O#@Y zR<>gTCN|vfjt)-D)t{asHpIIKzhWE*_YUJ!_H`fmigZv_Sl4_`1LGGQ-Kc6eo_{-R z&G=;FcwmH|F3$M0=>LR8fK5jxSvKcyxVUSmsJG9H68UO1?_vUA#gP{X1aUo&2(i2x zY(^+Iq}E1>AKFmuI{PM122XV|GOmkWZ@thdSWM9HsvLqufS?$gk|Y*47$?j_4AEyq zg2sdb;Q=hmUwvo$tamtM89@rcRZjt@5MD2Wmf)mOg=Hw8>ch=kksh3v3wo_1Ke z-U5M}1CPq&ciReYo%ZGeA9UKp2AgbmSX!1^7|AIpirm~5XIc)42h&c0I&$Oc4;nMb z_-uEEHx`5Lm0hY>`vQ(irre&am>8Hv7MWjfaE5CZwsgIKwIl!M26e6~pxp6nvE z%-4Sp!NU)~>~BX#*BmdG?zQHp7>>jvFSl35v5RUV^`EyWC%`O8{}S2#6i4Rukhx3N z_O0I8BCPa>t+W&u>UA3BqIHqlS`Kp^1?#l?Er4?Qw#?z#9phpvrclYW6+_>F5!mA@ z>H+JWJR{J{882lGJW;{#$+g`=CpK-h@M+p+p)V#=vul{OK!I8!a3N%c>uJWW2Mb2G zmQ=`=;j_84+l-|c=<|49yl7qp#;`E}p?8{GX4p+s#0Op}=E_RPwN0z*oZOg5&hQ)CtWrj5?&M8|yYwO5 zw!jKMjN#1{El@MELs0`u4VD;&+``PaZP5GQr9NY@`r_ z;A2irlf4APX@fQw_mR8V?+uDi!!HD&h74gHf9#@Y$&TrmywTk?YekmM?S(TUt2+S^rukH{RO@O@R0zJ2C(j2WC3lEA5h2 zy8(w{7y;XQ!kAV?G0>SYx}~M1IpFS<-=aTI%u9PY<*W$pM^DqG+5AwL#SiyIirIrC zbdeqfc#=@kh0tUMXlKY$Qw@(*)Y<8IT&AqO@TWW`6bPo#HxW1XLpx%$scr3Ztq)E0 z3cHHeji0hvV(uet0rdCZXlnz3cE+?ng%+Y>V`7S`t75OX zV)OjT8$wzGB}73L71ap?sbb{7IjR1DvZ_C)xW?xx_v6-)mmbbLbo3&%C@zNrl5}x^ zgT0&Rc`mghb*RR+bDm=)Uyn=IQ0D{gs3LH!Z2WN?MnXyX?{a<%S|H8-y6DuDO10fz zS$rBU)e?{tj?E}rlq*WuVnbRzpEI|4!Ht(wp;P}R%dJ0-%=T2eZG-3Pg!+xyjGo(~ z+n(hH23|E)o%8t28%UHgfeq2BpGh%5>eX4;Q?KBv6r|Jok@mTnugH8O#E7gE?jc_1 zd}lDGzan%*BS%w%dRSnKVdRU8N6{_2U*7KnURldZJ3-0FR*_s_xVE+d zTj#=^+7^~|SR6habOAkctBaUnh#(R{DsU4Cd!=Vf5Hf&*qOhVoybDsS_z1q2H^ z8wH$RLk2)51_oJpv5Wg2tM?FGgsEBGr+Gj~_`c8~(0NW~3!I5NZ8W`oMzk5?&KlOR*v&?g=Zz}FKhj$@=rr*{@v$p+#1G@LEpYv=h zlNC=X!i{uGkg`{}-#@UI!w0DPpEzm{L{kORqtw0wEG)*+ou`&@IMdVY$h!J17+vBm z3l_+w6Z_l7R(voS)|RYl%_zl+UnZ#ALpv3&+X+0(hY!uoO`_DuLKMvR!RG}$8q)Fu zH-|y}U0q#Lql@)Uf#SWTsl5gnlbCICX({Tj=eI!rT=+thRGiICdxqHCA_!}CR>g0T(D{r|s9;&V zIA}e@js{h}HZ;Hy3b=`@X|Wrl4s;@yiPz9nOZb`IP7T2in9XEm*b==i(VrFSmg{Yx z(B>3H$=9<8UJRo9Kq>o}6Ja?qBQ;jm?K52~0}P3ji#ioDhpuct1vrT|(P``zuTx3j zAnpH7P_zH^W8eb))ZV0n+(qdublhqMk>F^>jJu7T)&9E5W0^$V=htI{jC1P7MC3wO z`_^fd#rrSqU|+N~?;%sQbQUsHZIx@E?NfF*4s=jZU zbbT<{lOXCdob%>lG8nJbo_O?C0AUe?Q1Lp0D|?*W&yDd}P86xb-a};%K!c~+p%LE0 zcaWZ4+2Oa0GzXU+3Jl^~;N*nxXZ%JzIAN7r6Gtt`ezlx~Con+9sfvqteHD=;vbMhf zk|K$ch)B<>A*h1~9`Pf)f3MrKkbRo50F{hisZ35h4Z+-887^zrKkhzyGYhbrJ{aJk zv1ZB1U6)Qr7exEW5U}Sa46-`(0ttSJK@E%vsE#)Iic6M+mRSMO|M)yZxLI^6^vtBR z$+({K>WI5PQA~)XsU!?MD7dauA}cB(K*_8VEj?>@-!_hTK z0U}1Z$+7~sv^sA5h{fm-+L&Jr+)+aF9c#AN>+4wO+^kEjnCLer{>c4~F%*E6T z;on$^`quX&rtblXSd72pGb33)R-X4o2Lrr5uvTqIyyIf(jB;c@YjidGQfBRNjmP=` z#2;&md>h7`tCI#{a`fE)O+N8j+Y4Bwi?I=T+XFxQ8gu5B|K>biuwH*ZRUU*h-QJGe zh|x64MijBx(-g8aoIx<|BaAMIK85&BPo%mcj2M5nvUG!inmfk!Yz?bjA)v_^I5#_ryCx3o2M&)b zyoGEvxj*XJ<4ilahKHO-aSQqq;cuZnFACctP&kSFaq_QUNGdZ3Wfisw$|8H(2tmQz zpnb935kdIpG%YLu%CFyy0geaeNk*K73OS7YzgGRy-eGJE77AWvm-yF7XOu3?zfSe~ zho(Zlb%r$kpF|4HSR5z(Q}SbPIQm|2`!>Z-o(}hKax7}~dv4HT1hj}P@s(;h{Ndl; zK0yvhqJmWuP?J!TJCk~igxf~l99B}LR?UpJnulul&+(r;LWNnSS4Bj{(+MDim;(Dv zdxm^QlL?lhUSHW2m5sPCqD{CGeAx^@LCe6r4{CSN*!y4v?ElqCE!WS8on&iQ;2OVD zezSwsH^RAXICw7lrjU&@n(3T|Y1KAhUhhaUOs+Eh(=17tn?XNl zoPX}#AwUKoS_|Is`M5|>PyoUj-g9MRJ&V6YL&grT*I$tHWgBuv2B9${F+aWVmhTY0 bKEASNQ$&fEJn?w?lY^9)tZ2Egp3naPI7;S| literal 0 HcmV?d00001 diff --git a/report/img/navbar.png b/report/img/navbar.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf61864781f4fe27ef29d0d5a6abd334676d122 GIT binary patch literal 14707 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%0Alh6OtSqI zFisiIP4~Ba6)y{P<&wB$>+d#ydzlu3Hp8!?nRgJ_Y&g((K$AhP9l2{Of=NaI)2f)S zXa}O&*A-I}wj$s6)aP7}I(P8zxaDy;&V1t#(ji#%0@Wf~GTKrLJgQX{1AU7Sw_z*H z?@%cC0d7-04~mKwBY$izFaebFmmXwzFF{+W6pF6aWfmsV`g2(L@YRSxRIYlDhw5S?TE@V?8s{A|$dQ+=&G^=KgYV2Bcf zg&uF`;wBRyZ`N;9<)k&yYetiQbQixGUvQf+%^Mp<_Et50J5MF!u&mz#`C-pIGRdPG zXgc}kDgR*@55}^2e3im-xU?u$Xt51d7ldGa&VG0510-*dup?+!_h?_cJBcssdf)9s z5f(Ccm9b^r`L1OF$Gvq{OZCF+RqE$&{|460UsGHo_ex{c3XvJ@o`swd;{!%bHi9!wtU9)PUp7?Dy1+piJ-d$N(qws6J{m3idGy(U)^;m)wN96k zs+s~F-C%rj13gn~m@GZr;bNi&^L`*tJhvOfXgQ|y1XrMFA(96-{<**r=yuwaE;M0(T^y=DN zx37Twn~QH*zr-&l{tJw2bpJ~8`!QoZa^#)gU}Bk~WX@msm^T!>TK#W2o+v(9Ks}u^ z*Pgf$rO%yA+ag;!t*n`xYj0;Z@NiDFmC|Gx*+upOSsqbTLHUfz+^|C-8vPi4?@oN&X+D==TqC(^ITVM=oMcI1PS4Nv!*Q zMDS1OX<{ow8sv>T7g;MSVO@|&!Q;QdXMcFh--JcI$)2#@nN>X^RaDk>jAasvn0bm+ z#iL$F;4+QJ_m`0#e72->d+7((eB@SNYY7$pWs|6&^CNk{yQX0@@rwn6y`ciDz$@IM zWEsF7acBG*Ph;%LAjb0>FwSDX&bz$5n*QtFy{}*}@%-1pc*&nrxjzQ0xlDwZ_%-GI zFW2RwnN{N;YFGPjZ^Y!1Ta}Vc5&pek^LG!yH)Iy?3isLt>VInWXCNAJ;iGOM2>nmg z>0cP}Ej(np3Hj~k@Zwj#6*ur(5v*k(|I+n;mwv8z-0G~Y+xfo({uc@U&+&ljFrho* zf64hr(>^v55Q=UIH~j>f{vzRFDPEf|$x-w_NAACr=0Qxe=j<&HZ;z)+iLE@eLx#Z_r< z`^BBOe);#ScC&sO6_jMJxITKRX#k^R^Tm#|36an;~7zN$qm74408%Uw%#eptI9!TUIzRh#Lne| literal 0 HcmV?d00001 diff --git a/report/main.tex b/report/main.tex index 1167655..c186b88 100644 --- a/report/main.tex +++ b/report/main.tex @@ -1142,8 +1142,93 @@ Each route handler wraps its logic in a \texttt{try/except} block that catches t A bare \texttt{Exception} try-catch handles anything unexpected and returns a generic \texttt{500}, while printing a full traceback to the server log via \texttt{traceback.format\_exc()} for debugging. Error messages returned to the client are deliberately vague for unexpected errors, to avoid leaking implementation details. - \subsection{React Frontend} +The frontend is a single-page application built with React and Typescript. It communicates with the Flask backend over a REST API using Axios, and JWT tokens are attached to every authenticated request using an Axios default header. + +React Router is used for client-side routing, and the main pages of the application are: +\begin{itemize} + \item \textbf{Login Page}: A simple login form that allows users to login and register for an account. + \item \textbf{Datasets Page}: A page that lists all of the user's datasets, and allows them to create new datasets through file upload or automated fetching. + \item \textbf{Dataset Status Page}: A page that shows the status of a dataset, including the progress of the data pipeline and any errors that may have occurred. + \item \textbf{Dataset Edit Page}: A page that allows users to rename or delete a dataset. + \item \textbf{Dataset Upload Page}: A page that allows users to upload a dataset through a file upload form. + \item \textbf{Dataset Auto-Fetch Page}: A page that allows users to create a dataset through automated data fetching, by selecting sources and providing search queries and limits. + \item \textbf{Dataset Analysis Page}: A page that shows all of the ethnographic statistics for a dataset, with various visualisations such as line charts, bar charts and heatmaps. +\end{itemize} + +\subsubsection{Layouts} +\paragraph{Main Layout} +The main layout of the application is a React component that includes a header with the application name, a navigation bar with links to the Datasets page, and a sign out button that clears the JWT token from local storage. The main layout also includes a container for the main content of each page, which is rendered using React Router's \texttt{Outlet} component. + +When logged out, instead of showing the datasets and logout button, it simply shows a sign in button. The navigation bar can be seen in Figure \ref{fig:nav_bar}. The main layout is used for all pages. + +\begin{figure} + \centering + \includegraphics[width=1.0\textwidth]{img/navbar.png} + \caption{Navigation Bar in the Main Layout} + \label{fig:nav_bar} +\end{figure} + +\paragraph{Analysis Layout} +The analysis layout is a React component that is used for all of the analysis pages. It still uses the Main Layout, however it adds an extra navigation bar that lets users switch between the different types of analysis, such as temporal analysis or linguistic analysis. This allows the code for navigation to be written once and used across all analysis pages, instead of in each analysis page separately. It also simplifies the URL structure, as all analysis pages have the same base URL of \texttt{/dataset//analysis}, and the type of analysis is determined by an injected React component. + +In addition to an extra navigation bar, it also contains a filter component that allows users to apply filters such as search queries and date filters to the dataset, which are passed in as parameters to the API endpoints to filter the statistics. This allows users to easily filter the dataset and see how the statistics change based on the filters. The analysis layout can be seen in Figure \ref{fig:analysis_layout}. + +\begin{figure} + \centering + \includegraphics[width=1.0\textwidth]{img/analysis_bar.png} + \caption{Analysis Layout with Navigation and Filter Components} + \label{fig:analysis_layout} +\end{figure} + +\subsubsection{Analysis Page} +The Analysis page fires six API requests in parallel to fetch the six categories of statistics (temporal, linguistic, user, interactional, emotional and cultural), and each category is rendered in a separate section on the page with its own visualisation. The API requests are fired when the page loads, and also whenever the filters are updated. This allows the API calls to be centralised into a single component, such that any change in the filters will automatically update all of the statistics on the page. Appying filters re-fetches all six endpoints with new query parameters. + +The majority of statistics are displayed using a custom KPI component that shows the name of the statistic, the value, and a secondary label for other information. An example of this can be seen in Figure \ref{fig:kpi_card}. The statistics that are not displayed as KPIs, such as the temporal analysis line chart and heatmap, will be discussed in the next sections. + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{img/kpi_card.png} + \caption{Custom KPI Component for Displaying Statistics} + \label{fig:kpi_card} +\end{figure} + +\paragraph{Summary} +The summary section contains basic KPI cards such as total posts, total users, comments per post, lurker ratio, time range and sources. Beyond KPIs it also contains a word cloud of the most common words in the dataset, which is generated using the \texttt{react-wordcloud} library. The word cloud provides a visual representation of the most common words in the dataset, with the size of each word corresponding to its frequency. + +A heatmap is included in the Summary section (taken from the temporal analysis endpoint) that shows the distribution of posts and comments by hour of the day and day of the week. This allows users to quickly see when users are most active in the dataset. The heatmap is generated using the \texttt{nivo} library, which provides a convenient way to create a heatmap visualization in React. + +An example of the heatmap can be seen in Figure \ref{fig:heatmap}. + +\begin{figure} + \centering + \includegraphics[width=1.0\textwidth]{img/heatmap.png} + \caption{Heatmap of Posts and Comments by Hour and Day in the Cork Dataset} + \label{fig:heatmap} +\end{figure} + +\paragraph{Emotional} +The emotional analysis section contains KPI cards for the average emotion scores for each emotion class, as well as slightly adjusted KPI cards for showing the emotions per topic, as they include secondary and tertiary labels that show the model confidence for that emotion and the number of posts that were classified with that emotion. + +\paragraph{Users} +The users analysis section contains an interactive interaction graph that shows the replies and chains between users, this was done with the \texttt{react-force-graph} library, which provides a convenient way to create an interactive graph visualization in React. The nodes of the graph represent users, and the edges represent interactions between users (such as replies). The graph filters out edges with less than two interactions and removes deleted-user nodes (like "[Deleted User]") to remove noise. + +An example of the interaction graph can be seen in Figure \ref{fig:interaction_graph}. + +The rest of the statistics in the users section are displayed as KPI cards. + +\begin{figure} + \centering + \includegraphics[width=1.0\textwidth]{img/interaction_graph.png} + \caption{Interaction Graph Showing User Interactions in the Cork Dataset} + \label{fig:interaction_graph} +\end{figure} + +\paragraph{Interactional} +The interactional analysis section contains KPI cards for the conversation concentration metrics, as well as a bar chart showing the top interaction pairs, which is generated using the \texttt{nivo} library. A pie chart is used to show the inequality of contributions in conversations, with the share of comments from the top 10\% most active commenters shown in one color, and the share of comments from the rest of the commenters shown in another color. + +\subsubsection{Corpus Explorer} +The corpus explorer is a feature that allows users to explore the raw data of the dataset. It is implemented as a table that shows all of the posts and comments in the dataset, along with their metadata such as author, timestamp, and topic. \newpage \section{Evaluation} -- 2.49.1 From c11434344a93b137fa67c461d302b0db6903fadf Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Mon, 13 Apr 2026 17:06:46 +0100 Subject: [PATCH 12/13] refactor: streamline CorpusExplorer components --- frontend/src/components/CorpusExplorer.tsx | 9 +- frontend/src/components/CulturalStats.tsx | 19 +- frontend/src/components/SummaryStats.tsx | 4 +- frontend/src/components/UserStats.tsx | 4 +- frontend/src/pages/Stats.tsx | 95 +++++---- frontend/src/utils/corpusExplorer.ts | 218 +++++++++------------ 6 files changed, 147 insertions(+), 202 deletions(-) diff --git a/frontend/src/components/CorpusExplorer.tsx b/frontend/src/components/CorpusExplorer.tsx index b80bda8..6c8c781 100644 --- a/frontend/src/components/CorpusExplorer.tsx +++ b/frontend/src/components/CorpusExplorer.tsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useState } from "react"; +import { useEffect, useState } from "react"; import { Dialog, DialogPanel, DialogTitle } from "@headlessui/react"; import StatsStyling from "../styles/stats_styling"; @@ -103,11 +103,6 @@ const CorpusExplorer = ({ } }, [open, title, records.length]); - const visibleRecords = useMemo( - () => records.slice(0, visibleCount), - [records, visibleCount], - ); - const hasMoreRecords = visibleCount < records.length; return ( @@ -158,7 +153,7 @@ const CorpusExplorer = ({ paddingRight: 4, }} > - {visibleRecords.map((record, index) => { + {records.slice(0, visibleCount).map((record, index) => { const recordKey = getRecordKey(record, index); const titleText = getRecordTitle(record); const content = cleanText(record.content); diff --git a/frontend/src/components/CulturalStats.tsx b/frontend/src/components/CulturalStats.tsx index d489168..38b7ee6 100644 --- a/frontend/src/components/CulturalStats.tsx +++ b/frontend/src/components/CulturalStats.tsx @@ -8,11 +8,11 @@ import { buildHedgeSpec, buildIdentityBucketSpec, buildPermissionSpec, - getExplorerButtonStyle, type CorpusExplorerSpec, } from "../utils/corpusExplorer"; const styles = StatsStyling; +const exploreButtonStyle = { padding: "4px 8px", fontSize: 12 }; type CulturalStatsProps = { data: CulturalAnalysisResponse; @@ -22,7 +22,7 @@ type CulturalStatsProps = { const renderExploreButton = (onClick: () => void) => ( @@ -59,21 +59,6 @@ const CulturalStats = ({ data, onExplore }: CulturalStatsProps) => { return `${dominantLabel} (${(dominant[1] * 100).toFixed(1)}%)`; }; - const stanceSublabel = ( - per1kTokens: number | undefined, - emotionAvg: Record | undefined, - ) => { - const rateLabel = - typeof per1kTokens === "number" - ? `${per1kTokens.toFixed(1)} per 1k words` - : "Word frequency"; - const emotionLabel = topEmotion(emotionAvg); - - return emotionLabel === "—" - ? rateLabel - : `${rateLabel} • Avg mood: ${emotionLabel}`; - }; - return (
    diff --git a/frontend/src/components/SummaryStats.tsx b/frontend/src/components/SummaryStats.tsx index d53d6da..9597fca 100644 --- a/frontend/src/components/SummaryStats.tsx +++ b/frontend/src/components/SummaryStats.tsx @@ -26,12 +26,12 @@ import { buildDateBucketSpec, buildOneTimeUsersSpec, buildUserSpec, - getExplorerButtonStyle, type CorpusExplorerSpec, } from "../utils/corpusExplorer"; const styles = StatsStyling; const MAX_WORDCLOUD_WORDS = 250; +const exploreButtonStyle = { padding: "4px 8px", fontSize: 12 }; const WORDCLOUD_OPTIONS = { rotations: 2, @@ -80,7 +80,7 @@ function convertFrequencyData(data: FrequencyWord[]) { const renderExploreButton = (onClick: () => void) => ( diff --git a/frontend/src/components/UserStats.tsx b/frontend/src/components/UserStats.tsx index 50d96f3..fc2a57e 100644 --- a/frontend/src/components/UserStats.tsx +++ b/frontend/src/components/UserStats.tsx @@ -20,7 +20,7 @@ type GraphLink = { value: number; }; -function ApiToGraphData(apiData: InteractionGraph) { +function toGraphData(apiData: InteractionGraph) { const links: GraphLink[] = []; const connectedNodeIds = new Set(); @@ -56,7 +56,7 @@ const UserStats = ({ onExplore, }: UserStatsProps) => { const graphData = useMemo( - () => ApiToGraphData(interactionGraph), + () => toGraphData(interactionGraph), [interactionGraph], ); const graphContainerRef = useRef(null); diff --git a/frontend/src/pages/Stats.tsx b/frontend/src/pages/Stats.tsx index 0651a30..a14e733 100644 --- a/frontend/src/pages/Stats.tsx +++ b/frontend/src/pages/Stats.tsx @@ -66,6 +66,26 @@ const EMPTY_EXPLORER_STATE: ExplorerState = { error: "", }; +const createExplorerState = ( + spec: CorpusExplorerSpec, + patch: Partial = {}, +): ExplorerState => ({ + open: true, + title: spec.title, + description: spec.description, + emptyMessage: spec.emptyMessage ?? "No matching records found.", + records: [], + loading: false, + error: "", + ...patch, +}); + +const compareRecordsByNewest = (a: DatasetRecord, b: DatasetRecord) => { + const aValue = String(a.dt ?? a.date ?? a.timestamp ?? ""); + const bValue = String(b.dt ?? b.date ?? b.timestamp ?? ""); + return bValue.localeCompare(aValue); +}; + const parseJsonLikePayload = (value: string): unknown => { const normalized = value .replace(/\uFEFF/g, "") @@ -86,16 +106,23 @@ const parseJsonLikePayload = (value: string): unknown => { return JSON.parse(normalized); }; +const tryParseRecords = (value: string) => { + try { + return normalizeRecordPayload(parseJsonLikePayload(value)); + } catch { + return null; + } +}; + const parseRecordStringPayload = (payload: string): DatasetRecord[] | null => { const trimmed = payload.trim(); if (!trimmed) { return []; } - try { - return normalizeRecordPayload(parseJsonLikePayload(trimmed)); - } catch { - // Continue with additional fallback formats below. + const direct = tryParseRecords(trimmed); + if (direct) { + return direct; } const ndjsonLines = trimmed @@ -106,29 +133,24 @@ const parseRecordStringPayload = (payload: string): DatasetRecord[] | null => { try { return ndjsonLines.map((line) => parseJsonLikePayload(line)) as DatasetRecord[]; } catch { - // Continue with wrapped JSON extraction. } } const bracketStart = trimmed.indexOf("["); const bracketEnd = trimmed.lastIndexOf("]"); if (bracketStart !== -1 && bracketEnd > bracketStart) { - const candidate = trimmed.slice(bracketStart, bracketEnd + 1); - try { - return normalizeRecordPayload(parseJsonLikePayload(candidate)); - } catch { - // Continue with object extraction. + const parsed = tryParseRecords(trimmed.slice(bracketStart, bracketEnd + 1)); + if (parsed) { + return parsed; } } const braceStart = trimmed.indexOf("{"); const braceEnd = trimmed.lastIndexOf("}"); if (braceStart !== -1 && braceEnd > braceStart) { - const candidate = trimmed.slice(braceStart, braceEnd + 1); - try { - return normalizeRecordPayload(parseJsonLikePayload(candidate)); - } catch { - return null; + const parsed = tryParseRecords(trimmed.slice(braceStart, braceEnd + 1)); + if (parsed) { + return parsed; } } @@ -316,45 +338,22 @@ const StatPage = () => { }; const openExplorer = async (spec: CorpusExplorerSpec) => { - setExplorerState({ - open: true, - title: spec.title, - description: spec.description, - emptyMessage: spec.emptyMessage ?? "No matching records found.", - records: [], - loading: true, - error: "", - }); + setExplorerState(createExplorerState(spec, { loading: true })); try { const records = await ensureFilteredRecords(); const context = buildExplorerContext(records); - const matched = records.filter((record) => spec.matcher(record, context)); - matched.sort((a, b) => { - const aValue = String(a.dt ?? a.date ?? a.timestamp ?? ""); - const bValue = String(b.dt ?? b.date ?? b.timestamp ?? ""); - return bValue.localeCompare(aValue); - }); + const matched = records + .filter((record) => spec.matcher(record, context)) + .sort(compareRecordsByNewest); - setExplorerState({ - open: true, - title: spec.title, - description: spec.description, - emptyMessage: spec.emptyMessage ?? "No matching records found.", - records: matched, - loading: false, - error: "", - }); + setExplorerState(createExplorerState(spec, { records: matched })); } catch (e) { - setExplorerState({ - open: true, - title: spec.title, - description: spec.description, - emptyMessage: spec.emptyMessage ?? "No matching records found.", - records: [], - loading: false, - error: `Failed to load corpus records: ${String(e)}`, - }); + setExplorerState( + createExplorerState(spec, { + error: `Failed to load corpus records: ${String(e)}`, + }), + ); } }; diff --git a/frontend/src/utils/corpusExplorer.ts b/frontend/src/utils/corpusExplorer.ts index e1ddb70..24801e3 100644 --- a/frontend/src/utils/corpusExplorer.ts +++ b/frontend/src/utils/corpusExplorer.ts @@ -1,5 +1,3 @@ -import type { CSSProperties } from "react"; - type EntityRecord = { text?: string; [key: string]: unknown; @@ -58,11 +56,6 @@ const EMOTION_KEYS = [ "emotion_sadness", ] as const; -const shrinkButtonStyle: CSSProperties = { - padding: "4px 8px", - fontSize: 12, -}; - const toText = (value: unknown) => { if (typeof value === "string") { return value; @@ -83,6 +76,7 @@ const toText = (value: unknown) => { }; const normalize = (value: unknown) => toText(value).trim().toLowerCase(); +const getAuthor = (record: DatasetRecord) => toText(record.author).trim(); const getRecordText = (record: DatasetRecord) => `${record.title ?? ""} ${record.content ?? ""}`.trim(); @@ -152,11 +146,11 @@ const matchesPhrase = (record: DatasetRecord, phrase: string) => { return false; } - return pattern.test(getRecordText(record).toLowerCase()); + return pattern.test(getRecordText(record)); }; const recordIdentityBucket = (record: DatasetRecord) => { - const text = getRecordText(record).toLowerCase(); + const text = getRecordText(record); const inHits = countMatches(IN_GROUP_PATTERN, text); const outHits = countMatches(OUT_GROUP_PATTERN, text); @@ -171,48 +165,30 @@ const recordIdentityBucket = (record: DatasetRecord) => { return "tie"; }; -const createAuthorEventCounts = (records: DatasetRecord[]) => { - const counts = new Map(); +const buildExplorerContext = (records: DatasetRecord[]): CorpusExplorerContext => { + const authorByPostId = new Map(); + const authorEventCounts = new Map(); + const authorCommentCounts = new Map(); + for (const record of records) { - const author = toText(record.author).trim(); + const author = getAuthor(record); if (!author) { continue; } - counts.set(author, (counts.get(author) ?? 0) + 1); - } - return counts; -}; -const createAuthorCommentCounts = (records: DatasetRecord[]) => { - const counts = new Map(); - for (const record of records) { - const author = toText(record.author).trim(); - if (!author || record.type !== "comment") { - continue; + authorEventCounts.set(author, (authorEventCounts.get(author) ?? 0) + 1); + + if (record.type === "comment") { + authorCommentCounts.set(author, (authorCommentCounts.get(author) ?? 0) + 1); } - counts.set(author, (counts.get(author) ?? 0) + 1); - } - return counts; -}; -const createAuthorByPostId = (records: DatasetRecord[]) => { - const map = new Map(); - for (const record of records) { - const postId = record.post_id; - const author = toText(record.author).trim(); - if (postId === null || postId === undefined || !author) { - continue; + if (record.post_id !== null && record.post_id !== undefined) { + authorByPostId.set(String(record.post_id), author); } - map.set(String(postId), author); } - return map; -}; -const buildExplorerContext = (records: DatasetRecord[]): CorpusExplorerContext => ({ - authorByPostId: createAuthorByPostId(records), - authorEventCounts: createAuthorEventCounts(records), - authorCommentCounts: createAuthorCommentCounts(records), -}); + return { authorByPostId, authorEventCounts, authorCommentCounts }; +}; const buildAllRecordsSpec = (): CorpusExplorerSpec => ({ title: "Corpus Explorer", @@ -221,19 +197,27 @@ const buildAllRecordsSpec = (): CorpusExplorerSpec => ({ matcher: () => true, }); -const buildUserSpec = (author: string): CorpusExplorerSpec => ({ - title: `User: ${author}`, - description: `All records authored by ${author}.`, - emptyMessage: `No records found for ${author}.`, - matcher: (record) => normalize(record.author) === normalize(author), -}); +const buildUserSpec = (author: string): CorpusExplorerSpec => { + const target = normalize(author); -const buildTopicSpec = (topic: string): CorpusExplorerSpec => ({ - title: `Topic: ${topic}`, - description: `Records assigned to the ${topic} topic bucket.`, - emptyMessage: `No records found in the ${topic} topic bucket.`, - matcher: (record) => normalize(record.topic) === normalize(topic), -}); + return { + title: `User: ${author}`, + description: `All records authored by ${author}.`, + emptyMessage: `No records found for ${author}.`, + matcher: (record) => normalize(record.author) === target, + }; +}; + +const buildTopicSpec = (topic: string): CorpusExplorerSpec => { + const target = normalize(topic); + + return { + title: `Topic: ${topic}`, + description: `Records assigned to the ${topic} topic bucket.`, + emptyMessage: `No records found in the ${topic} topic bucket.`, + matcher: (record) => normalize(record.topic) === target, + }; +}; const buildDateBucketSpec = (date: string): CorpusExplorerSpec => ({ title: `Date Bucket: ${date}`, @@ -256,88 +240,75 @@ const buildNgramSpec = (ngram: string): CorpusExplorerSpec => ({ matcher: (record) => matchesPhrase(record, ngram), }); -const buildEntitySpec = (entity: string): CorpusExplorerSpec => ({ - title: `Entity: ${entity}`, - description: `Records mentioning the ${entity} entity.`, - emptyMessage: `No records found for the ${entity} entity.`, - matcher: (record) => { - const target = normalize(entity); - const entities = Array.isArray(record.ner_entities) ? record.ner_entities : []; - return entities.some((item) => normalize(item?.text) === target) || matchesPhrase(record, entity); - }, -}); +const buildEntitySpec = (entity: string): CorpusExplorerSpec => { + const target = normalize(entity); -const buildSourceSpec = (source: string): CorpusExplorerSpec => ({ - title: `Source: ${source}`, - description: `Records from the ${source} source.`, - emptyMessage: `No records found for ${source}.`, - matcher: (record) => normalize(record.source) === normalize(source), -}); + return { + title: `Entity: ${entity}`, + description: `Records mentioning the ${entity} entity.`, + emptyMessage: `No records found for the ${entity} entity.`, + matcher: (record) => { + const entities = Array.isArray(record.ner_entities) ? record.ner_entities : []; + return entities.some((item) => normalize(item?.text) === target) || matchesPhrase(record, entity); + }, + }; +}; -const buildDominantEmotionSpec = (emotion: string): CorpusExplorerSpec => ({ - title: `Dominant Emotion: ${emotion}`, - description: `Records where ${emotion} is the strongest emotion score.`, - emptyMessage: `No records found with dominant emotion ${emotion}.`, - matcher: (record) => getDominantEmotion(record) === normalize(emotion), -}); +const buildSourceSpec = (source: string): CorpusExplorerSpec => { + const target = normalize(source); -const buildReplyPairSpec = (source: string, target: string): CorpusExplorerSpec => ({ - title: `Reply Path: ${source} -> ${target}`, - description: `Reply records authored by ${source} in response to ${target}.`, - emptyMessage: `No reply records found for ${source} -> ${target}.`, - matcher: (record, context) => { - if (normalize(record.author) !== normalize(source)) { - return false; - } + return { + title: `Source: ${source}`, + description: `Records from the ${source} source.`, + emptyMessage: `No records found for ${source}.`, + matcher: (record) => normalize(record.source) === target, + }; +}; - const replyTo = record.reply_to; - if (replyTo === null || replyTo === undefined || replyTo === "") { - return false; - } +const buildDominantEmotionSpec = (emotion: string): CorpusExplorerSpec => { + const target = normalize(emotion); - const replyTarget = context.authorByPostId.get(String(replyTo)); - return normalize(replyTarget) === normalize(target); - }, -}); + return { + title: `Dominant Emotion: ${emotion}`, + description: `Records where ${emotion} is the strongest emotion score.`, + emptyMessage: `No records found with dominant emotion ${emotion}.`, + matcher: (record) => getDominantEmotion(record) === target, + }; +}; + +const buildReplyPairSpec = (source: string, target: string): CorpusExplorerSpec => { + const sourceName = normalize(source); + const targetName = normalize(target); + + return { + title: `Reply Path: ${source} -> ${target}`, + description: `Reply records authored by ${source} in response to ${target}.`, + emptyMessage: `No reply records found for ${source} -> ${target}.`, + matcher: (record, context) => { + if (normalize(record.author) !== sourceName) { + return false; + } + + const replyTo = record.reply_to; + if (replyTo === null || replyTo === undefined || replyTo === "") { + return false; + } + + return normalize(context.authorByPostId.get(String(replyTo))) === targetName; + }, + }; +}; const buildOneTimeUsersSpec = (): CorpusExplorerSpec => ({ title: "One-Time Users", description: "Records written by authors who appear exactly once in the filtered corpus.", emptyMessage: "No one-time-user records found.", matcher: (record, context) => { - const author = toText(record.author).trim(); + const author = getAuthor(record); return !!author && context.authorEventCounts.get(author) === 1; }, }); -const buildTopCommentersSpec = (topAuthorCount: number): CorpusExplorerSpec => ({ - title: "Top Commenters", - description: `Comment records from the top ${topAuthorCount} commenters in the filtered corpus.`, - emptyMessage: "No top-commenter records found.", - matcher: (record, context) => { - if (record.type !== "comment") { - return false; - } - - const rankedAuthors = Array.from(context.authorCommentCounts.entries()) - .sort((a, b) => b[1] - a[1]) - .slice(0, topAuthorCount) - .map(([author]) => author); - - return rankedAuthors.includes(toText(record.author).trim()); - }, -}); - -const buildSingleCommentAuthorsSpec = (): CorpusExplorerSpec => ({ - title: "Single-Comment Authors", - description: "Comment records from authors who commented exactly once.", - emptyMessage: "No single-comment-author records found.", - matcher: (record, context) => { - const author = toText(record.author).trim(); - return record.type === "comment" && !!author && context.authorCommentCounts.get(author) === 1; - }, -}); - const buildIdentityBucketSpec = (bucket: "in" | "out" | "tie"): CorpusExplorerSpec => { const labels = { in: "In-Group Posts", @@ -376,9 +347,7 @@ const buildDeonticSpec = () => const buildPermissionSpec = () => buildPatternSpec("Permission Words", "Records containing permission language.", PERMISSION_PATTERN); -const getExplorerButtonStyle = () => shrinkButtonStyle; - -export type { DatasetRecord, CorpusExplorerContext, CorpusExplorerSpec }; +export type { DatasetRecord, CorpusExplorerSpec }; export { buildAllRecordsSpec, buildCertaintySpec, @@ -393,13 +362,10 @@ export { buildOneTimeUsersSpec, buildPermissionSpec, buildReplyPairSpec, - buildSingleCommentAuthorsSpec, buildSourceSpec, buildTopicSpec, - buildTopCommentersSpec, buildUserSpec, buildWordSpec, getDateBucket, - getExplorerButtonStyle, toText, }; -- 2.49.1 From 9964a919c370109fddc78884cd01bd11b0a6b43a Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Mon, 13 Apr 2026 19:01:51 +0100 Subject: [PATCH 13/13] docs(report): enhance frontend design section --- report/img/frontend.png | Bin 0 -> 309262 bytes report/main.tex | 42 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 report/img/frontend.png diff --git a/report/img/frontend.png b/report/img/frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..d45dce43ab245e0fd0179ba2dd0f137247b38bb1 GIT binary patch literal 309262 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