{
"cells": [
{
"cell_type": "markdown",
"id": "78a5a468-2d75-4a6b-a352-e0318bc2d091",
"metadata": {},
"source": [
"# Spike Detection Algorithm Analysis\n",
"\n",
"Can we automatically detect when there's lots of positive or negative sentiment discussion in a subreddit on a particular day?\n",
"\n",
"The goal of the this notebook is to identify \"spikes\" in the daily average sentiment score\n",
"- We care about both positive or negative spikes\n",
"- We want the \"spike\" to be significant relative to historical values\n",
"\n",
"This notebook\n",
"- Walks through importing data from the HuggingFace dataset hub\n",
"- Compares a few different spike definitions based on rolling statistics\n",
"- Selects the best spike definition based on sanity checking against historical data"
]
},
{
"cell_type": "markdown",
"id": "453c6fa8-2c87-4bc1-96c1-a2505885e36a",
"metadata": {},
"source": [
"## Imports and Definitions"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "a334cc8c-9260-44cc-a2bc-a51860aa207a",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:55:16.089718Z",
"iopub.status.busy": "2025-06-25T22:55:16.089718Z",
"iopub.status.idle": "2025-06-25T22:55:17.267352Z",
"shell.execute_reply": "2025-06-25T22:55:17.267065Z",
"shell.execute_reply.started": "2025-06-25T22:55:16.089718Z"
}
},
"outputs": [],
"source": [
"import os\n",
"import glob\n",
"import datetime\n",
"from pathlib import Path\n",
"from dotenv import load_dotenv\n",
"import pandas as pd\n",
"import numpy as np\n",
"import pyarrow\n",
"\n",
"from huggingface_hub import HfApi\n",
"from huggingface_hub.utils import disable_progress_bars\n",
"\n",
"disable_progress_bars() # turns off all HF progress bars"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "393c87bf-19ce-41c6-a19d-f0469d080024",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:55:17.796155Z",
"iopub.status.busy": "2025-06-25T22:55:17.796155Z",
"iopub.status.idle": "2025-06-25T22:55:17.802963Z",
"shell.execute_reply": "2025-06-25T22:55:17.802963Z",
"shell.execute_reply.started": "2025-06-25T22:55:17.796155Z"
}
},
"outputs": [],
"source": [
"def load_reddit_data(folder='data_scored'):\n",
" df = []\n",
" repo_id = \"hblim/top_reddit_posts_daily\"\n",
" api = HfApi()\n",
" all_files = api.list_repo_files(repo_id, repo_type=\"dataset\")\n",
" parquet_files = sorted([f for f in all_files if f.startswith(folder) and f.endswith(\".parquet\")])\n",
"\n",
" for shard in parquet_files:\n",
" local_path = api.hf_hub_download(repo_id=repo_id, filename=shard, repo_type=\"dataset\")\n",
" file_date = os.path.splitext(os.path.basename(local_path))[0]\n",
" df.append(pd.read_parquet(local_path).assign(filedate=file_date))\n",
"\n",
" df = pd.concat(df, ignore_index=True)\n",
" print(f\"Total records across {df.filedate.nunique()} days: {len(df)}\")\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "23cdc75b-55cf-4bcb-970e-c0339f1a60cb",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:55:18.545488Z",
"iopub.status.busy": "2025-06-25T22:55:18.545488Z",
"iopub.status.idle": "2025-06-25T22:55:18.552202Z",
"shell.execute_reply": "2025-06-25T22:55:18.552202Z",
"shell.execute_reply.started": "2025-06-25T22:55:18.545488Z"
}
},
"outputs": [],
"source": [
"def summary_from_df(df: pd.DataFrame, gamma_post: float = 0.3) -> pd.DataFrame:\n",
" \"\"\"\n",
" Return a DataFrame with daily & subreddit aggregates.\n",
"\n",
" Expects columns:\n",
" retrieved_at - UTC timestamp or ISO-date string\n",
" subreddit - subreddit name\n",
" sentiment - numeric score (e.g. −1 … 1)\n",
" score - numeric weight / post score\n",
"\n",
" Output columns:\n",
" date (datetime.date)\n",
" subreddit (string)\n",
" community_weighted_sentiment\n",
" count\n",
" \"\"\"\n",
" # Normalize retrieved_at to datetime and extract calendar day\n",
" df = df.copy()\n",
" df[\"date\"] = pd.to_datetime(df[\"retrieved_at\"]).dt.date\n",
" \n",
" # Group by date and subreddit\n",
" grouped = df.groupby([\"date\", \"subreddit\"])\n",
" \n",
" # Aggregate metrics\n",
" result = grouped.agg(\n",
" # First calculate raw mean_sentiment\n",
" raw_mean_sentiment=(\"sentiment\", \"mean\"),\n",
" count=(\"sentiment\", \"count\"),\n",
" ).reset_index()\n",
" \n",
" # Apply transformation to raw_mean_sentiment to get values in range [-1, 1] instead of [0, 1]\n",
" result[\"mean_sentiment\"] = 2 * result[\"raw_mean_sentiment\"] - 1\n",
" \n",
" # Remove the raw mean column\n",
" result = result.drop(columns=\"raw_mean_sentiment\")\n",
" \n",
" # Calculate engagement-adjusted sentiment (EAS) for each group\n",
" # 1. Ensure 'score' is numeric\n",
" df[\"score_num\"] = pd.to_numeric(df[\"score\"], errors=\"coerce\").fillna(0)\n",
" # 2. Compute base weights (1 + log1p(score))\n",
" weights_base = 1 + np.log1p(df[\"score_num\"].clip(lower=0))\n",
" # 3. Apply post weight multiplier\n",
" weights = weights_base * np.where(df.get(\"type\", None) == \"post\", gamma_post, 1.0)\n",
" df[\"weight\"] = weights\n",
" # 4. Compute EAS per group: weighted average of sentiment\n",
" community_weighted_sentiments = []\n",
" for (date, subreddit), group in grouped:\n",
" w = group[\"weight\"]\n",
" s = group[\"sentiment\"]\n",
" eas = (w * s).sum() / w.sum() if w.sum() > 0 else 0\n",
" community_weighted_sentiments.append(eas)\n",
" result[\"community_weighted_sentiment\"] = community_weighted_sentiments\n",
" \n",
" # Normalize community_weighted_sentiment to range [-1,1]\n",
" result[\"community_weighted_sentiment\"] = 2 * result[\"community_weighted_sentiment\"] - 1\n",
" \n",
" # Ensure consistent column order\n",
" result = result[[\"date\", \"subreddit\", \"community_weighted_sentiment\"]]\n",
" \n",
" return result"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "1fa7ab09-eee2-435a-87b8-38acd91c0a4e",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:55:22.130355Z",
"iopub.status.busy": "2025-06-25T22:55:22.130355Z",
"iopub.status.idle": "2025-06-25T22:55:42.914076Z",
"shell.execute_reply": "2025-06-25T22:55:42.914076Z",
"shell.execute_reply.started": "2025-06-25T22:55:22.130355Z"
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total records across 258 days: 82180\n"
]
}
],
"source": [
"df = load_reddit_data()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "0597fb74-e300-4a7e-ae63-5732cb22ed59",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:55:42.915081Z",
"iopub.status.busy": "2025-06-25T22:55:42.915081Z",
"iopub.status.idle": "2025-06-25T22:55:43.068733Z",
"shell.execute_reply": "2025-06-25T22:55:43.068733Z",
"shell.execute_reply.started": "2025-06-25T22:55:42.915081Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" subreddit \n",
" community_weighted_sentiment \n",
" \n",
" \n",
" date \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2025-05-01 \n",
" LocalLLaMA \n",
" -0.477880 \n",
" \n",
" \n",
" 2025-05-01 \n",
" OpenAI \n",
" -0.516990 \n",
" \n",
" \n",
" 2025-05-01 \n",
" artificial \n",
" -0.506502 \n",
" \n",
" \n",
" 2025-05-01 \n",
" singularity \n",
" -0.435683 \n",
" \n",
" \n",
" 2025-05-02 \n",
" LocalLLaMA \n",
" -0.434680 \n",
" \n",
" \n",
" 2025-05-02 \n",
" OpenAI \n",
" -0.487859 \n",
" \n",
" \n",
" 2025-05-02 \n",
" artificial \n",
" -0.504200 \n",
" \n",
" \n",
" 2025-05-02 \n",
" singularity \n",
" -0.415097 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" subreddit community_weighted_sentiment\n",
"date \n",
"2025-05-01 LocalLLaMA -0.477880\n",
"2025-05-01 OpenAI -0.516990\n",
"2025-05-01 artificial -0.506502\n",
"2025-05-01 singularity -0.435683\n",
"2025-05-02 LocalLLaMA -0.434680\n",
"2025-05-02 OpenAI -0.487859\n",
"2025-05-02 artificial -0.504200\n",
"2025-05-02 singularity -0.415097"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_summary = summary_from_df(df).set_index('date',drop=True)\n",
"df_summary.head(8)"
]
},
{
"cell_type": "markdown",
"id": "cd6d07cd-a56d-409e-a16b-2c565ee088b6",
"metadata": {},
"source": [
"## Analysis to Determine Spike Metric"
]
},
{
"cell_type": "markdown",
"id": "91bfb2e1-a11a-48b6-9f0a-2e50d60f1630",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"### Method 1: Calculate Z-score based on mean and std of prior week"
]
},
{
"cell_type": "markdown",
"id": "16f54df0-db57-4b75-8fa4-2f7fd9c81f9f",
"metadata": {},
"source": [
"Use prior week mean and std"
]
},
{
"cell_type": "code",
"execution_count": 184,
"id": "2024fb08-fbf5-4d8c-b56a-bae1d5e05730",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-24T21:58:50.873829Z",
"iopub.status.busy": "2025-06-24T21:58:50.873829Z",
"iopub.status.idle": "2025-06-24T21:58:50.886826Z",
"shell.execute_reply": "2025-06-24T21:58:50.886826Z",
"shell.execute_reply.started": "2025-06-24T21:58:50.873829Z"
}
},
"outputs": [],
"source": [
"rolling = df_summary.groupby('subreddit')[['community_weighted_sentiment']].rolling(7)\n",
"mean_cws = rolling.mean().groupby('subreddit').shift(1).reset_index().rename(columns={'community_weighted_sentiment': 'mean_cws'})\n",
"std_cws = rolling.std().groupby('subreddit').shift(1).reset_index().rename(columns={'community_weighted_sentiment': 'std_cws'})"
]
},
{
"cell_type": "code",
"execution_count": 185,
"id": "a88046cc-0361-47f8-8aa4-813506afdecb",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-24T21:58:51.299169Z",
"iopub.status.busy": "2025-06-24T21:58:51.299169Z",
"iopub.status.idle": "2025-06-24T21:58:51.310232Z",
"shell.execute_reply": "2025-06-24T21:58:51.310232Z",
"shell.execute_reply.started": "2025-06-24T21:58:51.299169Z"
}
},
"outputs": [],
"source": [
"df_history = df_summary.merge(mean_cws,how='outer',on=['date','subreddit']).merge(std_cws,how='outer',on=['date','subreddit'])\n",
"df_history['z_score'] = (df_history.community_weighted_sentiment - df_history.mean_cws) / df_history.std_cws"
]
},
{
"cell_type": "code",
"execution_count": 186,
"id": "ce9f0566-6014-412b-ab91-677f24189245",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-24T21:58:51.497646Z",
"iopub.status.busy": "2025-06-24T21:58:51.497646Z",
"iopub.status.idle": "2025-06-24T21:58:51.514844Z",
"shell.execute_reply": "2025-06-24T21:58:51.514844Z",
"shell.execute_reply.started": "2025-06-24T21:58:51.497646Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" subreddit \n",
" LocalLLaMA \n",
" OpenAI \n",
" artificial \n",
" singularity \n",
" \n",
" \n",
" date \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2025-05-08 \n",
" -0.044194 \n",
" -0.119832 \n",
" -0.871183 \n",
" -1.053798 \n",
" \n",
" \n",
" 2025-05-09 \n",
" 0.403591 \n",
" 1.229599 \n",
" -1.078368 \n",
" -1.174753 \n",
" \n",
" \n",
" 2025-05-10 \n",
" 0.502283 \n",
" -1.493683 \n",
" -0.093901 \n",
" -0.676206 \n",
" \n",
" \n",
" 2025-05-11 \n",
" -1.258698 \n",
" 0.342304 \n",
" -0.902464 \n",
" 1.518415 \n",
" \n",
" \n",
" 2025-05-12 \n",
" -2.167469 \n",
" -0.389167 \n",
" -0.588013 \n",
" -1.014135 \n",
" \n",
" \n",
" 2025-05-13 \n",
" 0.332501 \n",
" -3.434951 \n",
" 2.930380 \n",
" 0.205499 \n",
" \n",
" \n",
" 2025-05-14 \n",
" 3.364345 \n",
" -0.956420 \n",
" -0.526388 \n",
" 1.531968 \n",
" \n",
" \n",
" 2025-05-15 \n",
" -0.725389 \n",
" 0.081388 \n",
" -2.332290 \n",
" -0.305970 \n",
" \n",
" \n",
" 2025-05-16 \n",
" -0.653573 \n",
" -0.582556 \n",
" -0.770156 \n",
" 0.037852 \n",
" \n",
" \n",
" 2025-05-17 \n",
" -0.804320 \n",
" 0.412928 \n",
" 0.356351 \n",
" -1.132476 \n",
" \n",
" \n",
" 2025-05-18 \n",
" 0.042610 \n",
" 1.183579 \n",
" 0.572702 \n",
" -1.373600 \n",
" \n",
" \n",
" 2025-05-19 \n",
" 0.045067 \n",
" -2.333859 \n",
" -0.364828 \n",
" 1.027555 \n",
" \n",
" \n",
" 2025-05-20 \n",
" 0.091186 \n",
" 1.945140 \n",
" 1.578278 \n",
" 1.261514 \n",
" \n",
" \n",
" 2025-05-21 \n",
" -0.533151 \n",
" 0.225542 \n",
" -1.494234 \n",
" 1.073047 \n",
" \n",
" \n",
" 2025-05-22 \n",
" 0.955171 \n",
" -0.053678 \n",
" -1.962915 \n",
" -1.005345 \n",
" \n",
" \n",
" 2025-05-23 \n",
" -2.340671 \n",
" 0.380027 \n",
" 2.630616 \n",
" 0.696121 \n",
" \n",
" \n",
" 2025-05-24 \n",
" 1.211108 \n",
" 2.414997 \n",
" 1.516051 \n",
" -0.078288 \n",
" \n",
" \n",
" 2025-05-25 \n",
" -1.167484 \n",
" 0.952176 \n",
" 0.798131 \n",
" 0.313335 \n",
" \n",
" \n",
" 2025-05-26 \n",
" 0.362807 \n",
" -0.814531 \n",
" 1.366979 \n",
" -0.162863 \n",
" \n",
" \n",
" 2025-05-27 \n",
" -2.376909 \n",
" -0.327798 \n",
" -1.540509 \n",
" 1.831157 \n",
" \n",
" \n",
" 2025-05-28 \n",
" 0.506768 \n",
" -0.099355 \n",
" -0.040696 \n",
" -0.281792 \n",
" \n",
" \n",
" 2025-05-29 \n",
" 1.429324 \n",
" -0.846192 \n",
" 2.571573 \n",
" -0.281824 \n",
" \n",
" \n",
" 2025-05-30 \n",
" 1.015244 \n",
" 0.004725 \n",
" -1.024469 \n",
" -0.622153 \n",
" \n",
" \n",
" 2025-05-31 \n",
" -2.224623 \n",
" 0.047550 \n",
" 0.600559 \n",
" -0.899762 \n",
" \n",
" \n",
" 2025-06-01 \n",
" 1.052451 \n",
" 1.328365 \n",
" 0.741410 \n",
" -1.496282 \n",
" \n",
" \n",
" 2025-06-02 \n",
" 0.520514 \n",
" -0.370123 \n",
" -1.168059 \n",
" -1.622483 \n",
" \n",
" \n",
" 2025-06-03 \n",
" 2.091989 \n",
" -2.331258 \n",
" -0.880932 \n",
" -1.191772 \n",
" \n",
" \n",
" 2025-06-04 \n",
" -0.333966 \n",
" -1.151395 \n",
" -0.870942 \n",
" 3.864479 \n",
" \n",
" \n",
" 2025-06-05 \n",
" -0.134243 \n",
" 1.060434 \n",
" -1.354283 \n",
" 1.134746 \n",
" \n",
" \n",
" 2025-06-06 \n",
" 1.412021 \n",
" -0.210666 \n",
" -0.126506 \n",
" 1.131646 \n",
" \n",
" \n",
" 2025-06-07 \n",
" 0.005485 \n",
" 0.743742 \n",
" 0.393000 \n",
" 0.812612 \n",
" \n",
" \n",
" 2025-06-08 \n",
" -1.177690 \n",
" 0.077874 \n",
" -0.769660 \n",
" -0.886763 \n",
" \n",
" \n",
" 2025-06-09 \n",
" 0.099286 \n",
" 1.456970 \n",
" 1.462335 \n",
" -0.743442 \n",
" \n",
" \n",
" 2025-06-10 \n",
" 2.093233 \n",
" -0.617740 \n",
" 0.492822 \n",
" -0.101424 \n",
" \n",
" \n",
" 2025-06-11 \n",
" 0.600059 \n",
" 2.094294 \n",
" 0.037819 \n",
" 0.461712 \n",
" \n",
" \n",
" 2025-06-12 \n",
" 0.177291 \n",
" -2.477452 \n",
" 1.112029 \n",
" 1.461535 \n",
" \n",
" \n",
" 2025-06-13 \n",
" 1.369635 \n",
" 1.055051 \n",
" 1.789994 \n",
" 1.882643 \n",
" \n",
" \n",
" 2025-06-14 \n",
" -2.056550 \n",
" 0.503585 \n",
" 0.529743 \n",
" 2.430223 \n",
" \n",
" \n",
" 2025-06-15 \n",
" 0.033870 \n",
" -0.739333 \n",
" -0.770163 \n",
" -0.307101 \n",
" \n",
" \n",
" 2025-06-16 \n",
" -1.762794 \n",
" -1.198593 \n",
" -1.290733 \n",
" -0.460972 \n",
" \n",
" \n",
" 2025-06-17 \n",
" -0.768915 \n",
" 0.528013 \n",
" 1.871727 \n",
" -1.186198 \n",
" \n",
" \n",
" 2025-06-18 \n",
" 0.279047 \n",
" -0.375068 \n",
" -1.127651 \n",
" -1.097628 \n",
" \n",
" \n",
" 2025-06-19 \n",
" -0.648869 \n",
" 1.761289 \n",
" -1.395471 \n",
" -0.876198 \n",
" \n",
" \n",
" 2025-06-20 \n",
" 1.499789 \n",
" -3.225222 \n",
" -0.894687 \n",
" -0.752625 \n",
" \n",
" \n",
" 2025-06-21 \n",
" -1.023443 \n",
" -1.240655 \n",
" -0.932564 \n",
" -0.348584 \n",
" \n",
" \n",
" 2025-06-22 \n",
" 0.969063 \n",
" 1.197812 \n",
" 1.602163 \n",
" 8.705383 \n",
" \n",
" \n",
" 2025-06-23 \n",
" nan \n",
" 0.383280 \n",
" 0.779473 \n",
" -2.011176 \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"execution_count": 186,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_zscores = df_history.pipe(pd.pivot_table, index='date',columns='subreddit',values='z_score',aggfunc=\"max\")\n",
"\n",
"def highlight_abs_gt_3(val):\n",
" return 'background-color: red' if abs(val) > 3 else ''\n",
"\n",
"styled = df_zscores.style.map(highlight_abs_gt_3)\n",
"\n",
"styled"
]
},