From c37ca1e03d77e8fba9633a1c798b801c833e66e2 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Thu, 29 Oct 2026 11:54:09 +0100 Subject: [PATCH] Documentazione aggiornata: assunzioni A17/A25, limiti, algoritmi, test, output e figura Co-Authored-By: Claude Sonnet 5.5 --- CLAUDE.md | 24 ++++++--- README.md | 7 +-- docs/README.md | 2 +- docs/algoritmi.md | 98 ++++++++++++++++++++++++------------ docs/assunzioni.md | 39 +++++++------- docs/configurazione.md | 13 ++--- docs/img/domini_esempio.png | Bin 158312 -> 164978 bytes docs/limiti.md | 10 ++-- docs/moduli.md | 25 +++++---- docs/output.md | 16 +++--- docs/panoramica.md | 24 +++++---- docs/test.md | 98 +++++++++++++++++++++++------------- docs/uso.md | 29 ++++++++--- 13 files changed, 241 insertions(+), 144 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index de8acda..a2a3acd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,18 +2,19 @@ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. -`fitseg` legge un CSV `t_ms,T_C,dT_C` (temperatura di un sensore IR), lo divide in **domini** (riposo / riscaldamento = la salita rapida di un gradino, 2–3 campioni / raffreddamento = il decadimento dopo ogni gradino) e trova per ogni (dominio, serie) l'equazione che meglio lo approssima. Documentazione, commenti e messaggi sono in italiano: mantieni la lingua. +`fitseg` legge un CSV `t_ms,T_C,dT_C` (temperatura di un sensore IR), lo divide in **domini** (riposo / riscaldamento = la salita rapida di un gradino, 2–4 campioni / raffreddamento = il decadimento dopo ogni gradino) e trova per ogni (dominio, serie) l'equazione che meglio lo approssima. Documentazione, commenti e messaggi sono in italiano: mantieni la lingua. -Fonti di verità (non duplicarne il contenuto): la documentazione in [docs/](docs/README.md) — [assunzioni](docs/assunzioni.md) (A1–A24, richiamate nel codice), [algoritmi](docs/algoritmi.md), [moduli](docs/moduli.md), [configurazione](docs/configurazione.md), [output](docs/output.md), [test](docs/test.md), [limiti](docs/limiti.md) — e [config.toml](config.toml), unica fonte dei valori: nessun default nel codice, ogni chiave nuova va in `CHIAVI` di [src/fitseg/config.py](src/fitseg/config.py) e in [docs/configurazione.md](docs/configurazione.md). Il [README](README.md) è solo un indice con l'avvio rapido. **Quando cambi comportamento aggiorna il file di docs corrispondente** (e le assunzioni se ne cambia una). +Fonti di verità (non duplicarne il contenuto): la documentazione in [docs/](docs/README.md) — [assunzioni](docs/assunzioni.md) (A1–A25, richiamate nel codice), [algoritmi](docs/algoritmi.md), [moduli](docs/moduli.md), [configurazione](docs/configurazione.md), [output](docs/output.md), [test](docs/test.md), [limiti](docs/limiti.md) — e [config.toml](config.toml), unica fonte dei valori: nessun default nel codice, ogni chiave nuova va in `CHIAVI` di [src/fitseg/config.py](src/fitseg/config.py) e in [docs/configurazione.md](docs/configurazione.md). Il [README](README.md) è solo un indice con l'avvio rapido. **Quando cambi comportamento aggiorna il file di docs corrispondente** (e le assunzioni se ne cambia una). ## Comandi ```bash uv venv .venv && uv pip install -e ".[dev]" -.venv/bin/fitseg domini input/gen_1.csv # passo 1: output/gen_1/01_domini/ (domini.png, domini.toml), nessun fit -.venv/bin/fitseg analizza input/gen_1.csv [--domini output/gen_1/01_domini/domini.toml] # tutti i passi → output/gen_1/{01_domini,02_sovrapposizione,03_report} +.venv/bin/fitseg domini input/gen_7.csv # passo 1: output/gen_7/01_domini/ (domini.png, domini.toml), nessun fit +.venv/bin/fitseg analizza input/gen_7.csv [--domini output/gen_7/01_domini/domini.toml] # tutti i passi → output/gen_7/{01_domini,02_sovrapposizione,03_report} .venv/bin/pytest # tutti; singolo: -k raffreddamento o tests/test_fit.py .venv/bin/ruff check src tests +./pulisci.sh [-n] [-y] [--solo-output] # svuota output/ e cancella input/*.csv (con conferma); -n dry-run, --solo-output lascia input/ ``` `--config`/`--output` vanno **prima** del sottocomando. `input/` contiene i CSV da analizzare; `output/` e `input/*.csv` sono ignorati da git. Ogni analisi scrive in `output//` (`01_domini`, `02_sovrapposizione`, `03_report`, vedi `uscita.PASSI`). @@ -28,11 +29,18 @@ uv venv .venv && uv pip install -e ".[dev]" ## Test -Unitari su un segnale sintetico generato in [tests/conftest.py](tests/conftest.py) (τ = 16 s, 3 gradini, nessun disturbo a salto): non servono i CSV. Integrazione su `input/gen_{1,2,3}.csv` (prodotti da `../gen_data`: `.venv/bin/python genera.py config.toml --seed N -o ...`) e sulla CLI: saltati se i CSV mancano. Verità di `gen_data`: τ = 1/k = 15.9 s (k perturbato del 2 % per seed), 3 gradini a ≈15.7/17.8/21.7 s, ambiente ≈ 23 °C, scarti casuali ≤ 4 °C che rendono i residui autocorrelati (limite noto, non un bug). +`.venv/bin/pytest` (≈ 30 s; nessun file esterno richiesto). Unitari su un segnale sintetico in [tests/conftest.py](tests/conftest.py) (τ = 16 s, 3 gradini, nessun disturbo a salto); +[tests/test_validazione.py](tests/test_validazione.py) genera 20 seed con `../gen_data` (saltato se manca) e confronta gradini, τ, ampiezze e salti con i **parametri veri** sorteggiati +(`genera.sorteggia`): è il test che protegge da regressioni sul comportamento reale. [tests/test_report.py](tests/test_report.py) e [tests/test_cli.py](tests/test_cli.py) controllano report, grafici e CLI su CSV sintetici. +`gen_data` sorteggia a ogni seed numero di gradini (1–3), k (τ = 11–20 s), rumore e scarti (≤ 4 °C, residui autocorrelati: limite noto, non un bug). ## Gotcha -- La salita del gradino (campioni di transizione del sensore, τ_sensore 0.07 s, dt 0.15 s) appartiene al `riscaldamento`, non al raffreddamento: se `soglia_bordo_sigma` è troppo alta un campione parziale può finire nel raffreddamento (`scarta_dopo_salto_n` lo esclude dal fit). -- Raffreddamenti intermedi di 12–25 campioni: con gli scarti casuali τ non è identificabile da solo (su dati puliti sì), quindi è fisso al valore del finale; gli IC di `A` sono condizionati. Senza un finale valido tornano liberi e possono risultare indeterminati. -- Cambiando la config di `gen_data` (gradini, rumore) ricontrolla `soglia_gradino_c` e i test di integrazione. +- Il gradino si rileva sommando i campioni consecutivi in salita (`soglia_bordo_sigma`): la soglia `soglia_gradino_c` è sulla **salita complessiva**, non sul singolo salto (un gradino su 2 campioni può avere ogni salto sotto soglia). La salita appartiene al `riscaldamento`; se `soglia_bordo_sigma` è troppo alta un campione parziale può finire nel raffreddamento (`scarta_dopo_salto_n` lo esclude dal fit). +- Raffreddamenti intermedi corti: con gli scarti casuali τ non è identificabile da solo (su dati puliti sì), quindi c e τ sono fissi ai valori del finale e basta `n_min_punti_parametri_fissi` (4) campioni invece di `n_min_punti` (6); gli IC di `A` sono condizionati. Senza un finale valido tornano liberi e possono risultare indeterminati. +- Il salto Δ del riscaldamento è stimato dai modelli adiacenti (`analisi._affina_salti`, `stima` = `"modelli"`); se manca un modello vicino, dalla misura riportata all'istante del gradino con c e τ del finale (`"misura corretta"`); altrimenti dalla misura sui campioni, che è per difetto (fino a ≈ 10–20 %). +- **σ si stima con almeno 8 campioni** (`domini.N_MIN_SIGMA`): con meno la MAD di pochi d²y quantizzati può annullarsi e la perdita robusta degenera (fit scartato come «non identificabile»). Sotto 8, `sigma` è `null` e l'adeguatezza `null`. `risultati.json` non deve mai contenere NaN (`uscita._senza_nan`, `allow_nan=False`). +- «Adeguato» = scala **robusta** dei residui (1.4826·MAD) ≤ `scala_residui_vs_rumore_max`·σ, non la RMSE: gli scarti casuali gonfiano la RMSE ma non la scala robusta (vedi docs/algoritmi.md §6). `scarta_dopo_salto_n` vale 0 (la salita è già nel riscaldamento). +- Gli intervalli di confidenza coprono il τ vero solo nel 73 % dei casi (disturbi non stazionari, concentrati a inizio raffreddamento): correzione a più lag e sandwich HAC provate e scartate (docs/limiti.md). Non cambiare lo stimatore senza rimisurare la copertura. +- Cambiando la config di `gen_data` (gradini, rumore) ricontrolla `soglia_gradino_c` e le tolleranze di `tests/test_validazione.py`. - Exit code: 0 ok · 2 uso · 3 config · 4 CSV · 6 domini non validi. diff --git a/README.md b/README.md index dcb3fcd..dd07ed0 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,9 @@ Tutto è spiegato in **[docs/](docs/README.md)**: assunzioni, algoritmi, moduli, ```bash uv venv .venv && uv pip install -e ".[dev]" # installazione: docs/uso.md §1 -.venv/bin/fitseg domini input/gen_1.csv # passo 1: come verrebbero suddivisi i dati -.venv/bin/fitseg analizza input/gen_1.csv # tutti i passi → output/gen_1/{01_domini,02_sovrapposizione,03_report} +.venv/bin/fitseg domini input/gen_7.csv # passo 1: come verrebbero suddivisi i dati +.venv/bin/fitseg analizza input/gen_7.csv # tutti i passi → output/gen_7/{01_domini,02_sovrapposizione,03_report} .venv/bin/pytest # test: docs/test.md ``` -I CSV da analizzare vanno in `input/` (dati di prova da `../gen_data`: [docs/uso.md](docs/uso.md) §2). Il report è `output//03_report/report.md`. +`./pulisci.sh` pulisce i dati: svuota `output/` e cancella `input/*.csv`, con conferma ([docs/uso.md](docs/uso.md) §6). +I CSV da analizzare vanno in `input/` (dati di prova: `../gen_data genera.py --seed 7`, vedi [docs/uso.md](docs/uso.md) §2). Il report è `output//03_report/report.md`. diff --git a/docs/README.md b/docs/README.md index ebf448b..588b9e7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -6,7 +6,7 @@ Un file per argomento. Per un primo giro leggi **panoramica**, poi **uso**; per |---|---|---| | [panoramica.md](panoramica.md) | cosa fa il programma, il segnale, glossario, un esempio completo | per iniziare | | [uso.md](uso.md) | installazione, dati di ingresso, comandi, correggere i domini a mano, codici di uscita | per usarlo | -| [assunzioni.md](assunzioni.md) | ogni assunzione (A1–A24): perché, dove nel codice, cosa succede se è falsa; origine dei dati di prova | per fidarsi (o no) dei risultati | +| [assunzioni.md](assunzioni.md) | ogni assunzione (A1–A25): perché, dove nel codice, cosa succede se è falsa; origine dei dati di prova | per fidarsi (o no) dei risultati | | [algoritmi.md](algoritmi.md) | rilevamento dei gradini, domini, fit, incertezze, metriche, scelta del modello, con le formule | per capire i numeri | | [moduli.md](moduli.md) | un modulo alla volta: responsabilità, funzioni, strutture dati, come aggiungere un modello | per modificare il codice | | [configurazione.md](configurazione.md) | ogni chiave di `config.toml`, formato di `domini.toml`, esempi | per cambiare un valore | diff --git a/docs/algoritmi.md b/docs/algoritmi.md index afadb0a..9244b03 100644 --- a/docs/algoritmi.md +++ b/docs/algoritmi.md @@ -12,11 +12,11 @@ flowchart TD subgraph P1["PASSO 1 · Domini"] direction LR - L["1 · Lettura
validazione"] --> S["2 · Rumore
stima di σ"] --> G["3 · Gradini
salti sopra soglia"] --> D["4 · Domini
divisione del tempo"] + L["1 · Lettura
validazione"] --> S["2 · Rumore
stima di σ"] --> G["3 · Gradini
salite sopra soglia"] --> D["4 · Domini
divisione del tempo"] end P1 --> RIP["Riposo"] - P1 --> RIS["Riscaldamento
2–3 campioni"] + P1 --> RIS["Riscaldamento
2–4 campioni"] P1 --> INT["Raffreddamenti intermedi
tra due gradini, corti"] P1 --> FIN["Raffreddamento finale
l'ultimo, il più lungo"] @@ -65,12 +65,12 @@ Nelle formule si usano questi simboli; a destra la chiave di [configurazione.md] | Simbolo | Chiave | Significato | |---|---|---| -| $\theta_g$ | `soglia_gradino_c` | salto positivo minimo che segna un gradino [°C] | -| $\theta_b$ | `soglia_bordo_sigma` | soglia, in multipli di $\sigma_d$, per estendere la salita ai campioni adiacenti | +| $\theta_g$ | `soglia_gradino_c` | salita complessiva minima che segna un gradino [°C] | +| $\theta_b$ | `soglia_bordo_sigma` | soglia, in multipli di $\sigma_d$, sopra la quale un campione è «in salita» | | $\theta_\rho$ | `soglia_acf` | soglia di $\rho_1$ oltre la quale si allargano gli intervalli | | $\kappa$ | `scala_perdita_sigma` | scala della perdita robusta, in multipli di $\sigma$ | | $\alpha_{\min},\ \alpha_{\max}$ | `tau_min_rel`, `tau_max_rel` | limiti di $\tau$ come frazione di $L$ | -| $\lambda$ | `rmse_vs_rumore_max` | un modello è «adeguato» se $\mathrm{RMSE} \le \lambda\,\sigma$ | +| $\lambda$ | `scala_residui_vs_rumore_max` | un modello è «adeguato» se $\hat\sigma_\text{res} \le \lambda\,\sigma$ (scala robusta dei residui, §5.5) | | $\delta$ | `soglia_delta_aicc` | tolleranza su $\Delta\mathrm{AICc}$ per preferire il modello più semplice | | $L$ | — | durata del dominio, $t_\text{ultimo} - t_\text{primo}$ | | $n$, $k$ | — | campioni usati nel fit; parametri **liberi** del modello | @@ -90,19 +90,22 @@ deviazione mediana assoluta: $$\sigma = \frac{1.4826\,\mathrm{MAD}(\Delta^2 y)}{\sqrt{6}}, \qquad \mathrm{MAD}(x) = \mathrm{mediana}\,|x_i - \mathrm{mediana}(x)|$$ Il fattore 1.4826 rende la MAD uguale a $\sigma$ per dati gaussiani. La stima si calcola **per dominio** (A13) sui campioni usati nel fit -e serve come scala della perdita robusta e come soglia di «adeguatezza» (§6). Ignora la deriva lenta (A14) e restituisce `nan` con meno -di 4 campioni. +e serve come scala della perdita robusta e come riferimento per l'«adeguatezza» (§6). Ignora la deriva lenta (A14). + +**Servono almeno 8 campioni** (`domini.N_MIN_SIGMA`): con meno, la MAD di pochi $\Delta^2 y$ può annullarsi, perché i valori sono quantizzati e +due $\Delta^2 y$ su tre possono coincidere. Con $\sigma \approx 0$ la scala della perdita robusta diventa quasi nulla, ogni residuo è trattato come +outlier, lo jacobiano pesato tende a zero e gli intervalli di confidenza esplodono (fit scartato come «non identificabile» pur essendo corretto). Sotto 8 +campioni $\sigma$ è «non stimabile»: `sigma` vale `null`, la scala della perdita è 1 e l'adeguatezza non è valutabile. ## 3. Rilevamento dei gradini (`domini.trova_gradini`) -Sulla `serie_riferimento`: +Sulla `serie_riferimento`, con $d_i = y_{i+1} - y_i$ e $\sigma_d = 1.4826\,\mathrm{MAD}(d)$ calcolata su **tutti** i salti: -1. **Candidati**: $d_i = y_{i+1} - y_i$; sono forti gli indici con $d_i > \theta_g$ (solo salti positivi, A5, A12). -2. **Raggruppamento**: candidati a meno di `distanza_min_salti_campioni` indici l'uno dall'altro appartengono allo stesso gradino (la salita - si distribuisce su 2 campioni, ognuno con un salto grande). -3. **Estensione ai bordi**: il gruppo si estende all'indietro e in avanti ai campioni adiacenti ancora in salita, cioè finché - $d_i > \theta_b\,\sigma_d$, con $\sigma_d = 1.4826\,\mathrm{MAD}(d)$ calcolata su **tutti** i salti (A6). Serve a - non lasciare un campione a metà salita dentro il tratto vicino. +1. **Campioni in salita**: gli indici con $d_i > \theta_b\,\sigma_d$ (solo salite, A12). Il rumore bianco e la pendenza del raffreddamento restano sotto questa soglia. +2. **Raggruppamento**: i campioni in salita a meno di `distanza_min_salti_campioni` indici l'uno dall'altro formano una **salita** (un gradino si + distribuisce su 2–4 campioni, A6). +3. **Gradino**: una salita è un gradino se la sua **salita complessiva** $y_{\text{ultimo}+1} - y_{\text{primo}}$ supera $\theta_g$ (A5). Si somma su tutta la + salita perché ogni singolo salto può restare sotto soglia: un gradino di 38 °C diviso in 19 + 19 è un gradino, e uno scarto casuale (≤ 4 °C) no. 4. Ogni gradino diventa la coppia $(i_0, i_1)$: $i_0$ è il primo campione già in salita e $i_1$ il campione successivo all'ultimo in salita (estremo escluso). I **campioni di salita** sono quelli in $[i_0, i_1)$. @@ -162,6 +165,7 @@ Per i parametri fissi l'incertezza è 0 (A18). |---|---| | $\mathrm{RMSE}$ | $\sqrt{\mathrm{RSS}/n}$ | | $R^2$ | $1 - \mathrm{RSS}/\mathrm{TSS}$, con $\mathrm{TSS} = \sum (y_i - \bar y)^2$ | +| $\hat\sigma_\text{res}$ | **scala robusta dei residui**: $1.4826\,\mathrm{MAD}(r)$, con $r$ i residui. Come la perdita del fit, ignora gli scarti casuali (la RMSE no) | | $\rho_1$ | autocorrelazione dei residui a lag 1: $\sum_{i} \tilde r_{i+1}\tilde r_i \big/ \sum_i \tilde r_i^2$, con $\tilde r = r - \bar r$ | | $\mathrm{AICc}$ | $n\ln(\mathrm{RSS}/n) + 2k + \dfrac{2k(k+1)}{n-k-1}$ (infinito se $n-k-1 \le 0$) | | $\mathrm{BIC}$ | $n\ln(\mathrm{RSS}/n) + k\ln n$ | @@ -184,37 +188,67 @@ Per A8 i raffreddamenti hanno lo stesso $\tau$ e lo stesso $c$. L'ordine di elab 2. se la scelta è valida, i valori di $c$ e $\tau$ (parametri in `raffreddamento_intermedio_fissa_da_finale`) sono salvati per serie; 3. ogni **raffreddamento intermedio** si fitta con quei valori **fissi**, e solo $A$ libera ($k = 1$). -Motivo: un intermedio ha 12–25 campioni con scarti casuali, e $\tau$ da solo non è identificabile (su dati puliti lo sarebbe: i test lo -verificano). Se il finale non dà un fit valido o la lista è vuota gli intermedi restano liberi. +Motivo: un intermedio ha pochi campioni (da 4 a qualche decina) con scarti casuali, e $\tau$ da solo non è identificabile (su dati puliti lo sarebbe: i test lo +verificano). Con un solo parametro libero bastano pochi campioni: il minimo per questi fit è `n_min_punti_parametri_fissi` (default 4) invece di +`n_min_punti` (6), così anche i tratti tra gradini ravvicinati (1–2 s) si fittano. Se il finale non dà un fit valido o la lista è vuota gli intermedi +restano liberi. ## 6. Scelta del modello (`analisi.scegli`) Per ogni (dominio, serie) con più modelli candidati: 1. **Scarto**: via i fit non validi (§5.6). Se non ne resta nessuno: `indeterminato`. -2. **Adeguatezza**: sono *adeguati* i fit con $\mathrm{RMSE} \le \lambda\,\sigma$. Se ce n'è almeno uno si sceglie tra questi, altrimenti tra - tutti i validi (e il dominio è segnato *non adeguato*). +2. **Adeguatezza**: sono *adeguati* i fit con $\hat\sigma_\text{res} \le \lambda\,\sigma$ (scala **robusta** dei residui, §5.5). Se ce n'è almeno uno si + sceglie tra questi, altrimenti tra tutti i validi (e il dominio è segnato *non adeguato*). Se $\sigma$ non è stimabile (meno di 8 campioni) + l'adeguatezza non è valutabile (`adeguato` = `null`) e si sceglie tra tutti i validi. 3. **Parsimonia**: tra i candidati con $\mathrm{AICc} \le \mathrm{AICc}_{\min} + \delta$ vince quello con **meno parametri** (a parità, AICc minore). -Un dominio con meno di `n_min_punti` campioni non viene fittato (`indeterminato`); un modello con più parametri di $n - 2$ non viene provato. +Un dominio con meno di `n_min_punti` campioni (`n_min_punti_parametri_fissi` se $c$ e $\tau$ sono fissi) non viene fittato (`indeterminato`); un modello con più di $n - 2$ parametri **liberi** non viene provato. Con un solo modello candidato (raffreddamento) la scelta è lui, se valido: il flag *adeguato* resta informativo. -## 7. Riscaldamento come salto (`analisi._gradino`) +*Perché la scala robusta e non la RMSE*: gli scarti casuali del sensore gonfiano la RMSE ($\mathrm{RMSE}/\sigma$ da 1.07 a 5.26 per il modello **giusto**) ma +non la scala robusta ($\hat\sigma_\text{res}/\sigma$ da 0.97 a 1.40 su 120 raffreddamenti finali). Con un modello sbagliato (lineare o costante sullo stesso tratto) la scala +robusta vale da 11 a 100 volte $\sigma$, quindi discrimina bene. Con la RMSE solo il 27 % dei fit corretti risultava «adeguato»; con la scala robusta il 100 %. -Il dominio di riscaldamento ha 2–3 campioni: nessun fit. Si riporta, per ogni serie, con $i_0, i_1$ gli estremi del dominio: +## 7. Riscaldamento come salto (`analisi._gradino`, `analisi._affina_salti`) -$$\Delta = y_{i_1-1} - y_{i_0-1}, \qquad \text{durata} = t_{i_1-1} - t_{i_0-1}$$ +Il dominio di riscaldamento ha 2–4 campioni: nessun fit. Per ogni serie si riporta il salto $\Delta$ con due stime. -cioè il salto dal campione **prima** della salita all'ultimo campione di salita, e il tempo che separa i due (per 2 campioni di salita ≈ 2 -intervalli, circa 300 ms). Poiché parte della salita può cadere sul campione precedente, $\Delta$ è una stima per difetto dell'ampiezza del -gradino (A23). `sigma` vale `null` e `fit` è vuoto. +**Misura sui campioni** (`delta_misurato`), con $i_0, i_1$ gli estremi del dominio: -## Esempio di calcolo completo (seed 1, `T_C`, raffreddamento finale) +$$\Delta_\text{misurato} = y_{i_1-1} - y_{i_0-1}, \qquad \text{durata} = t_{i_1-1} - t_{i_0-1}$$ -1. $n = 651$ campioni da $t_0 = 22.12$ s (dopo `scarta_dopo_salto_n = 1`, 650 usati nel fit); $\sigma = 0.145$ °C. -2. Griglia su $\tau \in [0.05 L,\ 50 L]$ con $L \approx 97.8$ s → $\tau_0$ vicino a 16 s, $c, A$ lineari. -3. Raffinamento `soft_l1` con scala $3\sigma = 0.44$ °C: $c = 23.00 \pm 0.12$, $A = 179.6 \pm 0.48$, $\tau = 16.08 \pm 0.07$ s. -4. Metriche: $\mathrm{RMSE} = 0.356$, $\rho_1 = 0.71$ (> 0.3: intervalli moltiplicati per $\sqrt{1.71/0.29} = 2.43$), $R^2 = 0.9999$. -5. $\mathrm{RMSE} > 1.3 \cdot 0.145 = 0.189$: **non adeguato** (residui autocorrelati per gli scarti casuali), ma unico modello valido → scelto. -6. Gli intermedi 3 e 5 usano $c = 23.00$, $\tau = 16.08$ e stimano solo $A$ ($84.3$ e $148.3$). +cioè dal campione **prima** della salita all'ultimo campione di salita. È una stima **per difetto**: l'ultimo campione di salita ha già cominciato a decadere +(0.3–0.45 s dopo il gradino) e l'errore cresce con la temperatura, fino a ≈ 10 % (A23). + +**Stima dai modelli adiacenti** (`delta`, usata quando disponibile). L'istante del gradino $t_s$ è il punto medio tra l'ultimo campione prima della salita e +il primo in salita. Con $f_\text{prima}$ e $f_\text{dopo}$ i modelli scelti per il dominio precedente (riposo o raffreddamento) e per il successivo +(raffreddamento), valutati in $t_s$ con $t' = t - t_0$ del rispettivo dominio: + +$$\Delta = f_\text{dopo}(t_s) - f_\text{prima}(t_s)$$ + +Per due raffreddamenti, che condividono $c$ e $\tau$, equivale a $A_\text{dopo}\,e^{(t_{0,\text{dopo}}-t_s)/\tau} - A_\text{prima}\,e^{-(t_s-t_{0,\text{prima}})/\tau}$. +I campi `da` e `a` sono allora i valori dei due modelli in $t_s$. + +**Misura corretta** (se manca un modello adiacente, p.es. un tratto indeterminato, ma c'è il raffreddamento finale). Si riportano i due campioni all'istante del +gradino con la legge di decadimento del finale ($c$ e $\tau$ condivisi): + +$$y_\text{prima}^* = c + (y_{i_0-1} - c)\,e^{-(t_s - t_{i_0-1})/\tau}, \qquad y_\text{dopo}^* = c + (y_{i_1-1} - c)\,e^{(t_{i_1-1} - t_s)/\tau}, \qquad \Delta = y_\text{dopo}^* - y_\text{prima}^*$$ + +**Ripiego finale**: la misura sui campioni, se non c'è nemmeno il raffreddamento finale (gradino senza fit dopo), o se la stima si discosta più del 50 % dalla misura +(guardia contro fit anomali). Il campo `stima` vale `"modelli"`, `"misura corretta"` o `"misura"`; il report mostra sempre anche la misura. `sigma` vale `null` e `fit` è vuoto. + +**Accuratezza** (validazione su 60 seed di `gen_data`, [test.md](test.md)): con la stima dai modelli l'errore sull'ampiezza vera del gradino ha media +0.33 %, scarto +quadratico medio 0.86 % e massimo 3.16 % su 124 salti (con `scarta_dopo_salto_n = 0` nessun salto ha richiesto il ripiego). Con la sola misura l'errore medio era −5.5 % e +arrivava a −20 %; la misura corretta, usata da sola, ha errore mediano 1.85 % e massimo 11.9 % (è un ripiego, non un sostituto dei modelli). + +## Esempio di calcolo completo (seed 7 di `gen_data`, `T_C`, raffreddamento finale) + +1. $n = 620$ campioni da $t_0 = 26.79$ s (`scarta_dopo_salto_n = 0`: tutti usati nel fit); $\sigma = 0.115$ °C. +2. Griglia su $\tau \in [0.05 L,\ 50 L]$ con $L \approx 93$ s → $\tau_0$ vicino a 12 s, $c, A$ lineari. +3. Raffinamento `soft_l1` con scala $3\sigma = 0.35$ °C: $c = 23.92 \pm 0.06$, $A = 163.2 \pm 0.33$, $\tau = 12.12 \pm 0.04$ s (valore vero $\tau = 12.07$ s). +4. Metriche: $\mathrm{RMSE} = 0.247$, $\hat\sigma_\text{res} = 0.159$, $\rho_1 = 0.61$ (> 0.3: intervalli moltiplicati per $\sqrt{1.61/0.39} = 2.03$). +5. $\hat\sigma_\text{res} = 0.159 \le 1.5 \cdot 0.115 = 0.173$: **adeguato**, anche se $\mathrm{RMSE} = 0.247 > 1.5\,\sigma$ per gli scarti casuali (con il vecchio criterio sarebbe stato scartato). +6. Gli intermedi 3 e 5 usano $c = 23.92$, $\tau = 12.12$ e stimano solo $A$ ($76.7$ e $124.5$). +7. Il salto del terzo gradino: misurato $+80.9$, stimato dai modelli $+90.2$ (ampiezza vera $+89.4$). diff --git a/docs/assunzioni.md b/docs/assunzioni.md index 479b810..9dac6e2 100644 --- a/docs/assunzioni.md +++ b/docs/assunzioni.md @@ -17,20 +17,21 @@ ragionevole, **dove** il codice ne dipende e **cosa succede se è falsa**. Le as | ID | Assunzione | Dove | Se è falsa | |---|---|---|---| -| **A5** | I **gradini di riscaldamento** sono salti positivi tra due campioni consecutivi molto più grandi del rumore **e** degli scarti casuali: `soglia_gradino_c` (20 °C) $\gg$ ampiezza massima degli scarti (≤ 4 °C) | `domini.trova_gradini` | gradini più piccoli della soglia non sono visti (il segnale resta un unico tratto); scarti più grandi della soglia sono scambiati per gradini. Soluzione: adattare la soglia o correggere `domini.toml` a mano | -| **A6** | La **salita dura pochi campioni** (2–3): il sensore ha costante di tempo ($\tau_\text{sensore} \approx 0.07$ s) minore dell'intervallo di campionamento (≈ 0.15 s) | `domini.trova_gradini` (estensione ai campioni adiacenti), `analisi._gradino` | con un sensore più lento la salita avrebbe più campioni: verrebbe comunque raggruppata finché il salto resta sopra `soglia_bordo_sigma`$\cdot\sigma$, ma non sarebbe fittata | +| **A5** | I **gradini di riscaldamento** sono salite positive molto più grandi del rumore **e** degli scarti casuali: la **salita complessiva** dei campioni consecutivi in salita supera `soglia_gradino_c` (20 °C), mentre uno scarto casuale è ≤ 4 °C | `domini.trova_gradini` | gradini con salita complessiva sotto la soglia non sono visti (il segnale resta un unico tratto); scarti consecutivi che sommati superano la soglia sono scambiati per gradini. Soluzione: adattare la soglia o correggere `domini.toml` a mano | +| **A6** | La **salita dura pochi campioni** (2–4): la costante di tempo del sensore ($\tau_\text{sensore} \approx 0.04$–$0.12$ s) è dell'ordine dell'intervallo di campionamento (≈ 0.15 s), quindi un gradino si distribuisce su 2–4 campioni, anche ognuno sotto la soglia | `domini.trova_gradini` (campioni in salita raggruppati, soglia sulla salita complessiva), `analisi._gradino` | con un sensore più lento la salita avrebbe più campioni: sarebbe comunque raggruppata finché ogni salto supera `soglia_bordo_sigma`$\cdot\sigma_d$ e i campioni in salita distano meno di `distanza_min_salti_campioni`, ma non sarebbe fittata | | **A7** | Dopo ogni gradino la temperatura **decade esponenzialmente** verso un asintoto: $y = c + A\,e^{-t'/\tau}$ | `modelli.MODELLI["esp_decad"]` | residui sistematici, `ρ₁` alto, «modello non adeguato». Con più processi di raffreddamento servirebbe un modello a più esponenziali (non presente, vedi [limiti.md](limiti.md)) | | **A8** | Tutti i raffreddamenti hanno la **stessa costante di tempo $\tau$ e lo stesso asintoto $c$** (stesso processo fisico: dispersione verso l'ambiente). Anche nel generatore il decadimento dopo più gradini è la somma di esponenziali con lo stesso $k$, quindi un'unica esponenziale | `analisi.analizza_domini` (parametri `raffreddamento_intermedio_fissa_da_finale`) | gli intermedi sono forzati a $\tau$ e $c$ del finale: se in realtà differiscono, il fit dell'ampiezza $A$ è distorto e i residui lo mostrano. Per rimuovere il vincolo: `raffreddamento_intermedio_fissa_da_finale = []` | -| **A9** | Il **raffreddamento finale** è l'ultimo dominio ed è abbastanza lungo (centinaia di campioni) da stimare $c$, $A$, $\tau$ **liberamente** | `analisi.analizza_domini` | se il CSV finisce subito dopo un gradino, il finale è corto e $\tau$ può risultare non identificabile; allora anche gli intermedi restano liberi e possono essere indeterminati | +| **A9** | Il **raffreddamento finale** è l'ultimo dominio ed è abbastanza lungo (centinaia di campioni) da stimare $c$, $A$, $\tau$ **liberamente**; i raffreddamenti intermedi, anche di 4–6 campioni, bastano per stimare la sola $A$ con $c$ e $\tau$ fissi (`n_min_punti_parametri_fissi`) | `analisi.analizza_domini`, `analisi._serie` | se il CSV finisce subito dopo un gradino, il finale è corto e $\tau$ può risultare non identificabile; allora anche gli intermedi restano liberi (con `n_min_punti`) e possono essere indeterminati. Tratti intermedi con meno di 4 campioni (gradini a meno di ≈ 1.2 s) restano indeterminati | | **A10** | Il **riposo** (prima del primo gradino) è una baseline costante, lineare o esponenziale lenta (l'ambiente che si assesta) | `[fit.modelli_per_tipo] riposo` | il modello scelto è solo descrittivo: con una deriva lenta vince `lineare` o `esp_decad` | | **A11** | Ogni dominio è **indipendente**: nessun vincolo di continuità tra domini | `analisi` | i modelli adiacenti possono non combaciare ai confini; il «salto» tra due raffreddamenti è il gradino | | **A12** | Non esistono gradini **discendenti** (un calo brusco non è un evento): si cercano solo salti positivi | `domini.trova_gradini` (`d > soglia`) | un calo brusco resterebbe dentro un raffreddamento, aumentando RMSE e $\rho_1$ | +| **A25** | Il **ritardo di risposta del sensore** ($\tau_\text{sensore} \approx 0.04$–$0.12$ s) è trascurabile rispetto a $\tau$ del raffreddamento: il modello `esp_decad` non lo include | `modelli.MODELLI` (`esp_decad`) | un esponenziale filtrato da un filtro del primo ordine ha lo stesso $\tau$ ma ampiezza moltiplicata per $1/(1-\tau_\text{sensore}/\tau)$: $A$ risulta sovrastimata di circa $\tau_\text{sensore}/\tau \approx 0.5$ % (misurato: +0.45 % in media su 60 seed). $\tau$ non è affetta | ## Rumore | ID | Assunzione | Dove | Se è falsa | |---|---|---|---| -| **A13** | Il rumore è circa **gaussiano bianco**, con $\sigma$ stimabile per dominio da $\sigma = 1.4826\,\mathrm{MAD}(\Delta^2 y)/\sqrt{6}$ | `domini.sigma_rumore` | $\sigma$ sottostimata: più domini risultano «non adeguati». La stima ignora la parte lenta del rumore (vedi A14) | +| **A13** | Il rumore è circa **gaussiano bianco**, con $\sigma$ stimabile per dominio da $\sigma = 1.4826\,\mathrm{MAD}(\Delta^2 y)/\sqrt{6}$ **su almeno 8 campioni**: con meno, la MAD di pochi $\Delta^2 y$ quantizzati può annullarsi | `domini.sigma_rumore` (`N_MIN_SIGMA`) | $\sigma$ sottostimata: l'adeguatezza è valutata male. Sotto 8 campioni $\sigma$ è «non stimabile» (`null`): scala della perdita 1, adeguatezza non valutabile. La stima ignora la parte lenta del rumore (vedi A14) | | **A14** | Sul rumore bianco si aggiungono **disturbi che il modello non descrive**: deriva lenta (Ornstein–Uhlenbeck, $\tau \approx 3.5$ s) e **scarti casuali** (±4 °C, rientro < 1 s) | `fit.adatta` (perdita robusta), `uscita` (residui) | sono trattati come outlier dalla perdita `soft_l1` (non spostano molto il fit) ma lasciano residui autocorrelati ($\rho_1 \approx 0.7$) e intervalli di confidenza troppo stretti. Non è un errore del fit | | **A15** | La **quantizzazione** (T a 0.01 °C, ambiente a 0.1 °C) è trascurabile rispetto al rumore | — | nessun trattamento specifico | @@ -39,10 +40,10 @@ ragionevole, **dove** il codice ne dipende e **cosa succede se è falsa**. Le as | ID | Assunzione | Dove | Se è falsa | |---|---|---|---| | **A16** | Gli intervalli al 95 % sono **gaussiani asintotici**: $\pm 1.96\,\sigma_p$ con $\mathrm{cov} = s^2 (J^\top J)^{-1}$, $s^2 = \mathrm{RSS}/(n-k)$ | `fit.adatta` | con pochi campioni o residui non gaussiani sono approssimati | -| **A17** | L'autocorrelazione dei residui è di tipo AR(1): gli errori si allargano di $\sqrt{(1+\rho_1)/(1-\rho_1)}$ se $\rho_1$ supera `soglia_acf` | `fit.adatta` | correzione approssimata; con autocorrelazione di altra forma gli intervalli restano stretti | +| **A17** | L'autocorrelazione dei residui è di tipo AR(1): gli errori si allargano di $\sqrt{(1+\rho_1)/(1-\rho_1)}$ se $\rho_1$ supera `soglia_acf` | `fit.adatta` | **approssimazione insufficiente**: su 60 seed il $\tau$ vero cade nell'intervallo al 95 % nel 73 % dei casi. La deviazione standard dell'errore su $\tau$ è 3.7 volte l'errore standard non corretto, perché gli scarti casuali sono concentrati all'inizio del raffreddamento (dove la sensibilità a $\tau$ è massima), quindi non stazionari. Provate e scartate: correzione a più lag di Bartlett (77 %) e stimatore sandwich HAC (≤ 62 %). Vedi [limiti.md](limiti.md) | | **A18** | Per i parametri **fissi** l'incertezza non si propaga: gli intervalli di $A$ nei raffreddamenti intermedi sono **condizionati** a $c$ e $\tau$ del finale | `fit.adatta`, `uscita._params` | sono sottostimati rispetto all'incertezza totale | | **A19** | AICc e BIC si calcolano da $\mathrm{RSS}$ come se i residui fossero gaussiani, anche se il fit usa la perdita robusta | `fit.adatta` | confronto tra modelli approssimato; sensibile agli outlier | -| **A20** | Le serie con $\sigma$ non finita o nulla (dominio troppo corto) usano scala 1 per la perdita robusta | `fit.adatta` | solo robustezza ridotta | +| **A20** | Se $\sigma$ non è stimabile (meno di 8 campioni, o nulla) la scala della perdita robusta è 1 e l'adeguatezza non è valutabile | `fit.adatta`, `analisi.scegli` | solo robustezza ridotta; il fit resta valido | ## Progetto @@ -50,22 +51,26 @@ ragionevole, **dove** il codice ne dipende e **cosa succede se è falsa**. Le as |---|---|---| | **A21** | La **suddivisione in domini la decide l'utente**: la proposta automatica è modificabile (`domini.toml`) e il fit non la cambia mai | `cli._passo_domini`, `domini.leggi_toml` | | **A22** | Il programma è **deterministico**: nessuna partenza casuale, nessun seme | `fit._partenza` (griglia su $\tau$, minimi quadrati lineari) | -| **A23** | Il **riscaldamento non si fitta** (2–3 campioni): si riporta il salto $\Delta = y_\text{fine salita} - y_\text{prima}$, che è una stima per difetto del gradino reale perché parte della salita può cadere sul campione precedente | `analisi._gradino` | +| **A23** | Il **riscaldamento non si fitta** (2–4 campioni). Il salto $\Delta$ si stima nell'ordine da: modelli dei domini adiacenti valutati all'istante del gradino; misura riportata a quell'istante con $c$ e $\tau$ del raffreddamento finale; misura sui campioni ($y_\text{fine salita} - y_\text{prima}$), che è per difetto (fino a ≈ 10–20 %: parte della salita cade sul campione precedente e l'ultimo campione è già decaduto) | `analisi._gradino`, `analisi._affina_salti` | | **A24** | I **modelli provati** sono fissati per tipo di dominio in configurazione, non scelti dal programma | `[fit.modelli_per_tipo]` | ## Origine dei dati di prova (`../gen_data`) -I CSV in `input/gen_.csv` sono prodotti dal generatore con la sua configurazione d'esempio. Caratteristiche che fondano le -assunzioni sopra (dettaglio: `../gen_data/docs/SPEC.md` e `../gen_data/config.toml`): +I CSV di prova si generano con `../gen_data`, che a ogni corsa (seed) **sorteggia** i parametri da intervalli: ogni seed è un segnale diverso +(dettaglio: `../gen_data/docs/SPEC.md` e `../gen_data/config.toml`). Gli intervalli che fondano le assunzioni sopra: | Aspetto | Valore nel generatore | Assunzioni | |---|---|---| -| intervallo di campionamento | 150.5 ms con jitter ±0.6 ms | A1, A6 | -| gradini di riscaldamento | 3, a ≈ 15.7, 17.8, 21.7 s, ampiezza ≈ 88, 75, 65 °C (perturbati per seed) | A5, A7 | -| raffreddamento | $k = 0.063\ \mathrm{s^{-1}}$, cioè $\tau = 15.9$ s (perturbato del 2 % per seed) | A7, A8 | -| risposta del sensore | filtro del primo ordine, $\tau_\text{sensore} = 0.07$ s | A6 | -| rumore bianco | $\sigma = 0.11$ °C a freddo, $0.20$ a caldo; la stima per dominio dà ≈ 0.08–0.3 | A13 | -| deriva lenta | Ornstein–Uhlenbeck, $\sigma = 0.04$ °C, $\tau = 3.5$ s | A14 | -| scarti casuali | in riscaldamento: 0.8 Hz, $\sigma$ 2.5 °C; in raffreddamento: 0.25 Hz, media −1 °C; ampiezza ≤ 4 °C, rientro 0.3–0.7 s | A5, A14 | -| ambiente | $23.1 - 0.45\,e^{-t/58}$ °C, non sale quando T è alta | A10; $c$ di `dT_C` ≈ 0 | +| intervallo di campionamento | 150.5 ms con jitter ±0.6 ms (fisso) | A1, A6 | +| numero e istanti dei gradini | 1–3; il primo a 8–25 s, distanza tra gradini 1–6 s | A5, A9 | +| ampiezza dei gradini | 40–90 °C | A5, A7 | +| raffreddamento | $k = 0.05$–$0.09\ \mathrm{s^{-1}}$, cioè $ au = 1/k = 11$–$20$ s | A7, A8 | +| risposta del sensore | filtro del primo ordine, $ au_ ext{sensore} = 0.04$–$0.12$ s | A6 | +| rumore bianco | $\sigma = 0.06$–$0.16$ °C a freddo, $0.15$–$0.30$ a caldo | A13 | +| deriva lenta | Ornstein–Uhlenbeck, $\sigma = 0.02$–$0.08$ °C, $ au = 2$–$6$ s | A14 | +| scarti casuali | in riscaldamento: 0.4–1.2 Hz, $\sigma$ 1.5–3.5 °C, rientro 0.3 s; in raffreddamento: 0.1–0.5 Hz, media −1 °C, $\sigma$ 1.5–3.5 °C, rientro 0.7 s; ampiezza ≤ 4 °C | A5, A14 | +| ambiente | 20–26 °C a regime, deriva iniziale ±0.8 °C con $ au$ 30–90 s; non sale quando T è alta | A10; $c$ di `dT_C` ≈ 0 | | `dT_C` | $T - T_\text{amb}$ calcolato dopo rumore e quantizzazione di entrambi i canali | A4 | + +Poiché il sorteggio è riproducibile dal seed (`genera.sorteggia`), per ogni seed si conoscono i **valori veri** (gradini, ampiezze, $\tau$): il test +`tests/test_validazione.py` li confronta con i risultati di `fitseg` su 20 seed ([test.md](test.md)). diff --git a/docs/configurazione.md b/docs/configurazione.md index 8d9e2ab..b683656 100644 --- a/docs/configurazione.md +++ b/docs/configurazione.md @@ -20,11 +20,12 @@ Si usa un altro file con `fitseg --config altro.toml …`. | Chiave | Default | Significato | Effetto se alzata / abbassata | |---|---|---|---| | `serie_riferimento` | `"T_C"` | serie in cui si cercano i gradini; deve essere in `serie` | — | -| `soglia_gradino_c` | 20.0 | salto positivo minimo tra due campioni consecutivi per essere un gradino | alta: gradini piccoli non rilevati; bassa: scarti scambiati per gradini (A5) | -| `soglia_bordo_sigma` | 6.0 | la salita si estende ai campioni adiacenti con salto $d_i > \theta_b\,\sigma_d$, dove $\theta_b$ è questa soglia e $\sigma_d = 1.4826\,\mathrm{MAD}$ dei salti ([algoritmi.md](algoritmi.md) §3) | alta: campioni di mezza salita restano nel raffreddamento; bassa: il riscaldamento si allarga troppo | -| `distanza_min_salti_campioni` | 3 | candidati più vicini di così appartengono allo stesso gradino | alta: gradini ravvicinati fusi; bassa: una salita su 2 campioni spezzata | -| `n_min_punti` | 6 | campioni minimi per fittare un dominio; sotto → `indeterminato` | alta: più domini non fittati | -| `scarta_dopo_salto_n` | 1 | campioni esclusi dal fit **all'inizio di ogni raffreddamento** (sicurezza dopo la salita) | 0: nessuna esclusione; alta: perde campioni del decadimento | +| `soglia_gradino_c` | 20.0 | **salita complessiva** minima (somma dei salti dei campioni consecutivi in salita, in °C) per essere un gradino | alta: gradini piccoli non rilevati; bassa: scarti scambiati per gradini (A5) | +| `soglia_bordo_sigma` | 6.0 | un campione è «in salita» se il salto verso il successivo supera $\theta_b\,\sigma_d$, con $\theta_b$ questa soglia e $\sigma_d = 1.4826\,\mathrm{MAD}$ dei salti ([algoritmi.md](algoritmi.md) §3) | alta: i campioni di una salita distribuita non sono riconosciuti tutti; bassa: il rumore genera falsi campioni in salita | +| `distanza_min_salti_campioni` | 3 | campioni in salita a meno di questa distanza (in indici) appartengono alla stessa salita | alta: gradini ravvicinati fusi; bassa: una salita con un campione piatto in mezzo viene spezzata | +| `n_min_punti` | 6 | campioni minimi per fittare un dominio con parametri liberi; sotto → `indeterminato` | alta: più domini non fittati | +| `n_min_punti_parametri_fissi` | 4 | campioni minimi quando $c$ e $\tau$ sono fissi e si stima solo $A$ (raffreddamenti intermedi corti); sotto → `indeterminato`. Con 4–7 campioni $\sigma$ non è stimabile (servono 8, A13): il fit si fa comunque, l'adeguatezza no | 3: ancora fittabile ma con 1 grado di libertà; alta: tratti corti tra gradini ravvicinati restano indeterminati | +| `scarta_dopo_salto_n` | 0 | campioni esclusi dal fit **all'inizio di ogni raffreddamento**. 0 perché la salita è già nel dominio di riscaldamento: su 45 seed con 0 gli errori su $A$, $\tau$ e salti sono i migliori e i tratti indeterminati i meno numerosi; con 2 peggiorano molto | alta: perde campioni del decadimento (e rende indeterminati i tratti corti) | ## `[fit]` — regressione e scelta (`fit.py`, `analisi.py`) @@ -39,7 +40,7 @@ Si usa un altro file con `fitseg --config altro.toml …`. | `correggi_autocorrelazione` | `true` | allarga gli intervalli di $\sqrt{(1+\rho_1)/(1-\rho_1)}$ se $\rho_1$ supera `soglia_acf` (A17) | | `soglia_acf` | 0.3 | soglia di $\rho_1$ per la correzione | | `soglia_delta_aicc` | 2.0 | tra i modelli entro questo $\Delta\mathrm{AICc}$ dal migliore vince quello con meno parametri | -| `rmse_vs_rumore_max` | 1.3 | un modello è «adeguato» se $\mathrm{RMSE} \le$ questo valore $\cdot\ \sigma$ | +| `scala_residui_vs_rumore_max` | 1.5 | un modello è «adeguato» se $\hat\sigma_\text{res} \le$ questo valore $\cdot\ \sigma$, con $\hat\sigma_\text{res} = 1.4826\,\mathrm{MAD}(r)$ la scala **robusta** dei residui ([algoritmi.md](algoritmi.md) §5.5, §6). Osservato per il modello giusto: 0.97–1.40; per modelli sbagliati: 11–100 | ### `[fit.modelli_per_tipo]` — modelli provati per tipo di dominio diff --git a/docs/img/domini_esempio.png b/docs/img/domini_esempio.png index b8045e450131230368d4341d2328b3baeb098ef1..ff6348f39932966006a7dde79bbea6e98c5433f3 100644 GIT binary patch literal 164978 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 ~6evc_eKD7=3`;$*%&E^ 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 literal 158312 zcmb?@1yGdV`!5y>A__{E3ew$;0Z57<-Hmj!G%6y}-LYS~Te@3X>F$tj7Fd?OXTk69 z|GzW$&fGiqzB6Z-S@u2ed(L_C^L(E5d;jk3159E}G&Hmak`kf{XlS=9z<}IC2cK*V zZhr-T_#MPl9X?naJ3#d8jL>BD9BeGC9V|@spE?=Y*_&EhaWJ#7F|#v1{pjFeW6#gR zV)>tMFk9Q1uzU*I0h6F%*hr|^qoF;%M2#DFBl*6f-9ST=6n&-WoVYauaaUBj?ARYj znpMEKeJ{mZH|-v+(KcR*-YYTDJMCXi?X?)9%WIux9GO1(Kf!Z*qgMO;JMGh_VvjOl z;mKW*a5$x*uEb5MIK%J-7kD>={Qw`VA7adW8=B}=s288<_x32r5ne^xxT{CC7YxFy`NJ8v*OE}+c$fYyp{rfjQ4yI#Jc%JGdGVrsm+dsORE9_entL#u91jo;! z`O6)dICh`2!?iLGxRV7pNmo}_dS>QejidQwg=G&0P2x*sW#u~Q0s?noiaU4ipcxt& zl^FNM^Qt)L4z4}De$5A;jV(sP-_y4J45M^e@F6(ibLx#{!=ezb!_LL^YkW)L5eb>| z;3-ASAunTgW@|4%YDWq2-`jtJ+rPYg+Qcy+_;^BizwL1xudV)YY_s>>!*PQU z+bPRRJwkD<7}~$PIXF)@o_nV!nkgXOXAnF9vy;nuHgQbbEhsfLwVvF(JCd$9j>DHp zqhj8H-*m1)$RyDgJuAscJp+zMKyWxH&9dK4pc5Js^LDDjvifLHnr}7MfRIi9cH`x_ zx#1RAr|42g5akpe6KR8C7p}JJ`is>8=)pd>tNlqm z=f|5Ew{KFtc=5YXOCVTahqs@132V#AE#r7s+Ho!h0d|@=QzouuYocu8hv{SPgdnHw z$={7$UgxmgkamSjeA-L^_rg0+5| z@LJCbqV8C153uDWJz5{~-7KsPJ~}!wYgAD>BSrmdyu{$_a6lw&vZ($+m6T*zs9KUL)k(|D%w1HyN<73Gm~F6qIZ|n@ zW4}FFzH*{fW*jt8ZNG*It6quL=xy+Tiqkb$+}6?iGj=a)@&XR8Ua34O}zC2-g-MY)`w zUJ9SZcyaw`L|mNdy9Dln=|jGx{_L^yA}>T<%Mun5dt0Iaq;LYrA!Z2jXh?4N(Bopj z>(W5IVAKxIZ90hhw^fomHf-8{KzQJO6Ih$E%&g9}R7$#IR+zoAva+hSX|t+K0P+)m zw%7VFLC5nfBMu5}95cWo=A<=4O0(1tC-OVyo&mXv15zJ$(uyt6%ScQ6eTx9or+2pA z?d`UJ#W?F>UQq+P4v-}dCZ@h0Q`>MdiwO(vp#_^**sNR8*@Ou+4oFteWaZls@)fh) zk-Qj}K}ni8IT6HK?uu{Qx8teAq87ksI!IM!)Ds=%?BZ}B;X~Ftu7`Zfp?1&ov)(23(tXH`EowN=T|Yc~?!g?>GhJ%b zqb>3#q|-q7@^opHXU^SV)_y=Jvt8fssM2C$u(zu#=XgNxcw=N0=wY9IKOc?R9Iy%f zsQq1LU}0gQ-YvQ|nN-4eG|CN6_ZHleqVy}L`YsXhggN&^*=mn0*#vy9le)wHfDPol z_ruh4VEq;(=74llj6k+ZI>omIY!}<2>*WFDItC1NB#Ox7991UfA03&;vT_SR^_eRlc ztWYcM9P+RN?J!D3+wUldLPR)sfEDWy$Y;pWLlSPrTx9D*kwE^FWavWU<#AE=rFmhs zaS@{Yj4zOo?RhS8v#607CfvD*z`HimZ7QB6PyPH%l3l*N@69CUzHILA@6JYe2ed7++cmCmgg;*;}Z_!-tWY&x z!ZhmLo(7qCPC7F<1@iRmaE+XiAi3P~K8bZ5&In|}C`QZ@1}sA`nSgl3T3GhlLOvV2n*HgPCqG1uTx&4!xnTn3*-yZ6;yGDRy* zb#-FxBA(LvH8)KsD@9}2fUX>Qh;MIiZ*~Q@<)o>qbQMvp3(+G9aAOGj%S9C+DOo@4sJM zxTB0JWP+g#j+Itlu9TTNq2+d;HreB3BKv(F(6>Nxp?L6A-Ewu8jhw7lcB5`j5#)~9 zL4)G)_{fBb*X*VcEXN{Ik5GQ9)>pe2_S9UbvoPCo;LzCG?9hIE>Tr1ZKSz+Rn}^M1 zHvAok8{5ZUPlNeZ2^-)$wGuk7UcFkj1@1Ri#LLqV-p4aHy%v~MI-h1blqtVW!ehnA zc}@h;rX1iC*lTWWNlK+~q#QwY-Ni8%d}7V>-wn1%-k zI4r~h2@X78tJbMeM_OrRc^MoQx$_e|ynO_0P6a-GB?9RY?-t7jgaa%ZPbSS1-FB*# za@T;1TO0l$7i3{Q*N_D4;EU4jV^_X|pOgj))=IINUBI-q(`6;%n!*oySkgLFhwoBsT(01i2<)xl`U7nfD zf^g`k6Ogeh#|_WTD@?Ur>ImEZo%Z$+xM@)`$|sonLvkXvyY(<}rcw`-2KEIL2{>68 z%BC+a>RZ(xkB-;niL?)$b*d&0NnV>)J>mx5MC`*Rt9vy-E8m@d}46(V$^ znhtDRVfAV}LReWADDoV~Q#0k!9pb@%CEgadQ-Ga1zb}C&;pMQ(;c8zWumo`h8kNCj zm8y)Zz;>2GWpvj@n*&A;^_cUy0G_rIw8sC96fvTWK}Z8yJZ7m=%7qO;SDp z!kxb1;o-c@ zCzzxR_+n!Ph46_24W6NGr?=Z~z*a@Mu>h5eWit>T_WY(7>r3vM?Xn#9Hr@p4;ne$I z(L;QR()~JZ7M^LFTPXJg3>R8H*ftOm9gOLC-N=B{ld$Td0jG0|K-*cb+JF>H!l+pl zN@7*@j6LEbP{iH@o{)0$F?~XG5BSLnSn*0~0JHxjmcSWe;7Y9)FuwD??X zTYD`5*GNN0m!nxE zkWU#H?$c^P&8|bwsHG5*WFVt&w}(I^=ZQF0DXcq?8XOwJ@NMmdia;NbaO)DH1I;s< zuClEIR%P5`zxrTo-QfTTwN3LKg5rD-Ak>e>wpfvEfg`6NUgQ1PoUI<3_#RiqvS44h50@uUB`)HYTBK z!6Wce5pIj|rj8&I5H|lX9WsW-R0IFj9mOzFVM&7R>y6K(F4~gde*r?vuv(IxGxfv6 zL$xX!J;Pd{>hgLEljY`W^{$SFwP3&GWA2{2H~f5n0c2dY%vg50ia|NQX~E_fuzXSj z%{8Z_Uz(qSkDk)dm^3Em<^J~w>2B<9BQiNHM3}$SV^qy#ADn4t(bF8fsQ;v-exfnY zssGt+fCq!5A%FVyHqg|i(jMjj3ylKhovNi^{=#>E6H_YgCl)XMaoilW?P03?m9NGT z&uRJ^wlf2qz=N3@M}u~MJhbs`r;b3PH$~d@i<$-h=Eldg<5DkCISFLi_O9jR4?XY< z`GC=^j0`rzpN~MO*9sJoeD1Z_-v^n!G`DzBRaYmdT%a!Y^wB>+Ie{PVtfk7irKEMC zb^WdMXa7@{%q;fgI{L=>|C(28)ZGug)tXtLp;n=Pr~2$HtioHsAzdjTpI7-s)C4ev z($S21K(tN~o`U2L3)IUOfwAaZuxZK~ZSlE3(cmHARGS3MjLqqSZ$x}NaoHNk z!gE;s?OS@u6DoBKW=!#2HNzBp@IY?Q337*YWhT|SuPk1tpUL?6R?Y`Me8969;Q-E) z<1w|2F5>(c?*tXN>9^f;J^CY`wl-1c!ogC1go{c-tA+DMfE7$^F^bVrPP=-LwG?K{ z#ku%`XOOI^o)QXKD5ZE}Az7eaX-g?!XZKS=E=#P;xEH=%=^R7lR&p)QAv0EM-zkGp zr)@D^6^4?J_q3uw=t1Op8#sc8Ng#0T@B-1B)|2NE8XR~q5J1Ze{SMmaxZrx#?u{+&yH z#D~B*Dit~7;DovME|mQ`*0=WY7=m^OO$z@}glI)lJ%5f$|HIWs1UWcnUr6AQdK~>m zdH0pc5dIBX1qFql6E2eL6kZqd1xqa8?b`zg-d4N~B$Q_!zWEWzcX==inBvhL1a*MO z1eZq7Dm$;C?in-$#3l;K0HpEz2n<_>hgGEjt_6|!F>}c2dKNS_xo5#<4+O1cE{Dcj zP68m5Ofw%VRAsEu%lrPFl-Cog{8gkg&;mj}-w~A$^#PN?-vC%>YbcsYW4y}Nz_1p0 z#u5I0sMjTtOJYJo4}e&JMU^*D|M9U|mS;v(IogU5z%X~e`Rs1R7Z|Dj(<6qbQ;0%5 zR@PNsJuj652An>#dXuLM#6Lx&ws!WA0*XZ#oJ}_3v7BHS$gzCW(+34a3IOJEm)!Xi zKtkg2n7~TWEYwMLhf-e});fyN z72`4ejEIm>62M|O*qtCINsjmgI__-mYeFyHJQTX!1R}z-jl3dWkT@9}vjZjG$hc#T zCu#}FF|>67x|D2e$$~`m)|1Iy5YS{Ph60K>{IAZCqmpVg2Fw0RP zt#~l0TAI%cOp~W)?NE%I>;EhQ<_5Hb-@{e_uB|axKwSV6W1>mIylJEor11eS_2g29Fnhkoa)@+-)cKwN6 zX>^oa0=w}9;|GWA1RaisaC$ZHmkShRx(L{sfNlp zqOSC6Kq*i4ppyda6!AMInn}AN&{Dt&Ei^g4J8Y(A#L=bH7eHX*KI&GLB)+Z9r~6Ai zLG`DLD5OV;zoBPEzwJAYAV|}{w(2!p97tDKOuSZ5z(rwjf$*uh%Z?OZa&-g&c$mTf zle@_nqftW7{IAc+^?~?6PP%D|MaUqb)vo#gI@tc2sr`@fbw!07fEHE5Q7w4NrVZy$xuaK7rBF>NRqe8&K2H!7R zW9_fOYVpT59BN2Z{G%H{vYdn6$|=h+D<-jsvS|!s`7>)(%TyG;4qK{s@w#Ri)k?pL zIQ17##eg`QsCGtsdkxdKl~JoE5~LxIvCvJ2vvHCHAk2_8QSj!XWsWYNMntybyJmNs z2_$6;Z1W|6rCRu(yv?d$z`xGze~-idze2t3@3pnbIZXPg0PZoH@%MS(sRV&flAyXz zz??1z6?TWsKz?kFv(2tZ+yaIz!m=pn)>FiwUa!vM?2{5~YrVU=Q|3z&jShr|75Uln zmJ7Py!@oQy)#kxZDDQ?t`aY5XL6K4_|$1J4P+*t67r-r^>^;k**(_H&{lW4eUch}-06 zdB#B5BFx8~ciqKebg;oj{#o>T*}boC5?PByd`~veo8T;s{oQjakpj`c>rKL~Z|F{C zGRZg}v?mEs$9}q@`)g@j_(#>OnFVTyvwW>Ynf= z7S=5bY%Je^HxD=Z+fB4EnvN!P*pCw+41%Ld1Tzww_}e#}kJ@X;!)gnrV^`yt2wm2< z(HPZ*p?&+X9g>Sb_R*qG_dJCDm0SH{G~V*^87v3PI5;~ z8sxSN+H3-M+{B^R)2@Wx?J;4^1>pBkR}Np_IIdq9fDH}~4i>e<>x~c=#0>8QzS+DI zHm3bbgr$#uGgj=*SNjSab)-t2bYM>17t#YvyCtn}*SYCy4w)g&B`wj^SU!7d02MCO z?lz=pbq4PgJ{&;@VOPm?^k#tTz|EeSg5%1Y()>^N`nqmkE~Rr9Jm zSHk%}6TloT7Z=`31Sve?AAMWAiK_Ra97p5>mzEX&F@YamLtkJMQ#Xw^d zEghX!w7HIyKZZL}&oTx?0;mfkb@r}?bPV$fz}^1=IfkLJF{la9^otLCCi6QnVfyqFb_VDCbV}HtWQx77$xG!;}qWOQ7KpaTbrSZclA&a zZJd(>5NPToz-HP2B<2F*E0^_*n5u(r21*Z*VxTfFgWsuQVHHFi#;gV%Sg4Evq{6ve z%A&agw6x=Ev8+yvk%cde@u@p*UO+Tq5_QtoITQv;9W^nFc zECVIqW#3485A`1-n`&;p_~`MueKdiVZBR|W`o`m83S0LXd{yb2&1j!>k9R-PU7s3U zxyZYq9%ZtD-vvhoQbO9x<1wA1&9M+rmJ$o9pZ{_n?fIsil2QKmVVS-3$82Q5b`UX5 zJtC=O+xLcU2`l$T)#TbdkJKDBbeXExa*#{OS(hxcM%MW6E6hq969*$M&5>+RHR zGLvH8MFU6!`usoM*z`ON0Ba}w)(qg9T)_%<@Hu!Ym%QbDd`7gVgjl$k=y|8P=_wq2 zgMTtJp&m~kJ*_$<|ML0eC!6f^GSBY9;RpJWAV zF)u3+fy!14jD0PU$GPGP&BeI0{LiXJ#1D(58!z> z?!ZfQE2yGNb@RY$g24W4bWkKdI+66kX9U?C74g9}(LL{h^gHYqcf`1InMg4oGakf@ z8qXjxpf3=Y;=gphSWox7SEy->DgVJew=8EMVVH>X&fwCmnw0ZbwtUj@tEw&cy|s>N z+#LV+yb`vO>vKqDX>T|VU8x*@=ZmoQi)hg-dre$umbx2Pw#WlidIJJ1et?fIZ&%KB z0Nm_clbHZbOl$?&DMX6B1cTew&M1*<#Obwuvqb?t!Zug zqXUt%Pt%n;os0W+q2@RYF;+CBG67f`XD@z;bV%DB(vvqPmqaE#>|aKiDESkT_eC6P zNZrV<>EP|-`mH4$_&deuM|Ceb-9eTDDm&kY-U$SCMbH>jzLk>))vBAiX9p`QCkOx` zg1|kDO^HY&Zfnb;w5*I_t8BtT)$+k=K@=g~{R*@5iK%TT3jr2`vZ-xVv(Vj01Ye0> zG;8t9ROQbvHS#vogLs&uB&a>A?ggLiPs)vb|yT3Wpk4$p+VDJ@{a{ z&24_1IV5$V%EX$l#sn?#$yxG`ZC8#_rR(q9*~!@i+x zDk?ox(Q?G26c3z7l|pJRY~%n^^~}e|N7JtB1t`4T7~(wJDjTQ*X=U+*MIt~wM~E3p zMTm_If6-D>0%N4(;$i_k#mp-rZ8?!F5^rccTlG2}MRMw;j^QTo7ZGZ_r9M!N!6<_1I z%)j*+Q&t^fJEpx2$pmR`7$TQlS=6lKe1ek{=^5PjqSjas&vH`Y_dpr%OmXP0tUk^ssc^Plp$cSyNTsdz_Lc7q`>Il8Vi7fCgzYqAYBNyup7sgR5J=%N z<)Ho5Ysmpq+th?ugPF1<$*vo8JB`T8Yy%ae{GXRqu$|g!FqVM3Hn?_@U&8%an100R zF?Y>L(HDLAXc4rbaju3_z3CueaP=&l9M$^dk`aJi0Y87j-?8M^KxUYyT;L4Wc;nvf zn|OttN=YTp;iYar=>=9+7EWRIv5`y}+Q~O!o9^7%bm2F>sTFX^GHCK`KCKg{S{eH%l)-nKVz%@gheFcMu^8PEyN+Mq7>m_jBlSOTNHj-F1Y!~KM?QPw z3nbt5h4Y|aEcRVEo*19zc!)4V>BK3kx8n&k^_!~wP~2V-QhtlY-!kQTAy;gVu*rx> z(XQh$y(ZySCYVuLi8H8?zd_e-@7Q9&ctoZ@5kuOY-W8#*V;&e(bxJL+>HeXv=dYjt z2uLCNh9`0&Z161TiO?R}WB%hO7d$ifu-~@dB4wUdnF%=@|196foR#2a<@IU4`F`4@ zB`;m_@8HzMmPvX(YIURX3?=0$=a^^LXZg!wpZO(~y!%n}U9_XE5r+P#VUd&%aw*x? z6zYAk(wCJw@}&oIqy>}n0w=dG$li4>O6S;!#0>R?YP?$sB8k@T>H7YI=Y*moVL)!F zlw=?$FXk@=giBM|Sb#rmr{nIIY7sPA>szG)dPT0Y?|S$Fm;oM*^6K_?2+{SP zV#oq?g!A6o^l(J6fJkm%bq!_6G|ajFLFM0rb^;kk729;h@cc}s{|c~yAU=Qa&etH~9;Y_RNHnflSB>?yjJvf=Vy?f_OsGb+)z5-`<~LW* zph^L6>lfxFa)^cWT#a*%v3<#k<$a0#7-GucXSS>A&TSrT5%fXndT$iQfa0|MT$N22 zuQLTw#H*XmbvS4s;i{N`C%`n8EUTxdmzX;VYMg8PQ@e+Y|B3mpUP*b%Aj!}n_|m+0 zZD6$#((o8oUP0}_`c0BzIHc$Kb^M1L1uz=ZVyxErp9^$fvAh)BMx!6c3N8fkD*a_F zIf7mJ&iQe+Ls^P{AjGU}@zaE_!MDEu`u{7`|D6e@ZLq3$0ByuwtiX9&XK2w=GW9wD z8zu+XG}|C8rMEZ{(LVFir)4KMUU+gjp1kJ;J@|LD4P8O&A?XhFfoS`_4 zHCSWhAzVk@WPs*sGwq&&gddmEi&3Yaq9>-aHt<$_yS`0#A5+iFixQ6oqF#h2-Qziu z4<_Xf0?QILWOjy0LeQ%f{QP`nGy=U=@H!d~q`)!Eb9J8#TG}WmCfp%;`y_aNt-9>T z>^1dE;-)+h2aL6UBEmnqRte=Y(ItxYSZ0k(Vw}E;^aUXFVRGl0EeTb}aAY)`()aw5ch$oKdUwr9Z^KL_~#UZD6E^ zQ|W3O(z#Leu*A|19p+m%SvcZ`P8c8+N|%6Le;g94t~1QD#{Rke=z80jdbIV zm8vViOe+Kqs|C!m&n-hp$HE^73v@gb88&jUwf(JRqA<7t%jV9C6Ac(KVcnl8DL+WG zin&`Uz3F@{i^J4F7BM<#f3l3NV#Xb5MgZMjE8QQ6m@M`YPsnck7GIYUf1Ij znk5W9_uD6{uR9*RebL_TD6c&|o`~Lw6pARu2?RF5nftIor=tzl(U!yhH&$RqsY$6r z7j87O8tyLpJqj0hpY8t8F2v9!0NUS{H_oJC==34OLa6JM2v*vajPFwTCQ*2}{Bwsy z2(w79ox-c*sCv{|z4ctyPlV*U9z>N4-jOQy7lw%*e_zBu9$Sw$?qH=akh zYJZ(;aDnX1q*^ zK*uF?6!|u!RycsRbKxnpE;^vD4mGtqY^0DmEw4b+q{9!cqtDT-HE6~GIAVLsUlw8x zHtOi;9R^=cURv`9A#LxTY(?`5kjZ456G#u+QtGTw?o)P!{@U-#MU5fI z5-%K5XKtz&zte2pY6#Nb20fg@61GG7h&=f&*X+18t>OAeW|nxQ!cr{MXZMM6sqbII zNOQc2Y!M?acH3=)f&ro`#V&-2j;xuLgGTb$@~*Xz$4kxdKl`q<8|SxPrRr>k%lWG! z%_S3a|3>GC3|;AEwAEv0mrSGt>B65zOwYru`Oz$L-lr`Eb36mapFucwqQqPjI^wMM3)zQ$;Dz=()AJk_5SROELrk+<^;utn3+_BA-xt{0* z<#EvVe#MQ2CKAjj$C|CoT%YuNQC5$n{w|V>gqgPIpH1j= z%|^Mw%KYl!6Q6B;C9iFoGs+gDQMq^sdQ3Ww!&I%!?cI2wMF_4G6U$fYFZ^6a%X?vg zEMu^tSiu7xCCmB(C_(S?+8qu9rR3`~QhW*CMf8WPwf2ImMh`Y*Z)3SF*@M$?UddTV zSXm&mY;a#zQK$Hxr!%+jd&%R`slO*PiQ)^Vl1^Q`?>C#^$YrwNaGpE6J9TKksHn7U z&o^_lHAwL3YzJdmRaxwKEg$o+r>)HcaqaaVgaMySXR^F->nEeFSUKJcwJM`Y=~&~% zesyB@J^J8HdwQ#)h>2O`qjcI_WRdlk{PU8HP0PQkvkhWsT*`X*Q3?bqyw6NYy@gK_ z0=2=b5Mr)}w(T?B%8aGu@;4l_8?M|4+k9N?}(U zz6G0=7^7Lf1Nj}&vyYZB*VfbStJ6%>!J0-!)OX)_QT%kV|d!Oy^ zyhzbaq|YM(k@JH0Tm5wygC`|V?m$B|-{W26H+?U8AGqtZwxAWLAztq?F3D9a4q)fr zL^hD3wk5U~@3rNO&CgOcP9$3#?D|l2W@Ym`b~@5h$KdsY)#Awr@V2+_f4-1{9xqRy5hjGToDoHFg3tCTIu&= z%Ju_$+Fh45yzs~kKLb?x6I^$bUA^cQ0m8NiMeY;Vr(%cj@7>)v?1$tA9+G0s};c4AoZ zWKFqLWf8>CWp627f40|BtmPSxd`O|`UmerFe0@ArCmV>s0u%)fRM-Jt zO|;5d#Bhf{9S&rU*%1VP`QtN8V6D^lz*GHaDo{7FmUr@4@0xt2Q`ppKE^g}nS>F%dqJ zr*a6Sw$x&R9UYtWCm?8)Ojv~Z{23Y=>e=4icebh4TwdMrsQ(8LaZn69<#Cnw?_UD` zW1mhSCoT5d^$Zs-#FjnaO;ko-{{FGNJkOFp`;eJZBqRtbn`XG`@MUu>3^{^its#5Y zRnn<{?mohA%=?5|b(tnliJQbEKkGPOQ29tUnE3F`Aaw)6fVn=wiN4Y+nCb4PE5LPq z>84jJqS<|Pu6F;oh|2u*IQO7&s~@6s_J;@;MeUT-XOaCea%rj*o6yDZLA3^D=@!KI zC%^faF=YR1)f|Oi&xdTb%f}7?Yn>x^8}MltV-14!04D_n?~!_4>;p0s+Upd5lcL++ zuPiF+8@T{)Y$@`?J3ljxV%-}6yKCA!UIftU#0SG&K#sWQ`z5Ti|4Z(`X^H2)aBvKH zW^o&Z>3yroPp~mQXKJ|)uWhc|a(va@olFV)j;o>fRS|1as^wv+!>>mvN~d&Qerxt_ ztnakXQTd%BA7EGX;3+AlIC%^&$w^=)$6Jav0Uo5^K;ve4P0RXiFWzK(3Ul8Pt1Tnz z9P4h+TN{qln-qcJp#boHK6J+9_in99q8)cb?o9->Y~rh3?%PTCTnE&YqT z<||FjouAc?BM;^1>qT@VF$%Mw&DQ0Q_>UvI#g)4C%jfrMsuxlOPCXrywV$DU1U{ z9@kVO;esjQP-TBkV0K9V;My#gQ|WzS0$vMHZ&Y@$zk|y3a!Duot@-S<;G0cm<#v;% zStXu`^K75hN0Bj;v&Ad)j3!$zgLe2z(82>F%QV-8oswQoFPDO9!rEW-aWSdGtY*{fR^oYmPOV z)1I)8{frhtIKd6~>|{A2;IkfV)B_)&)rnTjaQMWNN~liZ09zKplD4}n$6qi?KOey1 zpjBuo2{OBY8o=43NfDT`m}^wqy?E~$xA1^x`qPNn3TRka1>^)h(2Z54$t)g3++Jn7 zlo~u$Zmt5_e_p4F2gL#gHPrn812r4aQoV!aF2_rLG5u!RpGA|W7r8-mBp}Gi?h&`q z)Go90;0WhF{CSF0a6s#w=0~okjjsY|*0|NjvO|6v{!0t<-xtiDEwY&f1pU7 z+wsPoNapcNKubiCUIBAnA6SexW@hxjy-)&*Xp6^yFx=vuz&0nU)@EhJ4B92q0b!&3 zfM0au%lfgBWnGck60EaeO{Yu8fI?TS=TDplQd+%LtWvvm6X`0vI-mxvnjvR)S(eyw z-FgtXS2#yj)#or-SQqQ}L0j)M)O<-bhsD+3xd=u?{Y41v_nIPA_Q0s8pv zm~+-p*YCF!S~CZt&#@=B6~>$~C|m?b@07vZ+_UkStHEgr@>p<=c^q*vXx18k^|3@B z62RNv3mDk*S`RX~tULB&negs0$>3#i?JJ42k*@GmdAZQ^T2OoDuM14i+(2Y}fBv9- z{@EKsK|={m^Lt4)_?fMK)giXjy8KDE<%CO=H*9KWE+F%=oOB@UzN>}bL2N%kNSkjs z(59z~m8k6{Q{Nwg(NmBC%CmB*>l(m&@PZ zk9i(#J3%UFKgd<(pEh+rf)T4bK}?cX)qFsULes6QFR*S)`8-&PT81{a$VHxF)MH71 z(am5{G3k28^si$1GS7=JHIYj~kmo0HhBjrxn-}t(KMnaIGf6O#T%`)e1{q&?n*>vQ z<|^(?!u5EyYNaN>IY1%D6knbxRyO)W@VVdOn;sqV$?8*0FygD(q3%aG zV93|?ph>kdAy11;FG2)tV1k(D5i-+4A*svpd33HG`bi)b!S4RpweG^i){?OhJwmaX znxP%sD`;aiY_sryX5PB8SQFkXz`StGM$z#%5f5wo2keaenSum~JJAG7J^mRvNR$=r zVt!3J%=pCEx@+6Jx1*0mI_NoMB|B=r(Q-R&tUTQFvcB82;$Yu3(-}I_L(J9j@*owcGjk=$Ebu#YrnEGoMOcaCJvKg z^)MLbtzBh1+&YP}v^8TtKEOxqJ>@8Q0NE3tnTZil^BI`K6mUL8}GKQ z%*6TeqyK{1OOX;VJR^>{l9uxLLfwgFAXbTw!N}BU+;;Q z^U$x$%#K;cp6U212$YWhU#-`?bM!O??E5b(6Eucw$ z*?lZARbMOmx;3(t2i1OR*39K?y&B)lvui&sHg=SCS`6(jHz6SH8RDt$0yyb^Bsl6y z6b1y3pMarQ*At4~0pj|j)f*1vA6dr6n0K+1Js$(n{C6Gc&##iF&1fcznbH@tMiN3L zy6dF)j7ep4OAmz@h`cu2S0*2_)I@S|ypAuw2I&-TpmwNy{`g_%{<-hciCdi>VIl;M z6Um7z)6`ib^L9BXwEfqPodCfRO;5I|71F$T`H;Om4M2Y{;&95LcFb`pmb8 zLXDz@1vvTANv$>5q|Oql>x}s{SGl;{c1axV9p6eM{WhSU|JV>rlJK@cJm3KZMM+l4 z9CCEw>CZ(JldpE-ZNN+k*yi8Z&qgY%_1i*um9NhYS7!vXqTBss!bFMKnowLe`JHHb zGa=`EX)I~ydYR3ZWlkMr6RLV&;rTZ9(0z_zlkLO z4GWR5Z@Lq^jb&S~IZ&<`eyqh0OP5|tX5))ym}tp?ab}D+aOKYEx!U#%#{2FdWBzVz z*e!+fF9o2xi_Lnrj(l2j$+rC`~w2^;RrV}zzU#aW-ja+0?cV%hOt83l}S7{k-{RssED2ZChIBkksa3hBf6@n zc9DX?zlMxYS5aU*UdW9b^kz09wyoXB#)@=Armc7y0pG(BDkUoFG?eWVa|z?3+3F85 zgT!jrSk@=|?s_RMTx0g6k8;T@>H&`j4V9P{Eus1x(6l{{M>d3`zJK3Jk-yJkA{ZJ} zD}OX&OqLmgoyW3ttTG$)!RXrjJ7!HbkAm(7w3i^#fbs93!YAGHqxBIFdcfcMR9OnJE}^vn z1I^q_)pWcD_mB@f%fNXHIzV?V{b65~wsrH0iyxuI^pua;8X-V0w;LJF;IHGYk$~iS z*Y;Yh92!9@7V^rLk-RuLa!Z@{}7e-GXw; zT(3>w#%r*i(%NSY`yC{1WGbVLMYS~koDM*4Oj=I&K?Mw3H`##!v1=`Um8XC9+3}%N zg?p!{UEAdF_uv$?+_uZn1keAZq1x#1f>HcpXVBt_M#yJp2#zxSmFfw6ml2MDp-f@h zoo`w>X4*K zY6CsCeW<(w1Y+Ygjtn{;$9N#s5C$!{Q`U`1lp%ub(T)M%hs_6MPYJH@lq3;|LcH%G zh0yn1=y-p0#zJ;Ow8p!o36i-N1#|e{65a5avugV{uK{qsD6_j7@A)}{pmSamGULcauOKR#+p)vWd%ns!TjwEs(x)cxQE(`yH=;7f7FL4QczVvO zbZr(C?17G;p~A>wz1CAeq*VhcU3GOe6%CF3xSp@=v~B0Y@o1k`v#2Ole4n08zXuti z*C8YE3I+biSn2XdZm;@J7dL!P!-Z^f-(Q_py0ICl#SQ0rZFDTcrcXC+>D%(+;P~N$ zjI|ock#-3@?CmV6@lez;K^)6vFk`9yYo&P3MTo)(OVkTg3r4|7C+RioJ81if2(O!mD`gLKQf;;!BPJd;S2lBjaNGRs%{Gr-3x~N7yt( z2aw=$BJ~Iz>Yw`PsJQ!^|HdJ#MQBq(EWfktPBpXfWQ8W;MflbI)wR?~jtXt}eX+u- zMa;=cYZN7~3bZz(uq2Y6NkI3`k2rrYpYD0gvPI#rRPw|z;Z>}zqT6ro2o{R*=GBbP zr%(RA(}R)A5fqWV4RmXX19OSSyA;Sl2pX|K_F>uU|JYQb!fN8?%e25iz??X4wyl>7 zfMDR+@y%#DElmj8tQq{!a(u=;9oF#jhC957)Kx1=v?ndmHXocSxD1hsZXL?Dwrn{$ zIbqw&%Z7j~r!OBN;eFKmL2e%mpr2ugaF_4i>kYoN+;*vxt*=h^8(r#Lkw{v4=D-h* z*9(TDj0+&$bj6t@ccn{4#0t8wg9c)1fHb-=nm-1$+u7uEVrw}MCQv;v``MJY$N7+L z1|o76{b1!>sHf)e0*MG=i%8BGFVa!Jjw%s~+q#>8QL_a2gUcB)+KY`y1WSyzD;)s4 zbg$=Jz2FYuYwYuf5JiCn3j&CjipPGhepk3c-HU}MQ%q09zfmv}1o(b${z80k#91xgIW#6L9`D zh8syhWdI+152RlxfIn-O#1~$baj}x1Y$anyO9F$@u%1Oh7T^C(CRRY{;`=>-_U5si z2~=J{SbZPbKB9gyW1YE>Y%5qKyx(AaT~n5*moL!W1g)McU=)-gKtq5q;{11(P9sWi z4U*nTWoCC)-uA;T&gb2`m<(C7M#QE*pJBTW*cOY_1N3DRlrI&cCZ~ZT&AG`&zsN?8H z8j$biLC)+|N0G;#sgE1HVgEH^uTMCP2YQYUxW|guM@E{RiwAz^pn}-LPr~K1DRkaz z14pKj0`0N$*8G%e*l=*Mo{>xfgUg>yR%;#MPh*|JevQ0ruOmbq=gN@t4JJrXCD!lQ zK43jqIHcRyC%Zv;K3%5UTAxi5v2*J8MUaUewDW+=F-slPY}%sZVtkR+S*er4rk?0J zCdrRRPApgV-6wXS7Y9Q{?x!8GAeg-km@r0Z{b^OZ1W#1Cqc6#K@>;gz1Iy)LM|4rR@tl77`HcO7hce%=h+cz6K@_nXbl2wo2E^*>^=OSMFmlU_ z7LK>e8)2hyb-Zw?$z`N`p|x+>EtUGZFc&Y>vfaS46LxC-#R{~a4wM#ZBEMBXnz`L6E>;jAi&vdRtb9bZyO*qh)$2$5q8$VdTlp`Xl}^dJ~?@g;qBnC5u5+?Ulbl5vd# z;C>jvu0ZjN!6;N6RY=jUcSSX5qB_NP0PDU!*kiBxE{4x*!NXn-_rpFOnMB^O7t+zc zKua+S_(OH(n+4(JSe`tVyX9*SUD908x6-*JOoG(iU(j{P(py!q^6!v5b(6rXW^}tpyS<)W%_N%;joy?qc_45;9ggLO7=j5m! zIdF_sGduOc_tCvCfZwD9<%lrKx8jo?!a7u+;GjB^C#Y=bH6!H8iR#fP@CZt$N*tT1 z8e^l@MN7$hd$?x_oEAdN;)O~JQb@EQ{cCPigeGCt}8OR*#Jg^n}hz+Cj-?cFSxYdkucK)dn8E623b9^|@)b_WR$a@w5^qH) zsNS`8gZjsfkCQ)4s~bR=rB^ux8hbUOI+cyVZ6?72J2$_2rx4e7fZht;Cxs`rH$M+fdK1=?@45^5tsbsZ z+}Nwsrs=2-uQ4f`sM@+PM{_<4T2npf!^J*;`jkxVDlm@kGxLSV6hZycb`_Xw=5aOq z>j!!Z?x)zW9sqm(-yn7>VYl*=T-##DKPkRDuyLRJJp+t>Q8rZ$LNP)nx=|&nj9*`; z(1#TC0<5wMbY?PaG0@Wf^UpuJjT_Nz^7s}bM`aL!q}y&M-;(S1lLnzd2@rU*Qmlqm z-5uVP73GEmItntXDKnc1RXV7!w z>6}?>`2S$-Er6;FzkX2=5NScALt3Pzkx)@d6_D=kl#~YP6p)e<1rcfKmIg`b5D@{9 z?iRS~#s8f1eKX&=bMMUA;~w|u-fukbvwE%H@7ZzHmy9Hdq!yFKmyLhTTy6;Gogc|# zMVa+|_i_BQ-);Zqo1nV+>c;)8F^(5vi)frxpM6q4eP<%ZSJGAz3GcC#Nt!tgdGP1I zj5T?tTdt|hN#Oawy!vAT!fP;8@TG7W%r-~HSGh`^jvU#YG9DIgZ2mDK;mnjA zm0|y0@&3Q{pmP?j_NxdHM~HGdF#nF=kefLADIev?w6);O?AXgB*uu2=_0VD7%jXJt zW}l*wwkbuQ-jmtWf*s*S+UYH~yaO~2lK)eA#PV+rorHu0iSw{J;2FTff}%0k!tw7O z*7{S=jwtFpm|mEen1Hf~+Boc$;>lgoUcV3Q?)^93?9*F?K4O`_gK@mKRQQM z&{po0pz%qOsLSzh3z}{WRUTzhnfQdG++f{Zdna}|cW|f4 zwBU!+tmeb`rzH}Tl3&P5_v1vxwZoU*+P)+Vl$yH-F#sT%$` zBaM;$zZE~4*=aUhYK50SzE_73Mh`rB%q`EpL@GG}El zi>-JDZ`^q>S6L{IX3xS`nyn(aR?x(IuPCcetGk7dRkh6a<(HCh{?n@f_%zzr2|0h!5~1jBIS- z5dJ1XD(D+XKSV}Xg>6-ku^O0Ai*m&xe3F=A6{Oef^Jc186W<8t@P6sUO27Uce0WoM zovp$<<#G7kjgR7#oRij6odJ}K_DvGCF>i9^YA>{2mf@cGID~GE$i&e5Nl4IhAa4|A z`J}5@6_@cSS|Nw<1$=Qk8o+<(JcL0TC>8j(%!ZV~=!>+ZNjcdT=d70(5A0Gs+bFP z=8e5-2%TulPoWp#IRG_qLpQ>6N5`e{5(Z?z7eGT6_6uOD$17Rb=rRhll7u=kDbX79 z+mLS%EsKF(9ZCF4&FROHhjX~uFtc^^evH#8Nt|luc0a6yDR)Zv5is&Tp{EcJ63kMe|>w#D!MH9ci#p)fF?d~ z&-Q*^2JzXp#Ekdjdc?v1+;+wv$a$pe=i%soC&Q~YtMLy@6IFyhXnc!tYY>aXw0n^N z^#jE(7v9`+U!+Tke(%k+iT&BMj>elk?1zsqN-KMe@u$Qinz=+AHzZyElk^exy+{Xl z2jk6c8?->buk?M0&%Xcdk3oO(HDcDSZmU~;0=&z;=-bl#L$6(0i! zA)b6yAw!fyB}3)x;dnjL{>yJ6*XdBmxW&Kr$7o=P+U;bCwwOzdm~H=~w;6Zjz7?mz zX^^n|tv5ZzY-J=D4PVmlAQ7%afd0YDA7Y2MNI@Jmh1Tav&K#D%+KkMfEWa%_g-@%! z(RvsFRCpb-CE4$v8g_rW^uxnkoHda8YorCq>XScHk{YklTbj^fOC}?Ply6-uT}f6g zeORl8{v^v`hCAb};V`9N9cQaL>JmPcwm8=;d~a*ISI;kT61${4DKU|%_Rd?<->OB` zt=$%E7w1ie2BvA!e;qwM@1dp=)l*kDn5^kxfWoZrv30MrKR2%C0mbdg?iLfl^vLr= z3wBrUM@b6RJU7a}kph->Hs5lKA*;3>{&;J{h~)Ko#%ev!_RgojRP>l4$f3d?DT)?{Y{luBo<=a2 z?b5z1>DX`ybCmZcS9`EcI$&e}s^`hRY}CKx)LtO$GNIdb4Ywi%y<}jBvvu;J89wB0 zK4ZeMLb{9IAO50ej`j)POnt&gTEQX6>B{7JqJTOfg(0-+$<@$4Dx~}mGpe#!p2TK3i~Lv+!gTWCfL{&JrIrZeQkl~Ccp*VS~wUhK+yZ;Q(LnK%Z{ zsh+Dhn^oGH{mAnC`$E&_BITPUe$j&-2dE!|0az-N9p1kze%h})reY;MA3wb4sE7h7Y`A6dTAf9`jl=kJ7}hx)^(0Z%B@D+6UB^K}nM^TtlE zZ`?NK3c{_!E;1VvacxVW?%8W-t!(fZx7Jdg6@NGdKqztji>_<>r$tOjA1-lT^c1=c z{@SA7^F4h%RI(@h<_l?tVH${TypN%Sh)lixmAu*v{D#+Vi8o{IK{1Kd?k=Px551do z9X~S;Iv{+5PO$ju9gYls<;_aFzU8Yk5;1bzHrG0E?PNv`RB8zWE`0gcAh>w^u2 zJ`BFbWA}=B0es)G@Zitxk8kwFhcXt@p%pcA<9h3rgy`Rtw*7%Gdx;6f`u6YAt_t4- zCZG4uw(fp6b+10PnM&DgF>0H4BQae2oElyvM4C9HGsbl>#4+y+ZMP2|;Hx9OhNMwp z)|is0*ng|lOL({HOL{am8CI-$)mIKrXvBur+oW z!2P!*HAsE*QJ?6^svFGR@caUU;l4S8dUK!DVbMsi*m|fV-^o+5<5#J<&T~=K)rEaI zwm&_U2c)GO76SW)K0JqmIQ%dFZ7mWDM242W0V19IJ_M{vPZ?jt$!srkCWJyUb>~ZO z|7In_)7JHu*CT%{2DiKJB+gki2i*G3BDTTpIg`=H=9AI%;W~!1b_ueQoqm$M7X?I^ zMW@;zVhnQ0Xu`-YtzvEv44O$0m3+VFWv)7mV-!7eom}1g^;n?YnZ|<~j;t)YBZ`SP zFQmE^;6Gx>$j_0oO8wt$Wc;k$=AgVf?DV1N=9iaznqw*XUt+FDRoYp1!7as2Fn!51 zJ24+F{A&{N&)7I4+I~KIp?glpf0)5)^c>@ExM{(hX7I2$2wa+L6lYpfxw$~(813V0 z=d;(NrVp(`A{&2S?Nsk5Q7dCwQTUJ9$i@0sd2GB!i}o`!B_kZ%8PfgKCVogL-b@{e zU~bd7MP)ZLm`Y2-!Tf5U^fajK-2$OF0C#l9UMM>vkO^ptB}0K6mZ|^6n>paG!w2^pb)n2P^OMfKd1`<)z)3)*rB@Q21=W3-!fId)col=D<~1 z+^v(Lv30ZOzBWVM9fooFvA{vwVt=81K5tU{yGk^6H#4**5;kGy!&yGtxq`W{i$z_= zgk8b2y^)h~`DX(rZG;^i{osv@?6Z@YHu}T1KzWK2{D(U!165UQB>4;NT8}YDN2m{v z)9EWjeiygzh)sxn*B1C=So0byW%JD6dzH<_^NZ|wgM9n4L zlQA>nRiR74OL_L5?_>M;pxD2aIQ7E2PYSnw!D%qXiX;({JVtSjK010OoZlR8dg~sR zLfw|pclWn$p?8_Y&XicY=t1|q=BTpBsL6+z@-;W{#sXiN^Q4Zi89P^kdqwgu9IY%{ zi*~4NN{cOmKG_)UNIv{Q=6ybgG5$S?q`G5(Z@j#D>oUn|iYE7phQ!Q-K(X+iSu8>S zLTotah)Ec-XJQo)KQDw2<)4bX^mbgY6$Vg>^}ELSCP&jEQrCrgvak;vFAtfQEHF0f zVZ7MO$q?H6yj~{S9NcC(Y;uGgg}(egWMV_4(Mml!F%(|ub!u^W`}sIr8y>J6d?^C$~@FRE5Q@UrfcZv8|f znAP#&o?!ASnaj1W<4wKflfAh&{cyfE!O)^H%CSf!J!?3u;{wlRSnc94Sh1p$f@#iuQXVMcPl%5_HdTB|W!jcVqvI+|SINmWba&!R`39(IIB6$|Q<)<1g;PNnS%UtQ?_Wm04(-}V?~hpzqC zx7cr?e3?_ddSee7kAE-Aok#z=m+h*Y+PKRrN_l56fAgm2Y>({04o0cI28rHx)mE1d zPpY*_`*jtTSE+?^*Ad}hJp1S8W1czUT$Ddk*$6``PN=VkpF*tQiYw>M#%QtAWK2Ts z7x~qU@NLE1%;8J+EVH@ba@8|+JE5Atr#i)=^Wmo3k>&8l=>2yzMXs2@DIwE)7i{E3ZW z#eqY!46Q#QijQ?QtfS|nQ{(4XR_j6%jS+0d!A9hL71gQE6FfDw7vqkt5s1;NJ{pA> z-9JRSfVGllOsl`tzVGtw?b?Ci8MNq$kAq$u>M~qQ=yE^9r^2o<6)pTU;yrvK^vdQ2Xtqq6vaRL#WCH*U5fuDk=cgM!0r%+u1CpHIlDKl(g_0!PTaKN6eP2FprG^B$L8>|^`~Smf5d>0&96q~37u zL5kJ@G*2#Me*;0M=jV@K8p?6}oou!}ANTY&3^_ny(r@^3^b|)atQ0GWE^tl>rhzgFC`_3SRJujXx}H(J`hmWD%Bg)kF#|!U~M5doF+i zb9j0tdxD^G17|=HbjKLm6hLF}7WAUW0a6^yaHvSdgP>B4*NGDdo;xyHblA*yd^p&a zoU7G{JIaD?zJdt`MSRZ>Ev5jToT9PcLYd=o7j*c`4~5u zPI9Eb-vHp^$b#-cVZI6gZpZ*IEXxOgSrC9iNaLl=&(DAK>IZOr+p5{ifH?VV%mlgL z;{DWKl~pbs-?OoWjbB|>ksexd6p2(p9X;cVC8@K+gWV*g&F8k9^tl>5kMUgwvr5z2 zF((|d8CN&<5RHK^1S?&j*O(3!dq{~TLz6BkAYC9B6bV|kp}S}RwOaAL0Z?z-4NHmv z0JmPeV|gSGP&OW4B$H9DTz(ng-=tngY;jkF)|2~gq{In`$W?}IA*#s(>%gzkD#v0W zithRPA0L$mzNBl;v@egoHm;$dA%@aKQP*(Xi%xX3$Miu#i0ml#5RlllUC#Jp)(m|J z<7PaPB@%4gO8CQv-{JFNyEF$mW^{bjvWu;3NRnt^zkFkU`d$jdpoM#JT*Q+Kv|E4v z+u+3N$RryG6Ko*f7u&|bHt-a-Ej(ESvKj&Y`R;WvjTFv$dgQ~x<<1ROp2zEb9OcHP z!k03ZM}TJ3mZ-^au(5C69LOfXd^3cJi}G>HEF&&XvY~u8`U4XSrjNm%kNv{@YZ?|L zwI3%bb5AkS5+}GBJzSP+t6V+rOu}EdBK4y?3ijX7qnEQ=tpIpaQkok!VY;%Cxw1?sw;NDRH=(a`! zfNXNsZQcifUX-JwqlG9!+{@647Q^#DRS8@(PQsO$|Gxs#6n;#94fiXX8Y=wWVm`a_ z(objR4Wq1K7L!KQJ(0LQf_C?w75U$9xxr5 zscnr<2M&K*$`tYQXn(xTC4v;z&A*TQ%=nk6*>NdEuU6K&pAUSp`!7`<={Ecj2|S$| zCvZC}Y*1iEhR7G7FB2(iotBj3hq6@iR6WE@fm8yD1=sh1cp$$5?N>qk^j~f-5frbJ zy}WM@fNNQimRK^e=EAPhAN?*0L%)SxOqKt?)CS7U#87x{=IUC0D|4=sdu91q(;Bd8 ztVfq02PV`k?2K2Nc1paP{5rb$=4^+)?nOb@6&GfPajeP-^TwzpEW!4;nWXlkX@hH? zLJXLLYR}DQRQc9cnd=MiYHMe88$SLQB%ZHwA9vgMda>;`#B3({PyjO*rL(j1Er=n^ zh!Nxijl`|D?x%ZWs6tRvSbl3L!#E^ zRsNBi*ULVD`X_ICa#DU(%y)YCiz@xZd*>DcFZ zh&iP%XEV64fbM(CZGceq6rggudU}ijw51MU77^B!vNArXEmUt2&74YJTp|iH6hFl)#9o1(xF1K7I4P&Af=(tfgj8NzMU%>3dQ$rIxf2 z#Df`BV3aR5A-fDnwzB}Y%`vuUFGP07g}tk*cC@B?=|hSeObjLSn&F@BCmA4DHwb-2 zn$QbEq^9U#0PR>YVyom%YlYzRTV2yN+WSkTBs&?aIhc^8AAYJCLGy*kK8`}@N9oi)>-BHH6qx) zJy!Sl5L+vT!dyzTSj^@7iI@D-k66~eGe6j81!b>Xqo1ir(C&~O)SM97OPw=~8A7SQYx)$Gu5putlW$3L5OjlF zIjrkQ^c2#nIZxEyR6F@~z3yBp&f1qPc;6T3Pl&I~)M zEXt+;kF=c;OL=@`*{Fb$)}%cX+bWXwp14SxSO5CThWL~r!!gqvbwXS9JnZKyq!eb0 zuP9S{2akMaSuO8b7UQw{31kIm8f05mnsAL9D;4Jk0G=ql4XTxR)^7)eN^6R8mzY=^ z2I1~c&b9E6=6wODh4GPQr7gr+P#1`s7XQH%B29f0r|OoH3)Y&uIfo>jB$jL6u??xM>kgU#&b&KP1%9N{?VyS|F*t5F@mHZ z{R;sjQNk&#+iXXYTn-hLa%78~=hRY)mn%~FM9+R_TiFGEF8TFw(2-2t9`nsld_KB3 z27MY&;i8ZmQ(cus9n(S&D#bD5ehfZ*?#R~1$6LXL^w=@>A>M80wP>-+Umgq2P%T2E zFTmNE2dPc;6k3!vc3d}?xBSS@+N25#5<_7bSb*(n$Zpi~(DE%_{>z7U8=AFj53n#Q zB87Nm|2#L&k^Z^RU1nHf5rk|PK2aoaWHjrDf@|LE{61rfIAv8*Qx&8C=Ig8h8P03jgS0M7rIzwPdm2iH%Ii^4|Ci^oDqbs-Y z>cx#!Zc5*?MeY05o|Rl6!#nwt-72!ABgne-r%)dT_31x0_nJjj9qND-$fldsWM78 zaqNo8Win02w^UE6sXq`%l@LH++!?5saD*y>!Za$%-u19dEK8WRmzt5k{Fjws+mw1H zvSPz{7a@R zbjWvb9AB(WlO8%Qj0H5)g*l?R`9I#e{N~rL*(+kpD6a3gPleuVTDh(D5k6_3eaalF znvEB(-~Mi}o3bU~W{F*g-HcyejLeuWX53^?pkRwXOG_AU*B5SLPuQ=W4Hpr*DG;9^ zFkmtDko3c)5yCCvB~KZlvEb5bu{zS@wMd&ze|I-&X0fPs{V78r`}d~ys!QaD_a8f? zEb$k%_+MAMfd+rD4Yrnba3;`_5^fl%p<=X~YFpT=AM|Azi)``T!fSxr%dZJXZV$-= zn-*5D*B~N7uf%bp*^l{S=CN3+##-CTfpLJ1I?gj` zW(;ior8i>!T+Of5pO+lUUa7^IpizG;`;4@MYApJ-yx=;Y+)_T5&N>uFVmJRq^-X3v zP{{=iZF=z2YHYQT$=EdKDn5r%-@7pYktSASp4GnN;&V&p5pQgy>3H}vdko51e8Fa- z_df0v>h?j;=tw&QKa>U8Y!1EC!I=uiA}U@`G`4QBo47Zw^I#zT>HFU@scwT?eu;%bvx zs(QuFEand@m&e}PJw8t z<(y6($^!+L+_?=lZ^K~nc5XW3psxPzHo_-N(?9(0MqM}K=D2nEJeaq5uCUzQ#(-en zWBfB?PvMf@LLio+;k=?@FVpHxdUH0$+?cq+>Dr%ij=$tT|CASyZDb)I*RDa!f;)VS zl>C&@HuyvWFL*Z28!c`^gLMr1NW03b&*5u^*LSRwf6rX&*1(=gi)gYt(WW zRoeTOKi*`=Vy2Qr)qFx_N5rhpdPAT1*RDpVhRQT>Dt4%E{xP_Kqpcf9bRN6zV=X8BK#e-KM&uGe#0FbxjKYz*z3T zw%W6BW7vK6*oA2`X{OJ6*7vItsm7~rpa<+%>m^;Kvm(4_Md(7nXY(z| zc}lIg-W-i}N!*?48`{&)Xtf<**5QK4vcc%MB$|dol^?-iL9{8p(8-%U=e+?PuiB!M z>$n(Q-Bb5u-l7LjhxVu3m+`*paWha^>e+n^Rcll(+d+qbxDpI8p&rK6Sz{_wr6t?~ zp__40>g<)x8V`<54#yuUlNuM2)*q3%^ zR`&DUrh2hQq>f+Gl>fAizGLELBa%CBc%Z`_NxcGqhnT(o1;}iSrb3z=t---vYekD2 z3AHcnLotfV30Vt25HF&aVAN+fB_;`Pl}dcD9_fbxQ*$)icdyi$P_O8> z)!e8hxt6D$bb~HDy2xKF*=BimOfyJf;l^-XhxQ7MCb`aOT91*YyFEb<^%ob7Z>#}iQC;iIud@3E^Dt5 zC+#T6kVH^X9L*@jAiLeHE=fc6fwXq1&EVKRsiD)Tb}4rRV>_?KA5U&PsGgmKt-Bdp zer{gPVSyWlH+d~vL^hpSB%Sy{`4ZJhKsgrp)uH$XZiIy_-Wtp#db{9H zkwvNc^(5#`e}Gs+%O)E&2{J?}W~JvH$rtNgQ6&zEN8g+rly>0HWR!>?wEtC+Wk}$W z*-C@e{PjLJERJcyWfSLWU3F)214?|CLf(p#ZNn6UA=8hmv0uHgC{c?8xjF8I-G31f zK_n{9()&ixWO_7yp2UWUbwX~K0aE?%g(t$uHv;4>KFNPw;w(*EId1( zC$hMq>vd#;!dd$(3@M$_(}%K?_^FTM8YSsd=qFvh-7>$ppszne9)iImw^~)edPubt z5cb8iW=s7U7KtDKYE*z>Z9|=dmLxj~`v>Yv*?T9O@dCEN98*pA*lwF+2p1bVkC-N{ zu|B{ukn_Fj?SF@svV!{qQ%LvR4Qs5=9IgzgrC0I|R-dq`H)jdTE`}7=+t;kBuV&LF zkJvttsE7|TH?bj^Dim+|r11Cw(S?hu0TVSB>B@L3HI#u{c{Y$WCM0B4nZ9fN)T5BP z;v}M^x$aUA5v8rwEt$ecuZhv=%v(%knvI?^tzue@2aY)1`w~P=Dlin;`+aZPwx(pZ z@Cc_cCts*Ih`N@u8@H5=g^m4mG*zJ1WqhJt^>FRrE9ub;X&kqKe?TP42PS2TV#3xX zhk+`G%L2g|`OH>=r(G3wkI`G0^zq_iVw##Tsl%o%It)4Ry4eMa*Z&L@xTgY3dFM-hyf4@?(WI zR6H+E@#6im`ILF7za`rLZrZQo&c>n?GM9O#xxTEYv!h{oVn{?U9|HGN7H}m6^*%aJ z?;P&94P+nV;KQzr?qMSG`nS)~qZZ!yzbpx1>aC)3juL)HK`audPvcloi<dRcgeare16WDZ5)RmuhQz-S>*fnTS zE|u>Qy$itdBm5yO$BCY#&x4ghCx2hxub7Br&I*z&x z$(QfstA0~!&BbK%qzkdHUq47musL$NK-cNeJ zw33}cHiWb<8&`v0_-W!Cg21n8Q&2Q5St?L)$3gep@rB3o1EdL|n7rLm-F)a1 z!>q!q44;(8GNFy0Zl;bgtB-SpW}-3fh^vX5U6Ppf^&47lTal$xAZ|4jvA+|0g(R5g zB?%RYAjwb^d6_;xwYr1;dp^-pa(s|=25XM`()m7=Uc<@aUmsmv8(%AtVBx(a$a0r6Uk3+YWWe}YlWlsM6kLhE#pzF#n5MJ0V@liaonwrui5jz?O23ayhXb+kzN{K_Sy-5Y500dZ-pbX{t{UWw~Kd9>_+V|8;#Ken?$h> zPJ)0XKIC&2iP2 zK%hBv39CKoeUt*FRFVztA$Bf1sbTiAcXjvu{kS<(NHbXQeD3jFcB$)A{u}7se9vBe z+AXyUJq!)@IHwfR*?oxsjyo;4@4)lI@G#y_#-Jq0Co|BRFKJ`x5`9osv{_uWt3{EVP4IR5OWMkm$*Xd!)%APt8)Fx{UzV>(uBMxc zm`h#0i=VGudLZYKMkW8u*Jcanrr7R#jxQpICg~Yp^{lO@x3={!Skg9f^x4`A>yJoG zIkY?T199eb!iGy??=I;*vGe&WBOm3e8_RYqc+ox^`)Z$`vOwT|g^nO<(zR+Vl%OWU zVCuGkox-LCC$%aP&EbVKMc&cWL(g2|>%{s=0Mct-Z4{^d#*>ugY z&)yl{ht<$=OO<&|oT#tgVsk*aiFqaXi>-q}lIs0?j%Ke+TfQh!K$2hQc)VsO_7UY} zRoo$ezw6-|lMPlGgKN*d-kdTMxk7GsWb!HE)Rb*Z@_*e3^hS=w-B-Ma+N4jGGZHzLChwp~n2oBlG^a4oYT!KUa7}rKe^OL3}3wUX2JQ`cV8^DIQ z&K{%C$IU_ZNaL;9D#`l84Kp4#@xF9Ddc07iVaak~pBfCO<y_(vW+Q^EH=&5 zi#4s$C2Nm49$BcHLqGB={{5yKN!j(83S>r$my}3a{4M+q5^NL8)sE}GR}D@^Ow+tH zSya-mJQC)1smk2AQEoBits#h)&1$zAeGTR~-hrtqqg7v1^S9;9fzy`Fe-(M*ZSGNoMK&>^BM|$0L`YO*C@vd z<|2lk=3KCSJX{{1elLY)Kl74c^p8+4FYmj*bz z5;38L{%@|Mz#}`cVF!6Ro?RK%j2wx8ReKn+x!#mTEgI}Rn61O zd!A8$f^U~sb1roDt=L%W^Sn(*NhzlB=Su;2GT0cGUMs#`rR8{?fG?YAO=LcypeZZI zsvwJFlNtEA`HJ6X9CT^vE5>)WLJnT#-24?Ilt6Vy zX!@^6y_^*g7gXEA!m`{ts(G!Vs%#DeQL$OTFucZb~0mb(=!$y z0*82F5{osKjIJx_D!Q7?jr}t=^>|jJUFlbg^ts2^8gQT8H8C+cZk=Ht3#PS%s+L%L zqrs4Syqa=Z`=~m6d9p^+>+^>_ZQ}U#KMs0YJA!O~>>jtOj3~Qk^>arIG+3^D^7yW1 zu+^tfAN%O1GO02X(ol*Z%+!gi@@JC!xVW? zT7I9E)hTi%3Acqi=;jBpK5EzRnN~&hE?F%XYladcOzXMnN5ZL1_Dvw`1?D%H7GsoY zJnFS8({J)8jJizb32c=^FlYTq;%qDW4bZDd2czL4$4B1(IoCeAPa886{t{pXDT<*Wl@aRy}V(wM0Kj`bjnM(f|F5E;gbf1j?#Nn8K> z?;Ff9|HFxlsh3dN!+->_9=LUHv9S%chF&W-?jmAhWQ=f9zxx2UWdP>uKLD=E$LeYg zV6z^DaZS$J=^r*;jWb0+82$`KMU{YV9MHP*fnVAniX!BRqhqP}`N<3$8SXN0_YOvo z^VSUK=H(5+@Jt~P;zrU+=py8nRQMfN9^gDMg?0=;jEJ5;IC1`hifInCZEF>}4h|(h z+~)8`Mn){)8H&IcOiI*)gf-uu!zDpKNe(cqbS~~#0PdCuR1RSfam?lvF7pq-j;Y)3j?|I?>WWrl6oz$s@ARH-7n1Ck#3TDrQ02reU>;0;hG0s$yvO0U4r znlDNE`d@V2W-(gUTqtAj7uD5?&H+;h?b3j+_X+R=+d`d?DW6*Ic6&6f9Wn{3vkbgM zy-EC5s_N5+hi-E*QZ(d#fBZUi0DvU3VoHZnuiP>|COw^Iw7vB6=Lnc)@4HWZo_dQF5!YF9O60f`$zSz)l>~p%J7unj{ zT3jItoJI)iD%vNUi0jNP+!2}bsgcegjYF#wr6b?J=L6b>1t2Vro}V2^6zJA#0zk!N zmBV|YYuBViIbC<%8#ju!Xgu8?()Czl3U0}C{qaId&*!w9og`fRWR({fOPZD>bGhDQ8@~vb)R5x6_4a27T&-{>=_1My=kBS6@k zRc*jKKfXDEPyz1&~mz#%u20&`*Wc3Su;x z_-vB7$JO}vGhLT@m3`*yp1b4l9**KK0 z3#zg#_gCJ$c@qJ%-2<-I*qTCNKWa4|8#5sZM7*dRj;%!UKd{8Gk7z<4U~RRc8q z=_7ad8iUe_2!5;4fMpUA5(=1Kd!((Ms;HvEzq)~HegI^hl;C0Ud5ULj!5sGfq*2~! z=^^yHkZLaO97Wi9&Qa=!w>(fHC6h}M_4d_$v2eYuqhkezxN!=2ljSuVJgXTkU{;yo zI>pr(WRC-wufa->X(?yTA9|SrN6j)1n1*MR0d3$l?skg9Ri}XHIYe3Ay}^yEh!%4K zPmHyN+X-lPchwgG%_C;QdKC5)RfRXK@$F=J?J1sHVxXd8vyf$@knr|YpNM6WGZv`y zUbV8d1&*8gZ0PY?fyM!xk)^{IK>|_Vm^nBe;|EJ(VPP5USR~6sR|->?@oftb@mNid z1yyC`KLB_!^7m**(zzp=wn&bvURgZjDJ%rl{sBta6lmo#x2<2^d+F`~wG*G7UPycT zM=H}wPI|OZDaPS@UTUY>?p$_x4bdX8lSKb{_(~DGa`ttJ- zM(z>87?fcN94)V0>AR-=MxL4ac_*Da?2`D5j3QvA#J9@7tJiS&3uhWsuR92gyXQ^+ z;mP)#rx}Gn3R}Dfjch}(g{vxzhI2oC0#con*Ku+0jiQ7fAyN)ab&QGK*#KQE3mC?k zHCh$cF*6%ubiq`ECK797&XYoqDDy@>>75^s9iJUE79mmz?GIRZ4?O`h)d}7~lP{iT zJQFE=AIU)S`t|FNH8q+b?DrEH$NeyAZsv_pSa!z@W3*EcX`v}Rd-h(R`(u87zHK)z zFRzNKsz8q->dQrFI~xIR+E2(jP1-e{-e1Z4^vSq%;&p23cas!ooRU#;cHXlO#M%vq zYkNqllVw#{{h@=URR;9PGf7FwqOpDOo9M!bLi!4IY8hoPsqB3b=-+7o;LN-o-u7;# zu$FUJuH@4v+1MJJIlv0Kozkn_!gI@O!(%26whXW;7s8OJf|Aw7Hc)B??iH^UMD7S< zlw?&_P?3`6z>O(rMP+evkG>kGKxdB2o!T=k6}CPkxhf}q{D*-WP+~=Zc-tA)--UIf zU|R0on$d7IoYlBQ9a*G(&7%6X=QdL87PM#e&>vNxUUHu$-R&LolhluEQ(90M8#ay&RArQge8TPKVnge@|jee=jAwmT3 zW=Cu)r#}E@lqzV!=i_E^h!DX8C`QmO(qPBeS0Fc(usfQ7=I0Au!hOf?hoDESK#!on zS@{i`(F=5HRdtI5^Q~b-8}W~Nl6j?Wirf$(5Zis#uvcKW)QrP545t`n%4K35E<~`m zIZc4HxCHD1^V4+E`I1Ygh&}3D*;@wJ;G2q?&UN?t&1Rg~EO<2cftM>D8ylN(%{$A} z#>Qsc8}U_~S5ynv$edwS=k0~&pI0}>YQ{Q&e*J1&89aHgyEJ4Xkm6AnBnJ;}*upL) zC(T7Ov7Z@Wg-q4c8pLy)^3ftpp*QfkNSY>)mM8vDg~pwj{zaVf1?lBWMtGqGsG4GiX~&daIkzA#A~0}N0O8O<7}Tm*s5#LP_2(q_)PQNlW%UZw`X zF#w_l(GNVy^2oX9qC4ILdRlONJ^a_Ud;M3S?PX+QX0`+uO|#LvUKc3;6zV~cfzMiw zC_|6?xJ=?>Zfy>E1K>p&IOB_M-mTW=6azar3B%qWbss;DJUi@=_-ZW>EZ&XsKDoqtZ5Qf7(?KI)4vNIBLZn5`}pw) z;J?3)jlDf+aLMbqjmtX|xdZ?q88`rY&ba`shl5Zm;mX|$eT#gCrcCEfy5K)x`9EOe z;Ov1phmF2mKBha@9-3r-etNJH##T50Jk0Mw2Z@z=!~Fjw=+T8ecV{5Bv;v2B1gQ2t zfk>)?MMx2}8wCW1N8Hcf<^iPBUBm^V!Vm5Ppx4K#LW+pP295>+zkt9pT*Vj$srC&S zcW{rK0q>VpTwIq_$0-JY>7g-{YYCj7!Bk<#GC+s5^;o^cke#0|55`T^$ml)3$e$Y= zx^+Uk%B|o$NSc;vz%+lLX@5G0ObsBQI011P8!zuOXrIkob*TjfAOkk!F+iy3CQAJE zn^guai%53tYp@XD(kTGB<)A|cHB0Uut@X)jX*A;!;KY7|Ezb&?9Xx0~z|sE(6Xd&K z4G}AcxRxMe423umtd}pZ!WVf!WawCTWuH6|0HS&R!A#Usmu4)Mfb!YCBA~@)$v*>@ zxQNu$)M61+0Mh^mL+TGTO3cY#k&lh^ZSWqGIZe)C3q%A21QZLb+Y3d2kL8U{k8!-% zgh|Wy>lbiv6@ZO}-T9T%xu||$v&Hy!;7A(OpSBQdcz6EpOuEOqFas}dX}1}1O0TIX zgbD`E^}0nRPD_KF&ZL~$=EK9o5d(KnG;My=Rgd*g6Tmi9M|9Ryu{yhfGqkctJ{3R8 z>TY1j1uuJdoPu$x(ryfHzi4~=`Qs$+dx*;j?4^%H*x%03fHP(@UYyyn4MB^{NuV5hlOI*%3V}3BVIY8y1JH}@F6@p z9~pz5#zei*3Y#fqJ-s5CIOe5*YfrA=m9JStZ=^fyUy$4~aOqdzpWh17Khica$+m?k zfTp_<(SR@}jHh(~9hEB(C4&tu2i${qK)T4W`}0*FJ*)%9|BgnJL}~s7raYmoB>z4c z5`}X7`_#%v^#416ePD?5KOfMS=M$_E#4wp-@NlWO#DDjukWQY#Es*)&gpl~18HB#@ z8jyhRTo@|QLq&Rfr{0Z#^>)8oMMZ^>wzR5BJw84@HVZ=AkV;Gx6f)V1dog^VsHmvi zmCIIGbzkCSq961${SOxaWd_>=y49g|3SxR({)^i&O6^`yvbD8Uo{FLrd=hJ1zFk6y zf)XL#gGBq>Utt5#y-sq6_W%2iy1gK*cTY|scyR)Ww#x9@{|3RC^Kx#^GCU!gh*xmo zK^W)mXmBM9nwpyT9Zf(Fd@3nXjD1I;Ilc~|)HgzC*-A)&avu^61JB_QaHYSSi@Ia0 ze-D0!i{_3b1R|c7n)R#RyXVKa6v5l403W~#l>u_b$Acqq2=lVDACBp`rj5d`iKG-< zhAlM!Ml2s3V)abqD6IcEii3kgW@boeXsBX;;)tTBXB|X>NJ~HD52Ry(B|Q@%gD1nq zcRPorZt=TFPPuuNcJ5!9r6cktl{3Yi_S>+VJXs{q&-ukkqC_s$T*qJL@UTJwAK(EDrXTva&MqUW0Aznt+byR@>LkP6e=CqBPM!EuVE~ zqwX09KV{upI<~dI^gGQaUoyHMiAie4CYpC8xt3>M3tTUwj5W3~&&3(>6S% zAT(40xDL2~c>T{=r~jkSB0u@Rss;Y99B|(pu=SN~Z3|(fq#QDP zG5BV!sqV|UnLDpiQu1IGi?=hypS~r4w*P{f=~aL9JB5Mf8T)dc7)s1|oKNDu z6B5syu4cf`Vt~IGB|>pD24A0Dv%)$V!HWs0kO98~fp2+0n91_+;X_E{k}YvR($>&O zzEDTtN9B8d>>tu!I|pMn4F19`8R!nLcLLb0XgB$ik45_^4-B84=}Zo#LHJ(-=@up# zM1&D=_=&ZB!YFJwDL+`GORz<5-MSU_M@3s(bkG2er+04ak6Pogiuuu}yu#QnV~VB_ z?%_g62o|TC(0U)vN(U1w%D?A1Q*RNbn(n)^A-XU>FC7aA{+VF+?E@G<)fo|n7SI)Y z9zDNKOuTzo1HMPCwNZ)sqZ>;4t4L-*Swn+WMpjySpb`*%38St^7Sz;;tkME-lWUe_ z*v${$$b9l=siJH_orr+*AlVIe)fcygtSJP9R=riBmF}lYEkqZ!97x(>FGu1uxBGaZ zJCVRy{ZBgtn~-y2l2K)A#1|u9-r*xV**NrYhD1a6l2eqMJjx-mDBvE{K-Pgt1|&zb z`gwN4R-|2oy)uXc`|P#f+_%`-hlLkYuO0i&tlybAifVx2G}qc*O1rvDSZmD;pR;Ok z|4k~V5DkO`vgZdr=Q&^&Xrf7bDe#76A5m3{zaYphH(6eo_T}0wWJj;O4CW z+>;vQHDLbE87%i7NF%98O1?yFB@SoRUBEDU(z=)fdiSa5R)A{0dM2c~@<8iB82Pog zcLdPo^6b2KQVgyUsHv%0K|UpO0YH%u!;L?+2+6HIFu=hHuB+pOqj%Q9fZ+F@4xV{4 zs3AWRs4ks<78nmBh3R65_lZ~O$z z7F{cQw*a%s$@>g4pO)YpAA|P~xi-!tPoQ;XvREF@MKZI_puX9Jg{!B8AO@6l7#$n4 zf-tfMf}EDKlpk>oea~Ds5Xyyb8{P-C1K%A$6%IZ1IevyD83;ETxgf!glk(nnX)t?w zG<@FkfaSyI&$p+Y$8OENqz!>Up^`qTaT*Zm3Vi;~(H?_erL3q(S36w@X3hdmCUX9F z$0N1T{KiYNH{n++9AJTD2?s02J!YIFE6jeWAG{3 z!8%N3dv~ZA8oq;A{weNqg-flNvKg==w@1Tu+E(g8KCR^Wf^5r@lZ%#jFaOvBCvOT$ z%1AVPp|@j6Oyn0~atZ{8#h;OX>h?D4Pp4MxSlkJWze5#Od_b8CEKFa?1Z}k|OVYt_ zZU;`CmQh47-T!8s?dBNlagfM;v|aRaJ^;jMJ|L7BV(Nncd9d^A*JYO!NM;EB61uaZ z?G5QJGDt#nmw-**f-rZt+AE93?WbSy9AHspPPxaVZZsIe=s{Xcax(cyzc=^fy16Am zeOiZ~cC`C*n9({o`oTmF8pJ@EN9zA!?LEWcT%)LAiS#HZ5+V|$C_zYw5`+|j!RRG= zi#A&HPKppA#AwlbH%1+uB!cLDv>=HRj1pyt{_b(kTfXo5etbV(SALx9T+BS>zV}{x zt+n^-}RIE{)uC>plE`(!VPEsEgAPM>Fk=KG z2I(vIl26CtY^z#^pu|`KjBy#nnbR1d82P54+jaMDjxtEO8Mi&-y9D@x^nWZM3t!Zu zafG6R#FMT-e5EICmoNzDoF&>ADTqq-U0tNzSGcwcNc$3$Xo3KZtVn%BO)&jC7@iMBF!#sCX0D9!(H~P`j(q_5Ar7Ru&IP_ao{*NDu(g z23vT~ww9ZO5RkM(P<5wV#Ckp^r7P0*`#A&czmCe7GkX}Gtw9i8t*(~ z_2A{haMr`dyK{=ZXR4zi3|<1%QfvF*!e(Mf)NKQ% z4Sm<8@59S$0QS2t(&#k&fC=D~I}ZoZNSTW6A8S2T6XqLwf)!3yI1pf;gc3Og{xqu^%wCguE9BJA->;T z6{xPjO4pmGHZ>*y@TC~tgg&T-R!9R|JP+2!_kV;xBOO;G#?-aEx%t!uMymQPW|?5$ zlLpuunL?3=8p3gDQZSf}r;-|Fnq{;m(wZJ8`3W2qCZ}cf5C%f=^qK{$+dc7iG_v5ug(C79FhdP z3=}9SV6Q{y^xqg5{o2s5_pAk2BUbAz(puCJhf>$W>+M5Dp2{gSQ=2?nIDmcMxmRa- zx`E)$hPTOa`?exfYNS%3VcsQvBHJ-OA&HJOU4G-9kZh?)`67e{KW^z>!R@rv)a&cs zC={x`oUrJ%IRo_{r4G}q@cYcgkj#zlKKCo_gdW4o?E zoqPmWQd(MCh;S2Cl>IIoX6oeO=lUD5>RAGt-PTHh3OcK^P*%ch=cnepAKd!XYuWq8)H0bEd7q{rzUSL&UdnXXAD>^roaE%sA z2CpxH-31NvdcWYE>l9t;%$)hJ)Ke#5+ZeIK0L#grgkr9(gRCV3?Br>k==k`2U@(Di z*F>NvmZ^0@f`SMtS!-1r)Pdx~xRP<>hzod$hYU}Pf05)eJ=ZbNAA4-vLFxs?CK+;y z3nICUV7sT}<3@Gts8QQkf>m4xetFM%7wc;dc)@juneOaGo_>-R17i>%A3BY4Jenx&KI*DUBCMTD7hu)(N3`xfcjPaaDoPvj_tBD?*|*{5#Wn6^r~IvNQFF1 zWKX}_c~1fk(4x*;1H5AavI|s`;Pjmx+BZabr&{sf*mi7`|09awc?5 zLef=JQtBqOO*cmZlrM>dK|*mG521J;&}5~8$XvR3`Gcj3$uCg`9&;Im)1*6sv`5LEm6?eGU5b3% zg>@nCdZz((%{K#<2Uin5ex%3ML3^(C7UVEhJ-x9HjUG_>1VCtV zC9$0IG^(Wlk{Y5!J2h2wbn?o_J@T4uLP5$XoF*MdX6+7Sz}S8fgB zr0<=iT#u(JU2Kx|q@O1!|Ne=rCCbiWUjl$MnYSA|1l(;THXrtvr*|2<;zEj1MHuB2x|3d4Hh z6iiT2Rl!Jv?Xtaty@>LaWpboEsv9Jx|H51PpC{t2Skq^7D>}_@V z9!f{h`TYiYY-z>q@xjk1?Sr?L2e;iGKYm5Z+ng}zw_8HHhpN z1>x6$BaXAHPT(F8_MH2IxAU$xKxf(d5lC$;a;^j`=fCJCLPrU%e=-hg`m_0N}9yILZ?aP`67 zoZ_CidHIBo=MaGLv2TEi0cH(tU$(8dW?fB+q-~WhA_*Xb!WSa_KJflrM+01Ii_wTE3KaHg^ePec%EOd5?r z<05*9ae5o}P#F2!h;|eDmGpo6uX$0c>jZD?3w&@BNi2a$@RMNi5CC;NEG*3EqkLxJ zA{?x;uV2pGI&l&_BapfL2Hc^dzb;Y_LEQUVk-)JkIcwtYG7{?AQ`6ME+!lRX2y*`U zjYk914wp#!;|icuBE3ZEXo#9|UVeW2-@c^%XCwkeNh!+bB)+R72h6Hp$mtdspGi1ksjSJEm`6RqW>IC>z8(q+eq-<<3MH4s@4GoJu;D8U&|K3QQ5c%HL?!0FGnMiha_RB~l zvNlNx(8j44inIXf_G>8MEXNd1j738M%Cq*S)XLIQ8Ms79^WSY8*~>h1|+iKxAvrRb8--rl$5e^a^Wq{&_?v|AF4q6r{md;alQ{eObQ7I zz^5x%T3QxAy@l4E@N5>20b5S>{j%b$dl~p^Pe4#rGY6_9#e0*zv#ynklk*FkP>9pP zo-&wh0PDT+*@SAT$J91eCgeO~Y^ih3D1b2&3f~8}>N*#(di*x!lSR@xp0gdm2Gm-D zAq__hYZG)aq>Xq(vTbX^C^C&W#BGifBm(7QhM`W|zv zkR|pEvh{&n2WH(r?2KcmeFLS?H%QFraac5kr-NRK4LroE>i+%*1N`yb^*sO$PgI~( zq6l1Su01jv4gS78km3h`IoAQ$o{^Q62XEhcC}DIF50XI+=wipOa&cMtr2&jFp_MrI@<=uYGXOa!gH(@bSG!<zshGz#>D|5dajn7SPUY802R9(^eUc89!0_Y!x_rUjfLK!wL_&Q?=gJm{aq)&&?}7&yHgvURB<1|GzW)62hx;^Ziv8}iB zOTDt^hYTb_8dws2m*zdVEeCxvs%(b}fl=+o_>9In6^t0k&nde4I zi_zjw*cHVs(i=X}|HR(Z9LCyGu$J}K9hhY3dAL7K2u{*vHPC92@dNUHJ8G(1%F3V>a0n7 z$>>3rP!PUFNlEK8hsZsv%#e;zO%2D*)2L)2%H=x7ZE>TCz5YL+t5MtQCR=T7&s-`a zDh?hwFqKHMon1Uj_M#{FE8U$Ye(!DjA-~m?wT(-ahQ{BDFV3r}F)BHmC|RA|MOpJc zJ@9v6%EAYHXpDoYhon+QRS(T#359r?p+Ulf~EDM!|i_Bj^=MjNUOiH zrn;Db7J96FjqZ~FIec2>QW5Ja*$9h-IV1o}A5ZrgB$)%ADhRMI@r@8~XV7e6&i6 zBRzUp&)^61R>K~Av#>>P5-4GiIy1-eZN;`{zw}9xBLo!s8?U&zN1O*jr^eQuE%aub z+f3u`xgSe=$JnNzpkfoA@~$d*eE556UwSvEVhP&G$exi$VCn@K2XK8O%7Ms3c_jN7#z&ir}mq>10~&j^vu1XDf^qY3iIL8s4tNva$E zzEP?PYW8-w$=SE|pJ&Wy4eVnW4mN!(^qSNM?;f*%p)f3@U+-DMTe>^Ib8t%P?z>A; zvpT-+G4Fi$)4Cnn@Es}3-i=Q<_qRfyArv(5l;u=bZ|URsXucb@5$k4{P)GG*ZqW_1 zAy4aN$-8(CHE6U4b{1|+z3_x=kVYHGebxUstd!kwxq-hc0V&Rx>MN8v%oBuODZi(5 z?vNTPjtnp+=FIhldfqyVAI$L?uqrk)qcoAEZ>!60r`G9oPJb_d^{rOOn}9boI#P}$ zN1d6p(7I?AUw6x=dOG7@jY6T0Tc?Kakvbk1tF{i`v)*!`t@%;DwZ@JMvGemeDb1fbXXAh zcwN)obyUo+$$-1}zg8?Js?=)ysZ>bxN^WA!^v6dF49t#%CZ5XM!L*#Dc6EDezjU`Q zEjBADqNn#dBG-HAQbwY$Jz=wJ|E^lsf&shA&3FMm_eUSfHM zOb7MP65rCMyjo7YJl|-VR20p&zxDjdLZIb?2q;j*Cebsae1BP zp5xVL&3StF0(@ML-FT9pyY+iQ&83+ebCxZfW@A|Kv%miswJ~oD|I)@zgwri*HoyX< zsicVait?w}yQAunxdue-Xb-l_V(&fp9^6(iXQsz$4tkaq@h88}cv-l5I)^Ty{?4Nb zvFl;!ba#$sRur$l9&Wa3>>Oyta;f_0X+7PNG|%)AvCH9!ue9*HE}1VUzNV|CqN46| zFt)nPsnYj5$-mXQ&+O);`QW#rKZWOl|ABY=h6%DSYTqHjtMQ4qX6eUBr*HKLJ1)=khA;F+^!}jnqOs{u*}}E#&$G1%zH~1G0P}x%V%ohm0aKBFq?rG28DKDv zpcKm@nN5LHxWNe8FZ_J^NbvY@cGm*ySJ<)@kV86CM?_f zrKH8yx?ke&X1B=21>D3OhV+WHuUE5^hb3c-D%Q&}rb~=^qUj{d2I=SjmQkohr1$W7 zry&a~wZ-Shj*gDk`rx}DGYNNXs48fn z_B7-dYFq2|^%uMfdpb)wX~+X~wL`rX=xmKZa91B8kPZ|?6Q5`PVz$;WMi zaY!POxDEXXS>WSBlE^et>7fMX?MkW#yU%Iq=vtrgwb+(h{q9Vtg7a{IPRlUZUyW8C zfY16gbkTZ6N~6B>JZ@pd&8dYoIvWTjjwSvv`;O&lCl*RGQ1z3;mB&m#gqs6Or3Z}P znv35nRpI_~p{M{wjRgVYV0DK6`2zB-9`GonT1#D9J9lQr45M4AVq2~QWK|Yu>1qGo zT90pN? zKx%i#RCxL=dg+S`~yXP#&| zlGj;Wdn*HaS~#SQyBhw?wW@Ee-vCQ*@3cYEa{K1Sbzq6bmvzq)cuPe1a`NJk3k0l(U0I2nGrY zopReT5roQ}f0UAw6#FfK`g?qPA;wGGK$5ukZh_opXWv^q3CI;}^Vt*EgN~cX`5}v% zakJ5gm$t1pED4Vu3`(wZ&r;u{Kh>+h@%*&|^Ls_5FFkVorK^$R<%&C7#4}CoH;3jb zplKpj%+ZIy>rt7cVN00s(ywEam^Ro_+aFl+Ze*2hInON{^Gtb_1&%J!iu`DFeON&1 z*sJ~Sv-Gm10u<5vP9 zz^&6Sj=?W&{S(|2Zf_e=$KF6a_bn_}e)F2X$ZDxYs$B)Toz{@L(mM#fs-tZl-+x@{Hl zLot-aX^SCa6?>HP0OiUz7<;plU8W!qowsQ9I9A4`G5KLPb|y*+fo{Cw=v#2jzZ-u? zcY6X)lQ!ZjUp5W`+!OP7d;d-m!mUF+&@?a*!=7AMSJ&p^Q*Qv<(c#_|(*1+hkblTb zg2j>GG?x+03D2l&QS|JwqkJr^B3DxMErv?qP{OzKC&|NDlSVct_L*&<F%$M z6CT!!E#H^E?W^{x>R2yR{ycT;*}#&p@pVgrpszD2PxOz2>y7?)Nu=j&B1&mFtz_or zJ=0ii!TfOFQL~uyjC{iJy{}$Jy0l&@F7HSi2&eO$*zB2;#?{SVwjQam&+Fw^M^^t* zOJG()`aFD38`goDwu|7bxAiV75tf&wBF>|{S<`z;tV*qxdwvvF%Lp3E^uUwwufjCS z6TGLwq@75HcTg<)NR&U1&=j=&fwwJf&KkTbd=xj-*wIyDEp2UtqL5+Zu#AAjJGF3v z8wPt5_hf;<(b69t68K7H)2>XL7Wxn;c{_IXDx@#B<18$>mY=et_rlX3`o?gZ#bD@0 z+L^4om(x~UhBrhXjx3V_dMg3~1Z8Dq>RP>XUxTIN&TwSz@v|z``J4FT>Iuu511|Ns zYkRrlOPVI8g$JTh{k?|S3v%_Xb>9=dmIxzd6Rg!`cjEQJ^JV2tItzN5jB%~-4;5(p zl&af+wAxdwt$4#8Rg!`lI67v5y(G0o;B6A1>}A!m*DxY8lcg!M(d^mkuFc_cPOaaMh*1$`wbvqhB4)s zDA;fguZ-011pNltBtJ7aiF-+%x_*Ag66~8Ur7VJv7*g2K#XtS6YhOxoeRq&$3+>Uv zX3;kD{KMuQk;39W=?#PdJmY0`je6C0;jN_#&EAf!sse^W^ZlE4z{9Om!9%8RPR{&9YNH6 zNkF+BFbaq2r^3k^Qaqo;3uJD(QYBPRD?o=r23CqgGWn*+-9*O|(#Nm6W?VH+{uCY*@bdEZH3gDQDw0 zYr#$7a~926Rgf>{fYj?-oo*`weFAK$q<%_h8we$J90b^0M37R}*MgCQUAc@lETQt% z1a>^ak8B)UMYO|2*o*`#i{9#)lj+^nI=QZ=jFGsQXT`;e z7$}S6%pFVL+F?qL_g+M^G~DS|W2B%oxHU1a-s7)5{7Q_yz3RM07^l#VdZqj3G2+a< zmV|22o=Co)>#harbeCIr$UgnJJaA|@H@tfPw)jQC-9k;D`kKplE~EN=)=;UEM1LL} zv<=G2m)+zYNL|?(E^}$n^hp1~)_A$a;Urk&y>FvyugMLF?xNm3f3=;gh^hU8TUKz1 zxrO$u$tZKx)cL~Y{z_d#l=NMn4uRpPkLm{#>gNXRhH>ulEV%2Js&1CCenIP;H#*I6 zT;%Wfg>J!)#AMVe?D8HFzal5c*Ioi)Vg+NTWCTRXbB8Y}?N?(0rNR-i4CcxXJ1oR- z?ehjWNk=C;2C_ow!=~{Uyj)KWE^6)VZ!En#5=No7z)V- zE%tW6tT+BmII+CEUdd-s2awv_Mjlf{y+{!;Fn9}7Ta7xid!}@~wm!rQ>CY*+tzJ~r zaQ+eoZRKUvRWNq?cF->x`qooGh5z>*bkRC7gWvOerw55zgYN4zF_V)4*K)<=%GX>g z(<1^k=Dy)YKEFt*(!(^+w+RYacI;f9{xfq^A@Cd{*K9P(<(OKD$tDX?g;1lHB3wP< zf0vCVeBtPeq8Epz>L&h8jx0GeX^VJwap$RbrbXZM>8vpdvF_>_+|@G+LM-X#eXrC& zity`~bbiEeZ(SA`7nT_3^Mub6-6g#qRcF6&7t75Wy*G?Ai^bLH5eR#u@P5&l^0Q>d zRR7+D`;w|c^x8+()tbNY^AkR*+@iQP>+&{1)2fA%nQm392zwE9Y1aZya!8WH_45*9 zFHY>yz=B0We4VjX39f)!`PBnGwkLS9!@kA)1DC4uz zG#kPp&!fyh<-I%|hh@B0=Zb$Xn|q{4&j-&}>MK0OdSu<_|79?`$+K=C*323I(N=(< z)q5{!m8v)Z?@rJT*UQjhfW)RD<&2(}qqy|)TZri~7DXea#K$>*)65VZ=ybmeCEwlY zgqw~J(AUfL{SMWfc^2JH2k(UJaFvqLlL08vDzRyewduQ`A%i~ZBjMbLQ8djTp3_7= zB5ZO~o>TbFnv)|kG{UuT7SY;Y@Y|bDhikgC?Aw^&BX0+N!shzY(ZZ~M-v`<2c4L7z zY(aMB^!~BAuSq+lL!q7%Cy?h*tyvda@s>T8dOKr&_eJg+Il3l=xMHiSliJ3)c`OLM zmJbm*j5TCjkF1I9-}}Bp0oFAdRc=!HFlUB!j6h?DKV)@d=M#L?m;dB=NC(Zo(@rX; z&zaGd=qMA9EZAHWFL>hc-fDTw)Dl@St#u)(J^a#JLrRI?XMDT;z|gw{8b)F#}4d?3B_cZi-^M(>+GSi0i~&b-oaV#QVt4 zV-57KI3EnxY02GZQV3N3sobLL*?Lx03L49;W#1C4BE{043`o_Pbta^yv&<|Xy;Je; zm3?CR0<=e%ZP<;m)Oc@K>}EOr>V@N9JX{7A*7GvNSFJUhTjtO9i^ub7#>q2fD6Voi zry`eht+KPC#R7i@lch@k+pV_oTq6#V6ONHhsM%4J1QerdMr@YN~L;wtDOEdyh~+@_oIsK^AQEUu&J-N0=bM5*P8oT6N>T zjzw)2J`MX|qTm@)%~2~Jb#{-mLW-`_57@_AQ3?!ht5x}IK9`bk-~OVVjc_cE5Nu(Z z|2f@W{LR{EpNFjazezFcaczseFQq${i^m5qP*6U~=l)a9R&(Yk%JQw(y)=Xw>)*R- zRczV40>~5+(uy=W&04i^NnD*_l;3efja4|N{w%3W{BXPt#Z%o^T629JvPn!AwJ$Ps z4qfX}*P;KA^$q(18=XMBIvakN0&jF1*(3_aT15yCXGNTLscc?OtPme>+|~Q^l=STG zOug#pShanc6@}4J+iVTu6Ahobj|$V3s|P_P#@^JZRJyKYt4*VrJ}I6Un-DCH$GbnLIiw*n7q}hXGo2)^A$;hT^@_O z_C7K7MQmnCrCVjP7TxoQ5_~Vk|NCj!iL5LddoE=Yd|L8WT%UM%Oq$8lWrd8lyc$X|*mS z-BT-v9=s80^C!nz;;-8`z(k`;P53PSs-|+bx?jIy3Yq9Jq^0XG2~_82b?io-?QlZ* zH}`gQccCOSV9W7TNwc2)Gpt3CYIi~o$DnAE@YDmT3M}f@n%}g6CC48HF zT#nd3Th$C)uSxKv-s2tlnNmsD_Lp2=DC&0_08mQq}K1vRC;4{9MDVg$bVYbSh;t4a$oYbwVvzj)_4->z< zKn3mQj?yX>`Z6P{EOH}aIlTcQx_)VUhQ1Or)2$@sS*18Il2W@7bIX-a(c+l@S;#7% zKK!v8yP~|eeNb?Q6$f7D9Ps5Tgb?JO|^Zll9lA2L$ ztfri!u`H^H*O^@(JC&r#$eR8s8BR~X6@)In#ZZ5+L=la3=SJVXqwqe1&i&od zT&~mKPOaC}C(`??88E1MTL!&*U}YexzlB2I9nFfUsp$SnTw0+MF1f|0Gxzg2g&>5m z7uSqR-EQPE=dbzIxmN0W{QVhF_G|KBL%12gQB~}-SYMhWm4Ou4HWVglY5K^`W~%7S<%#-xK8D;!g2?((L4tuimy1$HS^lRf`Uxeg zKZC4xx}pe^0c5q)tku?Y+_{3Q0*>PsDs|WY98G;f+J7waxNkHPGwFY*op_@2ntui` zs(TVl1!FD*&kX-S$DT)Sr#l3R=X|HZ)zt)*_i=1uKP|bN#_QXdZ;$)hv+i`MK++XqJSD_>9N7@E7 z1X{($v!-AZIpkx`<9|P$YR7$hOnp09@o<5C5dr7q8_^xT3HScg?2xsDIqBJTjsOcs z_m|?MkiHYxXx;N74Ky=<`Ewpm+nUN@@^Fi+tMjC~ZEn?@=S_8+JseL?b|>?xHQV&U zv__}?PqCU^{WNFvcIrbyIKx?;db@lIDd#IC`MF$tYMTAmEjRNw*-EC`QAmd}_G(>W z4c7N1-%#v7kC&2gBRvgH%W+_Le{?VQ;rIpS+k?G!Pke6$sh5$Y?gBy%|L!&PhaT=RA^G7z+^$l7#JpNKjdNgoi#2pBqX`utQD)SNdG86*O>MUEG z@ki^W1QLRdqH;rcewrT3sM0$!uy`hWwvXyK8>A;&IX5j)mfBnIr{Lv*DY!8 z-_)GNnbVT)e%{{CB>%zhE2s^wh}lVXulKA;El?CxBpZ>G{qrQaoXSwdrf{Ink!3xX$4>SRns^&CUN@hrNa%- zd4(D4w?}u=sQ$RD*uk$bDt2QrO3U@*dz|^${*djlhD+sxQ5NQUl@yLn%qQZ=xkuD= z^1%&ZM3`)+d+(agAtbJDi&b}A%|vN?6u|X8EB{I?6oSSOD{HEf-mJJtak1Tfebu?1 zrm`(r{4sZ~Uyl)3|Kj9SuY0At?^On(UgYAAvA9bRFe_}V??=a~+r-9G)34-RxnvfT zwi`@NK}!N-k{q4Z1J59KRu_N4d){aA#@W~I&aI40=TQ>>z~U>2GMosXb8Wsz;fFRy zudhZESP^V75eXmj13M{@r#gN{rUZ7%vkudo*f?>7>{E7F{7mno=5|7{c(-wOL8)`9 zhhmX|x+qK(ERZ=}M*-g)J^^}%N43GgXv2f@kCQBe_kz$PiQTiUMK?+LTZ>N1nx*Cr zA1O=T`39c65bftO(ZnM+vU{6iyRYbr&bO6eaFU|)ty2Q2a&DLSO7n`eNw$poVx*BN zhfCHfjY{M~x#hBbxPTb9=6Q5)731Bxe~>jXD|R}r#ljrimjye2=_@>sy5n7Ph82ZCFXA6<swgs@z+F|EhVtfq_@%@cDg# z;s>^1tNe4TM>Fe%#SC^0OY8#pXe%8e&$OqkI^$dMp92>xdYWRd+vIbc(Xr!=5#YI| zWhs?v_H4!yC981r$V_lh=(Zc|hrfW?|6e?$(X?3!qEkNTSKqIxkx`Zg=59*Y1GRzE zk*%E{bK4a6GQ1)M-A5Afvm8{}8P~S6*m3=rp)}BJoGEBv2rnM>aCzh5rWMKGc|9+| z@8WhSiCIZ|T0EBWtXg8Nm+cM4Zr!u2q`=FS8oTYVn9rrDY@*(;h@zl>L@TI~qol4~ zou)KWRDG)>u|H}`){Zb2*-{8z3n`9&Yu#>a)u@ZDhO1$6(2}TGn2HpnVjZNG& z8SH>S(I!jg>3L>Mp|BC(3yIZ9{Z9)LARKC!$c^T@<@WO{n73wU2_ISt7BwWPsqpI5#x8_{g-m~kBpONYph1Ta~+Kk zmea2ODOX#&p~3N}nBjEQ!c<(OP13clf*12HWgCBTZ=d}(8;hMUZ)!~j{Ku)sES}HH z(^FaE?W725*Pzk&Ug!w^TTB&b;Po?0$l-aN@eCQtG{I# z1(G`RvS0A!4>0zRbyB&on5@BL=Kd-RRQsc6Kq>DT>~8E7>HHZP5uaTdARl#u*Q@na z@`RGN)_^)1>Yjw=Ds=0v_Jj;v(Rn(Tmt}0${w-$hUXFyzTbv;z^ zLH`VH+|X5bE%}ys*8ICYBe9zKcjT!2ceb3z5qw8g^hWpBE#0&p%MuEkLd0N%DbND~ zZC|H|CP$N)j*tyCRN4f_#tAAr_OZ#HhpO^~7bhy)dT~r$vmk*;JEClm`D*)&fb>rM za|ERiwl0^aTXW#J5ut;RLzFkenFqU(9(`BOoyx-&zsQ zybBc$e74Iwt;;YG;!dwX~3U+pWGUEe?(0`*;!O5=bAF-20lBvPM5aBS(*9v zO^L?$>YTRuy$7Yd`RzvU?cy5p_69`4_S~dne|-&5gq@PN&-NJzjacvQXM02pk~4Qt z33L!WhsB?=Z(VbX?%!0jf0(GZk5ANUB=^-eNzVA)LYN%O#ItB_EPd7Ny*IPUa9Gd0 zcuRV#tZZCX#>G@g_k{BEKM&@=+I~k0*rRo~^RW@WWF_AO|Hcv3ktub#929WQCPM49 zt!Z;*Bu%O1ay&9j&D%PHX0{f<8pk8V$Ux+=QY&N@yC7Sscu`SpR&-v&riSQgY|5bnnnE~lIMp)7JvJ(4FeASp z10hOilMt&tGtU*V%%N`N{U-Q`{QSt3KbAq}(Kt63XAZeC(a7KJN{M%ol_5^Z=b2oC zF$M8o)wDXIvO~d@?XT$?cqgwTed@FZtKum|_x=I*Qu{rPjAmpQb_6eyU&O6E@Km@^ zpCrtykM8D<;GG{AepOprN{9TbYh!S}x1I0q%e@ze?7$7qmZ;?6ob&vm&X0$-MHCan zCo1$m2TMk76V$r96L)i!%F2BnHs`P6^ICPVWs#!|_&B85G)v~qa*5@F`{q>+jFteK zdB1`}NFNn3)qCVDjF7$6-lYb_+2teQM22b~xTmDzH z%veK1!|!^!e>%Ab8U8?S>{uG@!>4VP3=GD5WP)-as3!3Q304n->EgiU+j6RE;&e z*6-+%hTItuU?MG8Wn62aCxB#M0rQ75NaQH!a35O&u7DzmMH3zJw6Jir7!ctZ0+*VS zK?-9cpG_VozH{3l@+3n)-wSE>GuIBa@!$1RAvzadXxIC8vdL0(fu_i=wS zn1ya&t!`r_JM7-}MeV+i{ScM<(B`pKua)N2{=U4FTgis&s&89QeN;2B&aSJ-kc$y( zDfR5#rjodv5JRW+>#wwqbeeb(k>p|_&2k;+E#5il{oTIVS;rMRNlCL7%1whV-lo!l z{z;L^;JfS475fHHx~pyId%?mautzY&xQ3{B;1vptB>Xm4JViDdurMvIb>Br7LIJb2wBA3 zox-f;89QeA4#luY$5uip9@zNWgj;5un-N>hc@K9<@(Pi(W0w(27;?~0QuW2lx1fz7 z6Xrq|I+Hpmb$md2CZ&hHqh%#)%>aIGF;$KsBt3` zKBg{wy}fB ze_6m-y4_{rJ#QlML@9$HN^KKyWo`y9sfh!`T3sJ9y;URSZA^e^9D{JRCU6QYG>XgZ z$yzgd%%;ThTdH84q1*5QObeO=>qbBH=&>V67OLsBt##<{I_xHej#5#2I{>P|M^`lB zGOJ1iY{$b!HphGb#3D_d*ZulVKZjX{!s+E{(?fopb5tL@ ziVx6GN%!5i`kRKC`5+k1@~*H(Y6%`Iso})X$EC z;c7R=XJ7;@9uCin1cTdaDiImdv^$u{Bry#>M{Sst408cLDS>5qv;M$aY-7m81KJZ2 zBy4|zRfMr>wIHt4vCRefQBW(e6VEi#;u0{EiKNKW0kh<2^q$JJ)N6Syg^s6Q$+Fto z0U}WX1FiI*vbr7yY}JSa-PI9*2Nd-OwKzSnFVK;Ap^sS{vUfOi)Ual1^K%Sf5IX_X zniQq<0GOQS=B9_Iqp?PY&6L|Lioi^z7913o46)`_KjElck-cO`O;|Kl-t&HwXX+Tq3w?*kYa>r-DpIC-3${4)CW5S@|gLJ{}2sY-I( zs?3N-cbC99@3Y(FXHL92R~8M^t2;iHxLWKaUa%eKF|dD+X0_BTQ+UdUynC@dip8B= zoK{F9Cpkss4J9q7b#}jkVvL~Xg;w*+Lnj{^bYpj`_@)OVo!^fc_x=5!*W*w zF}1Z&azq$A25(a*NtoVTP7_bU8fT^7*$v8&MAkk1bz@n7k>bUMtn;@Nro@9eB>1w|Mdrp#?nS2J1+ErkO7l2HnjCyuTP3bnDcSR2*77lYO% z8%ZL8J8W+|c64KTb4Oya54GsSJT7Hx>sdT9Qa7qm*qIhJsF^+8usJoMek**8r?2!9 zUq>Rlsu!W}=h6SC7ff{`vJhNxuU3WJSrKM!Kd2_!T01pVishUIm{?h>BN7rAQPFIO z$qt_PiVg@wI4dHqepg#@*AugA&nCdGRr;f}@l5)#dcPVbwTY8fKt0F);d!f41>^cM zz}y7cst8tX>sEx!z+b-$)1|dd?CG5B*VLCP{CE@AbIYj4y!&-^MzK5Q)hBLmDoft} zXFabHsGDcJp*ar*@3eN~jf2FrVjbP|M|+pLX#B60xuyH_p7?ig8rLM~H>4zB9AFIBO}qmh z*ot3gDs>AAouhRf0!g#Np$%6Drt{*WZfVhM-|6l1{SIw#zkYdiU4W^wjUuq68(}*6zoH4o|-F z>P>>d*x9b!?InZOKQIlO0wML8YHqAN;`utw@b7kNqW|+_M~hwP3uqBK~lwd{*WPHx_9 z{)nng2-j92`1Zrtk}I`)8>1st&Ux^>Q-gyk5SWJ3qFfvtFrS%vU=E?Lp9qtNs<`j! z+$vsQNvc_TdMgUAd13VW29bEJ@~)NNT9woH`T-Qo64MQBp1P*zi5nj=Ui971cxNy^ zwASQP58B4{AQnRW7RJETuWV3eWZRIPuGfmY-#9YG zv7|Cn*aR>YAGMC!8xd*N^k`?P^Q}8QNa+owyTN%OWsHk19Bw zZEWJX(SAJ#p%PA`G7`X#LmE$Ps5_>L;+eu8aq!sgkwt$T+Gg%+31^2ViCC^#3xQEU z&q@}TVmHB1D>Lu2&kcFw`28}@>a?9}LkR=*Whw=hcUc1*-=-avN|MZy@LcRWP&8vC zh_XVJV|5UmW8}R1`Gt$xLN9s!PC{;fx}j8R@kTp>g3k>W!yn3wJZGt5Zv z0{RHTSYkTNxb>>k6vc=UwlynKV=#IEt$p4Qj)y2=nTt?WxCA51VI=SG#@}E3nKxRO zqwN|*EI)rqp*%Ar@w9^u+0i~=qd75@A@uR~tR}()nH{aEEJ4UiE_lp}9OxxGuLxzY z-~gSKs?A`czDu||z^PWbRtrY_P}Cn1Atok{Fzfr#>3#wVlf*_8nyZ;pQ(-V7Y{Dwr zIzW1~?iN~Zatc$LTfjXx@ITml6L2iswr%uI87d-0LZK)WrAR3f8Vm^;GZSTOFl5M7 zQWTX8X&|DEnWxMVg;M4zD#@HO4`J=6p66Z9x8CnxYi(`MUp|?N9)?nl9=WTbL+}4l#CPC(`kM`h{7jGOC`~%0(S59=YgL(B`hcZuP zoV^R{Lj*0+_^xzs%W*a6Q9J%zEg!h^m8RHdu{wrsg~uHY9}FH*in4FbXpA)G@ zzpiG|iUm_ka9msSo$;t3@`VOWUfy1i+Z#(64<-_!8pu%wp4vM5`|Sz$D2{XV5o^pL z8RmkK@b-{;vLaf>g>HEO{)niyBqVfX7s@Hz<;wS8lB8skWF)j(KhJ5iJJx&{GjW#{{|yAUTYCN_V-;I|?Pe zOt)D_GC&6{5=7U}(Q)EVJ|pFZgZY`x1+%_4r?VMVc_}nk-7R327g z(GxPnF3xu%^Lt2Ev{vwn0o{nN+Vv{?`0ZS%ZyCk*XrBR&9rjt%F<)0+Nb`72_!D1& zmdMBeU(FYg*eqK?FvN+D6AT8oIUN&rJ#%nVIplg`N2t}U_o*0MLRt4v&4eI;{7 zU?Ud8eJn|6JfT7f`akgKE~I}CY^ExIvNv5L_q~0$M4iL8=xJlKc_ZoWWMwEl;tJnT@{}Hd~dTfAI08z!$AO^-H+WKvPCT$}R4xIqjs% z9xPn+qUI$iZf`ib4$`YGVLP5^ezSa^n%Mih@k>R85)%tw7!2&Oy(3T+S84Rrk6los zJ!A@yncCB$h!grlhp%>So2Hp(yNKe&eu7KSymPDU3yeV)u!8 z;{b-@-tS5mEx#xKsi}BaE^8M+|<~ewxzc%{Wg0a zBqECGZp=IT;cxINru*k$AwuiM>%U%q`7QgqBkn~WMzonn9JK#@2{&&%J-VXXJy%(> zm3wC4L6a9vy+c1_eFI|W(N-aGr}VGpH=d;m*2I3SZrJ*F!+#00h6xd!zR_>=(e|%* z+q2?lpojbY^JnJ&n5RU~pPFe_#R|3Zq$UY;q!2ZCnu~0IzWd3|*fopc<+BqJ9XTFdoG4go-r6aEV|M+qULk9BRd|gZaa$@Gs zUlbeR8^zpzJIU9U`*XM^H5qgmfO$b)Z1k#Ivxqc`yxWNtol1>C2=sfg6!7vC$?u7fuz1XYRCFCWMekAWpd#>H0_~@B~vtf%p zFGLkWq=NG)q?OP$WeLTK$gMo&Ga8^fO)GTv&wIK1%R+edp|$v6?}aG$UpEbVq3zR% zb>Y;Ma+|Ry39CeR(8+(S@)Eu*-abO;&n_GnA~O_7qFT{)x2n4q*C6IGe>qI)S;-9$ zTgZ!U_h)(u5?p>m{??A>K2P(-lz1 z=rJXWtCyVme0ApIZFkZ8sekPjNk8l)sNJX|bf_f*03fqMh6z9w=DSfj&OUjK@ss6! ze6dnsaS;X9{`v8fg{W}TzfLRLKlCo56s+H22n94C*Jlm=`Bl&NQ4dT9pn!SnpNC@4 zleb;B_y5Q#@dF4+UN?@Z`zAr+N4^$9`cbW`iht4}pIxkN+p2!rwxe=TN$u5_qXJG- z9|PMK*;IJbPHt7cEVLQYKtTIyqVwFkcn__Q)EkXdwc821g=W7WWF~IdGpnBLkJnZu-HO)KrFa5*X`-V16S$n zHcj!d@aq0ITtSrsR|J!-47+NtA3h}Suiq~*v?Yf3!8bo~^)$20TjjgT*4oSt;#)ANAt1cHPCSTg=w=Ddk1g&(d%tL*mUoFNuwQn(ddu6#MwSCZ4HC<0*Y|{e)PD9hSEo`L z%#15x-;DTq$ztBZX7Lnx_OE77{?u+rgf9lRlSTF30=t8Id!45`GqxuvKUT#EFE>N? z1l{?Z(;(X=Ju}L;WM`oEUsB*NMa>ZR@*~6^q}$f^sssw#tU9*Bf$?5LRO2_Tw(}K1 za_NEltEodCoweM+9ClXoivO}j8(ZdgU)~zhJAIgcaT3@$ChNsQ9(7VX8#8;L6yu=* zc{V7ck#?FNso6&`rAV9UU;UyNb6q&yn^kT74)<`1D8Js;8T9;_jq;0a9?5b?1E~(l zhNGOoa7aU(M&nb;>}*;qYp|wxyuke@56t7@_@d4~{mOXE%;8XQgZv7`D-JANTluzT zO;9QRxI?EXFDj5Lw7PNL?J{T6;vr^}Culfkmh=&^G9vUG64F@Y2~Y52;~HI}!YrIO zxJzu$kMO*n;-!rBL}n1+aqIw9>MQH?$-6K6)X{J{p33}K{$+n-XSVXsj>zkwudUVm zo{9<72g|A{oQ-Q)7f!L7V^`N`n;bF|^Y@{W-900slzu`mjv+oeYxpW(SzJ85vIP{N#*2B+|-*&K?U$N0PxVw;dpeCaZ7% z@$d?ot0Yw+05+y;^bz9>p=}$I+M^@a#1}nM(Vp1_RU#vJUTj;yJEByo2LPyrrU(MmArOVE^yH zGC=6b?h{M%-g*}fK;Zt8M0vORaa#HY(e?4m$ES9w*Im#)ZK|R%?v4#1V5H0z@Uvm? zo?`<|W&)RF$)M)j$4nhv35vTCZ64qA{YBPzu;j>`N?GZu{fUO-$nnSpLO`?^J%B5d zPADnWL+wBIr1HMQI|{}E0}hP5xzSIRTF%L}qvxZddJ+0j2h8WcZqcFHx%NUv+9@T4 zOAms64BGO4v-KZ$Xnko0+T!zsmSfh(y&d|gH9wt=jqgZKdtgre?pG;uQB&u_zLG@q zw~x=NU6ip(tJ=^%-SB{-h=t4@>bv`6*}d)NfkwDQN_hYR@BU=KU6mLpgPkx`>l!J! zZvvvX?@~`v1GJ6{Zuh(x4hkCOOc@i$G|{_a}}tH z$3vTrops%0s>_^cV~`TiDL(nh*j8ogs+w6rWaW(KjKUT9z-=8F`=^6H%-FyA=KWLd z{{BcYf!>tKa5fS`c;4M(&a8_@@4#q`K0tvGqF(@gVwHIvT-E*!j-C;rPlU5$axt#? zHad;OS8G`ET%z6gDlwa9|7h#nfA93c!DG~nk_u@0n{=uMZl^u5?AP*Nn6qhcU2KcI zWKFk*j{fuHY-=r(nbTslT^e<#GgkRpyJos`shbrTb`<}tUcN;>+*}ras5RUeeGfP~ zKALy3Rf`yRvApRXwzl`#fxxVdV|K^oI;i~5uMv?gQ zsAA)eIEQ9iQ`xIZ8*eB6)g!z|MLEyDcu+o&UjDdbqm}j9`g1?>bs88BwcN9FXxBNY zZo1PT^SIjawuG$GrkRj0913R{_QYjz*)iubqDkYeTDT42Bn6oI}?}RJH!9+%V1{V4x`xUC=8MmFsDOvl%QLZc!!cf)Pv4V& zT+$!RZFRM5VeT@^y2$wHBty4b{g5LX4O?EkevkY8xAtEKr`wocIc`)YVs!Gkaxn61 zNU!AuxuHukFnaxNb2+{2tq=yNMC)%>wRP&7+6s@6mzZpD%23t%W^+^1^>6PbwyfCn z>0c12=;);{DHmU!6tkK?GzS&HV{7cx#6-4c*1SAas-mABsn0Urns4*`>&cONwv>ct z0?i@ItR8b0W!c!Kyx%}?u3SB+l{c6qbgH#-f1_`7(tqq6M)725_Q$~d`d0CGOiNFT z=$heArkwb8+TI^@a0S(zgD4#{KA0?~v(cjW+_@XCSXWMZ5`AkcNr3;L8B8s_)p zVPx8!g@=O0pV!R1lakF7>{r)Pjg7vw{DFAf@H7NUz`)}5pDELX;=?=~kz%XlzFDG1 zPGpG#qsbV>nK9(l5x>7}B@=?k@TtZA>8W2`ijF(mp4DtROG{~OZw7Zpg1sx|7?_;Y+n-} z5f&D=sPo;G!7?ti8`_n!_r!Wa-tcL5eWlK(UDPt)C~SyqeLLy6;n6U+i`bM^gP{6;oS zgmrAHvk@L~g8|*U@;g4f^yD@CqAZrb5b)^e4%Od}oHwuIUi{TkNM|uEwOkn8L7cutPDFGVGk$p8cYpyXI z91QNm`7 z4Yuy;_t9_q+lFMfWXqSHUx zBk31E421FGA%b&Mg7eQ+uC)W0L|*?(Oto3O zlm9YNo&N{pymXFAc$ScfV>2@|wpC=3(fPeEg+`|@WA+UOEsZc8`ID=AmWV!cu_jYC zp@*WEoeZ$!iQ*iNEg77v1qEcZlcPSG)MlG^9FqUbqW-*1nzvm2c9J7xREP@bz$4`| z%_yAuLeQ9Qs5Mg&gHoX)165Ws`ceZb$jHmB_R9Xr$)&v)-y3mx#22aWD}zu&cSrz| zFUWHos*QUd9*=Qu&@fn>;-aA72U3ER4g8?@-{0+V>n(EnhQ>w&ZWG$`H6HUPF)x^? z{mR-|ZE$QhCWC(MkRRr};Hg^3KyAv0gdTa3GbQIp}5WSU-R z6^mvT^x@@efs^d9{`Cj5;=X8lF#tG=GT#E2bU4Z=vqP#_)`cfD{+yL zJW(Ya%jjlcr-iN-C?xxvsvFxGF;mPZ*&l_6jr1JgS+b2$EX5P(A z3U4)$Ry)}?p4g@Fj`I*E5uWwqXB`atBf?V0cwfjgZMVcsWTS-rq^g~b4N<6K&u>4v zy5L_rDhHm;>y`4$>Xx4GBSmb>1=IL(%nQF}T!rnlIL;FzAVDRO!cV-+<=bf9t8Zowe=snDuy|FC6;y>&u!O zZ5&f4M#HOz0tOHANoKyD=wJ$vmeyRqVWM*(%XU=j=-QPNN<)&F*1o@X>E>Sl5r-OR zzhmC4!-92_Ne{%fGAGZTZ`SAK*cpA+icMJdQ{%*q#{EF#EE|nwHE&k`z<`+Rg!LRWz(0Wa5e?=40;oTe@keAv6Xu8?#*gh| z=gAmNsGO0Ek9;VUrN;9*=aey2Efm8y!4(->eOdg^2lrOpUq5ON>3%Zu5T(OIp_udg zj10pR4&9dVgN#iDjG0g)HLHZ#o!Z)Sod8t9LgO5{|HpkW6^PtxhO!PBfw|G8m&Xka zU64;w$8b4g2e@s7mMk`Nxlr&jwF2v;{QtS6x#pw28bXb94XNOWT+qJ>fa_lj)cY74Mxp((M!Z z9^XDq51kfQ@Q#`6d3mwq{iCpb`}faOhxIV6{`0!4Y+`it#$PXc=B2uFf4!pbu{Ce{ z`}Mf2nDwtWtnTBb$@=>Z$F_>39RB+q624wSf4`wtp5FTJH~i223VMZ?R9x&ww{GQ) ziT>{OJ1b^TNUp5EgcdetseU=XQcPIwaSnrPdX_ zn)}Su&bUgTFaAyd`)r>|(8croeU^VMU%}**;HHnRTco5SqZ6e6yfbqq#eN0u5S6rM$K;7$#*I(Xt zRqzjYQ`@b)sTX=L!nr5=vg-R;xA>~r3CXU`{6o1HyFdT<9x{;c`_~tFCCN+*?qYsc zUY?Sk>h;*4p?iGPe|Ux{P)%f`2T2Y z(D3PdG0MxxP*FaY%*{@RYlhwRijL;J|KNel3B#h4gd-BgAKwcbc6ZW9zSnY2Pz5Q3~!$yXSAITYa;*`OI|u z$~kdgdcN8~HKVhZ^w*>!TIRI)TI9YbTy}r|R5Mh#yYF}0h=g~Ks$kBoTlT!q`HIUv zaL&x+>pzVuwej~;G{_dq(_X5cY_I_eg3}L*WaxN0G6RDw@C?}`UF_wxuKu;=$9nYg zomNBb>1~rJy){czPfbMEhe+9Saq$>Y2VP(*Z(!$6H!!mz_LE}?r<-!>Y?+x zPrtsxwXMt+6I|8)J~rp?A1JEYSSiUJ`oD7$2PD7z_z{4y8>@f(_`#>oGE;ovfBdQE ztOi-`{(ac(nRWkPo$0HAFN!^UnW#c{7?u|;%-_t(*-Ou{hd$G?q0&LZ(9m$OHFG89 zCnoW-UJ&Y&y%QKn#l^+-NYa%RTKD&NpINnCNGM%sVP@Ql^MDhRmzP&cdb;d$<;N-o zF5@PNB7K4lS$3n}kMG^P_cK)DYqAErDsEr+J$1qR+O?AMavCwKMmhZU6BT~H)bi+? z28EY>@e7-G?qquQ>{+aK>L!S<(QMwlIjLJ#MkeLbumKkH2__Tw);(tg6z7-Q7=81{ zr#xC*C`KR`fBd-Gp}+nRDsP>++wV&7EW7OHc42PDLGH+rD7@=zOBx@hyo3y7U_@~R zz}e53-qct3e4VU~d??@6t)&$ew3miE4x5;4stn$C9dpF!l$DiRlt;(#whev$`QMD43X(WY*2H;@W+9Ns-0}_Qw%|V?OEQojZ5l$$AJ(?u@QGW)sR_ zA+jDXVZ!5M#?`*owyPDxG>&^VXX1+>P=6CX(<-PFPI%{@Jt4uF85wJj25<_@SKfP% ziMFd5*hN1yzo*>5Sk@aqfBvKj=Bw<-M@L}<7JFNOOe9l;`%K(1c~tsaX&E=tty#0C z@3(x=J&a0O$$@cwHt(RXRvmHBa6lBn!#ylWP_Vd&$m;!$gZ$rH?+LGmw&TuSyK0*o z@#sWf6e0hSyS-5|BU~0Kh9L8rH7nI=vzi6BVC<@_oZK=j*RpNfwoOePu1PE$X5d>FX`KrN)-cz{jJvc4EAlzOISBR$(r%ArGt&fD8>|8h=l_$lbeQ`6It z=tBUlN}w`C2tJ<<4EKXM_I=FcBTOp-y7RWHYL=9g&@nI^1}{l9&(UV@{{3AY1+LA7 zZu|FGH+$jEw zPOwsh)CP!Y%3@4k^vGyWO$DlPkt+Nj@-CedJ^O(oA|le9Wy7&i>azBgPVbIO&__&3 zOOwI!sz%CCM?ZgV+F1zgl}X{5$>G~~?l56Jmr#JV-NKibVn)tYT1KC|y#23AOUV=x za&|C?sti+ZLKhU)9`O#icxk9r?AKt+ZXRzYfRS3^r>q}Kxt)Tu@yok3?1$m)sjpeP z-{Ne(#!U{90(J*4?I1`z93UVuqCX_U+TDPtZC+VUm)Ps{NU2 zTCsxi74Nzmj2U(D6z+Kt>RA*Y%TJb7RNPF^O17kDT(yc7Zb#a&!0TTC2XmW8g6{F%k7S@o>*^3KPLy zePAFJU?}LW$?!N1cL;5Zc=TvHS?~G=z75|82DV|Rnw8>?*K3j{)XP z8-cNArO4qC;KXdXy<-cW+0c+84jz8NUK z<(4~|TU+14-dRe)LdJaAs{F{)*LQj0?-50vX*?y_NR`jPK@S@m*UEqY{{8HSCtl@0 z!8nV;lY|}cE-Z8}tYS9P$g9cN6h2@=+SkgTRsh}p(G+}sq*XsQy^ z4kp{?G5jaqz_$1N6YCr%s?A3O$^dQntlA(Eq%zbid$GS>pclj0JQn6_cQ&|{crIDW z#LDUeaj-7@6MHIC5UapoXEz!cFWi@c-Bj}WH8s$oARoj#%VE(E4R;iLj61m%N8w9L z`kB3sgKX@gXFUZ@K3jWMhu*s2y0Ah14Rlg`0r%!Zo#|5vL3Z3d6@{2ZY#Z2`;Bv4; z8DJf1olIoanO0n*y2&aebMfM?iNThu_{Jra_V)G^&<50B=;eA_9eYVAk~uEpf*8Xc z-KYn-T1*x4yn6L&qXp-N4Hs}dUlX_V<=~*wvy0N<5KYZZcCJiBzSsE#OT_M(SjAx(g#P;v+AKwH+o)xzAj!(jmm0!EMRMEVJgQ?h6 zI6q^>DRr3*j$dG6Ch!Lae@iKcAMk|eJ5$EP<&~Aoe|{+yIoEN($;Bna-l2Et7Hd z?}rEU1Z&RTrBRWU7^J|*#i|+(=IN7jorO7eJ*$)-?OlR7=Q09{K@FIW_aW8vXii?9 zDV8U#(H*{g3YFpuQ$LOULt^Eo9S}l|{rJRDdY!QX!;?;TsrS4;S2#_B&p!-jdM7+Q zz++)<-TeG~Z&NbY#sf}wp08ai2mTgE;ljLYqJADLm)qD~>qj_(FYWuN5MkZo5MPCe z=!lckUW_HZGBZBV_2%woGPAKT^sUgSxn%muKf49m_G2&*=1NUjK(Xjj876XU~za@afUp!f}GNv|kZM9?{ljo1dFBL^yVs zUCOkazCKBJ9qzXrZrj+}TJK6`^rXIviv)?yvDr;=5_=ny9$M#ZAoS23Irl| z#y38KlfeLCW6UOvReefxBglrx7fv27`ji#G-}4gkD6llr+^r1F$JRR zhb$Xi67^z5YX=tOTKR(&Fm`q|2A&p!Y?Z!F&!1mM1WTd>7(%b4q$E*cUfyLj5eJXLh2KnXjlN2?bm_-jyEDB516{wT zM-hE0MFt_QcQ1qD|SGk~Cttr-Jn5USi4 zF{OcckT0x^mC)0dJKnT1pE_}ZG3iw1EBwgWP7^CP=r^~Wc7{Jn==Yer8@mGSw>51`sLL%#2kY2ejjO{<2vn# zX%aM(UZIn1r`yb!b(IUQ1KRGd@lZ$#shC{0g^y3(`HqvJbc=65z!7{a6SfDAwAF!X z%`<1tTt9kyV@YQx7rgsDpV`^ju9B;?{2KAr@VF8@YEFIzYwe-J(~4ofJQTk2ItB)cXBZBQ1(ZchgsAM~rcSR84@95kxU-MXj&sx}>YOzFUF@~=BQ`Qc z8U{yD>%}b~Gol!^`d764Wq6noE3k})=2dNNT22vFpC`gB^#n}@d3kxZU8m^=hla!| ziF?M%ztO@IavW;ChMCVL)z$R)o~GVIbvW=yLrw;alAVKDu(lofI^JS@`r;O~yf}b# zfDB||UBt=}i|D?zUFwMkV+uzFh(HcEbLZ||uQgkhKO`m1 ze)VnTd$1tyKYVB+O{K)Os?J$s2Q)4D66dK#oo7Pk|;Qv>z zUmxf2=;1>S_@1pCtSl_lnC@`EZDuVNH5P6=FW{LTdT!QYeqT$#@Q28&K^$^?7#xe} z{l=|Z-bgoEv(N1quzbLu0KZ^@WNBZ>`aRZcNS#MDLiiIPzIIG#AX7wKyaIOr;-d;A z#Ktx@{y0_Z9LIZ?UW9W+fXv_a3n8*+c6N68d0aqyzVjLxy83vHo6EZdw6M}h^JKER zbTchuF1+JnX1)TxHHooEdIZXAM_+^GKatqJV0-Gnp_&^juKZ8IV%?tLk^!+q7v0@_ z^ts6m2Va(uK@blZf7>4*wLtt2)I3u>hoU2sj1kPxbod^) z02w+Q#3VY)BLHK@Z2ujQ{^Ay&J zj~_v*@sc1{2y;~mU-M0s=uq$Cs`0zgSBsj6D35W@_o@fyQanK(K1j)`r-w+Wv5 zgZlT~z*Fgh-97K%Kuv)eS(kIB?B~z(iQ1`Dq|U-7ZdB}fDSj)qgzAMqw{z_1c7uE} zL-ptQI7!4iEey74y(mLyap80E5@Map%9g<+l^_h*iKI^^UWB~+qZ%ELoV?Z*a_K7! zj~%1K8@9S_6fs$*nQZVl*%@dcw}b>cMJ3rlQZLUjNo9bn#+Y#PwoQ2Z;;WB0>z{=V z*8k-yApd@B{<`mfT95zsb)5hIF8=$})c*TEi>QSZ#5CmH3A0(XSDBicwimi_5H~S4Hb1P> zLuwtYLZ^yfy`loTiU6Yiekej)z$7Y<8n)sSY88M@^64*kIf#oiK{8+4gDj*3;i&Ye znqV-S=-E4C)5zQBG5db{ zZ6M!XkNE=>lJo;JKIhxmQ&fo%9|$ZhMJa3-H5?{>(IC%}0nxLpw)XvcK~uz!z|fXa z9__tA1>lWD%$O}~eD2(B_@K4U1!)hEYa0}}P*bL629i}#Ptkk69>x}00TfF5nVKUp z3c-FE0dg;+WUsH<>(IXz!L#w{)86o2r2vi)rCuv2C{VZkTcMCHxDuMJMF$JsiTxyF`|>4zHYlVMN6w`Q_^OZ2y6<|${+#CF0M`102#flg2YdR zA1DD#OiP)HY|M9GlKksq}ihdkB~oc9(3nq+<2fE58L?68Cr31 zad1Rw2w*D{`DXIKXgr`tvL#Rwfy<^hHSOA@%Sr*_Km$~;o-I5mXc_7(mqG4SqiDW< z_m1JqmoJA;?XV%$0+c-{#Ry+N0(8-Po|>9k0>@9GU|EkM|GSwHFnkk1?`P;sEdA-e z?7h4&YEgh%e3+;J4qfu9Np3yhG0&+Gv#aeF!h2G{Lircr^6Ir~c^}^^EiEa$Ox^A5QTBLz_gH>w#0+Wlkw4cnCN?_5GjIs0+b-hKNlgpl+| z>J_3HozZiG9%PgsMIGe^ePy0erGc#XfdtHw^`8;HbdQ$;cz(z?woYW;0 zmx)0gey=3JCyHK4T<%kcHmAg_MENk)b@Io7&~pR_qteBMc(&c<^w{Xv2fzL%ur11o zBL`}JPhnDbjHcb1ElT_&Pgp4}hd&cYGg6k8f9(qF9G-pq*5irXD<@b%EI4ba8E2y} zjiUb1*M73_vUA7axBjEG2(hsBQi*5QuST2YE{U42Y+_48SbUJ`}Sd% zO$>K3QWh_OItwP0H)+ykyx$nS=2KM!@4ZUH@Cq9w#j-&Vc;E}|{-b5Znj-hbtXPQ| zUA@{1pz2q&Ndi^dJ}V0fIvClTI$h?ZXy zclb_N*m_b3!&UMi)g#scb(%XtLF#m!a(PAbGb^RdtKO3guH~XSNRdBLsqGs*ad3_| zFO>mze^}t%XnXfE2oPM2=%LMyC8-cmkQeCYVdL_Uvb~^nug85l5ey(GCeQ_gB z@2L8Fwe7!PC!jjsnAl%`4^-DjtK>aaRl%$pm1?hEk@xG zofnRwIY)E<$EUQ&c$iRKfPLPXa`?56SCR?AxBIB9QKQw)IJ+7M>M{x*_0rZXn}oYu zn~+sO?5GU84@C(^S65e2+jcfd*NOU^lzBw>OdK35xkn2w+u7M|H!S1?A|Qk9^y}@` z2x(B!uq(AQEm^`3I8&iAMXL8mmTE7fc9e3iQ>rf=scijab;+7{7>-AQ0ZKF|U?&GK zY?m3icT!M$ph?H`5V_RQ2Aut4t>ko$AF%J9(4hra2oGtv9`8WLB%lRT&IC0D?J5xODUet zGVa|fSr@w%EZSe_=cQOR2~+Nj1f4$G5Pgb8Z;2;5T@}Z%>(`Jp3;Bi-fGoB3*JPI9 z_5sop#23J7V7Uz*8tTwN1rK(iC0AQlcj;8oZ)O|}H7lN_ORpZF&L#l@+L6CvV-liD zLc%sw#r%N(J%w>m%SBn&2>3e16T9FmdP#%If#|P|J-!!s6RVj(xv_T_fO5tRJxn8jCVfUi6x@1xXnd-$2n5}nbP`}DReL?oan~m zz4@i|dRK(Ue95(y>j>XKC*AyQmKfzjUENibV+r(y#jZM~pQxA1j86#7RN^@3en3e{ zNd<<1je~=%WG%=r^cIF{b3WMe+W=%O=LY-)|EisC&VbbK8t_SDY^T~Wl6vBt0exD9 z{v5)SSxQ6inVz0r{_>cjVkvGE2oUxCurT9d&n3BqGWQ=nx`o`6WY{>kD3hEI5Z~VK z?Ce=h$qx=@fqC-*C{+CVHDB9!Cx9-LXqZtre+@iO1^0P*e!2(gaj?2GHqpFdB06d%k)A-KPx+c*ocz@%#Y;R6$? zr=ZpqJpv%*6%1KS4Yqb#*JqUaqUR27-ntXyMU}F>y(r{NeBr=k=)7nc*p1%Y z;n^u7A~0gMG_0p|2X+v_AYp&6pc;DSW>*#%Q?RUQQKj-Edt+GjTm=V;J~XC zxzBM{5#*f|%h=q9J0$zWf)dTE?|UH=UqS(%Cp2IzQZ(`7)3(eNq|RS{o9i}q2eG5T z>q<#!2p;I|MeDeW!vy#MDng-7?CJB+Xkag7DE*5{6d~m%8jwdI3Roq~@p|bXi&!BQmZtrs!%AFL1)@Db z-Q16#?=Z-xqot*_A80(@#eTdShm2H7QRi3zSd)YvOKDdHeY!*$v3gAoSM_}nvg9Q2 zMR^w?+>ypj7G*b9qjDE8wvV6xnB$AKG_#u-MbBbli~)ZV1_uerVX_EnjoNSB-rEK4 zbL@z=gQa@JCVyZ9MvqqEe*xrNL4o-R9#NW=-;*bcRp;6>uy@$w&_1DgEa6aDr^_Bc z8-SB1UyAlK!N(`mn^p+obTnsLtwVMED&TX3X;EOB;|{M6iZ$kw zaNW$YfH=+K(e>-sMK2@jC0wF33?euGiWOIzhJ$ID0wSo_^iVBsEzChM>|))_r;1za zHv|y87{^;oGB?0Z{Fq`an^Z;1Ej2%7YOx+5c8JgZ zy?ft;ETAD+p^Jub<93FF7r)&Q%|~z#sv!J8=+Fq|1}x`t9&g z=%YgcpNnupvD6(JdU{O*1+J6cq>Al~VbOlrK#FEa99=Ei0i&6XS~MnxiIQf(+=VBW zIN%B6*;UD~QI+4*oqm0#de@_G4Yj>f^WbxdE{1-!Q-mUI-(N33(~kIt$NREw-NZxq z<5LehQT$31(nSdS5k}X#f{|^fG#$@r2LxXsfE)v@xmaXw#K!V}L>!ScDzba`8Z>d; zb*lj==Li1c+e(48D}JHAS{WcoeBv`_EEHgFA8U5(=Tyg`Q-HdK7)~CX58x0NZW}&h zX(@=3N$}7N*RInyi0!a`fYas+o8^me-LiVP$@6RZdn8}Hk~>!_hap{ggRrpW1+4Bg$_Pg=YPZ3d~W_+(o)C@5iYsOg-utLsgW7+Q9ndG~;CYJV!#?1A(ba79+u}|3+Ymr;Ov_uh7gn8>2b3~7_zUi zw6oK&i+!zUN>*0mUdPjy9tqQpTZI90_JuE#kC;VW#G5J2F0h~d7#$Bd5f6th)V+Rv zSi*4ykDRr2B3atTG>qj0qeV~9%G&zT&}FNJcs{Ty1!h-~n9!*qRpv&usd;0UCu~Q# z*cUk77z-MDwmU;lTo^|ltxpNjX$c)YM7+jp4eNiIT zD~fmtY+(iHQdh2ADFdaz8wvEp0b%do?B*b)OrK&^JtP90V1&6DC`i$1Gxc?TfI}!q~wsJaoom~G%z2Dwb4#7@&a}ce7p`6DDpe137SF{Q>a%*Pk$3j zF*7#iA;r#AbRVh4D6m*KK{hyMgnGI49KJ)%`RLK3zYsUxz?J#}<5n!~sSdmMyi?k( z1th4iutBV-n68F*XF=B9LX!n%#U=(T5QnvMFUBBA4!aMg89CjtTFK!V^y6!8J$?Gr zdU|@fwWRZiob{)d8d(8FsIjIx3}}*nP!`?c{pLVlyboHhG?023T!z>yI+|o2C_8*{ z=_+R+ztxf@iryBBR=5%#x%s8K$Y??zdyB(_&rfwRid_754A{{Q!kdXpoO$i%BCT>` za&t=N<>`wpm+@IEL?bSVI1V;*HeGcwdJRga6D&T;oxUWbUH1$IC&XqQxi8|%++DFl z`koB}hcSVZOB*i0$B>J-FxV_Yn3gT>XRWQbztdvL(PXp^3k&l_$aMoztRlHPupeQE z&(=NjSAPa?NnijIAONWOs!_tc9$|OLciO@AsyTxQy13HRD_QA~!hn>s$^RsywHvH- zT2~v`62d?zwgN=)MuEGrE4iqs$XXu(yu#&)mNRLl4`<%FHzH0y&at==ezsvFz+d_u zT=;$R)<(%wn)BeA)aKWRc6E320T$$iW*ql^_hC$E7fg0nJ&S#SY9%-N=5{Owf9?kx zUiTqVDbq4^<72pV@nWD`6Wr0=`}g@tts~f?JtuYX`5tgi8`MsQy$;J&oSKS0KN_4chi8?v`0OKEN(1HAz&=Q}?) zyOOf6L*-jpQeLaAcDw)!DXY$RlOY2MtESR8N&U3ohR~At7N3 z>I-G?ov(2Ky_uX>T8BM+s5twMun5JSv4rWO{xiA7K%>ZRGy%p*Xn(aoLEt?mUX3U= z$Om*!4Z>6)#1|k7${?n_eLqc|`)u1WqXAS;YcsFDgmW{tvf2hlX~a;54wvA!vCuZL zX2kw-NL0%Z2$kXA%TTn9p{45ga^mq5PC@_k7T^iOK!^EBSR|~M!|nZHW3z&iQcxDy zgjT;mxbTI6_C=Xm)&57j4kFRF0nYu5;-E3U2C(uP8}~I-8#gcFC&EL`sj?FDgekCH zJ4HI{IKu`B^@$B>E3F-RKOABQ@+Un1d-R0JnfILj*Bkn)3Y~sM4NesyzWkVMc(7%f z2kufZd1Etlo7W&*M{hwQ6DsWYY@S2EZZ*K4P;0lgmKI-tY8D3gh2SA^=!>t$aY!IR zleGEI$!~A(sX32Z9bUO|C9y@Rr{6LYCZa_S5EZAHu{gvhz~62{#Y@IfN@L*#7_nvL z<&{**IGwCu429}jA=~P6+9X#(rAxR>>V=@clCx=oG}>gW_hS?`TJ2Q}o?VlN$6dfo zRjm$})Wu;?7}Z8CPTfG)Xxpw`YUFsfF~ z<(MxoUcC5y<=2^WpctYqmyT0MEMiJQO?nT))Y=wHRLhb*+4A zkV>~-Tmviq@xF4wwTCl@@GNvRg%5fOv5b3mVT0Sv1qd$g=TC^D&ARF%q!Y449Htqp z$9q4@3NHNoBHNOKjH_ih(LHq+Nmp7Xc~WBLIpT!b{T|Lpx%7VE@&Bc>bQ`>R)o6Z$ zE-m0b!`h$dsc4xw>A@}}XRe|y_P)Jc&$O`LD+$}#GUGD9yGNoO9UTU&?W&oa6mE1E z2z$TDPgP+wh|Au)*Y5kR#24|!n(FF7)@@Rkr&2`U6}rt{l$rW&>Vi z?fLPWEr}KDc)Wp$We#SmGA1g4qRjr>l4Y|u6OzKTo4@jDE~yVF7j(dxGE+pugA!KK z(+3Idcz$raQ!)WeJYzF6KBSm@2!vxq3<}Jyy~H-O%1}cJ7C_+!wz!!C*ZotksT66G zH`p5h*YEm}>D&}15H;RAz9hy81)2-c_wv7>|I&UnVumV*7HVi#DiZwl@`)a>yXS;K z)OUX_5lfo|XgA~ijvZb?l9G~rJONBHzd_Wj-MenxIt!=1+L)LxU^+e&{f#O>8m)Ky zcvPYFIEOvYuG>rcz3yDmtCMv9t$iv~N4N1?S!t>4W~K?`^Vq33t+Oxjd@Ito^#IN5 zUFs^}2x;8c6>xxKG|L6SOAq<}Q2)vP*I^jesyKL(d@UkNDY{pk_|(BbhNeKP-XQqHq>)@Cm3!+k8stq3l0v!<#TAK z!P67pkU{OyFgd=YC^Q5fRm_q%#FsACI`@os{&}ls|s_U0te* zTS07gPAzM*nrabi(}br?!Rt>r&Cy?QywW^7qYmG^m=wXZkX_ioRTy{5H=eeu{!^iw z?m#Aks;Wsq5_8miha^Ry;>yhaU)Zv>3&;vkq&WjnQt#=bmwM! zLbUpbdcXAd$2+tG;W!V_9hAh)JUmNaZ$r+-#b({aDYX1%0b)e({5c~dPgMByW)dsw zXr(K!Uj$CbyLGE#DeiImToL>)V$6nP9UchK1WF1}pGaJ%G~So_3#%9750cvFD+X$;)3o8SiQjb(nCOaK}D`jRdTpo0DlwIR1Gs1vJ~Z1)fo?PGdl|1 z5r7vdNuDy9d&j4AUe8|x_#D4ep*syz62grsW^dQYN$RXs->XY-p z*ZB~ux*4=*8tL!zb);j(qIMaq`VtCh_`zx)28A5OVg~%DYKY=9?k0OIIrYqYlsH}^ zxxMq?!3r>*NvR0z?Q&$b>7P2hUd;^w$RJ>}UV#e>Aojo)4iN`EUfk6MO4e~LOV0s* z7rl;$!z%$n6@zR87qb`Sbl3vYD5@T>z8pCd@IJ|CyY!jdcU4u2rUhp2D%PS90EbAp z_BZ_eWRQ3xLyG=|u5tWl?cRvklQl7?5%}ay3?aD5s$0%;9#nSHYJ{ZWn1TXWP-Q5H zMDJ>OJb>pR)E%pq{1C;ypvhX09f8`axp%^jM(O2VOmjGmV7qDu2Y{Ek1+T9#7KKcVi`mQPQZNd=4P1^2JHy%6>4CODV$oFL@hE>+3~3dtRb8VFb@k*>zhZ z-t-XQpN}z$>-+;GkQ$r^>!-cQgA3n&?8J%CLN1lPO_rbsf%qRkrZbmg3d|0$B7wV? z+{q2EAMG?po-B6$;zhz4jy5KR1O&e+q}F4r!7^^unv;`5<+d*Bw~0}LckEUv(LH-e z-w>dm)8hMd)|e!CxT80&ak{moMSel+gi>5Mzna6<;PD0L826|umy^18rk6aREda)E zt_y0Kpy6m^NUX$uY}X3lOCnZ{+vScPCGCXB3idkvUo@8>(0Urooj%?SaIZd;JB>H@D@01+}1oKQ2kg0DsPRZ&@n33?k zeY?i-F$l}qiC#&G;!^z;pMG=NH4NOXn?9_eIp^9P>SAOCU|&1!^m5V`3I1Y|Z=OZ~ z8r)#TzFVvZ2#^-QTMtBWMOIc;+R9(~XOXESR_Jl>zPo@8n(991q7!v){BzD8L{=dI z_xi<^;yLmMncqZUKZ0FG@>tt#I{PK~=~-D>Q7;!9n=ZWh`%zJPt>bppb=c~NZCg_E z^)8W`IVjDq(1CU5{{0)Me-qMmbAhWkl7nmDj}k)RwTs6?xo|9lndQaNc82s&G?LjL_5`l z8p!c^&{jz%Gr`fl_7>GHu4WXVq}m)J1KV!{vj=We^X0a zTUEfP+{Xh^PoJhsy2nIEa|;WCY+JQ?U@gPQhAfSl`KQV%OAtRS8W$-Ob) zcEW>4am5GKiKTCpM&?`2L|BMgt7x$`S;o^k3J$xpFQ=#XM!QAf^mmSyVdJxBZy1;Q zd_ifx6zRFx#JO>4^F#ah^HlDj$x@J3QwywbW1)atu>^gv6bhP&(85aPIViA+0!FO* zjEAF;cv_zEo4zBPidNVe2==e*LyHbvR#len`0ufR*awF0x3~^&L}OqH5`&+JT-)<5 zF(NQKs;<5kDfU&;9)evPn)&0c%NqS=q0^{vUj80RWvPp0htm{{z^my7c>Ny$Ef-4v-@rYVR#U&-#E_E@t`cI7Cm0QvcdiN z%R7KN_|OP4Y?5@RkmL#P0=n3;`*5|)V`0*5ewbdC>~ zUr9s`JVh7z09Soh92e+da)SCVok&+BS!G(8C*BdQ!EmhQIiZ^|dv)&$C zhsjw{bAadb;$N8DsH_S|Op9-)t=;SQVb?>w&7+#_ofMuq$;NzKqU(&+IU?B?Zq!dC z8>mO+V2gm2@l8>K2vyd@BIf6#oK=;_i$neaW?1_rUquGFAP(L=`+bDr2ujSrQ*-6u zyEy2M7@>`Z){t`wKD?3gCkd7WEwy}OiG!z4H{E8)MH=c_oKM1*0aL08z_qhj=rFR< ziYWi{b@kuP@L(zN+kkP|bZGG0br?fC-6PDIl9fk9X)d=5(^Pp+@r8Djxy_x`eSrmXXd`tNw3UH z*E++os#t5soudimFb2F*W0Gvo=XI3^|H#Y};9>mBC>ipRXALnZ@WB1Mk@io6buD|n ze!U?=r)6%BdHez`M|fOb<+yagf^H@22@E#w)`@_FAmJK7n)EL>Q45Eypo7=Tc5iVJ z;mR?fWf}bS(?CkLH}Omjr&l$hhnuI?a#$@xxL|R#-ZeN-K}(WlES5m4RIdp%D>WtB z=g8<_>b~B)__DmEL6*fn!z;SB9W}4%q6&*?T-wd2PwP=MtXOoK4BOM7@1vpVzPVS| z^oFj(a&E?jMR`qlNw=|z^G8OaGhje7LN!h37?fX5B}H_$86}P3Cwn~BJ-hKC^SLmz zcc@tFE27kiGK=&@Rgv233@@J%6yr{@Q!gxdVtA$HmmfdUe|#%$(U2zpC)tn*VWbG# z#4hG>@qu=)A}5y_NT(L&A`~tw8*Oc^g|3=_+k2O>~Jkm>h z`q2>&SLTmxUE!F*{U2ag!NBKTnieAD^dq;4S=bJ^%GheGh01}^_U0~O016&o?|03( zEdG5pJDz{a<687Qz5x$lBk%b_?7J}jtCrr$xIGmMZwv)85}6<>yMV-gaD#fZ1M{C7 zdCrzP0BB~mv$GVk3q2?FpPSlDzLb8TFyU3{z-QeakuRR{z0F)N&3`UJ%Sox1cAi5aKe!|x%z8}(k-1M%5z zJA-R$%Q_$|tFKeOCW`dtbLQi;qa(z(LP@zc@L>P>(~ewUN|D8nR$;IkNOd-FJVHLB zGf!ng%WaAJQQPQwlmgeFAE7#KLOJL(Xr!hVV7;8FjF|%;LOq2wpNI~tSA26@t3L#5 znS;+SC}?kB775t$&H8Hb!B{GC+y+LuyAPFoOBG+pc?;Zm4qU*Hq+RgoQ_o?qx3?YE zoGh*cR4RHS4-Q;hm%cuXREo6=N%Ia5L}k?K2NtKUf1=u${G%l;eXl^v{aKNAzX5A* zF=ZsGJ{Z@Dh5h^WlS25K=WmO`9lNShKDxI`d0}bZ$OCS13-3D#M!9?U?inRFyghEL z`}0fx?#{Nlo=7JbpBWuXH;7cT2?($#Wu9DfTj_zp<>2LSYQlIn(kUP8v~b~8I_$|$ zA08dq4#wYGLv?e*wy8yz(kp-KHmmEwro7y9j&-~r6xva`I*_j+_TKPE);DepZV^@uOky78wQP*B z)P@+{(W!vbtjPrpOx>$%IZb|`>Cz5AtM50=+OsmM>n_XEiADxDBi&8Q5Qk2__4)JX z@B+7~+ObEL^($FpUZG_cVAoilUdh84(3emKytoL>O-&!t-M;%c$k;wU-tJo5WbN4E z5qUU{36}SbMw}t5S(B<_mZh= z5b2Og$GW>;S#%Y;tr>NEGi`0{IJ=IA^j*3fI^|xvSO8AKuqI_%z!m@WrC-;Y$1Wvo z$cGB0fr@*FU}m!Vpbfshez0YqesBvA-4A9$0dYTAC}O`@*FRnys02^l!8Kf>48%W%C1JO zC*_OK;NQ0z_5vDAA!z+*oCj}PzHq+&W8CkA{iMGq&6b| zS;l-C%?EHt>dEd=c8$+p4So_l+-}Q*X{+nkuRk`Zhxu5BF#S-iF;f+oy1pXI(ln27 zlNNsh#MGZ(Wa7Q%=Bht{c~c*q5SU#Wh>A`PQ(||VFVS2Mk{?&TkXqOX(A$W}G`HMT z&nD5aV^%^L>o=NU;1Sobo=^sQV+`D`{h}i{nDy}C)c6ruULz~)cJf}kF1!o}L*FOT zw`O1>&G^7tIh~5{7iOiOH%!^3Tb$#sqM{O4nhVs`S6(ERYwgFruSob+%9cDmhN?RZ zH!ujF%?~rpSl7O8w(c9)hFSq`pP$EA^%tJmYI-2w)O53I@jV?&OUozc=TA35WSysf zL9`O3hXe0L$2w9tJ;6{$enR(~e<3}?TpKujZ<9wyp11lX6aG6q`{|mGAA%k(0^x;|LqW-n5o$Ts74m+c?e>W3gsWG#ac{4e_lrAG zx4G)U#ISeGbDJ1$;kBg1TY_doPiVREFIza;uq^pPmyObX`Ksy^0&vq$RmS@xPHCep~_>P4w0&?|=02ISuruHtJQm z+470gr^|eMaIN(!TZkh5T*>z?c2K;4d4@Bst^K)?Z*!xAi{~woowWCk4t1T>{IJEJ zi;MD1v9RiEU(vf^siQ+QxYirw=Rvi0BY(N@eXYmGjLs&Pme}s7SiEpycV@7=+dfxo ze;YVQ+$*HG8CMA^yoG`=<$cI&mn&;vtr?hA_5MkVQm$_+BDpI)&)V@l%04{lNNLk! z=$e0GO#XVRFA{Wq^$UxUy}T%%;$As!OsSuH_3G8M)E>?1J^^uSj1a(2LwFyp8*Usv zCxbgG@PgqdPo`>nM7*_l}o$Rlh8JYPZZ~BZ04f}(ZHV1>=G+zW5JcI(u@A( zMN3~AdmgpK$5{hbVvp^HsC{YAwmFSfwV}6eDs`sq)rh}{kmY-Z$8q(Nf!8cfl2|fo zxaySpoaV7Q*PM9%?@4}CQ__A$H%B;PcGBozEVS~^dV1ZQ{Ufg4AZn&$hZoO0w)k~d zRJZN@2X{~RGWPJe7PByt$pYGw|4tSVYvvsqIq4+~p;sQ9LZSm(c06_}*IspeZyuZD*snYMz`KYg*!@|SwyL%SDyn5-|&{T9q;av(v z$8BeH|CenYvg*5NQWSNcS{T) zPvSadpn2S_zYWFyIDl7VF1%`$HEY%|qdM8;=|@KPWoGrslP3#E8FUECB$aIN7NTM5 z7aGpdZ%EuKvIrKP)=nv^!0EJ|l`F7s^;&RPJ> zdmfha$}g{Y=f5|`#xsN_(aK#fo)RH~l2AK)$-JlY&C_Sm%x6T0J-g;n*#rP6@H(>= z>Wl?+e>V-!G?VMdxW0cnkad}jV9 zzo@7V;a7&z(U8YEPG_K4-_EFEqeh!=+!)D}#1jH}OD(NQ1{+ik#MX-}+QxIxlwJ=6 zOyt`LaYO~k_f}EJLSv8>DJeNOe(45*0-CN|k1p#Q8i0e<2!z9LUwl@q>nC&fWw1ZE zOTdsHN3^D;ZbyU*&pF1Eaf)pgGSbV=Jv@v_eXZYi3|8W%fEd1J`=1KhU}8E$h3 z|3@Ed9$Y@vDAH_F>;UE2u2Xqd7*TK~yopk8D|1bArI3eTLxZWpC)`spZNFvI>rg0^ zg!j7c-##?1`t#@F-(JNi%Y8vbLMh85OvC-N`^jTlQ>y(R$15Lh%KO}_wi8#ly3)+_ z#?Wx5csl%WQWL%R7(fLj37#!G?U?_svePumGR>_B{Ab#0Ki{(e+z#gW9s+4GE&+dj zyZ>mBe@kAI+ZE4mc3q zYh+?`lmJ?w>%{xCHR}_SzYyF6w5Ax9QgGGv$eHItd)}~{GNrzZ{+jhLLCB1KSW(E( z=#;dJe30fxZm*U>rO z^(FLm=wv6aTWs-~vV2|SgeznDtDF zUm7$G+KVb#tT|{y_qrE^HaZklYc27i@A|5rP0l>@+Sa4M73_$veLEQQhr~wCD%F=B zqMZ*MtryxT1uQ)L$WibZ>*R~atF@SM{IKCG6Hiv<9*eP#cpaS-%s}3_()nYrEFkKF zVQn~ft}nCG53@H{s|bq)qC>^9ZIS)06QRe~U)N=8^P>wpKjA_L#krB684(t3ICf)7 zUfzM6^Ja7KLv8G7jJwztx%o548EmfESn~)+C^;oXjXKJ2+qTIQEjRyl%q*X=Fzr(L zarH)xMzt8J{Q`aZWqNOLW%9`E*%xAwZ{wf_|$ zW@EhJS^;?%J!zpQT^`q2_iBYnX34}qYfsF_EU&u`3lxkb@w-+uJ7 zcm!f!ZuTBDNT|c&xsHxA=A><7OoqIxC{+5mu9*4kGudBGZuw=*SdbQNtq{v=-Q0xZ zg@NZBs!gKz`7~NjxxD)G!DhJ~LVaiS2+Ekc@4x{o^_+2+vSRJqaSAt`JGcD$sl|-j zkx_j>I%lo>(y7DCeFqQrXuB@t@Znd7+?Xc!?8XagK!NL{p$fvGC_-Hjx-*J?OoZ|c zx0rROY(Q{CCm8^G_K326(&d3QomMY=$q1V2)RKY%6|RW*1gtpy;l?ARGD9t9&YbD- zCGFu!P{Y@<;RpH2_T{t>X8VIddK} zuyVVQpX>0xNVO4G=evmc+D1c@+pqUexC%3{a9Au-0g6Ut!TY_Ou0t0>Y^<$Akr9x^ z>MBV&IV}(~2fRNJ7}(+Y(d)m8bw5^vqEX(|{V(MVvT%$XiQ`&SjGfiKQmiJ$5{85= zvv)h&TJ35D6f~16T?TUJ%<)Cu+L5YKT9;HA{cGJ?CXFI&E}gls^oGo9Lekdai9iC1 zQ7V@k=x>MN^BX8zwv%Gz*n$LNq%{r=j9@YGLp{@t#*Z(A8beWhuWret-+bOH^(nY`8BI z*l0M7@pj{}84cAI`wT#nI?4cC{y21dt}nH-uQQx)1s)Za4(^h1E(aDI!E#Q@Yrus% z;EfD}9!D#QjmE4aMd3}FHS+^{Y)_|Zs0Pp_A1h;s59T3bl9QUNq+DD6=wSIfUR+$d z*ladz*el+mHq#*iSrgUT|Bf;1asJ`CAlIMJ$;)wLU04O|@EEDMRa_;N`E15ZOm(Kd zV>Cw2l$@dXv&Wk3-gnp(6}U|L3A4TfZ=P->c|ZO~2e&~n5tE6o9iG|>-FG`Y(u^HP z3O{{tz(QYka=|!_D*5X5`|}`~TTvcgadn|UsY8emj$tT%s#DisYbzv;BF&KcU|mq2~#r?^GwH|h*iTZ+QMGcIx90Sn ziu@q{P-G=T!TEkNmDX1Vx8dQi`psK%Li}48AL)yIk}}G}<66(6Oq%vEMO~56C|Xkk zvFW3kScntkJ!#65a4Yei_fHf67FznIrjBW5M^10L8+wFTB{mMsNYR-zkbQx^-bw=*l1%?vQGibAzS5@T&f+m3Cu! zVQoyU`!b}!1f@hP?tT)7T%$#c&7@$$M{PytYC$ocx84tO{4#&^hVb3LzomS0n#{qg zK4^f0H)5vWBlZxA&548FLEMN{CncuLuA$oz`%9u*@Ws{Lw(upR)l~SH!lscI;mdB* z)oHYB`Ey$N$0S0RTrb{jJhSXu57G>>*t`D~z6{e=gB6wF{jFFM2mKZ`uhoryWtOAxbqo(v$<^InFNAC z6}6dI{01O9m-1tnK{uTa9o%12b141Ry^Xtc=^ovVqEPsaW#W9f_@N%y8d&e(^pnSk zzRaVkg5A}MuWMR|?%PA~*T5n)tP(X0)nGM4X-qRV4pr*6>Q|G8Uq=CYs0VH{2H_oX z8HzA%mfbfyR6NND9CQ<%qn#5fsw!7XTMLM^;sLIME}y2$w5w?6bS~C3UV7(ENl7#l z7qnC|A#1JA1cHgP?FuxZVn{5%FlC+MbiE5v&rLZndIR8AJ`YJ!7;T0A&>d(JdKf!Q z_N>;%^@|pvp(2Spv;SM-TOZ)bHIt%Z4`!1sXd5=5G6HRW3=m5bpt<(C*#&Z7mp|1Y z#DUf$Rq+2BM0!=6{%LAwXD59;@+V}S-h^$ddWrC~r&UfenRD~Si#E)9h~I$sgFoo@ z7WV1ie?vk-!na9QT*!D=859X`V?pRPt?MI9eal?a*L8k<|GW((N=X@hX%}Y)8cQrd z?XIm=LBpDNf%ri0(f~c0gnl{W7^*_EkD4;&!MZ&^(y_J^S-rux)PFVbn>ZCSt*pdI z8iQ?*kwTY% zXh04S6;AoLgCWjdb-d}5T=dHEmOp(f@!GWkc3F_zJ;jNDlun6N$k`*LiQLn>+U0aD zg=+9NgS(w~JjJ4}b57~8sjGiqLiWZE(=XpY+b~3%&ySC5GrThE)bw_E)wS=^zOXc+v?I?l z&LP6TN5IL&BZ{}?nJ0W#Qtakuj{7q#ss8bGi+1;%zB84E$?51($}U3Jhqq4?V+OS^Zm~J) zmpm7wo>dRCnYH;MD9>OD$T0qWe{qA*%>8x5!Kq#7z+r*Y^^_4 zdCi(N<=RS>EykgM35iepMSO{@{)Z+kFZlU6$ITZKMH581w}EIbGaYG*_XYjBe*9JO z_&+|A?czVL$y;q+G<0#f$;htGho;YNW8*(&{ff8rIBJm8qGI8)YG`VTIO`@=KB+Pp zajP$}Fm-+Jieu|Q%Z_K+M4E|7V8%eP+Ld{0L_>%wV#i&7dYJK<38!E9Ja}!bIl$cD zgKWgz-X!)ME0BbTR!>RL7`E9>MN9b{)h}hd6Eh7WAE3i z_=A9aPewKPV)!8sDBZ!shTV9&0?cqDabm#YXU!OGzD<2qhDZ(MW_@H=&yznk|N4H8 zVk%Ohwpzvoh$e!+QDG=>YmO~9*alK3otThl~_D0xNU{!Z>SGb)k>QD ziF#TM8Z=lLlD=6ea*0%!D~VT&%!Oy@X47?=ZZofF{*0rq^!qWlBFD1a&|u2}{j>X- zSXjK0N1sua4unn~evos`EH*7FqFrfb>|#ojxv>MVDf~DTL%7^$&r-iG%)&W9au@H} zPXjD*+PR_}(;~Ve63Q4gA2Ess9H)nRwDQeU;KteL-MSGua1aW=eHOti17{7qA6RYy z)7l*v=qt4X1=raN7xum@67J_yNt848v8AuG+R~VX!tx(u13wxrY5O@ zI0ofS=-^O|goG!w1N2!suf{aZ4=%9KG!{bi=xJOgJfg<8e%u zH2cPWv8>#qam9J(yV9|+OQWVV7ZQ)~Q(E-f%r)wZz1Ta5j0(YzY3!zF-?OMM#$fhK zwh~W5@zvS8cdth~UEEI`kXKML0Gz%-VH7 zJc;wm`-iPXs!0VVkdwGe(0D+9m^$}$U^IZ<_5{bU(r!I1wfG=^TuB`-Bkj7c85^Vi zXb;@QOft4Qqp9V}zP_6*9kwF%2EVjNY$G^zaifAD9J6-q%5;4yL=xiZG;5uxqlYrZx5LF?{#?sfsA`yazXgF3{=$M^x#b9t z!OGjqvj{gI+x(z1CXvlby*d{bK#W#EE3NlMk7zflJZN~+rhD3?wFqamz{hGz9<8*8 zOFW1ZQgk!eo$5Y%0I&lC*HA!4{ODV`xh?4o?$SR&afyWPza}F0I4den*C$0BTsp1d zBX&EaBGquy?umB$`8u?Wj)1nJ1V+j$pfx%lN6gJk4ZU>Af1W&OKdoG-3YOlVU0F1Z znkL0=?uAR2#6=qeXE*JoU;~L}kL%p5Ym(clPjw+L)GEWg+gXwqQl_N5yjH({{n~@aYkMd}_$C#RZB1oJf$3|b!8zkk9oLno)O%v&e+>}e`#lCcdKD{<@r zugV*-d@5nm!(%wWB*Tb|=l^-NYW}q9sW=>)W~|2hq5JNYt8e){uv9nSyoTN~Z{T5q z6Lmx=**0t72v*)Xw zouiudF$sxPoQBQ%GwbB_k=NJ%v33u6Ky$^N8UxXQXHNr~vVTWo)AJtM+u{_=2ui(h zQ*{tPK7h;NMk^0a=gF@6WPEYTgR~XfxP!jm{3EEk#})NT*fAYGkmpJviJ^Rb65x)) z!%;89fDKN=#zyME39-ktB*kC<8h4E+`f+B&`opQzI3#4;2WxZPfbI(El}$CC^3iy{ zZU^^G5+JN<0QEh_J+brUlw>o~q&oFpbDNDZph2B&YpE`){_FX%cIK;BM{d+>oY=pj za1tMd2Z;IGzS6=p#GG>zGgZ84KX%OsYd>IsS=~ieR#wYf69PJ9__8VNZkryZbt9RWKa&cxgjK;nJj;odXz{nu<)pPc9#%g1~1zo zrme3={@;t@GG6Jm`PZD3|Mg_uzdz{T@7m%2;e8pqW#gjXJ~em>`&+g?G5*xF&bAHy z^MxHkJKRaKXkTx=R&9gCKo_-BkZxzDd~9Mf;=kWl3}>SQBxvp3;JH<=dal{3t$J5G z4fpt|LB6J`Vbj}x*#?uojt<+Lnlx$J_-Ch<_q((Du>XvvnNijk{ak_)sexug7tFk| z-gBbm#)z4s(4++2Xn1@S{i(@C<#!SN`*L~{PHXwO?P(HVCDjFt^l zG~z2ls%coIV&*70GQ_^o%C*O6`Z)2Cp{VsHFj#|%F(U28S>gPkE(C$Lbcz|SDob%e~N@f6A{8+<+0 zskoTES%8&qXgM?b5a+7Ip}sgewyvk!x4*KKXg%JAd8NfX4sZ?^y^*fPW<6(JHeP-G z)2qZ`@k?JfBut!sie5wZx`F3zx_D8auvf2QnDKoPx$~oBCb{n;DmHTEcv{`C*?=y0 zXb&zta>195(Sgxt(yAE6|ANJu)38?*E?~nlOna6Q_&IbYaVy9H95aJW^;-p&^g~Jc z7%LjlOz`THDM2@Zb2~D*AGd;PtR;X1OMXH=Uz721GI`&exzx1pG}+yz=u{ciG)zu* znCD!#wTtfXU5{UB6?lRagan>ZH904PB?Fhfk}xI$a%wF=!F#~`#;B4!*h8N1h|k_u z=y-0mnxa;}{)2OPbR=fC)~-`$v#;k?k8b~5L37bg;w$_)1e0E^0VuG9d$Mwf?h`z| zbf3s&p)=89;)>Y-RY9EIRo3>$e**t9d3^V>{+hYEZy3gjG*|I)r^63@_L)+XB(3 z!QqgQm9yS+1-^hB$mj%b3I?VZhjBAqyt#8wFjWF|y(scXi#Nrp5n7%MSb%;(r1+eo zorH~d^EI3Dmi&G6RF%D}U2i^K?`e|#vhAgRUf%n=#j&$(X9d+TA_YI>`2=L71ibKi zYV9%PKC|0V*QFA$ND4VZ7(eI!>LFCA0#|L{v14W8<#otKxG^gqlms2EZ2YbZA`BR8 z+0g}tCZ>5x68cH}#XPa-YKJm<^X}ayJImRk)&@-@LNBaV?{?_Uy}o+`|aJ6-|w&`xeHM$-?$2WIJP8y8e);iKBiqn zn&a?eiZ@WoF^CfJ6=Ymv2j%PiljXq2yqab2QZ-rP6OnQw-D@hzSsoT|E+1tU(oR{w z_JpX=!G1N+6X9J2+&=FMHQX)q+Mtrb4eYP1>fWYp+qt)>$yLBbtJrLVTh)p)K6>c? z#LBb&YeJi_wTp85cCYb(}ME0Ie@I(YDf*Lc(Xx( ze=6-i2%(a)XyR(ZJtV8hO!$CL_ovI0&4&-w79(bgQE=xR&vuEHFKlP!Tb-P;_4|j2 zskorZOoU7|QI6w#D(PB4T%G>+vOzSXFIEwH3f{l34M9p%c7j@5Yr2#ta!zSd#pOzn zIL2&gETT;Ii5dafEZaMp(b3A*0p@;F?YiDiuiEmpm@(K1D0i6A563)|=-3K-S@Ckk zt8e41qNn05q1!hBCE-1oY!O4w;d8;4^)UWZFLZE;7B-ArN->8QyCPp}#ewpu!u3Mn ztU+c!2?i#3vCT?*Nisx-A#Q5TGF26jMp^npYd(1Ol)nz$kex})<|&!rR&N;l+e_p& z=n?wz7Q{1>#ZouPBeKH-gud7FkJzKis~-Nx6-MECrK~-ydC~iUMF{;_mfDJW4V)t* zR@lzfJ8DU#ntNekQ(>;s8g%vZMoUSF5_T*&l_1+tvEJ~*N*|P$aReEq1oyr#jenZy z=~9`t;QRDx)SgWR1Hk}7mcbB6wBTBUlc$#Xsw*_|LgRqiB;k-N>?hd+S6oYhPWd_w zL)qMtF?9=-IJKBiE6^IUn}b+YE8sxSUx$`nR|#-4afZ5-m_^)cJ9O13?o7G<$j~a| zcL$tNli$6}=;CY|CxLr`dS^tWdBVr>fWy;a*4Sy>?(4T_j?35Wy8@KkSb0o)PC1=V z{3H*J!Y8(5aOgtZzAd(d>RYD z%2+t24YwBk#C>9C*kz>t51;mX@bF=|Z7hf64Q-aJa49$Yi%`zz#EFjhRECt!RXN~u z63)nheQ`1NT7w zgs2ZbBgdDG*5Xwy&L+IHd`7TIu0r(FC#mb4cg>ad((c*U{yhA(jCLpsJWrcf4E2wi zGP}o&ll6sdBX9_m$oG`z?m#O`;L`l{_0^rLnH9uw#T!ieIL%3%$6&5r?lrgmL)j0s zAg$xepx2&d`~c|?QRH?>Og7pWjfLsjuWz@0dQl9?Pwbx!NdQZ4ZF7QWILqZokHueq zKNpuz)R&{F$LF3-Jr4%oMr2Qj9x^`M?-NTm)Q|>nReFY-F;_=f@Y$rf!ov>hmr#k- zj{LTwh+x8_Yqz?D2w{g^-}LWJeY!$>$$WbFHeDi3 zjP=F3{62TUNQ8kF_r!nAk2BBMwpQ5h(Pznv!H3}zp%!n`eR1hMrD5j$$6d3Aq=>Wg zln3hjIQ~y`{BrybBGP188mvL*tE2N6b`cjn@dQe!y_Cl0=;GL=T!NGwmrX{tIixb> zz@SY?G}v0F1H!Wm+K3k*1G>~4*aW#8@40K0z1{aa^tt5fHk2?yLq{J=o(}}V$B{Kt zYrlVLg=9M1;}Eb*UTrG`asHj^9mucVXAUidU4eu6kPm8*?e2D8#V~uBaHXqrT1y{L=^Poc;;qrA(5I1qi^Bfy=8s-r`r`Md0 zc7Dl%*+S^QxH!ycYSDnnRdZko*~Ylx8Mc*qExgdtOSM236t}ZB(1l==nG~Xq%^G@r_N`5M)3CqXhF^92>1loS^~IrSh29#%v8?>0vQ6d|uJqX0 zmry6colqg3pLx*_E5nPouEfAnt58Ic%=I;IezI>b>I9$`)Ag}yq#7W9>aaEpK~w6$ zeJxq+VdCJhZIy3$_}uHMT|0GJP=E5&sYce;2fuwYt$1dLBw$?AKY%+*^^dTpU^jS# z-Sn+hPiC=&u;x76K?Q(eTzejFfBW)|sg2BCc8RbQb}w%E`t|FTe)cDH8%EtOj+y^krfY>(TS27Nz92K!AmJ=`je9srw8+I=n0$4C>fxzIx z0$mMvXVEl^-d!Rc^Iz*v9X1oJ6_!XUM$xFayacSEkJ$w!o>y_7S`;|TZb66^3+`%B zmfRD6R~)WS7{C9w%c{TVNu7@rEm|#>;Y5w)$=)S%%&Y%_H0JXLrvli}#Q^;gME3$mg#;W5uLPRdGGTlXf~#Bln~WGA z8#IvNgu6|Dz>G)*gzV_)LB|QU%R8I&-hO2ulnEFfQd#yZ`+n;39p*s!+xwL1Z0@op z`UD5okb%KkQL)*1>Dfr@Fa#tbs|kbSsJND0P9$#weE(4L(; z*Fsx?{eub(nPs=MPC%_Jud6OK|K?J2BdZ>d7+nk4)U|Wh!oX@*#XI3Zcjw{>4qXNg zY!1744-ZQvxN@!4ZnzJuf>rR5xMrL_b%h8 z`|)IKErY%M_JZsqm@w5oUiDyCw~>&$U)Vq=%_N(1R7S9>Os&1VN03iPI?AnD!Y?xEq5eqTCro>2?8 z75Sl2(ebXLWe}Se#z05Y4~lD<6ezStqCTQ82@hUTdh5#ZKsqWZRXbFq2o`!; z$=@@5gb!Fc2d>ZT&Y0x6NrP}+P% znJugPHA|m{U^Y0m47y75C|xSaR^UoXH|bj$-6&vCX1?rosvCs&*rY2>+6B5z-uHhX zssRF#=uD0soRHvJs{LJi$U(bInXru=u6@Xc#pRzcjqR~$f6Kn;=&M|vS&Uz$)3ESVb5imwT%ALdyRw1*8kp4 zL5tdqgk|y8;F_kn?RlF)G^Rh{n!>Y#dQd2cF+B=`8cOLMj)M5_GBe-fd6`&0+8v(? zPftHF;E_7{(T4~8>GR6#wV41JifsJ+=UF~q|6u_jOZv8CHk}LDat?z8xwfL_2YTI| zBVow8{GUj+n{UhvJdd@c*1hGfR9(vdttvLu=4frG(QXTLDkq32}>?m+E0N~%qvM)6yf5FmS z<6KML&b&M6bCmpe#?KmR$BFf3)bH0ZsnZ1L7Bg&-tL&-+Um-pa6riH4<&YHJ(iaoZZW5pmG;L?RJlc$6C;19&S!ub;<$hWEZati z3$i7Gf#Ckr-I|T8eA~44#kv!@8k7N>0GMtiCmTMi!-W2iIcW>6L>OYf(ClKisy9}J z^~iwt;}>P;%$N^Hqr)_+S3bYS?V-`J}Ypu~_>Rn(Q~W+Hkk? zC6E7nln$YDl9McEKh4>E&hkzZ8;?oG4*xF*`)zbDq4^NHvX8QU{mZQZ0TUaEJ&$N$ zMQjetooI=AVHsLe4zA3&3)==XDR%oXb^BITZ22&9+P}MrwlG6A45U~ORhWH1~q#0{{t)kTz;V^fzHFe~t+&hH4mq66ny|nCfI^l8 z;910yy&m(9dVX&uYFY7jxCIoniJR1X^4St9T)843N_}xe>0oa+JB?QZ!oY+Mw@g;d zQuHCuSg?00E)GO_nFwOld?>dcU~tLxeQwx0$%qhLnQ-LdTQFwKEsuwV{7SN1h2EHf z@w8cKzbY#WNb+Z43%T|Jt9bODu}^wHqWT!XFy$C37|Fb}eUGnuu0sttxyMyZA0&A- zSbf_5hBg5fD}dL-vgT9&ND)e)ub5WeKD1GtL;f0m8fz=d>)$>)!e{&b9Ie8stp{!@ zKkU}0XT{%I-B}hUY^?GSRYVgIE;zw2Bk$z@AO6bSo}j-c!AJ zV}zSsDegzpZ|;=}f(4J_I5hW`2xcL~kI_VAoP}%WgE+h5UFxD5vp0rc z&Uq;CDpfHy6oy(SSu9+7{dYs^hwk6rnLKd^%@liO=|yF-U>V39V=gii+!bJV(%DUB z8Tj=1!9-|Ib|?Ytxl7(TMsL9c%f7YC^hwGz0OJ4&R(j5q9mdi*A~=dGp#PS26|#W)27y33mesQ8!-p-Xcixcd)1UTpeJDRko(4)@LF<^WP*G&(50AT( z?r+Hg^fA^oY-r5-gEYS$@~?3+6PJ4+-~y3Yjv80{)u%iarO&r+b)F8b2+(fjb9?fE zuK$EZ?<@02F6wrEZtrHD4~(25HObypnp^zuaF&=VWL!_0g%Pt10NO!3Twj2u}>b60D*&q?hs&=O9^o9NP#9o_}%s& zS`=MDj8{t-8=5qcY%=3EiqidG+ai!)(a6X)>;-8jLVw^%D94&eAk%t~269(r0~!4n z;*?hF$qj*Ly8Nkw#6!?Xxe~;CDZn`(XKt4az=}y=!h1;;sHK6VcEF#Dn*8D4cI$q$ z)yyjUu2OZir|r-lwxiD;>(<kcl>i(uQndLL(67P@2y>&x3{gg+GxOno(`jj zMs(BZF~MZ)!Ebgg_Wx+~DskkQt4X0c2Okt2Hqb5&2|2KCO z--tkVIf=w-OcJ44} zPz%U>0X;xbtAl(_7Z*DV9gjhZEW4Ze8ylva=Ea&uCe2zmSY)CoI~VC*`15gox9#U0 zH*G6AJZxjkpQ|d$yK_s8wVMCRYWlRPAr*6txpU`6L`ELJaz%@>O~-GPjm_0p*DUDr zB4T0|EgNfzLrYXt)Un7&tN91~{p%uhF*Gu&#af>oBX;`ws=j^y-f;5d=$nVF8(ggT zI3zMEN<5-)7Hj|!ZIO5Qa2r%S0|vj`t>KFv>C4*T*nn*KJyDsFTM_^w0i-e7$Y^7C zOACv;FNQo!PZujLMVZyB1$c&2*8RdV@mEA~Fm$d-O>|g;J%0A#%+(%0{$A}3gNlob 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

