From 7eb6cdf61ee2888f24bcd52e7fc3c88978a0e0f5 Mon Sep 17 00:00:00 2001 From: ilyamak04 Date: Wed, 30 Oct 2024 19:26:17 +0300 Subject: [PATCH] crappy commit --- db/POSTGRES.MD | 31 +++++++++ git/REMOTE_REPO.MD | 3 + java/COMMANDS.MD | 11 ++++ java/NOTES.MD | 0 linux/COMMANDS.MD | 42 ++++++++++++- linux/NOTES.MD | 47 +++++++++++++- other/FIND_AND_MEASURE_PG.MD | 27 ++++++++ other/SYSTEMD.MD | 34 ++++++++++ static/image.png | Bin 0 -> 59423 bytes vebsrv/tomcat/TOMCAT.MD | 119 +++++++++++++++++++++++++++++++++++ 10 files changed, 310 insertions(+), 4 deletions(-) create mode 100644 db/POSTGRES.MD create mode 100644 java/COMMANDS.MD create mode 100644 java/NOTES.MD create mode 100644 other/FIND_AND_MEASURE_PG.MD create mode 100644 other/SYSTEMD.MD create mode 100644 static/image.png create mode 100644 vebsrv/tomcat/TOMCAT.MD diff --git a/db/POSTGRES.MD b/db/POSTGRES.MD new file mode 100644 index 0000000..bcda0d6 --- /dev/null +++ b/db/POSTGRES.MD @@ -0,0 +1,31 @@ +[Cheat sheet](https://gist.github.com/Kartones/dd3ff5ec5ea238d4c546) + +- `sudo -u postgres psql postgres` +- `CREATE DATABASE имя_базы_данных;` +- `\l` - просмотр списка бд +- `\q` - выход + +--- +- `\c имя_базы_данных [имя_пользователя]` - подключение к бд или из bash `psql -U username -d database_name` + +- `\dt` - просмотр списка таблиц +- `\d [имя таблицы]` - показывает столбцы, типы данных и индексы +- `\dn` - список схем +- `\dt schema_name.*` - список таблиц в схеме +--- + +- `CREATE TABLE имя_таблицы (id SERIAL PRIMARY KEY, колонка1 тип, колонка2 тип, ...);` - создание таблицы + +- `DROP TABLE имя_таблицы;` +- `CREATE USER имя_пользователя WITH PASSWORD 'пароль';` +- `CREATE ROLE имя_роли;` +- `GRANT ALL PRIVILEGES ON DATABASE имя_базы TO имя_пользователя;` +- `DROP USER имя_пользователя;` +- `DROP ROLE имя_роли;` + +--- + +- `SELECT * FROM pg_stat_activity;` - просмотр текущий подключений +- `SELECT * FROM pg_locks;` - просмотр блокировок + + diff --git a/git/REMOTE_REPO.MD b/git/REMOTE_REPO.MD index 0ce20b6..8293547 100644 --- a/git/REMOTE_REPO.MD +++ b/git/REMOTE_REPO.MD @@ -2,3 +2,6 @@ - `git remote -v` - показывает все удалённые репозитории, которые связаны с локальным репозиторием - `git branch -vv` - показывает upstream ветку - `rm -rf /path/to/repo/.git` - git больше не будет отслеживать эту директорию +- `git config --global --list` +- `git config --global user.name "Ваше Имя"` +- `git config --global user.email "ваш_емейл@example.com"` diff --git a/java/COMMANDS.MD b/java/COMMANDS.MD new file mode 100644 index 0000000..7855e5c --- /dev/null +++ b/java/COMMANDS.MD @@ -0,0 +1,11 @@ +- `sudo alternatives --config java` + +--- + +Версия java +- `jar tf bftDsudDownloader.jar` +- `sudo jar xf bftDsudDownloader.jar io/netty/util/Timer.class` + +- `javap -verbose io/netty/util/Timer.class | grep "major version"` + + diff --git a/java/NOTES.MD b/java/NOTES.MD new file mode 100644 index 0000000..e69de29 diff --git a/linux/COMMANDS.MD b/linux/COMMANDS.MD index 453dfd0..8c4b94d 100644 --- a/linux/COMMANDS.MD +++ b/linux/COMMANDS.MD @@ -36,6 +36,21 @@ APT работает поверх более низкоуровневого инструмента `dpkg`, который непосредственно устанавливает .deb пакеты. - `sudo dpkg -i package_name.deb` - для установки `.deb` пакета - `sudo apt --fix-broken install` - если возникли проблемы с зависимостями + +--- + +- `rpm -ivh .rpm` - установка rpm пакета +- `rpm -e .rpm` - удаления пакета +- `rpm -Uvh .rpm` - обновление пакета, если он не установленЮ он установится +- `rpm -qi ` - просмотр информации о пакете +- `rpm -V ` - проверка целостности пакета +- `rpm -ql ` - список файлов в пакете +- `dnf install .rpm` - установка rpm пакета через dnf, dnf будет управлять зависимостями + +- `dnf install https://example.com/package-file.rpm` - установка rpm пакета напрямую из ссылки + +![](../static/image.png) + ### Сеть - `cat /etc/ssh/sshd_config | grep Port` - показывает на каком порту открыт ssh - `ss -tulpn` - информация о текущих сетевых соединениях и портах @@ -48,6 +63,8 @@ APT работает поверх более низкоуровневого ин - `speedtest-cli` - спидтест - `speedtest-cli --list` - список серверов - `speedtest-cli --server SERVER_ID` +- `fuser 9095/tcp` - проверить доступность порта + ### База - `cp -p` - сохранить атрибуты файлов (время создания, права, владельца) @@ -95,6 +112,9 @@ APT работает поверх более низкоуровневого ин - notice (5): Важные события. - info (6): Информационные сообщения. - debug (7): Отладочные сообщения. + - `journalctl -xe` + - x (или --catalog) — выводит дополнительные объяснения (аннотации) к некоторым сообщениям журнала. Это помогает понять детали ошибок или предупреждений, предлагая описания и возможные решения, если такие есть. + - e (или --pager-end) — открывает журнал в режиме постраничного просмотра и сразу прокручивает его до конца, показывая самые последние записи. - `smartctl -a /dev/sda` - смарт отчет диска, генерит сам диск - `free -m` - оперативная память @@ -105,7 +125,7 @@ APT работает поверх более низкоуровневого ин - `curl -Lv domain.ru` - получить html страницу - `curl -v telnet://127.0.0.1:22` - доступность порта -- `tcpdump -i any port 9100 -nn` - пакеты через этот порт ъ +- `tcpdump -i any port 9100 -nn` - пакеты через этот порт - `tar` - работа с архивами - `-cvf` - создать архив - `-xvf` - извлечь архив @@ -137,6 +157,14 @@ APT работает поверх более низкоуровневого ин - `sudo reboot now` - перезагрузка системы - `sudo shutdown now` - выключить компьютер - `watch "some command"` - переодически запускает команду + +- `lscpu` - информация о процессоре +- `lspci` - информация об устройствах подключенных к pci шине +- `lsusb` + +- `/var/log/dmesg` - логи загрузки системы +- `pstree` - дерево процессов +- `/usr/lib/systemd` - директория с юнитами по умолчанию ### Разное - `alt .` - перебирает последние аргументы из истории команд (`history`), если аргументов нет, то перебирает сами команды @@ -181,7 +209,7 @@ APT работает поверх более низкоуровневого ин - Показывает список всех подключенных устройств (жестких дисков, SSD и т.д.). - Отображает размер дисков, типы разделов, точки монтирования. - Полезно для диагностики, перед созданием или изменением разделов. -- `lsblk` - показывает дерево всех подключенных устройств, их разделы, точки монтирования. (`-f` - для более детальной информации) +- `lsblk` - показывает дерево всех подключенных устройств, их разделы, точки монтирования. (`-f` - для более детальной информации о файловых системах, `-p` - полные пути к устройствам, `-d` - показывает только диски, без разделов, `-J` - результат в виде json) - `sudo cfdisk <устройство>` - команда для работы с разделами диска @@ -212,4 +240,12 @@ mount [OPTIONS] - `sudo mount -t ext4 /dev/sda1 /mnt` - подключить с указанием типа файловой системы --- -`df -Th` - информация о файловых системах и их типах \ No newline at end of file +- `df -Th` - информация о файловых системах и их типах +- `du -sh *` - размеры файлов и директорий в текущей +- `lsblk -d -o name,rota` + - 1 это HDD (жесткий диск). + - 0 это SSD (твердотельный накопитель) +> диск с названием sr* это cd привод + +- `lsscsi` - отображает устройства, подключенные через интерфейс SCSI +- `cp /etc/fstab{,.bkp}` == `cp /etc/fstab /etc/fstab.bkp` diff --git a/linux/NOTES.MD b/linux/NOTES.MD index d1331f3..18b70e3 100644 --- a/linux/NOTES.MD +++ b/linux/NOTES.MD @@ -109,4 +109,49 @@ Swap-файл (или swap-раздел) — это специальная об Если целевой файл удален, символическая ссылка становится «битой» и неработоспособной, так как она указывает на несуществующий путь. Символические ссылки могут указывать на файлы или каталоги. Работают между различными файловыми системами. -Они легче по объему, поскольку содержат только путь к файлу, а не данные самого файла. \ No newline at end of file +Они легче по объему, поскольку содержат только путь к файлу, а не данные самого файла. + +--- +В файловой системе XFS иноды выделяются динамически, а вот в ext4 нет + +--- + +Блочные устройства отправляют данные блоками, символьные потоков данных + +--- + +Виртуальная файловая система — это файловая система, которая существует только в памяти и не хранит данные на диске. Примером является /proc, также известная как procfs (процессная файловая система). + +- Не хранит данные на диске: Виртуальная файловая система отображает информацию, которая создаётся динамически при запросе и не сохраняется на постоянных носителях. + +- Динамическое содержимое: Данные генерируются операционной системой в реальном времени. Например, содержимое файлов в /proc — это текущая информация о системе, процессах, памяти, конфигурациях и т.д., которая изменяется в зависимости от состояния системы. + +Почему система виртуальная + +- Отражение состояния системы: Виртуальные файловые системы, такие как /proc, работают как интерфейс для чтения и управления текущим состоянием системы и процессами. Эти файлы не сохраняют данные, а лишь отображают их. +- Экономия ресурсов: Так как информация хранится только в памяти, это позволяет быстро получать текущие данные, не записывая их на диск. + +- `/sys`: Динамическая информация о подключённых устройствах и драйверах. +- `/dev`: Содержит устройства, создаваемые динамически + +--- + +Динамическое создание: В большинстве современных систем устройства в /dev управляются с помощью udev (система управления устройствами), которая автоматически создаёт и удаляет файлы в зависимости от подключаемых устройств. + +Нет данных на постоянных носителях: Данные о состоянии устройств хранятся в памяти, а сами файлы в /dev отображают текущие устройства системы. + +Доступ через ядро: Когда обращаются к файлам в /dev, ядро перенаправляет запросы к соответствующим драйверам, позволяя операционной системе взаимодействовать с оборудованием и эмулированными устройствами. + +--- + +`.wants` + +Используется для слабых зависимостей. Если основной юнит запущен, он попытается запустить все юниты, указанные в его `.wants`, но не завершит работу, если какой-то из них не удастся запустить. + +Каталог `.wants` создается автоматически, если для юнита добавляют зависимость с WantedBy=. Например, для `foo.service` можно создать `foo.service.wants/`, чтобы там указать зависимости, которые желательно иметь. + +`.requires` + +Используется для сильных зависимостей. Если основной юнит не может запустить одну из служб, указанных в `.requires`, запуск основного юнита тоже завершится с ошибкой. + +Каталог `.requires` также создается при использовании директивы RequiredBy=, и его используют для критически необходимых зависимостей. \ No newline at end of file diff --git a/other/FIND_AND_MEASURE_PG.MD b/other/FIND_AND_MEASURE_PG.MD new file mode 100644 index 0000000..a581218 --- /dev/null +++ b/other/FIND_AND_MEASURE_PG.MD @@ -0,0 +1,27 @@ +- `ps -ef | grep -v grep | grep postgres` - определяем, есть ли процесс постгрес +- `which psql` - есть ли в локальном окружении +- `ss -tulpn` - ищем порт на котором слушает постгрес +- `sudo docker ps` - смотрим, какие контейнеры запущены +- `docker ps --format "{{.Names}}"` - только имена контейнеров +- `sudo docker inspect <имя_контейнера> | grep postgres` - есть ли постгрес в контейнере + +- `psql -V` или `/usr/bin/psql -V` - версия постгрес +- `psql -U postgres -c "SELECT pg_database.datname AS database_name, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database;"` - смотрим базы и их размер +- `psql -U postgres -c "SELECT pg_size_pretty(SUM(pg_database_size(pg_database.datname))) AS total_size FROM pg_database;"` - общий размер всех баз + +- `psql -U postgres -c "SHOW data_directory;"` + +- `df -sh ` - размер директории с данными баз, логами, конфигами, транзакциями и т.д. +- `psql -U postgres -c "SHOW port;"` + +--- +`sudo find / -type f -name "*.backup" -o -name "*.sql" -o -name "*.dump"` - этой командой можно поискать бэкапы + +--- +- `docker volume ls` +- `docker volume inspect ` +- `docker inspect | grep -i mount` +- `docker inspect | grep -i volumes` +- `docker port ` +- `docker inspect | grep -i port` + \ No newline at end of file diff --git a/other/SYSTEMD.MD b/other/SYSTEMD.MD new file mode 100644 index 0000000..40c160e --- /dev/null +++ b/other/SYSTEMD.MD @@ -0,0 +1,34 @@ +### Создание юнита + +- в каталоге для хранения unit файлов `cd /etc/systemd/system/` создаём файл с расширением `.service` для службы +- ```bash + sudo vi /etc/systemd/system/myservice.service + ``` +- пишем `unit` файл +```bash +[Unit] +Description=Описание сервиса +After=network.target # Определяет, когда сервис должен запускаться (например, после сети) + +[Service] +ExecStart=/path/to/your/executable_or_script # Команда для запуска сервиса +ExecStop=/path/to/stop/script (необязательно) # Команда для остановки сервиса, если нужно +ExecReload=/path/to/reload/script (необязательно) # Команда для перезагрузки +User=your_user # Пользователь, от которого запустится сервис (если нужно) +Group=your_group # Группа (если нужно) +Restart=always # Политика перезапуска (может быть "on-failure", "always", "no") +RestartSec=5 # Задержка перед перезапуском +Environment="ENV_VAR=value" # Можно задавать переменные окружения + +[Install] +WantedBy=multi-user.target # Указывает, что сервис должен запускаться в multi-user режиме (стандартный для большинства серверов) +``` +> `multi-user` - многопользовательский текстовый режим +- `sudo systemctl daemon-reload` - обновить конфигурацию systemd +- `sudo systemctl enable myservice.service` +- `sudo systemctl start myservice.service` +- `sudo systemctl status myservice.service` + + + + diff --git a/static/image.png b/static/image.png new file mode 100644 index 0000000000000000000000000000000000000000..4b53e54f417045d6a999f8bf324f17831d1e3036 GIT binary patch literal 59423 zcmb@uWmr_v+c!!xlnmW1FiJ}!Fff8BA)yZ4(%lULLrW;#p(sk1G)N;2f*_sJ9Rmz; z_V|CE_q^|Q&WH0{*ZBbK*{n5t?X}ik>;A>PqcmP9kr2`oVqjp9Jb$L3g@J)Bih+UU z0Kx;#kUll)0RCXQX(_=l%7z)YfDbrU@@n!J7?trv*QU6@X9DMEx^5U4_d3x(n7vL# zZ!j=6YMv{|zw$QPZ6UgT{n`lG_PJ|WtN=`$_h#uv>;o(+U3N9{L4q}1lI%}}h(XOj z=bKxeiC2vY&n=?0Hcw0_)DsHR5~6ga!ta|v3Zl3=A$`vxrRH#a|1SDfwnd!j@3xG{ z)-4`nEgqZ%ww&)|Ri7{He4koJ87>~oY`8s%xObC70Ryoiz_3W_b<_uS^bzpU`uUr$ zWUxrCe5b|MGVOAs{i2U?%CL;kP<+zH`6jQXc-bomfsOGi0ibX{Tj5g>TgF@YP`rly z`6lkRjKl!cc>}5J1?%OcY>^T0jg<2HRxr?5yGfL_XFF3LhmV86zpByf=&Dk*2E}?| z=Yz%DiXb)x%}*1+Z~R~Oeu~G|BhBCb)mK!G{nsvVLE(ebg109l&_%U0!S-yg1)qH) zH}}*N2_=Ujc0*yWjlf zqc0f@q?u$;__rMN2(b|cGe?nf~8{Dv%2GAQtD zdvZTT-|>i=5okwu!eP#f!ZX*SZki?rr{=M}>B`QbEJvn;vmEe=d(F8-ph_37_@L8w z-Nx5pvu#0b+V;-ssF|tOlrB~TxFEgZ`gmae38~Cl;E8yUFacRl7>&{9?Z(}8uH)fS zJ7*X$3JND5Y`$KeK=0hd{V$yF0){d~_jio%d_Uv<-ETTLPh3R?EFv3*GR09;RZc;u z*`K-_^HW?evNpp>7~oeUn71YNo#7-47JIwZBc62&zQtZ%e#m*Rn_9MN%b{aJDqh3J ziJ=^s*&y+dT^>8XOKTP*F4~S_o$6DKd>=GaIT#47ZSB=9dXh>XzSVE? zEG1%^7Bhfp>5AQI$8gPW*^73zW4h;uRAVx zggM?`U&>08Y;%`iuhDRxbWy0EZsomkoc%s@b7p*3iyCOV9$5QkzjCGD7TD6X9L_Lz z)XQ?fz0=}{Y}7XL>7Msm43G^lpD5DYZ`>(!`;r^zYa>8q6SVPo(FGXxpq&9+=tU@W zv-N7S{HpOPnB^jPTsTj5(Px8cF{Q)G^B4$1+9fG<#P% zxz&V8y8W&BgM7W;P&og@DClM?X#Q;L*G6RXsH|h_rKJFf$!$=`=qKs(7y&MOJD~~G zaQ5T*U+U1k+covu`vgN=#Ut0#@i%ESCeK49qDW(S!RIk;7cu(s zS05`s%fQg4L}Ws5SD~J5rz&l0VcIya_*nw+GfnDl((3@Y-y-ss*7la0%LeR%- zyk+nE?6sA!+zne_Ht?7h9{XU<46RR zACAE|L9TcknbzHA{B0kyT158la>P%?VbCJg5KgZ$o+ca6s7-yj3R6k^{;S*=T3+)? z|F_t6o&!G$y4?tpef``t`RaoT{}H|;o@JrjCdWct zxNqZeKTp7o!(!`vxpmdH-$4uV>b2=My{WL8X&=@O!w8{8!iA4p_Jb1cZ1)ew*<#?5 zO3(bH1pc$GvwDUPV*62`Q`PH|C3C7LORIW_R;Pd+eOYG2N{uwT2*%m44Cq60vo)3l zm7SJ7l?@IA8}irYI{xkmI!AglN_y$vj9l;wT+a!^+$J*pPH$hBE};`(*_|n?pntc_ za=X0tt$!)qgbJ6}x`rc1CV**xiclaReB(SK=pv#uprZf9>__`AS+3CsZbG2bxrh!5 zq_Cg48TDN6wwOM&y98!_mtTFTLW}xW(1xY?9|LpjXppJW#z# zU&i^a`#r@AiFRWp<_AQVT;<=P9~M0msQ1cpCYsu`Jb8y}#@eom+m0`D#2oZ8yM-%m zpJZA#ula6=`2`*z0|ly$iGUrO4;W%DB6v6^rkFeD09GBbNyr;f3R9YVnq``HOwRCB zkTi16Z9i6g0YWgD&!f#LNU+Kk`ZhQ(I1|5ky}b46o8R`=FU^N%2Y0szw|Zhe>}hMk zKZ05R@Ul|IGRw@AzvZA@{vBG3CrD?`^dzk-S}ST)iSD3bgZWO{`(E1}s_g)mpORwx z5v8(bfiq9%JRbP1OZlHhkK()70g~cFV5vWWK^--@>MQYMtS~`BM=ZZIWhrE>&67hg zV!=~QUQTz{#kG-?!B1S&oElFq3xfA^hB*GoR= zWg>J7#p!ZFECC^k7T(Vnf=u&8!Gr zaeck-ZjddwY&i0W0Cv?JRn;%qo_elaOz=Z69!CDg;_cqzHBwI=+~bQFX=M^JS5);={GffEQd#W{NS%+HfT@Up6&O2tH2@UdFfemA6rrUayPe5o-BGx>E8QWz5?E_O;jYK38mg6n$Jf@m zI!iyH(c&SJE;8rS=C_PTC$sk`S$n?vY98E1uS9l#XojM8t6N|636BI{DR)v&-vZI% z!W2=A@!Uv3>fR+e5Slh7y|zsQbp%lBnq*@l_z_S99ao^-R>kD7YefOgLkva;qY#La zIw)m;ydzx~Qzt);%}52ChNu6BvS{(N4fTD*06vR{${s74x`|;46Egi~b#sdm8elj>Xy}tbtROxUq?zju z2Rfh-Hq>wt&2}uwnY2J$^UZx9ghT9=Lc=G%)kn_*;8-4t{vdaq^%YzUiebrI&cle` zdiqr2-rfmv5-%le&1L<0$Z45>uNW z(NC_$+zvgI-3z@P0qgOKKIefvN&%x z`LSC)g5B9q#wT+=^0*!_hL5{7y&~S{rz}aT+hK|Vl#aYT-{rzx-$XNw#BQkF-J_B< zKmx!)gypO9P|$U6P*M^YC&zg;h+b8Pi`In&8S$nxYcj@mmDHHh1PcoeTF7}BrJ~KO z8oeu8*+N#oRGA9GjCu_h(@G8fIenb&DN+#lC*ln?1HAM|$toUWM9MA~1Y^7uT919i zu3)-VLFI^@PZ^f(2Ywa}%c>7ux_T;8Wz4D)DX+W2sLaApugmxJN5`=Oqfb91&wbhR zsq6z`{ zH-8#-ZXW7|3%eM$JJGRm62Xrh3S&^a4sv*{gNmjWEcp;=dx7U5irT{WRBZ&qKhA`f zW3a$FIQtJLlkiZWd3O`8Iwh#-cPQzt!YzM4n+PBR# z#}W29*}4JXf}bqKzd&-JCpyH=7WvmDUHaKQhg^Kep~vA^U9I%}ZuD^=cGP#3X*zEC{OA<#Zf{yVh<0?QjZWmqItmnKAJmO8)bT8UB3$DS5u#z| z@4eKSOYTPq5H2NePe46JjB45YD}tNeuZPxcl4(!pmO6pGerJ9i)EhWa-BGExWHUKd z)ih~4PA>PZV}^HBC(-9{MpGY|s^tmj%9hGlYPx4(lo(hFeH3^q)~ml@UpToy zIbp5p64ee}ocp3NQ)Q%L_+U38GK?4T2CjuE&QbFEyhO9Cgb4%nW^huF6vr8%s?YZQ z0+T20f!l63g!>J>w2J@Y2e!Jg+fHr>QQ5CWc^R+M*?DF_zw1Yx9qKFV$)`_34xcru_UT~hJWyigC|A8YXCc#J)~OxA z#w0eKUFdrqrSgh%>9)&Oa*5E~>1DJ$?Wfz7V>StFpLGjt=`YGZnBEPI%&8kLM_VXA zP=*lV!Jt0ayrgUC?tiM^5@|OpM_2S_jud%??o=M8D|S(GY^PH>tSC-@j-|pKAmiBt ziPSH#K1&T%Ylk433oRFDy9ZDCe%v4UY5n-K$TfITCLA-WX zbnjhpc!ZC?_!BuoX|df`V)3c{mW0=VE8&;63(rTsst7i_;I}j{4(+YWC&Wj@5B9=8 z*ZkV3$QfhS{N_#7+)(|SkdW?9ySqAHJ(&SNZ`}XrdPt3olQ}FM`lZ`dG1G$Wt?Vn3 z8u{a4VJjzcB0|V0qZquqg8QBdkA~;@O=VlG>mLRJk|f3)9%a&gEg3%6$B>yhC!t!+@nDTovx5+wwF` zQKKW7z#^PvTD7M3Z44=l`iMjNWJYi9(;?KVJFb~c=djTVCxiBucTCKEl|C4w3(==w zEYMDg8G84FO?H7xf$6>WHnDh%G!Jexozq9cfruDJi@(X$YvMI;DT96GmX-sz3G;`N zw2u4Q@;Uqy_)S4SK0Rq%%Wgg-on-^TO0-@cK+JT+G`t()QDmo4si^0j2-WlLL#{IA z3jZDfW@{XXnWC8Qtepj>IHw=3Cm(C`v9GS3cymSYE$qg;do@-)8P>KcyAAF(KVJK3 z#QH^TRB4k(ng)KZ`*tavt#4IJv9YG9IhArWrIPDtkgUFve>ASDVrc(Ul(Vwm8i{dI z_IFL58ga@X)RR}#6w}h`k`f)M{&|PvEG}o?M2vOvzj9DJYcSIh*$7_?&_pu@B*{oB z8r73`t`P2laZk{M(#?hLJ}IxJ2KZ3(e&F6z;E=x2)~}j%Z&JcNs=`p&K`bf<1nQz| z2F??^T`tX05-v@V|GUF1GE0%H<1w%x@QVH z9avU*8r@T-OssPTr^Is^72)ZR-!%j!D2c&OdV@fTAn&fQVv0RH`TLH->v?LGBl%+q z>c>X>rK8GEE_d=rF`_Z|x@Te^%nqaqARSuutlj>~_ORmyEk$yM$ac8FwkoaeN%K%r z%}q@wzS{R0YxN#}ijl*hI}UO-|X1d7{{R>9-_Jb$9N@ur?6iIr6z73PS1YpYTx9>MHk-VSrs zqV9QO7leKesB;;l+^zS@3&_++cz&NZ>Yq25Xp$9Fo9{8V(+s>!2?;ACQ6wuSAtZ5n zZ09ssTS4v2vU(Tkt*gQ*K>9UY*=S#r=&UI9{8I~>=(TH1pH2MNT)x;O`v3f2 zLFFGyi7xy9xSRiR(V>m-drVg?Ykm)9{LbBPP)M(Ut5X*xmH>D1hyPjw@VV7N0O9+S zJGXvswyp^%c0a%Neenb_v-C6xqr_+cvT5;*fLYpGP!hOB!w9w~;q?GLAaKcvu(p`U z4cpX_MK+8yj0D}DlqtnCmw6p5I069mwkTN@DNLCWcyra@F#Ekh9eVSM@V}X7u2z6x zZa`Dp*^j*%5BxVC|6^*W9@}!h{@T7yOf(e7^mq%UV9AD7oLYya`+|Buf98q_Lj)&;r|N(RI3Z;o7L#5m43 zHhhee>c0!t|JcqMBJ;U9Tgm<2L~bVjnFSea(V*H=?YP(#&HaPM9vuoyfM9!UIG9@r z%v*$P+Ywh)MdIjL2dlvW-Cw-BS$y^wR)mp=%w4u*>^7A5q;l5lq zzO@jTMKiB2$XDh_Z6#=he!{_cXb zF7U?p?sHW2u+)HBrkEO&A&BjkAt|lWy!Wc^h?Vu`X7MfnT}zpD%74$!_#}F$uJw!$ zX%%#C<#@2r@>5rnr!S6F<}~3k05KC2j-C0Cyt-9gEN&aaYQq2*HxH09n_IuWG^Gn$ zH7;JnE;=I@gW6_m?NS*eobw*vU7sWt1COy?N5@E46onyje|{d#&N=;|W+H-(IMmIj zT$2|_^gRY7g}B*D^N6~>K-BEwi{Z$)l?=PGqg=0fkJL;-(~wjp#i_jIyO$>%&|{8$ z?Z9>IYb2VwZ~++CDpW%*O493(MQQ^;RI?m9<(s@-HNHDDZn^vomq4@eNMY!Su!ESJ zkj`M5P-oEH7|V_3qD}+}!{0@-BXr4qfD!jV6UTlxXH)adJ|}Za?V&9Ly=ac%%1@BN zIPh|Pe^T4nqwP$;ZQXF?*~UBJ;lpCSu1belF{F0Tnf89}?N;u!3?QBi-03X^o}ZNi ztoQDpUoyvi9FD+M_ag!~Bd#S7L@M>)02Xb^m*<6qnB#Os`(p1!1d1L;xk~lhnL(e8 zQP|-fkNArob9Nnizw=!e;HfT0m-nwXWFTMAeq#X8=J9v&KRVh>+CyF~CrH`jKtvyV z?Yje%z8Coik~4O_OuZ|&X{%dcXyi2Wvj&cA^oy9ENr3|)V6KJQ~|XAk_SF4OZI+akXJhYW+=Gm#EU-&b=Dt6cfdLohl<4FGk(#f|>6ntADLz|xa?vPxJA1z(jp17B0jhN*KKtGCf5IbGE?R1R zsV*~l1IRr(uC;C~ffxB+#^$)x6=l`WLJK87F|U3KejDb+VDq zIu&yMAaE)kmDE5!ovXlD!oTW@^*00y!Z-LJD`>Z}w|TV33+{UPMxKa>Y*BKpjJ;pT zdX!Z_I_R(+-^hkQ9{i=;Z9neu{$T)C@xx(f{Ad>(K}s?cD=Ai=YOnnIj!z#4%7!v+5q4<@SU9FYOAuGY5p}t z;8d|%f^Ln0)ACQ1MQi!TXO;C&Xdf}2b#x@~Y4HNAcrQmI9*L%HT9$RBsx5?|1b+S3 z>DKb=YIfk&);K_}vcuO+!`OmKr`BvkWM#cW0!Hs{g|U4&4845}Ce zCCNdhQ>JS?akD1ICjV=yzuXxc5|t?dmIGE?Bf*@?6BA(}f=UXT#K?;`WcivH2hBf44t6v(bpCKg5iA1A>8MVXugO!+B}@L@POy z6*br5#TWgnhp;e|LD9<7Vp}g~>zt6(2GraMsS@!P+<0Dr)wV0Y!`8#Y5;Tn1SWZoM zMn3a~RbX_`z8z0~I_AQ`rOHqzO>Im|6djU`t1V2OWv(cMa63g-lv9Y=jNdQc99?vH zk3~1qgEw|*6RGutL?t%-XYV{*|Ny$Jd3Ur zr0gT(tzcg5AS2?2D3y%6lElb?q?Q*t*;hZcXJ*o3OM)X|bu@5eP1|}J=%vVibw*~? z1MCw;>*R;{j@&w}I#fyx%XyCd?c4R>+P6E@aDpqms`x$0d?-aY!|P4@9Lg(pVd1Hf_6yB_;_=xa?5BoT++|-O^z~KUqh1X?SHc00ai+w3h)P6k1Qfo#nR^x* zMsOu8!1d#Ju>OY*w}PLBb|GFO7njO4{n6K+)TA3x_cw#V^&cy-#VSc}i2PCK?p`k;|Lf1J>6v9Bm z-_(2-DH90VsxJs*t!GUWmaUqJF`?|x(Ra+^#YdUaGU#HM2@AE+C8}w3YIWsC{*B#P zm(%Hx>bw}3R@Vg=J?u`ROrlRJ;Vm+ztaVOiAfh=*Z84CGEI3s5ETQ8SJY2z;Q`V#g z?{9H?myAYCO9!>%(s{9j^Wcy z80ryq&5q2oKl&})^GUCVg!+CYMMHFDOqh96Ci~Kh@bwrOgq*SE7%Z}20ssef@2T*T z?p?Dh#W8Np^XjyqenD?uI{E0f`ZpNInroSck#%?b_odJ2e9a4WVc{WE^-O!C+tP`j zA(%v=n(0o>CC|k^*PEsj6Qa-HlV4q#0keAQTx9u(3Kprnq=*R;1Cjo1>{w_mR7v$+ z4;FF&j0=HtPvp$HMZ+ge3|hb%8VS35AMir7N>}gml*}o~9_sgsrU|7_8kk_qhUhKS z8{JEKM9DdKRIyu~PQT-$d06;`xsPUFPRC(o>g9US zF+2eow}WYNxorGz#MT7XSXW9t=ko4O@Ra7JXlZB%iZYdr#$vity2*D2PG9ysXNw*^ zy!-kU$DqS|N|Fb3ZgdV_$m_`?yY&hIv;lg!#$z+pU2CwfMm;!Z_s;sA>#7HbNoBFt zx69lZ>C;8(Qg!XU5$|CWT!Opao~1jl&4cA2l;{WBE7ulHV@KJ|Of?h~4NnwWB8~SJ z7u?;iVD8itsfrxd4^;rzC&FRqVNv(zhvMhWaEp&QDfC9R;5ND!HO$*1OzNTm4LL;u z;@nkeh`dS8ia^!*tp#!+z!nKj(coid)B_2|3`WIl zJ{CxC4-}+p8mFM!OoA&;#g;)=J7!jtqfq^8a@N`~IRkC%+Q%g~8q~RM zyg;7*Qs-v-PltgtAA5K~(USS~M!n1GHFw@p-e&XZxQZiSoB|Lj3_xh#XC2+p?tovP z)l^_oDS#(un$Mtqbi-z>K+&-SLGUyEiB6#8-{I^`gqZjQpGARv!HzQ!IyFTw`xdRV zQhh&Co{2qU8o$41`Bv7}BHw^*{mNI^%*Qe1NbA!}ufm=ZQ2+-Qpbb)_j}Mwpt~Yqf zn^&Oi29xk|qdiiCU#)cU~zliXWD<}!S=0?O@Q!+-Y>ui;MGl~?H%j`EMrDv^2?Yw zHVBK3r@-17|GF67;1qb0d5b#T`ZXWH61bVdZ@3*4&-D1WzBhl9E zK4j-`~*QGVuj(4uS`94+tPE zYt$REvf&%>BGgM1*)fWu9K zC@#&~UNXl%j0YPsalLUH1I-KClRtUJmUUuzvqaxPtF-m2ZZWV4s=mnoXv;+{We5ML z+E=;JQ;pHdJE-t7`oO`-v9plcVFr#V&IGkv}_arMJ1CoZ`n_RT~iiE;D2?^F4e zbgY(JTnr0p9RE~x8~|8h>J1>8)W6<0R&FEMYq`Vxxp`QSAo+z=?>*XdN`) zTanR~<=X$iC_n!M5zT=87vKeEKdUCM6>F}O6%==@b$NGj_hve^ZiV4zvihBFF4Kgk zi5xWU@UwUhiB4TS2M)`CVMAu!;oA(m1ZjFDyOyyu%R~^+roLLSJfr2QaXFjRZUV6T zmn0`HJ$OXS8j&5UlN7q!`MeFFDIB|a_ARKI^cC1-S!LxDvZLbYCL7s<`l ze2<6DgzZafJvZO{C=-D=^Y+<$CFY}z2T#)YM-W$a{+b)S--S{w2rLU^HR>i>&WLg> zt`GLn{F5>9n)EU0i3l?NaOl!m=OawcRQHunQs} zS@8`|M6KpMyC(mU9hz8#i1n`;hZ%3_{V)%;1&3g!;~v(shNB*am%Vl14m$kjQ^Rfo zk3P-Qd>J_Fd!O}Dodwt_7DuYN-r1FwQw&d=AhFI~TmZVHet)^dhwulY5JHIXe4~dO z;9RmL*OTFTRju7?@Xozl8ym?=*){yoM+^LrF@ ziCjD$Anv_jwePy&G?u$~fz`J>|Y~L3w=ISeK71c$|pM@((281nbLorP|cD4Lo`+|-))l8NkvTbR^I#v{d-(& zX=j!^g?E52E=Yi|Lly=_hTE9BDvtG|NSOws4Jh;>fHivhX{AshN$Ff3zpcj6iE^(@2h;XPFdPx!0oM_T%z{lbI{AaaqCw;h|TTM_#bdf-TS6hgCFM*v&_@m zZR_b#wUK6>X9f(7Ri9euzLK#vFWZK&f>EPZrs#=AiyDv-M$qk>5|e~I-Nqui=lB@T zl27#hfifrtBsIsf&-Au}U(z{vMXwV_9l>*KTs|2z<|C-`{w%&AT1|9STP9B?k;@_D zpytRmLEwtwa*!cZM}i+8SpW(z%aLmtQyOAQQtttqFfKnPq`XO#Wzw^J+v?;~6?z;d zIP5Aw#Gp7I+eGj2+7=w=u!zfWETlGLlmX@yhdc(Y8w>=W$1G*zBJ&a|OtW`1*^kRc zu(XQ-<9G7PG6q-bD3(G50Ww!3hnI)!Hw8{mnNn1qeaX_FmfXAR4Li>%n5HRKt#p2t zAf09VnLz~5YmCRSkC`gCdyd123}=K1Z4`h#Hv-p+O9?(-4VOw^8kSgn_W^|^_`G_C zrU_ERZ37E1YE`Yr;MxQxCkB?>dl@bpkLC6-D~zoObbmWaPT zFSdh%P-qQTyLQwH8h%}&r@HVw(NDoVa#k8E=;M6FHi?BCCaI9=951nuVsE+clZ+ah zae)nZR52||d$8(*IG(Ab{O>4~^*h~SwMyY4XiTR2kk*sC?rmE_Ql9>RxRU zCYUp*!z7Z*$u;3U@|0dR4#di)dZmMzc0q>Fy{N2thK&Tl-P2#K`d4<)>SI(Lhb4C* zKwLrNH^W}7s|Nxf%5^l}B#S!4t4j9a7gv4CgnzCmJIP6$^w8n2Ks}&{j!0hYx4w+q zAy~(6ABB%}y0ZoLEZ@jwvrDj@y4;J_vuYgAGIj_W-W~wU5?$d0;F%_S{*c^x@}s&1 zNHmzOVJkCj3zunQPg}{D6tH&UW!BHCIb(3FZqjB^I6smJrf^TRu4ESob zf2As-$ay4(htt zaezD|KBJ{To$u}Vo^7wkNo^P1SBUI!Ib4#j^Ful!0S=#&t)r+GS}YKA{<-+n>L0We zkqpHnaRo%-_u%_8Bs265ao@So^5iCHA~)t=I@13J6I(~mtwReu0a&l}@ir?SEmB&u z)_(29O4x zM*@Q~)@a~=)cr3zWv0dkI5nIdaQIz)@ISjz~uZXY`xlGuk@F}=do&OiYLZYDTdGm4fod~sn(Jp`!4W(dpqHfyNZa_K*Pq)=l zKlMWVj=nV;d+VY9=2Z{!!q+XgdZ({5nu=$}!2FW%#1^S5W#dB>wM#wICw#?iBOn)y3U06gpxW#0tcvJ(t>Ve+VN9o*nI^Atztvdr4`9ri16(3% zZ^iQJj*f{N_m3CA7UK`n7e;;C@)k7e4N@4Ytl#;-3{<8LGb)w3kVdV7)V9s-D>*wOhn0GKa)K7<1=0jT$d zl1Bzlrhzfq#?7B~YHMNlqS_Z{3-;@%4^|J|S9f*CeO3ru7+?(}P9mC7iCy=IBdz_GCCnDdBS|`3vK?*|J)zrp2qU zWKmV_doiBVCKCE5Q}-PP?L)+hX@3 zri_E;S*DEq94w6#g#H_yK6OTe<+<^9nAmt1hkyfvo6RBpk%jVe0@$-Jnjdk(qC3#~ zFcw);4O??A0EYGfrv`6!CN!uOofR@CxskORq}{ppGx3I-A}Tm@{=36$Gr0*mK|!`0 z;A#TNwItWP{tl-9EPnzo10Xk}&|$W72SK19J1K-m!|pO>q6J(amS&ASSUiAAF8H6Q zl^3PS0h$IWH2e|S0$_2M-9_u;6znmy?}V?LL^kT%$i0$tWc(V7%UfskP08$^?Ev{w z#~ZX8Iwou{R{qXtSkpdw6Nv&0mE3LL2HT**a7G{vE3jlks;o|0lZ#qU0tv*qm+r&T zCxiF7HUM!<0-EzE-%Vy+6v@zUhNNys;ElI!b~22d3@$ zMo~QADyb!VV`V82W zHYUH1^i+i!%e$I-u_4^9A;PcJI6#j~9mIDZvvGfk?rLT~3&t5N=Jm z=F=6XKdB<}G)*-tPyD%gNqFz?62UYtfV{yEqfdNT7X+EcNlGOr$s2c|a z4i$5p(~&}MeaTH3=hI^W#*0}W+-JvOiXuWu#iW87Asox>ioAUrWP~H8=s`k~;Tb3` zij~aI`pi5+6*%zf)Y`tb5yE~JgR4=-5lHD?Oxh6%eHC(?$3!8pC#ALw8c=Ct%N29f z`d#9ZEJ61Xg74EGB7~?U=;mZpIqo6oSC{Q09WB@Gs&pTSEtXq&AmH<^RIY%QUit3gB>YUX#TeqzG+-G!E>Sie-J{KFBPv<)mv zMu4tc*dyMdppK`dxb9p9NIun;?+^%8NweAZ-~huXUCrnuXzagbkcmr}OOWf)Jviq8 zU$~%9c%n(IV9N9w5eN>_1kHjT0y3xD1LG1`YTV##7a1Zh-^@NT|Go$U0*HNygnnZs zkvel%7=|XnL~VCG*nG>ig4{kq;5hv=gbpO~U75+8=ZJBFX9QftjbNoXEg=S(YN!RU z5~n9TXuM~+hciP+lyO?DcSX5Y>o+46O|+MCdky#!DknUjWAlKwbZ6E+g1WkCH6MI7 zSc@(G9{FDUsqR9jlqk?^&2hAkzmnz|e>^>8{6?qUfWHoZ^|UjI9$|m(ZW0w0<~R4T z!nfkl`|y@qI+_q(=RH`Ox|=bFT8YAWNQhnokneW$rIZ*kYTcR2K7qX*ffw76`h`{~ zYUa|JRGn{KKnn?roDuSZ>!(}1{veyJB)QzkobYrrqy4?bO(X#o?vh`TJu4{Pk0`NK z_W|)=grH$uP4WzFnNaGzRvOJ~RZI>NN=$=JUN!h6Nl&M%vw#~Wzqsj4iG+D<<<(l^ z74CN80q7}65@fvmO^Wg>X-;gz)@H0O`{x;1+#~kr2lwPqiiclVGFe$3o}KbB%VVJcp3%X}oFTWoA(i#d|(Dy(t$SmiVYP)0Hg#BCS9nXRGrRl}$nxgN$#D zHkcSb7+Fm2yeb7qh|ROQ&0hEwuu6I}CW2>)vGtQ31EfVP{*@$LJo?K-rXQiybb{TV zQ;uoA`mrel2y)`K2Mh5HXm!5nz0dFvQ?=lTIa#lAQrqC`!?4$SIDRJ^5h66y1|`!m z*wpuuVjpS!wiPsulh-1hm0QgDbLUMA-^R)t(nf_UI@`Z*oXBL%AQ@9I6JwX5~ z1Op}(BJMJy>0XYs)*H+&#*80a;M+O zxK52{Rv&SC7*3E(MA_r~j*V{|;ks%o{nTPT#{GRj(c`Q8Q$T-ziovpRan&(QWzeQm zsgJw5x1;@P_`j{A1n@C2hnb}7Zvqfe;wu}!$H&8fRIj8tkY){!QZ@P*Dcx7E;qY*LK_8~lLiMg@z`wAm$^MqvWgAa47@N%7m>$mFSorm=>c2E<;o zK=%g)o`qOV)wJc^(|3=vYoP!N6&buyMMHwEiW$ZxhT{&*AA0-6sg*!HT5SIB1r(Br7uQ}rTg=Tx1o2S_u z@t-;;<71V`^RVySVV`A-1Y+Wz-bk{bMZ7T+0BmBnHFDKqjv0;qwsxzL(S)MmQQoZq zFI4A!Q46h-Dqy#(Db@&l1H_VvvKf}ih9bo0m$sHe8S7{;ljH;$+8o|Q?wd+>-6&AKy4x_-(OGJom{|1Y#z z1vq&^lh@H!Gah)!AyBEwbI%nZy>m0AJZxPHPZk9l*2uj8L*RuSKtiTvq0PLn(*cvH zeuYVJ6WZqnX44C;9+91uIURlCh(@E&gdCgp#OmJsBoE>>sIT}{b7Q;nBvScnlUC@5 zN5JbK>d*)b08IB!!4O`wt5Dm}8ar z1iTibsh8PrFeq2V=7ZmI7|n-jSR^~(zm7|TbV#haxftrVc37F2dbTA)c>+5v8ink>EGN?|eL=h!?izAzO8K!Mg=i2=CK8Su{L)3HAGGzW(5bb=z3zChRh2FA1WyCh&_rG=lcAe7{f@L}1 zyOX9)j3%&Ef!9Hcf_|6YR~cumLhxW-FX2<3DW|tVrpFie|>}+m3_?!%w9G>(fy#adMr9u5x0A<) z^3btP9Iv3grsfhi{cdVgekKMMx*Q|tFwtm`ZvJFgI40{Uwpmiu%ya}9Jo7?Hi!EZM zYBkdK7vG_c35t}L)8Xy;0gL$Ab?%ak{FM=AHy>s?#zsyUzFtu@fWi!Lk=Evi%R2TW zHp|*}$fXGHO$TX}f30^epl2q02v%$LvS;zS?To`Y1*0Sdlq=8y3JKO##%X(?HwX=!d1H;n|CY=4p}j80267ebK%4ViXX`K%bD&hE zYW-ca$uHQ>(!g#GoWu0rAN0xma+H8JHoA&-%2f#(oV}hhmjmZ%o3}OJH~CtR^GC>+ zA_;3CZyd`tOaGWx!3~*dLTljWA)QZBs6G7QJ-d2)-Wg?rZL>+}`C7xLG{Z+PeqxAJ z$#>bLO6cIK;y764tuVvA>P6H;3z8=v7d$M_k3j|!P^!XNen}+9Q5;kT!l}8w%ad-66xJEUd ztY)YkRdRB}i)fzkCeo6ILq_4yZXB`@4k^tCC;J$ymkl-v(I9Miqh2`99ktKsdy z)Ma56Hc`N7%_UubpAqf0O3#j2#o`0}2XDrZgD|zKMhb`oaYX};Lar1W7_V$>)(Ris z0VYo2RrRC9IB?W+CT`lM-BMnu{li8zG2s5wwaylennd~(u@Xn{4$&lLQk?8T-m|w9 z_NY@0LWiM69AYeBGWMY{_FQ|w?Ia_#sYaI=KVh~CYjrKhHX`kh8A$&&V1|-R2x1Q8 zzo<`1ad6%wKG9eGT=euDyW`f4LrZ+abHaRsjnZ)jTno=Ik#$rZl=HjJHMdxTu<(Ns zrAq#--``}YMrdktXaC$b>r$autK{b*I&)@t*f^HUj883GqVZL0{+WfbHgv>%59}kt z?nHq&bSGgZ=KknK(=8GUYE-x-!WCzf(5q=S0yWS4f&Ga#vG&-YPmGr}j=Yu+Tq{yC)0}E^4L(VXUUvZAI zj95HE+%HolD8DaSI35J7VAcuG%rGn7COT3=yF9FxOr=rC={IzHqDgo1T4wZlg>MKB zdQxMvWwgo4Mv!yVZj@kf5gXpu2SHwmSaY?02%~6T5H=9jL1|sWww$bVMC+KDO?^Zf zi7EGW3|hPV^kq}&vUrg{T>!;*K8fh;^SJH6h>zaNvsl7@Dr%hI_4g$P zHT{P7hAsjpK06gAR76ZXFjVTMBIYE7S5?|h@?YlRCI*Q*m31dYx{26NyLD0c`^#q< zDNwO)&7a}drhUbSzjJY-{chk(87g0AwBN?&u-J(Le*`1UBy81c<<`J&VV4y|t?n-8 z%g@y{4=y1)MUSjyhrL$IiTKv5#ahy~_v)JQc!wUs(MU-l4U_oe~jOX zkaPr%=ZY!+&wPI$y$h@U>;>}G`d1JB{U`jtJm8<^Kw6iAR8JR}5F3qKUP3W8 zPAsDQe|Hpy@!LY7nf#XToELu{lEyF)PmOYD(e(ps$S<$*le5H+0~Xce`mDbRc)Yo_@Wi^Vy$aKRzR3-Fh5j zGiXCw5Y;yHE0}82#NFRR5g8B=abFbxBF%5|9JB)!MTh9w;?s!ElX2_K10&nl)%v9v z2_!gtB9p$HAeI3{;p^kg~V8@M;GwrK)RS_{Z0ebfg8J8`3Tl)x738yJz%^>Bcg9_@e0JybFGXWkc|gd4gmk5>JD;w`aW zY9qKUOSn_cL^fWXum+xjQ~EVB9)so8k(?Yj9ZJU;IA3=MD~%Hvhj=e$Ywa^KM4j{7 zLeBK_^y(b4z!DTfz6flN_l`iK=EUpT3i|U}kV*U0RQ*A}s)q{==mc)AtAox^ZrJ$> zN_J)3vW(Cr1{2-($aNbiOxBxo=Y^EBT;}sVPjI7efGmjn$WEcuD30fP1kh|`IaOn) zo8c02@MHzIOodB=U%w4Zj)kX%TVPe-od9xWD^QtT9LZpF&~kP)oKq~d+eI>a01waH z4RDV8@eFrGb29Z98fBgXn-+bAK54)@*d=(Y8zYm}zysIt6@x;D&%wfW_CviKIvV|6 zllPxkxMRU2j-po74nEbsxH=v(8(cKvvXsnOK;GZp0Ng z5Z*U}cPk*z*G8b=0(eciLbL9b!*_Y(GzMwMkw9^#Oo8-zLe&?-Q1nRV>U6V=UVGB> zyZjVB!mHCM$R*3Uhf*2-R(mt2*Mk*&?0Nc#ZR<~0@lIa)+ku$a@%<(aRiw$1Gea3( z_mM#ptB*u4g&Q!vo_hBltsO){pQtSthci1!*Ae^MzK`w;Z)!qD92=Tk$z>~`0Tw#n zq+>$}uolm~j+WcKZOWa8^k@Zexn3L(jRxn5><38R%Jq_qhU5k^@$vh&9gw1YU65%} zC2T)XJZl}0`_yalb8$1>zv%A(^A}KHgMn9(A(a@xhOGgM{+w9E9sGuU`S!CoNYtED z8*lTwy17i){F0y>4dF8OLc2s=K#tPP{51``vS(cBH%vF{#B{LG-DH#xdm4)61?VG} z2|?i*&H*0@Qbm=csaDwPn|2xpLLa*h3HiF*SuopE(3+r0P&KzRVe6XyqYWY3M$)Z;vXEUD_bYQ&vM6m#uPqer$ECIOvM zBj3H0&F5QF3nSXPFjM5nZD5Go79*1O*qRbP=x}8|pSCNr-^W!vlbf4+2VyYRS@*mCvcXVvptf%RVZU8`Yi{md#x9wWdQrIPIUM zw1=i_k^{|iABX>!$|>p6S16D+awDMLdU9FJcuF=|LGGqTe~)O#^ZDD3Mm!=Il#=8< z#2ekiYtba|;GH0Lp6UQ)I?t{gK9SN_7)STZlyX``U*SKpwI<9Eag;_h{sf4?Mld~} z!Wgr{kKY%U?)A$SeayR?OJhd#F%aJatPOP)*b~_Oi4C!N^`GuqKw^@N0vGlQn5?Fs z@IImOuqTq&ZBpGKkr%{-@jjKpC@Cwko>rxcyjh=l>m4&YkZ`*-mk<1RKb0^tsux9B zlsrTEUfI{RQHX^Od(0}h8?HsiyULJi*y>zpwvu{_NF+fzQpCegogK}I&%IqqJ%y zH=cidH?=%_@($vV{Lr0@0}%Gy5K0kxaU($dlOYs-TSi|fNLDjy`;Xi8v`S6j zOS;In{c;j-B&#Nn$Ut@a90>y%9$@I}H0cHXccH4lD6lSP(EMs_cmGE+( zL4n>EB3J|D#hHxi#~v}ANE=)<*NmyO=7wySbQGd8(@9jgpeq&!w!3|xmT?;49>vUO zQWn$z494MpTJwLYH<)k+Bb)Yqe?pAc0~;;hB4sU4hEUAdHR^91Xog;(fL8q8wpoN#^}Zv-Ji~aPxiRCbfPpR)Qno`k`AM>4>{+ zs}20KWR$uV^`UFboCOL=RCF)WGbp7~*-^LB1b$X^Zf^krS`tyIU?J};3WcuYn9UFZ zDLf^dHSEIdWP+lJv7hj`Lj?70+Qs2B84XGCe%xv{sCUJ{GA?;_(vC_%qfH`N>n_4oAyalBj&_3^3v>Qs4l7@=6Vyw}8C^%qQ8>R?epEB(4WFoD&v zjw7ZBdQZ7}4qa9w$Nr9%L920_RACg>;&q)I@99PIgOAVAn6ohvy7lkzOJ)tTw{pE1 zC8=FMk5X4PvOe9;^U0eEiO|rY&L3Lx4e?42cD2`z_!ViJYx3!hO>ebbEBSRX!o8je zCJRCfluFu2X|sQdI9^qQva|KJdK637EL23v!pz-@?(YNJsi!4c-F4IyUT+Nnf)M$$ zl-6H`!d_bPu!4#)n7Z?Pg2+?&?`@3Hs)atCYDC9v+h9y({FL0@ax57l; zB;6J>=%t0$#hcQ`whVA9@iwE9skOW}C7jgw)SwU-rI7(f?Tm)Rzhuls#?#x&2 z?Rnd0&x@ewtiM8-xoc2Kk_?b5A4i?sEHmmA8+F#YGBfFl&>j!e$ElX{x}>STJ)MHp z?P(w8v=`;CDXNnJB@yOy(RMh-_-s2Cy9(GI@@i3h&@@W}mr2LLh({bFo>vvyT{&mD zvDrD$O&go%9)9tr%Mz!1kNY^=_lS*mXHYgNzY3@@eJx1{v|cXl91x0^ISHSZePK#) z4Mn5MKd#5Fj2^^;Udi5}K(MGjZOLg`{nhz!Ca3uOKz?hkf3DV4zG9Vs3SR#+YfFKV zjK9^F>hVYvXqXVa95 zxG|@@RPaFFzFfM9PKin{>P3L;y6>H~o|ZDAGYiNV_Q$W6ED(R=1ZV>{+u+uI(qOnA z!?4o!@zXIO8$y-~T@! zB)_(;UP3!sqMSwkU)iz*gR?h~JoNip{wJBT|Lub~-Pib!>lstdzY)WU4sw47zBrY9 z8Yq7M9cvd1JgVi>U*DM-?>49tdK}CUE2w0AsaLBlwn3ZFmxgwo=X&pwg zr9M6aS1vvL-<6ZKHDDU?z#-?|x^GDqT{!LQHe+Acz@nCX93-qV!yQ;-2J%~~j5*0W z;FKN-$0B)k`va!Cp1oAq7vpil3SAQnw{~(w|qXt_;9BKfN*#B+}d}+oF zMEN(qI~8Iay#-1^lDj4|ck?P_P_*cYa{is}3hNegoR##$o9uD!Ir{2OCUcZwr$b=^ zYugrYVpZ=&AnN_k5S7afOAD;EAPn&r$V5S2 zL$jHvGfEpmGULu8!o4&hnWqN_stg3cF8IL^poBi|J>)g{g?JmKwfPt8T7^%M_0Gorjle_qif|2_3j6@hq&4&_ts*MP z7v*iqF+_VHfO+Nwe}a0QY9YNoLRPwd7EQ68G}0WdrH2P=XD2LcIW!=4xvMX_lK23b zpee1-iRtP6x8pDcb%C1jk}Kex0d`xK@n?vZ1N@o#r*Th~krjwkp9Te`&^;GNn9U#n^q;ICp>U;c+?B5D^m(>8zYj|x$33&N0yXh zryV5~R@xnf(e=r)oE+pw9LEE!;09FzGjzF}T{dn4=LG2!rfr~T*8h>IGQ|-63g5Jz z!)H#Q_JJ1g1}L;6lw5pdj|fk2+mGB=?*kCQVz& z;Yai9+fm0Vp@#!{uKPnGXLGE}t{OTfeAtu31lu{jw8X2C`^%9(WE+>0<`$+f$0R1a2bMTql-T;*BL)$x&YS&lw4d=C-eu=Nr+2=e} zylBh?9-W8fPShSg5UrUlqIZiXhVxUFCMa`qkYbT}c-#r=enQuL z6)8mD_m_7>2q5?(#N=hA=1;Ocrfoi!F*9oHk-v>}33?S2e7$}Lc#iiKpyQ7#)YKk0*vKAz}Gq54G@GWQwTa0=3VObT^~4Fij~>%dn-o?nHkHQ z*W6aqtX>Ah@t3=8Q{L~5a!t0{i1v0efklcLDK`+MD%v@ZDv_UzG#^?b1mN~zRwK8q z=&;B+7K1}<8Hb_e-;dxdm_vb`pjrj)<~xHhH#T`Yl7t$Jl9$u^WLxIuFu9F>TVC5& zsa*=i$Dh{*BQnr^!gm8)f-SI?&@8V@$D2J{_yu;8gEp)>H~Xl(kz1`_Z?96Fav#Ct z9Q)P3YRHjpE2}lLx1*_|{SYLq{f-NepO4>suDp*|@|5{uDA#u*tAwlo{!j)=I^cje zqh1hb4Vkk^b#E7c1}oL8#|z$dQqL3>Xkem+>yWf|N(Pe-nRs=YcAHu!Gw1|(Cc{G+ z#;XGS)5u5 z&A4W1N|r-#m|%+fC&F5?sS=AV=$<3t4e07}f|lKj43AgonnXO*BIG``0BIK-`MYti zoT`&Wv2mw9iWstI*Ug(TWN&lEt5kS~g_9RsQ51Tgc#Yn&cX6fN{7Lz-eCtP<3p(`S z#d6W1S7d8kcs=s{Ow+N@h7)G-oK<$+(vn^d?^&$+m#(m%N~pcWrYNq~mZoEGoEe*) z%R{f(1;!`E+EM`K;YV>oLvg3a^89#@t0G*0u6{aV8|=6dBR=TDaqCEWqj}v`r8E0c za}Jj7t^Q$CIfGr#2ZGx2n~dt@@5-93ZghHXu-OwbN4c&n_65GQP_zu)*W-WMN9K zRbLPbJyY-*(akM_xP#0RI(a#^hk7rJB}EVbk;YcGOUE=S-sKa2m|zuehaU0kz-4~% zP6ltCXZFRdaT9Bn8t0Ea(m{6hUk<09bRadSmnF9RxbIGh%4HAUSD1S`i+6)=*ib+6 z^?=kW!hr8cPMZ>%3D*}TC=Ij+FJKFJ3lX|QF4^UhVk5U=t8YD;IaIQQ))p(3Jom9{;PBL>z3u8UWVxVq#qyy1-43+X*E!%Rc z@>@@--ziO^PKxW>DBea;6DX~92@{3xSk-q5o1+_S7cGt6UT-#iWI5ur?i-RpwQx|2 zUrZ|$ll)x9f*w6%;smwJrA&z|^!qcg1PZ?Tr^*X2iu$`ii^aC^cOuYM&POcAU~T$d z)mzZjM5QFvqllz_p&eqMO`cCv|E~PKp`&hX>Aep?5!Qbgaq1%Q=geXBpN7k?HpZa( z=J)o$p8g+C5dOD&ep;CuaQQ(84`GM$za?Kh#s43V7X*Mp;sy=}JivjGHgKL?{PA>( zP$?Ub|M#HaLyV2km-(%5>pSBq8T8T2kIDbt(+PS<@@L`Jtm7$$IN+-Uf4=JUfGDZp zCCO08^pnjzt1mUysrSK}Kyd`PA59a*x+yVW2X7!^zH?I-Xz6Rp4xAHt|NQQ-`?tX= z4h7B{Z*b|<$1^J@$AB7{hO?cf5sfTyp@#dvFD8f(7VH2p+5libej6)P`v#yR37-_e zs51J&ux=P?1*@C_KY+yLUuO#zJIDrzd&&-`(^{|fyig>-HNJ{7hx<4}xKyyX-5Y+0 zc|=06%L9mdpev10>@#vXTJD1Z>!>u)svE$n2rbah;qn&HZ3`mc?nH2v{*1umwbApC zKc;Pb5BRFbVRo?27CaFVW)DwD+CJ+MX&voBAI6W&c_E5Bw$NM{`s$A4u8;n5H+k=k zH9v5uVvi`1gj08stmciKV}WcUOdWO)rgg9k*|7o_Quev^u%1rJ^qa9gT8UPn8 zq$Lw98ITG_qB=CJkX`A=R3B56heZZ8&%WIJU{9K%`i=!+KEu~vyil72p5Jd^U5W<= zUd}>BFWXv&Z|U9=#H3h>>9%s$DS+(;B9J04FU}G^b&@eXpfd&0HK>E^W0|*>EF@zk z^O?-9W^+7vbIi~11IS^A5r$%RcMZI~L*6{xYXpo`ASBh_eC_gnC*%#fd8N(V$e%Sn2ZYr;DJVTkwYuSQ!nn%1u78b?Rb$W)n@l`rz1A zYV!x1g72)~Oyit0$V7*^XVkK|uhgHYoVljDbAu@oSOPtDD5_Q;;yhI*4FIlpF)T3} ztC}5RprZfkzdtR_(4IAjY$^{+Wag80<)}I?7X>sQJ~2buq*YDW=q|%n6@TX+j>(N1 zBzq9YK zr3nPU%kwQ4jeSiZ=0zsq2UR5Bdctno*BsYjF$W+cUrJVD8`B`IRIfv6xBLh!AA*%m z`gp| zwUEaH_yf=rVTmBt`GN_HV>rz!`#V0J8^jPE*3i>yMQo0f6q^*w_ty3eVv+X z`qf<7z;6iru3?e&ct$%E)Nwz6?X%I)_EWu0Dhz2eZyUV04;`M&#Y*mlU3r7!y%yPF zt{fYrfXOj}ym^MQEL`|GS7#!J4&M9g0|XJoK|w7H*C6m!8@4lm(cEP0?u+2VD8_S7 zs>9@nwcTd}Zw*2k`N>#d7ybfp4m@HR`0{t-lRiljs{Z^ItNSX_za4={{J`o8Uvdz# zB$j`Oc@d8u@jENpEq5ronrhKJ@#U0DXCiJ&X$zbd+#Mdjw_baPj$#I0l+?&2v_)-( zD(NLvUIL$I4bHs+NZXf6Xva@Jx9U?t7PxUKG2r_J^=Or|??Y}0J?V=RRz=HVRcnY~ zoU34xmoDcN2uF2xZiU(GRxpvQVx|zxM>|busa?VeX>m&FO}VP-V_);E!{<2>5w<)J znXd)Ii$8ks*UJ5QtUlne+L}preBj<1V80b5;N6=Z^vrUtd~h7q2>ElpqWWY!V^C4b zx-XkbxP8BekDI7=vJ;uFW$ zXX>U8C#JtD3reeFclHJ;_T7l66@uVpsBMvYfTZ|FGF{I3YA~t?fiorhi<)KdcB@Ez z6&M`!XpFlUgX9XTiUN7VR5%T>wO(O2O9`>l!Myb0+C$ZNugGMTuwi*5x%N(Ez1alz z1#aEA?P0;E6la!}(~V+C_LM_#H?m6{RFA{InC~&DMHgX0So`&(S3g)TB?j$5MHYah z6F$y>MlB6grQnY=GH&f`K7e7q1H$+RZ2$y(hmW1IBz1B61|s5ZgCFC~@^_Qo^ZT;b zu$St*h;BKdhoj%pu^yr#nZrr0bFplM`W2z1&EtF5?8JGi_0KQ`3BvDa{ozL(DjoKg zUqvgyPSMwn?R~<0T~1a~&V0=-lI*5N0w?nC+dWGaj+6GmR=VlIp%8CIkLME?99rKt z(;|B%s1#BW;MKOD1;Vu8qfJRNMo7#{77)-R z>I_5qKNmu!}R3yRcl0`B&qnYbU*Z-Qc z{wE61KjycD6IH7}7Qf#KoWiP0XmIS${Xa$j`vrj%wL@M;g+sLHmX`-E%Czne!A!O! z`fs@#v+-#ts#I7cL#FV1fc#$>^xn%|RQUXED8Pe1`t}zp!^GOFT25O6IQ(?R>8T_C zZ!Cu*Ok3sX-_N%oVZ*zym^*)TJt-{-TN=DawtpcHzOAMT+3EZpsIh&^s5xITJ5Mqb$?DEwj0G3o?Snrf)SotK}u-ZBvFxTZ>R{1@Kpi9ehy)h7+0 zYtp;njYdW?930eaOz#Z{0J-C4wK%(Lu~gYG_K3fgwv7bt4C;2s;e!|^`=WwV^zAGU z6T6vGw&m`P$d_0Z=Psqz7glmcKzb_Tz}FUY*M<5`mr9#<#6gv3y;j))w~Xf?qN5_escc1BO8saOu*U1ieZQ2MP*fZB8v5&sw(ZLhvDa5rNd-%ITdNP^iBMNtSKz@4u|gDMXvGmGGJ zMRQ?8zjF-p%@}4L4U7=}SP!^ojoUWt^O~1VL+9q+2FhRr*&7lQ)Lr+LMXXIY6zGvI zEnu2_EtL^he(&yFD>d9%X1B|!Y(+{Mae8z6r%`H3J+97?nY3t%j;8+i(39x0@PSuk z%0`&-4}-9lV7LE(_0CiMdtY!Va&=Hw9PWJEoPDtree<=i+ru_~mg`DjdC4tR#Y33{ zx8-$V$Js3~wkE)z?t>APZXr7vQyvNEZ%}of^-XWkXhiZw9^*0rqHnqwu0xtC+Gn@^tQI?iII;2AoI}Go#X0CfHD7FOWR5V z%$GK<1kP#gM)2y!c5`9Neo}geauhkKDWSiTRTD%A89!1bDbQ|YD<_WoFx9HT59nI0 z=XvIzXQ6?rby)j-z}{Xa-HZ8v!P>rlj+LsH^IrAosuz%QUbsKr2^NW&@j|(8-`qZH zfZkjCOR)z(JP#CSD$60qq>Q64giKsZ@wj`s;F|AU{h@rj+mgWtu02WxFJ;d2BIb&# zmABm?Jb${9`0u(>O`{sc3R3@WQ1w>&VZSb&SvKOOAUlcj`b*+c>B;+Vj%QysPRA)n ziWD1pWJ^ZGFh9erPWV~V@;9GC1|eBkLtoXUmyPhyF#bSO&C?X(LdwW(=S^U_<~`-x zX;-;txzcbrZTAhFJS{Sh7^tl4aF=anlaTbU&Z#Oz*@8%Wz9!b`SvNeXdmlN z0~kbJ{<1y-Zny?8`?BQ?Kd*(V0iq45i&5CIp9;y(3&E7blusgpU!bYLb;PgB+feD{ zhV26&ikf_;1c)xQ@TVoQqC86vBt^6=*!Dnb&y8?ZjK=ClhR38uU=U@)QVEp|MaX== zKLSHS(Imy}04SGK$eh@6*tO>b1j2?gpKZI=4<&jPO#5PFppMOAd%6Z1V3oIUmJXsI zX5ST^^pWjmxNBn2uWe&f{^0WM!VY8M(R2RMvEJk57eFBK$uN@-1s>3P?SeZeA1}b0 zf6r{v$Td2LUpqMm^a))37|&d~%-`W$VP6||`3DQor9>=xSeI@E+3YV6cWGy7QBv1f zTBx4#*dxsgEKNS5-;XvYf4~B2sKR2`9Cz-%?#&Oy%6c8pL~P>%Jy!u9iV_vViW1>h zV$#JIX+K9!w47tmS8drR`6x7DY??G?O?T)jTt3xqQT2o}EjM^}V6kP+LnI78yxq^q zAMCAG2Kp6pj=`X*W}nmecG!Q;bIG=*Yb3S$W7UB>0&&SnUK^9gsH(wij3KLV$N2@g z*C)g&6fc!{TWPea^V;Yzb90uo6HxFoU^(w3KDf6Vgd1qVez%8^+&TS~=@*Ux1)X#y zQ_DG{B*ItVvo0-D46O}IM7Q8)dUGQ~lbrg zN-%2-$U2)I3bLk10bLT)5T`uF2Q#=H~Y+-INgkaB0^HRmy``=(%F1dYA;P(|V z<>tE&qK5Sx2(-nVROFotqF{&$F4CV8Bah#+FN?U@nG?qxng7Jy*Et`0%qcmzjlC#1 zIK=t7PY7J#$wb$I; zD)vpq7FlQWVL_47mwKTaay%#RpBnL?_{56M_Q3EBkz_*(-*|*dgv-Y=S=@B`$ywYus{pfZn8B6u+uX55#`&!QdMj%d#Yj@Rc{`nV-3+{U|7r%^jnOI5SyZpvFXM|2U zFE=>&=D)cN@BpxIU|HI>1!In&o<3jx6#rL-<3;Qzs@Go^su+3h0+8^vPzNRTsfsgw zv9XOnH>@QivZq<{sUa?oK<&4}U2dXV1RA@eEz5~Sp?Xm6qpyZ(mstDOvKI&XU>=eI5SvALocc_+z!{rly z;dpRY_u(Cd!}0mgv4%wQX(y+y3{RMT>7qp69@)knz*y6M$W7}V|8+dtDa?_jc*bMc zsJSxnCZYkqoArmiF=(+QfLJusdb(p{uaUc#VT5Sw5L`=x@@LN5t)w^|^4A(^2+6Tg zL<_eh8&aGQ?)-SscaMb2=T6bNJ`FqRi1gVr7bTyL5B+0|LsPb)i|rY`gsVf*a7|wl z;}2Y9?v&EKQ1etne_%@hUWyQDn!!f6^pi+b55B3H(Wn=iczhInUP~F)bT8DHw{dXL zc=13ngd?;1XHDmo35V<3YmUz& z4@0d8YYEVhFAcUT*(XCHYGv?y7@owu;M1HM7LCwTM@TDW_Zg0QMJ`9y4kHAyaVFtD zQos$K!Y6&AA@y};qGTkVl@G1MwoAxEtJl=a{%!*Q9yymq{;s#f`lq}(wbqp5AN+MT zpWiH}+(lLLf8>d_#f`248x;dsgXLLOGvbziZHsL87;TkYPtE>t7Z}I1{M6s-Tof=S zr7uzpC2Kg|T zCoLcN2+r%iYO+k;)+Tsw6SR2uVeG%WV>besI(rU|M>vBCneb+3tDw~`g>W0keq?r- z)mFhre>~#U!r~7uZWT2AI6*xjNPNYne|Y*PaxbT(*S7&${ht`UU;jcP{EsqMtozWv z^LvvUH6GtPyxlUU|9^6igLH%68i4`T|AOKkruy$29pn1~$kc}v8l@P2@$0`)+_mtu zo{uxSb0{k3wIbcYcbxxOh7o^duJUz?)HWW59p3TL_wUJFRr=%jLq1gW(aws9k=?#W zVT&`Q@|i=Z>gkY6v2K~iZww#UmEGerR4@MdJ)Mbvlis=5J-7{P2cszjm>L%O-}E_U zLdS^9een)pnfjP`Ip_joRJ`r_7o@!p06TfG06SoY@1OjHPmclV?_=5qgU_Cv?*^Wy z{X=9DzZn9p4pdU5Z>qZCgDh+AYh1wZ;(6RS4t!q{SW;-%1C8#R$Va-5!BM{v7%F$R z>*hS5C{r6C{UyGQM^P(?BfhC94qN+Aq`!^ep4?##0Q*Z!1Y_?HSa8n^FbEid2-de7 zx<(5(s9S%`)RjdS8*IG^@uFIDwz)mn6770tYp>R2rJuP(9u7LG?HF21jU<7E@ZK#RCaaUGSEX4-Xhn@P#jdyo1+Y$AX-1gqFOQB2$!zUn1 zmAtqN+Z-BOYAiSQKMTLDK7-&c{h8T)W0IwMIlXFDxN##fnlC*dxwBt2pzdy!uxESsQ31USjQm*qJC zQ|Q#2*^=xLC=_6m37me)<9N=wqWd=XtG``)6Zc=YR%SoK#U|Jdw&y98V3dEJpcF}V za>JlK386!Rwbra}Ss%hr7DotoXuCL!Kt3|Z0j*Z|!vDc$*!wmd?{RMXx#ZSRmPDPK zlxLk?{Vc<`YOi2xkG)fL`^+F|(`|`b(m%96F|)P>*cs_OOM=I637JRCdACzb)>_!U zz24W#;ZP?H9t$l!7K()jyE-zi9Eso!#?=Y(v%`w9@wd)s%x;=2?qVF6N5t)ppY zlxsxZv0$2a9O8)34?~dSGW==0edO4BxZfGt0fv6=YPB`R_~l2O z^$G0a1UAjX9H{Il$G=jxx8MOK#F?IHaD7X@7wM1Ebzrm7X92u@t@j`s>&<0;U@)`G zef4sU(y(Qh7U!;!BS`hdPz%{URQb3}f-YJ@Eo*~4GYAnHTqwETCTYEH9RpW&1ws!@ zCz5aJ_o!y9r}K~A`WxHugv1A68@x?S_u4i~o4lulCXJTZ49Nh29;{0vU%wsjH_6If46?u5FZUcKkv>P?3cWZ0p+PGdpf^;D z2sJbte6J6N4)XmMi~&P*B-0VN-Ey-qQKWskPVqtyI2i63%czT9;FF7NJ{YtD+X=@? z18{&U!;Xz&Uzs`Irt8+i*kOsO-cJII;9UtCwqsoKY^-7r+6c2d)#<5i8jeHrR8W+-4H?ric0EhLm z$*e6DQ14~TKyAei$UPr^k&vw@G#(>e`6Lu;bsxv`z!LJa^>^l;_H&ipWDJ%4__fyF z(BX>kG3GQCne7r7j`tE8KKvZBN*yQKG4Z=_FS}bc^_ed2%|S3^LaRs)zkt|_X0bAt z^;c0Gx^E=!No))9De5&s+=b`8V!v7FjOj@(7bvqp4t({K<`4(X9?g1n&?%njp?YPm zWTGJf4xb6r%t*S@6=}$9SqV8TMk_ltsQ+VZ4UKMd7H}V z)JjnrTibX#1x)flgt(KPo={?S7C->@ess4rvfxP_^Wm ztjM@ua-7(i_)e6LfqQ7fyctLXfHaTJF0w4cv)%0WegQnOzjA6Lh!G4*w5i?s#Cj`v z##P2&wD3tANi-!Zo>*cDY~oIi-~ZuHO*?6thO>~y{{ozRnC#nhlM(E6zDil8)5TNT z;QFE8Js%TVN!OINQo}QPz^{A9FfIBU`xs~-$S%%P>M(!BhNPHC3}tgnKN zQs!xni4+I#-gM(xlBG0@GP}n;`CNrwYzJzTJPQ8g_<8X|@*!1_e4QXZazx8X(GF}z zA&;KvR4qj>`Zp22xsQCVK2>-ccf)?g0IL?If+H98rY4Eb1wBnTRjq(!yQ9>LqA7}do_SL~3j>O26vW4>}M$k_C zbva^jzKv>?2mZ^s0(GNnOnxdh_?!Y+)c-gE^T_vN)8r@u)h2}3816j0$Y=1QBr&%n z_ooxyi2vT(hB0lAa|3PG!B=GR$P%WnzRaXD-VqkuBOX7gSy+8h_2Wx7}cz3X7 zs2)z2Dy>;gyni(7(#y$Es-tJsc|)m((}+!Uge_3Px`u&f&ZQ~DSMSL!R($Rc^*V99 zXH%)m3WMlDc6U3^&z1y<_@}r`6S+v{J7XjHCY`2wp6n@6@;JogTN39p=Y3c`h`b{| zcXRtwbV;8Y2H|4GSg!h%&u+`sk=e8I6mq97GRoW^w=f@EGTBVt!uZ?E7r#kt2At;=jB;9uZ&Bu2QEFn(CywczIT~8w4zd?&*b_e}eVlp#Gr0 z7^Rn@#ACs9q=OxJjwgbghiXA(Dr(8qXVur)m(^E?qE^|pc_t3mY(WeLH(Cxz zaR;%09{{Fu8WeH@ZIg#@^O?1pNJ6INT|w`!8%H_m0v#Jyv^C!`v&nz|D)0)yGQy6w zXHw2NF}&2KVkfdot^9MOd^d)+4&@$`dE&exJa_{vQk)7FaYg7*$ur=nTc|H<$TXh^ z%D9pw1vOz77Z9^5e)uiiG_g_zQE7tWsNb5}{}<7s-`!czsQy0*EdAXe4HzJ<8N&9e zzK?o9;S&-#EWbgWwT%EjGz-9G;F+x>nK;C>Ieyr z{##J4y?F)>p%FQ2fM<}R`$Wqcmy}Rqq~ix6{2b~!=0eQ`NQ}nKZ%uVzY)gx^>WgD^ z07un@XWE2)m?(Z!?8JFv{(MqY=v9-j#fV}`jd=kM1W;Z{) zQQ>Q4bsvr@UM@{ua~$~&%XV>TWB*&`V6Z5GSFD={U`8`M;{zrnoN510(f&T5r{`q= zHBKJ{kJR$kG4}o6sRX0NH{Mne4MDFddzUS5=#5`<~jAQQWVC zMpU!ce|pUnt=^icYLtkATF(ibv-(8FT#J_WJ@a0$MHqqW{i=B2bDN(ZUzbHV)`G}F zCT1c#H{0ug8n6iRsyxEgx~WBF4Em05-ptAWj@mZ#0r&VG#Q|YZ4b0L8AlyL{u9FEf z%?cOZgQ9Xp=buvQfJX?fMA)!uXbbx_mQG~FRz1+{)Xvm5&;u`~DlB}?*)e_t?zRU= zv1W3{v@?MzWYz#~I15^0fDO!aV!GTc==tcteH87RLo6D9{<%{5CJrGzl|i3~p_A1J z9UgE*r0K4^1Rif}hZ2{^*(rj&RqOuEN~5N+B32(%I~-L~Rh>SNKZ|i1!0D(AQls*E zj*t?<_`*s`Z*(#B;DOo&HuN}Qqnv_UO4olEXcg7s9kX_|f$;#4+G4o2FRp1~a``aa*gBLNR9{1#FwZo9&Nn8R}_ z0YVzQ`vvyE>Cpjb^jWTn;rjBCEing!zp(}#sj7}OQ5%CWklJ*?)usb+-I=W@DbJ%Z=5$j%`i=?g=Kwn^xT zd=I}SH6QKc>&(v_**_VL?p1IZ`9Qo|D zPT@7IGGg<+g&bbaan>D^xMPmMzrXJPBU}6bz1s7C(b+f8`M1|A@8@u)EgH3WJUb{4 z2F1#hs3JL*SuaNEEK_rMw)%7lPe1*U`d>1f^;y=Vk`nIY$w&o591q2aIS&y|_Agvo z7!&cV;{=~^pK<0qC1N*=^tij+0CBs%`A}@yk4n^^DZxtLOv<{7=o`IZ!3z%h|KmnK z)Ke}ldtn}U_-ueV3x@B9)$#qp*TqfXOZee_{3rMB!N0l*tN;2puLstv4zB1Xe>EDM z3Q76h>>LuIGgJkOu+=H(E^gY@0S$3Bmq+WrW=bE+EWqGcgM8aeWd{PFvjdhue2|s! zMNJ&RLgz;iI$;Ayf7XGyzaABr?uj|3@f81m&^{6+N>gCDe{iZD4MfoONg?~g8@Fiw zA{zVfGe7gL%2i^uHqiS1C)50AhGjk1TlBSR;;s;xtAx!P;Mz2Fz6IrA$M6O*7858(oks5n=KFwP)dh2V1Ua;(3wCZkTh}=%`oT3j)Y?Yy;I|8 z8w&9Xw4E-`#vA&kT6Du3*bWx`Q|R3;nCwrNHQ~9JVPqlLfuNSjl+C0E3hqJPKIHbn zjHVJ}5}Tbtp*(fLL$JO2KIt;|Y3u&qvHa^rpPO!rfT2<4$7-_b4W*M)PGc7vT2MuICIwLSXkT^Pk|qqcAtXv3*Fm2yeI`x-d3s z+42micIei&97@~P;OsQ@y>>SPW&@iq04aL=_dik9(NBO*1Dc$Lk7TQGvVXkZLJUAc8It$ zEiTKHtS<}(UDnh!Urm%Hm7;DxEsd!gtXmw^1&&witI86Rxyy14WHpUfip1eK8$};I zB-R5@<>#>UFSSc=MS!jpZ<~l)!xnv^Xa@16!WX%D1^0ua?jV>%z7x@TfkQ0N+8NWLZe$ZVwDcK$zf7b+hgCk0%yP>A9xwb z0u9&(7PiwDOwV~ci!AEaRP};(|5H3Yo)u%f0OOYbOLc@^G#HD@4x*o5y)QHI-j$)(D{CzBQS#-6Bz2b@oF9YsSTL$jsie6uG0gJuY zG1IC~I@TPe7rJJ^wH)yh|Ii!(f~d$Vtc+*7)3Zb~^o@VRigl=4wmr?4k9F<(SDFs6)6J+*Sz$)byUu{0d%7-~L-zCUcNrHBnvf&_2!Q4jigw9+B6Lx)J&A0e8p8BD_UZ^susDj&BwaX4gB{KY|ddFn?Esn~BUHTI`Nzp5(HjQCslp^*&XI-u5ZewmBTDzm9Wx`;|;WWTf1!JZof+2jeK9TpU9v!AnI z{z1^TFGb!W5eezUV>N9>BtjHk1*g&%w~}^W`fF$g&RK_GkTfh7Q60LjVMvMyc&Hcn?h+iqmlg(rJ}4j7OHzz2Jf;(= z1To^KL6lxGcNV}i8Cx3ADemu{ME)Y(fFaspNRTYk@;-dxk(H>P;1;TLR3|Mu;`hr)6wTwn*$<_`Y5}OHN#=MFAD(g5yt9_7(~631O)=ki z=WO+*6nmPd+;`aLH9~gY{8p8SAcN0lZ(F!0b{*C^yQ9Zyk2V8)c2U72+4^GZ8IjxY z!GP)oV3kJI?c>?(JF!o=by&szOUwO0mWzaAAh0}CLtlUL)8Q?9X>g#|rvSDP5SK&- z&cR#v&qIPH@7Z+tI=mNxz;TPr(xG}Vb9LhgaWbk-a~6hN3&l5 zzUmNty3-p?({)+>t2dgm(H7o-Yh)miGN`3&;viwy^0?i=-~9ADtuE~-VrF!2a>?48 ztrHcVQMksSzs1v7kMHn=8TzcoP#ediKSnmA|w4t0F10%*dTg zW5Q6eh{V-f(9y%QVXWS-we^Mr3m{_K^SlBb5!L5}T3XQrMa`ZLUmVR3LbrHgV&DB; zlJs4Qc@$;)lyS!ells$k<-hz6-j4YG0v=pYH+#zOJjzR(v3WiC^2yvEsqm&Vpn}b( zCALq^D-EF{(`N9+;w@!(y(aF)_b45c2#Bs3?BPs9{*BbJ-Qi}C-F7_vB1!|hmm(R8 zI=_^dc1W0T$Mv83dp@cEi@(c!RY|O%r2MbXMoocIGEpF4y#7c>bWZf zY)en|_VQqB`B=vw+2c~8KdbpZc>Fb^eO`{%TH{9Try0BRLjJ3@jkwyB zPJ8uE*b>RB@PyZIF`Y?k+!6P42!3d_ettd6@8dBjq4!dFE+1={aHr`)kICcYOS$dW zYU(RW0;yj8C%ZJa6IVe|Y-ZI1+bT*nI!I^O%cq8>-}&<=p1KdHY>7J_)@O@_c(YvU z!A}ub^9$mryxSD75KeO~#m-_i;1xL-!l?=ZZSsIYiTq9GR&hVNF$4 z4kt8li`EJ;eKNl(r%^2K8ONX9k?QoOGadW!1+g6%!5~=vcs0H>{v@L;y%mqm(jfpgzjSb zOh5meJe=OCqab=-Rq8uy!S+_MO-b8AVaIbWMso%@lge1jTrzXxlcr*6 zEX8zC#*>vfY}W#AG|0%3Bz5jxI^0*U4m`CkM@K6>V_8<#*rP6ZHLok9c+I28 zPYtnPP)nnYhP5pkvf|+|2J!2IENLldWB@Xy;Ti0+iiZ5x?!of{_@hrnDoLOkWgu

}84?r|JF!j96aYOt$s{u>4!Dqvb}S)Jpc<4#^6w9&V}F_Y89i@II~j0n%=s z^YgMd7@IJV?xMXe1}{M5&I6s-)8qM38epZaB4bg^|8ch)0IEa0exgW21i_1=^Hg|o z?_Xn)#Oycw9K92q_ST??aljq4f0q_13xYkmJrAYIZ#egMwc7}+7mm5wk$ z!CCyt@dMuB-$qDWObAnNP(ZH`5a~jG7uUG%>z#Lz+QKNWGN3NSc#{`Ss_d6KmRO0Z3VoFzeel9R0(?mhR{1E zUb-Kd+=ne$E}4a}M!=i>Pi=+33Q<@lcJw#_;anh4x|c9Mk$VepjP_oOrVW{=Oz}&j zh$L?qTt32k!HQ0n;E~}TI5Z2SU#Y_W?1>nDwhNVRiA;8ndZja^?~jiZ7P1cBBK$p= zcUOR%@)H&%1G);BaOs*cHMv0OVCm|7KQoYQ1%&1f!kr4lCr1A$f9??q*P7l4Ez)`Q z8)(<6Lpo$MPTbjdn%PKQ@|D5RLHEjDyT^uA0#|LY*}vik+M!khnVIwJ%C=Z3HAg?i zQCi*6+Uxd2z0!(ub=~L zu-l0;?`kJ`H^CysIKrzVKsC~B=-zr-B&0=LTx@tRhhF*J9*T7sRtm;K65%kB9&#b? zMh^hBih*i97!$A?zC#vtHHf4C0_c(0MHID--b6?_Swk;CQZfOLw}8jl2?74AA=kE1 z;RCT2so@6)#DA&J17b=G-_BmSq#cW|OBo9y-;?i(4y!dIz= zd2@TJtVeB#){{r#pUR&E+p9;gdqg+Fi8cX-27Z21;Sh)_bn7dUb>O3?i<)59Qg72z_X|z# zO_k~I2V+t0?X&x39D_frVP^lh-4#Yx3hAXp z3d_;;I*ZRtjPi;0prduYphUB&p5fqEmNzVGeuAIXl3Ut#AL>ACfFZ=qhddT##bdjq z_GaIWiHc&Sa$8~}4;0Tu;hQ2;?*KJGUKA@p7CT)~9?H>***}3q{k#M59^^sjsI6yy zdbs{dq~jMAiB-KiAZf}knWu!+7*;b@r3J>;vObPRXK7?rpJx2XwI^kmMwYDO@H&-` zF}e249}W%fMc*z49F3Eq7;8POP=bKSk@IF<|ISpO!m;v8aTTtki18AZK9BMmFMcdquzD)!0$9CQ|P^s2I1euXEk@Rjf$S)l|*Pk7KYr+2raD3?J%E|~u@p5;aa zQO-lOp068W6oHUEBnN~G2w~^hx%oaGVIn(nFI*)TC=~U}d*9ej_mx1^BDH#863P2Y zg*_;WGKG5&&JtdFeyl5KiB!}_b(=X6H~H1s9BnR?XU++bK-<6%vvn^Z)79$+7!`sl zL-z2R0e9wJ(cZ1|q|fnANJ+mCN!4Y%#Q&=jiQ8{W#za9f{uG^$K=PB)Z1FvgO$2ev z2Dsa6eM1}?zFi!!LxGrIh`oY^}aPm0^3v zQ3wI&Ff}L;E-KL!(ITT>Gy1vvV75bt$nP2LH_^qO@QhLk#OsbHn@vjPVZQ0a(EakF_R82ifgro4Ko~^V3GDL(xTRP)tSlv-J&4~> z8e$g{%+lX7Vc`)6994b~U-GBw;xW1m*LCZS+dvL$35pFe5WDp{jL>H)+4+bZ9#<0U zh(`?kdB{q>qJ$M6YIN~1wX>uVOxw;L*^_&H64bTI6y@zDky28Vo+4mUGI}qUZOfh% zR9bOLwkUr5@PuLcg{p24&27hlPDM!Cylnm>wJFUo^z0EDrCd~By7!&_bhy0ss_@JL zU@ZOU8YY7~T_MUwJeNU0C9igE1!qX2o@s{*WK0an`o15!+r9Gw}+4>iTJj7P8;GUN}{O)LW%2r!Y=DE%&nC2;xJM@W9;*;6_>&9+I^gdag z=5cE4k1tiQbi{tXjnMQGO%_~{C5=?>D(~@q##LSAeg!?x;h6o|5!T666azOk+%&2q zEaCpXzdTWMo?8j+h=JY&5AGZrPuX#3iM@|T;~9f#HcgwWnr?(B1LJhJ*Op=cs{6F1eKa(WKRB#ss~K0@n*2DMd6leC#c(HG1Ar}^hej6 zOnQ8OU>IM}gw)ume9n)s)w?3R8Fk*X*7}=Z6mtIV5yCTn!J&A^_4!4j*fyTFjc!*f zbTUXUWH(RxAS}lNWFN?~c~pMcLiCW2_#h0Tg6v9l5H|RXHrvAwzF)fgLE=8xhrw?N^3IuA;Ddt zmD)nwp+CwWB@q{YN(gzG;t(p_Q7v&s4T+PSC)6y51RY5ltI3eki^_>)Dbk2_c#)T- z4CnS|H7^~RmO7u5O#kGF(7H-^#t=y^+(e`zdj94IGH-m7?ebd0qQp5QeDJ^bu>9k} zm>>)kR6{j3L_Hb|D}8K@px&S~gAGu%FzY`D6!a<{oFfN@!rD&2fpYx532;Gw8W>~^ zcdMZnGv_&F@f)00p$ekYU9;NscGg|@vkzTN^t0+itRQk4LG7xOJeX=B)>w}wMSd3` z8fHKh?2tqldcQYiiD%Cfy9l+>_&-*AiYST5hL=QYQdl z3Y%}|GXg25l5(MyQ{R05Q{r-OOBo^$pEl26#q?R^hBx8R<3 zZ80=)_s5IWD=&>+xogl1^J!kb)wf}OHzD+OJTwo5o1O`xfoXydB^P;NY?MKjfE53M zp*-S`sK1hxinR}HuKy$HRS&L;_ZHI`pP8UCl?h3WjycFyaoT zw1&+YSLPG`SCqS@;}B)Mxi6jcwywWsQ9uJxdr^(VhRA;#=&F9e^6yn7)zM))iGLq@ z4y&I3XJD7DdR~13#_&PED+k9>hX-=)gu&4b2oRt_;U1rt;>b}$t#rs7AE6)Sb57s(IlA}2rt;I_a@o^gE!zB zmqg4ywDpJ|1C)*#*ks!PE&zfZ(NCrtngc@MTugr$)| z)LcO{$l}Gn;|-wIsp`pB<9g5{xzHAb?v(*6Z~=pCY#MLidh!F6$ih)<;SF6cT?6L7 z$NJ}c+J>b2XuEkcT~u9UT^Yq!=JORBV!s*vUe4Ba{UjkI5d-C>86duP&ucT!bC1fv z!@$S#^W-B8B8&4}+{ytM0X(=7t+qv-5am9?ctQi>)t4VYqvZV8*YWeW=ZpJiJ2UZt z6n|ipA^6sRC_{W$RlC5sKO+DZ-FL6N`~<0==g+c1OxIyM^r0o#>U-1BY%uL_<^VXi zf{?r!fG|aAS^*x6cyrEUuyo6~_XM!R8~T)@*{zA9TR+Aj?xw@2(ftDrm}!c!DP%ue z!UBj7caT;AhNkH9s*9)#ekmf9QmLCixJ>%XoOMe<=lS((#9!rMaf*;2M_VHO6a}qM z?bo9#HSN8+Yo9qrw|+$rzlgXoO<(oUsjUiPU8rN;z2ljWE*D&}T4@MBPI8gQP?Nf& z_p8CQ_jpvKGRnQu7`Rb9zkGSYCmZ6&>8WRFinfZ}w&Ei8!7zimf@Xk}s!pi~>+7romi+{ECsAssNN71=TU{9g zm*!sT;!WN?K&3mKgW8*hT-oF+7=Y=NAfu1@M}O-64h2cKJoiGvGpBsN*ue4{kcoN2 z|IlFi+ryTWI=TziTw3)yA~Bw5lnyHm7QgW%4hu>2{E=J*CXe5eP&owZ{ykV22WRWX z_Iiz~1i1Dl^4q_ygI9EJja(M~^!@?$Y`ywt$yF}S%4p@oibq{t42^0LsWI)y*k3bz;|Xm|8VL>hR;=0Q2lHcT<#y38%sjP3ddAh4{sqckk4 z;kyagM8IX>KGd?50UHT{IWS-T^11T+0__Ye>n9~U$d`HZU$IN`;s~4#hh7OTMgn$o zc3&c@>!0r}?%M8aByG$;Pu{RV7QC-_?>v=Vk-_4CN1n=?>FHOisgA?obM?<<7r)P3 zXlXOolFzPyMsm%1l%P5#IqCSa?U<}1F<93eEpfejuTOR=x_q$h_|WmW)TWGa$a-Hw z6YE{MoPEENVCNr`CX{+9ZXH8Msly0El zCB8C84>)hwtRDAbJZ5m2$Zq`!#1%bIPwAB*xmd(9m;96-vGKv6+>E zgeOJfSp=+?brG|b@hPkV>i!mpD~FlFHynDfh`qPa2#nPc+bg_@x&6GK#Unwfx2=)3 zAm<{XXz0wB|6m@Y*ctNq@R4^LD!rRTl&7|)yIy{pLpb5mfOXu3#jA%hr*tG4TzF=L zv}a=-B05#Xc+E^OP_z1*(X5h@jLJcCVNK!O8a2P%UMjSY1eR*#6J2uqM<0k@pz@=P2?QIeaApJ4LVmBEWGj?sC93e ztR0v?vJm7^cwZP&DqQhb=J+d>DCKF})ORNH5-@z@reW>^@AlH2h` z1YQSuzU*D0b`v3WS*aiYu%1SvWm%0f<2bsr?QPo@N8pu7f6Vq+0{mcze;w-9dX^AP zDwM@~9lR(_ccBPMOZCBb{p?@vSQ<8S#`)V}8EJFuwwEKAa(@`5UKm4{`=3p+@Dwj_ zT@yVaQT#{u5hnhZ?j!3TT+#)uRo3Ms5lDUkb;cTTHOGgXV!;@P@hY3hC~J=m8Sq$% zAxaud6v$CZ6^|lP6Af`MFakv!JKX{43Y}5UvZEIdo;)1m^6A1rDt9ts|GO8cQHV(G zI>7~F(>T7TeyZLXA{N;z?%6y!7}JhR(v^H2R5x#=7_g{s==k4$YvT$y^=lnX2+mOo zX3ex5YNW7+U#BLx+T}jQZ#Pi**#sK8UiTP6@`X}F`yH=tHiY)+dB1G3Q|UACQ3JKL z#A2lNh_V}3GdmCb;X`dTR=`gWjY#e_U&lk@I&%-zk`LyeYDxvuo zK*A1#0yl^dxp0{;Ox_o{1U2A54WK#}bIUXlaq3gIf@0zKGZjz< zI?N&us|ntojL}}@MmZ^6SF{pkQ zB_Q9jsvSMfASW==jugiJlF7vgiG|q8&65?&CHL7fxw#22%&$4MmGkPcqXn&l8 zl3|-l1H36t)AE}3Ej};QzYCylek!>h%*!Q~{G3sdGZACGcdFxCbC z(IkpEQOO|frI9hN+%II~#?t;|%Kt1`A2C7cUi+1hd>H}@=O+D>5V^ACI}kDn3{ zYD{%p#I+p36E*O@4?EM{`$Wy-fMv~I#ivB5VP|Jvc?FqkMoncdxTpSMM-zcE#EgNa)}LyQ@@< zNbpMOmf!K<%Fq6>Zx2**R2FFwu_!_eWK?sg=a!2Q!OdnJYB026Io#qan#eXXmeFRw zQz4wFBOxvhpUZoXXmUsUl)&f{25&N5iVNO2{^b)zWao4)xbGvBR*zDQjM0#XJ~eRm zR^to5UeQAq{4uo^eZcfI!pfpnbMjGdU{EQJqqD#qBCdi4-4>iHR0k?1aRwkP=j%-Q z;>z7}qOks6m#rDXbv| zJ>NW%gj?78dcW3xdNlMn`)lYAYJghf8*<4v5gR4E))4ihAW=@fO;lqJqTiqOHtt-Hytg#I|4W zbRlvH;@JL%&r9Sjw%Vh%!4t_)VT9JYcb!XWGx=V%e>T5PoKfa8Z+~+%Cg>8s+FHs6~P#E&s(#uak07grAZEU)7YI;|D$6WDkY9V`ygm zs(q{^#&Smlym-^4g1{$qVn^ui6qPQbcSJm`XBVVwUeRmD{U|M82hO=A#qh71153x> zkCa#R>(n+~xP9D1JWfIWjSY0ndllvj&ts>`2UdSiQ4l;D6)nV^dn6U-B|ZMiqftqz zKIBaH6<2QPaUH$(E0LzqK9k#6giomJ-$EU9`iM-n__i$w|_6lxd=|76-K7GM}yV$AYn7F{Y);4d)_X<1C%1% zbUY)Gs+{Bu$7-{$JF=0{neD?2_h0cZ4>mFepTCODw@$guBwM;u)hEB+?Um%QaN{KS z_OUe23tVk}d77QUif4j&D_LV6=#H1JHJif|xVGCq{>_J@|5mPwrDlWLyE3&v=#0dA zK3m+qyv{(Rxa<3KadpI}v@T;3)WWS&BZWxwVRi$kt@0s>e>v1CMjF5F`c>5W8|o6~ z6jA5q;kL-|>{-@rROhc}72z~Y82Ujkhv_P+zSc*(DPg)K6v36WZNOm+%}Ko3NXV4E^|&oPyvA_o3&HYRd0|?!Y5ih%(kg8CLMVOks^s5le(5mHRa-U~B*5=KxYt0Pwv(RQp~N`v?hBd>+6D;TKsL%~9e%)M;EzSTYWl&d??KKaFWTs3@>6u(14Z zafhF<#^iq_Dlza_uEmdAtg3-cW!q(UHdp<(a2*N4>@yt8Ocvvm*S!EoE2_+2FVT*bJ!G zRTXU-8M_pCrQqc45%Dn>GzLFBf3l!v3#@9Lru2P&!r%_ByD%~{si3FZYYnMbslp{4 zx8G+mc6)#?cCcZG)vm<`;&48gfRgd26x95j1Lg6`s?G)IIMxX`Z8Ma{_AM`J=U0Sa zJL1J8dsx3OEb2EH8F2Ga{ivIhY;7HoF;183if4XO0{-sb23SynjV!n>G}CJAY&WY) z2Y4fz-owu8r?#iU*toD4=9txWPsjE(H1UD?0d%58ZNt$EAo<S^SL)7<{8pvminq-hn&_OJO0xS{EuUz+>Kw|f-nb-WB(^BqOO>tExmuc#}udJ;6ac;ZkaTXdH+OrlQ(gdCfj?f># zb)@x987qFa-qGBv)rKk|+!@3B=rzf9Pe3D8TZvJ#C%K{ex-~6}uto*dccc4n*;>12 zFQy`Psl7vA*joaB|t7Dok(=Hp9eCutP8n&D2K5@4y^2~?3Pb{ zX4Tgs^q>lCelwQCLd(lQW`o<^r^sCY!JA~Xh3Fsf=Xfospshx5vR`L83YNz$v28(udWp9X=rG^z)1?mQMzHWHn26p zA$S9KQ716zeVm>KO=9*yUBwHJR>lm?0_5Xd4n(*z8ohc4(^=QstJBWq_K>kA;G$BP z>-IIrS1Z0F}=@9nW+LH(t4L93t>H1tFut4EF|UZn@qF_ye7JF#Z2x_n)TX-vJwm(h>pr zz-Vj=Newj$g30KVRQR=4|MFkd9o9s@W84O)2)$@8=yjs^!G*!*`3G@vag(D~p6)Cu zPu5y)b07x4{>l%G=zq__rg%*F*|Do5l*f(i;t3kk^&`XfCX6$9QB=d1=7VXyZ2+M| z`^ySmnM?Ew+GW!?Wd+XZZ*araO;~rv4DAr9D;K}@`#@_1(_+0H<=+2rJ6vfnfS-l8 zuXOr5ikd+dr$GF?2| zvEzOP)YlQ+M74Cm)xe2kQnA8g+~07wF?1jvOI`7r2l6(UicCBXP^vTz5t`>Ck0`xNN zQnZy_po$8LO&@&s2PN-3LFt|I886vL-e7Lvf``8B|A-o~C{CT4uEw}B5H6+!TQAyW zsSq#)7yDSSwh;L_e}+FnM5Z8Yl=L)jEmFZ3*J;F{O5!)cqItYe=t5*oKl&H}o72f? z9#q$~(gv`_C{tz-|4Gj3GH&YY2gt&}%nIf+Q<1EL$#T}4dZojfjz&_tnB~z(ckYA$ z9_o&$(?D13)z9r*5W+K4(i(}5HCtv{p`$2k4Fe#v$xBGHGsN6lM(`&@-)IM=v$@g} zI)M+%OLwX_p@@c$xHB6SA;he%PcYmj)u|h~i_}VFGS_~!Fa~>v=0FA5?t_m~TN}y$ z9IxqR+x+UpUitDZKlpngg0m&Eb;pNjHhwjl1&2uxTDw@BJ?FcZWy}Daf!VS_VT%Kn zi^f6Xkzw0|&vtCbE^&o|C`h*WfS&XAE(Z~tnEB^Cu7pX|=Gh0c=9g|(5Z7)hsrS%# zs+gB;eSUSVzRiH*6M;hMS)P549Mc1;_ddG8@zY#3lJ}yCw6-v_(0n)B*~w}4g$vxzX-FBKyoU#w#mK`WAG!zHB~=Nv!u1?xIz^nP1wt; z<@7@efxDBdV%70T)&Lt>>_W*hZY^wL@`j%oGiCThn{Mh3Y$7DK)U?G-aj}01O$}d? z|LZ%_6KXSGdq8dbHX)3CO;v4g<%a^Kmq<^Bge;0Vg|CL*89}*YOBl(Rh zk%zgUH?%|lrTcKTd)v{=r19^mW>LN*_(|ej$ZZ1(8T^`LuUwd3ppn1{aMI9NA7n7R zbUye%KrDYU4zBRv8eb);ObcFX8XDuMoQLld?;??idic9Y&T#O+!5?BPJn+rn&&x>; zuiVOizOj6BJ#p|(F)CD=w2?ksj=V8LLNZ>jOdj^wz#o%h<$wJP8ea+?eo7p;Mg8CS zr*1Myu;aK+J}7z)dHh!C&k*>*1JYk(uGpV?SgoV=$~M40Oh|VK9HRi+1-n|G=4B}>&*AU$rrI-Eld3G+QK@`(@SDfMiS~R7jTFLA3XOa@_A@3rt>6-T zkvcyxD|W{C+^lMahxS|;^?d3XZ;53mcFyylBu^>01S+Ba4G@my;h!ey->eXJ0z-`E z+={MfPdUt@deK2IsO)(?w^&+&|M0X}4hoAu)=L7cvdW9oGM{ur8K(QY^X3R}BYv z^mIjwV#7EE^F()?>P>0gO85%6s4;sV1W=B@Q4BDEF-XH%JeSd(V+O$9ETZ}Dw5$^d z%^$rZLZv<2>Wml+SR-*3Cau6c&WNU#oX>Y%fI| z{^|^%xFZ09I(HvDfSAy?`TIG@aYul)oJnorpLu_?(RmG??G?w&YaJXePa*r2jzFbq zhZK@!%VPSkFG3HvCXv=-YZt+DW$qRv9dQ~}<9Fn;dvy6%(ML<$@dLSYPwj>VPhJXr z2VbMc<)L`SdcFACLNSGD?=GJEpWRO(R~1fUlWVDz#>FwWG%>J5>tFWX=akwz>ZP*0 z0!ch~&z%Du1lP|Z&VKcU-ma!`YE4Dn=&Z}um#*&~dG>V^IQI|X?oM0WJA7ao5$fyK z7Ce9X6B6h92;8fJYSnHxgzle#RtOE*xaUg?B!olOwM$P|1O-(2T?4+BCJQapiJ{T#lI$=ya zi_tdM z2u5iQBXr~Rqcg!L-&q-PouiOqOfgSk+g-Y1`bEi&gcHe)12M`gr7hPT%F~sUln_ah z+cV&vJzWitRcLbb^z3pzOW*gT_v&4X4M|;FetigS-xlH9Zoh8j`pV`TNDaDi@}k>R zX(DrU=wgNRkb0x6doTZ7yK0pkHLV&&Dh(AlP8^R%TdX!(ljd@MdEc*0U+R8V@}}%2 z#VCxGZSqiHKXVQLKwyzYUy3*Ze>;gu^NqG6$yU<2AA{rkub7CY%w{d_*_XD*jROXt zf2Z1ZBCKZcINZVageN&__J=34Mvl*hyVTF)CM@@+b?1^^`w_0#mQjxV> zoLo1Ku0iYF?wgVq_9}F35)`6KQd|GN*1hme;9%O2yIh`omm{61C+#x~MSr#{$J)$w@>-SFVT@%msnrAUkWo8V67w1>l6@nITQD`Dq*gE zzNG+D_liF{vvij!wk#uB7)Z8h zYSlmd#Tt(SCux=Xy9H6f+C^`VU3F!CP@r8{(u-APws8Q1YD`I;s2{EJ%#q_#Z60m! z07ruC?n2+8^!b6^ieNi^A2@lxX^uj9a&LY7OVRtK00+12@3c{y#=|ZUtlx3?d4M%q zY<&N1`T4GBj++N2mI1%}+Q24T07fgA7Q@>^u%@;L0?xpCIB~1mY~ZsI7$=^k9}zNX zur9X>g&R<@N#l06yBo#&arxiy+soa+4)a=5;Y4xzO`h&of#5ifkAZeZyHlWf4>y}u zliyUl>PgP)@Wg!|e(xE72(Ovw9Z^D#t;0Nq%*VmD%e*uTtPJy$A`QhRxa%>goO>lf z$-f2Xel7_yjI$geXKR-OSB(Pg7iM09M6nSudP|x(8*#&2v#I+n)p9-&&Nu7=UNJ`q zd#{ykGo;jYomFKvTr02Df1FW83F2nEBz)3W*`@Ni;+%Rq^!MoWW36+&PfY_##Q-?h zko;bBkj~#_;GV4g!K_uyX}LQaU=@FoYSUo3Q>%Pa_jnqW0aaiOHHxBTPBJ%#ss9oT- zK-u7LYayw&E^-Ww?Y|~K-_=OuKZ){Yibug>=l|3SdPU+9B_b^x9#b>9#U2iu3?rF2 zq@wkYyAq)l_Bv5L62`wXFdRl~_*0KseRT}ZM7=3^)lYPLbDIx~ufZqljsAI=&+T?( zQ|eTz^_R@52A^uH7%ZQQ_P>qsC^vhq&8c?s)&3uF4Snrwp72nWIsO*Po)8FaCEXg? z;&<3b7YQgw)6yl}oo#sMp+wOZa&z_cLq3TYJ|~f1D4c>GJIxwXBQH^yD#atGB{wk= z^u-^a++Nf7wMT6Zuk&J!XP%frU*cVNe+nQG!$FgO?awn9?kKG5AnVZ?hphItP{$dMY@M-k^!Q^)QF9-`wF$r(zR8<$9w{yPVTpyTUFU5|<8?m1oe^m z>{&4eRX5aL?&|LcmQtaGlH5|GB<{NKl8b)IcEa;Y_mZZy&+|zi=1yWs(LvA?@NqV4 zOo@rP28!ec*T&FgEM^x7@je$A!(gBTgx;E@XtVKrGDzs`-~;}^%qj} zKaboGU5rsmc5uU9MC}Z-{>1ISOla%zO=hiqfUmdx!q~x0kAhHFklxSX({Oa_>l?Of zZd?*!@4!s9%qK^}758AoD7024r!aG0a9|LM)S7+L+os}cKZkjCKN91efH8B?t}=*j z`llNUyfVa+_q^sri_~XzGj;)?4P$zjK7^cn`a7h~TZ!Lpv$3mKD%$4fjTRxq5m&AV z)^dxz+v1@p))S$U8?53_tjXP>e4~3Q1+Gn$MxVmcU%Iop`U`ehkbhZ^%=iQE=Yjvl zf$e*UU%F7gv^m(IWc$>7s6*i=o5@iAKvA`$?>(o$-jnGtEp(KHsk+taiYWTkk$g>W zNbR)EA_rsAxT-VMJU`&|f-j+;6^CdZ89^wH8$q2d7OB|$BbRkbvixl~aWwV*apVP7 zJNmDB@iZf-3iH%kUQZ0RxO3gv%;Of@HuArzo-w)aLXC^A2`x)z1DYhsjRa&Tz{hQh zZk>wCVdbvHzg$>uSnbBf8H*oB~-6h$zjdu1&9^e zOlw)&B*XIq6nI-toC#I$MJdM+vdt?f>oVx?&-~qCO%|7de9Ho!^OtO$eCr0&hOk_+ zeIp?c?O;F+$Hv)|vWvp%AZ0#$d+=~x|1(rR$KGfiOS|$5xT)CUz%0&piyJmBeXb;V zlr`(}$yD66vsFG1q>de9r6ar;W&kAdBBw-R3Ik18kFD1PYog8buD&BWT{58*?W|bD ztjNX7pWMgczNgCB>jliM^WNAe(HD@c46Ga0ig#*6nmLh|HyaG>bD!_n7Qd(8j26yJ z8|V4lmu?%m+UYG5j2l0B;d`U0&WXQ8gWhdtUXQt6-}FxUoHO;hIOJeCWgQQxBYeFZ z8zh#HFe_3o2xpG)YC_pF3wm!kniIRcZG<4z_bqKtF1R#2>)XZ1FgjTJ%R^RaHOxL0IF}80vXdN=YxXyf-pfHC47&>SM7+R7M(b5pg#VkY*=@s|fT# z7|kmkCbED)n45PZl!Q-Riy#vDYUK62`kVc5p!CX*_=MQPVB-D;lNzUCLeuhvIwGIwIT3u*>yd+|>WL#=B`dCV zg6Y#R2~`hZLC{)&jKxwLFSuMv2iepmgHe_8O)C8#$Er~il`^N7WU$a%Ik@;a z{dtV?GRG*{Q5IvwXiCNJsErY++76)BdW3GNs=LHA@h+E#3^sU`uy}z_*7BT4C3_ znLL?C#D$GGjkNx{l!XYTIyTmoao^7nr9IWR9UIpsgS(u$4k+ zXh%>Ie2EI8u_uWf&C14DG@gSJQ!5+-4MPIcK0v3A=&r7PpKb}bn}*?a!e(#Q5(<{) z743=b@nJC|Zd|ByhCca{}G0UZAX2 zKoo^bWEMx6k(kjvlh6H~w@%B)qVY)Y9;w#P?6;)76n$h=%sng$YI*@~-A0+qiSC6# z6a@lh4BMDDvlUT#HrbTvT6 z@qxpbP_-{A88Ka}kB@J7vSZ~S51ytO@6k(asb{tlLj twabtnQgPk0{$` — корневой блок файла, внутри которого настраиваются все остальные элементы. + +`` — определяет, куда будут направляться логи (например, в файл, консоль, удалённый сервер): + +- `ConsoleAppender` — вывод в консоль (обычно используется для отладки). +- `FileAppender` — запись логов в файл. +- `RollingFileAppender` — запись в файл с ротацией по размеру или дате. +- `SocketAppender` — отправка логов на удалённый сервер. + +`` — внутри аппендера определяет форматирование логов (например, шаблоны с датой, уровнем лога и сообщением). + +`` — задаёт общий уровень логгирования (например, INFO, DEBUG) и связывает его с аппендерами. + +`` — настраивает уровень логгирования для отдельных классов или пакетов приложения (переопределяет ``). + + +- `TRACE`: Самый детализированный уровень, для отладки. +- `DEBUG`: Для отладки, но с меньшей детализацией, чем TRACE. +- `INFO`: Обычные информационные сообщения, отображающие состояние приложения. +- `WARN`: Предупреждения о возможных проблемах. +- `ERROR`: Сообщения об ошибках, когда выполнение операции не удалось + +WEB-INF/classes или src/main/resources +`` \ No newline at end of file