
{
"cell_type": "markdown",
"id": "45cf9a6d-532a-4083-9781-81ff8bdce488",
"metadata": {},
"source": [
"Looking at the June 22 spike, it's suspicious we found an 8.7 sigma spike\n",
"- The prior week (6/15 -- 6/21) had a smaller std, which suddenly dropped to 0.019 from 0.1 ish\n",
"- This caused the current day's -0.25 score to look really spikey\n",
"\n",
"However, based on the data beyond just the prior week, the -.25 score is not that significant! See plenty of values near -0.2 prior to that week\n",
"\n",
"Therefore is probably not a huge spike to alert on, so we need a more stable std calculation."
]
},
{
"cell_type": "code",
"execution_count": 187,
"id": "f27992da-d1ec-4087-8100-513df36e8246",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-24T21:58:51.834680Z",
"iopub.status.busy": "2025-06-24T21:58:51.832679Z",
"iopub.status.idle": "2025-06-24T21:58:51.844699Z",
"shell.execute_reply": "2025-06-24T21:58:51.844699Z",
"shell.execute_reply.started": "2025-06-24T21:58:51.834680Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" subreddit \n",
" community_weighted_sentiment \n",
" mean_cws \n",
" std_cws \n",
" z_score \n",
" \n",
" \n",
" \n",
" \n",
" 151 \n",
" 2025-06-07 \n",
" singularity \n",
" -0.352707 \n",
" -0.425644 \n",
" 0.089756 \n",
" 0.812612 \n",
" \n",
" \n",
" 155 \n",
" 2025-06-08 \n",
" singularity \n",
" -0.493835 \n",
" -0.411582 \n",
" 0.092756 \n",
" -0.886763 \n",
" \n",
" \n",
" 159 \n",
" 2025-06-09 \n",
" singularity \n",
" -0.482524 \n",
" -0.412734 \n",
" 0.093874 \n",
" -0.743442 \n",
" \n",
" \n",
" 163 \n",
" 2025-06-10 \n",
" singularity \n",
" -0.416534 \n",
" -0.407614 \n",
" 0.087944 \n",
" -0.101424 \n",
" \n",
" \n",
" 167 \n",
" 2025-06-11 \n",
" singularity \n",
" -0.358953 \n",
" -0.392952 \n",
" 0.073637 \n",
" 0.461712 \n",
" \n",
" \n",
" 171 \n",
" 2025-06-12 \n",
" singularity \n",
" -0.308392 \n",
" -0.401512 \n",
" 0.063714 \n",
" 1.461535 \n",
" \n",
" \n",
" 175 \n",
" 2025-06-13 \n",
" singularity \n",
" -0.258518 \n",
" -0.393909 \n",
" 0.071916 \n",
" 1.882643 \n",
" \n",
" \n",
" 179 \n",
" 2025-06-14 \n",
" singularity \n",
" -0.169175 \n",
" -0.381637 \n",
" 0.087425 \n",
" 2.430223 \n",
" \n",
" \n",
" 183 \n",
" 2025-06-15 \n",
" singularity \n",
" -0.392046 \n",
" -0.355419 \n",
" 0.119269 \n",
" -0.307101 \n",
" \n",
" \n",
" 187 \n",
" 2025-06-16 \n",
" singularity \n",
" -0.389244 \n",
" -0.340877 \n",
" 0.104923 \n",
" -0.460972 \n",
" \n",
" \n",
" 191 \n",
" 2025-06-17 \n",
" singularity \n",
" -0.432632 \n",
" -0.327552 \n",
" 0.088586 \n",
" -1.186198 \n",
" \n",
" \n",
" 195 \n",
" 2025-06-18 \n",
" singularity \n",
" -0.430223 \n",
" -0.329851 \n",
" 0.091444 \n",
" -1.097628 \n",
" \n",
" \n",
" 199 \n",
" 2025-06-19 \n",
" singularity \n",
" -0.426679 \n",
" -0.340033 \n",
" 0.098889 \n",
" -0.876198 \n",
" \n",
" \n",
" 203 \n",
" 2025-06-20 \n",
" singularity \n",
" -0.434163 \n",
" -0.356931 \n",
" 0.102617 \n",
" -0.752625 \n",
" \n",
" \n",
" 207 \n",
" 2025-06-21 \n",
" singularity \n",
" -0.415414 \n",
" -0.382023 \n",
" 0.095790 \n",
" -0.348584 \n",
" \n",
" \n",
" 211 \n",
" 2025-06-22 \n",
" singularity \n",
" -0.250397 \n",
" -0.417200 \n",
" 0.019161 \n",
" 8.705383 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date subreddit community_weighted_sentiment mean_cws \\\n",
"151 2025-06-07 singularity -0.352707 -0.425644 \n",
"155 2025-06-08 singularity -0.493835 -0.411582 \n",
"159 2025-06-09 singularity -0.482524 -0.412734 \n",
"163 2025-06-10 singularity -0.416534 -0.407614 \n",
"167 2025-06-11 singularity -0.358953 -0.392952 \n",
"171 2025-06-12 singularity -0.308392 -0.401512 \n",
"175 2025-06-13 singularity -0.258518 -0.393909 \n",
"179 2025-06-14 singularity -0.169175 -0.381637 \n",
"183 2025-06-15 singularity -0.392046 -0.355419 \n",
"187 2025-06-16 singularity -0.389244 -0.340877 \n",
"191 2025-06-17 singularity -0.432632 -0.327552 \n",
"195 2025-06-18 singularity -0.430223 -0.329851 \n",
"199 2025-06-19 singularity -0.426679 -0.340033 \n",
"203 2025-06-20 singularity -0.434163 -0.356931 \n",
"207 2025-06-21 singularity -0.415414 -0.382023 \n",
"211 2025-06-22 singularity -0.250397 -0.417200 \n",
"\n",
" std_cws z_score \n",
"151 0.089756 0.812612 \n",
"155 0.092756 -0.886763 \n",
"159 0.093874 -0.743442 \n",
"163 0.087944 -0.101424 \n",
"167 0.073637 0.461712 \n",
"171 0.063714 1.461535 \n",
"175 0.071916 1.882643 \n",
"179 0.087425 2.430223 \n",
"183 0.119269 -0.307101 \n",
"187 0.104923 -0.460972 \n",
"191 0.088586 -1.186198 \n",
"195 0.091444 -1.097628 \n",
"199 0.098889 -0.876198 \n",
"203 0.102617 -0.752625 \n",
"207 0.095790 -0.348584 \n",
"211 0.019161 8.705383 "
]
},
"execution_count": 187,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"date = \"2025-06-22\"\n",
"subreddit = \"singularity\"\n",
"\n",
"rightwindow = datetime.datetime.strptime(date,\"%Y-%m-%d\").date()\n",
"leftwindow = rightwindow - datetime.timedelta(days=15)\n",
"\n",
"\n",
"fil = lambda x: x.date.between(leftwindow,rightwindow) & (x.subreddit == subreddit)\n",
"\n",
"df_history[fil]"
]
},