$}ZRXF#vDK3Z_TzjpLe$Zd|&gd4(IALqWa97vk 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 diff --git a/docs/limiti.md b/docs/limiti.md index c88dc28..ffa44dd 100644 --- a/docs/limiti.md +++ b/docs/limiti.md @@ -4,15 +4,17 @@ | Limite | Perché | Effetto | Dove | |---|---|---|---| -| **Residui autocorrelati nei raffreddamenti** ($\rho_1 \approx 0.5$–$0.7$, $\mathrm{RMSE}$ 1.5–3 volte $\sigma$) | scarti casuali (±4 °C) e deriva lenta non sono nel modello (A14) | i parametri sono buoni ($\tau$ entro pochi % dal valore nominale), ma gli intervalli di confidenza sono troppo stretti nonostante la correzione AR(1) (A17) e i domini risultano «non adeguati» | [assunzioni.md](assunzioni.md) A14, A17 | -| **Il $\sigma$ stimato ignora la parte lenta del rumore** | la derivata seconda elimina la deriva (A13) | $\sigma$ sottostimata → «non adeguato» più frequente | A13 | -| **Il riscaldamento non è fittato** | 2–3 campioni, meno dei parametri utili (A23) | si riporta solo il salto $\Delta$, che sottostima l'ampiezza reale del gradino perché parte della salita cade sul campione precedente | [algoritmi.md](algoritmi.md) §7 | +| **Intervalli di confidenza troppo stretti** | l'errore su $\tau$ ha deviazione standard 3.7 volte l'errore standard calcolato: gli scarti casuali sono concentrati all'inizio del raffreddamento (dove la sensibilità a $\tau$ è massima), quindi non stazionari (A14, A17) | su 60 seed il $\tau$ vero cade nell'intervallo al 95 % nel **73 %** dei casi (88 su 120), con errori comunque sotto il 2 %. **Provati e scartati**: correzione a più lag di Bartlett (77 %) e stimatore sandwich HAC (≤ 62 %, peggio dell'attuale AR(1)). Non si risolve con un fattore di correzione scalare: servirebbe un modello dei disturbi | [assunzioni.md](assunzioni.md) A14, A17 | +| **Il $\sigma$ stimato ignora la parte lenta del rumore** | la derivata seconda elimina la deriva (A13) | $\sigma$ sottostimata di ≈ 0–25 % (rapporto stimato/vero 0.73–1.35, mediana 1.00); servono 8 campioni, sotto $\sigma$ è «non stimabile» e l'adeguatezza non valutabile | A13 | +| **Il riscaldamento non è fittato** | 2–4 campioni, meno dei parametri utili (A23) | si riporta il salto $\Delta$: dai modelli adiacenti (errore medio +0.33 %, massimo 3.16 % su 124 salti), altrimenti dalla misura corretta con $c$, $\tau$ del finale, altrimenti misurato sui campioni (per difetto, fino a ≈ 10–20 %) | [algoritmi.md](algoritmi.md) §7 | | **Incertezze condizionate nei raffreddamenti intermedi** | $c$ e $\tau$ sono fissi, la loro incertezza non si propaga (A18) | gli intervalli di $A$ sono troppo stretti | A18 | | **Nessun vincolo di continuità** | ogni dominio è indipendente (A11) | gli intermedi non sono vincolati a combaciare col gradino | A11 | | **Un solo esponenziale per raffreddamento** | modello `esp_decad` (A7) | un raffreddamento con due processi (conduzione e convezione) non è descritto bene | A7 | | **Gradini cercati su una sola serie** | `serie_riferimento` (A4) | serie con gradini diversi richiedono due analisi | A4 | | **Soglia dei gradini fissa** | `soglia_gradino_c` in config (A5) | va adattata a gradini più piccoli o scarti più grandi | [configurazione.md](configurazione.md) | -| **Provato su pochi dati** | 3 seed di `gen_data` con la configurazione d'esempio | nessuna validazione su dati reali o su rumore molto diverso | [test.md](test.md) | +| **Validato solo su dati sintetici** | 60 seed di `gen_data` (gradini, $\tau$, rumore e scarti sorteggiati): gradini 60/60, $\tau$ con scarto quadratico medio 0.39 % (massimo 1.99 %), ampiezze $A$ 0.59 % (massimo 2.14 %), nessun tratto indeterminato | nessuna validazione su dati reali o su rumore molto diverso dagli intervalli del generatore | [test.md](test.md) | +| **Piccola sovrastima di $A$** | il modello non include il ritardo di risposta del sensore (A25) | $A$ è sovrastimata di circa $\tau_\text{sensore}/\tau \approx 0.5$ % (misurato +0.45 % in media); $\tau$ non è affetta | A25 | +| **Tratti tra gradini troppo ravvicinati** | meno di `n_min_punti_parametri_fissi` (4) campioni, cioè gradini a meno di ≈ 1 s l'uno dall'altro (nel generatore la distanza minima è 1 s: nei 60 seed nessun caso) | il raffreddamento tra i due gradini è indeterminato; i salti adiacenti usano la misura corretta con $c$, $\tau$ del finale, o la sola misura | [configurazione.md](configurazione.md) | ## Estensioni possibili (non presenti) diff --git a/docs/moduli.md b/docs/moduli.md index ab65461..6ed62c2 100644 --- a/docs/moduli.md +++ b/docs/moduli.md @@ -17,7 +17,7 @@ flowchart TD uscita --> modelli ``` `config.py`, `dati.py`, `domini.py` e `modelli.py` non importano niente del pacchetto; `fit.py` importa solo `modelli`; `analisi.py` importa `domini`, `fit`, `modelli`; -`uscita.py` importa `analisi` (per `valido`) e `modelli`. Nessun modulo di calcolo scrive file. +`uscita.py` importa `analisi` (per `valido` e `fit_scelto`) e `modelli`. Nessun modulo di calcolo scrive file. ## Strutture dati comuni @@ -33,12 +33,14 @@ flowchart TD | `n`, `n_fit` | campioni del dominio; campioni usati nel fit (meno `scarta_dopo_salto_n` nei raffreddamenti) | | `serie` | `{nome serie: voce}` (sotto) | -**Voce di serie**: `sigma` (σ del rumore, `null` nel riscaldamento), `fit` (lista dei fit provati), `scelta` (nome del modello o `null`), `motivo` -(testo), `adeguato` (bool, assente nel riscaldamento e nei domini troppo corti); nel riscaldamento al posto dei fit c'è `gradino`: -`{n, da, a, delta, durata_s}`. +**Voce di serie**: `sigma` (σ del rumore; `null` nel riscaldamento e se non è stimabile, cioè meno di 8 campioni), `fit` (lista dei fit provati), `scelta` (nome del modello o +`null`), `motivo` (testo), `adeguato` (`true`/`false`; `null` se σ non è stimabile; assente nel riscaldamento e nei domini troppo corti); nel riscaldamento al posto dei fit c'è `gradino`: +`{n, da, a, delta, delta_misurato, stima, durata_s, istante_s}`: `delta` è il salto usato; `stima` vale `"modelli"` (differenza dei modelli adiacenti all'istante +`istante_s`), `"misura corretta"` (misura riportata a quell'istante con $c$ e $\tau$ del raffreddamento finale) o `"misura"` (sui campioni); `da`/`a` sono i valori +prima/dopo usati. **Fit** (elemento di `fit`): `modello`, `equazione` (LaTeX), `n_parametri` ($k$ liberi), `n`, `fissi` (nomi dei parametri fissi), `parametri` -`{nome: valore}`, `ic95` `{nome: ±}`, `rss`, `rmse`, `r2`, `aicc`, `bic`, `acf1` ($\rho_1$), `condizione`, `parametri_a_limite`, `non_identificabile`, +`{nome: valore}`, `ic95` `{nome: ±}`, `rss`, `rmse`, `scala_residui` ($\hat\sigma_\text{res} = 1.4826\,\mathrm{MAD}$ dei residui), `r2`, `aicc`, `bic`, `acf1` ($\rho_1$), `condizione`, `parametri_a_limite`, `non_identificabile`, `convergenza`. Se la minimizzazione fallisce: solo `modello`, `convergenza: false`, `n_parametri`. ## `cli.py` — punto d'ingresso @@ -76,8 +78,8 @@ Una chiave nuova va aggiunta a `CHIAVI`, a `config.toml` e a [configurazione.md] | Funzione | Cosa fa | Vedi | |---|---|---| | `sigma_robusto(d)` | $1.4826\,\mathrm{MAD}$ di un campione | [algoritmi.md](algoritmi.md) §2 | -| `sigma_rumore(y)` | $\sigma$ del rumore bianco da $\Delta^2 y$ | §2 | -| `trova_gradini(y, cfg)` | lista di $(i_0, i_1)$ dei campioni di salita | §3 | +| `sigma_rumore(y)` | $\sigma$ del rumore bianco da $\Delta^2 y$; `nan` con meno di `N_MIN_SIGMA` = 8 campioni | §2 | +| `trova_gradini(y, cfg)` | lista di $(i_0, i_1)$ dei campioni di salita: campioni in salita raggruppati, gradino se la salita complessiva supera `soglia_gradino_c` | §3 | | `proponi(t, serie, cfg)` | lista dei domini (riposo + riscaldamento/raffreddamento per gradino) | §4 | | `scrivi_toml(percorso, domini, t)` | scrive `domini.toml` (tempi con 4 decimali) | [uso.md](uso.md) | | `leggi_toml(percorso, t)` | rilegge e **valida** i domini (tipi, intervalli, contiguità); `ValueError` se non validi | [uso.md](uso.md) | @@ -111,9 +113,11 @@ Dettagli: [algoritmi.md](algoritmi.md) §5. Nessun accesso a file, nessuna casua | Funzione | Cosa fa | |---|---| | `valido(fit)` | convergente, nessun parametro a limite, identificabile, AICc finito | -| `scegli(fit_list, sigma, cfg) → (fit, motivo, adeguato)` | regola di scelta ([algoritmi.md](algoritmi.md) §6) | -| `_gradino(t, y, d)` | descrive il riscaldamento come salto ([algoritmi.md](algoritmi.md) §7) | -| `_serie(ty, yy, sigma, tipo, fissi, cfg)` | fit di tutti i modelli del tipo per una serie e scelta; `indeterminato` se troppo corto | +| `fit_scelto(voce)` | il fit scelto di una voce di serie, o `None` (indeterminato, riscaldamento) | +| `scegli(fit_list, sigma, cfg) → (fit, motivo, adeguato)` | regola di scelta ([algoritmi.md](algoritmi.md) §6); adeguato = scala robusta dei residui ≤ soglia·σ; `None` se σ non stimabile | +| `_gradino(t, y, d)` | descrive il riscaldamento come salto misurato sui campioni ([algoritmi.md](algoritmi.md) §7) | +| `_valore(dominio, nome, t)`, `_finale(risultati)`, `_affina_salti(t, serie, risultati, domini)` | valore del modello scelto in $t$; raffreddamento finale; sostituisce la misura del salto con la stima dai modelli adiacenti o, in mancanza, con la misura corretta con $c$, $\tau$ del finale (§7) | +| `_serie(ty, yy, sigma, tipo, fissi, cfg)` | fit di tutti i modelli del tipo per una serie e scelta; `indeterminato` se i campioni sono meno di `n_min_punti` (`n_min_punti_parametri_fissi` con parametri fissi) | | `analizza_domini(t, serie, domini, cfg) → list` | un *Risultato* per dominio; ordine: raffreddamento finale, poi gli altri ([algoritmi.md](algoritmi.md) §5b) | ## `uscita.py` — cartelle, grafici, report @@ -126,6 +130,7 @@ Dettagli: [algoritmi.md](algoritmi.md) §5. Nessun accesso a file, nessuna casua | `sovrapposizione_generale(...)` | passo 2a: `sovrapposizione_.png` | | `sovrapposizione_domini(...)` | passo 2b: `dominio_.png` | | `scrivi_report(cartella, risultati, nome_csv, serie_nomi, cfg)` | passo 3: `report.md` e `risultati.json` | +| `_senza_nan(x)` | copia con NaN/∞ sostituiti da `None`: `risultati.json` è sempre JSON valido (`allow_nan=False`) | | `_num`, `_params`, `_eq_numerica`, `_salto` | formattazione LaTeX (valori, parametri ± IC, equazione con i valori sostituiti, salto) | Il report incorpora le immagini con percorsi **relativi** (`../01_domini/domini.png`, …): cambiando nomi di file o cartelle vanno aggiornati diff --git a/docs/output.md b/docs/output.md index 7acadba..269c68f 100644 --- a/docs/output.md +++ b/docs/output.md @@ -4,7 +4,7 @@ Ogni analisi scrive in `output//` (la cartella `output/` è ignora nell'ordine di esecuzione. Chi produce cosa: [moduli.md](moduli.md) (`uscita.py`). ``` -output/gen_1/ +output/gen_7/ ├── 01_domini/ passo 1 — suddivisione dei dati │ ├── domini.png dati grezzi con i domini (colore per tipo, numerati) + zoom sui gradini │ └── domini.toml domini usati, modificabili a mano ([uso.md](uso.md)) @@ -45,10 +45,10 @@ non descritti dal modello (A14), non un errore del fit. ## `02_sovrapposizione/dominio_.png` -- **Riposo e raffreddamento**: punti grigi = campioni esclusi dal fit; punti neri = campioni usati; **linea continua** = modello scelto +- **Riposo e raffreddamento**: punti neri = campioni usati nel fit; punti grigi = campioni esclusi (solo se `scarta_dopo_salto_n` > 0); **linea continua** = modello scelto (nel colore del dominio, con $\mathrm{RMSE}$ in legenda); **tratteggiate** = gli altri modelli validi (confronto); sotto i residui del modello scelto. - **Riscaldamento**: la salita (pallini rossi) con 8 campioni di contesto prima e dopo, e nel titolo $\Delta$, numero di campioni e durata. Nessuna curva. -- Dominio indeterminato: solo i dati, con «indeterminato» nel titolo. +- Dominio indeterminato: solo i dati (un pannello, senza residui), con «indeterminato» nel titolo. ## `03_report/report.md` @@ -61,20 +61,20 @@ con i valori sostituiti): servono un visualizzatore Markdown con supporto matema | 1. Suddivisione in domini | `domini.png` e tabella (#, tipo, $t_0$, $t_1$, campioni) | | 2. Equazioni trovate | criterio di scelta con le soglie correnti; tabella (dominio, tipo, serie, modello, equazione e parametri ± IC) con una riga per dominio e serie; i riscaldamenti hanno il salto | | 3. Sovrapposizione dati–equazioni | un grafico per serie | -| 4. Dettaglio per dominio | per ogni dominio e serie: grafico, modello scelto, equazione con i valori ($$…$$), parametri ± IC, $\sigma_\text{rumore}$, $\mathrm{RMSE}$, $R^2$, $\rho_1$, motivo, tabella di tutti i modelli provati ($k$, RMSE, AICc, BIC, $\rho_1$, valido) | +| 4. Dettaglio per dominio | per ogni dominio e serie: grafico, modello scelto, equazione con i valori ($$…$$), parametri ± IC, $\sigma_\text{rumore}$ (se stimabile), $\hat\sigma_\text{res}$ (scala robusta dei residui), $\mathrm{RMSE}$, $R^2$ (non per `costante`, per cui non ha senso), $\rho_1$, motivo, tabella di tutti i modelli provati ($k$, RMSE, $\hat\sigma_\text{res}$, AICc, BIC, $\rho_1$, valido); il titolo riporta l'intervallo $t_0 \le t \le t_1$ (primo e ultimo campione del dominio) | ### Come leggere i messaggi | Messaggio | Significato | Cosa fare | |---|---|---| -| **salto** (riscaldamento) | salita rapida descritta, non fittata (A23) | niente: $\Delta$ è per difetto | +| **salto** (riscaldamento) | salita rapida descritta, non fittata (A23): $\Delta$ stimato dai modelli adiacenti (misura accanto); «misura riportata all'istante del gradino con $c$ e $\tau$ del raffreddamento finale» se manca un modello vicino; «misurato sui campioni» se manca anche quello | niente: la misura sui campioni è per difetto (fino a ≈ 10–20 %), le altre due stime no (errore tipico < 1 %, massimo ≈ 3 % su 60 seed) | | **(fisso)** accanto a un parametro | tenuto costante al valore del raffreddamento finale (A8); l'IC di $A$ è condizionato (A18) | niente; per disattivarlo vedi [configurazione.md](configurazione.md) | -| **modello non adeguato** ($\mathrm{RMSE} > 1.3\,\sigma$) | il modello scelto è il migliore tra quelli validi ma non spiega tutta la varianza | guarda $\rho_1$ e i residui: tipicamente scarti casuali (A14) | -| **Indeterminato** | nessun modello valido, o meno di `n_min_punti` campioni | verifica la suddivisione (domini troppo corti?) | +| **modello non adeguato** ($\hat\sigma_\text{res} > 1.5\,\sigma$) | anche la scala **robusta** dei residui ($1.4826\,\mathrm{MAD}$, che ignora gli scarti casuali) supera il rumore: il modello scelto non spiega i dati | verifica la suddivisione dei domini e i residui: con modello e domini giusti non succede (0 su 120 raffreddamenti finali in validazione) | +| **Indeterminato** | nessun modello valido, oppure meno di `n_min_punti` campioni (`n_min_punti_parametri_fissi` nei raffreddamenti con $c$ e $\tau$ fissi): il motivo indica quale | verifica la suddivisione: tra gradini a meno di ≈ 1.2 s restano meno di 4 campioni | | «valido: no» in tabella | fit non convergente, $\tau$ al limite o non identificabile ([algoritmi.md](algoritmi.md) §5.6) | un modello più semplice può essere preferito | ## `03_report/risultati.json` Lista di domini con tutti i fit e tutte le metriche, anche dei modelli scartati. Schema dei campi: [moduli.md](moduli.md), «Strutture dati comuni». -È JSON valido (i campi non applicabili, come `sigma` del riscaldamento, sono `null`), adatto a elaborazioni successive (confronti tra +È JSON valido anche in presenza di NaN (i campi non applicabili o non calcolabili, come `sigma` del riscaldamento o con meno di 8 campioni, sono `null`), adatto a elaborazioni successive (confronti tra analisi, tabelle). diff --git a/docs/panoramica.md b/docs/panoramica.md index 6185349..a6265f4 100644 --- a/docs/panoramica.md +++ b/docs/panoramica.md @@ -18,36 +18,38 @@ Il sensore parte dalla temperatura ambiente (**riposo**). Poi il campione viene di secondo (pochi campioni, **riscaldamento**) e subito dopo decade verso l'ambiente (**raffreddamento**). Con più gradini ravvicinati (2–4 s) il decadimento di ognuno è interrotto dal successivo; dopo l'ultimo gradino il raffreddamento prosegue fino all'ambiente. -![Segnale del seed 1: i 7 domini, lo zoom sui gradini e la tabella dei risultati](img/domini_esempio.png) +![Segnale del seed 7: i 7 domini, lo zoom sui gradini e la tabella dei risultati](img/domini_esempio.png) -*Figura: dati reali di `input/gen_1.csv` (serie `T_C`) con i domini riconosciuti da `fitseg` e le equazioni trovate. In alto il segnale completo, al +*Figura: dati reali di `input/gen_7.csv` (serie `T_C`, seed 7 di `gen_data`) con i domini riconosciuti da `fitseg` e le equazioni trovate. In alto il segnale completo, al centro lo zoom sui tre gradini, in basso la tabella che associa a ogni numero tipo, intervallo ed equazione. Il riscaldamento è rosso, il riposo grigio e ogni raffreddamento ha un colore diverso. Con 3 gradini i domini sono $1 + 2\cdot 3 = 7$.* -Il generatore dei dati di prova è il repository fratello `../gen_data` (modello e parametri: `../gen_data/docs/SPEC.md`). Le sue -caratteristiche che contano per `fitseg` sono elencate in [assunzioni.md](assunzioni.md), sezione «Origine dei dati di prova». +Il generatore dei dati di prova è il repository fratello `../gen_data` (modello e parametri: `../gen_data/docs/SPEC.md`): a ogni seed sorteggia numero +dei gradini (1–3), costante di tempo, rumore e disturbi, quindi ogni file ha una struttura diversa. Le sue caratteristiche che contano per `fitseg` sono +elencate in [assunzioni.md](assunzioni.md), sezione «Origine dei dati di prova». ## Concetti | Termine | Significato | |---|---| | **serie** | una colonna del CSV da approssimare (`T_C` temperatura, `dT_C` differenza dall'ambiente). Tutte le serie condividono gli stessi domini | -| **gradino** | salto positivo di temperatura tra due campioni consecutivi, sopra `soglia_gradino_c` | +| **gradino** | salita positiva di temperatura, distribuita su 2–4 campioni, la cui salita complessiva supera `soglia_gradino_c` | | **dominio** | tratto contiguo di campioni con un tipo: `riposo`, `riscaldamento` o `raffreddamento` | -| **riscaldamento** | la salita rapida di un gradino (2–3 campioni): troppo breve per un fit, è descritta come **salto** ($\Delta$, da → a, durata) | +| **riscaldamento** | la salita rapida di un gradino (2–4 campioni): troppo breve per un fit, è descritta come **salto** ($\Delta$, da → a, durata) | | **raffreddamento** | il decadimento dopo un gradino, fino al gradino successivo o alla fine; modello esponenziale | | **raffreddamento finale / intermedio** | il finale è l'ultimo dominio (il più lungo, parametri liberi); gli intermedi stanno tra due gradini (corti) e ricevono $c$ e $\tau$ dal finale | | **modello** | una famiglia di equazioni (`costante`, `lineare`, `esp_decad`); vedi [algoritmi.md](algoritmi.md) §5.1 | | **parametro fisso** | parametro tenuto costante nel fit (non conta nei gradi di libertà); marcato «(fisso)» nel report | | **indeterminato** | nessun modello valido, oppure dominio con meno di `n_min_punti` campioni | -| **non adeguato** | modello scelto ma con $\mathrm{RMSE} > 1.3\,\sigma$: la forma non spiega tutto il rumore | +| **non adeguato** | modello scelto ma con $\hat\sigma_\text{res} > 1.5\,\sigma$ (scala robusta dei residui, che ignora gli scarti casuali): il modello non spiega i dati | | **tempo del dominio** | $t' = t - t_0$, con $t_0$ il tempo del primo campione del dominio | -## Esempio (seed 1 di `gen_data`) +## Esempio (seed 7 di `gen_data`) -La figura sopra è il risultato di `fitseg analizza input/gen_1.csv` su `T_C`: sul raffreddamento finale $\tau = 16.08 \pm 0.07$ s, $c = 23.00$ °C, $A = 179.6$ °C; -i due raffreddamenti intermedi usano gli stessi $c$ e $\tau$ e stimano solo $A$ ($84.3$ e $148.3$ °C); i tre riscaldamenti sono salti di $+82.2$, $+71.1$ e $+60.8$ °C. -Il valore nominale del generatore è $\tau = 1/k = 15.9$ s (con $k$ perturbato del 2 % per seed): il fit lo recupera entro l'1 %. +La figura sopra è il risultato di `fitseg analizza input/gen_7.csv` su `T_C`: sul raffreddamento finale $\tau = 12.12 \pm 0.04$ s, $c = 23.92$ °C, $A = 163.2$ °C; +i due raffreddamenti intermedi usano gli stessi $c$ e $\tau$ e stimano solo $A$ ($76.7$ e $124.5$ °C); i tre riscaldamenti sono salti di $+79.7$, $+71.4$ e $+90.2$ °C. +I valori veri del seed 7 sono $\tau = 1/k = 12.07$ s e salti di $79.6$, $71.1$ e $89.4$ °C: il fit li recupera entro lo 0.5 % ($\tau$) e l'1 % (salti). +Su 60 seed diversi l'errore su $\tau$ resta sotto il 2 % ([test.md](test.md)). ## Dove andare avanti diff --git a/docs/test.md b/docs/test.md index 9a748dd..4824d0f 100644 --- a/docs/test.md +++ b/docs/test.md @@ -1,33 +1,52 @@ # Test ```bash -.venv/bin/pytest # tutti (≈ 7 s) +.venv/bin/pytest # tutti (≈ 30 s) .venv/bin/pytest tests/test_fit.py # un file .venv/bin/pytest -k raffreddamento # per nome +.venv/bin/pytest -k validazione # solo la validazione contro i parametri veri (la parte lenta, ≈ 25 s) .venv/bin/pytest -x -q # ferma al primo errore, output breve .venv/bin/pytest -rs # mostra i test saltati e il motivo .venv/bin/ruff check src tests # stile e import (deve passare) ``` -## Due livelli +## Tre livelli -| Livello | File | Dati | Se i CSV mancano | +| Livello | File | Dati | Richiede | |---|---|---|---| -| **Unitari** | `test_domini`, `test_fit`, `test_selezione`, `test_config_dati` | segnale sintetico generato nei test (`conftest.py`) | girano comunque | -| **Integrazione** | `test_integrazione` | `input/gen_{1,2,3}.csv` di `gen_data`; CLI | **saltati** (non falliti) | +| **Unitari** | `test_domini`, `test_fit`, `test_selezione`, `test_config_dati` | segnale sintetico generato nei test (`conftest.py`) | niente | +| **Report e CLI** | `test_report`, `test_cli` | CSV sintetici scritti in una cartella temporanea | niente | +| **Validazione** | `test_validazione` | 20 seed generati al volo da `../gen_data`, confrontati con i suoi **parametri veri** | il repository fratello `../gen_data` (altrimenti i test sono saltati) | -Un clone nuovo non ha i CSV (`input/*.csv` è ignorato da git): i test unitari bastano per lavorare sul codice; per quelli di integrazione si generano -i CSV come in [uso.md](uso.md) §2. +Nessun test usa i file in `input/`: i test girano su un clone nuovo e non dipendono dal contenuto di quella cartella. ## Il segnale sintetico (`tests/conftest.py`) $$T(t) = T_\text{amb} + \sum_j A_j\,e^{-(t-t_j)/\tau}\,\mathbb{1}[t \ge t_j] + \varepsilon, \qquad \varepsilon \sim \mathcal{N}(0, 0.1^2)$$ -con $T_\text{amb} = 23$, $\tau = 16$ s, gradini $(t_j, A_j) = (15, 80), (18, 70), (22, 60)$, campionamento 0.15 s, 120 s, **nessun scarto casuale**. La verità è nota, quindi si -possono controllare numericamente i parametri recuperati. La funzione `segnale(...)` accetta rumore, seme, gradini e durata per costruire casi particolari -(nessun gradino, un gradino, gradino sotto soglia). `dT_C` = $T - T_\text{amb}$. Fixture: `cfg` (config reale), `sintetico`, `csv_gen` (un CSV `gen_data`, saltato se assente). +con $T_\text{amb} = 23$, $\tau = 16$ s, gradini $(t_j, A_j) = (15, 80), (18, 70), (22, 60)$, campionamento 0.15 s, 120 s, **nessuno scarto casuale e nessuna risposta del sensore** +(il gradino è un solo campione). La verità è nota, quindi si controllano i parametri recuperati. `segnale(...)` accetta rumore, seme, gradini e durata per +costruire casi particolari; `scrivi_csv(...)` scrive un CSV nel formato di `gen_data`. `dT_C` = $T - T_\text{amb}$. Fixture: `cfg` (config reale), `sintetico`. -## `test_domini.py` — suddivisione (assunzioni A5, A6, A21) +## Validazione contro i parametri veri (`test_validazione.py`) + +`../gen_data` sorteggia a ogni seed i parametri di una corsa (numero e istanti dei gradini, ampiezze, $k$, rumore, scarti: [assunzioni.md](assunzioni.md), «Origine dei dati di +prova»). Poiché il sorteggio è riproducibile (`genera.sorteggia(cfg, default_rng(seed))`), per ogni seed si conoscono i valori veri. Il test, per i seed 1–20, +genera il CSV, lancia l'analisi e controlla: + +| Controllo | Tolleranza | Osservato su 60 seed | +|---|---|---| +| numero di gradini trovati = numero vero | esatto | 60/60 | +| istante di ogni gradino | < 0.3 s (due campioni) | ≤ 0.15 s | +| $\tau$ del raffreddamento finale ($\tau\cdot k = 1$) | ± 3 % | massimo 1.99 %, scarto quadratico medio 0.39 % | +| ampiezza $A$ di ogni raffreddamento (su `dT_C`) = somma dei decadimenti dei gradini precedenti | ± 4 % | massimo 2.14 %, media +0.45 % (ritardo del sensore, A25) | +| salto $\Delta$ stimato (modelli o misura corretta) = ampiezza vera del gradino | ± 5 % | massimo 3.16 %, media +0.33 % (124 salti, tutti dai modelli) | +| un raffreddamento è indeterminato solo se ha meno campioni del minimo con parametri fissi | esatto | nessun caso | + +Misure fatte per decidere, non verificate dal test: il $\tau$ vero cade nell'intervallo al 95 % nel 73 % dei casi ([limiti.md](limiti.md)); la scala robusta dei residui del +modello giusto è 0.97–1.40 volte $\sigma$ su 120 raffreddamenti finali. Le tolleranze lasciano margine: se un seed nuovo le supera è un segnale di regressione o di un caso non coperto. + +## `test_domini.py` — suddivisione (A5, A6, A21) | Test | Verifica | |---|---| @@ -35,49 +54,56 @@ possono controllare numericamente i parametri recuperati. La funzione `segnale(. | `test_riscaldamento_e_la_salita_rapida` | ogni riscaldamento ha ≤ 3 campioni | | `test_confini_vicini_agli_istanti_dei_gradini` | l'inizio di ogni riscaldamento è entro 0.5 s dal gradino vero | | `test_domini_contigui_e_completi` | primo `i0 = 0`, ultimo `i1 = n`, nessun buco | -| `test_senza_gradini_un_solo_riposo` | nessun gradino → solo riposo | -| `test_un_solo_gradino` | riposo, riscaldamento, raffreddamento | +| `test_senza_gradini_un_solo_riposo`, `test_un_solo_gradino` | nessun gradino → riposo; un gradino → riposo, riscaldamento, raffreddamento | | `test_gradino_sotto_soglia_ignorato` | un salto di 10 °C (< soglia) non è un gradino | -| `test_domini_toml_andata_e_ritorno` | scrivere e rileggere `domini.toml` dà gli stessi domini | -| `test_domini_toml_non_contigui_rifiutati` | domini non contigui → `ValueError` | -| `test_domini_toml_tipo_non_valido` | tipo sconosciuto → `ValueError` | +| `test_gradino_distribuito_su_due_campioni_sotto_soglia` | salita di 38 °C divisa in 19 + 19: nessun salto supera la soglia ma la salita complessiva sì → è un gradino | +| `test_salita_complessiva_sotto_soglia_non_e_un_gradino` | 16 °C in due campioni (< 20) → nessun gradino | +| `test_domini_toml_*` | andata e ritorno; domini non contigui → `ValueError`; tipo sconosciuto → `ValueError` | -## `test_fit.py` — fit e analisi (A7, A8, A13, A18, A22, A23) +## `test_fit.py` — fit e analisi (A7, A8, A9, A13, A18, A22, A23) | Test | Verifica | |---|---| | `test_modelli_valutazione` | valori dei modelli; il registro contiene esattamente `costante`, `lineare`, `esp_decad` | | `test_esp_decad_recupera_parametri` (5 seed) | $\tau$ entro il 2 %, $c$ entro 0.2, $A$ entro il 2 %, $\mathrm{RMSE} \approx \sigma$, fit valido | -| `test_parametri_fissi_restano_fissi` | $c$ e $\tau$ fissi restano invariati, $k = 1$, $A$ recuperata entro il 3 % | +| `test_parametri_fissi_restano_fissi` | $c$ e $\tau$ fissi invariati, $k = 1$, $A$ entro il 3 % | | `test_tau_libero_non_identificabile_su_tratto_corto_e_rumoroso` (5 seed) | su 3 s con disturbi di 2 °C, $\tau$ libero è «non identificabile» (motivo del fissaggio) | -| `test_analisi_completa_sintetico` | 7 domini; finale con $\tau$ entro il 3 % e nessun parametro fisso; intermedi con `c`, `tau` fissi uguali al finale; ampiezze $A$ degli intermedi entro il 5 % dal valore atteso | -| `test_riscaldamento_descritto_come_salto_non_fittato` | `fit` vuoto, `scelta` assente, $\Delta$ entro il 15 % dell'ampiezza vera, ≤ 3 campioni | +| `test_analisi_completa_sintetico` | 7 domini; finale con $\tau$ entro il 3 % e nessun parametro fisso; intermedi con `c`, `tau` fissi uguali al finale e $A$ entro il 5 % | +| `test_riscaldamento_descritto_come_salto_non_fittato` | `fit` vuoto, `stima` = `modelli`, $\Delta$ entro il 3 % dall'ampiezza vera, misura entro il 15 % | +| `test_salto_con_tratto_adiacente_indeterminato_usa_la_misura_corretta` | tratto intermedio indeterminato: `stima` = `misura corretta`, più vicina al vero della misura e entro il 3 % | +| `test_salto_senza_modelli_adiacenti_resta_la_misura` | gradino senza raffreddamento dopo: `stima` = `misura`, $\Delta$ = misura | +| `test_raffreddamento_corto_con_parametri_fissi_si_fitta` | tratto intermedio sotto `n_min_punti` ma sopra il minimo con parametri fissi: fittato, $A$ entro il 3 % | +| `test_troppo_corto_anche_per_i_parametri_fissi` | tratto di 1–2 campioni → indeterminato, il motivo cita `n_min_punti_parametri_fissi` | | `test_un_solo_raffreddamento_resta_libero` | un solo gradino → il raffreddamento (finale) non ha parametri fissi | -| `test_dominio_troppo_corto_indeterminato` | 5 campioni → `indeterminato` | +| `test_dominio_troppo_corto_indeterminato` | 5 campioni → indeterminato, il motivo cita `n_min_punti` | | `test_riproducibile` | due esecuzioni identiche danno risultati identici | +| `test_sigma_non_stimabile_con_pochi_campioni` | meno di 8 campioni → σ `nan`, da 8 in su finita | +| `test_tratto_corto_e_quantizzato_non_diventa_non_identificabile` | regressione: 5 campioni quantizzati (σ ≈ 0 con la MAD) → σ `null`, adeguatezza `null`, fit valido con $A$ corretta | +| `test_adeguatezza_ignora_gli_scarti_casuali` | modello giusto con 4 scarti casuali: $\mathrm{RMSE} > 1.3\,\sigma$ ma $\hat\sigma_\text{res} \le 1.5\,\sigma$ → adeguato, $\tau$ entro il 3 % | ## `test_selezione.py` — regola di scelta ([algoritmi.md](algoritmi.md) §6) -Su fit finti costruiti a mano: vince il modello con meno parametri entro $\Delta\mathrm{AICc}$; vince il migliore oltre la soglia; si scartano non -convergenti, a limite, non identificabili; nessun valido → indeterminato; si preferiscono i modelli adeguati anche con AICc peggiore; nessun adeguato → -scelto ma segnalato. +Su fit finti: vince il modello con meno parametri entro $\Delta\mathrm{AICc}$; vince il migliore oltre la soglia; si scartano non convergenti, a limite, non identificabili; nessun valido +→ indeterminato; si preferiscono i modelli adeguati (scala robusta dei residui) anche con AICc peggiore; l'adeguatezza usa la scala robusta e non la RMSE; nessun adeguato → scelto +ma segnalato (`adeguato` = `false`); σ non stimabile → adeguatezza non valutabile (`null`); il motivo cita la parsimonia solo se ci sono più modelli equivalenti. ## `test_config_dati.py` — errori di configurazione e CSV (A1, A2) -`config.toml` reale valido; chiave mancante; lista dei modelli vuota per un tipo; file di configurazione inesistente; CSV valido (conversione -ms → s); colonna mancante; tempo non crescente. +`config.toml` reale valido; chiave mancante; lista dei modelli vuota per un tipo; file di configurazione inesistente; CSV valido (conversione ms → s); colonna +mancante; tempo non crescente. -## `test_integrazione.py` — su `gen_data` e CLI +## `test_report.py` — forma del report e dei grafici -| Test | Verifica | -|---|---| -| `test_domini_su_csv_gen` (3 seed) | 7 domini nell'ordine atteso | -| `test_raffreddamento_tau_nominale` (3 seed) | raffreddamento finale: `esp_decad`, $\tau$ entro il 10 % di 15.9 s | -| `test_raffreddamenti_intermedi_ereditano_costanti` (3 seed) | intermedi con `c`, `tau` fissi uguali al finale, $A > 0$ | -| `test_cli_domini_e_analizza` | `fitseg domini` scrive solo `01_domini/`; `analizza --domini` scrive sovrapposizione e report; il report rimanda alle immagini giuste; formule principali in LaTeX e `$` bilanciati su ogni riga | -| `test_cli_errori` | CSV inesistente → exit 4; configurazione inesistente → exit 3 | +Su CSV sintetici: nessun «indeterminato: indeterminato» e il motivo cita il minimo; `risultati.json` è JSON valido anche con domini indeterminati (nessun NaN, `sigma` `null`); `_senza_nan`; la scala robusta dei residui è nel report; nessun $R^2 = -0.0000$ e nessun $R^2$ per `costante`; intervallo del dominio +$t_0 \le t \le t_1$; salto «stimato dai modelli adiacenti (misurato sui campioni: …)»; motivo senza clausola di parsimonia con un solo modello; il grafico di un +dominio indeterminato ha un solo pannello (senza residui). + +## `test_cli.py` — CLI + +`fitseg domini` scrive solo `01_domini/`; `analizza --domini` (domini corretti a mano) scrive sovrapposizione e report, che rimanda alle immagini giuste e ha le formule +principali in LaTeX con i `$` bilanciati su ogni riga; CSV inesistente → exit 4; configurazione inesistente → exit 3. ## Cosa non è coperto -Seed oltre i tre di `gen_data`; rumore e gradini molto diversi dalla configurazione d'esempio; dati reali; i grafici (si controllano a vista, [output.md](output.md)). -Prova manuale dopo una modifica: `fitseg analizza input/gen_1.csv` e controllare in `report.md` i 7 domini e $\tau \approx 16$ s nel finale. +Dati reali; rumore e disturbi molto diversi dagli intervalli di `gen_data`; i grafici nei dettagli (si controllano a vista, [output.md](output.md)). +Prova manuale dopo una modifica: `fitseg analizza input/gen_7.csv` e controllare in `report.md` i 7 domini e $\tau \approx 12.1$ s nel finale. diff --git a/docs/uso.md b/docs/uso.md index 55612f9..cadbf06 100644 --- a/docs/uso.md +++ b/docs/uso.md @@ -22,21 +22,21 @@ t_ms,T_C,dT_C 301,22.63,0.03 ``` -I CSV di prova si generano con il repository fratello `../gen_data` (modello: `../gen_data/docs/SPEC.md`). I test di integrazione usano i seed 1–3: +I CSV di prova si generano con il repository fratello `../gen_data` (modello: `../gen_data/docs/SPEC.md`). A ogni seed il generatore sorteggia numero dei gradini +(1–3), costante di tempo, rumore e disturbi: ogni file ha una struttura diversa. ```bash mkdir -p input -for s in 1 2 3; do - (cd ../gen_data && .venv/bin/python genera.py config.toml --seed $s -o ../EquationMiner/input/gen_$s.csv) -done +(cd ../gen_data && .venv/bin/python genera.py config.toml --seed 7 -o ../EquationMiner/input/gen_7.csv) ``` +I test **non** richiedono questi file: generano i dati da soli ([test.md](test.md)). ## 3. Comandi ```bash -fitseg domini input/gen_1.csv # passo 1: come verrebbero suddivisi i dati (tabella, domini.png, domini.toml), nessun fit -fitseg analizza input/gen_1.csv # tutti i passi: domini, equazioni, sovrapposizione, report -fitseg analizza input/gen_1.csv --domini output/gen_1/01_domini/domini.toml # con i domini corretti a mano +fitseg domini input/gen_7.csv # passo 1: come verrebbero suddivisi i dati (tabella, domini.png, domini.toml), nessun fit +fitseg analizza input/gen_7.csv # tutti i passi: domini, equazioni, sovrapposizione, report +fitseg analizza input/gen_7.csv --domini output/gen_7/01_domini/domini.toml # con i domini corretti a mano ``` | Opzione | Dove | Significato | @@ -71,6 +71,19 @@ con supporto matematico (formule in LaTeX). Gli errori sono stampati su stderr in italiano come `Errore: …`. -## 6. Sviluppo +## 6. Pulizia dei dati + +```bash +./pulisci.sh # svuota output/ e cancella input/*.csv, chiede conferma +./pulisci.sh -n # dry-run: mostra cosa cancellerebbe, senza cancellare +./pulisci.sh --solo-output # pulisce solo output/, lascia input/ com'è +./pulisci.sh -y # tutto, senza chiedere conferma +``` +Cancella: il contenuto di `output/` (cartella di `[output] cartella_output`: risultati che si rifanno rilanciando `fitseg analizza`) e i file `*.csv` in `input/` +(i dati grezzi: **non** si rigenerano da soli, si rifanno con `../gen_data`, §2, per questo chiede conferma salvo `-y`). Le cartelle e i loro `.gitkeep` +restano; i file di `input/` che non sono `.csv` non si toccano. Rifiuta percorsi di output assoluti o con `..`. Codici di uscita: 0 ok (o niente da pulire), 1 annullato o +percorso non sicuro, 2 opzione sconosciuta. + +## 7. Sviluppo Test e controllo dello stile: [test.md](test.md). Mappa del codice e come aggiungere un modello: [moduli.md](moduli.md).