
{
"cell_type": "code",
"execution_count": 188,
"id": "1cbd75a7-530b-47cd-b327-eee0477b06ba",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-24T21:58:52.302354Z",
"iopub.status.busy": "2025-06-24T21:58:52.298239Z",
"iopub.status.idle": "2025-06-24T21:58:52.436682Z",
"shell.execute_reply": "2025-06-24T21:58:52.436682Z",
"shell.execute_reply.started": "2025-06-24T21:58:52.302354Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 188,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHlCAYAAADlQ7gBAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAd/lJREFUeJzt3Qd0FNX3B/BLeu+VVDoJJIh0EFBAQBQbogiKCIIK2EAFfiJSVOyg2Lso6F+xAdJFFAHpnRBqIAnpvdf5n/s2sySQbAq72Z2Z7+ecPdnMbjbzyLJ797777mshSZJEAAAAAFArq9oPAwAAAABDsAQAAABgAIIlAAAAAAMQLAEAAAAYgGAJAAAAwAAESwAAAAAGIFgCAAAAMADBEgAAAIABNoZuhIaprKykS5cukaurK7Vo0cLcpwMAAAANwH258/LyqGXLlmRlVXf+CMGSEXCgFBISYu7TAAAAgCaIj4+n4ODgOm9HsGQEnFGS/7Hd3NzMfToAAADQALm5uSLZIb+P1wXBkhHIU28cKCFYAgAAUJb6SmhQ4A0AAABgAIIlAAAAAAMQLAEAAAAYgJolAADQ7LLx8vJyqqioMPepgIlYW1uTjY3NNbf1QbAEAACaU1paSklJSVRYWGjuUwETc3JyosDAQLKzs2vyYyBYAgAAzTUSPn/+vMg6cDNCfhNFQ2F1Zg5LS0spLS1N/L3btWtnsPGkIQiWAABAU/gNlAMm7q/DWQdQL0dHR7K1taULFy6Iv7uDg0OTHgcF3gAAoElNzTKA9v7OeKYAAAAAGIBgCQAAAMAABEsAAAAKER4eTkuXLm2238eF77/99ludt8fFxYn7HDp0SHy/bds28X12djapCYIlAAAAMIq+ffuKlgzu7u7i+6+//po8PDxI6RAsAYCqJeUU0fzVx8VXAC0qKytrtt9lZ2dHAQEBqmvFgGAJAFTttfUn6eudcfT59vPmPhUAYdWqVRQVFSWWtXt7e9OQIUOooKCAbrzxRnr66adr3PfOO++kCRMm1DiWl5dH999/Pzk7O1NQUBB98MEHNW7nQOWjjz6i22+/XdznlVdeEcd///13uv7668Xy+datW9OCBQtEB3PZ6dOnacCAAeL2yMhI2rx581XnvmfPHuratau4T/fu3engwYM1bq8+DcfXH374YcrJyRHH+DJ//nxSIvRZAgDVKimvoK0xqeL6hYwCc58OgJii4kDnjTfeoLvuuksEPtu3bxcNFBvqzTffpP/9738i2Nm4cSM99dRT1L59e7r55pv19+Gg5LXXXhP1TbzdB/+O8ePH03vvvUf9+/ens2fP0pQpU8R9X3rpJdF36u677yZ/f3/avXu3CHCuDNzy8/PptttuE7/nu+++E40e+XcbmpLj3z9v3jyKjY0Vx1xcXEiJECwBgGrtOJNOeSW6T84XM7GtBVhGsMTZHA5MwsLCxDHOMjVGv379aPbs2eI6B0k7duygJUuW1AiWxo4dK7I6sokTJ4qfeeihh8T3nFlatGgRPf/88yJY2rJlC508eVIEX9zVnL366qt0yy236B9j5cqVIqj64osvRGapU6dOlJCQQI8//nidU3Jcu8QZJZ6aUzJMwwGAaq07mqy/Hp9Z1KhP7wCm0KVLFxo8eLAIkEaPHk2fffYZZWVlNeox+vTpc9X3MTExNY7xFFl1hw8fpoULF4rMjnyZPHmyfn88/nnuaC4HSrX9npiYGIqOjq7RBfvK+6gVMksAoEplFZW0+USK/vuisgrKKCglHxd7s54XaBvvR8e1QDt37qRNmzbRsmXL6IUXXhBTX9xp+sqAvqnF2VyrdOUUGk/bcUbrSk3dAkRLkFkCAFX671wG5RSVkbezHfm76QIkTMWBJeBpKZ5K4+CFC6R5uurXX38lX19fkemRVVRU0LFjx676+f/++++q7yMiIgz+Ti7s5rqhtm3bXnXhII1/Pj4+vsbvv/L3RERE0JEjR6i4uLjO+1yJx8bjUDoESwCgSuuP6abghnbypzBv3afseARLYGacQeJaoH379tHFixfpl19+obS0NBGIDBo0iP744w9x4fohrgWqrbkj1yhxgfipU6fESriffvrJYKE14yLr5cuXiwDt+PHjYkrthx9+oLlz54rbeUUe1z9xTRNP2XFBOGe8qhs7dqwI9Hj67sSJE7Ru3Tp666236m2iyVmtP//8k9LT08WUnxIhWAIA1amolGjTcV2wdEvnQArx1O0sn5CFXktgXm5ubvTPP//QiBEjRHDCwcrbb78tCqm5CJuDFV61NnDgQFGEfdNNN131GDNnzhTBFi/hf/nll+mdd96hYcOGGfy9fPvatWvF1F+PHj2od+/eoihcLjLn7BJnt4qKiqhnz570yCOP6FsOyLjOac2aNXT06FHxuzmYev3118kQXhH32GOP0X333ScyZxzkKVELCRWP1yw3N1dU/PNSS/6PAADmn4Ib8+l/5O5oS/vmDqEP/jpDS7ecpvu6h9Dr90Sb+/TAzHgaiZe9t2rVCvU6Gv975zbw/RuZJQBQnQ1VU3BDIvzJ1tqKQr10maX4LGVOAQCAeSFYAgBVqayU9MHSLZ11vV1CECwBwDVAsAQAqnIoIZuSc4vJxd6GbmjnI47JNUuXsoupvKLSzGcIAEqDYAkAVGX9Ud3S50Ed/cjB1lpc93O1JzsbK1H4nZRzedkzAEBDIFgCANXg9Srrr5iCY1ZWLSjY01FcR68lAGgsBEsAoBrHL+WK9gAOtlY0sINvjdvkqTj0WgKAxkKwBACqsf6Ybgrupg5+5GRXczcnrIgDgKZCsAQA6pmCq9o4d3i1KThZiJc8DYfGlADQOAiWAEAVTqXk07n0ArKzthLF3VfSZ5YwDQcqNGHCBLrzzjub/fd+/fXX5OHhcc2PExcXJ7ZSOXToEFmimnlqAACFT8H1b+dDrg62V90erN/yBMESqM+7774rsqtKFRISIjbx9fHRtfvYtm2b2OolKyvLKMHYtUKwBACqoG9EGRVY6+1yY8r0/FIqKCknZ3u8/IF68JYdSlVaWkp2dnYUEHD19LmlwDQcACjeubR8OpmcRzZWLejmCP9a78P7xPGFYUNdUKpVq1ZRVFQUOTo6kre3Nw0ZMoQKCgqumoa78cYb6cknn6Tnn3+evLy8RCAyf/78Go918uRJuuGGG8R+aZGRkbRlyxYxFfbbb7/pszv8fXZ2tv5neJqMj/G0WW3Onj1Ld9xxB/n7+4uNd3nTXn7c6sLDw2nRokViw2Dej23KlCk1puH4uryBsKenpzjO41u+fLkYc0lJSY3H43E/+OCDZEr4aAUAiif3VurTxpvcna6egqte5J2TWCbqljoEuDbjGYKl4ymsorIKs/xuR1trERDUh6ep7r//fnrjjTforrvuory8PNq+fXud02/ffPMNzZgxg3bv3k27du0SAUe/fv3o5ptvpoqKChFkhIaGitv5sWbOnHnNY8nPz6cRI0bQK6+8Qvb29iLAGTlyJMXGxorfJXvrrbdo3rx59NJLL9U6Jffzzz/TqFGjxM9xQMXBIWefOABcvXo1jR49Wtw3NTWV/vjjD9q0aROZEoIlAFC8y3vB1T4FV73X0rHEXDSmhKtwoBQ5b6NZfveJhcOuanVRV7BUXl5Od999N4WFhYljnGWqS3R0tD4YadeuHb3//vv0559/imBp8+bNIgvE2SN5+osDHL7tWnTp0kVcZJxB+vXXX0WAM336dP3xQYMG1QjOqmeqrK2tRTaM+fn51ahZGjt2LH311Vf6YOm7774TQRhn0kwJ03AAoGicJTqamENWLYiGdqp9Ck6GXkugZByEDB48WARIHCx89tlnogDaULBUXWBgoMjEMM7YcAanep1Qz549jZJZevbZZykiIkIEOTwVFxMTQxcvXqxxv+7duzfp8SdPniyySImJifrVeJwxa0hm7logswQAirbxuC6r1LOVF/m42Bu8bzDaB4CBqTDO8JjrdzcEZ1w4I7Rz504RMCxbtoxeeOEFMY1WG1vbmlPSHFBUVjZ8I2krK10+Rao2zVdWVmbwZzhQ4nPkaba2bduK6bN77rlHFHFX5+zsTE3RtWtXETTy9N7QoUPp+PHjYhrO1BAsAYCiravaOLe+KTgWUrU/XDwaU8IVOJBoyFSYJZwn1x3xhWt+eDqOp7kaq0OHDhQfH08pKSmiGJvt3bu3xn18fX3103+enp7ien19kHbs2CEyPVxTJWea6ioGN4TrkxjXVl3pkUceoaVLl4rsEhe4c4bM1DANBwCKlZxTTAcu6lbqDOtU/7Lj6tNwSu5JA9rEGaRXX32V9u3bJ6a1fvnlF0pLSxNTXo3FtUlt2rShhx56iI4cOSKCnLlz54rb5CktzgxxIDJ//nw6ffq0yOC8/fbbBh+Xa6P4vDioOnz4sKgxakw2S8ZBIJ/H2rVrxRg56JLxYyYkJIhpyIkTJ1JzQLAEAIqfgrs+1IMC3B3qvX+QpyPx+0BhaQVlFNScFgCwdLwq7J9//hGrzdq3by+CGw5ebrnllkY/Fk/pcYsADkJ4eT9na3hKj3ErAXka7/vvvxctBrj+6fXXX6eXX37Z4OO+8847IgvVt29fsQpu2LBhdP311zf6/IKCgmjBggU0e/ZskfmqXhzOPaV4pRzXQzVb13JJITIyMqSxY8dKrq6ukru7uzRx4kQpLy/P4P2nT58utW/fXnJwcJBCQkKkJ554QsrOzq5xvwsXLkgjRoyQHB0dJV9fX+nZZ5+VysrKGnVuOTk5/BFVfAWA5nPfJzulsFlrpc/+Odvgn+n96hbxMwcuZJr03MByFRUVSSdOnBBf4bJ///1XvJedOXNGsnSDBg0S7+nX+vdu6Pu35U/QVhk3bpyYN+XCMS4we/jhh0Ujq5UrV9Z6/0uXLokLF5lxs60LFy7QY489Jo5xUy95LvTWW28VqwG4YI4fn5tkcTTNqU4AsFzp+SW053xmg6fgqrcPSMoppvisIuoaqqvDANAirnXi7AxPnZ05c4aeeuopUQvF03OWKisrS7Q74MuHH37YbL9XEcESLzvcsGGDKD6TlxvyKgBORXIw1LJly6t+pnPnzqKplYz/+NxD4oEHHhB9KmxsbMRqghMnTojuopzmu+6660RPiFmzZok5WrnADAAsz6bjKVQpEUUFueu3MmmIYC9H2hOHFXEA3IiS3++4/on3ZONi6fpqksyNV8NxwMRTglyk3lwUESxx51Hu11C9LwP/UXlZIxe8yVX39cnJyRFzvhwoyY/L/SrklQCM51cff/xxsRyR/yi14Vbr1dut5+bmXsPoAOBaNs4d3rlx+0npi7wRLIHG8UwKX5Qkrgkr6zRT4J2cnCy6eFbHAQ93+OTbGiI9PV1kjXjqrvrjVg+UmPy9ocddvHixKDCTL82xbBEALsspLKNdZzPE9VsaGSzxNBxDY0oAUESwxFXuvDTQ0IWr8K8VZ364Nolrl67cSLAp5syZI7JU8oV7VQBA89kck0LllRJ1DHCl1r4ujfpZecoOW54AgCKm4XhfGG5eZUjr1q1FAbbcol3GdUeZmZk1WrXXNSc7fPhwcnV1FcVs1Tua8s/u2bOnxv25QZd8W114c0C+AIB5rD/atCm46tNwl7KLqbyikmysFZFgBxNAry1tkIzwdzZrsMTdQeUOoYb06dOHsrOzaf/+/dStWzdxbOvWraLRVa9evQxmlLgGiQMb3sRP7h1R/XG56JsDMXmaj1fbcV0TZ6EAwPLkFZfR9tPpDe7afSU/V3uys7Gi0vJKsSquMcXhoA7yh+bCwkKxHQeoW2FhYa3bv6iuwJu7k3J2iDfQ+/jjj0XrAG5QNWbMGP1KOG57zhsM8n4xvBkgB0q8bwz/I/GuxPy9XIjNARo35OLbOSh68MEH6Y033hB1Stzka9q0acgcAViorSdTqbSiklr7OlN7/8ZNwTErqxYU7OFI59ILRJE3giXt4dd/XjQkz1g4OTmZfCNWME9GiWMA/jvz35v/7qoOltiKFStEgMQBEa+C4+6d7733nv52DqB4F2U5gjxw4IB+c0Fu2V7d+fPnKTw8XPzDcSt1Xv3GWSbe2I9bvy9cuLCZRwcADbXhWLK+sLupb3AcIIlgCUXemiWXWlxZ4gHq4+HhUW/JjmqCJV75VlcDSsbBT/V5yRtvvLFB85S8/8y6deuMdp4AYDqFpeX0V2xqk6fgZCFeuqkXFHlrFwfagYGBogSDP2yDOtna2l5TRklxwRIAwN+xaVRcVknBno7UqaVbkx9H3z4gs8iIZwdKxG+kxngzBXXDMhAAUIz1VVNwI6ICr6nGRN+YEtNwANAACJYAQBGKyypEcXdTWwZUJxd1o4s3ADQEgiUAUIR/T6dTfkk5Bbg50HXBHkYJltLzS0UdFACAIQiWAEBRU3CcVeLl/9fC3dGW3Bx0JZsJWahbAgDDECwBgMUrq6ikLTEpRpmCu2rbkwxMxQGAYQiWAMDi8aa5OUVl5ONiRz3CvYzymCjyBoCGQrAEAIqZghvaKYCsr3EKToYNdQGgoRAsAYBFq6iUaNPxy127jSXEU9eYEr2WAKA+CJYAwKLtOZ9JGQWloii7d2tvoz2unFlKwDQcANQDwRIAWLQNx5LE16GR/mRrbbyXrOrTcA3ZGgkAtAvBEgBYrMpKiTbIU3BRxpuCY0Eeumm4wtIKyiwoNepjA4C6IFgCAIt1MD6LUnJLyNXehvq19THqYzvYWosGlywevZYAwAAESwBgsdYf1WWVBkX4kb2N8Tc7DfHSZZewIg4ADEGwBAAWieuI5JYBt3QONMnvwB5xANAQCJYAwCIdS8ylxOwicrS1poHtfU3yO0I8sSIOAOqHYAkALNK6qlVwN3X0JUc740/BMTSmBICGQLAEABY5BbdBv3Guaabgamx5gsaUAGAAgiUAsDixKXl0Pr2A7GysaFBHP5P9HrnA+1J2EZVXVJrs9wCAsiFYAgCLXQU3oJ0vudjbmOz3+Ls6kJ21FZVXSpSUU2yy3wMAyoZgCQAsjjwFZ8y94GpjZdWCguU94lDkDQB1QLAEABblbFq+mIazsWpBQyL8Tf77gtE+AADqgWAJACwyq9S3rQ+5O9ma/PeFyJklFHkDQB0QLAGARVlf1TJghImn4K5aEYdpOACoA4IlALAYPBXGzSitWhDdHGn6KTiGXksAUB8ESwBgcVmlXq28ydvFvll+J3otAUB9ECwBgMXQ7wUX1TxTcNW3PEnPL6Gi0opm+70AoBwIlgDAIiTlFNHBi9nUogXRsE7NFyxxEbmrg66XE+qWAKA2CJYAwCJsrMoqdQv1JH83h2b93Zen4hAsAcDVECwBgEVYp98LrvmySldOxSFYAoDaIFgCALNLyyuhvXGZ5guWqvaIu4gibwCoBYIlADC7TSeSSZKIugS7U3BVlqc5odcSABiCYAkALKZr9/DOgWb5/djyBAAMQbAEAGaVVVBKO89mNMvGuQ2pWZI4xQUAUA2CJQAwq80xKVRRKVHHAFcK93E2yzkEV+0PV1BaQVmFZWY5BwCwXAiWAMAipuBGRJlnCo452FqTv5uuYzi2PQGAKyFYAgCzySsuo39Pp5t1Ck6G9gEAUBcESwBgNltPplJpRSW18XWmdv6uZj0XrIgDgLogWAIAs1l3VLdx7i1mWgVXHVbEAUBdECwBgFkUlpbT36fSmn3j3Pq3PEFjSgCoCcESAJjFttg0Ki6rFEFKZKCbuU+HQqpWxGEaDgAUGyxlZmbSuHHjyM3NjTw8PGjSpEmUn59v8P5PPPEEdejQgRwdHSk0NJSefPJJysnJqXG/Fi1aXHX54YcfmmFEANq2vmoVHBd28/87cwupyiwlZhWJVgYAADIbUggOlJKSkmjz5s1UVlZGDz/8ME2ZMoVWrlxZ6/0vXbokLm+99RZFRkbShQsX6LHHHhPHVq1aVeO+X331FQ0fPlz/PQdjAGA6xWUVtDUmxWx7wdXG382B7KytRMF5Uk6RWbZdAQDLpIhgKSYmhjZs2EB79+6l7t27i2PLli2jESNGiGCoZcuWV/1M586d6eeff9Z/36ZNG3rllVfogQceoPLycrKxsakRHAUEWMYLNoAWbD+dLhpABro7UJdgy/hwYm3VgoI8Hel8eoHotYRgCQAUNQ23a9cuEdDIgRIbMmQIWVlZ0e7duxv8ODwFx9N41QMlNm3aNPLx8aGePXvSl19+We92ByUlJZSbm1vjAgANt/5Ykj6rZGVl/im4Kzt5J6DIG8AiSJJEU1fsp1f+OEE5Zuyur4jMUnJyMvn5+dU4xgGPl5eXuK0h0tPTadGiRWLqrrqFCxfSoEGDyMnJiTZt2kRTp04VtVBc31SXxYsX04IFC5o4GgBtKy2vpC0nUiymZUB16LUEYFnS8kto3dFk4s9UM4d20GZmafbs2bUWWFe/nDx58pp/D2d+br31VlG7NH/+/Bq3vfjii9SvXz/q2rUrzZo1i55//nl68803DT7enDlzRJZKvsTHx1/zOQJoxa5zGZRbXE4+LvbULcyTLIlc5I0tTwAsQ2xynvga7u0stiXSZGZp5syZNGHCBIP3ad26tagnSk1NrXGc6454xVt9tUZ5eXmieNvV1ZV+/fVXsrW1NXj/Xr16iQwUT7XZ2+v2iroSH6/rNgAwbH1VI8phnfxFnZAlwZYnAJYZLHUIMG+Hf7MGS76+vuJSnz59+lB2djbt37+funXrJo5t3bqVKisrRXBjKKM0bNgwEdisXr2aHBwc6v1dhw4dIk9PTwRDACZQXlFJm6qm4My5cW7903CoWQKwBCcRLDVcRESEyA5NnjyZPv74Y9E6YPr06TRmzBj9SrjExEQaPHgwLV++XBRqc6A0dOhQKiwspO+++65GITYHaNbW1rRmzRpKSUmh3r17i0CK2xK8+uqr9Oyzz5p5xADqtCcukzILSsnTyZZ6tfIiSxPipSvwTssroaLSCnK0M1/aHwBIn1nqiGCpYVasWCECJA6IeBXcqFGj6L333tPfzgFUbGysCI7YgQMH9Cvl2rZtW+Oxzp8/T+Hh4WJK7oMPPqBnnnlGVNzz/d555x0RlAGA8W2oakR5c6Q/2Vhb3mJcd0dbcnWwobzickrIKjT75r4AWlZRKdGpFDmzZN4u/4oJlnjlW10NKBkHP9WX/N944431tgDgbFX1ZpQAYDqVlZI+WLK0VXAyXlTCdUsnknLFijgESwDmcyGjgErKK8nB1ko/RW4ulvfRDgBU6cDFLErNKxGZm75tvclSyVNxFzNQ5A1gCVNw7f1dzb4YBMESADSLnw8kiK9DIvzJ3sZya4FQ5A1gYcXd/ubP8CJYAgCTi0nKpf/bq+tHNqZHCFky9FoCsAyxFrISjiFYAgCT4trBBWuOU6XE7QICqFdry52CY+i1BGAZYquKuzuaubibIVgCAJNafyyZ/juXSfY2VvS/ERFk6eTMUkJWUb2LRADANLh1R1xGgbiOzBIAqFpxWQW98keMuP7owDYUXJW1sWTyZrr5JeWUZcaNOwG07HRqHvFnFW9nO/J1NX+TaARLAGAyn/x9jhKzi6iluwM9PrANKQHvP+VX9eKMqTgA87CUzt0yBEsAYBIcJH309xlxfc6ICEV1w768Ig7BEoA5nExCsAQAGrB4XQwVl1VSz1ZedFu0ZTahrAtWxAGYV2xKrkVscyJDsAQARrf7XAatPZJE3EfupZGRojO2koRU1S3FZ6LXEoB52waYfyUcQ7AEAEbfz2n+mhPi+pieodSppTspzeUVccgsATS39PwSSs8vJf6M1d7fhSwBgiUAMKof9l4UTSjdHGzo2aEdSIkwDQdg/qxSmJcTOdlZxha2CJYAwGhyCsvorY2x4vozN7cnL2c7UiK5wDsxq0hkygBAuyvhGIIlADCaJVtOid5EnDp/oHcYKZW/mwPZWreg8kqJknJQtwTQnGKTcy2qXokhWAIAo6XOv/3vgrj+0shOZGut3JcX3uE8yANF3gDmnIbriMwSAKgJbwuycO1xMWU1rJM/9WvrQ0on1y2h1xJA86mslOhUSr64jmk4AFCVjcdTaMeZDLKzsaK5t0aSGuiDJRR5AzQbXlRRVFYh9pIM93YmS4FgCQCuff+3dbpWAVP6t9YHGUoXUrWPHYIlgOYv7m7n7yKmwy0FgiUAuCafbz8n6noC3Bxo6k3K2P+tcVueoGYJoNmbUfpbTnE3Q7AEAE3GK8U++OusuD5nREeL6YliDCFeugJv9FoC0O42JzIESwDQZK+tPynqC7qHedLtXVqSmsjTcGl5JWKqEQC02WOJIVgCgCbZF5dJvx+6JLYkmH97J8Xt/1YfDydbcrXXZcqw7QmA6fGHkrj0AnEdmSUAUDxuEfDS6uPi+n3dQ6hzkPL2f6sPB3/B2PYEoNmcSc0nbpjv6WRLvq72ZEkQLAFAo/24L56OX8olV97/bZgy939riNCquiU0pgRo3ik4S8tUNylY+vbbb6lfv37UsmVLunBB17F36dKl9Pvvvxv7/ADAwuQUldGbVfu/PT2kPfm4WNYnQFPULSGzBNB825x0tKBtTpocLH300Uc0Y8YMGjFiBGVnZ1NFha7w0cPDQwRMAKBu7245TZkFpdTWz4XG91Hu/m8NgcaUAM3HUou7mxQsLVu2jD777DN64YUXyNraWn+8e/fudPToUWOfHwBYkDOpebR8V5y4Pu+2SEXv/9YQ6LUE0HxUFSydP3+eunbtetVxe3t7KijQVbEDgDr3f1uw5gSVV0o0JMKfBrT3JbWTey1xZonHDwCmwdlqbtPB2vurIFhq1aoVHTp06KrjGzZsoIiICGOdFwBYmC0xqbT9dDrZWVvRi7dp4/96cFXNUn5JOWUXlpn7dABU62RVvRJnc12qWnZYkkafEdcrTZs2jYqLi8UnrT179tD3339Pixcvps8//9w0ZwkAZlVSXkEv/6Hb/21S/1YUZkEbXJqSg601+bnaU2peCcVnFZKns525TwlA3ducBFheVqlJwdIjjzxCjo6ONHfuXCosLKSxY8eKVXHvvvsujRkzxjRnCQBm9cW/5+lCRqEIHKbd1Ja0hIu8OVjiFXHRwR7mPh0AVQdLHdUQLJWXl9PKlStp2LBhNG7cOBEs5efnk5+fn+nOEADMKiW3mN7fekZcn31LR4tMkZtSiKcj7b+QhV5LABot7m50zZKNjQ099thjYgqOOTk5IVAC0MD+b4WlFdQ11IPuvC6ItObyiji0DwAwhcpKiU6lWHZmqdEF3j179qSDBw+a5mwAwKJwRuXXg4ni+vyRncjKyrK66jYHecsT9FoCMI2ErCLxgczOxorCLbQestH59KlTp9LMmTMpISGBunXrRs7ONQcWHR1tzPMDADN+2luwRrf/2+huwdQlRJv1OnIXbwRLAKZdCdfW14VsLLR3W6ODJbmI+8knn9Qf4z1ceGUcf5U7egOAsq3an0BHEnLI1d6Gnh/ekbQq1FsXLCVmF4kNhK01mF0D0HJxd5OCJW5KCQDqlltcRm9sPCmuPzm4ncXtAN6cAtwcyNa6BZVVSJScW0xBHrpGlQBgHCdTLLu4u0nBUliYuveCAgCiZX+epvT8Umrt60wP9Q0nLeNMEgdIcRmFYioOwRKAtnossSZNDp49e5aeeOIJGjJkiLjwlBwfAwDlO5uWT1/t0O3/9uJtkaLoUuvkDXW51xIAGLfh7fl03VZpHQPcyFI1+lVw48aNFBkZKTp3czE3X3bv3k2dOnWizZs3m+YsAaDZLFqr2/9tUEc/uqkDWoNU3/YkAcESgFGdSc0XtYDujrbk72avnmm42bNn0zPPPEOvvfbaVcdnzZpFN998szHPDwCa0daTKbQtNk3U6HBWCa7stYTGlACmmoLjRWKqySzFxMTQpEmTrjo+ceJEOnFCt3eUKWRmZoqu4W5ubuTh4SHOgbuHG/Loo49SmzZtxPYsvr6+dMcdd9DJk7qiVdnFixfp1ltv1TfYfO6550SncgCtKS2vpEVrY8T1if1aUSsfy+x3Yg4hXro6JUzDAWhvJVyTgiUOOg4dOnTVcT5mym7eHCgdP35cTPWtXbuW/vnnH5oyZYrBn+E+UF999ZUI8Hj6kNsbDB06VN/egL9yoFRaWko7d+6kb775hr7++muaN2+eycYBYKm+2nFe1A74uNjT9EHa2v+tPui1BGAaMQoo7m7SNNzkyZNFkHLu3Dnq27evOLZjxw56/fXXacaMGaY4RxHsbNiwgfbu3Uvdu3cXx5YtW0YjRoygt956S2zkW5vqwVR4eDi9/PLL1KVLF4qLixMZp02bNols2JYtW8jf35+uu+46WrRokZhOnD9/PtnZYYdx0IbU3GJ678/T4vqs4R3I1cHW3KdkkdNwvKFucVkFOdham/uUAFQhtqohpeoySy+++KLIvHCwMnDgQHF5//33RXAxd+5ck5zkrl27xNSbHCgxXoVnZWUlissboqCgQGSZWrVqRSEhIfrHjYqKEoGSjDcJzs3NFVmsupSUlIj7VL8AKNnrG2KpoLRCdOkedX2wuU/H4ng42eo3EE7AHnEARpFdWEopuSXient/lQVLXIDFBd683UlOTo648PWnnnrKZMVZycnJV03x8aa+Xl5e4jZDPvzwQ3JxcRGX9evXi2k8OWPEP1s9UGLy94Yed/HixeTu7q6/yMEXgBIdvJhFPx9IENfnj4zU5P5v9eHXtmBPXd1SfCaKvAGM4WTVFBz3LrP0bLZVUzp4nz6tS9e7urqKC+NjPL3VGLyCjl+EDF2uLMhuSq0Tb/z7999/U/v27enee++l4uLia3rMOXPm6ANFvsTHx1/T4wGYc/+3+Wt0CzM4o9Q11NPcp2TxU3Eo8gYwbnF3RKBlZ5WaVLM0YcIEsfKtXbt2NY7zdNjnn39O27Zta/Bj8Ya8/HiGtG7dmgICAig1NbXGcV6xxivk+DZD5OwPn2/v3r3J09OTfv31V7r//vvFz3K/qOpSUlLEV0OPa29vLy4ASvfLwUQ6HJ9NznbWolYJ6m9MiSJvAONmliy9uLtJwRJnafr163fVcQ5Epk+f3uiVdXypT58+fSg7O5v2798vVrixrVu3UmVlJfXq1avBv49Xw/GFa47kx33llVdEICZP8/E0Hbcn4MabAGqWX1JOr2/QZW6fGNyO/NwczH1KCum1hGAJwJjF3R0suHP3NdUs5eXposHqeDpKXpJvbBERETR8+HCxEo8zQbz6jgOzMWPG6FfCJSYmUseOHfWZIl6tx7VFHGBxLyVuDTB69GjRc4lX0TFuI8BB0YMPPkiHDx8W7QW4SH3atGnIHIHqLdt6mtLySijc24ke7qft/d8a12sJNUsA14oTF6dS8hWxEq5JwdKAAQNEEFI9MOLrfOyGG24gU1mxYoUIhgYPHiyCHf5dn376qf72srIyio2NpcJC3ac+BwcH2r59u7hv27Zt6b777hP1VRw0yVkka2tr0bOJv3KW6YEHHqDx48fTwoULTTYOAEvA/ZS+/Pe8uM6duu1tsBS+ob2WeMsTfqEHgKZLyCoS2W3eLUAJDXAbPQ3H/ZQ4YOrQoQP1799fHOOghJfP89SYqfDKt5UrV9Z5O/dRqv4CxhmndevW1fu4YWFhDbofgJq8vPYElVVINLC9r9gDDhq+P1xeSTnlFJWRhxP6sAFca3F3G18XsrW2/M26G32GPG115MgRsaqMa314So6zMbxqrXPnzqY5SwAwmm2xqfTnyVSysdLt/2bJ+zFZEkc7a/J11U3PY0UcwLWJTVHGNidNzizJWZtXX33V+GcDACZVVsH7v+laBUzoG05t/VzMfUqKEuLpKOq8uNdSdLCHuU8HQAUr4dxICRqdWeJtR/7991/99x988IHYJmTs2LGUlZVl7PMDACP6dtcFOptWQN7OdvTkkJrtP6B+WBEHoK1tTpocLD333HP67T2OHj0q9oPjImpuVmmqveEA4NplFpTS0i2nxPWZQzuQm4V3zLXkXkuYhgNoutLySjqXVqCYHktNmobjoEjuQfTzzz/TyJEjxZTcgQMH9EvyAcDyvLM5lnKLyyki0I3u64Eteq5lRRwaUwI03dm0fCqvlMjVwYYC3R3UmVnifdXk5flbtmwRvYrk1WrYUBbAMp1MzqWVuy+K6/NuiyRr7P/WJOjiDWC8lXA8BaeUBSaNzixxfyOebuMu3twA8v/+7//E8VOnTlFwMHYrB7A03FKDi7orJaLhnQKoTxtvc5+S4htTJmYXUUWlhKATQOXbnDQ5s/T++++TjY0NrVq1ij766CMKCgoSx9evXy+6bAOAZdl8IoV2nMkgO2sr+t+ICHOfjqIFujuKlgvcoyol99o25AbQqlgFbXPS5MxSaGio6Hp9pSVLlhjrnADASErKK+iVdTHi+iP9W1Got24aCZqGM0lBno50IaNQFHm39NBlmgCg8ZklpayEY5bfNhMAmuzrHXHijZ2bKU69qa25T0cVUOQN0HQ5hWWUlKPLyrb3R7AEAGbGzROXbT0jrj8/rAO52DepBy3UVeSdhQ11AZraubuluwO5OyqnfQmCJQCVentTrNioMjrYnUZdj8UXxi7yRmYJ4FrqlZSTVWIIlgBU6FhiDv3fvnh9qwArrNoyGkzDARihXilQOcXdTQqWJk6cKDbPvVJBQYG4DQDM3ypg4doTJElEI7u0pO7hXuY+JVXBlicAxumxpOpg6ZtvvqGioqvn6vnY8uXLjXVeANBE648l057zmeRga0Wzb+lo7tNRbc1SSm4JFZdVmPt0ABT1QS62qmZJadNwDa745O7cPFC+cGbJweFyi/KKigpat24d+fn5meo8AaAB+M371apWAVMGtKEgLG03Ok8nW3K2s6aC0gpKyCqitn4u5j4lAEW4lFNMecXloldZax8XdQZLHh4eoi05X9q3b3/V7Xx8wYIFxj4/AGiEL/49L97AA9wc6LGBrc19OqrEr3WcXeLaC65bQrAE0Lji7ja+LmRnY6XOYOmvv/4SWaVBgwaJDXR5L7jq+8WFhYVRy5YtTXWeAFAP7ij9wV+6VgE8/eZkh1YBpqIPllC3BKDqbU5kDX41HThwoPh6/vx5CgkJISsrZUWFAGr3xoZYKiytoK6hHnTHdfjgYkpYEQfQ9OJuVQdLMs4gZWdni010U1NTqbKyssbt48ePN+b5AUADHIrPpp8PJIjrL43spJidvJUqtKrXEm95AgDqXgnXpGBpzZo1NG7cOMrPzyc3N7caL8p8HcESgBlaBaw5Lq7f3TWIrgvxMPcpaaeLdya6eAM0RFlFJZ1Ny1dsZqnRc2kzZ84U/ZQ4WOIMU1ZWlv6SmZlpmrMEgDqtPnyJDlzMJkdba3p+OFoFNGuvpcxCEawCgGHn0gqorEIiV3sbRa7SbXSwlJiYSE8++SQ5OWH3cgBzKywtp9fWnxTXp97YhgLcL7f0ANMJrqpZyispp5yiMnOfDoDFO1m1Eq59gKsiywQaHSwNGzaM9u3bZ5qzAYBG+eTvc2IHb/6kNnkAWgU0F0c7a/JxsRfXMRUHoO7i7ibVLN1666303HPP0YkTJygqKopsbWvuGnz77bcb8/wAoA6Xsovok3/Oiuv/GxFBDrbW5j4lzRV5p+eXiPYBUcHu5j4dAIsWq+Di7iYFS5MnTxZfFy5ceNVtnFrjbt4AYHo8/VZcVkk9w71oRFSAuU9Hk0XeXCuGFXEAjeix5K+RYOnKVgEA0Pz2X8gUhd089T9vZKQiawCUDr2WABomt7iMErN109UdA9xIia6ps2RxcbHxzgQAGqSyUqIFa06I6/d2C6HOQZgCMueKOGSWAAw7VZVV4m2Y3J1qlu6oNljiabZFixZRUFAQubi40Llz58TxF198kb744gtTnCMAVPPLwUQ6kpBDLvY29OywDuY+Hc0KrmpMyXvxAYA6tzlpcrD0yiuv0Ndff01vvPGG2BNO1rlzZ/r888+NfX4AUE1BSTm9sUHXKmD6oLbk66pbkQXmm4ZLzCqiikr0WgJQa3F3k4Kl5cuX06effiq6eFtbX15906VLFzp5UvciDgCm8eG2M5SaV0Jh3k70cL9wc5+OpgW6O5CNVQsqragUmxgDQD3BUqCGgiVuStm2bdtaC7/LytCcDcBUuJD4s+3n9a0C7G3QKsCcbKytqGVVJ2IUeQPUjjvcyw0pO/grs7i7ScFSZGQkbd++/arjq1atoq5duxrrvADgCovXx1BpeSX1beNNQyP9zX06INoHVAVLqFsCqFVybjHlFpeTtVULauPnTErV6NYB8+bNo4ceekhkmDib9Msvv1BsbKyYnlu7dq1pzhJA4/47l0HrjiaTFVoFWNyKuB2UgRVxAPUUd7f2cVZ0NrzRmaU77riD1qxZQ1u2bCFnZ2cRPMXExIhjN998s2nOEkDDKqq1Cri/Z6hi+5SoeY+4BARLAKrc5qTJmSXWv39/2rx5s/HPBgCu8uO+eIpJyiVXBxuacXN7c58O1NJribc8AQB1roRrcrAky8/Pv6qjt5sbPvUCGLPz7VsbY8X1pwa3I++qzVvBcrY8YZiGA6ivx5KyY4NGT8OdP39ebKbLU3Du7u7k6ekpLh4eHuIrABjP+1vPUEZBqZjvH98HrQIsTYinrsA7JbeEisuwLyZAdWUVlXQ2NV+bmaUHHnhALAX88ssvyd/fH4WmACZyPr2AvtqhaxUw97YIsrO5pt2JwAS8nO3I2c6aCkorxN5XbXxdzH1KABYjLr1A9CHj/yNBVW02NBMsHT58mPbv308dOmCbBQBTeuWPGCqrkGhge1+6qYOfuU8HasEfFnkqjqcaeCoOwRLA1VNw7QNcyYqX8ipYoz+q9ujRg+Lj46m5ZWZmiq7hXBPFU36TJk0SNVOGPProo9SmTRtydHQkX19fsZLvyi7j/GJ35eWHH34w8WgADPv3dDptiUkRvUlevC0CGVwLhhVxAOou7m5SZon3f3vsscdEnyXeD87WtuYOwtHR0WQKHCglJSWJVXjcKfzhhx+mKVOm0MqVK+v8mW7duomfCw0NFcHW/PnzaejQoaLuqvpWLV999RUNHz5c/z0HYwDmUl5RSQvXHhfXH+wdRm39lP9Co4UVcSjyBqijuNtfg8FSWloanT17VgQrMv7Uy3VM/LWiwvhFjtzHacOGDbR3717q3r27OLZs2TIaMWIEvfXWW9SyZctaf46DKVl4eDi9/PLLYg+7uLg4kXGqHhwFBAQY/bwBmuL7PRfpVEo+eTjZ0tND2pn7dKChXbwz0cUboLrYlFxVrIRr0jTcxIkTxbYmu3btonPnzoksTfWvpsC/iwMaOVBiQ4YMISsrK9q9e3eDHqOgoEBkkFq1akUhISE1bps2bRr5+PhQz549ReE6B34A5pBTWEbvbD4lrnNPJQ8nO3OfEtQjpGoaDr2WAC7LLynXf4DQ5DTchQsXaPXq1bVupmsqycnJ5OdXs8DVxsaGvLy8xG2GfPjhh/T888+LYImL0nkaz87u8hvQwoULadCgQeTk5ESbNm2iqVOnilqoJ598ss7HLCkpERdZbq4uega4Vkv/PEVZhWXU3t+FxvYMNffpQAOEemMaDqCueiU/V3vydLbTXmaJAwteEWcMs2fPrrXAuvrlyoLsxuKapYMHD9Lff/9N7du3p3vvvZeKi4v1t7/44ovUr18/kS2bNWuWCKzefPNNg4+5ePFi0WNKvlyZqQJoijOp+fTtrgvi+ou3RYpd7cHyBVf1WsorLheZQQAg1Wxz0uTM0siRI+mZZ56ho0ePUlRU1FUF3rfffnuDH2vmzJk0YcIEg/dp3bq1qCdKTU2tcby8vFwUbddXayQHNO3ataPevXuLxpm//vor3X///bXev1evXrRo0SKRObK3r71b8pw5c2jGjBk1MkvGDpi4c/O8345RbEo+rZneD2+cGvDyHyeovFKiIRF+1L+dr7lPBxrIyc6GfFzsKT2/REzFuTu5m/uUAMwuNjlXNVNwTQqWeCWcPH11pcYWePNyfr7Up0+fPpSdnS36O/EKN7Z161ax1QoHNw3FtUh8qT6FdqVDhw6JgKquQInxbYZuNwYXOxvaEpMq5n3PpOVj81SV+ys2lbbFppGtdQt64dZIc58ONKHIm4MlnorrHIRgCeCkSrY5kTU6XcEBSl0XU6yEYxEREWJp/+TJk2nPnj20Y8cOmj59Oo0ZM0a/Eo5bGXTs2FHczrjYnKfLOMC6ePEi7dy5k0aPHi16LvEqOrZmzRrRCuHYsWN05swZ+uijj+jVV1+lJ554gsyNG3h1DtI9yY4k5Jj7dMDEWwK8vPaEuD6hbzi18nE29ylBU4u8UbcEQJyUiE1RT48lppi5nRUrVohgaPDgwSLYueGGG+jTTz/V3869l2JjY6mwUPdi5eDgQNu3bxf35WL0++67j1xdXUXQJBeL8xTiBx98IDJX1113HX3yySf0zjvv0EsvvUSWIDpY1+/pSEK2uU8FTIjrlM6mFZC3sx09MRitApTcawkr4gCIUvNKKLuwTDTVbevnop1puPfee0/0LOIAhK8bYmgV2bXglW+GGlByH6XqS/4547Ru3TqDj8nZqurNKC1NdLAunY/MknplFpTS0i26VgEzh3YgN4eaNYCgrF5LF9FrCYDkKbhwbydysL3cAFr1wdKSJUvEqjIOlvh6XbhmyVTBkhZ1qcosxSTlUkl5BdnbqONJB5e9szmWcovLKSLQje7rgVWVSp+Gw5YnAFStuFsd9UoNDpa44WRt18H0S5I9nWxF3x1ehilPy4E6nEzOpZW7L4rr826LFClrUCbeTJclZBVRZaWk+E1DAYxT3O1KatHomiVeBSfXBVVXVFRU6wo5aDrO1EVVBUiHMRWnOovXnaRKiWh4pwDq08bb3KcD1yDQ3UEEu6UVlZSSd7mPG4AWxSJYIlqwYIHocH0lDqD4NjCuLnLdUjyKvNVk/4Us+vtUmniDnTOio7lPB64R90Fr6eEgrmOPOND6RuCnU/NVtRKuScGSvGHulbirNxdhg3FFVfVsOZqIzJKayEXdo64PojBvtApQ04o4bHsCWhaXUUil5ZXkZGetr+XTVFNKbtQob0HC24ZUD5i4vxJnm+SGlWA8XUJ003CnUvKosLRcdAsGZdsXl0nbT6eTjVULemIQWgWohe6NIQO9lkDTYqum4Nr5u6qqdq/B77xLly4VWaWJEyeK6TbeQkTGG9Py0n3uVwTG5e/mQP5u9pSSW0LHL+VSj3Bk75RuSVVWaXT3YH1hMCif/LdEryXQslh5JZy/eqbgGhUsPfTQQ+Jrq1atqG/fvlftCQemExXkQSm5KaLfEoIlZdt9LoN2nMkQ25pMu6mtuU8HTBEsIbMEGnZShcXdrNFzOgMHDhRbm5w6dUpsbsvXqxswYIAxzw+qiry3xHCwhCJv9WSVQihYRfP5wNNwusaUKPAGLYtV2TYnTQ6W/vvvPxo7dixduHChRsfspmykCw0TXVW3hE7eyrbrbAb9dy4TWSWVF3hz64DisgrVdC4GaKiCknK6kFGoysxSo1fDcRF39+7dxeazmZmZlJWVpb/w92C6FXHn0wsop6jM3KcDTcAfLOSsEnfqDvLQZSFAPbyc7cQKIP4MmZiN7BJoz6mqrJKPiz15u9iTpjNLp0+fplWrVonNaaH5XoR57ylO7x9LzKF+bX3MfUrQhKzSnvOZZGdthaySSnFmnVfE8TQE1y218VXHBqIAjV0Jp7YpuCZllnr16kVnzpwxzdlAneStTg6jbknRWaX7e4ZQoDuySmqFIm/QspMqLe5uUmbpiSeeoJkzZ1JycjJFRUVdtSouOjramOcH1Yq8/ziSREfiUbekNLz6bW9cFtnZWNFUZJVUjTPALD4L03CgPbEIli4bNWqU+Mr9lqqnn+XO3ijwNl37AIZO3srNKo3tGSr6ZoF6yR2LkVkCLb7WxVbVLEUEuBFpPVg6f/68ac4EDIoKdidums6Fo+n5JaKADizfP6fTxT5w9pxVurGNuU8HTAxbnoBWpeWXUGZBKXHT7nb+6qvXa3SwFBYWZpozAYNc7G1EweiZ1HzRb2lQR39znxI0JKu0WZdVGtcrjPyQVVI91CyB1qfgwr2dVdk2o9EF3uzbb7+lfv36UcuWLUW/JXk7lN9//93Y5wfVRFe1EEC/JWXYdiqNDsVnk4OtFT12Y2tznw40g+CqxpS5xeWUU4g2H6AdsSquV2pSsPTRRx/RjBkzaMSIEZSdna2vUfLw8BABE5hOdDCCJSVllZZWZZUe4KySK7JKWuBsb0M+LnbiOvaIAy05iWCppmXLltFnn31GL7zwAllbX061caPKo0ePGvv8oNZO3tlXdU8Hy/JXbCodTsgRWaVHB6JWSUvkbWwwFQdaEqviHktNCpa4wLtr165XHbe3t6eCggJjnRfUIjLQjWysWlB6fikl5RSb+3TAUFZpy2lx/aE+4eTrimJ8LRZ5I7MEWlFRKem7d3dQ4Uq4JgVLrVq1okOHDl11fMOGDRQREWGs84JacNFce39d1I5NdS3XnzGpYqqUt76YMgC1SlrttYQVcaAVFzIKqKS8UmTS5Q8LpPXVcFyvNG3aNCouLhafoPfs2UPff/89LV68mD7//HPTnCXodQlxpxNJuWKKZ3jnQHOfDhjoqzS+T7jq9keCxvRaQmNK0NYUXHt/V7Lm3gEq1Ohg6ZFHHiFHR0eaO3cuFRYW0tixY8WquHfffZfGjBljmrOEGs0pv6d4Oooib4u06UQKHb+US87IKmmWfhoOmSXQWnG3vzrrlZoULLFx48aJCwdL+fn55OfnZ/wzg3pWxGXru6aDZaisrFar1DdcbIAM2u21lJBVJJ4TVir9pA2glbYBTapZKioqEkESc3JyEt9zy4BNmzaZ4vzgCvxk5D3GuI9LXAY+uVqSTSeSKSYpVzQQndwfWSWtCnR3EFMRpRWVlJpXYu7TATC52Kri7o4qLe5uUrB0xx130PLly8V17rPUs2dPevvtt8Vx7sEEpmVrbSVWxTEUeVtmVmlC33DyRFZJs2ysrailh66vFoq8Qe0KS/mDu24lPDJL1Rw4cID69+8vrq9atYoCAgJEF28OoN577z1TnCNcoQuaU1qcDceTxby9q70NPdK/lblPB8wMG+qCVpxOySdu++ftbKfqNimNDpZ4Cs7VVRc98tTb3XffTVZWVtS7d2/91idgWtHBl5tTgmVkld6tyio9fEMr8nBCVknr9MESei2BysVqoF6pScFS27Zt6bfffqP4+HjauHEjDR06VBxPTU0lNzf1zldaWvsAdiwxl8orKs19Opq37liSmLN3dbChSTcgqwREod66YAnTcKB2JxEs1W7evHn07LPPUnh4OPXq1Yv69OmjzzLV1tkbjK+Vj4tYml5UVkFn09A13dyda+VaJQ6U3B1tzX1KYEEb6iag1xKoXGxKrqq3OWlysHTPPffQxYsXad++faJrt2zw4MG0ZMkSY58f1IJX2nQO0mWXDmMqzqzWHrlEZ1Lzyc3BhiYiqwRXtA/ANBxoZxrOjdSs0cES46JuziJxrZKMV8V17NjRmOcGBnSptqkumC+r9N6fuqzSI/1bk5sDskpQszFlcm4xlZRXmPt0AEwiPb9E7FXK7f7a+7uQmjWpKSWYX1RVZgmdvM1nzeFLYhqUp94e7hdu7tMBC8IrgxxtdVPliVlF1NrXeG8kBSXlon9Tam4xpeXz1xLxfRofyysWX3OLyuiJwe3o/p6hRvu9AHVllcK8nMjJTt3hhLpHp2JdqlbExSTlUWl5pWhUCc2HC+vlrNLk/q3IFVklqIY763N2iQv/uci7vmCJV1RmFpZWBTw1A6G0aoEQ31ZY2rBM1Uurj1OPcE9q66fuWhIwn5MaKe5mCJYUvLO5h5MtZReW0cnkXH07AWgeqw9fonPpBeJvMKEfapWg9v+jHCxxPzTOPoogiAOfWjJCPJ1RXik1+LF5gQf3tPFzdSBfN3vydbEnP7eq713t6fPt52j76XSa+dMR+vmxPqJRJoCxxSbnaqJeiSFYUvAnV56K4xdEfjFGsGSerBJvlsvbmwBcKbiq19I7m0+JS0PIjf30gZD4WjMQ4u+d63nOcf3I0CX/0OH4bPps+3l6/MY2RhkTQG3TcGpfCcfwKq/wqThdsMRF3mHmPh3N+PVgotiXjzfKfagPapWgdoM6+tHKPReJJBJBjo8c+NQSCInbXezFdkbGEOjuSC/eFknPrzpCSzafoiERftROxTvCQ/OrrJToVEq+uI5pOLBo0dj2pNmVVVTSsq1n9Fml+j7hg3YNaO9Lx+YPI1vrFiIT3NxGdwum9UeT6K/YNHr2p8P08+N9MR0HRnMxs1AsYLC3saJwb2dSO/zPUTB56u1USh4VNbDoE67NrwcSxYsET5eM74NsHhjGCy/MESgx/r2L744WneUPJ+TQJ/+cM8t5gLqLu9v5u4jef2qHYEnBAtwdRBqf60KPX0J2qVmySn/papUeHdha9UtlQR2vES+N7CSu8/6Fco0JgNGaUfqrv7hbUcFSZmYmjRs3Tuw/5+HhQZMmTaL8fN18aX0kSaJbbrlFfNLife2q427kt956Kzk5OZGfnx8999xzVF5eTkrLLvEnRzCtn/cnUHxmEfm42NEDvZFVAmUYdX0QDe7oR6UVlWI6joN+gGsVq5FtThQXLHGgdPz4cdq8eTOtXbuW/vnnH5oyZUqDfnbp0qW1psIrKipEoFRaWko7d+6kb775hr7++mux/53y6pbQyduUuJeVXKv02MA2yCqBYvBr36t3R4kteY4m5tAnf5819ymBCpzUUI8lxQRLMTExYh+6zz//XGzee8MNN9CyZcvohx9+oEuXLhn82UOHDtHbb79NX3755VW38ea/J06coO+++46uu+46kX1atGgRffDBByKAUlKwhE7eprVqfwIlZheJVUvIKoHS+Ls50Pzbq6bj/jwterMBNFVxWQXFpes2cUdmyYLs2rVLTL11795df2zIkCFib7rdu3fX+XOFhYU0duxYEfzwfna1PW5UVBT5+/vrjw0bNoxyc3NFFqsuJSUl4j7VL+aehuMGiTlFZWY7DzXjvb3e36qrVXp8YBtysLU29ykBNNpdXYNoSIQ/lVVINPNHTMdB051OyRe1sp5OtuIDpBYoIlhKTk4W9UTV2djYkJeXl7itLs888wz17duX7rjjjjoft3qgxOTvDT3u4sWLyd3dXX8JCQkhc+FeP9wpmB1LRHbJFH7cl0CXcopFMf3YXthrCxQ8HXdXZ9FN/PilXPpoG6bjoGlO6jt3u5pttaemgqXZs2eLf2hDl5MnTzbpsVevXk1bt24V9UrGNmfOHMrJydFf4uPjyZyig3TZJfRbMk1W6cO/dLVKU29EVgmUzc/NgRbeoZuOW7b1NJ24hOk4uJbO3W6kFWatUp05cyZNmDDB4H1at24tptBSU1NrHOcVa7xCrrbpNcaB0tmzZ8X0XXWjRo2i/v3707Zt28TP7tmzp8btKSkp4mtdj8vs7e3FxZLqlv44moQibxP4v73xlJRTTAFuDjQGO7iDCtzepSX9cSSJNp1IEavjfp/ez2idw0EbYlO0Vdxt9mDJ19dXXOrTp08fys7Opv3791O3bt30wVBlZaUo+K4ra/XII4/UOMb1SUuWLKGRI0fqH/eVV14RgZg8zcer7bg9QWRkJCmFXLeEzJLxixg/kLNKNyGrBOrAGfuX7+pMe+Iy6URSrniOPz2kvblPCxTkpMZWwjFFfJyIiIig4cOH0+TJk0UmaMeOHTR9+nQaM2YMtWzZUtwnMTGROnbsqM8UcWaoc+fONS4sNDSUWrXS7RI/dOhQERQ9+OCDdPjwYdq4cSPNnTuXpk2bZlGZo/p0DnIjnjbm1Vq8ezkYxw97LlJKbgkFujvQfT3MV5cGYGy8N93CO3Svie9vPYOmttBgmQWllJane59pr6H9BhURLLEVK1aIYGjw4ME0YsQI0T7g008/1d9eVlZGsbGxYgVcQ1lbW4ueTfyVs0wPPPAAjR8/nhYuXEhK4upgS619dHvzoIWA8bJKH1YVwE67qS3Z2yCrBOoyMjqQhncKoPJK3eo47iUG0NDi7lAvJ3LR0N6Yihkpr3xbuXJlnbeHh4eLTt2G1HZ7WFgYrVu3jpSuS7AHnU0roMMJ2XRTx5orB6HxVuy+SKl5JRTk4Uj3dkdWCdQ5Hbfozs60+3yGmFZ5/68zNONmTMdBA7c5CdBOVklRmSUwLArNKY2GNyX+qFpWiTdDBVAj7pHDARPj2iW0H4GGr4RzJS3Bu4BKVN8jrr4MGxi2YvcFUfvFWaV7ugWb+3QATOq26JY0IiqAKiolsToO03FgyElklkDJOrV0I2urFuJNnpe6Q9MUlpbTx1V7Zz0xCFkl0IZFd3Qmb2c78UbI/ZcAalNZKdGpqrYByCyBIvGydnllAloINN13/3FWqVR0RR+FrBJohLfL5ek4XtiAnm1Qm4SsIiosrRAfIsO9dYuKtALBkop0qapbwgtd07NKn/x9Tlx/4qZ2aNQHmjIiKpBujQ7UT8dx93qA2lbCtfV1IRuNvT5qa7Qqh+aU12b5rguUUVBKYd5OdNf1QeY+HQCzTMf5uNjRqZR8eu9PTMdBTbEaLe5mCJZUhLc9kTNLKPJunPwSzirJtUrIKoE28cbcL1dNx/GK0MPxyFLDZSc1uM2JDO8IKsJPYJ5Lzi0upwsZDW/OCUTf7IyjrMIyauXjTHdep+sKD6BFwzsHiv3jKiUS03HcoBVAyz2WGIIlFeFsSGSgbhdobk4JDZNXXEafba+qVRrUVnNz8QBXWnB7J/JxsafTqfm0dAum44DobFo+nU8vENc7BujeZ7QE7wqqLfJG3VJjskrZhWViyxj+RA2gdZ7OdvTKXbrpuE//OUsHL2aZ+5TATMoqKkXD0lve3S6K/9v6uZC/m3L2TjUWBEsqE1VV5I1O3g3DUwxf7ogT158c3A5ZJYAqwzoFiClpTMdpF7+P3PH+DnpzY6xoVjqgvS99/XAPsVWO1uCdQaWZpWOXcsSnADDs90OJYhdt7tZ9W3SguU8HwKLMv72T2BKF951csvmUuU8HmnHLp8XrYujOD3fQiaRc8nCypXfu7ULfPNyDgj2dSIsQLKlMa18XcrazFo3DzqTmm/t0LBqvGPzi3/Pi+kN9w5BVAriCh5MdvXpXlLjOdX0HMB2nervOZtAt7/5Dn/xzTnzg5g+RW2YMpLuvD9ZkRkmGdweV4S1POgWhOWVD7DiTIfrJONlZ0309Qs19OgAW6eZIf7q7axCm41Qup6iM5vxyhO7/7D+KyyikADcH+nx8d3p/7PWi2F/rECypEIq8G+aLf3Ur4EZ3CyZ3R1tznw6AxXppZCfyc7Wnc2kF9PamWHOfDhjZpuPJNHTJ3/T9nnjx/bheobRpxgAaEulv7lOzGAiWVN3JG5mluvAU5V+xacRZ5Qn9Wpn7dAAsmruTLS2+Wzcd9/m/52n/hUxznxIYQVpeCU1bcYCmfLufUnJLRJ+5H6b0plfuiiI3B3yArA7Bkoo7ecck5YkVDHC1r3boapUGd/QTLxAAYNjgCH8adX0w8eYAz/50RBQBg3LrNX/aF09D3vmb/jiaJMo3Hr+xDa1/qj/1bu1t7tOzSAiWVCjUy0msXiitqNR3XIXLsgtL6ecDCeL6xBuQVQJoqHkjI0WPHW5O+Bam4xQpPrOQxn+5h55bdUTUKXVq6Ua/T+tHs4Z3JAdba3OfnsVCsKRCvGIhqqrIG528r7Zyz0UqLqukiEA36oNPUQANxrV9r90dLa5/ueM87Y3DdJxS8Mo2Xv07dMk/tP10OtnbWIkAiQOlzlXvF1A3BEsa2FQXanajXb7zgrg+6YZWml4KC9AUN3X0E4sieDruuZ8Oa3Y6jlcFxqUXiE24LR3PMIz6aCctWnuCisoqqFcrL9rw9AAx9YaWKQ1j08D7gWKLvLEirrp1R5MoObdYLIUd2QVNKAGaYu5tkSI7wUvM39h4UqyWU+OekYnZRZSYVaT/msCXquvp+SXiflzvwyuQ+7bxob5tvOn6ME+Lmc4qKa+gD/86Sx9uO0NlFRK52tvQnBERNKZHCFlZ4YNiYyBYUqkuVcESb4TJn/wc7SzjP6+5ixq/rGpC+WDvMLK3wb8JQJOn40ZF0YSv9tLXO+NoeKcA6qWgKW1+LcgqLKsKhAp1QVC1oIi/cj1PfXgqq6S8kg5czBaX9/86Q3Y2VnR9qIc+eOoS4iE2OW9u3EB01qoj4j2ADYnwp5fv7EwB7g7Nfi5qgGBJpbgIk7cp4KWhxy/lUPdwL9K6/Rey6HBCjngxG9cbTSgBrsWNHfzovu4h9H/74kWx8Ian+5OTnWW8pVRWSpSWX6IPgBKyCmtkiPgr73JQH14ow1sh8YW3+QjylK/rLhw08mNx12u+7DibLpbg/3cuU1ze2Uyi6W2PcC8ROHEAFdnSTWSjTKWgpFwU33MQy1OlPi52YtuaW6MCUXZwDSzjmQ1Gx/8pODW8JSZVTMUhWNIVpDLeHBQdaQGu3Qu3RdD202l0MbOQ3tgQK96UTV2kzKtZeT/HDL7k8/USSs8vpaScy8HQpexisRq4PvyBUgRDVcFPcNX1IA9dYORiX/9bJAdRo7vzJURkrHil4M6q4GnXuQxxrn+fShMX5uZgI5bni+CprQ+183MxWhDzz6k0mvPLUfHvwO6+PohevDWSPJ3tjPL4WoZgSeV1S7pgCUXevFx2w7FkcR3tAgCMgxsXvjYqWixFF9NxnQMa1aeHg5+squCHa4D4a6Y+COKAqER/nS9834buD87Jm0B3xxrBkHydv7b0cDR6bREHPbw/J18e6B0mMlyxKXlVwVM67T6XSbnF5bTpRIq4MP7g1kdknXQXbv3S2OApq6CUFv1xgn45kCi+5/G9encUDWzva9TxaRmCJU2siEOR9zc748SL7A1tfahjgJu5TwdANQa096X7e4aIrTKeW3WYvp/cmwpKKigjv0Rkfy5ngXTBkP5YfgllF5WJqaLG4ukvb2c78nK2I28X/mpPge4ONYIhrs0xR61QdVxEzS1K+MKrb8srKunYpVzaeTZdZJ649QIHiWsOXxIXxucuB0/8lQO+unAmi5tKzl99XGTXxI4EfcPp2aEdyLkBWTFouBYS/2vDNcnNzSV3d3fKyckhNzfLeSPmF6TrF20W14/MH6rZ9vW8tLfPq39SXkk5fTmhOw3qiP2OAIy9cmz40u366Z/G4togDn68ne1FAOTlwtd1Fy8X+8uBkbOdmFIydxBkzNVqhy5m6zJP5zLo4MUssWqtutY+zlXBkw/1bu1F3lUlBMk5xTT3t2O0JUaXoeLpPM7ydQvzNMtY1P7+jdBTxfjFhVPPXOR4LCFHzI9rEbf150Cpta8z3djez9ynA6A6rg629OboaLE6jnuZeTrpghu+cIGx7nq1oMflcmDk6WSr2V4/vCKXVxHy5RkiKiwtFwtROHjiy9GEbDqXXiAuK3ZfFD/TMcCVrgvxoD+OJInXNVvrFjT1xrY09aY2WOFrQgiWNNBCgIOlwxoNlrgm4qsdceL6w/1aobcIgIlw5uPY/GFipZcpV3upGa8m7N/OV1xYbnEZ7TmXWRU8pdPJ5Dz9hXHQ9MY90dTe39XMZ65+CJZULirYXcxpH03UZpH3nzEpYqUO1ziMuj7I3KcDoGrclgOMh0snhkT6iwvjOi9uScDZp3b+LnRv9xAEps0EwZJGirwPx2uzyJv3QmL39wy1mB4wAABNwfVKt0YHigs0L3wMUDl5Q10uvORPJVpyLDGHdp/PFJ+8HuobZu7TAQAAhUKwpIHCSy5s1mILAbkJ5YioQIPLbwEAAAxBsKShfeK0FCyl5hbr+5ZwfxMAAICmQrCkqeaU2iny/va/C6JfCfcc4RUjAAAATYVgSUtF3gk5ouOr2hWXVeh7kiCrBAAA1wrBkgZEBrqLImduq5+cW0xq99vBRNG9nLcNGFq15BYAAKCpECxpgKOdtb5pmdpbCHDmTC7s5j2StNoZGAAAjAfvJBoRHaSNuqXtp9PpVEo+OdtZ0309Q8x9OgAAoAIIljQiOkQXLB1NVHdmSc4qje4eotmNgwEAwLgQLGmwfYBai7zPpObRttg0atGC94ELN/fpAACASigmWMrMzKRx48aRm5sbeXh40KRJkyg/P79BP8vBwS233EItWrSg3377rcZtfOzKyw8//EBqwzVLvG9TTlEZXcgoJDX6smrD3CER/hTmrWvECQAAoJlgiQOl48eP0+bNm2nt2rX0zz//0JQpUxr0s0uXLhVBUF2++uorSkpK0l/uvPNOUhsOlCIC3cT1IyqcissqKKVfDiSI6xP7oV0AAAAYjyJ2Fo2JiaENGzbQ3r17qXv37uLYsmXLaMSIEfTWW29Ry5Yt6/zZQ4cO0dtvv0379u2jwMDaNx/kTFVAQACpXZdgdzocn01H4rPp9i51/5sp0co9F6m4rJIiA92od2svc58OAACoiCIyS7t27RIBjRwosSFDhpCVlRXt3r27zp8rLCyksWPH0gcffGAwGJo2bRr5+PhQz5496csvv6y3pqekpIRyc3NrXJQgWqXbnpSWV9LyXXH6JpSGsogAAACqzCwlJyeTn59fjWM2Njbk5eUlbqvLM888Q3379qU77rijzvssXLiQBg0aRE5OTrRp0yaaOnWqqIV68skn6/yZxYsX04IFC0ipnbyPXcqhikpJNKpUg/XHkiglt4R8XOzpti61Zw8BAAAUGSzNnj2bXn/99Xqn4Jpi9erVtHXrVjp48KDB+7344ov66127dqWCggJ68803DQZLc+bMoRkzZui/58xSSIjl9/Rp4+tCTnbWVFhaQWfT8vWNKpWMs4Bf/KtrFzC+TxjZ21ib+5QAAEBlzBoszZw5kyZMmGDwPq1btxZTaKmpqTWOl5eXixVydU2vcaB09uxZMX1X3ahRo6h///60bdu2Wn+uV69etGjRIjHVZm9vX+t9+Hhdt1kyziR1DnKnPeczRe2SGoKlfReyxLQiF7CP6xVq7tMBAAAVMmuw5OvrKy716dOnD2VnZ9P+/fupW7du+mCosrJSBDd1Za0eeeSRGseioqJoyZIlNHLkSIMF4Z6enooMhhrayZuDJQ4wuHGj0n1ZlVW667og8nZR598MAADMSxE1SxERETR8+HCaPHkyffzxx1RWVkbTp0+nMWPG6FfCJSYm0uDBg2n58uWiUJszTrVlnUJDQ6lVK93S8jVr1lBKSgr17t2bHBwcRFuCV199lZ599llSq+gQD9W0D4jPLKSNx3U1axNvQLsAAADQcLDEVqxYIQIkDoh4FRxPp7333nv62zmAio2NFSvgGsrW1laslONCcK59adu2Lb3zzjsiKFNz+wAWcylXrCLj6Sul+npnHFVKRP3b+VCHAOVPKQIAgGVSTLDEK99WrlxZ5+3h4eH1Lvm/8nbOVvFFS0K9nMjd0VZ08o5NzqOoquBJafKKy+j/9saL62hCCQAApqTctAI0CfcgklsIHEnMJqX6aV8C5ZeUU2tfZxrYvv66NwAAgKZCsKRB+mApXpl1S9wj6qud5/VZJSuV9IsCAADLhGBJg6KCdEXehxOUmVnaEpNC8ZlFYjpx1PXB5j4dAABQOQRLGtQlRJdZOp2aT0WlFaQ0chPKsb1CydEOTSgBAMC0ECxpUICbA/m62ovprBNJypqKO5aYI/pE2Vi1oIf6hJv7dAAAQAMQLGm0yFtuIXBYYXVLchPKW6MDKcDdwdynAwAAGoBgSeN1S0cV1JwyNbeY1hy5JK6jXQAAADQXBEsaFV1Vt6SkIu/luy5QWYVE3cM8qUtVJ3IAAABTQ7CkUbxHHDuXVkC5xWVk6YrLKmjF7gvi+iRsbQIAAM0IwZJG8aazQR6O4vqxBMufivv1YCJlFZaJc7450t/cpwMAABqCYEnD5BYClr6pLm9TIxd2P9wvnGys8bQFAIDmg3cdDYsO1tX9HLHwuqV/TqeLnlDOdtZ0b48Qc58OAABoDIIlDZPrliy9fYCcVRrdPYTcHGzNfToAAKAxCJY0rHNVr6XE7CLKyC8hS3QmNY/+PpVGLVropuAAAACaG4IlDeMsTWtfZ4uuW/ri3zjx9eYIfwrz1p0rAABAc0KwpHHyVNwRC5yKyyoopV8OJIjrE9EuAAAAzATBksbJRd5HEy2vyHvlnotUUl5JnVq6Ua9WXuY+HQAA0CgESxontw84nJAjluhbitLySvpmZ5y+CSXvZwcAAGAOCJY0LjLQnaytWlBaXgkl5xaTpVh3NIlS80rI19Webotuae7TAQAADUOwpHGOdtbUzs9FXD9iIZ28OcP1RVW7gPG9w8jOBk9TAAAwH7wLAXWxsOaUe+Oy6GhiDtnbWNG43mHmPh0AANA4BEtA0fK2JxaSWZKbUN59fRB5OduZ+3QAAEDjECwBRQfJmSXzF3nHZxbSphPJ4vrD/dAuAAAAzA/BElCHAFeys7ainKIyuphZaNZz+WpHHFVKRP3b+VB7f1ezngsAAABDsASigDqipZu+hYC55BWX0Y/74vXtAgAAACwBgiW4opO3+Yq8V+y+SPkl5dTG15kGtPM123kAAABUZ1PjO9Cs6KpNdZt7jzie+lt9KJF+2BtPxy/l6rc2sbJCE0oAALAMCJZA6BKiK/I+lphDFZWSaFRpKlxEvvt8Jv24N57+OJoktjRhXDd1V9cgGt0txGS/GwAAoLEQLIHQxteFnOysqbC0gs6m5ZukuDo1r5h+3p8o6pLOpxfoj3fwd6X7eoSIQMkTrQIAAMDCIFgCgTNJnVu60564TNFCwFjBUnlFJf19Kk1Ms209mSqyVszZzppuv64l3ds9hK4L8cDebwAAYLEQLEGNuiVdsJRN93QLvqbHupBRIDJIq/YnUEpuif54tzBPuq97CN0aHUjO9nj6AQCA5cO7FehFVRV5N7V9QHFZBW08nkz/tzeedp7N0B/nLtx3dw0SU23t0DsJAAAUBsESXLVHXExSLpWWVzZ4A1u+PwdIvx5MFKvbGM+q9W/nS2N6hNCQCH9shgsAAIqFYAn0wrydyM3BhnKLy+lUSh51ruq9VFcDydWHL4kVbdUzUUEejjS6e7CYxgv2dGqmMwcAADAdBEugx0XW0cEe9O+ZdDqckH1VsMRL/vddyBJZpD+OJFFRWYU4bmvdgoZGBtC9PULohrY+Jm07AAAA0NwQLMFVRd4cLB3lbFEv3bH0/BL65UCCWNF2Lu3ykv92fi76Jf/eLvbmO2kAAAATQrAENXBmiR2Kz6a/YlPp//bE05aYFCqvWvLPvZhuiw6k+3qE0vWhWPIPAADqh2AJaugSopt6O5mcRw9/tVd/nHshcbH2bV1akguW/AMAgIbgXQ9qCHBzoHBvJ4rLKCQPJ1u6u2uwmGrrEIAl/wAAoE0IlqAGnlb7ZmJPsR1JnzbeZG9jbe5TAgAAMCsES3CVMG9ncQEAAAAixXQKzMzMpHHjxpGbmxt5eHjQpEmTKD8/3+DP3HjjjSJTUv3y2GOP1bjPxYsX6dZbbyUnJyfy8/Oj5557jsrLy008GgAAAFAKxWSWOFBKSkqizZs3U1lZGT388MM0ZcoUWrlypcGfmzx5Mi1cuFD/PQdFsoqKChEoBQQE0M6dO8Xjjx8/nmxtbenVV1816XgAAABAGVpI3GnQwsXExFBkZCTt3buXunfvLo5t2LCBRowYQQkJCdSyZcs6M0vXXXcdLV26tNbb169fT7fddhtdunSJ/P39xbGPP/6YZs2aRWlpaWRnZ9eg88vNzSV3d3fKyckRmS8AAACwfA19/1bENNyuXbvE1JscKLEhQ4aQlZUV7d692+DPrlixgnx8fKhz5840Z84cKiwsrPG4UVFR+kCJDRs2TPzjHT9+vM7HLCkpEfepfgEAAAB1UsQ0XHJysqgnqs7Gxoa8vLzEbXUZO3YshYWFiczTkSNHRMYoNjaWfvnlF/3jVg+UmPy9ocddvHgxLViw4BpHBQAAAEpg1mBp9uzZ9Prrr9c7BddUXNMk4wxSYGAgDR48mM6ePUtt2rRp8uNyhmrGjBn67zmzFBIS0uTHAwAAAMtl1mBp5syZNGHCBIP3ad26tSjATk1NrXGcV6zxCjm+raF69dJtdnbmzBkRLPHP7tmzp8Z9UlJSxFdDj2tvby8uAAAAoH5mDZZ8fX3FpT59+vSh7Oxs2r9/P3Xr1k0c27p1K1VWVuoDoIY4dOiQ+MoZJvlxX3nlFRGIydN8vNqOi7y4oBwAAABAEQXeERERNHz4cNEGgDNBO3bsoOnTp9OYMWP0K+ESExOpY8eO+kwRT7UtWrRIBFhxcXG0evVq0RZgwIABFB0dLe4zdOhQERQ9+OCDdPjwYdq4cSPNnTuXpk2bhswRAAAAKCdYkle1cTDENUfcMuCGG26gTz/9VH87917i4m15tRsv+9+yZYsIiPjneMpv1KhRtGbNGv3PWFtb09q1a8VXzjI98MADIqCq3pcJAAAAtE0RfZYsHfosAQAAKI+q+iwBAAAAmAuCJQAAAAClN6W0dPJMJjp5AwAAKIf8vl1fRRKCJSPIy8sTX9GYEgAAQJnv41y7VBcUeBsB93vizXhdXV2pRYsWRntcuTN4fHy8JgrHMV5109p4tThmjFfdclU4Xg6BOFDiNkS832xdkFkyAv4HDg4ONtnj85NSLU/MhsB41U1r49XimDFedXNT2XgNZZRkKPAGAAAAMADBEgAAAIABCJYsGG+58tJLL2lm6xWMV920Nl4tjhnjVTd7jY23OhR4AwAAABiAzBIAAACAAQiWAAAAAAxAsAQAAABgAIIlAAAAAAMQLAEAAAAYgGAJAAAAwAAESxp15swZeu2110irtNAxQwtj1KrU1FTSktjYWHrqqadIy/uPqp1k4a9X6LOkQUeOHKGbbrqJHB0d6dChQ+Tj40NqdvHiRYqJiRFvMN27d6eIiAhxvKKigqytrUltsrKyyMHBQfx9+b+3MTd3tkTnz5+n33//nbKzs6lz5850zz33kJodPHiQunXrRtu2baMBAwaQ2h0+fJgGDx5MBQUFtHv3boqOjia1P5///fdfyszMpMjISLr55pvFcbX+X87PzxdNLm1tbS16jMgsaQy/8PTu3ZvuuOMOKioqom+//ZbUHhj26NGD3n33XXrmmWdo4sSJ9NBDD4nbOFDigElNOCgcOnQovfnmm1RYWCheeNT8eYj/vn379qU///yTvv/+e3rnnXfo119/JTX//x04cKB4LmslUOLXqzFjxlBAQACtXLmS1Ozo0aPUs2dP+uWXX+jDDz+k2bNniw+2ubm5qvy/HBMTQ3fddRf93//9H5WWllr2GDmzBNpw8OBBydHRUZo9e7b4/oknnpB69+4tJSQkSGqUkpIiRUZGSv/73/+ksrIyKT09XVqwYIHUokULafjw4fr7VVRUSGpw4cIFqUuXLpK/v7/Ut29f6Y033pAKCgrEbZWVlZLaxMbGSkFBQdILL7wgxpeWlibG/8EHH0hqdPToUcnJyUmaO3eu+J7HfOrUKWnbtm3SpUuXJLU5cOBAjderN998U2rVqpV0+PBhSY0yMjKk6667Tpo1a5b4Pjc3V1qxYoV4verXr5/+b6yW16u4uDgpIiJCsrOzE+9DP/30k1RSUmKxr1fILGkEp3b5E8rTTz9NixcvFsc4tX38+HE6ceKEKufFT58+LVK7U6dOJRsbG/L29qb77ruPQkNDad++fXTLLbeI+1lZKf+/AX8aW79+vfj0/ccff4ipip9++ok++OADfYZJTX9f/hT66aefiizavHnzxDGeTo6KihKfzrm+5fXXXye1KCkpoblz54ps8KJFi8Sx2267TTyf+f/1yJEjxf9ttUhMTBTZ7yeeeEL/esUZRP678/9dpras8KVLl6i8vJwmTZokvnd1daVBgwZRp06d6Ny5c3Trrbeq5vWqoqKCfv75Z2rbti3t2bOHPDw86NVXX6XVq1dbbIZJ+f/q0CAcLLz33nviCSnjFyMOmBYsWCBehNXwn/DKNxiuY+EXIVlxcTH5+vrSiy++KAJInrpRA35xuf322+nRRx8V9SwfffSR+CoHTFzvwX9fS3sBaiqeQr333nvpySefJDs7OzH+V155RUzT8BiTkpJo+fLlIsWvBjzG//3vf6LerlevXqKOhf8NeLqVg0MOlriGaeHChaQG/CGHp6GqB7wcLHHA8PLLL4tpKTXWG+bl5Ym/pywnJ0f8v12yZIl4LVPLBwBra2sRCI4fP566dOkiPuD5+/vrAyZ+7ba4gMncqS0wDznNuXz5cql169bS7t27VZXilaelOG0/btw4aeXKlWK6wt3dXUzLsT59+kgzZ86U1IqnHh977DGpR48eNabkvvrqK0kNz93y8nL9sTNnzkjBwcHSmjVr9Mc+//xz8fePiYmRlKz6lARPTUVHR0vXX3+9FB8frz9eWFgoPfjgg9LgwYP1UxlKVdtrkHzs77//ltq0aSP9+OOPdd5XydNw/Pe74447pMWLF4vnsoeHh/TMM8+I2++77z5pwoQJkppen6rj5y2XR3Tt2lVMyZWWlorjv/32m2QJsBpOxdLT0yk+Pp6cnJxE1M6pTp6KkTMMHLlz2pdXXPTp04e++eYbUst4eUqGp904ZT958mTxSbSsrIzGjh2rb5kwbtw48e+h1OwSj4c/gddGXunH9+Hsy/79+2nUqFEinf/FF1/Q2bNnKSwsjJQ43rpWzGRkZIi/ufwc/+2332jOnDn0119/ielJpak+XiZ/0ubMA2fOOCvMGWP5b82ZNS4M3rFjh1gNqTT1/X1l/fr1Izc3NzHtrGTVx8sXfs6ePHlSTLdyeQQfGz16tH7alf8fnzp1ijZs2EBKlJubK/6P8so3T0/PGqt15ecwZ5TuvPNOSklJoVmzZon/u5xp4tfxli1bmncA5o7WwDS4CLJ9+/biUxh/4u7WrZu0a9euGveRP5l/9tln4r579uyR1DJe/uS9fft2cRsX/vKn8JMnT9b4VDNixAhp0aJFFltQaAiPZezYsdL+/fvrvI/895UzTPb29pKbm5vITiiNofHKf7sr/4acNbzllltEoawaxiuPj7MptWVUHn74YZF5uPITu9qez5s3b5YCAwOl33//XVKqK8fLf1v578bPV75wZlzGt48aNUqxmfCjR4+KRScdOnQQMxlPPfWUWIBTnTx+zjDxa7Otra3k7Oxs8DnRnBAsqVBSUpIUGhoqPf/882LF0K+//iqNGTNGPPm+//77q+7P9+E30rfffltS03htbGyk77777qr78+o/norz8fERq4mU5uzZs1JISIhI0d91110Ggx/5TXXq1KmSp6endOzYMUnN45WnM+bMmSN5e3tLR44ckdQ03tqCenm8vr6+0vHjxyW1/315VRjf/9lnn1XkNFxd4+W/bW3j4dco/vvy/18lTinHxMSI5+aMGTPEB1j+gMqlAT///PNVz2k5IH788cclLy8vi3q9QrCk0hYBnTt3ls6fP1+jpoFfXHiZ5tq1a/VPTPmJ+tZbb1nUE9MU4+UXonPnzoml5i1btlRkhoXHxdmDe+65RyyR5xqHkSNHGhzLl19+KZYfa2G8mzZtkqZMmSI+vfLzQu3j3bBhg/TQQw+JbKoW/r4y/hCkxNerxo43NTVVWrhwofgwqMTnc05OjqjBevTRR2scHzZsmAgUa8P/Lpb4eoVgSYW4kJmfbBwYMPnTCgdG06ZNE1MxckZFadNP1zreoqIi8aJTvThWaX744Qfp008/Fdf501lD3mCqB5JqHm9ycrLoTcM9XLQwXs6qciG7/NxX+3irF/VrYbw8NXXx4kXF9tGKi4uTJk2apF94IRdtc0DEY67tPYj74XH2zdIgWFIhfkEZMGCAWD3BKfrqAQRPQfFt3Jyx+nEtjFcNY60NrxyRX3DlT5/FxcXijVSN6hpvYmKiuK62vzPGq83ns1rGu3nzZv11OTDiFbk33XRTjWOchbJk6mqsAwKvKuBmdXFxcaK3Eq9CkHsoBQUFkYuLi1h1wdTQW6mh41XDWKuTm/LxXmjcX4mbT3KDxr1794rtMLjPEq8uUcuC1/rGy9vayP1ZtDBe3udQS+PV2vNZ6eOVqs57yJAh+u/l5yrvB8d738nHeMXfI488IlYIWiobc58AGJf85Hv88cfF8nDeYJQbTr7wwgtiuS3j5dW8dJP/s3IAoeQXW62Nt/qY5dYAvPyYlxjzMe5qzZ3JeawbN24Uy3SVDuPFeDFe5WlR9Torj1duVcPtLtzd3UWHcj7GDYK52SZvklxXKxRLgD5LKiP3q5B7zXDEzt1Rufsrd3jmPkRr166l//77T7TRVzqtjpc7+/ILzpWf2Lj3zoEDB2j79u3UuXNnUjqMF+PFeNU1Xvbjjz/SihUrxBjffvtt0RuMM2kWzdzzgNA03IPjyg0l5eJHLqrjDWT/+usvfQE0b5rL3VF55Qz3vFAajLfmeLmLc/Vu1VwI+txzz4n2EIcOHZKUBuPFeDFe7Yz3008/FYtyLKmPUn0QLCkQPynDw8Ol6dOn6wuaq6964p3Yeanmlc3p6urjYekw3trHe+UqEl5lo8QXWoz3Moz3MoxXvePduHGj1L17d+nEiROSUiBYUpjTp0+LBl/cQ4hXTFTHT0ZepsmX6k9MJbcHwHgvw3gvH1cqjPcyjPfycS2Nt3oPKSVBzZLCLF26VKyW4PleLpb7/PPPxSqw0NBQsfeXn5+f4guYq8N4MV6MV7kwXoy3xRXjletLlQar4RTmyJEj+hUSgwYNouLiYrHq65NPPhErwZ5++mmxmkItMF6MF+NVLowX473livEqMVBiyjxrDZITgCEhIWJ5Je+ozjuL88qvLVu20J49e0Sfji+//JLUAOPFeDFe5cJ4Md5CFY1XMPc8IDQO7wXFqwj69+8vPfLIIzVu2717t7hNKasLGgLjvQzjVT6M9zKMV/k2aGi8yCxZsEuXLon54A0bNoj5YL4MGzaMZs2aJfpSpKSkUEFBgf7+3Hixa9euNfpZKAnGi/FivBivUmC85aoe71XMHa1B3csxQ0JCRP8gGxsbqWvXrtKHH34oFRQUSGlpaWIpprW1tfTSSy+JTQfz8/OlefPmSREREVJKSoqkNBgvxovxYrxKgfF2VfV4a4NgyQLxk4+fZLNmzRJ9KniJ5f333y/16NFDmjFjhniC8pNx0aJFkr29vRQWFiZ16dJFCgwMNLjzvKXCeDFejBfjVQqMN1XV460LgiULxB2nuclX9Y6oJSUlIlLnRl4vvviivqcFNzH7+eefpV9++UV0UVUijBfjxXgxXqXAeCVVj7cuCJYsUGxsrNSqVSt9e3i5M7XcEp+j9r///ltSC4wX48V4lQvjxXj/VtF464KmlBaopKSEbrjhBgoICBBLMnkjQnm3Zv5zdenSRRTOffPNN6QGGC/Gi/EqF8aL8XZV0XjrgtVwFoa7m3KTr6+++or++ecfevzxx8Vx+YnJ3VBvv/12Sk1NJTXAeDFejFe5MF6M93YVjdcQBEsWhrubVlRUUOfOnUWk/v3339P48ePFskzZ+fPnxbJMvp/SYbwYL8arXBgvxnteReM1BNNwZiZH5zI5vZmfny/Sn4cOHaKxY8dSWFgYeXl5kbe3t2gjv2vXLoqKiiKlwXgxXowX41UKjFfd420MZJbM5OzZs5SVlVXjicmROT8xeSPC9u3biwZggwcPpuPHj9OIESMoKChIbEzIreSV9sTEeDFejBfjVQqMV93jbRJzV5hrES+v5DbwX3zxxVW3Xbx4UfLx8ZEmTZokVVZWSuXl5eI4X2cVFRWS0mC8l2G8GK/SYLyXYbzlih9vUyFYMsMT09nZWTT4qs17770nPf300/ono0z+/srjlg7jrQnj1cF4lQHjrQnjVfZ4rwWCpWYUExMjWsUvXLhQH5X/+eef0ieffCLt2LFDdEaVj6sBxovxysfVAOPFeOXjaqC18V4rm6ZN3kFTlmD++OOPYh74nnvuEcduvvlmysjIEHPCXCjXqlUreueddyg6OpqUDuPFeDFe5cJ4MV41jdcorjncggZLTk6WpkyZIvbP6dy5s3T33XeLNGhpaaloDz906FBp9OjRUl5enqQGGC/Gi/EqF8aL8appvNcKwVIz49Tm1KlTxZ46J06cqHHbkiVLpICAACkhIUFSC4z3MoxX+TDeyzBe5dPaeK8FpuFM6NKlS3TgwAEqLS2l0NBQ6t69O/n6+tLcuXPpwoUL1KZNG3E/ToVyC/m2bduK5l52dnakRBgvxsswXoxXCTBedY/X2BAsmcjRo0fpzjvvJB8fHzp37hyFh4fT888/T6NHj6bAwECxz47c04KfmGzLli0UHBxMTk5OpDQYL8aL8WK8SoHxqnu8JnFNeSmo1ZkzZ6Tg4GDp+eefl7Kzs6V9+/ZJDz30kDRx4kTRp+LK5ZYXLlyQnn32WcnLy0s6cuSIpDQYL8ZbHcarLBgvxqum8ZoKgiUjKykpkWbMmCHde++94rqMG355e3tL6enpNe6/e/du8aTt2LGjdPDgQUlpMF4djFcH41UWjFcH41XHeE0J03AmWJLJqcuIiAgx1yvvtdO3b19ycXGhsrKyGvfv2bMn5eXl0cKFC0X7eKXBeDHe6jBeZcF4MV41jdekTBqKadS5c+f01+UUZ1JSktS2bVvRPl7G6VA1wHgxXobxKhPGi/Gqabymgo10jSApKUlsJrhhwwYRyXMzL3lVgVw0l5OTIzYqlM2bN0/fBIyjfSXBeDFejBfjVQqMV93jbTYmC8M04vDhw1JYWJjUvn17yd3dXcz1rly5UsrIyKgRycfGxkq+vr5SZmamtGjRIsnR0VGRkTzGi/EyjBfjVQKMV93jbU4Ilq6xoRc/Gf/3v/9JZ8+elRITE6X77rtPioiIkF566SX93josJSVF6tq1q7jdzs5OkU9MjBfjlWG8GK+lw3jVPd7mhmDpGhw/flwKDw+/6onGOzhHRUVJb7zxhlRQUCCOcXfUFi1aiAheqasMMF4djBfjVSKMVwfjVcd4mxtqlq4BryQoLy+nwsJC8X1RUZH4+tprr9FNN91EH330EZ05c0Yc406oU6dOFR1Ur7vuOlIijBfjxXgxXqXAeNU93ubWgiOmZv+tKsJLLXkJ5tatW8X3JSUlZG9vL6736NFDtIz//vvvxffFxcXk4OBASobxYrwYr3JhvBivmsbbnJBZaoSCggLRgyI3N1d/7JNPPqHjx4/T2LFjxff8xOTong0YMED8jExpT0yMF+PFeDFepcB41T1ec0Ow1EAnTpygu+++mwYOHCgafK1YsUIc5+vvvvsubd68Weyzw6lQKyvdP2tqaio5OzuLJ6vSEngYL8aL8WK8SoHxqnu8FqHZq6QUWjjHreGfeeYZacWKFaJ9vK2trXTgwAFxOxfNrV69Wuy/w6sR7rzzTtFe3tnZWTp69KikNBgvxovxYrxKgfGqe7yWAjVL9cjMzKT777+fOnbsKCJ2GRfMRUVF0Xvvvac/xinRl19+WfwMpzgff/xxioyMJCXBeHUwXowX47V8GK+6x2tJsDdcPTiNmZ2dTffcc4/4njuiclqTu6Lyk5BVtWAgV1dXev3112vcT2kwXowX48V4lQLjVfd4LQn+9erh7+9P3333HfXv31/fMp7xJoPyk49byPP16oV2clt5pcF4MV6MF+NVCoxX3eO1JAiWGqBdu3b66NzW1lZc58idC+Zkixcvps8//1y/8kDJT06MF+PFeDFepcB41T1eS4FpuEbgaJ2flPITT47keRNCnhs+ePAg2dio558U48V4MV7lwngxXjWN19yQWWokuR6en4QhISH01ltv0RtvvEH79u2jLl26kNpgvBivmmC8GK+aaG285oSws5Hk6J3Tn5999hm5ubnRv//+S9dffz2pEcaL8aoJxovxqonWxmtOyCw10bBhw8TXnTt3Uvfu3UntMF51w3jVDeNVN62N1xzQZ+kacOt47oiqFRivumG86obxqpvWxtvcECwBAAAAGIBpOAAAAAADECwBAAAAGIBgCQAAAMAABEsAAAAABiBYAgAAADAAwRIAaNqNN95ITz/9tLlPAwAsGIIlAIAG2rZtm9iLKzs729ynAgDNCMESAAAAgAEIlgBAU12Ox48fTy4uLhQYGEhvv/12jdu//fZbsV2Eq6srBQQE0NixYyk1NVXcFhcXRzfddJO47unpKTJMEyZMEN9XVlbS4sWLqVWrVuTo6Cg2MV21apUZRggApoBgCQA047nnnqO///6bfv/9d9q0aZOYVjtw4ID+9rKyMlq0aBEdPnyYfvvtNxEgyQER7+r+888/i+uxsbGUlJRE7777rvieA6Xly5fTxx9/TMePH6dnnnmGHnjgAfG7AED5sN0JAGhCfn4+eXt703fffUejR48WxzIzMyk4OJimTJlCS5cuvepn9u3bRz169KC8vDyRjeLgirNLWVlZ5OHhIe5TUlJCXl5etGXLFurTp4/+Zx955BEqLCyklStXNuMoAcAUbEzyqAAAFubs2bNUWlpKvXr10h/jIKdDhw767/fv30/z588XmSUOiHh6jV28eJEiIyNrfdwzZ86IoOjmm2+ucZx/V9euXU02HgBoPgiWAACq6pmGDRsmLitWrCBfX18RJPH3HPgYylixP/74g4KCgmrcZm9vb/LzBgDTQ7AEAJrQpk0bsrW1pd27d1NoaKg4xtmjU6dO0cCBA+nkyZOUkZFBr732mqhPkqfhqrOzsxNfKyoq9Mc448RBEQdW/DgAoD4IlgBAE7jmaNKkSaLIm2uX/Pz86IUXXiArK906Fw6gOBhatmwZPfbYY3Ts2DFR7F1dWFiYWAW3du1aGjFihFj5xivnnn32WVHUzdN2N9xwA+Xk5NCOHTvIzc2NHnroITONGACMBavhAEAz3nzzTerfvz+NHDmShgwZIgKbbt26idt42u3rr7+mn376SWSLOMP01ltv1fh5nmZbsGABzZ49m/z9/Wn69OniOAdVL774olgVFxERQcOHDxfTctxKAACUD6vhAAAAAAxAZgkAAADAAARLAAAAAAYgWAIAAAAwAMESAAAAgAEIlgAAAAAMQLAEAAAAYACCJQAAAAADECwBAAAAGIBgCQAAAMAABEsAAAAABiBYAgAAADAAwRIAAAAA1e3/AQK97kLsb59nAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_history[fil].pipe(pd.pivot_table,index='date',values='community_weighted_sentiment',columns=['subreddit'],aggfunc='max').plot(rot=45,ylabel='sentiment score')"
]
},
{
"cell_type": "markdown",
"id": "9ada3fbb-d889-420b-888d-de7d86f5693e",
"metadata": {},
"source": [
"### Method 2: Calculate z-score based on the mean and std of entire May's data"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "343165d0-7b6e-4ed4-bf8d-1ab4ca0537db",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:56:35.838802Z",
"iopub.status.busy": "2025-06-25T22:56:35.838802Z",
"iopub.status.idle": "2025-06-25T22:56:35.861459Z",
"shell.execute_reply": "2025-06-25T22:56:35.861459Z",
"shell.execute_reply.started": "2025-06-25T22:56:35.838802Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" mean_cws \n",
" std_cws \n",
" \n",
" \n",
" subreddit \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" LocalLLaMA \n",
" -0.485437 \n",
" 0.069627 \n",
" \n",
" \n",
" OpenAI \n",
" -0.493694 \n",
" 0.071395 \n",
" \n",
" \n",
" artificial \n",
" -0.473540 \n",
" 0.138909 \n",
" \n",
" \n",
" singularity \n",
" -0.429887 \n",
" 0.081146 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" mean_cws std_cws\n",
"subreddit \n",
"LocalLLaMA -0.485437 0.069627\n",
"OpenAI -0.493694 0.071395\n",
"artificial -0.473540 0.138909\n",
"singularity -0.429887 0.081146"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"global_stats = (df_summary[pd.to_datetime(df_summary.index).month == 5]\n",
" .groupby('subreddit').agg(mean_cws=('community_weighted_sentiment','mean'),\n",
" std_cws=('community_weighted_sentiment','std')\n",
" )\n",
" )\n",
"global_stats"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ba4f287b-24f3-4976-86af-a8377140d724",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:56:37.731634Z",
"iopub.status.busy": "2025-06-25T22:56:37.731634Z",
"iopub.status.idle": "2025-06-25T22:56:37.741555Z",
"shell.execute_reply": "2025-06-25T22:56:37.741555Z",
"shell.execute_reply.started": "2025-06-25T22:56:37.731634Z"
}
},
"outputs": [],
"source": [
"df_summary[['mean_cws','std_cws']] = global_stats.loc[df_summary.subreddit,['mean_cws','std_cws']].values\n",
"df_history = df_summary.copy().reset_index()\n",
"df_history['z_score'] = (df_history.community_weighted_sentiment - df_history.mean_cws) / df_history.std_cws"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "2d2bc20a-0a08-4deb-9206-f9e026c0f3d2",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:56:38.204475Z",
"iopub.status.busy": "2025-06-25T22:56:38.204475Z",
"iopub.status.idle": "2025-06-25T22:56:38.824278Z",
"shell.execute_reply": "2025-06-25T22:56:38.824278Z",
"shell.execute_reply.started": "2025-06-25T22:56:38.204475Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" subreddit \n",
" LocalLLaMA \n",
" OpenAI \n",
" artificial \n",
" singularity \n",
" \n",
" \n",
" date \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2025-05-01 \n",
" 0.108533 \n",
" -0.326294 \n",
" -0.237290 \n",
" -0.071433 \n",
" \n",
" \n",
" 2025-05-02 \n",
" 0.728985 \n",
" 0.081725 \n",
" -0.220718 \n",
" 0.182259 \n",
" \n",
" \n",
" 2025-05-03 \n",
" -0.584901 \n",
" 0.547064 \n",
" 0.779239 \n",
" 0.443977 \n",
" \n",
" \n",
" 2025-05-04 \n",
" 2.589418 \n",
" 0.675299 \n",
" -0.491293 \n",
" -2.161081 \n",
" \n",
" \n",
" 2025-05-05 \n",
" 0.505834 \n",
" 0.947750 \n",
" 0.752050 \n",
" 1.201308 \n",
" \n",
" \n",
" 2025-05-06 \n",
" -0.679105 \n",
" -0.867288 \n",
" 0.108398 \n",
" 0.487051 \n",
" \n",
" \n",
" 2025-05-07 \n",
" 0.080169 \n",
" 0.488811 \n",
" -0.327867 \n",
" 0.892507 \n",
" \n",
" \n",
" 2025-05-08 \n",
" 0.344177 \n",
" 0.144971 \n",
" -0.400844 \n",
" -1.018908 \n",
" \n",
" \n",
" 2025-05-09 \n",
" 0.866881 \n",
" 1.014110 \n",
" -0.551819 \n",
" -1.387403 \n",
" \n",
" \n",
" 2025-05-10 \n",
" 0.998114 \n",
" -0.533001 \n",
" -0.073038 \n",
" -1.091921 \n",
" \n",
" \n",
" 2025-05-11 \n",
" -0.600219 \n",
" 0.516398 \n",
" -0.553907 \n",
" 1.515454 \n",
" \n",
" \n",
" 2025-05-12 \n",
" -1.216182 \n",
" -0.033883 \n",
" -0.423863 \n",
" -1.148153 \n",
" \n",
" \n",
" 2025-05-13 \n",
" 0.247646 \n",
" -2.120170 \n",
" 0.410438 \n",
" -0.007542 \n",
" \n",
" \n",
" 2025-05-14 \n",
" 2.744581 \n",
" -1.054436 \n",
" -0.454956 \n",
" 1.431027 \n",
" \n",
" \n",
" 2025-05-15 \n",
" -0.436973 \n",
" -0.209793 \n",
" -1.107901 \n",
" -0.626926 \n",
" \n",
" \n",
" 2025-05-16 \n",
" -0.488635 \n",
" -0.947210 \n",
" -0.754111 \n",
" -0.141756 \n",
" \n",
" \n",
" 2025-05-17 \n",
" -0.892587 \n",
" -0.274142 \n",
" -0.249486 \n",
" -1.256339 \n",
" \n",
" \n",
" 2025-05-18 \n",
" -0.035129 \n",
" 0.431687 \n",
" -0.179333 \n",
" -1.584113 \n",
" \n",
" \n",
" 2025-05-19 \n",
" 0.048008 \n",
" -2.572587 \n",
" -0.567740 \n",
" 0.574945 \n",
" \n",
" \n",
" 2025-05-20 \n",
" 0.278872 \n",
" 1.125961 \n",
" 0.343371 \n",
" 1.083809 \n",
" \n",
" \n",
" 2025-05-21 \n",
" -0.465335 \n",
" -0.232416 \n",
" -1.113788 \n",
" 1.166050 \n",
" \n",
" \n",
" 2025-05-22 \n",
" 0.097036 \n",
" -0.445080 \n",
" -1.560167 \n",
" -1.219291 \n",
" \n",
" \n",
" 2025-05-23 \n",
" -1.182355 \n",
" 0.024858 \n",
" 1.080172 \n",
" 0.616565 \n",
" \n",
" \n",
" 2025-05-24 \n",
" 0.363446 \n",
" 2.486987 \n",
" 1.014332 \n",
" -0.182961 \n",
" \n",
" \n",
" 2025-05-25 \n",
" -0.753511 \n",
" 1.592893 \n",
" 0.671174 \n",
" 0.409314 \n",
" \n",
" \n",
" 2025-05-26 \n",
" -0.019423 \n",
" -1.059621 \n",
" 1.431861 \n",
" 0.215536 \n",
" \n",
" \n",
" 2025-05-27 \n",
" -1.611847 \n",
" 0.083969 \n",
" -1.511113 \n",
" 1.798263 \n",
" \n",
" \n",
" 2025-05-28 \n",
" -0.146052 \n",
" 0.226888 \n",
" -0.052449 \n",
" 0.128626 \n",
" \n",
" \n",
" 2025-05-29 \n",
" 0.581694 \n",
" -0.614289 \n",
" 3.346702 \n",
" -0.002884 \n",
" \n",
" \n",
" 2025-05-30 \n",
" 0.429497 \n",
" 0.397523 \n",
" -0.657833 \n",
" 0.015947 \n",
" \n",
" \n",
" 2025-05-31 \n",
" -1.900638 \n",
" 0.503316 \n",
" 1.551778 \n",
" -0.261925 \n",
" \n",
" \n",
" 2025-06-01 \n",
" 0.532828 \n",
" 1.289294 \n",
" 1.876977 \n",
" -0.688700 \n",
" \n",
" \n",
" 2025-06-02 \n",
" 0.232248 \n",
" -0.165925 \n",
" -1.098352 \n",
" -1.090313 \n",
" \n",
" \n",
" 2025-06-03 \n",
" 1.922932 \n",
" -1.137965 \n",
" -1.088363 \n",
" -1.100269 \n",
" \n",
" \n",
" 2025-06-04 \n",
" -0.144756 \n",
" -0.843765 \n",
" -0.946424 \n",
" 1.612607 \n",
" \n",
" \n",
" 2025-06-05 \n",
" 0.083187 \n",
" 0.830400 \n",
" -2.020017 \n",
" 0.841401 \n",
" \n",
" \n",
" 2025-06-06 \n",
" 1.761480 \n",
" -0.061533 \n",
" -0.525959 \n",
" 1.053218 \n",
" \n",
" \n",
" 2025-06-07 \n",
" 0.362370 \n",
" 0.711673 \n",
" 0.253683 \n",
" 0.951126 \n",
" \n",
" \n",
" 2025-06-08 \n",
" -0.291809 \n",
" 0.158834 \n",
" -1.471934 \n",
" -0.788063 \n",
" \n",
" \n",
" 2025-06-09 \n",
" 0.650506 \n",
" 0.995156 \n",
" 0.062120 \n",
" -0.648674 \n",
" \n",
" \n",
" 2025-06-10 \n",
" 2.487398 \n",
" -0.421202 \n",
" -0.418658 \n",
" 0.164558 \n",
" \n",
" \n",
" 2025-06-11 \n",
" 1.326513 \n",
" 1.635695 \n",
" -0.693025 \n",
" 0.874158 \n",
" \n",
" \n",
" 2025-06-12 \n",
" 1.086915 \n",
" -1.187856 \n",
" 0.213115 \n",
" 1.497238 \n",
" \n",
" \n",
" 2025-06-13 \n",
" 2.315385 \n",
" 1.254158 \n",
" 0.730157 \n",
" 2.111864 \n",
" \n",
" \n",
" 2025-06-14 \n",
" -0.944600 \n",
" 0.950747 \n",
" 0.198753 \n",
" 3.212883 \n",
" \n",
" \n",
" 2025-06-15 \n",
" 0.990051 \n",
" -0.262975 \n",
" -0.757067 \n",
" 0.466329 \n",
" \n",
" \n",
" 2025-06-16 \n",
" -0.884938 \n",
" -0.828498 \n",
" -0.799452 \n",
" 0.500864 \n",
" \n",
" \n",
" 2025-06-17 \n",
" -0.145928 \n",
" 0.745703 \n",
" 0.903225 \n",
" -0.033837 \n",
" \n",
" \n",
" 2025-06-18 \n",
" 0.876097 \n",
" -0.078857 \n",
" -0.842406 \n",
" -0.004147 \n",
" \n",
" \n",
" 2025-06-19 \n",
" -0.299047 \n",
" 1.717280 \n",
" -1.091362 \n",
" 0.039526 \n",
" \n",
" \n",
" 2025-06-20 \n",
" 2.044398 \n",
" -2.443435 \n",
" -0.977243 \n",
" -0.052705 \n",
" \n",
" \n",
" 2025-06-21 \n",
" -0.897563 \n",
" -1.718745 \n",
" -1.172944 \n",
" 0.178352 \n",
" \n",
" \n",
" 2025-06-22 \n",
" 1.303621 \n",
" 1.285091 \n",
" 0.466241 \n",
" 2.211939 \n",
" \n",
" \n",
" 2025-06-23 \n",
" nan \n",
" 0.407550 \n",
" 0.145478 \n",
" -1.242271 \n",
" \n",
" \n",
" 2025-06-24 \n",
" 2.788611 \n",
" -0.252713 \n",
" -0.483795 \n",
" 0.065892 \n",
" \n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_zscores = df_history.pipe(pd.pivot_table, index='date',columns='subreddit',values='z_score',aggfunc=\"max\")\n",
"\n",
"def highlight_abs_gt_3(val):\n",
" return 'background-color: red' if abs(val) > 3 else ''\n",
"\n",
"styled = df_zscores.style.map(highlight_abs_gt_3)\n",
"\n",
"styled"
]
},
{
"cell_type": "markdown",
"id": "fb2921e5-caf9-4060-8979-70270102efa4",
"metadata": {},
"source": [
"With the more stable mean and std calculation, seems like we've found an actual spike"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e05b3b07-865e-4546-a5ce-0ac9128db685",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:56:40.673195Z",
"iopub.status.busy": "2025-06-25T22:56:40.673195Z",
"iopub.status.idle": "2025-06-25T22:56:40.690169Z",
"shell.execute_reply": "2025-06-25T22:56:40.690169Z",
"shell.execute_reply.started": "2025-06-25T22:56:40.673195Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" subreddit \n",
" community_weighted_sentiment \n",
" mean_cws \n",
" std_cws \n",
" z_score \n",
" \n",
" \n",
" \n",
" \n",
" 54 \n",
" 2025-05-14 \n",
" artificial \n",
" -0.536738 \n",
" -0.47354 \n",
" 0.138909 \n",
" -0.454956 \n",
" \n",
" \n",
" 58 \n",
" 2025-05-15 \n",
" artificial \n",
" -0.627437 \n",
" -0.47354 \n",
" 0.138909 \n",
" -1.107901 \n",
" \n",
" \n",
" 62 \n",
" 2025-05-16 \n",
" artificial \n",
" -0.578293 \n",
" -0.47354 \n",
" 0.138909 \n",
" -0.754111 \n",
" \n",
" \n",
" 66 \n",
" 2025-05-17 \n",
" artificial \n",
" -0.508196 \n",
" -0.47354 \n",
" 0.138909 \n",
" -0.249486 \n",
" \n",
" \n",
" 70 \n",
" 2025-05-18 \n",
" artificial \n",
" -0.498451 \n",
" -0.47354 \n",
" 0.138909 \n",
" -0.179333 \n",
" \n",
" \n",
" 74 \n",
" 2025-05-19 \n",
" artificial \n",
" -0.552404 \n",
" -0.47354 \n",
" 0.138909 \n",
" -0.567740 \n",
" \n",
" \n",
" 78 \n",
" 2025-05-20 \n",
" artificial \n",
" -0.425843 \n",
" -0.47354 \n",
" 0.138909 \n",
" 0.343371 \n",
" \n",
" \n",
" 82 \n",
" 2025-05-21 \n",
" artificial \n",
" -0.628255 \n",
" -0.47354 \n",
" 0.138909 \n",
" -1.113788 \n",
" \n",
" \n",
" 86 \n",
" 2025-05-22 \n",
" artificial \n",
" -0.690261 \n",
" -0.47354 \n",
" 0.138909 \n",
" -1.560167 \n",
" \n",
" \n",
" 90 \n",
" 2025-05-23 \n",
" artificial \n",
" -0.323495 \n",
" -0.47354 \n",
" 0.138909 \n",
" 1.080172 \n",
" \n",
" \n",
" 94 \n",
" 2025-05-24 \n",
" artificial \n",
" -0.332641 \n",
" -0.47354 \n",
" 0.138909 \n",
" 1.014332 \n",
" \n",
" \n",
" 98 \n",
" 2025-05-25 \n",
" artificial \n",
" -0.380308 \n",
" -0.47354 \n",
" 0.138909 \n",
" 0.671174 \n",
" \n",
" \n",
" 102 \n",
" 2025-05-26 \n",
" artificial \n",
" -0.274642 \n",
" -0.47354 \n",
" 0.138909 \n",
" 1.431861 \n",
" \n",
" \n",
" 106 \n",
" 2025-05-27 \n",
" artificial \n",
" -0.683447 \n",
" -0.47354 \n",
" 0.138909 \n",
" -1.511113 \n",
" \n",
" \n",
" 110 \n",
" 2025-05-28 \n",
" artificial \n",
" -0.480826 \n",
" -0.47354 \n",
" 0.138909 \n",
" -0.052449 \n",
" \n",
" \n",
" 114 \n",
" 2025-05-29 \n",
" artificial \n",
" -0.008654 \n",
" -0.47354 \n",
" 0.138909 \n",
" 3.346702 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date subreddit community_weighted_sentiment mean_cws std_cws \\\n",
"54 2025-05-14 artificial -0.536738 -0.47354 0.138909 \n",
"58 2025-05-15 artificial -0.627437 -0.47354 0.138909 \n",
"62 2025-05-16 artificial -0.578293 -0.47354 0.138909 \n",
"66 2025-05-17 artificial -0.508196 -0.47354 0.138909 \n",
"70 2025-05-18 artificial -0.498451 -0.47354 0.138909 \n",
"74 2025-05-19 artificial -0.552404 -0.47354 0.138909 \n",
"78 2025-05-20 artificial -0.425843 -0.47354 0.138909 \n",
"82 2025-05-21 artificial -0.628255 -0.47354 0.138909 \n",
"86 2025-05-22 artificial -0.690261 -0.47354 0.138909 \n",
"90 2025-05-23 artificial -0.323495 -0.47354 0.138909 \n",
"94 2025-05-24 artificial -0.332641 -0.47354 0.138909 \n",
"98 2025-05-25 artificial -0.380308 -0.47354 0.138909 \n",
"102 2025-05-26 artificial -0.274642 -0.47354 0.138909 \n",
"106 2025-05-27 artificial -0.683447 -0.47354 0.138909 \n",
"110 2025-05-28 artificial -0.480826 -0.47354 0.138909 \n",
"114 2025-05-29 artificial -0.008654 -0.47354 0.138909 \n",
"\n",
" z_score \n",
"54 -0.454956 \n",
"58 -1.107901 \n",
"62 -0.754111 \n",
"66 -0.249486 \n",
"70 -0.179333 \n",
"74 -0.567740 \n",
"78 0.343371 \n",
"82 -1.113788 \n",
"86 -1.560167 \n",
"90 1.080172 \n",
"94 1.014332 \n",
"98 0.671174 \n",
"102 1.431861 \n",
"106 -1.511113 \n",
"110 -0.052449 \n",
"114 3.346702 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"date = \"2025-05-29\"\n",
"subreddit = \"artificial\"\n",
"\n",
"rightwindow = datetime.datetime.strptime(date,\"%Y-%m-%d\").date()\n",
"leftwindow = rightwindow - datetime.timedelta(days=15)\n",
"\n",
"\n",
"fil = lambda x: x.date.between(leftwindow,rightwindow) & (x.subreddit == subreddit)\n",
"\n",
"df_history[fil]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "eea2124a-27da-4505-b35e-b17d00ca6096",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-25T22:56:48.802366Z",
"iopub.status.busy": "2025-06-25T22:56:48.802366Z",
"iopub.status.idle": "2025-06-25T22:56:48.998555Z",
"shell.execute_reply": "2025-06-25T22:56:48.998555Z",
"shell.execute_reply.started": "2025-06-25T22:56:48.802366Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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lT766KMqm5F27dqVMjMzxewUB1k825Samkru7u7iOfn5+eTp6Unbt2+nnj176j528uTJlJOTQ+vXr6/HUQKAudmY+wAAAOrq3LlzVFBQQN27d9fdx8FOmzZtdLcjIiLo9ddfFzNNHBjxshu7dOlStR3cY2NjRXB0xx13VLifv1bnzp1NNh4AsEwImgBAE/lOd955p7isW7eOvL29RbDEtzkAqmkGi/3666/UrFmzCo/Z29ub/LgBwLIgaAIAxWvRogXZ2trSgQMHKCAgQNzHs0lnz56l/v37U1RUFN24cYPeeecdkb8kL8+VZ2dnJ/4vLi7W3cczUBwccYDFnwcAtA1BEwAoHuckTZo0SSSDc26Tj48PvfLKK2RlVbrXhQMpDoqWLl1K06ZNo1OnTomk8PKaN28uds1t2bKFhg0bJnbK8U67559/XiR/83Jenz59KD09nfbu3Uuurq40btw4M40YAMwBu+cAQBXee+896tu3Lw0fPpwGDx4sApywsDDxGC/HrV69mr7//nsxe8QzTosXL67w8bz8tmDBApozZw41btyYpk+fLu7n4GrevHliF11oaCgNHTpULNdxCQIA0BbsngMAAADQA2aaAAAAAPSAoAkAAABADwiaAAAAAPSAoAkAAABADwiaAAAAAPSAoAkAAABADwiaAAAAAPSAoAkAAABADwiaAAAAAPSAoAkAAABADwiaAAAAAPSAoAkAAACAbu3/AZO/pySx7H1QAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_history[fil].pipe(pd.pivot_table,index='date',values='community_weighted_sentiment',columns=['subreddit'],aggfunc='max').plot(rot=45,ylabel='sentiment score')"
]
},
{
"cell_type": "markdown",
"id": "c2d0d05e-883c-461f-b9e0-bb7ade102360",
"metadata": {},
"source": [
"## Export Spike Metric to Production"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "e039e7fc-24a2-4318-b099-58d952059cd8",
"metadata": {
"execution": {
"iopub.execute_input": "2025-06-26T02:32:57.348241Z",
"iopub.status.busy": "2025-06-26T02:32:57.348241Z",
"iopub.status.idle": "2025-06-26T02:32:57.354108Z",
"shell.execute_reply": "2025-06-26T02:32:57.354108Z",
"shell.execute_reply.started": "2025-06-26T02:32:57.348241Z"
}
},
"outputs": [],
"source": [
"import yaml\n",
"\n",
"params = {\n",
" sub: {\n",
" \"mean\": round(float(row[\"mean_cws\"]), 4), # float() strips NumPy dtype\n",
" \"std\": round(float(row[\"std_cws\"]), 4),\n",
" }\n",
" for sub, row in global_stats.iterrows()\n",
"}\n",
"\n",
"with open(\"../spike_params.yaml\", \"w\", encoding=\"utf-8\") as f:\n",
" f.write(\"# spike_params.yaml\\n\")\n",
" yaml.safe_dump(params, f, sort_keys=False, default_flow_style=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "41b315d2-4939-47a3-a12a-7312bc15d3c2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:reddit_streamlit]",
"language": "python",
"name": "conda-env-reddit_streamlit-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}